<?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>153319</bug_id>
          
          <creation_ts>2016-01-21 13:24:01 -0800</creation_ts>
          <short_desc>Modern IDB: Make -private copies of each w3c IDB test</short_desc>
          <delta_ts>2016-01-21 15:16:32 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>Safari 9</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>
          
          <blocked>149117</blocked>
    
    <blocked>153021</blocked>
    
    <blocked>153318</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>achristensen</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1157405</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-01-21 13:24:01 -0800</bug_when>
    <thetext>Modern IDB: Make -private copies of each w3c IDB test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1157417</commentid>
    <comment_count>1</comment_count>
      <attachid>269489</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-01-21 13:57:47 -0800</bug_when>
    <thetext>Created attachment 269489
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1157418</commentid>
    <comment_count>2</comment_count>
      <attachid>269489</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-01-21 14:00:00 -0800</bug_when>
    <thetext>Comment on attachment 269489
Patch v1

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

&gt; LayoutTests/imported/w3c/indexeddb/support.js:5
&gt; +    // If the test file URL ends in &quot;-private.htm(l)&quot;, enable private browsing.

This is the only change.  Please mention this in the changelog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1157452</commentid>
    <comment_count>3</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-01-21 15:10:36 -0800</bug_when>
    <thetext>wk2 tests are probably taking awhile because all the new ones are failing there - I&apos;ll skip them then land.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1157456</commentid>
    <comment_count>4</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-01-21 15:16:32 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/195423</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>269489</attachid>
            <date>2016-01-21 13:57:47 -0800</date>
            <delta_ts>2016-01-21 14:00:00 -0800</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>639986</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDIzZDVlY2EuLmZiY2Q3Y2MgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwMSBAQAorMjAxNi0wMS0yMSAg
QnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgTW9kZXJuIElEQjog
TWFrZSAtcHJpdmF0ZSBjb3BpZXMgb2YgZWFjaCB3M2MgSURCIHRlc3QuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTMzMTkKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGluZGV4ZWRkYi9hYm9ydC1pbi1p
bml0aWFsLXVwZ3JhZGVuZWVkZWQtcHJpdmF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGluZGV4ZWRkYi9hYm9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQtcHJpdmF0ZS5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvY2xvc2UtaW4tdXBncmFkZW5lZWRlZC1wcml2
YXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2Nsb3NlLWluLXVw
Z3JhZGVuZWVkZWQtcHJpdmF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvY3Vy
c29yLW92ZXJsb2Fkcy1wcml2YXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5k
ZXhlZGRiL2N1cnNvci1vdmVybG9hZHMtcHJpdmF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBp
bmRleGVkZGIvaWRiX3dlYndvcmtlcnMtcHJpdmF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGluZGV4ZWRkYi9pZGJfd2Vid29ya2Vycy1wcml2YXRlLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3ItYWR2YW5jZS1jb250aW51ZS1hc3luYy1wcml2YXRl
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1cnNvci1hZHZh
bmNlLWNvbnRpbnVlLWFzeW5jLXByaXZhdGUuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5kZXhl
ZGRiL2lkYmN1cnNvci1hZHZhbmNlLWludmFsaWQtcHJpdmF0ZS1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3ItYWR2YW5jZS1pbnZhbGlkLXByaXZhdGUu
aHRtbDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1cnNvci1hZHZhbmNlLXByaXZh
dGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiY3Vyc29yLWFk
dmFuY2UtcHJpdmF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiY3Vyc29y
LWNvbnRpbnVlLXByaXZhdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVk
ZGIvaWRiY3Vyc29yLWNvbnRpbnVlLXByaXZhdGUuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5k
ZXhlZGRiL2lkYmN1cnNvci1kaXJlY3Rpb24taW5kZXgta2V5cmFuZ2UtcHJpdmF0ZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3ItZGlyZWN0aW9uLWlu
ZGV4LWtleXJhbmdlLXByaXZhdGUuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lk
YmN1cnNvci1kaXJlY3Rpb24taW5kZXgtcHJpdmF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3ItZGlyZWN0aW9uLWluZGV4LXByaXZhdGUuaHRtbDog
QWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1cnNvci1kaXJlY3Rpb24tb2JqZWN0c3Rv
cmUta2V5cmFuZ2UtcHJpdmF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4
ZWRkYi9pZGJjdXJzb3ItZGlyZWN0aW9uLW9iamVjdHN0b3JlLWtleXJhbmdlLXByaXZhdGUuaHRt
bDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1cnNvci1kaXJlY3Rpb24tb2JqZWN0
c3RvcmUtcHJpdmF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9p
ZGJjdXJzb3ItZGlyZWN0aW9uLW9iamVjdHN0b3JlLXByaXZhdGUuaHRtbDogQWRkZWQuCisgICAg
ICAgICogaW5kZXhlZGRiL2lkYmN1cnNvci1kaXJlY3Rpb24tcHJpdmF0ZS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3ItZGlyZWN0aW9uLXByaXZhdGUu
aHRtbDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1cnNvci1rZXktcHJpdmF0ZS1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3Ita2V5LXBy
aXZhdGUuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1cnNvci1wcmltYXJ5
a2V5LXByaXZhdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRi
Y3Vyc29yLXByaW1hcnlrZXktcHJpdmF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVk
ZGIvaWRiY3Vyc29yLXJldXNlZC1wcml2YXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogaW5kZXhlZGRiL2lkYmN1cnNvci1yZXVzZWQtcHJpdmF0ZS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBpbmRleGVkZGIvaWRiY3Vyc29yLXNvdXJjZS1wcml2YXRlLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1cnNvci1zb3VyY2UtcHJpdmF0ZS5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXgtcHJpdmF0
ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3JfYWR2
YW5jZV9pbmRleC1wcml2YXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJj
dXJzb3JfYWR2YW5jZV9pbmRleDItcHJpdmF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGluZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9pbmRleDItcHJpdmF0ZS5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXgzLXByaXZhdGUt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFu
Y2VfaW5kZXgzLXByaXZhdGUuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1
cnNvcl9hZHZhbmNlX2luZGV4NS1wcml2YXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4NS1wcml2YXRlLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9pbmRleDYtcHJpdmF0ZS1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5j
ZV9pbmRleDYtcHJpdmF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiY3Vy
c29yX2FkdmFuY2VfaW5kZXg3LXByaXZhdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBpbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXg3LXByaXZhdGUuaHRtbDogQWRkZWQu
CisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4OC1wcml2YXRlLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNl
X2luZGV4OC1wcml2YXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJz
b3JfYWR2YW5jZV9pbmRleDktcHJpdmF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGluZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9pbmRleDktcHJpdmF0ZS5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBpbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2Vfb2JqZWN0c3RvcmUtcHJpdmF0
ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3JfYWR2
YW5jZV9vYmplY3RzdG9yZS1wcml2YXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRk
Yi9pZGJjdXJzb3JfYWR2YW5jZV9vYmplY3RzdG9yZTItcHJpdmF0ZS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9vYmplY3RzdG9yZTIt
cHJpdmF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFu
Y2Vfb2JqZWN0c3RvcmUzLXByaXZhdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBp
bmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2Vfb2JqZWN0c3RvcmUzLXByaXZhdGUuaHRtbDogQWRk
ZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX29iamVjdHN0b3JlNC1w
cml2YXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1cnNv
cl9hZHZhbmNlX29iamVjdHN0b3JlNC1wcml2YXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGlu
ZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9vYmplY3RzdG9yZTUtcHJpdmF0ZS1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9vYmplY3Rz
dG9yZTUtcHJpdmF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiY3Vyc29y
X2NvbnRpbnVlX2luZGV4LXByaXZhdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBp
bmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4LXByaXZhdGUuaHRtbDogQWRkZWQuCisg
ICAgICAgICogaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDItcHJpdmF0ZS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVf
aW5kZXgyLXByaXZhdGUuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1cnNv
cl9jb250aW51ZV9pbmRleDMtcHJpdmF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGluZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfaW5kZXgzLXByaXZhdGUuaHRtbDogQWRkZWQu
CisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDQtcHJpdmF0ZS1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3JfY29udGlu
dWVfaW5kZXg0LXByaXZhdGUuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1
cnNvcl9jb250aW51ZV9pbmRleDUtcHJpdmF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGluZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfaW5kZXg1LXByaXZhdGUuaHRtbDogQWRk
ZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDYtcHJpdmF0
ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3JfY29u
dGludWVfaW5kZXg2LXByaXZhdGUuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lk
YmN1cnNvcl9jb250aW51ZV9pbmRleDctcHJpdmF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfaW5kZXg3LXByaXZhdGUuaHRtbDog
QWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDgtcHJp
dmF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3Jf
Y29udGludWVfaW5kZXg4LXByaXZhdGUuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRi
L2lkYmN1cnNvcl9jb250aW51ZV9pbnZhbGlkLXByaXZhdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBpbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX2ludmFsaWQtcHJpdmF0ZS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX29iamVj
dHN0b3JlLXByaXZhdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIv
aWRiY3Vyc29yX2NvbnRpbnVlX29iamVjdHN0b3JlLXByaXZhdGUuaHRtbDogQWRkZWQuCisgICAg
ICAgICogaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9vYmplY3RzdG9yZTItcHJpdmF0ZS1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3JfY29udGlu
dWVfb2JqZWN0c3RvcmUyLXByaXZhdGUuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRi
L2lkYmN1cnNvcl9jb250aW51ZV9vYmplY3RzdG9yZTMtcHJpdmF0ZS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfb2JqZWN0c3RvcmUz
LXByaXZhdGUuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250
aW51ZV9vYmplY3RzdG9yZTQtcHJpdmF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGluZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfb2JqZWN0c3RvcmU0LXByaXZhdGUuaHRtbDog
QWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9vYmplY3RzdG9y
ZTUtcHJpdmF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJj
dXJzb3JfY29udGludWVfb2JqZWN0c3RvcmU1LXByaXZhdGUuaHRtbDogQWRkZWQuCisgICAgICAg
ICogaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9vYmplY3RzdG9yZTYtcHJpdmF0ZS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVf
b2JqZWN0c3RvcmU2LXByaXZhdGUuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lk
YmN1cnNvcl9kZWxldGVfaW5kZXgtcHJpdmF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGluZGV4ZWRkYi9pZGJjdXJzb3JfZGVsZXRlX2luZGV4LXByaXZhdGUuaHRtbDogQWRkZWQu
CisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVfaW5kZXgyLXByaXZhdGUtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9p
bmRleDItcHJpdmF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiY3Vyc29y
X2RlbGV0ZV9pbmRleDMtcHJpdmF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGlu
ZGV4ZWRkYi9pZGJjdXJzb3JfZGVsZXRlX2luZGV4My1wcml2YXRlLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3JfZGVsZXRlX2luZGV4NC1wcml2YXRlLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVfaW5kZXg0
LXByaXZhdGUuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxl
dGVfaW5kZXg1LXByaXZhdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVk
ZGIvaWRiY3Vyc29yX2RlbGV0ZV9pbmRleDUtcHJpdmF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBpbmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9vYmplY3RzdG9yZS1wcml2YXRlLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVfb2JqZWN0
c3RvcmUtcHJpdmF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiY3Vyc29y
X2RlbGV0ZV9vYmplY3RzdG9yZTItcHJpdmF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGluZGV4ZWRkYi9pZGJjdXJzb3JfZGVsZXRlX29iamVjdHN0b3JlMi1wcml2YXRlLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3JfZGVsZXRlX29iamVjdHN0b3Jl
My1wcml2YXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1
cnNvcl9kZWxldGVfb2JqZWN0c3RvcmUzLXByaXZhdGUuaHRtbDogQWRkZWQuCisgICAgICAgICog
aW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVfb2JqZWN0c3RvcmU0LXByaXZhdGUtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9vYmplY3Rz
dG9yZTQtcHJpdmF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiY3Vyc29y
X2RlbGV0ZV9vYmplY3RzdG9yZTUtcHJpdmF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGluZGV4ZWRkYi9pZGJjdXJzb3JfZGVsZXRlX29iamVjdHN0b3JlNS1wcml2YXRlLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3JfaXRlcmF0aW5nLXByaXZhdGUt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiY3Vyc29yX2l0ZXJh
dGluZy1wcml2YXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3Jf
aXRlcmF0aW5nX2luZGV4LXByaXZhdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBp
bmRleGVkZGIvaWRiY3Vyc29yX2l0ZXJhdGluZ19pbmRleC1wcml2YXRlLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3JfaXRlcmF0aW5nX2luZGV4Mi1wcml2YXRlLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1cnNvcl9pdGVyYXRp
bmdfaW5kZXgyLXByaXZhdGUuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1
cnNvcl9pdGVyYXRpbmdfb2JqZWN0c3RvcmUtcHJpdmF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3JfaXRlcmF0aW5nX29iamVjdHN0b3JlLXByaXZh
dGUuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1cnNvcl9pdGVyYXRpbmdf
b2JqZWN0c3RvcmUyLXByaXZhdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRl
eGVkZGIvaWRiY3Vyc29yX2l0ZXJhdGluZ19vYmplY3RzdG9yZTItcHJpdmF0ZS5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleC1wcml2YXRlLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVf
aW5kZXgtcHJpdmF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiY3Vyc29y
X3VwZGF0ZV9pbmRleDItcHJpdmF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGlu
ZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX2luZGV4Mi1wcml2YXRlLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX2luZGV4My1wcml2YXRlLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfaW5kZXgz
LXByaXZhdGUuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRh
dGVfaW5kZXg0LXByaXZhdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVk
ZGIvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleDQtcHJpdmF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBpbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleDUtcHJpdmF0ZS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX2luZGV4NS1wcml2
YXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX2lu
ZGV4Ni1wcml2YXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lk
YmN1cnNvcl91cGRhdGVfaW5kZXg2LXByaXZhdGUuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5k
ZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfaW5kZXg3LXByaXZhdGUtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleDctcHJpdmF0ZS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3Rz
dG9yZS1wcml2YXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lk
YmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmUtcHJpdmF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBpbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTItcHJpdmF0ZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX29iamVj
dHN0b3JlMi1wcml2YXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJz
b3JfdXBkYXRlX29iamVjdHN0b3JlMy1wcml2YXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmUzLXByaXZhdGUuaHRt
bDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3Rv
cmU0LXByaXZhdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRi
Y3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTQtcHJpdmF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBpbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTUtcHJpdmF0ZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX29iamVj
dHN0b3JlNS1wcml2YXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJz
b3JfdXBkYXRlX29iamVjdHN0b3JlNi1wcml2YXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmU2LXByaXZhdGUuaHRt
bDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3Rv
cmU3LXByaXZhdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRi
Y3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTctcHJpdmF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBpbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTgtcHJpdmF0ZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX29iamVj
dHN0b3JlOC1wcml2YXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJkYXRh
YmFzZV9jbG9zZS1wcml2YXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhl
ZGRiL2lkYmRhdGFiYXNlX2Nsb3NlLXByaXZhdGUuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5k
ZXhlZGRiL2lkYmRhdGFiYXNlX2Nsb3NlMi1wcml2YXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2Nsb3NlMi1wcml2YXRlLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZS1jcmVh
dGVJbmRleC1lbXB0eW5hbWUtcHJpdmF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGluZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZS1jcmVhdGVJbmRleC1lbXB0
eW5hbWUtcHJpdmF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiZGF0YWJh
c2VfY3JlYXRlT2JqZWN0U3RvcmUtcHJpdmF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGluZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZS1wcml2YXRlLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9y
ZTEwLTEwMDBlbmRzLXByaXZhdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRl
eGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUxMC0xMDAwZW5kcy1wcml2YXRlLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RT
dG9yZTEwLWVtcHR5bmFtZS1wcml2YXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
aW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlMTAtZW1wdHluYW1lLXByaXZh
dGUuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9i
amVjdFN0b3JlMTEtcHJpdmF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4
ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTExLXByaXZhdGUuaHRtbDogQWRkZWQu
CisgICAgICAgICogaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlMi1wcml2
YXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmRhdGFiYXNl
X2NyZWF0ZU9iamVjdFN0b3JlMi1wcml2YXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluZGV4
ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTMtcHJpdmF0ZS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9y
ZTMtcHJpdmF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiZGF0YWJhc2Vf
Y3JlYXRlT2JqZWN0U3RvcmU0LXByaXZhdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBpbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmU0LXByaXZhdGUuaHRtbDog
QWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3Jl
NS1wcml2YXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmRh
dGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlNS1wcml2YXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGluZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTYtcHJpdmF0ZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmpl
Y3RTdG9yZTYtcHJpdmF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiZGF0
YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmU3LXByaXZhdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBpbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmU3LXByaXZhdGUu
aHRtbDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVj
dFN0b3JlOC1wYXJhbWV0ZXJzLXByaXZhdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBpbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmU4LXBhcmFtZXRlcnMtcHJp
dmF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRl
T2JqZWN0U3RvcmU5LWludmFsaWRwYXJhbWV0ZXJzLXByaXZhdGUtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmU5LWlu
dmFsaWRwYXJhbWV0ZXJzLXByaXZhdGUuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRi
L2lkYmRhdGFiYXNlX2RlbGV0ZU9iamVjdFN0b3JlLXByaXZhdGUtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiZGF0YWJhc2VfZGVsZXRlT2JqZWN0U3RvcmUtcHJp
dmF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiZGF0YWJhc2VfZGVsZXRl
T2JqZWN0U3RvcmUyLXByaXZhdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRl
eGVkZGIvaWRiZGF0YWJhc2VfZGVsZXRlT2JqZWN0U3RvcmUyLXByaXZhdGUuaHRtbDogQWRkZWQu
CisgICAgICAgICogaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2RlbGV0ZU9iamVjdFN0b3JlMy1wcml2
YXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmRhdGFiYXNl
X2RlbGV0ZU9iamVjdFN0b3JlMy1wcml2YXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluZGV4
ZWRkYi9pZGJkYXRhYmFzZV9kZWxldGVPYmplY3RTdG9yZTQtbm90X3JldXNlZC1wcml2YXRlLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2RlbGV0
ZU9iamVjdFN0b3JlNC1ub3RfcmV1c2VkLXByaXZhdGUuaHRtbDogQWRkZWQuCisgICAgICAgICog
aW5kZXhlZGRiL2lkYmRhdGFiYXNlX3RyYW5zYWN0aW9uLXByaXZhdGUtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiZGF0YWJhc2VfdHJhbnNhY3Rpb24tcHJpdmF0
ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiZGF0YWJhc2VfdHJhbnNhY3Rp
b24yLXByaXZhdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRi
ZGF0YWJhc2VfdHJhbnNhY3Rpb24yLXByaXZhdGUuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5k
ZXhlZGRiL2lkYmRhdGFiYXNlX3RyYW5zYWN0aW9uMy1wcml2YXRlLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmRhdGFiYXNlX3RyYW5zYWN0aW9uMy1wcml2YXRl
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJkYXRhYmFzZV90cmFuc2FjdGlv
bjQtcHJpdmF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJk
YXRhYmFzZV90cmFuc2FjdGlvbjQtcHJpdmF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbmRl
eGVkZGIvaWRiZGF0YWJhc2VfdHJhbnNhY3Rpb241LXByaXZhdGUtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiZGF0YWJhc2VfdHJhbnNhY3Rpb241LXByaXZhdGUu
aHRtbDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmZhY3RvcnlfY21wLXByaXZhdGUt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiZmFjdG9yeV9jbXAt
cHJpdmF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiZmFjdG9yeV9jbXAy
LXByaXZhdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiZmFj
dG9yeV9jbXAyLXByaXZhdGUuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmZh
Y3RvcnlfZGVsZXRlRGF0YWJhc2UtcHJpdmF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGluZGV4ZWRkYi9pZGJmYWN0b3J5X2RlbGV0ZURhdGFiYXNlLXByaXZhdGUuaHRtbDogQWRk
ZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmZhY3RvcnlfZGVsZXRlRGF0YWJhc2UyLXByaXZh
dGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiZmFjdG9yeV9k
ZWxldGVEYXRhYmFzZTItcHJpdmF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIv
aWRiZmFjdG9yeV9kZWxldGVEYXRhYmFzZTMtcHJpdmF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGluZGV4ZWRkYi9pZGJmYWN0b3J5X2RlbGV0ZURhdGFiYXNlMy1wcml2YXRlLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJmYWN0b3J5X2RlbGV0ZURhdGFiYXNl
NC1wcml2YXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmZh
Y3RvcnlfZGVsZXRlRGF0YWJhc2U0LXByaXZhdGUuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5k
ZXhlZGRiL2lkYmZhY3Rvcnlfb3Blbi1wcml2YXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3Blbi1wcml2YXRlLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGluZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW4xMC1wcml2YXRlLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjEwLXByaXZhdGUuaHRt
bDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjExLXByaXZhdGUt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVu
MTEtcHJpdmF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiZmFjdG9yeV9v
cGVuMTItcHJpdmF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9p
ZGJmYWN0b3J5X29wZW4xMi1wcml2YXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRk
Yi9pZGJmYWN0b3J5X29wZW4yLXByaXZhdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBpbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVuMi1wcml2YXRlLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGluZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW4zLXByaXZhdGUtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVuMy1wcml2YXRlLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW40LXByaXZhdGUtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVuNC1wcml2
YXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW41LXBy
aXZhdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiZmFjdG9y
eV9vcGVuNS1wcml2YXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJmYWN0
b3J5X29wZW42LXByaXZhdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVk
ZGIvaWRiZmFjdG9yeV9vcGVuNi1wcml2YXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluZGV4
ZWRkYi9pZGJmYWN0b3J5X29wZW43LXByaXZhdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBpbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVuNy1wcml2YXRlLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGluZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW44LXByaXZhdGUtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVuOC1wcml2YXRlLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW45LXByaXZhdGUtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVuOS1w
cml2YXRlLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRiZmFjdG9yeV9vcGVuOS5odG0uCisgICAgICAgICogaW5kZXhlZGRiL2lkYmZhY3Rvcnlf
b3BlbjkuaHRtOgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJpbmRleC1tdWx0aWVudHJ5LWFycmF5
a2V5cGF0aC1wcml2YXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRi
L2lkYmluZGV4LW11bHRpZW50cnktYXJyYXlrZXlwYXRoLXByaXZhdGUuaHRtbDogQWRkZWQuCisg
ICAgICAgICogaW5kZXhlZGRiL2lkYmluZGV4LW11bHRpZW50cnktYmlnLXByaXZhdGUtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiaW5kZXgtbXVsdGllbnRyeS1i
aWctcHJpdmF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiaW5kZXgtbXVs
dGllbnRyeS1wcml2YXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRi
L2lkYmluZGV4LW11bHRpZW50cnktcHJpdmF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbmRl
eGVkZGIvaWRiaW5kZXhfY291bnQtcHJpdmF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGluZGV4ZWRkYi9pZGJpbmRleF9jb3VudC1wcml2YXRlLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGluZGV4ZWRkYi9pZGJpbmRleF9jb3VudDItcHJpdmF0ZS1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJpbmRleF9jb3VudDItcHJpdmF0ZS5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiaW5kZXhfY291bnQzLXByaXZhdGUtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiaW5kZXhfY291bnQzLXByaXZhdGUu
aHRtbDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmluZGV4X2NvdW50NC1wcml2YXRl
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmluZGV4X2NvdW50
NC1wcml2YXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJpbmRleF9nZXQt
cHJpdmF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJpbmRl
eF9nZXQtcHJpdmF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiaW5kZXhf
Z2V0Mi1wcml2YXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lk
YmluZGV4X2dldDItcHJpdmF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRi
aW5kZXhfZ2V0My1wcml2YXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhl
ZGRiL2lkYmluZGV4X2dldDMtcHJpdmF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVk
ZGIvaWRiaW5kZXhfZ2V0NC1wcml2YXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
aW5kZXhlZGRiL2lkYmluZGV4X2dldDQtcHJpdmF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBp
bmRleGVkZGIvaWRiaW5kZXhfZ2V0NS1wcml2YXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogaW5kZXhlZGRiL2lkYmluZGV4X2dldDUtcHJpdmF0ZS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBpbmRleGVkZGIvaWRiaW5kZXhfZ2V0Ni1wcml2YXRlLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogaW5kZXhlZGRiL2lkYmluZGV4X2dldDYtcHJpdmF0ZS5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBpbmRleGVkZGIvaWRiaW5kZXhfZ2V0Ny1wcml2YXRlLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmluZGV4X2dldDctcHJpdmF0ZS5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiaW5kZXhfZ2V0S2V5LXByaXZhdGUtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiaW5kZXhfZ2V0S2V5LXByaXZh
dGUuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmluZGV4X2dldEtleTItcHJp
dmF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJpbmRleF9n
ZXRLZXkyLXByaXZhdGUuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmluZGV4
X2dldEtleTMtcHJpdmF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRk
Yi9pZGJpbmRleF9nZXRLZXkzLXByaXZhdGUuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5kZXhl
ZGRiL2lkYmluZGV4X2dldEtleTQtcHJpdmF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGluZGV4ZWRkYi9pZGJpbmRleF9nZXRLZXk0LXByaXZhdGUuaHRtbDogQWRkZWQuCisgICAg
ICAgICogaW5kZXhlZGRiL2lkYmluZGV4X2dldEtleTUtcHJpdmF0ZS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJpbmRleF9nZXRLZXk1LXByaXZhdGUuaHRtbDog
QWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmluZGV4X2dldEtleTYtcHJpdmF0ZS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJpbmRleF9nZXRLZXk2LXBy
aXZhdGUuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmluZGV4X2dldEtleTct
cHJpdmF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJpbmRl
eF9nZXRLZXk3LXByaXZhdGUuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmlu
ZGV4X2luZGV4TmFtZXMtcHJpdmF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGlu
ZGV4ZWRkYi9pZGJpbmRleF9pbmRleE5hbWVzLXByaXZhdGUuaHRtbDogQWRkZWQuCisgICAgICAg
ICogaW5kZXhlZGRiL2lkYmluZGV4X29wZW5DdXJzb3ItcHJpdmF0ZS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJpbmRleF9vcGVuQ3Vyc29yLXByaXZhdGUuaHRt
bDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmluZGV4X29wZW5DdXJzb3IyLXByaXZh
dGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiaW5kZXhfb3Bl
bkN1cnNvcjItcHJpdmF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiaW5k
ZXhfb3BlbktleUN1cnNvci1wcml2YXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
aW5kZXhlZGRiL2lkYmluZGV4X29wZW5LZXlDdXJzb3ItcHJpdmF0ZS5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBpbmRleGVkZGIvaWRiaW5kZXhfb3BlbktleUN1cnNvcjItcHJpdmF0ZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJpbmRleF9vcGVuS2V5Q3Vyc29y
Mi1wcml2YXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJpbmRleF9vcGVu
S2V5Q3Vyc29yMy1wcml2YXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhl
ZGRiL2lkYmluZGV4X29wZW5LZXlDdXJzb3IzLXByaXZhdGUuaHRtbDogQWRkZWQuCisgICAgICAg
ICogaW5kZXhlZGRiL2lkYmtleXJhbmdlLXByaXZhdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBpbmRleGVkZGIvaWRia2V5cmFuZ2UtcHJpdmF0ZS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBpbmRleGVkZGIvaWRia2V5cmFuZ2VfaW5jb3JyZWN0LXByaXZhdGUtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRia2V5cmFuZ2VfaW5jb3JyZWN0LXByaXZh
dGUuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZC1w
cml2YXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVj
dHN0b3JlX2FkZC1wcml2YXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJv
YmplY3RzdG9yZV9hZGQxMC1wcml2YXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
aW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDEwLXByaXZhdGUuaHRtbDogQWRkZWQuCisgICAg
ICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDExLXByaXZhdGUtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkMTEtcHJpdmF0
ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkMTIt
cHJpdmF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJvYmpl
Y3RzdG9yZV9hZGQxMi1wcml2YXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9p
ZGJvYmplY3RzdG9yZV9hZGQxMy1wcml2YXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDEzLXByaXZhdGUuaHRtbDogQWRkZWQuCisg
ICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDE0LXByaXZhdGUtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkMTQtcHJp
dmF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRk
MTUtcHJpdmF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJv
YmplY3RzdG9yZV9hZGQxNS1wcml2YXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRk
Yi9pZGJvYmplY3RzdG9yZV9hZGQxNi1wcml2YXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDE2LXByaXZhdGUuaHRtbDogQWRkZWQu
CisgICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDItcHJpdmF0ZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQyLXBy
aXZhdGUuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2Fk
ZDMtcHJpdmF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJv
YmplY3RzdG9yZV9hZGQzLXByaXZhdGUuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRi
L2lkYm9iamVjdHN0b3JlX2FkZDQtcHJpdmF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGluZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQ0LXByaXZhdGUuaHRtbDogQWRkZWQuCisg
ICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDUtcHJpdmF0ZS1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQ1LXByaXZh
dGUuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDYt
cHJpdmF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJvYmpl
Y3RzdG9yZV9hZGQ2LXByaXZhdGUuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lk
Ym9iamVjdHN0b3JlX2FkZDctcHJpdmF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGluZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQ3LXByaXZhdGUuaHRtbDogQWRkZWQuCisgICAg
ICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDgtcHJpdmF0ZS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQ4LXByaXZhdGUu
aHRtbDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDktcHJp
dmF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJvYmplY3Rz
dG9yZV9hZGQ5LXByaXZhdGUuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYm9i
amVjdHN0b3JlX2NsZWFyLXByaXZhdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBp
bmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY2xlYXItcHJpdmF0ZS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY2xlYXIyLXByaXZhdGUtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY2xlYXIyLXByaXZh
dGUuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NsZWFy
My1wcml2YXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYm9i
amVjdHN0b3JlX2NsZWFyMy1wcml2YXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRk
Yi9pZGJvYmplY3RzdG9yZV9jbGVhcjQtcHJpdmF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGluZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jbGVhcjQtcHJpdmF0ZS5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY291bnQtcHJpdmF0ZS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jb3Vu
dC1wcml2YXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJvYmplY3RzdG9y
ZV9jb3VudDItcHJpdmF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRk
Yi9pZGJvYmplY3RzdG9yZV9jb3VudDItcHJpdmF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBp
bmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY291bnQzLXByaXZhdGUtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY291bnQzLXByaXZhdGUuaHRt
bDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NvdW50NC1wcml2
YXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0
b3JlX2NvdW50NC1wcml2YXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJv
YmplY3RzdG9yZV9jcmVhdGVJbmRleC1wcml2YXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4LXByaXZhdGUuaHRtbDog
QWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4MTAt
cHJpdmF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJvYmpl
Y3RzdG9yZV9jcmVhdGVJbmRleDEwLXByaXZhdGUuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5k
ZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4MTEtcHJpdmF0ZS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDEx
LXByaXZhdGUuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3Jl
X2NyZWF0ZUluZGV4MTItcHJpdmF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGlu
ZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDEyLXByaXZhdGUuaHRtbDogQWRkZWQu
CisgICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4MTMtcHJpdmF0
ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJvYmplY3RzdG9y
ZV9jcmVhdGVJbmRleDEzLXByaXZhdGUuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRi
L2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4Mi1wcml2YXRlLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4Mi1wcml2YXRl
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJ
bmRleDMtdXNhYmxlLXJpZ2h0LWF3YXktcHJpdmF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGluZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDMtdXNhYmxlLXJpZ2h0
LWF3YXktcHJpdmF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0
c3RvcmVfY3JlYXRlSW5kZXg0LWRlbGV0ZUluZGV4LWV2ZW50X29yZGVyLXByaXZhdGUtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRl
SW5kZXg0LWRlbGV0ZUluZGV4LWV2ZW50X29yZGVyLXByaXZhdGUuaHRtbDogQWRkZWQuCisgICAg
ICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4NS1lbXB0eWtleXBhdGgt
cHJpdmF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJvYmpl
Y3RzdG9yZV9jcmVhdGVJbmRleDUtZW1wdHlrZXlwYXRoLXByaXZhdGUuaHRtbDogQWRkZWQuCisg
ICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4Ni1ldmVudF9vcmRl
ci1wcml2YXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYm9i
amVjdHN0b3JlX2NyZWF0ZUluZGV4Ni1ldmVudF9vcmRlci1wcml2YXRlLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGluZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDctZXZlbnRfb3Jk
ZXItcHJpdmF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJv
YmplY3RzdG9yZV9jcmVhdGVJbmRleDctZXZlbnRfb3JkZXItcHJpdmF0ZS5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXg4LXZhbGlkX2tl
eXMtcHJpdmF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJv
YmplY3RzdG9yZV9jcmVhdGVJbmRleDgtdmFsaWRfa2V5cy1wcml2YXRlLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGluZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDktZW1wdHluYW1l
LXByaXZhdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2Jq
ZWN0c3RvcmVfY3JlYXRlSW5kZXg5LWVtcHR5bmFtZS1wcml2YXRlLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGluZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9kZWxldGUtcHJpdmF0ZS1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9kZWxldGUtcHJp
dmF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZGVs
ZXRlMi1wcml2YXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lk
Ym9iamVjdHN0b3JlX2RlbGV0ZTItcHJpdmF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbmRl
eGVkZGIvaWRib2JqZWN0c3RvcmVfZGVsZXRlMy1wcml2YXRlLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2RlbGV0ZTMtcHJpdmF0ZS5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZGVsZXRlNC1wcml2
YXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0
b3JlX2RlbGV0ZTQtcHJpdmF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRi
b2JqZWN0c3RvcmVfZGVsZXRlNS1wcml2YXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2RlbGV0ZTUtcHJpdmF0ZS5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZGVsZXRlNi1wcml2YXRlLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2RlbGV0
ZTYtcHJpdmF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3Rv
cmVfZGVsZXRlNy1wcml2YXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhl
ZGRiL2lkYm9iamVjdHN0b3JlX2RlbGV0ZTctcHJpdmF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBpbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZGVsZXRlSW5kZXgtcHJpdmF0ZS1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9kZWxldGVJbmRl
eC1wcml2YXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJvYmplY3RzdG9y
ZV9kZWxldGVkLXByaXZhdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVk
ZGIvaWRib2JqZWN0c3RvcmVfZGVsZXRlZC1wcml2YXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGluZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9nZXQtcHJpdmF0ZS1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9nZXQtcHJpdmF0ZS5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZ2V0Mi1wcml2YXRlLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2dl
dDItcHJpdmF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3Rv
cmVfZ2V0My1wcml2YXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRi
L2lkYm9iamVjdHN0b3JlX2dldDMtcHJpdmF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbmRl
eGVkZGIvaWRib2JqZWN0c3RvcmVfZ2V0NC1wcml2YXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2dldDQtcHJpdmF0ZS5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZ2V0NS1wcml2YXRlLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2dldDUt
cHJpdmF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3RvcmVf
Z2V0Ni1wcml2YXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lk
Ym9iamVjdHN0b3JlX2dldDYtcHJpdmF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVk
ZGIvaWRib2JqZWN0c3RvcmVfZ2V0Ny1wcml2YXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2dldDctcHJpdmF0ZS5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfaW5kZXgtcHJpdmF0ZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9pbmRleC1w
cml2YXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9v
cGVuQ3Vyc29yLXByaXZhdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVk
ZGIvaWRib2JqZWN0c3RvcmVfb3BlbkN1cnNvci1wcml2YXRlLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGluZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9vcGVuQ3Vyc29yX2ludmFsaWQtcHJpdmF0ZS1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9v
cGVuQ3Vyc29yX2ludmFsaWQtcHJpdmF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVk
ZGIvaWRib2JqZWN0c3RvcmVfcHV0LXByaXZhdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0LXByaXZhdGUuaHRtbDogQWRkZWQuCisg
ICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDEwLXByaXZhdGUtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0MTAtcHJp
dmF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0
MTEtcHJpdmF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJv
YmplY3RzdG9yZV9wdXQxMS1wcml2YXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRk
Yi9pZGJvYmplY3RzdG9yZV9wdXQxMi1wcml2YXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDEyLXByaXZhdGUuaHRtbDogQWRkZWQu
CisgICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDEzLXByaXZhdGUtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0MTMt
cHJpdmF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3RvcmVf
cHV0MTQtcHJpdmF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9p
ZGJvYmplY3RzdG9yZV9wdXQxNC1wcml2YXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluZGV4
ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQxNS1wcml2YXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDE1LXByaXZhdGUuaHRtbDogQWRk
ZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDE2LXByaXZhdGUtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0
MTYtcHJpdmF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3Rv
cmVfcHV0Mi1wcml2YXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRi
L2lkYm9iamVjdHN0b3JlX3B1dDItcHJpdmF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbmRl
eGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0My1wcml2YXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDMtcHJpdmF0ZS5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0NC1wcml2YXRlLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDQt
cHJpdmF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3RvcmVf
cHV0NS1wcml2YXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lk
Ym9iamVjdHN0b3JlX3B1dDUtcHJpdmF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVk
ZGIvaWRib2JqZWN0c3RvcmVfcHV0Ni1wcml2YXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDYtcHJpdmF0ZS5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0Ny1wcml2YXRlLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDctcHJp
dmF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0
OC1wcml2YXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYm9i
amVjdHN0b3JlX3B1dDgtcHJpdmF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIv
aWRib2JqZWN0c3RvcmVfcHV0OS1wcml2YXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDktcHJpdmF0ZS5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBpbmRleGVkZGIvaWRidHJhbnNhY3Rpb24tb25jb21wbGV0ZS1wcml2YXRlLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYnRyYW5zYWN0aW9uLW9uY29t
cGxldGUtcHJpdmF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRidHJhbnNh
Y3Rpb24tcHJpdmF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9p
ZGJ0cmFuc2FjdGlvbi1wcml2YXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9p
ZGJ0cmFuc2FjdGlvbl9hYm9ydC1wcml2YXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogaW5kZXhlZGRiL2lkYnRyYW5zYWN0aW9uX2Fib3J0LXByaXZhdGUuaHRtbDogQWRkZWQuCisg
ICAgICAgICogaW5kZXhlZGRiL2lkYnZlcnNpb25jaGFuZ2VldmVudC1wcml2YXRlLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYnZlcnNpb25jaGFuZ2VldmVudC1w
cml2YXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pbmRleF9zb3J0X29yZGVy
LXByaXZhdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaW5kZXhf
c29ydF9vcmRlci1wcml2YXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9rZXlf
aW52YWxpZC1wcml2YXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRi
L2tleV9pbnZhbGlkLXByaXZhdGUuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2tl
eV92YWxpZC1wcml2YXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRi
L2tleV92YWxpZC1wcml2YXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9rZXln
ZW5lcmF0b3ItY29uc3RyYWludGVycm9yLXByaXZhdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBpbmRleGVkZGIva2V5Z2VuZXJhdG9yLWNvbnN0cmFpbnRlcnJvci1wcml2YXRlLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9rZXlnZW5lcmF0b3Itb3ZlcmZsb3ctcHJp
dmF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9rZXlnZW5lcmF0
b3Itb3ZlcmZsb3ctcHJpdmF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIva2V5
Z2VuZXJhdG9yLXByaXZhdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVk
ZGIva2V5Z2VuZXJhdG9yLXByaXZhdGUuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRi
L2tleW9yZGVyLXByaXZhdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVk
ZGIva2V5b3JkZXItcHJpdmF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIva2V5
cGF0aC1wcml2YXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2tl
eXBhdGgtcHJpdmF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIva2V5cGF0aF9p
bnZhbGlkLXByaXZhdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIv
a2V5cGF0aF9pbnZhbGlkLXByaXZhdGUuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRi
L2tleXBhdGhfbWF4c2l6ZS1wcml2YXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
aW5kZXhlZGRiL2tleXBhdGhfbWF4c2l6ZS1wcml2YXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGluZGV4ZWRkYi9saXN0X29yZGVyaW5nLXByaXZhdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBpbmRleGVkZGIvbGlzdF9vcmRlcmluZy1wcml2YXRlLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGluZGV4ZWRkYi9vYmplY3RzdG9yZV9rZXlvcmRlci1wcml2YXRlLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL29iamVjdHN0b3JlX2tleW9yZGVyLXByaXZh
dGUuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL3JlcXVlc3RfYnViYmxlLWFuZC1j
YXB0dXJlLXByaXZhdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIv
cmVxdWVzdF9idWJibGUtYW5kLWNhcHR1cmUtcHJpdmF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBpbmRleGVkZGIvc3RyaW5nLWxpc3Qtb3JkZXJpbmctcHJpdmF0ZS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9zdHJpbmctbGlzdC1vcmRlcmluZy1wcml2YXRlLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9zdXBwb3J0LmpzOgorICAgICAgICAqIGlu
ZGV4ZWRkYi90cmFuc2FjdGlvbi1jcmVhdGVfaW5fdmVyc2lvbmNoYW5nZS1wcml2YXRlLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWNyZWF0ZV9p
bl92ZXJzaW9uY2hhbmdlLXByaXZhdGUuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRi
L3RyYW5zYWN0aW9uLWxpZmV0aW1lLWJsb2NrZWQtcHJpdmF0ZS1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGluZGV4ZWRkYi90cmFuc2FjdGlvbi1saWZldGltZS1ibG9ja2VkLXByaXZh
dGUuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWxpZmV0aW1l
LXByaXZhdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvdHJhbnNh
Y3Rpb24tbGlmZXRpbWUtcHJpdmF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIv
dHJhbnNhY3Rpb24tcmVxdWVzdHF1ZXVlLXByaXZhdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBpbmRleGVkZGIvdHJhbnNhY3Rpb24tcmVxdWVzdHF1ZXVlLXByaXZhdGUuaHRtbDog
QWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL3RyYW5zYWN0aW9uX2J1YmJsZS1hbmQtY2FwdHVy
ZS1wcml2YXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL3RyYW5z
YWN0aW9uX2J1YmJsZS1hbmQtY2FwdHVyZS1wcml2YXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGluZGV4ZWRkYi92YWx1ZS1wcml2YXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
aW5kZXhlZGRiL3ZhbHVlLXByaXZhdGUuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRi
L3ZhbHVlX3JlY3Vyc2l2ZS1wcml2YXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
aW5kZXhlZGRiL3ZhbHVlX3JlY3Vyc2l2ZS1wcml2YXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGluZGV4ZWRkYi93cml0ZXItc3RhcnZhdGlvbi1wcml2YXRlLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogaW5kZXhlZGRiL3dyaXRlci1zdGFydmF0aW9uLXByaXZhdGUuaHRtbDogQWRk
ZWQuCisKIDIwMTYtMDEtMjAgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAg
ICAgICBEcm9wIHN1cHBvcnQgZm9yIG9ic29sZXRlIE5vZGUuaXNTdXBwb3J0ZWQoKQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9hYm9ydC1pbi1pbml0aWFs
LXVwZ3JhZGVuZWVkZWQtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2Fib3J0LWluLWluaXRpYWwtdXBncmFkZW5lZWRlZC1wcml2YXRlLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYWY0ZmRiCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9hYm9y
dC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQtcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwzIEBACisKK1BBU1MgVGVzdCB0aGF0IGFuIGFib3J0IGluIHRoZSBpbml0aWFsIHVwZ3JhZGVu
ZWVkZWQgc2V0cyB2ZXJzaW9uIGJhY2sgdG8gMCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9hYm9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQtcHJp
dmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9hYm9ydC1pbi1p
bml0aWFsLXVwZ3JhZGVuZWVkZWQtcHJpdmF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjA2NmI2MTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2Fib3J0LWluLWluaXRpYWwtdXBncmFkZW5lZWRlZC1wcml2YXRl
Lmh0bWwKQEAgLTAsMCArMSwzNSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8IS0tIFN1Ym1pdHRlZCBm
cm9tIFRlc3RUV0YgUGFyaXMgLS0+Cis8dGl0bGU+VGVzdCB0aGF0IGFuIGFib3J0IGluIHRoZSBp
bml0aWFsIHVwZ3JhZGVuZWVkZWQgc2V0cyB2ZXJzaW9uIGJhY2sgdG8gMDwvdGl0bGU+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KKworPHNjcmlwdD4KKwordmFy
IGRiLCBvcGVuX3JxID0gY3JlYXRlZGIoYXN5bmNfdGVzdCgpLCB1bmRlZmluZWQsIDIpOworCitv
cGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICBkYiA9IGUudGFyZ2V0
LnJlc3VsdDsKKyAgICBhc3NlcnRfZXF1YWxzKGRiLnZlcnNpb24sIDIpOworICAgIHRyYW5zYWN0
aW9uID0gZS50YXJnZXQudHJhbnNhY3Rpb247CisgICAgdHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9
IGZhaWwodGhpcywgInVuZXhwZWN0ZWQgdHJhbnNhY3Rpb24uY29tcGxldGUiKTsKKyAgICB0cmFu
c2FjdGlvbi5vbmFib3J0ID0gZnVuY3Rpb24oZSkgeworICAgICAgICBhc3NlcnRfZXF1YWxzKGUu
dGFyZ2V0LmRiLnZlcnNpb24sIDApOworICAgIH0KKyAgICBkYi5vbmFib3J0ID0gZnVuY3Rpb24o
KSB7fQorCisgICAgdHJhbnNhY3Rpb24uYWJvcnQoKTsKK30KKworb3Blbl9ycS5vbmVycm9yID0g
ZnVuY3Rpb24oZSkgeworICAgIGFzc2VydF9lcXVhbHMob3Blbl9ycSwgZS50YXJnZXQpOworICAg
IGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LCB1bmRlZmluZWQpOworICAgIGFzc2VydF9l
cXVhbHMoZS50YXJnZXQuZXJyb3IubmFtZSwgIkFib3J0RXJyb3IiKTsKKyAgICBhc3NlcnRfZXF1
YWxzKGRiLnZlcnNpb24sIDApOworICAgIGFzc2VydF9lcXVhbHMob3Blbl9ycS50cmFuc2FjdGlv
biwgbnVsbCk7CisgICAgdGhpcy5kb25lKCk7Cit9Cis8L3NjcmlwdD4KKworPGRpdiBpZD1sb2c+
PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2Ns
b3NlLWluLXVwZ3JhZGVuZWVkZWQtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2Nsb3NlLWluLXVwZ3JhZGVuZWVkZWQtcHJpdmF0ZS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzBlNzJiZAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvY2xvc2Ut
aW4tdXBncmFkZW5lZWRlZC1wcml2YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKwor
UEFTUyBXaGVuIGRiLmNsb3NlIGlzIGNhbGxlZCBpbiB1cGdyYWRlbmVlZGVkLCB0aGUgZGIgaXMg
Y2xlYW5lZCB1cCBvbiByZWZyZXNoIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2Nsb3NlLWluLXVwZ3JhZGVuZWVkZWQtcHJpdmF0ZS5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9jbG9zZS1pbi11cGdyYWRlbmVlZGVkLXBy
aXZhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZTAwYjRlCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9jbG9z
ZS1pbi11cGdyYWRlbmVlZGVkLXByaXZhdGUuaHRtbApAQCAtMCwwICsxLDM5IEBACis8IWRvY3R5
cGUgaHRtbD4KKzwhLS0gU3VibWl0dGVkIGZyb20gVGVzdFRXRiBQYXJpcyAtLT4KKzx0aXRsZT5X
aGVuIGRiLmNsb3NlIGlzIGNhbGxlZCBpbiB1cGdyYWRlbmVlZGVkLCB0aGUgZGIgaXMgY2xlYW5l
ZCB1cCBvbiByZWZyZXNoPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz1zdXBwb3J0Lmpz
Pjwvc2NyaXB0PgorCis8c2NyaXB0PgorCit2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKGFzeW5jX3Rl
c3QoKSkKK3ZhciBzYXdUcmFuc2FjdGlvbkNvbXBsZXRlID0gZmFsc2UKKworb3Blbl9ycS5vbnVw
Z3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQKKyAg
ICBhc3NlcnRfZXF1YWxzKGRiLnZlcnNpb24sIDEpCisKKyAgICBkYi5jcmVhdGVPYmplY3RTdG9y
ZSgnb3MnKQorICAgIGRiLmNsb3NlKCkKKworICAgIGUudGFyZ2V0LnRyYW5zYWN0aW9uLm9uY29t
cGxldGUgPSBmdW5jdGlvbigpIHsgc2F3VHJhbnNhY3Rpb25Db21wbGV0ZSA9IHRydWUgfQorfQor
CitvcGVuX3JxLm9uZXJyb3IgPSBmdW5jdGlvbihlKSB7CisgICAgYXNzZXJ0X3RydWUoc2F3VHJh
bnNhY3Rpb25Db21wbGV0ZSwgInNhdyB0cmFuc2FjdGlvbi5jb21wbGV0ZSIpCisKKyAgICBhc3Nl
cnRfZXF1YWxzKGUudGFyZ2V0LmVycm9yLm5hbWUsICdBYm9ydEVycm9yJykKKyAgICBhc3NlcnRf
ZXF1YWxzKGUucmVzdWx0LCB1bmRlZmluZWQpCisKKyAgICBhc3NlcnRfdHJ1ZSghIWRiKQorICAg
IGFzc2VydF9lcXVhbHMoZGIudmVyc2lvbiwgMSkKKyAgICBhc3NlcnRfZXF1YWxzKGRiLm9iamVj
dFN0b3JlTmFtZXMubGVuZ3RoLCAxKQorICAgIGFzc2VydF90aHJvd3MoIkludmFsaWRTdGF0ZUVy
cm9yIiwgZnVuY3Rpb24oKSB7IGRiLnRyYW5zYWN0aW9uKCdvcycpIH0pCisKKyAgICB0aGlzLmRv
bmUoKQorfQorCis8L3NjcmlwdD4KKworPGRpdiBpZD1sb2c+PC9kaXY+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2N1cnNvci1vdmVybG9hZHMtcHJpdmF0
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2N1cnNv
ci1vdmVybG9hZHMtcHJpdmF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uMjM4OTk5YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvY3Vyc29yLW92ZXJsb2Fkcy1wcml2YXRlLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDMgQEAKKworUEFTUyBWYWxpZGF0ZSB0aGUgb3ZlcmxvYWRzIG9mIElEQk9iamVj
dFN0b3JlLm9wZW5DdXJzb3IoKSwgSURCSW5kZXgub3BlbkN1cnNvcigpIGFuZCBJREJJbmRleC5v
cGVuS2V5Q3Vyc29yKCkgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvY3Vyc29yLW92ZXJsb2Fkcy1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2N1cnNvci1vdmVybG9hZHMtcHJpdmF0ZS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg2YjE2OWIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2N1cnNvci1vdmVybG9hZHMtcHJpdmF0
ZS5odG1sCkBAIC0wLDAgKzEsODggQEAKKzwhLS0KK1Rlc3QgY29udmVydGVkIGZyb20gV2ViS2l0
OgoraHR0cDovL3RyYWMud2Via2l0Lm9yZy9icm93c2VyL3RydW5rL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL2N1cnNvci1vdmVybG9hZHMuaHRtbAorLS0+CisKKzwhRE9DVFlQRSBodG1s
PgorPCEtLSBTdWJtaXR0ZWQgZnJvbSBUZXN0VFdGIFBhcmlzIC0tPgorPG1ldGEgY2hhcnNldD11
dGYtOD4KKzx0aXRsZT5WYWxpZGF0ZSB0aGUgb3ZlcmxvYWRzIG9mIElEQk9iamVjdFN0b3JlLm9w
ZW5DdXJzb3IoKSwgSURCSW5kZXgub3BlbkN1cnNvcigpIGFuZCBJREJJbmRleC5vcGVuS2V5Q3Vy
c29yKCk8L3RpdGxlPgorPGxpbmsgcmVsPWF1dGhvciBocmVmPSJtYWlsdG86cm9tYWluLmh1ZXRA
Z21haWwuY29tIiB0aXRsZT0iUm9tYWluIEh1ZXQiPgorCis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
c3VwcG9ydC5qcz48L3NjcmlwdD4KKworPHNjcmlwdD4KKworICAgIHZhciBkYiwgdHJhbnMsIHN0
b3JlLCBpbmRleDsKKyAgICB2YXIgdCA9IGFzeW5jX3Rlc3QoKTsKKworICAgIHZhciByZXF1ZXN0
ID0gY3JlYXRlZGIodCk7CisgICAgcmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihl
KSB7CisgICAgICAgIGRiID0gcmVxdWVzdC5yZXN1bHQ7CisgICAgICAgIHN0b3JlID0gZGIuY3Jl
YXRlT2JqZWN0U3RvcmUoJ3N0b3JlJyk7CisgICAgICAgIGluZGV4ID0gc3RvcmUuY3JlYXRlSW5k
ZXgoJ2luZGV4JywgJ3ZhbHVlJyk7CisgICAgICAgIHN0b3JlLnB1dCh7dmFsdWU6IDB9LCAwKTsK
KyAgICAgICAgdHJhbnMgPSByZXF1ZXN0LnRyYW5zYWN0aW9uOworICAgICAgICB0cmFucy5vbmNv
bXBsZXRlID0gdmVyaWZ5T3ZlcmxvYWRzOworICAgIH07CisKKyAgICBmdW5jdGlvbiB2ZXJpZnlP
dmVybG9hZHMoKSB7CisgICAgICAgIHRyYW5zID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlJyk7Cisg
ICAgICAgIHN0b3JlID0gdHJhbnMub2JqZWN0U3RvcmUoJ3N0b3JlJyk7CisgICAgICAgIGluZGV4
ID0gc3RvcmUuaW5kZXgoJ2luZGV4Jyk7CisKKyAgICAgICAgY2hlY2tDdXJzb3JEaXJlY3Rpb24o
InN0b3JlLm9wZW5DdXJzb3IoKSIsICJuZXh0Iik7CisgICAgICAgIGNoZWNrQ3Vyc29yRGlyZWN0
aW9uKCJzdG9yZS5vcGVuQ3Vyc29yKDApIiwgIm5leHQiKTsKKyAgICAgICAgY2hlY2tDdXJzb3JE
aXJlY3Rpb24oInN0b3JlLm9wZW5DdXJzb3IoMCwgJ25leHQnKSIsICJuZXh0Iik7CisgICAgICAg
IGNoZWNrQ3Vyc29yRGlyZWN0aW9uKCJzdG9yZS5vcGVuQ3Vyc29yKDAsICduZXh0dW5pcXVlJyki
LCAibmV4dHVuaXF1ZSIpOworICAgICAgICBjaGVja0N1cnNvckRpcmVjdGlvbigic3RvcmUub3Bl
bkN1cnNvcigwLCAncHJldicpIiwgInByZXYiKTsKKyAgICAgICAgY2hlY2tDdXJzb3JEaXJlY3Rp
b24oInN0b3JlLm9wZW5DdXJzb3IoMCwgJ3ByZXZ1bmlxdWUnKSIsICJwcmV2dW5pcXVlIik7CisK
KyAgICAgICAgY2hlY2tDdXJzb3JEaXJlY3Rpb24oInN0b3JlLm9wZW5DdXJzb3IoSURCS2V5UmFu
Z2Uub25seSgwKSkiLCAibmV4dCIpOworICAgICAgICBjaGVja0N1cnNvckRpcmVjdGlvbigic3Rv
cmUub3BlbkN1cnNvcihJREJLZXlSYW5nZS5vbmx5KDApLCAnbmV4dCcpIiwgIm5leHQiKTsKKyAg
ICAgICAgY2hlY2tDdXJzb3JEaXJlY3Rpb24oInN0b3JlLm9wZW5DdXJzb3IoSURCS2V5UmFuZ2Uu
b25seSgwKSwgJ25leHR1bmlxdWUnKSIsICJuZXh0dW5pcXVlIik7CisgICAgICAgIGNoZWNrQ3Vy
c29yRGlyZWN0aW9uKCJzdG9yZS5vcGVuQ3Vyc29yKElEQktleVJhbmdlLm9ubHkoMCksICdwcmV2
JykiLCAicHJldiIpOworICAgICAgICBjaGVja0N1cnNvckRpcmVjdGlvbigic3RvcmUub3BlbkN1
cnNvcihJREJLZXlSYW5nZS5vbmx5KDApLCAncHJldnVuaXF1ZScpIiwgInByZXZ1bmlxdWUiKTsK
KworICAgICAgICBjaGVja0N1cnNvckRpcmVjdGlvbigiaW5kZXgub3BlbkN1cnNvcigpIiwgIm5l
eHQiKTsKKyAgICAgICAgY2hlY2tDdXJzb3JEaXJlY3Rpb24oImluZGV4Lm9wZW5DdXJzb3IoMCki
LCAibmV4dCIpOworICAgICAgICBjaGVja0N1cnNvckRpcmVjdGlvbigiaW5kZXgub3BlbkN1cnNv
cigwLCAnbmV4dCcpIiwgIm5leHQiKTsKKyAgICAgICAgY2hlY2tDdXJzb3JEaXJlY3Rpb24oImlu
ZGV4Lm9wZW5DdXJzb3IoMCwgJ25leHR1bmlxdWUnKSIsICJuZXh0dW5pcXVlIik7CisgICAgICAg
IGNoZWNrQ3Vyc29yRGlyZWN0aW9uKCJpbmRleC5vcGVuQ3Vyc29yKDAsICdwcmV2JykiLCAicHJl
diIpOworICAgICAgICBjaGVja0N1cnNvckRpcmVjdGlvbigiaW5kZXgub3BlbkN1cnNvcigwLCAn
cHJldnVuaXF1ZScpIiwgInByZXZ1bmlxdWUiKTsKKworICAgICAgICBjaGVja0N1cnNvckRpcmVj
dGlvbigiaW5kZXgub3BlbkN1cnNvcihJREJLZXlSYW5nZS5vbmx5KDApKSIsICJuZXh0Iik7Cisg
ICAgICAgIGNoZWNrQ3Vyc29yRGlyZWN0aW9uKCJpbmRleC5vcGVuQ3Vyc29yKElEQktleVJhbmdl
Lm9ubHkoMCksICduZXh0JykiLCAibmV4dCIpOworICAgICAgICBjaGVja0N1cnNvckRpcmVjdGlv
bigiaW5kZXgub3BlbkN1cnNvcihJREJLZXlSYW5nZS5vbmx5KDApLCAnbmV4dHVuaXF1ZScpIiwg
Im5leHR1bmlxdWUiKTsKKyAgICAgICAgY2hlY2tDdXJzb3JEaXJlY3Rpb24oImluZGV4Lm9wZW5D
dXJzb3IoSURCS2V5UmFuZ2Uub25seSgwKSwgJ3ByZXYnKSIsICJwcmV2Iik7CisgICAgICAgIGNo
ZWNrQ3Vyc29yRGlyZWN0aW9uKCJpbmRleC5vcGVuQ3Vyc29yKElEQktleVJhbmdlLm9ubHkoMCks
ICdwcmV2dW5pcXVlJykiLCAicHJldnVuaXF1ZSIpOworCisgICAgICAgIGNoZWNrQ3Vyc29yRGly
ZWN0aW9uKCJpbmRleC5vcGVuS2V5Q3Vyc29yKCkiLCAibmV4dCIpOworICAgICAgICBjaGVja0N1
cnNvckRpcmVjdGlvbigiaW5kZXgub3BlbktleUN1cnNvcigwKSIsICJuZXh0Iik7CisgICAgICAg
IGNoZWNrQ3Vyc29yRGlyZWN0aW9uKCJpbmRleC5vcGVuS2V5Q3Vyc29yKDAsICduZXh0JykiLCAi
bmV4dCIpOworICAgICAgICBjaGVja0N1cnNvckRpcmVjdGlvbigiaW5kZXgub3BlbktleUN1cnNv
cigwLCAnbmV4dHVuaXF1ZScpIiwgIm5leHR1bmlxdWUiKTsKKyAgICAgICAgY2hlY2tDdXJzb3JE
aXJlY3Rpb24oImluZGV4Lm9wZW5LZXlDdXJzb3IoMCwgJ3ByZXYnKSIsICJwcmV2Iik7CisgICAg
ICAgIGNoZWNrQ3Vyc29yRGlyZWN0aW9uKCJpbmRleC5vcGVuS2V5Q3Vyc29yKDAsICdwcmV2dW5p
cXVlJykiLCAicHJldnVuaXF1ZSIpOworCisgICAgICAgIGNoZWNrQ3Vyc29yRGlyZWN0aW9uKCJp
bmRleC5vcGVuS2V5Q3Vyc29yKElEQktleVJhbmdlLm9ubHkoMCkpIiwgIm5leHQiKTsKKyAgICAg
ICAgY2hlY2tDdXJzb3JEaXJlY3Rpb24oImluZGV4Lm9wZW5LZXlDdXJzb3IoSURCS2V5UmFuZ2Uu
b25seSgwKSwgJ25leHQnKSIsICJuZXh0Iik7CisgICAgICAgIGNoZWNrQ3Vyc29yRGlyZWN0aW9u
KCJpbmRleC5vcGVuS2V5Q3Vyc29yKElEQktleVJhbmdlLm9ubHkoMCksICduZXh0dW5pcXVlJyki
LCAibmV4dHVuaXF1ZSIpOworICAgICAgICBjaGVja0N1cnNvckRpcmVjdGlvbigiaW5kZXgub3Bl
bktleUN1cnNvcihJREJLZXlSYW5nZS5vbmx5KDApLCAncHJldicpIiwgInByZXYiKTsKKyAgICAg
ICAgY2hlY2tDdXJzb3JEaXJlY3Rpb24oImluZGV4Lm9wZW5LZXlDdXJzb3IoSURCS2V5UmFuZ2Uu
b25seSgwKSwgJ3ByZXZ1bmlxdWUnKSIsICJwcmV2dW5pcXVlIik7CisKKyAgICAgICAgdC5kb25l
KCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gY2hlY2tDdXJzb3JEaXJlY3Rpb24oc3RhdGVtZW50
LCBkaXJlY3Rpb24pIHsKKyAgICAgICAgcmVxdWVzdCA9IGV2YWwoc3RhdGVtZW50KTsKKyAgICAg
ICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihldmVudCkgeworICAgICAgICAgICAgYXNz
ZXJ0X25vdF9lcXVhbHMoZXZlbnQudGFyZ2V0LnJlc3VsdCwgbnVsbCwgIkNoZWNrIHRoZSByZXN1
bHQgaXMgbm90IG51bGwiKQorICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhldmVudC50YXJnZXQu
cmVzdWx0LmRpcmVjdGlvbiwgZGlyZWN0aW9uLCAiQ2hlY2sgdGhlIHJlc3VsdCBkaXJlY3Rpb24i
KTsKKyAgICAgICAgfTsKKyAgICB9CisKKzwvc2NyaXB0PgorCis8ZGl2IGlkPWxvZz48L2Rpdj4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiX3dlYndv
cmtlcnMtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYl93ZWJ3b3JrZXJzLXByaXZhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZiYTlmMDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYl93ZWJ3b3JrZXJzLXByaXZhdGUtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitGQUlMIEluZGV4ZWREQiBpbnNpZGUgb2YgYSBXZWJX
b3JrZXIgIGFzc2VydF9lcXVhbHM6IHdvcmtlciBoYXMgaWRiIG9iamVjdCBleHBlY3RlZCB0cnVl
IGJ1dCBnb3QgZmFsc2UKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJfd2Vid29ya2Vycy1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYl93ZWJ3b3JrZXJzLXByaXZhdGUuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYjJmYWZmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJfd2Vid29ya2Vycy1wcml2YXRlLmh0bWwK
QEAgLTAsMCArMSwzMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+SW5kZXhlZERCIGluc2lk
ZSBvZiBhIFdlYldvcmtlciA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNy
b3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwgY291
bnQgPSAwLAorICAgICAgdCA9IGFzeW5jX3Rlc3QoKTsKKworICAgIHQuc3RlcChmdW5jdGlvbigp
IHsKKyAgICAgICAgdmFyIHdvcmtlciA9IG5ldyBXb3JrZXIoImlkYndvcmtlci5qcyIpOworICAg
ICAgICB3b3JrZXIub25tZXNzYWdlID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24gKGUpIHsKKyAgICAg
ICAgICAgIHN3aXRjaChjb3VudCkgeworICAgICAgICAgICAgICAgIGNhc2UgMDoKKyAgICAgICAg
ICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLmRhdGEsIHRydWUsICd3b3JrZXIgaGFzIGlkYiBv
YmplY3QnKQorICAgICAgICAgICAgICAgICAgICBicmVhaworCisgICAgICAgICAgICAgICAgY2Fz
ZSAxOgorICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUuZGF0YSwgInRlc3QiLCAi
Z2V0KDEpIGluIHdvcmtlciIpCisgICAgICAgICAgICAgICAgICAgIHQuZG9uZSgpCisgICAgICAg
ICAgICB9CisKKyAgICAgICAgICAgIGNvdW50KysKKyAgICAgICAgfSk7CisKKyAgICAgICAgd29y
a2VyLnBvc3RNZXNzYWdlKDEpOworICAgIH0pCisKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ci
PjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJjdXJzb3ItYWR2YW5jZS1jb250aW51ZS1hc3luYy1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yLWFkdmFuY2UtY29udGlu
dWUtYXN5bmMtcHJpdmF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uNmMwNGVhNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRiY3Vyc29yLWFkdmFuY2UtY29udGludWUtYXN5bmMtcHJpdmF0ZS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACisKK1BBU1MgSURCQ3Vyc29yIGFzeW5jbmVzcyAt
IGFkdmFuY2UgCitQQVNTIElEQkN1cnNvciBhc3luY25lc3MgLSBjb250aW51ZSAKK1BBU1MgSURC
Q3Vyc29yIGFzeW5jbmVzcyAtIGZyZXNoIGFkdmFuY2Ugc3RpbGwgYXN5bmMgCitQQVNTIElEQkN1
cnNvciBhc3luY25lc3MgLSBmcmVzaCBjb250aW51ZSBzdGlsbCBhc3luYyAKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3ItYWR2YW5jZS1j
b250aW51ZS1hc3luYy1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmN1cnNvci1hZHZhbmNlLWNvbnRpbnVlLWFzeW5jLXByaXZhdGUuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOTRlZDllCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3ItYWR2YW5jZS1j
b250aW51ZS1hc3luYy1wcml2YXRlLmh0bWwKQEAgLTAsMCArMSwxODYgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPHRpdGxlPklEQkN1cnNvciBhc3luY25lc3M8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRo
b3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9t
ZGFsIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxz
Y3JpcHQ+CisKKyAgICB2YXIgZGIsIG9wZW47CisKKyAgICBzZXR1cChmdW5jdGlvbigpIHsKKyAg
ICAgICAgb3BlbiA9IGluZGV4ZWREQi5vcGVuKCd0ZXN0ZGItJyArIG5ldyBEYXRlKCkuZ2V0VGlt
ZSgpKTsKKyAgICAgICAgb3Blbi5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAg
ICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgICAgIHZhciBvYmpTdG9yZSA9
IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0Iik7CisgICAgICAgICAgICBvYmpTdG9yZS5jcmVh
dGVJbmRleCgiaW5kZXgiLCAiIik7CisKKyAgICAgICAgICAgIG9ialN0b3JlLmFkZCgiZGF0YSIs
ICAxKTsKKyAgICAgICAgICAgIG9ialN0b3JlLmFkZCgiZGF0YTIiLCAyKTsKKyAgICAgICAgfTsK
KyAgICB9LAorICAgIHsgZXhwbGljaXRfZG9uZTogdHJ1ZSB9KTsKKworCisgICAgb3Blbi5vbnN1
Y2Nlc3MgPSBmdW5jdGlvbigpIHsKKworCisgICAgICAgIGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0
bGUgKyAiIC0gYWR2YW5jZSIpLnN0ZXAoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIGNv
dW50ID0gMDsKKyAgICAgICAgICAgIHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0Iikub2Jq
ZWN0U3RvcmUoInRlc3QiKS5vcGVuQ3Vyc29yKCk7CisKKyAgICAgICAgICAgIHJxLm9uc3VjY2Vz
cyA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICBpZiAoIWUu
dGFyZ2V0LnJlc3VsdCkgeworICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50
LCAyLCAnY291bnQnKTsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5kb25lKCk7CisgICAgICAg
ICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
dmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICAgICAgICAgIHN3aXRjaChj
b3VudCkgeworICAgICAgICAgICAgICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICAgICAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci52YWx1ZSwgImRhdGEiKQorICAgICAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3Iua2V5LCAxKQorICAgICAgICAgICAgICAgICAg
ICAgICAgY3Vyc29yLmFkdmFuY2UoMSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l
cXVhbHMoY3Vyc29yLnZhbHVlLCAiZGF0YSIpCisgICAgICAgICAgICAgICAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKGN1cnNvci5rZXksIDEpCisgICAgICAgICAgICAgICAgICAgICAgICBicmVhawor
CisgICAgICAgICAgICAgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgICAgICAgICAgICAgIGFz
c2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLCAiZGF0YTIiKQorICAgICAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhjdXJzb3Iua2V5LCAyKQorICAgICAgICAgICAgICAgICAgICAgICAg
Y3Vyc29yLmFkdmFuY2UoMSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMo
Y3Vyc29yLnZhbHVlLCAiZGF0YTIiKQorICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhjdXJzb3Iua2V5LCAyKQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKKworICAg
ICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0
X3VucmVhY2hlZCgiVW5leHBlY3RlZCBjb3VudDogIiArIGNvdW50KQorICAgICAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIHJxLm9uZXJyb3IgPSBmYWlsKHRoaXMsICJ1bmV4cGVjdGVkIGVycm9yIikKKyAgICAgICAg
fSk7CisKKworICAgICAgICBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlICsgIiAtIGNvbnRpbnVl
Iikuc3RlcChmdW5jdGlvbihlKSB7CisgICAgICAgICAgICB2YXIgY291bnQgPSAwOworICAgICAg
ICAgICAgdmFyIHJxID0gZGIudHJhbnNhY3Rpb24oInRlc3QiKS5vYmplY3RTdG9yZSgidGVzdCIp
LmluZGV4KCJpbmRleCIpLm9wZW5DdXJzb3IoKTsKKworICAgICAgICAgICAgcnEub25zdWNjZXNz
ID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAgIGlmICghZS50
YXJnZXQucmVzdWx0KSB7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY291bnQs
IDIsICdjb3VudCcpOworICAgICAgICAgICAgICAgICAgICB0aGlzLmRvbmUoKTsKKyAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB2
YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OworCisgICAgICAgICAgICAgICAgc3dpdGNoKGNv
dW50KSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLCAiZGF0YSIpCisgICAgICAgICAgICAgICAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5rZXksICAgImRhdGEiKQorICAgICAgICAgICAg
ICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IucHJpbWFyeUtleSwgMSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgiZGF0YTIiKQorICAgICAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUsICJkYXRhIikKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLmtleSwgICAiZGF0YSIpCisgICAgICAg
ICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5wcmltYXJ5S2V5LCAxKQorICAg
ICAgICAgICAgICAgICAgICAgICAgYnJlYWsKKworICAgICAgICAgICAgICAgICAgICBjYXNlIDE6
CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci52YWx1ZSwgImRh
dGEyIikKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLmtleSwg
ICAiZGF0YTIiKQorICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3Iu
cHJpbWFyeUtleSwgMikKKyAgICAgICAgICAgICAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgp
CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci52YWx1ZSwgImRh
dGEyIikKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLmtleSwg
ICAiZGF0YTIiKQorICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3Iu
cHJpbWFyeUtleSwgMikKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCisKKyAgICAgICAg
ICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF91bnJl
YWNoZWQoIlVuZXhwZWN0ZWQgY291bnQ6ICIgKyBjb3VudCkKKyAgICAgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBy
cS5vbmVycm9yID0gZmFpbCh0aGlzLCAidW5leHBlY3RlZCBlcnJvciIpCisgICAgICAgIH0pOwor
CisKKyAgICAgICAgYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSArICIgLSBmcmVzaCBhZHZhbmNl
IHN0aWxsIGFzeW5jIikuc3RlcChmdW5jdGlvbihlKSB7CisgICAgICAgICAgICB2YXIgY291bnQg
PSAwOworICAgICAgICAgICAgdmFyIHJxID0gZGIudHJhbnNhY3Rpb24oInRlc3QiKS5vYmplY3RT
dG9yZSgidGVzdCIpLmluZGV4KCJpbmRleCIpLm9wZW5DdXJzb3IoKTsKKworICAgICAgICAgICAg
cnEub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAg
ICAgIGlmICghZS50YXJnZXQucmVzdWx0KSB7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l
cXVhbHMoY291bnQsIDIsICdjb3VudCcpOworICAgICAgICAgICAgICAgICAgICB0aGlzLmRvbmUo
KTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICAgICAgICAg
IGN1cnNvci5hZHZhbmNlKDEpCisKKyAgICAgICAgICAgICAgICBzd2l0Y2goY291bnQpIHsKKyAg
ICAgICAgICAgICAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhjdXJzb3IudmFsdWUsICJkYXRhIikKKyAgICAgICAgICAgICAgICAgICAgICAgIGFz
c2VydF9lcXVhbHMoY3Vyc29yLmtleSwgICAiZGF0YSIpCisgICAgICAgICAgICAgICAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKGN1cnNvci5wcmltYXJ5S2V5LCAxKQorICAgICAgICAgICAgICAgICAg
ICAgICAgYnJlYWsKKworICAgICAgICAgICAgICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAg
ICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci52YWx1ZSwgImRhdGEyIikKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLmtleSwgICAiZGF0YTIiKQorICAg
ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IucHJpbWFyeUtleSwgMikK
KyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCisKKyAgICAgICAgICAgICAgICAgICAgZGVm
YXVsdDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF91bnJlYWNoZWQoIlVuZXhwZWN0
ZWQgY291bnQ6ICIgKyBjb3VudCkKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAg
ICBjb3VudCsrOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBycS5vbmVycm9yID0gZmFp
bCh0aGlzLCAidW5leHBlY3RlZCBlcnJvciIpCisgICAgICAgIH0pOworCisKKyAgICAgICAgYXN5
bmNfdGVzdChkb2N1bWVudC50aXRsZSArICIgLSBmcmVzaCBjb250aW51ZSBzdGlsbCBhc3luYyIp
LnN0ZXAoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIGNvdW50ID0gMDsKKyAgICAgICAg
ICAgIHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0Iikub2JqZWN0U3RvcmUoInRlc3QiKS5v
cGVuQ3Vyc29yKCk7CisKKyAgICAgICAgICAgIHJxLm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5j
KGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICBpZiAoIWUudGFyZ2V0LnJlc3VsdCkgewor
ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50LCAyLCAnY291bnQnKTsKKyAg
ICAgICAgICAgICAgICAgICAgdGhpcy5kb25lKCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFy
Z2V0LnJlc3VsdDsKKyAgICAgICAgICAgICAgICBjdXJzb3IuY29udGludWUoKQorCisgICAgICAg
ICAgICAgICAgc3dpdGNoKGNvdW50KSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgMDoKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLCAiZGF0YSIp
CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5rZXksIDEpCisg
ICAgICAgICAgICAgICAgICAgICAgICBicmVhaworCisgICAgICAgICAgICAgICAgICAgIGNhc2Ug
MToKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLCAi
ZGF0YTIiKQorICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3Iua2V5
LCAyKQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKKworICAgICAgICAgICAgICAgICAg
ICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X3VucmVhY2hlZCgiVW5l
eHBlY3RlZCBjb3VudDogIiArIGNvdW50KQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgICAgIGNvdW50Kys7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHJxLm9uZXJyb3Ig
PSBmYWlsKHRoaXMsICJ1bmV4cGVjdGVkIGVycm9yIikKKyAgICAgICAgfSk7CisKKyAgICAgICAg
Ly8gU3RvcCBibG9ja2luZyB0aGUgdGVzdGluZyBzeXN0ZW0gZnJvbSBoZXJlb24KKyAgICAgICAg
ZG9uZSgpOworICAgIH0KKworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9bG9nPjwvZGl2PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3ItYWR2YW5j
ZS1pbnZhbGlkLXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJjdXJzb3ItYWR2YW5jZS1pbnZhbGlkLXByaXZhdGUtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc5MTZiNTcKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1hZHZh
bmNlLWludmFsaWQtcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4IEBACisKK1BBU1Mg
SURCQ3Vyc29yLmFkdmFuY2UoKSAtIGludmFsaWQgLSBhdHRlbXB0IHRvIGNhbGwgYWR2YW5jZSB0
d2ljZSAKK1BBU1MgSURCQ3Vyc29yLmFkdmFuY2UoKSAtIGludmFsaWQgLSBwYXNzIHNvbWV0aGlu
ZyBvdGhlciB0aGFuIG51bWJlciAKK1BBU1MgSURCQ3Vyc29yLmFkdmFuY2UoKSAtIGludmFsaWQg
LSBwYXNzIG51bGwvdW5kZWZpbmVkIAorUEFTUyBJREJDdXJzb3IuYWR2YW5jZSgpIC0gaW52YWxp
ZCAtIG1pc3NpbmcgYXJndW1lbnQgCitQQVNTIElEQkN1cnNvci5hZHZhbmNlKCkgLSBpbnZhbGlk
IC0gcGFzcyBuZWdhdGl2ZSBudW1iZXJzIAorUEFTUyBJREJDdXJzb3IuYWR2YW5jZSgpIC0gaW52
YWxpZCAtIGdvdCB2YWx1ZSBub3Qgc2V0IG9uIGV4Y2VwdGlvbiAKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3ItYWR2YW5jZS1pbnZhbGlk
LXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vy
c29yLWFkdmFuY2UtaW52YWxpZC1wcml2YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uZTI1MDRiOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yLWFkdmFuY2UtaW52YWxpZC1wcml2YXRlLmh0bWwK
QEAgLTAsMCArMSwxODggQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklEQkN1cnNvci5hZHZh
bmNlKCkgLSBpbnZhbGlkPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86
b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Cis8bGluayByZWw9
aGVscCBocmVmPSJodHRwOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9P
dmVydmlldy5odG1sI3dpZGwtSURCQ3Vyc29yLWFkdmFuY2Utdm9pZC11bnNpZ25lZC1sb25nLWNv
dW50Ij4KKzxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9IklmIHRoZSB2YWx1ZSBmb3IgY291bnQgaXMg
MCAoemVybykgb3IgYSBuZWdhdGl2ZSBudW1iZXIsIHRoaXMgbWV0aG9kIG11c3QgdGhyb3cgYSBK
YXZhU2NyaXB0IFR5cGVFcnJvciBleGNlcHRpb24uIj4KKzxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9
IlR5cGVFcnJvciBUaGUgdmFsdWUgcGFzc2VkIGludG8gdGhlIGNvdW50IHBhcmFtZXRlciB3YXMg
emVybyBvciBhIG5lZ2F0aXZlIG51bWJlci4iPgorPGxpbmsgcmVsPWFzc2VydCB0aXRsZT0iSW52
YWxpZFN0YXRlRXJyb3IgVGhlIGN1cnNvciBpcyBjdXJyZW50bHkgYmVpbmcgaXRlcmF0ZWQsIG9y
IGhhcyBpdGVyYXRlZCBwYXN0IGl0cyBlbmQuIj4KKzxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9IkNh
bGxpbmcgdGhpcyBtZXRob2QgbW9yZSB0aGFuIG9uY2UgYmVmb3JlIG5ldyBjdXJzb3IgZGF0YSBo
YXMgYmVlbiBsb2FkZWQgaXMgbm90IGFsbG93ZWQgYW5kIHJlc3VsdHMgaW4gYSBET01FeGNlcHRp
b24gb2YgdHlwZSBJbnZhbGlkU3RhdGVFcnJvciBiZWluZyB0aHJvd24uIEZvciBleGFtcGxlLCBj
YWxsaW5nIGFkdmFuY2UoKSB0d2ljZSBmcm9tIHRoZSBzYW1lIG9uc3VjY2VzcyBoYW5kbGVyIHJl
c3VsdHMgaW4gYSBET01FeGNlcHRpb24gb2YgdHlwZSBJbnZhbGlkU3RhdGVFcnJvciBiZWluZyB0
aHJvd24gb24gdGhlIHNlY29uZCBjYWxsLiI+Cis8bGluayByZWw9YXNzZXJ0IHRpdGxlPSJCZWZv
cmUgdGhpcyBtZXRob2QgcmV0dXJucywgdW5sZXNzIGFuIGV4Y2VwdGlvbiB3YXMgdGhyb3duLCBp
dCBzZXRzIHRoZSBnb3QgdmFsdWUgZmxhZyBvbiB0aGUgY3Vyc29yIHRvIGZhbHNlLiI+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorCisg
ICAgdmFyIGRiLCBvcGVuOworCisgICAgc2V0dXAoZnVuY3Rpb24oKSB7CisgICAgICAgIG9wZW4g
PSBpbmRleGVkREIub3BlbigndGVzdGRiLScgKyBuZXcgRGF0ZSgpLmdldFRpbWUoKSk7CisgICAg
ICAgIG9wZW4ub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgZGIg
PSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVP
YmplY3RTdG9yZSgidGVzdCIpOworICAgICAgICAgICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgoImlu
ZGV4IiwgIiIpOworCisgICAgICAgICAgICBvYmpTdG9yZS5hZGQoImRhdGEiLCAgMSk7CisgICAg
ICAgICAgICBvYmpTdG9yZS5hZGQoImRhdGEyIiwgMik7CisgICAgICAgIH07CisgICAgfSwKKyAg
ICB7IGV4cGxpY2l0X2RvbmU6IHRydWUgfSk7CisKKworICAgIG9wZW4ub25zdWNjZXNzID0gZnVu
Y3Rpb24oKSB7CisKKyAgICAgICAgYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSArICIgLSBhdHRl
bXB0IHRvIGNhbGwgYWR2YW5jZSB0d2ljZSIpLnN0ZXAoZnVuY3Rpb24oZSkgeworICAgICAgICAg
ICAgdmFyIGNvdW50ID0gMDsKKyAgICAgICAgICAgIHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJ0
ZXN0Iikub2JqZWN0U3RvcmUoInRlc3QiKS5pbmRleCgiaW5kZXgiKS5vcGVuQ3Vyc29yKCk7CisK
KyAgICAgICAgICAgIHJxLm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsK
KyAgICAgICAgICAgICAgICBpZiAoIWUudGFyZ2V0LnJlc3VsdCkgeworICAgICAgICAgICAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKGNvdW50LCAyLCAnY291bnQnKTsKKyAgICAgICAgICAgICAgICAg
ICAgdGhpcy5kb25lKCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKwor
ICAgICAgICAgICAgICAgIGN1cnNvci5hZHZhbmNlKDEpOworCisgICAgICAgICAgICAgICAgLy8g
U2Vjb25kIHRyeQorICAgICAgICAgICAgICAgIGFzc2VydF90aHJvd3MoJ0ludmFsaWRTdGF0ZUVy
cm9yJywKKyAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1cnNvci5hZHZhbmNlKDEp
OyB9LCAnc2Vjb25kIGFkdmFuY2UnKTsKKworICAgICAgICAgICAgICAgIGFzc2VydF90aHJvd3Mo
J0ludmFsaWRTdGF0ZUVycm9yJywKKyAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1
cnNvci5hZHZhbmNlKDMpOyB9LCAndGhpcmQgYWR2YW5jZScpOworCisgICAgICAgICAgICAgICAg
Y291bnQrKzsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgcnEub25lcnJvciA9IGZhaWwo
dGhpcywgInVuZXhwZWN0ZWQgZXJyb3IiKQorICAgICAgICB9KTsKKworCisgICAgICAgIGFzeW5j
X3Rlc3QoZG9jdW1lbnQudGl0bGUgKyAiIC0gcGFzcyBzb21ldGhpbmcgb3RoZXIgdGhhbiBudW1i
ZXIiKS5zdGVwKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBycSA9IGRiLnRyYW5zYWN0
aW9uKCJ0ZXN0Iikub2JqZWN0U3RvcmUoInRlc3QiKS5pbmRleCgiaW5kZXgiKS5vcGVuQ3Vyc29y
KCk7CisKKyAgICAgICAgICAgIHJxLm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9u
KGUpIHsKKyAgICAgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OworCisg
ICAgICAgICAgICAgICAgYXNzZXJ0X3Rocm93cyh7IG5hbWU6ICJUeXBlRXJyb3IiIH0sCisgICAg
ICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBjdXJzb3IuYWR2YW5jZShkb2N1bWVudCk7IH0p
OworCisgICAgICAgICAgICAgICAgYXNzZXJ0X3Rocm93cyh7IG5hbWU6ICJUeXBlRXJyb3IiIH0s
CisgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBjdXJzb3IuYWR2YW5jZSh7fSk7IH0p
OworCisgICAgICAgICAgICAgICAgYXNzZXJ0X3Rocm93cyh7IG5hbWU6ICJUeXBlRXJyb3IiIH0s
CisgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBjdXJzb3IuYWR2YW5jZShbXSk7IH0p
OworCisgICAgICAgICAgICAgICAgYXNzZXJ0X3Rocm93cyh7IG5hbWU6ICJUeXBlRXJyb3IiIH0s
CisgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBjdXJzb3IuYWR2YW5jZSgiIik7IH0p
OworCisgICAgICAgICAgICAgICAgYXNzZXJ0X3Rocm93cyh7IG5hbWU6ICJUeXBlRXJyb3IiIH0s
CisgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBjdXJzb3IuYWR2YW5jZSgiMSAyIik7
IH0pOworCisgICAgICAgICAgICAgICAgdGhpcy5kb25lKCk7CisgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgIHJxLm9uZXJyb3IgPSBmYWlsKHRoaXMsICJ1bmV4cGVjdGVkIGVycm9yIikKKyAg
ICAgICAgfSk7CisKKworICAgICAgICBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlICsgIiAtIHBh
c3MgbnVsbC91bmRlZmluZWQiKS5zdGVwKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBy
cSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0Iikub2JqZWN0U3RvcmUoInRlc3QiKS5pbmRleCgiaW5k
ZXgiKS5vcGVuQ3Vyc29yKCk7CisKKyAgICAgICAgICAgIHJxLm9uc3VjY2VzcyA9IHRoaXMuc3Rl
cF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJn
ZXQucmVzdWx0OworCisgICAgICAgICAgICAgICAgYXNzZXJ0X3Rocm93cyh7IG5hbWU6ICJUeXBl
RXJyb3IiIH0sCisgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBjdXJzb3IuYWR2YW5j
ZShudWxsKTsgfSk7CisKKyAgICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKHsgbmFtZTogIlR5
cGVFcnJvciIgfSwKKyAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1cnNvci5hZHZh
bmNlKHVuZGVmaW5lZCk7IH0pOworCisgICAgICAgICAgICAgICAgdmFyIG15dmFyID0gbnVsbDsK
KyAgICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKHsgbmFtZTogIlR5cGVFcnJvciIgfSwKKyAg
ICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1cnNvci5hZHZhbmNlKG15dmFyKTsgfSk7
CisKKyAgICAgICAgICAgICAgICB0aGlzLmRvbmUoKTsKKyAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgcnEub25lcnJvciA9IGZhaWwodGhpcywgInVuZXhwZWN0ZWQgZXJyb3IiKQorICAgICAg
ICB9KTsKKworCisgICAgICAgIGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUgKyAiIC0gbWlzc2lu
ZyBhcmd1bWVudCIpLnN0ZXAoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIHJxID0gZGIu
dHJhbnNhY3Rpb24oInRlc3QiKS5vYmplY3RTdG9yZSgidGVzdCIpLmluZGV4KCJpbmRleCIpLm9w
ZW5DdXJzb3IoKTsKKworICAgICAgICAgICAgcnEub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMo
ZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1
bHQ7CisKKyAgICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKHsgbmFtZTogIlR5cGVFcnJvciIg
fSwKKyAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1cnNvci5hZHZhbmNlKCk7IH0p
OworCisgICAgICAgICAgICAgICAgdGhpcy5kb25lKCk7CisgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgIHJxLm9uZXJyb3IgPSBmYWlsKHRoaXMsICJ1bmV4cGVjdGVkIGVycm9yIikKKyAgICAg
ICAgfSk7CisKKworICAgICAgICBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlICsgIiAtIHBhc3Mg
bmVnYXRpdmUgbnVtYmVycyIpLnN0ZXAoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIHJx
ID0gZGIudHJhbnNhY3Rpb24oInRlc3QiKS5vYmplY3RTdG9yZSgidGVzdCIpLmluZGV4KCJpbmRl
eCIpLm9wZW5DdXJzb3IoKTsKKworICAgICAgICAgICAgcnEub25zdWNjZXNzID0gdGhpcy5zdGVw
X2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdl
dC5yZXN1bHQ7CisKKyAgICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKHsgbmFtZTogIlR5cGVF
cnJvciIgfSwKKyAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1cnNvci5hZHZhbmNl
KC0xKTsgfSk7CisKKyAgICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKHsgbmFtZTogIlR5cGVF
cnJvciIgfSwKKyAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1cnNvci5hZHZhbmNl
KE5hTik7IH0pOworCisgICAgICAgICAgICAgICAgYXNzZXJ0X3Rocm93cyh7IG5hbWU6ICJUeXBl
RXJyb3IiIH0sCisgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBjdXJzb3IuYWR2YW5j
ZSgwKTsgfSk7CisKKyAgICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKHsgbmFtZTogIlR5cGVF
cnJvciIgfSwKKyAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1cnNvci5hZHZhbmNl
KC0wKTsgfSk7CisKKyAgICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKHsgbmFtZTogIlR5cGVF
cnJvciIgfSwKKyAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1cnNvci5hZHZhbmNl
KEluZmluaXR5KTsgfSk7CisKKyAgICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKHsgbmFtZTog
IlR5cGVFcnJvciIgfSwKKyAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1cnNvci5h
ZHZhbmNlKC1JbmZpbml0eSk7IH0pOworCisgICAgICAgICAgICAgICAgdmFyIG15dmFyID0gLTk5
OTk5OTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKHsgbmFtZTogIlR5cGVFcnJvciIg
fSwKKyAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1cnNvci5hZHZhbmNlKG15dmFy
KTsgfSk7CisKKyAgICAgICAgICAgICAgICB0aGlzLmRvbmUoKTsKKyAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgcnEub25lcnJvciA9IGZhaWwodGhpcywgInVuZXhwZWN0ZWQgZXJyb3IiKQor
ICAgICAgICB9KTsKKworCisgICAgICAgIGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUgKyAiIC0g
Z290IHZhbHVlIG5vdCBzZXQgb24gZXhjZXB0aW9uIikuc3RlcChmdW5jdGlvbihlKSB7CisgICAg
ICAgICAgICB2YXIgY291bnQgPSAwOworICAgICAgICAgICAgdmFyIHJxID0gZGIudHJhbnNhY3Rp
b24oInRlc3QiKS5vYmplY3RTdG9yZSgidGVzdCIpLmluZGV4KCJpbmRleCIpLm9wZW5DdXJzb3Io
KTsKKworICAgICAgICAgICAgcnEub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24o
ZSkgeworICAgICAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAg
ICAgICAgICAgICAgaWYgKCFjdXJzb3IpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50LCAyLCAiY291bnQgcnVucyIpOworICAgICAgICAg
ICAgICAgICAgICB0aGlzLmRvbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGFzc2VydF90aHJvd3MoeyBuYW1lOiAi
VHlwZUVycm9yIiB9LAorICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbigpIHsgY3Vyc29yLmFk
dmFuY2UoMCk7IH0pOworCisgICAgICAgICAgICAgICAgY3Vyc29yLmFkdmFuY2UoMSk7CisgICAg
ICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgcnEub25l
cnJvciA9IGZhaWwodGhpcywgInVuZXhwZWN0ZWQgZXJyb3IiKQorICAgICAgICB9KTsKKworCisg
ICAgICAgIC8vIFN0b3AgYmxvY2tpbmcgdGhlIHRlc3Rpbmcgc3lzdGVtIGZyb20gaGVyZW9uCisg
ICAgICAgIGRvbmUoKTsKKyAgICB9CisKKzwvc2NyaXB0PgorCis8ZGl2IGlkPWxvZz48L2Rpdj4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29y
LWFkdmFuY2UtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmN1cnNvci1hZHZhbmNlLXByaXZhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUzMjMzMTUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1hZHZhbmNlLXByaXZh
dGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAorCitQQVNTIElEQkN1cnNvci5hZHZhbmNl
KCkgLSBhZHZhbmNlcyAKK1BBU1MgSURCQ3Vyc29yLmFkdmFuY2UoKSAtIGFkdmFuY2VzIGJhY2t3
YXJkcyAKK1BBU1MgSURCQ3Vyc29yLmFkdmFuY2UoKSAtIHNraXAgZmFyIGZvcndhcmQgCitQQVNT
IElEQkN1cnNvci5hZHZhbmNlKCkgLSB3aXRoaW4gcmFuZ2UgCitQQVNTIElEQkN1cnNvci5hZHZh
bmNlKCkgLSB3aXRoaW4gc2luZ2xlIGtleSByYW5nZSAKK1BBU1MgSURCQ3Vyc29yLmFkdmFuY2Uo
KSAtIHdpdGhpbiBzaW5nbGUga2V5IHJhbmdlLCB3aXRoIHNldmVyYWwgcmVzdWx0cyAKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3ItYWR2
YW5jZS1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmN1cnNvci1hZHZhbmNlLXByaXZhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5hM2JmZDg0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJjdXJzb3ItYWR2YW5jZS1wcml2YXRlLmh0bWwKQEAgLTAsMCArMSwy
NDMgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklEQkN1cnNvci5hZHZhbmNlKCk8L3RpdGxl
PgorPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRs
ZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5q
cyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisKKyAgICB2YXIgZGIsIG9wZW47CisKKyAgICBzZXR1
cChmdW5jdGlvbigpIHsKKyAgICAgICAgb3BlbiA9IGluZGV4ZWREQi5vcGVuKCJ0ZXN0ZGItIiAr
IG5ldyBEYXRlKCkuZ2V0VGltZSgpKTsKKyAgICAgICAgb3Blbi5vbnVwZ3JhZGVuZWVkZWQgPSBm
dW5jdGlvbihlKSB7CisgICAgICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAg
ICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0Iik7CisgICAgICAg
ICAgICBvYmpTdG9yZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAiIik7CisKKyAgICAgICAgICAgIG9i
alN0b3JlLmFkZCgiY3VwY2FrZSIsIDUpOworICAgICAgICAgICAgb2JqU3RvcmUuYWRkKCJwYW5j
YWtlIiwgMyk7IC8vIFllcywgaXQgaXMgaW50ZW5kZWQKKyAgICAgICAgICAgIG9ialN0b3JlLmFk
ZCgicGllIiwgICAgIDEpOworICAgICAgICAgICAgb2JqU3RvcmUuYWRkKCJwaWUiLCAgICAgNCk7
CisgICAgICAgICAgICBvYmpTdG9yZS5hZGQoInRhY28iLCAgICAyKTsKKyAgICAgICAgfTsKKyAg
ICB9LAorICAgIHsgZXhwbGljaXRfZG9uZTogdHJ1ZSB9KTsKKworCisgICAgb3Blbi5vbnN1Y2Nl
c3MgPSBmdW5jdGlvbigpIHsKKworICAgICAgICBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlICsg
IiAtIGFkdmFuY2VzIikuc3RlcChmdW5jdGlvbihlKSB7CisgICAgICAgICAgICB2YXIgY291bnQg
PSAwOworICAgICAgICAgICAgdmFyIHJxID0gZGIudHJhbnNhY3Rpb24oInRlc3QiKS5vYmplY3RT
dG9yZSgidGVzdCIpLmluZGV4KCJpbmRleCIpLm9wZW5DdXJzb3IoKTsKKworICAgICAgICAgICAg
cnEub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAg
ICAgIGlmICghZS50YXJnZXQucmVzdWx0KSB7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l
cXVhbHMoY291bnQsIDMsICJjb3VudCIpOworICAgICAgICAgICAgICAgICAgICB0aGlzLmRvbmUo
KTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OworCisgICAgICAgICAgICAg
ICAgc3dpdGNoKGNvdW50KSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgMDoKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLCAiY3VwY2FrZSIpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IucHJpbWFyeUtleSwg
NSk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgICAg
ICBjYXNlIDE6CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci52
YWx1ZSwgInBpZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJz
b3IucHJpbWFyeUtleSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAg
ICAgICAgICAgICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKGN1cnNvci52YWx1ZSwgInRhY28iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFz
c2VydF9lcXVhbHMoY3Vyc29yLnByaW1hcnlLZXksIDIpOworICAgICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGFzc2VydF91bnJlYWNoZWQoIlVuZXhwZWN0ZWQgY291bnQ6ICIgKyBjb3VudCk7
CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAg
ICAgICAgICBjdXJzb3IuYWR2YW5jZSgyKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
cnEub25lcnJvciA9IGZhaWwodGhpcywgInVuZXhwZWN0ZWQgZXJyb3IiKQorICAgICAgICB9KTsK
KworICAgICAgICBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlICsgIiAtIGFkdmFuY2VzIGJhY2t3
YXJkcyIpLnN0ZXAoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIGNvdW50ID0gMDsKKyAg
ICAgICAgICAgIHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0Iikub2JqZWN0U3RvcmUoInRl
c3QiKS5pbmRleCgiaW5kZXgiKS5vcGVuQ3Vyc29yKG51bGwsICJwcmV2Iik7CisKKyAgICAgICAg
ICAgIHJxLm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAg
ICAgICAgICBpZiAoIWUudGFyZ2V0LnJlc3VsdCkgeworICAgICAgICAgICAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKGNvdW50LCAzLCAiY291bnQiKTsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5k
b25lKCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICAg
ICAgICAgIHN3aXRjaChjb3VudCkgeworICAgICAgICAgICAgICAgICAgICBjYXNlIDA6CisgICAg
ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci52YWx1ZSwgInRhY28iKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnByaW1hcnlLZXks
IDIpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAg
ICAgY2FzZSAxOgorICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3Iu
dmFsdWUsICJwaWUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vy
c29yLnByaW1hcnlLZXksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAg
ICAgICAgICAgICAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhjdXJzb3IudmFsdWUsICJjdXBjYWtlIik7CisgICAgICAgICAgICAgICAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKGN1cnNvci5wcmltYXJ5S2V5LCA1KTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAg
ICAgICAgICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCJVbmV4cGVjdGVkIGNvdW50OiAiICsgY291
bnQpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGNvdW50Kys7CisgICAg
ICAgICAgICAgICAgY3Vyc29yLmFkdmFuY2UoMik7CisgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIHJxLm9uZXJyb3IgPSBmYWlsKHRoaXMsICJ1bmV4cGVjdGVkIGVycm9yIikKKyAgICAgICAg
fSk7CisKKyAgICAgICAgYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSArICIgLSBza2lwIGZhciBm
b3J3YXJkIikuc3RlcChmdW5jdGlvbihlKSB7CisgICAgICAgICAgICB2YXIgY291bnQgPSAwOwor
ICAgICAgICAgICAgdmFyIHJxID0gZGIudHJhbnNhY3Rpb24oInRlc3QiKS5vYmplY3RTdG9yZSgi
dGVzdCIpLmluZGV4KCJpbmRleCIpCisgICAgICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29y
KCk7CisKKyAgICAgICAgICAgIHJxLm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9u
KGUpIHsKKyAgICAgICAgICAgICAgICBpZiAoIWUudGFyZ2V0LnJlc3VsdCkgeworICAgICAgICAg
ICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50LCAxLCAiY291bnQiKTsKKyAgICAgICAgICAg
ICAgICAgICAgdGhpcy5kb25lKCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3Vs
dDsKKworICAgICAgICAgICAgICAgIHN3aXRjaChjb3VudCkgeworICAgICAgICAgICAgICAgICAg
ICBjYXNlIDA6CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci52
YWx1ZSwgImN1cGNha2UiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMo
Y3Vyc29yLnByaW1hcnlLZXksIDUpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisK
KyAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGFz
c2VydF91bnJlYWNoZWQoIlVuZXhwZWN0ZWQgY291bnQ6ICIgKyBjb3VudCk7CisgICAgICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgICAgICAgICBjdXJz
b3IuYWR2YW5jZSgxMDAwMDApOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBycS5vbmVy
cm9yID0gZmFpbCh0aGlzLCAidW5leHBlY3RlZCBlcnJvciIpCisgICAgICAgIH0pOworCisKKyAg
ICAgICAgYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSArICIgLSB3aXRoaW4gcmFuZ2UiKS5zdGVw
KGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBjb3VudCA9IDA7CisgICAgICAgICAgICB2
YXIgcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIpLm9iamVjdFN0b3JlKCJ0ZXN0IikuaW5kZXgo
ImluZGV4IikKKyAgICAgICAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IoSURCS2V5UmFuZ2Uu
bG93ZXJCb3VuZCgiY3VwY2FrZSIsIHRydWUpKTsKKworICAgICAgICAgICAgcnEub25zdWNjZXNz
ID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAgIGlmICghZS50
YXJnZXQucmVzdWx0KSB7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY291bnQs
IDIsICJjb3VudCIpOworICAgICAgICAgICAgICAgICAgICB0aGlzLmRvbmUoKTsKKyAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB2
YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OworCisgICAgICAgICAgICAgICAgc3dpdGNoKGNv
dW50KSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLCAicGFuY2FrZSIpOworICAgICAgICAgICAg
ICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IucHJpbWFyeUtleSwgMyk7CisgICAgICAg
ICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgICAgICBjYXNlIDE6Cisg
ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci52YWx1ZSwgInBpZSIp
OworICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IucHJpbWFyeUtl
eSwgNCk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAg
ICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X3VucmVhY2hlZCgi
VW5leHBlY3RlZCBjb3VudDogIiArIGNvdW50KTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAg
ICAgICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgICAgIGN1cnNvci5hZHZhbmNlKDIpOwor
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBycS5vbmVycm9yID0gZmFpbCh0aGlzLCAidW5l
eHBlY3RlZCBlcnJvciIpCisgICAgICAgIH0pOworCisKKyAgICAgICAgYXN5bmNfdGVzdChkb2N1
bWVudC50aXRsZSArICIgLSB3aXRoaW4gc2luZ2xlIGtleSByYW5nZSIpLnN0ZXAoZnVuY3Rpb24o
ZSkgeworICAgICAgICAgICAgdmFyIGNvdW50ID0gMDsKKyAgICAgICAgICAgIHZhciBycSA9IGRi
LnRyYW5zYWN0aW9uKCJ0ZXN0Iikub2JqZWN0U3RvcmUoInRlc3QiKS5pbmRleCgiaW5kZXgiKQor
ICAgICAgICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcigicGFuY2FrZSIpOworCisgICAgICAg
ICAgICBycS5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAg
ICAgICAgICAgaWYgKCFlLnRhcmdldC5yZXN1bHQpIHsKKyAgICAgICAgICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhjb3VudCwgMSwgImNvdW50Iik7CisgICAgICAgICAgICAgICAgICAgIHRoaXMu
ZG9uZSgpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAg
ICAgICAgICBzd2l0Y2goY291bnQpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAwOgorICAg
ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUsICJwYW5jYWtl
Iik7CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5wcmltYXJ5
S2V5LCAzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAg
ICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfdW5yZWFjaGVk
KCJVbmV4cGVjdGVkIGNvdW50OiAiICsgY291bnQpOworICAgICAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgICAgICAgICAgY3Vyc29yLmFkdmFuY2UoMSk7
CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHJxLm9uZXJyb3IgPSBmYWlsKHRoaXMsICJ1
bmV4cGVjdGVkIGVycm9yIikKKyAgICAgICAgfSk7CisKKworICAgICAgICBhc3luY190ZXN0KGRv
Y3VtZW50LnRpdGxlICsgIiAtIHdpdGhpbiBzaW5nbGUga2V5IHJhbmdlLCB3aXRoIHNldmVyYWwg
cmVzdWx0cyIpLnN0ZXAoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIGNvdW50ID0gMDsK
KyAgICAgICAgICAgIHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0Iikub2JqZWN0U3RvcmUo
InRlc3QiKS5pbmRleCgiaW5kZXgiKQorICAgICAgICAgICAgICAgICAgICAgICAub3BlbkN1cnNv
cigicGllIik7CisKKyAgICAgICAgICAgIHJxLm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5jKGZ1
bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICBpZiAoIWUudGFyZ2V0LnJlc3VsdCkgeworICAg
ICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50LCAyLCAiY291bnQiKTsKKyAgICAg
ICAgICAgICAgICAgICAgdGhpcy5kb25lKCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0
LnJlc3VsdDsKKworICAgICAgICAgICAgICAgIHN3aXRjaChjb3VudCkgeworICAgICAgICAgICAg
ICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1
cnNvci52YWx1ZSwgInBpZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhjdXJzb3IucHJpbWFyeUtleSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsK
KworICAgICAgICAgICAgICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAgICAgICAgICBh
c3NlcnRfZXF1YWxzKGN1cnNvci52YWx1ZSwgInBpZSIpOworICAgICAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IucHJpbWFyeUtleSwgNCk7CisgICAgICAgICAgICAgICAg
ICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0X3VucmVhY2hlZCgiVW5leHBlY3RlZCBjb3VudDogIiArIGNv
dW50KTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBjb3VudCsrOworICAg
ICAgICAgICAgICAgIGN1cnNvci5hZHZhbmNlKDEpOworICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICBycS5vbmVycm9yID0gZmFpbCh0aGlzLCAidW5leHBlY3RlZCBlcnJvciIpCisgICAgICAg
IH0pOworCisKKyAgICAgICAgLy8gU3RvcCBibG9ja2luZyB0aGUgdGVzdGluZyBzeXN0ZW0gZnJv
bSBoZXJlb24KKyAgICAgICAgZG9uZSgpOworICAgIH0KKworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9
ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmN1cnNvci1jb250aW51ZS1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yLWNvbnRpbnVlLXByaXZhdGUtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFiMDlhZTIKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNv
ci1jb250aW51ZS1wcml2YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDggQEAKKworUEFTUyBJ
REJDdXJzb3IuY29udGludWUoKSAtIGNvbnRpbnVlcyAKK1BBU1MgSURCQ3Vyc29yLmNvbnRpbnVl
KCkgLSB3aXRoIGdpdmVuIGtleSAKK1BBU1MgSURCQ3Vyc29yLmNvbnRpbnVlKCkgLSBza2lwIGZh
ciBmb3J3YXJkIAorUEFTUyBJREJDdXJzb3IuY29udGludWUoKSAtIHdpdGhpbiByYW5nZSAKK1BB
U1MgSURCQ3Vyc29yLmNvbnRpbnVlKCkgLSB3aXRoaW4gc2luZ2xlIGtleSByYW5nZSAKK1BBU1Mg
SURCQ3Vyc29yLmNvbnRpbnVlKCkgLSB3aXRoaW4gc2luZ2xlIGtleSByYW5nZSwgd2l0aCBzZXZl
cmFsIHJlc3VsdHMgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiY3Vyc29yLWNvbnRpbnVlLXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yLWNvbnRpbnVlLXByaXZhdGUuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYWMxMjg1Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3ItY29udGludWUtcHJp
dmF0ZS5odG1sCkBAIC0wLDAgKzEsMjQwIEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJD
dXJzb3IuY29udGludWUoKTwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRv
Om9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgorPGxpbmsgcmVs
PWhlbHAgaHJlZj0iaHR0cDovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAv
T3ZlcnZpZXcuaHRtbCN3aWRsLUlEQkN1cnNvci1jb250aW51ZS12b2lkLWFueS1rZXkiPgorPGxp
bmsgcmVsPWFzc2VydCB0aXRsZT0iVGhlIG5leHQga2V5IHRvIHBvc2l0aW9uIHRoaXMgY3Vyc29y
IGF0Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxz
Y3JpcHQ+CisKKyAgICB2YXIgZGIsIG9wZW47CisgICAgdmFyIHN0b3JlID0gWyB7IHZhbHVlOiAi
Y3VwY2FrZSIsIGtleTogNSB9LAorICAgICAgICAgICAgICAgICAgeyB2YWx1ZTogInBhbmNha2Ui
LCBrZXk6IDMgfSwKKyAgICAgICAgICAgICAgICAgIHsgdmFsdWU6ICJwaWUiLCAgICAga2V5OiAx
IH0sCisgICAgICAgICAgICAgICAgICB7IHZhbHVlOiAicGllIiwgICAgIGtleTogNCB9LAorICAg
ICAgICAgICAgICAgICAgeyB2YWx1ZTogInRhY28iLCAgICBrZXk6IDIgfSBdOworCisgICAgc2V0
dXAoZnVuY3Rpb24oKSB7CisgICAgICAgIG9wZW4gPSBpbmRleGVkREIub3BlbigndGVzdGRiLScg
KyBuZXcgRGF0ZSgpLmdldFRpbWUoKSk7CisgICAgICAgIG9wZW4ub251cGdyYWRlbmVlZGVkID0g
ZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIG9zLCBpOworICAgICAgICAgICAgZGIgPSBl
LnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICBvcyA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0
ZXN0Iik7CisgICAgICAgICAgICBvcy5jcmVhdGVJbmRleCgiaW5kZXgiLCAiIik7CisKKyAgICAg
ICAgICAgIGZvciAoaSA9IDA7IGkgPCBzdG9yZS5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgICAg
ICBvcy5hZGQoc3RvcmVbaV0udmFsdWUsIHN0b3JlW2ldLmtleSk7CisgICAgICAgIH07CisgICAg
fSwKKyAgICB7IGV4cGxpY2l0X2RvbmU6IHRydWUgfSk7CisKKworICAgIG9wZW4ub25zdWNjZXNz
ID0gZnVuY3Rpb24oKSB7CisKKworICAgICAgICBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlICsg
IiAtIGNvbnRpbnVlcyIpLnN0ZXAoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIGNvdW50
ID0gMDsKKyAgICAgICAgICAgIHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0Iikub2JqZWN0
U3RvcmUoInRlc3QiKS5pbmRleCgiaW5kZXgiKS5vcGVuQ3Vyc29yKCk7CisKKyAgICAgICAgICAg
IHJxLm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAg
ICAgICBpZiAoIWUudGFyZ2V0LnJlc3VsdCkgeworICAgICAgICAgICAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKGNvdW50LCA1LCAnY291bnQnKTsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5kb25l
KCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICAgICAg
ICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLCBzdG9yZVtjb3VudF0udmFsdWUpOworICAg
ICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnByaW1hcnlLZXksIHN0b3JlW2NvdW50
XS5rZXkpOworCisgICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7CisKKyAgICAgICAg
ICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBycS5vbmVycm9y
ID0gZmFpbCh0aGlzLCAidW5leHBlY3RlZCBlcnJvciIpCisgICAgICAgIH0pOworCisKKyAgICAg
ICAgYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSArICIgLSB3aXRoIGdpdmVuIGtleSIpLnN0ZXAo
ZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIGNvdW50ID0gMDsKKyAgICAgICAgICAgIHZh
ciBycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0Iikub2JqZWN0U3RvcmUoInRlc3QiKS5pbmRleCgi
aW5kZXgiKS5vcGVuQ3Vyc29yKCk7CisKKyAgICAgICAgICAgIHJxLm9uc3VjY2VzcyA9IHRoaXMu
c3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICBpZiAoIWUudGFyZ2V0LnJl
c3VsdCkgeworICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50LCAzLCAnY291
bnQnKTsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5kb25lKCk7CisgICAgICAgICAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdmFyIGN1cnNv
ciA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICAgICAgICAgIHN3aXRjaChjb3VudCkgewor
ICAgICAgICAgICAgICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICAgICAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKGN1cnNvci52YWx1ZSwgImN1cGNha2UiKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnByaW1hcnlLZXksIDUpOworICAgICAgICAgICAgICAg
ICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCJwaWUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGJyZWFrOworCisgICAgICAgICAgICAgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLCAicGllIik7CisgICAgICAgICAgICAg
ICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5wcmltYXJ5S2V5LCAxKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgidGFjbyIpOworICAgICAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAyOgorICAgICAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUsICJ0YWNvIik7CisgICAg
ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5wcmltYXJ5S2V5LCAyKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgpOworICAgICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGFzc2VydF91bnJlYWNoZWQoIlVuZXhwZWN0ZWQgY291bnQ6ICIg
KyBjb3VudCk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgY291bnQrKzsK
KyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgcnEub25lcnJvciA9IGZhaWwodGhpcywgInVu
ZXhwZWN0ZWQgZXJyb3IiKQorICAgICAgICB9KTsKKworCisgICAgICAgIGFzeW5jX3Rlc3QoZG9j
dW1lbnQudGl0bGUgKyAiIC0gc2tpcCBmYXIgZm9yd2FyZCIpLnN0ZXAoZnVuY3Rpb24oZSkgewor
ICAgICAgICAgICAgdmFyIGNvdW50ID0gMDsKKyAgICAgICAgICAgIHZhciBycSA9IGRiLnRyYW5z
YWN0aW9uKCJ0ZXN0Iikub2JqZWN0U3RvcmUoInRlc3QiKS5pbmRleCgiaW5kZXgiKQorICAgICAg
ICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcigpOworCisgICAgICAgICAgICBycS5vbnN1Y2Nl
c3MgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAgICAgaWYgKCFl
LnRhcmdldC5yZXN1bHQpIHsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjb3Vu
dCwgMSwgJ2NvdW50Jyk7CisgICAgICAgICAgICAgICAgICAgIHRoaXMuZG9uZSgpOworICAgICAg
ICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgICAgICAgICBzd2l0Y2go
Y291bnQpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUsICJjdXBjYWtlIik7CisgICAgICAgICAg
ICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5wcmltYXJ5S2V5LCA1KTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6
CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCJVbmV4cGVjdGVkIGNv
dW50OiAiICsgY291bnQpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGNv
dW50Kys7CisgICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKFtdKTsgLy8gQXJyYXlzIGFy
ZSBhbHdheXMgYmlnZ2VyIHRoYW4gc3RyaW5ncworCisgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIHJxLm9uZXJyb3IgPSBmYWlsKHRoaXMsICJ1bmV4cGVjdGVkIGVycm9yMiIpCisgICAgICAg
IH0pOworCisKKyAgICAgICAgYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSArICIgLSB3aXRoaW4g
cmFuZ2UiKS5zdGVwKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBjb3VudCA9IDA7Cisg
ICAgICAgICAgICB2YXIgcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIpLm9iamVjdFN0b3JlKCJ0
ZXN0IikuaW5kZXgoImluZGV4IikKKyAgICAgICAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3Io
SURCS2V5UmFuZ2UubG93ZXJCb3VuZCgiY3VwY2FrZSIsIHRydWUpKTsKKworICAgICAgICAgICAg
cnEub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAg
ICAgIGlmICghZS50YXJnZXQucmVzdWx0KSB7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l
cXVhbHMoY291bnQsIDIsICdjb3VudCcpOworICAgICAgICAgICAgICAgICAgICB0aGlzLmRvbmUo
KTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OworCisgICAgICAgICAgICAg
ICAgc3dpdGNoKGNvdW50KSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgMDoKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLCAicGFuY2FrZSIpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IucHJpbWFyeUtleSwg
Myk7CisgICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3IuY29udGludWUoInBpZSIpOworICAg
ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAx
OgorICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUsICJw
aWUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnByaW1h
cnlLZXksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCJ6enoi
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgICAg
IGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCJVbmV4
cGVjdGVkIGNvdW50OiAiICsgY291bnQpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgICAgIGNvdW50Kys7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHJxLm9uZXJyb3Ig
PSBmYWlsKHRoaXMsICJ1bmV4cGVjdGVkIGVycm9yMSIpCisgICAgICAgIH0pOworCisKKyAgICAg
ICAgYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSArICIgLSB3aXRoaW4gc2luZ2xlIGtleSByYW5n
ZSIpLnN0ZXAoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIGNvdW50ID0gMDsKKyAgICAg
ICAgICAgIHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0Iikub2JqZWN0U3RvcmUoInRlc3Qi
KS5pbmRleCgiaW5kZXgiKQorICAgICAgICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcigicGFu
Y2FrZSIpOworCisgICAgICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhmdW5j
dGlvbihlKSB7CisgICAgICAgICAgICAgICAgaWYgKCFlLnRhcmdldC5yZXN1bHQpIHsKKyAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjb3VudCwgMSwgJ2NvdW50Jyk7CisgICAgICAg
ICAgICAgICAgICAgIHRoaXMuZG9uZSgpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5y
ZXN1bHQ7CisKKyAgICAgICAgICAgICAgICBzd2l0Y2goY291bnQpIHsKKyAgICAgICAgICAgICAg
ICAgICAgY2FzZSAwOgorICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJz
b3IudmFsdWUsICJwYW5jYWtlIik7CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKGN1cnNvci5wcmltYXJ5S2V5LCAzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGN1cnNv
ci5jb250aW51ZSgicGllIik7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAg
ICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0
X3VucmVhY2hlZCgiVW5leHBlY3RlZCBjb3VudDogIiArIGNvdW50KTsKKyAgICAgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICBycS5vbmVycm9yID0gZmFpbCh0aGlzLCAidW5leHBlY3RlZCBlcnJvcjEiKQorICAgICAg
ICB9KTsKKworCisgICAgICAgIGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUgKyAiIC0gd2l0aGlu
IHNpbmdsZSBrZXkgcmFuZ2UsIHdpdGggc2V2ZXJhbCByZXN1bHRzIikuc3RlcChmdW5jdGlvbihl
KSB7CisgICAgICAgICAgICB2YXIgY291bnQgPSAwOworICAgICAgICAgICAgdmFyIHJxID0gZGIu
dHJhbnNhY3Rpb24oInRlc3QiKS5vYmplY3RTdG9yZSgidGVzdCIpLmluZGV4KCJpbmRleCIpCisg
ICAgICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKCJwaWUiKTsKKworICAgICAgICAgICAg
cnEub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAg
ICAgIGlmICghZS50YXJnZXQucmVzdWx0KSB7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l
cXVhbHMoY291bnQsIDIsICdjb3VudCcpOworICAgICAgICAgICAgICAgICAgICB0aGlzLmRvbmUo
KTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OworCisgICAgICAgICAgICAg
ICAgc3dpdGNoKGNvdW50KSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgMDoKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLCAicGllIik7CisgICAg
ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5wcmltYXJ5S2V5LCAxKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgpOworICAgICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAxOgorICAgICAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUsICJwaWUiKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnByaW1hcnlLZXksIDQp
OworICAgICAgICAgICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7CisgICAgICAgICAg
ICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAg
ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X3VucmVhY2hlZCgiVW5leHBlY3RlZCBjb3VudDog
IiArIGNvdW50KTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBjb3VudCsr
OworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBycS5vbmVycm9yID0gZmFpbCh0aGlzLCAi
dW5leHBlY3RlZCBlcnJvcjEiKQorICAgICAgICB9KTsKKworCisgICAgICAgIC8vIFN0b3AgYmxv
Y2tpbmcgdGhlIHRlc3Rpbmcgc3lzdGVtIGZyb20gaGVyZW9uCisgICAgICAgIGRvbmUoKTsKKyAg
ICB9CisKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3ItZGlyZWN0aW9uLWluZGV4
LWtleXJhbmdlLXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJjdXJzb3ItZGlyZWN0aW9uLWluZGV4LWtleXJhbmdlLXByaXZhdGUtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI3OGFmMzIKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1
cnNvci1kaXJlY3Rpb24taW5kZXgta2V5cmFuZ2UtcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw2IEBACisKK1BBU1MgSURCQ3Vyc29yIGRpcmVjdGlvbiAtIGluZGV4IHdpdGgga2V5cmFu
Z2UgLSBuZXh0IAorUEFTUyBJREJDdXJzb3IgZGlyZWN0aW9uIC0gaW5kZXggd2l0aCBrZXlyYW5n
ZSAtIHByZXYgCitQQVNTIElEQkN1cnNvciBkaXJlY3Rpb24gLSBpbmRleCB3aXRoIGtleXJhbmdl
IC0gbmV4dHVuaXF1ZSAKK1BBU1MgSURCQ3Vyc29yIGRpcmVjdGlvbiAtIGluZGV4IHdpdGgga2V5
cmFuZ2UgLSBwcmV2dW5pcXVlIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1kaXJlY3Rpb24taW5kZXgta2V5cmFuZ2UtcHJpdmF0ZS5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3ItZGlyZWN0
aW9uLWluZGV4LWtleXJhbmdlLXByaXZhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi5hYjkxNmM3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3ItZGlyZWN0aW9uLWluZGV4LWtleXJhbmdlLXByaXZh
dGUuaHRtbApAQCAtMCwwICsxLDgyIEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJDdXJz
b3IgZGlyZWN0aW9uIC0gaW5kZXggd2l0aCBrZXlyYW5nZTwvdGl0bGU+Cis8bGluayByZWw9ImF1
dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUg
T21kYWwiPgorPGxpbmsgcmVsPWhlbHAgaHJlZj0iaHR0cDovL2R2Y3MudzMub3JnL2hnL0luZGV4
ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCNjdXJzb3ItaXRlcmF0aW9uLW9wZXJhdGlv
biI+Cis8bGluayByZWw9YXNzZXJ0IHRpdGxlPSdJZiBkaXJlY3Rpb24gaXMgIm5leHQiLCBsZXQg
Zm91bmQgcmVjb3JkIGJlIHRoZSBmaXJzdCByZWNvcmQgaW4gcmVjb3JkcyB3aGljaCBzYXRpc2Z5
IGFsbCBvZiB0aGUgZm9sbG93aW5nIHJlcXVpcmVtZW50cyc+Cis8bGluayByZWw9YXNzZXJ0IHRp
dGxlPSJJZiBwb3NpdGlvbiBpcyBkZWZpbmVkLCBhbmQgc291cmNlIGlzIGFuIGluZGV4LCB0aGUg
cmVjb3JkJ3Mga2V5IGlzIGVxdWFsIHRvIHBvc2l0aW9uIGFuZCB0aGUgcmVjb3JkJ3MgdmFsdWUg
aXMgZ3JlYXRlciB0aGFuIG9iamVjdCBzdG9yZSBwb3NpdGlvbiBvciB0aGUgcmVjb3JkJ3Mga2V5
IGlzIGdyZWF0ZXIgdGhhbiBwb3NpdGlvbi4iPgorPGxpbmsgcmVsPWFzc2VydCB0aXRsZT0nSWYg
ZGlyZWN0aW9uIGlzICJwcmV2IiwgbGV0IGZvdW5kIHJlY29yZCBiZSB0aGUgbGFzdCByZWNvcmQg
aW4gcmVjb3JkcyB3aGljaCBzYXRpc2Z5IGFsbCBvZiB0aGUgZm9sbG93aW5nIHJlcXVpcmVtZW50
cyc+Cis8bGluayByZWw9YXNzZXJ0IHRpdGxlPSJJZiBwb3NpdGlvbiBpcyBkZWZpbmVkLCBhbmQg
c291cmNlIGlzIGFuIGluZGV4LCB0aGUgcmVjb3JkJ3Mga2V5IGlzIGVxdWFsIHRvIHBvc2l0aW9u
IGFuZCB0aGUgcmVjb3JkJ3MgdmFsdWUgaXMgbGVzcyB0aGFuIG9iamVjdCBzdG9yZSBwb3NpdGlv
biBvciB0aGUgcmVjb3JkJ3Mga2V5IGlzIGxlc3MgdGhhbiBwb3NpdGlvbi4iPgorPGxpbmsgcmVs
PWFzc2VydCB0aXRsZT0iSWYgcmFuZ2UgaXMgZGVmaW5lZCwgdGhlIHJlY29yZCdzIGtleSBpcyBp
biByYW5nZS4iPgorPGxpbmsgcmVsPWFzc2VydCB0aXRsZT0iSWYgdGVtcCByZWNvcmQgaXMgZGVm
aW5lZCwgbGV0IGZvdW5kIHJlY29yZCBiZSB0aGUgZmlyc3QgcmVjb3JkIGluIHJlY29yZHMgd2hv
c2Uga2V5IGlzIGVxdWFsIHRvIHRlbXAgcmVjb3JkJ3Mga2V5LiI+Cis8bGluayByZWw9YXNzZXJ0
IHRpdGxlPSJyZWNvcmRzIGlzIGFsd2F5cyBzb3J0ZWQgaW4gYXNjZW5kaW5nIGtleSBvcmRlci4g
SW4gdGhlIGNhc2Ugb2Ygc291cmNlIGJlaW5nIGFuIGluZGV4LCByZWNvcmRzIGlzIHNlY29uZGFy
aWx5IHNvcnRlZCBpbiBhc2NlbmRpbmcgdmFsdWUgb3JkZXIuIj4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIHJlY29yZHMg
PSBbIDEzMzcsICJBbGljZSIsICJCb2IiLCAiQm9iIiwgIkdyZWciLCAiw4VrZSIsIFsiQW5uZSJd
IF07CisgICAgdmFyIGRpcmVjdGlvbnMgPSBbIm5leHQiLCAicHJldiIsICJuZXh0dW5pcXVlIiwg
InByZXZ1bmlxdWUiXTsKKyAgICB2YXIgdGVzdHMgPSB7fTsKKworICAgIGRpcmVjdGlvbnMuZm9y
RWFjaChmdW5jdGlvbihkaXIpIHsKKyAgICAgICAgdGVzdHNbZGlyXSA9IGFzeW5jX3Rlc3QoZG9j
dW1lbnQudGl0bGUgKyAnIC0gJyArIGRpcik7CisgICAgfSk7CisKKyAgICB2YXIgb3Blbl9ycSA9
IGluZGV4ZWREQi5vcGVuKCJ0ZXN0ZGItIiArIG5ldyBEYXRlKCkuZ2V0VGltZSgpICsgTWF0aC5y
YW5kb20oKSk7CisKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsK
KyAgICAgICAgdmFyIG9ialN0b3JlID0gZS50YXJnZXQucmVzdWx0LmNyZWF0ZU9iamVjdFN0b3Jl
KCJ0ZXN0Iik7CisgICAgICAgIG9ialN0b3JlLmNyZWF0ZUluZGV4KCJpZHgiLCAibmFtZSIpOwor
CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykKKyAgICAg
ICAgICAgIG9ialN0b3JlLmFkZCh7IG5hbWU6IHJlY29yZHNbaV0gfSwgaSk7CisgICAgfTsKKwor
ICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgZGIgPSBl
LnRhcmdldC5yZXN1bHQ7CisgICAgICAgIGRiLm9uZXJyb3IgPSBmYWlsX2hlbHBlcigiZGIub25l
cnJvciIpOworCisKKyAgICAgICAgLy8gVGhlIHRlc3RzCisgICAgICAgIHRlc3RkaXIoJ25leHQn
LCAgICAgICBbJ0FsaWNlOjEnLCAnQm9iOjInLCAnQm9iOjMnLCAnR3JlZzo0J10pOworICAgICAg
ICB0ZXN0ZGlyKCdwcmV2JywgICAgICAgWydHcmVnOjQnLCAgJ0JvYjozJywgJ0JvYjoyJywgJ0Fs
aWNlOjEnXSk7CisgICAgICAgIHRlc3RkaXIoJ25leHR1bmlxdWUnLCBbJ0FsaWNlOjEnLCAnQm9i
OjInLCAnR3JlZzo0J10pOworICAgICAgICB0ZXN0ZGlyKCdwcmV2dW5pcXVlJywgWydHcmVnOjQn
LCAgJ0JvYjoyJywgJ0FsaWNlOjEnXSk7CisKKworICAgICAgICAvLyBUZXN0IGZ1bmN0aW9uCisg
ICAgICAgIGZ1bmN0aW9uIHRlc3RkaXIoZGlyLCBleHBlY3QpIHsKKyAgICAgICAgICAgIHZhciBj
b3VudCA9IDA7CisgICAgICAgICAgICB2YXIgdCA9IHRlc3RzW2Rpcl07CisgICAgICAgICAgICB2
YXIgcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIpLm9iamVjdFN0b3JlKCJ0ZXN0IikuaW5kZXgo
ImlkeCIpLm9wZW5DdXJzb3IoSURCS2V5UmFuZ2UuYm91bmQoIkFBIiwgIlpaIiksIGRpcik7Cisg
ICAgICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAg
ICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgICAgICAg
ICBpZiAoIWN1cnNvcikgeworICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50
LCBleHBlY3QubGVuZ3RoLCAiY3Vyc29yIHJ1bnMiKTsKKyAgICAgICAgICAgICAgICAgICAgdC5k
b25lKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMo
Y3Vyc29yLnZhbHVlLm5hbWUgKyAiOiIgKyBjdXJzb3IucHJpbWFyeUtleSwgZXhwZWN0W2NvdW50
XSwgImN1cnNvci52YWx1ZSIpOworICAgICAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgICAg
ICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHJx
Lm9uZXJyb3IgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAgICAgZS5w
cmV2ZW50RGVmYXVsdCgpOworICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0X3VucmVhY2hlZCgicnEub25lcnJvciAtICIgKyBlLm1lc3Nh
Z2UpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9OworCisgICAgLy8gRmFpbCBo
YW5kbGluZworICAgIGZ1bmN0aW9uIGZhaWxfaGVscGVyKG5hbWUpIHsKKyAgICAgICAgcmV0dXJu
IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgZGlyZWN0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uKGRp
cikgeworICAgICAgICAgICAgICAgIHRlc3RzW2Rpcl0uc3RlcChmdW5jdGlvbigpIHsgYXNzZXJ0
X3VucmVhY2hlZChuYW1lKTsgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfTsKKyAgICB9
CisgICAgb3Blbl9ycS5vbmJsb2NrZWQgPSBmYWlsX2hlbHBlcignb3Blbl9ycS5vbmJsb2NrZWQn
KTsKKyAgICBvcGVuX3JxLm9uZXJyb3IgPSBmYWlsX2hlbHBlcignb3Blbl9ycS5vbmVycm9yJyk7
Cis8L3NjcmlwdD4KKworPGRpdiBpZD1sb2c+IDwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3ItZGlyZWN0aW9uLWluZGV4LXByaXZh
dGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJj
dXJzb3ItZGlyZWN0aW9uLWluZGV4LXByaXZhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYzYmM5YzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1kaXJlY3Rpb24taW5kZXgtcHJp
dmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACisKK1BBU1MgSURCQ3Vyc29yIGRpcmVj
dGlvbiAtIGluZGV4IC0gbmV4dCAKK1BBU1MgSURCQ3Vyc29yIGRpcmVjdGlvbiAtIGluZGV4IC0g
cHJldiAKK1BBU1MgSURCQ3Vyc29yIGRpcmVjdGlvbiAtIGluZGV4IC0gbmV4dHVuaXF1ZSAKK1BB
U1MgSURCQ3Vyc29yIGRpcmVjdGlvbiAtIGluZGV4IC0gcHJldnVuaXF1ZSAKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3ItZGlyZWN0aW9u
LWluZGV4LXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRiY3Vyc29yLWRpcmVjdGlvbi1pbmRleC1wcml2YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uOGUwMjhmZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yLWRpcmVjdGlvbi1pbmRleC1wcml2YXRl
Lmh0bWwKQEAgLTAsMCArMSw4MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+SURCQ3Vyc29y
IGRpcmVjdGlvbiAtIGluZGV4PC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWls
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+CisgICAgdmFyIHJlY29yZHMgPSBbICJBbGljZSIsICJCb2IiLCAiQm9iIiwgIkdy
ZWciIF07CisgICAgdmFyIGRpcmVjdGlvbnMgPSBbIm5leHQiLCAicHJldiIsICJuZXh0dW5pcXVl
IiwgInByZXZ1bmlxdWUiXTsKKyAgICB2YXIgdGVzdHMgPSB7fTsKKworICAgIGRpcmVjdGlvbnMu
Zm9yRWFjaChmdW5jdGlvbihkaXIpIHsKKyAgICAgICAgdGVzdHNbZGlyXSA9IGFzeW5jX3Rlc3Qo
ZG9jdW1lbnQudGl0bGUgKyAnIC0gJyArIGRpcik7CisgICAgfSk7CisKKyAgICB2YXIgb3Blbl9y
cSA9IGluZGV4ZWREQi5vcGVuKCJ0ZXN0ZGItIiArIG5ldyBEYXRlKCkuZ2V0VGltZSgpICsgTWF0
aC5yYW5kb20oKSk7CisKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUp
IHsKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZS50YXJnZXQucmVzdWx0LmNyZWF0ZU9iamVjdFN0
b3JlKCJ0ZXN0Iik7CisgICAgICAgIG9ialN0b3JlLmNyZWF0ZUluZGV4KCJpZHgiLCAibmFtZSIp
OworCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykKKyAg
ICAgICAgICAgIG9ialN0b3JlLmFkZCh7IG5hbWU6IHJlY29yZHNbaV0gfSwgaSk7CisgICAgfTsK
KworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgZGIg
PSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgIGRiLm9uZXJyb3IgPSBmYWlsX2hlbHBlcigiZGIu
b25lcnJvciIpOworCisKKyAgICAgICAgLy8gVGhlIHRlc3RzCisgICAgICAgIHRlc3RkaXIoJ25l
eHQnLCAgICAgICBbJ0FsaWNlOjAnLCAnQm9iOjEnLCAnQm9iOjInLCAnR3JlZzozJ10pOworICAg
ICAgICB0ZXN0ZGlyKCdwcmV2JywgICAgICAgWydHcmVnOjMnLCAgJ0JvYjoyJywgJ0JvYjoxJywg
J0FsaWNlOjAnXSk7CisgICAgICAgIHRlc3RkaXIoJ25leHR1bmlxdWUnLCBbJ0FsaWNlOjAnLCAn
Qm9iOjEnLCAnR3JlZzozJ10pOworICAgICAgICB0ZXN0ZGlyKCdwcmV2dW5pcXVlJywgWydHcmVn
OjMnLCAgJ0JvYjoxJywgJ0FsaWNlOjAnXSk7CisKKworICAgICAgICAvLyBUZXN0IGZ1bmN0aW9u
CisgICAgICAgIGZ1bmN0aW9uIHRlc3RkaXIoZGlyLCBleHBlY3QpIHsKKyAgICAgICAgICAgIHZh
ciBjb3VudCA9IDA7CisgICAgICAgICAgICB2YXIgdCA9IHRlc3RzW2Rpcl07CisgICAgICAgICAg
ICB2YXIgcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIpLm9iamVjdFN0b3JlKCJ0ZXN0IikuaW5k
ZXgoImlkeCIpLm9wZW5DdXJzb3IodW5kZWZpbmVkLCBkaXIpOworICAgICAgICAgICAgcnEub25z
dWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAgIHZhciBj
dXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICAgICAgaWYgKCFjdXJzb3IpIHsK
KyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjb3VudCwgZXhwZWN0Lmxlbmd0aCwg
ImN1cnNvciBydW5zIik7CisgICAgICAgICAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci52YWx1ZS5uYW1l
ICsgIjoiICsgY3Vyc29yLnByaW1hcnlLZXksIGV4cGVjdFtjb3VudF0sICJjdXJzb3IudmFsdWUi
KTsKKyAgICAgICAgICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgICAgIGN1cnNvci5jb250
aW51ZSgpOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBycS5vbmVycm9yID0gdC5zdGVw
X2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsK
KyAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpOworICAgICAgICAgICAgICAgIGFz
c2VydF91bnJlYWNoZWQoInJxLm9uZXJyb3IgLSAiICsgZS5tZXNzYWdlKTsKKyAgICAgICAgICAg
IH0pOworICAgICAgICB9CisgICAgfTsKKworICAgIC8vIEZhaWwgaGFuZGxpbmcKKyAgICBmdW5j
dGlvbiBmYWlsX2hlbHBlcihuYW1lKSB7CisgICAgICAgIHJldHVybiBmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgIGRpcmVjdGlvbnMuZm9yRWFjaChmdW5jdGlvbihkaXIpIHsKKyAgICAgICAgICAg
ICAgICB0ZXN0c1tkaXJdLnN0ZXAoZnVuY3Rpb24oKSB7IGFzc2VydF91bnJlYWNoZWQobmFtZSk7
IH0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH07CisgICAgfQorICAgIG9wZW5fcnEub25i
bG9ja2VkID0gZmFpbF9oZWxwZXIoJ29wZW5fcnEub25ibG9ja2VkJyk7CisgICAgb3Blbl9ycS5v
bmVycm9yID0gZmFpbF9oZWxwZXIoJ29wZW5fcnEub25lcnJvcicpOworPC9zY3JpcHQ+CisKKzxk
aXYgaWQ9bG9nPiA8L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRiY3Vyc29yLWRpcmVjdGlvbi1vYmplY3RzdG9yZS1rZXlyYW5nZS1wcml2YXRl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vy
c29yLWRpcmVjdGlvbi1vYmplY3RzdG9yZS1rZXlyYW5nZS1wcml2YXRlLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNDM4ODFhCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3ItZGlyZWN0
aW9uLW9iamVjdHN0b3JlLWtleXJhbmdlLXByaXZhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
NiBAQAorCitQQVNTIElEQkN1cnNvciBkaXJlY3Rpb24gLSBvYmplY3Qgc3RvcmUgd2l0aCBrZXly
YW5nZSAtIG5leHQgCitQQVNTIElEQkN1cnNvciBkaXJlY3Rpb24gLSBvYmplY3Qgc3RvcmUgd2l0
aCBrZXlyYW5nZSAtIHByZXYgCitQQVNTIElEQkN1cnNvciBkaXJlY3Rpb24gLSBvYmplY3Qgc3Rv
cmUgd2l0aCBrZXlyYW5nZSAtIG5leHR1bmlxdWUgCitQQVNTIElEQkN1cnNvciBkaXJlY3Rpb24g
LSBvYmplY3Qgc3RvcmUgd2l0aCBrZXlyYW5nZSAtIHByZXZ1bmlxdWUgCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yLWRpcmVjdGlvbi1v
YmplY3RzdG9yZS1rZXlyYW5nZS1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1kaXJlY3Rpb24tb2JqZWN0c3RvcmUta2V5cmFuZ2UtcHJp
dmF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlhZTdlZjUKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1
cnNvci1kaXJlY3Rpb24tb2JqZWN0c3RvcmUta2V5cmFuZ2UtcHJpdmF0ZS5odG1sCkBAIC0wLDAg
KzEsNzcgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklEQkN1cnNvciBkaXJlY3Rpb24gLSBv
YmplY3Qgc3RvcmUgd2l0aCBrZXlyYW5nZTwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgaHJl
Zj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgor
PGxpbmsgcmVsPWhlbHAgaHJlZj0iaHR0cDovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXct
ZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCNjdXJzb3ItaXRlcmF0aW9uLW9wZXJhdGlvbiI+Cis8bGlu
ayByZWw9YXNzZXJ0IHRpdGxlPSdJZiBkaXJlY3Rpb24gaXMgIm5leHQiLCBsZXQgZm91bmQgcmVj
b3JkIGJlIHRoZSBmaXJzdCByZWNvcmQgaW4gcmVjb3JkcyB3aGljaCBzYXRpc2Z5IGFsbCBvZiB0
aGUgZm9sbG93aW5nIHJlcXVpcmVtZW50cyc+Cis8bGluayByZWw9YXNzZXJ0IHRpdGxlPSdJZiBk
aXJlY3Rpb24gaXMgInByZXYiLCBsZXQgZm91bmQgcmVjb3JkIGJlIHRoZSBsYXN0IHJlY29yZCBp
biByZWNvcmRzIHdoaWNoIHNhdGlzZnkgYWxsIG9mIHRoZSBmb2xsb3dpbmcgcmVxdWlyZW1lbnRz
Jz4KKzxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9IklmIHJhbmdlIGlzIGRlZmluZWQsIHRoZSByZWNv
cmQncyBrZXkgaXMgaW4gcmFuZ2UuIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5q
cyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIHJlY29yZHMgPSBbIDEzMzcsICJBbGlj
ZSIsICJCb2IiLCAiR3JlZyIsICLDhWtlIiwgWyJBbm5lIl0gXTsKKyAgICB2YXIgZGlyZWN0aW9u
cyA9IFsibmV4dCIsICJwcmV2IiwgIm5leHR1bmlxdWUiLCAicHJldnVuaXF1ZSJdOworICAgIHZh
ciB0ZXN0cyA9IHt9OworCisgICAgZGlyZWN0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uKGRpcikgewor
ICAgICAgICB0ZXN0c1tkaXJdID0gYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSArICcgLSAnICsg
ZGlyKTsKKyAgICB9KTsKKworICAgIHZhciBvcGVuX3JxID0gaW5kZXhlZERCLm9wZW4oInRlc3Rk
Yi0iICsgbmV3IERhdGUoKS5nZXRUaW1lKCkgKyBNYXRoLnJhbmRvbSgpKTsKKworICAgIG9wZW5f
cnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgb2JqU3RvcmUg
PSBlLnRhcmdldC5yZXN1bHQuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiKTsKKworICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspCisgICAgICAgICAgICBvYmpT
dG9yZS5hZGQocmVjb3Jkc1tpXSwgcmVjb3Jkc1tpXSk7CisgICAgfTsKKworICAgIG9wZW5fcnEu
b25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgZGIgPSBlLnRhcmdldC5yZXN1
bHQ7CisgICAgICAgIGRiLm9uZXJyb3IgPSBmYWlsX2hlbHBlcigiZGIub25lcnJvciIpOworCisK
KyAgICAgICAgLy8gVGhlIHRlc3RzCisgICAgICAgIHRlc3RkaXIoJ25leHQnLCAgICAgICBbJ0Fs
aWNlJywgJ0JvYicsICdHcmVnJ10pOworICAgICAgICB0ZXN0ZGlyKCdwcmV2JywgICAgICAgWydH
cmVnJywgJ0JvYicsICdBbGljZSddKTsKKyAgICAgICAgdGVzdGRpcignbmV4dHVuaXF1ZScsIFsn
QWxpY2UnLCAnQm9iJywgJ0dyZWcnXSk7CisgICAgICAgIHRlc3RkaXIoJ3ByZXZ1bmlxdWUnLCBb
J0dyZWcnLCAnQm9iJywgJ0FsaWNlJ10pOworCisKKyAgICAgICAgLy8gVGVzdCBmdW5jdGlvbgor
ICAgICAgICBmdW5jdGlvbiB0ZXN0ZGlyKGRpciwgZXhwZWN0KSB7CisgICAgICAgICAgICB2YXIg
Y291bnQgPSAwOworICAgICAgICAgICAgdmFyIHQgPSB0ZXN0c1tkaXJdOworICAgICAgICAgICAg
dmFyIHJxID0gZGIudHJhbnNhY3Rpb24oInRlc3QiKS5vYmplY3RTdG9yZSgidGVzdCIpLm9wZW5D
dXJzb3IoSURCS2V5UmFuZ2UuYm91bmQoIkFBIiwgIlpaIiksIGRpcik7CisgICAgICAgICAgICBy
cS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAgICAg
dmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgICAgICAgICBpZiAoIWN1cnNv
cikgeworICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50LCBleHBlY3QubGVu
Z3RoLCAiY3Vyc29yIHJ1bnMiKTsKKyAgICAgICAgICAgICAgICAgICAgdC5kb25lKCk7CisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVl
LCBleHBlY3RbY291bnRdLCAiY3Vyc29yLnZhbHVlIik7CisgICAgICAgICAgICAgICAgY291bnQr
KzsKKyAgICAgICAgICAgICAgICBjdXJzb3IuY29udGludWUoKTsKKyAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgcnEub25lcnJvciA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAg
ICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CisgICAgICAgICAgICAgICAgZS5zdG9wUHJv
cGFnYXRpb24oKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCJycS5vbmVycm9y
IC0gIiArIGUubWVzc2FnZSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIH07CisK
KyAgICAvLyBGYWlsIGhhbmRsaW5nCisgICAgZnVuY3Rpb24gZmFpbF9oZWxwZXIobmFtZSkgewor
ICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBkaXJlY3Rpb25zLmZvckVh
Y2goZnVuY3Rpb24oZGlyKSB7CisgICAgICAgICAgICAgICAgdGVzdHNbZGlyXS5zdGVwKGZ1bmN0
aW9uKCkgeyBhc3NlcnRfdW5yZWFjaGVkKG5hbWUpOyB9KTsKKyAgICAgICAgICAgIH0pOworICAg
ICAgICB9OworICAgIH0KKyAgICBvcGVuX3JxLm9uYmxvY2tlZCA9IGZhaWxfaGVscGVyKCdvcGVu
X3JxLm9uYmxvY2tlZCcpOworICAgIG9wZW5fcnEub25lcnJvciA9IGZhaWxfaGVscGVyKCdvcGVu
X3JxLm9uZXJyb3InKTsKKzwvc2NyaXB0PgorCis8ZGl2IGlkPWxvZz4gPC9kaXY+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1kaXJlY3Rp
b24tb2JqZWN0c3RvcmUtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1kaXJlY3Rpb24tb2JqZWN0c3RvcmUtcHJpdmF0ZS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjU2MDI4Ywot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
Y3Vyc29yLWRpcmVjdGlvbi1vYmplY3RzdG9yZS1wcml2YXRlLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDYgQEAKKworUEFTUyBJREJDdXJzb3IgZGlyZWN0aW9uIC0gb2JqZWN0IHN0b3JlIC0gbmV4
dCAKK1BBU1MgSURCQ3Vyc29yIGRpcmVjdGlvbiAtIG9iamVjdCBzdG9yZSAtIHByZXYgCitQQVNT
IElEQkN1cnNvciBkaXJlY3Rpb24gLSBvYmplY3Qgc3RvcmUgLSBuZXh0dW5pcXVlIAorUEFTUyBJ
REJDdXJzb3IgZGlyZWN0aW9uIC0gb2JqZWN0IHN0b3JlIC0gcHJldnVuaXF1ZSAKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3ItZGlyZWN0
aW9uLW9iamVjdHN0b3JlLXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRiY3Vyc29yLWRpcmVjdGlvbi1vYmplY3RzdG9yZS1wcml2YXRlLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTlmOTgxNQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yLWRpcmVjdGlv
bi1vYmplY3RzdG9yZS1wcml2YXRlLmh0bWwKQEAgLTAsMCArMSw4MCBAQAorPCFET0NUWVBFIGh0
bWw+Cis8dGl0bGU+SURCQ3Vyc29yIGRpcmVjdGlvbiAtIG9iamVjdCBzdG9yZTwvdGl0bGU+Cis8
bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJP
ZGluIEjDuHJ0aGUgT21kYWwiPgorPGxpbmsgcmVsPWhlbHAgaHJlZj0iaHR0cDovL2R2Y3MudzMu
b3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCNjdXJzb3ItaXRlcmF0
aW9uLW9wZXJhdGlvbiI+Cis8bGluayByZWw9YXNzZXJ0IHRpdGxlPSdJZiBkaXJlY3Rpb24gaXMg
Im5leHQiLCBsZXQgZm91bmQgcmVjb3JkIGJlIHRoZSBmaXJzdCByZWNvcmQgaW4gcmVjb3JkcyB3
aGljaCBzYXRpc2Z5IGFsbCBvZiB0aGUgZm9sbG93aW5nIHJlcXVpcmVtZW50cyc+Cis8bGluayBy
ZWw9YXNzZXJ0IHRpdGxlPSJJZiBwb3NpdGlvbiBpcyBkZWZpbmVkLCBhbmQgc291cmNlIGlzIGFu
IG9iamVjdCBzdG9yZSwgdGhlIHJlY29yZCdzIGtleSBpcyBncmVhdGVyIHRoYW4gcG9zaXRpb24u
Ij4KKzxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9J0lmIGRpcmVjdGlvbiBpcyAicHJldiIsIGxldCBm
b3VuZCByZWNvcmQgYmUgdGhlIGxhc3QgcmVjb3JkIGluIHJlY29yZHMgd2hpY2ggc2F0aXNmeSBh
bGwgb2YgdGhlIGZvbGxvd2luZyByZXF1aXJlbWVudHMnPgorPGxpbmsgcmVsPWFzc2VydCB0aXRs
ZT0iSWYgcG9zaXRpb24gaXMgZGVmaW5lZCwgYW5kIHNvdXJjZSBpcyBhbiBvYmplY3Qgc3RvcmUs
IHRoZSByZWNvcmQncyBrZXkgaXMgbGVzcyB0aGFuIHBvc2l0aW9uLiI+Cis8bGluayByZWw9YXNz
ZXJ0IHRpdGxlPSJTZXQgY3Vyc29yJ3MgcG9zaXRpb24gdG8gZm91bmQgcmVjb3JkJ3Mga2V5LiBJ
ZiBzb3VyY2UgaXMgYW4gaW5kZXgsIHNldCBjdXJzb3IncyBvYmplY3Qgc3RvcmUgcG9zaXRpb24g
dG8gZm91bmQgcmVjb3JkJ3MgdmFsdWUuIj4KKzxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9IlNldCBj
dXJzb3IncyBrZXkgdG8gZm91bmQgcmVjb3JkJ3Mga2V5LiI+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciByZWNvcmRzID0g
WyAiQWxpY2UiLCAiQm9iIiwgIkdyZWciIF07CisgICAgdmFyIGRpcmVjdGlvbnMgPSBbIm5leHQi
LCAicHJldiIsICJuZXh0dW5pcXVlIiwgInByZXZ1bmlxdWUiXTsKKyAgICB2YXIgdGVzdHMgPSB7
fTsKKworICAgIGRpcmVjdGlvbnMuZm9yRWFjaChmdW5jdGlvbihkaXIpIHsKKyAgICAgICAgdGVz
dHNbZGlyXSA9IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUgKyAnIC0gJyArIGRpcik7CisgICAg
fSk7CisKKyAgICB2YXIgb3Blbl9ycSA9IGluZGV4ZWREQi5vcGVuKCJ0ZXN0ZGItIiArIG5ldyBE
YXRlKCkuZ2V0VGltZSgpICsgTWF0aC5yYW5kb20oKSk7CisKKyAgICBvcGVuX3JxLm9udXBncmFk
ZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZS50YXJnZXQu
cmVzdWx0LmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0Iik7CisKKyAgICAgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJl
Y29yZHNbaV0sIHJlY29yZHNbaV0pOworICAgIH07CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9
IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdmFyIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAg
ICBkYi5vbmVycm9yID0gZmFpbF9oZWxwZXIoImRiLm9uZXJyb3IiKTsKKworCisgICAgICAgIC8v
IFRoZSB0ZXN0cworICAgICAgICB0ZXN0ZGlyKCduZXh0JywgICAgICAgWydBbGljZScsICdCb2In
LCAnR3JlZyddKTsKKyAgICAgICAgdGVzdGRpcigncHJldicsICAgICAgIFsnR3JlZycsICdCb2In
LCAnQWxpY2UnXSk7CisgICAgICAgIHRlc3RkaXIoJ25leHR1bmlxdWUnLCBbJ0FsaWNlJywgJ0Jv
YicsICdHcmVnJ10pOworICAgICAgICB0ZXN0ZGlyKCdwcmV2dW5pcXVlJywgWydHcmVnJywgJ0Jv
YicsICdBbGljZSddKTsKKworCisgICAgICAgIC8vIFRlc3QgZnVuY3Rpb24KKyAgICAgICAgZnVu
Y3Rpb24gdGVzdGRpcihkaXIsIGV4cGVjdCkgeworICAgICAgICAgICAgdmFyIGNvdW50ID0gMDsK
KyAgICAgICAgICAgIHZhciB0ID0gdGVzdHNbZGlyXTsKKyAgICAgICAgICAgIHZhciBycSA9IGRi
LnRyYW5zYWN0aW9uKCJ0ZXN0Iikub2JqZWN0U3RvcmUoInRlc3QiKS5vcGVuQ3Vyc29yKHVuZGVm
aW5lZCwgZGlyKTsKKyAgICAgICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0
aW9uKGUpIHsKKyAgICAgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0Owor
ICAgICAgICAgICAgICAgIGlmICghY3Vyc29yKSB7CisgICAgICAgICAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoY291bnQsIGV4cGVjdC5sZW5ndGgsICJjdXJzb3IgcnVucyIpOworICAgICAgICAg
ICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUsIGV4cGVjdFtjb3VudF0sICJjdXJzb3IudmFsdWUi
KTsKKyAgICAgICAgICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgICAgIGN1cnNvci5jb250
aW51ZSgpOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBycS5vbmVycm9yID0gdC5zdGVw
X2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsK
KyAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpOworICAgICAgICAgICAgICAgIGFz
c2VydF91bnJlYWNoZWQoInJxLm9uZXJyb3IgLSAiICsgZS5tZXNzYWdlKTsKKyAgICAgICAgICAg
IH0pOworICAgICAgICB9CisgICAgfTsKKworICAgIC8vIEZhaWwgaGFuZGxpbmcKKyAgICBmdW5j
dGlvbiBmYWlsX2hlbHBlcihuYW1lKSB7CisgICAgICAgIHJldHVybiBmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgIGRpcmVjdGlvbnMuZm9yRWFjaChmdW5jdGlvbihkaXIpIHsKKyAgICAgICAgICAg
ICAgICB0ZXN0c1tkaXJdLnN0ZXAoZnVuY3Rpb24oKSB7IGFzc2VydF91bnJlYWNoZWQobmFtZSk7
IH0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH07CisgICAgfQorICAgIG9wZW5fcnEub25i
bG9ja2VkID0gZmFpbF9oZWxwZXIoJ29wZW5fcnEub25ibG9ja2VkJyk7CisgICAgb3Blbl9ycS5v
bmVycm9yID0gZmFpbF9oZWxwZXIoJ29wZW5fcnEub25lcnJvcicpOworPC9zY3JpcHQ+CisKKzxk
aXYgaWQ9bG9nPiA8L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRiY3Vyc29yLWRpcmVjdGlvbi1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yLWRpcmVjdGlvbi1wcml2YXRl
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hY2E4NDg5
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJjdXJzb3ItZGlyZWN0aW9uLXByaXZhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAor
CitQQVNTIElEQkN1cnNvci5kaXJlY3Rpb24gLSB1bmRlZmluZWQgCitQQVNTIElEQkN1cnNvci5k
aXJlY3Rpb24gLSBuZXh0IAorUEFTUyBJREJDdXJzb3IuZGlyZWN0aW9uIC0gcHJldiAKK1BBU1Mg
SURCQ3Vyc29yLmRpcmVjdGlvbiAtIG5leHR1bmlxdWUgCitQQVNTIElEQkN1cnNvci5kaXJlY3Rp
b24gLSBwcmV2dW5pcXVlIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmN1cnNvci1kaXJlY3Rpb24tcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3ItZGlyZWN0aW9uLXByaXZhdGUuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MTg5ZDU2Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3ItZGlyZWN0
aW9uLXByaXZhdGUuaHRtbApAQCAtMCwwICsxLDczIEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRs
ZT5JREJDdXJzb3IuZGlyZWN0aW9uPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJt
YWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorCisg
ICAgZnVuY3Rpb24gY3Vyc29yX2RpcmVjdGlvbihjb25zdGFudCwgZGlyKQorICAgIHsKKyAgICAg
ICAgdmFyIGRiLAorICAgICAgICAgIHQgPSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlICsgIiAt
ICIgKyBkaXIpLAorICAgICAgICAgIGV4cGVjdGVkID0gZGlyID8gZGlyIDogIm5leHQiOworCisg
ICAgICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisKKyAgICAgICAgb3Blbl9ycS5vbnVw
Z3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBkYiA9IGUudGFyZ2V0LnJl
c3VsdDsKKyAgICAgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0
ZXN0Iik7CisKKyAgICAgICAgICAgIG9ialN0b3JlLmFkZCgiZGF0YSIsICJrZXkiKTsKKyAgICAg
ICAgfTsKKworICAgICAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9u
KGUpIHsKKyAgICAgICAgICAgIHZhciBjdXJzb3JfcnEsIGNvdW50ID0gMDsKKyAgICAgICAgICAg
IHZhciBvcyA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IikKKyAgICAgICAgICAgICAgICAgICAgICAg
Lm9iamVjdFN0b3JlKCJ0ZXN0Iik7CisgICAgICAgICAgICBpZiAoZGlyKQorICAgICAgICAgICAg
ICAgIGN1cnNvcl9ycSA9IG9zLm9wZW5DdXJzb3IodW5kZWZpbmVkLCBkaXIpOworICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgIGN1cnNvcl9ycSA9IG9zLm9wZW5DdXJzb3IoKTsKKwor
ICAgICAgICAgICAgY3Vyc29yX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUp
IHsKKyAgICAgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OworCisgICAg
ICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IuZGlyZWN0aW9uLCBjb25zdGFudCwgJ2Rp
cmVjdGlvbiBjb25zdGFudCcpOworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29y
LmRpcmVjdGlvbiwgZXhwZWN0ZWQsICdkaXJlY3Rpb24nKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnRfcmVhZG9ubHkoY3Vyc29yLCAnZGlyZWN0aW9uJyk7CisKKyAgICAgICAgICAgICAgICBjb3Vu
dCsrOworICAgICAgICAgICAgICAgIGlmIChjb3VudCA+PSAyKQorICAgICAgICAgICAgICAgICAg
ICB0LmRvbmUoKTsKKyAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICB2YXIgY3Vyc29yX3Jx
MiA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IC5vYmplY3RTdG9yZSgidGVzdCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAub3Bl
bkN1cnNvcih1bmRlZmluZWQsIGNvbnN0YW50KTsKKworICAgICAgICAgICAgY3Vyc29yX3JxMi5v
bnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAgICAgdmFy
IGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVh
bHMoY3Vyc29yLmRpcmVjdGlvbiwgY29uc3RhbnQsICdkaXJlY3Rpb24gY29uc3RhbnQgKHNlY29u
ZCB0cnkpJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IuZGlyZWN0aW9u
LCBleHBlY3RlZCwgJ2RpcmVjdGlvbiAoc2Vjb25kIHRyeSknKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnRfcmVhZG9ubHkoY3Vyc29yLCAnZGlyZWN0aW9uJyk7CisKKyAgICAgICAgICAgICAgICBj
b3VudCsrOworICAgICAgICAgICAgICAgIGlmIChjb3VudCA+PSAyKQorICAgICAgICAgICAgICAg
ICAgICB0LmRvbmUoKTsKKyAgICAgICAgICAgIH0pOworCisgICAgICAgIH0pOworICAgIH0KKwor
ICAgIGN1cnNvcl9kaXJlY3Rpb24oIm5leHQiKTsKKyAgICBjdXJzb3JfZGlyZWN0aW9uKCJuZXh0
IiwgICAgICAgIm5leHQiKTsKKyAgICBjdXJzb3JfZGlyZWN0aW9uKCJwcmV2IiwgICAgICAgInBy
ZXYiKTsKKyAgICBjdXJzb3JfZGlyZWN0aW9uKCJuZXh0dW5pcXVlIiwgIm5leHR1bmlxdWUiKTsK
KyAgICBjdXJzb3JfZGlyZWN0aW9uKCJwcmV2dW5pcXVlIiwgInByZXZ1bmlxdWUiKTsKKworPC9z
Y3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1rZXktcHJpdmF0ZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1rZXktcHJpdmF0
ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWUxM2Mx
MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRiY3Vyc29yLWtleS1wcml2YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKKworUEFT
UyBJREJDdXJzb3Iua2V5IC0gMSAKK1BBU1MgSURCQ3Vyc29yLmtleSAtIGtleSAKK1BBU1MgSURC
Q3Vyc29yLmtleSAtIG15LGtleSAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJjdXJzb3Ita2V5LXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yLWtleS1wcml2YXRlLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWNiMjgyNwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yLWtleS1wcml2YXRlLmh0
bWwKQEAgLTAsMCArMSw1NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+SURCQ3Vyc29yLmtl
eTwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5j
b20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJz
dXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKworICAgIGZ1bmN0aW9uIGN1cnNvcl9r
ZXkoa2V5KQorICAgIHsKKyAgICAgICAgdmFyIGRiLAorICAgICAgICAgIHQgPSBhc3luY190ZXN0
KGRvY3VtZW50LnRpdGxlICsgIiAtICIgKyBrZXkpOworCisgICAgICAgIHZhciBvcGVuX3JxID0g
Y3JlYXRlZGIodCk7CisgICAgICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24o
ZSkgeworICAgICAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICB2YXIg
b2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIpOworCisgICAgICAgICAgICBv
YmpTdG9yZS5hZGQoImRhdGEiLCBrZXkpOworICAgICAgICB9OworCisgICAgICAgIG9wZW5fcnEu
b25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIGN1
cnNvcl9ycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IikKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC5vYmplY3RTdG9yZSgidGVzdCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAub3BlbkN1cnNvcigpOworCisgICAgICAgICAgICBjdXJzb3JfcnEub25zdWNjZXNzID0gdC5z
dGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRh
cmdldC5yZXN1bHQ7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUs
ICJkYXRhIiwgInByZXF1aXNpdGUgY3Vyc29yLnZhbHVlIik7CisKKyAgICAgICAgICAgICAgICBh
c3NlcnRfa2V5X2VxdWFscyhjdXJzb3Iua2V5LCBrZXksICdrZXknKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnRfcmVhZG9ubHkoY3Vyc29yLCAna2V5Jyk7CisKKyAgICAgICAgICAgICAgICBpZiAo
a2V5IGluc3RhbmNlb2YgQXJyYXkpIHsKKyAgICAgICAgICAgICAgICAgICAgY3Vyc29yLmtleS5w
dXNoKCJuZXciKTsKKyAgICAgICAgICAgICAgICAgICAga2V5LnB1c2goIm5ldyIpOworCisgICAg
ICAgICAgICAgICAgICAgIGFzc2VydF9rZXlfZXF1YWxzKGN1cnNvci5rZXksIGtleSwgJ2tleSBh
ZnRlciBhcnJheSBwdXNoJyk7CisKKyAgICAgICAgICAgICAgICAgICAgLy8gQnV0IHdlIGNhbiBu
b3QgY2hhbmdlIGtleSAobGlrZSByZWFkb25seSwganVzdCBhIGJpdCBkaWZmZXJlbnQpCisgICAg
ICAgICAgICAgICAgICAgIGN1cnNvci5rZXkgPSAxMDsKKyAgICAgICAgICAgICAgICAgICAgYXNz
ZXJ0X2tleV9lcXVhbHMoY3Vyc29yLmtleSwga2V5LCAna2V5IGFmdGVyIGFzc2lnbm1lbnQnKTsK
KyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAg
ICAgIH0pOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBjdXJzb3Jfa2V5KDEpOworICAgIGN1
cnNvcl9rZXkoImtleSIpOworICAgIGN1cnNvcl9rZXkoWyJteSIsICJrZXkiXSk7CisKKzwvc2Ny
aXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3ItcHJpbWFyeWtleS1wcml2YXRlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yLXByaW1h
cnlrZXktcHJpdmF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uMGIwNWI2ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRiY3Vyc29yLXByaW1hcnlrZXktcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw1IEBACisKK1BBU1MgSURCQ3Vyc29yLnByaW1hcnlLZXkgLSAxIAorUEFTUyBJREJD
dXJzb3IucHJpbWFyeUtleSAtIGtleSAKK1BBU1MgSURCQ3Vyc29yLnByaW1hcnlLZXkgLSBteSxr
ZXkgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
Y3Vyc29yLXByaW1hcnlrZXktcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJjdXJzb3ItcHJpbWFyeWtleS1wcml2YXRlLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzA3MjgzOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yLXByaW1hcnlrZXktcHJpdmF0
ZS5odG1sCkBAIC0wLDAgKzEsNjEgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklEQkN1cnNv
ci5wcmltYXJ5S2V5PC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2Rp
bmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorCisgICAgZnVuY3Rp
b24gY3Vyc29yX3ByaW1hcnlrZXkoa2V5KQorICAgIHsKKyAgICAgICAgdmFyIGRiLAorICAgICAg
ICAgIHQgPSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlICsgIiAtICIgKyBrZXkpOworCisgICAg
ICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgICAgIG9wZW5fcnEub251cGdyYWRl
bmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7
CisgICAgICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIp
OworICAgICAgICAgICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgIiIpOworCisgICAg
ICAgICAgICBvYmpTdG9yZS5hZGQoImRhdGEiLCBrZXkpOworICAgICAgICB9OworCisgICAgICAg
IG9wZW5fcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAg
ICAgdmFyIGN1cnNvcl9ycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IikKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgidGVzdCIpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAuaW5kZXgoImluZGV4IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IC5vcGVuQ3Vyc29yKCk7CisKKyAgICAgICAgICAgIGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0
ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFy
Z2V0LnJlc3VsdDsKKworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVl
LCAiZGF0YSIsICJwcmVxdWlzaXRlIGN1cnNvci52YWx1ZSIpOworICAgICAgICAgICAgICAgIGFz
c2VydF9lcXVhbHMoY3Vyc29yLmtleSwgImRhdGEiLCAicHJlcXVpc2l0ZSBjdXJzb3Iua2V5Iik7
CisKKyAgICAgICAgICAgICAgICBhc3NlcnRfa2V5X2VxdWFscyhjdXJzb3IucHJpbWFyeUtleSwg
a2V5LCAncHJpbWFyeUtleScpOworICAgICAgICAgICAgICAgIGFzc2VydF9yZWFkb25seShjdXJz
b3IsICdwcmltYXJ5S2V5Jyk7CisKKyAgICAgICAgICAgICAgICBpZiAoa2V5IGluc3RhbmNlb2Yg
QXJyYXkpIHsKKyAgICAgICAgICAgICAgICAgICAgY3Vyc29yLnByaW1hcnlLZXkucHVzaCgibmV3
Iik7CisgICAgICAgICAgICAgICAgICAgIGtleS5wdXNoKCJuZXciKTsKKworICAgICAgICAgICAg
ICAgICAgICBhc3NlcnRfa2V5X2VxdWFscyhjdXJzb3IucHJpbWFyeUtleSwga2V5LCAncHJpbWFy
eUtleSBhZnRlciBhcnJheSBwdXNoJyk7CisKKyAgICAgICAgICAgICAgICAgICAgLy8gQnV0IHdl
IGNhbiBub3QgY2hhbmdlIGtleSAobGlrZSByZWFkb25seSwganVzdCBhIGJpdCBkaWZmZXJlbnQp
CisgICAgICAgICAgICAgICAgICAgIGN1cnNvci5rZXkgPSAxMDsKKyAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0X2tleV9lcXVhbHMoY3Vyc29yLnByaW1hcnlLZXksIGtleSwgJ2tleSBhZnRlciBh
c3NpZ25tZW50Jyk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgdC5kb25l
KCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgY3Vyc29yX3By
aW1hcnlrZXkoMSk7CisgICAgY3Vyc29yX3ByaW1hcnlrZXkoImtleSIpOworICAgIGN1cnNvcl9w
cmltYXJ5a2V5KFsibXkiLCAia2V5Il0pOworCis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48
L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
Y3Vyc29yLXJldXNlZC1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRiY3Vyc29yLXJldXNlZC1wcml2YXRlLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NTgzM2VjCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3ItcmV1c2VkLXBy
aXZhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkN1cnNvciBpcyBy
ZXVzZWQgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRiY3Vyc29yLXJldXNlZC1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmN1cnNvci1yZXVzZWQtcHJpdmF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjdmOWM4YmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1yZXVzZWQtcHJpdmF0ZS5odG1sCkBA
IC0wLDAgKzEsNjkgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklEQkN1cnNvciBpcyByZXVz
ZWQ8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEu
Y29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KKzxtZXRhIHJlbD1oZWxwIGhyZWY9Imh0
dHA6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwj
d2lkbC1JREJDdXJzb3ItY29udGludWUtdm9pZC1hbnkta2V5Ij4KKzxtZXRhIHJlbD1hc3NlcnQg
dGl0bGU9Ik90aGVyd2lzZSB0aGlzIG1ldGhvZCBydW5zIHRoZSBzdGVwcyBmb3IgYXN5bmNocm9u
b3VzbHkgZXhlY3V0aW5nIGEgcmVxdWVzdC4gSG93ZXZlciwgdGhlIHN0ZXBzIGFyZSBzbGlnaHRs
eSBtb2RpZmllZCBzdWNoIHRoYXQgaW5zdGVhZCBvZiBjcmVhdGluZyBhIG5ldyBJREJSZXF1ZXN0
LCBpdCByZXVzZXMgdGhlIHJlcXVlc3Qgb3JpZ2luYWxseSBjcmVhdGVkIHdoZW4gdGhpcyBjdXJz
b3Igd2FzIGNyZWF0ZWQuIFRoZSBkb25lIGZsYWcgb24gdGhlIHJlcXVlc3QgaXMgc2V0IHRvIGZh
bHNlIGJlZm9yZSB0aGUgcmVxdWVzdCBpcyByZXR1cm5lZC4gVGhlIHN0ZXBzIGFyZSBydW4gd2l0
aCB0aGUgY3Vyc29yJ3Mgc291cmNlIGFzIHNvdXJjZSBhbmQgdGhlIHN0ZXBzIGZvciBpdGVyYXRp
bmcgYSBjdXJzb3IgYXMgb3BlcmF0aW9uLCB1c2luZyB0aGlzIGN1cnNvciBhcyBjdXJzb3IgYW5k
IHRoZSBrZXkgcGFyYW1ldGVyIGFzIGtleS4iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBw
b3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKworICAgICAgICB2YXIgZGIKKyAgICAgICAg
dmFyIG9wZW5fcnEgPSBjcmVhdGVkYihhc3luY190ZXN0KCkpCisKKyAgICAgICAgb3Blbl9ycS5v
bnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBkYiA9IGUudGFyZ2V0
LnJlc3VsdAorICAgICAgICAgICAgdmFyIG9zID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3Qi
KQorCisgICAgICAgICAgICBvcy5hZGQoImRhdGEiLCAgImsiKQorICAgICAgICAgICAgb3MuYWRk
KCJkYXRhMiIsICJrMiIpCisgICAgICAgIH0KKworICAgICAgICBvcGVuX3JxLm9uc3VjY2VzcyA9
IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBjdXJzb3IKKyAgICAgICAgICAgIHZhciBj
b3VudCA9IDAKKyAgICAgICAgICAgIHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0Iikub2Jq
ZWN0U3RvcmUoInRlc3QiKS5vcGVuQ3Vyc29yKCkKKworICAgICAgICAgICAgcnEub25zdWNjZXNz
ID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICBzd2l0Y2goY291bnQpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAg
ICBjYXNlIDA6CisgICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3IgPSBlLnRhcmdldC5yZXN1
bHQKKworICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUs
ICJkYXRhIiwgInByZXF1aXNpdGUgY3Vyc29yLnZhbHVlIikKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGN1cnNvci5jdXN0b21fY3Vyc29yX3ZhbHVlID0gMQorICAgICAgICAgICAgICAgICAgICAg
ICAgZS50YXJnZXQuY3VzdG9tX3JlcXVlc3RfdmFsdWUgPSAyCisKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGN1cnNvci5jb250aW51ZSgpCisgICAgICAgICAgICAgICAgICAgICAgICBicmVhawor
CisgICAgICAgICAgICAgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgICAgICAgICAgICAgIGFz
c2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLCAiZGF0YTIiLCAicHJlcXVpc2l0ZSBjdXJzb3IudmFs
dWUiKQorICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IuY3VzdG9t
X2N1cnNvcl92YWx1ZSwgMSwgImN1c3RvbSBjdXJzb3IgdmFsdWUiKQorICAgICAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5jdXN0b21fcmVxdWVzdF92YWx1ZSwgMiwg
ImN1c3RvbSByZXF1ZXN0IHZhbHVlIikKKworICAgICAgICAgICAgICAgICAgICAgICAgY3Vyc29y
LmFkdmFuY2UoMSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCisKKyAgICAgICAgICAg
ICAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKCEh
ZS50YXJnZXQucmVzdWx0LCAiZ290IGN1cnNvciIpCisgICAgICAgICAgICAgICAgICAgICAgICBh
c3NlcnRfZXF1YWxzKGN1cnNvci5jdXN0b21fY3Vyc29yX3ZhbHVlLCAxLCAiY3VzdG9tIGN1cnNv
ciB2YWx1ZSIpCisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0
LmN1c3RvbV9yZXF1ZXN0X3ZhbHVlLCAyLCAiY3VzdG9tIHJlcXVlc3QgdmFsdWUiKQorICAgICAg
ICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgY291bnQrKworICAgICAgICAgICAgfSkKKworICAgICAgICAgICAgcnEudHJhbnNhY3Rpb24u
b25jb21wbGV0ZSA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMoY291bnQsIDMsICJjdXJzb3IgY2FsbGJhY2sgcnVucyIpCisgICAgICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhycS5jdXN0b21fcmVxdWVzdF92YWx1ZSwgMiwgInZhcmlh
YmxlIHBsYWNlZCBvbiBvbGQgSURCUmVxdWVzdCIpCisgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhjdXJzb3IuY3VzdG9tX2N1cnNvcl92YWx1ZSwgMSwgImN1c3RvbSBjdXJzb3IgdmFsdWUg
KHRyYW5zYWN0aW9uLmNvbXBsZXRlKSIpCisgICAgICAgICAgICAgICAgdGhpcy5kb25lKCkKKyAg
ICAgICAgICAgIH0pCisgICAgICAgIH0KKworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9k
aXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1
cnNvci1zb3VyY2UtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1zb3VyY2UtcHJpdmF0ZS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjgzMWIzYQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yLXNvdXJjZS1wcml2
YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKKworUEFTUyBJREJDdXJzb3Iuc291cmNl
IC0gSURCT2JqZWN0U3RvcmUgCitQQVNTIElEQkN1cnNvci5zb3VyY2UgLSBJREJJbmRleCAKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3It
c291cmNlLXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRiY3Vyc29yLXNvdXJjZS1wcml2YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uODBkZTFjMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRiY3Vyc29yLXNvdXJjZS1wcml2YXRlLmh0bWwKQEAgLTAsMCArMSw2
OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+SURCQ3Vyc29yLnNvdXJjZTwvdGl0bGU+Cis8
bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJP
ZGluIEjDuHJ0aGUgT21kYWwiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48
L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICBzZXR1cCh7IGV4cGxpY2l0X2RvbmU6IHRydWUgfSk7
CisKKyAgICB2YXIgZGI7CisgICAgdmFyIG9wZW5fcnEgPSBpbmRleGVkREIub3BlbigndGVzdGRi
LScgKyBuZXcgRGF0ZSgpLmdldFRpbWUoKSk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQg
PSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2
YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgibXlfb2JqZWN0c3RvcmUiKTsKKyAg
ICAgICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgoIm15X2luZGV4IiwgIiIpOworCisgICAgICAgIG9i
alN0b3JlLmFkZCgiZGF0YSIsICAxKTsKKyAgICAgICAgb2JqU3RvcmUuYWRkKCJkYXRhMiIsIDIp
OworICAgIH07CisKKyAgICBmdW5jdGlvbiBjdXJzb3Jfc291cmNlKG5hbWUsIHN0cmluZ2lmaWVk
X29iamVjdCwgY3Vyc29yX3JxKSB7CisgICAgICAgIHZhciBjdXJzb3I7CisKKyAgICAgICAgY3Vy
c29yX3JxLm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAg
ICAgIGlmICghZS50YXJnZXQucmVzdWx0KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICAgICAgfQorICAgICAgICAgICAgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OworICAgICAg
ICAgICAgYXNzZXJ0X3JlYWRvbmx5KGN1cnNvciwgJ3NvdXJjZScpOworCisgICAgICAgICAgICAv
LyBEaXJlY3QgdHJ5CisgICAgICAgICAgICBhc3NlcnRfdHJ1ZShjdXJzb3Iuc291cmNlIGluc3Rh
bmNlb2YgT2JqZWN0LCAic291cmNlIGlzb2JqZWN0Iik7CisgICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKGN1cnNvci5zb3VyY2UgKyAiIiwgc3RyaW5naWZpZWRfb2JqZWN0LCAic291cmNlIik7Cisg
ICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5zb3VyY2UubmFtZSwgbmFtZSwgIm5hbWUi
KTsKKworICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7CisgICAgICAgIH0pOworCisgICAg
ICAgIGN1cnNvcl9ycS50cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gdGhpcy5zdGVwX2Z1bmMoZnVu
Y3Rpb24oZSkgeworICAgICAgICAgICAgdGhpcy5kb25lKCk7CisgICAgICAgICB9KTsKKworICAg
ICAgICBjdXJzb3JfcnEudHJhbnNhY3Rpb24ub25lcnJvciA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0
aW9uKGUpIHsKKyAgICAgICAgICAgIGFzc2VydF91bnJlYWNoZWQoIlRyYW5zYWN0aW9uIGdvdCBl
cnJvci4gIiArIChlLnRhcmdldC5lcnJvciA/IGUudGFyZ2V0LmVycm9yLm5hbWUgOiAidW5rbm93
biIpKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5j
dGlvbigpIHsKKyAgICAgICAgYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSArICcgLSBJREJPYmpl
Y3RTdG9yZScpLnN0ZXAoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBjdXJzb3Jfc291cmNlLmNh
bGwodGhpcywgIm15X29iamVjdHN0b3JlIiwgIltvYmplY3QgSURCT2JqZWN0U3RvcmVdIiwgZGIu
dHJhbnNhY3Rpb24oIm15X29iamVjdHN0b3JlIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoIm15X29iamVjdHN0b3Jl
IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAub3BlbkN1cnNvcigpKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgYXN5bmNfdGVzdChkb2N1
bWVudC50aXRsZSArICcgLSBJREJJbmRleCcpLnN0ZXAoZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICBjdXJzb3Jfc291cmNlLmNhbGwodGhpcywgIm15X2luZGV4IiwgIltvYmplY3QgSURCSW5kZXhd
IiwgZGIudHJhbnNhY3Rpb24oIm15X29iamVjdHN0b3JlIikKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoIm15X29iamVjdHN0b3Jl
IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaW5k
ZXgoIm15X2luZGV4IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAub3BlbkN1cnNvcigpKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZG9uZSgpOwor
ICAgIH07CisKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9pbmRl
eC1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXgtcHJpdmF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzZkN2Q5MwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXgt
cHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCQ3Vyc29yLmFk
dmFuY2UoKSAtIGluZGV4IC0gaXRlcmF0ZSBjdXJzb3IgbnVtYmVyIG9mIHRpbWVzIHNwZWNpZmll
ZCBieSBjb3VudCAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXgtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9pbmRleC1wcml2YXRlLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmMxZjI0NgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2Fk
dmFuY2VfaW5kZXgtcHJpdmF0ZS5odG1sCkBAIC0wLDAgKzEsNTcgQEAKKzwhRE9DVFlQRSBodG1s
PgorPHRpdGxlPklEQkN1cnNvci5hZHZhbmNlKCkgLSBpbmRleCAtIGl0ZXJhdGUgY3Vyc29yIG51
bWJlciBvZiB0aW1lcyBzcGVjaWZpZWQgYnkgY291bnQgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0
aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+Cisg
ICAgdmFyIGRiLAorICAgICAgY291bnQgPSAwLAorICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAg
ICAgIHJlY29yZHMgPSBbIHsgcEtleTogInByaW1hcnlLZXlfMCIsIGlLZXk6ICJpbmRleEtleV8w
IiB9LAorICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xIiwgaUtleTogImlu
ZGV4S2V5XzEiIH0sCisgICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzIiLCBp
S2V5OiAiaW5kZXhLZXlfMiIgfSwKKyAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlL
ZXlfMyIsIGlLZXk6ICJpbmRleEtleV8zIiB9XTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRl
ZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAg
ICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgc3RvcmUgPSBkYi5jcmVhdGVP
YmplY3RTdG9yZSgidGVzdCIsIHtrZXlQYXRoOiJwS2V5In0pOworICAgICAgICBzdG9yZS5jcmVh
dGVJbmRleCgiaWR4IiwgImlLZXkiKTsKKworICAgICAgICBmb3IodmFyIGkgPSAwOyBpIDwgcmVj
b3Jkcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgc3RvcmUuYWRkKHJlY29yZHNbaV0pOwor
ICAgICAgICB9CisgICAgfTsKKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24gKGUp
IHsKKyAgICAgICAgdmFyIGN1cnNvcl9ycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IikKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJ0ZXN0IikKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgLmluZGV4KCJpZHgiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAub3Bl
bkN1cnNvcigpOworCisgICAgICAgIGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhm
dW5jdGlvbihlKSB7CisgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0Owor
ICAgICAgICAgICAgYXNzZXJ0X3RydWUoY3Vyc29yIGluc3RhbmNlb2YgSURCQ3Vyc29yKTsKKwor
ICAgICAgICAgICAgc3dpdGNoKGNvdW50KSB7CisgICAgICAgICAgICAgICAgY2FzZSAwOgorICAg
ICAgICAgICAgICAgICAgICBjb3VudCArPSAzOworICAgICAgICAgICAgICAgICAgICBjdXJzb3Iu
YWR2YW5jZSgzKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAg
Y2FzZSAzOgorICAgICAgICAgICAgICAgICAgICB2YXIgcmVjb3JkID0gY3Vyc29yLnZhbHVlOwor
ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlY29yZC5wS2V5LCByZWNvcmRzW2Nv
dW50XS5wS2V5LCAicmVjb3JkLnBLZXkiKTsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhyZWNvcmQuaUtleSwgcmVjb3Jkc1tjb3VudF0uaUtleSwgInJlY29yZC5pS2V5Iik7Cisg
ICAgICAgICAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICBhc3NlcnRfdW5y
ZWFjaGVkKCJ1bmV4cGVjdGVkIGNvdW50Iik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKworPGRpdiBpZD1s
b2c+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4Mi1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXgyLXByaXZh
dGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjExZGUx
N2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4Mi1wcml2YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDMgQEAKKworUEFTUyBJREJDdXJzb3IuYWR2YW5jZSgpIC0gYXR0ZW1wdCB0byBwYXNzIGEgY291
bnQgcGFyYW1ldGVyIHRoYXQgaXMgbm90IGEgbnVtYmVyIAorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4Mi1wcml2
YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9h
ZHZhbmNlX2luZGV4Mi1wcml2YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uMDhmYjA1ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXgyLXByaXZhdGUuaHRtbApAQCAtMCww
ICsxLDQ3IEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJDdXJzb3IuYWR2YW5jZSgpIC0g
YXR0ZW1wdCB0byBwYXNzIGEgY291bnQgcGFyYW1ldGVyIHRoYXQgaXMgbm90IGEgbnVtYmVyPC90
aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIg
dGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Cis8bGluayByZWw9aGVscCBocmVmPSJodHRwOi8v
ZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI3dpZGwt
SURCQ3Vyc29yLWFkdmFuY2Utdm9pZC11bnNpZ25lZC1sb25nLWNvdW50Ij4KKzxsaW5rIHJlbD1h
c3NlcnQgdGl0bGU9IlRoZSB2YWx1ZSBwYXNzZWQgaW50byB0aGUgY291bnQgcGFyYW1ldGVyIHdh
cyB6ZXJvIG9yIGEgbmVnYXRpdmUgbnVtYmVyLiI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1
cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorCisgICAgdmFyIGRiLAorICAgICAgdCA9
IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUsIHt0aW1lb3V0OiAxMDAwMH0pLAorICAgICAgcmVj
b3JkcyA9IFsgeyBwS2V5OiAicHJpbWFyeUtleV8wIiwgaUtleTogImluZGV4S2V5XzAiIH0sCisg
ICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEiLCBpS2V5OiAiaW5kZXhLZXlf
MSIgfSBdOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9u
dXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1
bHQ7CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0Iiwg
e2tleVBhdGg6InBLZXkifSk7CisKKyAgICAgICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgoImluZGV4
IiwgImlLZXkiKTsKKworICAgICAgICBmb3IodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7
IGkrKykKKyAgICAgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ldKTsKKyAgICB9OworCisg
ICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBjdXJzb3Jf
cnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIC5v
YmplY3RTdG9yZSgidGVzdCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIC5pbmRleCgiaW5k
ZXgiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcigpOworCisgICAgICAg
IGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAg
ICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OworCisgICAgICAgICAgICBhc3NlcnRf
dHJ1ZShjdXJzb3IgIT0gbnVsbCwgImN1cnNvciBleGlzdCIpOworICAgICAgICAgICAgYXNzZXJ0
X3Rocm93cyhuZXcgVHlwZUVycm9yKCksCisgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1
cnNvci5hZHZhbmNlKGRvY3VtZW50KTsgfSk7CisKKyAgICAgICAgICAgIHQuZG9uZSgpOworICAg
ICAgICB9KTsKKyAgICB9OworCis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2Fk
dmFuY2VfaW5kZXgzLXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9pbmRleDMtcHJpdmF0ZS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzE2YWYzMQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2Fk
dmFuY2VfaW5kZXgzLXByaXZhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNT
IElEQkN1cnNvci5hZHZhbmNlKCkgLSBpbmRleCAtIGF0dGVtcHQgdG8gYWR2YW5jZSBiYWNrd2Fy
ZHMgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
Y3Vyc29yX2FkdmFuY2VfaW5kZXgzLXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXgzLXByaXZhdGUuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOGExYWVmCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9p
bmRleDMtcHJpdmF0ZS5odG1sCkBAIC0wLDAgKzEsNDcgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRp
dGxlPklEQkN1cnNvci5hZHZhbmNlKCkgLSBpbmRleCAtIGF0dGVtcHQgdG8gYWR2YW5jZSBiYWNr
d2FyZHM8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3Bl
cmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KKzxsaW5rIHJlbD1oZWxwIGhyZWY9
Imh0dHA6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0
bWwjd2lkbC1JREJDdXJzb3ItYWR2YW5jZS12b2lkLXVuc2lnbmVkLWxvbmctY291bnQiPgorPGxp
bmsgcmVsPWFzc2VydCB0aXRsZT0iVGhlIHZhbHVlIHBhc3NlZCBpbnRvIHRoZSBjb3VudCBwYXJh
bWV0ZXIgd2FzIHplcm8gb3IgYSBuZWdhdGl2ZSBudW1iZXIuIj4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0Ij4KKworICAgIHZhciBkYiwKKyAgICAgIHQgPSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxl
LCB7dGltZW91dDogMTAwMDB9KSwKKyAgICAgIHJlY29yZHMgPSBbIHsgcEtleTogInByaW1hcnlL
ZXlfMCIsIGlLZXk6ICJpbmRleEtleV8wIiB9LAorICAgICAgICAgICAgICAgICAgeyBwS2V5OiAi
cHJpbWFyeUtleV8xIiwgaUtleTogImluZGV4S2V5XzEiIH0gXTsKKworICAgIHZhciBvcGVuX3Jx
ID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihl
KSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgb2JqU3RvcmUg
PSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIsIHsga2V5UGF0aDoicEtleSIgfSk7CisKKyAg
ICAgICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImlLZXkiKTsKKworICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspCisgICAgICAgICAgICBvYmpT
dG9yZS5hZGQocmVjb3Jkc1tpXSk7CisgICAgfTsKKworICAgIG9wZW5fcnEub25zdWNjZXNzID0g
ZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgY3Vyc29yX3JxID0gZGIudHJhbnNhY3Rpb24oInRl
c3QiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInRlc3QiKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAuaW5kZXgoImluZGV4IikKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgLm9wZW5DdXJzb3IodW5kZWZpbmVkLCAibmV4dCIpOworCisgICAgICAgIGN1cnNv
cl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICB2
YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OworCisgICAgICAgICAgICBhc3NlcnRfdHJ1ZShj
dXJzb3IgIT0gbnVsbCwgImN1cnNvciBleGlzdCIpOworICAgICAgICAgICAgYXNzZXJ0X3Rocm93
cyhuZXcgVHlwZUVycm9yKCksCisgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1cnNvci5h
ZHZhbmNlKC0xKTsgfSk7CisKKyAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICB9KTsKKyAg
ICB9OworCis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXg1
LXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJjdXJzb3JfYWR2YW5jZV9pbmRleDUtcHJpdmF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDQxZTQ1ZQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXg1
LXByaXZhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkN1cnNvci5h
ZHZhbmNlKCkgLSBpbmRleCAtIGl0ZXJhdGUgdG8gdGhlIG5leHQgcmVjb3JkIAorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNl
X2luZGV4NS1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4NS1wcml2YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uODA2ODhmMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXg1LXByaXZhdGUu
aHRtbApAQCAtMCwwICsxLDU1IEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJDdXJzb3Iu
YWR2YW5jZSgpIC0gaW5kZXggLSBpdGVyYXRlIHRvIHRoZSBuZXh0IHJlY29yZDwvdGl0bGU+Cis8
bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJP
ZGluIEjDuHJ0aGUgT21kYWwiPgorPGxpbmsgcmVsPWhlbHAgaHJlZj0iaHR0cDovL2R2Y3MudzMu
b3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQkN1cnNv
ci1hZHZhbmNlLXZvaWQtdW5zaWduZWQtbG9uZy1jb3VudCI+Cis8bGluayByZWw9YXNzZXJ0IHRp
dGxlPSJUaGUgb3BlcmF0aW9uIHJ1bnMgdGhlIHN0ZXBzIGZvciBpdGVyYXRpbmcgYSBjdXJzb3Ig
Y291bnQgbnVtYmVyIG9mIHRpbWVzIHdpdGggbnVsbCBhcyBrZXkgYW5kIHRoaXMgY3Vyc29yIGFz
IGN1cnNvci4iPgorPGxpbmsgcmVsPWFzc2VydCB0aXRsZT0iVGhlIG51bWJlciBvZiBhZHZhbmNl
cyBmb3J3YXJkIHRoZSBjdXJzb3Igc2hvdWxkIG1ha2UuIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAg
Y291bnQgPSAwLAorICAgICAgdCA9IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUsIHt0aW1lb3V0
OiAxMDAwMH0pLAorICAgICAgcmVjb3JkcyA9IFsgeyBwS2V5OiAicHJpbWFyeUtleV8wIiwgICBp
S2V5OiAiaW5kZXhLZXlfMCIgfSwKKyAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlL
ZXlfMSIsICAgaUtleTogImluZGV4S2V5XzEiIH0sCisgICAgICAgICAgICAgICAgICB7IHBLZXk6
ICJwcmltYXJ5S2V5XzEtMiIsIGlLZXk6ICJpbmRleEtleV8xIiB9IF0sCisgICAgICBleHBlY3Rl
ZCA9IFsgeyBwS2V5OiAicHJpbWFyeUtleV8wIiwgICBpS2V5OiAiaW5kZXhLZXlfMCIgfSwKKyAg
ICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEtMiIsIGlLZXk6ICJpbmRleEtl
eV8xIiB9IF07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEu
b251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJl
c3VsdAorICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIs
IHsga2V5UGF0aDoicEtleSIgfSkKKworICAgICAgICBvYmpTdG9yZS5jcmVhdGVJbmRleCgiaW5k
ZXgiLCAiaUtleSIpCisKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0
aDsgaSsrKQorICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZHNbaV0pCisgICAgfTsKKwor
ICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgY3Vyc29y
X3JxID0gZGIudHJhbnNhY3Rpb24oInRlc3QiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAu
b2JqZWN0U3RvcmUoInRlc3QiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAuaW5kZXgoImlu
ZGV4IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IoKTsKKworICAgICAg
ICBjdXJzb3JfcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAg
ICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgICAgIGlmICghY3Vy
c29yKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjb3VudCwgZXhwZWN0ZWQubGVu
Z3RoLCAiY3Vyc29yIHJ1biBjb3VudCIpCisgICAgICAgICAgICAgICAgdC5kb25lKCkKKyAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgdmFyIHJlY29yZCA9IGN1cnNvci52YWx1ZTsKKyAgICAg
ICAgICAgIGFzc2VydF9lcXVhbHMocmVjb3JkLnBLZXksIGV4cGVjdGVkW2NvdW50XS5wS2V5LCAi
cHJpbWFyeSBrZXkiKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVjb3JkLmlLZXksIGV4
cGVjdGVkW2NvdW50XS5pS2V5LCAiaW5kZXgga2V5Iik7CisKKyAgICAgICAgICAgIGN1cnNvci5h
ZHZhbmNlKDIpOworICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgfSk7CisgICAgfTsKKzwv
c2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9pbmRleDYtcHJpdmF0ZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNv
cl9hZHZhbmNlX2luZGV4Ni1wcml2YXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi4wNzUyMTFmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9pbmRleDYtcHJpdmF0ZS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCQ3Vyc29yLmFkdmFuY2UoKSAt
IGluZGV4IC0gdGhyb3cgVHlwZUVycm9yIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4Ni1wcml2YXRlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX2lu
ZGV4Ni1wcml2YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzRk
NjUzYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXg2LXByaXZhdGUuaHRtbApAQCAtMCwwICsxLDM3IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJDdXJz
b3IuYWR2YW5jZSgpIC0gaW5kZXggLSB0aHJvdyBUeXBlRXJyb3I8L3RpdGxlPgorPGxpbmsgcmVs
PSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20iPgorPGxp
bmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXct
ZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQkN1cnNvci1hZHZhbmNlLXZvaWQtdW5zaWdu
ZWQtbG9uZy1jb3VudCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2Ny
aXB0PgorPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAg
ICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAgICByZWNvcmRzID0gW3sgcEtleTogInByaW1hcnlL
ZXlfMCIsIGlLZXk6ICJpbmRleEtleV8wIiB9LAorICAgICAgICAgICAgICAgICAgIHsgcEtleTog
InByaW1hcnlLZXlfMSIsIGlLZXk6ICJpbmRleEtleV8xIiB9XTsKKworICAgIHZhciBvcGVuX3Jx
ID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbiAo
ZXZlbnQpIHsKKyAgICAgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIg
b2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7a2V5UGF0aCA6ICJwS2V5
In0pOworICAgICAgICBvYmpTdG9yZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAiaUtleSIpOworICAg
ICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAg
ICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ldKTsKKyAgICAgICAgfQorICAgICAgICB2YXIgcnEg
PSBvYmpTdG9yZS5pbmRleCgiaW5kZXgiKS5vcGVuQ3Vyc29yKCk7CisgICAgICAgIHJxLm9uc3Vj
Y2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICB2YXIgY3Vy
c29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgICAgIGFzc2VydF90cnVlKGN1cnNv
ciBpbnN0YW5jZW9mIElEQkN1cnNvcik7CisKKyAgICAgICAgICAgIGFzc2VydF90aHJvd3MobmV3
IFR5cGVFcnJvcigpLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBjdXJzb3IuYWR2YW5j
ZSgwKTsKKyAgICAgICAgICAgIH0sICJDYWxsaW5nIGFkdmFuY2UoKSB3aXRoIGNvdW50IGFyZ3Vt
ZW50IDAgc2hvdWxkIHRocm93IFR5cGVFcnJvci4iKTsKKworICAgICAgICAgICAgdC5kb25lKCk7
CisgICAgICAgIH0pOworICAgIH0KKzwvc2NyaXB0PgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4Ny1wcml2YXRl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vy
c29yX2FkdmFuY2VfaW5kZXg3LXByaXZhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLmUyYTQ0N2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4Ny1wcml2YXRl
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJDdXJzb3IuYWR2YW5jZSgp
IC0gaW5kZXggLSB0aHJvdyBUcmFuc2FjdGlvbkluYWN0aXZlRXJyb3IgCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2VfaW5k
ZXg3LXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
Y3Vyc29yX2FkdmFuY2VfaW5kZXg3LXByaXZhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi42MTdjZGEwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9pbmRleDctcHJpdmF0ZS5odG1s
CkBAIC0wLDAgKzEsMzkgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgi
PgorPHRpdGxlPklEQkN1cnNvci5hZHZhbmNlKCkgLSBpbmRleCAtIHRocm93IFRyYW5zYWN0aW9u
SW5hY3RpdmVFcnJvcjwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkludGVsIiBo
cmVmPSJodHRwOi8vd3d3LmludGVsLmNvbSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBz
Oi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI3dp
ZGwtSURCQ3Vyc29yLWFkdmFuY2Utdm9pZC11bnNpZ25lZC1sb25nLWNvdW50Ij4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Cis8ZGl2IGlkPSJsb2ciPjwvZGl2
PgorPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICAgIHQgPSBhc3luY190ZXN0KCksCisgICAg
ICAgIHJlY29yZHMgPSBbeyBwS2V5OiAicHJpbWFyeUtleV8wIiwgaUtleTogImluZGV4S2V5XzAi
IH0sCisgICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xIiwgaUtleTogImlu
ZGV4S2V5XzEiIH1dOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVu
X3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uIChldmVudCkgeworICAgICAgICBkYiA9IGV2
ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVj
dFN0b3JlKCJzdG9yZSIsIHtrZXlQYXRoIDogInBLZXkifSk7CisgICAgICAgIG9ialN0b3JlLmNy
ZWF0ZUluZGV4KCJpbmRleCIsICJpS2V5Iik7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
cmVjb3Jkcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZHNb
aV0pOworICAgICAgICB9CisgICAgICAgIHZhciBycSA9IG9ialN0b3JlLmluZGV4KCJpbmRleCIp
Lm9wZW5DdXJzb3IoKTsKKyAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rp
b24oZXZlbnQpIHsKKyAgICAgICAgICAgIHZhciBjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0
OworICAgICAgICAgICAgYXNzZXJ0X3RydWUoY3Vyc29yIGluc3RhbmNlb2YgSURCQ3Vyc29yKTsK
KworICAgICAgICAgICAgZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uLmFib3J0KCk7CisgICAgICAg
ICAgICBhc3NlcnRfdGhyb3dzKCJUcmFuc2FjdGlvbkluYWN0aXZlRXJyb3IiLCBmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgICAgICBjdXJzb3IuYWR2YW5jZSgxKTsKKyAgICAgICAgICAgIH0sICJD
YWxsaW5nIGFkdmFuY2UoKSBzaG91bGQgdGhyb3dzIGFuIGV4Y2VwdGlvbiBUcmFuc2FjdGlvbklu
YWN0aXZlRXJyb3Igd2hlbiB0aGUgdHJhbnNhY3Rpb24gaXMgbm90IGFjdGl2ZS4iKTsKKworICAg
ICAgICAgICAgdC5kb25lKCk7CisgICAgICAgIH0pOworICAgIH0KKworPC9zY3JpcHQ+CisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2Fk
dmFuY2VfaW5kZXg4LXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9pbmRleDgtcHJpdmF0ZS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDgyYjE0ZQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2Fk
dmFuY2VfaW5kZXg4LXByaXZhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNT
IElEQkN1cnNvci5hZHZhbmNlKCkgLSBpbmRleCAtIHRocm93IEludmFsaWRTdGF0ZUVycm9yIAor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNv
cl9hZHZhbmNlX2luZGV4OC1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4OC1wcml2YXRlLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWNkZTlhZgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXg4
LXByaXZhdGUuaHRtbApAQCAtMCwwICsxLDM4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNo
YXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJDdXJzb3IuYWR2YW5jZSgpIC0gaW5kZXggLSB0aHJv
dyBJbnZhbGlkU3RhdGVFcnJvcjwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Iklu
dGVsIiBocmVmPSJodHRwOi8vd3d3LmludGVsLmNvbSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9
Imh0dHBzOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5o
dG1sI3dpZGwtSURCQ3Vyc29yLWFkdmFuY2Utdm9pZC11bnNpZ25lZC1sb25nLWNvdW50Ij4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Cis8ZGl2IGlkPSJsb2ci
PjwvZGl2PgorPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICAgIHQgPSBhc3luY190ZXN0KCks
CisgICAgICAgIHJlY29yZHMgPSBbeyBwS2V5OiAicHJpbWFyeUtleV8wIiwgaUtleTogImluZGV4
S2V5XzAiIH0sCisgICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xIiwgaUtl
eTogImluZGV4S2V5XzEiIH1dOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAg
ICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uIChldmVudCkgeworICAgICAgICBk
YiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0
ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHtrZXlQYXRoIDogInBLZXkifSk7CisgICAgICAgIG9ialN0
b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJpS2V5Iik7CisgICAgICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJl
Y29yZHNbaV0pOworICAgICAgICB9CisgICAgICAgIHZhciBycSA9IG9ialN0b3JlLmluZGV4KCJp
bmRleCIpLm9wZW5DdXJzb3IoKTsKKyAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMo
ZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgICAgIHZhciBjdXJzb3IgPSBldmVudC50YXJnZXQu
cmVzdWx0OworICAgICAgICAgICAgYXNzZXJ0X3RydWUoY3Vyc29yIGluc3RhbmNlb2YgSURCQ3Vy
c29yKTsKKworICAgICAgICAgICAgY3Vyc29yLmFkdmFuY2UoMSk7CisgICAgICAgICAgICBhc3Nl
cnRfdGhyb3dzKCJJbnZhbGlkU3RhdGVFcnJvciIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
ICAgIGN1cnNvci5hZHZhbmNlKDEpOworICAgICAgICAgICAgfSwgIkNhbGxpbmcgYWR2YW5jZSgp
IHNob3VsZCB0aHJvdyBET01FeGNlcHRpb24gd2hlbiB0aGUgY3Vyc29yIGlzIGN1cnJlbnRseSBi
ZWluZyBpdGVyYXRlZC4iKTsKKworICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgIH0pOwor
ICAgIH0KKzwvc2NyaXB0PgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4OS1wcml2YXRlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2VfaW5k
ZXg5LXByaXZhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjQ1NDBhNzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4OS1wcml2YXRlLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJDdXJzb3IuYWR2YW5jZSgpIC0gaW5kZXggLSB0aHJv
dyBJbnZhbGlkU3RhdGVFcnJvciBjYXVzZWQgYnkgb2JqZWN0IHN0b3JlIGJlZW4gZGVsZXRlZCAK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJz
b3JfYWR2YW5jZV9pbmRleDktcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9pbmRleDktcHJpdmF0ZS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA5MWMxYmMKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4
OS1wcml2YXRlLmh0bWwKQEAgLTAsMCArMSwzNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBj
aGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCQ3Vyc29yLmFkdmFuY2UoKSAtIGluZGV4IC0gdGhy
b3cgSW52YWxpZFN0YXRlRXJyb3IgY2F1c2VkIGJ5IG9iamVjdCBzdG9yZSBiZWVuIGRlbGV0ZWQ8
L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3
dy5pbnRlbC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3Njcmlw
dD4KKzxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgICAg
dCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAgICAgcmVjb3JkcyA9IFt7IHBLZXk6ICJwcmltYXJ5S2V5
XzAiLCBpS2V5OiAiaW5kZXhLZXlfMCIgfSwKKyAgICAgICAgICAgICAgICAgICB7IHBLZXk6ICJw
cmltYXJ5S2V5XzEiLCBpS2V5OiAiaW5kZXhLZXlfMSIgfV07CisKKyAgICB2YXIgb3Blbl9ycSA9
IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24gKGV2
ZW50KSB7CisgICAgICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIG9i
alN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwge2tleVBhdGggOiAicEtleSJ9
KTsKKyAgICAgICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImlLZXkiKTsKKyAgICAg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAg
ICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7CisgICAgICAgIH0KKyAgICAgICAgdmFyIHJxID0g
b2JqU3RvcmUuaW5kZXgoImluZGV4Iikub3BlbkN1cnNvcigpOworICAgICAgICBycS5vbnN1Y2Nl
c3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihldmVudCkgeworICAgICAgICAgICAgdmFyIGN1cnNv
ciA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICBhc3NlcnRfdHJ1ZShjdXJzb3Ig
aW5zdGFuY2VvZiBJREJDdXJzb3IsICJjdXJzb3IgZXhpc3QiKTsKKworICAgICAgICAgICAgZGIu
ZGVsZXRlT2JqZWN0U3RvcmUoInN0b3JlIik7CisgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCJJ
bnZhbGlkU3RhdGVFcnJvciIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGN1cnNvci5h
ZHZhbmNlKDEpOworICAgICAgICAgICAgfSwgIklmIHRoZSBjdXJzb3IncyBzb3VyY2Ugb3IgZWZm
ZWN0aXZlIG9iamVjdCBzdG9yZSBoYXMgYmVlbiBkZWxldGVkLCB0aGUgaW1wbGVtZW50YXRpb24g
TVVTVCB0aHJvdyBhIERPTUV4Y2VwdGlvbiBvZiB0eXBlIEludmFsaWRTdGF0ZUVycm9yIik7CisK
KyAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3Jf
YWR2YW5jZV9vYmplY3RzdG9yZS1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2Vfb2JqZWN0c3RvcmUtcHJpdmF0
ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjEwMzU4
NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRiY3Vyc29yX2FkdmFuY2Vfb2JqZWN0c3RvcmUtcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwzIEBACisKK1BBU1MgIElEQkN1cnNvci5hZHZhbmNlKCkgLSBvYmplY3Qgc3RvcmUgLSBp
dGVyYXRlIGN1cnNvciBudW1iZXIgb2YgdGltZXMgc3BlY2lmaWVkIGJ5IGNvdW50ICAKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2
YW5jZV9vYmplY3RzdG9yZS1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX29iamVjdHN0b3JlLXByaXZhdGUuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMDYzYzJiCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9v
YmplY3RzdG9yZS1wcml2YXRlLmh0bWwKQEAgLTAsMCArMSw1NCBAQAorPCFET0NUWVBFIGh0bWw+
Cis8dGl0bGU+IElEQkN1cnNvci5hZHZhbmNlKCkgLSBvYmplY3Qgc3RvcmUgLSBpdGVyYXRlIGN1
cnNvciBudW1iZXIgb2YgdGltZXMgc3BlY2lmaWVkIGJ5IGNvdW50IDwvdGl0bGU+Cis8bGluayBy
ZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQu
Y29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwvc2NyaXB0PgorCis8c2Ny
aXB0PgorICAgIHZhciBkYiwKKyAgICAgIGNvdW50ID0gMCwKKyAgICAgIHQgPSBhc3luY190ZXN0
KCksCisgICAgICByZWNvcmRzID0gWyB7IHBLZXk6ICJwcmltYXJ5S2V5XzAiIH0sCisgICAgICAg
ICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEiIH0sCisgICAgICAgICAgICAgICAgICB7
IHBLZXk6ICJwcmltYXJ5S2V5XzIiIH0sCisgICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmlt
YXJ5S2V5XzMiIH1dOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVu
X3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdl
dC5yZXN1bHQ7CisgICAgICAgIHZhciBzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0
Iiwge2tleVBhdGg6InBLZXkifSk7CisKKyAgICAgICAgZm9yKHZhciBpID0gMDsgaSA8IHJlY29y
ZHMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHN0b3JlLmFkZChyZWNvcmRzW2ldKTsKKyAg
ICAgICAgfQorICAgIH07CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uIChlKSB7
CisgICAgICAgIHZhciBjdXJzb3JfcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgidGVzdCIpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7CisKKyAgICAgICAgY3Vyc29yX3JxLm9uc3VjY2VzcyA9
IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRh
cmdldC5yZXN1bHQ7CisgICAgICAgICAgICBhc3NlcnRfdHJ1ZShjdXJzb3IgaW5zdGFuY2VvZiBJ
REJDdXJzb3IpOworCisgICAgICAgICAgICBzd2l0Y2goY291bnQpIHsKKyAgICAgICAgICAgICAg
ICBjYXNlIDA6CisgICAgICAgICAgICAgICAgICAgIGNvdW50ICs9IDM7CisgICAgICAgICAgICAg
ICAgICAgIGN1cnNvci5hZHZhbmNlKDMpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMo
Y3Vyc29yLnZhbHVlLnBLZXksIHJlY29yZHNbY291bnRdLnBLZXksICJjdXJzb3IudmFsdWUucEtl
eSIpOworICAgICAgICAgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgYXNz
ZXJ0X3VucmVhY2hlZCgidW5leHBlY3RlZCBjb3VudCIpOworICAgICAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgfQorCis8L3NjcmlwdD4KKwor
PGRpdiBpZD1sb2c+IDwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9vYmplY3RzdG9yZTItcHJpdmF0ZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZh
bmNlX29iamVjdHN0b3JlMi1wcml2YXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5mNmE3MDg3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9vYmplY3RzdG9yZTItcHJp
dmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCQ3Vyc29yLmFkdmFu
Y2UoKSAtIG9iamVjdCBzdG9yZSAtIHRocm93IFR5cGVFcnJvciAKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9vYmplY3Rz
dG9yZTItcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJjdXJzb3JfYWR2YW5jZV9vYmplY3RzdG9yZTItcHJpdmF0ZS5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVhY2Y3ZmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX29iamVjdHN0b3Jl
Mi1wcml2YXRlLmh0bWwKQEAgLTAsMCArMSw0MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBj
aGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCQ3Vyc29yLmFkdmFuY2UoKSAtIG9iamVjdCBzdG9y
ZSAtIHRocm93IFR5cGVFcnJvcjwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Iklu
dGVsIiBocmVmPSJodHRwOi8vd3d3LmludGVsLmNvbSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9
Imh0dHBzOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5o
dG1sI3dpZGwtSURCQ3Vyc29yLWFkdmFuY2Utdm9pZC11bnNpZ25lZC1sb25nLWNvdW50Ij4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Cis8ZGl2IGlkPSJsb2ci
PjwvZGl2PgorPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICAgIHQgPSBhc3luY190ZXN0KCks
CisgICAgICAgIHJlY29yZHMgPSBbeyBwS2V5OiAicHJpbWFyeUtleV8wIn0sCisgICAgICAgICAg
ICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xIn1dOworCisgICAgdmFyIG9wZW5fcnEgPSBj
cmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uIChldmVu
dCkgeworICAgICAgICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBvYmpT
dG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHtrZXlQYXRoOiJwS2V5In0pOwor
ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspIHsKKyAgICAg
ICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ldKTsKKyAgICAgICAgfQorICAgIH0KKworICAg
IG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24gKGV2ZW50KSB7CisgICAgICAgIHZhciB0eG4g
PSBkYi50cmFuc2FjdGlvbigic3RvcmUiLCAicmVhZHdyaXRlIik7CisgICAgICAgIHZhciBycSA9
IHR4bi5vYmplY3RTdG9yZSgic3RvcmUiKS5vcGVuQ3Vyc29yKCk7CisgICAgICAgIHJxLm9uc3Vj
Y2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICB2YXIgY3Vy
c29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgICAgIGFzc2VydF90cnVlKGN1cnNv
ciBpbnN0YW5jZW9mIElEQkN1cnNvcik7CisKKyAgICAgICAgICAgIGFzc2VydF90aHJvd3MobmV3
IFR5cGVFcnJvcigpLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBjdXJzb3IuYWR2YW5j
ZSgwKTsKKyAgICAgICAgICAgIH0sICJDYWxsaW5nIGFkdmFuY2UoKSB3aXRoIGNvdW50IGFyZ3Vt
ZW50IDAgc2hvdWxkIHRocm93IFR5cGVFcnJvci4iKTsKKworICAgICAgICAgICAgdC5kb25lKCk7
CisgICAgICAgIH0pOworICAgIH0KKzwvc2NyaXB0PgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX29iamVjdHN0b3JlMy1w
cml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRiY3Vyc29yX2FkdmFuY2Vfb2JqZWN0c3RvcmUzLXByaXZhdGUtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZjYjBkZWIKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX29i
amVjdHN0b3JlMy1wcml2YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJ
REJDdXJzb3IuYWR2YW5jZSgpIC0gb2JqZWN0IHN0b3JlIC0gdGhyb3cgVHJhbnNhY3Rpb25JbmFj
dGl2ZUVycm9yIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmN1cnNvcl9hZHZhbmNlX29iamVjdHN0b3JlMy1wcml2YXRlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX29iamVjdHN0b3Jl
My1wcml2YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOThiNTc3
NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRiY3Vyc29yX2FkdmFuY2Vfb2JqZWN0c3RvcmUzLXByaXZhdGUuaHRtbApAQCAtMCwwICsxLDQy
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJD
dXJzb3IuYWR2YW5jZSgpIC0gb2JqZWN0IHN0b3JlIC0gdGhyb3cgVHJhbnNhY3Rpb25JbmFjdGl2
ZUVycm9yPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0
dHA6Ly93d3cuaW50ZWwuY29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kdmNz
LnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwjd2lkbC1JREJD
dXJzb3ItYWR2YW5jZS12b2lkLXVuc2lnbmVkLWxvbmctY291bnQiPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKzxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8c2Ny
aXB0PgorICAgIHZhciBkYiwKKyAgICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAgICAgcmVj
b3JkcyA9IFt7IHBLZXk6ICJwcmltYXJ5S2V5XzAifSwKKyAgICAgICAgICAgICAgICAgICB7IHBL
ZXk6ICJwcmltYXJ5S2V5XzEifV07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwor
ICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24gKGV2ZW50KSB7CisgICAgICAg
IGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3Jl
YXRlT2JqZWN0U3RvcmUoInN0b3JlIiwge2tleVBhdGg6InBLZXkifSk7CisgICAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgb2JqU3Rv
cmUuYWRkKHJlY29yZHNbaV0pOworICAgICAgICB9CisgICAgfQorCisgICAgb3Blbl9ycS5vbnN1
Y2Nlc3MgPSBmdW5jdGlvbiAoZXZlbnQpIHsKKyAgICAgICAgdmFyIHR4biA9IGRiLnRyYW5zYWN0
aW9uKCJzdG9yZSIsICJyZWFkd3JpdGUiKTsKKyAgICAgICAgdmFyIHJxID0gdHhuLm9iamVjdFN0
b3JlKCJzdG9yZSIpLm9wZW5DdXJzb3IoKTsKKyAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVw
X2Z1bmMoZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgICAgIHZhciBjdXJzb3IgPSBldmVudC50
YXJnZXQucmVzdWx0OworICAgICAgICAgICAgYXNzZXJ0X3RydWUoY3Vyc29yIGluc3RhbmNlb2Yg
SURCQ3Vyc29yKTsKKworICAgICAgICAgICAgZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uLmFib3J0
KCk7CisgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCJUcmFuc2FjdGlvbkluYWN0aXZlRXJyb3Ii
LCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBjdXJzb3IuYWR2YW5jZSgxKTsKKyAgICAg
ICAgICAgIH0sICJDYWxsaW5nIGFkdmFuY2UoKSBzaG91bGQgdGhyb3dzIGFuIGV4Y2VwdGlvbiBU
cmFuc2FjdGlvbkluYWN0aXZlRXJyb3Igd2hlbiB0aGUgdHJhbnNhY3Rpb24gaXMgbm90IGFjdGl2
ZSIpOworCisgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfQorCis8L3Nj
cmlwdD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJjdXJzb3JfYWR2YW5jZV9vYmplY3RzdG9yZTQtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX29iamVjdHN0
b3JlNC1wcml2YXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi4yN2FkNzljCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9vYmplY3RzdG9yZTQtcHJpdmF0ZS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCQ3Vyc29yLmFkdmFuY2UoKSAtIG9iamVj
dCBzdG9yZSAtIHRocm93IEludmFsaWRTdGF0ZUVycm9yIAorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX29iamVjdHN0b3Jl
NC1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1
cnNvcl9hZHZhbmNlX29iamVjdHN0b3JlNC1wcml2YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uZGFiZjhlOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2Vfb2JqZWN0c3RvcmU0LXBy
aXZhdGUuaHRtbApAQCAtMCwwICsxLDQxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJz
ZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJDdXJzb3IuYWR2YW5jZSgpIC0gb2JqZWN0IHN0b3JlIC0g
dGhyb3cgSW52YWxpZFN0YXRlRXJyb3I8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxl
PSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBo
cmVmPSJodHRwczovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZp
ZXcuaHRtbCN3aWRsLUlEQkN1cnNvci1hZHZhbmNlLXZvaWQtdW5zaWduZWQtbG9uZy1jb3VudCI+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorPGRpdiBpZD0i
bG9nIj48L2Rpdj4KKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgICB0ID0gYXN5bmNfdGVz
dCgpLAorICAgICAgICByZWNvcmRzID0gW3sgcEtleTogInByaW1hcnlLZXlfMCJ9LAorICAgICAg
ICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMSJ9XTsKKworICAgIHZhciBvcGVuX3Jx
ID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbiAo
ZXZlbnQpIHsKKyAgICAgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIg
b2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7a2V5UGF0aDoicEtleSJ9
KTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKSB7Cisg
ICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7CisgICAgICAgIH0KKyAgICB9CisK
KyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uIChldmVudCkgeworICAgICAgICB2YXIg
dHhuID0gZGIudHJhbnNhY3Rpb24oInN0b3JlIiwgInJlYWR3cml0ZSIpOworICAgICAgICB2YXIg
cnEgPSB0eG4ub2JqZWN0U3RvcmUoInN0b3JlIikub3BlbkN1cnNvcigpOworICAgICAgICBycS5v
bnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihldmVudCkgeworICAgICAgICAgICAgdmFy
IGN1cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICBhc3NlcnRfdHJ1ZShj
dXJzb3IgaW5zdGFuY2VvZiBJREJDdXJzb3IpOworCisgICAgICAgICAgICBjdXJzb3IuYWR2YW5j
ZSgxKTsKKyAgICAgICAgICAgIGFzc2VydF90aHJvd3MoIkludmFsaWRTdGF0ZUVycm9yIiwgZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICAgICAgY3Vyc29yLmFkdmFuY2UoMSk7CisgICAgICAgICAg
ICB9LCAiQ2FsbGluZyBhZHZhbmNlKCkgc2hvdWxkIHRocm93IERPTUV4Y2VwdGlvbiB3aGVuIHRo
ZSBjdXJzb3IgaXMgY3VycmVudGx5IGJlaW5nIGl0ZXJhdGVkLiIpOworCisgICAgICAgICAgICB0
LmRvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfQorPC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2Vfb2JqZWN0
c3RvcmU1LXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9vYmplY3RzdG9yZTUtcHJpdmF0ZS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTI3ZjNjYgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2Fk
dmFuY2Vfb2JqZWN0c3RvcmU1LXByaXZhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAor
CitQQVNTIElEQkN1cnNvci5hZHZhbmNlKCkgLSBvYmplY3Qgc3RvcmUgLSB0aHJvdyBJbnZhbGlk
U3RhdGVFcnJvciBjYXVzZWQgYnkgb2JqZWN0IHN0b3JlIGJlZW4gZGVsZXRlZCAKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5j
ZV9vYmplY3RzdG9yZTUtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9vYmplY3RzdG9yZTUtcHJpdmF0ZS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZmNjFmNmYKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX29i
amVjdHN0b3JlNS1wcml2YXRlLmh0bWwKQEAgLTAsMCArMSwzNiBAQAorPCFET0NUWVBFIGh0bWw+
Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCQ3Vyc29yLmFkdmFuY2UoKSAtIG9i
amVjdCBzdG9yZSAtIHRocm93IEludmFsaWRTdGF0ZUVycm9yIGNhdXNlZCBieSBvYmplY3Qgc3Rv
cmUgYmVlbiBkZWxldGVkPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iSW50ZWwi
IGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3Vw
cG9ydC5qcyI+PC9zY3JpcHQ+Cis8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPHNjcmlwdD4KKyAgICB2
YXIgZGIsCisgICAgICAgIHQgPSBhc3luY190ZXN0KCksCisgICAgICAgIHJlY29yZHMgPSBbeyBw
S2V5OiAicHJpbWFyeUtleV8wIn0sCisgICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFy
eUtleV8xIn1dOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3Jx
Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uIChldmVudCkgeworICAgICAgICBkYiA9IGV2ZW50
LnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0
b3JlKCJzdG9yZSIsIHtrZXlQYXRoOiJwS2V5In0pOworICAgICAgICBmb3IgKHZhciBpID0gMDsg
aSA8IHJlY29yZHMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIG9ialN0b3JlLmFkZChyZWNv
cmRzW2ldKTsKKyAgICAgICAgfQorICAgICAgICB2YXIgcnEgPSBvYmpTdG9yZS5vcGVuQ3Vyc29y
KCk7CisgICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGV2ZW50KSB7
CisgICAgICAgICAgICB2YXIgY3Vyc29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAg
ICAgIGFzc2VydF90cnVlKGN1cnNvciBpbnN0YW5jZW9mIElEQkN1cnNvciwgImN1cnNvciBleGlz
dCIpOworCisgICAgICAgICAgICBkYi5kZWxldGVPYmplY3RTdG9yZSgic3RvcmUiKTsKKyAgICAg
ICAgICAgIGFzc2VydF90aHJvd3MoIkludmFsaWRTdGF0ZUVycm9yIiwgZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICAgICAgY3Vyc29yLmFkdmFuY2UoMSk7CisgICAgICAgICAgICB9LCAiSWYgdGhl
IGN1cnNvcidzIHNvdXJjZSBvciBlZmZlY3RpdmUgb2JqZWN0IHN0b3JlIGhhcyBiZWVuIGRlbGV0
ZWQsIHRoZSBpbXBsZW1lbnRhdGlvbiBNVVNUIHRocm93IGEgRE9NRXhjZXB0aW9uIG9mIHR5cGUg
SW52YWxpZFN0YXRlRXJyb3IiKTsKKworICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgIH0p
OworICAgIH0KKzwvc2NyaXB0PgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleC1wcml2YXRlLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVl
X2luZGV4LXByaXZhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLmE0YTAwNWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleC1wcml2YXRlLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJDdXJzb3IuY29udGludWUoKSAtIGluZGV4IC0g
aXRlcmF0ZSB0byB0aGUgbmV4dCByZWNvcmQgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4LXByaXZhdGUuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVl
X2luZGV4LXByaXZhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4w
YTgyZTI3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJjdXJzb3JfY29udGludWVfaW5kZXgtcHJpdmF0ZS5odG1sCkBAIC0wLDAgKzEsNTIg
QEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklEQkN1cnNvci5jb250aW51ZSgpIC0gaW5kZXgg
LSBpdGVyYXRlIHRvIHRoZSBuZXh0IHJlY29yZDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIg
dGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxsaW5r
IHJlbD1oZWxwIGhyZWY9Imh0dHA6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUv
dGlwL092ZXJ2aWV3Lmh0bWwjd2lkbC1JREJDdXJzb3ItY29udGludWUtdm9pZC1hbnkta2V5Ij4K
KzxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9Ik90aGVyd2lzZSB0aGlzIG1ldGhvZCBydW5zIHRoZSBz
dGVwcyBmb3IgYXN5bmNocm9ub3VzbHkgZXhlY3V0aW5nIGEgcmVxdWVzdC4iPgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIg
ZGIsCisgICAgICBjb3VudCA9IDAsCisgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAgcmVj
b3JkcyA9IFsgeyBwS2V5OiAicHJpbWFyeUtleV8wIiwgICBpS2V5OiAiaW5kZXhLZXlfMCIgfSwK
KyAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMSIsICAgaUtleTogImluZGV4
S2V5XzEiIH0sCisgICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEtMiIsIGlL
ZXk6ICJpbmRleEtleV8xIiB9IF07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwor
ICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9
IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0
U3RvcmUoInRlc3QiLCB7IGtleVBhdGg6InBLZXkiIH0pOworCisgICAgICAgIG9ialN0b3JlLmNy
ZWF0ZUluZGV4KCJpbmRleCIsICJpS2V5Iik7CisKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCByZWNvcmRzLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZHNb
aV0pOworICAgIH07CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAg
ICAgICAgdmFyIGN1cnNvcl9ycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IikKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJ0ZXN0IikKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgLmluZGV4KCJpbmRleCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vy
c29yKCk7CisKKyAgICAgICAgY3Vyc29yX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0
aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAg
ICAgICAgICBpZiAoIWN1cnNvcikgeworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY291
bnQsIHJlY29yZHMubGVuZ3RoLCAiY3Vyc29yIHJ1biBjb3VudCIpOworICAgICAgICAgICAgICAg
IHQuZG9uZSgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB2YXIgcmVjb3JkID0gY3Vy
c29yLnZhbHVlOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWNvcmQucEtleSwgcmVjb3Jk
c1tjb3VudF0ucEtleSwgInByaW1hcnkga2V5Iik7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxz
KHJlY29yZC5pS2V5LCByZWNvcmRzW2NvdW50XS5pS2V5LCAiaW5kZXgga2V5Iik7CisKKyAgICAg
ICAgICAgIGN1cnNvci5jb250aW51ZSgpOworICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAg
fSk7CisgICAgfTsKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVf
aW5kZXgyLXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfaW5kZXgyLXByaXZhdGUtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjllMTczMTAKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51
ZV9pbmRleDItcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURC
Q3Vyc29yLmNvbnRpbnVlKCkgLSBpbmRleCAtIGF0dGVtcHQgdG8gcGFzcyBhIGtleSBwYXJhbWV0
ZXIgdGhhdCBpcyBub3QgYSB2YWxpZCBrZXkgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4Mi1wcml2YXRlLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51
ZV9pbmRleDItcHJpdmF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjNhODg5OGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDItcHJpdmF0ZS5odG1sCkBAIC0wLDAgKzEs
NDkgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklEQkN1cnNvci5jb250aW51ZSgpIC0gaW5k
ZXggLSBhdHRlbXB0IHRvIHBhc3MgYSBrZXkgcGFyYW1ldGVyIHRoYXQgaXMgbm90IGEgdmFsaWQg
a2V5PC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJo
dHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPGxpbmsgcmVsPWhlbHAgaHJlZj0iaHR0cDovL2R2
Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlE
QkN1cnNvci1jb250aW51ZS12b2lkLWFueS1rZXkiPgorPGxpbmsgcmVsPWFzc2VydCB0aXRsZT0i
SWYgdGhlIGtleSBwYXJhbWV0ZXIgaXMgc3BlY2lmaWVkIGFuZCBmdWxmaWxscyBhbnkgb2YgdGhl
c2UgY29uZGl0aW9ucyB0aGlzIG1ldGhvZCBtdXN0IHRocm93IGEgRE9NRXhjZXB0aW9uIG9mIHR5
cGUgRGF0YUVycm9yIj4KKzxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9IlRoZSBwYXJhbWV0ZXIgaXMg
bm90IGEgdmFsaWQga2V5LiI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwv
c2NyaXB0PgorCis8c2NyaXB0PgorCisgICAgdmFyIGRiLAorICAgICAgdCA9IGFzeW5jX3Rlc3Qo
KSwKKyAgICAgIHJlY29yZHMgPSBbIHsgcEtleTogInByaW1hcnlLZXlfMCIsIGlLZXk6ICJpbmRl
eEtleV8wIiB9LAorICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xIiwgaUtl
eTogImluZGV4S2V5XzEiIH0gXTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7Cisg
ICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0g
ZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RT
dG9yZSgidGVzdCIsIHtrZXlQYXRoOiJwS2V5In0pOworCisgICAgICAgIG9ialN0b3JlLmNyZWF0
ZUluZGV4KCJpbmRleCIsICJpS2V5Iik7CisKKyAgICAgICAgZm9yKHZhciBpID0gMDsgaSA8IHJl
Y29yZHMubGVuZ3RoOyBpKyspCisgICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7
CisgICAgfTsKKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAg
ICB2YXIgY3Vyc29yX3JxID0gZGIudHJhbnNhY3Rpb24oInRlc3QiKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAub2JqZWN0U3RvcmUoInRlc3QiKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAuaW5kZXgoImluZGV4IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3Io
KTsKKworICAgICAgICBjdXJzb3JfcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24o
ZSkgeworICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAg
ICAgICAgYXNzZXJ0X3Rocm93cygiRGF0YUVycm9yIiwKKyAgICAgICAgICAgICAgICBmdW5jdGlv
bigpIHsgY3Vyc29yLmNvbnRpbnVlKGRvY3VtZW50KTsgfSk7CisKKyAgICAgICAgICAgIGFzc2Vy
dF90cnVlKGN1cnNvciBpbnN0YW5jZW9mIElEQkN1cnNvcldpdGhWYWx1ZSwgImN1cnNvciIpOwor
CisgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfTsKKworPC9zY3JpcHQ+
CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDMtcHJpdmF0ZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250
aW51ZV9pbmRleDMtcHJpdmF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uZDUwZDlmMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4My1wcml2YXRlLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJDdXJzb3IuY29udGludWUoKSAtIGlu
ZGV4IC0gYXR0ZW1wdCB0byBpdGVyYXRlIHRvIHRoZSBwcmV2aW91cyByZWNvcmQgd2hlbiB0aGUg
ZGlyZWN0aW9uIGlzIHNldCBmb3IgdGhlIG5leHQgcmVjb3JkICAKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfaW5kZXgz
LXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vy
c29yX2NvbnRpbnVlX2luZGV4My1wcml2YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uNTVlZWZhMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4My1wcml2YXRlLmh0bWwK
QEAgLTAsMCArMSw1NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+SURCQ3Vyc29yLmNvbnRp
bnVlKCkgLSBpbmRleCAtIGF0dGVtcHQgdG8gaXRlcmF0ZSB0byB0aGUgcHJldmlvdXMgcmVjb3Jk
IHdoZW4gdGhlIGRpcmVjdGlvbiBpcyBzZXQgZm9yIHRoZSBuZXh0IHJlY29yZCA8L3RpdGxlPgor
PGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWlj
cm9zb2Z0LmNvbSI+Cis8bGluayByZWw9aGVscCBocmVmPSJodHRwOi8vZHZjcy53My5vcmcvaGcv
SW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI3dpZGwtSURCQ3Vyc29yLWNvbnRp
bnVlLXZvaWQtYW55LWtleSI+Cis8bGluayByZWw9YXNzZXJ0IHRpdGxlPSJUaGUgcGFyYW1ldGVy
IGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byB0aGlzIGN1cnNvcidzIHBvc2l0aW9uIGFuZCB0aGlz
IGN1cnNvcidzIGRpcmVjdGlvbiBpcyAnbmV4dCcgb3IgJ25leHR1bmlxdWUnLiI+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorCisgICAg
dmFyIGRiLAorICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAgIHJlY29yZHMgPSBbIHsgcEtl
eTogInByaW1hcnlLZXlfMCIsIGlLZXk6ICJpbmRleEtleV8wIiB9LAorICAgICAgICAgICAgICAg
ICAgeyBwS2V5OiAicHJpbWFyeUtleV8xIiwgaUtleTogImluZGV4S2V5XzEiIH0gXTsKKworICAg
IHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQg
PSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2
YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIsIHtrZXlQYXRoOiJwS2V5
In0pOworCisgICAgICAgIG9ialN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJpS2V5Iik7CisK
KyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKQorICAgICAg
ICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZHNbaV0pOworICAgIH07CisKKyAgICBvcGVuX3JxLm9u
c3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdmFyIGNvdW50ID0gMDsKKyAgICAgICAg
dmFyIGN1cnNvcl9ycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IikKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgLm9iamVjdFN0b3JlKCJ0ZXN0IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
LmluZGV4KCJpbmRleCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKHVu
ZGVmaW5lZCwgIm5leHQiKTsgLy8gWFhYOiBGeCBoYXMgaXNzdWUgd2l0aCAidW5kZWZpbmVkIgor
CisgICAgICAgIGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7
CisgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICAgICAg
aWYgKCFjdXJzb3IpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50LCAyLCAi
cmFuIG51bWJlciBvZiB0aW1lcyIpOworICAgICAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICAvLyBGaXJzdCB0aW1lIGNoZWNrcyBrZXkgZXF1YWwsIHNl
Y29uZCB0aW1lIGNoZWNrcyBrZXkgbGVzcyB0aGFuCisgICAgICAgICAgICBhc3NlcnRfdGhyb3dz
KCJEYXRhRXJyb3IiLAorICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBjdXJzb3IuY29udGlu
dWUocmVjb3Jkc1swXS5pS2V5KTsgfSk7CisKKyAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgp
OworCisgICAgICAgICAgICBjb3VudCsrOworICAgICAgICB9KTsKKyAgICB9OworCis8L3Njcmlw
dD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4NC1wcml2YXRlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2Nv
bnRpbnVlX2luZGV4NC1wcml2YXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi43MTQwNjlhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfaW5kZXg0LXByaXZhdGUtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkN1cnNvci5jb250aW51ZSgpIC0g
aW5kZXggLSBhdHRlbXB0IHRvIGl0ZXJhdGUgdG8gdGhlIG5leHQgcmVjb3JkIHdoZW4gdGhlIGRp
cmVjdGlvbiBpcyBzZXQgZm9yIHRoZSBwcmV2aW91cyByZWNvcmQgCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4
NC1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1
cnNvcl9jb250aW51ZV9pbmRleDQtcHJpdmF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLmQ0MTZjOWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDQtcHJpdmF0ZS5odG1s
CkBAIC0wLDAgKzEsNjUgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklEQkN1cnNvci5jb250
aW51ZSgpIC0gaW5kZXggLSBhdHRlbXB0IHRvIGl0ZXJhdGUgdG8gdGhlIG5leHQgcmVjb3JkIHdo
ZW4gdGhlIGRpcmVjdGlvbiBpcyBzZXQgZm9yIHRoZSBwcmV2aW91cyByZWNvcmQ8L3RpdGxlPgor
PGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWlj
cm9zb2Z0LmNvbSI+Cis8bGluayByZWw9aGVscCBocmVmPSJodHRwOi8vZHZjcy53My5vcmcvaGcv
SW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI3dpZGwtSURCQ3Vyc29yLWNvbnRp
bnVlLXZvaWQtYW55LWtleSI+Cis8bGluayByZWw9YXNzZXJ0IHRpdGxlPSJUaGUgcGFyYW1ldGVy
IGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0aGlzIGN1cnNvcidzIHBvc2l0aW9uIGFuZCB0
aGlzIGN1cnNvcidzIGRpcmVjdGlvbiBpcyAncHJldicgb3IgJ3ByZXZ1bmlxdWUnLiI+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorCisg
ICAgdmFyIGRiLAorICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAgIHJlY29yZHMgPSBbIHsg
cEtleTogInByaW1hcnlLZXlfMCIsIGlLZXk6ICJpbmRleEtleV8wIiB9LAorICAgICAgICAgICAg
ICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xIiwgaUtleTogImluZGV4S2V5XzEiIH0sCisgICAg
ICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzIiLCBpS2V5OiAiaW5kZXhLZXlfMiIg
fSBdOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBn
cmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7
CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0IiwgeyBr
ZXlQYXRoOiAicEtleSIgfSk7CisKKyAgICAgICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgoImluZGV4
IiwgImlLZXkiKTsKKworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3Ro
OyBpKyspCisgICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7CisgICAgfTsKKwor
ICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgY291bnQg
PSAwLAorICAgICAgICAgIGN1cnNvcl9ycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IikKKyAgICAg
ICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgidGVzdCIpCisgICAgICAgICAgICAgICAg
ICAgICAgICAuaW5kZXgoImluZGV4IikKKyAgICAgICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vy
c29yKHVuZGVmaW5lZCwgInByZXYiKTsgLy8gWFhYIEZ4IGlzc3VlcyB3IHVuZGVmaW5lZAorCisg
ICAgICAgIGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Cisg
ICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0LAorICAgICAgICAgICAgICBy
ZWNvcmQgPSBjdXJzb3IudmFsdWU7CisKKyAgICAgICAgICAgIHN3aXRjaChjb3VudCkgeworICAg
ICAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVjb3JkLnBL
ZXksIHJlY29yZHNbMl0ucEtleSwgImZpcnN0IHBLZXkiKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKHJlY29yZC5pS2V5LCByZWNvcmRzWzJdLmlLZXksICJmaXJzdCBpS2V5Iik7Cisg
ICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7CisgICAgICAgICAgICAgICAgYnJlYWs7
CisKKyAgICAgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJl
Y29yZC5wS2V5LCByZWNvcmRzWzFdLnBLZXksICJzZWNvbmQgcEtleSIpOworICAgICAgICAgICAg
ICAgIGFzc2VydF9lcXVhbHMocmVjb3JkLmlLZXksIHJlY29yZHNbMV0uaUtleSwgInNlY29uZCBp
S2V5Iik7CisgICAgICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygiRGF0YUVycm9yIiwKKyAgICAg
ICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1cnNvci5jb250aW51ZSgiaW5kZXhLZXlfMiIp
OyB9KTsKKyAgICAgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgICAgICAgICBicmVhazsK
KworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBhc3NlcnRfdW5yZWFjaGVk
KCJVbmV4cGVjdGVkIGNvdW50IHZhbHVlOiAiICsgY291bnQpOworICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICBjb3VudCsrOworICAgICAgICB9KTsKKyAgICB9OworCis8L3NjcmlwdD4KKwor
PGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4NS1wcml2YXRlLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVl
X2luZGV4NS1wcml2YXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5lZjQ0ZGU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfaW5kZXg1LXByaXZhdGUtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkN1cnNvci5jb250aW51ZSgpIC0gaW5kZXgg
LSBpdGVyYXRlIHVzaW5nICdwcmV2dW5pcXVlJyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfaW5kZXg1LXByaXZhdGUu
aHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRp
bnVlX2luZGV4NS1wcml2YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uYjY3MmFjMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4NS1wcml2YXRlLmh0bWwKQEAgLTAsMCAr
MSw2NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+SURCQ3Vyc29yLmNvbnRpbnVlKCkgLSBp
bmRleCAtIGl0ZXJhdGUgdXNpbmcgJ3ByZXZ1bmlxdWUnPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0
aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBP
bWRhbCI+Cis8bGluayByZWw9aGVscCBocmVmPSJodHRwOi8vZHZjcy53My5vcmcvaGcvSW5kZXhl
ZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI2N1cnNvci1pdGVyYXRpb24tb3BlcmF0aW9u
Ij4KKzxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9J0lmIGRpcmVjdGlvbiBpcyAicHJldnVuaXF1ZSIs
IGxldCB0ZW1wIHJlY29yZCBiZSB0aGUgbGFzdCByZWNvcmQgaW4gcmVjb3JkcyB3aGljaCBzYXRp
c2Z5IGFsbCBvZiB0aGUgZm9sbG93aW5nIHJlcXVpcmVtZW50czonPgorPGxpbmsgcmVsPWFzc2Vy
dCB0aXRsZT0iSWYgcG9zaXRpb24gaXMgZGVmaW5lZCwgdGhlIHJlY29yZCdzIGtleSBpcyBsZXNz
IHRoYW4gcG9zaXRpb24uIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9z
Y3JpcHQ+CisKKzxzY3JpcHQ+CisKKyAgICB2YXIgZGIsCisgICAgICB0ID0gYXN5bmNfdGVzdChk
b2N1bWVudC50aXRsZSwge3RpbWVvdXQ6IDEwMDAwfSksCisgICAgICByZWNvcmRzID0gWyB7IHBL
ZXk6ICJwcmltYXJ5S2V5XzAiLCAgIGlLZXk6ICJpbmRleEtleV8wIiB9LAorICAgICAgICAgICAg
ICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xIiwgICBpS2V5OiAiaW5kZXhLZXlfMSIgfSwKKyAg
ICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMS0yIiwgaUtleTogImluZGV4S2V5
XzEiIH0sCisgICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzIiLCAgIGlLZXk6
ICJpbmRleEtleV8yIiB9IF0sCisKKyAgICAgIGV4cGVjdGVkID0gWyB7IHBLZXk6ICJwcmltYXJ5
S2V5XzIiLCAgIGlLZXk6ICJpbmRleEtleV8yIiB9LAorICAgICAgICAgICAgICAgICB7IHBLZXk6
ICJwcmltYXJ5S2V5XzEiLCAgIGlLZXk6ICJpbmRleEtleV8xIiB9LAorICAgICAgICAgICAgICAg
ICB7IHBLZXk6ICJwcmltYXJ5S2V5XzAiLCAgIGlLZXk6ICJpbmRleEtleV8wIiB9IF07CisKKyAg
ICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVk
ID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAg
dmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiLCB7IGtleVBhdGg6ICJw
S2V5IiB9KTsKKworICAgICAgICBvYmpTdG9yZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAiaUtleSIp
OworCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykKKyAg
ICAgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ldKTsKKyAgICB9OworCisgICAgb3Blbl9y
cS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBjb3VudCA9IDAsCisgICAg
ICAgICAgY3Vyc29yX3JxID0gZGIudHJhbnNhY3Rpb24oInRlc3QiKQorICAgICAgICAgICAgICAg
ICAgICAgICAgLm9iamVjdFN0b3JlKCJ0ZXN0IikKKyAgICAgICAgICAgICAgICAgICAgICAgIC5p
bmRleCgiaW5kZXgiKQorICAgICAgICAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IodW5kZWZp
bmVkLCAncHJldnVuaXF1ZScpOworCisgICAgICAgIGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0
ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBpZiAoIWUudGFyZ2V0LnJlc3VsdCkg
eworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY291bnQsIGV4cGVjdGVkLmxlbmd0aCwg
J2NvdW50Jyk7CisgICAgICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJl
c3VsdCwKKyAgICAgICAgICAgICAgcmVjb3JkID0gY3Vyc29yLnZhbHVlOworCisgICAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKHJlY29yZC5wS2V5LCBleHBlY3RlZFtjb3VudF0ucEtleSwgInBLZXkg
IyIgKyBjb3VudCk7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlY29yZC5pS2V5LCBleHBl
Y3RlZFtjb3VudF0uaUtleSwgImlLZXkgIyIgKyBjb3VudCk7CisKKyAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoY3Vyc29yLmtleSwgIGV4cGVjdGVkW2NvdW50XS5pS2V5LCAiY3Vyc29yLmtleSAj
IiArIGNvdW50KTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnByaW1hcnlLZXks
IGV4cGVjdGVkW2NvdW50XS5wS2V5LCAiY3Vyc29yLnByaW1hcnlLZXkgIyIgKyBjb3VudCk7CisK
KyAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgICAgICBjdXJzb3IuY29udGludWUoZXhwZWN0
ZWRbY291bnRdID8gZXhwZWN0ZWRbY291bnRdLmlLZXkgOiB1bmRlZmluZWQpOworICAgICAgICB9
KTsKKyAgICB9OworCis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVl
X2luZGV4Ni1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4Ni1wcml2YXRlLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOTNiZWVmCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGlu
dWVfaW5kZXg2LXByaXZhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElE
QkN1cnNvci5jb250aW51ZSgpIC0gaW5kZXggLSBpdGVyYXRlIHVzaW5nIG5leHR1bmlxdWUgCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29y
X2NvbnRpbnVlX2luZGV4Ni1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDYtcHJpdmF0ZS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ4OWU1NGIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9pbmRl
eDYtcHJpdmF0ZS5odG1sCkBAIC0wLDAgKzEsNjQgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxl
PklEQkN1cnNvci5jb250aW51ZSgpIC0gaW5kZXggLSBpdGVyYXRlIHVzaW5nIG5leHR1bmlxdWU8
L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29t
IiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KKzxsaW5rIHJlbD1oZWxwIGhyZWY9Imh0dHA6
Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwjY3Vy
c29yLWl0ZXJhdGlvbi1vcGVyYXRpb24iPgorPGxpbmsgcmVsPWFzc2VydCB0aXRsZT0nSWYgZGly
ZWN0aW9uIGlzICJuZXh0dW5pcXVlIiwgbGV0IGZvdW5kIHJlY29yZCBiZSB0aGUgZmlyc3QgcmVj
b3JkIGluIHJlY29yZHMgd2hpY2ggc2F0aXNmeSBhbGwgb2YgdGhlIGZvbGxvd2luZyByZXF1aXJl
bWVudHM6Jz4KKzxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9IklmIHBvc2l0aW9uIGlzIGRlZmluZWQs
IHRoZSByZWNvcmQncyBrZXkgaXMgZ3JlYXRlciB0aGFuIHBvc2l0aW9uLiI+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorCisgICAgdmFy
IGRiLAorICAgICAgdCA9IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUsIHt0aW1lb3V0OiAxMDAw
MH0pLAorICAgICAgcmVjb3JkcyA9IFsgeyBwS2V5OiAicHJpbWFyeUtleV8wIiwgICBpS2V5OiAi
aW5kZXhLZXlfMCIgfSwKKyAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMSIs
ICAgaUtleTogImluZGV4S2V5XzEiIH0sCisgICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmlt
YXJ5S2V5XzEtMiIsIGlLZXk6ICJpbmRleEtleV8xIiB9LAorICAgICAgICAgICAgICAgICAgeyBw
S2V5OiAicHJpbWFyeUtleV8yIiwgICBpS2V5OiAiaW5kZXhLZXlfMiIgfSBdLAorCisgICAgICBl
eHBlY3RlZCA9IFsgeyBwS2V5OiAicHJpbWFyeUtleV8wIiwgICBpS2V5OiAiaW5kZXhLZXlfMCIg
fSwKKyAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xIiwgICBpS2V5OiAiaW5k
ZXhLZXlfMSIgfSwKKyAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8yIiwgICBp
S2V5OiAiaW5kZXhLZXlfMiIgfSBdOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsK
KyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIg
PSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVj
dFN0b3JlKCJ0ZXN0IiwgeyBrZXlQYXRoOiAicEtleSIgfSk7CisKKyAgICAgICAgb2JqU3RvcmUu
Y3JlYXRlSW5kZXgoImluZGV4IiwgImlLZXkiKTsKKworICAgICAgICBmb3IgKHZhciBpID0gMDsg
aSA8IHJlY29yZHMubGVuZ3RoOyBpKyspCisgICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jk
c1tpXSk7CisgICAgfTsKKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewor
ICAgICAgICB2YXIgY291bnQgPSAwLAorICAgICAgICAgIGN1cnNvcl9ycSA9IGRiLnRyYW5zYWN0
aW9uKCJ0ZXN0IikKKyAgICAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgidGVzdCIp
CisgICAgICAgICAgICAgICAgICAgICAgICAuaW5kZXgoImluZGV4IikKKyAgICAgICAgICAgICAg
ICAgICAgICAgIC5vcGVuQ3Vyc29yKHVuZGVmaW5lZCwgIm5leHR1bmlxdWUiKTsKKworICAgICAg
ICBjdXJzb3JfcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAg
ICAgICAgaWYgKCFlLnRhcmdldC5yZXN1bHQpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKGNvdW50LCBleHBlY3RlZC5sZW5ndGgsICdjb3VudCcpOworICAgICAgICAgICAgICAgIHQu
ZG9uZSgpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQsCisgICAgICAgICAgICAgIHJlY29yZCA9
IGN1cnNvci52YWx1ZTsKKworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWNvcmQucEtleSwg
ZXhwZWN0ZWRbY291bnRdLnBLZXksICJwS2V5ICMiICsgY291bnQpOworICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhyZWNvcmQuaUtleSwgZXhwZWN0ZWRbY291bnRdLmlLZXksICJpS2V5ICMiICsg
Y291bnQpOworCisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5rZXksICBleHBlY3Rl
ZFtjb3VudF0uaUtleSwgImN1cnNvci5rZXkgIyIgKyBjb3VudCk7CisgICAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKGN1cnNvci5wcmltYXJ5S2V5LCBleHBlY3RlZFtjb3VudF0ucEtleSwgImN1cnNv
ci5wcmltYXJ5S2V5ICMiICsgY291bnQpOworCisgICAgICAgICAgICBjb3VudCsrOworICAgICAg
ICAgICAgY3Vyc29yLmNvbnRpbnVlKGV4cGVjdGVkW2NvdW50XSA/IGV4cGVjdGVkW2NvdW50XS5p
S2V5IDogdW5kZWZpbmVkKTsKKyAgICAgICAgfSk7CisgICAgfTsKKworPC9zY3JpcHQ+CisKKzxk
aXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDctcHJpdmF0ZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9p
bmRleDctcHJpdmF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uMDMwMDI5OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4Ny1wcml2YXRlLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJDdXJzb3IuY29udGludWUoKSAtIGluZGV4IC0g
dGhyb3cgVHJhbnNhY3Rpb25JbmFjdGl2ZUVycm9yIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDctcHJpdmF0
ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29u
dGludWVfaW5kZXg3LXByaXZhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi41YWU2MDk4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfaW5kZXg3LXByaXZhdGUuaHRtbApAQCAtMCww
ICsxLDM4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRs
ZT5JREJDdXJzb3IuY29udGludWUoKSAtIGluZGV4IC0gdGhyb3cgVHJhbnNhY3Rpb25JbmFjdGl2
ZUVycm9yPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0
dHA6Ly93d3cuaW50ZWwuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+
PC9zY3JpcHQ+Cis8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPHNjcmlwdD4KKworICAgIHZhciBkYiwK
KyAgICAgIHQgPSBhc3luY190ZXN0KCksCisgICAgICByZWNvcmRzID0gWyB7IHBLZXk6ICJwcmlt
YXJ5S2V5XzAiLCBpS2V5OiAiaW5kZXhLZXlfMCIgfSwKKyAgICAgICAgICAgICAgICAgIHsgcEtl
eTogInByaW1hcnlLZXlfMSIsIGlLZXk6ICJpbmRleEtleV8xIiB9IF07CisKKyAgICB2YXIgb3Bl
bl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rp
b24gKGV2ZW50KSB7CisgICAgICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAg
dmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwge2tleVBhdGggOiAi
cEtleSJ9KTsKKyAgICAgICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImlLZXkiKTsK
KyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKSB7CisgICAg
ICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7CisgICAgICAgIH0KKyAgICAgICAgdmFy
IHJxID0gb2JqU3RvcmUuaW5kZXgoImluZGV4Iikub3BlbkN1cnNvcigpOworICAgICAgICBycS5v
bnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihldmVudCkgeworICAgICAgICAgICAgdmFy
IGN1cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICBhc3NlcnRfdHJ1ZShj
dXJzb3IgaW5zdGFuY2VvZiBJREJDdXJzb3IpOworCisgICAgICAgICAgICBldmVudC50YXJnZXQu
dHJhbnNhY3Rpb24uYWJvcnQoKTsKKyAgICAgICAgICAgIGFzc2VydF90aHJvd3MoIlRyYW5zYWN0
aW9uSW5hY3RpdmVFcnJvciIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGN1cnNvci5j
b250aW51ZSgpOworICAgICAgICAgICAgfSwgIkNhbGxpbmcgY29udGludWUoKSBzaG91bGQgdGhy
b3dzIGFuIGV4Y2VwdGlvbiBUcmFuc2FjdGlvbkluYWN0aXZlRXJyb3Igd2hlbiB0aGUgdHJhbnNh
Y3Rpb24gaXMgbm90IGFjdGl2ZS4iKTsKKworICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAg
IH0pOworICAgIH0KKworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDgtcHJpdmF0ZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250
aW51ZV9pbmRleDgtcHJpdmF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uM2ZkN2YzNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4OC1wcml2YXRlLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJDdXJzb3IuY29udGludWUoKSAtIGlu
ZGV4IC0gdGhyb3cgSW52YWxpZFN0YXRlRXJyb3IgY2F1c2VkIGJ5IG9iamVjdCBzdG9yZSBiZWVu
IGRlbGV0ZWQgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4OC1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDgtcHJpdmF0ZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZlZTU3ZjUKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9j
b250aW51ZV9pbmRleDgtcHJpdmF0ZS5odG1sCkBAIC0wLDAgKzEsMzggQEAKKzwhRE9DVFlQRSBo
dG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQkN1cnNvci5jb250aW51ZSgp
IC0gaW5kZXggLSB0aHJvdyBJbnZhbGlkU3RhdGVFcnJvciBjYXVzZWQgYnkgb2JqZWN0IHN0b3Jl
IGJlZW4gZGVsZXRlZDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkludGVsIiBo
cmVmPSJodHRwOi8vd3d3LmludGVsLmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBv
cnQuanMiPjwvc2NyaXB0PgorPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzxzY3JpcHQ+CisKKyAgICB2
YXIgZGIsCisgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAgcmVjb3JkcyA9IFsgeyBwS2V5
OiAicHJpbWFyeUtleV8wIiwgaUtleTogImluZGV4S2V5XzAiIH0sCisgICAgICAgICAgICAgICAg
ICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEiLCBpS2V5OiAiaW5kZXhLZXlfMSIgfSBdOworCisgICAg
dmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9
IGZ1bmN0aW9uIChldmVudCkgeworICAgICAgICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7Cisg
ICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHtrZXlQ
YXRoIDogInBLZXkifSk7CisgICAgICAgIG9ialN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJp
S2V5Iik7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykg
eworICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZHNbaV0pOworICAgICAgICB9CisgICAg
ICAgIHZhciBycSA9IG9ialN0b3JlLmluZGV4KCJpbmRleCIpLm9wZW5DdXJzb3IoKTsKKyAgICAg
ICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAg
ICAgIHZhciBjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgICAgICAgICAgYXNzZXJ0
X3RydWUoY3Vyc29yIGluc3RhbmNlb2YgSURCQ3Vyc29yKTsKKworICAgICAgICAgICAgZGIuZGVs
ZXRlT2JqZWN0U3RvcmUoInN0b3JlIik7CisgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCJJbnZh
bGlkU3RhdGVFcnJvciIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGN1cnNvci5jb250
aW51ZSgpOworICAgICAgICAgICAgfSwgIklmIHRoZSBjdXJzb3IncyBzb3VyY2Ugb3IgZWZmZWN0
aXZlIG9iamVjdCBzdG9yZSBoYXMgYmVlbiBkZWxldGVkLCB0aGUgaW1wbGVtZW50YXRpb24gTVVT
VCB0aHJvdyBhIERPTUV4Y2VwdGlvbiBvZiB0eXBlIEludmFsaWRTdGF0ZUVycm9yIik7CisKKyAg
ICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICB9KTsKKyAgICB9CisKKzwvc2NyaXB0PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29u
dGludWVfaW52YWxpZC1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX2ludmFsaWQtcHJpdmF0ZS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDkxYTA4YgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29y
X2NvbnRpbnVlX2ludmFsaWQtcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisK
K1BBU1MgSURCQ3Vyc29yLmNvbnRpbnVlKCkgLSBhdHRlbXB0IHRvIGNhbGwgY29udGludWUgdHdv
IHRpbWVzIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYmN1cnNvcl9jb250aW51ZV9pbnZhbGlkLXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX2ludmFsaWQtcHJpdmF0ZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY1N2E2YTAKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9j
b250aW51ZV9pbnZhbGlkLXByaXZhdGUuaHRtbApAQCAtMCwwICsxLDU0IEBACis8IURPQ1RZUEUg
aHRtbD4KKzx0aXRsZT5JREJDdXJzb3IuY29udGludWUoKSAtIGF0dGVtcHQgdG8gY2FsbCBjb250
aW51ZSB0d28gdGltZXM8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpv
ZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisKKyAgICB2YXIg
ZGIsCisgICAgICB0ID0gYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSwge3RpbWVvdXQ6IDEwMDAw
fSk7CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdy
YWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsK
KyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiKTsKKwor
ICAgICAgICBvYmpTdG9yZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAiIik7CisKKyAgICAgICAgb2Jq
U3RvcmUuYWRkKCJkYXRhIiwgIDEpOworICAgICAgICBvYmpTdG9yZS5hZGQoImRhdGEyIiwgMik7
CisgICAgfTsKKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAg
ICB2YXIgY291bnQgPSAwOworICAgICAgICB2YXIgY3Vyc29yX3JxID0gZGIudHJhbnNhY3Rpb24o
InRlc3QiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInRlc3QiKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAuaW5kZXgoImluZGV4IikKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgLm9wZW5DdXJzb3IoKTsKKworICAgICAgICBjdXJzb3JfcnEub25zdWNjZXNz
ID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgaWYgKCFlLnRhcmdldC5y
ZXN1bHQpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50LCAyLCAnY291bnQn
KTsKKyAgICAgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0Owor
CisgICAgICAgICAgICBjdXJzb3IuY29udGludWUodW5kZWZpbmVkKTsKKworICAgICAgICAgICAg
Ly8gU2Vjb25kIHRyeQorICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygnSW52YWxpZFN0YXRlRXJy
b3InLAorICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBjdXJzb3IuY29udGludWUoKTsgfSwg
J3NlY29uZCBjb250aW51ZScpOworCisgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCdJbnZhbGlk
U3RhdGVFcnJvcicsCisgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1cnNvci5jb250aW51
ZSgzKTsgfSwgJ3RoaXJkIGNvbnRpbnVlJyk7CisKKyAgICAgICAgICAgIGNvdW50Kys7CisgICAg
ICAgIH0pOworICAgIH07CisKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29u
dGludWVfb2JqZWN0c3RvcmUtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9vYmplY3RzdG9yZS1wcml2YXRl
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNGM2YTY5
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJjdXJzb3JfY29udGludWVfb2JqZWN0c3RvcmUtcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwzIEBACisKK1BBU1MgSURCQ3Vyc29yLmNvbnRpbnVlKCkgLSBvYmplY3Qgc3RvcmUgLSBp
dGVyYXRlIHRvIHRoZSBuZXh0IHJlY29yZCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfb2JqZWN0c3RvcmUtcHJpdmF0
ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29u
dGludWVfb2JqZWN0c3RvcmUtcHJpdmF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjc3ZTc4MTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9vYmplY3RzdG9yZS1wcml2YXRlLmh0
bWwKQEAgLTAsMCArMSw0NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+SURCQ3Vyc29yLmNv
bnRpbnVlKCkgLSBvYmplY3Qgc3RvcmUgLSBpdGVyYXRlIHRvIHRoZSBuZXh0IHJlY29yZDwvdGl0
bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3
dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwvc2Ny
aXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgIGNvdW50ID0gMCwKKyAgICAgIHQg
PSBhc3luY190ZXN0KCksCisgICAgICByZWNvcmRzID0gWyB7IHBLZXk6ICJwcmltYXJ5S2V5XzAi
IH0sCisgICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEiIH0gXTsKKworICAg
IHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQg
PSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2
YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIsIHthdXRvSW5jcmVtZW50
OnRydWUsIGtleVBhdGg6InBLZXkifSk7CisKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBy
ZWNvcmRzLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZHNbaV0p
OworICAgIH07CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAg
ICAgdmFyIHN0b3JlID0gZGIudHJhbnNhY3Rpb24oInRlc3QiKQorICAgICAgICAgICAgICAgICAg
ICAgIC5vYmplY3RTdG9yZSgidGVzdCIpOworCisgICAgICAgIGN1cnNvcl9ycSA9IHN0b3JlLm9w
ZW5DdXJzb3IoKTsKKyAgICAgICAgY3Vyc29yX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1
bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7Cisg
ICAgICAgICAgICBpZiAoIWN1cnNvcikgeworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMo
Y291bnQsIHJlY29yZHMubGVuZ3RoLCAiY3Vyc29yIHJ1biBjb3VudCIpOworICAgICAgICAgICAg
ICAgIHQuZG9uZSgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB2YXIgcmVjb3JkID0g
Y3Vyc29yLnZhbHVlOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWNvcmQucEtleSwgcmVj
b3Jkc1tjb3VudF0ucEtleSwgInByaW1hcnkga2V5Iik7CisgICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKHJlY29yZC5pS2V5LCByZWNvcmRzW2NvdW50XS5pS2V5LCAiaW5kZXgga2V5Iik7CisKKyAg
ICAgICAgICAgIGN1cnNvci5jb250aW51ZSgpOworICAgICAgICAgICAgY291bnQrKzsKKyAgICAg
ICAgfSk7CisgICAgfTsKKzwvc2NyaXB0PgorCis8ZGl2IGlkPWxvZz4gPC9kaXY+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51
ZV9vYmplY3RzdG9yZTItcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9vYmplY3RzdG9yZTItcHJpdmF0ZS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGE5YzZiNQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
Y3Vyc29yX2NvbnRpbnVlX29iamVjdHN0b3JlMi1wcml2YXRlLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDMgQEAKKworUEFTUyBJREJDdXJzb3IuY29udGludWUoKSAtIG9iamVjdCBzdG9yZSAtIGF0
dGVtcHQgdG8gcGFzcyBhIGtleSBwYXJhbWV0ZXIgaXMgbm90IGEgdmFsaWQga2V5ICAKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29u
dGludWVfb2JqZWN0c3RvcmUyLXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX29iamVjdHN0b3JlMi1wcml2YXRlLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDRlNDM4ZgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRp
bnVlX29iamVjdHN0b3JlMi1wcml2YXRlLmh0bWwKQEAgLTAsMCArMSw0MCBAQAorPCFET0NUWVBF
IGh0bWw+Cis8dGl0bGU+SURCQ3Vyc29yLmNvbnRpbnVlKCkgLSBvYmplY3Qgc3RvcmUgLSBhdHRl
bXB0IHRvIHBhc3MgYSBrZXkgcGFyYW1ldGVyIGlzIG5vdCBhIHZhbGlkIGtleSA8L3RpdGxlPgor
PGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWlj
cm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0
PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgIHQgPSBhc3luY190ZXN0KCksCisgICAg
ICByZWNvcmRzID0gWyB7IHBLZXk6ICJwcmltYXJ5S2V5XzAiIH0sCisgICAgICAgICAgICAgICAg
ICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEiIH0gXTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRl
ZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAg
ICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVh
dGVPYmplY3RTdG9yZSgidGVzdCIsIHtrZXlQYXRoOiJwS2V5In0pOworCisgICAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIG9ialN0b3Jl
LmFkZChyZWNvcmRzW2ldKTsKKyAgICB9OworCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5j
dGlvbihlKSB7CisgICAgICAgIHZhciBjdXJzb3JfcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIp
CisgICAgICAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgidGVzdCIpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7CisKKyAgICAgICAgY3Vyc29yX3JxLm9u
c3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBjdXJz
b3IgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgICAgIGFzc2VydF90cnVlKGN1cnNvciBp
bnN0YW5jZW9mIElEQkN1cnNvciwgImN1cnNvciBleGlzdHMiKTsKKyAgICAgICAgICAgIGFzc2Vy
dF90aHJvd3MoIkRhdGFFcnJvciIsCisgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1cnNv
ci5jb250aW51ZShkb2N1bWVudCk7IH0pOworCisgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAg
ICAgfSk7CisgICAgfTsKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPiA8L2Rpdj4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRp
bnVlX29iamVjdHN0b3JlMy1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX29iamVjdHN0b3JlMy1wcml2YXRl
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NjgwODAz
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJjdXJzb3JfY29udGludWVfb2JqZWN0c3RvcmUzLXByaXZhdGUtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMyBAQAorCitQQVNTIElEQkN1cnNvci5jb250aW51ZSgpIC0gb2JqZWN0IHN0b3JlIC0g
YXR0ZW1wdCB0byBpdGVyYXRlIHRvIHRoZSBwcmV2aW91cyByZWNvcmQgd2hlbiB0aGUgZGlyZWN0
aW9uIGlzIHNldCBmb3IgdGhlIG5leHQgcmVjb3JkIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9vYmplY3RzdG9yZTMt
cHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJz
b3JfY29udGludWVfb2JqZWN0c3RvcmUzLXByaXZhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5jODA0MmU0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfb2JqZWN0c3RvcmUzLXBy
aXZhdGUuaHRtbApAQCAtMCwwICsxLDQwIEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJD
dXJzb3IuY29udGludWUoKSAtIG9iamVjdCBzdG9yZSAtIGF0dGVtcHQgdG8gaXRlcmF0ZSB0byB0
aGUgcHJldmlvdXMgcmVjb3JkIHdoZW4gdGhlIGRpcmVjdGlvbiBpcyBzZXQgZm9yIHRoZSBuZXh0
IHJlY29yZDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJl
Zj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3Vw
cG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgdCA9IGFz
eW5jX3Rlc3QoKSwKKyAgICAgIHJlY29yZHMgPSBbIHsgcEtleTogInByaW1hcnlLZXlfMCIgfSwK
KyAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMSIgfSBdOworCisgICAgdmFy
IG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1
bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBv
YmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0Iiwge2tleVBhdGg6InBLZXkifSk7
CisKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKQorICAg
ICAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZHNbaV0pOworICAgIH07CisKKyAgICBvcGVuX3Jx
Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdmFyIGN1cnNvcl9ycSA9IGRiLnRy
YW5zYWN0aW9uKCJ0ZXN0IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3Jl
KCJ0ZXN0IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IodW5kZWZpbmVk
LCAibmV4dCIpOworCisgICAgICAgIGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhm
dW5jdGlvbihlKSB7CisgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0Owor
CisgICAgICAgICAgICBhc3NlcnRfdHJ1ZShjdXJzb3IgaW5zdGFuY2VvZiBJREJDdXJzb3IsICJj
dXJzb3IgZXhpc3QiKTsKKyAgICAgICAgICAgIGFzc2VydF90aHJvd3MoIkRhdGFFcnJvciIsCisg
ICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1cnNvci5jb250aW51ZShyZWNvcmRzWzBdLnBL
ZXkpOyB9KTsKKworICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgIH0pOworICAgIH07Cis8
L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj4gPC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9vYmplY3RzdG9yZTQt
cHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYmN1cnNvcl9jb250aW51ZV9vYmplY3RzdG9yZTQtcHJpdmF0ZS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTVmMzFiNQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVl
X29iamVjdHN0b3JlNC1wcml2YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFT
UyBJREJDdXJzb3IuY29udGludWUoKSAtIG9iamVjdCBzdG9yZSAtIGF0dGVtcHQgdG8gaXRlcmF0
ZSB0byB0aGUgbmV4dCByZWNvcmQgd2hlbiB0aGUgZGlyZWN0aW9uIGlzIHNldCBmb3IgdGhlIHBy
ZXZpb3VzIHJlY29yZCAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX29iamVjdHN0b3JlNC1wcml2YXRlLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9vYmpl
Y3RzdG9yZTQtcHJpdmF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjYwZDkxZDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9vYmplY3RzdG9yZTQtcHJpdmF0ZS5odG1sCkBAIC0w
LDAgKzEsNTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklEQkN1cnNvci5jb250aW51ZSgp
IC0gb2JqZWN0IHN0b3JlIC0gYXR0ZW1wdCB0byBpdGVyYXRlIHRvIHRoZSBuZXh0IHJlY29yZCB3
aGVuIHRoZSBkaXJlY3Rpb24gaXMgc2V0IGZvciB0aGUgcHJldmlvdXMgcmVjb3JkIDwvdGl0bGU+
Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5t
aWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3Jp
cHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAg
ICAgIHJlY29yZHMgPSBbIHsgcEtleTogInByaW1hcnlLZXlfMCIgfSwKKyAgICAgICAgICAgICAg
ICAgIHsgcEtleTogInByaW1hcnlLZXlfMSIgfSwKKyAgICAgICAgICAgICAgICAgIHsgcEtleTog
InByaW1hcnlLZXlfMiIgfSBdOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAg
ICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBl
LnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0
b3JlKCJ0ZXN0IiwgeyBrZXlQYXRoOiAicEtleSIgfSk7CisKKyAgICAgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJl
Y29yZHNbaV0pOworICAgIH07CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUp
IHsKKyAgICAgICAgdmFyIGNvdW50ID0gMCwKKyAgICAgICAgICBjdXJzb3JfcnEgPSBkYi50cmFu
c2FjdGlvbigidGVzdCIpCisgICAgICAgICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInRl
c3QiKQorICAgICAgICAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IobnVsbCwgInByZXYiKTsK
KworICAgICAgICBjdXJzb3JfcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkg
eworICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICAg
ICAgYXNzZXJ0X3RydWUoY3Vyc29yICE9IG51bGwsICJjdXJzb3IgZXhpc3QiKTsKKworICAgICAg
ICAgICAgc3dpdGNoKGNvdW50KSB7CisgICAgICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUucEtleSwgcmVjb3Jkc1syXS5wS2V5LCAiZmly
c3QgY3Vyc29yIHBrZXkiKTsKKyAgICAgICAgICAgICAgICBjdXJzb3IuY29udGludWUocmVjb3Jk
c1sxXS5wS2V5KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgY2FzZSAx
OgorICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLnBLZXksIHJlY29y
ZHNbMV0ucEtleSwgInNlY29uZCBjdXJzb3IgcGtleSIpOworICAgICAgICAgICAgICAgIGFzc2Vy
dF90aHJvd3MoIkRhdGFFcnJvciIsCisgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBj
dXJzb3IuY29udGludWUocmVjb3Jkc1syXS5wS2V5KTsgfSk7CisgICAgICAgICAgICAgICAgdC5k
b25lKCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGRlZmF1bHQ6Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0X3VucmVhY2hlZCgiVW5leHBlY3RlZCBjb3VudCB2YWx1ZTog
IiArIGNvdW50KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgY291bnQrKzsKKyAgICAg
ICAgfSk7CisgICAgfTsKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGlu
dWVfb2JqZWN0c3RvcmU1LXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfb2JqZWN0c3RvcmU1LXByaXZhdGUt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU5YTFhODcK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmN1cnNvcl9jb250aW51ZV9vYmplY3RzdG9yZTUtcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwzIEBACisKK1BBU1MgSURCQ3Vyc29yLmNvbnRpbnVlKCkgLSBvYmplY3Qgc3RvcmUgLSB0
aHJvdyBUcmFuc2FjdGlvbkluYWN0aXZlRXJyb3IgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX29iamVjdHN0b3JlNS1w
cml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNv
cl9jb250aW51ZV9vYmplY3RzdG9yZTUtcHJpdmF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjAyNjMxNWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9vYmplY3RzdG9yZTUtcHJp
dmF0ZS5odG1sCkBAIC0wLDAgKzEsNDIgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNl
dD0idXRmLTgiPgorPHRpdGxlPklEQkN1cnNvci5jb250aW51ZSgpIC0gb2JqZWN0IHN0b3JlIC0g
dGhyb3cgVHJhbnNhY3Rpb25JbmFjdGl2ZUVycm9yPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9y
IiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tIj4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Cis8ZGl2IGlkPSJsb2ciPiA8L2Rpdj4K
KzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAgIHJl
Y29yZHMgPSBbIHsgcEtleTogInByaW1hcnlLZXlfMCIgfSwKKyAgICAgICAgICAgICAgICAgIHsg
cEtleTogInByaW1hcnlLZXlfMSIgfSBdOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0
KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAg
ZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9i
amVjdFN0b3JlKCJ0ZXN0Iiwge2tleVBhdGg6InBLZXkifSk7CisKKyAgICAgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgb2JqU3RvcmUuYWRk
KHJlY29yZHNbaV0pOworICAgIH07CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9u
KGUpIHsKKyAgICAgICAgdmFyIGN1cnNvcl9ycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IikKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJ0ZXN0IikKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IoKTsKKworICAgICAgICBjdXJzb3JfcnEub25zdWNj
ZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIGN1cnNvciA9
IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgICAgIGFzc2VydF90cnVlKGN1cnNvciBpbnN0YW5j
ZW9mIElEQkN1cnNvciwgImN1cnNvciBleGlzdHMiKTsKKworICAgICAgICAgICAgZS50YXJnZXQu
dHJhbnNhY3Rpb24uYWJvcnQoKTsKKyAgICAgICAgICAgIGFzc2VydF90aHJvd3MoIlRyYW5zYWN0
aW9uSW5hY3RpdmVFcnJvciIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGN1cnNvci5j
b250aW51ZSgpOworICAgICAgICAgICAgfSwgIkNhbGxpbmcgY29udGludWUoKSBzaG91bGQgdGhy
b3dzIGFuIGV4Y2VwdGlvbiBUcmFuc2FjdGlvbkluYWN0aXZlRXJyb3Igd2hlbiB0aGUgdHJhbnNh
Y3Rpb24gaXMgbm90IGFjdGl2ZS4iKTsKKworCisgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAg
ICAgfSk7CisgICAgfTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfb2JqZWN0c3RvcmU2LXByaXZhdGUt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJz
b3JfY29udGludWVfb2JqZWN0c3RvcmU2LXByaXZhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZlZTBmMTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9vYmplY3Rz
dG9yZTYtcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCQ3Vy
c29yLmNvbnRpbnVlKCkgLSBvYmplY3Qgc3RvcmUgLSB0aHJvdyBJbnZhbGlkU3RhdGVFcnJvciBj
YXVzZWQgYnkgb2JqZWN0IHN0b3JlIGJlZW4gZGVsZXRlZCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfb2JqZWN0c3Rv
cmU2LXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
Y3Vyc29yX2NvbnRpbnVlX29iamVjdHN0b3JlNi1wcml2YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uYjU2OTU1OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX29iamVjdHN0b3Jl
Ni1wcml2YXRlLmh0bWwKQEAgLTAsMCArMSwzNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBj
aGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCQ3Vyc29yLmNvbnRpbnVlKCkgLSBvYmplY3Qgc3Rv
cmUgLSB0aHJvdyBJbnZhbGlkU3RhdGVFcnJvciBjYXVzZWQgYnkgb2JqZWN0IHN0b3JlIGJlZW4g
ZGVsZXRlZDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkludGVsIiBocmVmPSJo
dHRwOi8vd3d3LmludGVsLmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMi
Pjwvc2NyaXB0PgorPGRpdiBpZD0ibG9nIj4gPC9kaXY+Cis8c2NyaXB0PgorICAgIHZhciBkYiwK
KyAgICAgIHQgPSBhc3luY190ZXN0KCksCisgICAgICByZWNvcmRzID0gWyB7IHBLZXk6ICJwcmlt
YXJ5S2V5XzAiIH0sCisgICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEiIH0g
XTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3Jh
ZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0Owor
ICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIsIHtrZXlQ
YXRoOiJwS2V5In0pOworCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5n
dGg7IGkrKykKKyAgICAgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ldKTsKKworICAgICAg
ICB2YXIgY3Vyc29yX3JxID0gb2JqU3RvcmUub3BlbkN1cnNvcigpOworCisgICAgICAgIGN1cnNv
cl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICB2
YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICAgICAgYXNzZXJ0X3RydWUoY3Vy
c29yIGluc3RhbmNlb2YgSURCQ3Vyc29yLCAiY3Vyc29yIGV4aXN0cyIpOworCisgICAgICAgICAg
ICBkYi5kZWxldGVPYmplY3RTdG9yZSgidGVzdCIpOworICAgICAgICAgICAgYXNzZXJ0X3Rocm93
cygiSW52YWxpZFN0YXRlRXJyb3IiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBjdXJz
b3IuY29udGludWUoKTsKKyAgICAgICAgICAgIH0sICJJZiB0aGUgY3Vyc29yJ3Mgc291cmNlIG9y
IGVmZmVjdGl2ZSBvYmplY3Qgc3RvcmUgaGFzIGJlZW4gZGVsZXRlZCwgdGhlIGltcGxlbWVudGF0
aW9uIE1VU1QgdGhyb3cgYSBET01FeGNlcHRpb24gb2YgdHlwZSBJbnZhbGlkU3RhdGVFcnJvciIp
OworCisgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfQorPC9zY3JpcHQ+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNv
cl9kZWxldGVfaW5kZXgtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVfaW5kZXgtcHJpdmF0ZS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzk4NWY5YwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2Rl
bGV0ZV9pbmRleC1wcml2YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJ
REJDdXJzb3IuZGVsZXRlKCkgLSBpbmRleCAtIHJlbW92ZSBhIHJlY29yZCBmcm9tIHRoZSBvYmpl
Y3Qgc3RvcmUgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRiY3Vyc29yX2RlbGV0ZV9pbmRleC1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVfaW5kZXgtcHJpdmF0ZS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZlMzBhY2YKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVf
aW5kZXgtcHJpdmF0ZS5odG1sCkBAIC0wLDAgKzEsNjkgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRp
dGxlPklEQkN1cnNvci5kZWxldGUoKSAtIGluZGV4IC0gcmVtb3ZlIGEgcmVjb3JkIGZyb20gdGhl
IG9iamVjdCBzdG9yZTwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29m
dCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisKKyAgICB2YXIgZGIsCisgICAg
ICBjb3VudCA9IDAsCisgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAgcmVjb3JkcyA9IFsg
eyBwS2V5OiAicHJpbWFyeUtleV8wIiwgaUtleTogImluZGV4S2V5XzAiIH0sCisgICAgICAgICAg
ICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEiLCBpS2V5OiAiaW5kZXhLZXlfMSIgfSBdOwor
CisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5l
ZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAg
ICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiLCB7IGtleVBh
dGg6ICJwS2V5IiB9KTsKKyAgICAgICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImlL
ZXkiKTsKKworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKysp
CisgICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7CisgICAgfTsKKworICAgIG9w
ZW5fcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoQ3Vyc29yRGVsZXRlUmVjb3JkKTsKKworCisg
ICAgZnVuY3Rpb24gQ3Vyc29yRGVsZXRlUmVjb3JkKGUpIHsKKyAgICAgICAgdmFyIHR4biA9IGRi
LnRyYW5zYWN0aW9uKCJ0ZXN0IiwgInJlYWR3cml0ZSIpLAorICAgICAgICAgIGN1cnNvcl9ycSA9
IHR4bi5vYmplY3RTdG9yZSgidGVzdCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgLmluZGV4
KCJpbmRleCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IoKTsKKworICAg
ICAgICBjdXJzb3JfcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAg
ICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICAgICAgYXNz
ZXJ0X3RydWUoY3Vyc29yIGluc3RhbmNlb2YgSURCQ3Vyc29yLCAiY3Vyc29yIGV4aXN0Iik7Cisg
ICAgICAgICAgICBjdXJzb3IuZGVsZXRlKCk7CisgICAgICAgIH0pOworCisgICAgICAgIHR4bi5v
bmNvbXBsZXRlID0gdC5zdGVwX2Z1bmMoVmVyaWZ5UmVjb3JkV2FzRGVsZXRlZCk7CisgICAgfQor
CisKKyAgICBmdW5jdGlvbiBWZXJpZnlSZWNvcmRXYXNEZWxldGVkKGUpIHsKKyAgICAgICAgdmFy
IGN1cnNvcl9ycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IikKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgLm9iamVjdFN0b3JlKCJ0ZXN0IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLm9w
ZW5DdXJzb3IoKTsKKworICAgICAgICBjdXJzb3JfcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMo
ZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsK
KworICAgICAgICAgICAgaWYgKCFjdXJzb3IpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKGNvdW50LCAxLCAnY291bnQnKTsKKyAgICAgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUucEtleSwg
cmVjb3Jkc1sxXS5wS2V5KTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVl
LmlLZXksIHJlY29yZHNbMV0uaUtleSk7CisgICAgICAgICAgICBjdXJzb3IuY29udGludWUoKTsK
KyAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgIH0pOworICAgIH0KKworPC9zY3JpcHQ+CisK
KzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVfaW5kZXgyLXByaXZhdGUtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfZGVsZXRlX2lu
ZGV4Mi1wcml2YXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi5mZmJhY2U2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJjdXJzb3JfZGVsZXRlX2luZGV4Mi1wcml2YXRlLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJDdXJzb3IuZGVsZXRlKCkgLSBpbmRleCAtIGF0dGVt
cHQgdG8gcmVtb3ZlIGEgcmVjb3JkIGluIGEgcmVhZC1vbmx5IHRyYW5zYWN0aW9uIAorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxl
dGVfaW5kZXgyLXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRiY3Vyc29yX2RlbGV0ZV9pbmRleDItcHJpdmF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjEzM2Y5MTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVfaW5kZXgyLXByaXZhdGUu
aHRtbApAQCAtMCwwICsxLDQyIEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJDdXJzb3Iu
ZGVsZXRlKCkgLSBpbmRleCAtIGF0dGVtcHQgdG8gcmVtb3ZlIGEgcmVjb3JkIGluIGEgcmVhZC1v
bmx5IHRyYW5zYWN0aW9uPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9z
b2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAg
ICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAgcmVjb3JkcyA9IFsgeyBwS2V5OiAicHJpbWFyeUtl
eV8wIiwgaUtleTogImluZGV4S2V5XzAiIH0sCisgICAgICAgICAgICAgICAgICB7IHBLZXk6ICJw
cmltYXJ5S2V5XzEiLCBpS2V5OiAiaW5kZXhLZXlfMSIgfSBdOworCisgICAgdmFyIG9wZW5fcnEg
PSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUp
IHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgdmFyIG9ialN0b3Jl
ID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiLCB7IGtleVBhdGg6ICJwS2V5IiB9KTsKKyAg
ICAgICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImlLZXkiKTsKKworICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspCisgICAgICAgICAgICBvYmpT
dG9yZS5hZGQocmVjb3Jkc1tpXSk7CisgICAgfTsKKworICAgIG9wZW5fcnEub25zdWNjZXNzID0g
ZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgY3Vyc29yX3JxID0gZGIudHJhbnNhY3Rpb24oInRl
c3QiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInRlc3QiKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAuaW5kZXgoImluZGV4IikKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgLm9wZW5DdXJzb3IoKTsKKworICAgICAgICBjdXJzb3JfcnEub25zdWNjZXNzID0g
dC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFy
Z2V0LnJlc3VsdDsKKworICAgICAgICAgICAgYXNzZXJ0X3RydWUoY3Vyc29yIGluc3RhbmNlb2Yg
SURCQ3Vyc29yLCAiY3Vyc29yIGV4aXN0Iik7CisgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCdS
ZWFkT25seUVycm9yJywgZnVuY3Rpb24oKSB7IGN1cnNvci5kZWxldGUoKTsgfSk7CisgICAgICAg
ICAgICB0LmRvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfQorCis8L3NjcmlwdD4KKworPGRpdiBp
ZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9pbmRleDMtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVfaW5kZXgzLXBy
aXZhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE2
YmYxNzIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmN1cnNvcl9kZWxldGVfaW5kZXgzLXByaXZhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMyBAQAorCitQQVNTIElEQkN1cnNvci5kZWxldGUoKSAtIGluZGV4IC0gYXR0ZW1wdCB0byBy
ZW1vdmUgYSByZWNvcmQgaW4gYW4gaW5hY3RpdmUgdHJhbnNhY3Rpb24gCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9pbmRl
eDMtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJj
dXJzb3JfZGVsZXRlX2luZGV4My1wcml2YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uYzFjMzA0NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9pbmRleDMtcHJpdmF0ZS5odG1sCkBA
IC0wLDAgKzEsNDAgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklEQkN1cnNvci5kZWxldGUo
KSAtIGluZGV4IC0gYXR0ZW1wdCB0byByZW1vdmUgYSByZWNvcmQgaW4gYW4gaW5hY3RpdmUgdHJh
bnNhY3Rpb248L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhy
ZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1
cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorCisgICAgdmFyIGRiLAorICAgICAgdCA9
IGFzeW5jX3Rlc3QoKSwKKyAgICAgIHJlY29yZHMgPSBbIHsgcEtleTogInByaW1hcnlLZXlfMCIs
IGlLZXk6ICJpbmRleEtleV8wIiB9LAorICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFy
eUtleV8xIiwgaUtleTogImluZGV4S2V5XzEiIH0gXTsKKworICAgIHZhciBvcGVuX3JxID0gY3Jl
YXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Cisg
ICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5j
cmVhdGVPYmplY3RTdG9yZSgidGVzdCIsIHsga2V5UGF0aDogInBLZXkiIH0pOworICAgICAgICB2
YXIgaW5kZXggPSBvYmpTdG9yZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAiaUtleSIpOworCisgICAg
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykKKyAgICAgICAgICAg
IG9ialN0b3JlLmFkZChyZWNvcmRzW2ldKTsKKworICAgICAgICB2YXIgY3Vyc29yX3JxID0gaW5k
ZXgub3BlbkN1cnNvcigpOworCisgICAgICAgIGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBf
ZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVz
dWx0OworICAgICAgICAgICAgYXNzZXJ0X3RydWUoY3Vyc29yIGluc3RhbmNlb2YgSURCQ3Vyc29y
LCAiY3Vyc29yIGV4aXN0Iik7CisgICAgICAgICAgICB3aW5kb3cuY3Vyc29yID0gY3Vyc29yOwor
ICAgICAgICB9KTsKKworICAgICAgICBlLnRhcmdldC50cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0g
dC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygnVHJh
bnNhY3Rpb25JbmFjdGl2ZUVycm9yJywgZnVuY3Rpb24oKSB7IHdpbmRvdy5jdXJzb3IuZGVsZXRl
KCk7IH0pCisgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfQorCis8L3Nj
cmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9pbmRleDQtcHJpdmF0ZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9k
ZWxldGVfaW5kZXg0LXByaXZhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjM3MzYwYTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVfaW5kZXg0LXByaXZhdGUtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkN1cnNvci5kZWxldGUoKSAtIGluZGV4
IC0gdGhyb3cgSW52YWxpZFN0YXRlRXJyb3IgY2F1c2VkIGJ5IG9iamVjdCBzdG9yZSBiZWVuIGRl
bGV0ZWQgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRiY3Vyc29yX2RlbGV0ZV9pbmRleDQtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfZGVsZXRlX2luZGV4NC1wcml2YXRlLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmY2ZTU3NgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9p
bmRleDQtcHJpdmF0ZS5odG1sCkBAIC0wLDAgKzEsMzggQEAKKzwhRE9DVFlQRSBodG1sPgorPG1l
dGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQkN1cnNvci5kZWxldGUoKSAtIGluZGV4IC0g
dGhyb3cgSW52YWxpZFN0YXRlRXJyb3IgY2F1c2VkIGJ5IG9iamVjdCBzdG9yZSBiZWVuIGRlbGV0
ZWQ8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDov
L3d3dy5pbnRlbC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3Nj
cmlwdD4KKzxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8c2NyaXB0PgorCisgICAgdmFyIGRiLAorICAg
ICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAgICByZWNvcmRzID0gW3sgcEtleTogInByaW1h
cnlLZXlfMCIsIGlLZXk6ICJpbmRleEtleV8wIiB9LAorICAgICAgICAgICAgICAgICAgIHsgcEtl
eTogInByaW1hcnlLZXlfMSIsIGlLZXk6ICJpbmRleEtleV8xIiB9XTsKKworICAgIHZhciBvcGVu
X3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlv
biAoZXZlbnQpIHsKKyAgICAgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgICAgICB2
YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7a2V5UGF0aCA6ICJw
S2V5In0pOworICAgICAgICBvYmpTdG9yZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAiaUtleSIpOwor
ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspIHsKKyAgICAg
ICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ldKTsKKyAgICAgICAgfQorICAgICAgICB2YXIg
cnEgPSBvYmpTdG9yZS5pbmRleCgiaW5kZXgiKS5vcGVuQ3Vyc29yKCk7CisgICAgICAgIHJxLm9u
c3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICB2YXIg
Y3Vyc29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgICAgIGFzc2VydF90cnVlKGN1
cnNvciBpbnN0YW5jZW9mIElEQkN1cnNvciwgImN1cnNvciBleGlzdCIpOworCisgICAgICAgICAg
ICBkYi5kZWxldGVPYmplY3RTdG9yZSgic3RvcmUiKTsKKyAgICAgICAgICAgIGFzc2VydF90aHJv
d3MoIkludmFsaWRTdGF0ZUVycm9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgY3Vy
c29yLmRlbGV0ZSgpOworICAgICAgICAgICAgfSwgIklmIHRoZSBjdXJzb3IncyBzb3VyY2Ugb3Ig
ZWZmZWN0aXZlIG9iamVjdCBzdG9yZSBoYXMgYmVlbiBkZWxldGVkLCB0aGUgaW1wbGVtZW50YXRp
b24gTVVTVCB0aHJvdyBhIERPTUV4Y2VwdGlvbiBvZiB0eXBlIEludmFsaWRTdGF0ZUVycm9yIik7
CisKKyAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICB9KTsKKyAgICB9CisKKzwvc2NyaXB0
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJz
b3JfZGVsZXRlX2luZGV4NS1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9pbmRleDUtcHJpdmF0ZS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDY5YWFhZgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29y
X2RlbGV0ZV9pbmRleDUtcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BB
U1MgSURCQ3Vyc29yLmRlbGV0ZSgpIC0gaW5kZXggLSB0aHJvdyBJbnZhbGlkU3RhdGVFcnJvciB3
aGVuIHRoZSBjdXJzb3IgaXMgYmVpbmcgaXRlcmF0ZWQgCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9pbmRleDUtcHJpdmF0
ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfZGVs
ZXRlX2luZGV4NS1wcml2YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uNGZjMGUyOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9pbmRleDUtcHJpdmF0ZS5odG1sCkBAIC0wLDAgKzEs
MzkgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklE
QkN1cnNvci5kZWxldGUoKSAtIGluZGV4IC0gdGhyb3cgSW52YWxpZFN0YXRlRXJyb3Igd2hlbiB0
aGUgY3Vyc29yIGlzIGJlaW5nIGl0ZXJhdGVkPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0
aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tIj4KKzxsaW5rIHJlbD0iaGVs
cCIgaHJlZj0iaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092
ZXJ2aWV3Lmh0bWwjd2lkbC1JREJDdXJzb3ItZGVsZXRlLUlEQlJlcXVlc3QiPgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKzxkaXYgaWQ9ImxvZyI+PC9kaXY+
Cis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAg
ICAgcmVjb3JkcyA9IFt7IHBLZXk6ICJwcmltYXJ5S2V5XzAiLCBpS2V5OiAiaW5kZXhLZXlfMCIg
fSwKKyAgICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEiLCBpS2V5OiAiaW5k
ZXhLZXlfMSIgfV07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5f
cnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24gKGV2ZW50KSB7CisgICAgICAgIGRiID0gZXZl
bnQudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0
U3RvcmUoInN0b3JlIiwge2tleVBhdGggOiAicEtleSJ9KTsKKyAgICAgICAgb2JqU3RvcmUuY3Jl
YXRlSW5kZXgoImluZGV4IiwgImlLZXkiKTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBy
ZWNvcmRzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tp
XSk7CisgICAgICAgIH0KKworICAgICAgICB2YXIgcnEgPSBvYmpTdG9yZS5pbmRleCgiaW5kZXgi
KS5vcGVuQ3Vyc29yKCk7CisgICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0
aW9uKGV2ZW50KSB7CisgICAgICAgICAgICB2YXIgY3Vyc29yID0gZXZlbnQudGFyZ2V0LnJlc3Vs
dDsKKyAgICAgICAgICAgIGFzc2VydF90cnVlKGN1cnNvciBpbnN0YW5jZW9mIElEQkN1cnNvciwg
ImN1cnNvciBleGlzdCIpOworCisgICAgICAgICAgICBjdXJzb3IuY29udGludWUoKTsKKyAgICAg
ICAgICAgIGFzc2VydF90aHJvd3MoIkludmFsaWRTdGF0ZUVycm9yIiwgZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICAgICAgY3Vyc29yLmRlbGV0ZSgpOworICAgICAgICAgICAgfSk7CisKKyAgICAg
ICAgICAgIHQuZG9uZSgpOworICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfZGVsZXRl
X29iamVjdHN0b3JlLXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfZGVsZXRlX29iamVjdHN0b3JlLXByaXZhdGUtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVjNjYwZmEKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNv
cl9kZWxldGVfb2JqZWN0c3RvcmUtcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBA
CisKK1BBU1MgSURCQ3Vyc29yLmRlbGV0ZSgpIC0gb2JqZWN0IHN0b3JlIC0gcmVtb3ZlIGEgcmVj
b3JkIGZyb20gdGhlIG9iamVjdCBzdG9yZSAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9vYmplY3RzdG9yZS1wcml2YXRl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxl
dGVfb2JqZWN0c3RvcmUtcHJpdmF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLmVjMmFkNDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVfb2JqZWN0c3RvcmUtcHJpdmF0ZS5odG1sCkBA
IC0wLDAgKzEsNjUgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklEQkN1cnNvci5kZWxldGUo
KSAtIG9iamVjdCBzdG9yZSAtIHJlbW92ZSBhIHJlY29yZCBmcm9tIHRoZSBvYmplY3Qgc3RvcmUg
PC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRw
Oi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0Lmpz
Ij48L3NjcmlwdD4KKworPHNjcmlwdD4KKworICAgIHZhciBkYiwKKyAgICAgIGNvdW50ID0gMCwK
KyAgICAgIHQgPSBhc3luY190ZXN0KCksCisgICAgICByZWNvcmRzID0gWyB7IHBLZXk6ICJwcmlt
YXJ5S2V5XzAiIH0sCisgICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEiIH0g
XTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3Jh
ZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0Owor
CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0IiwgeyBr
ZXlQYXRoOiAicEtleSIgfSk7CisKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRz
Lmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZHNbaV0pOworICAg
IH07CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKEN1cnNvckRlbGV0ZVJl
Y29yZCk7CisKKworICAgIGZ1bmN0aW9uIEN1cnNvckRlbGV0ZVJlY29yZChlKSB7CisgICAgICAg
IHZhciB0eG4gPSBkYi50cmFuc2FjdGlvbigidGVzdCIsICJyZWFkd3JpdGUiKSwKKyAgICAgICAg
ICBjdXJzb3JfcnEgPSB0eG4ub2JqZWN0U3RvcmUoInRlc3QiKS5vcGVuQ3Vyc29yKCk7CisKKyAg
ICAgICAgY3Vyc29yX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAg
ICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgICAgIGFz
c2VydF90cnVlKGN1cnNvciAhPSBudWxsLCAiY3Vyc29yIGV4aXN0Iik7CisgICAgICAgICAgICBj
dXJzb3IuZGVsZXRlKCk7CisgICAgICAgIH0pOworCisgICAgICAgIHR4bi5vbmNvbXBsZXRlID0g
dC5zdGVwX2Z1bmMoVmVyaWZ5UmVjb3JkV2FzRGVsZXRlZCk7CisgICAgfQorCisKKyAgICBmdW5j
dGlvbiBWZXJpZnlSZWNvcmRXYXNEZWxldGVkKGUpIHsKKyAgICAgICAgdmFyIGN1cnNvcl9ycSA9
IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLm9iamVj
dFN0b3JlKCJ0ZXN0IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IoKTsK
KworICAgICAgICBjdXJzb3JfcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkg
eworICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICAg
ICAgaWYgKCFjdXJzb3IpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50LCAx
LCAnY291bnQnKTsKKyAgICAgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUucEtleSwgcmVjb3Jkc1sxXS5w
S2V5KTsKKyAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgICAgICBjdXJzb3IuY29udGludWUo
KTsKKyAgICAgICAgfSk7CisgICAgfQorCis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rp
dj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vy
c29yX2RlbGV0ZV9vYmplY3RzdG9yZTItcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVfb2JqZWN0c3RvcmUyLXBy
aXZhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE0
Y2I2YjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmN1cnNvcl9kZWxldGVfb2JqZWN0c3RvcmUyLXByaXZhdGUtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkN1cnNvci5kZWxldGUoKSAtIG9iamVjdCBzdG9yZSAt
IGF0dGVtcHQgdG8gcmVtb3ZlIGEgcmVjb3JkIGluIGEgcmVhZC1vbmx5IHRyYW5zYWN0aW9uIAor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNv
cl9kZWxldGVfb2JqZWN0c3RvcmUyLXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9vYmplY3RzdG9yZTItcHJpdmF0ZS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNjNTdlOTkKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxl
dGVfb2JqZWN0c3RvcmUyLXByaXZhdGUuaHRtbApAQCAtMCwwICsxLDQwIEBACis8IURPQ1RZUEUg
aHRtbD4KKzx0aXRsZT5JREJDdXJzb3IuZGVsZXRlKCkgLSBvYmplY3Qgc3RvcmUgLSBhdHRlbXB0
IHRvIHJlbW92ZSBhIHJlY29yZCBpbiBhIHJlYWQtb25seSB0cmFuc2FjdGlvbjwvdGl0bGU+Cis8
bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNy
b3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+
CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAg
IHJlY29yZHMgPSBbIHsgcEtleTogInByaW1hcnlLZXlfMCIsIGlLZXk6ICJpbmRleEtleV8wIiB9
LAorICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xIiwgaUtleTogImluZGV4
S2V5XzEiIH0gXTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9y
cS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQu
cmVzdWx0OworCisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0
ZXN0IiwgeyBrZXlQYXRoOiAicEtleSIgfSk7CisKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCByZWNvcmRzLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZHNb
aV0pOworICAgIH07CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAg
ICAgICAgdmFyIGN1cnNvcl9ycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IikKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJ0ZXN0IikKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgLm9wZW5DdXJzb3IoKTsKKworICAgICAgICBjdXJzb3JfcnEub25zdWNjZXNzID0gdC5z
dGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0
LnJlc3VsdDsKKworICAgICAgICAgICAgYXNzZXJ0X3RydWUoY3Vyc29yICE9IG51bGwsICJjdXJz
b3IgZXhpc3QiKTsKKyAgICAgICAgICAgIGFzc2VydF90aHJvd3MoJ1JlYWRPbmx5RXJyb3InLCBm
dW5jdGlvbigpIHsgY3Vyc29yLmRlbGV0ZSgpOyB9KTsKKyAgICAgICAgICAgIHQuZG9uZSgpOwor
ICAgICAgICB9KTsKKyAgICB9CisKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3Jf
ZGVsZXRlX29iamVjdHN0b3JlMy1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9vYmplY3RzdG9yZTMtcHJpdmF0
ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTZiZjE3
MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRiY3Vyc29yX2RlbGV0ZV9vYmplY3RzdG9yZTMtcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwzIEBACisKK1BBU1MgSURCQ3Vyc29yLmRlbGV0ZSgpIC0gaW5kZXggLSBhdHRlbXB0IHRv
IHJlbW92ZSBhIHJlY29yZCBpbiBhbiBpbmFjdGl2ZSB0cmFuc2FjdGlvbiAKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfZGVsZXRlX29i
amVjdHN0b3JlMy1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmN1cnNvcl9kZWxldGVfb2JqZWN0c3RvcmUzLXByaXZhdGUuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMmZkODIwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfZGVsZXRlX29iamVjdHN0
b3JlMy1wcml2YXRlLmh0bWwKQEAgLTAsMCArMSwzOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0
bGU+SURCQ3Vyc29yLmRlbGV0ZSgpIC0gaW5kZXggLSBhdHRlbXB0IHRvIHJlbW92ZSBhIHJlY29y
ZCBpbiBhbiBpbmFjdGl2ZSB0cmFuc2FjdGlvbjwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIg
dGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisKKyAg
ICB2YXIgZGIsCisgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAgcmVjb3JkcyA9IFsgeyBw
S2V5OiAicHJpbWFyeUtleV8wIiwgaUtleTogImluZGV4S2V5XzAiIH0sCisgICAgICAgICAgICAg
ICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEiLCBpS2V5OiAiaW5kZXhLZXlfMSIgfSBdOworCisg
ICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRl
ZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAg
IHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0IiwgeyBrZXlQYXRoOiAi
cEtleSIgfSk7CisKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsg
aSsrKQorICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZHNbaV0pOworCisgICAgICAgIHZh
ciBjdXJzb3JfcnEgPSBvYmpTdG9yZS5vcGVuQ3Vyc29yKCk7CisKKyAgICAgICAgY3Vyc29yX3Jx
Lm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBj
dXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICBhc3NlcnRfdHJ1ZShjdXJzb3Ig
aW5zdGFuY2VvZiBJREJDdXJzb3IsICJjdXJzb3IgZXhpc3QiKTsKKyAgICAgICAgICAgIHdpbmRv
dy5jdXJzb3IgPSBjdXJzb3I7CisgICAgICAgIH0pOworCisgICAgICAgIGUudGFyZ2V0LnRyYW5z
YWN0aW9uLm9uY29tcGxldGUgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAg
ICBhc3NlcnRfdGhyb3dzKCdUcmFuc2FjdGlvbkluYWN0aXZlRXJyb3InLCBmdW5jdGlvbigpIHsg
d2luZG93LmN1cnNvci5kZWxldGUoKTsgfSkKKyAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAg
ICB9KTsKKyAgICB9CisKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfZGVsZXRl
X29iamVjdHN0b3JlNC1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9vYmplY3RzdG9yZTQtcHJpdmF0ZS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjc2Y2U5MAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vy
c29yX2RlbGV0ZV9vYmplY3RzdG9yZTQtcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwz
IEBACisKK1BBU1MgSURCQ3Vyc29yLmRlbGV0ZSgpIC0gb2JqZWN0IHN0b3JlIC0gdGhyb3cgSW52
YWxpZFN0YXRlRXJyb3IgY2F1c2VkIGJ5IG9iamVjdCBzdG9yZSBiZWVuIGRlbGV0ZWQgCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2Rl
bGV0ZV9vYmplY3RzdG9yZTQtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJjdXJzb3JfZGVsZXRlX29iamVjdHN0b3JlNC1wcml2YXRlLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjk3NzVjOAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9v
YmplY3RzdG9yZTQtcHJpdmF0ZS5odG1sCkBAIC0wLDAgKzEsMzcgQEAKKzwhRE9DVFlQRSBodG1s
PgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQkN1cnNvci5kZWxldGUoKSAtIG9i
amVjdCBzdG9yZSAtIHRocm93IEludmFsaWRTdGF0ZUVycm9yIGNhdXNlZCBieSBvYmplY3Qgc3Rv
cmUgYmVlbiBkZWxldGVkPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iSW50ZWwi
IGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3Vw
cG9ydC5qcyI+PC9zY3JpcHQ+Cis8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPHNjcmlwdD4KKworICAg
IHZhciBkYiwKKyAgICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAgICAgcmVjb3JkcyA9IFt7
IHBLZXk6ICJwcmltYXJ5S2V5XzAifSwKKyAgICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmlt
YXJ5S2V5XzEifV07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5f
cnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24gKGV2ZW50KSB7CisgICAgICAgIGRiID0gZXZl
bnQudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0
U3RvcmUoInN0b3JlIiwge2tleVBhdGg6InBLZXkifSk7CisgICAgICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJl
Y29yZHNbaV0pOworICAgICAgICB9CisgICAgICAgIHZhciBycSA9IG9ialN0b3JlLm9wZW5DdXJz
b3IoKTsKKyAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZXZlbnQp
IHsKKyAgICAgICAgICAgIHZhciBjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgICAg
ICAgICAgYXNzZXJ0X3RydWUoY3Vyc29yIGluc3RhbmNlb2YgSURCQ3Vyc29yLCAiY3Vyc29yIGV4
aXN0Iik7CisKKyAgICAgICAgICAgIGRiLmRlbGV0ZU9iamVjdFN0b3JlKCJzdG9yZSIpOworICAg
ICAgICAgICAgYXNzZXJ0X3Rocm93cygiSW52YWxpZFN0YXRlRXJyb3IiLCBmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgICAgICBjdXJzb3IuZGVsZXRlKCk7CisgICAgICAgICAgICB9LCAiSWYgdGhl
IGN1cnNvcidzIHNvdXJjZSBvciBlZmZlY3RpdmUgb2JqZWN0IHN0b3JlIGhhcyBiZWVuIGRlbGV0
ZWQsIHRoZSBpbXBsZW1lbnRhdGlvbiBNVVNUIHRocm93IGEgRE9NRXhjZXB0aW9uIG9mIHR5cGUg
SW52YWxpZFN0YXRlRXJyb3IiKTsKKworICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgIH0p
OworICAgIH0KKworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVfb2JqZWN0c3RvcmU1LXByaXZhdGUtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfZGVs
ZXRlX29iamVjdHN0b3JlNS1wcml2YXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi4yMGY5ZWQ1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfZGVsZXRlX29iamVjdHN0b3JlNS1wcml2
YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJDdXJzb3IuZGVsZXRl
KCkgLSBvYmplY3Qgc3RvcmUgLSB0aHJvdyBJbnZhbGlkU3RhdGVFcnJvciB3aGVuIHRoZSBjdXJz
b3IgaXMgYmVpbmcgaXRlcmF0ZWQgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9vYmplY3RzdG9yZTUtcHJpdmF0ZS5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfZGVsZXRlX29i
amVjdHN0b3JlNS1wcml2YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uNzdmYTVmMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9vYmplY3RzdG9yZTUtcHJpdmF0ZS5odG1sCkBAIC0w
LDAgKzEsNDEgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRp
dGxlPklEQkN1cnNvci5kZWxldGUoKSAtIG9iamVjdCBzdG9yZSAtIHRocm93IEludmFsaWRTdGF0
ZUVycm9yIHdoZW4gdGhlIGN1cnNvciBpcyBiZWluZyBpdGVyYXRlZDwvdGl0bGU+Cis8bGluayBy
ZWw9ImF1dGhvciIgdGl0bGU9IkludGVsIiBocmVmPSJodHRwOi8vd3d3LmludGVsLmNvbSI+Cis8
bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jh
dy1maWxlL3RpcC9PdmVydmlldy5odG1sI3dpZGwtSURCQ3Vyc29yLWRlbGV0ZS1JREJSZXF1ZXN0
Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Cis8ZGl2IGlk
PSJsb2ciPjwvZGl2PgorPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICAgIHQgPSBhc3luY190
ZXN0KCksCisgICAgICAgIHJlY29yZHMgPSBbeyBwS2V5OiAicHJpbWFyeUtleV8wIn0sCisgICAg
ICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xIn1dOworCisgICAgdmFyIG9wZW5f
cnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9u
IChldmVudCkgeworICAgICAgICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZh
ciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHtrZXlQYXRoOiJwS2V5
In0pOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspIHsK
KyAgICAgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ldKTsKKyAgICAgICAgfQorICAgIH0K
KworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24gKGV2ZW50KSB7CisgICAgICAgIHZh
ciB0eG4gPSBkYi50cmFuc2FjdGlvbigic3RvcmUiLCAicmVhZHdyaXRlIik7CisgICAgICAgIHZh
ciBycSA9IHR4bi5vYmplY3RTdG9yZSgic3RvcmUiKS5vcGVuQ3Vyc29yKCk7CisgICAgICAgIHJx
Lm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICB2
YXIgY3Vyc29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgICAgIGFzc2VydF90cnVl
KGN1cnNvciBpbnN0YW5jZW9mIElEQkN1cnNvciwgImN1cnNvciBleGlzdCIpOworCisgICAgICAg
ICAgICBjdXJzb3IuY29udGludWUoKTsKKyAgICAgICAgICAgIGFzc2VydF90aHJvd3MoIkludmFs
aWRTdGF0ZUVycm9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgY3Vyc29yLmRlbGV0
ZSgpOworICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICB9
KTsKKyAgICB9Cis8L3NjcmlwdD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfaXRlcmF0aW5nLXByaXZhdGUtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfaXRlcmF0aW5nLXBy
aXZhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM4
M2VkOWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmN1cnNvcl9pdGVyYXRpbmctcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwz
IEBACisKK1BBU1MgSURCQ3Vyc29yLmNvbnRpbnVlKCkgLSBvYmplY3RzdG9yZSAtIGRlbGV0ZSBu
ZXh0IGVsZW1lbnQsIGFuZCBpdGVyYXRlIHRvIGl0IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9pdGVyYXRpbmctcHJpdmF0ZS5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfaXRlcmF0aW5n
LXByaXZhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNTM0YmNj
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJjdXJzb3JfaXRlcmF0aW5nLXByaXZhdGUuaHRtbApAQCAtMCwwICsxLDExMCBAQAorPCFET0NU
WVBFIGh0bWw+Cis8dGl0bGU+SURCQ3Vyc29yLmNvbnRpbnVlKCkgLSBvYmplY3RzdG9yZSAtIGRl
bGV0ZSBuZXh0IGVsZW1lbnQsIGFuZCBpdGVyYXRlIHRvIGl0PC90aXRsZT4KKzxsaW5rIHJlbD0i
YXV0aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRo
ZSBPbWRhbCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0Pgor
Cis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgIGNvdW50ID0gMCwKKyAgICAgIHQgPSBhc3lu
Y190ZXN0KGRvY3VtZW50LnRpdGxlLCB7dGltZW91dDogMTAwMDB9KTsKKworICAgIHZhciBvcGVu
X3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlv
bihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgb2JqU3Rv
cmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIsIHsga2V5UGF0aDogImtleSIgfSk7CisK
KyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCA1MDA7IGkrKykKKyAgICAgICAgICAgIG9ialN0
b3JlLmFkZCh7IGtleTogaSwgdmFsOiAidmFsXyIraSB9KTsKKworICAgICAgICB2YXIgcnEgPSBv
YmpTdG9yZS5hZGQoeyBrZXk6IDUwMCwgdmFsOiAidmFsXzUwMCIgfSk7CisKKyAgICAgICAgcnEu
b25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBmb3IgKHZh
ciBpID0gOTk5OyBpID4gNTAwOyBpLS0pCisgICAgICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHsg
a2V5OiBpLCB2YWw6ICJ2YWxfIitpIH0pOworICAgICAgICB9KTsKKworICAgICAgICBvYmpTdG9y
ZS5jcmVhdGVJbmRleCgnaW5kZXgnLCBbJ2tleScsICd2YWwnXSk7CisgICAgfTsKKworICAgIG9w
ZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgY3Vyc29yX3JxID0g
ZGIudHJhbnNhY3Rpb24oInRlc3QiLCAicmVhZHdyaXRlIikKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgLm9iamVjdFN0b3JlKCJ0ZXN0IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLm9w
ZW5DdXJzb3IoKTsKKworICAgICAgICBjdXJzb3JfcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMo
ZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdCwK
KyAgICAgICAgICAgICAgc3RvcmUgPSBlLnRhcmdldC5zb3VyY2U7CisgICAgICAgICAgICBpZiAo
IWN1cnNvcikgeworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY291bnQsIDk5NywgImN1
cnNvciBydW4gY291bnQiKTsKKworICAgICAgICAgICAgICAgIHZhciBycSA9IGUudGFyZ2V0LnNv
dXJjZS5jb3VudCgpOworICAgICAgICAgICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5j
KGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdl
dC5yZXN1bHQsIDk5NSwgIm9iamVjdCBjb3VudCIpOworICAgICAgICAgICAgICAgICAgICB0LmRv
bmUoKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgIHN3aXRjaCAoY3Vyc29yLmtleSkgeworICAgICAgICAg
ICAgICAgIGNhc2UgMTA6CisgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY291bnQs
IGN1cnNvci5rZXksICJjb3VudCIpOworICAgICAgICAgICAgICAgICAgICBzdG9yZS5kZWxldGUo
MTEpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgIGNhc2Ug
MTI6CisgICAgICAgICAgICAgICAgY2FzZSA0OTk6CisgICAgICAgICAgICAgICAgY2FzZSA1MDA6
CisgICAgICAgICAgICAgICAgY2FzZSA1MDE6CisgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l
cXVhbHMoY291bnQsIGN1cnNvci5rZXkgLSAxLCAiY291bnQiKTsKKyAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAvLyBEZWxldGUgdGhlIG5leHQga2V5CisgICAg
ICAgICAgICAgICAgY2FzZSA1MTA6CisgICAgICAgICAgICAgICAgICAgIHN0b3JlLmRlbGV0ZSg1
MTEpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgIC8vIERl
bGV0ZSByYW5kb21seQorICAgICAgICAgICAgICAgIGNhc2UgNTEyOgorICAgICAgICAgICAgICAg
ICAgICBzdG9yZS5kZWxldGUoNjExKTsKKyAgICAgICAgICAgICAgICAgICAgc3RvcmUuZGVsZXRl
KDQ5OSk7CisgICAgICAgICAgICAgICAgICAgIHN0b3JlLmRlbGV0ZSg1MDApOworICAgICAgICAg
ICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgIC8vIERlbGV0ZSBhbmQgYWRkIGEg
bmV3IGtleQorICAgICAgICAgICAgICAgIGNhc2UgNTIwOgorICAgICAgICAgICAgICAgICAgICBz
dG9yZS5kZWxldGUoNTIxKTsKKyAgICAgICAgICAgICAgICAgICAgc3RvcmUuYWRkKHsga2V5OiA1
MjEsIHZhbDogIm5ldyJ9KTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAg
ICAgICAgICBjYXNlIDUyMToKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJz
b3IudmFsdWUudmFsLCAibmV3Iik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAg
ICAgICAgICAgICAgLy8gV2Ugc2hvdWxkIG9ubHkgYmUgaGVyZSBvbmNlIGFsdGhvdWdoIHdlJ3Jl
IGJhc2ljYWxseSBtYWtpbmcgdGhlIGluZGV4CisgICAgICAgICAgICAgICAgLy8gImhlYXZpZXIi
IHdpdGggaXRzIG5ldyBrZXkuCisgICAgICAgICAgICAgICAgY2FzZSA1MzA6CisgICAgICAgICAg
ICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLnZhbCwgInZhbF81MzAiKTsKKyAg
ICAgICAgICAgICAgICAgICAgY3Vyc29yLnVwZGF0ZSh7IGtleTogNTMwLCB2YWw6ICJ2YWxfNTMx
IiB9KQorCisgICAgICAgICAgICAgICAgICAgIHN0b3JlLmdldCg1MzApLm9uc3VjY2VzcyA9IHQu
c3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l
cXVhbHMoZS50YXJnZXQucmVzdWx0LnZhbCwgInZhbF81MzEiKTsKKyAgICAgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgLy8g
U2hvdWxkbid0IGhhcHBlbi4KKyAgICAgICAgICAgICAgICBjYXNlIDExOgorICAgICAgICAgICAg
ICAgIGNhc2UgNTExOgorICAgICAgICAgICAgICAgIGNhc2UgNjExOgorICAgICAgICAgICAgICAg
ICAgICBhc3NlcnRfdW5yZWFjaGVkKGN1cnNvci5rZXkgKyAiIHNob3VsZCBiZSBkZWxldGVkIGFu
ZCBuZXZlciBydW4iKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgpOworICAgICAgICAgICAgY291bnQrKzsK
KyAgICAgICAgfSk7CisgICAgfTsKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPiA8L2Rpdj4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29y
X2l0ZXJhdGluZ19pbmRleC1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2l0ZXJhdGluZ19pbmRleC1wcml2YXRlLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYTBmNjNkCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJz
b3JfaXRlcmF0aW5nX2luZGV4LXByaXZhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAor
CitQQVNTIElEQkN1cnNvci5jb250aW51ZSgpIC0gaW5kZXggLSBkZWxldGUgbmV4dCBlbGVtZW50
LCBhbmQgaXRlcmF0ZSB0byBpdCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfaXRlcmF0aW5nX2luZGV4LXByaXZhdGUuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2l0ZXJhdGluZ19pbmRl
eC1wcml2YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzYzMDNj
YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRiY3Vyc29yX2l0ZXJhdGluZ19pbmRleC1wcml2YXRlLmh0bWwKQEAgLTAsMCArMSw1MyBAQAor
PCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+SURCQ3Vyc29yLmNvbnRpbnVlKCkgLSBpbmRleCAtIGRl
bGV0ZSBuZXh0IGVsZW1lbnQsIGFuZCBpdGVyYXRlIHRvIGl0PC90aXRsZT4KKzxsaW5rIHJlbD0i
YXV0aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRo
ZSBPbWRhbCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0Pgor
Cis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgIGNvdW50ID0gMCwKKyAgICAgIHQgPSBhc3lu
Y190ZXN0KGRvY3VtZW50LnRpdGxlLCB7dGltZW91dDogMTAwMDB9KSwKKyAgICAgIHJlY29yZHMg
PSBbIHsgcEtleTogInByaW1hcnlLZXlfMCIsIG9iajogeyBpS2V5OiAiaUtleV8wIiB9fSwKKyAg
ICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMSIsIG9iajogeyBpS2V5OiAiaUtl
eV8xIiB9fSwKKyAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMiIsIG9iajog
eyBpS2V5OiAiaUtleV8yIiB9fSBdLAorCisgICAgICBleHBlY3RlZCA9IFsgWyAicHJpbWFyeUtl
eV8yIiwgImlLZXlfMiIgXSwKKyAgICAgICAgICAgICAgICAgICBbICJwcmltYXJ5S2V5XzAiLCAi
aUtleV8wIiBdIF07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5f
cnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0
LnJlc3VsdDsKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRl
c3QiLCB7a2V5UGF0aDpbInBLZXkiLCAib2JqLmlLZXkiXX0pOworICAgICAgICBvYmpTdG9yZS5j
cmVhdGVJbmRleCgiaW5kZXgiLCBbICJwS2V5IiwgIm9iai5pS2V5IiBdKTsKKworICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspCisgICAgICAgICAgICBvYmpT
dG9yZS5hZGQocmVjb3Jkc1tpXSk7CisgICAgfTsKKworICAgIG9wZW5fcnEub25zdWNjZXNzID0g
ZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgY3Vyc29yX3JxID0gZGIudHJhbnNhY3Rpb24oInRl
c3QiLCAicmVhZHdyaXRlIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3Jl
KCJ0ZXN0IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLmluZGV4KCJpbmRleCIpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKG51bGwsICJwcmV2Iik7CisKKyAgICAg
ICAgY3Vyc29yX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAg
ICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICBpZiAoIWN1
cnNvcikgeworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY291bnQsIDIsICJjdXJzb3Ig
cnVuIGNvdW50Iik7CisgICAgICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgIGlmIChjb3VudCA9PT0gMCkgeworICAgICAgICAgICAgICAgIGUudGFyZ2V0
LnNvdXJjZS5vYmplY3RTdG9yZS5kZWxldGUoWyJwcmltYXJ5S2V5XzEiLCAiaUtleV8xIl0pOwor
ICAgICAgICAgICAgfQorICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhjdXJzb3Iua2V5
LCBleHBlY3RlZFtjb3VudF0sICJwcmltYXJ5IGtleSIpOworCisgICAgICAgICAgICBjdXJzb3Iu
Y29udGludWUoKTsKKyAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgIH0pOworICAgIH07Cis8
L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj4gPC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9pdGVyYXRpbmdfaW5kZXgyLXByaXZh
dGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJj
dXJzb3JfaXRlcmF0aW5nX2luZGV4Mi1wcml2YXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNDc4MGIyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfaXRlcmF0aW5nX2luZGV4Mi1w
cml2YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJDdXJzb3IuY29u
dGludWUoKSAtIGluZGV4IC0gYWRkIG5leHQgZWxlbWVudCwgYW5kIGl0ZXJhdGUgdG8gaXQgCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29y
X2l0ZXJhdGluZ19pbmRleDItcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJjdXJzb3JfaXRlcmF0aW5nX2luZGV4Mi1wcml2YXRlLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTc1NGM3YwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2l0ZXJhdGluZ19p
bmRleDItcHJpdmF0ZS5odG1sCkBAIC0wLDAgKzEsNTMgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRp
dGxlPklEQkN1cnNvci5jb250aW51ZSgpIC0gaW5kZXggLSBhZGQgbmV4dCBlbGVtZW50LCBhbmQg
aXRlcmF0ZSB0byBpdDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9k
aW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIs
CisgICAgICBjb3VudCA9IDAsCisgICAgICB0ID0gYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSwg
e3RpbWVvdXQ6IDEwMDAwfSksCisgICAgICByZWNvcmRzID0gWyB7IHBLZXk6ICJwcmltYXJ5S2V5
XzAiLCBvYmo6IHsgaUtleTogImlLZXlfMCIgfX0sCisgICAgICAgICAgICAgICAgICB7IHBLZXk6
ICJwcmltYXJ5S2V5XzIiLCBvYmo6IHsgaUtleTogImlLZXlfMiIgfX0gXSwKKworICAgICAgZXhw
ZWN0ZWQgPSBbIFsgInByaW1hcnlLZXlfMiIsICJpS2V5XzIiIF0sCisgICAgICAgICAgICAgICAg
ICAgWyAicHJpbWFyeUtleV8xIiwgImlLZXlfMSIgXSwKKyAgICAgICAgICAgICAgICAgICBbICJw
cmltYXJ5S2V5XzAiLCAiaUtleV8wIiBdIF07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRi
KHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAg
ICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRl
T2JqZWN0U3RvcmUoInRlc3QiLCB7a2V5UGF0aDoicEtleSJ9KTsKKyAgICAgICAgb2JqU3RvcmUu
Y3JlYXRlSW5kZXgoImluZGV4IiwgWyAicEtleSIsICJvYmouaUtleSIgXSk7CisKKyAgICAgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgb2Jq
U3RvcmUuYWRkKHJlY29yZHNbaV0pOworICAgIH07CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9
IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdmFyIGN1cnNvcl9ycSA9IGRiLnRyYW5zYWN0aW9uKCJ0
ZXN0IiwgInJlYWR3cml0ZSIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9y
ZSgidGVzdCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIC5pbmRleCgiaW5kZXgiKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcihudWxsLCAicHJldiIpOworCisgICAg
ICAgIGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAg
ICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICAgICAgaWYgKCFj
dXJzb3IpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50LCAzLCAiY3Vyc29y
IHJ1biBjb3VudCIpOworICAgICAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICAgICAgfQor
CisgICAgICAgICAgICBpZiAoY291bnQgPT09IDApIHsKKyAgICAgICAgICAgICAgICBlLnRhcmdl
dC5zb3VyY2Uub2JqZWN0U3RvcmUuYWRkKHsgcEtleTogInByaW1hcnlLZXlfMSIsIG9iajogeyBp
S2V5OiAiaUtleV8xIiB9IH0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYXNzZXJ0X2Fy
cmF5X2VxdWFscyhjdXJzb3Iua2V5LCBleHBlY3RlZFtjb3VudF0sICJwcmltYXJ5IGtleSIpOwor
CisgICAgICAgICAgICBjdXJzb3IuY29udGludWUoKTsKKyAgICAgICAgICAgIGNvdW50Kys7Cisg
ICAgICAgIH0pOworICAgIH07Cis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj4gPC9kaXY+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9p
dGVyYXRpbmdfb2JqZWN0c3RvcmUtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9pdGVyYXRpbmdfb2JqZWN0c3RvcmUtcHJp
dmF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzgz
ZWQ5ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRiY3Vyc29yX2l0ZXJhdGluZ19vYmplY3RzdG9yZS1wcml2YXRlLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJDdXJzb3IuY29udGludWUoKSAtIG9iamVjdHN0b3Jl
IC0gZGVsZXRlIG5leHQgZWxlbWVudCwgYW5kIGl0ZXJhdGUgdG8gaXQgCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2l0ZXJhdGluZ19v
YmplY3RzdG9yZS1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmN1cnNvcl9pdGVyYXRpbmdfb2JqZWN0c3RvcmUtcHJpdmF0ZS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRiZDNjNjMKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9pdGVyYXRpbmdfb2Jq
ZWN0c3RvcmUtcHJpdmF0ZS5odG1sCkBAIC0wLDAgKzEsNTEgQEAKKzwhRE9DVFlQRSBodG1sPgor
PHRpdGxlPklEQkN1cnNvci5jb250aW51ZSgpIC0gb2JqZWN0c3RvcmUgLSBkZWxldGUgbmV4dCBl
bGVtZW50LCBhbmQgaXRlcmF0ZSB0byBpdDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgaHJl
Zj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4K
KyAgICB2YXIgZGIsCisgICAgICBjb3VudCA9IDAsCisgICAgICB0ID0gYXN5bmNfdGVzdChkb2N1
bWVudC50aXRsZSwge3RpbWVvdXQ6IDEwMDAwfSksCisgICAgICByZWNvcmRzID0gWyB7IHBLZXk6
ICJwcmltYXJ5S2V5XzAiIH0sCisgICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5
XzEiIH0sCisgICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzIiIH0gXSwKKyAg
ICAgIGV4cGVjdGVkX3JlY29yZHMgPSBbIHsgcEtleTogInByaW1hcnlLZXlfMCIgfSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMiIgfV07CisKKyAgICB2
YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0g
ZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFy
IG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiLCB7a2V5UGF0aDoicEtleSJ9
KTsKKworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspCisg
ICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7CisgICAgfTsKKworICAgIG9wZW5f
cnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgY3Vyc29yX3JxID0gZGIu
dHJhbnNhY3Rpb24oInRlc3QiLCAicmVhZHdyaXRlIikKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgLm9iamVjdFN0b3JlKCJ0ZXN0IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLm9wZW5D
dXJzb3IoKTsKKworICAgICAgICBjdXJzb3JfcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVu
Y3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKyAg
ICAgICAgICAgIGlmICghY3Vyc29yKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhj
b3VudCwgMiwgImN1cnNvciBydW4gY291bnQiKTsKKyAgICAgICAgICAgICAgICB0LmRvbmUoKTsK
KyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdmFyIHJlY29yZCA9IGN1cnNvci52YWx1ZTsK
KyAgICAgICAgICAgIGlmIChyZWNvcmQucEtleSA9PSAicHJpbWFyeUtleV8wIikgeworICAgICAg
ICAgICAgICAgZS50YXJnZXQuc291cmNlLmRlbGV0ZSgicHJpbWFyeUtleV8xIik7CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlY29yZC5wS2V5LCBleHBlY3RlZF9y
ZWNvcmRzW2NvdW50XS5wS2V5LCAicHJpbWFyeSBrZXkiKTsKKworICAgICAgICAgICAgY3Vyc29y
LmNvbnRpbnVlKCk7CisgICAgICAgICAgICBjb3VudCsrOworICAgICAgICB9KTsKKyAgICB9Owor
PC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+IDwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfaXRlcmF0aW5nX29iamVjdHN0b3Jl
Mi1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRiY3Vyc29yX2l0ZXJhdGluZ19vYmplY3RzdG9yZTItcHJpdmF0ZS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjI4Yjc5NAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2l0ZXJh
dGluZ19vYmplY3RzdG9yZTItcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisK
K1BBU1MgSURCQ3Vyc29yLmNvbnRpbnVlKCkgLSBvYmplY3RzdG9yZSAtIGFkZCBuZXh0IGVsZW1l
bnQsIGFuZCBpdGVyYXRlIHRvIGl0IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9pdGVyYXRpbmdfb2JqZWN0c3RvcmUyLXByaXZhdGUu
aHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2l0ZXJh
dGluZ19vYmplY3RzdG9yZTItcHJpdmF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjBmMWQ5ZjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9pdGVyYXRpbmdfb2JqZWN0c3RvcmUyLXByaXZhdGUu
aHRtbApAQCAtMCwwICsxLDUxIEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJDdXJzb3Iu
Y29udGludWUoKSAtIG9iamVjdHN0b3JlIC0gYWRkIG5leHQgZWxlbWVudCwgYW5kIGl0ZXJhdGUg
dG8gaXQ8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3Bl
cmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAg
Y291bnQgPSAwLAorICAgICAgdCA9IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUsIHt0aW1lb3V0
OiAxMDAwMH0pLAorICAgICAgcmVjb3JkcyA9IFsgeyBwS2V5OiAicHJpbWFyeUtleV8wIiB9LAor
ICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8yIiB9IF0sCisgICAgICBleHBl
Y3RlZF9yZWNvcmRzID0gWyB7IHBLZXk6ICJwcmltYXJ5S2V5XzAiIH0sCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEiIH0sCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzIiIH0gXTsKKworICAgIHZhciBvcGVuX3Jx
ID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihl
KSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgb2JqU3RvcmUg
PSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIsIHtrZXlQYXRoOiJwS2V5In0pOworCisgICAg
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykKKyAgICAgICAgICAg
IG9ialN0b3JlLmFkZChyZWNvcmRzW2ldKTsKKyAgICB9OworCisgICAgb3Blbl9ycS5vbnN1Y2Nl
c3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBjdXJzb3JfcnEgPSBkYi50cmFuc2FjdGlv
bigidGVzdCIsICJyZWFkd3JpdGUiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAub2JqZWN0
U3RvcmUoInRlc3QiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcigpOwor
CisgICAgICAgIGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7
CisgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICAgICAg
aWYgKCFjdXJzb3IpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50LCAzLCAi
Y3Vyc29yIHJ1biBjb3VudCIpOworICAgICAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICB2YXIgcmVjb3JkID0gY3Vyc29yLnZhbHVlOworICAgICAgICAg
ICAgaWYgKHJlY29yZC5wS2V5ID09ICJwcmltYXJ5S2V5XzAiKSB7CisgICAgICAgICAgICAgICBl
LnRhcmdldC5zb3VyY2UuYWRkKHsgcEtleTogInByaW1hcnlLZXlfMSIgfSk7CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlY29yZC5wS2V5LCBleHBlY3RlZF9yZWNv
cmRzW2NvdW50XS5wS2V5LCAicHJpbWFyeSBrZXkiKTsKKworICAgICAgICAgICAgY3Vyc29yLmNv
bnRpbnVlKCk7CisgICAgICAgICAgICBjb3VudCsrOworICAgICAgICB9KTsKKyAgICB9OworPC9z
Y3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+IDwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX2luZGV4LXByaXZhdGUtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3Jf
dXBkYXRlX2luZGV4LXByaXZhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjdiYmFmMzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfaW5kZXgtcHJpdmF0ZS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCQ3Vyc29yLnVwZGF0ZSgpIC0gaW5kZXgg
LSBtb2RpZnkgYSByZWNvcmQgaW4gdGhlIG9iamVjdCBzdG9yZSAgCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleC1w
cml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNv
cl91cGRhdGVfaW5kZXgtcHJpdmF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjYxM2ZmODUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfaW5kZXgtcHJpdmF0ZS5odG1sCkBAIC0wLDAg
KzEsNjQgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklEQkN1cnNvci51cGRhdGUoKSAtIGlu
ZGV4IC0gbW9kaWZ5IGEgcmVjb3JkIGluIHRoZSBvYmplY3Qgc3RvcmUgPC90aXRsZT4KKzxsaW5r
IHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29m
dC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKwor
PHNjcmlwdD4KKworICAgIHZhciBkYiwKKyAgICAgIGNvdW50ID0gMCwKKyAgICAgIHQgPSBhc3lu
Y190ZXN0KCksCisgICAgICByZWNvcmRzID0gWyB7IHBLZXk6ICJwcmltYXJ5S2V5XzAiLCBpS2V5
OiAiaW5kZXhLZXlfMCIgfSwKKyAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlf
MSIsIGlLZXk6ICJpbmRleEtleV8xIiB9IF07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRi
KHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAg
ICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVh
dGVPYmplY3RTdG9yZSgidGVzdCIsIHsga2V5UGF0aDogInBLZXkiIH0pOworICAgICAgICBvYmpT
dG9yZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAiaUtleSIpOworCisgICAgICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIG9ialN0b3JlLmFkZChy
ZWNvcmRzW2ldKTsKKworICAgICAgICAvLyBYWFg6IEdlY2tvIGRvZXNuJ3QgbGlrZSB0aGlzCisg
ICAgICAgIC8vZS50YXJnZXQudHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IHQuc3RlcF9mdW5jKEN1
cnNvclVwZGF0ZVJlY29yZCk7CisgICAgfTsKKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gQ3Vy
c29yVXBkYXRlUmVjb3JkOworCisKKyAgICBmdW5jdGlvbiBDdXJzb3JVcGRhdGVSZWNvcmQoZSkg
eworICAgICAgICB2YXIgdHhuID0gZGIudHJhbnNhY3Rpb24oInRlc3QiLCAicmVhZHdyaXRlIiks
CisgICAgICAgICAgY3Vyc29yX3JxID0gdHhuLm9iamVjdFN0b3JlKCJ0ZXN0IikKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAuaW5kZXgoImluZGV4IikKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAub3BlbkN1cnNvcigpOworICAgICAgICBjdXJzb3JfcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1
bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3Vs
dDsKKworICAgICAgICAgICAgY3Vyc29yLnZhbHVlLmlLZXkgKz0gIl91cGRhdGVkIjsKKyAgICAg
ICAgICAgIGN1cnNvci51cGRhdGUoY3Vyc29yLnZhbHVlKTsKKyAgICAgICAgfSk7CisKKyAgICAg
ICAgdHhuLm9uY29tcGxldGUgPSB0LnN0ZXBfZnVuYyhWZXJpZnlSZWNvcmRXYXNVcGRhdGVkKTsK
KyAgICB9CisKKworICAgIGZ1bmN0aW9uIFZlcmlmeVJlY29yZFdhc1VwZGF0ZWQoZSkgeworICAg
ICAgICB2YXIgY3Vyc29yX3JxID0gZGIudHJhbnNhY3Rpb24oInRlc3QiKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInRlc3QiKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAub3BlbkN1cnNvcigpOworCisgICAgICAgIGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0
ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQu
cmVzdWx0OworCisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci52YWx1ZS5pS2V5LCBy
ZWNvcmRzWzBdLmlLZXkgKyAiX3VwZGF0ZWQiKTsKKyAgICAgICAgICAgIHQuZG9uZSgpOworICAg
ICAgICB9KTsKKyAgICB9CisKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBk
YXRlX2luZGV4Mi1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleDItcHJpdmF0ZS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTMzYzdlMAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0
ZV9pbmRleDItcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURC
Q3Vyc29yLnVwZGF0ZSgpIC0gaW5kZXggLSBhdHRlbXB0IHRvIG1vZGlmeSBhIHJlY29yZCBpbiBh
IHJlYWQtb25seSB0cmFuc2FjdGlvbiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX2luZGV4Mi1wcml2YXRlLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfaW5kZXgy
LXByaXZhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZDAwMDFj
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJjdXJzb3JfdXBkYXRlX2luZGV4Mi1wcml2YXRlLmh0bWwKQEAgLTAsMCArMSw0MCBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8dGl0bGU+SURCQ3Vyc29yLnVwZGF0ZSgpIC0gaW5kZXggLSBhdHRlbXB0
IHRvIG1vZGlmeSBhIHJlY29yZCBpbiBhIHJlYWQtb25seSB0cmFuc2FjdGlvbjwvdGl0bGU+Cis8
bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNy
b3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+
CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAg
IHJlY29yZHMgPSBbIHsgcEtleTogInByaW1hcnlLZXlfMCIsIGlLZXk6ICJpbmRleEtleV8wIiB9
LAorICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xIiwgaUtleTogImluZGV4
S2V5XzEiIH0gXTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9y
cS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQu
cmVzdWx0OworCisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0
ZXN0IiwgeyBrZXlQYXRoOiAicEtleSIgfSk7CisgICAgICAgIG9ialN0b3JlLmNyZWF0ZUluZGV4
KCJpbmRleCIsICJpS2V5Iik7CisKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRz
Lmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZHNbaV0pOworICAg
IH07CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdmFy
IGN1cnNvcl9ycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IikKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgLm9iamVjdFN0b3JlKCJ0ZXN0IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLmlu
ZGV4KCJpbmRleCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7CisK
KyAgICAgICAgY3Vyc29yX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsK
KyAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICBh
c3NlcnRfdGhyb3dzKCdSZWFkT25seUVycm9yJywgZnVuY3Rpb24oKSB7IGN1cnNvci51cGRhdGUo
Y3Vyc29yLnZhbHVlKTsgfSk7CisgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgfSk7Cisg
ICAgfQorCis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleDMt
cHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYmN1cnNvcl91cGRhdGVfaW5kZXgzLXByaXZhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI5OTMzMjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfaW5kZXgzLXBy
aXZhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkN1cnNvci51cGRh
dGUoKSAtIGluZGV4IC0gYXR0ZW1wdCB0byBtb2RpZnkgYSByZWNvcmQgaW4gYW4gaW5hY3RpdmUg
dHJhbnNhY3Rpb24gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleDMtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX2luZGV4My1wcml2YXRlLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGRlNjZjYgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3Vw
ZGF0ZV9pbmRleDMtcHJpdmF0ZS5odG1sCkBAIC0wLDAgKzEsNDEgQEAKKzwhRE9DVFlQRSBodG1s
PgorPHRpdGxlPklEQkN1cnNvci51cGRhdGUoKSAtIGluZGV4IC0gYXR0ZW1wdCB0byBtb2RpZnkg
YSByZWNvcmQgaW4gYW4gaW5hY3RpdmUgdHJhbnNhY3Rpb248L3RpdGxlPgorPGxpbmsgcmVsPSJh
dXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0
PgorCisgICAgdmFyIGRiLAorICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAgIHJlY29yZHMg
PSBbIHsgcEtleTogInByaW1hcnlLZXlfMCIsIGlLZXk6ICJpbmRleEtleV8wIiB9LAorICAgICAg
ICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xIiwgaUtleTogImluZGV4S2V5XzEiIH0g
XTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3Jh
ZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0Owor
ICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIsIHsga2V5
UGF0aDogInBLZXkiIH0pOworICAgICAgICB2YXIgaW5kZXggPSBvYmpTdG9yZS5jcmVhdGVJbmRl
eCgiaW5kZXgiLCAiaUtleSIpOworCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jk
cy5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ldKTsKKwor
ICAgICAgICB2YXIgY3Vyc29yX3JxID0gaW5kZXgub3BlbkN1cnNvcigpOworCisgICAgICAgIGN1
cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAg
ICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICAgICAgYXNzZXJ0X3RydWUo
Y3Vyc29yIGluc3RhbmNlb2YgSURCQ3Vyc29yLCAiY3Vyc29yIGV4aXN0Iik7CisgICAgICAgICAg
ICB3aW5kb3cuY3Vyc29yID0gY3Vyc29yOworICAgICAgICAgICAgd2luZG93LnJlY29yZCA9IGN1
cnNvci52YWx1ZTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZS50YXJnZXQudHJhbnNhY3Rpb24u
b25jb21wbGV0ZSA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGFzc2Vy
dF90aHJvd3MoJ1RyYW5zYWN0aW9uSW5hY3RpdmVFcnJvcicsIGZ1bmN0aW9uKCkgeyB3aW5kb3cu
Y3Vyc29yLnVwZGF0ZSh3aW5kb3cucmVjb3JkKTsgfSkKKyAgICAgICAgICAgIHQuZG9uZSgpOwor
ICAgICAgICB9KTsKKyAgICB9CisKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3Jf
dXBkYXRlX2luZGV4NC1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleDQtcHJpdmF0ZS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDQ0ODkyYQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3Vw
ZGF0ZV9pbmRleDQtcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1Mg
SURCQ3Vyc29yLnVwZGF0ZSgpIC0gaW5kZXggLSBhdHRlbXB0IHRvIG1vZGlmeSBhIHJlY29yZCB3
aGVuIG9iamVjdCBzdG9yZSBiZWVuIGRlbGV0ZWQgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleDQtcHJpdmF0ZS5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRl
X2luZGV4NC1wcml2YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
MmFkMjk0NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleDQtcHJpdmF0ZS5odG1sCkBAIC0wLDAgKzEsMzkg
QEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQkN1
cnNvci51cGRhdGUoKSAtIGluZGV4IC0gYXR0ZW1wdCB0byBtb2RpZnkgYSByZWNvcmQgd2hlbiBv
YmplY3Qgc3RvcmUgYmVlbiBkZWxldGVkPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRs
ZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Cis8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPHNjcmlw
dD4KKworICAgIHZhciBkYiwKKyAgICAgIHQgPSBhc3luY190ZXN0KCksCisgICAgICByZWNvcmRz
ID0gWyB7IHBLZXk6ICJwcmltYXJ5S2V5XzAiLCBpS2V5OiAiaW5kZXhLZXlfMCIgfSwKKyAgICAg
ICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMSIsIGlLZXk6ICJpbmRleEtleV8xIiB9
IF07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdy
YWRlbmVlZGVkID0gZnVuY3Rpb24gKGV2ZW50KSB7CisgICAgICAgIGRiID0gZXZlbnQudGFyZ2V0
LnJlc3VsdDsKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0
b3JlIiwge2tleVBhdGggOiAicEtleSJ9KTsKKyAgICAgICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgo
ImluZGV4IiwgImlLZXkiKTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxl
bmd0aDsgaSsrKSB7CisgICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7CisgICAg
ICAgIH0KKyAgICAgICAgdmFyIHJxID0gb2JqU3RvcmUuaW5kZXgoImluZGV4Iikub3BlbkN1cnNv
cigpOworICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihldmVudCkg
eworICAgICAgICAgICAgdmFyIGN1cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgICAg
ICAgICBhc3NlcnRfdHJ1ZShjdXJzb3IgaW5zdGFuY2VvZiBJREJDdXJzb3IpOworCisgICAgICAg
ICAgICBkYi5kZWxldGVPYmplY3RTdG9yZSgic3RvcmUiKTsKKyAgICAgICAgICAgIGN1cnNvci52
YWx1ZS5pS2V5ICs9ICJfdXBkYXRlZCI7CisgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCJJbnZh
bGlkU3RhdGVFcnJvciIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGN1cnNvci51cGRh
dGUoY3Vyc29yLnZhbHVlKTsKKyAgICAgICAgICAgIH0sICJJZiB0aGUgY3Vyc29yJ3Mgc291cmNl
IG9yIGVmZmVjdGl2ZSBvYmplY3Qgc3RvcmUgaGFzIGJlZW4gZGVsZXRlZCwgdGhlIGltcGxlbWVu
dGF0aW9uIE1VU1QgdGhyb3cgYSBET01FeGNlcHRpb24gb2YgdHlwZSBJbnZhbGlkU3RhdGVFcnJv
ciIpOworCisgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfQorCis8L3Nj
cmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
Y3Vyc29yX3VwZGF0ZV9pbmRleDUtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfaW5kZXg1LXByaXZhdGUtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUyMDlhNTYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1
cnNvcl91cGRhdGVfaW5kZXg1LXByaXZhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAor
CitQQVNTIElEQkN1cnNvci51cGRhdGUoKSAtIGluZGV4IC0gdGhyb3cgRGF0YUNsb25lRXJyb3Ig
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vy
c29yX3VwZGF0ZV9pbmRleDUtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX2luZGV4NS1wcml2YXRlLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzgyNTNlNQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleDUt
cHJpdmF0ZS5odG1sCkBAIC0wLDAgKzEsNDUgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklE
QkN1cnNvci51cGRhdGUoKSAtIGluZGV4IC0gdGhyb3cgRGF0YUNsb25lRXJyb3I8L3RpdGxlPgor
PGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5j
b20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2R2Y3MudzMub3JnL2hnL0luZGV4
ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQkN1cnNvci11cGRhdGUtSURC
UmVxdWVzdC1hbnktdmFsdWUiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48
L3NjcmlwdD4KKzxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAg
ICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAgICAgcmVjb3JkcyA9IFsgeyBwS2V5OiAicHJp
bWFyeUtleV8wIiwgaUtleTogImluZGV4S2V5XzAiIH0sCisgICAgICAgICAgICAgICAgICAgIHsg
cEtleTogInByaW1hcnlLZXlfMSIsIGlLZXk6ICJpbmRleEtleV8xIiB9IF07CisKKyAgICB2YXIg
b3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVu
Y3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICB2YXIg
b2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIsIHsga2V5UGF0aDogInBLZXki
IH0pOworICAgICAgICBvYmpTdG9yZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAiaUtleSIpOworCisg
ICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykKKyAgICAgICAg
ICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ldKTsKKyAgICB9OworCisgICAgb3Blbl9ycS5vbnN1
Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBjdXJzb3JfcnEgPSBkYi50cmFuc2Fj
dGlvbigidGVzdCIsICJyZWFkd3JpdGUiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAub2Jq
ZWN0U3RvcmUoInRlc3QiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAuaW5kZXgoImluZGV4
IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IoKTsKKworICAgICAgICBj
dXJzb3JfcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAg
ICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgICAgIGFzc2VydF90cnVl
KGN1cnNvciBpbnN0YW5jZW9mIElEQkN1cnNvcik7CisKKyAgICAgICAgICAgIHZhciByZWNvcmQg
PSBjdXJzb3IudmFsdWU7CisgICAgICAgICAgICByZWNvcmQuZGF0YSA9IGRvY3VtZW50OworICAg
ICAgICAgICAgYXNzZXJ0X3Rocm93cygnRGF0YUNsb25lRXJyb3InLCBmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgICAgICBjdXJzb3IudXBkYXRlKHJlY29yZCk7CisgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBk
YXRlX2luZGV4Ni1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleDYtcHJpdmF0ZS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjQwMTVhMQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0
ZV9pbmRleDYtcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURC
Q3Vyc29yLnVwZGF0ZSgpIC0gaW5kZXggLSBubyBhcmd1bWVudCAKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX2luZGV4Ni1w
cml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNv
cl91cGRhdGVfaW5kZXg2LXByaXZhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5lMjI4ZDc5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX2luZGV4Ni1wcml2YXRlLmh0bWwKQEAgLTAs
MCArMSw0MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+SURCQ3Vyc29yLnVwZGF0ZSgpIC0g
aW5kZXggLSBubyBhcmd1bWVudDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Iklu
dGVsIiBocmVmPSJodHRwOi8vd3d3LmludGVsLmNvbSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9
Imh0dHBzOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5o
dG1sI3dpZGwtSURCQ3Vyc29yLXVwZGF0ZS1JREJSZXF1ZXN0LWFueS12YWx1ZSI+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorPGRpdiBpZD0ibG9nIj48L2Rp
dj4KKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAg
ICAgICByZWNvcmRzID0gWyB7IHBLZXk6ICJwcmltYXJ5S2V5XzAiLCBpS2V5OiAiaW5kZXhLZXlf
MCIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xIiwgaUtleTog
ImluZGV4S2V5XzEiIH0gXTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAg
b3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50
YXJnZXQucmVzdWx0OworCisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0
b3JlKCJ0ZXN0IiwgeyBrZXlQYXRoOiAicEtleSIgfSk7CisgICAgICAgIG9ialN0b3JlLmNyZWF0
ZUluZGV4KCJpbmRleCIsICJpS2V5Iik7CisKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBy
ZWNvcmRzLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZHNbaV0p
OworICAgIH07CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAg
ICAgdmFyIGN1cnNvcl9ycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IikKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJ0ZXN0IikKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgLmluZGV4KCJpbmRleCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29y
KCk7CisKKyAgICAgICAgY3Vyc29yX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9u
KGUpIHsKKyAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAg
ICAgICBhc3NlcnRfdHJ1ZShjdXJzb3IgaW5zdGFuY2VvZiBJREJDdXJzb3IpOworCisgICAgICAg
ICAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgZnVuY3Rpb24oKSB7IGN1cnNvci51
cGRhdGUoKTsgfSk7CisgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfQor
PC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleDctcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfaW5kZXg3LXByaXZh
dGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVhNmJk
YWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYmN1cnNvcl91cGRhdGVfaW5kZXg3LXByaXZhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MyBAQAorCitQQVNTIElEQkN1cnNvci51cGRhdGUoKSAtIGluZGV4IC0gdGhyb3cgRGF0YUVycm9y
IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1
cnNvcl91cGRhdGVfaW5kZXg3LXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleDctcHJpdmF0ZS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcyNzBlYmUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfaW5kZXg3
LXByaXZhdGUuaHRtbApAQCAtMCwwICsxLDQxIEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5J
REJDdXJzb3IudXBkYXRlKCkgLSBpbmRleCAtIHRocm93IERhdGFFcnJvcjwvdGl0bGU+Cis8bGlu
ayByZWw9ImF1dGhvciIgdGl0bGU9IkludGVsIiBocmVmPSJodHRwOi8vd3d3LmludGVsLmNvbSI+
Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERC
L3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI3dpZGwtSURCQ3Vyc29yLXVwZGF0ZS1JREJSZXF1
ZXN0LWFueS12YWx1ZSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2Ny
aXB0PgorPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAg
ICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAgICByZWNvcmRzID0gWyB7IHBLZXk6ICJwcmltYXJ5
S2V5XzAiLCBpS2V5OiAiaW5kZXhLZXlfMCIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyBwS2V5
OiAicHJpbWFyeUtleV8xIiwgaUtleTogImluZGV4S2V5XzEiIH0gXTsKKworICAgIHZhciBvcGVu
X3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlv
bihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworCisgICAgICAgIHZhciBvYmpT
dG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0IiwgeyBrZXlQYXRoOiAicEtleSIgfSk7
CisgICAgICAgIG9ialN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJpS2V5Iik7CisKKyAgICAg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAg
b2JqU3RvcmUuYWRkKHJlY29yZHNbaV0pOworICAgIH07CisKKyAgICBvcGVuX3JxLm9uc3VjY2Vz
cyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdmFyIGN1cnNvcl9ycSA9IGRiLnRyYW5zYWN0aW9u
KCJ0ZXN0IiwgInJlYWR3cml0ZSIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RT
dG9yZSgidGVzdCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIC5pbmRleCgiaW5kZXgiKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcigpOworCisgICAgICAgIGN1cnNv
cl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICB2
YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICAgICAgYXNzZXJ0X3RydWUoY3Vy
c29yIGluc3RhbmNlb2YgSURCQ3Vyc29yKTsKKworICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygn
RGF0YUVycm9yJywgZnVuY3Rpb24oKSB7IGN1cnNvci51cGRhdGUobnVsbCk7IH0pOworICAgICAg
ICAgICAgdC5kb25lKCk7CisgICAgICAgIH0pOworICAgIH0KKzwvc2NyaXB0PgorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVf
b2JqZWN0c3RvcmUtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmUtcHJpdmF0ZS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzA0YjA2NwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29y
X3VwZGF0ZV9vYmplY3RzdG9yZS1wcml2YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAK
KworUEFTUyBJREJDdXJzb3IudXBkYXRlKCkgLSBvYmplY3RzdG9yZSAtIG1vZGlmeSBhIHJlY29y
ZCBpbiB0aGUgb2JqZWN0IHN0b3JlICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0b3JlLXByaXZhdGUuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9v
YmplY3RzdG9yZS1wcml2YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uMjhiMTM3YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZS1wcml2YXRlLmh0bWwKQEAgLTAs
MCArMSw2MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+SURCQ3Vyc29yLnVwZGF0ZSgpIC0g
b2JqZWN0c3RvcmUgLSBtb2RpZnkgYSByZWNvcmQgaW4gdGhlIG9iamVjdCBzdG9yZSA8L3RpdGxl
PgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cu
bWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2Ny
aXB0PgorCis8c2NyaXB0PgorCisgICAgdmFyIGRiLAorICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwK
KyAgICAgIHJlY29yZHMgPSBbIHsgcEtleTogInByaW1hcnlLZXlfMCIgfSwKKyAgICAgICAgICAg
ICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMSIgfSBdOworCisgICAgdmFyIG9wZW5fcnEgPSBj
cmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsK
KyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRi
LmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0IiwgeyBrZXlQYXRoOiAicEtleSIgfSk7CisKKyAgICAg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAg
b2JqU3RvcmUuYWRkKHJlY29yZHNbaV0pOworCisgICAgICAgIC8vIFhYWDogR2Vja28gZG9lc24n
dCBsaWtlIHRoaXMKKyAgICAgICAgLy9lLnRhcmdldC50cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0g
dC5zdGVwX2Z1bmMoQ3Vyc29yVXBkYXRlUmVjb3JkKTsKKyAgICB9OworCisgICAgb3Blbl9ycS5v
bnN1Y2Nlc3MgPSBDdXJzb3JVcGRhdGVSZWNvcmQ7CisKKworICAgIGZ1bmN0aW9uIEN1cnNvclVw
ZGF0ZVJlY29yZChlKSB7CisgICAgICAgIHZhciB0eG4gPSBkYi50cmFuc2FjdGlvbigidGVzdCIs
ICJyZWFkd3JpdGUiKSwKKyAgICAgICAgICBjdXJzb3JfcnEgPSB0eG4ub2JqZWN0U3RvcmUoInRl
c3QiKQorICAgICAgICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7CisgICAgICAgIGN1
cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAg
ICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OworCisgICAgICAgICAgICBjdXJzb3IudmFs
dWUuZGF0YSA9ICJOZXcgaW5mb3JtYXRpb24hIjsKKyAgICAgICAgICAgIGN1cnNvci51cGRhdGUo
Y3Vyc29yLnZhbHVlKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgdHhuLm9uY29tcGxldGUgPSB0
LnN0ZXBfZnVuYyhWZXJpZnlSZWNvcmRXYXNVcGRhdGVkKTsKKyAgICB9CisKKworICAgIGZ1bmN0
aW9uIFZlcmlmeVJlY29yZFdhc1VwZGF0ZWQoZSkgeworICAgICAgICB2YXIgY3Vyc29yX3JxID0g
ZGIudHJhbnNhY3Rpb24oInRlc3QiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAub2JqZWN0
U3RvcmUoInRlc3QiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcigpOwor
CisgICAgICAgIGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7
CisgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OworCisgICAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKGN1cnNvci52YWx1ZS5kYXRhLCAiTmV3IGluZm9ybWF0aW9uISIpOwor
ICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgIH0pOworICAgIH0KKworPC9zY3JpcHQ+CisK
KzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmUyLXByaXZhdGUtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBk
YXRlX29iamVjdHN0b3JlMi1wcml2YXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi4xODM3YTU1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0b3JlMi1wcml2
YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJDdXJzb3IudXBkYXRl
KCkgLSBvYmplY3Qgc3RvcmUgLSBhdHRlbXB0IHRvIG1vZGlmeSBhIHJlY29yZCBpbiBhIHJlYWQt
b25seSB0cmFuc2FjdGlvbiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0b3JlMi1wcml2YXRlLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0
c3RvcmUyLXByaXZhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42
ZWE5MzU4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0b3JlMi1wcml2YXRlLmh0bWwKQEAgLTAsMCAr
MSwzOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+SURCQ3Vyc29yLnVwZGF0ZSgpIC0gb2Jq
ZWN0IHN0b3JlIC0gYXR0ZW1wdCB0byBtb2RpZnkgYSByZWNvcmQgaW4gYSByZWFkLW9ubHkgdHJh
bnNhY3Rpb248L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhy
ZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1
cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgIHQgPSBh
c3luY190ZXN0KCksCisgICAgICByZWNvcmRzID0gWyB7IHBLZXk6ICJwcmltYXJ5S2V5XzAiLCBp
S2V5OiAiaW5kZXhLZXlfMCIgfSwKKyAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlL
ZXlfMSIsIGlLZXk6ICJpbmRleEtleV8xIiB9IF07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0
ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAg
ICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5j
cmVhdGVPYmplY3RTdG9yZSgidGVzdCIsIHsga2V5UGF0aDogInBLZXkiIH0pOworCisgICAgICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIG9i
alN0b3JlLmFkZChyZWNvcmRzW2ldKTsKKyAgICB9OworCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3Mg
PSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBjdXJzb3JfcnEgPSBkYi50cmFuc2FjdGlvbigi
dGVzdCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgidGVzdCIpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7CisKKyAgICAgICAgY3Vyc29y
X3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZh
ciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCdS
ZWFkT25seUVycm9yJywgZnVuY3Rpb24oKSB7IGN1cnNvci51cGRhdGUoY3Vyc29yLnZhbHVlKTsg
fSk7CisgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfQorCis8L3Njcmlw
dD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTMtcHJpdmF0ZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNv
cl91cGRhdGVfb2JqZWN0c3RvcmUzLXByaXZhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYzNmIxZjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmUz
LXByaXZhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkN1cnNvci51
cGRhdGUoKSAtIG9iamVjdCBzdG9yZSAtIGF0dGVtcHQgdG8gbW9kaWZ5IGEgcmVjb3JkIGluIGFu
IGluYWN0aXZlIHRyYW5zYWN0aW9uIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmUzLXByaXZhdGUuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9v
YmplY3RzdG9yZTMtcHJpdmF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLmQyODVkNzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmUzLXByaXZhdGUuaHRtbApAQCAt
MCwwICsxLDQwIEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJDdXJzb3IudXBkYXRlKCkg
LSBvYmplY3Qgc3RvcmUgLSBhdHRlbXB0IHRvIG1vZGlmeSBhIHJlY29yZCBpbiBhbiBpbmFjdGl2
ZSB0cmFuc2FjdGlvbjwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29m
dCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisKKyAgICB2YXIgZGIsCisgICAg
ICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAgcmVjb3JkcyA9IFsgeyBwS2V5OiAicHJpbWFyeUtl
eV8wIiwgaUtleTogImluZGV4S2V5XzAiIH0sCisgICAgICAgICAgICAgICAgICB7IHBLZXk6ICJw
cmltYXJ5S2V5XzEiLCBpS2V5OiAiaW5kZXhLZXlfMSIgfSBdOworCisgICAgdmFyIG9wZW5fcnEg
PSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUp
IHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBvYmpTdG9yZSA9
IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0IiwgeyBrZXlQYXRoOiAicEtleSIgfSk7CisKKyAg
ICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKQorICAgICAgICAg
ICAgb2JqU3RvcmUuYWRkKHJlY29yZHNbaV0pOworCisgICAgICAgIHZhciBjdXJzb3JfcnEgPSBv
YmpTdG9yZS5vcGVuQ3Vyc29yKCk7CisKKyAgICAgICAgY3Vyc29yX3JxLm9uc3VjY2VzcyA9IHQu
c3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdl
dC5yZXN1bHQ7CisgICAgICAgICAgICBhc3NlcnRfdHJ1ZShjdXJzb3IgaW5zdGFuY2VvZiBJREJD
dXJzb3IsICJjdXJzb3IgZXhpc3QiKTsKKyAgICAgICAgICAgIHdpbmRvdy5jdXJzb3IgPSBjdXJz
b3I7CisgICAgICAgICAgICB3aW5kb3cucmVjb3JkID0gY3Vyc29yLnZhbHVlOworICAgICAgICB9
KTsKKworICAgICAgICBlLnRhcmdldC50cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gdC5zdGVwX2Z1
bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygnVHJhbnNhY3Rpb25J
bmFjdGl2ZUVycm9yJywgZnVuY3Rpb24oKSB7IHdpbmRvdy5jdXJzb3IudXBkYXRlKHdpbmRvdy5y
ZWNvcmQpOyB9KQorICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgIH0pOworICAgIH0KKwor
PC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmU0LXBy
aXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0b3JlNC1wcml2YXRlLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMzgzYjJlCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX29iamVj
dHN0b3JlNC1wcml2YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJD
dXJzb3IudXBkYXRlKCkgLSBpbmRleCAtIG1vZGlmeSBhIHJlY29yZCBpbiB0aGUgb2JqZWN0IHN0
b3JlIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmU0LXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTQtcHJpdmF0
ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ1NTcxOGEKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNv
cl91cGRhdGVfb2JqZWN0c3RvcmU0LXByaXZhdGUuaHRtbApAQCAtMCwwICsxLDM5IEBACis8IURP
Q1RZUEUgaHRtbD4KKzx0aXRsZT5JREJDdXJzb3IudXBkYXRlKCkgLSBpbmRleCAtIG1vZGlmeSBh
IHJlY29yZCBpbiB0aGUgb2JqZWN0IHN0b3JlIDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIg
aHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwi
PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlw
dD4KKworICAgIHZhciBkYiwKKyAgICAgIHQgPSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlLCB7
dGltZW91dDogMTAwMDB9KQorCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBv
cGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRh
cmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3Jl
KCJ0ZXN0Iik7CisKKyAgICAgICAgb2JqU3RvcmUuYWRkKCJkYXRhIiwgImtleSIpOworICAgIH07
CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAg
ICAgICAgdmFyIHR4biA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IiwgInJlYWR3cml0ZSIpLAorICAg
ICAgICAgIGN1cnNvcl9ycSA9IHR4bi5vYmplY3RTdG9yZSgidGVzdCIpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgLm9wZW5DdXJzb3IoKTsKKworICAgICAgICBjdXJzb3JfcnEub25zdWNjZXNz
ID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUu
dGFyZ2V0LnJlc3VsdDsKKworICAgICAgICAgICAgY3Vyc29yLnZhbHVlID0gIm5ldyBkYXRhISI7
CisgICAgICAgICAgICBjdXJzb3IudXBkYXRlKGN1cnNvci52YWx1ZSkub25zdWNjZXNzID0gdC5z
dGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50
YXJnZXQucmVzdWx0LCAia2V5Iik7CisgICAgICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAg
ICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfSk7CisKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJs
b2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0b3JlNS1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3Rz
dG9yZTUtcHJpdmF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uNmZlZGIzMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTUtcHJpdmF0ZS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCQ3Vyc29yLnVwZGF0ZSgpIC0gb2JqZWN0
IHN0b3JlIC0gYXR0ZW1wdCB0byAgbW9kaWZ5IGEgcmVjb3JkIHdoZW4gb2JqZWN0IHN0b3JlIGJl
ZW4gZGVsZXRlZCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0b3JlNS1wcml2YXRlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmU1
LXByaXZhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zOTY0ZGI5
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0b3JlNS1wcml2YXRlLmh0bWwKQEAgLTAsMCArMSw0MSBA
QAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCQ3Vy
c29yLnVwZGF0ZSgpIC0gb2JqZWN0IHN0b3JlIC0gYXR0ZW1wdCB0byAgbW9kaWZ5IGEgcmVjb3Jk
IHdoZW4gb2JqZWN0IHN0b3JlIGJlZW4gZGVsZXRlZDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhv
ciIgdGl0bGU9IkludGVsIiBocmVmPSJodHRwOi8vd3d3LmludGVsLmNvbSI+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorPGRpdiBpZD0ibG9nIj48L2Rpdj4K
KzxzY3JpcHQ+CisKKyAgICB2YXIgZGIsCisgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAg
cmVjb3JkcyA9IFsgeyBwS2V5OiAicHJpbWFyeUtleV8wIiB9LAorICAgICAgICAgICAgICAgICAg
eyBwS2V5OiAicHJpbWFyeUtleV8xIiB9IF07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRi
KHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAg
ICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRl
T2JqZWN0U3RvcmUoInRlc3QiLCB7a2V5UGF0aDoicEtleSJ9KTsKKworICAgICAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspCisgICAgICAgICAgICBvYmpTdG9yZS5h
ZGQocmVjb3Jkc1tpXSk7CisKKyAgICAgICAgdmFyIGN1cnNvcl9ycSA9IG9ialN0b3JlLm9wZW5D
dXJzb3IoKTsKKworICAgICAgICBjdXJzb3JfcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVu
Y3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKyAg
ICAgICAgICAgIGFzc2VydF90cnVlKGN1cnNvciBpbnN0YW5jZW9mIElEQkN1cnNvciwgImN1cnNv
ciBleGlzdHMiKTsKKworICAgICAgICAgICAgZGIuZGVsZXRlT2JqZWN0U3RvcmUoInRlc3QiKTsK
KyAgICAgICAgICAgIGN1cnNvci52YWx1ZSArPSAiX3VwZGF0ZWQiOworICAgICAgICAgICAgYXNz
ZXJ0X3Rocm93cygiSW52YWxpZFN0YXRlRXJyb3IiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
ICAgICBjdXJzb3IudXBkYXRlKGN1cnNvci52YWx1ZSk7CisgICAgICAgICAgICB9LCAiSWYgdGhl
IGN1cnNvcidzIHNvdXJjZSBvciBlZmZlY3RpdmUgb2JqZWN0IHN0b3JlIGhhcyBiZWVuIGRlbGV0
ZWQsIHRoZSBpbXBsZW1lbnRhdGlvbiBNVVNUIHRocm93IGEgRE9NRXhjZXB0aW9uIG9mIHR5cGUg
SW52YWxpZFN0YXRlRXJyb3IiKTsKKworCisgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAg
fSk7CisgICAgfQorCis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTYtcHJpdmF0ZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91
cGRhdGVfb2JqZWN0c3RvcmU2LXByaXZhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLmJiNjcyMWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmU2LXBy
aXZhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkN1cnNvci51cGRh
dGUoKSAtIG9iamVjdCBzdG9yZSAtIHRocm93IERhdGFDbG9uZUVycm9yIAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfb2Jq
ZWN0c3RvcmU2LXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTYtcHJpdmF0ZS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ0ODIzNGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3Rv
cmU2LXByaXZhdGUuaHRtbApAQCAtMCwwICsxLDQzIEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRs
ZT5JREJDdXJzb3IudXBkYXRlKCkgLSBvYmplY3Qgc3RvcmUgLSB0aHJvdyBEYXRhQ2xvbmVFcnJv
cjwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkludGVsIiBocmVmPSJodHRwOi8v
d3d3LmludGVsLmNvbSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHZjcy53My5v
cmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI3dpZGwtSURCQ3Vyc29y
LXVwZGF0ZS1JREJSZXF1ZXN0LWFueS12YWx1ZSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1
cHBvcnQuanMiPjwvc2NyaXB0PgorPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzxzY3JpcHQ+CisgICAg
dmFyIGRiLAorICAgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAgICByZWNvcmRzID0gWyB7
IHBLZXk6ICJwcmltYXJ5S2V5XzAiLCBpS2V5OiAiaW5kZXhLZXlfMCIgfSwKKyAgICAgICAgICAg
ICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xIiwgaUtleTogImluZGV4S2V5XzEiIH0gXTsK
KworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVu
ZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworCisg
ICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0IiwgeyBrZXlQ
YXRoOiAicEtleSIgfSk7CisKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxl
bmd0aDsgaSsrKQorICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZHNbaV0pOworICAgIH07
CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdmFyIGN1
cnNvcl9ycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IiwgInJlYWR3cml0ZSIpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgidGVzdCIpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgIC5vcGVuQ3Vyc29yKCk7CisKKyAgICAgICAgY3Vyc29yX3JxLm9uc3VjY2VzcyA9IHQu
c3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdl
dC5yZXN1bHQ7CisgICAgICAgICAgICBhc3NlcnRfdHJ1ZShjdXJzb3IgaW5zdGFuY2VvZiBJREJD
dXJzb3IpOworCisgICAgICAgICAgICB2YXIgcmVjb3JkID0gY3Vyc29yLnZhbHVlOworICAgICAg
ICAgICAgcmVjb3JkLmRhdGEgPSBkb2N1bWVudDsKKyAgICAgICAgICAgIGFzc2VydF90aHJvd3Mo
J0RhdGFDbG9uZUVycm9yJywgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgY3Vyc29yLnVw
ZGF0ZShyZWNvcmQpOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0LmRvbmUoKTsKKyAg
ICAgICAgfSk7CisgICAgfQorPC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTctcHJpdmF0
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1
cnNvcl91cGRhdGVfb2JqZWN0c3RvcmU3LXByaXZhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhiZThkZTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3Rv
cmU3LXByaXZhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkN1cnNv
ci51cGRhdGUoKSAtIG9iamVjdCBzdG9yZSAtIG5vIGFyZ3VtZW50IAorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0
c3RvcmU3LXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTctcHJpdmF0ZS5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRiOTgwNjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmU3
LXByaXZhdGUuaHRtbApAQCAtMCwwICsxLDM5IEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5J
REJDdXJzb3IudXBkYXRlKCkgLSBvYmplY3Qgc3RvcmUgLSBubyBhcmd1bWVudDwvdGl0bGU+Cis8
bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkludGVsIiBocmVmPSJodHRwOi8vd3d3LmludGVsLmNv
bSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHZjcy53My5vcmcvaGcvSW5kZXhl
ZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI3dpZGwtSURCQ3Vyc29yLXVwZGF0ZS1JREJS
ZXF1ZXN0LWFueS12YWx1ZSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwv
c2NyaXB0PgorPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAg
ICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAgICByZWNvcmRzID0gWyB7IHBLZXk6ICJwcmlt
YXJ5S2V5XzAiLCBpS2V5OiAiaW5kZXhLZXlfMCIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyBw
S2V5OiAicHJpbWFyeUtleV8xIiwgaUtleTogImluZGV4S2V5XzEiIH0gXTsKKworICAgIHZhciBv
cGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5j
dGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworCisgICAgICAgIHZhciBv
YmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0IiwgeyBrZXlQYXRoOiAicEtleSIg
fSk7CisKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKQor
ICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZHNbaV0pOworICAgIH07CisKKyAgICBvcGVu
X3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdmFyIGN1cnNvcl9ycSA9IGRi
LnRyYW5zYWN0aW9uKCJ0ZXN0IiwgInJlYWR3cml0ZSIpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgIC5vYmplY3RTdG9yZSgidGVzdCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIC5vcGVu
Q3Vyc29yKCk7CisKKyAgICAgICAgY3Vyc29yX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1
bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7Cisg
ICAgICAgICAgICBhc3NlcnRfdHJ1ZShjdXJzb3IgaW5zdGFuY2VvZiBJREJDdXJzb3IpOworCisg
ICAgICAgICAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgZnVuY3Rpb24oKSB7IGN1
cnNvci51cGRhdGUoKTsgfSk7CisgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgfSk7Cisg
ICAgfQorPC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTgtcHJpdmF0ZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVf
b2JqZWN0c3RvcmU4LXByaXZhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjBjNDY4NTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmU4LXByaXZhdGUt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkN1cnNvci51cGRhdGUoKSAt
IG9iamVjdCBzdG9yZSAtIHRocm93IERhdGFFcnJvciAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0b3JlOC1w
cml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNv
cl91cGRhdGVfb2JqZWN0c3RvcmU4LXByaXZhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi45NDhjNTQ5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0b3JlOC1wcml2YXRl
Lmh0bWwKQEAgLTAsMCArMSwzOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+SURCQ3Vyc29y
LnVwZGF0ZSgpIC0gb2JqZWN0IHN0b3JlIC0gdGhyb3cgRGF0YUVycm9yPC90aXRsZT4KKzxsaW5r
IHJlbD0iYXV0aG9yIiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tIj4K
KzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIv
cmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwjd2lkbC1JREJDdXJzb3ItdXBkYXRlLUlEQlJlcXVl
c3QtYW55LXZhbHVlIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3Jp
cHQ+Cis8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICAg
IHQgPSBhc3luY190ZXN0KCksCisgICAgICAgIHJlY29yZHMgPSBbIHsgcEtleTogInByaW1hcnlL
ZXlfMCIsIGlLZXk6ICJpbmRleEtleV8wIiB9LAorICAgICAgICAgICAgICAgICAgICB7IHBLZXk6
ICJwcmltYXJ5S2V5XzEiLCBpS2V5OiAiaW5kZXhLZXlfMSIgfSBdOworCisgICAgdmFyIG9wZW5f
cnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9u
KGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgdmFyIG9ialN0
b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiLCB7IGtleVBhdGg6ICJwS2V5IiB9KTsK
KworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspCisgICAg
ICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7CisgICAgfTsKKworICAgIG9wZW5fcnEu
b25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgY3Vyc29yX3JxID0gZGIudHJh
bnNhY3Rpb24oInRlc3QiLCAicmVhZHdyaXRlIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
Lm9iamVjdFN0b3JlKCJ0ZXN0IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLm9wZW5DdXJz
b3IoKTsKKworICAgICAgICBjdXJzb3JfcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rp
b24oZSkgeworICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAg
ICAgICAgIGFzc2VydF90cnVlKGN1cnNvciBpbnN0YW5jZW9mIElEQkN1cnNvcik7CisKKyAgICAg
ICAgICAgIGFzc2VydF90aHJvd3MoJ0RhdGFFcnJvcicsIGZ1bmN0aW9uKCkgeyBjdXJzb3IudXBk
YXRlKG51bGwpOyB9KTsKKyAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICB9KTsKKyAgICB9
Cis8L3NjcmlwdD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJkYXRhYmFzZV9jbG9zZS1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY2xvc2UtcHJpdmF0ZS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWNlMTliMwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJh
c2VfY2xvc2UtcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURC
RGF0YWJhc2UuY2xvc2UoKSAtIHVuYmxvY2sgdGhlIHZlcnNpb24gY2hhbmdlIHRyYW5zYWN0aW9u
IGNyZWF0ZWQgYnkgYW4gb3BlbiBkYXRhYmFzZSByZXF1ZXN0IAorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2Nsb3NlLXByaXZhdGUu
aHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY2xv
c2UtcHJpdmF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNiZWVi
N2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYmRhdGFiYXNlX2Nsb3NlLXByaXZhdGUuaHRtbApAQCAtMCwwICsxLDQzIEBACis8IURPQ1RZ
UEUgaHRtbD4KKzx0aXRsZT5JREJEYXRhYmFzZS5jbG9zZSgpIC0gdW5ibG9jayB0aGUgdmVyc2lv
biBjaGFuZ2UgdHJhbnNhY3Rpb24gY3JlYXRlZCBieSBhbiBvcGVuIGRhdGFiYXNlIHJlcXVlc3Q8
L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6
Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMi
Pjwvc2NyaXB0PgorCis8c2NyaXB0PgordmFyIGRiOwordmFyIHZlcnNpb25jaGFuZ2VfZmlyZWQ7
Cit2YXIgYmxvY2tlZF9maXJlZDsKK3ZhciB1cGdyYWRlbmVlZGVkX2ZpcmVkOwordmFyIHQgPSBh
c3luY190ZXN0KCk7Cit2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwordmFyIGNvdW50ZXIgPSAw
OworCitvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKCkge30KK29wZW5fcnEub25z
dWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgIGRi
Lm9udmVyc2lvbmNoYW5nZSA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdmVy
c2lvbmNoYW5nZV9maXJlZCA9IGNvdW50ZXIrKzsKKyAgICB9KTsKKyAgICB2YXIgcnEgPSB3aW5k
b3cuaW5kZXhlZERCLm9wZW4oZGIubmFtZSwgZGIudmVyc2lvbiArIDEpOworICAgIHJxLm9uYmxv
Y2tlZCA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uIChlKSB7CisgICAgICAgIGJsb2NrZWRfZmlyZWQg
PSBjb3VudGVyKys7CisgICAgICAgIGRiLmNsb3NlKCk7CisgICAgfSk7CisgICAgcnEub251cGdy
YWRlbmVlZGVkID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24gKGUpIHsKKyAgICAgICAgdXBncmFkZW5l
ZWRlZF9maXJlZCA9IGNvdW50ZXIrKzsKKyAgICB9KTsKKyAgICBycS5vbnN1Y2Nlc3MgPSB0LnN0
ZXBfZnVuYyhmdW5jdGlvbiAoZSkgeworICAgICAgICBhc3NlcnRfZXF1YWxzKHZlcnNpb25jaGFu
Z2VfZmlyZWQsIDAsICd2ZXJzaW9uY2hhbmdlIGV2ZW50IGZpcmVkICMnKQorICAgICAgICBhc3Nl
cnRfZXF1YWxzKGJsb2NrZWRfZmlyZWQsIDEsICdibG9jayBldmVudCBmaXJlZCAjJykKKyAgICAg
ICAgYXNzZXJ0X2VxdWFscyh1cGdyYWRlbmVlZGVkX2ZpcmVkLCAyLCAnc2Vjb25kIHVwZ3JhZGVu
ZWVkZWQgZXZlbnQgZmlyZWQgIycpCisKKyAgICAgICAgdC5kb25lKCk7CisgICAgfSk7CisgICAg
cnEub25lcnJvciA9IGZhaWwodCwgJ1VuZXhwZWN0ZWQgZGF0YWJhc2UgZGVsZXRpb24gZXJyb3In
KTsKK307CisKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jbG9zZTItcHJp
dmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmRhdGFiYXNlX2Nsb3NlMi1wcml2YXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi45ZjZjZWU5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jbG9zZTItcHJpdmF0ZS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCRGF0YWJhc2UuY2xvc2UoKSAtIHVuYmxv
Y2sgdGhlIGRlbGV0ZSBkYXRhYmFzZSByZXF1ZXN0IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2Nsb3NlMi1wcml2YXRlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2Nsb3NlMi1w
cml2YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmVjYTc1Ywot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
ZGF0YWJhc2VfY2xvc2UyLXByaXZhdGUuaHRtbApAQCAtMCwwICsxLDM5IEBACis8IURPQ1RZUEUg
aHRtbD4KKzx0aXRsZT5JREJEYXRhYmFzZS5jbG9zZSgpIC0gdW5ibG9jayB0aGUgZGVsZXRlIGRh
dGFiYXNlIHJlcXVlc3Q8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3Nv
ZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorCit2YXIgZGI7Cit2YXIgYmxv
Y2tlZF9maXJlZCA9IGZhbHNlOwordmFyIHZlcnNpb25jaGFuZ2VfZmlyZWQgPSBmYWxzZTsKK3Zh
ciB0ID0gYXN5bmNfdGVzdCgpOwordmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKworb3Blbl9y
cS5vbnVwZ3JhZGVuZWVkZWQgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbigpIHt9KTsKK29wZW5fcnEu
b25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgIGRiID0gZS50YXJnZXQu
cmVzdWx0OworCisgICAgZGIub252ZXJzaW9uY2hhbmdlID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24g
KGUpIHsKKyAgICAgIHZlcnNpb25jaGFuZ2VfZmlyZWQgPSB0cnVlOworICAgIH0pOworCisgICAg
dmFyIHJxID0gd2luZG93LmluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYi5uYW1lKTsKKyAgICBy
cS5vbmJsb2NrZWQgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbiAoZSkgeworICAgICAgICBibG9ja2Vk
X2ZpcmVkID0gdHJ1ZTsKKyAgICAgICAgZGIuY2xvc2UoKTsKKyAgICB9KTsKKyAgICBycS5vbnN1
Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbiAoZSkgeworICAgICAgICBhc3NlcnRfdHJ1ZSh2
ZXJzaW9uY2hhbmdlX2ZpcmVkLCAidmVyc2lvbmNoYW5nZSBldmVudCBmaXJlZCIpCisgICAgICAg
IGFzc2VydF90cnVlKGJsb2NrZWRfZmlyZWQsICJibG9jayBldmVudCBmaXJlZCIpCisgICAgICAg
IHQuZG9uZSgpOworICAgIH0pOworICAgIHJxLm9uZXJyb3IgPSBmYWlsKHQsICdVbmV4cGVjdGVk
IGRhdGFiYXNlIGRlbGV0aW9uIGVycm9yJyk7Cit9KTsKKworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9
ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlLWNyZWF0ZUluZGV4LWVtcHR5bmFtZS1w
cml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUtY3JlYXRlSW5kZXgtZW1wdHluYW1lLXByaXZh
dGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI4Y2I2
MDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlLWNyZWF0ZUluZGV4LWVtcHR5bmFtZS1wcml2
YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJEYXRhYmFzZS5jcmVh
dGVPYmplY3RTdG9yZSgpIGFuZCBJREJPYmplY3RTdG9yZS5jcmVhdGVJbmRleCgpIC0gYm90aCB3
aXRoIGVtcHR5IG5hbWUgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUtY3JlYXRlSW5kZXgtZW1wdHlu
YW1lLXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
ZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUtY3JlYXRlSW5kZXgtZW1wdHluYW1lLXByaXZhdGUu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNTk3YzJlCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFz
ZV9jcmVhdGVPYmplY3RTdG9yZS1jcmVhdGVJbmRleC1lbXB0eW5hbWUtcHJpdmF0ZS5odG1sCkBA
IC0wLDAgKzEsNDUgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzx0
aXRsZT5JREJEYXRhYmFzZS5jcmVhdGVPYmplY3RTdG9yZSgpIGFuZCBJREJPYmplY3RTdG9yZS5j
cmVhdGVJbmRleCgpIC0gYm90aCB3aXRoIGVtcHR5IG5hbWU8L3RpdGxlPgorPGxpbmsgcmVsPSJh
dXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhl
IE9tZGFsIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwvc2NyaXB0PgorCis8
c2NyaXB0PgorICAgIHZhciBkYgorCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYihhc3luY190
ZXN0KCkpCisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAg
ICAgIGRiID0gZS50YXJnZXQucmVzdWx0CisgICAgICAgIHZhciBzdG9yZSA9IGRiLmNyZWF0ZU9i
amVjdFN0b3JlKCIiKQorCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgNTsgaSsrKQorICAg
ICAgICAgICAgc3RvcmUuYWRkKHsgaWR4OiAib2JqZWN0XyIgKyBpIH0sIGkpCisKKyAgICAgICAg
c3RvcmUuY3JlYXRlSW5kZXgoIiIsICJpZHgiKQorCisgICAgICAgIHN0b3JlLmdldCg0KQorICAg
ICAgICAgICAgIC5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdC5pZHgsICdvYmplY3RfNCcsICdy
ZXN1bHQnKQorICAgICAgICB9KQorICAgICAgICBhc3NlcnRfZXF1YWxzKHN0b3JlLmluZGV4TmFt
ZXNbMF0sICIiLCAiaW5kZXhOYW1lc1swXSIpCisgICAgICAgIGFzc2VydF9lcXVhbHMoc3RvcmUu
aW5kZXhOYW1lcy5sZW5ndGgsIDEsICJpbmRleE5hbWVzLmxlbmd0aCIpCisgICAgfQorCisgICAg
b3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIHN0b3JlID0gZGIu
dHJhbnNhY3Rpb24oIiIpLm9iamVjdFN0b3JlKCIiKQorCisgICAgICAgIGFzc2VydF9lcXVhbHMo
c3RvcmUuaW5kZXhOYW1lc1swXSwgIiIsICJpbmRleE5hbWVzWzBdIikKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzdG9yZS5pbmRleE5hbWVzLmxlbmd0aCwgMSwgImluZGV4TmFtZXMubGVuZ3RoIikK
KworICAgICAgICBzdG9yZS5pbmRleCgiIikKKyAgICAgICAgICAgICAuZ2V0KCdvYmplY3RfNCcp
CisgICAgICAgICAgICAgLm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsK
KyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LmlkeCwgJ29iamVjdF80
JywgJ3Jlc3VsdCcpCisgICAgICAgICAgICB0aGlzLmRvbmUoKQorICAgICAgICB9KQorICAgIH0K
Kzwvc2NyaXB0PgorCis8ZGl2IGlkPWxvZz48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUtcHJp
dmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlLXByaXZhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBjYzRjZGQKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVj
dFN0b3JlLXByaXZhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkRh
dGFiYXNlLmNyZWF0ZU9iamVjdFN0b3JlKCkgLSByZXR1cm5zIGFuIGluc3RhbmNlIG9mIElEQk9i
amVjdFN0b3JlIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlLXByaXZhdGUuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUt
cHJpdmF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYwYTdmNmYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlLXByaXZhdGUuaHRtbApAQCAtMCwwICsxLDI5IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJEYXRhYmFzZS5jcmVhdGVPYmplY3RTdG9yZSgp
IC0gcmV0dXJucyBhbiBpbnN0YW5jZSBvZiBJREJPYmplY3RTdG9yZTwvdGl0bGU+Cis8bGluayBy
ZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQu
Y29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwvc2NyaXB0PgorCis8c2Ny
aXB0PgorCit2YXIgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICBvcGVuX3JxID0gY3JlYXRlZGIodCkK
Kworb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgdmFyIGRiID0g
ZS50YXJnZXQucmVzdWx0CisgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUo
J2luc3RhbmNldGVzdCcpCisKKyAgICBhc3NlcnRfdHJ1ZShvYmpTdG9yZSBpbnN0YW5jZW9mIElE
Qk9iamVjdFN0b3JlLCAnaW5zdGFuY2VvZiBJREJPYmplY3RTdG9yZScpCit9CisKK29wZW5fcnEu
b25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgIHZhciBkYiA9IGUudGFyZ2V0LnJlc3VsdAor
ICAgIHZhciBvYmpTdG9yZSA9IGRiLnRyYW5zYWN0aW9uKCdpbnN0YW5jZXRlc3QnKS5vYmplY3RT
dG9yZSgnaW5zdGFuY2V0ZXN0JykKKworICAgIGFzc2VydF90cnVlKG9ialN0b3JlIGluc3RhbmNl
b2YgSURCT2JqZWN0U3RvcmUsICdpbnN0YW5jZW9mIElEQk9iamVjdFN0b3JlJykKKyAgICB0LmRv
bmUoKQorfQorPC9zY3JpcHQ+CisKKzxkaXYgaWQ9bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RT
dG9yZTEwLTEwMDBlbmRzLXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTEwLTEwMDBlbmRz
LXByaXZhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjZjZmI5NWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlMTAtMTAwMGVuZHMtcHJpdmF0ZS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCRGF0YWJhc2UuY3JlYXRlT2Jq
ZWN0U3RvcmUoKSAtIGNyZWF0ZSAxMDAwIG9iamVjdCBzdG9yZXMsIGFkZCBvbmUgaXRlbSBhbmQg
ZGVsZXRlIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlMTAtMTAwMGVuZHMtcHJpdmF0ZS5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmpl
Y3RTdG9yZTEwLTEwMDBlbmRzLXByaXZhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi4yYWU3NjYxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTEwLTEwMDBlbmRz
LXByaXZhdGUuaHRtbApAQCAtMCwwICsxLDM3IEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5J
REJEYXRhYmFzZS5jcmVhdGVPYmplY3RTdG9yZSgpIC0gY3JlYXRlIDEwMDAgb2JqZWN0IHN0b3Jl
cywgYWRkIG9uZSBpdGVtIGFuZCBkZWxldGU8L3RpdGxlPgorPG1ldGEgbmFtZT10aW1lb3V0IGNv
bnRlbnQ9bG9uZz4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+
CisKKzxzY3JpcHQ+Cit2YXIgZGIsCisgICAgdCA9IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUs
IHt0aW1lb3V0OiA2MDAwMDB9KSwKKyAgICBvcGVuX3JxID0gY3JlYXRlZGIodCkKKworb3Blbl9y
cS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgZGIgPSBlLnRhcmdldC5yZXN1
bHQKKyAgICB2YXIgc3QsIGk7CisgICAgZm9yIChpID0gMDsgaSA8IDEwMDA7IGkrKykKKyAgICB7
CisgICAgICAgIHN0ID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoIm9iamVjdF9zdG9yZV8iICsgaSkK
KyAgICAgICAgc3QuYWRkKCJ0ZXN0IiwgMSk7CisgICAgfQorCisgICAgc3QuZ2V0KDEpLm9uc3Vj
Y2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhl
LnRhcmdldC5yZXN1bHQsICJ0ZXN0IikKKyAgICB9KQorfQorb3Blbl9ycS5vbnN1Y2Nlc3MgPSBm
dW5jdGlvbihlKSB7CisgICAgZGIuY2xvc2UoKQorICAgIHdpbmRvdy5pbmRleGVkREIuZGVsZXRl
RGF0YWJhc2UoZGIubmFtZSkub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICB0LmRv
bmUoKQorICAgIH0KK30KKzwvc2NyaXB0PgorCisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CisKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFz
ZV9jcmVhdGVPYmplY3RTdG9yZTEwLWVtcHR5bmFtZS1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0
U3RvcmUxMC1lbXB0eW5hbWUtcHJpdmF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uMjBiN2E1NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUxMC1l
bXB0eW5hbWUtcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURC
RGF0YWJhc2UuY3JlYXRlT2JqZWN0U3RvcmUoKSAtIGVtcHR5IG5hbWUgCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2Jq
ZWN0U3RvcmUxMC1lbXB0eW5hbWUtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTEwLWVtcHR5bmFtZS1w
cml2YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTk0MTRkMgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
ZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUxMC1lbXB0eW5hbWUtcHJpdmF0ZS5odG1sCkBAIC0w
LDAgKzEsMzggQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzx0aXRs
ZT5JREJEYXRhYmFzZS5jcmVhdGVPYmplY3RTdG9yZSgpIC0gZW1wdHkgbmFtZTwvdGl0bGU+Cis8
bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJP
ZGluIEjDuHJ0aGUgT21kYWwiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9z
Y3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiCisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0
ZWRiKGFzeW5jX3Rlc3QoKSkKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9u
KGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQKKyAgICAgICAgdmFyIHN0b3JlID0g
ZGIuY3JlYXRlT2JqZWN0U3RvcmUoIiIpCisKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCA1
OyBpKyspCisgICAgICAgICAgICBzdG9yZS5hZGQoIm9iamVjdF8iICsgaSwgaSkKKworICAgICAg
ICBhc3NlcnRfZXF1YWxzKGRiLm9iamVjdFN0b3JlTmFtZXNbMF0sICIiLCAiZGIub2JqZWN0U3Rv
cmVOYW1lc1swXSIpCisgICAgICAgIGFzc2VydF9lcXVhbHMoZGIub2JqZWN0U3RvcmVOYW1lcy5s
ZW5ndGgsIDEsICJvYmplY3RTdG9yZU5hbWVzLmxlbmd0aCIpCisgICAgfQorCisgICAgb3Blbl9y
cS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIHN0b3JlID0gZGIudHJhbnNh
Y3Rpb24oIiIpLm9iamVjdFN0b3JlKCIiKQorCisgICAgICAgIHN0b3JlLmdldCgyKS5vbnN1Y2Nl
c3MgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKGUudGFyZ2V0LnJlc3VsdCwgIm9iamVjdF8yIikKKyAgICAgICAgfSkKKworICAgICAgICBh
c3NlcnRfZXF1YWxzKGRiLm9iamVjdFN0b3JlTmFtZXNbMF0sICIiLCAiZGIub2JqZWN0U3RvcmVO
YW1lc1swXSIpCisgICAgICAgIGFzc2VydF9lcXVhbHMoZGIub2JqZWN0U3RvcmVOYW1lcy5sZW5n
dGgsIDEsICJvYmplY3RTdG9yZU5hbWVzLmxlbmd0aCIpCisKKyAgICAgICAgdGhpcy5kb25lKCkK
KyAgICB9Cis8L3NjcmlwdD4KKworPGRpdiBpZD1sb2c+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0
b3JlMTEtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlMTEtcHJpdmF0ZS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGY3ZWViMQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2Vf
Y3JlYXRlT2JqZWN0U3RvcmUxMS1wcml2YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAK
KworUEFTUyBJREJEYXRhYmFzZS5jcmVhdGVPYmplY3RTdG9yZSgpIC0gYXR0ZW1wdGluZyB0byBj
cmVhdGUgYW4gZXhpc3Rpbmcgb2JqZWN0IHN0b3JlIHdpdGggYSBkaWZmZXJlbnQga2V5UGF0aCB0
aHJvdyBDb25zdHJhaW50RXJyb3IgIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlMTEtcHJpdmF0ZS5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVh
dGVPYmplY3RTdG9yZTExLXByaXZhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5iMmUyMzNhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTExLXByaXZhdGUuaHRt
bApAQCAtMCwwICsxLDI1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04
Ij4KKzx0aXRsZT5JREJEYXRhYmFzZS5jcmVhdGVPYmplY3RTdG9yZSgpIC0gYXR0ZW1wdGluZyB0
byBjcmVhdGUgYW4gZXhpc3Rpbmcgb2JqZWN0IHN0b3JlIHdpdGggYSBkaWZmZXJlbnQga2V5UGF0
aCB0aHJvdyBDb25zdHJhaW50RXJyb3IgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRs
ZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tIj4KKzxsaW5rIHJlbD0iaGVscCIg
aHJlZj0iaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2
aWV3Lmh0bWwjd2lkbC1JREJEYXRhYmFzZS1jcmVhdGVPYmplY3RTdG9yZS1JREJPYmplY3RTdG9y
ZS1ET01TdHJpbmctbmFtZS1JREJPYmplY3RTdG9yZVBhcmFtZXRlcnMtb3B0aW9uYWxQYXJhbWV0
ZXJzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Cis8ZGl2
IGlkPSJsb2ciPjwvZGl2PgorPHNjcmlwdD4KK3ZhciB0ID0gYXN5bmNfdGVzdCgpLAorICAgIG9w
ZW5fcnEgPSBjcmVhdGVkYih0KTsKKworb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlv
biAoZSkgeworICAgIHZhciBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICBkYi5jcmVhdGVPYmpl
Y3RTdG9yZSgic3RvcmUiKTsKKyAgICBhc3NlcnRfdGhyb3dzKCJDb25zdHJhaW50RXJyb3IiLCBm
dW5jdGlvbigpeworICAgICAgICBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7CisgICAg
ICAgICAgICBrZXlQYXRoOiAia2V5MSIsCisgICAgICAgIH0pOworICAgIH0pOworICAgIHQuZG9u
ZSgpOworfQorPC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUyLXByaXZhdGUtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9j
cmVhdGVPYmplY3RTdG9yZTItcHJpdmF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uNmNkNzE1NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUyLXBy
aXZhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkRhdGFiYXNlLmNy
ZWF0ZU9iamVjdFN0b3JlKCkgLSBvYmplY3Qgc3RvcmUgJ25hbWUnIGFuZCAna2V5UGF0aCcgcHJv
cGVydGllcyBhcmUgY29ycmVjdGx5IHNldCAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUyLXByaXZh
dGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2Vf
Y3JlYXRlT2JqZWN0U3RvcmUyLXByaXZhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi5jZTZkNWM1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTItcHJpdmF0ZS5o
dG1sCkBAIC0wLDAgKzEsMzMgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklEQkRhdGFiYXNl
LmNyZWF0ZU9iamVjdFN0b3JlKCkgLSBvYmplY3Qgc3RvcmUgJ25hbWUnIGFuZCAna2V5UGF0aCcg
cHJvcGVydGllcyBhcmUgY29ycmVjdGx5IHNldCA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3Ii
IHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorCit2
YXIgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICBvcGVuX3JxID0gY3JlYXRlZGIodCkKKworb3Blbl9y
cS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgdmFyIGRiID0gZS50YXJnZXQu
cmVzdWx0LAorICAgICAgICBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJwcm9wIiwg
eyBrZXlQYXRoOiAibXlrZXlwYXRoIiB9KQorCisgICAgYXNzZXJ0X2VxdWFscyhvYmpTdG9yZS5u
YW1lLCAicHJvcCIsICJvYmplY3Qgc3RvcmUgbmFtZSIpCisgICAgYXNzZXJ0X2VxdWFscyhvYmpT
dG9yZS5rZXlQYXRoLCAibXlrZXlwYXRoIiwgImtleSBwYXRoIikKKyAgICBhc3NlcnRfZXF1YWxz
KG9ialN0b3JlLmF1dG9JbmNyZW1lbnQsIGZhbHNlLCAiYXV0byBpbmNyZW1lbnQiKQorfQorCitv
cGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICB2YXIgZGIgPSBlLnRhcmdldC5y
ZXN1bHQKKyAgICB2YXIgb2JqU3RvcmUgPSBkYi50cmFuc2FjdGlvbigncHJvcCcpLm9iamVjdFN0
b3JlKCdwcm9wJykKKworICAgIGFzc2VydF9lcXVhbHMob2JqU3RvcmUubmFtZSwgInByb3AiLCAi
b2JqZWN0IHN0b3JlIG5hbWUiKQorICAgIGFzc2VydF9lcXVhbHMob2JqU3RvcmUua2V5UGF0aCwg
Im15a2V5cGF0aCIsICJrZXkgcGF0aCIpCisgICAgYXNzZXJ0X2VxdWFscyhvYmpTdG9yZS5hdXRv
SW5jcmVtZW50LCBmYWxzZSwgImF1dG8gaW5jcmVtZW50IikKKyAgICB0LmRvbmUoKQorfQorPC9z
Y3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlMy1wcml2
YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
ZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUzLXByaXZhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYyYWNmOWMKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVj
dFN0b3JlMy1wcml2YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJE
YXRhYmFzZS5jcmVhdGVPYmplY3RTdG9yZSgpIC0gYXR0ZW1wdCB0byBjcmVhdGUgYW4gb2JqZWN0
IHN0b3JlIG91dHNpZGUgb2YgYSB2ZXJzaW9uIGNoYW5nZSB0cmFuc2FjdGlvbiAgCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3Jl
YXRlT2JqZWN0U3RvcmUzLXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUzLXByaXZhdGUuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZDEwZTkwCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVP
YmplY3RTdG9yZTMtcHJpdmF0ZS5odG1sCkBAIC0wLDAgKzEsMjQgQEAKKzwhRE9DVFlQRSBodG1s
PgorPHRpdGxlPklEQkRhdGFiYXNlLmNyZWF0ZU9iamVjdFN0b3JlKCkgLSBhdHRlbXB0IHRvIGNy
ZWF0ZSBhbiBvYmplY3Qgc3RvcmUgb3V0c2lkZSBvZiBhIHZlcnNpb24gY2hhbmdlIHRyYW5zYWN0
aW9uIDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0i
aHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9y
dC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisKK3ZhciB0ID0gYXN5bmNfdGVzdCgpLAorICAg
IG9wZW5fcnEgPSBjcmVhdGVkYih0KQorCitvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0
aW9uKCkge30KK29wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24gKGUpIHsKKyAgICB2YXIgZGIg
PSBlLnRhcmdldC5yZXN1bHQKKyAgICBhc3NlcnRfdGhyb3dzKAorICAgICAgICAnSW52YWxpZFN0
YXRlRXJyb3InLAorICAgICAgICBmdW5jdGlvbigpIHsgZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2Zh
aWxzJykgfSkKKyAgICB0LmRvbmUoKTsKK30KKworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+
PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlNC1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3Rv
cmU0LXByaXZhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLmQ4MjNlOWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlNC1wcml2YXRlLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJEYXRhYmFzZS5jcmVhdGVPYmplY3RTdG9y
ZSgpIC0gYXR0ZW1wdCB0byBjcmVhdGUgYW4gb2JqZWN0IHN0b3JlIHRoYXQgYWxyZWFkeSBleGlz
dHMgIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlNC1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlNC1wcml2
YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmJjN2ZmZQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0
YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmU0LXByaXZhdGUuaHRtbApAQCAtMCwwICsxLDI3IEBACis8
IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJEYXRhYmFzZS5jcmVhdGVPYmplY3RTdG9yZSgpIC0g
YXR0ZW1wdCB0byBjcmVhdGUgYW4gb2JqZWN0IHN0b3JlIHRoYXQgYWxyZWFkeSBleGlzdHMgPC90
aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8v
d3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48
L3NjcmlwdD4KKworPHNjcmlwdD4KKwordmFyIHQgPSBhc3luY190ZXN0KCksCisgICAgb3Blbl9y
cSA9IGNyZWF0ZWRiKHQpCisKK29wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkg
eworICAgIHZhciBkYiA9IGUudGFyZ2V0LnJlc3VsdAorICAgIGRiLmNyZWF0ZU9iamVjdFN0b3Jl
KCJkdXBlIikKKyAgICBhc3NlcnRfdGhyb3dzKAorICAgICAgICAnQ29uc3RyYWludEVycm9yJywK
KyAgICAgICAgZnVuY3Rpb24oKSB7IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJkdXBlIikgfSkKKwor
ICAgIC8vIEJvbnVzIHRlc3QgY3JlYXRpbmcgYSBuZXcgb2JqZWN0c3RvcmUgYWZ0ZXIgdGhlIGV4
Y2VwdGlvbgorICAgIGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJkdXBlICIpCisgICAgdC5kb25lKCkK
K30KKworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0
b3JlNS1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmU1LXByaXZhdGUtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJkNjYyYjgKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2Ny
ZWF0ZU9iamVjdFN0b3JlNS1wcml2YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKwor
UEFTUyBJREJEYXRhYmFzZS5jcmVhdGVPYmplY3RTdG9yZSgpIC0gb2JqZWN0IHN0b3JlJ3MgbmFt
ZSBhcHBlYXJzIGluIGRhdGFiYXNlJ3MgbGlzdCAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmU1LXBy
aXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJh
c2VfY3JlYXRlT2JqZWN0U3RvcmU1LXByaXZhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi43ZDdhOTM4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTUtcHJpdmF0
ZS5odG1sCkBAIC0wLDAgKzEsMzMgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklEQkRhdGFi
YXNlLmNyZWF0ZU9iamVjdFN0b3JlKCkgLSBvYmplY3Qgc3RvcmUncyBuYW1lIGFwcGVhcnMgaW4g
ZGF0YWJhc2UncyBsaXN0IDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jv
c29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisKK3ZhciB0ID0gYXN5bmNf
dGVzdCgpLAorICAgIG9wZW5fcnEgPSBjcmVhdGVkYih0KQorCitvcGVuX3JxLm9udXBncmFkZW5l
ZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICB2YXIgZGIgPSBlLnRhcmdldC5yZXN1bHQKKworICAg
IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJNeSBjb29sIG9iamVjdCBzdG9yZSBuYW1lIikKKyAgICBh
c3NlcnRfdHJ1ZSgKKyAgICAgICAgZGIub2JqZWN0U3RvcmVOYW1lcy5jb250YWlucygiTXkgY29v
bCBvYmplY3Qgc3RvcmUgbmFtZSIpLAorICAgICAgICAnb2JqZWN0U3RvcmVOYW1lcy5jb250YWlu
cycpCit9CisKK29wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgIHZhciBkYiA9
IGUudGFyZ2V0LnJlc3VsdAorCisgICAgYXNzZXJ0X3RydWUoCisgICAgICAgIGRiLm9iamVjdFN0
b3JlTmFtZXMuY29udGFpbnMoIk15IGNvb2wgb2JqZWN0IHN0b3JlIG5hbWUiKSwKKyAgICAgICAg
J29iamVjdFN0b3JlTmFtZXMuY29udGFpbnMgKGluIHN1Y2Nlc3MpJykKKyAgICB0LmRvbmUoKQor
fQorCis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3Rv
cmU2LXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTYtcHJpdmF0ZS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWRkZmM0ZQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3Jl
YXRlT2JqZWN0U3RvcmU2LXByaXZhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQ
QVNTIElEQkRhdGFiYXNlLmNyZWF0ZU9iamVjdFN0b3JlKCkgLSBhdHRlbXB0IHRvIGNyZWF0ZSBh
biBvYmplY3Qgc3RvcmUgd2l0aCBhbiBpbnZhbGlkIGtleSBwYXRoICAKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmpl
Y3RTdG9yZTYtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTYtcHJpdmF0ZS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFlM2Y0MDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0
b3JlNi1wcml2YXRlLmh0bWwKQEAgLTAsMCArMSwzMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0
bGU+SURCRGF0YWJhc2UuY3JlYXRlT2JqZWN0U3RvcmUoKSAtIGF0dGVtcHQgdG8gY3JlYXRlIGFu
IG9iamVjdCBzdG9yZSB3aXRoIGFuIGludmFsaWQga2V5IHBhdGggPC90aXRsZT4KKzxsaW5rIHJl
bD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5j
b20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNj
cmlwdD4KKwordmFyIHQgPSBhc3luY190ZXN0KCksCisgICAgb3Blbl9ycSA9IGNyZWF0ZWRiKHQp
CisKK29wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgIHZhciBkYiA9
IGUudGFyZ2V0LnJlc3VsdAorCisgICAgYXNzZXJ0X3Rocm93cygnU3ludGF4RXJyb3InLCBmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgIGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJpbnZhbGlka2V5cGF0
aCIsIHsga2V5UGF0aDogIkludmFsaWQgS2V5cGF0aCIgfSkKKyAgICAgICAgfSkKKworICAgIGFz
c2VydF90aHJvd3MoJ1N5bnRheEVycm9yJywgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBkYi5j
cmVhdGVPYmplY3RTdG9yZSgiaW52YWxpZGtleXBhdGgiLCB7IGF1dG9JbmNyZW1lbnQ6IHRydWUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtl
eVBhdGg6ICJJbnZhbGlkIEtleXBhdGgiIH0pCisgICAgICAgIH0pCisKKyAgICB0LmRvbmUoKQor
fQorCis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3Rv
cmU3LXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTctcHJpdmF0ZS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTczOWY4YwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3Jl
YXRlT2JqZWN0U3RvcmU3LXByaXZhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQ
QVNTIElEQkRhdGFiYXNlLmNyZWF0ZU9iamVjdFN0b3JlKCkgLSBjcmVhdGUgYW4gb2JqZWN0IHN0
b3JlIHdpdGggYW4gdW5rbm93biBvcHRpb25hbCBwYXJhbWV0ZXIgCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0
U3RvcmU3LXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmU3LXByaXZhdGUuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMjZhMzA5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9y
ZTctcHJpdmF0ZS5odG1sCkBAIC0wLDAgKzEsMjUgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxl
PklEQkRhdGFiYXNlLmNyZWF0ZU9iamVjdFN0b3JlKCkgLSBjcmVhdGUgYW4gb2JqZWN0IHN0b3Jl
IHdpdGggYW4gdW5rbm93biBvcHRpb25hbCBwYXJhbWV0ZXIgPC90aXRsZT4KKzxsaW5rIHJlbD0i
YXV0aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRo
ZSBPbWRhbCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0Pgor
Cis8c2NyaXB0PgorCit2YXIgdCA9IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUsIHt0aW1lb3V0
OiAxMDAwMH0pLAorICAgIG9wZW5fcnEgPSBjcmVhdGVkYih0KQorCitvcGVuX3JxLm9udXBncmFk
ZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICB2YXIgZGIgPSBlLnRhcmdldC5yZXN1bHQKKyAg
ICBkYi5jcmVhdGVPYmplY3RTdG9yZSgid2l0aCB1bmtub3duIHBhcmFtIiwgeyBwYXJhbWV0ZXI6
IDAgfSk7CisKKyAgICB0LmRvbmUoKQorfQorCis8L3NjcmlwdD4KKworCis8ZGl2IGlkPSJsb2ci
PjwvZGl2PgorCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmU4LXBhcmFtZXRlcnMtcHJpdmF0ZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNl
X2NyZWF0ZU9iamVjdFN0b3JlOC1wYXJhbWV0ZXJzLXByaXZhdGUtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJlYzI2YzkKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9i
amVjdFN0b3JlOC1wYXJhbWV0ZXJzLXByaXZhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQg
QEAKKworUEFTUyBJREJPYmplY3RTdG9yZVBhcmFtZXRlcnMgLSBhdXRvSW5jIHRydWUgCitQQVNT
IElEQk9iamVjdFN0b3JlUGFyYW1ldGVycyAtIGF1dG9JbmMgdHJ1ZSwga2V5UGF0aCBudWxsIAor
UEFTUyBJREJPYmplY3RTdG9yZVBhcmFtZXRlcnMgLSBhdXRvSW5jIHRydWUsIGtleVBhdGggdW5k
ZWZpbmVkIAorUEFTUyBJREJPYmplY3RTdG9yZVBhcmFtZXRlcnMgLSBhdXRvSW5jIHRydWUsIGtl
eVBhdGggc3RyaW5nIAorUEFTUyBJREJPYmplY3RTdG9yZVBhcmFtZXRlcnMgLSBhdXRvSW5jIGZh
bHNlLCBrZXlQYXRoIGVtcHR5IAorUEFTUyBJREJPYmplY3RTdG9yZVBhcmFtZXRlcnMgLSBhdXRv
SW5jIGZhbHNlLCBrZXlQYXRoIGFycmF5IAorUEFTUyBJREJPYmplY3RTdG9yZVBhcmFtZXRlcnMg
LSBhdXRvSW5jIGZhbHNlLCBrZXlQYXRoIHN0cmluZyAKK1BBU1MgSURCT2JqZWN0U3RvcmVQYXJh
bWV0ZXJzIC0ga2V5UGF0aCBlbXB0eSAKK1BBU1MgSURCT2JqZWN0U3RvcmVQYXJhbWV0ZXJzIC0g
a2V5UGF0aCBhcnJheSAKK1BBU1MgSURCT2JqZWN0U3RvcmVQYXJhbWV0ZXJzIC0ga2V5UGF0aCBz
dHJpbmcgCitQQVNTIElEQk9iamVjdFN0b3JlUGFyYW1ldGVycyAtIGtleVBhdGggbnVsbCAKK1BB
U1MgSURCT2JqZWN0U3RvcmVQYXJhbWV0ZXJzIC0ga2V5UGF0aCB1bmRlZmluZWQgCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3Jl
YXRlT2JqZWN0U3RvcmU4LXBhcmFtZXRlcnMtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTgtcGFyYW1l
dGVycy1wcml2YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDM4
YzUyYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmU4LXBhcmFtZXRlcnMtcHJpdmF0ZS5odG1s
CkBAIC0wLDAgKzEsMzkgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgi
PgorPHRpdGxlPklEQk9iamVjdFN0b3JlUGFyYW1ldGVyczwvdGl0bGU+Cis8bGluayByZWw9ImF1
dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUg
T21kYWwiPgorPG1ldGEgbmFtZT10aW1lb3V0IGNvbnRlbnQ9bG9uZz4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgZnVuY3Rpb24g
b3B0aW9uYWxQYXJhbWV0ZXJzKGRlc2MsIHBhcmFtcykgeworICAgICAgICB2YXIgdCA9IGFzeW5j
X3Rlc3QoZG9jdW1lbnQudGl0bGUgKyAiIC0gIiArIGRlc2MpOworCisgICAgICAgIGNyZWF0ZWRi
KHQpLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGUudGFyZ2V0
LnJlc3VsdC5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCBwYXJhbXMpOworCisgICAgICAgICAg
ICB0aGlzLmRvbmUoKTsKKyAgICAgICAgfTsKKyAgICB9CisKKworICAgIG9wdGlvbmFsUGFyYW1l
dGVycygiYXV0b0luYyB0cnVlIiwgICAgICAgICAgICAgICAgICAgIHthdXRvSW5jcmVtZW50OiB0
cnVlfSk7CisgICAgb3B0aW9uYWxQYXJhbWV0ZXJzKCJhdXRvSW5jIHRydWUsIGtleVBhdGggbnVs
bCIsICAgICAge2F1dG9JbmNyZW1lbnQ6IHRydWUsICBrZXlQYXRoOiBudWxsfSk7CisgICAgb3B0
aW9uYWxQYXJhbWV0ZXJzKCJhdXRvSW5jIHRydWUsIGtleVBhdGggdW5kZWZpbmVkIiwge2F1dG9J
bmNyZW1lbnQ6IHRydWUsICBrZXlQYXRoOiB1bmRlZmluZWR9KTsKKyAgICBvcHRpb25hbFBhcmFt
ZXRlcnMoImF1dG9JbmMgdHJ1ZSwga2V5UGF0aCBzdHJpbmciLCAgICB7YXV0b0luY3JlbWVudDog
dHJ1ZSwgIGtleVBhdGg6ICJhIn0pOworCisgICAgb3B0aW9uYWxQYXJhbWV0ZXJzKCJhdXRvSW5j
IGZhbHNlLCBrZXlQYXRoIGVtcHR5IiwgIHthdXRvSW5jcmVtZW50OiBmYWxzZSwga2V5UGF0aDog
IiJ9KTsKKyAgICBvcHRpb25hbFBhcmFtZXRlcnMoImF1dG9JbmMgZmFsc2UsIGtleVBhdGggYXJy
YXkiLCAge2F1dG9JbmNyZW1lbnQ6IGZhbHNlLCBrZXlQYXRoOiBbImgiLCAiaiJdfSk7CisgICAg
b3B0aW9uYWxQYXJhbWV0ZXJzKCJhdXRvSW5jIGZhbHNlLCBrZXlQYXRoIHN0cmluZyIsIHthdXRv
SW5jcmVtZW50OiBmYWxzZSwga2V5UGF0aDogImFiYyJ9KTsKKworICAgIG9wdGlvbmFsUGFyYW1l
dGVycygia2V5UGF0aCBlbXB0eSIsICAgICB7a2V5UGF0aDogIiJ9KTsKKyAgICBvcHRpb25hbFBh
cmFtZXRlcnMoImtleVBhdGggYXJyYXkiLCAgICAge2tleVBhdGg6IFsiYSIsImIiXX0pOworICAg
IG9wdGlvbmFsUGFyYW1ldGVycygia2V5UGF0aCBzdHJpbmciLCAgICB7a2V5UGF0aDogImFiYyJ9
KTsKKyAgICBvcHRpb25hbFBhcmFtZXRlcnMoImtleVBhdGggbnVsbCIsICAgICAge2tleVBhdGg6
IG51bGx9KTsKKyAgICBvcHRpb25hbFBhcmFtZXRlcnMoImtleVBhdGggdW5kZWZpbmVkIiwge2tl
eVBhdGg6IHVuZGVmaW5lZH0pOworCis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJh
c2VfY3JlYXRlT2JqZWN0U3RvcmU5LWludmFsaWRwYXJhbWV0ZXJzLXByaXZhdGUtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVh
dGVPYmplY3RTdG9yZTktaW52YWxpZHBhcmFtZXRlcnMtcHJpdmF0ZS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGNkNWJiYgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRl
T2JqZWN0U3RvcmU5LWludmFsaWRwYXJhbWV0ZXJzLXByaXZhdGUtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNiBAQAorCitQQVNTIGNyZWF0ZU9iamVjdFN0b3JlOiBJbnZhbGlkIG9wdGlvbmFsUGFy
YW1ldGVycyAtIGF1dG9JbmMgYW5kIGVtcHR5IGtleVBhdGggCitQQVNTIGNyZWF0ZU9iamVjdFN0
b3JlOiBJbnZhbGlkIG9wdGlvbmFsUGFyYW1ldGVycyAtIGF1dG9JbmMgYW5kIGtleVBhdGggYXJy
YXkgCitQQVNTIGNyZWF0ZU9iamVjdFN0b3JlOiBJbnZhbGlkIG9wdGlvbmFsUGFyYW1ldGVycyAt
IGF1dG9JbmMgYW5kIGtleVBhdGggYXJyYXkgMiAKK1BBU1MgY3JlYXRlT2JqZWN0U3RvcmU6IElu
dmFsaWQgb3B0aW9uYWxQYXJhbWV0ZXJzIC0gYXV0b0luYyBhbmQga2V5UGF0aCBvYmplY3QgCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJh
c2VfY3JlYXRlT2JqZWN0U3RvcmU5LWludmFsaWRwYXJhbWV0ZXJzLXByaXZhdGUuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0
U3RvcmU5LWludmFsaWRwYXJhbWV0ZXJzLXByaXZhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5hNTYyNWUyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTktaW52
YWxpZHBhcmFtZXRlcnMtcHJpdmF0ZS5odG1sCkBAIC0wLDAgKzEsMjkgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzx0aXRsZT5jcmVhdGVPYmplY3RTdG9yZTogSW52
YWxpZCBvcHRpb25hbFBhcmFtZXRlcnM8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9
Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAg
IGZ1bmN0aW9uIGludmFsaWRfb3B0aW9uYWxQYXJhbWV0ZXJzKGRlc2MsIHBhcmFtcykgeworICAg
ICAgICB2YXIgdCA9IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUgKyAiIC0gIiArIGRlc2MpOwor
CisgICAgICAgIGNyZWF0ZWRiKHQpLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAg
ICAgICAgICAgIGFzc2VydF90aHJvd3MobnVsbCwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgZS50YXJnZXQucmVzdWx0LmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHBhcmFtcyk7Cisg
ICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgdGhpcy5kb25lKCk7CisgICAgICAgIH07Cisg
ICAgfQorCisgICAgaW52YWxpZF9vcHRpb25hbFBhcmFtZXRlcnMoImF1dG9JbmMgYW5kIGVtcHR5
IGtleVBhdGgiLCB7YXV0b0luY3JlbWVudDogdHJ1ZSwga2V5UGF0aDogIiJ9KTsKKyAgICBpbnZh
bGlkX29wdGlvbmFsUGFyYW1ldGVycygiYXV0b0luYyBhbmQga2V5UGF0aCBhcnJheSIsIHthdXRv
SW5jcmVtZW50OiB0cnVlLCBrZXlQYXRoOiBbXX0pOworICAgIGludmFsaWRfb3B0aW9uYWxQYXJh
bWV0ZXJzKCJhdXRvSW5jIGFuZCBrZXlQYXRoIGFycmF5IDIiLCB7YXV0b0luY3JlbWVudDogdHJ1
ZSwga2V5UGF0aDogWyJoZXkiXX0pOworICAgIGludmFsaWRfb3B0aW9uYWxQYXJhbWV0ZXJzKCJh
dXRvSW5jIGFuZCBrZXlQYXRoIG9iamVjdCIsIHthdXRvSW5jcmVtZW50OiB0cnVlLCBrZXlQYXRo
OiB7YToiaGV5IiwgYjoyfX0pOworCis8L3NjcmlwdD4KKworPGRpdiBpZD1sb2c+PC9kaXY+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNl
X2RlbGV0ZU9iamVjdFN0b3JlLXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9kZWxldGVPYmplY3RTdG9yZS1wcml2YXRl
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZTU2YTA5
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJkYXRhYmFzZV9kZWxldGVPYmplY3RTdG9yZS1wcml2YXRlLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDMgQEAKKworUEFTUyBJREJEYXRhYmFzZS5kZWxldGVPYmplY3RTdG9yZSgpIC0gb2JqZWN0
IHN0b3JlJ3MgbmFtZSBpcyByZW1vdmVkIGZyb20gZGF0YWJhc2UncyBsaXN0ICAKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9kZWxl
dGVPYmplY3RTdG9yZS1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmRhdGFiYXNlX2RlbGV0ZU9iamVjdFN0b3JlLXByaXZhdGUuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NjdmYzBlCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9kZWxldGVPYmpl
Y3RTdG9yZS1wcml2YXRlLmh0bWwKQEAgLTAsMCArMSwyNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8
dGl0bGU+SURCRGF0YWJhc2UuZGVsZXRlT2JqZWN0U3RvcmUoKSAtIG9iamVjdCBzdG9yZSdzIG5h
bWUgaXMgcmVtb3ZlZCBmcm9tIGRhdGFiYXNlJ3MgbGlzdCA8L3RpdGxlPgorPGxpbmsgcmVsPSJh
dXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0
PgorCit2YXIgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICBvcGVuX3JxID0gY3JlYXRlZGIodCkKKwor
b3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgdmFyIGRiID0gZS50
YXJnZXQucmVzdWx0CisKKyAgICBkYi5jcmVhdGVPYmplY3RTdG9yZSgiZGVsZXRlZCIpOworICAg
IGRiLmRlbGV0ZU9iamVjdFN0b3JlKCJkZWxldGVkIik7CisgICAgYXNzZXJ0X2ZhbHNlKGRiLm9i
amVjdFN0b3JlTmFtZXMuY29udGFpbnMoImRlbGV0ZWQiKSkKKworICAgIHQuZG9uZSgpCit9CisK
Kzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9kZWxldGVPYmplY3RTdG9yZTIt
cHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYmRhdGFiYXNlX2RlbGV0ZU9iamVjdFN0b3JlMi1wcml2YXRlLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZGM3ZDYyCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9kZWxldGVP
YmplY3RTdG9yZTItcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1Mg
SURCRGF0YWJhc2UuZGVsZXRlT2JqZWN0U3RvcmUoKSAtIGF0dGVtcHQgdG8gcmVtb3ZlIGFuIG9i
amVjdCBzdG9yZSBvdXRzaWRlIG9mIGEgdmVyc2lvbiBjaGFuZ2UgdHJhbnNhY3Rpb24gIAorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNl
X2RlbGV0ZU9iamVjdFN0b3JlMi1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2RlbGV0ZU9iamVjdFN0b3JlMi1wcml2YXRlLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTRhODdlYwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfZGVs
ZXRlT2JqZWN0U3RvcmUyLXByaXZhdGUuaHRtbApAQCAtMCwwICsxLDMxIEBACis8IURPQ1RZUEUg
aHRtbD4KKzx0aXRsZT5JREJEYXRhYmFzZS5kZWxldGVPYmplY3RTdG9yZSgpIC0gYXR0ZW1wdCB0
byByZW1vdmUgYW4gb2JqZWN0IHN0b3JlIG91dHNpZGUgb2YgYSB2ZXJzaW9uIGNoYW5nZSB0cmFu
c2FjdGlvbiA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhy
ZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1
cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorCit2YXIgdCA9IGFzeW5jX3Rlc3QoKSwK
KyAgICBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisKK29wZW5fcnEub251cGdyYWRlbmVlZGVkID0g
ZnVuY3Rpb24oZSkKK3sKKyAgICB2YXIgZGIgPSBlLnRhcmdldC5yZXN1bHQsCisgICAgICAgIG9i
alN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoImRlbGV0ZV9vdXRzaWRlIik7CisKKyAgICBl
LnRhcmdldC50cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24gKGUp
CisgICAgeworICAgICAgICBhc3NlcnRfdGhyb3dzKCdJbnZhbGlkU3RhdGVFcnJvcicsCisgICAg
ICAgICAgICBmdW5jdGlvbigpIHsgZGIuZGVsZXRlT2JqZWN0U3RvcmUoImRlbGV0ZV9vdXRzaWRl
Iik7IH0pOworICAgICAgICB0LmRvbmUoKTsKKyAgICB9KTsKK30KKworPC9zY3JpcHQ+CisKKwor
PGRpdiBpZD0ibG9nIj48L2Rpdj4KKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2RlbGV0ZU9iamVjdFN0b3JlMy1wcml2YXRlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJh
c2VfZGVsZXRlT2JqZWN0U3RvcmUzLXByaXZhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBjNGU2ZTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2RlbGV0ZU9iamVjdFN0b3Jl
My1wcml2YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJEYXRhYmFz
ZS5kZWxldGVPYmplY3RTdG9yZSgpIC0gYXR0ZW1wdCB0byByZW1vdmUgYW4gb2JqZWN0IHN0b3Jl
IHRoYXQgZG9lcyBub3QgZXhpc3QgIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2RlbGV0ZU9iamVjdFN0b3JlMy1wcml2YXRlLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2RlbGV0
ZU9iamVjdFN0b3JlMy1wcml2YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uMDQ5N2MxNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfZGVsZXRlT2JqZWN0U3RvcmUzLXByaXZhdGUuaHRtbApA
QCAtMCwwICsxLDIzIEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJEYXRhYmFzZS5kZWxl
dGVPYmplY3RTdG9yZSgpIC0gYXR0ZW1wdCB0byByZW1vdmUgYW4gb2JqZWN0IHN0b3JlIHRoYXQg
ZG9lcyBub3QgZXhpc3QgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9z
b2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKwordmFyIHQgPSBhc3luY190
ZXN0KCksCisgICAgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworCitvcGVuX3JxLm9udXBncmFkZW5l
ZWRlZCA9IGZ1bmN0aW9uKGUpCit7CisgICAgdmFyIGRiID0gZS50YXJnZXQucmVzdWx0OworICAg
IGFzc2VydF90aHJvd3MoJ05vdEZvdW5kRXJyb3InLAorICAgICAgICBmdW5jdGlvbigpIHsgZGIu
ZGVsZXRlT2JqZWN0U3RvcmUoJ3doYXRldmVyJyk7IH0pOworICAgIHQuZG9uZSgpOworfQorCis8
L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfZGVsZXRlT2JqZWN0U3RvcmU0LW5v
dF9yZXVzZWQtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmRhdGFiYXNlX2RlbGV0ZU9iamVjdFN0b3JlNC1ub3RfcmV1c2VkLXByaXZh
dGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJhY2Qx
NjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYmRhdGFiYXNlX2RlbGV0ZU9iamVjdFN0b3JlNC1ub3RfcmV1c2VkLXByaXZhdGUtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkRhdGFiYXNlLmRlbGV0ZU9iamVjdFN0
b3JlKCkgLSB0aGUgb2JqZWN0IHN0b3JlIGlzIG5vdCByZXVzZWQgCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfZGVsZXRlT2JqZWN0
U3RvcmU0LW5vdF9yZXVzZWQtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9kZWxldGVPYmplY3RTdG9yZTQtbm90X3JldXNlZC1wcml2
YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2RhNzg5YQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0
YWJhc2VfZGVsZXRlT2JqZWN0U3RvcmU0LW5vdF9yZXVzZWQtcHJpdmF0ZS5odG1sCkBAIC0wLDAg
KzEsNDIgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzx0aXRsZT5J
REJEYXRhYmFzZS5kZWxldGVPYmplY3RTdG9yZSgpIC0gdGhlIG9iamVjdCBzdG9yZSBpcyBub3Qg
cmV1c2VkPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9w
ZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KKworPHNjcmlwdD4KKwordmFyIHQgPSBhc3luY190ZXN0
KGRvY3VtZW50LnRpdGxlLCB7dGltZW91dDogMTAwMDB9KSwKKyAgICBrZXlzID0gW10sCisgICAg
b3Blbl9ycSA9IGNyZWF0ZWRiKHQpCisKK29wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rp
b24oZSkgeworICAgIHZhciBkYiA9IGUudGFyZ2V0LnJlc3VsdAorCisgICAgdmFyIG9ialN0b3Jl
ID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInJlc3VycmVjdGVkIiwgeyBhdXRvSW5jcmVtZW50OiB0
cnVlLCBrZXlQYXRoOiAiayIgfSk7CisgICAgb2JqU3RvcmUuYWRkKHtrOjV9KS5vbnN1Y2Nlc3Mg
PSBmdW5jdGlvbihlKSB7IGtleXMucHVzaChlLnRhcmdldC5yZXN1bHQpOyB9CisgICAgb2JqU3Rv
cmUuYWRkKHt9KS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7IGtleXMucHVzaChlLnRhcmdldC5y
ZXN1bHQpOyB9CisgICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgoImlkeCIsICJpIik7CisgICAgYXNz
ZXJ0X3RydWUob2JqU3RvcmUuaW5kZXhOYW1lcy5jb250YWlucygiaWR4IikpOworICAgIGFzc2Vy
dF9lcXVhbHMob2JqU3RvcmUua2V5UGF0aCwgImsiLCAia2V5UGF0aCIpOworCisgICAgZGIuZGVs
ZXRlT2JqZWN0U3RvcmUoInJlc3VycmVjdGVkIik7CisKKyAgICB2YXIgb2JqU3RvcmUyID0gZGIu
Y3JlYXRlT2JqZWN0U3RvcmUoInJlc3VycmVjdGVkIiwgeyBhdXRvSW5jcmVtZW50OiB0cnVlIH0p
OworICAgIG9ialN0b3JlMi5hZGQoIlVuaWNvcm5zJ1IndXMiKS5vbnN1Y2Nlc3MgPSBmdW5jdGlv
bihlKSB7IGtleXMucHVzaChlLnRhcmdldC5yZXN1bHQpOyB9OworICAgIGFzc2VydF9mYWxzZShv
YmpTdG9yZTIuaW5kZXhOYW1lcy5jb250YWlucygiaWR4IiksICJpbmRleCBleGlzdCBvbiBuZXcg
b2Jqc3RvcmUiKTsKKyAgICBhc3NlcnRfZXF1YWxzKG9ialN0b3JlMi5rZXlQYXRoLCBudWxsLCAi
a2V5UGF0aCIpOworCisgICAgYXNzZXJ0X3Rocm93cygiTm90Rm91bmRFcnJvciIsIGZ1bmN0aW9u
KCkgeyBvYmpTdG9yZTIuaW5kZXgoImlkeCIpOyB9KTsKK30KKworb3Blbl9ycS5vbnN1Y2Nlc3Mg
PSBmdW5jdGlvbihlKSB7CisgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhrZXlzLCBbNSwgNiwgMV0s
ICJrZXlzIik7CisgICAgdC5kb25lKCk7Cit9CisKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ci
PjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJkYXRhYmFzZV90cmFuc2FjdGlvbi1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfdHJhbnNhY3Rpb24tcHJpdmF0ZS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWY1MDZhNwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
ZGF0YWJhc2VfdHJhbnNhY3Rpb24tcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBA
CisKK1BBU1MgSURCRGF0YWJhc2UudHJhbnNhY3Rpb24oKSAtIGF0dGVtcHQgdG8gb3BlbiBhIHRy
YW5zYWN0aW9uIHdpdGggaW52YWxpZCBzY29wZSAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV90cmFuc2FjdGlvbi1wcml2YXRlLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX3RyYW5z
YWN0aW9uLXByaXZhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5j
OGMyYzlmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJkYXRhYmFzZV90cmFuc2FjdGlvbi1wcml2YXRlLmh0bWwKQEAgLTAsMCArMSwyNCBA
QAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+SURCRGF0YWJhc2UudHJhbnNhY3Rpb24oKSAtIGF0
dGVtcHQgdG8gb3BlbiBhIHRyYW5zYWN0aW9uIHdpdGggaW52YWxpZCBzY29wZTwvdGl0bGU+Cis8
bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNy
b3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+
CisKKzxzY3JpcHQ+CisKK3ZhciBkYiwKKyAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgb3Blbl9ycSA9
IGNyZWF0ZWRiKHQpOworCitvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKCkge307
CitvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICBkYiA9IGUudGFyZ2V0LnJl
c3VsdDsKKworICAgIGFzc2VydF90aHJvd3MoJ05vdEZvdW5kRXJyb3InLCBmdW5jdGlvbigpIHsg
ZGIudHJhbnNhY3Rpb24oJ25vbi1leGlzdGluZycpOyB9KTsKKyAgICB0LmRvbmUoKTsKK307CisK
Kzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV90cmFuc2FjdGlvbjItcHJpdmF0
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRh
dGFiYXNlX3RyYW5zYWN0aW9uMi1wcml2YXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi4xNjUxNzcyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV90cmFuc2FjdGlvbjItcHJpdmF0
ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCRGF0YWJhc2UudHJhbnNh
Y3Rpb24oKSAtIG9wZW5pbmcgYSB0cmFuc2FjdGlvbiBkZWZhdWx0cyB0byBhIHJlYWQtb25seSBt
b2RlICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJkYXRhYmFzZV90cmFuc2FjdGlvbjItcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV90cmFuc2FjdGlvbjItcHJpdmF0ZS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE5MmU0MjcKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX3RyYW5z
YWN0aW9uMi1wcml2YXRlLmh0bWwKQEAgLTAsMCArMSwyNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8
dGl0bGU+SURCRGF0YWJhc2UudHJhbnNhY3Rpb24oKSAtIG9wZW5pbmcgYSB0cmFuc2FjdGlvbiBk
ZWZhdWx0cyB0byBhIHJlYWQtb25seSBtb2RlIDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIg
dGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisKK3Zh
ciBkYiwKKyAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworCitv
cGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICBkYiA9IGUudGFyZ2V0
LnJlc3VsdDsKKyAgICBkYi5jcmVhdGVPYmplY3RTdG9yZSgncmVhZG9ubHknKTsKK307CitvcGVu
X3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICB2YXIgdHhuID0gZGIudHJhbnNhY3Rp
b24oJ3JlYWRvbmx5Jyk7CisgICAgYXNzZXJ0X2VxdWFscyh0eG4ubW9kZSwgInJlYWRvbmx5Iiwg
J3R4bi5tb2RlJyk7CisKKyAgICB0LmRvbmUoKTsKK307CisKKzwvc2NyaXB0PgorCis8ZGl2IGlk
PSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJkYXRhYmFzZV90cmFuc2FjdGlvbjMtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX3RyYW5zYWN0aW9uMy1w
cml2YXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42
NWFlNDNiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJkYXRhYmFzZV90cmFuc2FjdGlvbjMtcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwzIEBACisKK1BBU1MgSURCRGF0YWJhc2UudHJhbnNhY3Rpb24oKSAtIGF0dGVtcHQgdG8g
b3BlbiBhIHRyYW5zYWN0aW9uIGZyb20gY2xvc2VkIGRhdGFiYXNlIGNvbm5lY3Rpb24gIAorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNl
X3RyYW5zYWN0aW9uMy1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmRhdGFiYXNlX3RyYW5zYWN0aW9uMy1wcml2YXRlLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTA4N2FlYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfdHJhbnNhY3Rpb24zLXBy
aXZhdGUuaHRtbApAQCAtMCwwICsxLDI4IEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJE
YXRhYmFzZS50cmFuc2FjdGlvbigpIC0gYXR0ZW1wdCB0byBvcGVuIGEgdHJhbnNhY3Rpb24gZnJv
bSBjbG9zZWQgZGF0YWJhc2UgY29ubmVjdGlvbiA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3Ii
IHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAg
IHZhciBkYiwKKyAgICAgIHQgPSBhc3luY190ZXN0KCksCisgICAgICBvcGVuX3JxID0gY3JlYXRl
ZGIodCk7CisKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAg
ICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgIGRiLmNyZWF0ZU9iamVjdFN0b3Jl
KCd0ZXN0Jyk7CisgICAgfTsKKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkg
eworICAgICAgICBkYi5jbG9zZSgpOworCisgICAgICAgIGFzc2VydF90aHJvd3MoJ0ludmFsaWRT
dGF0ZUVycm9yJywKKyAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBkYi50cmFuc2FjdGlvbigndGVz
dCcpOyB9KTsKKworICAgICAgICB0LmRvbmUoKTsKKyAgICB9OworPC9zY3JpcHQ+CisKKzxkaXYg
aWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmRhdGFiYXNlX3RyYW5zYWN0aW9uNC1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfdHJhbnNhY3Rpb240
LXByaXZhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjI4ZDFiZTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmRhdGFiYXNlX3RyYW5zYWN0aW9uNC1wcml2YXRlLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDMgQEAKKworUEFTUyBJREJEYXRhYmFzZS50cmFuc2FjdGlvbigpIC0gYXR0ZW1wdCB0
byBvcGVuIGEgdHJhbnNhY3Rpb24gd2l0aCBpbnZhbGlkIG1vZGUgCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfdHJhbnNhY3Rpb240
LXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0
YWJhc2VfdHJhbnNhY3Rpb240LXByaXZhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi4yMTIwZjA3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV90cmFuc2FjdGlvbjQtcHJpdmF0ZS5odG1sCkBA
IC0wLDAgKzEsMjYgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklEQkRhdGFiYXNlLnRyYW5z
YWN0aW9uKCkgLSBhdHRlbXB0IHRvIG9wZW4gYSB0cmFuc2FjdGlvbiB3aXRoIGludmFsaWQgbW9k
ZSA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEu
Y29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
c3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgdCA9
IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUsIHt0aW1lb3V0OiAxMDAwMH0pLAorICAgICAgb3Bl
bl9ycSA9IGNyZWF0ZWRiKHQpOworCisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5j
dGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICBkYi5jcmVh
dGVPYmplY3RTdG9yZSgndGVzdCcpOworICAgIH07CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9
IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgYXNzZXJ0X3Rocm93cyh7IG5hbWU6ICdUeXBlRXJyb3In
IH0sCisgICAgICAgICAgICBmdW5jdGlvbigpIHsgZGIudHJhbnNhY3Rpb24oJ3Rlc3QnLCAnd2hh
dGV2ZXInKTsgfSk7CisKKyAgICAgICAgdC5kb25lKCk7CisgICAgfTsKKzwvc2NyaXB0PgorCis8
ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJkYXRhYmFzZV90cmFuc2FjdGlvbjUtcHJpdmF0ZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX3RyYW5zYWN0
aW9uNS1wcml2YXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi40MWM3MjgzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJkYXRhYmFzZV90cmFuc2FjdGlvbjUtcHJpdmF0ZS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCRGF0YWJhc2UudHJhbnNhY3Rpb24oKSAtIElmIHN0
b3JlTmFtZXMgaXMgYW4gZW1wdHkgbGlzdCwgdGhlIGltcGxlbWVudGF0aW9uIG11c3QgdGhyb3cg
YSBET01FeGNlcHRpb24gb2YgdHlwZSBJbnZhbGlkQWNjZXNzRXJyb3IgCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfdHJhbnNhY3Rp
b241LXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
ZGF0YWJhc2VfdHJhbnNhY3Rpb241LXByaXZhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi5jZWY2ZDJhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV90cmFuc2FjdGlvbjUtcHJpdmF0ZS5odG1s
CkBAIC0wLDAgKzEsMjIgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgi
PgorPHRpdGxlPklEQkRhdGFiYXNlLnRyYW5zYWN0aW9uKCkgLSBJZiBzdG9yZU5hbWVzIGlzIGFu
IGVtcHR5IGxpc3QsIHRoZSBpbXBsZW1lbnRhdGlvbiBtdXN0IHRocm93IGEgRE9NRXhjZXB0aW9u
IG9mIHR5cGUgSW52YWxpZEFjY2Vzc0Vycm9yPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0
aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tIj4KKzxsaW5rIHJlbD0iaGVs
cCIgaHJlZj0iaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092
ZXJ2aWV3Lmh0bWwjd2lkbC1JREJEYXRhYmFzZS10cmFuc2FjdGlvbi1JREJUcmFuc2FjdGlvbi1E
T01TdHJpbmctc2VxdWVuY2UtRE9NU3RyaW5nLS1zdG9yZU5hbWVzLUlEQlRyYW5zYWN0aW9uTW9k
ZS1tb2RlIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Cis8
ZGl2IGlkPSJsb2ciPjwvZGl2PgorPHNjcmlwdD4KK3ZhciBkYiwKKyAgICB0ID0gYXN5bmNfdGVz
dCgpLAorICAgIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKworb3Blbl9ycS5vbnVwZ3JhZGVuZWVk
ZWQgPSBmdW5jdGlvbigpIHt9Oworb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7Cisg
ICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgYXNzZXJ0X3Rocm93cygnSW52YWxpZEFjY2Vz
c0Vycm9yJywgZnVuY3Rpb24oKSB7IGRiLnRyYW5zYWN0aW9uKFtdKTsgfSk7CisgICAgdC5kb25l
KCk7Cit9OworPC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRiZmFjdG9yeV9jbXAtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3RvcnlfY21wLXByaXZhdGUtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBjZDA0YWIKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rv
cnlfY21wLXByaXZhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkZh
Y3RvcnkuY21wKCkgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiZmFjdG9yeV9jbXAtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X2NtcC1wcml2YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uOTUwYTljMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9jbXAtcHJpdmF0ZS5odG1sCkBA
IC0wLDAgKzEsMjEgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzx0
aXRsZT5JREJGYWN0b3J5LmNtcCgpIC0gY29tcGFyZWQga2V5cyByZXR1cm4gY29ycmVjdCB2YWx1
ZTwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0
cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz1zdXBwb3J0Lmpz
Pjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgIHZh
ciBncmVhdGVyID0gd2luZG93LmluZGV4ZWREQi5jbXAoMiwgMSk7CisgICAgICAgIHZhciBlcXVh
bCA9IHdpbmRvdy5pbmRleGVkREIuY21wKDIsIDIpOworICAgICAgICB2YXIgbGVzcyA9IHdpbmRv
dy5pbmRleGVkREIuY21wKDEsIDIpOworCisgICAgICAgIGFzc2VydF9lcXVhbHMoZ3JlYXRlciwg
MSwgImdyZWF0ZXIiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhlcXVhbCwgMCwgImVxdWFsIik7
CisgICAgICAgIGFzc2VydF9lcXVhbHMobGVzcywgLTEsICJsZXNzIik7CisgICAgfSwgIklEQkZh
Y3RvcnkuY21wKCkiKTsKKzwvc2NyaXB0PgorCis8ZGl2IGlkPWxvZz48L2Rpdj4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9jbXAyLXBy
aXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJmYWN0b3J5X2NtcDItcHJpdmF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uMzMzMDc3MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9jbXAyLXByaXZhdGUtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNSBAQAorCitQQVNTIElEQkZhY3RvcnkuY21wKCkgLSBubyBhcmd1bWVudCAK
K1BBU1MgSURCRmFjdG9yeS5jbXAoKSAtIG51bGwgCitQQVNTIElEQkZhY3RvcnkuY21wKCkgLSBO
YU4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
ZmFjdG9yeV9jbXAyLXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiZmFjdG9yeV9jbXAyLXByaXZhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi44OTM5ZGQyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X2NtcDItcHJpdmF0ZS5odG1sCkBAIC0wLDAg
KzEsNDEgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxl
PklEQkZhY3RvcnkuY21wKCkgLSBpbnZhbGlkIGtleTwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhv
ciIgdGl0bGU9IkludGVsIiBocmVmPSJodHRwOi8vd3d3LmludGVsLmNvbSI+Cis8bGluayByZWw9
ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3Rp
cC9PdmVydmlldy5odG1sI3dpZGwtSURCRmFjdG9yeS1jbXAtc2hvcnQtYW55LWZpcnN0LWFueS1z
ZWNvbmQiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+Cis8ZGl2
IGlkPWxvZz48L2Rpdj4KKzxzY3JpcHQ+CisgICAgdGVzdCggZnVuY3Rpb24oKSB7CisgICAgICAg
IGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
IGluZGV4ZWREQi5jbXAoKTsKKyAgICAgICAgfSk7CisgICAgfSwgIklEQkZhY3RvcnkuY21wKCkg
LSBubyBhcmd1bWVudCIpOworCisgICAgdGVzdCggZnVuY3Rpb24oKSB7CisgICAgICAgIGFzc2Vy
dF90aHJvd3MoIkRhdGFFcnJvciIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaW5kZXhlZERC
LmNtcChudWxsLCBudWxsKTsKKyAgICAgICAgfSk7CisgICAgICAgIGFzc2VydF90aHJvd3MoIkRh
dGFFcnJvciIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaW5kZXhlZERCLmNtcCgxLCBudWxs
KTsKKyAgICAgICAgfSk7CisgICAgICAgIGFzc2VydF90aHJvd3MoIkRhdGFFcnJvciIsIGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgaW5kZXhlZERCLmNtcChudWxsLCAxKTsKKyAgICAgICAgfSk7
CisgICAgfSwgIklEQkZhY3RvcnkuY21wKCkgLSBudWxsIik7CisKKyAgICB0ZXN0KCBmdW5jdGlv
bigpIHsKKyAgICAgICAgYXNzZXJ0X3Rocm93cygiRGF0YUVycm9yIiwgZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICBpbmRleGVkREIuY21wKE5hTiwgTmFOKTsKKyAgICAgICAgfSk7CisgICAgICAg
IGFzc2VydF90aHJvd3MoIkRhdGFFcnJvciIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaW5k
ZXhlZERCLmNtcCgxLCBOYU4pOworICAgICAgICB9KTsKKyAgICAgICAgYXNzZXJ0X3Rocm93cygi
RGF0YUVycm9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpbmRleGVkREIuY21wKE5hTiwg
MSk7CisgICAgICAgIH0pOworICAgIH0sICJJREJGYWN0b3J5LmNtcCgpIC0gTmFOIik7Cis8L3Nj
cmlwdD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJmYWN0b3J5X2RlbGV0ZURhdGFiYXNlLXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X2RlbGV0ZURhdGFiYXNlLXByaXZh
dGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY1NGJl
ZTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYmZhY3RvcnlfZGVsZXRlRGF0YWJhc2UtcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwzIEBACisKK1BBU1MgSURCRmFjdG9yeS5kZWxldGVEYXRhYmFzZSgpIC0gcmVxdWVzdCBoYXMg
bm8gc291cmNlICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJmYWN0b3J5X2RlbGV0ZURhdGFiYXNlLXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9kZWxldGVEYXRhYmFzZS1wcml2YXRl
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTAyOGExMQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9y
eV9kZWxldGVEYXRhYmFzZS1wcml2YXRlLmh0bWwKQEAgLTAsMCArMSwyNSBAQAorPCFET0NUWVBF
IGh0bWw+Cis8dGl0bGU+SURCRmFjdG9yeS5kZWxldGVEYXRhYmFzZSgpIC0gcmVxdWVzdCBoYXMg
bm8gc291cmNlIDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIg
aHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz1z
dXBwb3J0LmpzPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBvcGVuX3JxID0gY3JlYXRl
ZGIoYXN5bmNfdGVzdCgpLCB1bmRlZmluZWQsIDkpOworCisgICAgb3Blbl9ycS5vbnVwZ3JhZGVu
ZWVkZWQgPSBmdW5jdGlvbihlKSB7fTsKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9u
KGUpIHsKKyAgICAgICAgdmFyIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICBkYi5jbG9z
ZSgpOworCisgICAgICAgIHZhciBkZWxldGVfcnEgPSB3aW5kb3cuaW5kZXhlZERCLmRlbGV0ZURh
dGFiYXNlKGRiLm5hbWUpOworICAgICAgICBkZWxldGVfcnEub25lcnJvciA9IGZhaWwodGhpcywg
IlVuZXhwZWN0ZWQgZGVsZXRlX3JxLmVycm9yIGV2ZW50Iik7CisgICAgICAgIGRlbGV0ZV9ycS5v
bnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyggZnVuY3Rpb24gKGUpIHsKKyAgICAgICAgICAgIGFz
c2VydF9lcXVhbHMoZS50YXJnZXQuc291cmNlLCBudWxsLCAiZXZlbnQudGFyZ2V0LnNvdXJjZSIp
CisgICAgICAgICAgICB0aGlzLmRvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfQorPC9zY3JpcHQ+
CisKKzxkaXYgaWQ9bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X2RlbGV0ZURhdGFiYXNlMi1wcml2YXRlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9kZWxl
dGVEYXRhYmFzZTItcHJpdmF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uYjc3NTQxMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9kZWxldGVEYXRhYmFzZTItcHJpdmF0ZS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCRmFjdG9yeS5kZWxldGVEYXRhYmFz
ZSgpIC0gcmVzdWx0IG9mIHRoZSByZXF1ZXN0IGlzIHNldCB0byB1bmRlZmluZWQgCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9kZWxl
dGVEYXRhYmFzZTItcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJmYWN0b3J5X2RlbGV0ZURhdGFiYXNlMi1wcml2YXRlLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGI4YTQ0YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9kZWxldGVEYXRhYmFzZTIt
cHJpdmF0ZS5odG1sCkBAIC0wLDAgKzEsMjcgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklE
QkZhY3RvcnkuZGVsZXRlRGF0YWJhc2UoKSAtIHJlc3VsdCBvZiB0aGUgcmVxdWVzdCBpcyBzZXQg
dG8gdW5kZWZpbmVkPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0
IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPGxpbmsgcmVsPWhlbHAgaHJlZj0i
aHR0cDovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRt
bCN3aWRsLUlEQkZhY3RvcnktZGVsZXRlRGF0YWJhc2UtSURCT3BlbkRCUmVxdWVzdC1ET01TdHJp
bmctbmFtZSI+Cis8bWV0YSBuYW1lPWFzc2VydCB0aXRsZT0iSWYgdGhlIHN0ZXBzIGFib3ZlIGFy
ZSBzdWNjZXNzZnVsLCB0aGUgaW1wbGVtZW50YXRpb24gbXVzdCBzZXQgdGhlIHJlc3VsdCBvZiB0
aGUgcmVxdWVzdCB0byB1bmRlZmluZWQgYW5kIGZpcmUgYSBzdWNjZXNzIGV2ZW50IGF0IHRoZSBy
ZXF1ZXN0LiI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0Pgor
Cis8c2NyaXB0PgorICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIoYXN5bmNfdGVzdCgpLCB1bmRl
ZmluZWQsIDkpOworCisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7
fTsKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdmFyIGRi
ID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICBkYi5jbG9zZSgpOworCisgICAgICAgIHZhciBk
ZWxldGVfcnEgPSB3aW5kb3cuaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRiLm5hbWUpOworICAg
ICAgICBkZWxldGVfcnEub25lcnJvciA9IGZhaWwodGhpcywgIlVuZXhwZWN0ZWQgZGVsZXRlX3Jx
LmVycm9yIGV2ZW50Iik7CisgICAgICAgIGRlbGV0ZV9ycS5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBf
ZnVuYyggZnVuY3Rpb24gKGUpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQu
cmVzdWx0LCB1bmRlZmluZWQsICJyZXN1bHQiKTsKKyAgICAgICAgICAgIHRoaXMuZG9uZSgpOwor
ICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9k
ZWxldGVEYXRhYmFzZTMtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmZhY3RvcnlfZGVsZXRlRGF0YWJhc2UzLXByaXZhdGUtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYyNjhkZGEKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rv
cnlfZGVsZXRlRGF0YWJhc2UzLXByaXZhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAor
CitQQVNTIElEQkZhY3RvcnkuZGVsZXRlRGF0YWJhc2UoKSAtIHN1Y2Nlc3MgZXZlbnQgCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9k
ZWxldGVEYXRhYmFzZTMtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJmYWN0b3J5X2RlbGV0ZURhdGFiYXNlMy1wcml2YXRlLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzIzZWFjZAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9kZWxldGVEYXRhYmFz
ZTMtcHJpdmF0ZS5odG1sCkBAIC0wLDAgKzEsMzMgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxl
PklEQkZhY3RvcnkuZGVsZXRlRGF0YWJhc2UoKSAtIHN1Y2Nlc3MgZXZlbnQ8L3RpdGxlPgorPGxp
bmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2Rp
biBIw7hydGhlIE9tZGFsIj4KKzxsaW5rIHJlbD1oZWxwIGhyZWY9Imh0dHA6Ly9kdmNzLnczLm9y
Zy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwjd2lkbC1JREJGYWN0b3J5
LWRlbGV0ZURhdGFiYXNlLUlEQk9wZW5EQlJlcXVlc3QtRE9NU3RyaW5nLW5hbWUiPgorPG1ldGEg
bmFtZT1hc3NlcnQgdGl0bGU9IklmIHRoZSBzdGVwcyBhYm92ZSBhcmUgc3VjY2Vzc2Z1bCwgdGhl
IGltcGxlbWVudGF0aW9uIG11c3Qgc2V0IHRoZSByZXN1bHQgb2YgdGhlIHJlcXVlc3QgdG8gdW5k
ZWZpbmVkIGFuZCBmaXJlIGEgc3VjY2VzcyBldmVudCBhdCB0aGUgcmVxdWVzdC4gVGhlIGV2ZW50
IG11c3QgaW1wbGVtZW50IHRoZSBJREJWZXJzaW9uQ2hhbmdlRXZlbnQgaW50ZXJmYWNlIGFuZCBo
YXZlIG9sZFZlcnNpb24gc2V0IHRvIGRhdGFiYXNlIHZlcnNpb24gYW5kIGhhdmUgdGhlIG5ld1Zl
cnNpb24gcHJvcGVydHkgc2V0IHRvIG51bGwuIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz1zdXBw
b3J0LmpzPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYgorICAgIHZhciBvcGVuX3Jx
ID0gY3JlYXRlZGIoYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSwge3RpbWVvdXQ6IDEwMDAwfSks
IHVuZGVmaW5lZCwgOSkKKworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24o
ZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdAorICAgICAgICBkYi5jcmVhdGVPYmpl
Y3RTdG9yZSgnb3MnKQorICAgIH0KKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUp
IHsKKyAgICAgICAgZGIuY2xvc2UoKQorCisgICAgICAgIHZhciBkZWxldGVfcnEgPSB3aW5kb3cu
aW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRiLm5hbWUpCisgICAgICAgIGRlbGV0ZV9ycS5vbmVy
cm9yID0gZmFpbCh0aGlzLCAiVW5leHBlY3RlZCBkZWxldGVfcnEuZXJyb3IgZXZlbnQiKQorICAg
ICAgICBkZWxldGVfcnEub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoIGZ1bmN0aW9uIChlKSB7
CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUub2xkVmVyc2lvbiwgOSwgIm9sZFZlcnNpb24i
KQorICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLm5ld1ZlcnNpb24sIG51bGwsICJuZXdWZXJz
aW9uIikKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LCB1bmRlZmlu
ZWQsICJyZXN1bHQiKQorICAgICAgICAgICAgYXNzZXJ0X3RydWUoZSBpbnN0YW5jZW9mIElEQlZl
cnNpb25DaGFuZ2VFdmVudCwgImUgaW5zdGFuY2VvZiBJREJWZXJzaW9uQ2hhbmdlRXZlbnQiKQor
ICAgICAgICAgICAgdGhpcy5kb25lKCkKKyAgICAgICAgfSkKKyAgICB9Cis8L3NjcmlwdD4KKwor
PGRpdiBpZD1sb2c+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmZhY3RvcnlfZGVsZXRlRGF0YWJhc2U0LXByaXZhdGUtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X2RlbGV0ZURh
dGFiYXNlNC1wcml2YXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5kYTc5YTNiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X2RlbGV0ZURhdGFiYXNlNC1wcml2YXRlLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDQgQEAKKworUEFTUyBEZWxldGUgYW4gZXhpc3RpbmcgZGF0YWJhc2Ug
CitQQVNTIERlbGV0ZSBhIG5vbmV4aXN0YW50IGRhdGFiYXNlIAorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3RvcnlfZGVsZXRlRGF0YWJhc2U0
LXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFj
dG9yeV9kZWxldGVEYXRhYmFzZTQtcHJpdmF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjk0ODRlZTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3RvcnlfZGVsZXRlRGF0YWJhc2U0LXByaXZhdGUuaHRt
bApAQCAtMCwwICsxLDU4IEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5UZXN0IGV2ZW50cyBv
cGVuaW5nIGEgc2Vjb25kIGRhdGFiYXNlIHdoZW4gb25lIGNvbm5lY3Rpb24gaXMgb3BlbiBhbHJl
YWR5PC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJh
LmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgorCis8c2NyaXB0
PgorCisgICAgdmFyIHQgPSBhc3luY190ZXN0KCJEZWxldGUgYW4gZXhpc3RpbmcgZGF0YWJhc2Ui
KTsKKworICAgIHQuc3RlcChmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIG9wZW5ycSA9IGluZGV4
ZWREQi5vcGVuKCdkYicsIDMpOworCisgICAgICAgIG9wZW5ycS5vbnVwZ3JhZGVuZWVkZWQgPSBm
dW5jdGlvbihlKSB7CisgICAgICAgICAgICBlLnRhcmdldC5yZXN1bHQuY3JlYXRlT2JqZWN0U3Rv
cmUoJ3N0b3JlJyk7CisgICAgICAgIH07CisgICAgICAgIG9wZW5ycS5vbnN1Y2Nlc3MgPSB0LnN0
ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsK
KworICAgICAgICAgICAgLy8gRXJyb3JzCisgICAgICAgICAgICBkYi5vbnZlcnNpb25jaGFuZ2Ug
PSBmYWlsKHQsICJkYi52ZXJzaW9uY2hhbmdlIik7CisgICAgICAgICAgICBkYi5vbmVycm9yID0g
ZmFpbCh0LCAiZGIuZXJyb3IiKTsKKyAgICAgICAgICAgIGRiLmFib3J0ID0gZmFpbCh0LCAiZGIu
YWJvcnQiKTsKKworICAgICAgICAgICAgc2V0VGltZW91dCh0LnN0ZXBfZnVuYyhTZWNvbmQpLCA0
KTsKKyAgICAgICAgICAgIGRiLmNsb3NlKCk7CisgICAgICAgIH0pOworCisgICAgICAgIC8vIEVy
cm9ycworICAgICAgICBvcGVucnEub25lcnJvciA9IGZhaWwodCwgIm9wZW4uZXJyb3IiKTsKKyAg
ICAgICAgb3BlbnJxLm9uYmxvY2tlZCA9IGZhaWwodCwgIm9wZW4uYmxvY2tlZCIpOworICAgIH0p
OworCisgICAgZnVuY3Rpb24gU2Vjb25kKGUpIHsKKyAgICAgICAgdmFyIGRlbGV0ZXJxID0gaW5k
ZXhlZERCLmRlbGV0ZURhdGFiYXNlKCdkYicpOworCisgICAgICAgIGRlbGV0ZXJxLm9uc3VjY2Vz
cyA9IGZ1bmN0aW9uKGUpIHsgdC5kb25lKCk7IH0KKworICAgICAgICBkZWxldGVycS5vbmVycm9y
ID0gZmFpbCh0LCAiZGVsZXRlLmVycm9yIik7CisgICAgICAgIGRlbGV0ZXJxLm9uYmxvY2tlZCA9
IGZhaWwodCwgImRlbGV0ZS5ibG9ja2VkIik7CisgICAgICAgIGRlbGV0ZXJxLm9udXBncmFkZW5l
ZWRlZCA9IGZhaWwodCwgImRlbGV0ZS51cGdyYWRlbmVlZGVkIik7CisgICAgfQorCisgICAgYXN5
bmNfdGVzdCgiRGVsZXRlIGEgbm9uZXhpc3RhbnQgZGF0YWJhc2UiKS5zdGVwKGZ1bmN0aW9uKGUp
IHsKKyAgICAgICAgdmFyIGRlbGV0ZXJxID0gaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKCdub25l
eGlzdGFudCcpOworCisgICAgICAgIGRlbGV0ZXJxLm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5j
KGZ1bmN0aW9uKGUpIHsgdGhpcy5kb25lKCk7IH0pOworCisgICAgICAgIGRlbGV0ZXJxLm9uZXJy
b3IgPSBmYWlsKHRoaXMsICJkZWxldGUuZXJyb3IiKTsKKyAgICAgICAgZGVsZXRlcnEub25ibG9j
a2VkID0gZmFpbCh0aGlzLCAiZGVsZXRlLmJsb2NrZWQiKTsKKyAgICAgICAgZGVsZXRlcnEub251
cGdyYWRlbmVlZGVkID0gZmFpbCh0aGlzLCAiZGVsZXRlLnVwZ3JhZGVuZWVkZWQiKTsKKyAgICB9
KTsKKworPC9zY3JpcHQ+Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVuLXByaXZhdGUtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW4tcHJpdmF0
ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTllOTU2
NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRiZmFjdG9yeV9vcGVuLXByaXZhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQ
QVNTIElEQkZhY3Rvcnkub3BlbigpIC0gcmVxdWVzdCBoYXMgbm8gc291cmNlIAorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3Blbi1w
cml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rv
cnlfb3Blbi1wcml2YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
Y2M5NWUwZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiZmFjdG9yeV9vcGVuLXByaXZhdGUuaHRtbApAQCAtMCwwICsxLDE4IEBACis8IURP
Q1RZUEUgaHRtbD4KKzx0aXRsZT5JREJGYWN0b3J5Lm9wZW4oKSAtIHJlcXVlc3QgaGFzIG5vIHNv
dXJjZTwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0i
aHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz1zdXBwb3J0
LmpzPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIoYXN5
bmNfdGVzdCgpLCB1bmRlZmluZWQsIDkpOworCisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQg
PSBmdW5jdGlvbihlKSB7fTsKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5zb3VyY2UsIG51bGwsICJzb3VyY2UiKQor
ICAgICAgICB0aGlzLmRvbmUoKTsKKyAgICB9Cis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj4g
PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmZhY3Rvcnlfb3BlbjEwLXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW4xMC1wcml2YXRlLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNzc1NmM0Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW4x
MC1wcml2YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJGYWN0b3J5
Lm9wZW4oKSAtIGVycm9yIGluIHVwZ3JhZGVuZWVkZWQgcmVzZXRzIGRiIAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjEwLXBy
aXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9y
eV9vcGVuMTAtcHJpdmF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjkwOWNiMmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjEwLXByaXZhdGUuaHRtbApAQCAtMCwwICsxLDkxIEBACis8
IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJGYWN0b3J5Lm9wZW4oKSAtIGVycm9yIGluIHVwZ3Jh
ZGVuZWVkZWQgcmVzZXRzIGRiPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWls
dG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIg
ZGIsIGRiMjsKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKGFzeW5jX3Rlc3QoZG9jdW1lbnQu
dGl0bGUsIHt0aW1lb3V0OiAxMDAwMH0pLCB1bmRlZmluZWQsIDkpOworCisgICAgb3Blbl9ycS5v
bnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVz
dWx0OworCisgICAgICAgIHZhciBzdCA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIpOwor
ICAgICAgICBzdC5jcmVhdGVJbmRleCgiaW5kZXgiLCAiaSIpOworCisgICAgICAgIGFzc2VydF9l
cXVhbHMoZGIudmVyc2lvbiwgOSwgImZpcnN0IGRiLnZlcnNpb24iKTsKKyAgICAgICAgYXNzZXJ0
X3RydWUoZGIub2JqZWN0U3RvcmVOYW1lcy5jb250YWlucygic3RvcmUiKSwgIm9iamVjdFN0b3Jl
TmFtZXMgY29udGFpbnMgc3RvcmUiKTsKKyAgICAgICAgYXNzZXJ0X3RydWUoc3QuaW5kZXhOYW1l
cy5jb250YWlucygiaW5kZXgiKSwgImluZGV4TmFtZXMgY29udGFpbnMgaW5kZXgiKTsKKworICAg
ICAgICBzdC5hZGQoe2k6ICJKb3NodWEifSwgMSk7CisgICAgICAgIHN0LmFkZCh7aTogIkpvbmFz
In0sIDIpOworICAgIH07CisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7Cisg
ICAgICAgIGRiLmNsb3NlKCk7CisgICAgICAgIHZhciBvcGVuX3JxMiA9IHdpbmRvdy5pbmRleGVk
REIub3BlbihkYi5uYW1lLCAxMCk7CisgICAgICAgIG9wZW5fcnEyLm9udXBncmFkZW5lZWRlZCA9
IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGRiMiA9IGUudGFyZ2V0
LnJlc3VsdDsKKworICAgICAgICAgICAgZGIyLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZTIiKTsK
KworICAgICAgICAgICAgdmFyIHN0b3JlID0gb3Blbl9ycTIudHJhbnNhY3Rpb24ub2JqZWN0U3Rv
cmUoInN0b3JlIikKKyAgICAgICAgICAgIHN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleDIiLCAiaSIp
OworCisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGRiMi52ZXJzaW9uLCAxMCwgImRiMi52ZXJz
aW9uIik7CisKKyAgICAgICAgICAgIGFzc2VydF90cnVlKGRiMi5vYmplY3RTdG9yZU5hbWVzLmNv
bnRhaW5zKCJzdG9yZSIpLCAic2Vjb25kIG9iamVjdFN0b3JlTmFtZXMgY29udGFpbnMgc3RvcmUi
KTsKKyAgICAgICAgICAgIGFzc2VydF90cnVlKGRiMi5vYmplY3RTdG9yZU5hbWVzLmNvbnRhaW5z
KCJzdG9yZTIiKSwgInNlY29uZCBvYmplY3RTdG9yZU5hbWVzIGNvbnRhaW5zIHN0b3JlMiIpOwor
ICAgICAgICAgICAgYXNzZXJ0X3RydWUoc3RvcmUuaW5kZXhOYW1lcy5jb250YWlucygiaW5kZXgi
KSwgInNlY29uZCBpbmRleE5hbWVzIGNvbnRhaW5zIGluZGV4Iik7CisgICAgICAgICAgICBhc3Nl
cnRfdHJ1ZShzdG9yZS5pbmRleE5hbWVzLmNvbnRhaW5zKCJpbmRleDIiKSwgInNlY29uZCBpbmRl
eE5hbWVzIGNvbnRhaW5zIGluZGV4MiIpOworCisgICAgICAgICAgICBzdG9yZS5hZGQoe2k6ICJP
ZGluIn0sIDMpOworICAgICAgICAgICAgc3RvcmUucHV0KHtpOiAiU2lja2luZyJ9LCAyKTsKKwor
ICAgICAgICAgICAgb3Blbl9ycTIudHJhbnNhY3Rpb24uYWJvcnQoKTsKKyAgICAgICAgfSk7Cisg
ICAgICAgIG9wZW5fcnEyLm9uZXJyb3IgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7Cisg
ICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGRiMi52ZXJzaW9uLCA5LCAiZGIyLnZlcnNpb24gYWZ0
ZXIgZXJyb3IiKTsKKyAgICAgICAgICAgIGFzc2VydF90cnVlKGRiMi5vYmplY3RTdG9yZU5hbWVz
LmNvbnRhaW5zKCJzdG9yZSIpLCAib2JqZWN0U3RvcmVOYW1lcyBjb250YWlucyBzdG9yZSBhZnRl
ciBlcnJvciIpOworICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKGRiMi5vYmplY3RTdG9yZU5hbWVz
LmNvbnRhaW5zKCJzdG9yZTIiKSwgIm9iamVjdFN0b3JlTmFtZXMgbm90IGNvbnRhaW5zIHN0b3Jl
MiBhZnRlciBlcnJvciIpOworCisgICAgICAgICAgICB2YXIgb3Blbl9ycTMgPSB3aW5kb3cuaW5k
ZXhlZERCLm9wZW4oZGIubmFtZSk7CisgICAgICAgICAgICBvcGVuX3JxMy5vbnN1Y2Nlc3MgPSB0
aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAgICAgdmFyIGRiMyA9IGUu
dGFyZ2V0LnJlc3VsdDsKKworICAgICAgICAgICAgICAgIGFzc2VydF90cnVlKGRiMy5vYmplY3RT
dG9yZU5hbWVzLmNvbnRhaW5zKCJzdG9yZSIpLCAidGhpcmQgb2JqZWN0U3RvcmVOYW1lcyBjb250
YWlucyBzdG9yZSIpOworICAgICAgICAgICAgICAgIGFzc2VydF9mYWxzZShkYjMub2JqZWN0U3Rv
cmVOYW1lcy5jb250YWlucygic3RvcmUyIiksICJ0aGlyZCBvYmplY3RTdG9yZU5hbWVzIGNvbnRh
aW5zIHN0b3JlMiIpOworCisgICAgICAgICAgICAgICAgdmFyIHN0ID0gZGIzLnRyYW5zYWN0aW9u
KCJzdG9yZSIpLm9iamVjdFN0b3JlKCJzdG9yZSIpOworCisgICAgICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhkYjMudmVyc2lvbiwgOSwgImRiMy52ZXJzaW9uIik7CisKKyAgICAgICAgICAgICAg
ICBhc3NlcnRfdHJ1ZShzdC5pbmRleE5hbWVzLmNvbnRhaW5zKCJpbmRleCIpLCAidGhpcmQgaW5k
ZXhOYW1lcyBjb250YWlucyBpbmRleCIpOworICAgICAgICAgICAgICAgIGFzc2VydF9mYWxzZShz
dC5pbmRleE5hbWVzLmNvbnRhaW5zKCJpbmRleDIiKSwgInRoaXJkIGluZGV4TmFtZXMgY29udGFp
bnMgaW5kZXgyIik7CisKKyAgICAgICAgICAgICAgICBzdC5vcGVuQ3Vyc29yKG51bGwsICJwcmV2
Iikub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdC5rZXksIDIsICJvcGVuY3Vyc29y
KHByZXYpIGtleSIpOworICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0
LnJlc3VsdC52YWx1ZS5pLCAiSm9uYXMiLCAib3BlbmN1cnNvcihwcmV2KSB2YWx1ZSIpOworICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHN0LmdldCgzKS5vbnN1Y2Nlc3MgPSB0
aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l
cXVhbHMoZS50YXJnZXQucmVzdWx0LCB1bmRlZmluZWQsICJnZXQoMykiKTsKKyAgICAgICAgICAg
ICAgICB9KTsKKworICAgICAgICAgICAgICAgIHZhciBpZHggPSBzdC5pbmRleCgiaW5kZXgiKTsK
KyAgICAgICAgICAgICAgICBpZHguZ2V0S2V5KCJKb25hcyIpLm9uc3VjY2VzcyA9IHRoaXMuc3Rl
cF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhl
LnRhcmdldC5yZXN1bHQsIDIsICJnZXRLZXkoSm9uYXMpIik7CisgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICAgICAgaWR4LmdldEtleSgiT2RpbiIpLm9uc3VjY2VzcyA9IHRoaXMuc3Rl
cF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhl
LnRhcmdldC5yZXN1bHQsIHVuZGVmaW5lZCwgImdldEtleShPZGluKSIpOworICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgICAgIGlkeC5nZXRLZXkoIlNpY2tpbmciKS5vbnN1Y2Nlc3Mg
PSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LCB1bmRlZmluZWQsICJnZXRLZXkoU2lja2luZykiKTsK
KyAgICAgICAgICAgICAgICAgICAgdGhpcy5kb25lKCk7CisgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfTsKKzwvc2NyaXB0PgorCis8ZGl2IGlk
PWxvZz48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRiZmFjdG9yeV9vcGVuMTEtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjExLXByaXZhdGUtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2NWFjYjcKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlf
b3BlbjExLXByaXZhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkZh
Y3Rvcnkub3BlbigpIC0gc2Vjb25kIG9wZW4ncyB0cmFuc2FjdGlvbiBpcyBhdmFpbGFibGUgdG8g
Z2V0IG9iamVjdFN0b3JlcyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW4xMS1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjExLXByaXZhdGUuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZDQ2NWJiCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW4xMS1w
cml2YXRlLmh0bWwKQEAgLTAsMCArMSw2MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+SURC
RmFjdG9yeS5vcGVuKCkgLSBzZWNvbmQgb3BlbidzIHRyYW5zYWN0aW9uIGlzIGF2YWlsYWJsZSB0
byBnZXQgb2JqZWN0U3RvcmVzPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWls
dG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIg
ZGI7CisgICAgdmFyIGNvdW50X2RvbmUgPSAwOworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIo
YXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSwge3RpbWVvdXQ6IDEwMDAwfSkpOworCisgICAgb3Bl
bl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJn
ZXQucmVzdWx0OworCisgICAgICAgIGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIpOworICAg
ICAgICBhc3NlcnRfdHJ1ZShkYi5vYmplY3RTdG9yZU5hbWVzLmNvbnRhaW5zKCJzdG9yZSIpLCAi
b2JqZWN0U3RvcmVOYW1lcyBjb250YWlucyBzdG9yZSIpOworCisgICAgICAgIHZhciBzdG9yZSA9
IGUudGFyZ2V0LnRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCJzdG9yZSIpOworICAgICAgICBhc3Nl
cnRfZXF1YWxzKHN0b3JlLm5hbWUsICJzdG9yZSIsICJzdG9yZS5uYW1lIik7CisKKyAgICAgICAg
c3RvcmUuYWRkKCJkYXRhIiwgMSk7CisKKyAgICAgICAgc3RvcmUuY291bnQoKS5vbnN1Y2Nlc3Mg
PSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxz
KGUudGFyZ2V0LnJlc3VsdCwgMSwgImNvdW50KCkiKTsKKyAgICAgICAgICAgIGNvdW50X2RvbmUr
KzsKKyAgICAgICAgfSk7CisKKyAgICAgICAgc3RvcmUuYWRkKCJkYXRhMiIsIDIpOworICAgIH07
CisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBzdG9y
ZSA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIpLm9iamVjdFN0b3JlKCJzdG9yZSIpOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHN0b3JlLm5hbWUsICJzdG9yZSIsICJzdG9yZS5uYW1lIik7CisgICAg
ICAgIHN0b3JlLmNvdW50KCkub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkg
eworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQsIDIsICJjb3VudCgp
Iik7CisgICAgICAgICAgICBjb3VudF9kb25lKys7CisgICAgICAgIH0pOworICAgICAgICBkYi5j
bG9zZSgpOworCisgICAgICAgIHZhciBvcGVuX3JxMiA9IHdpbmRvdy5pbmRleGVkREIub3Blbihk
Yi5uYW1lLCAxMCk7CisgICAgICAgIG9wZW5fcnEyLm9udXBncmFkZW5lZWRlZCA9IHRoaXMuc3Rl
cF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBkYjIgPSBlLnRhcmdldC5yZXN1
bHQ7CisgICAgICAgICAgICBhc3NlcnRfdHJ1ZShkYjIub2JqZWN0U3RvcmVOYW1lcy5jb250YWlu
cygic3RvcmUiKSwgIm9iamVjdFN0b3JlTmFtZXMgY29udGFpbnMgc3RvcmUiKTsKKyAgICAgICAg
ICAgIHZhciBzdG9yZSA9IG9wZW5fcnEyLnRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCJzdG9yZSIp
OworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzdG9yZS5uYW1lLCAic3RvcmUiLCAic3RvcmUu
bmFtZSIpOworCisgICAgICAgICAgICBzdG9yZS5hZGQoImRhdGEzIiwgMyk7CisKKyAgICAgICAg
ICAgIHN0b3JlLmNvdW50KCkub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkg
eworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LCAzLCAiY291
bnQoKSIpOworICAgICAgICAgICAgICAgIGNvdW50X2RvbmUrKzsKKworICAgICAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMoY291bnRfZG9uZSwgMywgImNvdW50X2RvbmUiKTsKKyAgICAgICAgICAg
ICAgICB0aGlzLmRvbmUoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9Owor
PC9zY3JpcHQ+CisKKzxkaXYgaWQ9bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW4xMi1wcml2YXRlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVu
MTItcHJpdmF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uZDkxYmIyNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRiZmFjdG9yeV9vcGVuMTItcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw0IEBACisKK1BBU1MgSURCRmFjdG9yeS5vcGVuKCkgLSB1cGdyYWRlbmVlZGVkIGdldHMgVmVy
c2lvbkNoYW5nZUV2ZW50IAorUEFTUyBJREJGYWN0b3J5Lm9wZW4oKSAtIHVwZ3JhZGVuZWVkZWQg
Z2V0cyBWZXJzaW9uQ2hhbmdlRXZlbnQgLSBzZWNvbmQgdXBncmFkZSAKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW4xMi1wcml2
YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlf
b3BlbjEyLXByaXZhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4x
NTA3ZDQwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJmYWN0b3J5X29wZW4xMi1wcml2YXRlLmh0bWwKQEAgLTAsMCArMSw1MCBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8dGl0bGU+SURCRmFjdG9yeS5vcGVuKCkgLSB1cGdyYWRlbmVlZGVkIGdl
dHMgVmVyc2lvbkNoYW5nZUV2ZW50PC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJt
YWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2
YXIgZGI7CisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYihhc3luY190ZXN0KGRvY3VtZW50LnRp
dGxlLCB7dGltZW91dDogMTAwMDB9KSwgdW5kZWZpbmVkLCA5KTsKKyAgICB2YXIgb3BlbjJfdCA9
IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUgKyAiIC0gc2Vjb25kIHVwZ3JhZGUiKTsKKworICAg
IG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUu
dGFyZ2V0LnJlc3VsdDsKKworICAgICAgICBhc3NlcnRfdHJ1ZShlIGluc3RhbmNlb2YgSURCVmVy
c2lvbkNoYW5nZUV2ZW50LCAiZSBpbnN0YW5jZW9mIElEQlZlcnNpb25DaGFuZ2VFdmVudCIpOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKGUub2xkVmVyc2lvbiwgMCwgIm9sZFZlcnNpb24iKTsKKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyhlLm5ld1ZlcnNpb24sIDksICJuZXdWZXJzaW9uIik7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMoZS50eXBlLCAidXBncmFkZW5lZWRlZCIsICJldmVudCB0eXBlIik7
CisKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhkYi52ZXJzaW9uLCA5LCAiZGIudmVyc2lvbiIpOwor
ICAgIH07CisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGFz
c2VydF90cnVlKGUgaW5zdGFuY2VvZiBFdmVudCwgImUgaW5zdGFuY2VvZiBFdmVudCIpOworICAg
ICAgICBhc3NlcnRfZmFsc2UoZSBpbnN0YW5jZW9mIElEQlZlcnNpb25DaGFuZ2VFdmVudCwgImUg
bm90IGluc3RhbmNlb2YgSURCVmVyc2lvbkNoYW5nZUV2ZW50Iik7CisgICAgICAgIGFzc2VydF9l
cXVhbHMoZS50eXBlLCAic3VjY2VzcyIsICJldmVudCB0eXBlIik7CisgICAgICAgIHRoaXMuZG9u
ZSgpOworCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFNlY29uZCB0ZXN0CisgICAgICAgICAq
LworICAgICAgICBkYi5vbnZlcnNpb25jaGFuZ2UgPSBmdW5jdGlvbigpIHsgZGIuY2xvc2UoKTsg
fTsKKworICAgICAgICB2YXIgb3Blbl9ycTIgPSBjcmVhdGVkYihvcGVuMl90LCBkYi5uYW1lLCAx
MCk7CisgICAgICAgIG9wZW5fcnEyLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAg
ICAgICAgICAgIHZhciBkYjIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICBhc3NlcnRf
dHJ1ZShlIGluc3RhbmNlb2YgSURCVmVyc2lvbkNoYW5nZUV2ZW50LCAiZSBpbnN0YW5jZW9mIElE
QlZlcnNpb25DaGFuZ2VFdmVudCIpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLm9sZFZl
cnNpb24sIDksICJvbGRWZXJzaW9uIik7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUubmV3
VmVyc2lvbiwgMTAsICJuZXdWZXJzaW9uIik7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUu
dHlwZSwgInVwZ3JhZGVuZWVkZWQiLCAiZXZlbnQgdHlwZSIpOworCisgICAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKGRiMi52ZXJzaW9uLCAxMCwgIm5ldyBkYi52ZXJzaW9uIik7CisKKyAgICAgICAg
ICAgIHRoaXMuZG9uZSgpOworICAgICAgICB9OworICAgIH07Cis8L3NjcmlwdD4KKworPGRpdiBp
ZD1sb2c+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmZhY3Rvcnlfb3BlbjItcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjItcHJpdmF0ZS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGJjMDExZgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9v
cGVuMi1wcml2YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJGYWN0
b3J5Lm9wZW4oKSAtIGRhdGFiYXNlICduYW1lJyBhbmQgJ3ZlcnNpb24nIGFyZSBjb3JyZWN0bHkg
c2V0IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmZhY3Rvcnlfb3BlbjItcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW4yLXByaXZhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi4yNzgyM2MwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW4yLXByaXZhdGUuaHRtbApAQCAt
MCwwICsxLDIwIEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJGYWN0b3J5Lm9wZW4oKSAt
IGRhdGFiYXNlICduYW1lJyBhbmQgJ3ZlcnNpb24nIGFyZSBjb3JyZWN0bHkgc2V0PC90aXRsZT4K
KzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1p
Y3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+
CisKKzxzY3JpcHQ+CisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYihhc3luY190ZXN0KCksICdk
YXRhYmFzZV9uYW1lJywgMTMpOworCisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5j
dGlvbihlKSB7fTsKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAg
ICAgdmFyIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICBhc3NlcnRfZXF1YWxzKGRiLm5h
bWUsICdkYXRhYmFzZV9uYW1lJywgJ2RiLm5hbWUnKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhk
Yi52ZXJzaW9uLCAxMywgJ2RiLnZlcnNpb24nKTsKKyAgICAgICAgdGhpcy5kb25lKCk7CisgICAg
fQorPC9zY3JpcHQ+CisKKzxkaXYgaWQ9bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW4zLXByaXZhdGUtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X29w
ZW4zLXByaXZhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjgyN2JiNTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjMtcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwzIEBACisKK1BBU1MgSURCRmFjdG9yeS5vcGVuKCkgLSBubyB2ZXJzaW9uIG9wZW5zIGN1cnJl
bnQgZGF0YWJhc2UgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiZmFjdG9yeV9vcGVuMy1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjMtcHJpdmF0ZS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhlN2FkNWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjMtcHJpdmF0ZS5o
dG1sCkBAIC0wLDAgKzEsMjcgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklEQkZhY3Rvcnku
b3BlbigpIC0gbm8gdmVyc2lvbiBvcGVucyBjdXJyZW50IGRhdGFiYXNlPC90aXRsZT4KKzxsaW5r
IHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29m
dC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+CisKKzxz
Y3JpcHQ+CisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYihhc3luY190ZXN0KCksIHVuZGVmaW5l
ZCwgMTMpOworICAgIHZhciBkaWRfdXBncmFkZSA9IGZhbHNlOworCisgICAgb3Blbl9ycS5vbnVw
Z3JhZGVuZWVkZWQgPSBmdW5jdGlvbigpIHt9OworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVu
Y3Rpb24oZSkgeworICAgICAgICB2YXIgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgIGRi
LmNsb3NlKCk7CisKKyAgICAgICAgdmFyIG9wZW5fcnEyID0gd2luZG93LmluZGV4ZWREQi5vcGVu
KGRiLm5hbWUpOworICAgICAgICBvcGVuX3JxMi5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhm
dW5jdGlvbihlKSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdC52
ZXJzaW9uLCAxMywgImRiLnZlcnNpb24iKQorICAgICAgICAgICAgdGhpcy5kb25lKCk7CisgICAg
ICAgIH0pOworICAgICAgICBvcGVuX3JxMi5vbnVwZ3JhZGVuZWVkZWQgPSBmYWlsKHRoaXMsICdV
bmV4cGVjdGVkIHVwZ3JhZGVuZWVkZWQnKQorICAgICAgICBvcGVuX3JxMi5vbmVycm9yID0gZmFp
bCh0aGlzLCAnVW5leHBlY3RlZCBlcnJvcicpCisgICAgfQorPC9zY3JpcHQ+CisKKzxkaXYgaWQ9
bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJmYWN0b3J5X29wZW40LXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW40LXByaXZhdGUtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIyNjA0MGUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3Bl
bjQtcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCRmFjdG9y
eS5vcGVuKCkgLSBuZXcgZGF0YWJhc2UgaGFzIGRlZmF1bHQgdmVyc2lvbiAKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW40LXBy
aXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9y
eV9vcGVuNC1wcml2YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
YTQ3NGI0ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiZmFjdG9yeV9vcGVuNC1wcml2YXRlLmh0bWwKQEAgLTAsMCArMSwyMCBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8dGl0bGU+SURCRmFjdG9yeS5vcGVuKCkgLSBuZXcgZGF0YWJhc2UgaGFz
IGRlZmF1bHQgdmVyc2lvbjwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jv
c29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz1zdXBwb3J0LmpzPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBvcGVuX3JxID0g
Y3JlYXRlZGIoYXN5bmNfdGVzdCgpLCAnZGF0YWJhc2VfbmFtZScpOworCisgICAgb3Blbl9ycS5v
bnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoZS50
YXJnZXQucmVzdWx0LnZlcnNpb24sIDEsICJkYi52ZXJzaW9uIik7CisgICAgfTsKKyAgICBvcGVu
X3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRh
cmdldC5yZXN1bHQudmVyc2lvbiwgMSwgImRiLnZlcnNpb24iKTsKKyAgICAgICAgdGhpcy5kb25l
KCk7CisgICAgfTsKKzwvc2NyaXB0PgorCis8ZGl2IGlkPWxvZz48L2Rpdj4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVuNS1wcml2
YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
ZmFjdG9yeV9vcGVuNS1wcml2YXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi5jYTU5MDliCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW41LXByaXZhdGUtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkZhY3Rvcnkub3BlbigpIC0gbmV3IGRhdGFiYXNl
IGlzIGVtcHR5IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmZhY3Rvcnlfb3BlbjUtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW41LXByaXZhdGUuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5lN2IzYTExCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW41LXByaXZhdGUuaHRt
bApAQCAtMCwwICsxLDE4IEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJGYWN0b3J5Lm9w
ZW4oKSAtIG5ldyBkYXRhYmFzZSBpcyBlbXB0eTwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIg
dGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZh
ciBvcGVuX3JxID0gY3JlYXRlZGIoYXN5bmNfdGVzdCgpLCAnZGF0YWJhc2VfbmFtZScpOworCisg
ICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbigpIHt9OworICAgIG9wZW5fcnEu
b25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0
LnJlc3VsdC5vYmplY3RTdG9yZU5hbWVzLmxlbmd0aCwgMCwgIm9iamVjdFN0b3JlTmFtZXMubGVu
Z3RoIik7CisgICAgICAgIHRoaXMuZG9uZSgpOworICAgIH07Cis8L3NjcmlwdD4KKworPGRpdiBp
ZD1sb2c+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmZhY3Rvcnlfb3BlbjYtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjYtcHJpdmF0ZS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDFmMWJmYwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9v
cGVuNi1wcml2YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJGYWN0
b3J5Lm9wZW4oKSAtIG9wZW4gZGF0YWJhc2Ugd2l0aCBhIGxvd2VyIHZlcnNpb24gdGhhbiBjdXJy
ZW50IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmZhY3Rvcnlfb3BlbjYtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW42LXByaXZhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5iODliNWVhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW42LXByaXZhdGUuaHRtbApAQCAt
MCwwICsxLDM0IEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJGYWN0b3J5Lm9wZW4oKSAt
IG9wZW4gZGF0YWJhc2Ugd2l0aCBhIGxvd2VyIHZlcnNpb24gdGhhbiBjdXJyZW50PC90aXRsZT4K
KzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1p
Y3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+
CisKKzxzY3JpcHQ+CisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYihhc3luY190ZXN0KCksIHVu
ZGVmaW5lZCwgMTMpOworICAgIHZhciBkaWRfdXBncmFkZSA9IGZhbHNlOworCisgICAgb3Blbl9y
cS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbigpIHt9OworICAgIG9wZW5fcnEub25zdWNjZXNz
ID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAg
ICAgIGRiLmNsb3NlKCk7CisKKyAgICAgICAgdmFyIG9wZW5fcnEyID0gd2luZG93LmluZGV4ZWRE
Qi5vcGVuKGRiLm5hbWUsIDE0KTsKKyAgICAgICAgb3Blbl9ycTIub251cGdyYWRlbmVlZGVkID0g
ZnVuY3Rpb24oKSB7fTsKKyAgICAgICAgb3Blbl9ycTIub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1
bmMob3Blbl9wcmV2aW91c19kYik7CisgICAgICAgIG9wZW5fcnEyLm9uZXJyb3IgPSBmYWlsKHRo
aXMsICdVbmV4cGVjdGVkIGVycm9yJykKKyAgICB9CisKKyAgICBmdW5jdGlvbiBvcGVuX3ByZXZp
b3VzX2RiKGUpIHsKKyAgICAgICAgdmFyIG9wZW5fcnEzID0gd2luZG93LmluZGV4ZWREQi5vcGVu
KGUudGFyZ2V0LnJlc3VsdC5uYW1lLCAxMyk7CisgICAgICAgIG9wZW5fcnEzLm9uZXJyb3IgPSB0
aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUu
dGFyZ2V0LmVycm9yLm5hbWUsICdWZXJzaW9uRXJyb3InLCAnZS50YXJnZXQuZXJyb3IubmFtZScp
CisgICAgICAgICAgICB0aGlzLmRvbmUoKTsKKyAgICAgICAgfSk7CisgICAgICAgIG9wZW5fcnEz
Lm9udXBncmFkZW5lZWRlZCA9IGZhaWwodGhpcywgJ1VuZXhwZWN0ZWQgdXBncmFkZW5lZWRlZCcp
CisgICAgICAgIG9wZW5fcnEzLm9uc3VjY2VzcyA9IGZhaWwodGhpcywgJ1VuZXhwZWN0ZWQgc3Vj
Y2VzcycpCisgICAgfQorPC9zY3JpcHQ+CisKKzxkaXYgaWQ9bG9nPjwvZGl2PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW43LXBy
aXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJmYWN0b3J5X29wZW43LXByaXZhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjU5ZDQ5OTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjctcHJpdmF0ZS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCRmFjdG9yeS5vcGVuKCkgLSBvcGVuIGRhdGFi
YXNlIHdpdGggYSBoaWdoZXIgdmVyc2lvbiB0aGFuIGN1cnJlbnQgCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVuNy1wcml2YXRl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3Bl
bjctcHJpdmF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBlNTZi
ZTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYmZhY3Rvcnlfb3BlbjctcHJpdmF0ZS5odG1sCkBAIC0wLDAgKzEsMzggQEAKKzwhRE9DVFlQ
RSBodG1sPgorPHRpdGxlPklEQkZhY3Rvcnkub3BlbigpIC0gb3BlbiBkYXRhYmFzZSB3aXRoIGEg
aGlnaGVyIHZlcnNpb24gdGhhbiBjdXJyZW50PC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0
aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFy
IG9wZW5fcnEgPSBjcmVhdGVkYihhc3luY190ZXN0KCksIHVuZGVmaW5lZCwgMTMpOworICAgIHZh
ciBkaWRfdXBncmFkZSA9IGZhbHNlOworCisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBm
dW5jdGlvbigpIHt9OworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAg
ICAgICB2YXIgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgIGRiLmNsb3NlKCk7CisKKyAg
ICAgICAgdmFyIG9wZW5fcnEyID0gd2luZG93LmluZGV4ZWREQi5vcGVuKGRiLm5hbWUsIDE0KTsK
KyAgICAgICAgb3Blbl9ycTIub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICBkaWRfdXBncmFkZSA9IHRydWU7CisgICAgICAgIH07CisgICAgICAgIG9wZW5fcnEyLm9u
c3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5jKG9wZW5fY3VycmVudF9kYik7CisgICAgICAgIG9wZW5f
cnEyLm9uZXJyb3IgPSBmYWlsKHRoaXMsICdVbmV4cGVjdGVkIGVycm9yJykKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiBvcGVuX2N1cnJlbnRfZGIoZSkgeworICAgICAgICB2YXIgb3Blbl9ycTMgPSB3
aW5kb3cuaW5kZXhlZERCLm9wZW4oZS50YXJnZXQucmVzdWx0Lm5hbWUpOworICAgICAgICBvcGVu
X3JxMy5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdC52ZXJzaW9uLCAxNCwgImRiLnZlcnNpb24i
KQorICAgICAgICAgICAgdGhpcy5kb25lKCk7CisgICAgICAgIH0pOworICAgICAgICBvcGVuX3Jx
My5vbnVwZ3JhZGVuZWVkZWQgPSBmYWlsKHRoaXMsICdVbmV4cGVjdGVkIHVwZ3JhZGVuZWVkZWQn
KQorICAgICAgICBvcGVuX3JxMy5vbmVycm9yID0gZmFpbCh0aGlzLCAnVW5leHBlY3RlZCBlcnJv
cicpCisKKyAgICAgICAgYXNzZXJ0X3RydWUoZGlkX3VwZ3JhZGUsICdkaWQgdXBncmFkZScpOwor
ICAgIH0KKzwvc2NyaXB0PgorCis8ZGl2IGlkPWxvZz48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVuOC1wcml2YXRlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9y
eV9vcGVuOC1wcml2YXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi42NjQ3YjFkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW44LXByaXZhdGUtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMyBAQAorCitQQVNTIElEQkZhY3Rvcnkub3BlbigpIC0gZXJyb3IgaW4gdmVyc2lvbiBj
aGFuZ2UgdHJhbnNhY3Rpb24gYWJvcnRzIG9wZW4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVuOC1wcml2YXRlLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjgtcHJpdmF0
ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEyOGEyN2QKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rv
cnlfb3BlbjgtcHJpdmF0ZS5odG1sCkBAIC0wLDAgKzEsMjcgQEAKKzwhRE9DVFlQRSBodG1sPgor
PHRpdGxlPklEQkZhY3Rvcnkub3BlbigpIC0gZXJyb3IgaW4gdmVyc2lvbiBjaGFuZ2UgdHJhbnNh
Y3Rpb24gYWJvcnRzIG9wZW48L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNy
b3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgb3Blbl9ycSA9
IGNyZWF0ZWRiKGFzeW5jX3Rlc3QoKSwgdW5kZWZpbmVkLCAxMyk7CisgICAgdmFyIGRpZF91cGdy
YWRlID0gZmFsc2U7CisgICAgdmFyIGRpZF9kYl9hYm9ydCA9IGZhbHNlOworCisgICAgb3Blbl9y
cS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRpZF91cGdyYWRlID0g
dHJ1ZTsKKyAgICAgICAgZS50YXJnZXQucmVzdWx0Lm9uYWJvcnQgPSBmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgIGRpZF9kYl9hYm9ydCA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgZS50YXJn
ZXQudHJhbnNhY3Rpb24uYWJvcnQoKTsKKyAgICB9OworICAgIG9wZW5fcnEub25lcnJvciA9IGZ1
bmN0aW9uKGUpIHsKKyAgICAgICAgYXNzZXJ0X3RydWUoZGlkX3VwZ3JhZGUpOworICAgICAgICBh
c3NlcnRfZXF1YWxzKGUudGFyZ2V0LmVycm9yLm5hbWUsICdBYm9ydEVycm9yJywgJ3RhcmdldC5l
cnJvcicpOworICAgICAgICB0aGlzLmRvbmUoKQorICAgIH07Cis8L3NjcmlwdD4KKworPGRpdiBp
ZD1sb2c+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmZhY3Rvcnlfb3BlbjktcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjktcHJpdmF0ZS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGZmYzg4MwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9v
cGVuOS1wcml2YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIwIEBACisKK1BBU1MgQ2FsbGlu
ZyBvcGVuKCkgd2l0aCB2ZXJzaW9uIGFyZ3VtZW50IC0xIHNob3VsZCB0aHJvdyBUeXBlRXJyb3Iu
IAorUEFTUyBDYWxsaW5nIG9wZW4oKSB3aXRoIHZlcnNpb24gYXJndW1lbnQgLTAuNSBzaG91bGQg
dGhyb3cgVHlwZUVycm9yLiAKK1BBU1MgQ2FsbGluZyBvcGVuKCkgd2l0aCB2ZXJzaW9uIGFyZ3Vt
ZW50IDAgc2hvdWxkIHRocm93IFR5cGVFcnJvci4gCitQQVNTIENhbGxpbmcgb3BlbigpIHdpdGgg
dmVyc2lvbiBhcmd1bWVudCAwLjUgc2hvdWxkIHRocm93IFR5cGVFcnJvci4gCitQQVNTIENhbGxp
bmcgb3BlbigpIHdpdGggdmVyc2lvbiBhcmd1bWVudCAwLjggc2hvdWxkIHRocm93IFR5cGVFcnJv
ci4gCitQQVNTIENhbGxpbmcgb3BlbigpIHdpdGggdmVyc2lvbiBhcmd1bWVudCA5MDA3MTk5MjU0
NzQwOTkyIHNob3VsZCB0aHJvdyBUeXBlRXJyb3IuIAorUEFTUyBDYWxsaW5nIG9wZW4oKSB3aXRo
IHZlcnNpb24gYXJndW1lbnQgTmFOIHNob3VsZCB0aHJvdyBUeXBlRXJyb3IuIAorUEFTUyBDYWxs
aW5nIG9wZW4oKSB3aXRoIHZlcnNpb24gYXJndW1lbnQgSW5maW5pdHkgc2hvdWxkIHRocm93IFR5
cGVFcnJvci4gCitQQVNTIENhbGxpbmcgb3BlbigpIHdpdGggdmVyc2lvbiBhcmd1bWVudCAtSW5m
aW5pdHkgc2hvdWxkIHRocm93IFR5cGVFcnJvci4gCitQQVNTIENhbGxpbmcgb3BlbigpIHdpdGgg
dmVyc2lvbiBhcmd1bWVudCAiZm9vIiBzaG91bGQgdGhyb3cgVHlwZUVycm9yLiAKK1BBU1MgQ2Fs
bGluZyBvcGVuKCkgd2l0aCB2ZXJzaW9uIGFyZ3VtZW50IHVuZGVmaW5lZCBzaG91bGQgdGhyb3cg
VHlwZUVycm9yLiAKK1BBU1MgQ2FsbGluZyBvcGVuKCkgd2l0aCB2ZXJzaW9uIGFyZ3VtZW50IG51
bGwgc2hvdWxkIHRocm93IFR5cGVFcnJvci4gCitQQVNTIENhbGxpbmcgb3BlbigpIHdpdGggdmVy
c2lvbiBhcmd1bWVudCBmYWxzZSBzaG91bGQgdGhyb3cgVHlwZUVycm9yLiAKK1BBU1MgQ2FsbGlu
ZyBvcGVuKCkgd2l0aCB2ZXJzaW9uIGFyZ3VtZW50IG9iamVjdCBzaG91bGQgdGhyb3cgVHlwZUVy
cm9yLiAKK1BBU1MgQ2FsbGluZyBvcGVuKCkgd2l0aCB2ZXJzaW9uIGFyZ3VtZW50IG9iamVjdCAo
c2Vjb25kKSBzaG91bGQgdGhyb3cgVHlwZUVycm9yLiAKK1BBU1MgQ2FsbGluZyBvcGVuKCkgd2l0
aCB2ZXJzaW9uIGFyZ3VtZW50IG9iamVjdCAodGhpcmQpIHNob3VsZCB0aHJvdyBUeXBlRXJyb3Iu
IAorUEFTUyBDYWxsaW5nIG9wZW4oKSB3aXRoIHZlcnNpb24gYXJndW1lbnQgMS41IHNob3VsZCBu
b3QgdGhyb3cuIAorUEFTUyBDYWxsaW5nIG9wZW4oKSB3aXRoIHZlcnNpb24gYXJndW1lbnQgOTAw
NzE5OTI1NDc0MDk5MSBzaG91bGQgbm90IHRocm93LiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW45LXByaXZhdGUuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVuOS1wcml2
YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGI5NjFiMQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFj
dG9yeV9vcGVuOS1wcml2YXRlLmh0bWwKQEAgLTAsMCArMSw2MyBAQAorPCFET0NUWVBFIGh0bWw+
Cis8dGl0bGU+SURCRmFjdG9yeS5vcGVuKCkgLSBlcnJvcnMgaW4gdmVyc2lvbiBhcmd1bWVudDwv
dGl0bGU+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KKworPHNj
cmlwdD4KK2Z1bmN0aW9uIHNob3VsZF90aHJvdyh2YWwsIG5hbWUpIHsKKyAgICBpZiAoIW5hbWUp
IHsKKyAgICAgICAgbmFtZSA9ICgodHlwZW9mIHZhbCA9PSAib2JqZWN0IiAmJiB2YWwpID8gIm9i
amVjdCIgOiBmb3JtYXRfdmFsdWUodmFsKSkKKyAgICB9CisgICAgdGVzdChmdW5jdGlvbigpIHsK
KyAgICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLCBmdW5jdGlvbigpIHsKKyAgICAg
ICAgd2luZG93LmluZGV4ZWREQi5vcGVuKCd0ZXN0JywgdmFsKTsKKyAgICAgIH0pOworICAgIH0s
ICJDYWxsaW5nIG9wZW4oKSB3aXRoIHZlcnNpb24gYXJndW1lbnQgIiArIG5hbWUgKyAiIHNob3Vs
ZCB0aHJvdyBUeXBlRXJyb3IuIikKK30KKworc2hvdWxkX3Rocm93KC0xKQorc2hvdWxkX3Rocm93
KC0wLjUpCitzaG91bGRfdGhyb3coMCkKK3Nob3VsZF90aHJvdygwLjUpCitzaG91bGRfdGhyb3co
MC44KQorc2hvdWxkX3Rocm93KDB4MjAwMDAwMDAwMDAwMDApICAvLyBOdW1iZXIuTUFYX1NBRkVf
SU5URUdFUiArIDEKK3Nob3VsZF90aHJvdyhOYU4pCitzaG91bGRfdGhyb3coSW5maW5pdHkpCitz
aG91bGRfdGhyb3coLUluZmluaXR5KQorc2hvdWxkX3Rocm93KCJmb28iKQorc2hvdWxkX3Rocm93
KHVuZGVmaW5lZCkKK3Nob3VsZF90aHJvdyhudWxsKQorc2hvdWxkX3Rocm93KGZhbHNlKQorCitz
aG91bGRfdGhyb3coeworICAgIHRvU3RyaW5nOiBmdW5jdGlvbigpIHsgYXNzZXJ0X3VucmVhY2hl
ZCgidG9TdHJpbmcgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZm9yIFRvUHJpbWl0aXZlIFtOdW1iZXJd
Iik7IH0sCisgICAgdmFsdWVPZjogZnVuY3Rpb24oKSB7IHJldHVybiAwOyB9Cit9KQorc2hvdWxk
X3Rocm93KHsKKyAgICB0b1N0cmluZzogZnVuY3Rpb24oKSB7IHJldHVybiAwOyB9LAorICAgIHZh
bHVlT2Y6IGZ1bmN0aW9uKCkgeyByZXR1cm4ge307IH0KK30sICdvYmplY3QgKHNlY29uZCknKQor
c2hvdWxkX3Rocm93KHsKKyAgICB0b1N0cmluZzogZnVuY3Rpb24oKSB7IHJldHVybiB7fTsgfSwK
KyAgICB2YWx1ZU9mOiBmdW5jdGlvbigpIHsgcmV0dXJuIHt9OyB9LAorfSwgJ29iamVjdCAodGhp
cmQpJykKKworCisvKiBWYWxpZCAqLworCitmdW5jdGlvbiBzaG91bGRfd29yayh2YWwpIHsKKyAg
ICB2YXIgbmFtZSA9IGZvcm1hdF92YWx1ZSh2YWwpOworICAgIHZhciB0ID0gYXN5bmNfdGVzdCgi
Q2FsbGluZyBvcGVuKCkgd2l0aCB2ZXJzaW9uIGFyZ3VtZW50ICIgKyBuYW1lICsgIiBzaG91bGQg
bm90IHRocm93LiIpCisgICAgdmFyIHJxID0gY3JlYXRlZGIodCwgdmFsKQorICAgIHJxLm9udXBn
cmFkZW5lZWRlZCA9IGZ1bmN0aW9uKCkgeworICAgICAgICB0LmRvbmUoKQorICAgIH0KK30KKwor
c2hvdWxkX3dvcmsoMS41KQorc2hvdWxkX3dvcmsoTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpICAv
LyAweDIwMDAwMDAwMDAwMDAwIC0gMQorCis8L3NjcmlwdD4KKworPGRpdiBpZD1sb2c+PC9kaXY+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rv
cnlfb3BlbjkuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0
b3J5X29wZW45Lmh0bQppbmRleCA0Yjk2MWIxLi41NTEyNzE1IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjkuaHRtCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVuOS5odG0KQEAg
LTUsMTMgKzUsMTQgQEAKIDxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+CiAKIDxzY3Jp
cHQ+Cit2YXIgZGF0ZSA9IERhdGUoKTsKIGZ1bmN0aW9uIHNob3VsZF90aHJvdyh2YWwsIG5hbWUp
IHsKICAgICBpZiAoIW5hbWUpIHsKICAgICAgICAgbmFtZSA9ICgodHlwZW9mIHZhbCA9PSAib2Jq
ZWN0IiAmJiB2YWwpID8gIm9iamVjdCIgOiBmb3JtYXRfdmFsdWUodmFsKSkKICAgICB9CiAgICAg
dGVzdChmdW5jdGlvbigpIHsKICAgICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLCBm
dW5jdGlvbigpIHsKLSAgICAgICAgd2luZG93LmluZGV4ZWREQi5vcGVuKCd0ZXN0JywgdmFsKTsK
KyAgICAgICAgd2luZG93LmluZGV4ZWREQi5vcGVuKCd0ZXN0JyArIGRhdGUsIHZhbCk7CiAgICAg
ICB9KTsKICAgICB9LCAiQ2FsbGluZyBvcGVuKCkgd2l0aCB2ZXJzaW9uIGFyZ3VtZW50ICIgKyBu
YW1lICsgIiBzaG91bGQgdGhyb3cgVHlwZUVycm9yLiIpCiB9CkBAIC00Nyw5ICs0OCwxMCBAQCBz
aG91bGRfdGhyb3coewogLyogVmFsaWQgKi8KIAogZnVuY3Rpb24gc2hvdWxkX3dvcmsodmFsKSB7
CisgICAgCiAgICAgdmFyIG5hbWUgPSBmb3JtYXRfdmFsdWUodmFsKTsKICAgICB2YXIgdCA9IGFz
eW5jX3Rlc3QoIkNhbGxpbmcgb3BlbigpIHdpdGggdmVyc2lvbiBhcmd1bWVudCAiICsgbmFtZSAr
ICIgc2hvdWxkIG5vdCB0aHJvdy4iKQotICAgIHZhciBycSA9IGNyZWF0ZWRiKHQsIHZhbCkKKyAg
ICB2YXIgcnEgPSBjcmVhdGVkYih0LCB2YWwgKyBkYXRlKQogICAgIHJxLm9udXBncmFkZW5lZWRl
ZCA9IGZ1bmN0aW9uKCkgewogICAgICAgICB0LmRvbmUoKQogICAgIH0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXgtbXVsdGllbnRyeS1hcnJh
eWtleXBhdGgtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmluZGV4LW11bHRpZW50cnktYXJyYXlrZXlwYXRoLXByaXZhdGUtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA4MjQwOTgKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4
LW11bHRpZW50cnktYXJyYXlrZXlwYXRoLXByaXZhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MyBAQAorCitQQVNTIElEQkluZGV4Lm11bHRpRW50cnk6IGFycmF5IGtleVBhdGggd2l0aCBtdWx0
aUVudHJ5IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYmluZGV4LW11bHRpZW50cnktYXJyYXlrZXlwYXRoLXByaXZhdGUuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXgtbXVsdGllbnRyeS1hcnJheWtleXBh
dGgtcHJpdmF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdkZWRm
YmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYmluZGV4LW11bHRpZW50cnktYXJyYXlrZXlwYXRoLXByaXZhdGUuaHRtbApAQCAtMCwwICsx
LDIzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5J
REJJbmRleC5tdWx0aUVudHJ5OiBhcnJheSBrZXlQYXRoIHdpdGggbXVsdGlFbnRyeTwvdGl0bGU+
Cis8bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxl
PSJPZGluIEjDuHJ0aGUgT21kYWwiPgorPGxpbmsgcmVsPWhlbHAgaHJlZj0iaHR0cDovL2R2Y3Mu
dzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCNrZXktY29uc3Ry
dWN0Ij4KKzxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9IlhYWCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIGNyZWF0ZWRiKGFzeW5j
X3Rlc3QoZG9jdW1lbnQudGl0bGUsIHt0aW1lb3V0OiAxMDAwMH0pKS5vbnVwZ3JhZGVuZWVkZWQg
PSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBzdG9yZSA9IGUudGFyZ2V0LnJlc3VsdC5jcmVh
dGVPYmplY3RTdG9yZSgic3RvcmUiKTsKKworICAgICAgICBhc3NlcnRfdGhyb3dzKCdJbnZhbGlk
QWNjZXNzRXJyb3InLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHN0b3JlLmNyZWF0ZUluZGV4
KCdhY3RvcnMnLCBbJ25hbWUnXSwgeyBtdWx0aUVudHJ5OiB0cnVlIH0pCisgICAgICAgIH0pOwor
CisgICAgICAgIHRoaXMuZG9uZSgpOworICAgIH07Cis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9n
Ij48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRiaW5kZXgtbXVsdGllbnRyeS1iaWctcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4LW11bHRpZW50cnktYmlnLXByaXZhdGUt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZkYzRkM2QK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmluZGV4LW11bHRpZW50cnktYmlnLXByaXZhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBA
QAorCitQQVNTIEFkZGluZyBvbmUgaXRlbSB3aXRoIDEwMDAgbXVsdGlFbnRyeSBrZXlzIAorUEFT
UyBHZXR0aW5nIHRoZSBvbmUgaXRlbSBieSAxMDAwIGluZGVjZWQga2V5cyAgCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXgtbXVsdGllbnRy
eS1iaWctcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJpbmRleC1tdWx0aWVudHJ5LWJpZy1wcml2YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uYjkxMDI0OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXgtbXVsdGllbnRyeS1iaWctcHJpdmF0ZS5odG1s
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
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleC1tdWx0aWVudHJ5LXByaXZhdGUtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleC1tdWx0aWVu
dHJ5LXByaXZhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjBkYTQ2M2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmluZGV4LW11bHRpZW50cnktcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwzIEBACisKK1BBU1MgSURCSW5kZXgubXVsdGlFbnRyeSAtIGFkZGluZyBrZXlzIAorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4LW11
bHRpZW50cnktcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJpbmRleC1tdWx0aWVudHJ5LXByaXZhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi4zNDBkYTg0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleC1tdWx0aWVudHJ5LXByaXZhdGUuaHRtbApAQCAt
MCwwICsxLDUzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0
aXRsZT5JREJJbmRleC5tdWx0aUVudHJ5IC0gYWRkaW5nIGtleXM8L3RpdGxlPgorPGxpbmsgcmVs
PSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hy
dGhlIE9tZGFsIj4KKzxsaW5rIHJlbD1oZWxwIGhyZWY9Imh0dHA6Ly9kdmNzLnczLm9yZy9oZy9J
bmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwja2V5LWNvbnN0cnVjdCI+Cis8bGlu
ayByZWw9YXNzZXJ0IHRpdGxlPSJYWFgiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0
LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICAgIGV4cGVjdGVk
X2tleXMgPSBbMSwgMiwgMiwgMywgM107CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKGFz
eW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUsIHt0aW1lb3V0OiAxMDAwMH0pKQorCisgICAgb3Blbl9y
cS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQu
cmVzdWx0OworCisgICAgICAgIHZhciBzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9y
ZSIpCisKKyAgICAgICAgc3RvcmUuY3JlYXRlSW5kZXgoJ2FjdG9ycycsICduYW1lJywgeyBtdWx0
aUVudHJ5OiB0cnVlIH0pCisKKyAgICAgICAgc3RvcmUuYWRkKHtuYW1lOiAnT2Rpbid9LCAxKTsK
KyAgICAgICAgc3RvcmUuYWRkKHtuYW1lOiBbJ1JpdGEnLCAnU2NoZWV0YScsIHtCb2JieTonQm9i
YnknfV19LCAyKTsKKyAgICAgICAgc3RvcmUuYWRkKHtuYW1lOiBbIHtzOiAnUm9iZXJ0J30sICdO
ZWlsJywgJ0JvYmJ5J119LCAzKTsKKyAgICB9OworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVu
Y3Rpb24oZSkgeworICAgICAgICB2YXIgZ290dGVuX2tleXMgPSBbXTsKKyAgICAgICAgdmFyIGlk
eCA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZScpLm9iamVjdFN0b3JlKCdzdG9yZScpLmluZGV4KCdh
Y3RvcnMnKTsKKworICAgICAgICBpZHguZ2V0S2V5KCdPZGluJykub25zdWNjZXNzID0gdGhpcy5z
dGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgZ290dGVuX2tleXMucHVzaChlLnRh
cmdldC5yZXN1bHQpCisgICAgICAgIH0pOworICAgICAgICBpZHguZ2V0S2V5KCdSaXRhJykub25z
dWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgZ290dGVu
X2tleXMucHVzaChlLnRhcmdldC5yZXN1bHQpCisgICAgICAgIH0pOworICAgICAgICBpZHguZ2V0
S2V5KCdTY2hlZXRhJykub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewor
ICAgICAgICAgICAgZ290dGVuX2tleXMucHVzaChlLnRhcmdldC5yZXN1bHQpCisgICAgICAgIH0p
OworICAgICAgICBpZHguZ2V0S2V5KCdOZWlsJykub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMo
ZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgZ290dGVuX2tleXMucHVzaChlLnRhcmdldC5yZXN1
bHQpCisgICAgICAgIH0pOworICAgICAgICBpZHguZ2V0S2V5KCdCb2JieScpLm9uc3VjY2VzcyA9
IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGdvdHRlbl9rZXlzLnB1
c2goZS50YXJnZXQucmVzdWx0KQorCisgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGdv
dHRlbl9rZXlzLCBleHBlY3RlZF9rZXlzKTsKKyAgICAgICAgICAgIHRoaXMuZG9uZSgpOworICAg
ICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfY291bnQt
cHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYmluZGV4X2NvdW50LXByaXZhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjk2MGE5ZGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2NvdW50LXByaXZhdGUtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkluZGV4LmNvdW50KCkgLSByZXR1cm5zIHRoZSBu
dW1iZXIgb2YgcmVjb3JkcyBpbiB0aGUgaW5kZXggIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2NvdW50LXByaXZhdGUuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfY291bnQtcHJpdmF0ZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE5MmU0N2QKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2Nv
dW50LXByaXZhdGUuaHRtbApAQCAtMCwwICsxLDM3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRh
IGNoYXJzZXQ9dXRmLTg+Cis8dGl0bGU+SURCSW5kZXguY291bnQoKSAtIHJldHVybnMgdGhlIG51
bWJlciBvZiByZWNvcmRzIGluIHRoZSBpbmRleCA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3Ii
IHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2
YXIgZGIsIHQgPSBhc3luY190ZXN0KCk7CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQp
OworCisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAg
IGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgc3RvcmUgPSBkYi5jcmVhdGVPYmpl
Y3RTdG9yZSgic3RvcmUiLCB7IGF1dG9JbmNyZW1lbnQ6IHRydWUgfSk7CisgICAgICAgIHN0b3Jl
LmNyZWF0ZUluZGV4KCJpbmRleCIsICJpbmRleGVkUHJvcGVydHkiKTsKKworICAgICAgICBmb3Io
dmFyIGkgPSAwOyBpIDwgMTA7IGkrKykgeworICAgICAgICAgICAgc3RvcmUuYWRkKHsgaW5kZXhl
ZFByb3BlcnR5OiAiZGF0YSIgKyBpIH0pOworICAgICAgICB9CisgICAgfQorCisgICAgb3Blbl9y
cS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBycSA9IGRiLnRyYW5zYWN0
aW9uKCJzdG9yZSIpCisgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJzdG9yZSIpCisg
ICAgICAgICAgICAgICAgICAgLmluZGV4KCJpbmRleCIpCisgICAgICAgICAgICAgICAgICAgLmNv
dW50KCk7CisKKyAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkg
eworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQsIDEwKTsKKyAgICAg
ICAgICAgIHQuZG9uZSgpOworICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKworPGRpdiBp
ZD1sb2c+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmluZGV4X2NvdW50Mi1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfY291bnQyLXByaXZhdGUtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZhMzE4NGIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2NvdW50
Mi1wcml2YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJJbmRleC5j
b3VudCgpIC0gcmV0dXJucyB0aGUgbnVtYmVyIG9mIHJlY29yZHMgdGhhdCBoYXZlIGtleXMgd2l0
aGluIHRoZSByYW5nZSAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRiaW5kZXhfY291bnQyLXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfY291bnQyLXByaXZhdGUuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNzExYzkxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9jb3VudDItcHJpdmF0ZS5o
dG1sCkBAIC0wLDAgKzEsMzcgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD11dGYt
OD4KKzx0aXRsZT5JREJJbmRleC5jb3VudCgpIC0gcmV0dXJucyB0aGUgbnVtYmVyIG9mIHJlY29y
ZHMgdGhhdCBoYXZlIGtleXMgd2l0aGluIHRoZSByYW5nZSA8L3RpdGxlPgorPGxpbmsgcmVsPSJh
dXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KKworPHNjcmlwdD4K
KyAgICB2YXIgZGIsIHQgPSBhc3luY190ZXN0KCk7CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0
ZWRiKHQpOworCisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Cisg
ICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgc3RvcmUgPSBkYi5jcmVh
dGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGF1dG9JbmNyZW1lbnQ6IHRydWUgfSk7CisgICAgICAg
IHN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJpbmRleGVkUHJvcGVydHkiKTsKKworICAgICAg
ICBmb3IodmFyIGkgPSAwOyBpIDwgMTA7IGkrKykgeworICAgICAgICAgICAgc3RvcmUuYWRkKHsg
aW5kZXhlZFByb3BlcnR5OiAiZGF0YSIgKyBpIH0pOworICAgICAgICB9CisgICAgfQorCisgICAg
b3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBycSA9IGRiLnRy
YW5zYWN0aW9uKCJzdG9yZSIpCisgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJzdG9y
ZSIpCisgICAgICAgICAgICAgICAgICAgLmluZGV4KCJpbmRleCIpCisgICAgICAgICAgICAgICAg
ICAgLmNvdW50KElEQktleVJhbmdlLmJvdW5kKCdkYXRhMCcsICdkYXRhNCcpKTsKKworICAgICAg
ICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBh
c3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdCwgNSk7CisgICAgICAgICAgICB0LmRvbmUoKTsK
KyAgICAgICAgfSk7CisgICAgfQorPC9zY3JpcHQ+CisKKzxkaXYgaWQ9bG9nPjwvZGl2PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9jb3Vu
dDMtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmluZGV4X2NvdW50My1wcml2YXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5hOTM4YWIyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9jb3VudDMtcHJpdmF0ZS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCSW5kZXguY291bnQoKSAtIHJldHVybnMg
dGhlIG51bWJlciBvZiByZWNvcmRzIHRoYXQgaGF2ZSBrZXlzIHdpdGggdGhlIGtleSAKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9jb3Vu
dDMtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJp
bmRleF9jb3VudDMtcHJpdmF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLmI0N2EyZmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmluZGV4X2NvdW50My1wcml2YXRlLmh0bWwKQEAgLTAsMCArMSwyOCBAQAor
PCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPHRpdGxlPklEQkluZGV4LmNv
dW50KCkgLSByZXR1cm5zIHRoZSBudW1iZXIgb2YgcmVjb3JkcyB0aGF0IGhhdmUga2V5cyB3aXRo
IHRoZSBrZXk8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9A
b3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz1zdXBwb3J0LmpzPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYgorCisgICAg
Y3JlYXRlZGIoYXN5bmNfdGVzdCgpKS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Cisg
ICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0CisKKyAgICAgICAgdmFyIHN0b3JlID0gZGIuY3Jl
YXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBhdXRvSW5jcmVtZW50OiB0cnVlIH0pCisgICAgICAg
IHN0b3JlLmNyZWF0ZUluZGV4KCJteWluZGV4IiwgImlkeCIpCisKKyAgICAgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCAxMDsgaSsrKQorICAgICAgICAgICAgc3RvcmUuYWRkKHsgaWR4OiAiZGF0YV8i
ICsgKGklMikgfSk7CisKKyAgICAgICAgc3RvcmUuaW5kZXgoIm15aW5kZXgiKS5jb3VudCgiZGF0
YV8wIikub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQsIDUsICJjb3VudChkYXRhXzApIikKKyAg
ICAgICAgICAgIHRoaXMuZG9uZSgpCisgICAgICAgIH0pCisgICAgfQorCis8L3NjcmlwdD4KKzxk
aXYgaWQ9bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJpbmRleF9jb3VudDQtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2NvdW50NC1wcml2YXRlLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYTM0MTNkCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9j
b3VudDQtcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCSW5k
ZXguY291bnQoKSAtIHRocm93IERhdGFFcnJvciB3aGVuIHVzaW5nIGludmFsaWQga2V5IAorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2Nv
dW50NC1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmluZGV4X2NvdW50NC1wcml2YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uZTU5NDhlYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRiaW5kZXhfY291bnQ0LXByaXZhdGUuaHRtbApAQCAtMCwwICsxLDM3IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJJbmRl
eC5jb3VudCgpIC0gdGhyb3cgRGF0YUVycm9yIHdoZW4gdXNpbmcgaW52YWxpZCBrZXk8L3RpdGxl
PgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRl
bC5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2R2Y3MudzMub3JnL2hnL0lu
ZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQkluZGV4LWNvdW50LUlE
QlJlcXVlc3QtYW55LWtleSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwv
c2NyaXB0PgorPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzxzY3JpcHQ+CisgICAgdmFyIGRiLCB0ID0g
YXN5bmNfdGVzdCgpOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKworICAgIG9w
ZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFy
Z2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIHN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0
b3JlIiwgeyBhdXRvSW5jcmVtZW50OiB0cnVlIH0pOworICAgICAgICBzdG9yZS5jcmVhdGVJbmRl
eCgiaW5kZXgiLCAiaW5kZXhlZFByb3BlcnR5Iik7CisKKyAgICAgICAgZm9yKHZhciBpID0gMDsg
aSA8IDEwOyBpKyspIHsKKyAgICAgICAgICAgIHN0b3JlLmFkZCh7IGluZGV4ZWRQcm9wZXJ0eTog
ImRhdGEiICsgaSB9KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIG9wZW5fcnEub25zdWNjZXNz
ID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgaW5kZXggPSBkYi50cmFuc2FjdGlvbigic3Rv
cmUiKQorICAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgic3RvcmUiKQorICAgICAg
ICAgICAgICAgICAgICAgIC5pbmRleCgiaW5kZXgiKTsKKworICAgICAgICBhc3NlcnRfdGhyb3dz
KCJEYXRhRXJyb3IiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGluZGV4LmNvdW50KE5hTik7
CisgICAgICAgIH0pOworCisgICAgICAgIHQuZG9uZSgpOworICAgIH0KKzwvc2NyaXB0PgorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dl
dC1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRiaW5kZXhfZ2V0LXByaXZhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjA2MDFjNzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldC1wcml2YXRlLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJJbmRleC5nZXQoKSAtIHJldHVybnMgdGhlIHJlY29y
ZCAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
aW5kZXhfZ2V0LXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRiaW5kZXhfZ2V0LXByaXZhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi43ZTQ2ZTE4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXQtcHJpdmF0ZS5odG1sCkBAIC0wLDAgKzEsMzYgQEAK
KzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQkluZGV4
LmdldCgpIC0gcmV0dXJucyB0aGUgcmVjb3JkIDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIg
dGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAg
dmFyIGRiLAorICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAgIHJlY29yZCA9IHsga2V5OiAx
LCBpbmRleGVkUHJvcGVydHk6ICJkYXRhIiB9OworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVk
Yih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAg
ICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0
ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHsga2V5UGF0aDogImtleSIgfSk7CisgICAgICAgIGluZGV4
ID0gb2JqU3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImluZGV4ZWRQcm9wZXJ0eSIpOworCisg
ICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmQpOworICAgIH0KKworICAgIG9wZW5fcnEub25zdWNj
ZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgcnEgPSBkYi50cmFuc2FjdGlvbigic3Rv
cmUiKQorICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgic3RvcmUiKQorICAgICAgICAg
ICAgICAgICAgIC5pbmRleCgiaW5kZXgiKQorICAgICAgICAgICAgICAgICAgIC5nZXQocmVjb3Jk
LmluZGV4ZWRQcm9wZXJ0eSk7CisKKyAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMo
ZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQu
a2V5LCByZWNvcmQua2V5KTsKKyAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICB9KTsKKyAg
ICB9Cis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0Mi1wcml2YXRlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0
Mi1wcml2YXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5iMDIyYjUzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJpbmRleF9nZXQyLXByaXZhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBA
QAorCitQQVNTIElEQkluZGV4LmdldCgpIC0gcmV0dXJucyB0aGUgcmVjb3JkIHdoZXJlIHRoZSBp
bmRleCBjb250YWlucyBkdXBsaWNhdGUgdmFsdWVzICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXQyLXByaXZhdGUuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0Mi1wcml2YXRlLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDY3NTljYgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0
Mi1wcml2YXRlLmh0bWwKQEAgLTAsMCArMSwzOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBj
aGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCSW5kZXguZ2V0KCkgLSByZXR1cm5zIHRoZSByZWNv
cmQgd2hlcmUgdGhlIGluZGV4IGNvbnRhaW5zIGR1cGxpY2F0ZSB2YWx1ZXMgPC90aXRsZT4KKzxs
aW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jv
c29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4K
KworPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAg
cmVjb3JkcyA9IFsgeyBrZXk6MSwgaW5kZXhlZFByb3BlcnR5OiJkYXRhIiB9LAorICAgICAgICAg
ICAgICAgICAgeyBrZXk6MiwgaW5kZXhlZFByb3BlcnR5OiJkYXRhIiB9LAorICAgICAgICAgICAg
ICAgICAgeyBrZXk6MywgaW5kZXhlZFByb3BlcnR5OiJkYXRhIiB9IF07CisKKyAgICB2YXIgb3Bl
bl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rp
b24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIG9ialN0
b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiLCB7IGtleVBhdGg6ICJrZXkiIH0pOwor
ICAgICAgICBvYmpTdG9yZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAiaW5kZXhlZFByb3BlcnR5Iik7
CisKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKQorICAg
ICAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZHNbaV0pOworICAgIH07CisKKyAgICBvcGVuX3Jx
Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdmFyIHJxID0gZGIudHJhbnNhY3Rp
b24oInRlc3QiKQorICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgidGVzdCIpCisgICAg
ICAgICAgICAgICAgICAgLmluZGV4KCJpbmRleCIpCisgICAgICAgICAgICAgICAgICAgLmdldCgi
ZGF0YSIpOworCisgICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUp
IHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LmtleSwgcmVjb3Jk
c1swXS5rZXkpOworICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgIH0pOworICAgIH07Cis8
L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0My1wcml2YXRlLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0My1wcml2
YXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYmZm
NTliCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJpbmRleF9nZXQzLXByaXZhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQ
QVNTIElEQkluZGV4LmdldCgpIC0gYXR0ZW1wdCB0byByZXRyaWV2ZSBhIHJlY29yZCB0aGF0IGRv
ZXNuJ3QgZXhpc3QgIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmluZGV4X2dldDMtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXQzLXByaXZhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5mYzBiOTUxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXQzLXByaXZhdGUuaHRtbApAQCAt
MCwwICsxLDI3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0
aXRsZT5JREJJbmRleC5nZXQoKSAtIGF0dGVtcHQgdG8gcmV0cmlldmUgYSByZWNvcmQgdGhhdCBk
b2Vzbid0IGV4aXN0IDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29m
dCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAg
dCA9IGFzeW5jX3Rlc3QoKTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAg
b3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50
YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgcnEgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVz
dCIsIHsga2V5UGF0aDogImtleSIgfSkKKyAgICAgICAgICAgICAgICAgICAuY3JlYXRlSW5kZXgo
ImluZGV4IiwgImluZGV4ZWRQcm9wZXJ0eSIpCisgICAgICAgICAgICAgICAgICAgLmdldCgxKTsK
KworICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdCwgdW5kZWZpbmVkKTsKKyAgICAg
ICAgICAgIHQuZG9uZSgpOworICAgICAgICB9KTsKKyAgICB9OworPC9zY3JpcHQ+CisKKzxkaXYg
aWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmluZGV4X2dldDQtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldDQtcHJpdmF0ZS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWE0NDg4YQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0NC1w
cml2YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJJbmRleC5nZXQo
KSAtIHJldHVybnMgdGhlIHJlY29yZCB3aXRoIHRoZSBmaXJzdCBrZXkgaW4gdGhlIHJhbmdlICAK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRl
eF9nZXQ0LXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRiaW5kZXhfZ2V0NC1wcml2YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uMTM0ZTljZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0NC1wcml2YXRlLmh0bWwKQEAgLTAsMCArMSwzOSBAQAor
PCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPHRpdGxlPklEQkluZGV4Lmdl
dCgpIC0gcmV0dXJucyB0aGUgcmVjb3JkIHdpdGggdGhlIGZpcnN0IGtleSBpbiB0aGUgcmFuZ2Ug
PC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRw
Oi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPXN1cHBvcnQuanM+
PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiLCB0ID0gYXN5bmNfdGVzdCgpOworCisg
ICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKworICAgIG9wZW5fcnEub251cGdyYWRlbmVl
ZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAg
ICAgdmFyIHN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRoOiAi
a2V5IiB9KTsKKyAgICAgICAgc3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImluZGV4ZWRQcm9w
ZXJ0eSIpOworCisgICAgICAgIGZvcih2YXIgaSA9IDA7IGkgPCAxMDsgaSsrKSB7CisgICAgICAg
ICAgICBzdG9yZS5hZGQoeyBrZXk6IGksIGluZGV4ZWRQcm9wZXJ0eTogImRhdGEiICsgaSB9KTsK
KyAgICAgICAgfQorICAgIH0KKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkg
eworICAgICAgICB2YXIgcnEgPSBkYi50cmFuc2FjdGlvbigic3RvcmUiKQorICAgICAgICAgICAg
ICAgICAgIC5vYmplY3RTdG9yZSgic3RvcmUiKQorICAgICAgICAgICAgICAgICAgIC5pbmRleCgi
aW5kZXgiKQorICAgICAgICAgICAgICAgICAgIC5nZXQoSURCS2V5UmFuZ2UuYm91bmQoJ2RhdGE0
JywgJ2RhdGE3JykpOworCisgICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0
aW9uKGUpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LmtleSwg
NCk7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdC5pbmRleGVkUHJv
cGVydHksICdkYXRhNCcpOworCisgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyB0
LmRvbmUoKTsgfSwgNCkKKyAgICAgICAgfSk7CisgICAgfQorPC9zY3JpcHQ+CisKKzxkaXYgaWQ9
bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJpbmRleF9nZXQ1LXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXQ1LXByaXZhdGUtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM2MzhjMDkKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldDUtcHJpdmF0
ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCSW5kZXguZ2V0KCkgLSB0
aHJvdyBEYXRhRXJyb3Igd2hlbiB1c2luZyBpbnZhbGlkIGtleSAgCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0NS1wcml2YXRlLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldDUtcHJp
dmF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAxNTI0OTIKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmlu
ZGV4X2dldDUtcHJpdmF0ZS5odG1sCkBAIC0wLDAgKzEsMjYgQEAKKzwhRE9DVFlQRSBodG1sPgor
PG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQkluZGV4LmdldCgpIC0gdGhyb3cgRGF0
YUVycm9yIHdoZW4gdXNpbmcgaW52YWxpZCBrZXkgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9y
IiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tIj4KKzxsaW5rIHJlbD0i
aGVscCIgaHJlZj0iaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlw
L092ZXJ2aWV3Lmh0bWwjd2lkbC1JREJJbmRleC1nZXQtSURCUmVxdWVzdC1hbnkta2V5Ij4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Cis8ZGl2IGlkPSJsb2ci
PjwvZGl2PgorPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICAgIHQgPSBhc3luY190ZXN0KCk7
CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRl
bmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKwor
ICAgICAgICB2YXIgaW5kZXggPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIsIHsga2V5UGF0
aDogImtleSIgfSkKKyAgICAgICAgICAgICAgICAgICAgICAuY3JlYXRlSW5kZXgoImluZGV4Iiwg
ImluZGV4ZWRQcm9wZXJ0eSIpOworICAgICAgICBhc3NlcnRfdGhyb3dzKCJEYXRhRXJyb3IiLGZ1
bmN0aW9uKCl7CisgICAgICAgICAgICBpbmRleC5nZXQoTmFOKTsKKyAgICAgICAgfSk7CisgICAg
ICAgIHQuZG9uZSgpOworICAgIH07Cis8L3NjcmlwdD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXQ2LXByaXZhdGUtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXQ2LXBy
aXZhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMw
NjE2YTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmluZGV4X2dldDYtcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisK
K1BBU1MgSURCSW5kZXguZ2V0KCkgLSB0aHJvdyBJbnZhbGlkU3RhdGVFcnJvciB3aGVuIHRoZSBp
bmRleCBpcyBkZWxldGVkIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmluZGV4X2dldDYtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXQ2LXByaXZhdGUuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNWI3NjNlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXQ2LXByaXZhdGUuaHRtbApA
QCAtMCwwICsxLDI5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4K
Kzx0aXRsZT5JREJJbmRleC5nZXQoKSAtIHRocm93IEludmFsaWRTdGF0ZUVycm9yIHdoZW4gdGhl
IGluZGV4IGlzIGRlbGV0ZWQ8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRl
bCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJo
dHRwczovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRt
bCN3aWRsLUlEQkluZGV4LWdldC1JREJSZXF1ZXN0LWFueS1rZXkiPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+Cis8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPHNjcmlw
dD4KKyAgICB2YXIgZGIsCisgICAgICAgIHQgPSBhc3luY190ZXN0KCk7CisKKyAgICB2YXIgb3Bl
bl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rp
b24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIHN0b3Jl
ID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRoOiAia2V5IiB9KTsKKyAg
ICAgICAgdmFyIGluZGV4ID0gc3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImluZGV4ZWRQcm9w
ZXJ0eSIpOworCisgICAgICAgIHN0b3JlLmFkZCh7IGtleTogMSwgaW5kZXhlZFByb3BlcnR5OiAi
ZGF0YSIgfSk7CisgICAgICAgIHN0b3JlLmRlbGV0ZUluZGV4KCJpbmRleCIpOworCisgICAgICAg
IGFzc2VydF90aHJvd3MoIkludmFsaWRTdGF0ZUVycm9yIiwgZnVuY3Rpb24oKXsKKyAgICAgICAg
ICAgIGluZGV4LmdldCgiZGF0YSIpOworICAgICAgICB9KTsKKyAgICAgICAgdC5kb25lKCk7Cisg
ICAgfQorPC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRiaW5kZXhfZ2V0Ny1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0Ny1wcml2YXRlLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZjA2ZTFiCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXQ3
LXByaXZhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorCitGQUlMIElEQkluZGV4Lmdl
dCgpIC0gdGhyb3cgVHJhbnNhY3Rpb25JbmFjdGl2ZUVycm9yIG9uIGFib3J0ZWQgdHJhbnNhY3Rp
b24gYXNzZXJ0X3Rocm93czogZnVuY3Rpb24gImZ1bmN0aW9uICgpeworICAgICAgICAgICAgaW5k
ZXguZ2V0KCJkYXRhIik7CisgICAgICAgIH0iIHRocmV3IG9iamVjdCAiRXJyb3I6IEZhaWxlZCB0
byBleGVjdXRlICdnZXQnIG9uICdJREJJbmRleCc6IFRoZSB0cmFuc2FjLi4uIiB0aGF0IGlzIG5v
dCBhIERPTUV4Y2VwdGlvbiBJbnZhbGlkU3RhdGVFcnJvcjogcHJvcGVydHkgImNvZGUiIGlzIGVx
dWFsIHRvIDAsIGV4cGVjdGVkIDExCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0Ny1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldDctcHJpdmF0ZS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg5NzM1ZWEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldDctcHJpdmF0ZS5o
dG1sCkBAIC0wLDAgKzEsMjkgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRm
LTgiPgorPHRpdGxlPklEQkluZGV4LmdldCgpIC0gdGhyb3cgVHJhbnNhY3Rpb25JbmFjdGl2ZUVy
cm9yIG9uIGFib3J0ZWQgdHJhbnNhY3Rpb248L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRp
dGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20iPgorPGxpbmsgcmVsPSJoZWxw
IiBocmVmPSJodHRwczovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3Zl
cnZpZXcuaHRtbCN3aWRsLUlEQkluZGV4LWdldC1JREJSZXF1ZXN0LWFueS1rZXkiPgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+Cis8ZGl2IGlkPSJsb2ciPjwvZGl2
PgorPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICAgIHQgPSBhc3luY190ZXN0KCk7CisKKyAg
ICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVk
ID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAg
dmFyIHN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRoOiAia2V5
IiB9KTsKKyAgICAgICAgdmFyIGluZGV4ID0gc3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImlu
ZGV4ZWRQcm9wZXJ0eSIpOworICAgICAgICBzdG9yZS5hZGQoeyBrZXk6IDEsIGluZGV4ZWRQcm9w
ZXJ0eTogImRhdGEiIH0pOworCisgICAgICAgIGUudGFyZ2V0LnRyYW5zYWN0aW9uLmFib3J0KCk7
CisKKyAgICAgICAgYXNzZXJ0X3Rocm93cygiSW52YWxpZFN0YXRlRXJyb3IiLCBmdW5jdGlvbigp
eworICAgICAgICAgICAgaW5kZXguZ2V0KCJkYXRhIik7CisgICAgICAgIH0pOworICAgICAgICB0
LmRvbmUoKTsKKyAgICB9Cis8L3NjcmlwdD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXRLZXktcHJpdmF0ZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldEtleS1wcml2
YXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNzgz
ZTg1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJpbmRleF9nZXRLZXktcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisK
K1BBU1MgSURCSW5kZXguZ2V0S2V5KCkgLSByZXR1cm5zIHRoZSByZWNvcmQncyBwcmltYXJ5IGtl
eSAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
aW5kZXhfZ2V0S2V5LXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiaW5kZXhfZ2V0S2V5LXByaXZhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi4yNzAxYmEzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXRLZXktcHJpdmF0ZS5odG1sCkBAIC0wLDAg
KzEsMzggQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxl
PklEQkluZGV4LmdldEtleSgpIC0gcmV0dXJucyB0aGUgcmVjb3JkJ3MgcHJpbWFyeSBrZXkgPC90
aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8v
d3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48
L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICB0ID0gYXN5bmNfdGVzdCgp
LAorICAgICAgcmVjb3JkID0geyBrZXk6MSwgaW5kZXhlZFByb3BlcnR5OiJkYXRhIiB9OworCisg
ICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRl
ZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAg
IHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0IiwgeyBrZXlQYXRoOiAi
a2V5IiB9KTsKKyAgICAgICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImluZGV4ZWRQ
cm9wZXJ0eSIpOworCisgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmQpOworICAgIH07CisKKyAg
ICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdmFyIHJxID0gZGIu
dHJhbnNhY3Rpb24oInRlc3QiKQorICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgidGVz
dCIpOworCisgICAgICAgIHJxID0gcnEuaW5kZXgoImluZGV4Iik7CisKKyAgICAgICAgcnEgPSBy
cS5nZXRLZXkoImRhdGEiKTsKKworICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhm
dW5jdGlvbihlKSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdCwg
cmVjb3JkLmtleSk7CisgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfTsK
Kzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXRLZXkyLXByaXZhdGUtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXRL
ZXkyLXByaXZhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLmE4MDMzZjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmluZGV4X2dldEtleTItcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwzIEBACisKK1BBU1MgSURCSW5kZXguZ2V0S2V5KCkgLSByZXR1cm5zIHRoZSByZWNvcmQncyBw
cmltYXJ5IGtleSB3aGVyZSB0aGUgaW5kZXggY29udGFpbnMgZHVwbGljYXRlIHZhbHVlcyAgCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhf
Z2V0S2V5Mi1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYmluZGV4X2dldEtleTItcHJpdmF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLmY0MmU4MWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldEtleTItcHJpdmF0ZS5odG1sCkBAIC0wLDAgKzEs
MzkgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklE
QkluZGV4LmdldEtleSgpIC0gcmV0dXJucyB0aGUgcmVjb3JkJ3MgcHJpbWFyeSBrZXkgd2hlcmUg
dGhlIGluZGV4IGNvbnRhaW5zIGR1cGxpY2F0ZSB2YWx1ZXMgPC90aXRsZT4KKzxsaW5rIHJlbD0i
YXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20i
PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlw
dD4KKyAgICB2YXIgZGIsCisgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAgcmVjb3JkcyA9
IFsgeyBrZXk6MSwgaW5kZXhlZFByb3BlcnR5OiJkYXRhIiB9LAorICAgICAgICAgICAgICAgICAg
eyBrZXk6MiwgaW5kZXhlZFByb3BlcnR5OiJkYXRhIiB9LAorICAgICAgICAgICAgICAgICAgeyBr
ZXk6MywgaW5kZXhlZFByb3BlcnR5OiJkYXRhIiB9IF07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNy
ZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewor
ICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIu
Y3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiLCB7IGtleVBhdGg6ICJrZXkiIH0pOworICAgICAgICBv
YmpTdG9yZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAiaW5kZXhlZFByb3BlcnR5Iik7CisKKyAgICAg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAg
b2JqU3RvcmUuYWRkKHJlY29yZHNbaV0pOworICAgIH07CisKKyAgICBvcGVuX3JxLm9uc3VjY2Vz
cyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdmFyIHJxID0gZGIudHJhbnNhY3Rpb24oInRlc3Qi
KQorICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgidGVzdCIpCisgICAgICAgICAgICAg
ICAgICAgLmluZGV4KCJpbmRleCIpCisgICAgICAgICAgICAgICAgICAgLmdldEtleSgiZGF0YSIp
OworCisgICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAg
ICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LCByZWNvcmRzWzBdLmtleSk7
CisgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfTsKKzwvc2NyaXB0Pgor
Cis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXRLZXkzLXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXRLZXkzLXByaXZhdGUt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI4MjM3NzMK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmluZGV4X2dldEtleTMtcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BB
U1MgSURCSW5kZXguZ2V0S2V5KCkgLSBhdHRlbXB0IHRvIHJldHJpZXZlIHRoZSBwcmltYXJ5IGtl
eSBvZiBhIHJlY29yZCB0aGF0IGRvZXNuJ3QgZXhpc3QgCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0S2V5My1wcml2YXRlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldEtleTMtcHJp
dmF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZkNjg0YmYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmlu
ZGV4X2dldEtleTMtcHJpdmF0ZS5odG1sCkBAIC0wLDAgKzEsMjggQEAKKzwhRE9DVFlQRSBodG1s
PgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQkluZGV4LmdldEtleSgpIC0gYXR0
ZW1wdCB0byByZXRyaWV2ZSB0aGUgcHJpbWFyeSBrZXkgb2YgYSByZWNvcmQgdGhhdCBkb2Vzbid0
IGV4aXN0PC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVm
PSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBw
b3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICB0ID0gYXN5
bmNfdGVzdCgpOworCisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5f
cnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0
LnJlc3VsdDsKKyAgICAgICAgdmFyIHJxID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiLCB7
IGtleVBhdGg6ICJrZXkiIH0pCisgICAgICAgICAgICAgICAgICAgLmNyZWF0ZUluZGV4KCJpbmRl
eCIsICJpbmRleGVkUHJvcGVydHkiKQorICAgICAgICAgICAgICAgICAgIC5nZXRLZXkoMSk7CisK
KyAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQsIHVuZGVmaW5lZCk7CisgICAgICAg
ICAgICB0LmRvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfTsKKzwvc2NyaXB0PgorCis8ZGl2IGlk
PSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJpbmRleF9nZXRLZXk0LXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXRLZXk0LXByaXZhdGUtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEzNzI2NzYKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dl
dEtleTQtcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCSW5k
ZXguZ2V0S2V5KCkgLSByZXR1cm5zIHRoZSBrZXkgb2YgdGhlIGZpcnN0IHJlY29yZCB3aXRoaW4g
dGhlIHJhbmdlICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJpbmRleF9nZXRLZXk0LXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0S2V5NC1wcml2YXRlLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDcxZWQ2NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0S2V5NC1wcml2YXRlLmh0
bWwKQEAgLTAsMCArMSwzOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04
PgorPHRpdGxlPklEQkluZGV4LmdldEtleSgpIC0gcmV0dXJucyB0aGUga2V5IG9mIHRoZSBmaXJz
dCByZWNvcmQgd2l0aGluIHRoZSByYW5nZSA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRp
dGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIg
ZGIsIHQgPSBhc3luY190ZXN0KCk7CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwor
CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRi
ID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RT
dG9yZSgic3RvcmUiLCB7IGtleVBhdGg6ICJrZXkiIH0pOworICAgICAgICBzdG9yZS5jcmVhdGVJ
bmRleCgiaW5kZXgiLCAiaW5kZXhlZFByb3BlcnR5Iik7CisKKyAgICAgICAgZm9yKHZhciBpID0g
MDsgaSA8IDEwOyBpKyspIHsKKyAgICAgICAgICAgIHN0b3JlLmFkZCh7IGtleTogaSwgaW5kZXhl
ZFByb3BlcnR5OiAiZGF0YSIgKyBpIH0pOworICAgICAgICB9CisgICAgfQorCisgICAgb3Blbl9y
cS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBycSA9IGRiLnRyYW5zYWN0
aW9uKCJzdG9yZSIpCisgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJzdG9yZSIpCisg
ICAgICAgICAgICAgICAgICAgLmluZGV4KCJpbmRleCIpCisgICAgICAgICAgICAgICAgICAgLmdl
dEtleShJREJLZXlSYW5nZS5ib3VuZCgnZGF0YTQnLCAnZGF0YTcnKSk7CisKKyAgICAgICAgcnEu
b25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhlLnRhcmdldC5yZXN1bHQsIDQpOworCisgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1
bmN0aW9uKCkgeyB0LmRvbmUoKTsgfSwgNCkKKyAgICAgICAgfSk7CisgICAgfQorPC9zY3JpcHQ+
CisKKzxkaXYgaWQ9bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXRLZXk1LXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXRLZXk1LXByaXZhdGUt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUyYTZmNTUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmluZGV4X2dldEtleTUtcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BB
U1MgSURCSW5kZXguZ2V0S2V5KCkgLSB0aHJvdyBEYXRhRXJyb3Igd2hlbiB1c2luZyBpbnZhbGlk
IGtleSAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRiaW5kZXhfZ2V0S2V5NS1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmluZGV4X2dldEtleTUtcHJpdmF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjgxMmMzY2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldEtleTUtcHJpdmF0ZS5odG1sCkBA
IC0wLDAgKzEsMjYgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgor
PHRpdGxlPklEQkluZGV4LmdldEtleSgpIC0gdGhyb3cgRGF0YUVycm9yIHdoZW4gdXNpbmcgaW52
YWxpZCBrZXkgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iSW50ZWwiIGhyZWY9
Imh0dHA6Ly93d3cuaW50ZWwuY29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9k
dmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwjd2lkbC1J
REJJbmRleC1nZXRLZXktSURCUmVxdWVzdC1hbnkta2V5Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Cis8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPHNjcmlwdD4K
KyAgICB2YXIgZGIsCisgICAgICAgIHQgPSBhc3luY190ZXN0KCk7CisKKyAgICB2YXIgb3Blbl9y
cSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24o
ZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICB2YXIgaW5kZXgg
PSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIsIHsga2V5UGF0aDogImtleSIgfSkKKyAgICAg
ICAgICAgICAgICAgICAgICAuY3JlYXRlSW5kZXgoImluZGV4IiwgImluZGV4ZWRQcm9wZXJ0eSIp
OworICAgICAgICBhc3NlcnRfdGhyb3dzKCJEYXRhRXJyb3IiLGZ1bmN0aW9uKCl7CisgICAgICAg
ICAgICBpbmRleC5nZXRLZXkoTmFOKTsKKyAgICAgICAgfSk7CisgICAgICAgIHQuZG9uZSgpOwor
ICAgIH07Cis8L3NjcmlwdD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJpbmRleF9nZXRLZXk2LXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXRLZXk2LXByaXZhdGUtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk5OTEyMmUKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmlu
ZGV4X2dldEtleTYtcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1Mg
SURCSW5kZXguZ2V0S2V5KCkgLSB0aHJvdyBJbnZhbGlkU3RhdGVFcnJvciB3aGVuIHRoZSBpbmRl
eCBpcyBkZWxldGVkIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmluZGV4X2dldEtleTYtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXRLZXk2LXByaXZhdGUuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMGM4ZTg4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXRLZXk2LXByaXZhdGUu
aHRtbApAQCAtMCwwICsxLDI5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0
Zi04Ij4KKzx0aXRsZT5JREJJbmRleC5nZXRLZXkoKSAtIHRocm93IEludmFsaWRTdGF0ZUVycm9y
IHdoZW4gdGhlIGluZGV4IGlzIGRlbGV0ZWQ8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRp
dGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20iPgorPGxpbmsgcmVsPSJoZWxw
IiBocmVmPSJodHRwczovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3Zl
cnZpZXcuaHRtbCN3aWRsLUlEQkluZGV4LWdldEtleS1JREJSZXF1ZXN0LWFueS1rZXkiPgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+Cis8ZGl2IGlkPSJsb2ciPjwv
ZGl2PgorPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICAgIHQgPSBhc3luY190ZXN0KCk7CisK
KyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVl
ZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAg
ICAgdmFyIHN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRoOiAi
a2V5IiB9KTsKKyAgICAgICAgdmFyIGluZGV4ID0gc3RvcmUuY3JlYXRlSW5kZXgoImluZGV4Iiwg
ImluZGV4ZWRQcm9wZXJ0eSIpOworCisgICAgICAgIHN0b3JlLmFkZCh7IGtleTogMSwgaW5kZXhl
ZFByb3BlcnR5OiAiZGF0YSIgfSk7CisgICAgICAgIHN0b3JlLmRlbGV0ZUluZGV4KCJpbmRleCIp
OworCisgICAgICAgIGFzc2VydF90aHJvd3MoIkludmFsaWRTdGF0ZUVycm9yIiwgZnVuY3Rpb24o
KXsKKyAgICAgICAgICAgIGluZGV4LmdldEtleSgiZGF0YSIpOworICAgICAgICB9KTsKKyAgICAg
ICAgdC5kb25lKCk7CisgICAgfQorPC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0S2V5Ny1wcml2YXRlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0S2V5
Ny1wcml2YXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li4zY2VkY2M2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJpbmRleF9nZXRLZXk3LXByaXZhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
NSBAQAorCitGQUlMIElEQkluZGV4LmdldEtleSgpIC0gdGhyb3cgVHJhbnNhY3Rpb25JbmFjdGl2
ZUVycm9yIG9uIGFib3J0ZWQgdHJhbnNhY3Rpb24gYXNzZXJ0X3Rocm93czogZnVuY3Rpb24gImZ1
bmN0aW9uICgpeworICAgICAgICAgICAgaW5kZXguZ2V0S2V5KCJkYXRhIik7CisgICAgICAgIH0i
IHRocmV3IG9iamVjdCAiRXJyb3I6IEZhaWxlZCB0byBleGVjdXRlICdnZXRLZXknIG9uICdJREJJ
bmRleCc6IFRoZSB0cmFuLi4uIiB0aGF0IGlzIG5vdCBhIERPTUV4Y2VwdGlvbiBJbnZhbGlkU3Rh
dGVFcnJvcjogcHJvcGVydHkgImNvZGUiIGlzIGVxdWFsIHRvIDAsIGV4cGVjdGVkIDExCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0
S2V5Ny1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmluZGV4X2dldEtleTctcHJpdmF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjJkZTA4MDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldEtleTctcHJpdmF0ZS5odG1sCkBAIC0wLDAgKzEsMjkg
QEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQklu
ZGV4LmdldEtleSgpIC0gdGhyb3cgVHJhbnNhY3Rpb25JbmFjdGl2ZUVycm9yIG9uIGFib3J0ZWQg
dHJhbnNhY3Rpb248L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJl
Zj0iaHR0cDovL3d3dy5pbnRlbC5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczov
L2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRs
LUlEQkluZGV4LWdldEtleS1JREJSZXF1ZXN0LWFueS1rZXkiPgorPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+Cis8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPHNjcmlwdD4K
KyAgICB2YXIgZGIsCisgICAgICAgIHQgPSBhc3luY190ZXN0KCk7CisKKyAgICB2YXIgb3Blbl9y
cSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24o
ZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIHN0b3JlID0g
ZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRoOiAia2V5IiB9KTsKKyAgICAg
ICAgdmFyIGluZGV4ID0gc3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImluZGV4ZWRQcm9wZXJ0
eSIpOworICAgICAgICBzdG9yZS5hZGQoeyBrZXk6IDEsIGluZGV4ZWRQcm9wZXJ0eTogImRhdGEi
IH0pOworCisgICAgICAgIGUudGFyZ2V0LnRyYW5zYWN0aW9uLmFib3J0KCk7CisKKyAgICAgICAg
YXNzZXJ0X3Rocm93cygiSW52YWxpZFN0YXRlRXJyb3IiLCBmdW5jdGlvbigpeworICAgICAgICAg
ICAgaW5kZXguZ2V0S2V5KCJkYXRhIik7CisgICAgICAgIH0pOworICAgICAgICB0LmRvbmUoKTsK
KyAgICB9Cis8L3NjcmlwdD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJpbmRleF9pbmRleE5hbWVzLXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9pbmRleE5hbWVzLXByaXZh
dGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ4ODYw
NDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYmluZGV4X2luZGV4TmFtZXMtcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBA
CisKK1BBU1MgSURCSW5kZXguZ2V0S2V5KCkgLSByZXR1cm5zIHRoZSByZWNvcmQncyBwcmltYXJ5
IGtleSAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJpbmRleF9pbmRleE5hbWVzLXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRiaW5kZXhfaW5kZXhOYW1lcy1wcml2YXRlLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTBlNDBlNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfaW5kZXhOYW1lcy1wcml2YXRl
Lmh0bWwKQEAgLTAsMCArMSwzNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1
dGYtOCI+Cis8dGl0bGU+SURCSW5kZXguZ2V0S2V5KCkgLSByZXR1cm5zIHRoZSByZWNvcmQncyBw
cmltYXJ5IGtleTwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5o
b0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIsCisg
ICAgICB0ID0gYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSwge3RpbWVvdXQ6IDEwMDAwfSk7CisK
KyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVl
ZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAg
ICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiLCB7IGtleVBhdGg6
ICJrZXkiIH0pOworICAgICAgICBvYmpTdG9yZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAiZGF0YSIp
OworCisgICAgICAgIGFzc2VydF9lcXVhbHMob2JqU3RvcmUuaW5kZXhOYW1lc1swXSwgImluZGV4
IiwgImluZGV4TmFtZXMiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhvYmpTdG9yZS5pbmRleE5h
bWVzLmxlbmd0aCwgMSwgImluZGV4TmFtZXMubGVuZ3RoIik7CisgICAgfTsKKworICAgIG9wZW5f
cnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi50
cmFuc2FjdGlvbigidGVzdCIpCisgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJ0ZXN0
Iik7CisKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhvYmpTdG9yZS5pbmRleE5hbWVzWzBdLCAiaW5k
ZXgiLCAiaW5kZXhOYW1lcyAoc2Vjb25kKSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKG9ialN0
b3JlLmluZGV4TmFtZXMubGVuZ3RoLCAxLCAiaW5kZXhOYW1lcy5sZW5ndGggKHNlY29uZCkiKTsK
KworICAgICAgICB0LmRvbmUoKTsKKyAgICB9OworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+
PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmluZGV4X29wZW5DdXJzb3ItcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X29wZW5DdXJzb3ItcHJpdmF0ZS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjc4Y2NhZQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfb3Bl
bkN1cnNvci1wcml2YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJJ
bmRleC5vcGVuQ3Vyc29yKCkgLSB0aHJvdyBJbnZhbGlkU3RhdGVFcnJvciB3aGVuIHRoZSBpbmRl
eCBpcyBkZWxldGVkIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmluZGV4X29wZW5DdXJzb3ItcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9vcGVuQ3Vyc29yLXByaXZhdGUuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOWZiNjhhCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9vcGVuQ3Vyc29y
LXByaXZhdGUuaHRtbApAQCAtMCwwICsxLDI5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNo
YXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJJbmRleC5vcGVuQ3Vyc29yKCkgLSB0aHJvdyBJbnZh
bGlkU3RhdGVFcnJvciB3aGVuIHRoZSBpbmRleCBpcyBkZWxldGVkPC90aXRsZT4KKzxsaW5rIHJl
bD0iYXV0aG9yIiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tIj4KKzxs
aW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3
LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwjd2lkbC1JREJJbmRleC1vcGVuQ3Vyc29yLUlEQlJlcXVl
c3QtYW55LXJhbmdlLUlEQkN1cnNvckRpcmVjdGlvbi1kaXJlY3Rpb24iPgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+Cis8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPHNj
cmlwdD4KKyAgICB2YXIgZGIsCisgICAgICAgIHQgPSBhc3luY190ZXN0KCk7CisKKyAgICB2YXIg
b3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVu
Y3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIHN0
b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRoOiAia2V5IiB9KTsK
KyAgICAgICAgdmFyIGluZGV4ID0gc3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImluZGV4ZWRQ
cm9wZXJ0eSIpOworCisgICAgICAgIHN0b3JlLmFkZCh7IGtleTogMSwgaW5kZXhlZFByb3BlcnR5
OiAiZGF0YSIgfSk7CisgICAgICAgIHN0b3JlLmRlbGV0ZUluZGV4KCJpbmRleCIpOworCisgICAg
ICAgIGFzc2VydF90aHJvd3MoIkludmFsaWRTdGF0ZUVycm9yIiwgZnVuY3Rpb24oKXsKKyAgICAg
ICAgICAgIGluZGV4Lm9wZW5DdXJzb3IoKTsKKyAgICAgICAgfSk7CisgICAgICAgIHQuZG9uZSgp
OworICAgIH0KKzwvc2NyaXB0PgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmluZGV4X29wZW5DdXJzb3IyLXByaXZhdGUtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9vcGVuQ3Vyc29yMi1w
cml2YXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5k
OTIzMTEyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJpbmRleF9vcGVuQ3Vyc29yMi1wcml2YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDUgQEAKKworRkFJTCBJREJJbmRleC5vcGVuQ3Vyc29yKCkgLSB0aHJvdyBUcmFuc2FjdGlvbklu
YWN0aXZlRXJyb3Igb24gYWJvcnRlZCB0cmFuc2FjdGlvbiBhc3NlcnRfdGhyb3dzOiBmdW5jdGlv
biAiZnVuY3Rpb24gKCl7CisgICAgICAgICAgICBpbmRleC5vcGVuQ3Vyc29yKCk7CisgICAgICAg
IH0iIHRocmV3IG9iamVjdCAiRXJyb3I6IEZhaWxlZCB0byBleGVjdXRlICdvcGVuQ3Vyc29yJyBv
biAnSURCSW5kZXgnOiBUaGUgLi4uIiB0aGF0IGlzIG5vdCBhIERPTUV4Y2VwdGlvbiBJbnZhbGlk
U3RhdGVFcnJvcjogcHJvcGVydHkgImNvZGUiIGlzIGVxdWFsIHRvIDAsIGV4cGVjdGVkIDExCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhf
b3BlbkN1cnNvcjItcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJpbmRleF9vcGVuQ3Vyc29yMi1wcml2YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uMDEzOGFjYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfb3BlbkN1cnNvcjItcHJpdmF0ZS5odG1s
CkBAIC0wLDAgKzEsMjkgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgi
PgorPHRpdGxlPklEQkluZGV4Lm9wZW5DdXJzb3IoKSAtIHRocm93IFRyYW5zYWN0aW9uSW5hY3Rp
dmVFcnJvciBvbiBhYm9ydGVkIHRyYW5zYWN0aW9uPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9y
IiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tIj4KKzxsaW5rIHJlbD0i
aGVscCIgaHJlZj0iaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlw
L092ZXJ2aWV3Lmh0bWwjd2lkbC1JREJJbmRleC1vcGVuQ3Vyc29yLUlEQlJlcXVlc3QtYW55LXJh
bmdlLUlEQkN1cnNvckRpcmVjdGlvbi1kaXJlY3Rpb24iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PXN1cHBvcnQuanM+PC9zY3JpcHQ+Cis8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPHNjcmlwdD4KKyAg
ICB2YXIgZGIsCisgICAgICAgIHQgPSBhc3luY190ZXN0KCk7CisKKyAgICB2YXIgb3Blbl9ycSA9
IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkg
eworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIHN0b3JlID0gZGIu
Y3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRoOiAia2V5IiB9KTsKKyAgICAgICAg
dmFyIGluZGV4ID0gc3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImluZGV4ZWRQcm9wZXJ0eSIp
OworICAgICAgICBzdG9yZS5hZGQoeyBrZXk6IDEsIGluZGV4ZWRQcm9wZXJ0eTogImRhdGEiIH0p
OworCisgICAgICAgIGUudGFyZ2V0LnRyYW5zYWN0aW9uLmFib3J0KCk7CisKKyAgICAgICAgYXNz
ZXJ0X3Rocm93cygiSW52YWxpZFN0YXRlRXJyb3IiLCBmdW5jdGlvbigpeworICAgICAgICAgICAg
aW5kZXgub3BlbkN1cnNvcigpOworICAgICAgICB9KTsKKyAgICAgICAgdC5kb25lKCk7CisgICAg
fQorPC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiaW5kZXhfb3BlbktleUN1cnNvci1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfb3BlbktleUN1cnNvci1wcml2
YXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MTJi
Y2FiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJpbmRleF9vcGVuS2V5Q3Vyc29yLXByaXZhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MyBAQAorCitQQVNTIElEQkluZGV4Lm9wZW5LZXlDdXJzb3IoKSAtIHRocm93IERhdGFFcnJvciB3
aGVuIHVzaW5nIGEgaW52YWxpZCBrZXkgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfb3BlbktleUN1cnNvci1wcml2YXRlLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X29wZW5LZXlDdXJzb3It
cHJpdmF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc1NTVlMDYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmluZGV4X29wZW5LZXlDdXJzb3ItcHJpdmF0ZS5odG1sCkBAIC0wLDAgKzEsMjggQEAKKzwhRE9D
VFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQkluZGV4Lm9wZW5L
ZXlDdXJzb3IoKSAtIHRocm93IERhdGFFcnJvciB3aGVuIHVzaW5nIGEgaW52YWxpZCBrZXk8L3Rp
dGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5p
bnRlbC5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2R2Y3MudzMub3JnL2hn
L0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQkluZGV4LW9wZW5L
ZXlDdXJzb3ItSURCUmVxdWVzdC1hbnktcmFuZ2UtSURCQ3Vyc29yRGlyZWN0aW9uLWRpcmVjdGlv
biI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KKzxkaXYgaWQ9
ImxvZyI+PC9kaXY+Cis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgICAgdCA9IGFzeW5jX3Rl
c3QoKTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVw
Z3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0
OworICAgICAgICB2YXIgc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGtl
eVBhdGg6ICJrZXkiIH0pOworICAgICAgICB2YXIgaW5kZXggPSBzdG9yZS5jcmVhdGVJbmRleCgi
aW5kZXgiLCAiaW5kZXhlZFByb3BlcnR5Iik7CisKKyAgICAgICAgc3RvcmUuYWRkKHsga2V5OiAx
LCBpbmRleGVkUHJvcGVydHk6ICJkYXRhIiB9KTsKKworICAgICAgICBhc3NlcnRfdGhyb3dzKCJE
YXRhRXJyb3IiLCBmdW5jdGlvbigpeworICAgICAgICAgICAgaW5kZXgub3BlbktleUN1cnNvcihO
YU4pOworICAgICAgICB9KTsKKyAgICAgICAgdC5kb25lKCk7CisgICAgfQorPC9zY3JpcHQ+CisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhf
b3BlbktleUN1cnNvcjItcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X29wZW5LZXlDdXJzb3IyLXByaXZhdGUtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU0YTQ0YTQKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X29w
ZW5LZXlDdXJzb3IyLXByaXZhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNT
IElEQkluZGV4Lm9wZW5LZXlDdXJzb3IoKSAtIHRocm93IEludmFsaWRTdGF0ZUVycm9yIHdoZW4g
dGhlIGluZGV4IGlzIGRlbGV0ZWQgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRiaW5kZXhfb3BlbktleUN1cnNvcjItcHJpdmF0ZS5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9vcGVuS2V5Q3Vyc29yMi1w
cml2YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDYzMmQxOQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
aW5kZXhfb3BlbktleUN1cnNvcjItcHJpdmF0ZS5odG1sCkBAIC0wLDAgKzEsMjkgQEAKKzwhRE9D
VFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQkluZGV4Lm9wZW5L
ZXlDdXJzb3IoKSAtIHRocm93IEludmFsaWRTdGF0ZUVycm9yIHdoZW4gdGhlIGluZGV4IGlzIGRl
bGV0ZWQ8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0
cDovL3d3dy5pbnRlbC5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2R2Y3Mu
dzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQklu
ZGV4LW9wZW5LZXlDdXJzb3ItSURCUmVxdWVzdC1hbnktcmFuZ2UtSURCQ3Vyc29yRGlyZWN0aW9u
LWRpcmVjdGlvbiI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4K
KzxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgICAgdCA9
IGFzeW5jX3Rlc3QoKTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Bl
bl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJn
ZXQucmVzdWx0OworICAgICAgICB2YXIgc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3Rv
cmUiLCB7IGtleVBhdGg6ICJrZXkiIH0pOworICAgICAgICB2YXIgaW5kZXggPSBzdG9yZS5jcmVh
dGVJbmRleCgiaW5kZXgiLCAiaW5kZXhlZFByb3BlcnR5Iik7CisKKyAgICAgICAgc3RvcmUuYWRk
KHsga2V5OiAxLCBpbmRleGVkUHJvcGVydHk6ICJkYXRhIiB9KTsKKyAgICAgICAgc3RvcmUuZGVs
ZXRlSW5kZXgoImluZGV4Iik7CisKKyAgICAgICAgYXNzZXJ0X3Rocm93cygiSW52YWxpZFN0YXRl
RXJyb3IiLCBmdW5jdGlvbigpeworICAgICAgICAgICAgaW5kZXgub3BlbktleUN1cnNvcigpOwor
ICAgICAgICB9KTsKKyAgICAgICAgdC5kb25lKCk7CisgICAgfQorPC9zY3JpcHQ+CisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfb3Blbktl
eUN1cnNvcjMtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmluZGV4X29wZW5LZXlDdXJzb3IzLXByaXZhdGUtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk4NWVkMGIKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X29wZW5LZXlD
dXJzb3IzLXByaXZhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorCitGQUlMIElEQklu
ZGV4Lm9wZW5LZXlDdXJzb3IoKSAtIHRocm93IFRyYW5zYWN0aW9uSW5hY3RpdmVFcnJvciBvbiBh
Ym9ydGVkIHRyYW5zYWN0aW9uIGFzc2VydF90aHJvd3M6IGZ1bmN0aW9uICJmdW5jdGlvbiAoKXsK
KyAgICAgICAgICAgIGluZGV4Lm9wZW5LZXlDdXJzb3IoKTsKKyAgICAgICAgfSIgdGhyZXcgb2Jq
ZWN0ICJFcnJvcjogRmFpbGVkIHRvIGV4ZWN1dGUgJ29wZW5LZXlDdXJzb3InIG9uICdJREJJbmRl
eCc6IFQuLi4iIHRoYXQgaXMgbm90IGEgRE9NRXhjZXB0aW9uIEludmFsaWRTdGF0ZUVycm9yOiBw
cm9wZXJ0eSAiY29kZSIgaXMgZXF1YWwgdG8gMCwgZXhwZWN0ZWQgMTEKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9vcGVuS2V5Q3Vyc29y
My1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmlu
ZGV4X29wZW5LZXlDdXJzb3IzLXByaXZhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi40YTJiMmYxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9vcGVuS2V5Q3Vyc29yMy1wcml2YXRlLmh0bWwKQEAg
LTAsMCArMSwyOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8
dGl0bGU+SURCSW5kZXgub3BlbktleUN1cnNvcigpIC0gdGhyb3cgVHJhbnNhY3Rpb25JbmFjdGl2
ZUVycm9yIG9uIGFib3J0ZWQgdHJhbnNhY3Rpb248L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3Ii
IHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20iPgorPGxpbmsgcmVsPSJo
ZWxwIiBocmVmPSJodHRwczovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAv
T3ZlcnZpZXcuaHRtbCN3aWRsLUlEQkluZGV4LW9wZW5LZXlDdXJzb3ItSURCUmVxdWVzdC1hbnkt
cmFuZ2UtSURCQ3Vyc29yRGlyZWN0aW9uLWRpcmVjdGlvbiI+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KKzxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8c2NyaXB0Pgor
ICAgIHZhciBkYiwKKyAgICAgICAgdCA9IGFzeW5jX3Rlc3QoKTsKKworICAgIHZhciBvcGVuX3Jx
ID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihl
KSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgc3RvcmUgPSBk
Yi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGtleVBhdGg6ICJrZXkiIH0pOworICAgICAg
ICB2YXIgaW5kZXggPSBzdG9yZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAiaW5kZXhlZFByb3BlcnR5
Iik7CisgICAgICAgIHN0b3JlLmFkZCh7IGtleTogMSwgaW5kZXhlZFByb3BlcnR5OiAiZGF0YSIg
fSk7CisKKyAgICAgICAgZS50YXJnZXQudHJhbnNhY3Rpb24uYWJvcnQoKTsKKworICAgICAgICBh
c3NlcnRfdGhyb3dzKCJJbnZhbGlkU3RhdGVFcnJvciIsIGZ1bmN0aW9uKCl7CisgICAgICAgICAg
ICBpbmRleC5vcGVuS2V5Q3Vyc29yKCk7CisgICAgICAgIH0pOworICAgICAgICB0LmRvbmUoKTsK
KyAgICB9Cis8L3NjcmlwdD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJrZXlyYW5nZS1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRia2V5cmFuZ2UtcHJpdmF0ZS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjQyNzY3MgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRia2V5cmFuZ2UtcHJp
dmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACisKK1BBU1MgSURCS2V5UmFuZ2Uub25s
eSgpIC0gcmV0dXJucyBhbiBJREJLZXlSYW5nZSBhbmQgdGhlIHByb3BlcnRpZXMgYXJlIHNldCBj
b3JyZWN0bHkgCitQQVNTIElEQktleVJhbmdlLmxvd2VyQm91bmQoKSAtIHJldHVybnMgYW4gSURC
S2V5UmFuZ2UgYW5kIHRoZSBwcm9wZXJ0aWVzIGFyZSBzZXQgY29ycmVjdGx5IAorUEFTUyBJREJL
ZXlSYW5nZS5sb3dlckJvdW5kKCkgLSAnb3BlbicgcGFyYW1ldGVyIGhhcyBjb3JyZWN0IGRlZmF1
bHQgc2V0IAorUEFTUyBJREJLZXlSYW5nZS51cHBlckJvdW5kKCkgLSByZXR1cm5zIGFuIElEQktl
eVJhbmdlIGFuZCB0aGUgcHJvcGVydGllcyBhcmUgc2V0IGNvcnJlY3RseSAKK1BBU1MgSURCS2V5
UmFuZ2UudXBwZXJCb3VuZCgpIC0gJ29wZW4nIHBhcmFtZXRlciBoYXMgY29ycmVjdCBkZWZhdWx0
IHNldCAKK1BBU1MgSURCS2V5UmFuZ2UuYm91bmQoKSAtIHJldHVybnMgYW4gSURCS2V5UmFuZ2Ug
YW5kIHRoZSBwcm9wZXJ0aWVzIGFyZSBzZXQgY29ycmVjdGx5IAorUEFTUyBJREJLZXlSYW5nZS5i
b3VuZCgpIC0gJ2xvd2VyT3BlbicgYW5kICd1cHBlck9wZW4nIHBhcmFtZXRlcnMgaGF2ZSBjb3Jy
ZWN0IGRlZmF1bHRzIHNldCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJrZXlyYW5nZS1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmtleXJhbmdlLXByaXZhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5hNjJhOTQzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJrZXlyYW5nZS1wcml2YXRlLmh0bWwKQEAgLTAs
MCArMSw2NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPHRpdGxl
PklEQktleVJhbmdlIFRlc3RzPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWlj
cm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgLy8gb25seQorICAg
IHRlc3QoIGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIga2V5UmFuZ2UgPSBJREJLZXlSYW5nZS5v
bmx5KDEpOworICAgICAgICBhc3NlcnRfdHJ1ZShrZXlSYW5nZSBpbnN0YW5jZW9mIElEQktleVJh
bmdlLCAia2V5UmFuZ2UgaW5zdGFuY2VvZiBJREJLZXlSYW5nZSIpOworICAgICAgICBhc3NlcnRf
ZXF1YWxzKGtleVJhbmdlLmxvd2VyLCAxLCAia2V5UmFuZ2UiKTsKKyAgICAgICAgYXNzZXJ0X2Vx
dWFscyhrZXlSYW5nZS51cHBlciwgMSwgImtleVJhbmdlIik7CisgICAgICAgIGFzc2VydF9mYWxz
ZShrZXlSYW5nZS5sb3dlck9wZW4sICJrZXlSYW5nZS5sb3dlck9wZW4iKTsKKyAgICAgICAgYXNz
ZXJ0X2ZhbHNlKGtleVJhbmdlLnVwcGVyT3BlbiwgImtleVJhbmdlLnVwcGVyT3BlbiIpOworICAg
IH0sICJJREJLZXlSYW5nZS5vbmx5KCkgLSByZXR1cm5zIGFuIElEQktleVJhbmdlIGFuZCB0aGUg
cHJvcGVydGllcyBhcmUgc2V0IGNvcnJlY3RseSIpOworCisgICAgLy8gbG93ZXJCb3VuZAorICAg
IHRlc3QoIGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIga2V5UmFuZ2UgPSBJREJLZXlSYW5nZS5s
b3dlckJvdW5kKDEsIHRydWUpCisgICAgICAgIGFzc2VydF90cnVlKGtleVJhbmdlIGluc3RhbmNl
b2YgSURCS2V5UmFuZ2UsICJrZXlSYW5nZSBpbnN0YW5jZW9mIElEQktleVJhbmdlIik7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMoa2V5UmFuZ2UubG93ZXIsIDEsICJrZXlSYW5nZS5sb3dlciIpOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKGtleVJhbmdlLnVwcGVyLCB1bmRlZmluZWQsICJrZXlSYW5n
ZS51cHBlciIpOworICAgICAgICBhc3NlcnRfdHJ1ZShrZXlSYW5nZS5sb3dlck9wZW4sICJrZXlS
YW5nZS5sb3dlck9wZW4iKTsKKyAgICAgICAgYXNzZXJ0X3RydWUoa2V5UmFuZ2UudXBwZXJPcGVu
LCAia2V5UmFuZ2UudXBwZXJPcGVuIik7CisgICAgfSwgIklEQktleVJhbmdlLmxvd2VyQm91bmQo
KSAtIHJldHVybnMgYW4gSURCS2V5UmFuZ2UgYW5kIHRoZSBwcm9wZXJ0aWVzIGFyZSBzZXQgY29y
cmVjdGx5Iik7CisKKyAgICB0ZXN0KCBmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIGtleVJhbmdl
ID0gSURCS2V5UmFuZ2UubG93ZXJCb3VuZCgxKTsKKyAgICAgICAgYXNzZXJ0X2ZhbHNlKGtleVJh
bmdlLmxvd2VyT3BlbiwgImtleVJhbmdlLmxvd2VyT3BlbiIpOworICAgIH0sICJJREJLZXlSYW5n
ZS5sb3dlckJvdW5kKCkgLSAnb3BlbicgcGFyYW1ldGVyIGhhcyBjb3JyZWN0IGRlZmF1bHQgc2V0
Iik7CisKKyAgICAvLyB1cHBlckJvdW5kCisgICAgdGVzdCggZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICB2YXIga2V5UmFuZ2UgPSBJREJLZXlSYW5nZS51cHBlckJvdW5kKDEsIHRydWUpOworICAg
ICAgICAgICAgYXNzZXJ0X3RydWUoa2V5UmFuZ2UgaW5zdGFuY2VvZiBJREJLZXlSYW5nZSwgImtl
eVJhbmdlIGluc3RhbmNlb2YgSURCS2V5UmFuZ2UiKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVh
bHMoa2V5UmFuZ2UubG93ZXIsIHVuZGVmaW5lZCwgImtleVJhbmdlLmxvd2VyIik7CisgICAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKGtleVJhbmdlLnVwcGVyLCAxLCAia2V5UmFuZ2UudXBwZXIiKTsK
KyAgICAgICAgICAgIGFzc2VydF90cnVlKGtleVJhbmdlLmxvd2VyT3BlbiwgImtleVJhbmdlLmxv
d2VyT3BlbiIpOworICAgICAgICAgICAgYXNzZXJ0X3RydWUoa2V5UmFuZ2UudXBwZXJPcGVuLCAi
a2V5UmFuZ2UudXBwZXJPcGVuIik7CisgICAgfSwgIklEQktleVJhbmdlLnVwcGVyQm91bmQoKSAt
IHJldHVybnMgYW4gSURCS2V5UmFuZ2UgYW5kIHRoZSBwcm9wZXJ0aWVzIGFyZSBzZXQgY29ycmVj
dGx5Iik7CisKKyAgICB0ZXN0KCBmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIGtleVJhbmdlID0g
SURCS2V5UmFuZ2UudXBwZXJCb3VuZCgxKTsKKyAgICAgICAgYXNzZXJ0X2ZhbHNlKGtleVJhbmdl
LnVwcGVyT3BlbiwgImtleVJhbmdlLnVwcGVyT3BlbiIpOworICAgIH0sICJJREJLZXlSYW5nZS51
cHBlckJvdW5kKCkgLSAnb3BlbicgcGFyYW1ldGVyIGhhcyBjb3JyZWN0IGRlZmF1bHQgc2V0Iik7
CisKKyAgICAvLyBib3VuZAorICAgIHRlc3QoIGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIga2V5
UmFuZ2UgPSBJREJLZXlSYW5nZS5ib3VuZCgxLCAyLCB0cnVlLCB0cnVlKTsKKyAgICAgICAgYXNz
ZXJ0X3RydWUoa2V5UmFuZ2UgaW5zdGFuY2VvZiBJREJLZXlSYW5nZSwgImtleVJhbmdlIGluc3Rh
bmNlb2YgSURCS2V5UmFuZ2UiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhrZXlSYW5nZS5sb3dl
ciwgMSwgImtleVJhbmdlIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoa2V5UmFuZ2UudXBwZXIs
IDIsICJrZXlSYW5nZSIpOworICAgICAgICBhc3NlcnRfdHJ1ZShrZXlSYW5nZS5sb3dlck9wZW4s
ICJrZXlSYW5nZS5sb3dlck9wZW4iKTsKKyAgICAgICAgYXNzZXJ0X3RydWUoa2V5UmFuZ2UudXBw
ZXJPcGVuLCAia2V5UmFuZ2UudXBwZXJPcGVuIik7CisgICAgfSwgIklEQktleVJhbmdlLmJvdW5k
KCkgLSByZXR1cm5zIGFuIElEQktleVJhbmdlIGFuZCB0aGUgcHJvcGVydGllcyBhcmUgc2V0IGNv
cnJlY3RseSIpOworCisgICAgdGVzdCggZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciBrZXlSYW5n
ZSA9IElEQktleVJhbmdlLmJvdW5kKDEsIDIpOworICAgICAgICBhc3NlcnRfZmFsc2Uoa2V5UmFu
Z2UubG93ZXJPcGVuLCAia2V5UmFuZ2UubG93ZXJPcGVuIik7CisgICAgICAgIGFzc2VydF9mYWxz
ZShrZXlSYW5nZS51cHBlck9wZW4sICJrZXlSYW5nZS51cHBlck9wZW4iKTsKKyAgICB9LCAiSURC
S2V5UmFuZ2UuYm91bmQoKSAtICdsb3dlck9wZW4nIGFuZCAndXBwZXJPcGVuJyBwYXJhbWV0ZXJz
IGhhdmUgY29ycmVjdCBkZWZhdWx0cyBzZXQiKTsKKzwvc2NyaXB0PgorCis8ZGl2IGlkPWxvZz48
L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
a2V5cmFuZ2VfaW5jb3JyZWN0LXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJrZXlyYW5nZV9pbmNvcnJlY3QtcHJpdmF0ZS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDQ5YmZmMQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRia2V5cmFu
Z2VfaW5jb3JyZWN0LXByaXZhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorCitQQVNT
IElEQktleVJhbmdlLmJvdW5kKCkgLSBib3VuZCByZXF1aXJlcyBtb3JlIHRoYW4gMCBhcmd1bWVu
dHMuIAorUEFTUyBJREJLZXlSYW5nZS5ib3VuZChudWxsLCBudWxsKSAtIG51bGwgcGFyYW1ldGVy
cyBhcmUgaW5jb3JyZWN0LiAKK1BBU1MgSURCS2V5UmFuZ2UuYm91bmQoMSwgbnVsbCAvIG51bGws
IDEpIC0gbnVsbCBwYXJhbWV0ZXIgaXMgaW5jb3JyZWN0LiAKK1BBU1MgSURCS2V5UmFuZ2UuYm91
bmQobG93ZXIsIHVwcGVyIC8gbG93ZXIgPiB1cHBlcikgLSAgJ2xvd2VyJyBpcyBncmVhdGVyIHRo
YW4gJ3VwcGVyJy4gCitQQVNTIElEQktleVJhbmdlLmJvdW5kKERPTVN0cmluZy9EYXRlL0FycmF5
LCAxKSAtIEEgRE9NU3RyaW5nLCBEYXRlIGFuZCBBcnJheSBhcmUgZ3JlYXRlciB0aGFuIGEgZmxv
YXQuIAorUEFTUyBJREJLZXlSYW5nZS5ib3VuZChub0V4aXN0aW5nVmFyaWFibGUsIDEgLyBnb29k
VmFyaWFibGUsIG5vRXhpc3RpbmdWYXJpYWJsZSkgLSBub0V4aXN0aW5nVmFyaWFibGUgaXMgbm90
IGRlZmluZWQuIAorUEFTUyBJREJLZXlSYW5nZS5ib3VuZCh0cnVlLCAxKSAtIGJvb2xlYW4gaXMg
bm90IGEgdmFsaWQga2V5IHR5cGUuIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmtleXJhbmdlX2luY29ycmVjdC1wcml2YXRlLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmtleXJhbmdlX2luY29ycmVjdC1wcml2
YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWUxOTc5MQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRia2V5
cmFuZ2VfaW5jb3JyZWN0LXByaXZhdGUuaHRtbApAQCAtMCwwICsxLDkyIEBACis8IURPQ1RZUEUg
aHRtbD4KKzwhLS0gU3VibWl0dGVkIGZyb20gVGVzdFRXRiBQYXJpcyAtLT4KKzxodG1sPgorICAg
IDxoZWFkPgorICAgICAgICA8bWV0YSBjaGFyc2V0PXV0Zi04PgorICAgICAgICA8dGl0bGUgaWQ9
J2Rlc2MnPklEQktleVJhbmdlIFRlc3RzIC0gSW5jb3JyZWN0PC90aXRsZT4KKyAgICAgICAgPGxp
bmsgcmVsPWhlbHAgaHJlZj0iaHR0cDovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmls
ZS90aXAvT3ZlcnZpZXcuaHRtbCNyYW5nZS1jb25jZXB0Ij4KKyAgICAgICAgPGxpbmsgcmVsPWFz
c2VydCB0aXRsZT0iSWYgdGhlIGxvd2VyIGtleSBpcyBncmVhdGVyIHRoYW4gdGhlIHVwcGVyIGtl
eSwgdGhlbiBhIERPTUV4Y2VwdGlvbiBvZiB0eXBlIERhdGFFcnJvciBtdXN0IGJlIHRocm93bi4i
PgorICAgICAgICA8bGluayByZWw9YXV0aG9yIGhyZWY9Im1haWx0bzpjaHJjaGFybGVzNjdAZ21h
aWwuY29tIiB0aXRsZT0iQ2hyaXN0b3BoZSBDSEFSTEVTIj4KKworICAgICAgICA8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICAgICAg
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworICAg
ICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisKKyAgICAgICAgICAgIC8vIFR5
cGVFcnJvcjogYm91bmQgcmVxdWlyZXMgbW9yZSB0aGFuIDAgYXJndW1lbnRzCisgICAgICAgICAg
ICB0ZXN0KCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKG5ldyBU
eXBlRXJyb3IoKSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIElEQktleVJhbmdl
LmJvdW5kKCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9LCAiSURCS2V5UmFu
Z2UuYm91bmQoKSAtIGJvdW5kIHJlcXVpcmVzIG1vcmUgdGhhbiAwIGFyZ3VtZW50cy4iKTsKKwor
ICAgICAgICAgICAgLy8gTnVsbCBwYXJhbWV0ZXJzCisgICAgICAgICAgICB0ZXN0KCBmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCJEYXRhRXJyb3IiLCBmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgICAgICAgICAgSURCS2V5UmFuZ2UuYm91bmQobnVsbCwgbnVsbCk7
CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9LCAiSURCS2V5UmFuZ2UuYm91bmQo
bnVsbCwgbnVsbCkgLSBudWxsIHBhcmFtZXRlcnMgYXJlIGluY29ycmVjdC4iKTsKKworICAgICAg
ICAgICAgLy8gLy8gTnVsbCBwYXJhbWV0ZXIKKyAgICAgICAgICAgIHRlc3QoIGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgICAgIGFzc2VydF90aHJvd3MoIkRhdGFFcnJvciIsIGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgICAgICAgICBJREJLZXlSYW5nZS5ib3VuZCgxLCBudWxsKTsKKyAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCJEYXRhRXJyb3Ii
LCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgSURCS2V5UmFuZ2UuYm91bmQobnVs
bCwgMSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9LCAiSURCS2V5UmFuZ2Uu
Ym91bmQoMSwgbnVsbCAvIG51bGwsIDEpIC0gbnVsbCBwYXJhbWV0ZXIgaXMgaW5jb3JyZWN0LiIp
OworCisgICAgICAgICAgICAvLyBib3VuZCBpbmNvcnJlY3QKKyAgICAgICAgICAgIHRlc3QoIGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHZhciBsb3dlckJhZCA9IE1hdGguZmxvb3IoTWF0
aC5yYW5kb20oKSozMSkgKyA1OworICAgICAgICAgICAgICAgIHZhciB1cHBlciA9IGxvd2VyQmFk
IC0gMTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCJEYXRhRXJyb3IiLCBmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgICAgICAgICAgSURCS2V5UmFuZ2UuYm91bmQobG93ZXJCYWQsIHVw
cGVyKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dz
KCJEYXRhRXJyb3IiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgSURCS2V5UmFu
Z2UuYm91bmQoJ2InLCAnYScpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSwg
IklEQktleVJhbmdlLmJvdW5kKGxvd2VyLCB1cHBlciAvIGxvd2VyID4gdXBwZXIpIC0gICdsb3dl
cicgaXMgZ3JlYXRlciB0aGFuICd1cHBlcicuIgorICAgICAgICAgICAgKTsKKworICAgICAgICAg
ICAgdGVzdCggZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygiRGF0
YUVycm9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIElEQktleVJhbmdlLmJv
dW5kKCdhJywgMSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
X3Rocm93cygiRGF0YUVycm9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIElE
QktleVJhbmdlLmJvdW5kKG5ldyBEYXRlKCksIDEpOworICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgICAgIGFzc2VydF90aHJvd3MoIkRhdGFFcnJvciIsIGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgICAgICAgICBJREJLZXlSYW5nZS5ib3VuZChbMSwgMl0sIDEpOworICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgfSwgIklEQktleVJhbmdlLmJvdW5kKERPTVN0cmluZy9E
YXRlL0FycmF5LCAxKSAtIEEgRE9NU3RyaW5nLCBEYXRlIGFuZCBBcnJheSBhcmUgZ3JlYXRlciB0
aGFuIGEgZmxvYXQuIik7CisKKworICAgICAgICAgICAgLy8gUmVmZXJlbmNlRXJyb3I6IHRoZSB2
YXJpYWJsZSBpcyBub3QgZGVmaW5lZAorICAgICAgICAgICAgdGVzdCggZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICAgICAgdmFyIGdvb2RWYXJpYWJsZSA9IDE7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0X3Rocm93cyhuZXcgUmVmZXJlbmNlRXJyb3IoKSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICAgICAgICAgIElEQktleVJhbmdlLmJvdW5kKG5vRXhpc3RpbmdWYXJpYWJsZSwgMSk7CisgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0X3Rocm93cyhuZXcgUmVmZXJl
bmNlRXJyb3IoKSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIElEQktleVJhbmdl
LmJvdW5kKGdvb2RWYXJpYWJsZSwgbm9FeGlzdGluZ1ZhcmlhYmxlKTsKKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgIH0sICJJREJLZXlSYW5nZS5ib3VuZChub0V4aXN0aW5nVmFyaWFi
bGUsIDEgLyBnb29kVmFyaWFibGUsIG5vRXhpc3RpbmdWYXJpYWJsZSkgLSBub0V4aXN0aW5nVmFy
aWFibGUgaXMgbm90IGRlZmluZWQuIik7CisKKyAgICAgICAgICAgIC8vIFZhbGlkIHR5cGUga2V5
IGVycm9yCisgICAgICAgICAgICB0ZXN0KCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBh
c3NlcnRfdGhyb3dzKCJEYXRhRXJyb3IiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAg
ICAgSURCS2V5UmFuZ2UuYm91bmQodHJ1ZSwgMSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICB9LCAiSURCS2V5UmFuZ2UuYm91bmQodHJ1ZSwgMSkgLSBib29sZWFuIGlzIG5vdCBh
IHZhbGlkIGtleSB0eXBlLiIpOworCisKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9oZWFkPgor
CisgICAgPGJvZHk+CisgICAgICAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+CisgICAgPC9ib2R5Pgor
PC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkLXByaXZhdGUtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3Rz
dG9yZV9hZGQtcHJpdmF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uM2Y3Y2JiZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkLXByaXZhdGUtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMyBAQAorCitQQVNTIElEQk9iamVjdFN0b3JlLmFkZCgpIC0gYWRkIHdpdGggYW4g
aW5saW5lIGtleSAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkLXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkLXByaXZhdGUuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41OGRmNTg0ZAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkLXBy
aXZhdGUuaHRtbApAQCAtMCwwICsxLDM1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJz
ZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJPYmplY3RTdG9yZS5hZGQoKSAtIGFkZCB3aXRoIGFuIGlu
bGluZSBrZXkgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBo
cmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJz
dXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICB0ID0g
YXN5bmNfdGVzdCgpLAorICAgICAgcmVjb3JkID0geyBrZXk6IDEsIHByb3BlcnR5OiAiZGF0YSIg
fTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3Jh
ZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0Owor
ICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGtl
eVBhdGg6ICJrZXkiIH0pOworCisgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmQpOworICAgIH07
CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdmFyIHJx
ID0gZGIudHJhbnNhY3Rpb24oInN0b3JlIikKKyAgICAgICAgICAgICAgICAgICAub2JqZWN0U3Rv
cmUoInN0b3JlIikKKyAgICAgICAgICAgICAgICAgICAuZ2V0KHJlY29yZC5rZXkpOworCisgICAg
ICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LnByb3BlcnR5LCByZWNvcmQucHJvcGVydHkp
OworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQua2V5LCByZWNvcmQu
a2V5KTsKKyAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICB9KTsKKyAgICB9OworPC9zY3Jp
cHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDEwLXByaXZhdGUtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9h
ZGQxMC1wcml2YXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi41NTUyYTM5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQxMC1wcml2YXRlLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDMgQEAKKworUEFTUyBJREJPYmplY3RTdG9yZS5hZGQoKSAtIEF0dGVtcHQgdG8gY2Fs
bCAnYWRkJyB3aXRob3V0IGFuIGtleSBwYXJhbWV0ZXIgd2hlbiB0aGUgb2JqZWN0IHN0b3JlIHVz
ZXMgb3V0LW9mLWxpbmUga2V5cyAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkMTAtcHJpdmF0ZS5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQxMC1wcml2YXRl
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDhmNzE2ZAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0
c3RvcmVfYWRkMTAtcHJpdmF0ZS5odG1sCkBAIC0wLDAgKzEsMjkgQEAKKzwhRE9DVFlQRSBodG1s
PgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQk9iamVjdFN0b3JlLmFkZCgpIC0g
QXR0ZW1wdCB0byBjYWxsICdhZGQnIHdpdGhvdXQgYW4ga2V5IHBhcmFtZXRlciB3aGVuIHRoZSBv
YmplY3Qgc3RvcmUgdXNlcyBvdXQtb2YtbGluZSBrZXlzIDwvdGl0bGU+Cis8bGluayByZWw9ImF1
dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4K
KzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+
CisgICAgdmFyIGRiLAorICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAgIHJlY29yZCA9IHsg
cHJvcGVydHk6ICJkYXRhIiB9OworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAg
ICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBl
LnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgdmFyIHJxLAorICAgICAgICAgIG9ialN0b3JlID0g
ZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIik7CisKKyAgICAgICAgYXNzZXJ0X3Rocm93cygi
RGF0YUVycm9yIiwKKyAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBycSA9IG9ialN0b3JlLmFkZChy
ZWNvcmQpOyB9KTsKKworICAgICAgICBhc3NlcnRfZXF1YWxzKHJxLCB1bmRlZmluZWQpOworICAg
ICAgICB0LmRvbmUoKTsKKyAgICB9OworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVj
dHN0b3JlX2FkZDExLXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQxMS1wcml2YXRlLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNjcyOGExNAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVf
YWRkMTEtcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCT2Jq
ZWN0U3RvcmUuYWRkKCkgLSBBdHRlbXB0IHRvIGFkZCBhIHJlY29yZCB3aGVyZSB0aGUgcmVjb3Jk
J3Mga2V5IGRvZXMgbm90IG1lZXQgdGhlIGNvbnN0cmFpbnRzIG9mIGEgdmFsaWQga2V5ICAKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3Rz
dG9yZV9hZGQxMS1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYm9iamVjdHN0b3JlX2FkZDExLXByaXZhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5lZTZhNGU0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQxMS1wcml2YXRlLmh0bWwK
QEAgLTAsMCArMSwyOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+
Cis8dGl0bGU+SURCT2JqZWN0U3RvcmUuYWRkKCkgLSBBdHRlbXB0IHRvIGFkZCBhIHJlY29yZCB3
aGVyZSB0aGUgcmVjb3JkJ3Mga2V5IGRvZXMgbm90IG1lZXQgdGhlIGNvbnN0cmFpbnRzIG9mIGEg
dmFsaWQga2V5IDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIg
aHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
c3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgdCA9
IGFzeW5jX3Rlc3QoKSwKKyAgICAgIHJlY29yZCA9IHsga2V5OiB7IHZhbHVlOiAxIH0sIHByb3Bl
cnR5OiAiZGF0YSIgfTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Bl
bl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJn
ZXQucmVzdWx0OworCisgICAgICAgIHZhciBycSwKKyAgICAgICAgICBvYmpTdG9yZSA9IGRiLmNy
ZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHsga2V5UGF0aDogImtleSIgfSk7CisKKyAgICAgICAg
YXNzZXJ0X3Rocm93cygiRGF0YUVycm9yIiwKKyAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBycSA9
IG9ialN0b3JlLmFkZChyZWNvcmQpOyB9KTsKKworICAgICAgICBhc3NlcnRfZXF1YWxzKHJxLCB1
bmRlZmluZWQpOworICAgICAgICB0LmRvbmUoKTsKKyAgICB9OworPC9zY3JpcHQ+CisKKzxkaXYg
aWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDEyLXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQxMi1wcml2YXRl
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MGY4ZWUx
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJvYmplY3RzdG9yZV9hZGQxMi1wcml2YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAK
KworUEFTUyBJREJPYmplY3RTdG9yZS5hZGQoKSAtIEF0dGVtcHQgdG8gYWRkIGEgcmVjb3JkIHdo
ZXJlIHRoZSByZWNvcmQncyBpbi1saW5lIGtleSBpcyBub3QgZGVmaW5lZCAgCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRk
MTItcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJv
YmplY3RzdG9yZV9hZGQxMi1wcml2YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uZTE0Y2RhNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkMTItcHJpdmF0ZS5odG1sCkBAIC0wLDAg
KzEsMjkgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxl
PklEQk9iamVjdFN0b3JlLmFkZCgpIC0gQXR0ZW1wdCB0byBhZGQgYSByZWNvcmQgd2hlcmUgdGhl
IHJlY29yZCdzIGluLWxpbmUga2V5IGlzIG5vdCBkZWZpbmVkIDwvdGl0bGU+Cis8bGluayByZWw9
ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29t
Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3Jp
cHQ+CisgICAgdmFyIGRiLAorICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAgIHJlY29yZCA9
IHsgcHJvcGVydHk6ICJkYXRhIiB9OworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsK
KyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIg
PSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgdmFyIHJxLAorICAgICAgICAgIG9ialN0b3Jl
ID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRoOiAia2V5IiB9KTsKKwor
ICAgICAgICBhc3NlcnRfdGhyb3dzKCJEYXRhRXJyb3IiLAorICAgICAgICAgICAgZnVuY3Rpb24o
KSB7IHJxID0gb2JqU3RvcmUuYWRkKHJlY29yZCk7IH0pOworCisgICAgICAgIGFzc2VydF9lcXVh
bHMocnEsIHVuZGVmaW5lZCk7CisgICAgICAgIHQuZG9uZSgpOworICAgIH07Cis8L3NjcmlwdD4K
KworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkMTMtcHJpdmF0ZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDEz
LXByaXZhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjUwNzE0MTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDEzLXByaXZhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMyBAQAorCitQQVNTIElEQk9iamVjdFN0b3JlLmFkZCgpIC0gQXR0ZW1wdCB0byBhZGQgYSBy
ZWNvcmQgd2hlcmUgdGhlIG91dCBvZiBsaW5lIGtleSBwcm92aWRlZCBkb2VzIG5vdCBtZWV0IHRo
ZSBjb25zdHJhaW50cyBvZiBhIHZhbGlkIGtleSAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkMTMtcHJpdmF0ZS5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQx
My1wcml2YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2Y0YjMw
ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRib2JqZWN0c3RvcmVfYWRkMTMtcHJpdmF0ZS5odG1sCkBAIC0wLDAgKzEsMjkgQEAKKzwhRE9D
VFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQk9iamVjdFN0b3Jl
LmFkZCgpIC0gQXR0ZW1wdCB0byBhZGQgYSByZWNvcmQgd2hlcmUgdGhlIG91dCBvZiBsaW5lIGtl
eSBwcm92aWRlZCBkb2VzIG5vdCBtZWV0IHRoZSBjb25zdHJhaW50cyBvZiBhIHZhbGlkIGtleSA8
L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6
Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMi
Pjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgIHQgPSBhc3luY190ZXN0
KCksCisgICAgICByZWNvcmQgPSB7IHByb3BlcnR5OiAiZGF0YSIgfTsKKworICAgIHZhciBvcGVu
X3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlv
bihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworCisgICAgICAgIHZhciBycSwK
KyAgICAgICAgICBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIpOworCisg
ICAgICAgIGFzc2VydF90aHJvd3MoIkRhdGFFcnJvciIsCisgICAgICAgICAgICBmdW5jdGlvbigp
IHsgcnEgPSBvYmpTdG9yZS5hZGQocmVjb3JkLCB7IHZhbHVlOiAxIH0pOyB9KTsKKworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHJxLCB1bmRlZmluZWQpOworICAgICAgICB0LmRvbmUoKTsKKyAgICB9
OworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDE0LXByaXZhdGUt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmpl
Y3RzdG9yZV9hZGQxNC1wcml2YXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi4zOWFiMzc2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQxNC1wcml2YXRlLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJPYmplY3RTdG9yZS5hZGQoKSAtIEFkZCBh
IHJlY29yZCB3aGVyZSBhIHZhbHVlIGJlaW5nIGluZGV4ZWQgZG9lcyBub3QgbWVldCB0aGUgY29u
c3RyYWludHMgb2YgYSB2YWxpZCBrZXkgIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDE0LXByaXZhdGUuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkMTQtcHJp
dmF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA3YTFjNzQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9i
amVjdHN0b3JlX2FkZDE0LXByaXZhdGUuaHRtbApAQCAtMCwwICsxLDMyIEBACis8IURPQ1RZUEUg
aHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJPYmplY3RTdG9yZS5hZGQo
KSAtIEFkZCBhIHJlY29yZCB3aGVyZSBhIHZhbHVlIGJlaW5nIGluZGV4ZWQgZG9lcyBub3QgbWVl
dCB0aGUgY29uc3RyYWludHMgb2YgYSB2YWxpZCBrZXkgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0
aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4K
KyAgICB2YXIgZGIsCisgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAgcmVjb3JkID0geyBr
ZXk6IDEsIGluZGV4ZWRQcm9wZXJ0eTogeyBwcm9wZXJ0eTogImRhdGEiIH0gfTsKKworICAgIHZh
ciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBm
dW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworCisgICAgICAgIHZh
ciBycSwKKyAgICAgICAgICBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIs
IHsga2V5UGF0aDogImtleSIgfSk7CisKKyAgICAgICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgoImlu
ZGV4IiwgImluZGV4ZWRQcm9wZXJ0eSIpOworCisgICAgICAgIHJxID0gb2JqU3RvcmUuYWRkKHJl
Y29yZCk7CisKKyAgICAgICAgYXNzZXJ0X3RydWUocnEgaW5zdGFuY2VvZiBJREJSZXF1ZXN0KTsK
KyAgICAgICAgcnEub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0LmRvbmUo
KTsKKyAgICAgICAgfQorICAgIH07Cis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0
c3RvcmVfYWRkMTUtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDE1LXByaXZhdGUtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI1MTA0MjkKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2Fk
ZDE1LXByaXZhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQk9iamVj
dFN0b3JlLmFkZCgpIC0gSWYgdGhlIHRyYW5zYWN0aW9uIHRoaXMgSURCT2JqZWN0U3RvcmUgYmVs
b25ncyB0byBoYXMgaXRzIG1vZGUgc2V0IHRvIHJlYWRvbmx5LCB0aHJvdyBSZWFkT25seUVycm9y
ICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJv
YmplY3RzdG9yZV9hZGQxNS1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDE1LXByaXZhdGUuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMzIyY2E3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQxNS1wcml2YXRl
Lmh0bWwKQEAgLTAsMCArMSwzMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1
dGYtOCI+Cis8dGl0bGU+SURCT2JqZWN0U3RvcmUuYWRkKCkgLSBJZiB0aGUgdHJhbnNhY3Rpb24g
dGhpcyBJREJPYmplY3RTdG9yZSBiZWxvbmdzIHRvIGhhcyBpdHMgbW9kZSBzZXQgdG8gcmVhZG9u
bHksIHRocm93IFJlYWRPbmx5RXJyb3IgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRs
ZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tIj4KKzxsaW5rIHJlbD0iaGVscCIg
aHJlZj0iaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2
aWV3Lmh0bWwjd2lkbC1JREJPYmplY3RTdG9yZS1hZGQtSURCUmVxdWVzdC1hbnktdmFsdWUtYW55
LWtleSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorPGRp
diBpZD0ibG9nIj48L2Rpdj4KKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgICB0ID0gYXN5
bmNfdGVzdCgpOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3Jx
Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uIChldmVudCkgeworICAgICAgICBkYiA9IGV2ZW50
LnRhcmdldC5yZXN1bHQ7CisgICAgICAgIGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHtr
ZXlQYXRoOiJwS2V5In0pOworICAgIH0KKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rp
b24gKGV2ZW50KSB7CisgICAgICAgIHZhciB0eG4gPSBkYi50cmFuc2FjdGlvbigic3RvcmUiKTsK
KyAgICAgICAgdmFyIG9zdG9yZSA9IHR4bi5vYmplY3RTdG9yZSgic3RvcmUiKTsKKyAgICAgICAg
dC5zdGVwKGZ1bmN0aW9uKCl7CisgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCJSZWFkT25seUVy
cm9yIiwgZnVuY3Rpb24oKXsKKyAgICAgICAgICAgICAgICBvc3RvcmUuYWRkKHsgcEtleTogInBy
aW1hcnlLZXlfMCJ9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICAgICAgdC5k
b25lKCk7CisgICAgfQorPC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkMTYtcHJpdmF0ZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2Fk
ZDE2LXByaXZhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLmZlMTU5ZDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDE2LXByaXZhdGUtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMyBAQAorCitQQVNTIElEQk9iamVjdFN0b3JlLmFkZCgpIC0gSWYgdGhlIG9iamVjdCBz
dG9yZSBoYXMgYmVlbiBkZWxldGVkLCB0aGUgaW1wbGVtZW50YXRpb24gbXVzdCB0aHJvdyBhIERP
TUV4Y2VwdGlvbiBvZiB0eXBlIEludmFsaWRTdGF0ZUVycm9yICAKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQxNi1wcml2
YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0
b3JlX2FkZDE2LXByaXZhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li4wZDEyZTA0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQxNi1wcml2YXRlLmh0bWwKQEAgLTAsMCArMSwzMSBA
QAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCT2Jq
ZWN0U3RvcmUuYWRkKCkgLSBJZiB0aGUgb2JqZWN0IHN0b3JlIGhhcyBiZWVuIGRlbGV0ZWQsIHRo
ZSBpbXBsZW1lbnRhdGlvbiBtdXN0IHRocm93IGEgRE9NRXhjZXB0aW9uIG9mIHR5cGUgSW52YWxp
ZFN0YXRlRXJyb3IgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iSW50ZWwiIGhy
ZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6
Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwjd2lk
bC1JREJPYmplY3RTdG9yZS1hZGQtSURCUmVxdWVzdC1hbnktdmFsdWUtYW55LWtleSI+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorPGRpdiBpZD0ibG9nIj48
L2Rpdj4KKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgICBvc3RvcmUsCisgICAgICAgIHQg
PSBhc3luY190ZXN0KCk7CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9w
ZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24gKGV2ZW50KSB7CisgICAgICAgIGRiID0g
ZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgb3N0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3Rv
cmUoInN0b3JlIiwge2tleVBhdGg6InBLZXkifSk7CisgICAgICAgIGRiLmRlbGV0ZU9iamVjdFN0
b3JlKCJzdG9yZSIpOworICAgIH0KKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24g
KGV2ZW50KSB7CisgICAgICAgIHQuc3RlcChmdW5jdGlvbigpeworICAgICAgICAgICAgYXNzZXJ0
X3Rocm93cygiSW52YWxpZFN0YXRlRXJyb3IiLCBmdW5jdGlvbigpeworICAgICAgICAgICAgICAg
IG9zdG9yZS5hZGQoeyBwS2V5OiAicHJpbWFyeUtleV8wIn0pOworICAgICAgICAgICAgfSk7Cisg
ICAgICAgIH0pOworICAgICAgICB0LmRvbmUoKTsKKyAgICB9Cis8L3NjcmlwdD4KKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9h
ZGQyLXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQyLXByaXZhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU4ZWUzYjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDItcHJpdmF0
ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCT2JqZWN0U3RvcmUuYWRk
KCkgLSBhZGQgd2l0aCBhbiBvdXQtb2YtbGluZSBrZXkgIAorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDItcHJpdmF0ZS5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9h
ZGQyLXByaXZhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZTBh
MDlkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJvYmplY3RzdG9yZV9hZGQyLXByaXZhdGUuaHRtbApAQCAtMCwwICsxLDM2IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJPYmplY3RTdG9y
ZS5hZGQoKSAtIGFkZCB3aXRoIGFuIG91dC1vZi1saW5lIGtleSA8L3RpdGxlPgorPGxpbmsgcmVs
PSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNv
bSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2Ny
aXB0PgorICAgIHZhciBkYiwKKyAgICAgIHQgPSBhc3luY190ZXN0KCksCisgICAgICBrZXkgPSAx
LAorICAgICAgcmVjb3JkID0geyBwcm9wZXJ0eTogImRhdGEiIH07CisKKyAgICB2YXIgb3Blbl9y
cSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24o
ZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIG9ialN0b3Jl
ID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIik7CisKKyAgICAgICAgb2JqU3RvcmUuYWRk
KHJlY29yZCwga2V5KTsKKyAgICB9OworCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlv
bihlKSB7CisgICAgICAgIHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIpCisgICAgICAg
ICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJzdG9yZSIpCisgICAgICAgICAgICAgICAgICAgLmdl
dChrZXkpOworCisgICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUp
IHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LnByb3BlcnR5LCBy
ZWNvcmQucHJvcGVydHkpOworCisgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgfSk7Cisg
ICAgfTsKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQzLXByaXZh
dGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJv
YmplY3RzdG9yZV9hZGQzLXByaXZhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjg5ZjQ3OGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDMtcHJpdmF0ZS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCT2JqZWN0U3RvcmUuYWRkKCkgLSByZWNv
cmQgd2l0aCBzYW1lIGtleSBhbHJlYWR5IGV4aXN0cyAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkMy1wcml2YXRlLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2Fk
ZDMtcHJpdmF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVlMGQ0
MGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYm9iamVjdHN0b3JlX2FkZDMtcHJpdmF0ZS5odG1sCkBAIC0wLDAgKzEsMzkgQEAKKzwhRE9D
VFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQk9iamVjdFN0b3Jl
LmFkZCgpIC0gcmVjb3JkIHdpdGggc2FtZSBrZXkgYWxyZWFkeSBleGlzdHMgPC90aXRsZT4KKzxs
aW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jv
c29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4K
KworPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAg
cmVjb3JkID0geyBrZXk6IDEsIHByb3BlcnR5OiAiZGF0YSIgfTsKKworICAgIHZhciBvcGVuX3Jx
ID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihl
KSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgb2JqU3RvcmUg
PSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGtleVBhdGg6ICJrZXkiIH0pOworICAg
ICAgICBvYmpTdG9yZS5hZGQocmVjb3JkKTsKKworICAgICAgICB2YXIgcnEgPSBvYmpTdG9yZS5h
ZGQocmVjb3JkKTsKKyAgICAgICAgcnEub25zdWNjZXNzID0gZmFpbCh0LCAic3VjY2VzcyBvbiBh
ZGRpbmcgZHVwbGljYXRlIHJlY29yZCIpCisKKyAgICAgICAgcnEub25lcnJvciA9IHQuc3RlcF9m
dW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQuZXJy
b3IubmFtZSwgIkNvbnN0cmFpbnRFcnJvciIpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhy
cS5lcnJvci5uYW1lLCAiQ29uc3RyYWludEVycm9yIik7CisgICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKGUudHlwZSwgImVycm9yIik7CisKKyAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsK
KyAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7CisgICAgICAgIH0pOworICAgIH07CisK
KyAgICAvLyBEZWZlciBkb25lLCBnaXZpbmcgcnEub25zdWNjZXNzIGEgY2hhbmNlIHRvIHJ1bgor
ICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICB0LmRvbmUoKTsK
KyAgICB9Cis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkNC1wcml2
YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
b2JqZWN0c3RvcmVfYWRkNC1wcml2YXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi42MzJhMDlhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQ0LXByaXZhdGUtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQk9iamVjdFN0b3JlLmFkZCgpIC0gYWRk
IHdoZXJlIGFuIGluZGV4IGhhcyB1bmlxdWU6dHJ1ZSBzcGVjaWZpZWQgIAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDQt
cHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmpl
Y3RzdG9yZV9hZGQ0LXByaXZhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi44MjM0ZWI3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQ0LXByaXZhdGUuaHRtbApAQCAtMCwwICsxLDQw
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJP
YmplY3RTdG9yZS5hZGQoKSAtIGFkZCB3aGVyZSBhbiBpbmRleCBoYXMgdW5pcXVlOnRydWUgc3Bl
Y2lmaWVkIDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJl
Zj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3Vw
cG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgdCA9IGFz
eW5jX3Rlc3QoKSwKKyAgICAgIHJlY29yZCA9IHsga2V5OiAxLCBwcm9wZXJ0eTogImRhdGEiIH07
CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRl
bmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAg
ICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBhdXRv
SW5jcmVtZW50OiB0cnVlIH0pOworICAgICAgICBvYmpTdG9yZS5jcmVhdGVJbmRleCgiaTEiLCAi
cHJvcGVydHkiLCB7IHVuaXF1ZTogdHJ1ZSB9KTsKKyAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29y
ZCk7CisKKyAgICAgICAgdmFyIHJxID0gb2JqU3RvcmUuYWRkKHJlY29yZCk7CisgICAgICAgIHJx
Lm9uc3VjY2VzcyA9IGZhaWwodCwgInN1Y2Nlc3Mgb24gYWRkaW5nIGR1cGxpY2F0ZSBpbmRleGVk
IHJlY29yZCIpCisKKyAgICAgICAgcnEub25lcnJvciA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUp
IHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMocnEuZXJyb3IubmFtZSwgIkNvbnN0cmFpbnRF
cnJvciIpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5lcnJvci5uYW1lLCAi
Q29uc3RyYWludEVycm9yIik7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudHlwZSwgImVy
cm9yIik7CisKKyAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKKyAgICAgICAgICAgIGUu
c3RvcFByb3BhZ2F0aW9uKCk7CisgICAgICAgIH0pOworICAgIH07CisKKyAgICAvLyBEZWZlciBk
b25lLCBnaXZpbmcgYSBzcHVyaW91cyBycS5vbnN1Y2Nlc3MgYSBjaGFuY2UgdG8gcnVuCisgICAg
b3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHQuZG9uZSgpOworICAg
IH0KKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQ1LXByaXZhdGUt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmpl
Y3RzdG9yZV9hZGQ1LXByaXZhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjdmNDc3ODcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDUtcHJpdmF0ZS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCT2JqZWN0U3RvcmUuYWRkKCkgLSBvYmplY3Qg
c3RvcmUncyBrZXkgcGF0aCBpcyBhbiBvYmplY3QgYXR0cmlidXRlICAKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQ1LXBy
aXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0
c3RvcmVfYWRkNS1wcml2YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uMDU1ZTIxNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkNS1wcml2YXRlLmh0bWwKQEAgLTAsMCArMSwzNCBA
QAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCT2Jq
ZWN0U3RvcmUuYWRkKCkgLSBvYmplY3Qgc3RvcmUncyBrZXkgcGF0aCBpcyBhbiBvYmplY3QgYXR0
cmlidXRlIDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJl
Zj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3Vw
cG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgdCA9IGFz
eW5jX3Rlc3QoKSwKKyAgICAgIHJlY29yZCA9IHsgdGVzdDogeyBvYmo6IHsga2V5OiAxIH0gfSwg
cHJvcGVydHk6ICJkYXRhIiB9OworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAg
ICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBl
LnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0
b3JlKCJzdG9yZSIsIHsga2V5UGF0aDogInRlc3Qub2JqLmtleSIgfSk7CisgICAgICAgIG9ialN0
b3JlLmFkZChyZWNvcmQpOworICAgIH07CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0
aW9uKGUpIHsKKyAgICAgICAgdmFyIHJxID0gZGIudHJhbnNhY3Rpb24oInN0b3JlIikKKyAgICAg
ICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInN0b3JlIikKKyAgICAgICAgICAgICAgICAgICAu
Z2V0KHJlY29yZC50ZXN0Lm9iai5rZXkpOworCisgICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3Rl
cF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQu
cmVzdWx0LnByb3BlcnR5LCByZWNvcmQucHJvcGVydHkpOworCisgICAgICAgICAgICB0LmRvbmUo
KTsKKyAgICAgICAgfSk7CisgICAgfTsKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmpl
Y3RzdG9yZV9hZGQ2LXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQ2LXByaXZhdGUtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNkMDU2NDMKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2Fk
ZDYtcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCT2JqZWN0
U3RvcmUuYWRkKCkgLSBhdXRvSW5jcmVtZW50IGFuZCBpbmxpbmUga2V5cyAgCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRk
Ni1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9i
amVjdHN0b3JlX2FkZDYtcHJpdmF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLmYxMjNmZjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDYtcHJpdmF0ZS5odG1sCkBAIC0wLDAgKzEs
NDcgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklE
Qk9iamVjdFN0b3JlLmFkZCgpIC0gYXV0b0luY3JlbWVudCBhbmQgaW5saW5lIGtleXMgPC90aXRs
ZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3
Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3Nj
cmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICB0ID0gYXN5bmNfdGVzdCgpLAor
ICAgICAgcmVjb3JkID0geyBwcm9wZXJ0eTogImRhdGEiIH0sCisgICAgICBleHBlY3RlZF9rZXlz
ID0gWyAxLCAyLCAzLCA0IF07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAg
IG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUu
dGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3Rv
cmUoInN0b3JlIiwgeyBrZXlQYXRoOiAia2V5IiwgYXV0b0luY3JlbWVudDogdHJ1ZSB9KTsKKwor
ICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3JkKTsKKyAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29y
ZCk7CisgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmQpOworICAgICAgICBvYmpTdG9yZS5hZGQo
cmVjb3JkKTsKKyAgICB9OworCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7
CisgICAgICAgIHZhciBhY3R1YWxfa2V5cyA9IFtdLAorICAgICAgICAgIHJxID0gZGIudHJhbnNh
Y3Rpb24oInN0b3JlIikKKyAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJzdG9yZSIpCisg
ICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7CisKKyAgICAgICAgcnEub25zdWNjZXNzID0g
dC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFy
Z2V0LnJlc3VsdDsKKworICAgICAgICAgICAgaWYgKGN1cnNvcikgeworICAgICAgICAgICAgICAg
IGFjdHVhbF9rZXlzLnB1c2goY3Vyc29yLnZhbHVlLmtleSk7CisgICAgICAgICAgICAgICAgY3Vy
c29yLmNvbnRpbnVlKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAg
ICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGFjdHVhbF9rZXlzLCBleHBlY3RlZF9rZXlz
KTsKKyAgICAgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7
CisgICAgfTsKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQ3LXBy
aXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJvYmplY3RzdG9yZV9hZGQ3LXByaXZhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjg3MzQ1MTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDctcHJpdmF0ZS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCT2JqZWN0U3RvcmUuYWRkKCkgLSBh
dXRvSW5jcmVtZW50IGFuZCBvdXQtb2YtbGluZSBrZXlzICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQ3LXByaXZhdGUu
aHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVf
YWRkNy1wcml2YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWUx
NDU1YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRib2JqZWN0c3RvcmVfYWRkNy1wcml2YXRlLmh0bWwKQEAgLTAsMCArMSw0NyBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCT2JqZWN0U3Rv
cmUuYWRkKCkgLSBhdXRvSW5jcmVtZW50IGFuZCBvdXQtb2YtbGluZSBrZXlzIDwvdGl0bGU+Cis8
bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNy
b3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+
CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAg
IHJlY29yZCA9IHsgcHJvcGVydHk6ICJkYXRhIiB9LAorICAgICAgZXhwZWN0ZWRfa2V5cyA9IFsg
MSwgMiwgMywgNCBdOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVu
X3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdl
dC5yZXN1bHQ7CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJz
dG9yZSIsIHsgYXV0b0luY3JlbWVudDogdHJ1ZSB9KTsKKworICAgICAgICBvYmpTdG9yZS5hZGQo
cmVjb3JkKTsKKyAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZCk7CisgICAgICAgIG9ialN0b3Jl
LmFkZChyZWNvcmQpOworICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3JkKTsKKyAgICB9OworCisg
ICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBhY3R1YWxf
a2V5cyA9IFtdLAorICAgICAgICAgIHJxID0gZGIudHJhbnNhY3Rpb24oInN0b3JlIikKKyAgICAg
ICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJzdG9yZSIpCisgICAgICAgICAgICAgICAgIC5vcGVu
Q3Vyc29yKCk7CisKKyAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24o
ZSkgeworICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAg
ICAgICAgaWYgKGN1cnNvcikgeworICAgICAgICAgICAgICAgIGFjdHVhbF9rZXlzLnB1c2goY3Vy
c29yLmtleSk7CisgICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1
YWxzKGFjdHVhbF9rZXlzLCBleHBlY3RlZF9rZXlzKTsKKyAgICAgICAgICAgICAgICB0LmRvbmUo
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgfTsKKzwvc2NyaXB0PgorCis8ZGl2
IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQ4LXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQ4LXByaXZhdGUt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkzMzlmNDYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
Ym9iamVjdHN0b3JlX2FkZDgtcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisK
K1BBU1MgSURCT2JqZWN0U3RvcmUuYWRkKCkgLSBvYmplY3Qgc3RvcmUgaGFzIGF1dG9JbmNyZW1l
bnQ6dHJ1ZSBhbmQgdGhlIGtleSBwYXRoIGlzIGFuIG9iamVjdCBhdHRyaWJ1dGUgIAorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3Jl
X2FkZDgtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJvYmplY3RzdG9yZV9hZGQ4LXByaXZhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi5lYzQ2N2I5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQ4LXByaXZhdGUuaHRtbApAQCAtMCww
ICsxLDQ3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRs
ZT5JREJPYmplY3RTdG9yZS5hZGQoKSAtIG9iamVjdCBzdG9yZSBoYXMgYXV0b0luY3JlbWVudDp0
cnVlIGFuZCB0aGUga2V5IHBhdGggaXMgYW4gb2JqZWN0IGF0dHJpYnV0ZSA8L3RpdGxlPgorPGxp
bmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9z
b2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0Pgor
Cis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgIHQgPSBhc3luY190ZXN0KCksCisgICAgICBy
ZWNvcmQgPSB7IHByb3BlcnR5OiAiZGF0YSIgfSwKKyAgICAgIGV4cGVjdGVkX2tleXMgPSBbIDEs
IDIsIDMsIDQgXTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9y
cS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQu
cmVzdWx0OworICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3Rv
cmUiLCB7IGtleVBhdGg6ICJ0ZXN0Lm9iai5rZXkiLCBhdXRvSW5jcmVtZW50OiB0cnVlIH0pOwor
CisgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmQpOworICAgICAgICBvYmpTdG9yZS5hZGQocmVj
b3JkKTsKKyAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZCk7CisgICAgICAgIG9ialN0b3JlLmFk
ZChyZWNvcmQpOworICAgIH07CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUp
IHsKKyAgICAgICAgdmFyIGFjdHVhbF9rZXlzID0gW10sCisgICAgICAgICAgcnEgPSBkYi50cmFu
c2FjdGlvbigic3RvcmUiKQorICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInN0b3JlIikK
KyAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IoKTsKKworICAgICAgICBycS5vbnN1Y2Nlc3Mg
PSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50
YXJnZXQucmVzdWx0OworCisgICAgICAgICAgICBpZiAoY3Vyc29yKSB7CisgICAgICAgICAgICAg
ICAgYWN0dWFsX2tleXMucHVzaChjdXJzb3IudmFsdWUudGVzdC5vYmoua2V5KTsKKyAgICAgICAg
ICAgICAgICBjdXJzb3IuY29udGludWUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVs
c2UgeworICAgICAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoYWN0dWFsX2tleXMsIGV4
cGVjdGVkX2tleXMpOworICAgICAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICAgICAgfQor
ICAgICAgICB9KTsKKyAgICB9OworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0
b3JlX2FkZDktcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDktcHJpdmF0ZS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjFlZWViNAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkOS1w
cml2YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJPYmplY3RTdG9y
ZS5hZGQoKSAtIEF0dGVtcHQgdG8gYWRkIGEgcmVjb3JkIHRoYXQgZG9lcyBub3QgbWVldCB0aGUg
Y29uc3RyYWludHMgb2YgYW4gb2JqZWN0IHN0b3JlJ3MgaW5saW5lIGtleSByZXF1aXJlbWVudHMg
IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9i
amVjdHN0b3JlX2FkZDktcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQ5LXByaXZhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5jOTMwNGEwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQ5LXByaXZhdGUuaHRt
bApAQCAtMCwwICsxLDI3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04
Ij4KKzx0aXRsZT5JREJPYmplY3RTdG9yZS5hZGQoKSAtIEF0dGVtcHQgdG8gYWRkIGEgcmVjb3Jk
IHRoYXQgZG9lcyBub3QgbWVldCB0aGUgY29uc3RyYWludHMgb2YgYW4gb2JqZWN0IHN0b3JlJ3Mg
aW5saW5lIGtleSByZXF1aXJlbWVudHMgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRs
ZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIg
dCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAgIHJlY29yZCA9IHsga2V5OiAxLCBwcm9wZXJ0eTogImRh
dGEiIH07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251
cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgcnEsCisgICAgICAgICAg
ZGIgPSBlLnRhcmdldC5yZXN1bHQsCisgICAgICAgICAgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmpl
Y3RTdG9yZSgic3RvcmUiLCB7IGtleVBhdGg6ICJrZXkiIH0pOworCisgICAgICAgIGFzc2VydF90
aHJvd3MoIkRhdGFFcnJvciIsCisgICAgICAgICAgICBmdW5jdGlvbigpIHsgcnEgPSBvYmpTdG9y
ZS5hZGQocmVjb3JkLCAxKTsgfSk7CisKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhycSwgdW5kZWZp
bmVkKTsKKyAgICAgICAgdC5kb25lKCk7CisgICAgfTsKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJs
b2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJvYmplY3RzdG9yZV9jbGVhci1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY2xlYXItcHJpdmF0ZS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDk0ZTg3NwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2Jq
ZWN0c3RvcmVfY2xlYXItcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BB
U1MgSURCT2JqZWN0U3RvcmUuY2xlYXIoKSAtIFZlcmlmeSBjbGVhciByZW1vdmVzIGFsbCByZWNv
cmRzICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJvYmplY3RzdG9yZV9jbGVhci1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NsZWFyLXByaXZhdGUuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZTkxODBhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jbGVhci1wcml2
YXRlLmh0bWwKQEAgLTAsMCArMSw0MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0
PSJ1dGYtOCI+Cis8dGl0bGU+SURCT2JqZWN0U3RvcmUuY2xlYXIoKSAtIFZlcmlmeSBjbGVhciBy
ZW1vdmVzIGFsbCByZWNvcmRzIDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1p
Y3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiLAor
ICAgICAgdCA9IGFzeW5jX3Rlc3QoKTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7
CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRi
ID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmpl
Y3RTdG9yZSgic3RvcmUiLCB7IGF1dG9JbmNyZW1lbnQ6IHRydWUgfSk7CisKKyAgICAgICAgb2Jq
U3RvcmUuYWRkKHsgcHJvcGVydHk6ICJkYXRhIiB9KTsKKyAgICAgICAgb2JqU3RvcmUuYWRkKHsg
c29tZXRoaW5nX2RpZmZlcmVudDogIll1cCwgdG90YWxseSBkaWZmZXJlbnQiIH0pOworICAgICAg
ICBvYmpTdG9yZS5hZGQoMTIzNCk7CisgICAgICAgIG9ialN0b3JlLmFkZChbMSwgMiwgMTIzNF0p
OworCisgICAgICAgIG9ialN0b3JlLmNsZWFyKCkub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVu
Y3Rpb24oZSkgeworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQsIHVu
ZGVmaW5lZCk7CisgICAgICAgIH0pOworICAgIH07CisKKworICAgIG9wZW5fcnEub25zdWNjZXNz
ID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgcnEgPSBkYi50cmFuc2FjdGlvbigic3RvcmUi
KQorICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgic3RvcmUiKQorICAgICAgICAgICAg
ICAgICAgIC5vcGVuQ3Vyc29yKCk7CisKKyAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1
bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1
bHQsIG51bGwsICdjdXJzb3InKTsKKyAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICB9KTsK
KyAgICB9OworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NsZWFyMi1w
cml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRib2JqZWN0c3RvcmVfY2xlYXIyLXByaXZhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI4OGMwMjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NsZWFyMi1wcml2YXRl
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJPYmplY3RTdG9yZS5jbGVh
cigpIC0gY2xlYXIgcmVtb3ZlcyBhbGwgcmVjb3JkcyBmcm9tIGFuIGluZGV4ICAKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9j
bGVhcjItcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJvYmplY3RzdG9yZV9jbGVhcjItcHJpdmF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjVlMTBjYmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NsZWFyMi1wcml2YXRlLmh0bWwKQEAg
LTAsMCArMSw0MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8
dGl0bGU+SURCT2JqZWN0U3RvcmUuY2xlYXIoKSAtIGNsZWFyIHJlbW92ZXMgYWxsIHJlY29yZHMg
ZnJvbSBhbiBpbmRleCA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3Nv
ZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAg
IHQgPSBhc3luY190ZXN0KCk7CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAg
IG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUu
dGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3Rv
cmUoInN0b3JlIiwgeyBhdXRvSW5jcmVtZW50OiB0cnVlIH0pOworICAgICAgICBvYmpTdG9yZS5j
cmVhdGVJbmRleCgiaW5kZXgiLCAiaW5kZXhlZFByb3BlcnR5Iik7CisKKyAgICAgICAgb2JqU3Rv
cmUuYWRkKHsgaW5kZXhlZFByb3BlcnR5OiAiZGF0YSIgfSk7CisgICAgICAgIG9ialN0b3JlLmFk
ZCh7IGluZGV4ZWRQcm9wZXJ0eTogInlvLCBtYW4iLCBzb21ldGhpbmdfZGlmZmVyZW50OiAiWXVw
LCB0b3RhbGx5IGRpZmZlcmVudCIgfSk7CisgICAgICAgIG9ialN0b3JlLmFkZCh7IGluZGV4ZWRQ
cm9wZXJ0eTogMTIzNCB9KTsKKyAgICAgICAgb2JqU3RvcmUuYWRkKHsgaW5kZXhlZFByb3BlcnR5
OiBbMSwgMiwgMTIzNF0gfSk7CisgICAgICAgIG9ialN0b3JlLmFkZCgxMjM0KTsKKworICAgICAg
ICBvYmpTdG9yZS5jbGVhcigpLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsK
KyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LCB1bmRlZmluZWQpOwor
ICAgICAgICB9KTsKKyAgICB9OworCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihl
KSB7CisgICAgICAgIHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIpCisgICAgICAgICAg
ICAgICAgICAgLm9iamVjdFN0b3JlKCJzdG9yZSIpCisgICAgICAgICAgICAgICAgICAgLmluZGV4
KCJpbmRleCIpCisgICAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IoKTsKKworICAgICAgICBy
cS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdCwgbnVsbCwgJ2N1cnNvcicpOworICAgICAgICAgICAg
dC5kb25lKCk7CisgICAgICAgIH0pOworICAgIH07Cis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9n
Ij48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRib2JqZWN0c3RvcmVfY2xlYXIzLXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jbGVhcjMtcHJpdmF0ZS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTlkMzBmOAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2Jq
ZWN0c3RvcmVfY2xlYXIzLXByaXZhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQ
QVNTIElEQk9iamVjdFN0b3JlLmNsZWFyKCkgLSBJZiB0aGUgdHJhbnNhY3Rpb24gdGhpcyBJREJP
YmplY3RTdG9yZSBiZWxvbmdzIHRvIGhhcyBpdHMgbW9kZSBzZXQgdG8gcmVhZG9ubHksIHRocm93
IFJlYWRPbmx5RXJyb3IgIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NsZWFyMy1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NsZWFyMy1wcml2YXRlLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDU1MDlhYwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3Rv
cmVfY2xlYXIzLXByaXZhdGUuaHRtbApAQCAtMCwwICsxLDM2IEBACis8IURPQ1RZUEUgaHRtbD4K
KzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJPYmplY3RTdG9yZS5jbGVhcigpIC0g
SWYgdGhlIHRyYW5zYWN0aW9uIHRoaXMgSURCT2JqZWN0U3RvcmUgYmVsb25ncyB0byBoYXMgaXRz
IG1vZGUgc2V0IHRvIHJlYWRvbmx5LCB0aHJvdyBSZWFkT25seUVycm9yIDwvdGl0bGU+Cis8bGlu
ayByZWw9ImF1dGhvciIgdGl0bGU9IkludGVsIiBocmVmPSJodHRwOi8vd3d3LmludGVsLmNvbSI+
Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERC
L3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI3dpZGwtSURCT2JqZWN0U3RvcmUtY2xlYXItSURC
UmVxdWVzdCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0Pgor
PGRpdiBpZD0ibG9nIj48L2Rpdj4KKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgICB0ID0g
YXN5bmNfdGVzdCgpLAorICAgICAgICByZWNvcmRzID0gW3sgcEtleTogInByaW1hcnlLZXlfMCJ9
LAorICAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMSJ9XTsKKworICAgIHZh
ciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBm
dW5jdGlvbiAoZXZlbnQpIHsKKyAgICAgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0OworICAg
ICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7a2V5UGF0
aDoicEtleSJ9KTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsg
aSsrKSB7CisgICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7CisgICAgICAgIH0K
KyAgICB9CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uIChldmVudCkgeworICAg
ICAgICB2YXIgdHhuID0gZGIudHJhbnNhY3Rpb24oInN0b3JlIik7CisgICAgICAgIHZhciBvc3Rv
cmUgPSB0eG4ub2JqZWN0U3RvcmUoInN0b3JlIik7CisgICAgICAgIHQuc3RlcChmdW5jdGlvbigp
eworICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygiUmVhZE9ubHlFcnJvciIsIGZ1bmN0aW9uKCl7
CisgICAgICAgICAgICAgICAgb3N0b3JlLmNsZWFyKCk7CisgICAgICAgICAgICB9KTsKKyAgICAg
ICAgfSk7CisgICAgICAgIHQuZG9uZSgpOworICAgIH0KKzwvc2NyaXB0PgorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NsZWFy
NC1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRib2JqZWN0c3RvcmVfY2xlYXI0LXByaXZhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFlNTZmZjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NsZWFyNC1wcml2
YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJPYmplY3RTdG9yZS5j
bGVhcigpIC0gSWYgdGhlIG9iamVjdCBzdG9yZSBoYXMgYmVlbiBkZWxldGVkLCB0aGUgaW1wbGVt
ZW50YXRpb24gbXVzdCB0aHJvdyBhIERPTUV4Y2VwdGlvbiBvZiB0eXBlIEludmFsaWRTdGF0ZUVy
cm9yICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJvYmplY3RzdG9yZV9jbGVhcjQtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jbGVhcjQtcHJpdmF0ZS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI3NTI1MmIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NsZWFyNC1w
cml2YXRlLmh0bWwKQEAgLTAsMCArMSwzMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFy
c2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCT2JqZWN0U3RvcmUuY2xlYXIoKSAtIElmIHRoZSBvYmpl
Y3Qgc3RvcmUgaGFzIGJlZW4gZGVsZXRlZCwgdGhlIGltcGxlbWVudGF0aW9uIG11c3QgdGhyb3cg
YSBET01FeGNlcHRpb24gb2YgdHlwZSBJbnZhbGlkU3RhdGVFcnJvciA8L3RpdGxlPgorPGxpbmsg
cmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20iPgor
PGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9y
YXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQk9iamVjdFN0b3JlLWNsZWFyLUlEQlJl
cXVlc3QiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKzxk
aXYgaWQ9ImxvZyI+PC9kaXY+Cis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgICAgb3N0b3Jl
LAorICAgICAgICB0ID0gYXN5bmNfdGVzdCgpOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVk
Yih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uIChldmVudCkgewor
ICAgICAgICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgICAgIG9zdG9yZSA9IGRiLmNy
ZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHtrZXlQYXRoOiJwS2V5In0pOworICAgICAgICBkYi5k
ZWxldGVPYmplY3RTdG9yZSgic3RvcmUiKTsKKyAgICB9CisKKyAgICBvcGVuX3JxLm9uc3VjY2Vz
cyA9IGZ1bmN0aW9uIChldmVudCkgeworICAgICAgICB0LnN0ZXAoZnVuY3Rpb24oKXsKKyAgICAg
ICAgICAgIGFzc2VydF90aHJvd3MoIkludmFsaWRTdGF0ZUVycm9yIiwgZnVuY3Rpb24oKXsKKyAg
ICAgICAgICAgICAgICBvc3RvcmUuY2xlYXIoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9
KTsKKyAgICAgICAgdC5kb25lKCk7CisgICAgfQorPC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY291bnQtcHJp
dmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
Ym9iamVjdHN0b3JlX2NvdW50LXByaXZhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjU0MzQ0YzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NvdW50LXByaXZhdGUtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQk9iamVjdFN0b3JlLmNvdW50KCkg
LSByZXR1cm5zIHRoZSBudW1iZXIgb2YgcmVjb3JkcyBpbiB0aGUgb2JqZWN0IHN0b3JlICAKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3Rz
dG9yZV9jb3VudC1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYm9iamVjdHN0b3JlX2NvdW50LXByaXZhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi4xMDFmMDZhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jb3VudC1wcml2YXRlLmh0bWwK
QEAgLTAsMCArMSwzNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04Pgor
PHRpdGxlPklEQk9iamVjdFN0b3JlLmNvdW50KCkgLSByZXR1cm5zIHRoZSBudW1iZXIgb2YgcmVj
b3JkcyBpbiB0aGUgb2JqZWN0IHN0b3JlIDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0
bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBk
YiwgdCA9IGFzeW5jX3Rlc3QoKTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisK
KyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIg
PSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0
b3JlKCJzdG9yZSIpOworCisgICAgICAgIGZvcih2YXIgaSA9IDA7IGkgPCAxMDsgaSsrKSB7Cisg
ICAgICAgICAgICBzdG9yZS5hZGQoeyBkYXRhOiAiZGF0YSIgKyBpIH0sIGkpOworICAgICAgICB9
CisgICAgfQorCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAg
IHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIpCisgICAgICAgICAgICAgICAgICAgLm9i
amVjdFN0b3JlKCJzdG9yZSIpCisgICAgICAgICAgICAgICAgICAgLmNvdW50KCk7CisKKyAgICAg
ICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQsIDEwKTsKKyAgICAgICAgICAgIHQuZG9uZSgp
OworICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKworPGRpdiBpZD1sb2c+PC9kaXY+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0
b3JlX2NvdW50Mi1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY291bnQyLXByaXZhdGUtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNiZmEzMjZhCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9j
b3VudDItcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCT2Jq
ZWN0U3RvcmUuY291bnQoKSAtIHJldHVybnMgdGhlIG51bWJlciBvZiByZWNvcmRzIHRoYXQgaGF2
ZSBrZXlzIHdpdGhpbiB0aGUgcmFuZ2UgIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NvdW50Mi1wcml2YXRlLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NvdW50Mi1w
cml2YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWM2MmNiMwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
b2JqZWN0c3RvcmVfY291bnQyLXByaXZhdGUuaHRtbApAQCAtMCwwICsxLDM1IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8dGl0bGU+SURCT2JqZWN0U3RvcmUuY291
bnQoKSAtIHJldHVybnMgdGhlIG51bWJlciBvZiByZWNvcmRzIHRoYXQgaGF2ZSBrZXlzIHdpdGhp
biB0aGUgcmFuZ2UgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0
IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PXN1cHBvcnQuanM+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiLCB0ID0gYXN5bmNf
dGVzdCgpOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKworICAgIG9wZW5fcnEu
b251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJl
c3VsdDsKKyAgICAgICAgdmFyIHN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIik7
CisKKyAgICAgICAgZm9yKHZhciBpID0gMDsgaSA8IDEwOyBpKyspIHsKKyAgICAgICAgICAgIHN0
b3JlLmFkZCh7IGRhdGE6ICJkYXRhIiArIGkgfSwgaSk7CisgICAgICAgIH0KKyAgICB9CisKKyAg
ICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdmFyIHJxID0gZGIu
dHJhbnNhY3Rpb24oInN0b3JlIikKKyAgICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInN0
b3JlIikKKyAgICAgICAgICAgICAgICAgICAuY291bnQoSURCS2V5UmFuZ2UuYm91bmQoNSwyMCkp
OworCisgICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAg
ICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LCA1KTsKKyAgICAgICAgICAg
IHQuZG9uZSgpOworICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKworPGRpdiBpZD1sb2c+
PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
Ym9iamVjdHN0b3JlX2NvdW50My1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY291bnQzLXByaXZhdGUtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY0MmE0NTkKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVj
dHN0b3JlX2NvdW50My1wcml2YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFT
UyBJREJPYmplY3RTdG9yZS5jb3VudCgpIC0gcmV0dXJucyB0aGUgbnVtYmVyIG9mIHJlY29yZHMg
dGhhdCBoYXZlIGtleXMgd2l0aCB0aGUga2V5IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NvdW50My1wcml2YXRlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NvdW50
My1wcml2YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzM5MTJi
NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRib2JqZWN0c3RvcmVfY291bnQzLXByaXZhdGUuaHRtbApAQCAtMCwwICsxLDMxIEBACis8IURP
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
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY291bnQ0
LXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJvYmplY3RzdG9yZV9jb3VudDQtcHJpdmF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2E0NDg1MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY291bnQ0LXByaXZh
dGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQk9iamVjdFN0b3JlLmNv
dW50KCkgLSBJZiB0aGUgb2JqZWN0IHN0b3JlIGhhcyBiZWVuIGRlbGV0ZWQsIHRoZSBpbXBsZW1l
bnRhdGlvbiBtdXN0IHRocm93IGEgRE9NRXhjZXB0aW9uIG9mIHR5cGUgSW52YWxpZFN0YXRlRXJy
b3IgIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
Ym9iamVjdHN0b3JlX2NvdW50NC1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NvdW50NC1wcml2YXRlLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTFkYThhYwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY291bnQ0LXBy
aXZhdGUuaHRtbApAQCAtMCwwICsxLDMxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJz
ZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJPYmplY3RTdG9yZS5jb3VudCgpIC0gSWYgdGhlIG9iamVj
dCBzdG9yZSBoYXMgYmVlbiBkZWxldGVkLCB0aGUgaW1wbGVtZW50YXRpb24gbXVzdCB0aHJvdyBh
IERPTUV4Y2VwdGlvbiBvZiB0eXBlIEludmFsaWRTdGF0ZUVycm9yIDwvdGl0bGU+Cis8bGluayBy
ZWw9ImF1dGhvciIgdGl0bGU9IkludGVsIiBocmVmPSJodHRwOi8vd3d3LmludGVsLmNvbSI+Cis8
bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jh
dy1maWxlL3RpcC9PdmVydmlldy5odG1sI3dpZGwtSURCT2JqZWN0U3RvcmUtY291bnQtSURCUmVx
dWVzdC1hbnkta2V5Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3Jp
cHQ+Cis8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICAg
IG9zdG9yZSwKKyAgICAgICAgdCA9IGFzeW5jX3Rlc3QoKTsKKworICAgIHZhciBvcGVuX3JxID0g
Y3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbiAoZXZl
bnQpIHsKKyAgICAgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgICAgICBvc3RvcmUg
PSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7a2V5UGF0aDoicEtleSJ9KTsKKyAgICAg
ICAgZGIuZGVsZXRlT2JqZWN0U3RvcmUoInN0b3JlIik7CisgICAgfQorCisgICAgb3Blbl9ycS5v
bnN1Y2Nlc3MgPSBmdW5jdGlvbiAoZXZlbnQpIHsKKyAgICAgICAgdC5zdGVwKGZ1bmN0aW9uKCl7
CisgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCJJbnZhbGlkU3RhdGVFcnJvciIsIGZ1bmN0aW9u
KCl7CisgICAgICAgICAgICAgICAgb3N0b3JlLmNvdW50KCk7CisgICAgICAgICAgICB9KTsKKyAg
ICAgICAgfSk7CisgICAgICAgIHQuZG9uZSgpOworICAgIH0KKzwvc2NyaXB0PgorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2Ny
ZWF0ZUluZGV4LXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleC1wcml2YXRlLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZmJlNDIwCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9y
ZV9jcmVhdGVJbmRleC1wcml2YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFT
UyBJREJPYmplY3RTdG9yZS5jcmVhdGVJbmRleCgpIC0gcmV0dXJucyBhbiBJREJJbmRleCBhbmQg
dGhlIHByb3BlcnRpZXMgYXJlIHNldCBjb3JyZWN0bHkgCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgtcHJp
dmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3Rz
dG9yZV9jcmVhdGVJbmRleC1wcml2YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uNTEwMTE5NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgtcHJpdmF0ZS5odG1sCkBA
IC0wLDAgKzEsMzAgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgor
PHRpdGxlPklEQk9iamVjdFN0b3JlLmNyZWF0ZUluZGV4KCkgLSByZXR1cm5zIGFuIElEQkluZGV4
IGFuZCB0aGUgcHJvcGVydGllcyBhcmUgc2V0IGNvcnJlY3RseTwvdGl0bGU+Cis8bGluayByZWw9
ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29t
Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3Jp
cHQ+CisgICAgdmFyIGRiLAorICAgICAgdCA9IGFzeW5jX3Rlc3QoKTsKKworICAgIHZhciBvcGVu
X3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlv
bihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgb2JqU3Rv
cmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiKTsKKyAgICAgICAgdmFyIGluZGV4ID0g
b2JqU3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImluZGV4ZWRQcm9wZXJ0eSIsIHsgdW5pcXVl
OiB0cnVlIH0pOworCisgICAgICAgIGFzc2VydF90cnVlKGluZGV4IGluc3RhbmNlb2YgSURCSW5k
ZXgsICJJREJJbmRleCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKGluZGV4Lm5hbWUsICJpbmRl
eCIsICJuYW1lIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoaW5kZXgub2JqZWN0U3RvcmUsIG9i
alN0b3JlLCAib2JqZWN0U3RvcmUiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhpbmRleC5rZXlQ
YXRoLCAiaW5kZXhlZFByb3BlcnR5IiwgImtleVBhdGgiKTsKKyAgICAgICAgYXNzZXJ0X3RydWUo
aW5kZXgudW5pcXVlLCAidW5pcXVlIik7CisgICAgICAgIGFzc2VydF9mYWxzZShpbmRleC5tdWx0
aUVudHJ5LCAibXVsdGlFbnRyeSIpOworCisgICAgICAgIHQuZG9uZSgpOworICAgIH07Cis8L3Nj
cmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgxMC1wcml2YXRl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2Jq
ZWN0c3RvcmVfY3JlYXRlSW5kZXgxMC1wcml2YXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYTFhYzUzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDEw
LXByaXZhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkRhdGFiYXNl
LmNyZWF0ZUluZGV4KCkgLSBJZiBhbiBpbmRleCB3aXRoIHRoZSBuYW1lIG5hbWUgYWxyZWFkeSBl
eGlzdHMgaW4gdGhpcyBvYmplY3Qgc3RvcmUsIHRoZSBpbXBsZW1lbnRhdGlvbiBtdXN0IHRocm93
IGEgRE9NRXhjZXB0aW9uIG9mIHR5cGUgQ29uc3RyYWludEVycm9yICAKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJ
bmRleDEwLXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgxMC1wcml2YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uZTYwZTExOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgxMC1w
cml2YXRlLmh0bWwKQEAgLTAsMCArMSwyNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFy
c2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCRGF0YWJhc2UuY3JlYXRlSW5kZXgoKSAtIElmIGFuIGlu
ZGV4IHdpdGggdGhlIG5hbWUgbmFtZSBhbHJlYWR5IGV4aXN0cyBpbiB0aGlzIG9iamVjdCBzdG9y
ZSwgdGhlIGltcGxlbWVudGF0aW9uIG11c3QgdGhyb3cgYSBET01FeGNlcHRpb24gb2YgdHlwZSBD
b25zdHJhaW50RXJyb3IgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iSW50ZWwi
IGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0
cHM6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwj
d2lkbC1JREJPYmplY3RTdG9yZS1jcmVhdGVJbmRleC1JREJJbmRleC1ET01TdHJpbmctbmFtZS1E
T01TdHJpbmctc2VxdWVuY2UtRE9NU3RyaW5nLS1rZXlQYXRoLUlEQkluZGV4UGFyYW1ldGVycy1v
cHRpb25hbFBhcmFtZXRlcnMiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48
L3NjcmlwdD4KKzxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8c2NyaXB0PgordmFyIHQgPSBhc3luY190
ZXN0KCksCisgICAgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworCitvcGVuX3JxLm9udXBncmFkZW5l
ZWRlZCA9IGZ1bmN0aW9uIChlKSB7CisgICAgdmFyIGRiID0gZS50YXJnZXQucmVzdWx0OworICAg
IHZhciBvc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiKTsKKyAgICBvc3RvcmUu
Y3JlYXRlSW5kZXgoImEiLCAiYSIpOworICAgIGFzc2VydF90aHJvd3MoIkNvbnN0cmFpbnRFcnJv
ciIsIGZ1bmN0aW9uKCl7CisgICAgICAgIG9zdG9yZS5jcmVhdGVJbmRleCgiYSIsICJhIik7Cisg
ICAgfSk7CisgICAgdC5kb25lKCk7Cit9Cis8L3NjcmlwdD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDEx
LXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDExLXByaXZhdGUtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ2YWYxZTIKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0
ZUluZGV4MTEtcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURC
RGF0YWJhc2UuY3JlYXRlSW5kZXgoKSAtIElmIGtleVBhdGggaXMgbm90IGEgdmFsaWQga2V5IHBh
dGgsIHRoZSBpbXBsZW1lbnRhdGlvbiBtdXN0IHRocm93IGEgRE9NRXhjZXB0aW9uIG9mIHR5cGUg
U3ludGF4RXJyb3IgIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4MTEtcHJpdmF0ZS5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDEx
LXByaXZhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNDRkMjQ1
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDExLXByaXZhdGUuaHRtbApAQCAtMCwwICsxLDIzIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJEYXRh
YmFzZS5jcmVhdGVJbmRleCgpIC0gSWYga2V5UGF0aCBpcyBub3QgYSB2YWxpZCBrZXkgcGF0aCwg
dGhlIGltcGxlbWVudGF0aW9uIG11c3QgdGhyb3cgYSBET01FeGNlcHRpb24gb2YgdHlwZSBTeW50
YXhFcnJvciA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0i
aHR0cDovL3d3dy5pbnRlbC5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2R2
Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlE
Qk9iamVjdFN0b3JlLWNyZWF0ZUluZGV4LUlEQkluZGV4LURPTVN0cmluZy1uYW1lLURPTVN0cmlu
Zy1zZXF1ZW5jZS1ET01TdHJpbmctLWtleVBhdGgtSURCSW5kZXhQYXJhbWV0ZXJzLW9wdGlvbmFs
UGFyYW1ldGVycyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0
PgorPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzxzY3JpcHQ+Cit2YXIgdCA9IGFzeW5jX3Rlc3QoKSwK
KyAgICBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisKK29wZW5fcnEub251cGdyYWRlbmVlZGVkID0g
ZnVuY3Rpb24gKGUpIHsKKyAgICB2YXIgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgdmFyIG9z
dG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIpOworICAgIGFzc2VydF90aHJvd3Mo
IlN5bnRheEVycm9yIiwgZnVuY3Rpb24oKXsKKyAgICAgICAgb3N0b3JlLmNyZWF0ZUluZGV4KCJh
YiIsICIuIik7CisgICAgfSk7CisgICAgdC5kb25lKCk7Cit9Cis8L3NjcmlwdD4KKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9j
cmVhdGVJbmRleDEyLXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDEyLXByaXZhdGUtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUyMzI5ZjkKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVj
dHN0b3JlX2NyZWF0ZUluZGV4MTItcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBA
CisKK1BBU1MgSURCRGF0YWJhc2UuY3JlYXRlSW5kZXgoKSAtIElmIHRoZSBvYmplY3Qgc3RvcmUg
aGFzIGJlZW4gZGVsZXRlZCwgdGhlIGltcGxlbWVudGF0aW9uIG11c3QgdGhyb3cgYSBET01FeGNl
cHRpb24gb2YgdHlwZSBJbnZhbGlkU3RhdGVFcnJvciAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgxMi1w
cml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVj
dHN0b3JlX2NyZWF0ZUluZGV4MTItcHJpdmF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjQ4YTZkNmEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4MTItcHJpdmF0ZS5o
dG1sCkBAIC0wLDAgKzEsMzEgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRm
LTgiPgorPHRpdGxlPklEQkRhdGFiYXNlLmNyZWF0ZUluZGV4KCkgLSBJZiB0aGUgb2JqZWN0IHN0
b3JlIGhhcyBiZWVuIGRlbGV0ZWQsIHRoZSBpbXBsZW1lbnRhdGlvbiBtdXN0IHRocm93IGEgRE9N
RXhjZXB0aW9uIG9mIHR5cGUgSW52YWxpZFN0YXRlRXJyb3IgPC90aXRsZT4KKzxsaW5rIHJlbD0i
YXV0aG9yIiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tIj4KKzxsaW5r
IHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZp
bGUvdGlwL092ZXJ2aWV3Lmh0bWwjd2lkbC1JREJPYmplY3RTdG9yZS1jcmVhdGVJbmRleC1JREJJ
bmRleC1ET01TdHJpbmctbmFtZS1ET01TdHJpbmctc2VxdWVuY2UtRE9NU3RyaW5nLS1rZXlQYXRo
LUlEQkluZGV4UGFyYW1ldGVycy1vcHRpb25hbFBhcmFtZXRlcnMiPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKzxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8c2Ny
aXB0PgorICAgIHZhciBkYiwKKyAgICAgICAgb3N0b3JlLAorICAgICAgICB0ID0gYXN5bmNfdGVz
dCgpOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBn
cmFkZW5lZWRlZCA9IGZ1bmN0aW9uIChldmVudCkgeworICAgICAgICBkYiA9IGV2ZW50LnRhcmdl
dC5yZXN1bHQ7CisgICAgICAgIG9zdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIp
OworICAgICAgICBkYi5kZWxldGVPYmplY3RTdG9yZSgic3RvcmUiKTsKKyAgICB9CisKKyAgICBv
cGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uIChldmVudCkgeworICAgICAgICB0LnN0ZXAoZnVu
Y3Rpb24oKXsKKyAgICAgICAgICAgIGFzc2VydF90aHJvd3MoIkludmFsaWRTdGF0ZUVycm9yIiwg
ZnVuY3Rpb24oKXsKKyAgICAgICAgICAgICAgICBvc3RvcmUuY3JlYXRlSW5kZXgoImluZGV4Iiwg
ImluZGV4ZWRQcm9wZXJ0eSIpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgICAg
ICB0LmRvbmUoKTsKKyAgICB9Cis8L3NjcmlwdD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDEzLXByaXZh
dGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJv
YmplY3RzdG9yZV9jcmVhdGVJbmRleDEzLXByaXZhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ3ZmJlNTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4
MTMtcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCRGF0YWJh
c2UuY3JlYXRlSW5kZXgoKSAtIE9wZXJhdGUgb3V0IHZlcnNpb25jaGFuZ2UgdGhyb3cgSW52YWxp
ZFN0YXRlRXJyb3IgIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4MTMtcHJpdmF0ZS5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDEz
LXByaXZhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNTEyMzFj
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDEzLXByaXZhdGUuaHRtbApAQCAtMCwwICsxLDMxIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJEYXRh
YmFzZS5jcmVhdGVJbmRleCgpIC0gT3BlcmF0ZSBvdXQgdmVyc2lvbmNoYW5nZSB0aHJvdyBJbnZh
bGlkU3RhdGVFcnJvciA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIg
aHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRw
czovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3
aWRsLUlEQk9iamVjdFN0b3JlLWNyZWF0ZUluZGV4LUlEQkluZGV4LURPTVN0cmluZy1uYW1lLURP
TVN0cmluZy1zZXF1ZW5jZS1ET01TdHJpbmctLWtleVBhdGgtSURCSW5kZXhQYXJhbWV0ZXJzLW9w
dGlvbmFsUGFyYW1ldGVycyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwv
c2NyaXB0PgorPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAg
ICAgICB0ID0gYXN5bmNfdGVzdCgpOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsK
KyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uIChldmVudCkgeworICAgICAg
ICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgICAgIGRiLmNyZWF0ZU9iamVjdFN0b3Jl
KCJzdG9yZSIpOworICAgIH0KKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24gKGV2
ZW50KSB7CisgICAgICAgIHZhciB0eG4gPSBkYi50cmFuc2FjdGlvbigic3RvcmUiLCAicmVhZHdy
aXRlIik7CisgICAgICAgIG9zdG9yZSA9IHR4bi5vYmplY3RTdG9yZSgic3RvcmUiKTsKKyAgICAg
ICAgdC5zdGVwKGZ1bmN0aW9uKCl7CisgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCJJbnZhbGlk
U3RhdGVFcnJvciIsIGZ1bmN0aW9uKCl7CisgICAgICAgICAgICAgICAgb3N0b3JlLmNyZWF0ZUlu
ZGV4KCJpbmRleCIsICJpbmRleGVkUHJvcGVydHkiKTsKKyAgICAgICAgICAgIH0pOworICAgICAg
ICB9KTsKKyAgICAgICAgdC5kb25lKCk7CisgICAgfQorPC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRl
SW5kZXgyLXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDItcHJpdmF0ZS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDkyZDJhNAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVf
Y3JlYXRlSW5kZXgyLXByaXZhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNT
IElEQk9iamVjdFN0b3JlLmNyZWF0ZUluZGV4KCkgLSBhdHRlbXB0IHRvIGNyZWF0ZSBhbiBpbmRl
eCB0aGF0IHJlcXVpcmVzIHVuaXF1ZSB2YWx1ZXMgb24gYW4gb2JqZWN0IHN0b3JlIGFscmVhZHkg
Y29udGFpbnMgZHVwbGljYXRlcyAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgyLXByaXZhdGUuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRl
SW5kZXgyLXByaXZhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40
OGJlYjQ5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDItcHJpdmF0ZS5odG1sCkBAIC0wLDAgKzEs
NDEgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklE
Qk9iamVjdFN0b3JlLmNyZWF0ZUluZGV4KCkgLSBhdHRlbXB0IHRvIGNyZWF0ZSBhbiBpbmRleCB0
aGF0IHJlcXVpcmVzIHVuaXF1ZSB2YWx1ZXMgb24gYW4gb2JqZWN0IHN0b3JlIGFscmVhZHkgY29u
dGFpbnMgZHVwbGljYXRlcyA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNy
b3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwgYWJv
cnRlZCwKKyAgICAgIHQgPSBhc3luY190ZXN0KCksCisgICAgICByZWNvcmQgPSB7IGluZGV4ZWRQ
cm9wZXJ0eTogImJhciIgfTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAg
b3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50
YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgdHhuID0gZS50YXJnZXQudHJhbnNhY3Rpb24sCisg
ICAgICAgICAgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiKTsKKworICAg
ICAgICBvYmpTdG9yZS5hZGQocmVjb3JkLCAxKTsKKyAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29y
ZCwgMik7CisgICAgICAgIHZhciBpbmRleCA9IG9ialN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIs
ICJpbmRleGVkUHJvcGVydHkiLCB7IHVuaXF1ZTogdHJ1ZSB9KTsKKworICAgICAgICBhc3NlcnRf
dHJ1ZShpbmRleCBpbnN0YW5jZW9mIElEQkluZGV4LCAiSURCSW5kZXgiKTsKKworICAgICAgICBl
LnRhcmdldC50cmFuc2FjdGlvbi5vbmFib3J0ID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewor
ICAgICAgICAgICAgYWJvcnRlZCA9IHRydWU7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUu
dHlwZSwgImFib3J0IiwgImV2ZW50IHR5cGUiKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZGIu
b25hYm9ydCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGFzc2VydF90cnVlKGFib3J0ZWQs
ICJ0cmFuc2FjdGlvbi5hYm9ydCBldmVudCBoYXMgZmlyZWQiKTsKKyAgICAgICAgICAgIHQuZG9u
ZSgpOworICAgICAgICB9OworCisgICAgICAgIGUudGFyZ2V0LnRyYW5zYWN0aW9uLm9uY29tcGxl
dGUgPSBmYWlsKHQsICJnb3QgY29tcGxldGUsIGV4cGVjdGVkIGFib3J0Iik7CisgICAgfTsKKwor
PC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4My11c2Fi
bGUtcmlnaHQtYXdheS1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgzLXVzYWJsZS1yaWdodC1h
d2F5LXByaXZhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjhkZmZiZTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4My11c2FibGUtcmlnaHQtYXdheS1w
cml2YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJPYmplY3RTdG9y
ZS5jcmVhdGVJbmRleCgpIC0gdGhlIGluZGV4IGlzIHVzYWJsZSByaWdodCBhZnRlciBiZWluZyBt
YWRlIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
Ym9iamVjdHN0b3JlX2NyZWF0ZUluZGV4My11c2FibGUtcmlnaHQtYXdheS1wcml2YXRlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0
ZUluZGV4My11c2FibGUtcmlnaHQtYXdheS1wcml2YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uZjk5ZmRiMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgzLXVzYWJs
ZS1yaWdodC1hd2F5LXByaXZhdGUuaHRtbApAQCAtMCwwICsxLDM4IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJPYmplY3RTdG9yZS5jcmVhdGVJ
bmRleCgpIC0gdGhlIGluZGV4IGlzIHVzYWJsZSByaWdodCBhZnRlciBiZWluZyBtYWRlPC90aXRs
ZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0
bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Cis8bWV0YSBuYW1lPXRpbWVvdXQgY29udGVudD1sb25n
PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlw
dD4KKyAgICB2YXIgZGIsIGFib3J0ZWQsCisgICAgICB0ID0gYXN5bmNfdGVzdChkb2N1bWVudC50
aXRsZSwge3RpbWVvdXQ6MTkwMDB9KQorCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsK
KyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIg
PSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZhciB0eG4gPSBlLnRhcmdldC50cmFuc2FjdGlv
biwKKyAgICAgICAgICBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHsg
a2V5UGF0aDogJ2tleScgfSk7CisKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDA7IGkr
KykKKyAgICAgICAgICAgIG9ialN0b3JlLmFkZCh7IGtleTogImtleV8iICsgaSwgaW5kZXhlZFBy
b3BlcnR5OiAiaW5kZXhlZF8iICsgaSB9KTsKKworICAgICAgICB2YXIgaWR4ID0gb2JqU3RvcmUu
Y3JlYXRlSW5kZXgoImluZGV4IiwgImluZGV4ZWRQcm9wZXJ0eSIpCisKKyAgICAgICAgaWR4Lmdl
dCgnaW5kZXhlZF85OScpLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAg
ICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LmtleSwgJ2tleV85OScsICdr
ZXknKTsKKyAgICAgICAgfSk7CisgICAgICAgIGlkeC5nZXQoJ2luZGV4ZWRfOScpLm9uc3VjY2Vz
cyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMo
ZS50YXJnZXQucmVzdWx0LmtleSwgJ2tleV85JywgJ2tleScpOworICAgICAgICB9KTsKKyAgICB9
CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKCkgeworICAgICAgICB0LmRvbmUo
KTsKKyAgICB9Cis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRl
SW5kZXg0LWRlbGV0ZUluZGV4LWV2ZW50X29yZGVyLXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRl
eDQtZGVsZXRlSW5kZXgtZXZlbnRfb3JkZXItcHJpdmF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmUyNzJjZAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5k
ZXg0LWRlbGV0ZUluZGV4LWV2ZW50X29yZGVyLXByaXZhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMyBAQAorCitQQVNTIElEQk9iamVjdFN0b3JlLmNyZWF0ZUluZGV4KCkgLSBFdmVudCBvcmRl
cmluZyBmb3IgYSBsYXRlciBkZWxldGVkIGluZGV4IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4NC1kZWxl
dGVJbmRleC1ldmVudF9vcmRlci1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4NC1kZWxldGVJbmRleC1ldmVu
dF9vcmRlci1wcml2YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
NGJmMDEzOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXg0LWRlbGV0ZUluZGV4LWV2ZW50X29yZGVy
LXByaXZhdGUuaHRtbApAQCAtMCwwICsxLDY2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNo
YXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJPYmplY3RTdG9yZS5jcmVhdGVJbmRleCgpIC0gRXZl
bnQgb3JkZXJpbmcgZm9yIGEgbGF0ZXIgZGVsZXRlZCBpbmRleDwvdGl0bGU+Cis8bGluayByZWw9
ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0
aGUgT21kYWwiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4K
KworPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICBldmVudHMgPSBbXSwKKyAgICAgIHQgPSBh
c3luY190ZXN0KGRvY3VtZW50LnRpdGxlLCB7dGltZW91dDogMTAwMDB9KQorCisgICAgdmFyIG9w
ZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0
aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgIGUudGFyZ2V0
LnRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSBsb2coInRyYW5zYWN0aW9uLmNvbXBsZXRlIik7CisK
KyAgICAgICAgdmFyIHR4biA9IGUudGFyZ2V0LnRyYW5zYWN0aW9uLAorICAgICAgICAgIG9ialN0
b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIik7CisKKyAgICAgICAgdmFyIHJxX2Fk
ZDEgPSBvYmpTdG9yZS5hZGQoeyBhbmltYWw6ICJVbmljb3JuIiB9LCAxKTsKKyAgICAgICAgcnFf
YWRkMS5vbnN1Y2Nlc3MgPSBsb2coInJxX2FkZDEuc3VjY2VzcyIpOworICAgICAgICBycV9hZGQx
Lm9uZXJyb3IgICA9IGxvZygicnFfYWRkMS5lcnJvciIpOworCisgICAgICAgIG9ialN0b3JlLmNy
ZWF0ZUluZGV4KCJpbmRleCIsICJhbmltYWwiLCB7IHVuaXF1ZTogdHJ1ZSB9KTsKKworICAgICAg
ICB2YXIgcnFfYWRkMiA9IG9ialN0b3JlLmFkZCh7IGFuaW1hbDogIlVuaWNvcm4iIH0sIDIpOwor
ICAgICAgICBycV9hZGQyLm9uc3VjY2VzcyA9IGxvZygicnFfYWRkMi5zdWNjZXNzIik7CisgICAg
ICAgIHJxX2FkZDIub25lcnJvciAgID0gZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgbG9nKCJy
cV9hZGQyLmVycm9yIikoZSk7CisgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CisgICAg
ICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpOworICAgICAgICB9CisKKyAgICAgICAgb2JqU3Rv
cmUuZGVsZXRlSW5kZXgoImluZGV4Iik7CisKKyAgICAgICAgdmFyIHJxX2FkZDMgPSBvYmpTdG9y
ZS5hZGQoeyBhbmltYWw6ICJVbmljb3JuIiB9LCAzKTsKKyAgICAgICAgcnFfYWRkMy5vbnN1Y2Nl
c3MgPSBsb2coInJxX2FkZDMuc3VjY2VzcyIpOworICAgICAgICBycV9hZGQzLm9uZXJyb3IgICA9
IGxvZygicnFfYWRkMy5lcnJvciIpOworICAgIH0KKworICAgIG9wZW5fcnEub25zdWNjZXNzID0g
ZnVuY3Rpb24oZSkgeworICAgICAgICBsb2coIm9wZW5fcnEuc3VjY2VzcyIpKGUpOworICAgICAg
ICBhc3NlcnRfYXJyYXlfZXF1YWxzKGV2ZW50cywgWyAicnFfYWRkMS5zdWNjZXNzIiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJxX2FkZDIuZXJyb3I6IENvbnN0cmFp
bnRFcnJvciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJycV9hZGQz
LnN1Y2Nlc3MiLAorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0cmFu
c2FjdGlvbi5jb21wbGV0ZSIsCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIm9wZW5fcnEuc3VjY2VzcyIgXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXZl
bnRzIik7CisgICAgICAgIHQuZG9uZSgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGxvZyhtc2cp
IHsKKyAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGlmKGUgJiYgZS50
YXJnZXQgJiYgZS50YXJnZXQuZXJyb3IpCisgICAgICAgICAgICAgICAgZXZlbnRzLnB1c2gobXNn
ICsgIjogIiArIGUudGFyZ2V0LmVycm9yLm5hbWUpOworICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgIGV2ZW50cy5wdXNoKG1zZyk7CisgICAgICAgIH07CisgICAgfQorPC9zY3JpcHQ+
CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4NS1lbXB0eWtleXBhdGgt
cHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4NS1lbXB0eWtleXBhdGgtcHJpdmF0ZS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2IxNjMwNTIKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVj
dHN0b3JlX2NyZWF0ZUluZGV4NS1lbXB0eWtleXBhdGgtcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwzIEBACisKK1BBU1MgSURCT2JqZWN0U3RvcmUuY3JlYXRlSW5kZXgoKSAtIGVtcHR5
IGtleVBhdGggCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXg1LWVtcHR5a2V5cGF0aC1wcml2YXRlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0
ZUluZGV4NS1lbXB0eWtleXBhdGgtcHJpdmF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjUzYmU4ZWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4NS1lbXB0eWtleXBh
dGgtcHJpdmF0ZS5odG1sCkBAIC0wLDAgKzEsMzggQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQk9iamVjdFN0b3JlLmNyZWF0ZUluZGV4KCkgLSBl
bXB0eSBrZXlQYXRoPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2Rp
bmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwg
YWJvcnRlZCwKKyAgICAgIHQgPSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlLCB7dGltZW91dDog
MTAwMDB9KQorCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9u
dXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1
bHQ7CisgICAgICAgIHZhciB0eG4gPSBlLnRhcmdldC50cmFuc2FjdGlvbiwKKyAgICAgICAgICBv
YmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIpOworCisgICAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgNTsgaSsrKQorICAgICAgICAgICAgb2JqU3RvcmUuYWRkKCJvYmplY3Rf
IiArIGksIGkpOworCisgICAgICAgIHZhciBycSA9IG9ialN0b3JlLmNyZWF0ZUluZGV4KCJpbmRl
eCIsICIiKQorICAgICAgICBycS5vbmVycm9yID0gZnVuY3Rpb24oKSB7IGFzc2VydF91bnJlYWNo
ZWQoImVycm9yOiAiICsgcnEuZXJyb3IubmFtZSk7IH0KKyAgICAgICAgcnEub25zdWNjZXNzID0g
ZnVuY3Rpb24oKSB7IH0KKworICAgICAgICBvYmpTdG9yZS5pbmRleCgiaW5kZXgiKQorICAgICAg
ICAgICAgICAgIC5nZXQoJ29iamVjdF80JykKKyAgICAgICAgICAgICAgICAub25zdWNjZXNzID0g
dC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRh
cmdldC5yZXN1bHQsICdvYmplY3RfNCcsICdyZXN1bHQnKTsKKyAgICAgICAgfSk7CisgICAgfQor
CisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgdC5kb25lKCk7
CisgICAgfQorPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUlu
ZGV4Ni1ldmVudF9vcmRlci1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXg2LWV2ZW50X29yZGVy
LXByaXZhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LmExZTUzNTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4Ni1ldmVudF9vcmRlci1wcml2YXRlLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJPYmplY3RTdG9yZS5jcmVhdGVJ
bmRleCgpIC0gZXZlbnQgb3JkZXIgd2hlbiB1bmlxdWUgY29uc3RyYWludCBpcyB0cmlnZ2VyZWQg
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2Jq
ZWN0c3RvcmVfY3JlYXRlSW5kZXg2LWV2ZW50X29yZGVyLXByaXZhdGUuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXg2LWV2
ZW50X29yZGVyLXByaXZhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li4yYTAxY2EwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDYtZXZlbnRfb3JkZXItcHJpdmF0ZS5o
dG1sCkBAIC0wLDAgKzEsNzUgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD11dGYt
OD4KKzx0aXRsZT5JREJPYmplY3RTdG9yZS5jcmVhdGVJbmRleCgpIC0gZXZlbnQgb3JkZXIgd2hl
biB1bmlxdWUgY29uc3RyYWludCBpcyB0cmlnZ2VyZWQ8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRo
b3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9t
ZGFsIj4KKzxtZXRhIHJlbD1oZWxwIGhyZWY9aHR0cDovL29kaW5oby5odG1sNS5vcmcvSW5kZXhl
ZERCL3NwZWMvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQk9iamVjdFN0b3JlLWNyZWF0ZUluZGV4LUlE
QkluZGV4LURPTVN0cmluZy1uYW1lLWFueS1rZXlQYXRoLUlEQkluZGV4UGFyYW1ldGVycy1vcHRp
b25hbFBhcmFtZXRlcnM+Cis8bWV0YSByZWw9YXNzZXJ0IHRpdGxlPSJUaGUgaW5kZXggdGhhdCBp
cyByZXF1ZXN0ZWQgdG8gYmUgY3JlYXRlZCBjYW4gY29udGFpbiBjb25zdHJhaW50cyBvbiB0aGUg
ZGF0YSBhbGxvd2VkIGluIHRoZSBpbmRleCdzIHJlZmVyZW5jZWQgb2JqZWN0IHN0b3JlLCBzdWNo
IGFzIHJlcXVpcmluZyB1bmlxdWVuZXNzIG9mIHRoZSB2YWx1ZXMgcmVmZXJlbmNlZCBieSB0aGUg
aW5kZXgncyBrZXlQYXRoLiBJZiB0aGUgcmVmZXJlbmNlZCBvYmplY3Qgc3RvcmUgYWxyZWFkeSBj
b250YWlucyBkYXRhIHdoaWNoIHZpb2xhdGVzIHRoZXNlIGNvbnN0cmFpbnRzLCB0aGlzIG11c3Qg
bm90IGNhdXNlIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBjcmVhdGVJbmRleCB0byB0aHJvdyBhbiBl
eGNlcHRpb24gb3IgYWZmZWN0IHdoYXQgaXQgcmV0dXJucy4gVGhlIGltcGxlbWVudGF0aW9uIG11
c3Qgc3RpbGwgY3JlYXRlIGFuZCByZXR1cm4gYW4gSURCSW5kZXggb2JqZWN0LiBJbnN0ZWFkIHRo
ZSBpbXBsZW1lbnRhdGlvbiBtdXN0IHF1ZXVlIHVwIGFuIG9wZXJhdGlvbiB0byBhYm9ydCB0aGUg
J3ZlcnNpb25jaGFuZ2UnIHRyYW5zYWN0aW9uIHdoaWNoIHdhcyB1c2VkIGZvciB0aGUgY3JlYXRl
SW5kZXggY2FsbC4iPgorPG1ldGEgcmVsPWFzc2VydCB0aXRsZT0iSW4gc29tZSBpbXBsZW1lbnRh
dGlvbnMgaXQncyBwb3NzaWJsZSBmb3IgdGhlIGltcGxlbWVudGF0aW9uIHRvIGFzeW5jaHJvbm91
c2x5IHJ1biBpbnRvIHByb2JsZW1zIGNyZWF0aW5nIHRoZSBpbmRleCBhZnRlciB0aGUgY3JlYXRl
SW5kZXggZnVuY3Rpb24gaGFzIHJldHVybmVkLiBGb3IgZXhhbXBsZSBpbiBpbXBsZW1lbnRhdGlv
bnMgd2hlcmUgbWV0YWRhdGEgYWJvdXQgdGhlIG5ld2x5IGNyZWF0ZWQgaW5kZXggaXMgcXVldWVk
IHVwIHRvIGJlIGluc2VydGVkIGludG8gdGhlIGRhdGFiYXNlIGFzeW5jaHJvbm91c2x5LCBvciB3
aGVyZSB0aGUgaW1wbGVtZW50YXRpb24gbWlnaHQgbmVlZCB0byBhc2sgdGhlIHVzZXIgZm9yIHBl
cm1pc3Npb24gZm9yIHF1b3RhIHJlYXNvbnMuIFN1Y2ggaW1wbGVtZW50YXRpb25zIG11c3Qgc3Rp
bGwgY3JlYXRlIGFuZCByZXR1cm4gYW4gSURCSW5kZXggb2JqZWN0LiBJbnN0ZWFkLCBvbmNlIHRo
ZSBpbXBsZW1lbnRhdGlvbiByZWFsaXplcyB0aGF0IGNyZWF0aW5nIHRoZSBpbmRleCBoYXMgZmFp
bGVkLCBpdCBtdXN0IGFib3J0IHRoZSB0cmFuc2FjdGlvbiB1c2luZyB0aGUgc3RlcHMgZm9yIGFi
b3J0aW5nIGEgdHJhbnNhY3Rpb24gdXNpbmcgdGhlIGFwcHJvcHJpYXRlIGVycm9yIGFzIGVycm9y
IHBhcmFtZXRlci4iPgorPG1ldGEgcmVsPWFzc2VydCB0aXRsZT0iaWYgdGhlIGluZGV4IGNhbid0
IGJlIGNyZWF0ZWQgZHVlIHRvIHVuaXF1ZSBjb25zdHJhaW50cywgQ29uc3RyYWludEVycm9yIG11
c3QgYmUgdXNlZCBhcyBlcnJvciI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48
L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICAvLyBUcmFuc2FjdGlvbiBtYXkgZmlyZSB3aW5kb3cu
b25lcnJvciBpbiBzb21lIGltcGxlbWVudGF0aW9ucy4KKyAgICBzZXR1cCh7YWxsb3dfdW5jYXVn
aHRfZXhjZXB0aW9uOnRydWV9KTsKKworICAgIHZhciBkYiwKKyAgICAgIGV2ZW50cyA9IFtdLAor
ICAgICAgdCA9IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUsIHt0aW1lb3V0OiAxMDAwMH0pCisK
KyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVl
ZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAg
ICAgZGIub25lcnJvciA9IGxvZygiZGIuZXJyb3IiKTsKKyAgICAgICAgZGIub25hYm9ydCA9IGxv
ZygiZGIuYWJvcnQiKTsKKyAgICAgICAgZS50YXJnZXQudHJhbnNhY3Rpb24ub25hYm9ydCA9IGxv
ZygidHJhbnNhY3Rpb24uYWJvcnQiKQorICAgICAgICBlLnRhcmdldC50cmFuc2FjdGlvbi5vbmVy
cm9yID0gbG9nKCJ0cmFuc2FjdGlvbi5lcnJvciIpCisgICAgICAgIGUudGFyZ2V0LnRyYW5zYWN0
aW9uLm9uY29tcGxldGUgPSBsb2coInRyYW5zYWN0aW9uLmNvbXBsZXRlIikKKworICAgICAgICB2
YXIgdHhuID0gZS50YXJnZXQudHJhbnNhY3Rpb24sCisgICAgICAgICAgb2JqU3RvcmUgPSBkYi5j
cmVhdGVPYmplY3RTdG9yZSgic3RvcmUiKTsKKworICAgICAgICB2YXIgcnFfYWRkMSA9IG9ialN0
b3JlLmFkZCh7IGFuaW1hbDogIlVuaWNvcm4iIH0sIDEpOworICAgICAgICBycV9hZGQxLm9uc3Vj
Y2VzcyA9IGxvZygicnFfYWRkMS5zdWNjZXNzIik7CisgICAgICAgIHJxX2FkZDEub25lcnJvciAg
ID0gbG9nKCJycV9hZGQxLmVycm9yIik7CisKKyAgICAgICAgdmFyIHJxX2FkZDIgPSBvYmpTdG9y
ZS5hZGQoeyBhbmltYWw6ICJVbmljb3JuIiB9LCAyKTsKKyAgICAgICAgcnFfYWRkMi5vbnN1Y2Nl
c3MgPSBsb2coInJxX2FkZDIuc3VjY2VzcyIpOworICAgICAgICBycV9hZGQyLm9uZXJyb3IgICA9
IGxvZygicnFfYWRkMi5lcnJvciIpOworCisgICAgICAgIG9ialN0b3JlLmNyZWF0ZUluZGV4KCJp
bmRleCIsICJhbmltYWwiLCB7IHVuaXF1ZTogdHJ1ZSB9KQorCisgICAgICAgIHZhciBycV9hZGQz
ID0gb2JqU3RvcmUuYWRkKHsgYW5pbWFsOiAiVW5pY29ybiIgfSwgMyk7CisgICAgICAgIHJxX2Fk
ZDMub25zdWNjZXNzID0gbG9nKCJycV9hZGQzLnN1Y2Nlc3MiKTsKKyAgICAgICAgcnFfYWRkMy5v
bmVycm9yICAgPSBsb2coInJxX2FkZDMuZXJyb3IiKTsKKyAgICB9CisKKyAgICBvcGVuX3JxLm9u
ZXJyb3IgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGxvZygib3Blbl9ycS5lcnJvciIpKGUpOwor
ICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGV2ZW50cywgWyAicnFfYWRkMS5zdWNjZXNzIiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJxX2FkZDIuc3VjY2VzcyIs
CisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJxX2FkZDMuZXJyb3I6
IEFib3J0RXJyb3IiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidHJh
bnNhY3Rpb24uZXJyb3I6IEFib3J0RXJyb3IiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiZGIuZXJyb3I6IEFib3J0RXJyb3IiLAorCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJ0cmFuc2FjdGlvbi5hYm9ydDogQ29uc3RyYWludEVycm9yIiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRiLmFib3J0OiBDb25zdHJh
aW50RXJyb3IiLAorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvcGVu
X3JxLmVycm9yOiBBYm9ydEVycm9yIiBdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJl
dmVudHMiKTsKKyAgICAgICAgdC5kb25lKCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gbG9nKG1z
ZykgeworICAgICAgICByZXR1cm4gZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgaWYoZSAmJiBl
LnRhcmdldCAmJiBlLnRhcmdldC5lcnJvcikKKyAgICAgICAgICAgICAgICBldmVudHMucHVzaCht
c2cgKyAiOiAiICsgZS50YXJnZXQuZXJyb3IubmFtZSk7CisgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgZXZlbnRzLnB1c2gobXNnKTsKKyAgICAgICAgfTsKKyAgICB9Cis8L3Njcmlw
dD4KKworPGRpdiBpZD1sb2c+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4Ny1ldmVudF9vcmRlci1w
cml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXg3LWV2ZW50X29yZGVyLXByaXZhdGUtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg1M2VkMWUKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0
b3JlX2NyZWF0ZUluZGV4Ny1ldmVudF9vcmRlci1wcml2YXRlLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDMgQEAKKworUEFTUyBJREJPYmplY3RTdG9yZS5jcmVhdGVJbmRleCgpIC0gRXZlbnQgb3Jk
ZXJpbmcgZm9yIENvbnN0cmFpbnRFcnJvciBvbiByZXF1ZXN0IAorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4
Ny1ldmVudF9vcmRlci1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4Ny1ldmVudF9vcmRlci1wcml2YXRlLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWU3NzNkMwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3Rv
cmVfY3JlYXRlSW5kZXg3LWV2ZW50X29yZGVyLXByaXZhdGUuaHRtbApAQCAtMCwwICsxLDgwIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJPYmpl
Y3RTdG9yZS5jcmVhdGVJbmRleCgpIC0gRXZlbnQgb3JkZXJpbmcgZm9yIENvbnN0cmFpbnRFcnJv
ciBvbiByZXF1ZXN0PC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2Rp
bmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Cis8bWV0YSByZWw9aGVs
cCBocmVmPWh0dHA6Ly9vZGluaG8uaHRtbDUub3JnL0luZGV4ZWREQi9zcGVjL092ZXJ2aWV3Lmh0
bWwjZGZuLXN0ZXBzLWZvci1hYm9ydGluZy1hLXRyYW5zYWN0aW9uPgorPG1ldGEgcmVsPWFzc2Vy
dCB0aXRsZT0iVW5sZXNzIGVycm9yIHdhcyBzZXQgdG8gbnVsbCwgY3JlYXRlIGEgRE9NRXJyb3Ig
b2JqZWN0IGFuZCBzZXQgaXRzIG5hbWUgdG8gZXJyb3IuIFNldCB0cmFuc2FjdGlvbidzIGVycm9y
IHByb3BlcnR5IHRvIHRoaXMgbmV3bHkgY3JlYXRlZCBET01FcnJvci4iPgorPG1ldGEgcmVsPWFz
c2VydCB0aXRsZT0iSWYgdGhlIHRyYW5zYWN0aW9uJ3MgcmVxdWVzdCBsaXN0IGNvbnRhaW4gYW55
IHJlcXVlc3RzIHdob3NlIGRvbmUgZmxhZyBpcyBzdGlsbCBmYWxzZSwgYWJvcnQgdGhlIHN0ZXBz
IGZvciBhc3luY2hyb25vdXNseSBleGVjdXRpbmcgYSByZXF1ZXN0IGZvciBlYWNoIHN1Y2ggcmVx
dWVzdCBhbmQgcXVldWUgYSB0YXNrIHRvIHBlcmZvcm0gdGhlIGZvbGxvd2luZyBzdGVwczoiPgor
PG1ldGEgcmVsPWFzc2VydCB0aXRsZT0ic2V0IHRoZSByZXF1ZXN0J3MgZXJyb3IgYXR0cmlidXRl
IHRvIGEgRE9NRXJyb3Igd2l0aCBhIHR5cGUgb2YgQWJvcnRFcnJvci4iPgorPG1ldGEgcmVsPWFz
c2VydCB0aXRsZT0iRGlzcGF0Y2ggYW4gZXZlbnQgYXQgcmVxdWVzdC4gVGhlIGV2ZW50IG11c3Qg
dXNlIHRoZSBFdmVudCBpbnRlcmZhY2UgYW5kIGhhdmUgaXRzIHR5cGUgc2V0IHRvICdlcnJvcicu
IFRoZSBldmVudCBidWJibGVzIGFuZCBpcyBjYW5jZWxhYmxlLiBUaGUgcHJvcGFnYXRpb24gcGF0
aCBmb3IgdGhlIGV2ZW50IGlzIHRyYW5zYWN0aW9uJ3MgY29ubmVjdGlvbiwgdGhlbiB0cmFuc2Fj
dGlvbiBhbmQgZmluYWxseSB0aGUgcmVxdWVzdC4gVGhlcmUgaXMgbm8gZGVmYXVsdCBhY3Rpb24g
Zm9yIHRoZSBldmVudC4iPgorPG1ldGEgcmVsPWFzc2VydCB0aXRsZT0iUXVldWUgdXAgYW4gb3Bl
cmF0aW9uIHRvIGRpc3BhdGNoIGFuIGV2ZW50IGF0IHRyYW5zYWN0aW9uLiBUaGUgZXZlbnQgbXVz
dCB1c2UgdGhlIEV2ZW50IGludGVyZmFjZSBhbmQgaGF2ZSBpdHMgdHlwZSBzZXQgdG8gJ2Fib3J0
Jy4gVGhlIGV2ZW50IGRvZXMgYnViYmxlIGJ1dCBpcyBub3QgY2FuY2VsYWJsZS4gVGhlIHByb3Bh
Z2F0aW9uIHBhdGggZm9yIHRoZSBldmVudCBpcyB0cmFuc2FjdGlvbidzIGNvbm5lY3Rpb24gYW5k
IHRoZW4gdHJhbnNhY3Rpb24uIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+
PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgLy8gVHJhbnNhY3Rpb24gbWF5IGZpcmUgd2luZG93
Lm9uZXJyb3IgaW4gc29tZSBpbXBsZW1lbnRhdGlvbnMuCisgICAgc2V0dXAoe2FsbG93X3VuY2F1
Z2h0X2V4Y2VwdGlvbjp0cnVlfSk7CisKKyAgICB2YXIgZGIsCisgICAgICBldmVudHMgPSBbXSwK
KyAgICAgIHQgPSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlLCB7dGltZW91dDogMTAwMDB9KQor
CisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5l
ZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAg
ICAgIHZhciB0eG4gPSBlLnRhcmdldC50cmFuc2FjdGlvbjsKKyAgICAgICAgZGIub25lcnJvciA9
IGxvZygiZGIuZXJyb3IiKTsKKyAgICAgICAgZGIub25hYm9ydCA9IGxvZygiZGIuYWJvcnQiKTsK
KyAgICAgICAgdHhuLm9uYWJvcnQgPSBsb2coInRyYW5zYWN0aW9uLmFib3J0IikKKyAgICAgICAg
dHhuLm9uZXJyb3IgPSBsb2coInRyYW5zYWN0aW9uLmVycm9yIikKKyAgICAgICAgdHhuLm9uY29t
cGxldGUgPSBsb2coInRyYW5zYWN0aW9uLmNvbXBsZXRlIikKKworICAgICAgICB2YXIgb2JqU3Rv
cmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiKTsKKworICAgICAgICB2YXIgcnFfYWRk
MSA9IG9ialN0b3JlLmFkZCh7IGFuaW1hbDogIlVuaWNvcm4iIH0sIDEpOworICAgICAgICBycV9h
ZGQxLm9uc3VjY2VzcyA9IGxvZygicnFfYWRkMS5zdWNjZXNzIik7CisgICAgICAgIHJxX2FkZDEu
b25lcnJvciAgID0gbG9nKCJycV9hZGQxLmVycm9yIik7CisKKyAgICAgICAgb2JqU3RvcmUuY3Jl
YXRlSW5kZXgoImluZGV4IiwgImFuaW1hbCIsIHsgdW5pcXVlOiB0cnVlIH0pCisKKyAgICAgICAg
dmFyIHJxX2FkZDIgPSBvYmpTdG9yZS5hZGQoeyBhbmltYWw6ICJVbmljb3JuIiB9LCAyKTsKKyAg
ICAgICAgcnFfYWRkMi5vbnN1Y2Nlc3MgPSBsb2coInJxX2FkZDIuc3VjY2VzcyIpOworICAgICAg
ICBycV9hZGQyLm9uZXJyb3IgICA9IGxvZygicnFfYWRkMi5lcnJvciIpOworCisgICAgICAgIHZh
ciBycV9hZGQzID0gb2JqU3RvcmUuYWRkKHsgYW5pbWFsOiAiSG9yc2UiIH0sIDMpOworICAgICAg
ICBycV9hZGQzLm9uc3VjY2VzcyA9IGxvZygicnFfYWRkMy5zdWNjZXNzIik7CisgICAgICAgIHJx
X2FkZDMub25lcnJvciAgID0gbG9nKCJycV9hZGQzLmVycm9yIik7CisgICAgfQorCisgICAgb3Bl
bl9ycS5vbmVycm9yID0gZnVuY3Rpb24oZSkgeworICAgICAgICBsb2coIm9wZW5fcnEuZXJyb3Ii
KShlKTsKKyAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhldmVudHMsIFsgInJxX2FkZDEuc3Vj
Y2VzcyIsCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJxX2FkZDIu
ZXJyb3I6IENvbnN0cmFpbnRFcnJvciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJ0cmFuc2FjdGlvbi5lcnJvcjogQ29uc3RyYWludEVycm9yIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgImRiLmVycm9yOiBDb25zdHJhaW50RXJyb3IiLAor
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJycV9hZGQzLmVycm9yOiBB
Ym9ydEVycm9yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRyYW5z
YWN0aW9uLmVycm9yOiBBYm9ydEVycm9yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgImRiLmVycm9yOiBBYm9ydEVycm9yIiwKKworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAidHJhbnNhY3Rpb24uYWJvcnQ6IENvbnN0cmFpbnRFcnJvciIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkYi5hYm9ydDogQ29uc3RyYWlu
dEVycm9yIiwKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib3Blbl9y
cS5lcnJvcjogQWJvcnRFcnJvciIgXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXZl
bnRzIik7CisgICAgICAgIHQuZG9uZSgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGxvZyhtc2cp
IHsKKyAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGlmKGUgJiYgZS50
YXJnZXQgJiYgZS50YXJnZXQuZXJyb3IpCisgICAgICAgICAgICAgICAgZXZlbnRzLnB1c2gobXNn
ICsgIjogIiArIGUudGFyZ2V0LmVycm9yLm5hbWUpOworICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgIGV2ZW50cy5wdXNoKG1zZyk7CisgICAgICAgIH07CisgICAgfQorPC9zY3JpcHQ+
CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4OC12YWxpZF9rZXlzLXBy
aXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDgtdmFsaWRfa2V5cy1wcml2YXRlLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NzZlZmQyCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9y
ZV9jcmVhdGVJbmRleDgtdmFsaWRfa2V5cy1wcml2YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDMgQEAKKworUEFTUyBJREJPYmplY3RTdG9yZS5jcmVhdGVJbmRleCgpIC0gaW5kZXggY2FuIGJl
IHZhbGlkIGtleXMgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXg4LXZhbGlkX2tleXMtcHJpdmF0ZS5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVh
dGVJbmRleDgtdmFsaWRfa2V5cy1wcml2YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uYTcyZmViMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXg4LXZhbGlkX2tleXMt
cHJpdmF0ZS5odG1sCkBAIC0wLDAgKzEsNTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hh
cnNldD0idXRmLTgiPgorPHRpdGxlPklEQk9iamVjdFN0b3JlLmNyZWF0ZUluZGV4KCkgLSBpbmRl
eCBjYW4gYmUgdmFsaWQga2V5czwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFp
bHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgorPG1ldGEg
bmFtZT10aW1lb3V0IGNvbnRlbnQ9bG9uZz4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9y
dC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgdCA9IGFzeW5j
X3Rlc3QoZG9jdW1lbnQudGl0bGUsIHt0aW1lb3V0OjE5MDAwfSksCisgICAgICBub3cgPSBuZXcg
RGF0ZSgpLAorICAgICAgbWFyMTggPSBuZXcgRGF0ZSgxMTExMTExMTExMTExKSwKKyAgICAgIGFy
ID0gWyJZYXkiLCAyLCAtSW5maW5pdHldLAorICAgICAgbnVtID0gMTMzNworCisgICAgdmFyIG9w
ZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0
aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZhciB0eG4g
PSBlLnRhcmdldC50cmFuc2FjdGlvbiwKKyAgICAgICAgICBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9i
amVjdFN0b3JlKCJzdG9yZSIsIHsga2V5UGF0aDogJ2tleScgfSk7CisKKyAgICAgICAgb2JqU3Rv
cmUuYWRkKHsga2V5OiAibm93IiwgICAgaTogbm93ICAgfSk7CisgICAgICAgIG9ialN0b3JlLmFk
ZCh7IGtleTogIm1hcjE4IiwgIGk6IG1hcjE4IH0pOworICAgICAgICBvYmpTdG9yZS5hZGQoeyBr
ZXk6ICJhcnJheSIsICBpOiBhciAgICB9KTsKKyAgICAgICAgb2JqU3RvcmUuYWRkKHsga2V5OiAi
bnVtYmVyIiwgaTogbnVtICAgfSk7CisKKyAgICAgICAgdmFyIGlkeCA9IG9ialN0b3JlLmNyZWF0
ZUluZGV4KCJpbmRleCIsICJpIikKKworICAgICAgICBpZHguZ2V0KG5vdykub25zdWNjZXNzID0g
dC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRh
cmdldC5yZXN1bHQua2V5LCAnbm93JywgJ2tleScpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhlLnRhcmdldC5yZXN1bHQuaS5nZXRUaW1lKCksIG5vdy5nZXRUaW1lKCksICdnZXRUaW1lJyk7
CisgICAgICAgIH0pOworICAgICAgICBpZHguZ2V0KG1hcjE4KS5vbnN1Y2Nlc3MgPSB0LnN0ZXBf
ZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJl
c3VsdC5rZXksICdtYXIxOCcsICdrZXknKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50
YXJnZXQucmVzdWx0LmkuZ2V0VGltZSgpLCBtYXIxOC5nZXRUaW1lKCksICdnZXRUaW1lJyk7Cisg
ICAgICAgIH0pOworICAgICAgICBpZHguZ2V0KGFyKS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhm
dW5jdGlvbihlKSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdC5r
ZXksICdhcnJheScsICdrZXknKTsKKyAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZS50
YXJnZXQucmVzdWx0LmksIGFyLCAnYXJyYXkgaXMgdGhlIHNhbWUnKTsKKyAgICAgICAgfSk7Cisg
ICAgICAgIGlkeC5nZXQobnVtKS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7
CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdC5rZXksICdudW1iZXIn
LCAna2V5Jyk7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdC5pLCBu
dW0sICdudW1iZXIgaXMgdGhlIHNhbWUnKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgb3Bl
bl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgdC5kb25lKCk7CisgICAgfQor
PC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4OS1lbXB0
eW5hbWUtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4OS1lbXB0eW5hbWUtcHJpdmF0ZS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2FlZTliZQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2Jq
ZWN0c3RvcmVfY3JlYXRlSW5kZXg5LWVtcHR5bmFtZS1wcml2YXRlLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDMgQEAKKworUEFTUyBJREJPYmplY3RTdG9yZS5jcmVhdGVJbmRleCgpIC0gZW1wdHkg
bmFtZSAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDktZW1wdHluYW1lLXByaXZhdGUuaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXg5
LWVtcHR5bmFtZS1wcml2YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uZDg4OTFmNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXg5LWVtcHR5bmFtZS1wcml2YXRlLmh0
bWwKQEAgLTAsMCArMSw0MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04
PgorPHRpdGxlPklEQk9iamVjdFN0b3JlLmNyZWF0ZUluZGV4KCkgLSBlbXB0eSBuYW1lPC90aXRs
ZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0
bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9c3VwcG9ydC5q
cz48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIKKworICAgIHZhciBvcGVuX3JxID0g
Y3JlYXRlZGIoYXN5bmNfdGVzdCgpKQorICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVu
Y3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdAorICAgICAgICB2YXIgc3Rv
cmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiKQorCisgICAgICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgNTsgaSsrKQorICAgICAgICAgICAgc3RvcmUuYWRkKHsgaWR4OiAib2JqZWN0XyIg
KyBpIH0sIGkpCisKKyAgICAgICAgc3RvcmUuY3JlYXRlSW5kZXgoIiIsICJpZHgiKQorCisgICAg
ICAgIHN0b3JlLmluZGV4KCIiKQorICAgICAgICAgICAgIC5nZXQoJ29iamVjdF80JykKKyAgICAg
ICAgICAgICAub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQuaWR4LCAnb2JqZWN0XzQnLCAncmVz
dWx0JykKKyAgICAgICAgfSkKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzdG9yZS5pbmRleE5hbWVz
WzBdLCAiIiwgImluZGV4TmFtZXNbMF0iKQorICAgICAgICBhc3NlcnRfZXF1YWxzKHN0b3JlLmlu
ZGV4TmFtZXMubGVuZ3RoLCAxLCAiaW5kZXhOYW1lcy5sZW5ndGgiKQorICAgIH0KKworICAgIG9w
ZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciBzdG9yZSA9IGRiLnRy
YW5zYWN0aW9uKCJzdG9yZSIpLm9iamVjdFN0b3JlKCJzdG9yZSIpCisKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzdG9yZS5pbmRleE5hbWVzWzBdLCAiIiwgImluZGV4TmFtZXNbMF0iKQorICAgICAg
ICBhc3NlcnRfZXF1YWxzKHN0b3JlLmluZGV4TmFtZXMubGVuZ3RoLCAxLCAiaW5kZXhOYW1lcy5s
ZW5ndGgiKQorCisgICAgICAgIHRoaXMuZG9uZSgpCisgICAgfQorPC9zY3JpcHQ+CisKKzxkaXYg
aWQ9bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJvYmplY3RzdG9yZV9kZWxldGUtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2RlbGV0ZS1wcml2YXRl
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40Mjk4Njc0
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJvYmplY3RzdG9yZV9kZWxldGUtcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBA
CisKK1BBU1MgSURCT2JqZWN0U3RvcmUuZGVsZXRlKCkgLSBkZWxldGUgcmVtb3ZlcyByZWNvcmQg
KGlubGluZSBrZXlzKSAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9kZWxldGUtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9kZWxldGUtcHJpdmF0ZS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcyM2MyMDIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3Jl
X2RlbGV0ZS1wcml2YXRlLmh0bWwKQEAgLTAsMCArMSw0NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8
bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCT2JqZWN0U3RvcmUuZGVsZXRlKCkgLSBk
ZWxldGUgcmVtb3ZlcyByZWNvcmQgKGlubGluZSBrZXlzKTwvdGl0bGU+Cis8bGluayByZWw9ImF1
dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4K
KzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+
CisgICAgdmFyIGRiLAorICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAgIHJlY29yZCA9IHsg
a2V5OiAxLCBwcm9wZXJ0eTogImRhdGEiIH07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRi
KHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAg
ICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVh
dGVPYmplY3RTdG9yZSgidGVzdCIsIHsga2V5UGF0aDogImtleSIgfSk7CisgICAgICAgIG9ialN0
b3JlLmFkZChyZWNvcmQpOworICAgIH07CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0
aW9uKGUpIHsKKyAgICAgICAgdmFyIGRlbGV0ZV9ycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0Iiwg
InJlYWR3cml0ZSIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgidGVz
dCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIC5kZWxldGUocmVjb3JkLmtleSk7CisKKyAg
ICAgICAgZGVsZXRlX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAg
ICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LCB1bmRlZmluZWQpOworCisg
ICAgICAgICAgICBlLnRhcmdldC50cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gdC5zdGVwX2Z1bmMo
VmVyaWZ5UmVjb3JkUmVtb3ZlZCk7CisgICAgICAgIH0pOworICAgIH07CisKKyAgICBmdW5jdGlv
biBWZXJpZnlSZWNvcmRSZW1vdmVkKCkgeworICAgICAgICB2YXIgcnEgPSBkYi50cmFuc2FjdGlv
bigidGVzdCIpCisgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJ0ZXN0IikKKyAgICAg
ICAgICAgICAgICAgICAuZ2V0KHJlY29yZC5rZXkpOworCisgICAgICAgIHJxLm9uc3VjY2VzcyA9
IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50
YXJnZXQucmVzdWx0LCB1bmRlZmluZWQpOworICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAg
IH0pOworICAgIH0KKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9kZWxl
dGUyLXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJvYmplY3RzdG9yZV9kZWxldGUyLXByaXZhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNlOWFmYTYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2RlbGV0ZTIt
cHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCT2JqZWN0U3Rv
cmUuZGVsZXRlKCkgLSBrZXkgZG9lc24ndCBtYXRjaCBhbnkgcmVjb3JkcyAgCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZGVs
ZXRlMi1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
Ym9iamVjdHN0b3JlX2RlbGV0ZTItcHJpdmF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLmNhMGMxNWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2RlbGV0ZTItcHJpdmF0ZS5odG1sCkBA
IC0wLDAgKzEsMjcgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgor
PHRpdGxlPklEQk9iamVjdFN0b3JlLmRlbGV0ZSgpIC0ga2V5IGRvZXNuJ3QgbWF0Y2ggYW55IHJl
Y29yZHMgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVm
PSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBw
b3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICB0ID0gYXN5
bmNfdGVzdCgpOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3Jx
Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5y
ZXN1bHQ7CisKKyAgICAgICAgdmFyIGRlbGV0ZV9ycSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0
ZXN0IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLmRlbGV0ZSgxKTsKKworICAgICAgICBk
ZWxldGVfcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQsIHVuZGVmaW5lZCk7CisgICAgICAgICAg
ICB0LmRvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfTsKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJs
b2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJvYmplY3RzdG9yZV9kZWxldGUzLXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9kZWxldGUzLXByaXZhdGUt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYyNmQ5YTAK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
Ym9iamVjdHN0b3JlX2RlbGV0ZTMtcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBA
CisKK1BBU1MgSURCT2JqZWN0U3RvcmUuZGVsZXRlKCkgLSBvYmplY3Qgc3RvcmUncyBrZXkgcGF0
aCBpcyBhbiBvYmplY3QgYXR0cmlidXRlICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9kZWxldGUzLXByaXZhdGUuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZGVsZXRl
My1wcml2YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmI5ZTRm
ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRib2JqZWN0c3RvcmVfZGVsZXRlMy1wcml2YXRlLmh0bWwKQEAgLTAsMCArMSw0NyBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCT2JqZWN0U3Rv
cmUuZGVsZXRlKCkgLSBvYmplY3Qgc3RvcmUncyBrZXkgcGF0aCBpcyBhbiBvYmplY3QgYXR0cmli
dXRlIDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0i
aHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9y
dC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgdCA9IGFzeW5j
X3Rlc3QoKSwKKyAgICAgIHJlY29yZCA9IHsgdGVzdDogeyBvYmo6IHsga2V5OiAxIH0gfSwgcHJv
cGVydHk6ICJkYXRhIiB9OworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBv
cGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRh
cmdldC5yZXN1bHQ7CisKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3Rv
cmUoInRlc3QiLCB7IGtleVBhdGg6ICJ0ZXN0Lm9iai5rZXkiIH0pOworICAgICAgICBvYmpTdG9y
ZS5hZGQocmVjb3JkKTsKKyAgICB9OworCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlv
bihlKSB7CisgICAgICAgIHZhciBkZWxldGVfcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIsICJy
ZWFkd3JpdGUiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInRlc3Qi
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAuZGVsZXRlKHJlY29yZC50ZXN0Lm9iai5rZXkp
OworCisgICAgICAgIGRlbGV0ZV9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihl
KSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdCwgdW5kZWZpbmVk
KTsKKworICAgICAgICAgICAgZS50YXJnZXQudHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IHQuc3Rl
cF9mdW5jKFZlcmlmeVJlY29yZFJlbW92ZWQpOworICAgICAgICB9KTsKKyAgICB9OworCisgICAg
ZnVuY3Rpb24gVmVyaWZ5UmVjb3JkUmVtb3ZlZCgpIHsKKyAgICAgICAgdmFyIHJxID0gZGIudHJh
bnNhY3Rpb24oInRlc3QiKQorICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgidGVzdCIp
CisgICAgICAgICAgICAgICAgICAgLmdldChyZWNvcmQudGVzdC5vYmoua2V5KTsKKworICAgICAg
ICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBh
c3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdCwgdW5kZWZpbmVkKTsKKyAgICAgICAgICAgIHQu
ZG9uZSgpOworICAgICAgICB9KTsKKyAgICB9CisKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ci
PjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJvYmplY3RzdG9yZV9kZWxldGU0LXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9kZWxldGU0LXByaXZhdGUtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ3MGE3ODYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9i
amVjdHN0b3JlX2RlbGV0ZTQtcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisK
K1BBU1MgSURCT2JqZWN0U3RvcmUuZGVsZXRlKCkgLSBkZWxldGUgcmVtb3ZlcyByZWNvcmQgKG91
dC1vZi1saW5lIGtleXMpICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9kZWxldGU0LXByaXZhdGUuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZGVsZXRlNC1wcml2YXRl
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2ZhNDUwYwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0
c3RvcmVfZGVsZXRlNC1wcml2YXRlLmh0bWwKQEAgLTAsMCArMSw0OCBAQAorPCFET0NUWVBFIGh0
bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCT2JqZWN0U3RvcmUuZGVsZXRl
KCkgLSBkZWxldGUgcmVtb3ZlcyByZWNvcmQgKG91dC1vZi1saW5lIGtleXMpIDwvdGl0bGU+Cis8
bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNy
b3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+
CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAg
IGtleSA9IDEsCisgICAgICByZWNvcmQgPSB7IHByb3BlcnR5OiAiZGF0YSIgfTsKKworICAgIHZh
ciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBm
dW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworCisgICAgICAgIHZh
ciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0Iik7CisgICAgICAgIG9ialN0
b3JlLmFkZChyZWNvcmQsIGtleSk7CisgICAgfTsKKworICAgIG9wZW5fcnEub25zdWNjZXNzID0g
ZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgZGVsZXRlX3JxID0gZGIudHJhbnNhY3Rpb24oInRl
c3QiLCAicmVhZHdyaXRlIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3Jl
KCJ0ZXN0IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLmRlbGV0ZShrZXkpOworCisgICAg
ICAgIGRlbGV0ZV9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdCwgdW5kZWZpbmVkKTsKKworICAg
ICAgICAgICAgZS50YXJnZXQudHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IHQuc3RlcF9mdW5jKFZl
cmlmeVJlY29yZFJlbW92ZWQpOworICAgICAgICB9KTsKKyAgICB9OworCisgICAgZnVuY3Rpb24g
VmVyaWZ5UmVjb3JkUmVtb3ZlZCgpIHsKKyAgICAgICAgdmFyIHJxID0gZGIudHJhbnNhY3Rpb24o
InRlc3QiKQorICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgidGVzdCIpCisgICAgICAg
ICAgICAgICAgICAgLmdldChrZXkpOworCisgICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9m
dW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVz
dWx0LCB1bmRlZmluZWQpOworICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgIH0pOworICAg
IH0KKworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2RlbGV0ZTUtcHJp
dmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
Ym9iamVjdHN0b3JlX2RlbGV0ZTUtcHJpdmF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uZThkYTk2YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZGVsZXRlNS1wcml2YXRl
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJPYmplY3RTdG9yZS5kZWxl
dGUoKSAtIHJlbW92ZXMgYWxsIG9mIHRoZSByZWNvcmRzIGluIHRoZSByYW5nZSAKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9k
ZWxldGU1LXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRib2JqZWN0c3RvcmVfZGVsZXRlNS1wcml2YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uMGQ3OWI3YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZGVsZXRlNS1wcml2YXRlLmh0bWwK
QEAgLTAsMCArMSwzMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+SURCT2JqZWN0U3RvcmUu
ZGVsZXRlKCkgLSByZW1vdmVzIGFsbCBvZiB0aGUgcmVjb3JkcyBpbiB0aGUgcmFuZ2U8L3RpdGxl
PgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cu
bWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3Njcmlw
dD4KKzxzY3JpcHQ+CisgICAgdmFyIGRiCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYihhc3lu
Y190ZXN0KCkpCisKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsK
KyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQKKyAgICAgICAgdmFyIG9zID0gZGIuY3JlYXRl
T2JqZWN0U3RvcmUoInN0b3JlIikKKworICAgICAgICBmb3IodmFyIGkgPSAwOyBpIDwgMTA7IGkr
KykKKyAgICAgICAgICAgIG9zLmFkZCgiZGF0YSIgKyBpLCBpKQorICAgIH0KKworICAgIG9wZW5f
cnEub25zdWNjZXNzID0gZnVuY3Rpb24gKGUpIHsKKyAgICAgICAgdmFyIG9zID0gZGIudHJhbnNh
Y3Rpb24oInN0b3JlIiwgInJlYWR3cml0ZSIpCisgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0
b3JlKCJzdG9yZSIpCisKKyAgICAgICAgb3MuZGVsZXRlKCBJREJLZXlSYW5nZS5ib3VuZCgzLCA2
KSApCisgICAgICAgIG9zLmNvdW50KCkub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rp
b24oZSkKKyAgICAgICAgeworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1
bHQsIDYsICJDb3VudCBhZnRlciBkZWxldGluZyAzLTYgZnJvbSAxMCIpOworICAgICAgICAgICAg
dGhpcy5kb25lKCk7CisgICAgICAgIH0pCisgICAgfQorPC9zY3JpcHQ+CisKKzxkaXYgaWQ9bG9n
PjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJvYmplY3RzdG9yZV9kZWxldGU2LXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9kZWxldGU2LXByaXZhdGUtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVlYzFmMGIKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9i
amVjdHN0b3JlX2RlbGV0ZTYtcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisK
K1BBU1MgSURCT2JqZWN0U3RvcmUuZGVsZXRlKCkgLSBJZiB0aGUgdHJhbnNhY3Rpb24gdGhpcyBJ
REJPYmplY3RTdG9yZSBiZWxvbmdzIHRvIGhhcyBpdHMgbW9kZSBzZXQgdG8gcmVhZG9ubHksIHRo
cm93IFJlYWRPbmx5RXJyb3IgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZGVsZXRlNi1wcml2YXRlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2RlbGV0ZTYtcHJpdmF0
ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIyNTRlMDQKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVj
dHN0b3JlX2RlbGV0ZTYtcHJpdmF0ZS5odG1sCkBAIC0wLDAgKzEsMzYgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQk9iamVjdFN0b3JlLmRlbGV0
ZSgpIC0gSWYgdGhlIHRyYW5zYWN0aW9uIHRoaXMgSURCT2JqZWN0U3RvcmUgYmVsb25ncyB0byBo
YXMgaXRzIG1vZGUgc2V0IHRvIHJlYWRvbmx5LCB0aHJvdyBSZWFkT25seUVycm9yPC90aXRsZT4K
KzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwu
Y29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9JbmRl
eGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwjd2lkbC1JREJPYmplY3RTdG9yZS1kZWxl
dGUtSURCUmVxdWVzdC1hbnkta2V5Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5q
cyI+PC9zY3JpcHQ+Cis8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPHNjcmlwdD4KKyAgICB2YXIgZGIs
CisgICAgICAgIHQgPSBhc3luY190ZXN0KCksCisgICAgICAgIHJlY29yZHMgPSBbeyBwS2V5OiAi
cHJpbWFyeUtleV8wIn0sCisgICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8x
In1dOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBn
cmFkZW5lZWRlZCA9IGZ1bmN0aW9uIChldmVudCkgeworICAgICAgICBkYiA9IGV2ZW50LnRhcmdl
dC5yZXN1bHQ7CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJz
dG9yZSIsIHtrZXlQYXRoOiJwS2V5In0pOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJl
Y29yZHMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ld
KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24g
KGV2ZW50KSB7CisgICAgICAgIHZhciB0eG4gPSBkYi50cmFuc2FjdGlvbigic3RvcmUiKTsKKyAg
ICAgICAgdmFyIG9zdG9yZSA9IHR4bi5vYmplY3RTdG9yZSgic3RvcmUiKTsKKyAgICAgICAgdC5z
dGVwKGZ1bmN0aW9uKCl7CisgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCJSZWFkT25seUVycm9y
IiwgZnVuY3Rpb24oKXsKKyAgICAgICAgICAgICAgICBvc3RvcmUuZGVsZXRlKCJwcmltYXJ5S2V5
XzAiKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICAgICAgdC5kb25lKCk7Cisg
ICAgfQorPC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZGVsZXRlNy1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZGVsZXRlNy1w
cml2YXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43
NmQ1YThmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJvYmplY3RzdG9yZV9kZWxldGU3LXByaXZhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMyBAQAorCitQQVNTIElEQk9iamVjdFN0b3JlLmRlbGV0ZSgpIC0gSWYgdGhlIG9iamVjdCBz
dG9yZSBoYXMgYmVlbiBkZWxldGVkLCB0aGUgaW1wbGVtZW50YXRpb24gbXVzdCB0aHJvdyBhIERP
TUV4Y2VwdGlvbiBvZiB0eXBlIEludmFsaWRTdGF0ZUVycm9yIAorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2RlbGV0ZTctcHJp
dmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3Rz
dG9yZV9kZWxldGU3LXByaXZhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi5iZjE1N2I5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9kZWxldGU3LXByaXZhdGUuaHRtbApAQCAtMCwwICsx
LDMzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5J
REJPYmplY3RTdG9yZS5kZWxldGUoKSAtIElmIHRoZSBvYmplY3Qgc3RvcmUgaGFzIGJlZW4gZGVs
ZXRlZCwgdGhlIGltcGxlbWVudGF0aW9uIG11c3QgdGhyb3cgYSBET01FeGNlcHRpb24gb2YgdHlw
ZSBJbnZhbGlkU3RhdGVFcnJvcjwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Iklu
dGVsIiBocmVmPSJodHRwOi8vd3d3LmludGVsLmNvbSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9
Imh0dHBzOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5o
dG1sI3dpZGwtSURCT2JqZWN0U3RvcmUtZGVsZXRlLUlEQlJlcXVlc3QtYW55LWtleSI+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorPGRpdiBpZD0ibG9nIj48
L2Rpdj4KKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgICBvc3RvcmUsCisgICAgICAgIHQg
PSBhc3luY190ZXN0KCksCisgICAgICAgIHJlY29yZHMgPSBbeyBwS2V5OiAicHJpbWFyeUtleV8w
In0sCisgICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xIn1dOworCisgICAg
dmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9
IGZ1bmN0aW9uIChldmVudCkgeworICAgICAgICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7Cisg
ICAgICAgIG9zdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHtrZXlQYXRoOiJw
S2V5In0pOworICAgICAgICBkYi5kZWxldGVPYmplY3RTdG9yZSgic3RvcmUiKTsKKyAgICB9CisK
KyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uIChldmVudCkgeworICAgICAgICB0LnN0
ZXAoZnVuY3Rpb24oKXsKKyAgICAgICAgICAgIGFzc2VydF90aHJvd3MoIkludmFsaWRTdGF0ZUVy
cm9yIiwgZnVuY3Rpb24oKXsKKyAgICAgICAgICAgICAgICBvc3RvcmUuZGVsZXRlKCJwcmltYXJ5
S2V5XzAiKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICAgICAgdC5kb25lKCk7
CisgICAgfQorPC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZGVsZXRlSW5kZXgtcHJpdmF0ZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2Rl
bGV0ZUluZGV4LXByaXZhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLmM4ODk0YzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2RlbGV0ZUluZGV4LXByaXZhdGUtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQk9iamVjdFN0b3JlLmRlbGV0ZUluZGV4
KCkgLSByZW1vdmVzIHRoZSBpbmRleCAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZGVsZXRlSW5kZXgtcHJpdmF0ZS5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9kZWxl
dGVJbmRleC1wcml2YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
ZGYyZjdmYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRib2JqZWN0c3RvcmVfZGVsZXRlSW5kZXgtcHJpdmF0ZS5odG1sCkBAIC0wLDAgKzEs
NDMgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklE
Qk9iamVjdFN0b3JlLmRlbGV0ZUluZGV4KCkgLSByZW1vdmVzIHRoZSBpbmRleCA8L3RpdGxlPgor
PGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWlj
cm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0
PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgIHQgPSBhc3luY190ZXN0KCksCisgICAg
ICBrZXkgPSAxLAorICAgICAgcmVjb3JkID0geyBwcm9wZXJ0eTogImRhdGEiIH07CisKKyAgICB2
YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0g
ZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgZGIu
Y3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiKQorICAgICAgICAgIC5jcmVhdGVJbmRleCgiaW5kZXgi
LCAiaW5kZXhlZFByb3BlcnR5IikKKyAgICB9OworCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBm
dW5jdGlvbihlKSB7CisgICAgICAgIGRiLmNsb3NlKCk7CisgICAgICAgIHZhciBuZXdfdmVyc2lv
biA9IGNyZWF0ZWRiKHQsIGRiLm5hbWUsIDIpOworICAgICAgICBuZXdfdmVyc2lvbi5vbnVwZ3Jh
ZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3Vs
dDsKKyAgICAgICAgICAgIHZhciBvYmpTdG9yZSA9IGUudGFyZ2V0LnRyYW5zYWN0aW9uLm9iamVj
dFN0b3JlKCJ0ZXN0IikKKyAgICAgICAgICAgIG9ialN0b3JlLmRlbGV0ZUluZGV4KCJpbmRleCIp
OworICAgICAgICB9CisgICAgICAgIG5ld192ZXJzaW9uLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUp
IHsKKyAgICAgICAgICAgIHZhciBpbmRleCwKKyAgICAgICAgICAgICAgb2JqU3RvcmUgPSBkYi50
cmFuc2FjdGlvbigidGVzdCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAub2JqZWN0U3Rv
cmUoInRlc3QiKTsKKworICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygnTm90Rm91bmRFcnJvcics
CisgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGluZGV4ID0gb2JqU3RvcmUuaW5kZXgoImlu
ZGV4IikgfSk7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGluZGV4LCB1bmRlZmluZWQpOwor
ICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgIH0KKyAgICB9Cis8L3NjcmlwdD4KKworPGRp
diBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZGVsZXRlZC1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZGVsZXRlZC1w
cml2YXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45
OGNlOGRhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJvYmplY3RzdG9yZV9kZWxldGVkLXByaXZhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMyBAQAorCitQQVNTIEF0dGVtcHRpbmcgdG8gdXNlIGRlbGV0ZWQgSURCT2JqZWN0U3RvcmUg
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2Jq
ZWN0c3RvcmVfZGVsZXRlZC1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2RlbGV0ZWQtcHJpdmF0ZS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhiOGY3NDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2RlbGV0ZWQtcHJp
dmF0ZS5odG1sCkBAIC0wLDAgKzEsNDkgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNl
dD11dGYtOD4KKzx0aXRsZT5BdHRlbXB0aW5nIHRvIHVzZSBkZWxldGVkIElEQk9iamVjdFN0b3Jl
PC90aXRsZT4KKzxsaW5rIHJlbD1oZWxwIGhyZWY9Imh0dHA6Ly9kdmNzLnczLm9yZy9oZy9JbmRl
eGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwjb2JqZWN0LXN0b3JlIj4KKzxsaW5rIHJl
bD1hc3NlcnQgdGl0bGU9IkludmFsaWRTdGF0ZUVycm9yIE9jY3VycyBpZiBhIHJlcXVlc3QgaXMg
bWFkZSBvbiBhIHNvdXJjZSBvYmplY3QgdGhhdCBoYXMgYmVlbiBkZWxldGVkIG9yIHJlbW92ZWQu
Ij4KKzxsaW5rIHJlbD1hdXRob3IgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxl
PSJPZGluIEjDuHJ0aGUgT21kYWwiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPXN1cHBvcnQuanM+
PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgYWRkX3N1Y2Nlc3MgPSBm
YWxzZSwKKyAgICAgIHQgPSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlLCB7dGltZW91dDogMTAw
MDB9KQorCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBn
cmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7
CisKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwg
eyBhdXRvSW5jcmVtZW50OiB0cnVlIH0pOworICAgICAgICBhc3NlcnRfZXF1YWxzKGRiLm9iamVj
dFN0b3JlTmFtZXNbMF0sICJzdG9yZSIsICJvYmplY3RTdG9yZU5hbWVzIik7CisKKyAgICAgICAg
dmFyIHJxX2FkZCA9IG9ialN0b3JlLmFkZCgxKTsKKyAgICAgICAgcnFfYWRkLm9uc3VjY2VzcyA9
IGZ1bmN0aW9uKCkgeyBhZGRfc3VjY2VzcyA9IHRydWU7IH07CisgICAgICAgIHJxX2FkZC5vbmVy
cm9yID0gZmFpbCh0LCAncnFfYWRkLmVycm9yJyk7CisKKyAgICAgICAgb2JqU3RvcmUuY3JlYXRl
SW5kZXgoImlkeCIsICJhIik7CisgICAgICAgIGRiLmRlbGV0ZU9iamVjdFN0b3JlKCJzdG9yZSIp
OworICAgICAgICBhc3NlcnRfZXF1YWxzKGRiLm9iamVjdFN0b3JlTmFtZXMubGVuZ3RoLCAwLCAi
b2JqZWN0U3RvcmVOYW1lcy5sZW5ndGggYWZ0ZXIgZGVsZXRlIik7CisKKyAgICAgICAgYXNzZXJ0
X3Rocm93cyhudWxsLCBmdW5jdGlvbigpIHsgb2JqU3RvcmUuYWRkKDIpOyB9KTsKKyAgICAgICAg
YXNzZXJ0X3Rocm93cyhudWxsLCBmdW5jdGlvbigpIHsgb2JqU3RvcmUucHV0KDMpOyB9KTsKKyAg
ICAgICAgYXNzZXJ0X3Rocm93cyhudWxsLCBmdW5jdGlvbigpIHsgb2JqU3RvcmUuZ2V0KDEpOyB9
KTsKKyAgICAgICAgYXNzZXJ0X3Rocm93cyhudWxsLCBmdW5jdGlvbigpIHsgb2JqU3RvcmUuY2xl
YXIoKTsgfSk7CisgICAgICAgIGFzc2VydF90aHJvd3MobnVsbCwgZnVuY3Rpb24oKSB7IG9ialN0
b3JlLmNvdW50KCk7IH0pOworICAgICAgICBhc3NlcnRfdGhyb3dzKG51bGwsIGZ1bmN0aW9uKCkg
eyBvYmpTdG9yZS5kZWxldGUoMSk7IH0pOworICAgICAgICBhc3NlcnRfdGhyb3dzKG51bGwsIGZ1
bmN0aW9uKCkgeyBvYmpTdG9yZS5vcGVuQ3Vyc29yKCk7IH0pOworICAgICAgICBhc3NlcnRfdGhy
b3dzKG51bGwsIGZ1bmN0aW9uKCkgeyBvYmpTdG9yZS5pbmRleCgiaWR4Iik7IH0pOworICAgICAg
ICBhc3NlcnRfdGhyb3dzKG51bGwsIGZ1bmN0aW9uKCkgeyBvYmpTdG9yZS5kZWxldGVJbmRleCgi
aWR4Iik7IH0pOworICAgICAgICBhc3NlcnRfdGhyb3dzKG51bGwsIGZ1bmN0aW9uKCkgeyBvYmpT
dG9yZS5jcmVhdGVJbmRleCgiaWR4MiIsICJhIik7IH0pOworICAgIH0KKworICAgIG9wZW5fcnEu
b25zdWNjZXNzID0gZnVuY3Rpb24oKSB7CisgICAgICAgIGFzc2VydF90cnVlKGFkZF9zdWNjZXNz
LCAiRmlyc3QgYWRkIHdhcyBzdWNjZXNzZnVsIik7CisgICAgICAgIHQuZG9uZSgpOworICAgIH0K
Kzwvc2NyaXB0PgorCis8ZGl2IGlkPWxvZz48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZ2V0LXByaXZhdGUtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9y
ZV9nZXQtcHJpdmF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uYjM0ZTJhZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZ2V0LXByaXZhdGUtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMyBAQAorCitQQVNTIElEQk9iamVjdFN0b3JlLmdldCgpIC0ga2V5IGlzIGEgbnVtYmVy
ICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJv
YmplY3RzdG9yZV9nZXQtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9nZXQtcHJpdmF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjc1ODNlYWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2dldC1wcml2YXRlLmh0bWwK
QEAgLTAsMCArMSwzNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+
Cis8dGl0bGU+SURCT2JqZWN0U3RvcmUuZ2V0KCkgLSBrZXkgaXMgYSBudW1iZXIgPC90aXRsZT4K
KzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1p
Y3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3Njcmlw
dD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAg
ICAgcmVjb3JkID0geyBrZXk6IDMuMTQxNTkyNjUsIHByb3BlcnR5OiAiZGF0YSIgfTsKKworICAg
IHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQg
PSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICBk
Yi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGtleVBhdGg6ICJrZXkiIH0pCisgICAgICAg
ICAgLmFkZChyZWNvcmQpOworICAgIH0KKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rp
b24oZSkgeworICAgICAgICB2YXIgcnEgPSBkYi50cmFuc2FjdGlvbigic3RvcmUiKQorICAgICAg
ICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgic3RvcmUiKQorICAgICAgICAgICAgICAgICAgIC5n
ZXQocmVjb3JkLmtleSk7CisKKyAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVu
Y3Rpb24oZSkgeworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQua2V5
LCByZWNvcmQua2V5KTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0
LnByb3BlcnR5LCByZWNvcmQucHJvcGVydHkpOworICAgICAgICAgICAgdC5kb25lKCk7CisgICAg
ICAgIH0pOworICAgIH0KKworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3Jl
X2dldDItcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYm9iamVjdHN0b3JlX2dldDItcHJpdmF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWUxYzM2ZgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZ2V0Mi1wcml2
YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJPYmplY3RTdG9yZS5n
ZXQoKSAtIGtleSBpcyBhIHN0cmluZyAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZ2V0Mi1wcml2YXRlLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2dldDItcHJpdmF0
ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMzMTRkYjAKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVj
dHN0b3JlX2dldDItcHJpdmF0ZS5odG1sCkBAIC0wLDAgKzEsMzUgQEAKKzwhRE9DVFlQRSBodG1s
PgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQk9iamVjdFN0b3JlLmdldCgpIC0g
a2V5IGlzIGEgc3RyaW5nIDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jv
c29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAg
ICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAgIHJlY29yZCA9IHsga2V5OiAidGhpcyBpcyBhIGtl
eSB0aGF0J3MgYSBzdHJpbmciLCBwcm9wZXJ0eTogImRhdGEiIH07CisKKyAgICB2YXIgb3Blbl9y
cSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24o
ZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgZGIuY3JlYXRlT2Jq
ZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRoOiAia2V5IiB9KQorICAgICAgICAgIC5hZGQocmVj
b3JkKTsKKyAgICB9OworCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7Cisg
ICAgICAgIHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIpCisgICAgICAgICAgICAgICAg
ICAgLm9iamVjdFN0b3JlKCJzdG9yZSIpCisgICAgICAgICAgICAgICAgICAgLmdldChyZWNvcmQu
a2V5KTsKKworICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7
CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdC5rZXksIHJlY29yZC5r
ZXkpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQucHJvcGVydHks
IHJlY29yZC5wcm9wZXJ0eSk7CisgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgfSk7Cisg
ICAgfTsKKworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2dldDMtcHJp
dmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
Ym9iamVjdHN0b3JlX2dldDMtcHJpdmF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uNjdmMWJlOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZ2V0My1wcml2YXRlLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJPYmplY3RTdG9yZS5nZXQoKSAtIGtl
eSBpcyBhIERhdGUgIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYm9iamVjdHN0b3JlX2dldDMtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9nZXQzLXByaXZhdGUuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZThmYWQwCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9nZXQz
LXByaXZhdGUuaHRtbApAQCAtMCwwICsxLDM0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNo
YXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJPYmplY3RTdG9yZS5nZXQoKSAtIGtleSBpcyBhIERh
dGUgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJo
dHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0
LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICB0ID0gYXN5bmNf
dGVzdCgpLAorICAgICAgcmVjb3JkID0geyBrZXk6IG5ldyBEYXRlKCksIHByb3BlcnR5OiAiZGF0
YSIgfTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVw
Z3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0
OworICAgICAgICBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGtleVBhdGg6ICJrZXki
IH0pCisgICAgICAgICAgLmFkZChyZWNvcmQpOworICAgIH0KKworICAgIG9wZW5fcnEub25zdWNj
ZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgcnEgPSBkYi50cmFuc2FjdGlvbigic3Rv
cmUiKQorICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgic3RvcmUiKQorICAgICAgICAg
ICAgICAgICAgIC5nZXQocmVjb3JkLmtleSk7CisKKyAgICAgICAgcnEub25zdWNjZXNzID0gdC5z
dGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdl
dC5yZXN1bHQua2V5LnZhbHVlT2YoKSwgcmVjb3JkLmtleS52YWx1ZU9mKCkpOworICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQucHJvcGVydHksIHJlY29yZC5wcm9wZXJ0
eSk7CisgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfQorPC9zY3JpcHQ+
CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2dldDQtcHJpdmF0ZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2dldDQt
cHJpdmF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
NGJjZWFiZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRib2JqZWN0c3RvcmVfZ2V0NC1wcml2YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDMgQEAKKworUEFTUyBJREJPYmplY3RTdG9yZS5nZXQoKSAtIGF0dGVtcHQgdG8gcmV0cmlldmUg
YSByZWNvcmQgdGhhdCBkb2Vzbid0IGV4aXN0ICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9nZXQ0LXByaXZhdGUuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZ2V0NC1w
cml2YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWQ3OWRhMgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
b2JqZWN0c3RvcmVfZ2V0NC1wcml2YXRlLmh0bWwKQEAgLTAsMCArMSwyNyBAQAorPCFET0NUWVBF
IGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCT2JqZWN0U3RvcmUuZ2V0
KCkgLSBhdHRlbXB0IHRvIHJldHJpZXZlIGEgcmVjb3JkIHRoYXQgZG9lc24ndCBleGlzdCA8L3Rp
dGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93
d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwv
c2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgIHQgPSBhc3luY190ZXN0KCk7
CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRl
bmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAg
ICAgICAgdmFyIHJxID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRoOiAi
a2V5IiB9KQorICAgICAgICAgICAgICAgICAgIC5nZXQoMSk7CisgICAgICAgIHJxLm9uc3VjY2Vz
cyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMo
ZS50YXJnZXQucmVzdWx0cywgdW5kZWZpbmVkKTsKKyAgICAgICAgICAgIHNldFRpbWVvdXQoZnVu
Y3Rpb24oKSB7IHQuZG9uZSgpOyB9LCAxMCk7CisgICAgICAgIH0pOworICAgIH07CisKKyAgICBv
cGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKCkge307Cis8L3NjcmlwdD4KKworPGRpdiBpZD0i
bG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRib2JqZWN0c3RvcmVfZ2V0NS1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZ2V0NS1wcml2YXRlLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MzIxMDdmCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmpl
Y3RzdG9yZV9nZXQ1LXByaXZhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNT
IElEQk9iamVjdFN0b3JlLmdldCgpIC0gcmV0dXJucyB0aGUgcmVjb3JkIHdpdGggdGhlIGZpcnN0
IGtleSBpbiB0aGUgcmFuZ2UgIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2dldDUtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9nZXQ1LXByaXZhdGUuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iN2FiNTk4Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9y
ZV9nZXQ1LXByaXZhdGUuaHRtbApAQCAtMCwwICsxLDMxIEBACis8IURPQ1RZUEUgaHRtbD4KKzx0
aXRsZT5JREJPYmplY3RTdG9yZS5nZXQoKSAtIHJldHVybnMgdGhlIHJlY29yZCB3aXRoIHRoZSBm
aXJzdCBrZXkgaW4gdGhlIHJhbmdlIDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9
Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwvc2NyaXB0PgorPHNjcmlwdD4KKyAgICB2YXIgZGIKKyAg
ICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKGFzeW5jX3Rlc3QoKSkKKworICAgIG9wZW5fcnEub251
cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3Vs
dAorICAgICAgICB2YXIgb3MgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiKQorCisgICAg
ICAgIGZvcih2YXIgaSA9IDA7IGkgPCAxMDsgaSsrKQorICAgICAgICAgICAgb3MuYWRkKCJkYXRh
IiArIGksIGkpCisgICAgfQorCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbiAoZSkg
eworICAgICAgICBkYi50cmFuc2FjdGlvbigic3RvcmUiKQorICAgICAgICAgIC5vYmplY3RTdG9y
ZSgic3RvcmUiKQorICAgICAgICAgIC5nZXQoIElEQktleVJhbmdlLmJvdW5kKDMsIDYpICkKKyAg
ICAgICAgICAub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkKKyAgICAgICAg
eworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQsICJkYXRhMyIsICJn
ZXQoMy02KSIpOworICAgICAgICAgICAgdGhpcy5kb25lKCk7CisgICAgICAgIH0pCisgICAgfQor
PC9zY3JpcHQ+CisKKzxkaXYgaWQ9bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9nZXQ2LXByaXZhdGUtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9y
ZV9nZXQ2LXByaXZhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjAwMjRlNGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2dldDYtcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwzIEBACisKK1BBU1MgSURCT2JqZWN0U3RvcmUuZ2V0KCkgLSB0aHJvdyBUcmFuc2Fj
dGlvbkluYWN0aXZlRXJyb3Igb24gYWJvcnRlZCB0cmFuc2FjdGlvbiAgCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZ2V0Ni1w
cml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVj
dHN0b3JlX2dldDYtcHJpdmF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjVhN2I1NDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2dldDYtcHJpdmF0ZS5odG1sCkBAIC0wLDAgKzEsMzAg
QEAKK++7vzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklE
Qk9iamVjdFN0b3JlLmdldCgpIC0gdGhyb3cgVHJhbnNhY3Rpb25JbmFjdGl2ZUVycm9yIG9uIGFi
b3J0ZWQgdHJhbnNhY3Rpb24gPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iWXVp
Y2hpTnVraXlhbWEiIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9ZdWljaGlOdWtpeWFtYSI+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0Pgor
ICAgIHZhciBkYiwKKyAgICAgIHQgPSBhc3luY190ZXN0KCk7CisKKyAgICB2YXIgb3Blbl9ycSA9
IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkg
eworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgZGIuY3JlYXRlT2JqZWN0
U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRoOiAia2V5IiB9KQorICAgIH0KKworICAgIG9wZW5fcnEu
b25zdWNjZXNzID0gZnVuY3Rpb24gKGUpIHsKKyAgICAgICAgdmFyIHN0b3JlID0gZGIudHJhbnNh
Y3Rpb24oInN0b3JlIikKKyAgICAgICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInN0b3Jl
Iik7CisgICAgICAgIHN0b3JlLnRyYW5zYWN0aW9uLmFib3J0KCk7CisgICAgICAgIGFzc2VydF90
aHJvd3MoIlRyYW5zYWN0aW9uSW5hY3RpdmVFcnJvciIsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAg
ICAgIHN0b3JlLmdldCgxKTsKKyAgICAgICAgfSwgInRocm93IFRyYW5zYWN0aW9uSW5hY3RpdmVF
cnJvciBvbiBhYm9ydGVkIHRyYW5zYWN0aW9uLiIpOworICAgICAgICB0LmRvbmUoKTsKKyAgICB9
Cis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZ2V0Ny1wcml2YXRlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0
c3RvcmVfZ2V0Ny1wcml2YXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi4zYWNkNjU2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9nZXQ3LXByaXZhdGUtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQk9iamVjdFN0b3JlLmdldCgpIC0gdGhyb3cgRGF0
YUVycm9yIHdoZW4gdXNpbmcgaW52YWxpZCBrZXkgIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2dldDctcHJpdmF0ZS5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9nZXQ3
LXByaXZhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43OTU2MTBj
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJvYmplY3RzdG9yZV9nZXQ3LXByaXZhdGUuaHRtbApAQCAtMCwwICsxLDI5IEBACivvu788IURP
Q1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJPYmplY3RTdG9y
ZS5nZXQoKSAtIHRocm93IERhdGFFcnJvciB3aGVuIHVzaW5nIGludmFsaWQga2V5IDwvdGl0bGU+
Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ill1aWNoaU51a2l5YW1hIiBocmVmPSJodHRwczov
L2dpdGh1Yi5jb20vWXVpY2hpTnVraXlhbWEiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBw
b3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICB0ID0gYXN5
bmNfdGVzdCgpOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3Jx
Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5y
ZXN1bHQ7CisgICAgICAgIGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHsga2V5UGF0aDog
ImtleSIgfSkKKyAgICB9CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsK
KyAgICAgICAgdmFyIHN0b3JlID0gZGIudHJhbnNhY3Rpb24oInN0b3JlIikKKyAgICAgICAgICAg
ICAgICAgICAgICAub2JqZWN0U3RvcmUoInN0b3JlIikKKyAgICAgICAgYXNzZXJ0X3Rocm93cygi
RGF0YUVycm9yIiwgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgc3RvcmUuZ2V0KG51bGwpCisg
ICAgICAgIH0sICJ0aHJvdyBEYXRhRXJyb3Igd2hlbiB1c2luZyBpbnZhbGlkIGtleS4iKTsKKyAg
ICAgICAgdC5kb25lKCk7CisgICAgfQorPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVj
dHN0b3JlX2luZGV4LXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9pbmRleC1wcml2YXRlLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MDg1NjYxCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9p
bmRleC1wcml2YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJPYmpl
Y3RTdG9yZS5pbmRleCgpIC0gcmV0dXJucyBhbiBpbmRleCAgCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfaW5kZXgtcHJpdmF0
ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9y
ZV9pbmRleC1wcml2YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
OTMzODNiMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRib2JqZWN0c3RvcmVfaW5kZXgtcHJpdmF0ZS5odG1sCkBAIC0wLDAgKzEsMzQgQEAK
KzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQk9iamVj
dFN0b3JlLmluZGV4KCkgLSByZXR1cm5zIGFuIGluZGV4IDwvdGl0bGU+Cis8bGluayByZWw9ImF1
dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4K
KzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+
CisgICAgdmFyIGRiLAorICAgICAgdCA9IGFzeW5jX3Rlc3QoKTsKKworICAgIHZhciBvcGVuX3Jx
ID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihl
KSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworCisgICAgICAgIGRiLmNyZWF0ZU9i
amVjdFN0b3JlKCJzdG9yZSIpCisgICAgICAgICAgLmNyZWF0ZUluZGV4KCJpbmRleCIsICJpbmRl
eGVkUHJvcGVydHkiKTsKKyAgICB9OworCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlv
bihlKSB7CisgICAgICAgIHZhciBpbmRleCA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIpCisgICAg
ICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJzdG9yZSIpCisgICAgICAgICAgICAgICAg
ICAgICAgLmluZGV4KCJpbmRleCIpOworCisgICAgICAgIGFzc2VydF90cnVlKGluZGV4IGluc3Rh
bmNlb2YgSURCSW5kZXgsICdpbnN0YW5jZW9mIElEQkluZGV4Jyk7CisgICAgICAgIHQuZG9uZSgp
OworICAgIH07CisKKzwvc2NyaXB0PgorCisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVf
b3BlbkN1cnNvci1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfb3BlbkN1cnNvci1wcml2YXRlLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMTE2ZmY5Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9y
ZV9vcGVuQ3Vyc29yLXByaXZhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNT
IElEQk9iamVjdFN0b3JlLm9wZW5DdXJzb3IoKSAtIGl0ZXJhdGUgdGhyb3VnaCAxMDAgb2JqZWN0
cyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJv
YmplY3RzdG9yZV9vcGVuQ3Vyc29yLXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfb3BlbkN1cnNvci1wcml2YXRlLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTVhZDg4OQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfb3Bl
bkN1cnNvci1wcml2YXRlLmh0bWwKQEAgLTAsMCArMSw0MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8
dGl0bGU+SURCT2JqZWN0U3RvcmUub3BlbkN1cnNvcigpIC0gaXRlcmF0ZSB0aHJvdWdoIDEwMCBv
YmplY3RzPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9w
ZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorCisgICAgdmFyIGRiCisgICAg
dmFyIG9wZW5fcnEgPSBjcmVhdGVkYihhc3luY190ZXN0KCkpCisKKyAgICBvcGVuX3JxLm9udXBn
cmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7
CisgICAgICAgIHZhciBzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIpOworCisg
ICAgICAgIGZvciAodmFyIGk9MDsgaSA8IDEwMDsgaSsrKQorICAgICAgICAgICAgc3RvcmUuYWRk
KCJyZWNvcmRfIiArIGksIGkpOworICAgIH07CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1
bmN0aW9uKGUpIHsKKyAgICAgICAgdmFyIGNvdW50ID0gMAorICAgICAgICB2YXIgdHhuID0gZGIu
dHJhbnNhY3Rpb24oInN0b3JlIikKKworICAgICAgICB0eG4ub2JqZWN0U3RvcmUoInN0b3JlIikK
KyAgICAgICAgICAgLm9wZW5DdXJzb3IoKS5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhmdW5j
dGlvbihlKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoZS50YXJnZXQucmVzdWx0KSB7Cisg
ICAgICAgICAgICAgICAgY291bnQgKz0gMTsKKyAgICAgICAgICAgICAgICBlLnRhcmdldC5yZXN1
bHQuY29udGludWUoKQorICAgICAgICAgICAgfQorICAgICAgICB9KQorCisgICAgICAgIHR4bi5v
bmNvbXBsZXRlID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKGNvdW50LCAxMDApOworICAgICAgICAgICAgdGhpcy5kb25lKCkKKyAgICAgICAg
fSkKKyAgICB9CisKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9vcGVu
Q3Vyc29yX2ludmFsaWQtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX29wZW5DdXJzb3JfaW52YWxpZC1wcml2YXRl
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYWI1OGEx
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJvYmplY3RzdG9yZV9vcGVuQ3Vyc29yX2ludmFsaWQtcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwzIEBACisKK1BBU1MgSURCT2JqZWN0U3RvcmUub3BlbkN1cnNvcigpIC0gaW52YWxp
ZCAtIHBhc3Mgc29tZXRoaW5nIG90aGVyIHRoYW4gbnVtYmVyIAorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX29wZW5DdXJzb3Jf
aW52YWxpZC1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYm9iamVjdHN0b3JlX29wZW5DdXJzb3JfaW52YWxpZC1wcml2YXRlLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2ZiMzMzMwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfb3BlbkN1cnNv
cl9pbnZhbGlkLXByaXZhdGUuaHRtbApAQCAtMCwwICsxLDUwIEBACis8IURPQ1RZUEUgaHRtbD4K
Kzx0aXRsZT5JREJPYmplY3RTdG9yZS5vcGVuQ3Vyc29yKCkgLSBpbnZhbGlkPC90aXRsZT4KKzxs
aW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9k
aW4gSMO4cnRoZSBPbWRhbCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwv
c2NyaXB0PgorCis8c2NyaXB0PgorCisgICAgdmFyIGRiLCBvcGVuOworCisgICAgc2V0dXAoZnVu
Y3Rpb24oKSB7CisgICAgICAgIG9wZW4gPSBpbmRleGVkREIub3BlbigndGVzdGRiLScgKyBuZXcg
RGF0ZSgpLmdldFRpbWUoKSk7CisgICAgICAgIG9wZW4ub251cGdyYWRlbmVlZGVkID0gZnVuY3Rp
b24oZSkgeworICAgICAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICB2
YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIpOworICAgICAgICAgICAg
b2JqU3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgIiIpOworCisgICAgICAgICAgICBvYmpTdG9y
ZS5hZGQoImRhdGEiLCAgMSk7CisgICAgICAgICAgICBvYmpTdG9yZS5hZGQoImRhdGEyIiwgMik7
CisgICAgICAgIH07CisgICAgfSwKKyAgICB7IGV4cGxpY2l0X2RvbmU6IHRydWUgfSk7CisKKwor
ICAgIG9wZW4ub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7CisKKyAgICAgICAgYXN5bmNfdGVzdChk
b2N1bWVudC50aXRsZSArICIgLSBwYXNzIHNvbWV0aGluZyBvdGhlciB0aGFuIG51bWJlciIpLnN0
ZXAoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIGlkeCA9IGRiLnRyYW5zYWN0aW9uKCJ0
ZXN0Iikub2JqZWN0U3RvcmUoInRlc3QiKS5pbmRleCgiaW5kZXgiKTsKKworICAgICAgICAgICAg
YXNzZXJ0X3Rocm93cygiRGF0YUVycm9yIiwKKyAgICAgICAgICAgICAgICBmdW5jdGlvbigpIHsg
aWR4Lm9wZW5DdXJzb3IoeyBsb3dlcjogImEiIH0pOyB9KTsKKworICAgICAgICAgICAgYXNzZXJ0
X3Rocm93cygiRGF0YUVycm9yIiwKKyAgICAgICAgICAgICAgICBmdW5jdGlvbigpIHsgaWR4Lm9w
ZW5DdXJzb3IoeyBsb3dlcjogImEiLCBsb3dlck9wZW46IGZhbHNlIH0pOyB9KTsKKworICAgICAg
ICAgICAgYXNzZXJ0X3Rocm93cygiRGF0YUVycm9yIiwKKyAgICAgICAgICAgICAgICBmdW5jdGlv
bigpIHsgaWR4Lm9wZW5DdXJzb3IoeyBsb3dlcjogImEiLCBsb3dlck9wZW46IGZhbHNlLCB1cHBl
cjogbnVsbCwgdXBwZXJPcGVuOiBmYWxzZSB9KTsgfSk7CisKKyAgICAgICAgICAgIHRoaXMuZG9u
ZSgpOworICAgICAgICB9KTsKKworCisgICAgICAgIC8vIFN0b3AgYmxvY2tpbmcgdGhlIHRlc3Rp
bmcgc3lzdGVtIGZyb20gaGVyZW9uCisgICAgICAgIGRvbmUoKTsKKyAgICB9CisKKzwvc2NyaXB0
PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQtcHJpdmF0ZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dC1w
cml2YXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4w
OWYwNjJkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQtcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwz
IEBACisKK1BBU1MgSURCT2JqZWN0U3RvcmUucHV0KCkgLSBwdXQgd2l0aCBhbiBpbmxpbmUga2V5
ICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJv
YmplY3RzdG9yZV9wdXQtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQtcHJpdmF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjIxOGIzNDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dC1wcml2YXRlLmh0bWwK
QEAgLTAsMCArMSwzNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+
Cis8dGl0bGU+SURCT2JqZWN0U3RvcmUucHV0KCkgLSBwdXQgd2l0aCBhbiBpbmxpbmUga2V5IDwv
dGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDov
L3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+
PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgdCA9IGFzeW5jX3Rlc3Qo
KSwKKyAgICAgIHJlY29yZCA9IHsga2V5OiAxLCBwcm9wZXJ0eTogImRhdGEiIH07CisKKyAgICB2
YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0g
ZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFy
IG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRoOiAia2V5
IiB9KTsKKworICAgICAgICBvYmpTdG9yZS5wdXQocmVjb3JkKTsKKyAgICB9OworCisgICAgb3Bl
bl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBycSA9IGRiLnRyYW5z
YWN0aW9uKCJzdG9yZSIpCisgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJzdG9yZSIp
CisgICAgICAgICAgICAgICAgICAgLmdldChyZWNvcmQua2V5KTsKKworICAgICAgICBycS5vbnN1
Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKGUudGFyZ2V0LnJlc3VsdC5wcm9wZXJ0eSwgcmVjb3JkLnByb3BlcnR5KTsKKyAgICAgICAg
ICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LmtleSwgcmVjb3JkLmtleSk7CisgICAg
ICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfTsKKzwvc2NyaXB0PgorCis8ZGl2
IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQxMC1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0MTAtcHJpdmF0
ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjEyYzc4
NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRib2JqZWN0c3RvcmVfcHV0MTAtcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBA
CisKK1BBU1MgSURCT2JqZWN0U3RvcmUucHV0KCkgLSBBdHRlbXB0IHRvIGNhbGwgJ3B1dCcgd2l0
aG91dCBhbiBrZXkgcGFyYW1ldGVyIHdoZW4gdGhlIG9iamVjdCBzdG9yZSB1c2VzIG91dC1vZi1s
aW5lIGtleXMgIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYm9iamVjdHN0b3JlX3B1dDEwLXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0MTAtcHJpdmF0ZS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRkMjliYTMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDEw
LXByaXZhdGUuaHRtbApAQCAtMCwwICsxLDI5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNo
YXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJPYmplY3RTdG9yZS5wdXQoKSAtIEF0dGVtcHQgdG8g
Y2FsbCAncHV0JyB3aXRob3V0IGFuIGtleSBwYXJhbWV0ZXIgd2hlbiB0aGUgb2JqZWN0IHN0b3Jl
IHVzZXMgb3V0LW9mLWxpbmUga2V5cyA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxl
PSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBk
YiwKKyAgICAgIHQgPSBhc3luY190ZXN0KCksCisgICAgICByZWNvcmQgPSB7IHByb3BlcnR5OiAi
ZGF0YSIgfTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5v
bnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVz
dWx0OworCisgICAgICAgIHZhciBycSwKKyAgICAgICAgICBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9i
amVjdFN0b3JlKCJzdG9yZSIsIHsga2V5UGF0aDogImtleSIgfSk7CisKKyAgICAgICAgYXNzZXJ0
X3Rocm93cygiRGF0YUVycm9yIiwKKyAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBycSA9IG9ialN0
b3JlLnB1dChyZWNvcmQpOyB9KTsKKworICAgICAgICBhc3NlcnRfZXF1YWxzKHJxLCB1bmRlZmlu
ZWQpOworICAgICAgICB0LmRvbmUoKTsKKyAgICB9OworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9Imxv
ZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYm9iamVjdHN0b3JlX3B1dDExLXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQxMS1wcml2YXRlLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NTNmZGJmCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmpl
Y3RzdG9yZV9wdXQxMS1wcml2YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFT
UyBJREJPYmplY3RTdG9yZS5wdXQoKSAtIEF0dGVtcHQgdG8gcHV0IGEgcmVjb3JkIHdoZXJlIHRo
ZSByZWNvcmQncyBrZXkgZG9lcyBub3QgbWVldCB0aGUgY29uc3RyYWludHMgb2YgYSB2YWxpZCBr
ZXkgIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
Ym9iamVjdHN0b3JlX3B1dDExLXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0MTEtcHJpdmF0ZS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJmZWQ0MzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDExLXByaXZh
dGUuaHRtbApAQCAtMCwwICsxLDI5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9
InV0Zi04Ij4KKzx0aXRsZT5JREJPYmplY3RTdG9yZS5wdXQoKSAtIEF0dGVtcHQgdG8gcHV0IGEg
cmVjb3JkIHdoZXJlIHRoZSByZWNvcmQncyBrZXkgZG9lcyBub3QgbWVldCB0aGUgY29uc3RyYWlu
dHMgb2YgYSB2YWxpZCBrZXkgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWlj
cm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIsCisg
ICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAgcmVjb3JkID0geyBrZXk6IHsgdmFsdWU6IDEg
fSwgcHJvcGVydHk6ICJkYXRhIiB9OworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsK
KyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIg
PSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgdmFyIHJxLAorICAgICAgICAgIG9ialN0b3Jl
ID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRoOiAia2V5IiB9KTsKKwor
ICAgICAgICBhc3NlcnRfdGhyb3dzKCJEYXRhRXJyb3IiLAorICAgICAgICAgICAgZnVuY3Rpb24o
KSB7IHJxID0gb2JqU3RvcmUucHV0KHJlY29yZCk7IH0pOworCisgICAgICAgIGFzc2VydF9lcXVh
bHMocnEsIHVuZGVmaW5lZCk7CisgICAgICAgIHQuZG9uZSgpOworICAgIH07Cis8L3NjcmlwdD4K
KworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0MTItcHJpdmF0ZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDEy
LXByaXZhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjhmNzhkNzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDEyLXByaXZhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMyBAQAorCitQQVNTIElEQk9iamVjdFN0b3JlLnB1dCgpIC0gQXR0ZW1wdCB0byBwdXQgYSBy
ZWNvcmQgd2hlcmUgdGhlIHJlY29yZCdzIGluLWxpbmUga2V5IGlzIG5vdCBkZWZpbmVkICAKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3Rz
dG9yZV9wdXQxMi1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYm9iamVjdHN0b3JlX3B1dDEyLXByaXZhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5kZDVlYWZlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQxMi1wcml2YXRlLmh0bWwK
QEAgLTAsMCArMSwyOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+
Cis8dGl0bGU+SURCT2JqZWN0U3RvcmUucHV0KCkgLSBBdHRlbXB0IHRvIHB1dCBhIHJlY29yZCB3
aGVyZSB0aGUgcmVjb3JkJ3MgaW4tbGluZSBrZXkgaXMgbm90IGRlZmluZWQgPC90aXRsZT4KKzxs
aW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jv
c29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4K
KworPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAg
cmVjb3JkID0geyBwcm9wZXJ0eTogImRhdGEiIH07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0
ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAg
ICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICB2YXIgcnEsCisgICAgICAgICAg
b2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGtleVBhdGg6ICJrZXki
IH0pOworCisgICAgICAgIGFzc2VydF90aHJvd3MoIkRhdGFFcnJvciIsCisgICAgICAgICAgICBm
dW5jdGlvbigpIHsgcnEgPSBvYmpTdG9yZS5wdXQocmVjb3JkKTsgfSk7CisKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhycSwgdW5kZWZpbmVkKTsKKyAgICAgICAgdC5kb25lKCk7CisgICAgfTsKKzwv
c2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQxMy1wcml2YXRlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3Rv
cmVfcHV0MTMtcHJpdmF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uNjg2YTk4NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0MTMtcHJpdmF0ZS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCT2JqZWN0U3RvcmUucHV0KCkgLSBBdHRlbXB0IHRv
IHB1dCBhIHJlY29yZCB3aGVyZSB0aGUgb3V0IG9mIGxpbmUga2V5IHByb3ZpZGVkIGRvZXMgbm90
IG1lZXQgdGhlIGNvbnN0cmFpbnRzIG9mIGEgdmFsaWQga2V5ICAKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQxMy1wcml2
YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0
b3JlX3B1dDEzLXByaXZhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li4wN2I5MDNhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQxMy1wcml2YXRlLmh0bWwKQEAgLTAsMCArMSwyOSBA
QAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCT2Jq
ZWN0U3RvcmUucHV0KCkgLSBBdHRlbXB0IHRvIHB1dCBhIHJlY29yZCB3aGVyZSB0aGUgb3V0IG9m
IGxpbmUga2V5IHByb3ZpZGVkIGRvZXMgbm90IG1lZXQgdGhlIGNvbnN0cmFpbnRzIG9mIGEgdmFs
aWQga2V5IDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJl
Zj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3Vw
cG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgdCA9IGFz
eW5jX3Rlc3QoKSwKKyAgICAgIHJlY29yZCA9IHsgcHJvcGVydHk6ICJkYXRhIiB9OworCisgICAg
dmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9
IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAg
dmFyIHJxLAorICAgICAgICAgIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3Jl
Iik7CisKKyAgICAgICAgYXNzZXJ0X3Rocm93cygiRGF0YUVycm9yIiwKKyAgICAgICAgICAgIGZ1
bmN0aW9uKCkgeyBycSA9IG9ialN0b3JlLnB1dChyZWNvcmQsIHsgdmFsdWU6IDEgfSk7IH0pOwor
CisgICAgICAgIGFzc2VydF9lcXVhbHMocnEsIHVuZGVmaW5lZCk7CisgICAgICAgIHQuZG9uZSgp
OworICAgIH07Cis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0MTQt
cHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYm9iamVjdHN0b3JlX3B1dDE0LXByaXZhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc5OTE3YWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDE0LXByaXZhdGUt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQk9iamVjdFN0b3JlLnB1dCgp
IC0gUHV0IGEgcmVjb3JkIHdoZXJlIGEgdmFsdWUgYmVpbmcgaW5kZXhlZCBkb2VzIG5vdCBtZWV0
IHRoZSBjb25zdHJhaW50cyBvZiBhIHZhbGlkIGtleSAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0MTQtcHJpdmF0ZS5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9w
dXQxNC1wcml2YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjhj
OGMxNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRib2JqZWN0c3RvcmVfcHV0MTQtcHJpdmF0ZS5odG1sCkBAIC0wLDAgKzEsMzIgQEAKKzwh
RE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQk9iamVjdFN0
b3JlLnB1dCgpIC0gUHV0IGEgcmVjb3JkIHdoZXJlIGEgdmFsdWUgYmVpbmcgaW5kZXhlZCBkb2Vz
IG5vdCBtZWV0IHRoZSBjb25zdHJhaW50cyBvZiBhIHZhbGlkIGtleSA8L3RpdGxlPgorPGxpbmsg
cmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0
LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8
c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgIHQgPSBhc3luY190ZXN0KCksCisgICAgICByZWNv
cmQgPSB7IGtleTogMSwgaW5kZXhlZFByb3BlcnR5OiB7IHByb3BlcnR5OiAiZGF0YSIgfSB9Owor
CisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5l
ZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAg
ICAgICAgdmFyIHJxLAorICAgICAgICAgIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUo
InN0b3JlIiwgeyBrZXlQYXRoOiAia2V5IiB9KTsKKworICAgICAgICBvYmpTdG9yZS5jcmVhdGVJ
bmRleCgiaW5kZXgiLCAiaW5kZXhlZFByb3BlcnR5Iik7CisKKyAgICAgICAgcnEgPSBvYmpTdG9y
ZS5wdXQocmVjb3JkKTsKKworICAgICAgICBhc3NlcnRfdHJ1ZShycSBpbnN0YW5jZW9mIElEQlJl
cXVlc3QpOworICAgICAgICBycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
IHQuZG9uZSgpOworICAgICAgICB9CisgICAgfTsKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ci
PjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJvYmplY3RzdG9yZV9wdXQxNS1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0MTUtcHJpdmF0ZS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzNiNWE5YgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0
c3RvcmVfcHV0MTUtcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1Mg
SURCT2JqZWN0U3RvcmUucHV0KCkgLSBJZiB0aGUgdHJhbnNhY3Rpb24gdGhpcyBJREJPYmplY3RT
dG9yZSBiZWxvbmdzIHRvIGhhcyBpdHMgbW9kZSBzZXQgdG8gcmVhZG9ubHksIHRocm93IFJlYWRP
bmx5RXJyb3IgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRib2JqZWN0c3RvcmVfcHV0MTUtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQxNS1wcml2YXRlLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjVmZDcxNgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0MTUt
cHJpdmF0ZS5odG1sCkBAIC0wLDAgKzEsMzEgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hh
cnNldD0idXRmLTgiPgorPHRpdGxlPklEQk9iamVjdFN0b3JlLnB1dCgpIC0gSWYgdGhlIHRyYW5z
YWN0aW9uIHRoaXMgSURCT2JqZWN0U3RvcmUgYmVsb25ncyB0byBoYXMgaXRzIG1vZGUgc2V0IHRv
IHJlYWRvbmx5LCB0aHJvdyBSZWFkT25seUVycm9yPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9y
IiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tIj4KKzxsaW5rIHJlbD0i
aGVscCIgaHJlZj0iaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlw
L092ZXJ2aWV3Lmh0bWwjd2lkbC1JREJPYmplY3RTdG9yZS1wdXQtSURCUmVxdWVzdC1hbnktdmFs
dWUtYW55LWtleSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0
PgorPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgICB0
ID0gYXN5bmNfdGVzdCgpOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBv
cGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uIChldmVudCkgeworICAgICAgICBkYiA9
IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgICAgIGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9y
ZSIsIHtrZXlQYXRoOiJwS2V5In0pOworICAgIH0KKworICAgIG9wZW5fcnEub25zdWNjZXNzID0g
ZnVuY3Rpb24gKGV2ZW50KSB7CisgICAgICAgIHZhciB0eG4gPSBkYi50cmFuc2FjdGlvbigic3Rv
cmUiKTsKKyAgICAgICAgdmFyIG9zdG9yZSA9IHR4bi5vYmplY3RTdG9yZSgic3RvcmUiKTsKKyAg
ICAgICAgdC5zdGVwKGZ1bmN0aW9uKCl7CisgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCJSZWFk
T25seUVycm9yIiwgZnVuY3Rpb24oKXsKKyAgICAgICAgICAgICAgICBvc3RvcmUucHV0KHtwS2V5
OiAicHJpbWFyeUtleV8wIn0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgICAg
ICB0LmRvbmUoKTsKKyAgICB9Cis8L3NjcmlwdD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQxNi1wcml2YXRlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3Rv
cmVfcHV0MTYtcHJpdmF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uY2JkMDY0YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0MTYtcHJpdmF0ZS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCT2JqZWN0U3RvcmUucHV0KCkgLSBJZiB0aGUgb2Jq
ZWN0IHN0b3JlIGhhcyBiZWVuIGRlbGV0ZWQsIHRoZSBpbXBsZW1lbnRhdGlvbiBtdXN0IHRocm93
IGEgRE9NRXhjZXB0aW9uIG9mIHR5cGUgSW52YWxpZFN0YXRlRXJyb3IgCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0MTYt
cHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmpl
Y3RzdG9yZV9wdXQxNi1wcml2YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uMTRkYzg2OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0MTYtcHJpdmF0ZS5odG1sCkBAIC0wLDAgKzEs
MzEgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklE
Qk9iamVjdFN0b3JlLnB1dCgpIC0gSWYgdGhlIG9iamVjdCBzdG9yZSBoYXMgYmVlbiBkZWxldGVk
LCB0aGUgaW1wbGVtZW50YXRpb24gbXVzdCB0aHJvdyBhIERPTUV4Y2VwdGlvbiBvZiB0eXBlIElu
dmFsaWRTdGF0ZUVycm9yPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iSW50ZWwi
IGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0
cHM6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwj
d2lkbC1JREJPYmplY3RTdG9yZS1wdXQtSURCUmVxdWVzdC1hbnktdmFsdWUtYW55LWtleSI+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorPGRpdiBpZD0ibG9n
Ij48L2Rpdj4KKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgICBvc3RvcmUsCisgICAgICAg
IHQgPSBhc3luY190ZXN0KCk7CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAg
IG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24gKGV2ZW50KSB7CisgICAgICAgIGRi
ID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgb3N0b3JlID0gZGIuY3JlYXRlT2JqZWN0
U3RvcmUoInN0b3JlIiwge2tleVBhdGg6InBLZXkifSk7CisgICAgICAgIGRiLmRlbGV0ZU9iamVj
dFN0b3JlKCJzdG9yZSIpOworICAgIH0KKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rp
b24gKGV2ZW50KSB7CisgICAgICAgIHQuc3RlcChmdW5jdGlvbigpeworICAgICAgICAgICAgYXNz
ZXJ0X3Rocm93cygiSW52YWxpZFN0YXRlRXJyb3IiLCBmdW5jdGlvbigpeworICAgICAgICAgICAg
ICAgIG9zdG9yZS5wdXQoe3BLZXk6ICJwcmltYXJ5S2V5XzAifSk7CisgICAgICAgICAgICB9KTsK
KyAgICAgICAgfSk7CisgICAgICAgIHQuZG9uZSgpOworICAgIH0KKzwvc2NyaXB0PgorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3Jl
X3B1dDItcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDItcHJpdmF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWNkMzliZAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0Mi1wcml2
YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJPYmplY3RTdG9yZS5w
dXQoKSAtIHB1dCB3aXRoIGFuIG91dC1vZi1saW5lIGtleSAgCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0Mi1wcml2YXRl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3Jl
X3B1dDItcHJpdmF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFk
NWVhNDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYm9iamVjdHN0b3JlX3B1dDItcHJpdmF0ZS5odG1sCkBAIC0wLDAgKzEsMzYgQEAKKzwh
RE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQk9iamVjdFN0
b3JlLnB1dCgpIC0gcHV0IHdpdGggYW4gb3V0LW9mLWxpbmUga2V5IDwvdGl0bGU+Cis8bGluayBy
ZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQu
Y29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxz
Y3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAgIGtleSA9
IDEsCisgICAgICByZWNvcmQgPSB7IHByb3BlcnR5OiAiZGF0YSIgfTsKKworICAgIHZhciBvcGVu
X3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlv
bihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgb2JqU3Rv
cmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiKTsKKworICAgICAgICBvYmpTdG9yZS5w
dXQocmVjb3JkLCBrZXkpOworICAgIH07CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0
aW9uKGUpIHsKKyAgICAgICAgdmFyIHJxID0gZGIudHJhbnNhY3Rpb24oInN0b3JlIikKKyAgICAg
ICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInN0b3JlIikKKyAgICAgICAgICAgICAgICAgICAu
Z2V0KGtleSk7CisKKyAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24o
ZSkgeworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQucHJvcGVydHks
IHJlY29yZC5wcm9wZXJ0eSk7CisKKyAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICB9KTsK
KyAgICB9OworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDMtcHJp
dmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
Ym9iamVjdHN0b3JlX3B1dDMtcHJpdmF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uMDE1Y2IxMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0My1wcml2YXRlLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJPYmplY3RTdG9yZS5wdXQoKSAtIHJl
Y29yZCB3aXRoIHNhbWUga2V5IGFscmVhZHkgZXhpc3RzICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQzLXByaXZhdGUu
aHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVf
cHV0My1wcml2YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTZm
ZjhiYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRib2JqZWN0c3RvcmVfcHV0My1wcml2YXRlLmh0bWwKQEAgLTAsMCArMSw0OCBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCT2JqZWN0U3Rv
cmUucHV0KCkgLSByZWNvcmQgd2l0aCBzYW1lIGtleSBhbHJlYWR5IGV4aXN0cyA8L3RpdGxlPgor
PGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWlj
cm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0
PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwgc3VjY2Vzc19ldmVudCwKKyAgICAgIHQgPSBhc3lu
Y190ZXN0KCksCisgICAgICByZWNvcmQgPSB7IGtleTogMSwgcHJvcGVydHk6ICJkYXRhIiB9LAor
ICAgICAgcmVjb3JkX3B1dCA9IHsga2V5OiAxLCBwcm9wZXJ0eTogImNoYW5nZWQiLCBtb3JlOiBb
InN0dWZmIiwgMl0gfTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Bl
bl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJn
ZXQucmVzdWx0OworICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgi
c3RvcmUiLCB7IGtleVBhdGg6ICJrZXkiIH0pOworICAgICAgICBvYmpTdG9yZS5wdXQocmVjb3Jk
KTsKKworICAgICAgICB2YXIgcnEgPSBvYmpTdG9yZS5wdXQocmVjb3JkX3B1dCk7CisgICAgICAg
IHJxLm9uZXJyb3IgPSBmYWlsKHQsICJlcnJvciBvbiBwdXQiKTsKKworICAgICAgICBycS5vbnN1
Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBzdWNjZXNzX2V2
ZW50ID0gdHJ1ZTsKKyAgICAgICAgfSk7CisgICAgfTsKKworICAgIG9wZW5fcnEub25zdWNjZXNz
ID0gZnVuY3Rpb24oZSkgeworICAgICAgICBhc3NlcnRfdHJ1ZShzdWNjZXNzX2V2ZW50KTsKKwor
ICAgICAgICB2YXIgcnEgPSBkYi50cmFuc2FjdGlvbigic3RvcmUiKQorICAgICAgICAgICAgICAg
ICAgIC5vYmplY3RTdG9yZSgic3RvcmUiKQorICAgICAgICAgICAgICAgICAgIC5nZXQoMSk7CisK
KyAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAg
ICAgICAgdmFyIHJlYyA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhyZWMua2V5LCByZWNvcmRfcHV0LmtleSk7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxz
KHJlYy5wcm9wZXJ0eSwgcmVjb3JkX3B1dC5wcm9wZXJ0eSk7CisgICAgICAgICAgICBhc3NlcnRf
YXJyYXlfZXF1YWxzKHJlYy5tb3JlLCByZWNvcmRfcHV0Lm1vcmUpOworCisgICAgICAgICAgICB0
LmRvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfTsKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ci
PjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJvYmplY3RzdG9yZV9wdXQ0LXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQ0LXByaXZhdGUtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ5ZWJhOGIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0
b3JlX3B1dDQtcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURC
T2JqZWN0U3RvcmUucHV0KCkgLSBwdXQgd2hlcmUgYW4gaW5kZXggaGFzIHVuaXF1ZTp0cnVlIHNw
ZWNpZmllZCAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRib2JqZWN0c3RvcmVfcHV0NC1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDQtcHJpdmF0ZS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAwYjg0MGQKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDQtcHJp
dmF0ZS5odG1sCkBAIC0wLDAgKzEsNDAgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNl
dD0idXRmLTgiPgorPHRpdGxlPklEQk9iamVjdFN0b3JlLnB1dCgpIC0gcHV0IHdoZXJlIGFuIGlu
ZGV4IGhhcyB1bmlxdWU6dHJ1ZSBzcGVjaWZpZWQgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9y
IiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAg
ICB2YXIgZGIsCisgICAgICByZWNvcmQgPSB7IGtleTogMSwgcHJvcGVydHk6ICJkYXRhIiB9Owor
CisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYihhc3luY190ZXN0KCkpOworICAgIG9wZW5fcnEu
b251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJl
c3VsdDsKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3Jl
IiwgeyBhdXRvSW5jcmVtZW50OiB0cnVlIH0pOworICAgICAgICBvYmpTdG9yZS5jcmVhdGVJbmRl
eCgiaTEiLCAicHJvcGVydHkiLCB7IHVuaXF1ZTogdHJ1ZSB9KTsKKyAgICAgICAgb2JqU3RvcmUu
cHV0KHJlY29yZCk7CisKKyAgICAgICAgdmFyIHJxID0gb2JqU3RvcmUucHV0KHJlY29yZCk7Cisg
ICAgICAgIHJxLm9uc3VjY2VzcyA9IGZhaWwodGhpcywgInN1Y2Nlc3Mgb24gcHV0dGluZyBkdXBs
aWNhdGUgaW5kZXhlZCByZWNvcmQiKQorCisgICAgICAgIHJxLm9uZXJyb3IgPSB0aGlzLnN0ZXBf
ZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJxLmVycm9yLm5h
bWUsICJDb25zdHJhaW50RXJyb3IiKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJn
ZXQuZXJyb3IubmFtZSwgIkNvbnN0cmFpbnRFcnJvciIpOworCisgICAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKGUudHlwZSwgImVycm9yIik7CisKKyAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQo
KTsKKyAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7CisgICAgICAgIH0pOworICAgIH07
CisKKyAgICAvLyBEZWZlciBkb25lLCBnaXZpbmcgYSBzcHVyaW91cyBycS5vbnN1Y2Nlc3MgYSBj
aGFuY2UgdG8gcnVuCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAg
ICAgIHRoaXMuZG9uZSgpOworICAgIH0KKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmpl
Y3RzdG9yZV9wdXQ1LXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQ1LXByaXZhdGUtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZlMTBmY2YKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1
dDUtcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCT2JqZWN0
U3RvcmUucHV0KCkgLSBvYmplY3Qgc3RvcmUncyBrZXkgcGF0aCBpcyBhbiBvYmplY3QgYXR0cmli
dXRlICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJvYmplY3RzdG9yZV9wdXQ1LXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0NS1wcml2YXRlLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWJkOTBjNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0NS1wcml2YXRl
Lmh0bWwKQEAgLTAsMCArMSwzNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1
dGYtOCI+Cis8dGl0bGU+SURCT2JqZWN0U3RvcmUucHV0KCkgLSBvYmplY3Qgc3RvcmUncyBrZXkg
cGF0aCBpcyBhbiBvYmplY3QgYXR0cmlidXRlIDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIg
dGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAg
dmFyIGRiLAorICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAgIHJlY29yZCA9IHsgdGVzdDog
eyBvYmo6IHsga2V5OiAxIH0gfSwgcHJvcGVydHk6ICJkYXRhIiB9OworCisgICAgdmFyIG9wZW5f
cnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9u
KGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBvYmpTdG9y
ZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHsga2V5UGF0aDogInRlc3Qub2JqLmtl
eSIgfSk7CisgICAgICAgIG9ialN0b3JlLnB1dChyZWNvcmQpOworICAgIH07CisKKyAgICBvcGVu
X3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdmFyIHJxID0gZGIudHJhbnNh
Y3Rpb24oInN0b3JlIikKKyAgICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInN0b3JlIikK
KyAgICAgICAgICAgICAgICAgICAuZ2V0KHJlY29yZC50ZXN0Lm9iai5rZXkpOworCisgICAgICAg
IHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGFz
c2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LnByb3BlcnR5LCByZWNvcmQucHJvcGVydHkpOwor
CisgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfTsKKzwvc2NyaXB0Pgor
Cis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQ2LXByaXZhdGUtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQ2LXBy
aXZhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEz
YWUwNjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYm9iamVjdHN0b3JlX3B1dDYtcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwz
IEBACisKK1BBU1MgSURCT2JqZWN0U3RvcmUucHV0KCkgLSBhdXRvSW5jcmVtZW50IGFuZCBpbmxp
bmUga2V5cyAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRib2JqZWN0c3RvcmVfcHV0Ni1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDYtcHJpdmF0ZS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA3NDgwYWUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDYtcHJp
dmF0ZS5odG1sCkBAIC0wLDAgKzEsNDcgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNl
dD0idXRmLTgiPgorPHRpdGxlPklEQk9iamVjdFN0b3JlLnB1dCgpIC0gYXV0b0luY3JlbWVudCBh
bmQgaW5saW5lIGtleXMgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9z
b2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAg
ICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAgcmVjb3JkID0geyBwcm9wZXJ0eTogImRhdGEiIH0s
CisgICAgICBleHBlY3RlZF9rZXlzID0gWyAxLCAyLCAzLCA0IF07CisKKyAgICB2YXIgb3Blbl9y
cSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24o
ZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIG9ialN0b3Jl
ID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRoOiAia2V5IiwgYXV0b0lu
Y3JlbWVudDogdHJ1ZSB9KTsKKworICAgICAgICBvYmpTdG9yZS5wdXQocmVjb3JkKTsKKyAgICAg
ICAgb2JqU3RvcmUucHV0KHJlY29yZCk7CisgICAgICAgIG9ialN0b3JlLnB1dChyZWNvcmQpOwor
ICAgICAgICBvYmpTdG9yZS5wdXQocmVjb3JkKTsKKyAgICB9OworCisgICAgb3Blbl9ycS5vbnN1
Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBhY3R1YWxfa2V5cyA9IFtdLAorICAg
ICAgICAgIHJxID0gZGIudHJhbnNhY3Rpb24oInN0b3JlIikKKyAgICAgICAgICAgICAgICAgLm9i
amVjdFN0b3JlKCJzdG9yZSIpCisgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7CisKKyAg
ICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAg
ICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICAgICAgaWYgKGN1cnNv
cikgeworICAgICAgICAgICAgICAgIGFjdHVhbF9rZXlzLnB1c2goY3Vyc29yLnZhbHVlLmtleSk7
CisgICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7CisgICAgICAgICAgICB9CisgICAg
ICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGFjdHVh
bF9rZXlzLCBleHBlY3RlZF9rZXlzKTsKKyAgICAgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgfTsKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ci
PjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJvYmplY3RzdG9yZV9wdXQ3LXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQ3LXByaXZhdGUtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhjZTRlYWYKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0
b3JlX3B1dDctcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURC
T2JqZWN0U3RvcmUucHV0KCkgLSBhdXRvSW5jcmVtZW50IGFuZCBvdXQtb2YtbGluZSBrZXlzICAK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmpl
Y3RzdG9yZV9wdXQ3LXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0Ny1wcml2YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uNDVmZjg5OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0Ny1wcml2YXRlLmh0bWwK
QEAgLTAsMCArMSw0NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+
Cis8dGl0bGU+SURCT2JqZWN0U3RvcmUucHV0KCkgLSBhdXRvSW5jcmVtZW50IGFuZCBvdXQtb2Yt
bGluZSBrZXlzIDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIg
aHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
c3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgdCA9
IGFzeW5jX3Rlc3QoKSwKKyAgICAgIHJlY29yZCA9IHsgcHJvcGVydHk6ICJkYXRhIiB9LAorICAg
ICAgZXhwZWN0ZWRfa2V5cyA9IFsgMSwgMiwgMywgNCBdOworCisgICAgdmFyIG9wZW5fcnEgPSBj
cmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsK
KyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRi
LmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHsgYXV0b0luY3JlbWVudDogdHJ1ZSB9KTsKKwor
ICAgICAgICBvYmpTdG9yZS5wdXQocmVjb3JkKTsKKyAgICAgICAgb2JqU3RvcmUucHV0KHJlY29y
ZCk7CisgICAgICAgIG9ialN0b3JlLnB1dChyZWNvcmQpOworICAgICAgICBvYmpTdG9yZS5wdXQo
cmVjb3JkKTsKKyAgICB9OworCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7
CisgICAgICAgIHZhciBhY3R1YWxfa2V5cyA9IFtdLAorICAgICAgICAgIHJxID0gZGIudHJhbnNh
Y3Rpb24oInN0b3JlIikKKyAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJzdG9yZSIpCisg
ICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7CisKKyAgICAgICAgcnEub25zdWNjZXNzID0g
dC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFy
Z2V0LnJlc3VsdDsKKworICAgICAgICAgICAgaWYgKGN1cnNvcikgeworICAgICAgICAgICAgICAg
IGFjdHVhbF9rZXlzLnB1c2goY3Vyc29yLmtleSk7CisgICAgICAgICAgICAgICAgY3Vyc29yLmNv
bnRpbnVlKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAg
ICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGFjdHVhbF9rZXlzLCBleHBlY3RlZF9rZXlzKTsKKyAg
ICAgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAg
fTsKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQ4LXByaXZhdGUt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmpl
Y3RzdG9yZV9wdXQ4LXByaXZhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLmJhMjM3YTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDgtcHJpdmF0ZS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCT2JqZWN0U3RvcmUucHV0KCkgLSBvYmplY3Qg
c3RvcmUgaGFzIGF1dG9JbmNyZW1lbnQ6dHJ1ZSBhbmQgdGhlIGtleSBwYXRoIGlzIGFuIG9iamVj
dCBhdHRyaWJ1dGUgIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDgtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQ4LXByaXZhdGUuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNWU3OGNiCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQ4
LXByaXZhdGUuaHRtbApAQCAtMCwwICsxLDQ3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNo
YXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJPYmplY3RTdG9yZS5wdXQoKSAtIG9iamVjdCBzdG9y
ZSBoYXMgYXV0b0luY3JlbWVudDp0cnVlIGFuZCB0aGUga2V5IHBhdGggaXMgYW4gb2JqZWN0IGF0
dHJpYnV0ZSA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhy
ZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1
cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgIHQgPSBh
c3luY190ZXN0KCksCisgICAgICByZWNvcmQgPSB7IHByb3BlcnR5OiAiZGF0YSIgfSwKKyAgICAg
IGV4cGVjdGVkX2tleXMgPSBbIDEsIDIsIDMsIDQgXTsKKworICAgIHZhciBvcGVuX3JxID0gY3Jl
YXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Cisg
ICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5j
cmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGtleVBhdGg6ICJ0ZXN0Lm9iai5rZXkiLCBhdXRv
SW5jcmVtZW50OiB0cnVlIH0pOworCisgICAgICAgIG9ialN0b3JlLnB1dChyZWNvcmQpOworICAg
ICAgICBvYmpTdG9yZS5wdXQocmVjb3JkKTsKKyAgICAgICAgb2JqU3RvcmUucHV0KHJlY29yZCk7
CisgICAgICAgIG9ialN0b3JlLnB1dChyZWNvcmQpOworICAgIH07CisKKyAgICBvcGVuX3JxLm9u
c3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdmFyIGFjdHVhbF9rZXlzID0gW10sCisg
ICAgICAgICAgcnEgPSBkYi50cmFuc2FjdGlvbigic3RvcmUiKQorICAgICAgICAgICAgICAgICAu
b2JqZWN0U3RvcmUoInN0b3JlIikKKyAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IoKTsKKwor
ICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAg
ICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OworCisgICAgICAgICAgICBpZiAoY3Vy
c29yKSB7CisgICAgICAgICAgICAgICAgYWN0dWFsX2tleXMucHVzaChjdXJzb3IudmFsdWUudGVz
dC5vYmoua2V5KTsKKyAgICAgICAgICAgICAgICBjdXJzb3IuY29udGludWUoKTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGFzc2VydF9hcnJheV9l
cXVhbHMoYWN0dWFsX2tleXMsIGV4cGVjdGVkX2tleXMpOworICAgICAgICAgICAgICAgIHQuZG9u
ZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICB9OworPC9zY3JpcHQ+CisKKzxk
aXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDktcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDktcHJpdmF0
ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTk0Zjdk
OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRib2JqZWN0c3RvcmVfcHV0OS1wcml2YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAK
KworUEFTUyBJREJPYmplY3RTdG9yZS5wdXQoKSAtIEF0dGVtcHQgdG8gcHV0IGEgcmVjb3JkIHRo
YXQgZG9lcyBub3QgbWVldCB0aGUgY29uc3RyYWludHMgb2YgYW4gb2JqZWN0IHN0b3JlJ3MgaW5s
aW5lIGtleSByZXF1aXJlbWVudHMgIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDktcHJpdmF0ZS5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQ5LXByaXZhdGUu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NzlhZWQ3Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3Rz
dG9yZV9wdXQ5LXByaXZhdGUuaHRtbApAQCAtMCwwICsxLDI3IEBACis8IURPQ1RZUEUgaHRtbD4K
KzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJPYmplY3RTdG9yZS5wdXQoKSAtIEF0
dGVtcHQgdG8gcHV0IGEgcmVjb3JkIHRoYXQgZG9lcyBub3QgbWVldCB0aGUgY29uc3RyYWludHMg
b2YgYW4gb2JqZWN0IHN0b3JlJ3MgaW5saW5lIGtleSByZXF1aXJlbWVudHMgPC90aXRsZT4KKzxs
aW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jv
c29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4K
KworPHNjcmlwdD4KKyAgICB2YXIgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAgIHJlY29yZCA9IHsg
a2V5OiAxLCBwcm9wZXJ0eTogImRhdGEiIH07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRi
KHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAg
ICB2YXIgcnEsCisgICAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQsCisgICAgICAgICAgb2Jq
U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGtleVBhdGg6ICJrZXkiIH0p
OworCisgICAgICAgIGFzc2VydF90aHJvd3MoIkRhdGFFcnJvciIsCisgICAgICAgICAgICBmdW5j
dGlvbigpIHsgcnEgPSBvYmpTdG9yZS5wdXQocmVjb3JkLCAxKTsgfSk7CisKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhycSwgdW5kZWZpbmVkKTsKKyAgICAgICAgdC5kb25lKCk7CisgICAgfTsKKzwv
c2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJ0cmFuc2FjdGlvbi1vbmNvbXBsZXRlLXByaXZhdGUt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJ0cmFu
c2FjdGlvbi1vbmNvbXBsZXRlLXByaXZhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLmExZjNmMzIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYnRyYW5zYWN0aW9uLW9uY29tcGxldGUtcHJpdmF0
ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCVHJhbnNhY3Rpb24gLSBj
b21wbGV0ZSBldmVudCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJ0cmFuc2FjdGlvbi1vbmNvbXBsZXRlLXByaXZhdGUuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRidHJhbnNhY3Rpb24tb25jb21wbGV0ZS1wcml2
YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODdmNmQ0NAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRidHJh
bnNhY3Rpb24tb25jb21wbGV0ZS1wcml2YXRlLmh0bWwKQEAgLTAsMCArMSw1MyBAQAorPCFET0NU
WVBFIGh0bWw+Cis8dGl0bGU+SURCVHJhbnNhY3Rpb24gLSBjb21wbGV0ZSBldmVudDwvdGl0bGU+
Cis8bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxl
PSJPZGluIEjDuHJ0aGUgT21kYWwiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0Lmpz
Ij48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIsIHN0b3JlLAorICAgICAgdCA9IGFz
eW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUsIHt0aW1lb3V0OiAxMDAwMH0pLAorICAgICAgb3Blbl9y
cSA9IGNyZWF0ZWRiKHQpLAorICAgICAgc3RhZ2VzID0gW107CisKKyAgICBvcGVuX3JxLm9udXBn
cmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgc3RhZ2VzLnB1c2goInVwZ3JhZGVu
ZWVkZWQiKTsKKworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgc3RvcmUg
PSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmUnKTsKKworICAgICAgICBlLnRhcmdldC50cmFu
c2FjdGlvbi5vbmNvbXBsZXRlID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBzdGFnZXMucHVz
aCgiY29tcGxldGUiKTsKKyAgICAgICAgfTsKKyAgICB9OworCisgICAgb3Blbl9ycS5vbnN1Y2Nl
c3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHN0YWdlcy5wdXNoKCJzdWNjZXNzIik7CisKKyAg
ICAgICAgLy8gTWFraW5nIGEgdG90YWxseSBuZXcgdHJhbnNhY3Rpb24gdG8gY2hlY2sKKyAgICAg
ICAgZGIudHJhbnNhY3Rpb24oJ3N0b3JlJykub2JqZWN0U3RvcmUoJ3N0b3JlJykuY291bnQoKS5v
bnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBhc3NlcnRf
YXJyYXlfZXF1YWxzKHN0YWdlcywgWyAidXBncmFkZW5lZWRlZCIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiY29tcGxldGUiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgInN1Y2Nlc3MiIF0pOworICAgICAgICAgICAgdC5kb25l
KCk7CisgICAgICAgIH0pOworICAgICAgICAvLyBYWFg6IE1ha2Ugb25lIHdpdGggcmVhbCB0cmFu
c2FjdGlvbnMsIG5vdCBvbmx5IG9wZW4oKSB2ZXJzaW9uY2hhbmdlIG9uZQorCisgICAgICAgIC8q
ZGIudHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlJykub3BlbkN1cnNvcigpLm9uc3VjY2Vz
cyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHN0YWdlcy5wdXNoKCJvcGVuY3Vyc29yMSIp
OworICAgICAgICB9CisKKyAgICAgICAgc3RvcmUub3BlbkN1cnNvcigpLm9uc3VjY2VzcyA9IGZ1
bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHN0YWdlcy5wdXNoKCJvcGVuY3Vyc29yMiIpOworICAg
ICAgICB9CisKKyAgICAgICAgZS50YXJnZXQudHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3Jl
Jykub3BlbkN1cnNvcigpLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHN0
YWdlcy5wdXNoKCJvcGVuY3Vyc29yMyIpOworICAgICAgICB9CisgICAgICAgICovCisgICAgfQor
Cis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRidHJhbnNhY3Rpb24tcHJpdmF0ZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYnRyYW5zYWN0aW9u
LXByaXZhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjdlN2FkMTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYnRyYW5zYWN0aW9uLXByaXZhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBA
QAorCitQQVNTIElEQlRyYW5zYWN0aW9uIC0gcmVxdWVzdCBnb3R0ZW4gYnkgdGhlIGhhbmRsZXIg
CitQQVNTIElEQlRyYW5zYWN0aW9uIC0gcmVxdWVzdCByZXR1cm5lZCBieSBvcGVuKCkgCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRidHJhbnNhY3Rp
b24tcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJ0
cmFuc2FjdGlvbi1wcml2YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uMzU3ZTY1ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRidHJhbnNhY3Rpb24tcHJpdmF0ZS5odG1sCkBAIC0wLDAgKzEsNDYgQEAKKzwh
RE9DVFlQRSBodG1sPgorPHRpdGxlPklEQlRyYW5zYWN0aW9uPC90aXRsZT4KKzxsaW5rIHJlbD0i
YXV0aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRo
ZSBPbWRhbCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0Pgor
Cis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgIHQgPSBhc3luY190ZXN0KGRvY3VtZW50LnRp
dGxlICsgIiAtIHJlcXVlc3QgZ290dGVuIGJ5IHRoZSBoYW5kbGVyIiksCisgICAgICBvcGVuX3Qg
PSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlICsgIiAtIHJlcXVlc3QgcmV0dXJuZWQgYnkgb3Bl
bigpIiksCisKKyAgICBvcGVuX3JxID0gaW5kZXhlZERCLm9wZW4oImlkYnRyYW5zYWN0aW9uLSIg
KyBuZXcgRGF0ZSgpLmdldFRpbWUoKSArIE1hdGgucmFuZG9tKCkpOworCisgICAgb3Blbl90LnN0
ZXAoZnVuY3Rpb24oKSB7CisgICAgICAgIGFzc2VydF9lcXVhbHMob3Blbl9ycS50cmFuc2FjdGlv
biwgbnVsbCwgIklEQk9wZW5EQlJlcXVlc3QudHJhbnNhY3Rpb24iKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhvcGVuX3JxLnNvdXJjZSwgbnVsbCwgIklEQk9wZW5EQlJlcXVlc3Quc291cmNlIik7
CisgICAgICAgIGFzc2VydF9lcXVhbHMob3Blbl9ycS5yZWFkeVN0YXRlLCAicGVuZGluZyIsICJJ
REJPcGVuREJSZXF1ZXN0LnJlYWR5U3RhdGUiKTsKKworICAgICAgICBhc3NlcnRfdHJ1ZShvcGVu
X3JxIGluc3RhbmNlb2YgSURCT3BlbkRCUmVxdWVzdCwgIm9wZW5fcnEgaW5zdGFuY2VvZiBJREJP
cGVuREJSZXF1ZXN0Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMob3Blbl9ycSArICIiLCAiW29i
amVjdCBJREJPcGVuREJSZXF1ZXN0XSIsICJJREJPcGVuREJSZXF1ZXN0IChvcGVuX3JxKSIpOwor
CisgICAgICAgIG9wZW5fdC5kb25lKCk7CisgICAgfSk7CisKKyAgICBvcGVuX3JxLm9udXBncmFk
ZW5lZWRlZCA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhlLnRhcmdldCwgb3Blbl9ycSwgImUudGFyZ2V0IGlzIHJldXNpbmcgdGhlIHNhbWUgSURCT3Bl
bkRCUmVxdWVzdCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnRyYW5zYWN0aW9u
LCBvcGVuX3JxLnRyYW5zYWN0aW9uLCAiSURCT3BlbkRCUmVxdWVzdC50cmFuc2FjdGlvbiIpOwor
CisgICAgICAgIGFzc2VydF90cnVlKGUudGFyZ2V0LnRyYW5zYWN0aW9uIGluc3RhbmNlb2YgSURC
VHJhbnNhY3Rpb24sICJ0cmFuc2FjdGlvbiBpbnN0YW5jZW9mIElEQlRyYW5zYWN0aW9uIik7Cisg
ICAgICAgIHQuZG9uZSgpOworICAgIH0pOworCisKKyAgICAvLyBOb3QgcGxhdXNpYmxlIGNvbmRp
dGlvbnMuLi4KKyAgICBmdW5jdGlvbiBmYWlsX2hlbHBlcihuYW1lKSB7CisgICAgICAgIHJldHVy
biBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHQuc3RlcChmdW5jdGlvbigpIHsgYXNzZXJ0X3Vu
cmVhY2hlZChuYW1lKTsgfSk7CisgICAgICAgICAgICBvcGVuX3Quc3RlcChmdW5jdGlvbigpIHsg
YXNzZXJ0X3VucmVhY2hlZChuYW1lKTsgfSk7CisgICAgICAgIH07CisgICAgfQorICAgIG9wZW5f
cnEub25ibG9ja2VkID0gZmFpbF9oZWxwZXIoJ29wZW5fcnEub25ibG9ja2VkJyk7CisgICAgb3Bl
bl9ycS5vbmVycm9yID0gZmFpbF9oZWxwZXIoJ29wZW5fcnEub25lcnJvcicpOworPC9zY3JpcHQ+
CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYnRyYW5zYWN0aW9uX2Fib3J0LXByaXZhdGUtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJ0cmFuc2FjdGlvbl9hYm9y
dC1wcml2YXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5kMWVlYTBhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJ0cmFuc2FjdGlvbl9hYm9ydC1wcml2YXRlLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDMgQEAKKworUEFTUyBJREJUcmFuc2FjdGlvbiAtIGFib3J0IAorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYnRyYW5zYWN0aW9uX2Fib3J0LXBy
aXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRidHJhbnNh
Y3Rpb25fYWJvcnQtcHJpdmF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLmYwMWJlYWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYnRyYW5zYWN0aW9uX2Fib3J0LXByaXZhdGUuaHRtbApAQCAtMCwwICsxLDQx
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8dGl0bGU+SURCVHJh
bnNhY3Rpb24gLSBhYm9ydDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRv
Om9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRi
LCBhYm9ydGVkLAorICAgICAgdCA9IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUsIHt0aW1lb3V0
OiAxMDAwMH0pLAorICAgICAgcmVjb3JkID0geyBpbmRleGVkUHJvcGVydHk6ICJiYXIiIH07CisK
KyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVl
ZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAg
ICAgdmFyIHR4biA9IGUudGFyZ2V0LnRyYW5zYWN0aW9uLAorICAgICAgICAgIG9ialN0b3JlID0g
ZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIik7CisKKyAgICAgICAgb2JqU3RvcmUuYWRkKHJl
Y29yZCwgMSk7CisgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmQsIDIpOworICAgICAgICB2YXIg
aW5kZXggPSBvYmpTdG9yZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAiaW5kZXhlZFByb3BlcnR5Iiwg
eyB1bmlxdWU6IHRydWUgfSk7CisKKyAgICAgICAgYXNzZXJ0X3RydWUoaW5kZXggaW5zdGFuY2Vv
ZiBJREJJbmRleCwgIklEQkluZGV4Iik7CisKKyAgICAgICAgZS50YXJnZXQudHJhbnNhY3Rpb24u
b25hYm9ydCA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGFib3J0ZWQg
PSB0cnVlOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnR5cGUsICJhYm9ydCIsICJldmVu
dCB0eXBlIik7CisgICAgICAgIH0pOworCisgICAgICAgIGRiLm9uYWJvcnQgPSBmdW5jdGlvbihl
KSB7CisgICAgICAgICAgICBhc3NlcnRfdHJ1ZShhYm9ydGVkLCAidHJhbnNhY3Rpb24uYWJvcnQg
ZXZlbnQgaGFzIGZpcmVkIik7CisgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgfTsKKwor
ICAgICAgICBlLnRhcmdldC50cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gZmFpbCh0LCAiZ290IGNv
bXBsZXRlLCBleHBlY3RlZCBhYm9ydCIpOworICAgIH07CisKKzwvc2NyaXB0PgorCis8ZGl2IGlk
PWxvZz48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRidmVyc2lvbmNoYW5nZWV2ZW50LXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJ2ZXJzaW9uY2hhbmdlZXZlbnQtcHJpdmF0ZS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmYyZTgzMgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
dmVyc2lvbmNoYW5nZWV2ZW50LXByaXZhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAor
CitQQVNTIElEQlZlcnNpb25DaGFuZ2VFdmVudCBmaXJlZCBpbiB1cGdyYWRlbmVlZGVkLCB2ZXJz
aW9uY2hhbmdlIGFuZCBkZWxldGVEYXRhYmFzZSAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJ2ZXJzaW9uY2hhbmdlZXZlbnQtcHJpdmF0ZS5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJ2ZXJzaW9uY2hhbmdlZXZl
bnQtcHJpdmF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM3MDU0
ZmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYnZlcnNpb25jaGFuZ2VldmVudC1wcml2YXRlLmh0bWwKQEAgLTAsMCArMSw2NiBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8dGl0bGU+SURCVmVyc2lvbkNoYW5nZUV2ZW50IGZpcmVkIGluIHVwZ3Jh
ZGVuZWVkZWQsIHZlcnNpb25jaGFuZ2UgYW5kIGRlbGV0ZURhdGFiYXNlPC90aXRsZT4KKzxsaW5r
IHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4g
SMO4cnRoZSBPbWRhbCI+Cis8bGluayByZWw9aGVscCBocmVmPSJodHRwOi8vZHZjcy53My5vcmcv
aGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI3ZlcnNpb25jaGFuZ2UtLXRy
YW5zYWN0aW9uLXN0ZXBzIj4KKzxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9IkZpcmUgYSB2ZXJzaW9u
Y2hhbmdlIGV2ZW50IGF0IGVhY2ggb2JqZWN0IGluIG9wZW5EYXRhYmFzZXMgdGhhdCBpcyBvcGVu
LiBUaGUgZXZlbnQgbXVzdCBub3QgYmUgZmlyZWQgb24gb2JqZWN0cyB3aGljaCBoYXMgdGhlIGNs
b3NlUGVuZGluZyBmbGFnIHNldC4gVGhlIGV2ZW50IG11c3QgdXNlIHRoZSBJREJWZXJzaW9uQ2hh
bmdlRXZlbnQgaW50ZXJmYWNlIGFuZCBoYXZlIHRoZSBvbGRWZXJzaW9uIHByb3BlcnR5IHNldCB0
byBkYidzIHZlcnNpb24gYW5kIGhhdmUgdGhlIG5ld1ZlcnNpb24gcHJvcGVydHkgc2V0IHRvIHZl
cnNpb24uIj4KKzxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9IkZpcmUgYSB1cGdyYWRlbmVlZGVkIGV2
ZW50IHRhcmdldGVkIGF0IHJlcXVlc3QuIFRoZSBldmVudCBtdXN0IHVzZSB0aGUgSURCVmVyc2lv
bkNoYW5nZUV2ZW50IGludGVyZmFjZSBhbmQgaGF2ZSB0aGUgb2xkVmVyc2lvbiBwcm9wZXJ0eSBz
ZXQgdG8gb2xkIHZlcnNpb24gYW5kIGhhdmUgdGhlIG5ld1ZlcnNpb24gcHJvcGVydHkgc2V0IHRv
IHZlcnNpb24uIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+
CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CisKKzxzY3JpcHQ+CisKKyAgICB2YXIgZGIsCisgICAg
ICAgIHQgPSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlLCB7dGltZW91dDogMTAwMDB9KTsKKwor
ICAgIHQuc3RlcChmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIG9wZW5ycSA9IGluZGV4ZWREQi5v
cGVuKCdkYicsIDMpOworCisgICAgICAgIG9wZW5ycS5vbnVwZ3JhZGVuZWVkZWQgPSB0LnN0ZXBf
ZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUub2xkVmVyc2lv
biwgMCwgIm9sZCB2ZXJzaW9uICh1cGdyYWRlbmVlZGVkKSIpOworICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhlLm5ld1ZlcnNpb24sIDMsICJuZXcgdmVyc2lvbiAodXBncmFkZW5lZWRlZCkiKTsK
KyAgICAgICAgICAgIGFzc2VydF90cnVlKGUgaW5zdGFuY2VvZiBJREJWZXJzaW9uQ2hhbmdlRXZl
bnQsICJ1cGdyYWRlbmVlZGVkIGluc3RhbmNlb2YgSURCVmVyc2lvbkNoYW5nZUV2ZW50Iik7Cisg
ICAgICAgIH0pOworCisgICAgICAgIG9wZW5ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5j
dGlvbihlKSB7CisgICAgICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICAg
ICAgZGIub252ZXJzaW9uY2hhbmdlID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAg
ICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS5vbGRWZXJzaW9uLCAzLCAib2xkIHZlcnNpb24gKHZl
cnNpb25jaGFuZ2UpIik7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLm5ld1ZlcnNp
b24sIG51bGwsICJuZXcgdmVyc2lvbiAodmVyc2lvbmNoYW5nZSkiKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnRfdHJ1ZShlIGluc3RhbmNlb2YgSURCVmVyc2lvbkNoYW5nZUV2ZW50LCAidmVyc2lv
bmNoYW5nZSBpbnN0YW5jZW9mIElEQlZlcnNpb25DaGFuZ2VFdmVudCIpOworICAgICAgICAgICAg
ICAgIGRiLmNsb3NlKCk7CisgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgLy8gRXJyb3Jz
CisgICAgICAgICAgICBkYi5vbmVycm9yID0gZmFpbCh0LCAiZGIuZXJyb3IiKTsKKyAgICAgICAg
ICAgIGRiLm9uYWJvcnQgPSBmYWlsKHQsICJkYi5hYm9ydCIpOworCisgICAgICAgICAgICBzZXRU
aW1lb3V0KHQuc3RlcF9mdW5jKGRlbGV0ZURCKSwgMTApOworICAgICAgICB9KTsKKworICAgICAg
ICAvLyBFcnJvcnMKKyAgICAgICAgb3BlbnJxLm9uZXJyb3IgPSBmYWlsKHQsICJvcGVuLmVycm9y
Iik7CisgICAgICAgIG9wZW5ycS5vbmJsb2NrZWQgPSBmYWlsKHQsICJvcGVuLmJsb2NrZWQiKTsK
KworICAgIH0pOworCisgICAgZnVuY3Rpb24gZGVsZXRlREIgKGUpIHsKKyAgICAgICAgdmFyIGRl
bGV0ZXJxID0gaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKCdkYicpOworCisgICAgICAgIGRlbGV0
ZXJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGFz
c2VydF9lcXVhbHMoZS5vbGRWZXJzaW9uLCAzLCAib2xkIHZlcnNpb24gKGRlbGV0ZS5zdWNjZXNz
KSIpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLm5ld1ZlcnNpb24sIG51bGwsICJuZXcg
dmVyc2lvbiAoZGVsZXRlLnN1Y2Nlc3MpIik7CisgICAgICAgICAgICBhc3NlcnRfdHJ1ZShlIGlu
c3RhbmNlb2YgSURCVmVyc2lvbkNoYW5nZUV2ZW50LCAiZGVsZXRlLnN1Y2Nlc3MgaW5zdGFuY2Vv
ZiBJREJWZXJzaW9uQ2hhbmdlRXZlbnQiKTsKKworICAgICAgICAgICAgc2V0VGltZW91dChmdW5j
dGlvbigpIHsgdC5kb25lKCk7IH0sIDEwKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgLy8gRXJy
b3JzCisgICAgICAgIGRlbGV0ZXJxLm9uZXJyb3IgPSBmYWlsKHQsICJkZWxldGUuZXJyb3IiKTsK
KyAgICAgICAgZGVsZXRlcnEub25ibG9ja2VkID0gZmFpbCh0LCAiZGVsZXRlLmJsb2NrZWQiKTsK
KyAgICB9CisKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pbmRleF9zb3J0X29yZGVyLXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pbmRleF9zb3J0X29yZGVyLXByaXZhdGUtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI0NDE4YWEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2luZGV4
X3NvcnRfb3JkZXItcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1Mg
VmVyaWZ5IGtleSBzb3J0IG9yZGVyIGluIGFuIGluZGV4IGlzICdudW1iZXIgPCBEYXRlIDwgRE9N
U3RyaW5nJyAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaW5kZXhfc29ydF9vcmRlci1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2luZGV4X3NvcnRfb3JkZXItcHJpdmF0ZS5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc1N2IzNzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2luZGV4X3NvcnRfb3JkZXItcHJpdmF0ZS5odG1s
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
L3czYy9pbmRleGVkZGIva2V5X2ludmFsaWQtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2tleV9pbnZhbGlkLXByaXZhdGUtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk2YzVlYmYKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2tleV9pbnZhbGlk
LXByaXZhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzYgQEAKKworUEFTUyBJbnZhbGlkIGtl
eSAtIHRydWUgCitQQVNTIEludmFsaWQga2V5IC0gZmFsc2UgCitQQVNTIEludmFsaWQga2V5IC0g
bnVsbCAKK1BBU1MgSW52YWxpZCBrZXkgLSBOYU4gCitQQVNTIEludmFsaWQga2V5IC0gdW5kZWZp
bmVkIAorUEFTUyBJbnZhbGlkIGtleSAtIHVuZGVmaW5lZDIgCitQQVNTIEludmFsaWQga2V5IC0g
ZnVuY3Rpb24oKSB7fSAKK1BBU1MgSW52YWxpZCBrZXkgLSB7fSAKK1BBU1MgSW52YWxpZCBrZXkg
LSB7IG9iajogMSB9IAorUEFTUyBJbnZhbGlkIGtleSAtIE1hdGggCitQQVNTIEludmFsaWQga2V5
IC0gd2luZG93IAorUEFTUyBJbnZhbGlkIGtleSAtIHtsZW5ndGg6MCxjb25zdHJ1Y3RvcjpBcnJh
eX0gCitQQVNTIEludmFsaWQga2V5IC0gQXJyYXkgY2xvbmXDouKCrOKEonMgaW5zdGFuY2UgCitQ
QVNTIEludmFsaWQga2V5IC0gQXJyYXkgKG9iamVjdCkgCitQQVNTIEludmFsaWQga2V5IC0gU3Ry
aW5nIChvYmplY3QpIAorUEFTUyBJbnZhbGlkIGtleSAtIG5ldyBTdHJpbmcoKSAKK1BBU1MgSW52
YWxpZCBrZXkgLSBuZXcgTnVtYmVyKCkgCitQQVNTIEludmFsaWQga2V5IC0gbmV3IEJvb2xlYW4o
KSAKK1BBU1MgSW52YWxpZCBrZXkgLSBbe31dIAorUEFTUyBJbnZhbGlkIGtleSAtIFtbXSwgW10s
IFtdLCBbWyBEYXRlIF1dXSAKK1BBU1MgSW52YWxpZCBrZXkgLSBbdW5kZWZpbmVkXSAKK1BBU1Mg
SW52YWxpZCBrZXkgLSBbLDFdIAorUEFTUyBJbnZhbGlkIGtleSAtIGRvY3VtZW50LmdldEVsZW1l
bnRzQnlUYWdOYW1lKCJzY3JpcHQiKSAKK1BBU1MgSW52YWxpZCBrZXkgLSBuZXcgRGF0ZShOYU4p
IAorUEFTUyBJbnZhbGlkIGtleSAtIG5ldyBEYXRlKEluZmluaXR5KSAKK1BBU1MgSW52YWxpZCBr
ZXkgLSAvZm9vLyAKK1BBU1MgSW52YWxpZCBrZXkgLSBuZXcgUmVnRXhwKCkgCitQQVNTIEludmFs
aWQga2V5IC0gc3BhcnNlIGFycmF5IAorUEFTUyBJbnZhbGlkIGtleSAtIHNwYXJzZSBhcnJheSAy
IAorUEFTUyBJbnZhbGlkIGtleSAtIFtbMV0sIFszXSwgWzddLCBbWyBzcGFyc2UgYXJyYXkgXV1d
IAorUEFTUyBJbnZhbGlkIGtleSAtIFsxLDIsMywsXSAKK1BBU1MgSW52YWxpZCBrZXkgLSBhcnJh
eSBkaXJlY3RseSBjb250YWlucyBzZWxmIAorUEFTUyBJbnZhbGlkIGtleSAtIGFycmF5IGluZGly
ZWN0bHkgY29udGFpbnMgc2VsZiAKK1BBU1MgSW52YWxpZCBrZXkgLSBhcnJheSBtZW1iZXIgY29u
dGFpbnMgc2VsZiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9rZXlfaW52YWxpZC1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2tleV9pbnZhbGlkLXByaXZhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi5mNzJkYTM3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9rZXlfaW52YWxpZC1wcml2YXRlLmh0bWwKQEAgLTAsMCArMSwx
MjkgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLSBTdWJtaXR0ZWQgZnJvbSBUZXN0VFdGIFBhcmlz
IC0tPgorPG1ldGEgY2hhcnNldD11dGYtOCI+Cis8dGl0bGU+SW52YWxpZCBrZXk8L3RpdGxlPgor
PGxpbmsgcmVsPWhlbHAgaHJlZj0iaHR0cDovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXct
ZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCNrZXktY29uc3RydWN0Ij4KKzxsaW5rIHJlbD1hc3NlcnQg
dGl0bGU9IkEgdmFsdWUgaXMgc2FpZCB0byBiZSBhIHZhbGlkIGtleSBpZiBpdCBpcyBvbmUgb2Yg
dGhlIGZvbGxvd2luZyB0eXBlczogQXJyYXkgSmF2YVNjcmlwdCBvYmplY3RzIFtFQ01BLTI2Ml0s
IERPTVN0cmluZyBbV0VCSURMXSwgRGF0ZSBbRUNNQS0yNjJdIG9yIGZsb2F0IFtXRUJJRExdLiBI
b3dldmVyIEFycmF5cyBhcmUgb25seSB2YWxpZCBrZXlzIGlmIGV2ZXJ5IGl0ZW0gaW4gdGhlIGFy
cmF5IGlzIGRlZmluZWQgYW5kIGlzIGEgdmFsaWQga2V5IChpLmUuIHNwYXJzZSBhcnJheXMgY2Fu
IG5vdCBiZSB2YWxpZCBrZXlzKSBhbmQgaWYgdGhlIEFycmF5IGRvZXNuJ3QgZGlyZWN0bHkgb3Ig
aW5kaXJlY3RseSBjb250YWluIGl0c2VsZi4gQW55IG5vbi1udW1lcmljIHByb3BlcnRpZXMgYXJl
IGlnbm9yZWQsIGFuZCB0aHVzIGRvZXMgbm90IGFmZmVjdCB3aGV0aGVyIHRoZSBBcnJheSBpcyBh
IHZhbGlkIGtleS4gQWRkaXRpb25hbGx5LCBpZiB0aGUgdmFsdWUgaXMgb2YgdHlwZSBmbG9hdCwg
aXQgaXMgb25seSBhIHZhbGlkIGtleSBpZiBpdCBpcyBub3QgTmFOLCBhbmQgaWYgdGhlIHZhbHVl
IGlzIG9mIHR5cGUgRGF0ZSBpdCBpcyBvbmx5IGEgdmFsaWQga2V5IGlmIGl0cyBbW1ByaW1pdGl2
ZVZhbHVlXV0gaW50ZXJuYWwgcHJvcGVydHksIGFzIGRlZmluZWQgYnkgW0VDTUEtMjYyXSwgaXMg
bm90IE5hTi4gQ29uZm9ybWluZyB1c2VyIGFnZW50cyBtdXN0IHN1cHBvcnQgYWxsIHZhbGlkIGtl
eXMgYXMga2V5cy4iPgorPCEtLSBvcmlnaW5hbCBhdXRob3IgLS0+Cis8bGluayByZWw9YXV0aG9y
IGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFs
Ij4KKzwhLS0gc29tZSBhZGRpdGlvbnMgYnkgQmFwdGlzdGUgRm9udGFpbmUgKGJhdGlmb25AeWFo
b28uZnIpIC0tPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+CisK
KzxzY3JpcHQ+CisgICAgdmFyIGRiICAgICAgICA9IGNyZWF0ZWRiX2Zvcl9tdWx0aXBsZV90ZXN0
cygpLAorICAgICAgICAvLyBjYWNoZSBmb3IgT2JqZWN0U3RvcmVzCisgICAgICAgIG9ialN0b3Jl
ICA9IG51bGwsCisgICAgICAgIG9ialN0b3JlMiA9IG51bGw7CisKKyAgICBmdW5jdGlvbiBpc19j
bG9uZWFibGUobykgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgc2VsZi5wb3N0TWVzc2Fn
ZShvLCAnKicpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0gY2F0Y2ggKGV4
KSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBm
dW5jdGlvbiBpbnZhbGlkX2tleShkZXNjLCBrZXkpIHsKKyAgICAgICAgdmFyIHQgPSBhc3luY190
ZXN0KGRvY3VtZW50LnRpdGxlICsgIiAtICIgKyBkZXNjKTsKKworICAgICAgICAvLyBzZXQgdGhl
IGN1cnJlbnQgdGVzdCwgYW5kIHJ1biBpdAorICAgICAgICBkYi5zZXRUZXN0KHQpLm9udXBncmFk
ZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIG9ialN0b3JlID0gb2JqU3RvcmUg
fHwgZS50YXJnZXQucmVzdWx0LmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIpOworICAgICAgICAg
ICAgYXNzZXJ0X3Rocm93cygnRGF0YUVycm9yJywgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgb2JqU3RvcmUuYWRkKCJ2YWx1ZSIsIGtleSk7CisgICAgICAgICAgICB9KTsKKworICAgICAg
ICAgICAgaWYgKGlzX2Nsb25lYWJsZShrZXkpKSB7CisgICAgICAgICAgICAgICAgb2JqU3RvcmUy
ID0gb2JqU3RvcmUyIHx8IGUudGFyZ2V0LnJlc3VsdC5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUy
IiwgeyBrZXlQYXRoOiBbIngiLCAia2V5cGF0aCJdIH0pOworICAgICAgICAgICAgICAgIGFzc2Vy
dF90aHJvd3MoJ0RhdGFFcnJvcicsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBv
YmpTdG9yZTIuYWRkKHsgeDogInZhbHVlIiwga2V5cGF0aDoga2V5IH0pOworICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGhpcy5kb25lKCk7CisgICAgICAg
IH07CisgICAgfQorCisgICAgdmFyIGZha2VfYXJyYXkgPSB7CisgICAgICAgIGxlbmd0aCAgICAg
IDogMCwKKyAgICAgICAgY29uc3RydWN0b3IgOiBBcnJheQorICAgIH07CisKKyAgICB2YXIgQXJy
YXlDbG9uZSA9IGZ1bmN0aW9uKCl7fTsKKyAgICBBcnJheUNsb25lLnByb3RvdHlwZSA9IEFycmF5
OworICAgIHZhciBBcnJheUNsb25lX2luc3RhbmNlID0gbmV3IEFycmF5Q2xvbmUoKTsKKworICAg
IC8vIGJvb2xlYW5zCisgICAgaW52YWxpZF9rZXkoICd0cnVlJyAgLCB0cnVlICk7CisgICAgaW52
YWxpZF9rZXkoICdmYWxzZScgLCBmYWxzZSApOworCisgICAgLy8gbnVsbC9OYU4vdW5kZWZpbmVk
CisgICAgaW52YWxpZF9rZXkoICdudWxsJyAgICAgICwgbnVsbCApOworICAgIGludmFsaWRfa2V5
KCAnTmFOJyAgICAgICAsIE5hTiApOworICAgIGludmFsaWRfa2V5KCAndW5kZWZpbmVkJyAsIHVu
ZGVmaW5lZCApOworICAgIGludmFsaWRfa2V5KCAndW5kZWZpbmVkMicpOworCisgICAgLy8gZnVu
Y3Rpb25zCisgICAgaW52YWxpZF9rZXkoICdmdW5jdGlvbigpIHt9JywgZnVuY3Rpb24oKXt9ICk7
CisKKyAgICAvLyBvYmplY3RzCisgICAgaW52YWxpZF9rZXkoICd7fScgICAgICAgICAgICAgICAg
ICAgICAgICAgICAsIHt9ICk7CisgICAgaW52YWxpZF9rZXkoICd7IG9iajogMSB9JyAgICAgICAg
ICAgICAgICAgICAsIHsgb2JqOiAxIH0pOworICAgIGludmFsaWRfa2V5KCAnTWF0aCcgICAgICAg
ICAgICAgICAgICAgICAgICAgLCBNYXRoICk7CisgICAgaW52YWxpZF9rZXkoICd3aW5kb3cnICAg
ICAgICAgICAgICAgICAgICAgICAsIHdpbmRvdyApOworICAgIGludmFsaWRfa2V5KCAne2xlbmd0
aDowLGNvbnN0cnVjdG9yOkFycmF5fScgLCBmYWtlX2FycmF5ICk7CisgICAgaW52YWxpZF9rZXko
ICdBcnJheSBjbG9uZeKAmXMgaW5zdGFuY2UnICAgICAgICwgQXJyYXlDbG9uZV9pbnN0YW5jZSAp
OworICAgIGludmFsaWRfa2V5KCAnQXJyYXkgKG9iamVjdCknICAgICAgICAgICAgICAgLCBBcnJh
eSApOworICAgIGludmFsaWRfa2V5KCAnU3RyaW5nIChvYmplY3QpJyAgICAgICAgICAgICAgLCBT
dHJpbmcgKTsKKyAgICBpbnZhbGlkX2tleSggJ25ldyBTdHJpbmcoKScgICAgICAgICAgICAgICAg
ICwgbmV3IFN0cmluZygpICk7CisgICAgaW52YWxpZF9rZXkoICduZXcgTnVtYmVyKCknICAgICAg
ICAgICAgICAgICAsIG5ldyBOdW1iZXIoKSApOworICAgIGludmFsaWRfa2V5KCAnbmV3IEJvb2xl
YW4oKScgICAgICAgICAgICAgICAgLCBuZXcgQm9vbGVhbigpICk7CisKKyAgICAvLyBhcnJheXMK
KyAgICBpbnZhbGlkX2tleSggJ1t7fV0nICAgICAgICAgICAgICAgICAgICAgLCBbe31dICk7Cisg
ICAgaW52YWxpZF9rZXkoICdbW10sIFtdLCBbXSwgW1sgRGF0ZSBdXV0nICwgWyBbXSwgW10sIFtd
LCBbWyBEYXRlIF1dIF0gKTsKKyAgICBpbnZhbGlkX2tleSggJ1t1bmRlZmluZWRdJyAgICAgICAg
ICAgICAgLCBbdW5kZWZpbmVkXSApOworICAgIGludmFsaWRfa2V5KCAnWywxXScgICAgICAgICAg
ICAgICAgICAgICAsIFssMV0gKTsKKworICAgIGludmFsaWRfa2V5KCAnZG9jdW1lbnQuZ2V0RWxl
bWVudHMnCisgICAgICAgICAgICAgICAgKydCeVRhZ05hbWUoInNjcmlwdCIpJyAgICAgICwgZG9j
dW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpICk7CisKKyAgICAvLyAgZGF0ZXMK
KyAgICBpbnZhbGlkX2tleSggJ25ldyBEYXRlKE5hTiknICAgICAgLCBuZXcgRGF0ZShOYU4pICk7
CisgICAgaW52YWxpZF9rZXkoICduZXcgRGF0ZShJbmZpbml0eSknICwgbmV3IERhdGUoSW5maW5p
dHkpICk7CisKKyAgICAvLyByZWdleGVzCisgICAgaW52YWxpZF9rZXkoICcvZm9vLycgICAgICAg
ICwgL2Zvby8gKTsKKyAgICBpbnZhbGlkX2tleSggJ25ldyBSZWdFeHAoKScgLCBuZXcgUmVnRXhw
KCkgKTsKKworICAgIHZhciBzcGFyc2UgPSBbXTsKKyAgICBzcGFyc2VbMTBdID0gImhlaSI7Cisg
ICAgaW52YWxpZF9rZXkoJ3NwYXJzZSBhcnJheScsIHNwYXJzZSk7CisKKyAgICB2YXIgc3BhcnNl
MiA9IFtdOworICAgIHNwYXJzZTJbMF0gID0gMTsKKyAgICBzcGFyc2UyWyIiXSA9IDI7CisgICAg
c3BhcnNlMlsyXSAgPSAzOworICAgIGludmFsaWRfa2V5KCdzcGFyc2UgYXJyYXkgMicsIHNwYXJz
ZTIpOworCisgICAgaW52YWxpZF9rZXkoJ1tbMV0sIFszXSwgWzddLCBbWyBzcGFyc2UgYXJyYXkg
XV1dJywgWyBbMV0sIFszXSwgWzddLCBbWyBzcGFyc2UyIF1dIF0pOworCisgICAgLy8gc3BhcnNl
MworICAgIGludmFsaWRfa2V5KCAnWzEsMiwzLCxdJywgWzEsMiwzLCxdICk7CisKKyAgICB2YXIg
cmVjdXJzaXZlID0gW107CisgICAgcmVjdXJzaXZlLnB1c2gocmVjdXJzaXZlKTsKKyAgICBpbnZh
bGlkX2tleSgnYXJyYXkgZGlyZWN0bHkgY29udGFpbnMgc2VsZicsIHJlY3Vyc2l2ZSk7CisKKyAg
ICB2YXIgcmVjdXJzaXZlMiA9IFtdOworICAgIHJlY3Vyc2l2ZTIucHVzaChbcmVjdXJzaXZlMl0p
OworICAgIGludmFsaWRfa2V5KCdhcnJheSBpbmRpcmVjdGx5IGNvbnRhaW5zIHNlbGYnLCByZWN1
cnNpdmUyKTsKKworICAgIHZhciByZWN1cnNpdmUzID0gW3JlY3Vyc2l2ZV07CisgICAgaW52YWxp
ZF9rZXkoJ2FycmF5IG1lbWJlciBjb250YWlucyBzZWxmJywgcmVjdXJzaXZlMyk7CisKKzwvc2Ny
aXB0PgorCis8ZGl2IGlkPWxvZz48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIva2V5X3ZhbGlkLXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9rZXlfdmFsaWQtcHJpdmF0ZS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2RjYjBhZgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIva2V5X3ZhbGlkLXBy
aXZhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjAgQEAKKworUEFTUyBWYWxpZCBrZXkgLSBu
ZXcgRGF0ZSgpIAorUEFTUyBWYWxpZCBrZXkgLSBuZXcgRGF0ZSgwKSAKK1BBU1MgVmFsaWQga2V5
IC0gW10gCitQQVNTIFZhbGlkIGtleSAtIG5ldyBBcnJheSgpIAorUEFTUyBWYWxpZCBrZXkgLSBb
InVuZGVmaW5lZCJdIAorUEFTUyBWYWxpZCBrZXkgLSBJbmZpbml0eSAKK1BBU1MgVmFsaWQga2V5
IC0gLUluZmluaXR5IAorUEFTUyBWYWxpZCBrZXkgLSAwIAorUEFTUyBWYWxpZCBrZXkgLSAxLjUg
CitQQVNTIFZhbGlkIGtleSAtIDNlMzggCitQQVNTIFZhbGlkIGtleSAtIDNlLTM4IAorUEFTUyBW
YWxpZCBrZXkgLSAiZm9vIiAKK1BBU1MgVmFsaWQga2V5IC0gIlxuIiAKK1BBU1MgVmFsaWQga2V5
IC0gIiIgCitQQVNTIFZhbGlkIGtleSAtICJcIiIgCitQQVNTIFZhbGlkIGtleSAtICJcdTEyMzQi
IAorUEFTUyBWYWxpZCBrZXkgLSAiXHUwMDAwIiAKK1BBU1MgVmFsaWQga2V5IC0gIk5hTiIgCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIva2V5X3ZhbGlk
LXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIva2V5X3Zh
bGlkLXByaXZhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYTVj
MWQ0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9rZXlfdmFsaWQtcHJpdmF0ZS5odG1sCkBAIC0wLDAgKzEsNzUgQEAKKzwhRE9DVFlQRSBodG1s
PgorPCEtLSBTdWJtaXR0ZWQgZnJvbSBUZXN0VFdGIFBhcmlzIC0tPgorPG1ldGEgY2hhcnNldD11
dGYtOCI+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIj4KKzx0aXRsZT5WYWxp
ZCBrZXk8L3RpdGxlPgorPGxpbmsgcmVsPWhlbHAgaHJlZj0iaHR0cDovL2R2Y3MudzMub3JnL2hn
L0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCNrZXktY29uc3RydWN0Ij4KKzxs
aW5rIHJlbD1hc3NlcnQgdGl0bGU9IkEgdmFsdWUgaXMgc2FpZCB0byBiZSBhIHZhbGlkIGtleSBp
ZiBpdCBpcyBvbmUgb2YgdGhlIGZvbGxvd2luZyB0eXBlczogQXJyYXkgSmF2YVNjcmlwdCBvYmpl
Y3RzIFtFQ01BLTI2Ml0sIERPTVN0cmluZyBbV0VCSURMXSwgRGF0ZSBbRUNNQS0yNjJdIG9yIGZs
b2F0IFtXRUJJRExdLiBIb3dldmVyIEFycmF5cyBhcmUgb25seSB2YWxpZCBrZXlzIGlmIGV2ZXJ5
IGl0ZW0gaW4gdGhlIGFycmF5IGlzIGRlZmluZWQgYW5kIGlzIGEgdmFsaWQga2V5IChpLmUuIHNw
YXJzZSBhcnJheXMgY2FuIG5vdCBiZSB2YWxpZCBrZXlzKSBhbmQgaWYgdGhlIEFycmF5IGRvZXNu
J3QgZGlyZWN0bHkgb3IgaW5kaXJlY3RseSBjb250YWluIGl0c2VsZi4gQW55IG5vbi1udW1lcmlj
IHByb3BlcnRpZXMgYXJlIGlnbm9yZWQsIGFuZCB0aHVzIGRvZXMgbm90IGFmZmVjdCB3aGV0aGVy
IHRoZSBBcnJheSBpcyBhIHZhbGlkIGtleS4gQWRkaXRpb25hbGx5LCBpZiB0aGUgdmFsdWUgaXMg
b2YgdHlwZSBmbG9hdCwgaXQgaXMgb25seSBhIHZhbGlkIGtleSBpZiBpdCBpcyBub3QgTmFOLCBh
bmQgaWYgdGhlIHZhbHVlIGlzIG9mIHR5cGUgRGF0ZSBpdCBpcyBvbmx5IGEgdmFsaWQga2V5IGlm
IGl0cyBbW1ByaW1pdGl2ZVZhbHVlXV0gaW50ZXJuYWwgcHJvcGVydHksIGFzIGRlZmluZWQgYnkg
W0VDTUEtMjYyXSwgaXMgbm90IE5hTi4gQ29uZm9ybWluZyB1c2VyIGFnZW50cyBtdXN0IHN1cHBv
cnQgYWxsIHZhbGlkIGtleXMgYXMga2V5cy4iPgorPGxpbmsgcmVsPWF1dGhvciBocmVmPSJtYWls
dG86YmF0aWZvbkB5YWhvby5mciIgdGl0bGU9IkJhcHRpc3RlIEZvbnRhaW5lIj4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIGZ1bmN0
aW9uIHZhbGlkX2tleShkZXNjLCBrZXkpIHsKKyAgICAgICAgdmFyIGRiOworICAgICAgICB2YXIg
dCA9IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUgKyAiIC0gIiArIGRlc2MpOworICAgICAgICB2
YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworCisgICAgICAgIG9wZW5fcnEub251cGdyYWRlbmVl
ZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisK
KyAgICAgICAgICAgIHN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIik7CisgICAg
ICAgICAgICBhc3NlcnRfdHJ1ZShzdG9yZS5hZGQoJ3ZhbHVlJywga2V5KSBpbnN0YW5jZW9mIElE
QlJlcXVlc3QpOworCisgICAgICAgICAgICBzdG9yZTIgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgi
c3RvcmUyIiwgeyBrZXlQYXRoOiBbIngiLCAia2V5cGF0aCJdIH0pOworICAgICAgICAgICAgYXNz
ZXJ0X3RydWUoc3RvcmUyLmFkZCh7IHg6ICd2Jywga2V5cGF0aDoga2V5IH0pIGluc3RhbmNlb2Yg
SURCUmVxdWVzdCk7CisgICAgICAgIH07CisgICAgICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVu
Y3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIHJxID0gZGIudHJhbnNhY3Rpb24oInN0b3JlIikK
KyAgICAgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJzdG9yZSIpCisgICAgICAgICAg
ICAgICAgICAgICAgIC5nZXQoa2V5KQorICAgICAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVw
X2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJn
ZXQucmVzdWx0LCAndmFsdWUnKQorICAgICAgICAgICAgICAgIHZhciBycSA9IGRiLnRyYW5zYWN0
aW9uKCJzdG9yZTIiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJz
dG9yZTIiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgLmdldChbJ3YnLCBrZXldKQorICAg
ICAgICAgICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQueCwgJ3YnKTsK
KyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2tleV9lcXVhbHMoZS50YXJnZXQucmVzdWx0Lmtl
eXBhdGgsIGtleSk7CisgICAgICAgICAgICAgICAgICAgIHQuZG9uZSgpCisgICAgICAgICAgICAg
ICAgfSkKKyAgICAgICAgICAgIH0pCisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBEYXRlCisg
ICAgdmFsaWRfa2V5KCAnbmV3IERhdGUoKScgICAgLCBuZXcgRGF0ZSgpICk7CisgICAgdmFsaWRf
a2V5KCAnbmV3IERhdGUoMCknICAgLCBuZXcgRGF0ZSgwKSApOworCisgICAgLy8gQXJyYXkKKyAg
ICB2YWxpZF9rZXkoICdbXScgICAgICAgICAgICAsIFtdICk7CisgICAgdmFsaWRfa2V5KCAnbmV3
IEFycmF5KCknICAgLCBuZXcgQXJyYXkoKSApOworCisgICAgdmFsaWRfa2V5KCAnWyJ1bmRlZmlu
ZWQiXScgLCBbJ3VuZGVmaW5lZCddICk7CisKKyAgICAvLyBGbG9hdAorICAgIHZhbGlkX2tleSgg
J0luZmluaXR5JyAgICAgICwgSW5maW5pdHkgKTsKKyAgICB2YWxpZF9rZXkoICctSW5maW5pdHkn
ICAgICAsIC1JbmZpbml0eSApOworICAgIHZhbGlkX2tleSggJzAnICAgICAgICAgICAgICwgMCAp
OworICAgIHZhbGlkX2tleSggJzEuNScgICAgICAgICAgICwgMS41ICk7CisgICAgdmFsaWRfa2V5
KCAnM2UzOCcgICAgICAgICAgLCAzZTM4ICk7CisgICAgdmFsaWRfa2V5KCAnM2UtMzgnICAgICAg
ICAgLCAzZTM4ICk7CisKKyAgICAvLyBTdHJpbmcKKyAgICB2YWxpZF9rZXkoICciZm9vIicgICAg
ICAgICAsICJmb28iICk7CisgICAgdmFsaWRfa2V5KCAnIlxcbiInICAgICAgICAgLCAiXG4iICk7
CisgICAgdmFsaWRfa2V5KCAnIiInICAgICAgICAgICAgLCAiIiApOworICAgIHZhbGlkX2tleSgg
JyJcXCIiJyAgICAgICAgICwgIlwiIiApOworICAgIHZhbGlkX2tleSggJyJcXHUxMjM0IicgICAg
ICwgIlx1MTIzNCIgKTsKKyAgICB2YWxpZF9rZXkoICciXFx1MDAwMCInICAgICAsICJcdTAwMDAi
ICk7CisgICAgdmFsaWRfa2V5KCAnIk5hTiInICAgICAgICAgLCAiTmFOIiApOworCis8L3Njcmlw
dD4KKworPGRpdiBpZD1sb2c+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2tleWdlbmVyYXRvci1jb25zdHJhaW50ZXJyb3ItcHJpdmF0ZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2tleWdlbmVyYXRv
ci1jb25zdHJhaW50ZXJyb3ItcHJpdmF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uMjgzNmYxYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIva2V5Z2VuZXJhdG9yLWNvbnN0cmFpbnRlcnJvci1wcml2
YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBLZXlnZW5lcmF0b3IgQ29u
c3RyYWludEVycm9yIHdoZW4gdXNpbmcgc2FtZSBpZCBhcyBhbHJlYWR5IGdlbmVyYXRlZCAKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9rZXlnZW5lcmF0
b3ItY29uc3RyYWludGVycm9yLXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIva2V5Z2VuZXJhdG9yLWNvbnN0cmFpbnRlcnJvci1wcml2YXRlLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTgyMjExNQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIva2V5Z2VuZXJhdG9yLWNvbnN0
cmFpbnRlcnJvci1wcml2YXRlLmh0bWwKQEAgLTAsMCArMSw3MyBAQAorPCFET0NUWVBFIGh0bWw+
Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+S2V5Z2VuZXJhdG9yIENvbnN0cmFpbnRF
cnJvciB3aGVuIHVzaW5nIHNhbWUgaWQgYXMgYWxyZWFkeSBnZW5lcmF0ZWQ8L3RpdGxlPgorPGxp
bmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2Rp
biBIw7hydGhlIE9tZGFsIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9z
Y3JpcHQ+CisKKzxzY3JpcHQ+CisKKyAgICB2YXIgZGIsCisgICAgICB0ID0gYXN5bmNfdGVzdChk
b2N1bWVudC50aXRsZSwge3RpbWVvdXQ6IDEwMDAwfSksCisgICAgICBvYmplY3RzID0gWzEsIG51
bGwsIHtpZDogMn0sIG51bGwsIDIuMDAwMDEsIDUsIG51bGwsIHtpZDogNn0gXSwKKyAgICAgIGV4
cGVjdGVkID0gWzEsIDIsIDIuMDAwMDEsIDMsIDUsIDZdLAorICAgICAgZXJyb3JzID0gMDsKKwor
ICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVk
ZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAg
ICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGtleVBhdGg6
ICJpZCIsIGF1dG9JbmNyZW1lbnQ6IHRydWUgfSk7CisKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCBvYmplY3RzLmxlbmd0aDsgaSsrKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAob2Jq
ZWN0c1tpXSA9PT0gbnVsbCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBvYmpTdG9y
ZS5hZGQoe30pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAodHlwZW9mIG9i
amVjdHNbaV0gPT09ICJvYmplY3QiKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHZh
ciBycSA9IG9ialN0b3JlLmFkZChvYmplY3RzW2ldKQorICAgICAgICAgICAgICAgIHJxLnllaCA9
IG9iamVjdHNbaV07CisgICAgICAgICAgICAgICAgcnEub25lcnJvciA9IHQuc3RlcF9mdW5jKGZ1
bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJyb3JzKys7CisKKyAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5lcnJvci5uYW1lLCAiQ29uc3RyYWludEVy
cm9yIik7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50eXBlLCAiZXJyb3Ii
KTsKKworICAgICAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpOworICAgICAgICAg
ICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAg
ICAgICAgICAgICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCJHb3QgcnEuc3VjY2VzcyB3aGVuIGFk
ZGluZyBkdXBsaWNhdGUgaWQgIiArIG9iamVjdHNbaV0pOworICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIG9ialN0b3Jl
LmFkZCh7IGlkOiBvYmplY3RzW2ldIH0pOworICAgICAgICB9CisgICAgfTsKKworICAgIG9wZW5f
cnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgYWN0dWFsX2tleXMgPSBb
XSwKKyAgICAgICAgICBycSA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIpCisgICAgICAgICAgICAg
ICAgIC5vYmplY3RTdG9yZSgic3RvcmUiKQorICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcigp
OworCisgICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAg
ICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgICAgIGlm
IChjdXJzb3IpIHsKKyAgICAgICAgICAgICAgICBhY3R1YWxfa2V5cy5wdXNoKGN1cnNvci5rZXku
dmFsdWVPZigpKTsKKyAgICAgICAgICAgICAgICBjdXJzb3IuY29udGludWUoKTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMo
ZXJyb3JzLCAyLCAiZXhwZWN0ZWQgQ29uc3RyYWludEVycm9yJ3MiKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnRfYXJyYXlfZXF1YWxzKGFjdHVhbF9rZXlzLCBleHBlY3RlZCwgImtleWdlbmVyYXRv
ciBhcnJheSIpOworICAgICAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICAgICAgfQorICAg
ICAgICB9KTsKKyAgICB9OworCis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIva2V5Z2VuZXJhdG9y
LW92ZXJmbG93LXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9rZXlnZW5lcmF0b3Itb3ZlcmZsb3ctcHJpdmF0ZS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjU5NzgzNQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIva2V5Z2VuZXJhdG9yLW92ZXJm
bG93LXByaXZhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIEtleWdlbmVy
YXRvciBvdmVyZmxvdyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9rZXlnZW5lcmF0b3Itb3ZlcmZsb3ctcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9rZXlnZW5lcmF0b3Itb3ZlcmZsb3ctcHJpdmF0ZS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlkZmQ1NzcKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2tleWdlbmVyYXRvci1v
dmVyZmxvdy1wcml2YXRlLmh0bWwKQEAgLTAsMCArMSw3MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8
bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+S2V5Z2VuZXJhdG9yIG92ZXJmbG93PC90aXRs
ZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0
bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Cis8bGluayByZWw9aGVscCBocmVmPSJodHRwOi8vZHZj
cy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI2tleS1nZW5l
cmF0b3ItY29uY2VwdCI+Cis8bGluayByZWw9YXNzZXJ0IHRpdGxlPSJXaGVuIHRoZSBjdXJyZW50
IG51bWJlciBvZiBhIGtleSBnZW5lcmF0b3IgcmVhY2hlcyBhYm92ZSB0aGUgdmFsdWUgMl41MyAo
OTAwNzE5OTI1NDc0MDk5MikgYW55IGF0dGVtcHRzIHRvIHVzZSB0aGUga2V5IGdlbmVyYXRvciB0
byBnZW5lcmF0ZSBhIG5ldyBrZXkgd2lsbCByZXN1bHQgaW4gYW4gZXJyb3IuIEl0J3Mgc3RpbGwg
cG9zc2libGUgdG8gaW5zZXJ0IHJlY29yZHMgaW50byB0aGUgb2JqZWN0IHN0b3JlIGJ5IHNwZWNp
ZnlpbmcgYW4gZXhwbGljaXQga2V5LCBob3dldmVyIHRoZSBvbmx5IHdheSB0byB1c2UgYSBrZXkg
Z2VuZXJhdG9yIGFnYWluIGZvciB0aGUgb2JqZWN0IHN0b3JlIGlzIHRvIGRlbGV0ZSB0aGUgb2Jq
ZWN0IHN0b3JlIGFuZCBjcmVhdGUgYSBuZXcgb25lLiI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorCisgICAgdmFyIGRiLAorICAgICAg
dCA9IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUsIHt0aW1lb3V0OiAxMDAwMH0pLAorICAgICAg
b3ZlcmZsb3dfZXJyb3JfZmlyZWQgPSBmYWxzZSwKKyAgICAgIG9iamVjdHMgPSAgWzkwMDcxOTky
NTQ3NDA5OTEsIG51bGwsICJlcnJvciIsIDIsICJlcnJvciIgXSwKKyAgICAgIGV4cGVjdGVkX2tl
eXMgPSBbMiwgOTAwNzE5OTI1NDc0MDk5MSwgOTAwNzE5OTI1NDc0MDk5Ml07CisKKyAgICB2YXIg
b3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVu
Y3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIG9i
alN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRoOiAiaWQiLCBh
dXRvSW5jcmVtZW50OiB0cnVlIH0pOworCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgb2Jq
ZWN0cy5sZW5ndGg7IGkrKykKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKG9iamVjdHNbaV0g
PT09IG51bGwpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHt9
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKG9iamVjdHNbaV0gPT09ICJl
cnJvciIpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdmFyIHJxID0gb2JqU3RvcmUu
YWRkKHt9KTsKKyAgICAgICAgICAgICAgICBycS5vbnN1Y2Nlc3MgPSBmYWlsKHQsICdXaGVuICJj
dXJyZW50IG51bWJlciIgb3ZlcmZsb3dzLCBlcnJvciBldmVudCBpcyBleHBlY3RlZCcpOworICAg
ICAgICAgICAgICAgIHJxLm9uZXJyb3IgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAg
ICAgICAgICAgICAgICAgIG92ZXJmbG93X2Vycm9yX2ZpcmVkID0gdHJ1ZTsKKyAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5lcnJvci5uYW1lLCAiQ29uc3RyYWludEVy
cm9yIiwgImVycm9yIG5hbWUiKTsKKyAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVs
dCgpOworICAgICAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpOworICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
ICAgIG9ialN0b3JlLmFkZCh7IGlkOiBvYmplY3RzW2ldIH0pOworICAgICAgICB9CisgICAgfTsK
KworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgYWN0
dWFsX2tleXMgPSBbXSwKKyAgICAgICAgICBycSA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIpCisg
ICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgic3RvcmUiKQorICAgICAgICAgICAgICAgICAu
b3BlbkN1cnNvcigpOworCisgICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0
aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAg
ICAgICAgICAgIGlmIChjdXJzb3IpIHsKKyAgICAgICAgICAgICAgICBhY3R1YWxfa2V5cy5wdXNo
KGN1cnNvci5rZXkudmFsdWVPZigpKTsKKyAgICAgICAgICAgICAgICBjdXJzb3IuY29udGludWUo
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGFz
c2VydF90cnVlKG92ZXJmbG93X2Vycm9yX2ZpcmVkLCAiZXJyb3IgZmlyZWQgb24gJ2N1cnJlbnQg
bnVtYmVyJyBvdmVyZmxvdyIpOworICAgICAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMo
YWN0dWFsX2tleXMsIGV4cGVjdGVkX2tleXMsICJrZXlnZW5lcmF0b3IgYXJyYXkiKTsKKworICAg
ICAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICB9
OworCis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIva2V5Z2VuZXJhdG9yLXByaXZhdGUtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9rZXlnZW5lcmF0b3It
cHJpdmF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
MTBhNmVmYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIva2V5Z2VuZXJhdG9yLXByaXZhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAor
CitQQVNTIEtleWdlbmVyYXRvciAtIHN0YXJ0cyBhdCBvbmUsIGFuZCBpbmNyZW1lbnRzIGJ5IG9u
ZSAKK1BBU1MgS2V5Z2VuZXJhdG9yIC0gaW5jcmVtZW50cyBieSBvbmUgZnJvbSBsYXN0IHNldCBr
ZXkgCitQQVNTIEtleWdlbmVyYXRvciAtIGRvbid0IGluY3JlbWVudCB3aGVuIG5ldyBrZXkgaXMg
bm90IGJpZ2dlciB0aGFuIGN1cnJlbnQgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIva2V5Z2VuZXJhdG9yLXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIva2V5Z2VuZXJhdG9yLXByaXZhdGUuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NWE4NmJhCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9rZXlnZW5lcmF0b3ItcHJpdmF0ZS5o
dG1sCkBAIC0wLDAgKzEsNjUgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRm
LTgiPgorPHRpdGxlPktleWdlbmVyYXRvcjwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgaHJl
Zj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgor
PGxpbmsgcmVsPWhlbHAgaHJlZj0iaHR0cDovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXct
ZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCNrZXktZ2VuZXJhdG9yLWNvbmNlcHQiPgorPGxpbmsgcmVs
PWFzc2VydCB0aXRsZT0iVGhlIGN1cnJlbnQgbnVtYmVyIG9mIGEga2V5IGdlbmVyYXRvciBpcyBh
bHdheXMgc2V0IHRvIDEgd2hlbiB0aGUgb2JqZWN0IHN0b3JlIGZvciB0aGF0IGtleSBnZW5lcmF0
b3IgaXMgZmlyc3QgY3JlYXRlZC4iPgorPGxpbmsgcmVsPWFzc2VydCB0aXRsZT0iV2hlbiBhIGtl
eSBnZW5lcmF0b3IgaXMgdXNlZCB0byBnZW5lcmF0ZSBhIG5ldyBrZXkgZm9yIGEgb2JqZWN0IHN0
b3JlLCB0aGUga2V5IGdlbmVyYXRvcidzIGN1cnJlbnQgbnVtYmVyIGlzIHVzZWQgYXMgdGhlIG5l
dyBrZXkgdmFsdWUgYW5kIHRoZW4gdGhlIGtleSBnZW5lcmF0b3IncyBjdXJyZW50IG51bWJlciBp
cyBpbmNyZWFzZWQgYnkgMS4iPgorPGxpbmsgcmVsPWFzc2VydCB0aXRsZT0iV2hlbiBhIHJlY29y
ZCBpcyBzdG9yZWQgaW4gYSBvYmplY3Qgc3RvcmUgd2hpY2ggdXNlcyBhIGtleSBnZW5lcmF0b3Is
IGFuZCBhbiBleHBsaWNpdCBrZXkgaXMgZGVmaW5lZCwgaWYgdGhlIGtleSdzIHZhbHVlIGlzIGEg
ZmxvYXQgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSBrZXkgZ2VuZXJhdG9yJ3MgY3VycmVu
dCBudW1iZXIsIHRoZW4gdGhlIGtleSBnZW5lcmF0b3IncyBjdXJyZW50IG51bWJlciBpcyBzZXQg
dG8gdGhlIHNtYWxsZXN0IGludGVnZXIgbnVtYmVyIGxhcmdlciB0aGFuIHRoZSBleHBsaWNpdCBr
ZXkuIE9ubHkgZXhwbGljaXQga2V5cyB3aGljaCBhcmUgZmxvYXQgdmFsdWVzIGFmZmVjdCB0aGUg
Y3VycmVudCBudW1iZXIgb2YgdGhlIGtleSBnZW5lcmF0b3IuIj4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgZnVuY3Rpb24ga2V5
Z2VuZXJhdG9yKG9iamVjdHMsIGV4cGVjdGVkX2tleXMsIGRlc2MsIGZ1bmMpIHsKKyAgICAgICAg
dmFyIGRiLAorICAgICAgICAgIHQgPSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlICsgIiAtICIg
KyBkZXNjKTsKKworICAgICAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgICAgICBv
cGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGRiID0g
ZS50YXJnZXQucmVzdWx0OworICAgICAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2Jq
ZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRoOiAiaWQiLCBhdXRvSW5jcmVtZW50OiB0cnVlIH0p
OworCisgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG9iamVjdHMubGVuZ3RoOyBpKysp
CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaWYgKG9iamVjdHNbaV0gPT09IG51bGwp
CisgICAgICAgICAgICAgICAgICAgIG9ialN0b3JlLmFkZCh7fSk7CisgICAgICAgICAgICAgICAg
ZWxzZQorICAgICAgICAgICAgICAgICAgICBvYmpTdG9yZS5hZGQoeyBpZDogb2JqZWN0c1tpXSB9
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKworICAgICAgICBvcGVuX3JxLm9uc3VjY2Vz
cyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBhY3R1YWxfa2V5cyA9IFtdLAorICAg
ICAgICAgICAgICBycSA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIpCisgICAgICAgICAgICAgICAg
ICAgICAub2JqZWN0U3RvcmUoInN0b3JlIikKKyAgICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vy
c29yKCk7CisKKyAgICAgICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9u
KGUpIHsKKyAgICAgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OworCisg
ICAgICAgICAgICAgICAgaWYgKGN1cnNvcikgeworICAgICAgICAgICAgICAgICAgICBhY3R1YWxf
a2V5cy5wdXNoKGN1cnNvci5rZXkudmFsdWVPZigpKTsKKyAgICAgICAgICAgICAgICAgICAgY3Vy
c29yLmNvbnRpbnVlKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2Ug
eworICAgICAgICAgICAgICAgICAgICBhc3NlcnRfa2V5X2VxdWFscyhhY3R1YWxfa2V5cywgZXhw
ZWN0ZWRfa2V5cywgImtleWdlbmVyYXRvciBhcnJheSIpOworICAgICAgICAgICAgICAgICAgICB0
LmRvbmUoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfTsK
KyAgICB9CisKKworICAgIGtleWdlbmVyYXRvcihbbnVsbCwgbnVsbCwgbnVsbCwgbnVsbF0sICBb
MSwgMiwgMywgNF0sCisgICAgICAgICJzdGFydHMgYXQgb25lLCBhbmQgaW5jcmVtZW50cyBieSBv
bmUiKTsKKworICAgIGtleWdlbmVyYXRvcihbMiwgbnVsbCwgNSwgbnVsbCwgNi42NiwgN10sICBb
MiwgMywgNSwgNiwgNi42NiwgN10sCisgICAgICAgICJpbmNyZW1lbnRzIGJ5IG9uZSBmcm9tIGxh
c3Qgc2V0IGtleSIpOworCisgICAga2V5Z2VuZXJhdG9yKFstMTAsIG51bGwsICI2IiwgNi4zLCBb
MTBdLCAtMiwgNCwgbnVsbF0sICAgWy0xMCwgLTIsIDEsIDQsIDYuMywgNywgIjYiLCBbMTBdXSwK
KyAgICAgICAgImRvbid0IGluY3JlbWVudCB3aGVuIG5ldyBrZXkgaXMgbm90IGJpZ2dlciB0aGFu
IGN1cnJlbnQiKTsKKworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2tleW9yZGVyLXByaXZhdGUt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9rZXlvcmRl
ci1wcml2YXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li45YTZlYTdiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9rZXlvcmRlci1wcml2YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI2IEBACisK
K1BBU1MgRGF0YWJhc2UgcmVhZGJhY2sgc29ydCAtIFN0cmluZyA8IEFycmF5IAorUEFTUyBJREJL
ZXkuY21wIHNvcnRlZCAtIFN0cmluZyA8IEFycmF5IAorUEFTUyBEYXRhYmFzZSByZWFkYmFjayBz
b3J0IC0gZmxvYXQgPCBTdHJpbmcgCitQQVNTIElEQktleS5jbXAgc29ydGVkIC0gZmxvYXQgPCBT
dHJpbmcgCitQQVNTIERhdGFiYXNlIHJlYWRiYWNrIHNvcnQgLSBmbG9hdCA8IERhdGUgCitQQVNT
IElEQktleS5jbXAgc29ydGVkIC0gZmxvYXQgPCBEYXRlIAorUEFTUyBEYXRhYmFzZSByZWFkYmFj
ayBzb3J0IC0gZmxvYXQgPCBEYXRlIDwgU3RyaW5nIDwgQXJyYXkgCitQQVNTIElEQktleS5jbXAg
c29ydGVkIC0gZmxvYXQgPCBEYXRlIDwgU3RyaW5nIDwgQXJyYXkgCitQQVNTIERhdGFiYXNlIHJl
YWRiYWNrIHNvcnQgLSBEYXRlKDEgc2VjIGFnbykgPCBEYXRlKG5vdykgPCBEYXRlKDEgbWludXRl
IGluIGZ1dHVyZSkgCitQQVNTIElEQktleS5jbXAgc29ydGVkIC0gRGF0ZSgxIHNlYyBhZ28pIDwg
RGF0ZShub3cpIDwgRGF0ZSgxIG1pbnV0ZSBpbiBmdXR1cmUpIAorUEFTUyBEYXRhYmFzZSByZWFk
YmFjayBzb3J0IC0gLTEuMSA8IDEgPCAxLjAxMzM3IDwgMS4wMTMzNzMgPCAyIAorUEFTUyBJREJL
ZXkuY21wIHNvcnRlZCAtIC0xLjEgPCAxIDwgMS4wMTMzNyA8IDEuMDEzMzczIDwgMiAKK1BBU1Mg
RGF0YWJhc2UgcmVhZGJhY2sgc29ydCAtIC1JbmZpbml0eSA8IC0wLjAxIDwgMCA8IEluZmluaXR5
IAorUEFTUyBJREJLZXkuY21wIHNvcnRlZCAtIC1JbmZpbml0eSA8IC0wLjAxIDwgMCA8IEluZmlu
aXR5IAorUEFTUyBEYXRhYmFzZSByZWFkYmFjayBzb3J0IC0gIiIgPCAiYSIgPCAiYWIiIDwgImIi
IDwgImJhIiAKK1BBU1MgSURCS2V5LmNtcCBzb3J0ZWQgLSAiIiA8ICJhIiA8ICJhYiIgPCAiYiIg
PCAiYmEiIAorUEFTUyBEYXRhYmFzZSByZWFkYmFjayBzb3J0IC0gQXJyYXlzIAorUEFTUyBJREJL
ZXkuY21wIHNvcnRlZCAtIEFycmF5cyAKK1BBU1MgRGF0YWJhc2UgcmVhZGJhY2sgc29ydCAtIEFy
cmF5Lmxlbmd0aDogMTAsMDAwIDwgQXJyYXkubGVuZ3RoOiAxMCwwMDEgCitQQVNTIElEQktleS5j
bXAgc29ydGVkIC0gQXJyYXkubGVuZ3RoOiAxMCwwMDAgPCBBcnJheS5sZW5ndGg6IDEwLDAwMSAK
K1BBU1MgRGF0YWJhc2UgcmVhZGJhY2sgc29ydCAtIEluZmluaXR5IGluc2lkZSBhcnJheXMgCitQ
QVNTIElEQktleS5jbXAgc29ydGVkIC0gSW5maW5pdHkgaW5zaWRlIGFycmF5cyAKK1BBU1MgRGF0
YWJhc2UgcmVhZGJhY2sgc29ydCAtIFRlc3QgZGlmZmVyZW50IHN0dWZmIGF0IG9uY2UgCitQQVNT
IElEQktleS5jbXAgc29ydGVkIC0gVGVzdCBkaWZmZXJlbnQgc3R1ZmYgYXQgb25jZSAKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9rZXlvcmRlci1wcml2
YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2tleW9yZGVyLXBy
aXZhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jN2Y0ZjkwCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9rZXlv
cmRlci1wcml2YXRlLmh0bWwKQEAgLTAsMCArMSwxNzUgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEt
LSBTdWJtaXR0ZWQgZnJvbSBUZXN0VFdGIFBhcmlzIC0tPgorPG1ldGEgY2hhcnNldD0idXRmLTgi
PgorPHRpdGxlPktleSBzb3J0IG9yZGVyPC90aXRsZT4KKzxsaW5rIHJlbD1oZWxwIGhyZWY9Imh0
dHA6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwj
a2V5LWNvbnN0cnVjdCI+Cis8bGluayByZWw9YXNzZXJ0IHRpdGxlPSJGb3IgcHVycG9zZXMgb2Yg
Y29tcGFyaXNvbiwgYWxsIEFycmF5cyBhcmUgZ3JlYXRlciB0aGFuIGFsbCBET01TdHJpbmcsIERh
dGUgYW5kIGZsb2F0IHZhbHVlczsgYWxsIERPTVN0cmluZyB2YWx1ZXMgYXJlIGdyZWF0ZXIgdGhh
biBhbGwgRGF0ZSBhbmQgZmxvYXQgdmFsdWVzOyBhbmQgYWxsIERhdGUgdmFsdWVzIGFyZSBncmVh
dGVyIHRoYW4gYWxsIGZsb2F0IHZhbHVlcy4gVmFsdWVzIG9mIHR5cGUgZmxvYXQgYXJlIGNvbXBh
cmVkIHRvIG90aGVyIGZsb2F0IHZhbHVlcyBudW1lcmljYWxseS4gVmFsdWVzIG9mIHR5cGUgRGF0
ZSBhcmUgY29tcGFyZWQgdG8gb3RoZXIgRGF0ZSB2YWx1ZXMgY2hyb25vbG9naWNhbGx5LiBWYWx1
ZXMgb2YgdHlwZSBET01TdHJpbmcgYXJlIGNvbXBhcmVkIHRvIG90aGVyIHZhbHVlcyBvZiB0eXBl
IERPTVN0cmluZyBieSB1c2luZyB0aGUgYWxnb3JpdGhtIGRlZmluZWQgYnkgc3RlcCA0IG9mIHNl
Y3Rpb24gMTEuOC41LCBUaGUgQWJzdHJhY3QgUmVsYXRpb25hbCBDb21wYXJpc29uIEFsZ29yaXRo
bSwgb2YgdGhlIEVDTUFTY3JpcHQgTGFuZ3VhZ2UgU3BlY2lmaWNhdGlvbiBbRUNNQS0yNjJdLiBW
YWx1ZXMgb2YgdHlwZSBBcnJheSBhcmUgY29tcGFyZWQgdG8gb3RoZXIgdmFsdWVzIG9mIHR5cGUg
QXJyYXkgYXMgZm9sbG93czoKKworMS4gTGV0IEEgYmUgdGhlIGZpcnN0IEFycmF5IHZhbHVlIGFu
ZCBCIGJlIHRoZSBzZWNvbmQgQXJyYXkgdmFsdWUuCisyLiBMZXQgbGVuZ3RoIGJlIHRoZSBsZXNz
ZXIgb2YgQSdzIGxlbmd0aCBhbmQgQidzIGxlbmd0aC4KKzMuIExldCBpIGJlIDAuCis0LiBJZiB0
aGUgaXRoIHZhbHVlIG9mIEEgaXMgbGVzcyB0aGFuIHRoZSBpdGggdmFsdWUgb2YgQiwgdGhlbiBB
IGlzIGxlc3MgdGhhbiBCLiBTa2lwIHRoZSByZW1haW5pbmcgc3RlcHMuCis1LiBJZiB0aGUgaXRo
IHZhbHVlIG9mIEEgaXMgZ3JlYXRlciB0aGFuIHRoZSBpdGggdmFsdWUgb2YgQiwgdGhlbiBBIGlz
IGdyZWF0ZXIgdGhhbiBCLiBTa2lwIHRoZSByZW1haW5pbmcgc3RlcHMuCis2LiBJbmNyZWFzZSBp
IGJ5IDEuCis3LiBJZiBpIGlzIG5vdCBlcXVhbCB0byBsZW5ndGgsIGdvIGJhY2sgdG8gc3RlcCA0
LiBPdGhlcndpc2UgY29udGludWUgdG8gbmV4dCBzdGVwLgorOC4gSWYgQSdzIGxlbmd0aCBpcyBs
ZXNzIHRoYW4gQidzIGxlbmd0aCwgdGhlbiBBIGlzIGxlc3MgdGhhbiBCLiBJZiBBJ3MgbGVuZ3Ro
IGlzIGdyZWF0ZXIgdGhhbiBCJ3MgbGVuZ3RoLCB0aGVuIEEgaXMgZ3JlYXRlciB0aGFuIEIuIE90
aGVyd2lzZSBBIGFuZCBCIGFyZSBlcXVhbC4iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBw
b3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZ2xvYmFsX2RiID0gY3JlYXRl
ZGJfZm9yX211bHRpcGxlX3Rlc3RzKCk7CisKKyAgICBmdW5jdGlvbiBrZXlzb3J0KGRlc2MsIHVu
c29ydGVkLCBleHBlY3RlZCkgeworICAgICAgICB2YXIgZGIsCisgICAgICAgICAgICB0ID0gYXN5
bmNfdGVzdCgiRGF0YWJhc2UgcmVhZGJhY2sgc29ydCAtICIgKyBkZXNjLCB7IHRpbWVvdXQ6IDEw
MDAwIH0pLAorICAgICAgICAgICAgc3RvcmVfbmFtZSA9ICdzdG9yZS0nICsgRGF0ZS5ub3coKSAr
IE1hdGgucmFuZG9tKCk7CisKKyAgICAgICAgLy8gVGhlIGRhdGFiYXNlIHRlc3QKKyAgICAgICAg
dmFyIG9wZW5fcnEgPSBnbG9iYWxfZGIuc2V0VGVzdCh0KTsKKyAgICAgICAgb3Blbl9ycS5vbnVw
Z3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBkYiA9IGUudGFyZ2V0LnJl
c3VsdDsKKyAgICAgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKHN0
b3JlX25hbWUpOworCisgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHVuc29ydGVkLmxl
bmd0aDsgaSsrKQorICAgICAgICAgICAgICAgIG9ialN0b3JlLmFkZCgidmFsdWUiLCB1bnNvcnRl
ZFtpXSk7CisgICAgICAgIH07CisKKyAgICAgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlv
bihlKSB7CisgICAgICAgICAgICB2YXIgYWN0dWFsX2tleXMgPSBbXSwKKyAgICAgICAgICAgICAg
cnEgPSBkYi50cmFuc2FjdGlvbihzdG9yZV9uYW1lKQorICAgICAgICAgICAgICAgICAgICAgLm9i
amVjdFN0b3JlKHN0b3JlX25hbWUpCisgICAgICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcigp
OworCisgICAgICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7
CisgICAgICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAg
ICAgICAgICAgIGlmIChjdXJzb3IpIHsKKyAgICAgICAgICAgICAgICAgICAgYWN0dWFsX2tleXMu
cHVzaChjdXJzb3Iua2V5KTsKKyAgICAgICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7
CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAg
ICAgICAgICBhc3NlcnRfa2V5X2VxdWFscyhhY3R1YWxfa2V5cywgZXhwZWN0ZWQsICJrZXlvcmRl
ciBhcnJheSIpOworICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGFjdHVhbF9rZXlz
Lmxlbmd0aCwgZXhwZWN0ZWQubGVuZ3RoLCAiYXJyYXkgbGVuZ3RoIik7CisKKyAgICAgICAgICAg
ICAgICAgICAgdC5kb25lKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSk7Cisg
ICAgICAgIH07CisKKyAgICAgICAgLy8gVGhlIElEQktleS5jbXAgdGVzdAorICAgICAgICB0ZXN0
KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHZhciBzb3J0ZWQgPSB1bnNvcnRlZC5zbGljZSgw
KS5zb3J0KGZ1bmN0aW9uKGEsIGIpIHsgcmV0dXJuIGluZGV4ZWREQi5jbXAoYSwgYil9KTsKKyAg
ICAgICAgICAgIGFzc2VydF9rZXlfZXF1YWxzKHNvcnRlZCwgZXhwZWN0ZWQsICJzb3J0ZWQgYXJy
YXkiKTsKKworICAgICAgICB9LCAiSURCS2V5LmNtcCBzb3J0ZWQgLSAiICsgZGVzYyk7CisgICAg
fQorCisgICAgdmFyIG5vdyA9IG5ldyBEYXRlKCksCisgICAgICAgIG9uZV9zZWNfYWdvID0gbmV3
IERhdGUobm93IC0gMTAwMCksCisgICAgICAgIG9uZV9taW5fZnV0dXJlID0gbmV3IERhdGUobm93
LmdldFRpbWUoKSArICgxMDAwKjYwKSk7CisKKyAgICBrZXlzb3J0KCdTdHJpbmcgPCBBcnJheScs
CisgICAgICAgIFsgWzBdLCAieW8iLCAiIiwgW10gXSwKKyAgICAgICAgWyAiIiwgInlvIiwgW10s
IFswXSBdKTsKKworICAgIGtleXNvcnQoJ2Zsb2F0IDwgU3RyaW5nJywKKyAgICAgICAgWyBJbmZp
bml0eSwgInlvIiwgMCwgIiIsIDEwMCBdLAorICAgICAgICBbIDAsIDEwMCwgSW5maW5pdHksICIi
LCAieW8iIF0pOworCisgICAga2V5c29ydCgnZmxvYXQgPCBEYXRlJywKKyAgICAgICAgWyBub3cs
IDAsIDk5OTk5OTk5OTk5OTksIC0wLjIyIF0sCisgICAgICAgIFsgLTAuMjIsIDAsIDk5OTk5OTk5
OTk5OTksIG5vdyBdKTsKKworICAgIGtleXNvcnQoJ2Zsb2F0IDwgRGF0ZSA8IFN0cmluZyA8IEFy
cmF5JywKKyAgICAgICAgWyBbXSwgIiIsIG5vdywgWzBdLCAiLTEiLCAwLCA5OTk5OTk5OTk5OTk5
LCBdLAorICAgICAgICBbIDAsIDk5OTk5OTk5OTk5OTksIG5vdywgIiIsICItMSIsIFtdLCBbMF0g
XSk7CisKKworICAgIGtleXNvcnQoJ0RhdGUoMSBzZWMgYWdvKSA8IERhdGUobm93KSA8IERhdGUo
MSBtaW51dGUgaW4gZnV0dXJlKScsCisgICAgICAgIFsgbm93LCBvbmVfc2VjX2Fnbywgb25lX21p
bl9mdXR1cmUgXSwKKyAgICAgICAgWyBvbmVfc2VjX2Fnbywgbm93LCBvbmVfbWluX2Z1dHVyZSBd
KTsKKworICAgIGtleXNvcnQoJy0xLjEgPCAxIDwgMS4wMTMzNyA8IDEuMDEzMzczIDwgMicsCisg
ICAgICAgIFsgMS4wMTMzNzMsIDIsIDEuMDEzMzcsIC0xLjEsIDEgXSwKKyAgICAgICAgWyAtMS4x
LCAxLCAxLjAxMzM3LCAxLjAxMzM3MywgMiBdKTsKKworICAgIGtleXNvcnQoJy1JbmZpbml0eSA8
IC0wLjAxIDwgMCA8IEluZmluaXR5JywKKyAgICAgICAgWyAwLCAtMC4wMSwgLUluZmluaXR5LCBJ
bmZpbml0eSBdLAorICAgICAgICBbIC1JbmZpbml0eSwgLTAuMDEsIDAsIEluZmluaXR5IF0pOwor
CisgICAga2V5c29ydCgnIiIgPCAiYSIgPCAiYWIiIDwgImIiIDwgImJhIicsCisgICAgICAgIFsg
ImEiLCAiYmEiLCAiIiwgImIiLCAiYWIiIF0sCisgICAgICAgIFsgIiIsICJhIiwgImFiIiwgImIi
LCAiYmEiIF0pOworCisgICAga2V5c29ydCgnQXJyYXlzJywKKyAgICAgICAgWyBbWzBdXSwgWzBd
LCBbXSwgWzAsIDBdLCBbMCwgWzBdXSBdLAorICAgICAgICBbIFtdLCBbMF0sIFswLCAwXSwgWzAs
IFswXV0sIFtbMF1dIF0pOworCisgICAgdmFyIGJpZ19hcnJheSA9IFtdLCBiaWdnZXJfYXJyYXkg
PSBbXTsKKyAgICBmb3IgKHZhciBpPTA7IGkgPCAxMDAwMDsgaSsrKSB7CisgICAgICAgIGJpZ19h
cnJheS5wdXNoKGkpOworICAgICAgICBiaWdnZXJfYXJyYXkucHVzaChpKTsKKyAgICB9CisgICAg
YmlnZ2VyX2FycmF5LnB1c2goMCk7CisKKyAgICBrZXlzb3J0KCdBcnJheS5sZW5ndGg6IDEwLDAw
MCA8IEFycmF5Lmxlbmd0aDogMTAsMDAxJywKKyAgICAgICAgWyBiaWdnZXJfYXJyYXksIFswLCAy
LCAzXSwgWzBdLCBbOV0sIGJpZ19hcnJheSBdLAorICAgICAgICBbIFswXSwgYmlnX2FycmF5LCBi
aWdnZXJfYXJyYXksIFswLCAyLCAzXSwgWzldIF0pOworCisgICAga2V5c29ydCgnSW5maW5pdHkg
aW5zaWRlIGFycmF5cycsCisgICAgICAgIFsgW0luZmluaXR5LCAxXSwgW0luZmluaXR5LCBJbmZp
bml0eV0sIFsxLCAxXSwKKyAgICAgICAgICAgIFsxLCBJbmZpbml0eV0sIFsxLCAtSW5maW5pdHld
LCBbLUluZmluaXR5LCBJbmZpbml0eV0gXSwKKyAgICAgICAgWyBbLUluZmluaXR5LCBJbmZpbml0
eV0sIFsxLCAtSW5maW5pdHldLCBbMSwgMV0sCisgICAgICAgICAgICBbMSwgSW5maW5pdHldLCBb
SW5maW5pdHksIDFdLCBbSW5maW5pdHksIEluZmluaXR5XSBdKTsKKworCisgICAga2V5c29ydCgn
VGVzdCBkaWZmZXJlbnQgc3R1ZmYgYXQgb25jZScsCisgICAgICAgIFsKKyAgICAgICAgICBub3cs
CisgICAgICAgICAgWzAsIFtdXSwKKyAgICAgICAgICAidGVzdCIsCisgICAgICAgICAgMSwKKyAg
ICAgICAgICBbImEiLCBbMSwgWy0xXV1dLAorICAgICAgICAgIFsiYiIsICJhIl0sCisgICAgICAg
ICAgWyAwLCAyLCAiYyJdLAorICAgICAgICAgIFsiYSIsIFsxLCAyXV0sCisgICAgICAgICAgW10s
CisgICAgICAgICAgWzAsIFtdLCAzXSwKKyAgICAgICAgICBbImEiLCAiYiJdLAorICAgICAgICAg
IFsgMSwgMiBdLAorICAgICAgICAgIFsiYSIsICJiIiwgImMiXSwKKyAgICAgICAgICBvbmVfc2Vj
X2FnbywKKyAgICAgICAgICBbIDAsICJiIiwgImMiXSwKKyAgICAgICAgICBJbmZpbml0eSwKKyAg
ICAgICAgICAtSW5maW5pdHksCisgICAgICAgICAgMi41NSwKKyAgICAgICAgICBbIDAsIG5vdyBd
LAorICAgICAgICAgIFsxXQorICAgICAgICBdLAorICAgICAgICBbCisgICAgICAgICAgLUluZmlu
aXR5LAorICAgICAgICAgIDEsCisgICAgICAgICAgMi41NSwKKyAgICAgICAgICBJbmZpbml0eSwK
KyAgICAgICAgICBvbmVfc2VjX2FnbywKKyAgICAgICAgICBub3csCisgICAgICAgICAgInRlc3Qi
LAorICAgICAgICAgIFtdLAorICAgICAgICAgIFswICwyLCAiYyJdLAorICAgICAgICAgIFswLCBu
b3ddLAorICAgICAgICAgIFswLCAiYiIsICJjIl0sCisgICAgICAgICAgWzAsIFtdXSwKKyAgICAg
ICAgICBbMCwgW10sIDNdLAorICAgICAgICAgIFsxXSwKKyAgICAgICAgICBbMSwgMl0sCisgICAg
ICAgICAgWyJhIiwgImIiXSwKKyAgICAgICAgICBbImEiLCAiYiIsICJjIl0sCisgICAgICAgICAg
WyJhIiwgWzEsIDJdXSwKKyAgICAgICAgICBbImEiLCBbMSwgWy0xXV1dLAorICAgICAgICAgIFsi
YiIsICJhIl0KKyAgICAgICAgXSk7CisKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9rZXlwYXRo
LXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9rZXlwYXRoLXByaXZhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLmI0YWI5ZWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2tleXBhdGgtcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwy
MSBAQAorCitQQVNTIEtleXBhdGggLSBteS5rZXkgCitQQVNTIEtleXBhdGggLSBteS5rw7hpIAor
UEFTUyBLZXlwYXRoIC0gbXkua2V5X3lhIAorUEFTUyBLZXlwYXRoIC0gcHVibGljLmtleSR5YSAK
K1BBU1MgS2V5cGF0aCAtIHRydWUuJCAKK1BBU1MgS2V5cGF0aCAtIG15Ll8gCitQQVNTIEtleXBh
dGggLSBkZWxldGUuYTcgCitQQVNTIEtleXBhdGggLSBwLnAucC5wLnAucC5wLnAucC5wLnAucC5w
LnAgCitQQVNTIEtleXBhdGggLSBzdHIubGVuZ3RoIAorUEFTUyBLZXlwYXRoIC0gYXJyLmxlbmd0
aCAKK1BBU1MgS2V5cGF0aCAtIGxlbmd0aCAKK1BBU1MgS2V5cGF0aCAtICcnIHVzZXMgdmFsdWUg
YXMga2V5IAorUEFTUyBLZXlwYXRoIC0gWycnXSB1c2VzIHZhbHVlIGFzIFtrZXldIAorUEFTUyBL
ZXlwYXRoIC0gWyd4JywgJ3knXSAKK1BBU1MgS2V5cGF0aCAtIFtbJ3gnXSwgJ3knXSAoc3RyaW5n
aWZpZXMpIAorUEFTUyBLZXlwYXRoIC0gWyd4Jywge3RvU3RyaW5nLT4neSd9XSAoc3RyaW5naWZp
ZXMpIAorUEFTUyBLZXlwYXRoIC0gbmFtZSx0eXBlIAorUEFTUyBLZXlwYXRoIC0gbmFtZSx0eXBl
Lm5hbWUgCitQQVNTIEtleXBhdGggLSBhcnJheSBsb29wIC0+IHN0cmluZ2lmeSBiZWNvbWVzIFsn
J10gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIva2V5
cGF0aC1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2tl
eXBhdGgtcHJpdmF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRh
OTBiZjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2tleXBhdGgtcHJpdmF0ZS5odG1sCkBAIC0wLDAgKzEsMTQ2IEBACis8IURPQ1RZUEUgaHRt
bD4KKzwhLS0gU3VibWl0dGVkIGZyb20gVGVzdFRXRiBQYXJpcyAtLT4KKzxtZXRhIGNoYXJzZXQ9
InV0Zi04Ij4KKzx0aXRsZT5LZXlwYXRoPC90aXRsZT4KKzxsaW5rIHJlbD1oZWxwIGhyZWY9Imh0
dHA6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwj
a2V5LXBhdGgtY29uc3RydWN0Ij4KKzxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9IkEga2V5IHBhdGgg
aXMgYSBET01TdHJpbmcgdGhhdCBkZWZpbmVzIGhvdyB0byBleHRyYWN0IGEga2V5IGZyb20gYSB2
YWx1ZS4gQSB2YWxpZCBrZXkgcGF0aCBpcyBlaXRoZXIgdGhlIGVtcHR5IHN0cmluZywgYSBKYXZh
U2NyaXB0IGlkZW50aWZpZXIsIG9yIG11bHRpcGxlIEphdmFzY3JpcHQgaWRlbnRpZmllcnMgc2Vw
YXJhdGVkIGJ5IHBlcmlvZHMgKEFTQ0lJIGNoYXJhY3RlciBjb2RlIDQ2KSBbRUNNQS0yNjJdLiI+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0
PgorCisgICAgdmFyIGdsb2JhbF9kYiA9IGNyZWF0ZWRiX2Zvcl9tdWx0aXBsZV90ZXN0cygpOwor
CisgICAgZnVuY3Rpb24ga2V5cGF0aChrZXlwYXRoLCBvYmplY3RzLCBleHBlY3RlZF9rZXlzLCBk
ZXNjKSB7CisgICAgICAgIHZhciBkYiwKKyAgICAgICAgICAgIHQgPSBhc3luY190ZXN0KGRvY3Vt
ZW50LnRpdGxlICsgIiAtICIgKyAoZGVzYyA/IGRlc2MgOiBrZXlwYXRoKSksCisKKyAgICAgICAg
ICAgIHN0b3JlX25hbWUgPSAic3RvcmUtIisoRGF0ZS5ub3coKSkrTWF0aC5yYW5kb20oKTsKKwor
ICAgICAgICB2YXIgb3Blbl9ycSA9IGdsb2JhbF9kYi5zZXRUZXN0KHQpOworICAgICAgICBvcGVu
X3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGRiID0gZS50
YXJnZXQucmVzdWx0OworICAgICAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0
U3RvcmUoc3RvcmVfbmFtZSwgeyBrZXlQYXRoOiBrZXlwYXRoIH0pOworCisgICAgICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IG9iamVjdHMubGVuZ3RoOyBpKyspCisgICAgICAgICAgICAgICAg
b2JqU3RvcmUuYWRkKG9iamVjdHNbaV0pOworICAgICAgICB9OworCisgICAgICAgIG9wZW5fcnEu
b25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIGFjdHVhbF9rZXlzID0g
W10sCisgICAgICAgICAgICAgIHJxID0gZGIudHJhbnNhY3Rpb24oc3RvcmVfbmFtZSkKKyAgICAg
ICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZShzdG9yZV9uYW1lKQorICAgICAgICAgICAgICAg
ICAgICAgLm9wZW5DdXJzb3IoKTsKKworICAgICAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVw
X2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdl
dC5yZXN1bHQ7CisKKyAgICAgICAgICAgICAgICBpZiAoY3Vyc29yKSB7CisgICAgICAgICAgICAg
ICAgICAgIGFjdHVhbF9rZXlzLnB1c2goY3Vyc29yLmtleS52YWx1ZU9mKCkpOworICAgICAgICAg
ICAgICAgICAgICBjdXJzb3IuY29udGludWUoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydF9rZXlfZXF1YWxzKGFj
dHVhbF9rZXlzLCBleHBlY3RlZF9rZXlzLCAia2V5b3JkZXIgYXJyYXkiKTsKKyAgICAgICAgICAg
ICAgICAgICAgdC5kb25lKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSk7Cisg
ICAgICAgIH07CisgICAgfQorCisgICAga2V5cGF0aCgnbXkua2V5JywKKyAgICAgICAgWyB7IG15
OiB7IGtleTogMTAgfSB9IF0sCisgICAgICAgIFsgMTAgXSk7CisKKyAgICBrZXlwYXRoKCdteS5r
w7hpJywKKyAgICAgICAgWyB7IG15OiB7IGvDuGk6IDUgfSB9IF0sCisgICAgICAgIFsgNSBdKTsK
KworICAgIGtleXBhdGgoJ215LmtleV95YScsCisgICAgICAgIFsgeyBteTogeyBrZXlfeWE6IDEw
IH0gfSBdLAorICAgICAgICBbIDEwIF0pOworCisgICAga2V5cGF0aCgncHVibGljLmtleSR5YScs
CisgICAgICAgIFsgeyBwdWJsaWM6IHsga2V5JHlhOiAxMCB9IH0gXSwKKyAgICAgICAgWyAxMCBd
KTsKKworICAgIGtleXBhdGgoJ3RydWUuJCcsCisgICAgICAgIFsgeyB0cnVlOiB7ICQ6IDEwIH0g
fSBdLAorICAgICAgICBbIDEwIF0pOworCisgICAga2V5cGF0aCgnbXkuXycsCisgICAgICAgIFsg
eyBteTogeyBfOiAxMCB9IH0gXSwKKyAgICAgICAgWyAxMCBdKTsKKworICAgIGtleXBhdGgoJ2Rl
bGV0ZS5hNycsCisgICAgICAgIFsgeyBkZWxldGU6IHsgYTc6IDEwIH0gfSBdLAorICAgICAgICBb
IDEwIF0pOworCisgICAga2V5cGF0aCgncC5wLnAucC5wLnAucC5wLnAucC5wLnAucC5wJywKKyAg
ICAgICAgWyB7cDp7cDp7cDp7cDp7cDp7cDp7cDp7cDp7cDp7cDp7cDp7cDp7cDp7cDoxMH19fX19
fX19fX19fX19IF0sCisgICAgICAgIFsgMTAgXSk7CisKKyAgICBrZXlwYXRoKCdzdHIubGVuZ3Ro
JywKKyAgICAgICAgWyB7IHN0cjogInBvbnkiIH0sIHsgc3RyOiAibXkiIH0sIHsgc3RyOiAibGl0
dGxlIiB9LCB7IHN0cjogIiIgfSBdLAorICAgICAgICBbIDAsIDIsIDQsIDYgXSk7CisKKyAgICBr
ZXlwYXRoKCdhcnIubGVuZ3RoJywKKyAgICAgICAgWyB7YXJyOiBbMCwgMCwgMCwgMF19LCB7YXJy
OiBbe30sIDAsICJoZWkiLCAibGVuZ3RoIiwgSW5maW5pdHksIFtdXX0sIHthcnI6IFsxMCwgMTBd
fSwgeyBhcnI6IFtdfSBdLAorICAgICAgICBbIDAsIDIsIDQsIDYgXSk7CisKKyAgICBrZXlwYXRo
KCdsZW5ndGgnLAorICAgICAgICBbIFsxMCwgMTBdLCAiMTIzIiwgeyBsZW5ndGg6IDIwIH0gXSwK
KyAgICAgICAgWyAyLCAzLCAyMCBdKTsKKworICAgIGtleXBhdGgoJycsCisgICAgICAgIFsgWyJi
YWdzIl0sICJiZWFuIiwgMTAgXSwKKyAgICAgICAgWyAxMCwgImJlYW4iLCBbImJhZ3MiXSBdLAor
ICAgICAgICAiJycgdXNlcyB2YWx1ZSBhcyBrZXkiKTsKKworICAgIGtleXBhdGgoWycnXSwKKyAg
ICAgICAgWyBbImJhZ3MiXSwgImJlYW4iLCAxMCBdLAorICAgICAgICBbIFsxMF0sIFsiYmVhbiJd
ICwgW1siYmFncyJdXSBdLAorICAgICAgICAiWycnXSB1c2VzIHZhbHVlIGFzIFtrZXldIik7CisK
KyAgICBrZXlwYXRoKFsneCcsICd5J10sCisgICAgICAgIFsge3g6MTAsIHk6MjB9LCB7eToxLjMz
NywgeDoxMDB9IF0sCisgICAgICAgIFsgWzEwLCAyMF0sIFsxMDAsIDEuMzM3XSBdLAorICAgICAg
ICAiWyd4JywgJ3knXSIpOworCisgICAga2V5cGF0aChbWyd4J10sIFsneSddXSwKKyAgICAgICAg
WyB7eDoxMCwgeToyMH0sIHt5OjEuMzM3LCB4OjEwMH0gXSwKKyAgICAgICAgWyBbMTAsIDIwXSwg
WzEwMCwgMS4zMzddIF0sCisgICAgICAgICJbWyd4J10sICd5J10gKHN0cmluZ2lmaWVzKSIpOwor
CisgICAga2V5cGF0aChbJ3gnLCB7dG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gJ3knfX1dLAor
ICAgICAgICBbIHt4OjEwLCB5OjIwfSwge3k6MS4zMzcsIHg6MTAwfSBdLAorICAgICAgICBbIFsx
MCwgMjBdLCBbMTAwLCAxLjMzN10gXSwKKyAgICAgICAgIlsneCcsIHt0b1N0cmluZy0+J3knfV0g
KHN0cmluZ2lmaWVzKSIpOworCisgICAgaWYgKGZhbHNlKSB7CisgICAgICAgIHZhciBteWJsb2Ig
PSBCbG9iKFsiWW9kYSJdLCB7dHlwZTonc3VwcmF3c3VtJ30pOworICAgICAgICBrZXlwYXRoKFsn
bGVuZ3RoJywgJ3R5cGUnXSwKKyAgICAgICAgICAgIFsgbXlibG9iIF0sCisgICAgICAgICAgICBb
IDQsICdzdXByYXdzdW0nIF0sCisgICAgICAgICAgICAiW0Jsb2IubGVuZ3RoLCBCbG9iLnR5cGVd
Iik7CisgICAgfQorCisgICAgLy8gRmlsZS5uYW1lIGFuZCBGaWxlLmxhc3RNb2RpZmllZERhdGUg
aXMgbm90IHRlc3RhYmxlIGF1dG9tYXRpY2FsbHkKKworICAgIGtleXBhdGgoWyduYW1lJywgJ3R5
cGUnXSwKKyAgICAgICAgWyB7IG5hbWU6ICJvcmFuZ2UiLCB0eXBlOiAiZnJ1aXQiIH0sIHsgbmFt
ZTogIm9yYW5nZSIsIHR5cGU6IFsidGVsZWNvbSIsICJmcmVuY2giXSB9IF0sCisgICAgICAgIFsg
WyJvcmFuZ2UiLCAiZnJ1aXQiXSwgWyJvcmFuZ2UiLCBbInRlbGVjb20iLCAiZnJlbmNoIl1dIF0p
OworCisgICAga2V5cGF0aChbJ25hbWUnLCAndHlwZS5uYW1lJ10sCisgICAgICAgIFsgeyBuYW1l
OiAib3JhbmdlIiwgdHlwZTogeyBuYW1lOiAiZnJ1aXQiIH19LCB7IG5hbWU6ICJvcmFuZ2UiLCB0
eXBlOiB7IG5hbWU6ICJ0ZWxlY29tIiB9fSBdLAorICAgICAgICBbIFsib3JhbmdlIiwgImZydWl0
Il0sIFsib3JhbmdlIiwgInRlbGVjb20iIF0gXSk7CisKKyAgICBsb29wX2FycmF5ID0gW107Cisg
ICAgbG9vcF9hcnJheS5wdXNoKGxvb3BfYXJyYXkpOworICAgIGtleXBhdGgobG9vcF9hcnJheSwK
KyAgICAgICAgWyAiYSIsIDEsIFsiayJdIF0sCisgICAgICAgIFsgWzFdLCBbImEiXSwgW1siayJd
XSBdLAorICAgICAgICAiYXJyYXkgbG9vcCAtPiBzdHJpbmdpZnkgYmVjb21lcyBbJyddIik7Cis8
L3NjcmlwdD4KKworPGRpdiBpZD1sb2c+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2tleXBhdGhfaW52YWxpZC1wcml2YXRlLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIva2V5cGF0aF9pbnZhbGlkLXBy
aXZhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYw
OTgyNDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2tleXBhdGhfaW52YWxpZC1wcml2YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI2IEBA
CisKK1BBU1MgSW52YWxpZCBrZXlQYXRoIC0gImogYSIgCitQQVNTIEludmFsaWQga2V5UGF0aCAt
ICIueW8iIAorUEFTUyBJbnZhbGlkIGtleVBhdGggLSAieW8sbG8iIAorUEFTUyBJbnZhbGlkIGtl
eVBhdGggLSBbXSAKK1BBU1MgSW52YWxpZCBrZXlQYXRoIC0gWyJhcnJheSB3aXRoIHNwYWNlIl0g
CitQQVNTIEludmFsaWQga2V5UGF0aCAtIG11bHRpZGltZW5zaW9uYWwgYXJyYXkgKGludmFsaWQg
dG9TdHJpbmcpIAorUEFTUyBJbnZhbGlkIGtleVBhdGggLSAiM20iIAorUEFTUyBJbnZhbGlkIGtl
eVBhdGggLSB7dG9TdHJpbmctPjNtfSAKK1BBU1MgSW52YWxpZCBrZXlQYXRoIC0gIm15LjEzMzci
IAorUEFTUyBJbnZhbGlkIGtleVBhdGggLSAiLi55byIgCitQQVNTIEludmFsaWQga2V5UGF0aCAt
ICJ5Li5vIiAKK1BBU1MgSW52YWxpZCBrZXlQYXRoIC0gInkuby4iIAorUEFTUyBJbnZhbGlkIGtl
eVBhdGggLSAieS5vLi4iIAorUEFTUyBJbnZhbGlkIGtleVBhdGggLSAibS4qIiAKK1BBU1MgSW52
YWxpZCBrZXlQYXRoIC0gIlwibVwiIiAKK1BBU1MgSW52YWxpZCBrZXlQYXRoIC0gIm0lIiAKK1BB
U1MgSW52YWxpZCBrZXlQYXRoIC0gIm0vIiAKK1BBU1MgSW52YWxpZCBrZXlQYXRoIC0gIm0vYSIg
CitQQVNTIEludmFsaWQga2V5UGF0aCAtICJtJiIgCitQQVNTIEludmFsaWQga2V5UGF0aCAtICJt
ISIgCitQQVNTIEludmFsaWQga2V5UGF0aCAtICIqIiAKK1BBU1MgSW52YWxpZCBrZXlQYXRoIC0g
IiouKiIgCitQQVNTIEludmFsaWQga2V5UGF0aCAtICJebSIgCitQQVNTIEludmFsaWQga2V5UGF0
aCAtICIvbS8iIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2tleXBhdGhfaW52YWxpZC1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2tleXBhdGhfaW52YWxpZC1wcml2YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uY2MxZDQ0NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIva2V5cGF0aF9pbnZhbGlkLXByaXZhdGUuaHRtbApA
QCAtMCwwICsxLDY1IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0gU3VibWl0dGVkIGZyb20gVGVz
dFRXRiBQYXJpcyAtLT4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JbnZhbGlkIGtl
eXBhdGg8L3RpdGxlPgorPGxpbmsgcmVsPWhlbHAgaHJlZj0iaHR0cDovL2R2Y3MudzMub3JnL2hn
L0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCNrZXktcGF0aC1jb25zdHJ1Y3Qi
PgorPGxpbmsgcmVsPWFzc2VydCB0aXRsZT0iQSBrZXkgcGF0aCBpcyBhIERPTVN0cmluZyB0aGF0
IGRlZmluZXMgaG93IHRvIGV4dHJhY3QgYSBrZXkgZnJvbSBhIHZhbHVlLiBBIHZhbGlkIGtleSBw
YXRoIGlzIGVpdGhlciB0aGUgZW1wdHkgc3RyaW5nLCBhIEphdmFTY3JpcHQgaWRlbnRpZmllciwg
b3IgbXVsdGlwbGUgSmF2YXNjcmlwdCBpZGVudGlmaWVycyBzZXBhcmF0ZWQgYnkgcGVyaW9kcyAo
QVNDSUkgY2hhcmFjdGVyIGNvZGUgNDYpIFtFQ01BLTI2Ml0uIj4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisKKyAgICB2YXIgZ2xvYmFs
X2RiID0gY3JlYXRlZGJfZm9yX211bHRpcGxlX3Rlc3RzKCk7CisKKyAgICBmdW5jdGlvbiBpbnZh
bGlkX2tleXBhdGgoa2V5cGF0aCwgZGVzYykgeworICAgICAgICB2YXIgdCA9IGFzeW5jX3Rlc3Qo
IkludmFsaWQga2V5UGF0aCAtICIgKyAoZGVzYyA/IGRlc2MgOiBmb3JtYXRfdmFsdWUoa2V5cGF0
aCkpLCB1bmRlZmluZWQsIDIpOworCisgICAgICAgIHZhciBvcGVucnEgPSBnbG9iYWxfZGIuc2V0
VGVzdCh0KSwKKyAgICAgICAgICAgIHN0b3JlX25hbWUgID0gInN0b3JlLSIgKyBEYXRlLm5vdygp
ICsgTWF0aC5yYW5kb20oKTsKKworICAgICAgICBvcGVucnEub251cGdyYWRlbmVlZGVkID0gZnVu
Y3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAg
ICAgICAgYXNzZXJ0X3Rocm93cygnU3ludGF4RXJyb3InLCBmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgICAgICAgICAgZGIuY3JlYXRlT2JqZWN0U3RvcmUoc3RvcmVfbmFtZSwgeyBrZXlQYXRoOiBr
ZXlwYXRoIH0pCisgICAgICAgICAgICAgICAgfSwgImNyZWF0ZU9iamVjdFN0b3JlIHdpdGgga2V5
UGF0aCIpOworCisgICAgICAgICAgICBzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKHN0b3Jl
X25hbWUpOworICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygnU3ludGF4RXJyb3InLCBmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgICAgICAgICAgc3RvcmUuY3JlYXRlSW5kZXgoJ2luZGV4Jywga2V5
cGF0aCk7CisgICAgICAgICAgICAgICAgfSwgImNyZWF0ZUluZGV4IHdpdGgga2V5UGF0aCIpOwor
CisgICAgICAgICAgICBkYi5jbG9zZSgpOworCisgICAgICAgICAgICB0aGlzLmRvbmUoKTsKKyAg
ICAgICAgfTsKKyAgICB9CisKKyAgICBpbnZhbGlkX2tleXBhdGgoJ2ogYScpOworICAgIGludmFs
aWRfa2V5cGF0aCgnLnlvJyk7CisgICAgaW52YWxpZF9rZXlwYXRoKCd5byxsbycpOworICAgIGlu
dmFsaWRfa2V5cGF0aChbXSk7CisgICAgaW52YWxpZF9rZXlwYXRoKFsnYXJyYXkgd2l0aCBzcGFj
ZSddKTsKKyAgICBpbnZhbGlkX2tleXBhdGgoWydtdWx0aV9hcnJheScsIFsnYScsICdiJ11dLCAi
bXVsdGlkaW1lbnNpb25hbCBhcnJheSAoaW52YWxpZCB0b1N0cmluZykiKTsgLy8gPT4gWydtdWx0
aV9hcnJheScsICdhLGInXQorICAgIGludmFsaWRfa2V5cGF0aCgnM20nKTsKKyAgICBpbnZhbGlk
X2tleXBhdGgoe3RvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuICczbSd9fSwgJ3t0b1N0cmluZy0+
M219Jyk7CisgICAgaW52YWxpZF9rZXlwYXRoKCdteS4xMzM3Jyk7CisgICAgaW52YWxpZF9rZXlw
YXRoKCcuLnlvJyk7CisgICAgaW52YWxpZF9rZXlwYXRoKCd5Li5vJyk7CisgICAgaW52YWxpZF9r
ZXlwYXRoKCd5Lm8uJyk7CisgICAgaW52YWxpZF9rZXlwYXRoKCd5Lm8uLicpOworICAgIGludmFs
aWRfa2V5cGF0aCgnbS4qJyk7CisgICAgaW52YWxpZF9rZXlwYXRoKCcibSInKTsKKyAgICBpbnZh
bGlkX2tleXBhdGgoJ20lJyk7CisgICAgaW52YWxpZF9rZXlwYXRoKCdtLycpOworICAgIGludmFs
aWRfa2V5cGF0aCgnbS9hJyk7CisgICAgaW52YWxpZF9rZXlwYXRoKCdtJicpOworICAgIGludmFs
aWRfa2V5cGF0aCgnbSEnKTsKKyAgICBpbnZhbGlkX2tleXBhdGgoJyonKTsKKyAgICBpbnZhbGlk
X2tleXBhdGgoJyouKicpOworICAgIGludmFsaWRfa2V5cGF0aCgnXm0nKTsKKyAgICBpbnZhbGlk
X2tleXBhdGgoJy9tLycpOworCis8L3NjcmlwdD4KKworPGRpdiBpZD1sb2c+PC9kaXY+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2tleXBhdGhfbWF4c2l6
ZS1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIva2V5cGF0aF9tYXhzaXplLXByaXZhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLmYyOTI5MWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2tleXBhdGhfbWF4c2l6ZS1wcml2YXRlLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDUgQEAKKworUEFTUyBLZXlwYXRoIC0gfjI2MCBjaGFycyAKK1BBU1Mg
S2V5cGF0aCAtIH41MzAgY2hhcnMgCitQQVNTIEtleXBhdGggLSB+MTA1MCBjaGFycyAKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9rZXlwYXRoX21heHNp
emUtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9rZXlw
YXRoX21heHNpemUtcHJpdmF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjJmOWUxMjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2tleXBhdGhfbWF4c2l6ZS1wcml2YXRlLmh0bWwKQEAgLTAsMCArMSw2MyBAQAor
PCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+S2V5cGF0aDwv
dGl0bGU+Cis8bGluayByZWw9aGVscCBocmVmPSJodHRwOi8vZHZjcy53My5vcmcvaGcvSW5kZXhl
ZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI2tleS1wYXRoLWNvbnN0cnVjdCI+Cis8bGlu
ayByZWw9YXNzZXJ0IHRpdGxlPSJBIGtleSBwYXRoIGlzIGEgRE9NU3RyaW5nIHRoYXQgZGVmaW5l
cyBob3cgdG8gZXh0cmFjdCBhIGtleSBmcm9tIGEgdmFsdWUuIEEgdmFsaWQga2V5IHBhdGggaXMg
ZWl0aGVyIHRoZSBlbXB0eSBzdHJpbmcsIGEgSmF2YVNjcmlwdCBpZGVudGlmaWVyLCBvciBtdWx0
aXBsZSBKYXZhc2NyaXB0IGlkZW50aWZpZXJzIHNlcGFyYXRlZCBieSBwZXJpb2RzIChBU0NJSSBj
aGFyYWN0ZXIgY29kZSA0NikgW0VDTUEtMjYyXS4iPgorPG1ldGEgbmFtZT10aW1lb3V0IGNvbnRl
bnQ9bG9uZz4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisK
KzxzY3JpcHQ+CisgICAgZnVuY3Rpb24ga2V5cGF0aChrZXlwYXRoLCBvYmplY3RzLCBleHBlY3Rl
ZF9rZXlzLCBkZXNjKSB7CisgICAgICAgIHZhciBkYiwKKyAgICAgICAgICAgIHQgPSBhc3luY190
ZXN0KGRvY3VtZW50LnRpdGxlICsgIiAtICIgKyAoZGVzYyA/IGRlc2MgOiBrZXlwYXRoKSwgeyB0
aW1lb3V0OiAxMDAwMCB9KSwKKyAgICAgICAgICAgIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKwor
ICAgICAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAg
ICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICAgICAgdmFyIG9ialN0b3JlID0gZGIu
Y3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRoOiBrZXlwYXRoIH0pOworCisgICAg
ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG9iamVjdHMubGVuZ3RoOyBpKyspCisgICAgICAg
ICAgICAgICAgb2JqU3RvcmUuYWRkKG9iamVjdHNbaV0pOworICAgICAgICB9OworCisgICAgICAg
IG9wZW5fcnEub25lcnJvciA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGFzc2VydF91bnJl
YWNoZWQoZS50YXJnZXQuZXJyb3IubmFtZSk7CisgICAgICAgIH07CisKKyAgICAgICAgb3Blbl9y
cS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgICAgICB2YXIgYWN0dWFsX2tleXMg
PSBbXSwKKyAgICAgICAgICAgICAgICBycSA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIpCisgICAg
ICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgic3RvcmUiKQorICAgICAgICAgICAgICAg
ICAgICAgICAub3BlbkN1cnNvcigpOworCisgICAgICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0LnN0
ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFy
Z2V0LnJlc3VsdDsKKworICAgICAgICAgICAgICAgIGlmIChjdXJzb3IpIHsKKyAgICAgICAgICAg
ICAgICAgICAgYWN0dWFsX2tleXMucHVzaChjdXJzb3Iua2V5LnZhbHVlT2YoKSk7CisgICAgICAg
ICAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoYWN0dWFsX2tleXMsIGV4
cGVjdGVkX2tleXMsICJrZXlvcmRlciBhcnJheSIpOworICAgICAgICAgICAgICAgICAgICB0LmRv
bmUoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfTsKKyAg
ICB9CisKKyAgICBrZXlwYXRoKCdtYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhaS5rZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVleScs
CisgICAgICAgIFsgeyBtYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhaTog
eyBrZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVleTogMTAg
fSB9IF0sCisgICAgICAgIFsgMTAgXSwgJ34yNjAgY2hhcnMnKTsKKworICAgIGtleXBhdGgoJ21h
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFpX21hYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFpLmtlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWV5X2tlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWV5JywKKyAgICAgICAgWyB7IG1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFpX21hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFpOiB7
IGtlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWV5X2tlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWV5OiAxMCB9IH0gXSwK
KyAgICAgICAgWyAxMCBdLCAnfjUzMCBjaGFycycpOworCisgICAga2V5cGF0aCgnbWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWlfbWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWlfbWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWlfbWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWkua2VlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZXlfa2VlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZXlfa2VlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZXlfa2VlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZXknLAorICAgICAgICBbIHsgbWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWlfbWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWlfbWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWlfbWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWk6IHsga2VlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZXlfa2VlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZXlfa2VlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZXlfa2VlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZXk6IDEwIH0gfSBdLAorICAgICAgICBbIDEwIF0sICd+MTA1MCBjaGFycycpOwor
Cis8L3NjcmlwdD4KKworPGRpdiBpZD1sb2c+PC9sb2c+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2xpc3Rfb3JkZXJpbmctcHJpdmF0ZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2xpc3Rfb3JkZXJpbmctcHJp
dmF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTc5
M2I1ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvbGlzdF9vcmRlcmluZy1wcml2YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKKwor
UEFTUyBvYmplY3RTdG9yZU5hbWVzIGFuZCBpbmRleE5hbWVzIG9yZGVyIC0gbnVtYmVycyAKK1BB
U1Mgb2JqZWN0U3RvcmVOYW1lcyBhbmQgaW5kZXhOYW1lcyBvcmRlciAtIG51bWJlcnMgJ292ZXJm
bG93JyAKK1BBU1Mgb2JqZWN0U3RvcmVOYW1lcyBhbmQgaW5kZXhOYW1lcyBvcmRlciAtIGxleGln
cmFwaGljYWwgc3RyaW5nIHNvcnQgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvbGlzdF9vcmRlcmluZy1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2xpc3Rfb3JkZXJpbmctcHJpdmF0ZS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc5OTc2N2EKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2xpc3Rfb3JkZXJpbmctcHJpdmF0ZS5o
dG1sCkBAIC0wLDAgKzEsNjEgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRm
LTgiPgorPHRpdGxlPm9iamVjdFN0b3JlTmFtZXMgYW5kIGluZGV4TmFtZXMgb3JkZXI8L3RpdGxl
PgorPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRs
ZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KKzxsaW5rIHJlbD1oZWxwIGhyZWY9Imh0dHA6Ly9kdmNz
LnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwjd2lkbC1JREJE
YXRhYmFzZS1vYmplY3RTdG9yZU5hbWVzIj4KKzxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9IlRoZSBs
aXN0IG11c3QgYmUgc29ydGVkIGluIGFzY2VuZGluZyBvcmRlciB1c2luZyB0aGUgYWxnb3JpdGht
IGRlZmluZWQgYnkgc3RlcCA0IG9mIHNlY3Rpb24gMTEuOC41LCBUaGUgQWJzdHJhY3QgUmVsYXRp
b25hbCBDb21wYXJpc29uIEFsZ29yaXRobSBvZiB0aGUgRUNNQVNjcmlwdCBMYW5ndWFnZSBTcGVj
aWZpY2F0aW9uIFtFQ01BLTI2Ml0uIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5q
cyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgZnVuY3Rpb24gbGlzdF9vcmRlcihkZXNjLCB1
bnNvcnRlZCwgZXhwZWN0ZWQpIHsKKyAgICAgICAgdmFyIG9ialN0b3JlLCBkYiwKKyAgICAgICAg
ICB0ID0gYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSArICIgLSAiICsgZGVzYyk7CisKKyAgICAg
ICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICAgICAgb3Blbl9ycS5vbnVwZ3JhZGVu
ZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsK
KyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdW5zb3J0ZWQubGVuZ3RoOyBpKyspCisg
ICAgICAgICAgICAgICAgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSh1bnNvcnRlZFtp
XSk7CisKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZGIub2JqZWN0U3RvcmVOYW1lcy5sZW5n
dGgsIGV4cGVjdGVkLmxlbmd0aCwgIm9iamVjdFN0b3JlTmFtZXMgbGVuZ3RoIik7CisgICAgICAg
ICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGV4cGVjdGVkLmxlbmd0aDsgaSsrKQorICAgICAgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhkYi5vYmplY3RTdG9yZU5hbWVzW2ldLCBleHBlY3RlZFtpXSwg
Im9iamVjdFN0b3JlTmFtZXNbIitpKyJdIik7CisKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgdW5zb3J0ZWQubGVuZ3RoOyBpKyspCisgICAgICAgICAgICAgICAgb2JqU3RvcmUuY3Jl
YXRlSW5kZXgodW5zb3J0ZWRbaV0sICJsZW5ndGgiKTsKKworICAgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhvYmpTdG9yZS5pbmRleE5hbWVzLmxlbmd0aCwgZXhwZWN0ZWQubGVuZ3RoLCAiaW5kZXhO
YW1lcyBsZW5ndGgiKTsKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZXhwZWN0ZWQu
bGVuZ3RoOyBpKyspCisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhvYmpTdG9yZS5pbmRl
eE5hbWVzW2ldLCBleHBlY3RlZFtpXSwgImluZGV4TmFtZXNbIitpKyJdIik7CisgICAgICAgIH07
CisKKyAgICAgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKGRiLm9iamVjdFN0b3JlTmFtZXMubGVuZ3RoLCBleHBlY3RlZC5sZW5n
dGgsICJvYmplY3RTdG9yZU5hbWVzIGxlbmd0aCIpOworICAgICAgICAgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCBleHBlY3RlZC5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKGRiLm9iamVjdFN0b3JlTmFtZXNbaV0sIGV4cGVjdGVkW2ldLCAib2JqZWN0U3RvcmVOYW1l
c1siK2krIl0iKTsKKworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhvYmpTdG9yZS5pbmRleE5h
bWVzLmxlbmd0aCwgZXhwZWN0ZWQubGVuZ3RoLCAiaW5kZXhOYW1lcyBsZW5ndGgiKTsKKyAgICAg
ICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZXhwZWN0ZWQubGVuZ3RoOyBpKyspCisgICAgICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhvYmpTdG9yZS5pbmRleE5hbWVzW2ldLCBleHBlY3RlZFtp
XSwgImluZGV4TmFtZXNbIitpKyJdIik7CisKKyAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAg
ICB9OworICAgIH0KKworICAgIGxpc3Rfb3JkZXIoIm51bWJlcnMiLAorICAgICAgICBbMTIzNDU2
LCAtMTIzNDUsIC0xMjMsIDEyMywgMTIzNCwgLTEyMzQsIDAsIDEyMzQ1LCAtMTIzNDU2XSwKKyAg
ICAgICAgWyItMTIzIiwgIi0xMjM0IiwgIi0xMjM0NSIsICItMTIzNDU2IiwgIjAiLCAiMTIzIiwg
IjEyMzQiLCAiMTIzNDUiLCAiMTIzNDU2Il0pOworCisgICAgbGlzdF9vcmRlcigibnVtYmVycyAn
b3ZlcmZsb3cnIiwKKyAgICAgICAgWzksIDEsIDEwMDAwMDAwMDAsIDIwMDAwMDAwMDAwMDAwMDAw
MF0sCisgICAgICAgIFsiMSIsICIxMDAwMDAwMDAwIiwgIjIwMDAwMDAwMDAwMDAwMDAwMCIsICI5
Il0pOworCisgICAgbGlzdF9vcmRlcigibGV4aWdyYXBoaWNhbCBzdHJpbmcgc29ydCIsCisgICAg
ICAgIFsgImNjIiwgImMiLCAiYWEiLCAiYSIsICJiYiIsICJiIiwgImFiIiwgIiIsICJhYyIgXSwK
KyAgICAgICAgWyAiIiwgImEiLCAiYWEiLCAiYWIiLCAiYWMiLCAiYiIsICJiYiIsICJjIiwgImNj
IiBdKTsKKworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL29iamVjdHN0b3JlX2tleW9yZGVyLXBy
aXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9v
YmplY3RzdG9yZV9rZXlvcmRlci1wcml2YXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5kZWI0OGZjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9vYmplY3RzdG9yZV9rZXlvcmRlci1wcml2YXRlLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBWZXJpZnkga2V5IHNvcnQgb3JkZXIg
aW4gYW4gb2JqZWN0IHN0b3JlIGlzICdudW1iZXIgPCBEYXRlIDwgRE9NU3RyaW5nJyAgCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvb2JqZWN0c3RvcmVf
a2V5b3JkZXItcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9vYmplY3RzdG9yZV9rZXlvcmRlci1wcml2YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uZWIyY2VmMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvb2JqZWN0c3RvcmVfa2V5b3JkZXItcHJpdmF0ZS5odG1sCkBA
IC0wLDAgKzEsNDkgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgor
PHRpdGxlPlZlcmlmeSBrZXkgc29ydCBvcmRlciBpbiBhbiBvYmplY3Qgc3RvcmUgaXMgJ251bWJl
ciAmbHQ7IERhdGUgJmx0OyBET01TdHJpbmcnIDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIg
dGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAg
dmFyIGRiLAorICAgICAgZCA9IG5ldyBEYXRlKCksCisgICAgICB0ID0gYXN5bmNfdGVzdCgpLAor
ICAgICAgcmVjb3JkcyA9IFsgeyBrZXk6IGQgfSwKKyAgICAgICAgICAgICAgICAgIHsga2V5OiAi
dGVzdCIgfSwKKyAgICAgICAgICAgICAgICAgIHsga2V5OiAxIH0sCisgICAgICAgICAgICAgICAg
ICB7IGtleTogMi41NSB9ICBdLAorICAgICAgZXhwZWN0ZWRLZXlPcmRlciA9IFsgMSwgMi41NSwg
ZC52YWx1ZU9mKCksICJ0ZXN0IiBdOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsK
KyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIg
PSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVj
dFN0b3JlKCJzdG9yZSIsIHsga2V5UGF0aDogImtleSIgfSk7CisKKyAgICAgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgb2JqU3RvcmUuYWRk
KHJlY29yZHNbaV0pOworICAgIH07CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9u
KGUpIHsKKyAgICAgICAgdmFyIGFjdHVhbF9rZXlzID0gW10sCisgICAgICAgICAgcnEgPSBkYi50
cmFuc2FjdGlvbigic3RvcmUiKQorICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInN0b3Jl
IikKKyAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IoKTsKKworICAgICAgICBycS5vbnN1Y2Nl
c3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICB2YXIgY3Vyc29yID0g
ZS50YXJnZXQucmVzdWx0OworCisgICAgICAgICAgICBpZiAoY3Vyc29yKSB7CisgICAgICAgICAg
ICAgICAgYWN0dWFsX2tleXMucHVzaChjdXJzb3Iua2V5LnZhbHVlT2YoKSk7CisgICAgICAgICAg
ICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNl
IHsKKyAgICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGFjdHVhbF9rZXlzLCBleHBl
Y3RlZEtleU9yZGVyKTsKKyAgICAgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfSk7CisgICAgfTsKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9yZXF1ZXN0X2J1
YmJsZS1hbmQtY2FwdHVyZS1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvcmVxdWVzdF9idWJibGUtYW5kLWNhcHR1cmUtcHJpdmF0ZS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzFmZmM1OAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvcmVxdWVz
dF9idWJibGUtYW5kLWNhcHR1cmUtcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBA
CisKK1BBU1MgQnViYmxpbmcgYW5kIGNhcHR1cmluZyBvZiByZXF1ZXN0IGV2ZW50cyAKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9yZXF1ZXN0X2J1YmJs
ZS1hbmQtY2FwdHVyZS1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL3JlcXVlc3RfYnViYmxlLWFuZC1jYXB0dXJlLXByaXZhdGUuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43M2E0ZjQ1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9yZXF1ZXN0X2J1YmJsZS1hbmQtY2FwdHVy
ZS1wcml2YXRlLmh0bWwKQEAgLTAsMCArMSw2OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBj
aGFyc2V0PXV0Zi04PgorPHRpdGxlPkJ1YmJsaW5nIGFuZCBjYXB0dXJpbmcgb2YgcmVxdWVzdCBl
dmVudHM8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3Bl
cmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz1zdXBwb3J0LmpzPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBldmVudHMgPSBbXTsK
KworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIoYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSwg
e3RpbWVvdXQ6IDEwMDAwfSkpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rp
b24oZSkgeworICAgICAgICB2YXIgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZhciB0
eG4gPSBlLnRhcmdldC50cmFuc2FjdGlvbjsKKyAgICAgICAgdmFyIHN0b3JlID0gZGIuY3JlYXRl
T2JqZWN0U3RvcmUoInMiKTsKKyAgICAgICAgdmFyIHJxMSA9IHN0b3JlLmFkZCgiIiwgMSk7Cisg
ICAgICAgIHZhciBycTIgPSBzdG9yZS5hZGQoIiIsIDEpOworICAgICAgICBkYi5vbmVycm9yID0g
ZnVuY3Rpb24oKXt9OworCisgICAgICAgIGxvZ19yZXF1ZXN0KCcgZGInLCAgZGIpOworICAgICAg
ICBsb2dfcmVxdWVzdCgndHhuJywgdHhuKTsKKyAgICAgICAgbG9nX3JlcXVlc3QoJ3JxMScsIHJx
MSk7CisgICAgICAgIGxvZ19yZXF1ZXN0KCdycTInLCBycTIpOworCisgICAgICAgIC8vIERvbid0
IGxldCBpdCBnZXQgdG8gYWJvcnQKKyAgICAgICAgZGIuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3In
LCBmdW5jdGlvbihlKSB7IGUucHJldmVudERlZmF1bHQoKSB9LCBmYWxzZSk7CisgICAgfQorCisg
ICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGxvZygib3Blbl9y
cS5zdWNjZXNzIikoZSk7CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZXZlbnRzLCBbCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjYXB0dXJlICBkYi5zdWNjZXNz
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNhcHR1cmUgdHhuLnN1
Y2Nlc3MiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY2FwdHVyZSBy
cTEuc3VjY2VzcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJidWJi
bGUgIHJxMS5zdWNjZXNzIiwKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiY2FwdHVyZSAgZGIuZXJyb3I6IENvbnN0cmFpbnRFcnJvciIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJjYXB0dXJlIHR4bi5lcnJvcjogQ29uc3RyYWludEVycm9y
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNhcHR1cmUgcnEyLmVy
cm9yOiBDb25zdHJhaW50RXJyb3IiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiYnViYmxlICBycTIuZXJyb3I6IENvbnN0cmFpbnRFcnJvciIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJidWJibGUgIHR4bi5lcnJvcjogQ29uc3RyYWludEVy
cm9yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImJ1YmJsZSAgIGRi
LmVycm9yOiBDb25zdHJhaW50RXJyb3IiLAorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJvcGVuX3JxLnN1Y2Nlc3MiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXZlbnRzIik7CisgICAg
ICAgIHRoaXMuZG9uZSgpOworICAgIH0KKworCisgICAgZnVuY3Rpb24gbG9nX3JlcXVlc3QodHlw
ZSwgb2JqKSB7CisgICAgICAgIG9iai5hZGRFdmVudExpc3RlbmVyKCdzdWNjZXNzJywgbG9nKCdj
YXB0dXJlICcgKyB0eXBlICsgJy5zdWNjZXNzJyksIHRydWUpOworICAgICAgICBvYmouYWRkRXZl
bnRMaXN0ZW5lcignc3VjY2VzcycsIGxvZygnYnViYmxlICAnICsgdHlwZSArICcuc3VjY2Vzcycp
LCBmYWxzZSk7CisgICAgICAgIG9iai5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIGxvZygnY2Fw
dHVyZSAnICsgdHlwZSArICcuZXJyb3InKSwgdHJ1ZSk7CisgICAgICAgIG9iai5hZGRFdmVudExp
c3RlbmVyKCdlcnJvcicsIGxvZygnYnViYmxlICAnICsgdHlwZSArICcuZXJyb3InKSwgZmFsc2Up
OworICAgIH0KKworICAgIGZ1bmN0aW9uIGxvZyhtc2cpIHsKKyAgICAgICAgcmV0dXJuIGZ1bmN0
aW9uKGUpIHsKKyAgICAgICAgICAgIGlmKGUgJiYgZS50YXJnZXQgJiYgZS50YXJnZXQuZXJyb3Ip
CisgICAgICAgICAgICAgICAgZXZlbnRzLnB1c2gobXNnICsgIjogIiArIGUudGFyZ2V0LmVycm9y
Lm5hbWUpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGV2ZW50cy5wdXNoKG1z
Zyk7CisgICAgICAgIH07CisgICAgfQorPC9zY3JpcHQ+CisKKzxkaXYgaWQ9bG9nPjwvZGl2Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9zdHJpbmctbGlz
dC1vcmRlcmluZy1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvc3RyaW5nLWxpc3Qtb3JkZXJpbmctcHJpdmF0ZS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGI3NjBkYQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvc3RyaW5nLWxpc3Qtb3JkZXJp
bmctcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgVGVzdCBzdHJp
bmcgbGlzdCBvcmRlcmluZyBpbiBJbmRleGVkREIgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvc3RyaW5nLWxpc3Qtb3JkZXJpbmctcHJpdmF0ZS5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9zdHJpbmctbGlzdC1vcmRlcmlu
Zy1wcml2YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDcyODQ1
ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
c3RyaW5nLWxpc3Qtb3JkZXJpbmctcHJpdmF0ZS5odG1sCkBAIC0wLDAgKzEsODUgQEAKKzwhLS0K
K1Rlc3QgY29udmVydGVkIGZyb20gV2ViS2l0OgoraHR0cDovL3RyYWMud2Via2l0Lm9yZy9icm93
c2VyL3RydW5rL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9saXN0LW9y
ZGVyaW5nLmpzCistLT4KKworPCFET0NUWVBFIGh0bWw+Cis8IS0tIFN1Ym1pdHRlZCBmcm9tIFRl
c3RUV0YgUGFyaXMgLS0+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPHRpdGxlPlRlc3Qgc3RyaW5n
IGxpc3Qgb3JkZXJpbmcgaW4gSW5kZXhlZERCPC90aXRsZT4KKzxsaW5rIHJlbD1oZWxwIGhyZWY9
Imh0dHA6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0
bWwjd2lkbC1JREJEYXRhYmFzZS1vYmplY3RTdG9yZU5hbWVzIj4KKzxsaW5rIHJlbD1hc3NlcnQg
dGl0bGU9IlRoZSBsaXN0IG11c3QgYmUgc29ydGVkIGluIGFzY2VuZGluZyBvcmRlciB1c2luZyB0
aGUgYWxnb3JpdGhtIGRlZmluZWQgYnkgc3RlcCA0IG9mIHNlY3Rpb24gMTEuOC41LCBUaGUgQWJz
dHJhY3QgUmVsYXRpb25hbCBDb21wYXJpc29uIEFsZ29yaXRobSBvZiB0aGUgRUNNQVNjcmlwdCBM
YW5ndWFnZSBTcGVjaWZpY2F0aW9uIFtFQ01BLTI2Ml0uIj4KKzxsaW5rIHJlbD1hdXRob3IgaHJl
Zj0ibWFpbHRvOnJvbWFpbi5odWV0QGdtYWlsLmNvbSIgdGl0bGU9IlJvbWFpbiBIdWV0Ij4KKwor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisK
KyAgICB2YXIgZXhwZWN0ZWRPcmRlciA9IFsKKyAgICAgICAgIiIsCisgICAgICAgICJceDAwIiwg
Ly8gJ05VTEwnIChVKzAwMDApCisgICAgICAgICIwIiwKKyAgICAgICAgIjEiLAorICAgICAgICAi
QSIsCisgICAgICAgICJCIiwKKyAgICAgICAgImEiLAorICAgICAgICAiYiIsCisgICAgICAgICJc
eDdGIiwgLy8gJ0RFTEVURScgKFUrMDA3RikKKyAgICAgICAgIlx4QzAiLCAvLyAnTEFUSU4gQ0FQ
SVRBTCBMRVRURVIgQSBXSVRIIEdSQVZFJyAoVSswMEMwKQorICAgICAgICAiXHhDMSIsIC8vICdM
QVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggQUNVVEUnIChVKzAwQzEpCisgICAgICAgICJceEUw
IiwgLy8gJ0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggR1JBVkUnIChVKzAwRTApCisgICAgICAg
ICJceEUxIiwgLy8gJ0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggQUNVVEUnIChVKzAwRTEpCisg
ICAgICAgICJceEZGIiwgLy8gJ0xBVElOIFNNQUxMIExFVFRFUiBZIFdJVEggRElBRVJFU0lTJyAo
VSswMEZGKQorICAgICAgICAiXHUwMTAwIiwgLy8gJ0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lU
SCBNQUNST04nIChVKzAxMDApCisgICAgICAgICJcdTEwMDAiLCAvLyAnTVlBTk1BUiBMRVRURVIg
S0EnIChVKzEwMDApCisgICAgICAgICJcdUQ4MzRcdUREMUUiLCAvLyAnTVVTSUNBTCBTWU1CT0wg
Ry1DTEVGJyAoVSsxRDExRSksIFVURi0xNiBzdXJyb2dhdGUgcGFpcnMKKyAgICAgICAgIlx1RkZG
RCIgLy8gJ1JFUExBQ0VNRU5UIENIQVJBQ1RFUicgKFUrRkZGRCkKKyAgICBdOworCisgICAgdmFy
IGksIHRtcCwgcGVybXV0ZWRPcmRlciA9IGV4cGVjdGVkT3JkZXIuc2xpY2UoKTsKKyAgICBwZXJt
dXRlZE9yZGVyLnJldmVyc2UoKTsKKyAgICBmb3IgKGkgPSAwOyBpIDwgcGVybXV0ZWRPcmRlci5s
ZW5ndGggLSAyOyBpICs9IDIpIHsKKyAgICAgICAgdG1wID0gcGVybXV0ZWRPcmRlcltpXTsKKyAg
ICAgICAgcGVybXV0ZWRPcmRlcltpXSA9IHBlcm11dGVkT3JkZXJbaSArIDFdOworICAgICAgICBw
ZXJtdXRlZE9yZGVyW2kgKyAxXSA9IHRtcDsKKyAgICB9CisKKyAgICB2YXIgb2JqU3RvcmUsIGRi
OworICAgIHZhciB0ID0gYXN5bmNfdGVzdCgpOworCisgICAgLy8gQ2hlY2sgdGhhdCB0aGUgZXhw
ZWN0ZWQgb3JkZXIgaXMgdGhlIGNhbm9uaWNhbCBKUyBzb3J0IG9yZGVyLgorICAgIHZhciBzb3J0
ZWRPcmRlciA9IGV4cGVjdGVkT3JkZXIuc2xpY2UoKTsKKyAgICBzb3J0ZWRPcmRlci5zb3J0KCk7
CisgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhzb3J0ZWRPcmRlciwgZXhwZWN0ZWRPcmRlcik7CisK
KyAgICB2YXIgcmVxdWVzdCA9IGNyZWF0ZWRiKHQpOworCisgICAgcmVxdWVzdC5vbnVwZ3JhZGVu
ZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworCisg
ICAgICAgIC8vIE9iamVjdCBzdG9yZXMuCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcGVy
bXV0ZWRPcmRlci5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgb2JqU3RvcmUgPSBkYi5jcmVh
dGVPYmplY3RTdG9yZShwZXJtdXRlZE9yZGVyW2ldKTsKKyAgICAgICAgfQorICAgICAgICBhc3Nl
cnRfYXJyYXlfZXF1YWxzKGRiLm9iamVjdFN0b3JlTmFtZXMsIGV4cGVjdGVkT3JkZXIpOworCisg
ICAgICAgIC8vIEluZGV4ZXMuCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcGVybXV0ZWRP
cmRlci5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgocGVy
bXV0ZWRPcmRlcltpXSwgImtleVBhdGgiKTsKKyAgICAgICAgfQorICAgICAgICBhc3NlcnRfYXJy
YXlfZXF1YWxzKG9ialN0b3JlLmluZGV4TmFtZXMsIGV4cGVjdGVkT3JkZXIpOworICAgIH07CisK
KyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgLy8gT2JqZWN0
IHN0b3Jlcy4KKyAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhkYi5vYmplY3RTdG9yZU5hbWVz
LCBleHBlY3RlZE9yZGVyKTsKKyAgICAgICAgLy8gSW5kZXhlcy4KKyAgICAgICAgYXNzZXJ0X2Fy
cmF5X2VxdWFscyhvYmpTdG9yZS5pbmRleE5hbWVzLCBleHBlY3RlZE9yZGVyKTsKKyAgICAgICAg
dC5kb25lKCk7CisgICAgfTsKKworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9bG9nPjwvZGl2PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9zdXBwb3J0LmpzIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9zdXBwb3J0LmpzCmluZGV4IDM3MDg0
MTUuLmQ4NzI1NGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvc3VwcG9ydC5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL3N1
cHBvcnQuanMKQEAgLTEsNiArMSwxMCBAQAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAg
dGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7
CisKKyAgICAvLyBJZiB0aGUgdGVzdCBmaWxlIFVSTCBlbmRzIGluICItcHJpdmF0ZS5odG0obCki
LCBlbmFibGUgcHJpdmF0ZSBicm93c2luZy4KKyAgICBpZiAod2luZG93LmxvY2F0aW9uLmhyZWYu
ZW5kc1dpdGgoIi1wcml2YXRlLmh0bSIpIHx8IHdpbmRvdy5sb2NhdGlvbi5ocmVmLmVuZHNXaXRo
KCItcHJpdmF0ZS5odG1sIikpCisgICAgICAgIHRlc3RSdW5uZXIuc2V0UHJpdmF0ZUJyb3dzaW5n
RW5hYmxlZCh0cnVlKTsKIH0KIAogdmFyIGRhdGFiYXNlTmFtZSA9ICJkYXRhYmFzZSI7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWNy
ZWF0ZV9pbl92ZXJzaW9uY2hhbmdlLXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1jcmVhdGVfaW5fdmVyc2lvbmNoYW5n
ZS1wcml2YXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li45NTdiOWFiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi90cmFuc2FjdGlvbi1jcmVhdGVfaW5fdmVyc2lvbmNoYW5nZS1wcml2YXRlLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBBdHRlbXB0IHRvIGNyZWF0ZSBuZXcgdHJh
bnNhY3Rpb25zIGluc2lkZSBhIHZlcnNpb25jaGFuZ2UgdHJhbnNhY3Rpb24gCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvdHJhbnNhY3Rpb24tY3JlYXRl
X2luX3ZlcnNpb25jaGFuZ2UtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi90cmFuc2FjdGlvbi1jcmVhdGVfaW5fdmVyc2lvbmNoYW5nZS1wcml2YXRlLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDAyNzkxNgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvdHJhbnNhY3Rpb24t
Y3JlYXRlX2luX3ZlcnNpb25jaGFuZ2UtcHJpdmF0ZS5odG1sCkBAIC0wLDAgKzEsODIgQEAKKzwh
RE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzx0aXRsZT5BdHRlbXB0IHRvIGNy
ZWF0ZSBuZXcgdHJhbnNhY3Rpb25zIGluc2lkZSBhIHZlcnNpb25jaGFuZ2UgdHJhbnNhY3Rpb248
L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29t
IiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz1zdXBw
b3J0LmpzPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwgZXZlbnRzID0gW10sCisg
ICAgICAgIG9wZW5fcnEgPSBjcmVhdGVkYihhc3luY190ZXN0KCkpCisKKyAgICBvcGVuX3JxLm9u
dXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1
bHQKKworICAgICAgICBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiKQorICAgICAgICAgICAg
LmFkZCgidmVyc2lvbmNoYW5nZTEiLCAxKQorICAgICAgICAgICAgLmFkZEV2ZW50TGlzdGVuZXIo
InN1Y2Nlc3MiLCBsb2coInZlcnNpb25jaGFuZ2VfYWRkLnN1Y2Nlc3MiKSkKKworICAgICAgICBh
c3NlcnRfdGhyb3dzKCdJbnZhbGlkU3RhdGVFcnJvcicsIGZ1bmN0aW9uKCkgeyBkYi50cmFuc2Fj
dGlvbigic3RvcmUiKSB9KQorCisgICAgICAgIGUudGFyZ2V0LnRyYW5zYWN0aW9uCisgICAgICAg
ICAgICAub2JqZWN0U3RvcmUoInN0b3JlIikKKyAgICAgICAgICAgIC5jb3VudCgyKQorICAgICAg
ICAgICAgLmFkZEV2ZW50TGlzdGVuZXIoInN1Y2Nlc3MiLCBsb2coInZlcnNpb25jaGFuZ2VfY291
bnQuc3VjY2VzcyIpKQorCisgICAgICAgIGFzc2VydF90aHJvd3MoJ0ludmFsaWRTdGF0ZUVycm9y
JywgZnVuY3Rpb24oKSB7IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIsICJyZWFkd3JpdGUiKSB9KQor
CisgICAgICAgIG9wZW5fcnEudHJhbnNhY3Rpb24KKyAgICAgICAgICAgIC5vYmplY3RTdG9yZSgi
c3RvcmUiKQorICAgICAgICAgICAgLmFkZCgidmVyc2lvbmNoYW5nZTIiLCAyKQorICAgICAgICAg
ICAgLmFkZEV2ZW50TGlzdGVuZXIoInN1Y2Nlc3MiLCBsb2coInZlcnNpb25jaGFuZ2VfYWRkMi5z
dWNjZXNzIikpCisKKyAgICAgICAgb3Blbl9ycS50cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gZnVu
Y3Rpb24oZSkgeworICAgICAgICAgICAgbG9nKCJ2ZXJzaW9uY2hhbmdlX3R4bi5jb21wbGV0ZSIp
KGUpCisKKyAgICAgICAgICAgIGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIpCisgICAgICAgICAgICAg
ICAgLm9iamVjdFN0b3JlKCJzdG9yZSIpCisgICAgICAgICAgICAgICAgLmNvdW50KCkKKyAgICAg
ICAgICAgICAgICAuYWRkRXZlbnRMaXN0ZW5lcigic3VjY2VzcyIsIGxvZygiY29tcGxldGVfY291
bnQuc3VjY2VzcyIpKQorICAgICAgICB9CisgICAgfQorCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3Mg
PSBmdW5jdGlvbihlKSB7CisgICAgICAgIGxvZygib3Blbl9ycS5zdWNjZXNzIikoZSkKKworICAg
ICAgICB2YXIgdHhuID0gZGIudHJhbnNhY3Rpb24oInN0b3JlIiwgInJlYWR3cml0ZSIpCisgICAg
ICAgIHR4bi5vYmplY3RTdG9yZSgic3RvcmUiKQorICAgICAgICAgICAgLnB1dCgid29vIiwgMSkK
KyAgICAgICAgICAgIC5hZGRFdmVudExpc3RlbmVyKCJzdWNjZXNzIiwgbG9nKCJjb21wbGV0ZTJf
Z2V0LnN1Y2Nlc3MiKSkKKworICAgICAgICB0eG4ub25jb21wbGV0ZSA9IHRoaXMuc3RlcF9mdW5j
KGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZXZlbnRzLCBb
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInZlcnNpb25jaGFuZ2VfYWRkLnN1
Y2Nlc3M6IDEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2ZXJzaW9uY2hh
bmdlX2NvdW50LnN1Y2Nlc3M6IDAiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJ2ZXJzaW9uY2hhbmdlX2FkZDIuc3VjY2VzczogMiIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgInZlcnNpb25jaGFuZ2VfdHhuLmNvbXBsZXRlIiwKKworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJvcGVuX3JxLnN1Y2Nlc3M6IFtvYmplY3QgSURCRGF0YWJh
c2VdIiwKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjb21wbGV0ZV9jb3Vu
dC5zdWNjZXNzOiAyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY29tcGxl
dGUyX2dldC5zdWNjZXNzOiAxIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwK
KyAgICAgICAgICAgICAgICAgICAgICAgImV2ZW50cyIpCisgICAgICAgICAgICB0aGlzLmRvbmUo
KQorICAgICAgICB9KQorICAgIH0KKworCisgICAgZnVuY3Rpb24gbG9nKG1zZykgeworICAgICAg
ICByZXR1cm4gZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgaWYoZSAmJiBlLnRhcmdldCAmJiBl
LnRhcmdldC5lcnJvcikKKyAgICAgICAgICAgICAgICBldmVudHMucHVzaChtc2cgKyAiOiAiICsg
ZS50YXJnZXQuZXJyb3IubmFtZSkKKyAgICAgICAgICAgIGVsc2UgaWYoZSAmJiBlLnRhcmdldCAm
JiBlLnRhcmdldC5yZXN1bHQgIT09IHVuZGVmaW5lZCkKKyAgICAgICAgICAgICAgICBldmVudHMu
cHVzaChtc2cgKyAiOiAiICsgZS50YXJnZXQucmVzdWx0KQorICAgICAgICAgICAgZWxzZQorICAg
ICAgICAgICAgICAgIGV2ZW50cy5wdXNoKG1zZykKKyAgICAgICAgfTsKKyAgICB9Cis8L3Njcmlw
dD4KKworPGRpdiBpZD1sb2c+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWxpZmV0aW1lLWJsb2NrZWQtcHJpdmF0ZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL3RyYW5zYWN0aW9u
LWxpZmV0aW1lLWJsb2NrZWQtcHJpdmF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uZTdlOWY2YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvdHJhbnNhY3Rpb24tbGlmZXRpbWUtYmxvY2tlZC1wcml2
YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBCbG9ja2VkIGV2ZW50IAor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL3RyYW5zYWN0
aW9uLWxpZmV0aW1lLWJsb2NrZWQtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1saWZldGltZS1ibG9ja2VkLXByaXZhdGUuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MDRiOWFiCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1saWZl
dGltZS1ibG9ja2VkLXByaXZhdGUuaHRtbApAQCAtMCwwICsxLDEwOCBAQAorPCFET0NUWVBFIGh0
bWw+Cis8dGl0bGU+QmxvY2tlZCBldmVudDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgaHJl
Zj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPGRpdiBpZD0i
bG9nIj48L2Rpdj4KKworPHNjcmlwdD4KKworICAgIHZhciBkYiwgZGJfZ290X3ZlcnNpb25jaGFu
Z2UsIGRiMiwKKyAgICAgICAgZXZlbnRzID0gW10sCisgICAgICAgIHQgPSBhc3luY190ZXN0KGRv
Y3VtZW50LnRpdGxlLCB7dGltZW91dDogMTAwMDB9KTsKKworICAgIHQuc3RlcChmdW5jdGlvbigp
IHsKKyAgICAgICAgdmFyIG9wZW5ycSA9IGluZGV4ZWREQi5vcGVuKCdkYicsIDMpOworCisgICAg
ICAgIC8vIDEKKyAgICAgICAgb3BlbnJxLm9udXBncmFkZW5lZWRlZCA9IHQuc3RlcF9mdW5jKGZ1
bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGV2ZW50cy5wdXNoKCJvcGVuLiIgKyBlLnR5cGUpOwor
ICAgICAgICAgICAgZS50YXJnZXQucmVzdWx0LmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZScpOwor
ICAgICAgICB9KTsKKworICAgICAgICAvLyAyCisgICAgICAgIG9wZW5ycS5vbnN1Y2Nlc3MgPSB0
LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3Vs
dDsKKworICAgICAgICAgICAgZXZlbnRzLnB1c2goIm9wZW4uIiArIGUudHlwZSk7CisKKyAgICAg
ICAgICAgIC8vIDMKKyAgICAgICAgICAgIGRiLm9udmVyc2lvbmNoYW5nZSA9IHQuc3RlcF9mdW5j
KGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICBldmVudHMucHVzaCgiZGIuIiArIGUudHlw
ZSk7CisKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUub2xkVmVyc2lvbiwgMywgIm9s
ZCB2ZXJzaW9uIik7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLm5ld1ZlcnNpb24s
IDQsICJuZXcgdmVyc2lvbiIpOworICAgICAgICAgICAgICAgIC8vIERvIG5vdCBjbG9zZSBkYiBo
ZXJlIChhcyB3ZSBzaG91bGQpCisgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgLy8gRXJy
b3JzCisgICAgICAgICAgICBkYi5vbmVycm9yID0gZmFpbCh0LCAiZGIuZXJyb3IiKTsKKyAgICAg
ICAgICAgIGRiLmFib3J0ID0gZmFpbCh0LCAiZGIuYWJvcnQiKTsKKworICAgICAgICAgICAgc2V0
VGltZW91dCh0LnN0ZXBfZnVuYyhPcGVuU2Vjb25kKSwgMTApOworICAgICAgICB9KTsKKworICAg
ICAgICAvLyBFcnJvcnMKKyAgICAgICAgb3BlbnJxLm9uZXJyb3IgPSBmYWlsKHQsICJvcGVuLmVy
cm9yIik7CisgICAgICAgIG9wZW5ycS5vbmJsb2NrZWQgPSBmYWlsKHQsICJvcGVuLmJsb2NrZWQi
KTsKKworICAgIH0pOworCisgICAgZnVuY3Rpb24gT3BlblNlY29uZCAoZSkgeworICAgICAgICBh
c3NlcnRfZXF1YWxzKGRiMiwgdW5kZWZpbmVkKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhkYiAr
ICIiLCAiW29iamVjdCBJREJEYXRhYmFzZV0iKTsKKyAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFs
cyhkYi5vYmplY3RTdG9yZU5hbWVzLCBbICJzdG9yZSIgXSk7CisKKyAgICAgICAgdmFyIG9wZW5y
cTIgPSBpbmRleGVkREIub3BlbignZGInLCA0KTsKKworICAgICAgICAvLyA0CisgICAgICAgIG9w
ZW5ycTIub25ibG9ja2VkID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAg
ZXZlbnRzLnB1c2goIm9wZW4yLiIgKyBlLnR5cGUpOworICAgICAgICAgICAgLy8gV2UncmUgY2xv
c2luZyBjb25uZWN0aW9uIGZyb20gdGhlIG90aGVyIG9wZW4oKQorICAgICAgICAgICAgZGIuY2xv
c2UoKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgLy8gNQorICAgICAgICBvcGVucnEyLm9udXBn
cmFkZW5lZWRlZCA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGRiMiA9
IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICAgICAgZXZlbnRzLnB1c2goIm9wZW4yLiIgKyBl
LnR5cGUpOworCisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGRiMiArICIiLCAiW29iamVjdCBJ
REJEYXRhYmFzZV0iKTsKKworICAgICAgICAgICAgLy8gRXJyb3JzCisgICAgICAgICAgICBkYjIu
b252ZXJzaW9uY2hhbmdlID0gZmFpbCh0LCAiZGIyLnZlcnNpb25jaGFuZ2UiKTsKKyAgICAgICAg
ICAgIGRiMi5vbmVycm9yID0gZmFpbCh0LCAiZGIyLmVycm9yIik7CisgICAgICAgICAgICBkYjIu
YWJvcnQgPSBmYWlsKHQsICJkYjIuYWJvcnQiKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgLy8g
NgorICAgICAgICBvcGVucnEyLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsK
KyAgICAgICAgICAgIGV2ZW50cy5wdXNoKCJvcGVuMi4iICsgZS50eXBlKTsKKworICAgICAgICAg
ICAgYXNzZXJ0X2FycmF5X2VxdWFscyhldmVudHMsCisgICAgICAgICAgICAgICAgWyAib3Blbi51
cGdyYWRlbmVlZGVkIiwKKyAgICAgICAgICAgICAgICAgICJvcGVuLnN1Y2Nlc3MiLAorICAgICAg
ICAgICAgICAgICAgImRiLnZlcnNpb25jaGFuZ2UiLAorICAgICAgICAgICAgICAgICAgIm9wZW4y
LmJsb2NrZWQiLAorICAgICAgICAgICAgICAgICAgIm9wZW4yLnVwZ3JhZGVuZWVkZWQiLAorICAg
ICAgICAgICAgICAgICAgIm9wZW4yLnN1Y2Nlc3MiLAorICAgICAgICAgICAgICAgIF0pOworCisg
ICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyB0LmRvbmUoKTsgfSwgMTApOworICAg
ICAgICB9KTsKKworICAgICAgICAvLyBFcnJvcnMKKyAgICAgICAgb3BlbnJxMi5vbmVycm9yID0g
ZmFpbCh0LCAib3BlbjIuZXJyb3IiKTsKKyAgICB9CisKKworICAgIC8vIENsZWFudXAKKyAgICBh
ZGRfY29tcGxldGlvbl9jYWxsYmFjayhmdW5jdGlvbih0ZXN0cykgeworICAgICAgICBpZiAoZGIy
KSBkYjIuY2xvc2UoKTsKKyAgICAgICAgaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKCdkYicpOwor
ICAgIH0pCisKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi90cmFuc2FjdGlvbi1saWZldGltZS1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvdHJhbnNhY3Rpb24tbGlmZXRpbWUtcHJp
dmF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2Fi
M2ZkZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvdHJhbnNhY3Rpb24tbGlmZXRpbWUtcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwz
IEBACisKK1BBU1MgVGVzdCBldmVudHMgb3BlbmluZyBhIHNlY29uZCBkYXRhYmFzZSB3aGVuIG9u
ZSBjb25uZWN0aW9uIGlzIG9wZW4gYWxyZWFkeSAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1saWZldGltZS1wcml2YXRlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWxpZmV0aW1l
LXByaXZhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yODJiZjZk
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi90
cmFuc2FjdGlvbi1saWZldGltZS1wcml2YXRlLmh0bWwKQEAgLTAsMCArMSwxMDEgQEAKKzwhRE9D
VFlQRSBodG1sPgorPHRpdGxlPlRlc3QgZXZlbnRzIG9wZW5pbmcgYSBzZWNvbmQgZGF0YWJhc2Ug
d2hlbiBvbmUgY29ubmVjdGlvbiBpcyBvcGVuIGFscmVhZHk8L3RpdGxlPgorPGxpbmsgcmVsPSJh
dXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhl
IE9tZGFsIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisK
KzxkaXYgaWQ9ImxvZyI+PC9kaXY+CisKKzxzY3JpcHQ+CisKKyAgICB2YXIgZGIsIGRiX2dvdF92
ZXJzaW9uY2hhbmdlLCBkYjIsCisgICAgICAgIGV2ZW50cyA9IFtdLAorICAgICAgICB0ID0gYXN5
bmNfdGVzdChkb2N1bWVudC50aXRsZSwge3RpbWVvdXQ6IDEwMDAwfSk7CisKKyAgICB0LnN0ZXAo
ZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciBvcGVucnEgPSBpbmRleGVkREIub3BlbignZGInLCAz
KTsKKworICAgICAgICAvLyAxCisgICAgICAgIG9wZW5ycS5vbnVwZ3JhZGVuZWVkZWQgPSB0LnN0
ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBldmVudHMucHVzaCgib3Blbi4iICsg
ZS50eXBlKTsKKyAgICAgICAgICAgIGUudGFyZ2V0LnJlc3VsdC5jcmVhdGVPYmplY3RTdG9yZSgn
c3RvcmUnKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgLy8gMgorICAgICAgICBvcGVucnEub25z
dWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgZGIgPSBlLnRh
cmdldC5yZXN1bHQ7CisKKyAgICAgICAgICAgIGV2ZW50cy5wdXNoKCJvcGVuLiIgKyBlLnR5cGUp
OworCisgICAgICAgICAgICAvLyAzCisgICAgICAgICAgICBkYi5vbnZlcnNpb25jaGFuZ2UgPSB0
LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAgICAgZXZlbnRzLnB1c2goImRi
LiIgKyBlLnR5cGUpOworCisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLm9sZFZlcnNp
b24sIDMsICJvbGQgdmVyc2lvbiIpOworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS5u
ZXdWZXJzaW9uLCA0LCAibmV3IHZlcnNpb24iKTsKKyAgICAgICAgICAgICAgICBkYi5jbG9zZSgp
OworICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIC8vIEVycm9ycworICAgICAgICAgICAg
ZGIub25lcnJvciA9IGZhaWwodCwgImRiLmVycm9yIik7CisgICAgICAgICAgICBkYi5hYm9ydCA9
IGZhaWwodCwgImRiLmFib3J0Iik7CisKKyAgICAgICAgICAgIHNldFRpbWVvdXQodC5zdGVwX2Z1
bmMoT3BlblNlY29uZCksIDEwKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgLy8gRXJyb3JzCisg
ICAgICAgIG9wZW5ycS5vbmVycm9yID0gZmFpbCh0LCAib3Blbi5lcnJvciIpOworICAgICAgICBv
cGVucnEub25ibG9ja2VkID0gZmFpbCh0LCAib3Blbi5ibG9ja2VkIik7CisKKyAgICB9KTsKKwor
ICAgIGZ1bmN0aW9uIE9wZW5TZWNvbmQgKGUpIHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhkYjIs
IHVuZGVmaW5lZCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoZGIgKyAiIiwgIltvYmplY3QgSURC
RGF0YWJhc2VdIik7CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZGIub2JqZWN0U3RvcmVO
YW1lcywgWyAic3RvcmUiIF0pOworCisgICAgICAgIHZhciBvcGVucnEyID0gaW5kZXhlZERCLm9w
ZW4oJ2RiJywgNCk7CisKKyAgICAgICAgLy8gNAorICAgICAgICBvcGVucnEyLm9udXBncmFkZW5l
ZWRlZCA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGRiMiA9IGUudGFy
Z2V0LnJlc3VsdDsKKworICAgICAgICAgICAgZXZlbnRzLnB1c2goIm9wZW4yLiIgKyBlLnR5cGUp
OworCisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGRiMiArICIiLCAiW29iamVjdCBJREJEYXRh
YmFzZV0iKTsKKworICAgICAgICAgICAgLy8gRXJyb3JzCisgICAgICAgICAgICBkYjIub252ZXJz
aW9uY2hhbmdlID0gZmFpbCh0LCAiZGIyLnZlcnNpb25jaGFuZ2UiKTsKKyAgICAgICAgICAgIGRi
Mi5vbmVycm9yID0gZmFpbCh0LCAiZGIyLmVycm9yIik7CisgICAgICAgICAgICBkYjIuYWJvcnQg
PSBmYWlsKHQsICJkYjIuYWJvcnQiKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgLy8gNQorICAg
ICAgICBvcGVucnEyLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAg
ICAgICAgIGV2ZW50cy5wdXNoKCJvcGVuMi4iICsgZS50eXBlKTsKKworICAgICAgICAgICAgYXNz
ZXJ0X2FycmF5X2VxdWFscyhldmVudHMsCisgICAgICAgICAgICAgICAgWyAib3Blbi51cGdyYWRl
bmVlZGVkIiwKKyAgICAgICAgICAgICAgICAgICJvcGVuLnN1Y2Nlc3MiLAorICAgICAgICAgICAg
ICAgICAgImRiLnZlcnNpb25jaGFuZ2UiLAorICAgICAgICAgICAgICAgICAgIm9wZW4yLnVwZ3Jh
ZGVuZWVkZWQiLAorICAgICAgICAgICAgICAgICAgIm9wZW4yLnN1Y2Nlc3MiLAorICAgICAgICAg
ICAgICAgIF0pOworCisgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyB0LmRvbmUo
KTsgfSwgMTApOworICAgICAgICB9KTsKKworICAgICAgICAvLyBFcnJvcnMKKyAgICAgICAgb3Bl
bnJxMi5vbmVycm9yID0gZmFpbCh0LCAib3BlbjIuZXJyb3IiKTsKKyAgICAgICAgb3BlbnJxMi5v
bmJsb2NrZWQgPSBmYWlsKHQsICJvcGVuMi5ibG9ja2VkIik7CisgICAgfQorCisKKyAgICAvLyBD
bGVhbnVwCisgICAgYWRkX2NvbXBsZXRpb25fY2FsbGJhY2soZnVuY3Rpb24odGVzdHMpIHsKKyAg
ICAgICAgaWYgKGRiMikgZGIyLmNsb3NlKCk7CisgICAgICAgIGluZGV4ZWREQi5kZWxldGVEYXRh
YmFzZSgnZGInKTsKKyAgICB9KQorCis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvdHJhbnNhY3Rpb24tcmVxdWVzdHF1ZXVlLXByaXZhdGUt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi90cmFuc2Fj
dGlvbi1yZXF1ZXN0cXVldWUtcHJpdmF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uNmZmNDZlYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvdHJhbnNhY3Rpb24tcmVxdWVzdHF1ZXVlLXByaXZhdGUt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIFRyYW5zYWN0aW9ucyBoYXZlIGEg
cmVxdWVzdCBxdWV1ZSAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi90cmFuc2FjdGlvbi1yZXF1ZXN0cXVldWUtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1yZXF1ZXN0cXVldWUtcHJpdmF0
ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2YTFjZmMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL3RyYW5zYWN0
aW9uLXJlcXVlc3RxdWV1ZS1wcml2YXRlLmh0bWwKQEAgLTAsMCArMSw4OSBAQAorPCFET0NUWVBF
IGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPHRpdGxlPlRyYW5zYWN0aW9ucyBoYXZlIGEg
cmVxdWVzdCBxdWV1ZTwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9k
aW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisKK3ZhciBkYiwgdCA9
IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUsIHt0aW1lb3V0OiAxMDAwMH0pLAorICAgIGtleXMg
PSB7IHR4bjogW10sIHR4bjI6IFtdIH0sCisgICAgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpCisKK29w
ZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgIHZhciBpLCBvczsKKyAg
ICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgIGZvciAoaSA9IDE7IGkgPCA2OyBpKyspCisg
ICAgeworICAgICAgICBvcyA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJvcyIgKyBpLCB7IGF1dG9J
bmNyZW1lbnQ6IHRydWUsIGtleVBhdGg6ICJrIiB9KTsKKyAgICAgICAgb3MuYWRkKHsgb3M6ICJv
cyIgKyBpIH0pOworICAgICAgICBvcy5wdXQoeyBvczogIm9zIiArIGksIGs6IGl9KTsKKyAgICAg
ICAgb3MuYWRkKHsgb3M6ICJvcyIgKyBpIH0pOworICAgIH0KK30KKworb3Blbl9ycS5vbnN1Y2Nl
c3MgPSBmdW5jdGlvbihlKSB7CisgICAgdmFyIHR4biA9IGRiLnRyYW5zYWN0aW9uKFsib3MyIiwg
Im9zMSIsICJvczMiLCAib3M1Il0pCisgICAgdHhuLm9iamVjdFN0b3JlKCJvczEiKS5vcGVuQ3Vy
c29yKCkub25zdWNjZXNzID0gcmVnKCJ0eG4iKQorICAgIHR4bi5vYmplY3RTdG9yZSgib3MzIiku
b3BlbkN1cnNvcigpLm9uc3VjY2VzcyA9IHJlZygidHhuIikKKyAgICB0eG4ub2JqZWN0U3RvcmUo
Im9zMSIpLmdldCgyKS5vbnN1Y2Nlc3MgPSByZWcoInR4biIpCisgICAgdHhuLm9iamVjdFN0b3Jl
KCJvczIiKS5nZXQoMykub25zdWNjZXNzID0gcmVnKCJ0eG4iKQorCisgICAgdmFyIHR4bjIgPSBk
Yi50cmFuc2FjdGlvbihbIm9zNCIsICJvczMiLCAib3MxIiwgIm9zNSJdKQorICAgIHZhciBvczQg
PSB0eG4yLm9iamVjdFN0b3JlKCJvczQiKQorCisgICAgZm9yICh2YXIgaT0wOyBpIDwgMzsgaSsr
KSB7CisgICAgICAgIG9zNC5vcGVuQ3Vyc29yKCkub25zdWNjZXNzID0gcmVnKCJ0eG4yIikKKyAg
ICAgICAgb3M0LmdldCg1KS5vbnN1Y2Nlc3MgPSByZWcoInR4bjIiKQorICAgICAgICBvczQuZ2V0
KDQpLm9uc3VjY2VzcyA9IHJlZygidHhuMiIpCisgICAgICAgIHR4bi5vYmplY3RTdG9yZSgib3My
IikuZ2V0KDEpLm9uc3VjY2VzcyA9IHJlZygidHhuIikKKyAgICAgICAgdHhuMi5vYmplY3RTdG9y
ZSgib3MzIikuZ2V0KDEpLm9uc3VjY2VzcyA9IHJlZygidHhuMiIpCisgICAgfQorCisgICAgdHhu
Mi5vYmplY3RTdG9yZSgib3MxIikuZ2V0KDIpLm9uc3VjY2VzcyA9IHJlZygidHhuMiIpCisgICAg
dHhuLm9iamVjdFN0b3JlKCJvczEiKS5vcGVuQ3Vyc29yKG51bGwsICJwcmV2Iikub25zdWNjZXNz
ID0gcmVnKCJ0eG4iKQorICAgIG9zNC5vcGVuQ3Vyc29yKG51bGwsICJwcmV2Iikub25zdWNjZXNz
ID0gcmVnKCJ0eG4yIikKKworICAgIHR4bi5vbmNvbXBsZXRlID0gdC5zdGVwX2Z1bmMoZmluaXNo
KTsKKyAgICB0eG4yLm9uY29tcGxldGUgPSB0LnN0ZXBfZnVuYyhmaW5pc2gpOworfQorCisKK2Z1
bmN0aW9uIHJlZyhuKSB7CisgICAgcmV0dXJuIHQuc3RlcF9mdW5jKGZ1bmN0aW9uIChlKSB7Cisg
ICAgICAgIHZhciB2ID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICBpZiAodi52YWx1ZSkgdiA9
IHYudmFsdWU7CisgICAgICAgIGtleXNbbl0ucHVzaCh2Lm9zICsgIjogIiArIHYuayk7CisgICAg
fSk7Cit9CisKK3ZhciBmaW5pc2hfdG9fZ28gPSAyOworZnVuY3Rpb24gZmluaXNoKCkgeworICAg
IGlmICgtLWZpbmlzaF90b19nbykKKyAgICAgICAgcmV0dXJuOworCisgICAgYXNzZXJ0X2FycmF5
X2VxdWFscyhrZXlzWyd0eG4nXSwgWworICAgICAgICAib3MxOiAxIiwKKyAgICAgICAgIm9zMzog
MSIsCisgICAgICAgICJvczE6IDIiLAorICAgICAgICAib3MyOiAzIiwKKyAgICAgICAgIm9zMjog
MSIsICJvczI6IDEiLCAib3MyOiAxIiwKKyAgICAgICAgIm9zMTogMiIsCisgICAgXSwgJ3RyYW5z
YWN0aW9uIGtleXMnKTsKKworICAgIGFzc2VydF9hcnJheV9lcXVhbHMoa2V5c1sndHhuMiddLCBb
CisgICAgICAgICJvczQ6IDEiLCAib3M0OiA1IiwgIm9zNDogNCIsICJvczM6IDEiLAorICAgICAg
ICAib3M0OiAxIiwgIm9zNDogNSIsICJvczQ6IDQiLCAib3MzOiAxIiwKKyAgICAgICAgIm9zNDog
MSIsICJvczQ6IDUiLCAib3M0OiA0IiwgIm9zMzogMSIsCisgICAgICAgICJvczE6IDIiLAorICAg
ICAgICAib3M0OiA1IiwKKyAgICBdLCAndHJhbnNhY3Rpb24gMiBrZXlzJyk7CisKKyAgICB0LmRv
bmUoKTsKK30KKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi90cmFuc2FjdGlvbl9idWJibGUtYW5k
LWNhcHR1cmUtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL3RyYW5zYWN0aW9uX2J1YmJsZS1hbmQtY2FwdHVyZS1wcml2YXRlLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZWVkMzc0Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi90cmFuc2FjdGlv
bl9idWJibGUtYW5kLWNhcHR1cmUtcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBA
CisKK1BBU1MgQ2FwdHVyZSBhbmQgYnViYmxlIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL3RyYW5zYWN0aW9uX2J1YmJsZS1hbmQtY2FwdHVyZS1wcml2
YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL3RyYW5zYWN0aW9u
X2J1YmJsZS1hbmQtY2FwdHVyZS1wcml2YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uYWRkOTg1OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvdHJhbnNhY3Rpb25fYnViYmxlLWFuZC1jYXB0dXJlLXByaXZhdGUu
aHRtbApAQCAtMCwwICsxLDc1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRm
LTg+Cis8dGl0bGU+Q2FwdHVyZSBhbmQgYnViYmxlPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9y
IiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRh
bCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KKworPHNjcmlw
dD4KKyAgICB2YXIgZXZlbnRzID0gW107CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKGFz
eW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUsIHt0aW1lb3V0OiAxMDAwMH0pKTsKKyAgICBvcGVuX3Jx
Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdmFyIGRiID0gZS50YXJn
ZXQucmVzdWx0OworICAgICAgICB2YXIgdHhuID0gZS50YXJnZXQudHJhbnNhY3Rpb247CisgICAg
ICAgIHZhciBzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIpOworICAgICAgICB2
YXIgcnExID0gc3RvcmUuYWRkKCIiLCAxKTsKKyAgICAgICAgdmFyIHJxMiA9IHN0b3JlLmFkZCgi
IiwgMSk7CisKKyAgICAgICAgZGIub25lcnJvciA9IHVuZGVmaW5lZDsgLy8gV2Ugd2lsbCBydW4g
ZGIuZXJyb3IsIGJ1dCBkb24ndCBsZXQgdGhhdCBmYWlsIHRoZSB0ZXN0CisKKyAgICAgICAgbG9n
X2V2ZW50cygnZGInLCBkYiwgJ3N1Y2Nlc3MnKTsKKyAgICAgICAgbG9nX2V2ZW50cygnZGInLCBk
YiwgJ2Vycm9yJyk7CisKKyAgICAgICAgbG9nX2V2ZW50cygndHhuJywgdHhuLCAnc3VjY2Vzcycp
OworICAgICAgICBsb2dfZXZlbnRzKCd0eG4nLCB0eG4sICdlcnJvcicpOworCisgICAgICAgIGxv
Z19ldmVudHMoJ3JxMScsIHJxMSwgJ3N1Y2Nlc3MnKTsKKyAgICAgICAgbG9nX2V2ZW50cygncnEx
JywgcnExLCAnZXJyb3InKTsKKworICAgICAgICBsb2dfZXZlbnRzKCdycTInLCBycTIsICdzdWNj
ZXNzJyk7CisgICAgICAgIGxvZ19ldmVudHMoJ3JxMicsIHJxMiwgJ2Vycm9yJyk7CisKKyAgICAg
ICAgLy8gRG9uJ3QgbGV0IGl0IGdldCB0byBhYm9ydAorICAgICAgICBkYi5hZGRFdmVudExpc3Rl
bmVyKCdlcnJvcicsIGZ1bmN0aW9uKGUpIHsgZS5wcmV2ZW50RGVmYXVsdCgpOyB9LCBmYWxzZSk7
CisgICAgfQorCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAg
IGxvZygib3Blbl9ycS5zdWNjZXNzIikoZSk7CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMo
ZXZlbnRzLCBbCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjYXB0dXJl
IGRiLnN1Y2Nlc3MiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY2Fw
dHVyZSB0eG4uc3VjY2VzcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJjYXB0dXJlIHJxMS5zdWNjZXNzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgImJ1YmJsZSAgcnExLnN1Y2Nlc3MiLAorCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJjYXB0dXJlIGRiLmVycm9yOiBDb25zdHJhaW50RXJyb3IiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY2FwdHVyZSB0eG4uZXJyb3I6IENvbnN0
cmFpbnRFcnJvciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjYXB0
dXJlIHJxMi5lcnJvcjogQ29uc3RyYWludEVycm9yIiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgImJ1YmJsZSAgcnEyLmVycm9yOiBDb25zdHJhaW50RXJyb3IiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYnViYmxlICB0eG4uZXJyb3I6IENv
bnN0cmFpbnRFcnJvciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJi
dWJibGUgIGRiLmVycm9yOiBDb25zdHJhaW50RXJyb3IiLAorCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJvcGVuX3JxLnN1Y2Nlc3MiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV2ZW50
cyIpOworICAgICAgICB0aGlzLmRvbmUoKTsKKyAgICB9CisKKworICAgIGZ1bmN0aW9uIGxvZ19l
dmVudHModHlwZSwgb2JqLCBldnQpIHsKKyAgICAgICAgb2JqLmFkZEV2ZW50TGlzdGVuZXIoZXZ0
LCBsb2coJ2NhcHR1cmUgJyArIHR5cGUgKyAnLicgKyBldnQpLCB0cnVlKTsKKyAgICAgICAgb2Jq
LmFkZEV2ZW50TGlzdGVuZXIoZXZ0LCBsb2coJ2J1YmJsZSAgJyArIHR5cGUgKyAnLicgKyBldnQp
LCBmYWxzZSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gbG9nKG1zZykgeworICAgICAgICByZXR1
cm4gZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgaWYoZSAmJiBlLnRhcmdldCAmJiBlLnRhcmdl
dC5lcnJvcikKKyAgICAgICAgICAgICAgICBldmVudHMucHVzaChtc2cgKyAiOiAiICsgZS50YXJn
ZXQuZXJyb3IubmFtZSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgZXZlbnRz
LnB1c2gobXNnKTsKKyAgICAgICAgfTsKKyAgICB9Cis8L3NjcmlwdD4KKworPGRpdiBpZD1sb2c+
PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL3Zh
bHVlLXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi92YWx1ZS1wcml2YXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi44YzE1NTJjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi92YWx1ZS1wcml2YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQg
QEAKKworUEFTUyBWYWx1ZXMgLSBEYXRlIAorUEFTUyBWYWx1ZXMgLSBBcnJheSAKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi92YWx1ZS1wcml2YXRlLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL3ZhbHVlLXByaXZhdGUuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMGU4M2I2Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi92YWx1ZS1wcml2YXRl
Lmh0bWwKQEAgLTAsMCArMSw0MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1
dGYtOCI+Cis8dGl0bGU+VmFsdWVzPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJt
YWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorZnVu
Y3Rpb24gdmFsdWUodmFsdWUsIF9pbnN0YW5jZW9mKSB7CisgICAgdmFyIHQgPSBhc3luY190ZXN0
KGRvY3VtZW50LnRpdGxlICsgIiAtICIgKyBfaW5zdGFuY2VvZi5uYW1lKTsKKyAgICB0LnN0ZXAo
ZnVuY3Rpb24oKSB7CisgICAgICAgIGFzc2VydF90cnVlKHZhbHVlIGluc3RhbmNlb2YgX2luc3Rh
bmNlb2YsICJURVNUIEVSUk9SLCBpbnN0YW5jZW9mIik7CisgICAgfSk7CisKKyAgICBjcmVhdGVk
Yih0KS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGUudGFyZ2V0LnJl
c3VsdAorICAgICAgICAgICAgICAgIC5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiKQorICAgICAg
ICAgICAgICAgIC5hZGQodmFsdWUsIDEpOworCisgICAgICAgIGUudGFyZ2V0Lm9uc3VjY2VzcyA9
IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGUudGFyZ2V0LnJlc3VsdAor
ICAgICAgICAgICAgICAgICAgICAudHJhbnNhY3Rpb24oInN0b3JlIikKKyAgICAgICAgICAgICAg
ICAgICAgLm9iamVjdFN0b3JlKCJzdG9yZSIpCisgICAgICAgICAgICAgICAgICAgIC5nZXQoMSkK
KyAgICAgICAgICAgICAgICAgICAgLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUp
CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X3RydWUoZS50YXJnZXQucmVz
dWx0IGluc3RhbmNlb2YgX2luc3RhbmNlb2YsICJpbnN0YW5jZW9mIikKKyAgICAgICAgICAgICAg
ICB0LmRvbmUoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9OworfQorCit2
YWx1ZShuZXcgRGF0ZSgpLCBEYXRlKTsKK3ZhbHVlKG5ldyBBcnJheSgpLCBBcnJheSk7CisKKzwv
c2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi92YWx1ZV9yZWN1cnNpdmUtcHJpdmF0ZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL3ZhbHVlX3JlY3Vyc2l2ZS1w
cml2YXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5l
OTU3ZTdlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi92YWx1ZV9yZWN1cnNpdmUtcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBA
CisKK1BBU1MgUmVjdXJzaXZlIHZhbHVlIC0gYXJyYXkgZGlyZWN0bHkgY29udGFpbnMgc2VsZiAK
K1BBU1MgUmVjdXJzaXZlIHZhbHVlIC0gYXJyYXkgaW5kaXJlY3RseSBjb250YWlucyBzZWxmIAor
UEFTUyBSZWN1cnNpdmUgdmFsdWUgLSBhcnJheSBtZW1iZXIgY29udGFpbnMgc2VsZiAKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi92YWx1ZV9yZWN1cnNp
dmUtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi92YWx1
ZV9yZWN1cnNpdmUtcHJpdmF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjk0NDZhZWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL3ZhbHVlX3JlY3Vyc2l2ZS1wcml2YXRlLmh0bWwKQEAgLTAsMCArMSw2NiBAQAor
PCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+UmVjdXJzaXZl
IHZhbHVlPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9w
ZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorZnVuY3Rpb24gcmVjdXJzaXZl
X3ZhbHVlKGRlc2MsIHZhbHVlKSB7CisgICAgdmFyIGRiLCB0ID0gYXN5bmNfdGVzdChkb2N1bWVu
dC50aXRsZSArICIgLSAiICsgZGVzYyk7CisKKyAgICBjcmVhdGVkYih0KS5vbnVwZ3JhZGVuZWVk
ZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0CisgICAgICAg
IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIpCisgICAgICAgICAgLmFkZCh2YWx1ZSwgMSk7
CisKKyAgICAgICAgZS50YXJnZXQub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkg
eworICAgICAgICAgICAgZGIudHJhbnNhY3Rpb24oJ3N0b3JlJykKKyAgICAgICAgICAgICAgLm9i
amVjdFN0b3JlKCdzdG9yZScpCisgICAgICAgICAgICAgIC5nZXQoMSkKKyAgICAgICAgICAgICAg
Lm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpCisgICAgICAgICAgICB7CisKKyAg
ICAgICAgICAgICAgICB0cnkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAg
IHZhciBmcmVzaF92YWx1ZSA9IEpTT04uc3RyaW5naWZ5KHZhbHVlKTsKKyAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0X3VucmVhY2hlZCgiVGVzdGNhc2UgaXMgd3JpdHRlbiB3cm9uZ2x5LCBtdXN0
IHN1cHBseSBzb21ldGhpbmcgcmVjdXJzaXZlICh0aGF0IEpTT04gd29uJ3Qgc3RyaW5naWZ5KS4i
KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2F0Y2ggKGUpCisgICAgICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBpZiAoZS5uYW1lID09ICdUeXBlRXJyb3In
KQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICB0cnkKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBKU09O
LnN0cmluZ2lmeShlLnRhcmdldC5yZXN1bHQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGFzc2VydF91bnJlYWNoZWQoIkV4cGVjdGVkIGEgbm9uLUpTT04tc2VyaWFsaXphYmxlIHZhbHVl
IGJhY2ssIGRpZG4ndCBnZXQgdGhhdC4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgICAgIGNhdGNoIChlKQorICAgICAgICAgICAgICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
ICAgICAgICB0aHJvdyBlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0pOworICAg
ICAgICB9KTsKKyAgICB9OworfQorCit2YXIgcmVjdXJzaXZlID0gW107CityZWN1cnNpdmUucHVz
aChyZWN1cnNpdmUpOworcmVjdXJzaXZlX3ZhbHVlKCdhcnJheSBkaXJlY3RseSBjb250YWlucyBz
ZWxmJywgcmVjdXJzaXZlKTsKKwordmFyIHJlY3Vyc2l2ZTIgPSBbXTsKK3JlY3Vyc2l2ZTIucHVz
aChbcmVjdXJzaXZlMl0pOworcmVjdXJzaXZlX3ZhbHVlKCdhcnJheSBpbmRpcmVjdGx5IGNvbnRh
aW5zIHNlbGYnLCByZWN1cnNpdmUyKTsKKwordmFyIHJlY3Vyc2l2ZTMgPSBbcmVjdXJzaXZlXTsK
K3JlY3Vyc2l2ZV92YWx1ZSgnYXJyYXkgbWVtYmVyIGNvbnRhaW5zIHNlbGYnLCByZWN1cnNpdmUz
KTsKKworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL3dyaXRlci1zdGFydmF0aW9uLXByaXZhdGUt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi93cml0ZXIt
c3RhcnZhdGlvbi1wcml2YXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi42NDYxMDExCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi93cml0ZXItc3RhcnZhdGlvbi1wcml2YXRlLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDMgQEAKKworUEFTUyBXcml0ZXIgc3RhcnZhdGlvbiAKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi93cml0ZXItc3RhcnZhdGlvbi1wcml2
YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL3dyaXRlci1zdGFy
dmF0aW9uLXByaXZhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41
ZGE2ZGNiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi93cml0ZXItc3RhcnZhdGlvbi1wcml2YXRlLmh0bWwKQEAgLTAsMCArMSwxMDUgQEAKKzwh
RE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzx0aXRsZT5Xcml0ZXIgc3RhcnZh
dGlvbjwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVy
YS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgorPG1ldGEgbmFtZT10aW1lb3V0IGNv
bnRlbnQ9bG9uZz4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwvc2NyaXB0Pgor
Cis8c2NyaXB0PgorICAgIHZhciBkYiwgcmVhZF9yZXF1ZXN0X2NvdW50ID0gMCwgcmVhZF9zdWNj
ZXNzX2NvdW50ID0gMDsKKyAgICB2YXIgd3JpdGVfcmVxdWVzdF9jb3VudCA9IDAsIHdyaXRlX3N1
Y2Nlc3NfY291bnQgPSAwOworICAgIHZhciBSUV9DT1VOVCA9IDI1OworCisgICAgdmFyIG9wZW5f
cnEgPSBjcmVhdGVkYihhc3luY190ZXN0KHVuZGVmaW5lZCwge3RpbWVvdXQ6IDIwMDAwfSkpOwor
ICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9
IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgZGIuY3JlYXRlT2JqZWN0U3RvcmUoInMiKQorICAg
ICAgICAgIC5hZGQoIjEiLCAxKTsKKyAgICB9CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1
bmN0aW9uKGUpIHsKKyAgICAgICAgdmFyIGkgPSAwLCBjb250aW51ZV9yZWFkaW5nID0gdHJ1ZTsK
KworICAgICAgICAvKiBQcmUtZmlsbCBzb21lIHJlYWQgcmVxdWVzdHMgKi8KKyAgICAgICAgZm9y
IChpID0gMDsgaSA8IFJRX0NPVU5UOyBpKyspCisgICAgICAgIHsKKyAgICAgICAgICAgIHJlYWRf
cmVxdWVzdF9jb3VudCsrOworCisgICAgICAgICAgICBkYi50cmFuc2FjdGlvbigicyIpCisgICAg
ICAgICAgICAgIC5vYmplY3RTdG9yZSgicyIpCisgICAgICAgICAgICAgIC5nZXQoMSkKKyAgICAg
ICAgICAgICAgLm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAg
ICAgICAgICAgICAgICAgcmVhZF9zdWNjZXNzX2NvdW50Kys7CisgICAgICAgICAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMoZS50YXJnZXQudHJhbnNhY3Rpb24ubW9kZSwgInJlYWRvbmx5Iik7Cisg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKworICAgICAgICB0aGlzLnN0ZXAobG9vcCk7
CisKKyAgICAgICAgZnVuY3Rpb24gbG9vcCgpIHsKKyAgICAgICAgICAgIHJlYWRfcmVxdWVzdF9j
b3VudCsrOworCisgICAgICAgICAgICBkYi50cmFuc2FjdGlvbigicyIpCisgICAgICAgICAgICAg
IC5vYmplY3RTdG9yZSgicyIpCisgICAgICAgICAgICAgIC5nZXQoMSkKKyAgICAgICAgICAgICAg
Lm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpCisgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgcmVhZF9zdWNjZXNzX2NvdW50Kys7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhlLnRhcmdldC50cmFuc2FjdGlvbi5tb2RlLCAicmVhZG9ubHkiKTsKKworICAg
ICAgICAgICAgICAgIGlmIChyZWFkX3N1Y2Nlc3NfY291bnQgPj0gUlFfQ09VTlQgJiYgd3JpdGVf
cmVxdWVzdF9jb3VudCA9PSAwKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAg
ICAgd3JpdGVfcmVxdWVzdF9jb3VudCsrOworCisgICAgICAgICAgICAgICAgICAgIGRiLnRyYW5z
YWN0aW9uKCJzIiwgInJlYWR3cml0ZSIpCisgICAgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0
b3JlKCJzIikKKyAgICAgICAgICAgICAgICAgICAgICAuYWRkKCJ3cml0dGVuIiwgcmVhZF9yZXF1
ZXN0X2NvdW50KQorICAgICAgICAgICAgICAgICAgICAgIC5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBf
ZnVuYyhmdW5jdGlvbihlKQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
ICAgICAgICB3cml0ZV9zdWNjZXNzX2NvdW50Kys7CisgICAgICAgICAgICAgICAgICAgICAgICBh
c3NlcnRfZXF1YWxzKGUudGFyZ2V0LnRyYW5zYWN0aW9uLm1vZGUsICJyZWFkd3JpdGUiKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LCByZWFk
X3N1Y2Nlc3NfY291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
d3JpdGUgY2IgY2FtZSBiZWZvcmUgbGF0ZXIgcmVhZCBjYidzIikKKyAgICAgICAgICAgICAgICAg
ICAgfSk7CisKKyAgICAgICAgICAgICAgICAgICAgLyogUmVhZHMgZG9uZSBhZnRlciB0aGUgd3Jp
dGUgKi8KKyAgICAgICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IDU7IGkrKykKKyAgICAg
ICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9yZXF1ZXN0X2Nv
dW50Kys7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIGRiLnRyYW5zYWN0aW9uKCJzIikKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJzIikKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgLmdldCgxKQorICAgICAgICAgICAgICAgICAgICAgICAgICAub25zdWNjZXNz
ID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFkX3N1Y2Nlc3NfY291bnQrKzsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIGlmIChyZWFkX3N1Y2Nlc3Nf
Y291bnQgPCBSUV9DT1VOVCArIDUpCisgICAgICAgICAgICAgICAgc2V0VGltZW91dCh0aGlzLnN0
ZXBfZnVuYyhsb29wKSwgd3JpdGVfcmVxdWVzdF9jb3VudCA/IDEwMDAgOiAxMDApOworICAgICAg
ICAgICAgZWxzZQorICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgbWVyZWx5IGEgIm5pY2UiIGhh
Y2sgdG8gcnVuIGZpbmlzaCBhZnRlciB0aGUgbGFzdCByZXF1ZXN0IGlzIGRvbmUKKyAgICAgICAg
ICAgICAgICBkYi50cmFuc2FjdGlvbigicyIpCisgICAgICAgICAgICAgICAgICAub2JqZWN0U3Rv
cmUoInMiKQorICAgICAgICAgICAgICAgICAgLmNvdW50KCkKKyAgICAgICAgICAgICAgICAgIC5v
bnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbigpCisgICAgICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KHRoaXMuc3RlcF9mdW5jKGZpbmlzaCksIDEw
MCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9CisKKworZnVuY3Rpb24g
ZmluaXNoKCkgeworICAgIGFzc2VydF9lcXVhbHMocmVhZF9yZXF1ZXN0X2NvdW50LCByZWFkX3N1
Y2Nlc3NfY291bnQsICJyZWFkIGNvdW50cyIpOworICAgIGFzc2VydF9lcXVhbHMod3JpdGVfcmVx
dWVzdF9jb3VudCwgd3JpdGVfc3VjY2Vzc19jb3VudCwgIndyaXRlIGNvdW50cyIpOworICAgIHRo
aXMuZG9uZSgpOworfQorPC9zY3JpcHQ+CisKKzxkaXYgaWQ9bG9nPjwvZGl2Pgo=
</data>
<flag name="review"
          id="294407"
          type_id="1"
          status="+"
          setter="achristensen"
    />
          </attachment>
      

    </bug>

</bugzilla>