<?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>127609</bug_id>
          
          <creation_ts>2014-01-24 22:31:16 -0800</creation_ts>
          <short_desc>Update WebCrypto JWK mapping to use key_ops</short_desc>
          <delta_ts>2014-02-01 10:09:36 -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>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>122679</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>andersca</cc>
    
    <cc>commit-queue</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>971901</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-01-24 22:31:16 -0800</bug_when>
    <thetext>The way WebCrypto key usages are mapped to JWK has changed since we implemented it. It used to be a comma separated list in &quot;use&quot; attribute, and now they go into a different attribute, key_ops.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971902</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-01-24 22:31:58 -0800</bug_when>
    <thetext>Changes in &lt;https://dvcs.w3.org/hg/webcrypto-api/rev/05819fa07004&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>974096</commentid>
    <comment_count>2</comment_count>
      <attachid>222759</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-01-30 16:43:33 -0800</bug_when>
    <thetext>Created attachment 222759
patch

I have this implemented, but the patch breaks tests because of an underlying library issue accidentally uncovered by this change, &lt;rdar://problem/15949992&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>974522</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-01-31 15:58:03 -0800</bug_when>
    <thetext>Turns out it&apos;s more of a WebCrypto spec issue than a library issue. Tracking that as &lt;https://www.w3.org/Bugs/Public/show_bug.cgi?id=24457&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>974524</commentid>
    <comment_count>4</comment_count>
      <attachid>222862</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-01-31 16:08:07 -0800</bug_when>
    <thetext>Created attachment 222862
proposed fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>974625</commentid>
    <comment_count>5</comment_count>
      <attachid>222862</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-01 10:09:33 -0800</bug_when>
    <thetext>Comment on attachment 222862
proposed fix

Clearing flags on attachment: 222862

Committed r163244: &lt;http://trac.webkit.org/changeset/163244&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>974626</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-01 10:09:36 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222759</attachid>
            <date>2014-01-30 16:43:33 -0800</date>
            <delta_ts>2014-01-31 16:08:07 -0800</delta_ts>
            <desc>patch</desc>
            <filename>KeyOps.txt</filename>
            <type>text/plain</type>
            <size>35758</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3J5cHRvS2V5U2VyaWFsaXphdGlv
bkpXSy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDcnlw
dG9LZXlTZXJpYWxpemF0aW9uSldLLmNwcAkocmV2aXNpb24gMTYzMDIzKQorKysgU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNDcnlwdG9LZXlTZXJpYWxpemF0aW9uSldLLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNjAsNyArNjAsNyBAQCBzdGF0aWMgYm9vbCBnZXRKU0FycmF5RnJvbUpTT04o
RXhlY1N0YXRlCiAKICAgICBKU1ZhbHVlIHZhbHVlID0gc2xvdC5nZXRWYWx1ZShleGVjLCBpZGVu
dGlmaWVyKTsKICAgICBBU1NFUlQoIWV4ZWMtPmhhZEV4Y2VwdGlvbigpKTsKLSAgICBpZiAoaXNK
U0FycmF5KHZhbHVlKSkgeworICAgIGlmICghaXNKU0FycmF5KHZhbHVlKSkgewogICAgICAgICB0
aHJvd1R5cGVFcnJvcihleGVjLCBTdHJpbmc6OmZvcm1hdCgiRXhwZWN0ZWQgYW4gYXJyYXkgZm9y
IFwiJXNcIiBKU09OIGtleSIsICBrZXkpKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0K
QEAgLTI0OCw0MCArMjQ4LDY3IEBAIGJvb2wgSlNDcnlwdG9LZXlTZXJpYWxpemF0aW9uSldLOjpy
ZWNvbmMKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBKU0NyeXB0b0tleVNlcmlhbGl6YXRp
b25KV0s6OnJlY29uY2lsZVVzYWdlcyhDcnlwdG9LZXlVc2FnZSYgc3VnZ2VzdGVkVXNhZ2VzKSBj
b25zdAorc3RhdGljIGJvb2wgY2hlY2tKV0tLZXlPcHNWYWx1ZShFeGVjU3RhdGUqIGV4ZWMsIENy
eXB0b0tleVVzYWdlJiB1c2FnZXMsIGNvbnN0IFN0cmluZyYgb3BlcmF0aW9uLCBjb25zdCBTdHJp
bmcmIHRyeU9wZXJhdGlvbiwgQ3J5cHRvS2V5VXNhZ2UgdHJ5VXNhZ2UpCiB7Ci0gICAgU3RyaW5n
IGp3a1VzZVN0cmluZzsKLSAgICBpZiAoIWdldFN0cmluZ0Zyb21KU09OKG1fZXhlYywgbV9qc29u
LmdldCgpLCAidXNlIiwgandrVXNlU3RyaW5nKSkgewotICAgICAgICAvLyAidXNlIiBpcyBvcHRp
b25hbCBpbiBKV0suCi0gICAgICAgIHJldHVybjsKKyAgICBpZiAob3BlcmF0aW9uID09IHRyeU9w
ZXJhdGlvbikgeworICAgICAgICBpZiAodXNhZ2VzICYgdHJ5VXNhZ2UpIHsKKyAgICAgICAgICAg
IHRocm93VHlwZUVycm9yKGV4ZWMsICJKV0sga2V5X29wcyBjb250YWlucyBhIGR1cGxpY2F0ZSBv
cGVyYXRpb24iKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAg
ICB1c2FnZXMgfD0gdHJ5VXNhZ2U7CiAgICAgfQorICAgIHJldHVybiB0cnVlOworfQogCi0gICAg
Ly8gSW1wbGVtZW50ZWQgYWNjb3JkaW5nIHRvIGEgcHJvcG9zYWwgaW4gPGh0dHBzOi8vd3d3Lncz
Lm9yZy9CdWdzL1B1YmxpYy9zaG93X2J1Zy5jZ2k/aWQ9MjM3OTY+LgotICAgIFZlY3RvcjxTdHJp
bmc+IGp3a1VzYWdlVmFsdWVzOwotICAgIGp3a1VzZVN0cmluZy5zcGxpdCgnLCcsIGp3a1VzYWdl
VmFsdWVzKTsKK3ZvaWQgSlNDcnlwdG9LZXlTZXJpYWxpemF0aW9uSldLOjpyZWNvbmNpbGVVc2Fn
ZXMoQ3J5cHRvS2V5VXNhZ2UmIHN1Z2dlc3RlZFVzYWdlcykgY29uc3QKK3sKICAgICBDcnlwdG9L
ZXlVc2FnZSBqd2tVc2FnZXMgPSAwOwotICAgIGZvciAoc2l6ZV90IGkgPSAwLCBzaXplID0gandr
VXNhZ2VWYWx1ZXMuc2l6ZSgpOyBpIDwgc2l6ZTsgKytpKSB7Ci0gICAgICAgIFN0cmluZyBqd2tV
c2UgPSBqd2tVc2FnZVZhbHVlc1tpXTsKLSAgICAgICAgaWYgKGp3a1VzZSA9PSAic2lnIikKLSAg
ICAgICAgICAgIGp3a1VzYWdlcyB8PSAoQ3J5cHRvS2V5VXNhZ2VTaWduIHwgQ3J5cHRvS2V5VXNh
Z2VWZXJpZnkpOwotICAgICAgICBlbHNlIGlmIChqd2tVc2UgPT0gImVuYyIpCisKKyAgICBKU0Fy
cmF5KiBrZXlPcHM7CisgICAgaWYgKGdldEpTQXJyYXlGcm9tSlNPTihtX2V4ZWMsIG1fanNvbi5n
ZXQoKSwgImtleV9vcHMiLCBrZXlPcHMpKSB7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwga2V5T3BzLT5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICBKU1ZhbHVlIGpzVmFsdWUg
PSBrZXlPcHMtPmdldEluZGV4KG1fZXhlYywgaSk7CisgICAgICAgICAgICBTdHJpbmcgb3BlcmF0
aW9uOworICAgICAgICAgICAgaWYgKCFqc1ZhbHVlLmdldFN0cmluZyhtX2V4ZWMsIG9wZXJhdGlv
bikpIHsKKyAgICAgICAgICAgICAgICBpZiAoIW1fZXhlYy0+aGFkRXhjZXB0aW9uKCkpCisgICAg
ICAgICAgICAgICAgICAgIHRocm93VHlwZUVycm9yKG1fZXhlYywgIkpXSyBrZXlfb3BzIGF0dHJp
YnV0ZSBjb3VsZCBub3QgYmUgcHJvY2Vzc2VkIik7CisgICAgICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFjaGVja0pXS0tleU9wc1ZhbHVlKG1fZXhl
YywgandrVXNhZ2VzLCBvcGVyYXRpb24sIEFTQ0lJTGl0ZXJhbCgic2lnbiIpLCBDcnlwdG9LZXlV
c2FnZVNpZ24pKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIGlmICghY2hl
Y2tKV0tLZXlPcHNWYWx1ZShtX2V4ZWMsIGp3a1VzYWdlcywgb3BlcmF0aW9uLCBBU0NJSUxpdGVy
YWwoInZlcmlmeSIpLCBDcnlwdG9LZXlVc2FnZVZlcmlmeSkpCisgICAgICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAgICAgaWYgKCFjaGVja0pXS0tleU9wc1ZhbHVlKG1fZXhlYywgandrVXNh
Z2VzLCBvcGVyYXRpb24sIEFTQ0lJTGl0ZXJhbCgiZW5jcnlwdCIpLCBDcnlwdG9LZXlVc2FnZUVu
Y3J5cHQpKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIGlmICghY2hlY2tK
V0tLZXlPcHNWYWx1ZShtX2V4ZWMsIGp3a1VzYWdlcywgb3BlcmF0aW9uLCBBU0NJSUxpdGVyYWwo
ImRlY3J5cHQiKSwgQ3J5cHRvS2V5VXNhZ2VEZWNyeXB0KSkKKyAgICAgICAgICAgICAgICByZXR1
cm47CisgICAgICAgICAgICBpZiAoIWNoZWNrSldLS2V5T3BzVmFsdWUobV9leGVjLCBqd2tVc2Fn
ZXMsIG9wZXJhdGlvbiwgQVNDSUlMaXRlcmFsKCJ3cmFwIiksIENyeXB0b0tleVVzYWdlV3JhcEtl
eSkpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgaWYgKCFjaGVja0pXS0tl
eU9wc1ZhbHVlKG1fZXhlYywgandrVXNhZ2VzLCBvcGVyYXRpb24sIEFTQ0lJTGl0ZXJhbCgidW53
cmFwIiksIENyeXB0b0tleVVzYWdlVW53cmFwS2V5KSkKKyAgICAgICAgICAgICAgICByZXR1cm47
CisgICAgICAgICAgICBpZiAoIWNoZWNrSldLS2V5T3BzVmFsdWUobV9leGVjLCBqd2tVc2FnZXMs
IG9wZXJhdGlvbiwgQVNDSUlMaXRlcmFsKCJkZXJpdmVLZXkiKSwgQ3J5cHRvS2V5VXNhZ2VEZXJp
dmVLZXkpKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIGlmICghY2hlY2tK
V0tLZXlPcHNWYWx1ZShtX2V4ZWMsIGp3a1VzYWdlcywgb3BlcmF0aW9uLCBBU0NJSUxpdGVyYWwo
ImRlcml2ZUJpdHMiKSwgQ3J5cHRvS2V5VXNhZ2VEZXJpdmVCaXRzKSkKKyAgICAgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBpZiAobV9leGVjLT5o
YWRFeGNlcHRpb24oKSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBTdHJpbmcgandr
VXNlU3RyaW5nOworICAgICAgICBpZiAoIWdldFN0cmluZ0Zyb21KU09OKG1fZXhlYywgbV9qc29u
LmdldCgpLCAidXNlIiwgandrVXNlU3RyaW5nKSkgeworICAgICAgICAgICAgLy8gV2UgaGF2ZSBu
ZWl0aGVyIGtleV9vcHMgbm9yIHVzZS4KKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQor
CisgICAgICAgIGlmIChqd2tVc2VTdHJpbmcgPT0gImVuYyIpCiAgICAgICAgICAgICBqd2tVc2Fn
ZXMgfD0gKENyeXB0b0tleVVzYWdlRW5jcnlwdCB8IENyeXB0b0tleVVzYWdlRGVjcnlwdCB8IENy
eXB0b0tleVVzYWdlV3JhcEtleSB8IENyeXB0b0tleVVzYWdlVW53cmFwS2V5KTsKLSAgICAgICAg
ZWxzZSBpZiAoandrVXNlID09ICJlbmNvbmx5IikKLSAgICAgICAgICAgIGp3a1VzYWdlcyB8PSBD
cnlwdG9LZXlVc2FnZUVuY3J5cHQ7Ci0gICAgICAgIGVsc2UgaWYgKGp3a1VzZSA9PSAiZGVjb25s
eSIpCi0gICAgICAgICAgICBqd2tVc2FnZXMgfD0gQ3J5cHRvS2V5VXNhZ2VEZWNyeXB0OwotICAg
ICAgICBlbHNlIGlmIChqd2tVc2UgPT0gInNpZ29ubHkiKQotICAgICAgICAgICAgandrVXNhZ2Vz
IHw9IENyeXB0b0tleVVzYWdlU2lnbjsKLSAgICAgICAgZWxzZSBpZiAoandrVXNlID09ICJ2Znlv
bmx5IikKLSAgICAgICAgICAgIGp3a1VzYWdlcyB8PSBDcnlwdG9LZXlVc2FnZVZlcmlmeTsKLSAg
ICAgICAgZWxzZSBpZiAoandrVXNlID09ICJkcnZrZXkiKQotICAgICAgICAgICAgandrVXNhZ2Vz
IHw9IENyeXB0b0tleVVzYWdlRGVyaXZlS2V5OwotICAgICAgICBlbHNlIGlmIChqd2tVc2UgPT0g
ImRydmJpdHMiKQotICAgICAgICAgICAgandrVXNhZ2VzIHw9IENyeXB0b0tleVVzYWdlRGVyaXZl
Qml0czsKLSAgICAgICAgZWxzZSBpZiAoandrVXNlID09ICJ3cmFwIikKLSAgICAgICAgICAgIGp3
a1VzYWdlcyB8PSBDcnlwdG9LZXlVc2FnZVdyYXBLZXk7Ci0gICAgICAgIGVsc2UgaWYgKGp3a1Vz
ZSA9PSAidW53cmFwIikKLSAgICAgICAgICAgIGp3a1VzYWdlcyB8PSBDcnlwdG9LZXlVc2FnZVVu
d3JhcEtleTsKKyAgICAgICAgZWxzZSBpZiAoandrVXNlU3RyaW5nID09ICJzaWciKQorICAgICAg
ICAgICAgandrVXNhZ2VzIHw9IChDcnlwdG9LZXlVc2FnZVNpZ24gfCBDcnlwdG9LZXlVc2FnZVZl
cmlmeSk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgdGhyb3dUeXBlRXJyb3IobV9leGVj
LCAiVW5zdXBwb3J0ZWQgSldLIGtleSB1c2UgdmFsdWUgXCIiICsgandrVXNlU3RyaW5nICsgIlwi
Iik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KICAgICB9CiAKICAgICBzdWdnZXN0
ZWRVc2FnZXMgPSBzdWdnZXN0ZWRVc2FnZXMgJiBqd2tVc2FnZXM7CkBAIC0yOTAsMTAgKzMxNyw4
IEBAIHZvaWQgSlNDcnlwdG9LZXlTZXJpYWxpemF0aW9uSldLOjpyZWNvbmMKIHZvaWQgSlNDcnlw
dG9LZXlTZXJpYWxpemF0aW9uSldLOjpyZWNvbmNpbGVFeHRyYWN0YWJsZShib29sJiBzdWdnZXN0
ZWRFeHRyYWN0YWJsZSkgY29uc3QKIHsKICAgICBib29sIGp3a0V4dHJhY3RhYmxlOwotICAgIGlm
ICghZ2V0Qm9vbGVhbkZyb21KU09OKG1fZXhlYywgbV9qc29uLmdldCgpLCAiZXh0IiwgandrRXh0
cmFjdGFibGUpKSB7Ci0gICAgICAgIC8vICJleHQiIG5vdCBpbiBKV0sgb3IgV2ViQ3J5cHRvIHNw
ZWNzIHlldCwgaW1wbGVtZW50ZWQgYWNjb3JkaW5nIHRvIGEgcHJvcG9zYWwgaW4gPGh0dHBzOi8v
d3d3LnczLm9yZy9CdWdzL1B1YmxpYy9zaG93X2J1Zy5jZ2k/aWQ9MjM3OTY+LgorICAgIGlmICgh
Z2V0Qm9vbGVhbkZyb21KU09OKG1fZXhlYywgbV9qc29uLmdldCgpLCAiZXh0IiwgandrRXh0cmFj
dGFibGUpKQogICAgICAgICByZXR1cm47Ci0gICAgfQogCiAgICAgc3VnZ2VzdGVkRXh0cmFjdGFi
bGUgPSBzdWdnZXN0ZWRFeHRyYWN0YWJsZSAmJiBqd2tFeHRyYWN0YWJsZTsKIH0KQEAgLTQ3Miwx
MyArNDk3LDIwIEBAIHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9LZXlEYXRhPiBKU0NyeXB0b0sKICAg
ICByZXR1cm4gbnVsbHB0cjsKIH0KIAotdm9pZCBKU0NyeXB0b0tleVNlcmlhbGl6YXRpb25KV0s6
OmJ1aWxkSlNPTkZvck9jdGV0U2VxdWVuY2UoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBWZWN0b3I8
dWludDhfdD4mIGtleURhdGEsIEpTT2JqZWN0KiByZXN1bHQpCitzdGF0aWMgdm9pZCBhZGRUb0pT
T04oRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCoganNvbiwgY29uc3QgY2hhcioga2V5LCBjb25z
dCBTdHJpbmcmIHZhbHVlKQoreworICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CisgICAgSWRlbnRp
ZmllciBpZGVudGlmaWVyKCZ2bSwga2V5KTsKKyAgICBqc29uLT5wdXREaXJlY3Qodm0sIGlkZW50
aWZpZXIsIGpzU3RyaW5nKGV4ZWMsIHZhbHVlKSk7Cit9CisKK3N0YXRpYyB2b2lkIGJ1aWxkSlNP
TkZvck9jdGV0U2VxdWVuY2UoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBWZWN0b3I8dWludDhfdD4m
IGtleURhdGEsIEpTT2JqZWN0KiByZXN1bHQpCiB7CiAgICAgYWRkVG9KU09OKGV4ZWMsIHJlc3Vs
dCwgImt0eSIsICJvY3QiKTsKICAgICBhZGRUb0pTT04oZXhlYywgcmVzdWx0LCAiayIsIGJhc2U2
NFVSTEVuY29kZShrZXlEYXRhKSk7CiB9CiAKLXZvaWQgSlNDcnlwdG9LZXlTZXJpYWxpemF0aW9u
SldLOjpidWlsZEpTT05Gb3JSU0FDb21wb25lbnRzKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25z
dCBDcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50cyYgZGF0YSwgSlNDOjpKU09iamVjdCogcmVzdWx0
KQorc3RhdGljIHZvaWQgYnVpbGRKU09ORm9yUlNBQ29tcG9uZW50cyhKU0M6OkV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgQ3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVudHMmIGRhdGEsIEpTQzo6SlNPYmpl
Y3QqIHJlc3VsdCkKIHsKICAgICBhZGRUb0pTT04oZXhlYywgcmVzdWx0LCAia3R5IiwgIlJTQSIp
OwogICAgIGFkZFRvSlNPTihleGVjLCByZXN1bHQsICJuIiwgYmFzZTY0VVJMRW5jb2RlKGRhdGEu
bW9kdWx1cygpKSk7CkBAIC01MTIsMjEgKzU0NCwxNCBAQCB2b2lkIEpTQ3J5cHRvS2V5U2VyaWFs
aXphdGlvbkpXSzo6YnVpbGRKCiAgICAgcmVzdWx0LT5wdXREaXJlY3QoZXhlYy0+dm0oKSwgSWRl
bnRpZmllcihleGVjLCAib3RoIiksIG90aCk7CiB9CiAKLXZvaWQgSlNDcnlwdG9LZXlTZXJpYWxp
emF0aW9uSldLOjphZGRUb0pTT04oRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCoganNvbiwgY29u
c3QgY2hhcioga2V5LCBjb25zdCBTdHJpbmcmIHZhbHVlKQotewotICAgIFZNJiB2bSA9IGV4ZWMt
PnZtKCk7Ci0gICAgSWRlbnRpZmllciBpZGVudGlmaWVyKCZ2bSwga2V5KTsKLSAgICBqc29uLT5w
dXREaXJlY3Qodm0sIGlkZW50aWZpZXIsIGpzU3RyaW5nKGV4ZWMsIHZhbHVlKSk7Ci19Ci0KLXZv
aWQgSlNDcnlwdG9LZXlTZXJpYWxpemF0aW9uSldLOjphZGRCb29sVG9KU09OKEV4ZWNTdGF0ZSog
ZXhlYywgSlNPYmplY3QqIGpzb24sIGNvbnN0IGNoYXIqIGtleSwgYm9vbCB2YWx1ZSkKK3N0YXRp
YyB2b2lkIGFkZEJvb2xUb0pTT04oRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCoganNvbiwgY29u
c3QgY2hhcioga2V5LCBib29sIHZhbHVlKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAg
ICAgSWRlbnRpZmllciBpZGVudGlmaWVyKCZ2bSwga2V5KTsKICAgICBqc29uLT5wdXREaXJlY3Qo
dm0sIGlkZW50aWZpZXIsIGpzQm9vbGVhbih2YWx1ZSkpOwogfQogCi12b2lkIEpTQ3J5cHRvS2V5
U2VyaWFsaXphdGlvbkpXSzo6YWRkSldLQWxnb3JpdGhtVG9KU09OKEV4ZWNTdGF0ZSogZXhlYywg
SlNPYmplY3QqIGpzb24sIGNvbnN0IENyeXB0b0tleSYga2V5KQorc3RhdGljIHZvaWQgYWRkSldL
QWxnb3JpdGhtVG9KU09OKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIGpzb24sIGNvbnN0IENy
eXB0b0tleSYga2V5KQogewogICAgIFN0cmluZyBqd2tBbGdvcml0aG07CiAgICAgc3dpdGNoIChr
ZXkuYWxnb3JpdGhtSWRlbnRpZmllcigpKSB7CkBAIC02MjcsNTEgKzY1MiwyOSBAQCB2b2lkIEpT
Q3J5cHRvS2V5U2VyaWFsaXphdGlvbkpXSzo6YWRkSldLCiAgICAgYWRkVG9KU09OKGV4ZWMsIGpz
b24sICJhbGciLCBqd2tBbGdvcml0aG0pOwogfQogCi1zdGF0aWMgYm9vbCBwcm9jZXNzVXNlVmFs
dWUoU3RyaW5nQnVpbGRlciYgYnVpbGRlciwgQ3J5cHRvS2V5VXNhZ2UmIHVzYWdlcywgY29uc3Qg
U3RyaW5nJiB1c2VTdHJpbmcsIENyeXB0b0tleVVzYWdlIHVzYWdlc0ZvclVzZVN0cmluZykKK3N0
YXRpYyB2b2lkIGFkZFVzYWdlc1RvSlNPTihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBqc29u
LCBDcnlwdG9LZXlVc2FnZSB1c2FnZXMpCiB7Ci0gICAgaWYgKCh1c2FnZXMgJiB1c2FnZXNGb3JV
c2VTdHJpbmcpICE9IHVzYWdlc0ZvclVzZVN0cmluZykKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
Ci0gICAgaWYgKCFidWlsZGVyLmlzRW1wdHkoKSkKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoJywn
KTsKLSAgICBidWlsZGVyLmFwcGVuZCh1c2VTdHJpbmcpOwotCi0gICAgdXNhZ2VzICY9IH51c2Fn
ZXNGb3JVc2VTdHJpbmc7Ci0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KKyAgICBKU0FycmF5KiBrZXlP
cHMgPSBjb25zdHJ1Y3RFbXB0eUFycmF5KGV4ZWMsIDAsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmpl
Y3QoKSwgMCk7CiAKLXZvaWQgSlNDcnlwdG9LZXlTZXJpYWxpemF0aW9uSldLOjphZGRKV0tVc2VU
b0pTT04oRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCoganNvbiwgQ3J5cHRvS2V5VXNhZ2UgdXNh
Z2VzKQotewotICAgIC8vIFVzZSBtYXBwaW5nIGltcGxlbWVudGVkIGFjY29yZGluZyB0byBhIHBy
b3Bvc2FsIGluIDxodHRwczovL3d3dy53My5vcmcvQnVncy9QdWJsaWMvc2hvd19idWcuY2dpP2lk
PTIzNzk2Pi4KLSAgICBTdHJpbmdCdWlsZGVyIHVzZUJ1aWxkZXI7Ci0gICAgQ3J5cHRvS2V5VXNh
Z2UgcmVtYWluaW5nVXNhZ2VzID0gdXNhZ2VzOwotICAgIHdoaWxlIChyZW1haW5pbmdVc2FnZXMp
IHsKLSAgICAgICAgaWYgKHByb2Nlc3NVc2VWYWx1ZSh1c2VCdWlsZGVyLCByZW1haW5pbmdVc2Fn
ZXMsICJlbmMiLCBDcnlwdG9LZXlVc2FnZUVuY3J5cHQgfCBDcnlwdG9LZXlVc2FnZURlY3J5cHQg
fCBDcnlwdG9LZXlVc2FnZVdyYXBLZXkgfCBDcnlwdG9LZXlVc2FnZVVud3JhcEtleSkpCi0gICAg
ICAgICAgICBjb250aW51ZTsKLSAgICAgICAgaWYgKHByb2Nlc3NVc2VWYWx1ZSh1c2VCdWlsZGVy
LCByZW1haW5pbmdVc2FnZXMsICJzaWciLCBDcnlwdG9LZXlVc2FnZVNpZ24gfCBDcnlwdG9LZXlV
c2FnZVZlcmlmeSkpCi0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgaWYgKHByb2Nlc3NV
c2VWYWx1ZSh1c2VCdWlsZGVyLCByZW1haW5pbmdVc2FnZXMsICJlbmNvbmx5IiwgQ3J5cHRvS2V5
VXNhZ2VFbmNyeXB0KSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBpZiAocHJvY2Vz
c1VzZVZhbHVlKHVzZUJ1aWxkZXIsIHJlbWFpbmluZ1VzYWdlcywgImRlY29ubHkiLCBDcnlwdG9L
ZXlVc2FnZURlY3J5cHQpKQotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIGlmIChwcm9j
ZXNzVXNlVmFsdWUodXNlQnVpbGRlciwgcmVtYWluaW5nVXNhZ2VzLCAic2lnb25seSIsIENyeXB0
b0tleVVzYWdlU2lnbikpCi0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgaWYgKHByb2Nl
c3NVc2VWYWx1ZSh1c2VCdWlsZGVyLCByZW1haW5pbmdVc2FnZXMsICJ2Znlvbmx5IiwgQ3J5cHRv
S2V5VXNhZ2VWZXJpZnkpKQotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIGlmIChwcm9j
ZXNzVXNlVmFsdWUodXNlQnVpbGRlciwgcmVtYWluaW5nVXNhZ2VzLCAiZHJ2a2V5IiwgQ3J5cHRv
S2V5VXNhZ2VEZXJpdmVLZXkpKQotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIGlmIChw
cm9jZXNzVXNlVmFsdWUodXNlQnVpbGRlciwgcmVtYWluaW5nVXNhZ2VzLCAiZHJ2Yml0cyIsIENy
eXB0b0tleVVzYWdlRGVyaXZlQml0cykpCi0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAg
aWYgKHByb2Nlc3NVc2VWYWx1ZSh1c2VCdWlsZGVyLCByZW1haW5pbmdVc2FnZXMsICJ3cmFwIiwg
Q3J5cHRvS2V5VXNhZ2VXcmFwS2V5KSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBp
ZiAocHJvY2Vzc1VzZVZhbHVlKHVzZUJ1aWxkZXIsIHJlbWFpbmluZ1VzYWdlcywgInVud3JhcCIs
IENyeXB0b0tleVVzYWdlVW53cmFwS2V5KSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAg
ICB0aHJvd1R5cGVFcnJvcihleGVjLCAiS2V5IHVzYWdlcyBjYW5ub3QgYmUgcmVwcmVzZW50ZWQg
aW4gSldLLiIpOwotICAgICAgICByZXR1cm47Ci0gICAgfQorICAgIHVuc2lnbmVkIGluZGV4ID0g
MDsKKyAgICBpZiAodXNhZ2VzICYgQ3J5cHRvS2V5VXNhZ2VTaWduKQorICAgICAgICBrZXlPcHMt
PnB1dERpcmVjdEluZGV4KGV4ZWMsIGluZGV4KyssIGpzU3RyaW5nKGV4ZWMsIEFTQ0lJTGl0ZXJh
bCgic2lnbiIpKSk7CisgICAgaWYgKHVzYWdlcyAmIENyeXB0b0tleVVzYWdlVmVyaWZ5KQorICAg
ICAgICBrZXlPcHMtPnB1dERpcmVjdEluZGV4KGV4ZWMsIGluZGV4KyssIGpzU3RyaW5nKGV4ZWMs
IEFTQ0lJTGl0ZXJhbCgidmVyaWZ5IikpKTsKKyAgICBpZiAodXNhZ2VzICYgQ3J5cHRvS2V5VXNh
Z2VFbmNyeXB0KQorICAgICAgICBrZXlPcHMtPnB1dERpcmVjdEluZGV4KGV4ZWMsIGluZGV4Kyss
IGpzU3RyaW5nKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiZW5jcnlwdCIpKSk7CisgICAgaWYgKHVzYWdl
cyAmIENyeXB0b0tleVVzYWdlRGVjcnlwdCkKKyAgICAgICAga2V5T3BzLT5wdXREaXJlY3RJbmRl
eChleGVjLCBpbmRleCsrLCBqc1N0cmluZyhleGVjLCBBU0NJSUxpdGVyYWwoImRlY3J5cHQiKSkp
OworICAgIGlmICh1c2FnZXMgJiBDcnlwdG9LZXlVc2FnZVdyYXBLZXkpCisgICAgICAgIGtleU9w
cy0+cHV0RGlyZWN0SW5kZXgoZXhlYywgaW5kZXgrKywganNTdHJpbmcoZXhlYywgQVNDSUlMaXRl
cmFsKCJ3cmFwIikpKTsKKyAgICBpZiAodXNhZ2VzICYgQ3J5cHRvS2V5VXNhZ2VVbndyYXBLZXkp
CisgICAgICAgIGtleU9wcy0+cHV0RGlyZWN0SW5kZXgoZXhlYywgaW5kZXgrKywganNTdHJpbmco
ZXhlYywgQVNDSUlMaXRlcmFsKCJ1bndyYXAiKSkpOworICAgIGlmICh1c2FnZXMgJiBDcnlwdG9L
ZXlVc2FnZURlcml2ZUtleSkKKyAgICAgICAga2V5T3BzLT5wdXREaXJlY3RJbmRleChleGVjLCBp
bmRleCsrLCBqc1N0cmluZyhleGVjLCBBU0NJSUxpdGVyYWwoImRlcml2ZUtleSIpKSk7CisgICAg
aWYgKHVzYWdlcyAmIENyeXB0b0tleVVzYWdlRGVyaXZlQml0cykKKyAgICAgICAga2V5T3BzLT5w
dXREaXJlY3RJbmRleChleGVjLCBpbmRleCsrLCBqc1N0cmluZyhleGVjLCBBU0NJSUxpdGVyYWwo
ImRlcml2ZUJpdHMiKSkpOwogCi0gICAgYWRkVG9KU09OKGV4ZWMsIGpzb24sICJ1c2UiLCB1c2VC
dWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGpzb24tPnB1dERpcmVjdChleGVjLT52bSgpLCBJZGVu
dGlmaWVyKGV4ZWMsICJrZXlfb3BzIiksIGtleU9wcyk7CiB9CiAKIFN0cmluZyBKU0NyeXB0b0tl
eVNlcmlhbGl6YXRpb25KV0s6OnNlcmlhbGl6ZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IENyeXB0
b0tleSYga2V5KQpAQCAtNjkxLDcgKzY5NCw3IEBAIFN0cmluZyBKU0NyeXB0b0tleVNlcmlhbGl6
YXRpb25KV0s6OnNlcmkKIAogICAgIGFkZEJvb2xUb0pTT04oZXhlYywgcmVzdWx0LCAiZXh0Iiwg
a2V5LmV4dHJhY3RhYmxlKCkpOwogCi0gICAgYWRkSldLVXNlVG9KU09OKGV4ZWMsIHJlc3VsdCwg
a2V5LnVzYWdlc0JpdG1hcCgpKTsKKyAgICBhZGRVc2FnZXNUb0pTT04oZXhlYywgcmVzdWx0LCBr
ZXkudXNhZ2VzQml0bWFwKCkpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAg
ICAgcmV0dXJuIFN0cmluZygpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0NyeXB0b0tleVNlcmlhbGl6YXRpb25KV0suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0NyeXB0b0tleVNlcmlhbGl6YXRpb25KV0suaAkocmV2aXNpb24gMTYz
MDIzKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDcnlwdG9LZXlTZXJpYWxpemF0
aW9uSldLLmgJKHdvcmtpbmcgY29weSkKQEAgLTY2LDEzICs2Niw2IEBAIHByaXZhdGU6CiAKICAg
ICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9LZXlEYXRhPiBrZXlEYXRhKCkgY29uc3Qg
b3ZlcnJpZGU7CiAKLSAgICBzdGF0aWMgdm9pZCBidWlsZEpTT05Gb3JPY3RldFNlcXVlbmNlKEpT
Qzo6RXhlY1N0YXRlKiwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiwgSlNDOjpKU09iamVjdCogcmVz
dWx0KTsKLSAgICBzdGF0aWMgdm9pZCBidWlsZEpTT05Gb3JSU0FDb21wb25lbnRzKEpTQzo6RXhl
Y1N0YXRlKiwgY29uc3QgQ3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVudHMmLCBKU0M6OkpTT2JqZWN0
KiByZXN1bHQpOwotICAgIHN0YXRpYyB2b2lkIGFkZEpXS0FsZ29yaXRobVRvSlNPTihKU0M6OkV4
ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBjb25zdCBDcnlwdG9LZXkmIGtleSk7Ci0gICAgc3Rh
dGljIHZvaWQgYWRkSldLVXNlVG9KU09OKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCos
IENyeXB0b0tleVVzYWdlKTsKLSAgICBzdGF0aWMgdm9pZCBhZGRUb0pTT04oSlNDOjpFeGVjU3Rh
dGUqLCBKU0M6OkpTT2JqZWN0KiwgY29uc3QgY2hhcioga2V5LCBjb25zdCBTdHJpbmcmIHZhbHVl
KTsKLSAgICBzdGF0aWMgdm9pZCBhZGRCb29sVG9KU09OKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpK
U09iamVjdCosIGNvbnN0IGNoYXIqIGtleSwgYm9vbCB2YWx1ZSk7Ci0KICAgICBib29sIGtleVNp
emVJc1ZhbGlkKHNpemVfdCBzaXplSW5CaXRzKSBjb25zdDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
Q3J5cHRvS2V5RGF0YT4ga2V5RGF0YU9jdGV0U2VxdWVuY2UoKSBjb25zdDsKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8Q3J5cHRvS2V5RGF0YT4ga2V5RGF0YVJTQUNvbXBvbmVudHMoKSBjb25zdDsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2NyeXB0by9tYWMvQ3J5cHRvQWxnb3JpdGhtQUVTX0tXTWFjLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRo
bUFFU19LV01hYy5jcHAJKHJldmlzaW9uIDE2MzAyMykKKysrIFNvdXJjZS9XZWJDb3JlL2NyeXB0
by9tYWMvQ3J5cHRvQWxnb3JpdGhtQUVTX0tXTWFjLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgs
NyArMzgsOSBAQCB2b2lkIENyeXB0b0FsZ29yaXRobUFFU19LVzo6cGxhdGZvcm1FbmNyCiB7CiAg
ICAgVmVjdG9yPHVpbnQ4X3Q+IHJlc3VsdChDQ1N5bW1ldHJpY1dyYXBwZWRTaXplKGtDQ1dSQVBB
RVMsIGRhdGEuc2Vjb25kKSk7CiAgICAgc2l6ZV90IHJlc3VsdFNpemUgPSByZXN1bHQuc2l6ZSgp
OworICAgIGZwcmludGYoc3RkZXJyLCAiZW5jcnlwdCAlbHUgYnl0ZXMgLT4gJXp1IGJ5dGVzXG4i
LCBkYXRhLnNlY29uZCwgcmVzdWx0U2l6ZSk7CiAgICAgaW50IHN0YXR1cyA9IENDU3ltbWV0cmlj
S2V5V3JhcChrQ0NXUkFQQUVTLCBDQ3JmYzMzOTRfaXYsIENDcmZjMzM5NF9pdkxlbiwga2V5Lmtl
eSgpLmRhdGEoKSwga2V5LmtleSgpLnNpemUoKSwgZGF0YS5maXJzdCwgZGF0YS5zZWNvbmQsIHJl
c3VsdC5kYXRhKCksICZyZXN1bHRTaXplKTsKKyAgICBmcHJpbnRmKHN0ZGVyciwgIlJlc3VsdCAl
ZCwgJXp1IGJ5dGVzXG4iLCBzdGF0dXMsIHJlc3VsdFNpemUpOwogICAgIGlmIChzdGF0dXMpIHsK
ICAgICAgICAgZmFpbHVyZUNhbGxiYWNrKCk7CiAgICAgICAgIHJldHVybjsKQEAgLTUxLDcgKzUz
LDkgQEAgdm9pZCBDcnlwdG9BbGdvcml0aG1BRVNfS1c6OnBsYXRmb3JtRGVjcgogewogICAgIFZl
Y3Rvcjx1aW50OF90PiByZXN1bHQoQ0NTeW1tZXRyaWNVbndyYXBwZWRTaXplKGtDQ1dSQVBBRVMs
IGRhdGEuc2Vjb25kKSk7CiAgICAgc2l6ZV90IHJlc3VsdFNpemUgPSByZXN1bHQuc2l6ZSgpOwor
ICAgIGZwcmludGYoc3RkZXJyLCAiZGVjcnlwdCAlbHUgYnl0ZXMgLT4gJXp1IGJ5dGVzXG4iLCBk
YXRhLnNlY29uZCwgcmVzdWx0U2l6ZSk7CiAgICAgaW50IHN0YXR1cyA9IENDU3ltbWV0cmljS2V5
VW53cmFwKGtDQ1dSQVBBRVMsIENDcmZjMzM5NF9pdiwgQ0NyZmMzMzk0X2l2TGVuLCBrZXkua2V5
KCkuZGF0YSgpLCBrZXkua2V5KCkuc2l6ZSgpLCBkYXRhLmZpcnN0LCBkYXRhLnNlY29uZCwgcmVz
dWx0LmRhdGEoKSwgJnJlc3VsdFNpemUpOworICAgIGZwcmludGYoc3RkZXJyLCAiUmVzdWx0ICVk
LCAlenUgYnl0ZXNcbiIsIHN0YXR1cywgcmVzdWx0U2l6ZSk7CiAgICAgaWYgKHN0YXR1cykgewog
ICAgICAgICBmYWlsdXJlQ2FsbGJhY2soKTsKICAgICAgICAgcmV0dXJuOwpJbmRleDogTGF5b3V0
VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtZXhwb3J0LWtleS1leHBlY3RlZC50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtZXhwb3J0LWtleS1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDE2MzEzMykKKysrIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWV4
cG9ydC1rZXktZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yMyw3ICsyMyw4IEBAIFBB
U1MgZXhwb3J0ZWRKV0sua3R5IGlzICdvY3QnCiBQQVNTIGV4cG9ydGVkSldLLmsgaXMgJ2puT3c5
OW9PWkZMSUVQTXJnSkI1NVdMNDZ0SlNMR3Q3JwogUEFTUyBleHBvcnRlZEpXSy5hbGcgaXMgJ0Ex
OTJDQkMnCiBQQVNTIGV4cG9ydGVkSldLLmV4dCBpcyB0cnVlCi1QQVNTIGV4cG9ydGVkSldLLnVz
ZSBpcyAnZW5jJworUEFTUyBleHBvcnRlZEpXSy51c2UgaXMgdW5kZWZpbmVkCitQQVNTIGV4cG9y
dGVkSldLLmtleV9vcHMgaXMgWydlbmNyeXB0JywgJ2RlY3J5cHQnLCAnd3JhcCcsICd1bndyYXAn
XQogCiBJbXBvcnRpbmcgYSBrZXkgdGhhdCdzIG5vdCBleHRyYWN0YWJsZS4uLgogCkluZGV4OiBM
YXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1leHBvcnQta2V5Lmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtZXhwb3J0LWtleS5odG1sCShyZXZpc2lv
biAxNjMxMzMpCisrKyBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1leHBvcnQta2V5Lmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTUzLDcgKzUzLDggQEAgY3J5cHRvLnN1YnRsZS5pbXBvcnRL
ZXkoImp3ayIsIGp3a0tleUFzQQogICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5rIiwgIidqbk93
OTlvT1pGTElFUE1yZ0pCNTVXTDQ2dEpTTEd0NyciKTsKICAgICBzaG91bGRCZSgiZXhwb3J0ZWRK
V0suYWxnIiwgIidBMTkyQ0JDJyIpOwogICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5leHQiLCAi
dHJ1ZSIpOwotICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy51c2UiLCAiJ2VuYyciKTsKKyAgICBz
aG91bGRCZSgiZXhwb3J0ZWRKV0sudXNlIiwgInVuZGVmaW5lZCIpOworICAgIHNob3VsZEJlKCJl
eHBvcnRlZEpXSy5rZXlfb3BzIiwgIlsnZW5jcnlwdCcsICdkZWNyeXB0JywgJ3dyYXAnLCAndW53
cmFwJ10iKTsKIAogICAgIGRlYnVnKCJcbkltcG9ydGluZyBhIGtleSB0aGF0J3Mgbm90IGV4dHJh
Y3RhYmxlLi4uIik7CiAgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBq
d2tLZXlBc0FycmF5QnVmZmVyLCAiQUVTLUNCQyIsIG5vbkV4dHJhY3RhYmxlLCBbJ2VuY3J5cHQn
LCAnZGVjcnlwdCcsICd3cmFwS2V5JywgJ3Vud3JhcEtleSddKQpJbmRleDogTGF5b3V0VGVzdHMv
Y3J5cHRvL3N1YnRsZS9obWFjLWV4cG9ydC1rZXktZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvaG1hYy1leHBvcnQta2V5LWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMTYzMTMzKQorKysgTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9obWFjLWV4cG9y
dC1rZXktZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xNiw3ICsxNiw4IEBAIFBBU1Mg
ZXhwb3J0ZWRKV0sua3R5IGlzICdvY3QnCiBQQVNTIGV4cG9ydGVkSldLLmsgaXMgJ2FoamtuLV8z
ODdmZ25zaWJmMjNxc3ZhaGprbi1fMzg3Zmduc2liZjIzcXMnCiBQQVNTIGV4cG9ydGVkSldLLmFs
ZyBpcyAnSFMyNTYnCiBQQVNTIGV4cG9ydGVkSldLLmV4dCBpcyB0cnVlCi1QQVNTIGV4cG9ydGVk
SldLLnVzZSBpcyAnc2lnJworUEFTUyBleHBvcnRlZEpXSy51c2UgaXMgdW5kZWZpbmVkCitQQVNT
IGV4cG9ydGVkSldLLmtleV9vcHMgaXMgWydzaWduJywgJ3ZlcmlmeSddCiAKIEltcG9ydGluZyBh
IGtleSB0aGF0J3Mgbm90IGV4dHJhY3RhYmxlLi4uCiAKSW5kZXg6IExheW91dFRlc3RzL2NyeXB0
by9zdWJ0bGUvaG1hYy1leHBvcnQta2V5Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
Y3J5cHRvL3N1YnRsZS9obWFjLWV4cG9ydC1rZXkuaHRtbAkocmV2aXNpb24gMTYzMTMzKQorKysg
TGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9obWFjLWV4cG9ydC1rZXkuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtNDcsNyArNDcsOCBAQCBjcnlwdG8uc3VidGxlLmltcG9ydEtleSgiandrIiwgandr
S2V5QXNBCiAgICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLmsiLCAiJ2FoamtuLV8zODdmZ25zaWJm
MjNxc3ZhaGprbi1fMzg3Zmduc2liZjIzcXMnIik7CiAgICAgc2hvdWxkQmUoImV4cG9ydGVkSldL
LmFsZyIsICInSFMyNTYnIik7CiAgICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLmV4dCIsICJ0cnVl
Iik7Ci0gICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLnVzZSIsICInc2lnJyIpOworICAgIHNob3Vs
ZEJlKCJleHBvcnRlZEpXSy51c2UiLCAidW5kZWZpbmVkIik7CisgICAgc2hvdWxkQmUoImV4cG9y
dGVkSldLLmtleV9vcHMiLCAiWydzaWduJywgJ3ZlcmlmeSddIik7CiAKICAgICBkZWJ1ZygiXG5J
bXBvcnRpbmcgYSBrZXkgdGhhdCdzIG5vdCBleHRyYWN0YWJsZS4uLiIpOwogICAgIHJldHVybiBj
cnlwdG8uc3VidGxlLmltcG9ydEtleSgiandrIiwgandrS2V5QXNBcnJheUJ1ZmZlciwgeyBuYW1l
OiAiSE1BQyIsIGhhc2g6ICJTSEEtMjU2IiB9LCBub25FeHRyYWN0YWJsZSwgWyJzaWduIiwgInZl
cmlmeSJdKTsKSW5kZXg6IExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvandrLWV4cG9ydC11c2Ut
dmFsdWVzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8vc3Vi
dGxlL2p3ay1leHBvcnQtdXNlLXZhbHVlcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE2MzEzMykK
KysrIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvandrLWV4cG9ydC11c2UtdmFsdWVzLWV4cGVj
dGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNCwzNyArNCw0OCBAQCBPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBCiAKIAogZW5jcnlwdDoKLVBBU1MgandrLnVzZSBpcyAn
ZW5jb25seScKK1BBU1MgandrLnVzZSBpcyB1bmRlZmluZWQKK1BBU1MgandrLmtleV9vcHMgaXMg
WyJlbmNyeXB0Il0KIAogZGVjcnlwdDoKLVBBU1MgandrLnVzZSBpcyAnZGVjb25seScKK1BBU1Mg
andrLnVzZSBpcyB1bmRlZmluZWQKK1BBU1MgandrLmtleV9vcHMgaXMgWyJkZWNyeXB0Il0KIAog
ZW5jcnlwdCxkZWNyeXB0OgotUEFTUyBqd2sudXNlIGlzICdlbmNvbmx5LGRlY29ubHknCitQQVNT
IGp3ay51c2UgaXMgdW5kZWZpbmVkCitQQVNTIGp3ay5rZXlfb3BzIGlzIFsiZW5jcnlwdCIsImRl
Y3J5cHQiXQogCiB3cmFwS2V5OgotUEFTUyBqd2sudXNlIGlzICd3cmFwJworUEFTUyBqd2sudXNl
IGlzIHVuZGVmaW5lZAorUEFTUyBqd2sua2V5X29wcyBpcyBbIndyYXAiXQogCiB1bndyYXBLZXk6
Ci1QQVNTIGp3ay51c2UgaXMgJ3Vud3JhcCcKK1BBU1MgandrLnVzZSBpcyB1bmRlZmluZWQKK1BB
U1MgandrLmtleV9vcHMgaXMgWyJ1bndyYXAiXQogCiB3cmFwS2V5LHVud3JhcEtleToKLVBBU1Mg
andrLnVzZSBpcyAnd3JhcCx1bndyYXAnCitQQVNTIGp3ay51c2UgaXMgdW5kZWZpbmVkCitQQVNT
IGp3ay5rZXlfb3BzIGlzIFsid3JhcCIsInVud3JhcCJdCiAKIGVuY3J5cHQsZGVjcnlwdCx3cmFw
S2V5OgotUEFTUyBqd2sudXNlIGlzICdlbmNvbmx5LGRlY29ubHksd3JhcCcKK1BBU1MgandrLnVz
ZSBpcyB1bmRlZmluZWQKK1BBU1MgandrLmtleV9vcHMgaXMgWyJlbmNyeXB0IiwiZGVjcnlwdCIs
IndyYXAiXQogCiBlbmNyeXB0LGRlY3J5cHQsd3JhcEtleSx1bndyYXBLZXk6Ci1QQVNTIGp3ay51
c2UgaXMgJ2VuYycKK1BBU1MgandrLnVzZSBpcyB1bmRlZmluZWQKK1BBU1MgandrLmtleV9vcHMg
aXMgWyJlbmNyeXB0IiwiZGVjcnlwdCIsIndyYXAiLCJ1bndyYXAiXQogCiBzaWduOgotUEFTUyBq
d2sudXNlIGlzICdzaWdvbmx5JworUEFTUyBqd2sudXNlIGlzIHVuZGVmaW5lZAorUEFTUyBqd2su
a2V5X29wcyBpcyBbInNpZ24iXQogCiB2ZXJpZnk6Ci1QQVNTIGp3ay51c2UgaXMgJ3ZmeW9ubHkn
CitQQVNTIGp3ay51c2UgaXMgdW5kZWZpbmVkCitQQVNTIGp3ay5rZXlfb3BzIGlzIFsidmVyaWZ5
Il0KIAogc2lnbix2ZXJpZnk6Ci1QQVNTIGp3ay51c2UgaXMgJ3NpZycKK1BBU1MgandrLnVzZSBp
cyB1bmRlZmluZWQKK1BBU1MgandrLmtleV9vcHMgaXMgWyJzaWduIiwidmVyaWZ5Il0KIAogUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8v
c3VidGxlL2p3ay1leHBvcnQtdXNlLXZhbHVlcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2NyeXB0by9zdWJ0bGUvandrLWV4cG9ydC11c2UtdmFsdWVzLmh0bWwJKHJldmlzaW9uIDE2
MzEzMykKKysrIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvandrLWV4cG9ydC11c2UtdmFsdWVz
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE4LDQyICsxOCw0NCBAQCB2YXIgZXh0cmFjdGFibGUg
PSB0cnVlOwogdmFyIGFlc0tleUFzQXJyYXlCdWZmZXIgPSBCYXNlNjRVUkwucGFyc2UoImpuT3c5
OW9PWkZMSUVQTXJnSkI1NVdMNDZ0SlNMR3Q3Iik7CiB2YXIgaG1hY0tleUFzQXJyYXlCdWZmZXIg
PSBCYXNlNjRVUkwucGFyc2UoImFoamtuLV8zODdmZ25zaWJmMjNxc3ZhaGprbi1fMzg3Zmduc2li
ZjIzcXMiKTsKIAotZnVuY3Rpb24gdGVzdFdpdGhBRVNDQkModXNhZ2VzLCBleHBlY3RlZFVzZSkK
K2Z1bmN0aW9uIHRlc3RXaXRoQUVTQ0JDKHVzYWdlcywgZXhwZWN0ZWRLZXlPcHMpCiB7CiAgICAg
cmV0dXJuIGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJyYXciLCBhZXNLZXlBc0FycmF5QnVmZmVy
LCAiQUVTLUNCQyIsIGV4dHJhY3RhYmxlLCB1c2FnZXMpLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7
CiAgICAgICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmV4cG9ydEtleSgiandrIiwgcmVzdWx0KTsK
ICAgICB9KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewogICAgICAgICBqd2sgPSBKU09OLnBhcnNl
KGJ5dGVzVG9BU0NJSVN0cmluZyhyZXN1bHQpKTsKICAgICAgICAgZGVidWcodXNhZ2VzICsgIjoi
KTsKLSAgICAgICAgc2hvdWxkQmUoImp3ay51c2UiLCAiJyIgKyBleHBlY3RlZFVzZSArICInIik7
CisgICAgICAgIHNob3VsZEJlKCJqd2sudXNlIiwgInVuZGVmaW5lZCIpOworICAgICAgICBzaG91
bGRCZSgiandrLmtleV9vcHMiLCBKU09OLnN0cmluZ2lmeShleHBlY3RlZEtleU9wcykpOwogICAg
ICAgICBkZWJ1ZygiIik7CiAgICAgfSk7CiB9CiAKLWZ1bmN0aW9uIHRlc3RXaXRoSE1BQyh1c2Fn
ZXMsIGV4cGVjdGVkVXNlKQorZnVuY3Rpb24gdGVzdFdpdGhITUFDKHVzYWdlcywgZXhwZWN0ZWRL
ZXlPcHMpCiB7CiAgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJyYXciLCBobWFj
S2V5QXNBcnJheUJ1ZmZlciwge25hbWU6ICdobWFjJywgaGFzaDoge25hbWU6ICdzaGEtMjU2J319
LCBleHRyYWN0YWJsZSwgdXNhZ2VzKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewogICAgICAgICBy
ZXR1cm4gY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkoImp3ayIsIHJlc3VsdCk7CiAgICAgfSkudGhl
bihmdW5jdGlvbihyZXN1bHQpIHsKICAgICAgICAgandrID0gSlNPTi5wYXJzZShieXRlc1RvQVND
SUlTdHJpbmcocmVzdWx0KSk7CiAgICAgICAgIGRlYnVnKHVzYWdlcyArICI6Iik7Ci0gICAgICAg
IHNob3VsZEJlKCJqd2sudXNlIiwgIiciICsgZXhwZWN0ZWRVc2UgKyAiJyIpOworICAgICAgICBz
aG91bGRCZSgiandrLnVzZSIsICJ1bmRlZmluZWQiKTsKKyAgICAgICAgc2hvdWxkQmUoImp3ay5r
ZXlfb3BzIiwgSlNPTi5zdHJpbmdpZnkoZXhwZWN0ZWRLZXlPcHMpKTsKICAgICAgICAgZGVidWco
IiIpOwogICAgIH0pOwogfQogCiBQcm9taXNlLmFsbChbCi0gICAgdGVzdFdpdGhBRVNDQkMoWyJl
bmNyeXB0Il0sICJlbmNvbmx5IiksCi0gICAgdGVzdFdpdGhBRVNDQkMoWyJkZWNyeXB0Il0sICJk
ZWNvbmx5IiksCi0gICAgdGVzdFdpdGhBRVNDQkMoWyJlbmNyeXB0IiwgImRlY3J5cHQiXSwgImVu
Y29ubHksZGVjb25seSIpLAotICAgIHRlc3RXaXRoQUVTQ0JDKFsid3JhcEtleSJdLCAid3JhcCIp
LAotICAgIHRlc3RXaXRoQUVTQ0JDKFsidW53cmFwS2V5Il0sICJ1bndyYXAiKSwKLSAgICB0ZXN0
V2l0aEFFU0NCQyhbIndyYXBLZXkiLCAidW53cmFwS2V5Il0sICJ3cmFwLHVud3JhcCIpLAotICAg
IHRlc3RXaXRoQUVTQ0JDKFsiZW5jcnlwdCIsICJkZWNyeXB0IiwgIndyYXBLZXkiXSwgImVuY29u
bHksZGVjb25seSx3cmFwIiksCi0gICAgdGVzdFdpdGhBRVNDQkMoWyJlbmNyeXB0IiwgImRlY3J5
cHQiLCAid3JhcEtleSIsICJ1bndyYXBLZXkiXSwgImVuYyIpLAotICAgIHRlc3RXaXRoSE1BQyhb
InNpZ24iXSwgInNpZ29ubHkiKSwKLSAgICB0ZXN0V2l0aEhNQUMoWyJ2ZXJpZnkiXSwgInZmeW9u
bHkiKSwKLSAgICB0ZXN0V2l0aEhNQUMoWyJzaWduIiwgInZlcmlmeSJdLCAic2lnIiksCisgICAg
dGVzdFdpdGhBRVNDQkMoWyJlbmNyeXB0Il0sIFsiZW5jcnlwdCJdKSwKKyAgICB0ZXN0V2l0aEFF
U0NCQyhbImRlY3J5cHQiXSwgWyJkZWNyeXB0Il0pLAorICAgIHRlc3RXaXRoQUVTQ0JDKFsiZW5j
cnlwdCIsICJkZWNyeXB0Il0sIFsiZW5jcnlwdCIsICJkZWNyeXB0Il0pLAorICAgIHRlc3RXaXRo
QUVTQ0JDKFsid3JhcEtleSJdLCBbIndyYXAiXSksCisgICAgdGVzdFdpdGhBRVNDQkMoWyJ1bndy
YXBLZXkiXSwgWyJ1bndyYXAiXSksCisgICAgdGVzdFdpdGhBRVNDQkMoWyJ3cmFwS2V5IiwgInVu
d3JhcEtleSJdLCBbIndyYXAiLCAidW53cmFwIl0pLAorICAgIHRlc3RXaXRoQUVTQ0JDKFsiZW5j
cnlwdCIsICJkZWNyeXB0IiwgIndyYXBLZXkiXSwgWyJlbmNyeXB0IiwgImRlY3J5cHQiLCAid3Jh
cCJdKSwKKyAgICB0ZXN0V2l0aEFFU0NCQyhbImVuY3J5cHQiLCAiZGVjcnlwdCIsICJ3cmFwS2V5
IiwgInVud3JhcEtleSJdLCBbImVuY3J5cHQiLCAiZGVjcnlwdCIsICJ3cmFwIiwgInVud3JhcCJd
KSwKKyAgICB0ZXN0V2l0aEhNQUMoWyJzaWduIl0sIFsic2lnbiJdKSwKKyAgICB0ZXN0V2l0aEhN
QUMoWyJ2ZXJpZnkiXSwgWyJ2ZXJpZnkiXSksCisgICAgdGVzdFdpdGhITUFDKFsic2lnbiIsICJ2
ZXJpZnkiXSwgWyJzaWduIiwgInZlcmlmeSJdKSwKIF0pLnRoZW4oZnVuY3Rpb24oKSB7IGZpbmlz
aEpTVGVzdCgpOyB9ICk7CiA8L3NjcmlwdD4KIApJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3N1
YnRsZS9qd2staW1wb3J0LXVzZS12YWx1ZXMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvandrLWltcG9ydC11c2UtdmFsdWVzLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMTYzMTMzKQorKysgTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9qd2staW1w
b3J0LXVzZS12YWx1ZXMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0zLDU0ICszLDUw
IEBAIFRlc3QgaW1wb3J0aW5nIGtleXMgd2l0aCB2YXJpb3VzIHVzZXMgZnIKIE9uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KIAogCi1lbmNvbmx5OgorUEFTUyB0ZXN0V2l0aEFFU0NCQyhbImVuY3J5
cHQiXSwge2tleV9vcHM6IFsiZW5jcnlwdCIsICJlbmNyeXB0Il19KSB0aHJldyBleGNlcHRpb24g
VHlwZUVycm9yOiBKV0sga2V5X29wcyBjb250YWlucyBhIGR1cGxpY2F0ZSBvcGVyYXRpb24uCisK
K3sia2V5X29wcyI6WyJlbmNyeXB0Il19OgogUEFTUyBrZXkudXNhZ2VzIGlzIFsiZW5jcnlwdCJd
CiAKLWRlY29ubHk6Cit7ImtleV9vcHMiOlsiZGVjcnlwdCJdfToKIFBBU1Mga2V5LnVzYWdlcyBp
cyBbImRlY3J5cHQiXQogCi1lbmNvbmx5LGRlY29ubHk6Cit7ImtleV9vcHMiOlsiZW5jcnlwdCIs
ImRlY3J5cHQiXX06CiBQQVNTIGtleS51c2FnZXMgaXMgWyJkZWNyeXB0IiwiZW5jcnlwdCJdCiAK
LXdyYXA6Cit7ImtleV9vcHMiOlsid3JhcCJdfToKIFBBU1Mga2V5LnVzYWdlcyBpcyBbIndyYXBL
ZXkiXQogCi11bndyYXA6Cit7ImtleV9vcHMiOlsidW53cmFwIl19OgogUEFTUyBrZXkudXNhZ2Vz
IGlzIFsidW53cmFwS2V5Il0KIAotd3JhcCx1bndyYXA6Cit7ImtleV9vcHMiOlsid3JhcCIsInVu
d3JhcCJdfToKIFBBU1Mga2V5LnVzYWdlcyBpcyBbInVud3JhcEtleSIsIndyYXBLZXkiXQogCi1l
bmNvbmx5LGRlY29ubHksd3JhcDoKK3sia2V5X29wcyI6WyJlbmNyeXB0IiwiZGVjcnlwdCIsIndy
YXAiXX06CiBQQVNTIGtleS51c2FnZXMgaXMgWyJkZWNyeXB0IiwiZW5jcnlwdCIsIndyYXBLZXki
XQogCi1lbmM6Cit7InVzZSI6ImVuYyJ9OgogUEFTUyBrZXkudXNhZ2VzIGlzIFsiZGVjcnlwdCIs
ImVuY3J5cHQiLCJ1bndyYXBLZXkiLCJ3cmFwS2V5Il0KIAotc2lnb25seToKK3sia2V5X29wcyI6
WyJzaWduIl19OgogUEFTUyBrZXkudXNhZ2VzIGlzIFsic2lnbiJdCiAKLXZmeW9ubHk6Cit7Imtl
eV9vcHMiOlsidmVyaWZ5Il19OgogUEFTUyBrZXkudXNhZ2VzIGlzIFsidmVyaWZ5Il0KIAotc2ln
OgoreyJ1c2UiOiJzaWcifToKIFBBU1Mga2V5LnVzYWdlcyBpcyBbInNpZ24iLCJ2ZXJpZnkiXQog
Ci0nZW5jb25seSc6Cit7ImtleV9vcHMiOlsiJ2VuY3J5cHQnIl19OgogUEFTUyBrZXkudXNhZ2Vz
IGlzIFtdCiAKLWVuY29ubHkgOgoreyJrZXlfb3BzIjpbImVuY3J5cHQgIl19OgogUEFTUyBrZXku
dXNhZ2VzIGlzIFtdCiAKLUVuY09ubHk6Cit7ImtleV9vcHMiOlsiRW5jcnlwdCJdfToKIFBBU1Mg
a2V5LnVzYWdlcyBpcyBbXQogCi1lbmNvbmx5LCBkZWNvbmx5OgotUEFTUyBrZXkudXNhZ2VzIGlz
IFsiZW5jcnlwdCJdCi0KLWVuY29ubHksLGRlY29ubHk6Ci1QQVNTIGtleS51c2FnZXMgaXMgWyJk
ZWNyeXB0IiwiZW5jcnlwdCJdCi0KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAog
VEVTVCBDT01QTEVURQpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9qd2staW1wb3J0
LXVzZS12YWx1ZXMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxl
L2p3ay1pbXBvcnQtdXNlLXZhbHVlcy5odG1sCShyZXZpc2lvbiAxNjMxMzMpCisrKyBMYXlvdXRU
ZXN0cy9jcnlwdG8vc3VidGxlL2p3ay1pbXBvcnQtdXNlLXZhbHVlcy5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0yOSw0NyArMjksNjMgQEAgdmFyIGhtYWNLZXlBc0pTT04gPSB7CiAgICAgImsiOiAi
YWhqa24tXzM4N2ZnbnNpYmYyM3FzdmFoamtuLV8zODdmZ25zaWJmMjNxcyIKIH07CiAKLWZ1bmN0
aW9uIHRlc3RXaXRoQUVTQ0JDKGV4cGVjdGVkVXNhZ2VzLCB1c2UpCitmdW5jdGlvbiB0ZXN0V2l0
aEFFU0NCQyhleHBlY3RlZFVzYWdlcywgandrVXNhZ2VzKQogewotICAgIGFlc0tleUFzSlNPTi51
c2UgPSB1c2U7CisgICAgaWYgKGp3a1VzYWdlcy5rZXlfb3BzKSB7CisgICAgICAgIGFlc0tleUFz
SlNPTi5rZXlfb3BzID0gandrVXNhZ2VzLmtleV9vcHM7CisgICAgICAgIGRlbGV0ZSBhZXNLZXlB
c0pTT04udXNlOworICAgIH0gZWxzZSB7CisgICAgICAgIGRlbGV0ZSBhZXNLZXlBc0pTT04ua2V5
X29wczsKKyAgICAgICAgYWVzS2V5QXNKU09OLnVzZSA9IGp3a1VzYWdlcy51c2U7CisgICAgfQor
CiAgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhB
cnJheShKU09OLnN0cmluZ2lmeShhZXNLZXlBc0pTT04pKSwgIkFFUy1DQkMiLCBleHRyYWN0YWJs
ZSwgWyJlbmNyeXB0IiwgImRlY3J5cHQiLCAid3JhcEtleSIsICJ1bndyYXBLZXkiXSkudGhlbihm
dW5jdGlvbihyZXN1bHQpIHsKICAgICAgICAga2V5ID0gcmVzdWx0OwotICAgICAgICBkZWJ1Zyh1
c2UgKyAiOiIpOworICAgICAgICBkZWJ1ZyhKU09OLnN0cmluZ2lmeShqd2tVc2FnZXMpICsgIjoi
KTsKICAgICAgICAgc2hvdWxkQmUoImtleS51c2FnZXMiLCBKU09OLnN0cmluZ2lmeShleHBlY3Rl
ZFVzYWdlcykpOwogICAgICAgICBkZWJ1ZygiIik7CiAgICAgfSk7CiB9CiAKLWZ1bmN0aW9uIHRl
c3RXaXRoSE1BQyhleHBlY3RlZFVzYWdlcywgdXNlKQorZnVuY3Rpb24gdGVzdFdpdGhITUFDKGV4
cGVjdGVkVXNhZ2VzLCBqd2tVc2FnZXMpCiB7Ci0gICAgaG1hY0tleUFzSlNPTi51c2UgPSB1c2U7
CisgICAgaWYgKGp3a1VzYWdlcy5rZXlfb3BzKSB7CisgICAgICAgIGhtYWNLZXlBc0pTT04ua2V5
X29wcyA9IGp3a1VzYWdlcy5rZXlfb3BzOworICAgICAgICBkZWxldGUgaG1hY0tleUFzSlNPTi51
c2U7CisgICAgfSBlbHNlIHsKKyAgICAgICAgZGVsZXRlIGhtYWNLZXlBc0pTT04ua2V5X29wczsK
KyAgICAgICAgaG1hY0tleUFzSlNPTi51c2UgPSBqd2tVc2FnZXMudXNlOworICAgIH0KKwogICAg
IHJldHVybiBjcnlwdG8uc3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4QXJyYXko
SlNPTi5zdHJpbmdpZnkoaG1hY0tleUFzSlNPTikpLCB7bmFtZTogJ2htYWMnLCBoYXNoOiB7bmFt
ZTogJ3NoYS0yNTYnfX0sIGV4dHJhY3RhYmxlLCBbInNpZ24iLCAidmVyaWZ5Il0pLnRoZW4oZnVu
Y3Rpb24ocmVzdWx0KSB7CiAgICAgICAgIGtleSA9IHJlc3VsdDsKLSAgICAgICAgZGVidWcodXNl
ICsgIjoiKTsKKyAgICAgICAgZGVidWcoSlNPTi5zdHJpbmdpZnkoandrVXNhZ2VzKSArICI6Iik7
CiAgICAgICAgIHNob3VsZEJlKCJrZXkudXNhZ2VzIiwgSlNPTi5zdHJpbmdpZnkoZXhwZWN0ZWRV
c2FnZXMpKTsKICAgICAgICAgZGVidWcoIiIpOwogICAgIH0pOwogfQogCisvLyBEdXBsaWNhdGVz
IGFyZSBub3QgYWxsb3dlZC4gV2UgY3VycmVudGx5IHJhaXNlIGFuIGV4Y2VwdGlvbiwgYWx0aG91
Z2ggd2Ugc2hvdWxkIHJlamVjdCB0aGUgcHJvbWlzZSBpbnN0ZWFkLgorc2hvdWxkVGhyb3coJ3Rl
c3RXaXRoQUVTQ0JDKFsiZW5jcnlwdCJdLCB7a2V5X29wczogWyJlbmNyeXB0IiwgImVuY3J5cHQi
XX0pJyk7CitkZWJ1ZygiIik7CisKIFByb21pc2UuYWxsKFsKLSAgICB0ZXN0V2l0aEFFU0NCQyhb
ImVuY3J5cHQiXSwgImVuY29ubHkiKSwKLSAgICB0ZXN0V2l0aEFFU0NCQyhbImRlY3J5cHQiXSwg
ImRlY29ubHkiKSwKLSAgICB0ZXN0V2l0aEFFU0NCQyhbImRlY3J5cHQiLCAiZW5jcnlwdCJdLCAi
ZW5jb25seSxkZWNvbmx5IiksCi0gICAgdGVzdFdpdGhBRVNDQkMoWyJ3cmFwS2V5Il0sICJ3cmFw
IiksCi0gICAgdGVzdFdpdGhBRVNDQkMoWyJ1bndyYXBLZXkiXSwgInVud3JhcCIpLAotICAgIHRl
c3RXaXRoQUVTQ0JDKFsidW53cmFwS2V5IiwgIndyYXBLZXkiXSwgIndyYXAsdW53cmFwIiksCi0g
ICAgdGVzdFdpdGhBRVNDQkMoWyJkZWNyeXB0IiwgImVuY3J5cHQiLCAid3JhcEtleSJdLCAiZW5j
b25seSxkZWNvbmx5LHdyYXAiKSwKLSAgICB0ZXN0V2l0aEFFU0NCQyhbImRlY3J5cHQiLCAiZW5j
cnlwdCIsICJ1bndyYXBLZXkiLCAid3JhcEtleSJdLCAiZW5jIiksCi0gICAgdGVzdFdpdGhITUFD
KFsic2lnbiJdLCAic2lnb25seSIpLAotICAgIHRlc3RXaXRoSE1BQyhbInZlcmlmeSJdLCAidmZ5
b25seSIpLAotICAgIHRlc3RXaXRoSE1BQyhbInNpZ24iLCAidmVyaWZ5Il0sICJzaWciKSwKLQot
Ly8gSW5jb3JyZWN0IHVzZSBzdHJpbmdzLiBUaGVyZSBpcyBjdXJyZW50bHkgbm8gc3BlYyBmb3Ig
d2hhdCB0byBkbywgYnV0IGlnbm9yaW5nIHVua25vd24gdXNlcyBzZWVtcyByaWdodC4KLSAgICB0
ZXN0V2l0aEFFU0NCQyhbXSwgIidlbmNvbmx5JyIpLAotICAgIHRlc3RXaXRoQUVTQ0JDKFtdLCAi
ZW5jb25seSAiKSwKLSAgICB0ZXN0V2l0aEFFU0NCQyhbXSwgIkVuY09ubHkiKSwKLSAgICB0ZXN0
V2l0aEFFU0NCQyhbImVuY3J5cHQiXSwgImVuY29ubHksIGRlY29ubHkiKSwKLSAgICB0ZXN0V2l0
aEFFU0NCQyhbImRlY3J5cHQiLCJlbmNyeXB0Il0sICJlbmNvbmx5LCxkZWNvbmx5IiksCisgICAg
dGVzdFdpdGhBRVNDQkMoWyJlbmNyeXB0Il0sIHtrZXlfb3BzOiBbImVuY3J5cHQiXX0pLAorICAg
IHRlc3RXaXRoQUVTQ0JDKFsiZGVjcnlwdCJdLCB7a2V5X29wczogWyJkZWNyeXB0Il19KSwKKyAg
ICB0ZXN0V2l0aEFFU0NCQyhbImRlY3J5cHQiLCAiZW5jcnlwdCJdLCB7a2V5X29wczogWyJlbmNy
eXB0IiwgImRlY3J5cHQiXX0pLAorICAgIHRlc3RXaXRoQUVTQ0JDKFsid3JhcEtleSJdLCB7a2V5
X29wczogWyJ3cmFwIl19KSwKKyAgICB0ZXN0V2l0aEFFU0NCQyhbInVud3JhcEtleSJdLCB7a2V5
X29wczogWyJ1bndyYXAiXX0pLAorICAgIHRlc3RXaXRoQUVTQ0JDKFsidW53cmFwS2V5IiwgIndy
YXBLZXkiXSwge2tleV9vcHM6IFsid3JhcCIsICJ1bndyYXAiXX0pLAorICAgIHRlc3RXaXRoQUVT
Q0JDKFsiZGVjcnlwdCIsICJlbmNyeXB0IiwgIndyYXBLZXkiXSwge2tleV9vcHM6IFsiZW5jcnlw
dCIsICJkZWNyeXB0IiwgIndyYXAiXX0pLAorICAgIHRlc3RXaXRoQUVTQ0JDKFsiZGVjcnlwdCIs
ICJlbmNyeXB0IiwgInVud3JhcEtleSIsICJ3cmFwS2V5Il0sIHt1c2U6ICJlbmMifSksCisgICAg
dGVzdFdpdGhITUFDKFsic2lnbiJdLCB7a2V5X29wczogWyJzaWduIl19KSwKKyAgICB0ZXN0V2l0
aEhNQUMoWyJ2ZXJpZnkiXSwge2tleV9vcHM6IFsidmVyaWZ5Il19KSwKKyAgICB0ZXN0V2l0aEhN
QUMoWyJzaWduIiwgInZlcmlmeSJdLCB7dXNlOiAic2lnIn0pLAorCisvLyBVbmtub3duIGtleV9v
cHMgc3RyaW5ncyBhcmUgaWdub3JlZC4KKyAgICB0ZXN0V2l0aEFFU0NCQyhbXSwge2tleV9vcHM6
IFsiJ2VuY3J5cHQnIl19KSwKKyAgICB0ZXN0V2l0aEFFU0NCQyhbXSwge2tleV9vcHM6IFsiZW5j
cnlwdCAiXX0pLAorICAgIHRlc3RXaXRoQUVTQ0JDKFtdLCB7a2V5X29wczogWyJFbmNyeXB0Il19
KSwKIAogXSkudGhlbihmdW5jdGlvbigpIHsgZmluaXNoSlNUZXN0KCk7IH0gKTsKIDwvc2NyaXB0
PgpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2EtZXhwb3J0LWtleS1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2EtZXhwb3J0
LWtleS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE2MzEzMykKKysrIExheW91dFRlc3RzL2NyeXB0
by9zdWJ0bGUvcnNhLWV4cG9ydC1rZXktZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0x
Nyw3ICsxNyw4IEBAIFBBU1MgZXhwb3J0ZWRKV0subiBpcyBwdWJsaWNLZXlKU09OLm4KIFBBU1Mg
ZXhwb3J0ZWRKV0suZSBpcyBwdWJsaWNLZXlKU09OLmUKIFBBU1MgZXhwb3J0ZWRKV0suYWxnIGlz
ICdSUzI1NicKIFBBU1MgZXhwb3J0ZWRKV0suZXh0IGlzIHRydWUKLVBBU1MgZXhwb3J0ZWRKV0su
dXNlIGlzICdzaWcnCitQQVNTIGV4cG9ydGVkSldLLnVzZSBpcyB1bmRlZmluZWQKK1BBU1MgZXhw
b3J0ZWRKV0sua2V5X29wcyBpcyBbJ3NpZ24nLCAndmVyaWZ5J10KIFBBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRv
L3N1YnRsZS9yc2EtZXhwb3J0LWtleS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Ny
eXB0by9zdWJ0bGUvcnNhLWV4cG9ydC1rZXkuaHRtbAkocmV2aXNpb24gMTYzMTMzKQorKysgTGF5
b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2EtZXhwb3J0LWtleS5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC00NSw3ICs0NSw4IEBAIGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBqd2tLZXlB
c0EKICAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0suZSIsICJwdWJsaWNLZXlKU09OLmUiKTsKICAg
ICBzaG91bGRCZSgiZXhwb3J0ZWRKV0suYWxnIiwgIidSUzI1NiciKTsKICAgICBzaG91bGRCZSgi
ZXhwb3J0ZWRKV0suZXh0IiwgInRydWUiKTsKLSAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0sudXNl
IiwgIidzaWcnIik7CisgICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLnVzZSIsICJ1bmRlZmluZWQi
KTsKKyAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0sua2V5X29wcyIsICJbJ3NpZ24nLCAndmVyaWZ5
J10iKTsKIAogICAgIGZpbmlzaEpTVGVzdCgpOwogfSk7CkluZGV4OiBMYXlvdXRUZXN0cy9jcnlw
dG8vc3VidGxlL3JzYS1leHBvcnQtcHJpdmF0ZS1rZXktZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNhLWV4cG9ydC1wcml2YXRlLWtleS1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDE2MzEzMykKKysrIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUv
cnNhLWV4cG9ydC1wcml2YXRlLWtleS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTE5
LDcgKzE5LDggQEAgUEFTUyBleHBvcnRlZEpXSy5xaSBpcyBwcml2YXRlS2V5SlNPTi5xaQogUEFT
UyBleHBvcnRlZEpXSy5vdGggaXMgcHJpdmF0ZUtleUpTT04ub3RoCiBQQVNTIGV4cG9ydGVkSldL
LmFsZyBpcyBwcml2YXRlS2V5SlNPTi5hbGcKIFBBU1MgZXhwb3J0ZWRKV0suZXh0IGlzIHRydWUK
LVBBU1MgZXhwb3J0ZWRKV0sudXNlIGlzICdzaWcnCitQQVNTIGV4cG9ydGVkSldLLmtleV9vcHMg
aXMgWydzaWduJywgJ3ZlcmlmeSddCitQQVNTIGV4cG9ydGVkSldLLnVzZSBpcyB1bmRlZmluZWQK
IFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpJbmRleDog
TGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2EtZXhwb3J0LXByaXZhdGUta2V5Lmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2EtZXhwb3J0LXByaXZhdGUt
a2V5Lmh0bWwJKHJldmlzaW9uIDE2MzEzMykKKysrIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUv
cnNhLWV4cG9ydC1wcml2YXRlLWtleS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC01Myw3ICs1Myw4
IEBAIGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBqd2tLZXlBc0EKICAgICBzaG91bGRC
ZSgiZXhwb3J0ZWRKV0sub3RoIiwgInByaXZhdGVLZXlKU09OLm90aCIpOwogICAgIHNob3VsZEJl
KCJleHBvcnRlZEpXSy5hbGciLCAicHJpdmF0ZUtleUpTT04uYWxnIik7CiAgICAgc2hvdWxkQmUo
ImV4cG9ydGVkSldLLmV4dCIsICJ0cnVlIik7Ci0gICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLnVz
ZSIsICInc2lnJyIpOworICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5rZXlfb3BzIiwgIlsnc2ln
bicsICd2ZXJpZnknXSIpOworICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy51c2UiLCAidW5kZWZp
bmVkIik7CiAKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0pOwpJbmRleDogTGF5b3V0VGVzdHMvY3J5
cHRvL3N1YnRsZS9yc2Etb2FlcC1rZXktbWFuaXB1bGF0aW9uLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYS1vYWVwLWtleS1tYW5pcHVsYXRp
b24tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxNjMxMzMpCisrKyBMYXlvdXRUZXN0cy9jcnlwdG8v
c3VidGxlL3JzYS1vYWVwLWtleS1tYW5pcHVsYXRpb24tZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNv
cHkpCkBAIC0yNyw3ICsyNyw4IEBAIFBBU1MgUHJvbWlzZSByZWplY3RlZCBmb3IgZXhwb3J0aW5n
IHByaXYKIEV4cG9ydGluZyBwdWJsaWMga2V5IHRvIEpXSy4uLgogUEFTUyBqd2tQdWJsaWNLZXku
YWxnIGlzICdSU0EtT0FFUCcKIFBBU1MgandrUHVibGljS2V5LmV4dCBpcyB0cnVlCi1QQVNTIGp3
a1B1YmxpY0tleS51c2UgaXMgJ2VuYycKK1BBU1MgandrUHVibGljS2V5LmtleV9vcHMgaXMgWydl
bmNyeXB0JywgJ2RlY3J5cHQnLCAnd3JhcCcsICd1bndyYXAnXQorUEFTUyBqd2tQdWJsaWNLZXku
dXNlIGlzIHVuZGVmaW5lZAogUEFTUyBqd2tQdWJsaWNLZXkua3R5IGlzICdSU0EnCiBQQVNTIGJ5
dGVzVG9IZXhTdHJpbmcoQmFzZTY0VVJMLnBhcnNlKGp3a1B1YmxpY0tleS5lKSkgaXMgJzAxMDAw
MScKIApJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2Etb2FlcC1rZXktbWFuaXB1
bGF0aW9uLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2Et
b2FlcC1rZXktbWFuaXB1bGF0aW9uLmh0bWwJKHJldmlzaW9uIDE2MzEzMykKKysrIExheW91dFRl
c3RzL2NyeXB0by9zdWJ0bGUvcnNhLW9hZXAta2V5LW1hbmlwdWxhdGlvbi5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC01Niw3ICs1Niw4IEBAIGNyeXB0by5zdWJ0bGUuZ2VuZXJhdGVLZXkoYWxnb3Jp
dGhtS2V5R2UKICAgICBqd2tQdWJsaWNLZXkgPSBKU09OLnBhcnNlKGJ5dGVzVG9BU0NJSVN0cmlu
Zyhqd2tQdWJsaWNLZXlBcnJheSkpOwogICAgIHNob3VsZEJlKCJqd2tQdWJsaWNLZXkuYWxnIiwg
IidSU0EtT0FFUCciKTsKICAgICBzaG91bGRCZSgiandrUHVibGljS2V5LmV4dCIsICJ0cnVlIik7
Ci0gICAgc2hvdWxkQmUoImp3a1B1YmxpY0tleS51c2UiLCAiJ2VuYyciKTsKKyAgICBzaG91bGRC
ZSgiandrUHVibGljS2V5LmtleV9vcHMiLCAiWydlbmNyeXB0JywgJ2RlY3J5cHQnLCAnd3JhcCcs
ICd1bndyYXAnXSIpOworICAgIHNob3VsZEJlKCJqd2tQdWJsaWNLZXkudXNlIiwgInVuZGVmaW5l
ZCIpOwogICAgIHNob3VsZEJlKCJqd2tQdWJsaWNLZXkua3R5IiwgIidSU0EnIik7CiAgICAgc2hv
dWxkQmUoImJ5dGVzVG9IZXhTdHJpbmcoQmFzZTY0VVJMLnBhcnNlKGp3a1B1YmxpY0tleS5lKSki
LCAiJzAxMDAwMSciKTsKIApJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2EtcG9z
dE1lc3NhZ2UtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NyeXB0by9z
dWJ0bGUvcnNhLXBvc3RNZXNzYWdlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTYzMTMzKQorKysg
TGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2EtcG9zdE1lc3NhZ2UtZXhwZWN0ZWQudHh0CSh3
b3JraW5nIGNvcHkpCkBAIC0xNSw3ICsxNSw4IEBAIEV4cG9ydGVkIGJhY2sgdG8gSldLOgogUEFT
UyBleHBvcnRlZEpXSy5rdHkgaXMgJ1JTQScKIFBBU1MgZXhwb3J0ZWRKV0suYWxnIGlzICdSUzI1
NicKIFBBU1MgZXhwb3J0ZWRKV0suZXh0IGlzIHRydWUKLVBBU1MgZXhwb3J0ZWRKV0sudXNlIGlz
ICdzaWcnCitQQVNTIGV4cG9ydGVkSldLLmtleV9vcHMgaXMgWydzaWduJywndmVyaWZ5J10KK1BB
U1MgZXhwb3J0ZWRKV0sudXNlIGlzIHVuZGVmaW5lZAogUEFTUyBleHBvcnRlZEpXSy5uIGlzIHBy
aXZhdGVLZXlKU09OLm4KIFBBU1MgZXhwb3J0ZWRKV0suZSBpcyBwcml2YXRlS2V5SlNPTi5lCiBQ
QVNTIGV4cG9ydGVkSldLLmQgaXMgcHJpdmF0ZUtleUpTT04uZApJbmRleDogTGF5b3V0VGVzdHMv
Y3J5cHRvL3N1YnRsZS9yc2EtcG9zdE1lc3NhZ2UuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9jcnlwdG8vc3VidGxlL3JzYS1wb3N0TWVzc2FnZS5odG1sCShyZXZpc2lvbiAxNjMxMzMp
CisrKyBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYS1wb3N0TWVzc2FnZS5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC00MSw3ICs0MSw4IEBAIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNz
YWdlIiwgZnVuY3QKICAgICAgICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLmt0eSIsICInUlNBJyIp
OwogICAgICAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0suYWxnIiwgIidSUzI1NiciKTsKICAgICAg
ICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLmV4dCIsICJ0cnVlIik7Ci0gICAgICAgIHNob3VsZEJl
KCJleHBvcnRlZEpXSy51c2UiLCAiJ3NpZyciKTsKKyAgICAgICAgc2hvdWxkQmUoImV4cG9ydGVk
SldLLmtleV9vcHMiLCAiWydzaWduJywndmVyaWZ5J10iKTsKKyAgICAgICAgc2hvdWxkQmUoImV4
cG9ydGVkSldLLnVzZSIsICJ1bmRlZmluZWQiKTsKICAgICAgICAgc2hvdWxkQmUoImV4cG9ydGVk
SldLLm4iLCAicHJpdmF0ZUtleUpTT04ubiIpOwogICAgICAgICBzaG91bGRCZSgiZXhwb3J0ZWRK
V0suZSIsICJwcml2YXRlS2V5SlNPTi5lIik7CiAgICAgICAgIHNob3VsZEJlKCJleHBvcnRlZEpX
Sy5kIiwgInByaXZhdGVLZXlKU09OLmQiKTsKSW5kZXg6IExheW91dFRlc3RzL2NyeXB0by9zdWJ0
bGUvcnNhc3NhLXBrY3MxLXYxXzUtZ2VuZXJhdGUta2V5LXdpdGgtbGVhZGluZy16ZXJvZXMtaW4t
ZXhwb25lbnQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NyeXB0by9z
dWJ0bGUvcnNhc3NhLXBrY3MxLXYxXzUtZ2VuZXJhdGUta2V5LXdpdGgtbGVhZGluZy16ZXJvZXMt
aW4tZXhwb25lbnQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxNjMxMzMpCisrKyBMYXlvdXRUZXN0
cy9jcnlwdG8vc3VidGxlL3JzYXNzYS1wa2NzMS12MV81LWdlbmVyYXRlLWtleS13aXRoLWxlYWRp
bmctemVyb2VzLWluLWV4cG9uZW50LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwx
NiArMCwwIEBACi1UZXN0IGdlbmVyYXRpbmcgYW4gUlNBIGtleSBwYWlyIGZvciBSU0FTU0EtUEtD
UzEtdjFfNSB3aGVuIGV4cG9uZW50IGhhcyBsZWFkaW5nIHplcm9lcy4KLQotT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgotCi0KLUdlbmVyYXRpbmcgYSBrZXkgcGFpci4uLgotUEFTUyBrZXlQYWly
LnRvU3RyaW5nKCkgaXMgJ1tvYmplY3QgS2V5UGFpcl0nCi1QQVNTIGtleVBhaXIucHVibGljS2V5
LnR5cGUgaXMgJ3B1YmxpYycKLVBBU1Mga2V5UGFpci5wdWJsaWNLZXkuYWxnb3JpdGhtLm5hbWUg
aXMgJ1JTQVNTQS1QS0NTMS12MV81JwotUEFTUyBrZXlQYWlyLnB1YmxpY0tleS5hbGdvcml0aG0u
bW9kdWx1c0xlbmd0aCBpcyAyMDQ4Ci1QQVNTIGJ5dGVzVG9IZXhTdHJpbmcoa2V5UGFpci5wdWJs
aWNLZXkuYWxnb3JpdGhtLnB1YmxpY0V4cG9uZW50KSBpcyAnMDEwMDAxJwotUEFTUyBieXRlc1Rv
SGV4U3RyaW5nKGtleVBhaXIucHJpdmF0ZUtleS5hbGdvcml0aG0ucHVibGljRXhwb25lbnQpIGlz
ICcwMTAwMDEnCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExF
VEUKLQpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2Fzc2EtcGtjczEtdjFfNS1n
ZW5lcmF0ZS1rZXktd2l0aC1sZWFkaW5nLXplcm9lcy1pbi1leHBvbmVudC5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNhc3NhLXBrY3MxLXYxXzUtZ2VuZXJh
dGUta2V5LXdpdGgtbGVhZGluZy16ZXJvZXMtaW4tZXhwb25lbnQuaHRtbAkocmV2aXNpb24gMTYz
MTMzKQorKysgTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2Fzc2EtcGtjczEtdjFfNS1nZW5l
cmF0ZS1rZXktd2l0aC1sZWFkaW5nLXplcm9lcy1pbi1leHBvbmVudC5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDQwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9InJlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+
Ci08cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotCi08
c2NyaXB0PgotZGVzY3JpcHRpb24oIlRlc3QgZ2VuZXJhdGluZyBhbiBSU0Ega2V5IHBhaXIgZm9y
IFJTQVNTQS1QS0NTMS12MV81IHdoZW4gZXhwb25lbnQgaGFzIGxlYWRpbmcgemVyb2VzLiIpOwot
Ci1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotdmFyIGFsZ29yaXRobUtleUdlbiA9IHsKLSAgICBu
YW1lOiAiUlNBU1NBLVBLQ1MxLXYxXzUiLAotICAgIC8vIFJzYUtleUdlblBhcmFtcwotICAgIG1v
ZHVsdXNMZW5ndGg6IDIwNDgsCi0gICAgcHVibGljRXhwb25lbnQ6IG5ldyBVaW50OEFycmF5KFsw
eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAxLCAweDAwLCAweDAxXSksICAvLyBFcXVp
dmFsZW50IHRvIDY1NTM3Ci19OwotdmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsKLQotZGVidWcoIkdl
bmVyYXRpbmcgYSBrZXkgcGFpci4uLiIpOwotY3J5cHRvLnN1YnRsZS5nZW5lcmF0ZUtleShhbGdv
cml0aG1LZXlHZW4sIGV4dHJhY3RhYmxlLCBbInNpZ24iLCAidmVyaWZ5Il0pLnRoZW4oZnVuY3Rp
b24ocmVzdWx0KSB7Ci0gICAga2V5UGFpciA9IHJlc3VsdDsKLSAgICBzaG91bGRCZSgia2V5UGFp
ci50b1N0cmluZygpIiwgIidbb2JqZWN0IEtleVBhaXJdJyIpOwotICAgIHNob3VsZEJlKCJrZXlQ
YWlyLnB1YmxpY0tleS50eXBlIiwgIidwdWJsaWMnIik7Ci0gICAgc2hvdWxkQmUoImtleVBhaXIu
cHVibGljS2V5LmFsZ29yaXRobS5uYW1lIiwgIidSU0FTU0EtUEtDUzEtdjFfNSciKTsKLSAgICBz
aG91bGRCZSgia2V5UGFpci5wdWJsaWNLZXkuYWxnb3JpdGhtLm1vZHVsdXNMZW5ndGgiLCAiMjA0
OCIpOwotICAgIHNob3VsZEJlKCJieXRlc1RvSGV4U3RyaW5nKGtleVBhaXIucHVibGljS2V5LmFs
Z29yaXRobS5wdWJsaWNFeHBvbmVudCkiLCAiJzAxMDAwMSciKTsKLSAgICBzaG91bGRCZSgiYnl0
ZXNUb0hleFN0cmluZyhrZXlQYWlyLnByaXZhdGVLZXkuYWxnb3JpdGhtLnB1YmxpY0V4cG9uZW50
KSIsICInMDEwMDAxJyIpOwotCi0gICAgZmluaXNoSlNUZXN0KCk7Ci19KTsKLTwvc2NyaXB0Pgot
Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Ci08L2JvZHk+Ci08L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222862</attachid>
            <date>2014-01-31 16:08:07 -0800</date>
            <delta_ts>2014-02-01 10:09:33 -0800</delta_ts>
            <desc>proposed fix</desc>
            <filename>KeyOps.txt</filename>
            <type>text/plain</type>
            <size>38901</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2MzIxNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBACisyMDE0LTAxLTMxICBBbGV4ZXkg
UHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIFVwZGF0ZSBXZWJDcnlwdG8g
SldLIG1hcHBpbmcgdG8gdXNlIGtleV9vcHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEyNzYwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFVwZGF0ZWQgSldLIHN1cHBvcnQgb3QgbWF0Y2ggY3VycmVudCBl
ZGl0b3IgZHJhZnQuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0NyeXB0b0tleVNlcmlhbGl6
YXRpb25KV0suY3BwOgorICAgICAgICAoV2ViQ29yZTo6Z2V0SlNBcnJheUZyb21KU09OKTogRml4
ZWQgdGhpcyBwcmV2aW91c2x5IHVudGVzdGVkIGZ1bmN0aW9uIHRvIGFjdHVhbGx5IHdvcmsuCisg
ICAgICAgIChXZWJDb3JlOjp0cnlKV0tLZXlPcHNWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpK
U0NyeXB0b0tleVNlcmlhbGl6YXRpb25KV0s6OnJlY29uY2lsZVVzYWdlcyk6CisgICAgICAgIChX
ZWJDb3JlOjpKU0NyeXB0b0tleVNlcmlhbGl6YXRpb25KV0s6OnJlY29uY2lsZUV4dHJhY3RhYmxl
KTogUmVtb3ZlZCBhbiBvbGQgY29tbWVudCwKKyAgICAgICAgdGhlc2UgdGhpbmdzIGFyZSBub3cg
c3BlY2NlZC4KKyAgICAgICAgKFdlYkNvcmU6OmFkZFRvSlNPTik6IE1hZGUgc3RhdGljIGZ1bmN0
aW9ucyBmaWxlIHN0YXRpYywgdGhlcmUgaXMgbm8gcmVhc29uIGZvcgorICAgICAgICB0aGVtIHRv
IGJlIGNsYXNzIG1lbWJlcnMuCisgICAgICAgIChXZWJDb3JlOjpidWlsZEpTT05Gb3JPY3RldFNl
cXVlbmNlKToKKyAgICAgICAgKFdlYkNvcmU6OmJ1aWxkSlNPTkZvclJTQUNvbXBvbmVudHMpOgor
ICAgICAgICAoV2ViQ29yZTo6YWRkQm9vbFRvSlNPTik6CisgICAgICAgIChXZWJDb3JlOjphZGRK
V0tBbGdvcml0aG1Ub0pTT04pOgorICAgICAgICAoV2ViQ29yZTo6YWRkVXNhZ2VzVG9KU09OKToK
KyAgICAgICAgKFdlYkNvcmU6OkpTQ3J5cHRvS2V5U2VyaWFsaXphdGlvbkpXSzo6c2VyaWFsaXpl
KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0NyeXB0b0tleVNlcmlhbGl6YXRpb25KV0suaDoK
KworICAgICAgICAqIGNyeXB0by9tYWMvQ3J5cHRvQWxnb3JpdGhtQUVTX0tXTWFjLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobUFFU19LVzo6cGxhdGZvcm1FbmNyeXB0KToK
KyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobUFFU19LVzo6cGxhdGZvcm1EZWNyeXB0
KToKKyAgICAgICAgQ2hlY2sgZm9yIGxlbmd0aCwgc28gdGhhdCB3ZSBkb24ndCBmYWlsIHNpbGVu
dGx5LgorCiAyMDE0LTAxLTMxICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29t
PgogCiAgICAgICAgIEV2ZW4gd2hlbiBpbiBmaXhlZCBsYXlvdXQgbW9kZSwgc29tZSBwbGF0Zm9y
bXMgbmVlZCB0byBkbyBsYXlvdXQgYWZ0ZXIgYSB2aWV3cG9ydCBjaGFuZ2UKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3J5cHRvS2V5U2VyaWFsaXphdGlvbkpXSy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDcnlwdG9LZXlTZXJpYWxp
emF0aW9uSldLLmNwcAkocmV2aXNpb24gMTYzMDIzKQorKysgU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNDcnlwdG9LZXlTZXJpYWxpemF0aW9uSldLLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NjAsNyArNjAsNyBAQCBzdGF0aWMgYm9vbCBnZXRKU0FycmF5RnJvbUpTT04oRXhlY1N0YXRlCiAK
ICAgICBKU1ZhbHVlIHZhbHVlID0gc2xvdC5nZXRWYWx1ZShleGVjLCBpZGVudGlmaWVyKTsKICAg
ICBBU1NFUlQoIWV4ZWMtPmhhZEV4Y2VwdGlvbigpKTsKLSAgICBpZiAoaXNKU0FycmF5KHZhbHVl
KSkgeworICAgIGlmICghaXNKU0FycmF5KHZhbHVlKSkgewogICAgICAgICB0aHJvd1R5cGVFcnJv
cihleGVjLCBTdHJpbmc6OmZvcm1hdCgiRXhwZWN0ZWQgYW4gYXJyYXkgZm9yIFwiJXNcIiBKU09O
IGtleSIsICBrZXkpKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTI0OCw0MCAr
MjQ4LDY3IEBAIGJvb2wgSlNDcnlwdG9LZXlTZXJpYWxpemF0aW9uSldLOjpyZWNvbmMKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBKU0NyeXB0b0tleVNlcmlhbGl6YXRpb25KV0s6OnJlY29u
Y2lsZVVzYWdlcyhDcnlwdG9LZXlVc2FnZSYgc3VnZ2VzdGVkVXNhZ2VzKSBjb25zdAorc3RhdGlj
IGJvb2wgdHJ5SldLS2V5T3BzVmFsdWUoRXhlY1N0YXRlKiBleGVjLCBDcnlwdG9LZXlVc2FnZSYg
dXNhZ2VzLCBjb25zdCBTdHJpbmcmIG9wZXJhdGlvbiwgY29uc3QgU3RyaW5nJiB0cnlPcGVyYXRp
b24sIENyeXB0b0tleVVzYWdlIHRyeVVzYWdlKQogewotICAgIFN0cmluZyBqd2tVc2VTdHJpbmc7
Ci0gICAgaWYgKCFnZXRTdHJpbmdGcm9tSlNPTihtX2V4ZWMsIG1fanNvbi5nZXQoKSwgInVzZSIs
IGp3a1VzZVN0cmluZykpIHsKLSAgICAgICAgLy8gInVzZSIgaXMgb3B0aW9uYWwgaW4gSldLLgot
ICAgICAgICByZXR1cm47CisgICAgaWYgKG9wZXJhdGlvbiA9PSB0cnlPcGVyYXRpb24pIHsKKyAg
ICAgICAgaWYgKHVzYWdlcyAmIHRyeVVzYWdlKSB7CisgICAgICAgICAgICB0aHJvd1R5cGVFcnJv
cihleGVjLCAiSldLIGtleV9vcHMgY29udGFpbnMgYSBkdXBsaWNhdGUgb3BlcmF0aW9uIik7Cisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgdXNhZ2VzIHw9IHRy
eVVzYWdlOwogICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KIAotICAgIC8vIEltcGxlbWVudGVk
IGFjY29yZGluZyB0byBhIHByb3Bvc2FsIGluIDxodHRwczovL3d3dy53My5vcmcvQnVncy9QdWJs
aWMvc2hvd19idWcuY2dpP2lkPTIzNzk2Pi4KLSAgICBWZWN0b3I8U3RyaW5nPiBqd2tVc2FnZVZh
bHVlczsKLSAgICBqd2tVc2VTdHJpbmcuc3BsaXQoJywnLCBqd2tVc2FnZVZhbHVlcyk7Cit2b2lk
IEpTQ3J5cHRvS2V5U2VyaWFsaXphdGlvbkpXSzo6cmVjb25jaWxlVXNhZ2VzKENyeXB0b0tleVVz
YWdlJiBzdWdnZXN0ZWRVc2FnZXMpIGNvbnN0Cit7CiAgICAgQ3J5cHRvS2V5VXNhZ2UgandrVXNh
Z2VzID0gMDsKLSAgICBmb3IgKHNpemVfdCBpID0gMCwgc2l6ZSA9IGp3a1VzYWdlVmFsdWVzLnNp
emUoKTsgaSA8IHNpemU7ICsraSkgewotICAgICAgICBTdHJpbmcgandrVXNlID0gandrVXNhZ2VW
YWx1ZXNbaV07Ci0gICAgICAgIGlmIChqd2tVc2UgPT0gInNpZyIpCi0gICAgICAgICAgICBqd2tV
c2FnZXMgfD0gKENyeXB0b0tleVVzYWdlU2lnbiB8IENyeXB0b0tleVVzYWdlVmVyaWZ5KTsKLSAg
ICAgICAgZWxzZSBpZiAoandrVXNlID09ICJlbmMiKQorCisgICAgSlNBcnJheSoga2V5T3BzOwor
ICAgIGlmIChnZXRKU0FycmF5RnJvbUpTT04obV9leGVjLCBtX2pzb24uZ2V0KCksICJrZXlfb3Bz
Iiwga2V5T3BzKSkgeworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGtleU9wcy0+bGVu
Z3RoKCk7ICsraSkgeworICAgICAgICAgICAgSlNWYWx1ZSBqc1ZhbHVlID0ga2V5T3BzLT5nZXRJ
bmRleChtX2V4ZWMsIGkpOworICAgICAgICAgICAgU3RyaW5nIG9wZXJhdGlvbjsKKyAgICAgICAg
ICAgIGlmICghanNWYWx1ZS5nZXRTdHJpbmcobV9leGVjLCBvcGVyYXRpb24pKSB7CisgICAgICAg
ICAgICAgICAgaWYgKCFtX2V4ZWMtPmhhZEV4Y2VwdGlvbigpKQorICAgICAgICAgICAgICAgICAg
ICB0aHJvd1R5cGVFcnJvcihtX2V4ZWMsICJKV0sga2V5X29wcyBhdHRyaWJ1dGUgY291bGQgbm90
IGJlIHByb2Nlc3NlZCIpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIGlmICghdHJ5SldLS2V5T3BzVmFsdWUobV9leGVjLCBqd2tVc2FnZXMsIG9w
ZXJhdGlvbiwgQVNDSUlMaXRlcmFsKCJzaWduIiksIENyeXB0b0tleVVzYWdlU2lnbikpCisgICAg
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgaWYgKCF0cnlKV0tLZXlPcHNWYWx1ZSht
X2V4ZWMsIGp3a1VzYWdlcywgb3BlcmF0aW9uLCBBU0NJSUxpdGVyYWwoInZlcmlmeSIpLCBDcnlw
dG9LZXlVc2FnZVZlcmlmeSkpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAg
aWYgKCF0cnlKV0tLZXlPcHNWYWx1ZShtX2V4ZWMsIGp3a1VzYWdlcywgb3BlcmF0aW9uLCBBU0NJ
SUxpdGVyYWwoImVuY3J5cHQiKSwgQ3J5cHRvS2V5VXNhZ2VFbmNyeXB0KSkKKyAgICAgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgICAgICBpZiAoIXRyeUpXS0tleU9wc1ZhbHVlKG1fZXhlYywg
andrVXNhZ2VzLCBvcGVyYXRpb24sIEFTQ0lJTGl0ZXJhbCgiZGVjcnlwdCIpLCBDcnlwdG9LZXlV
c2FnZURlY3J5cHQpKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIGlmICgh
dHJ5SldLS2V5T3BzVmFsdWUobV9leGVjLCBqd2tVc2FnZXMsIG9wZXJhdGlvbiwgQVNDSUlMaXRl
cmFsKCJ3cmFwIiksIENyeXB0b0tleVVzYWdlV3JhcEtleSkpCisgICAgICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAgICAgaWYgKCF0cnlKV0tLZXlPcHNWYWx1ZShtX2V4ZWMsIGp3a1VzYWdl
cywgb3BlcmF0aW9uLCBBU0NJSUxpdGVyYWwoInVud3JhcCIpLCBDcnlwdG9LZXlVc2FnZVVud3Jh
cEtleSkpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgaWYgKCF0cnlKV0tL
ZXlPcHNWYWx1ZShtX2V4ZWMsIGp3a1VzYWdlcywgb3BlcmF0aW9uLCBBU0NJSUxpdGVyYWwoImRl
cml2ZUtleSIpLCBDcnlwdG9LZXlVc2FnZURlcml2ZUtleSkpCisgICAgICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAgICAgaWYgKCF0cnlKV0tLZXlPcHNWYWx1ZShtX2V4ZWMsIGp3a1VzYWdl
cywgb3BlcmF0aW9uLCBBU0NJSUxpdGVyYWwoImRlcml2ZUJpdHMiKSwgQ3J5cHRvS2V5VXNhZ2VE
ZXJpdmVCaXRzKSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9IGVs
c2UgeworICAgICAgICBpZiAobV9leGVjLT5oYWRFeGNlcHRpb24oKSkKKyAgICAgICAgICAgIHJl
dHVybjsKKworICAgICAgICBTdHJpbmcgandrVXNlU3RyaW5nOworICAgICAgICBpZiAoIWdldFN0
cmluZ0Zyb21KU09OKG1fZXhlYywgbV9qc29uLmdldCgpLCAidXNlIiwgandrVXNlU3RyaW5nKSkg
eworICAgICAgICAgICAgLy8gV2UgaGF2ZSBuZWl0aGVyIGtleV9vcHMgbm9yIHVzZS4KKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChqd2tVc2VTdHJpbmcgPT0g
ImVuYyIpCiAgICAgICAgICAgICBqd2tVc2FnZXMgfD0gKENyeXB0b0tleVVzYWdlRW5jcnlwdCB8
IENyeXB0b0tleVVzYWdlRGVjcnlwdCB8IENyeXB0b0tleVVzYWdlV3JhcEtleSB8IENyeXB0b0tl
eVVzYWdlVW53cmFwS2V5KTsKLSAgICAgICAgZWxzZSBpZiAoandrVXNlID09ICJlbmNvbmx5IikK
LSAgICAgICAgICAgIGp3a1VzYWdlcyB8PSBDcnlwdG9LZXlVc2FnZUVuY3J5cHQ7Ci0gICAgICAg
IGVsc2UgaWYgKGp3a1VzZSA9PSAiZGVjb25seSIpCi0gICAgICAgICAgICBqd2tVc2FnZXMgfD0g
Q3J5cHRvS2V5VXNhZ2VEZWNyeXB0OwotICAgICAgICBlbHNlIGlmIChqd2tVc2UgPT0gInNpZ29u
bHkiKQotICAgICAgICAgICAgandrVXNhZ2VzIHw9IENyeXB0b0tleVVzYWdlU2lnbjsKLSAgICAg
ICAgZWxzZSBpZiAoandrVXNlID09ICJ2Znlvbmx5IikKLSAgICAgICAgICAgIGp3a1VzYWdlcyB8
PSBDcnlwdG9LZXlVc2FnZVZlcmlmeTsKLSAgICAgICAgZWxzZSBpZiAoandrVXNlID09ICJkcnZr
ZXkiKQotICAgICAgICAgICAgandrVXNhZ2VzIHw9IENyeXB0b0tleVVzYWdlRGVyaXZlS2V5Owot
ICAgICAgICBlbHNlIGlmIChqd2tVc2UgPT0gImRydmJpdHMiKQotICAgICAgICAgICAgandrVXNh
Z2VzIHw9IENyeXB0b0tleVVzYWdlRGVyaXZlQml0czsKLSAgICAgICAgZWxzZSBpZiAoandrVXNl
ID09ICJ3cmFwIikKLSAgICAgICAgICAgIGp3a1VzYWdlcyB8PSBDcnlwdG9LZXlVc2FnZVdyYXBL
ZXk7Ci0gICAgICAgIGVsc2UgaWYgKGp3a1VzZSA9PSAidW53cmFwIikKLSAgICAgICAgICAgIGp3
a1VzYWdlcyB8PSBDcnlwdG9LZXlVc2FnZVVud3JhcEtleTsKKyAgICAgICAgZWxzZSBpZiAoandr
VXNlU3RyaW5nID09ICJzaWciKQorICAgICAgICAgICAgandrVXNhZ2VzIHw9IChDcnlwdG9LZXlV
c2FnZVNpZ24gfCBDcnlwdG9LZXlVc2FnZVZlcmlmeSk7CisgICAgICAgIGVsc2UgeworICAgICAg
ICAgICAgdGhyb3dUeXBlRXJyb3IobV9leGVjLCAiVW5zdXBwb3J0ZWQgSldLIGtleSB1c2UgdmFs
dWUgXCIiICsgandrVXNlU3RyaW5nICsgIlwiIik7CisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIH0KICAgICB9CiAKICAgICBzdWdnZXN0ZWRVc2FnZXMgPSBzdWdnZXN0ZWRVc2FnZXMgJiBq
d2tVc2FnZXM7CkBAIC0yOTAsMTAgKzMxNyw4IEBAIHZvaWQgSlNDcnlwdG9LZXlTZXJpYWxpemF0
aW9uSldLOjpyZWNvbmMKIHZvaWQgSlNDcnlwdG9LZXlTZXJpYWxpemF0aW9uSldLOjpyZWNvbmNp
bGVFeHRyYWN0YWJsZShib29sJiBzdWdnZXN0ZWRFeHRyYWN0YWJsZSkgY29uc3QKIHsKICAgICBi
b29sIGp3a0V4dHJhY3RhYmxlOwotICAgIGlmICghZ2V0Qm9vbGVhbkZyb21KU09OKG1fZXhlYywg
bV9qc29uLmdldCgpLCAiZXh0IiwgandrRXh0cmFjdGFibGUpKSB7Ci0gICAgICAgIC8vICJleHQi
IG5vdCBpbiBKV0sgb3IgV2ViQ3J5cHRvIHNwZWNzIHlldCwgaW1wbGVtZW50ZWQgYWNjb3JkaW5n
IHRvIGEgcHJvcG9zYWwgaW4gPGh0dHBzOi8vd3d3LnczLm9yZy9CdWdzL1B1YmxpYy9zaG93X2J1
Zy5jZ2k/aWQ9MjM3OTY+LgorICAgIGlmICghZ2V0Qm9vbGVhbkZyb21KU09OKG1fZXhlYywgbV9q
c29uLmdldCgpLCAiZXh0IiwgandrRXh0cmFjdGFibGUpKQogICAgICAgICByZXR1cm47Ci0gICAg
fQogCiAgICAgc3VnZ2VzdGVkRXh0cmFjdGFibGUgPSBzdWdnZXN0ZWRFeHRyYWN0YWJsZSAmJiBq
d2tFeHRyYWN0YWJsZTsKIH0KQEAgLTQ3MiwxMyArNDk3LDIwIEBAIHN0ZDo6dW5pcXVlX3B0cjxD
cnlwdG9LZXlEYXRhPiBKU0NyeXB0b0sKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotdm9pZCBK
U0NyeXB0b0tleVNlcmlhbGl6YXRpb25KV0s6OmJ1aWxkSlNPTkZvck9jdGV0U2VxdWVuY2UoRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBWZWN0b3I8dWludDhfdD4mIGtleURhdGEsIEpTT2JqZWN0KiBy
ZXN1bHQpCitzdGF0aWMgdm9pZCBhZGRUb0pTT04oRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCog
anNvbiwgY29uc3QgY2hhcioga2V5LCBjb25zdCBTdHJpbmcmIHZhbHVlKQoreworICAgIFZNJiB2
bSA9IGV4ZWMtPnZtKCk7CisgICAgSWRlbnRpZmllciBpZGVudGlmaWVyKCZ2bSwga2V5KTsKKyAg
ICBqc29uLT5wdXREaXJlY3Qodm0sIGlkZW50aWZpZXIsIGpzU3RyaW5nKGV4ZWMsIHZhbHVlKSk7
Cit9CisKK3N0YXRpYyB2b2lkIGJ1aWxkSlNPTkZvck9jdGV0U2VxdWVuY2UoRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBWZWN0b3I8dWludDhfdD4mIGtleURhdGEsIEpTT2JqZWN0KiByZXN1bHQpCiB7
CiAgICAgYWRkVG9KU09OKGV4ZWMsIHJlc3VsdCwgImt0eSIsICJvY3QiKTsKICAgICBhZGRUb0pT
T04oZXhlYywgcmVzdWx0LCAiayIsIGJhc2U2NFVSTEVuY29kZShrZXlEYXRhKSk7CiB9CiAKLXZv
aWQgSlNDcnlwdG9LZXlTZXJpYWxpemF0aW9uSldLOjpidWlsZEpTT05Gb3JSU0FDb21wb25lbnRz
KEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBDcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50cyYg
ZGF0YSwgSlNDOjpKU09iamVjdCogcmVzdWx0KQorc3RhdGljIHZvaWQgYnVpbGRKU09ORm9yUlNB
Q29tcG9uZW50cyhKU0M6OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQ3J5cHRvS2V5RGF0YVJTQUNv
bXBvbmVudHMmIGRhdGEsIEpTQzo6SlNPYmplY3QqIHJlc3VsdCkKIHsKICAgICBhZGRUb0pTT04o
ZXhlYywgcmVzdWx0LCAia3R5IiwgIlJTQSIpOwogICAgIGFkZFRvSlNPTihleGVjLCByZXN1bHQs
ICJuIiwgYmFzZTY0VVJMRW5jb2RlKGRhdGEubW9kdWx1cygpKSk7CkBAIC01MTIsMjEgKzU0NCwx
NCBAQCB2b2lkIEpTQ3J5cHRvS2V5U2VyaWFsaXphdGlvbkpXSzo6YnVpbGRKCiAgICAgcmVzdWx0
LT5wdXREaXJlY3QoZXhlYy0+dm0oKSwgSWRlbnRpZmllcihleGVjLCAib3RoIiksIG90aCk7CiB9
CiAKLXZvaWQgSlNDcnlwdG9LZXlTZXJpYWxpemF0aW9uSldLOjphZGRUb0pTT04oRXhlY1N0YXRl
KiBleGVjLCBKU09iamVjdCoganNvbiwgY29uc3QgY2hhcioga2V5LCBjb25zdCBTdHJpbmcmIHZh
bHVlKQotewotICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7Ci0gICAgSWRlbnRpZmllciBpZGVudGlm
aWVyKCZ2bSwga2V5KTsKLSAgICBqc29uLT5wdXREaXJlY3Qodm0sIGlkZW50aWZpZXIsIGpzU3Ry
aW5nKGV4ZWMsIHZhbHVlKSk7Ci19Ci0KLXZvaWQgSlNDcnlwdG9LZXlTZXJpYWxpemF0aW9uSldL
OjphZGRCb29sVG9KU09OKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIGpzb24sIGNvbnN0IGNo
YXIqIGtleSwgYm9vbCB2YWx1ZSkKK3N0YXRpYyB2b2lkIGFkZEJvb2xUb0pTT04oRXhlY1N0YXRl
KiBleGVjLCBKU09iamVjdCoganNvbiwgY29uc3QgY2hhcioga2V5LCBib29sIHZhbHVlKQogewog
ICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgSWRlbnRpZmllciBpZGVudGlmaWVyKCZ2bSwg
a2V5KTsKICAgICBqc29uLT5wdXREaXJlY3Qodm0sIGlkZW50aWZpZXIsIGpzQm9vbGVhbih2YWx1
ZSkpOwogfQogCi12b2lkIEpTQ3J5cHRvS2V5U2VyaWFsaXphdGlvbkpXSzo6YWRkSldLQWxnb3Jp
dGhtVG9KU09OKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIGpzb24sIGNvbnN0IENyeXB0b0tl
eSYga2V5KQorc3RhdGljIHZvaWQgYWRkSldLQWxnb3JpdGhtVG9KU09OKEV4ZWNTdGF0ZSogZXhl
YywgSlNPYmplY3QqIGpzb24sIGNvbnN0IENyeXB0b0tleSYga2V5KQogewogICAgIFN0cmluZyBq
d2tBbGdvcml0aG07CiAgICAgc3dpdGNoIChrZXkuYWxnb3JpdGhtSWRlbnRpZmllcigpKSB7CkBA
IC02MjcsNTEgKzY1MiwyOSBAQCB2b2lkIEpTQ3J5cHRvS2V5U2VyaWFsaXphdGlvbkpXSzo6YWRk
SldLCiAgICAgYWRkVG9KU09OKGV4ZWMsIGpzb24sICJhbGciLCBqd2tBbGdvcml0aG0pOwogfQog
Ci1zdGF0aWMgYm9vbCBwcm9jZXNzVXNlVmFsdWUoU3RyaW5nQnVpbGRlciYgYnVpbGRlciwgQ3J5
cHRvS2V5VXNhZ2UmIHVzYWdlcywgY29uc3QgU3RyaW5nJiB1c2VTdHJpbmcsIENyeXB0b0tleVVz
YWdlIHVzYWdlc0ZvclVzZVN0cmluZykKK3N0YXRpYyB2b2lkIGFkZFVzYWdlc1RvSlNPTihFeGVj
U3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBqc29uLCBDcnlwdG9LZXlVc2FnZSB1c2FnZXMpCiB7Ci0g
ICAgaWYgKCh1c2FnZXMgJiB1c2FnZXNGb3JVc2VTdHJpbmcpICE9IHVzYWdlc0ZvclVzZVN0cmlu
ZykKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgaWYgKCFidWlsZGVyLmlzRW1wdHkoKSkK
LSAgICAgICAgYnVpbGRlci5hcHBlbmQoJywnKTsKLSAgICBidWlsZGVyLmFwcGVuZCh1c2VTdHJp
bmcpOwotCi0gICAgdXNhZ2VzICY9IH51c2FnZXNGb3JVc2VTdHJpbmc7Ci0KLSAgICByZXR1cm4g
dHJ1ZTsKLX0KKyAgICBKU0FycmF5KiBrZXlPcHMgPSBjb25zdHJ1Y3RFbXB0eUFycmF5KGV4ZWMs
IDAsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSwgMCk7CiAKLXZvaWQgSlNDcnlwdG9LZXlT
ZXJpYWxpemF0aW9uSldLOjphZGRKV0tVc2VUb0pTT04oRXhlY1N0YXRlKiBleGVjLCBKU09iamVj
dCoganNvbiwgQ3J5cHRvS2V5VXNhZ2UgdXNhZ2VzKQotewotICAgIC8vIFVzZSBtYXBwaW5nIGlt
cGxlbWVudGVkIGFjY29yZGluZyB0byBhIHByb3Bvc2FsIGluIDxodHRwczovL3d3dy53My5vcmcv
QnVncy9QdWJsaWMvc2hvd19idWcuY2dpP2lkPTIzNzk2Pi4KLSAgICBTdHJpbmdCdWlsZGVyIHVz
ZUJ1aWxkZXI7Ci0gICAgQ3J5cHRvS2V5VXNhZ2UgcmVtYWluaW5nVXNhZ2VzID0gdXNhZ2VzOwot
ICAgIHdoaWxlIChyZW1haW5pbmdVc2FnZXMpIHsKLSAgICAgICAgaWYgKHByb2Nlc3NVc2VWYWx1
ZSh1c2VCdWlsZGVyLCByZW1haW5pbmdVc2FnZXMsICJlbmMiLCBDcnlwdG9LZXlVc2FnZUVuY3J5
cHQgfCBDcnlwdG9LZXlVc2FnZURlY3J5cHQgfCBDcnlwdG9LZXlVc2FnZVdyYXBLZXkgfCBDcnlw
dG9LZXlVc2FnZVVud3JhcEtleSkpCi0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgaWYg
KHByb2Nlc3NVc2VWYWx1ZSh1c2VCdWlsZGVyLCByZW1haW5pbmdVc2FnZXMsICJzaWciLCBDcnlw
dG9LZXlVc2FnZVNpZ24gfCBDcnlwdG9LZXlVc2FnZVZlcmlmeSkpCi0gICAgICAgICAgICBjb250
aW51ZTsKLSAgICAgICAgaWYgKHByb2Nlc3NVc2VWYWx1ZSh1c2VCdWlsZGVyLCByZW1haW5pbmdV
c2FnZXMsICJlbmNvbmx5IiwgQ3J5cHRvS2V5VXNhZ2VFbmNyeXB0KSkKLSAgICAgICAgICAgIGNv
bnRpbnVlOwotICAgICAgICBpZiAocHJvY2Vzc1VzZVZhbHVlKHVzZUJ1aWxkZXIsIHJlbWFpbmlu
Z1VzYWdlcywgImRlY29ubHkiLCBDcnlwdG9LZXlVc2FnZURlY3J5cHQpKQotICAgICAgICAgICAg
Y29udGludWU7Ci0gICAgICAgIGlmIChwcm9jZXNzVXNlVmFsdWUodXNlQnVpbGRlciwgcmVtYWlu
aW5nVXNhZ2VzLCAic2lnb25seSIsIENyeXB0b0tleVVzYWdlU2lnbikpCi0gICAgICAgICAgICBj
b250aW51ZTsKLSAgICAgICAgaWYgKHByb2Nlc3NVc2VWYWx1ZSh1c2VCdWlsZGVyLCByZW1haW5p
bmdVc2FnZXMsICJ2Znlvbmx5IiwgQ3J5cHRvS2V5VXNhZ2VWZXJpZnkpKQotICAgICAgICAgICAg
Y29udGludWU7Ci0gICAgICAgIGlmIChwcm9jZXNzVXNlVmFsdWUodXNlQnVpbGRlciwgcmVtYWlu
aW5nVXNhZ2VzLCAiZHJ2a2V5IiwgQ3J5cHRvS2V5VXNhZ2VEZXJpdmVLZXkpKQotICAgICAgICAg
ICAgY29udGludWU7Ci0gICAgICAgIGlmIChwcm9jZXNzVXNlVmFsdWUodXNlQnVpbGRlciwgcmVt
YWluaW5nVXNhZ2VzLCAiZHJ2Yml0cyIsIENyeXB0b0tleVVzYWdlRGVyaXZlQml0cykpCi0gICAg
ICAgICAgICBjb250aW51ZTsKLSAgICAgICAgaWYgKHByb2Nlc3NVc2VWYWx1ZSh1c2VCdWlsZGVy
LCByZW1haW5pbmdVc2FnZXMsICJ3cmFwIiwgQ3J5cHRvS2V5VXNhZ2VXcmFwS2V5KSkKLSAgICAg
ICAgICAgIGNvbnRpbnVlOwotICAgICAgICBpZiAocHJvY2Vzc1VzZVZhbHVlKHVzZUJ1aWxkZXIs
IHJlbWFpbmluZ1VzYWdlcywgInVud3JhcCIsIENyeXB0b0tleVVzYWdlVW53cmFwS2V5KSkKLSAg
ICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB0aHJvd1R5cGVFcnJvcihleGVjLCAiS2V5IHVz
YWdlcyBjYW5ub3QgYmUgcmVwcmVzZW50ZWQgaW4gSldLLiIpOwotICAgICAgICByZXR1cm47Ci0g
ICAgfQorICAgIHVuc2lnbmVkIGluZGV4ID0gMDsKKyAgICBpZiAodXNhZ2VzICYgQ3J5cHRvS2V5
VXNhZ2VTaWduKQorICAgICAgICBrZXlPcHMtPnB1dERpcmVjdEluZGV4KGV4ZWMsIGluZGV4Kyss
IGpzU3RyaW5nKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgic2lnbiIpKSk7CisgICAgaWYgKHVzYWdlcyAm
IENyeXB0b0tleVVzYWdlVmVyaWZ5KQorICAgICAgICBrZXlPcHMtPnB1dERpcmVjdEluZGV4KGV4
ZWMsIGluZGV4KyssIGpzU3RyaW5nKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgidmVyaWZ5IikpKTsKKyAg
ICBpZiAodXNhZ2VzICYgQ3J5cHRvS2V5VXNhZ2VFbmNyeXB0KQorICAgICAgICBrZXlPcHMtPnB1
dERpcmVjdEluZGV4KGV4ZWMsIGluZGV4KyssIGpzU3RyaW5nKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgi
ZW5jcnlwdCIpKSk7CisgICAgaWYgKHVzYWdlcyAmIENyeXB0b0tleVVzYWdlRGVjcnlwdCkKKyAg
ICAgICAga2V5T3BzLT5wdXREaXJlY3RJbmRleChleGVjLCBpbmRleCsrLCBqc1N0cmluZyhleGVj
LCBBU0NJSUxpdGVyYWwoImRlY3J5cHQiKSkpOworICAgIGlmICh1c2FnZXMgJiBDcnlwdG9LZXlV
c2FnZVdyYXBLZXkpCisgICAgICAgIGtleU9wcy0+cHV0RGlyZWN0SW5kZXgoZXhlYywgaW5kZXgr
KywganNTdHJpbmcoZXhlYywgQVNDSUlMaXRlcmFsKCJ3cmFwIikpKTsKKyAgICBpZiAodXNhZ2Vz
ICYgQ3J5cHRvS2V5VXNhZ2VVbndyYXBLZXkpCisgICAgICAgIGtleU9wcy0+cHV0RGlyZWN0SW5k
ZXgoZXhlYywgaW5kZXgrKywganNTdHJpbmcoZXhlYywgQVNDSUlMaXRlcmFsKCJ1bndyYXAiKSkp
OworICAgIGlmICh1c2FnZXMgJiBDcnlwdG9LZXlVc2FnZURlcml2ZUtleSkKKyAgICAgICAga2V5
T3BzLT5wdXREaXJlY3RJbmRleChleGVjLCBpbmRleCsrLCBqc1N0cmluZyhleGVjLCBBU0NJSUxp
dGVyYWwoImRlcml2ZUtleSIpKSk7CisgICAgaWYgKHVzYWdlcyAmIENyeXB0b0tleVVzYWdlRGVy
aXZlQml0cykKKyAgICAgICAga2V5T3BzLT5wdXREaXJlY3RJbmRleChleGVjLCBpbmRleCsrLCBq
c1N0cmluZyhleGVjLCBBU0NJSUxpdGVyYWwoImRlcml2ZUJpdHMiKSkpOwogCi0gICAgYWRkVG9K
U09OKGV4ZWMsIGpzb24sICJ1c2UiLCB1c2VCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGpzb24t
PnB1dERpcmVjdChleGVjLT52bSgpLCBJZGVudGlmaWVyKGV4ZWMsICJrZXlfb3BzIiksIGtleU9w
cyk7CiB9CiAKIFN0cmluZyBKU0NyeXB0b0tleVNlcmlhbGl6YXRpb25KV0s6OnNlcmlhbGl6ZShF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IENyeXB0b0tleSYga2V5KQpAQCAtNjkxLDcgKzY5NCw3IEBA
IFN0cmluZyBKU0NyeXB0b0tleVNlcmlhbGl6YXRpb25KV0s6OnNlcmkKIAogICAgIGFkZEJvb2xU
b0pTT04oZXhlYywgcmVzdWx0LCAiZXh0Iiwga2V5LmV4dHJhY3RhYmxlKCkpOwogCi0gICAgYWRk
SldLVXNlVG9KU09OKGV4ZWMsIHJlc3VsdCwga2V5LnVzYWdlc0JpdG1hcCgpKTsKKyAgICBhZGRV
c2FnZXNUb0pTT04oZXhlYywgcmVzdWx0LCBrZXkudXNhZ2VzQml0bWFwKCkpOwogICAgIGlmIChl
eGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NyeXB0b0tleVNlcmlhbGl6YXRpb25KV0suaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NyeXB0b0tleVNlcmlh
bGl6YXRpb25KV0suaAkocmV2aXNpb24gMTYzMDIzKQorKysgU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNDcnlwdG9LZXlTZXJpYWxpemF0aW9uSldLLmgJKHdvcmtpbmcgY29weSkKQEAgLTY2
LDEzICs2Niw2IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxDcnlw
dG9LZXlEYXRhPiBrZXlEYXRhKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICBzdGF0aWMgdm9pZCBi
dWlsZEpTT05Gb3JPY3RldFNlcXVlbmNlKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgVmVjdG9yPHVp
bnQ4X3Q+JiwgSlNDOjpKU09iamVjdCogcmVzdWx0KTsKLSAgICBzdGF0aWMgdm9pZCBidWlsZEpT
T05Gb3JSU0FDb21wb25lbnRzKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgQ3J5cHRvS2V5RGF0YVJT
QUNvbXBvbmVudHMmLCBKU0M6OkpTT2JqZWN0KiByZXN1bHQpOwotICAgIHN0YXRpYyB2b2lkIGFk
ZEpXS0FsZ29yaXRobVRvSlNPTihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBjb25z
dCBDcnlwdG9LZXkmIGtleSk7Ci0gICAgc3RhdGljIHZvaWQgYWRkSldLVXNlVG9KU09OKEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIENyeXB0b0tleVVzYWdlKTsKLSAgICBzdGF0aWMg
dm9pZCBhZGRUb0pTT04oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgY29uc3QgY2hh
cioga2V5LCBjb25zdCBTdHJpbmcmIHZhbHVlKTsKLSAgICBzdGF0aWMgdm9pZCBhZGRCb29sVG9K
U09OKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIGNvbnN0IGNoYXIqIGtleSwgYm9v
bCB2YWx1ZSk7Ci0KICAgICBib29sIGtleVNpemVJc1ZhbGlkKHNpemVfdCBzaXplSW5CaXRzKSBj
b25zdDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvS2V5RGF0YT4ga2V5RGF0YU9jdGV0U2Vx
dWVuY2UoKSBjb25zdDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvS2V5RGF0YT4ga2V5RGF0
YVJTQUNvbXBvbmVudHMoKSBjb25zdDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2NyeXB0by9tYWMv
Q3J5cHRvQWxnb3JpdGhtQUVTX0tXTWFjLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9jcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRobUFFU19LV01hYy5jcHAJKHJldmlzaW9uIDE2MzAy
MykKKysrIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9tYWMvQ3J5cHRvQWxnb3JpdGhtQUVTX0tXTWFj
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiB2b2lkIENyeXB0b0FsZ29yaXRobUFFU19LVzo6cGxhdGZvcm1FbmNyeXB0KGNvbnN0IENy
eXB0b0tleUFFUyYga2V5LCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBkYXRhLCBWZWN0b3JD
YWxsYmFjayBjYWxsYmFjaywgVm9pZENhbGxiYWNrIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9u
Q29kZSYpCiB7CisgICAgaWYgKGRhdGEuc2Vjb25kICUgOCkgeworICAgICAgICAvLyBSRkMgMzM5
NCB1c2VzIDY0LWJpdCBibG9ja3MgYXMgaW5wdXQuCisgICAgICAgIC8vIDxyZGFyOi8vcHJvYmxl
bS8xNTk0OTk5Mj4gQ29tbW9uQ3J5cHRvIGRvZXNuJ3QgZGV0ZWN0IGluY29ycmVjdCBkYXRhIGxl
bmd0aCwgc2lsZW50bHkgcHJvZHVjaW5nIGEgYmFkIGN5cGhlcnRleHQuCisgICAgICAgIGZhaWx1
cmVDYWxsYmFjaygpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgVmVjdG9yPHVpbnQ4
X3Q+IHJlc3VsdChDQ1N5bW1ldHJpY1dyYXBwZWRTaXplKGtDQ1dSQVBBRVMsIGRhdGEuc2Vjb25k
KSk7CiAgICAgc2l6ZV90IHJlc3VsdFNpemUgPSByZXN1bHQuc2l6ZSgpOwogICAgIGludCBzdGF0
dXMgPSBDQ1N5bW1ldHJpY0tleVdyYXAoa0NDV1JBUEFFUywgQ0NyZmMzMzk0X2l2LCBDQ3JmYzMz
OTRfaXZMZW4sIGtleS5rZXkoKS5kYXRhKCksIGtleS5rZXkoKS5zaXplKCksIGRhdGEuZmlyc3Qs
IGRhdGEuc2Vjb25kLCByZXN1bHQuZGF0YSgpLCAmcmVzdWx0U2l6ZSk7CkBAIC01MSw2ICs1OCwx
MiBAQCB2b2lkIENyeXB0b0FsZ29yaXRobUFFU19LVzo6cGxhdGZvcm1EZWNyCiB7CiAgICAgVmVj
dG9yPHVpbnQ4X3Q+IHJlc3VsdChDQ1N5bW1ldHJpY1Vud3JhcHBlZFNpemUoa0NDV1JBUEFFUywg
ZGF0YS5zZWNvbmQpKTsKICAgICBzaXplX3QgcmVzdWx0U2l6ZSA9IHJlc3VsdC5zaXplKCk7CisK
KyAgICBpZiAocmVzdWx0U2l6ZSAlIDgpIHsKKyAgICAgICAgZmFpbHVyZUNhbGxiYWNrKCk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBpbnQgc3RhdHVzID0gQ0NTeW1tZXRyaWNLZXlV
bndyYXAoa0NDV1JBUEFFUywgQ0NyZmMzMzk0X2l2LCBDQ3JmYzMzOTRfaXZMZW4sIGtleS5rZXko
KS5kYXRhKCksIGtleS5rZXkoKS5zaXplKCksIGRhdGEuZmlyc3QsIGRhdGEuc2Vjb25kLCByZXN1
bHQuZGF0YSgpLCAmcmVzdWx0U2l6ZSk7CiAgICAgaWYgKHN0YXR1cykgewogICAgICAgICBmYWls
dXJlQ2FsbGJhY2soKTsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2MzIxNikKKysrIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBACisyMDE0LTAxLTMxICBB
bGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIFVwZGF0ZSBXZWJD
cnlwdG8gSldLIG1hcHBpbmcgdG8gdXNlIGtleV9vcHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzYwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogY3J5cHRvL3N1YnRsZS9hZXMta3ctd3JhcC11bndy
YXAtYWVzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBjcnlwdG8vc3VidGxlL2Flcy1rdy13cmFw
LXVud3JhcC1hZXMuaHRtbDoKKyAgICAgICAgUmVtb3ZlZCBhIHN1YnRlc3QgZm9yIHdyYXBwaW5n
IEpXSy4gVGhhdCBkb2Vzbid0IHJlYWxseSB3b3JrIHBlciB0aGUgc3BlYywgYmVjYXVzZQorICAg
ICAgICBKV0sgaXMgYXJiaXRhdHJ5IGxlbmd0aCwgYW5kIEFFUy1LVyByZXF1aXJlcyA4Km4gYnl0
ZXMuCisKKyAgICAgICAgKiBjcnlwdG8vc3VidGxlL2Flcy1leHBvcnQta2V5LWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBjcnlwdG8vc3VidGxlL2Flcy1leHBvcnQta2V5Lmh0bWw6CisgICAgICAg
ICogY3J5cHRvL3N1YnRsZS9obWFjLWV4cG9ydC1rZXktZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IGNyeXB0by9zdWJ0bGUvaG1hYy1leHBvcnQta2V5Lmh0bWw6CisgICAgICAgICogY3J5cHRvL3N1
YnRsZS9qd2stZXhwb3J0LXVzZS12YWx1ZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGNyeXB0
by9zdWJ0bGUvandrLWV4cG9ydC11c2UtdmFsdWVzLmh0bWw6CisgICAgICAgICogY3J5cHRvL3N1
YnRsZS9qd2staW1wb3J0LXVzZS12YWx1ZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGNyeXB0
by9zdWJ0bGUvandrLWltcG9ydC11c2UtdmFsdWVzLmh0bWw6CisgICAgICAgICogY3J5cHRvL3N1
YnRsZS9yc2EtZXhwb3J0LWtleS1leHBlY3RlZC50eHQ6CisgICAgICAgICogY3J5cHRvL3N1YnRs
ZS9yc2EtZXhwb3J0LWtleS5odG1sOgorICAgICAgICAqIGNyeXB0by9zdWJ0bGUvcnNhLWV4cG9y
dC1wcml2YXRlLWtleS1leHBlY3RlZC50eHQ6CisgICAgICAgICogY3J5cHRvL3N1YnRsZS9yc2Et
ZXhwb3J0LXByaXZhdGUta2V5Lmh0bWw6CisgICAgICAgICogY3J5cHRvL3N1YnRsZS9yc2Etb2Fl
cC1rZXktbWFuaXB1bGF0aW9uLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBjcnlwdG8vc3VidGxl
L3JzYS1vYWVwLWtleS1tYW5pcHVsYXRpb24uaHRtbDoKKyAgICAgICAgKiBjcnlwdG8vc3VidGxl
L3JzYS1wb3N0TWVzc2FnZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogY3J5cHRvL3N1YnRsZS9y
c2EtcG9zdE1lc3NhZ2UuaHRtbDoKKyAgICAgICAgVXBkYXRlZCBmb3IgdGhlIGZpeC4KKwogMjAx
NC0wMS0zMSAgTWFjaWVqIFN0YWNob3dpYWsgIDxtanNAYXBwbGUuY29tPgogCiAgICAgICAgIElt
cGxlbWVudCAobW9zdCBvZikgVVJMIEFQSQpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRs
ZS9hZXMtZXhwb3J0LWtleS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
Y3J5cHRvL3N1YnRsZS9hZXMtZXhwb3J0LWtleS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE2MzEz
MykKKysrIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWV4cG9ydC1rZXktZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yMyw3ICsyMyw4IEBAIFBBU1MgZXhwb3J0ZWRKV0sua3R5
IGlzICdvY3QnCiBQQVNTIGV4cG9ydGVkSldLLmsgaXMgJ2puT3c5OW9PWkZMSUVQTXJnSkI1NVdM
NDZ0SlNMR3Q3JwogUEFTUyBleHBvcnRlZEpXSy5hbGcgaXMgJ0ExOTJDQkMnCiBQQVNTIGV4cG9y
dGVkSldLLmV4dCBpcyB0cnVlCi1QQVNTIGV4cG9ydGVkSldLLnVzZSBpcyAnZW5jJworUEFTUyBl
eHBvcnRlZEpXSy51c2UgaXMgdW5kZWZpbmVkCitQQVNTIGV4cG9ydGVkSldLLmtleV9vcHMgaXMg
WydlbmNyeXB0JywgJ2RlY3J5cHQnLCAnd3JhcCcsICd1bndyYXAnXQogCiBJbXBvcnRpbmcgYSBr
ZXkgdGhhdCdzIG5vdCBleHRyYWN0YWJsZS4uLgogCkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8v
c3VidGxlL2Flcy1leHBvcnQta2V5Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5
cHRvL3N1YnRsZS9hZXMtZXhwb3J0LWtleS5odG1sCShyZXZpc2lvbiAxNjMxMzMpCisrKyBMYXlv
dXRUZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1leHBvcnQta2V5Lmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTUzLDcgKzUzLDggQEAgY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGp3a0tleUFz
QQogICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5rIiwgIidqbk93OTlvT1pGTElFUE1yZ0pCNTVX
TDQ2dEpTTEd0NyciKTsKICAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0suYWxnIiwgIidBMTkyQ0JD
JyIpOwogICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5leHQiLCAidHJ1ZSIpOwotICAgIHNob3Vs
ZEJlKCJleHBvcnRlZEpXSy51c2UiLCAiJ2VuYyciKTsKKyAgICBzaG91bGRCZSgiZXhwb3J0ZWRK
V0sudXNlIiwgInVuZGVmaW5lZCIpOworICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5rZXlfb3Bz
IiwgIlsnZW5jcnlwdCcsICdkZWNyeXB0JywgJ3dyYXAnLCAndW53cmFwJ10iKTsKIAogICAgIGRl
YnVnKCJcbkltcG9ydGluZyBhIGtleSB0aGF0J3Mgbm90IGV4dHJhY3RhYmxlLi4uIik7CiAgICAg
cmV0dXJuIGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBqd2tLZXlBc0FycmF5QnVmZmVy
LCAiQUVTLUNCQyIsIG5vbkV4dHJhY3RhYmxlLCBbJ2VuY3J5cHQnLCAnZGVjcnlwdCcsICd3cmFw
S2V5JywgJ3Vud3JhcEtleSddKQpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMt
a3ctd3JhcC11bndyYXAtYWVzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9jcnlwdG8vc3VidGxlL2Flcy1rdy13cmFwLXVud3JhcC1hZXMtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAxNjMxMzMpCisrKyBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1rdy13cmFwLXVu
d3JhcC1hZXMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xNiwxNyArMTYsNiBAQCBQ
QVNTIHVud3JhcHBlZEtleS5hbGdvcml0aG0ubGVuZ3RoIGlzIDEyCiBQQVNTIHVud3JhcHBlZEtl
eS51c2FnZXMgaXMgWydkZWNyeXB0JywgJ2VuY3J5cHQnLCAndW53cmFwS2V5JywgJ3dyYXBLZXkn
XQogRXhwb3J0aW5nIGl0Li4uCiBQQVNTIGJ5dGVzVG9IZXhTdHJpbmcodW53cmFwcGVkS2V5RGF0
YSkgaXMgYnl0ZXNUb0hleFN0cmluZyhrZXlEYXRhKQotCi1XcmFwcGluZyBpdCBhcyBKV0suLi4K
LVVud3JhcHBpbmcgaXQuLi4KLVBBU1MgdW53cmFwcGVkS2V5LnRvU3RyaW5nKCkgaXMgJ1tvYmpl
Y3QgS2V5XScKLVBBU1MgdW53cmFwcGVkS2V5LnR5cGUgaXMgJ3NlY3JldCcKLVBBU1MgdW53cmFw
cGVkS2V5LmV4dHJhY3RhYmxlIGlzIHRydWUKLVBBU1MgdW53cmFwcGVkS2V5LmFsZ29yaXRobS5u
YW1lIGlzICdBRVMtQ0JDJwotUEFTUyB1bndyYXBwZWRLZXkuYWxnb3JpdGhtLmxlbmd0aCBpcyAx
MjgKLVBBU1MgdW53cmFwcGVkS2V5LnVzYWdlcyBpcyBbJ2RlY3J5cHQnLCAnZW5jcnlwdCcsICd1
bndyYXBLZXknLCAnd3JhcEtleSddCi1FeHBvcnRpbmcgaXQuLi4KLVBBU1MgYnl0ZXNUb0hleFN0
cmluZyh1bndyYXBwZWRLZXlEYXRhKSBpcyBieXRlc1RvSGV4U3RyaW5nKGtleURhdGEpCiBQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKSW5kZXg6IExheW91
dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWt3LXdyYXAtdW53cmFwLWFlcy5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWt3LXdyYXAtdW53cmFwLWFlcy5o
dG1sCShyZXZpc2lvbiAxNjMxMzMpCisrKyBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1r
dy13cmFwLXVud3JhcC1hZXMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNDksMjggKzQ5LDYgQEAg
Y3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoInJhdyIsIGtla0RhdGEsIAogICAgIHVud3JhcHBlZEtl
eURhdGEgPSByZXN1bHQ7CiAgICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJpbmcodW53cmFwcGVk
S2V5RGF0YSkiLCAiYnl0ZXNUb0hleFN0cmluZyhrZXlEYXRhKSIpOwogCi0gICAgZGVidWcoIlxu
V3JhcHBpbmcgaXQgYXMgSldLLi4uIik7Ci0gICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUud3JhcEtl
eSgiandrIiwga2V5LCBrZWssICJhZXMta3ciKTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7
Ci0gICAgd3JhcHBlZEtleSA9IHJlc3VsdDsKLQotICAgIGRlYnVnKCJVbndyYXBwaW5nIGl0Li4u
Iik7Ci0gICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUudW53cmFwS2V5KCJqd2siLCB3cmFwcGVkS2V5
LCBrZWssICJhZXMta3ciLCAiYWVzLWNiYyIsIGV4dHJhY3RhYmxlLCBbImVuY3J5cHQiLCAiZGVj
cnlwdCIsICJ3cmFwS2V5IiwgInVud3JhcEtleSJdKTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0
KSB7Ci0gICAgdW53cmFwcGVkS2V5ID0gcmVzdWx0OwotICAgIHNob3VsZEJlKCJ1bndyYXBwZWRL
ZXkudG9TdHJpbmcoKSIsICInW29iamVjdCBLZXldJyIpOwotICAgIHNob3VsZEJlKCJ1bndyYXBw
ZWRLZXkudHlwZSIsICInc2VjcmV0JyIpOwotICAgIHNob3VsZEJlKCJ1bndyYXBwZWRLZXkuZXh0
cmFjdGFibGUiLCAidHJ1ZSIpOwotICAgIHNob3VsZEJlKCJ1bndyYXBwZWRLZXkuYWxnb3JpdGht
Lm5hbWUiLCAiJ0FFUy1DQkMnIik7Ci0gICAgc2hvdWxkQmUoInVud3JhcHBlZEtleS5hbGdvcml0
aG0ubGVuZ3RoIiwgIjEyOCIpOwotICAgIHNob3VsZEJlKCJ1bndyYXBwZWRLZXkudXNhZ2VzIiwg
IlsnZGVjcnlwdCcsICdlbmNyeXB0JywgJ3Vud3JhcEtleScsICd3cmFwS2V5J10iKTsKLQotICAg
IGRlYnVnKCJFeHBvcnRpbmcgaXQuLi4iKTsKLSAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5leHBv
cnRLZXkoInJhdyIsIHVud3JhcHBlZEtleSk7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewot
ICAgIHVud3JhcHBlZEtleURhdGEgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhT
dHJpbmcodW53cmFwcGVkS2V5RGF0YSkiLCAiYnl0ZXNUb0hleFN0cmluZyhrZXlEYXRhKSIpOwot
CiAgICAgZmluaXNoSlNUZXN0KCk7CiB9KTsKIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMv
Y3J5cHRvL3N1YnRsZS9obWFjLWV4cG9ydC1rZXktZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvaG1hYy1leHBvcnQta2V5LWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMTYzMTMzKQorKysgTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9obWFjLWV4cG9y
dC1rZXktZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xNiw3ICsxNiw4IEBAIFBBU1Mg
ZXhwb3J0ZWRKV0sua3R5IGlzICdvY3QnCiBQQVNTIGV4cG9ydGVkSldLLmsgaXMgJ2FoamtuLV8z
ODdmZ25zaWJmMjNxc3ZhaGprbi1fMzg3Zmduc2liZjIzcXMnCiBQQVNTIGV4cG9ydGVkSldLLmFs
ZyBpcyAnSFMyNTYnCiBQQVNTIGV4cG9ydGVkSldLLmV4dCBpcyB0cnVlCi1QQVNTIGV4cG9ydGVk
SldLLnVzZSBpcyAnc2lnJworUEFTUyBleHBvcnRlZEpXSy51c2UgaXMgdW5kZWZpbmVkCitQQVNT
IGV4cG9ydGVkSldLLmtleV9vcHMgaXMgWydzaWduJywgJ3ZlcmlmeSddCiAKIEltcG9ydGluZyBh
IGtleSB0aGF0J3Mgbm90IGV4dHJhY3RhYmxlLi4uCiAKSW5kZXg6IExheW91dFRlc3RzL2NyeXB0
by9zdWJ0bGUvaG1hYy1leHBvcnQta2V5Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
Y3J5cHRvL3N1YnRsZS9obWFjLWV4cG9ydC1rZXkuaHRtbAkocmV2aXNpb24gMTYzMTMzKQorKysg
TGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9obWFjLWV4cG9ydC1rZXkuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtNDcsNyArNDcsOCBAQCBjcnlwdG8uc3VidGxlLmltcG9ydEtleSgiandrIiwgandr
S2V5QXNBCiAgICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLmsiLCAiJ2FoamtuLV8zODdmZ25zaWJm
MjNxc3ZhaGprbi1fMzg3Zmduc2liZjIzcXMnIik7CiAgICAgc2hvdWxkQmUoImV4cG9ydGVkSldL
LmFsZyIsICInSFMyNTYnIik7CiAgICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLmV4dCIsICJ0cnVl
Iik7Ci0gICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLnVzZSIsICInc2lnJyIpOworICAgIHNob3Vs
ZEJlKCJleHBvcnRlZEpXSy51c2UiLCAidW5kZWZpbmVkIik7CisgICAgc2hvdWxkQmUoImV4cG9y
dGVkSldLLmtleV9vcHMiLCAiWydzaWduJywgJ3ZlcmlmeSddIik7CiAKICAgICBkZWJ1ZygiXG5J
bXBvcnRpbmcgYSBrZXkgdGhhdCdzIG5vdCBleHRyYWN0YWJsZS4uLiIpOwogICAgIHJldHVybiBj
cnlwdG8uc3VidGxlLmltcG9ydEtleSgiandrIiwgandrS2V5QXNBcnJheUJ1ZmZlciwgeyBuYW1l
OiAiSE1BQyIsIGhhc2g6ICJTSEEtMjU2IiB9LCBub25FeHRyYWN0YWJsZSwgWyJzaWduIiwgInZl
cmlmeSJdKTsKSW5kZXg6IExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvandrLWV4cG9ydC11c2Ut
dmFsdWVzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8vc3Vi
dGxlL2p3ay1leHBvcnQtdXNlLXZhbHVlcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE2MzEzMykK
KysrIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvandrLWV4cG9ydC11c2UtdmFsdWVzLWV4cGVj
dGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNCwzNyArNCw0OCBAQCBPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBCiAKIAogZW5jcnlwdDoKLVBBU1MgandrLnVzZSBpcyAn
ZW5jb25seScKK1BBU1MgandrLnVzZSBpcyB1bmRlZmluZWQKK1BBU1MgandrLmtleV9vcHMgaXMg
WyJlbmNyeXB0Il0KIAogZGVjcnlwdDoKLVBBU1MgandrLnVzZSBpcyAnZGVjb25seScKK1BBU1Mg
andrLnVzZSBpcyB1bmRlZmluZWQKK1BBU1MgandrLmtleV9vcHMgaXMgWyJkZWNyeXB0Il0KIAog
ZW5jcnlwdCxkZWNyeXB0OgotUEFTUyBqd2sudXNlIGlzICdlbmNvbmx5LGRlY29ubHknCitQQVNT
IGp3ay51c2UgaXMgdW5kZWZpbmVkCitQQVNTIGp3ay5rZXlfb3BzIGlzIFsiZW5jcnlwdCIsImRl
Y3J5cHQiXQogCiB3cmFwS2V5OgotUEFTUyBqd2sudXNlIGlzICd3cmFwJworUEFTUyBqd2sudXNl
IGlzIHVuZGVmaW5lZAorUEFTUyBqd2sua2V5X29wcyBpcyBbIndyYXAiXQogCiB1bndyYXBLZXk6
Ci1QQVNTIGp3ay51c2UgaXMgJ3Vud3JhcCcKK1BBU1MgandrLnVzZSBpcyB1bmRlZmluZWQKK1BB
U1MgandrLmtleV9vcHMgaXMgWyJ1bndyYXAiXQogCiB3cmFwS2V5LHVud3JhcEtleToKLVBBU1Mg
andrLnVzZSBpcyAnd3JhcCx1bndyYXAnCitQQVNTIGp3ay51c2UgaXMgdW5kZWZpbmVkCitQQVNT
IGp3ay5rZXlfb3BzIGlzIFsid3JhcCIsInVud3JhcCJdCiAKIGVuY3J5cHQsZGVjcnlwdCx3cmFw
S2V5OgotUEFTUyBqd2sudXNlIGlzICdlbmNvbmx5LGRlY29ubHksd3JhcCcKK1BBU1MgandrLnVz
ZSBpcyB1bmRlZmluZWQKK1BBU1MgandrLmtleV9vcHMgaXMgWyJlbmNyeXB0IiwiZGVjcnlwdCIs
IndyYXAiXQogCiBlbmNyeXB0LGRlY3J5cHQsd3JhcEtleSx1bndyYXBLZXk6Ci1QQVNTIGp3ay51
c2UgaXMgJ2VuYycKK1BBU1MgandrLnVzZSBpcyB1bmRlZmluZWQKK1BBU1MgandrLmtleV9vcHMg
aXMgWyJlbmNyeXB0IiwiZGVjcnlwdCIsIndyYXAiLCJ1bndyYXAiXQogCiBzaWduOgotUEFTUyBq
d2sudXNlIGlzICdzaWdvbmx5JworUEFTUyBqd2sudXNlIGlzIHVuZGVmaW5lZAorUEFTUyBqd2su
a2V5X29wcyBpcyBbInNpZ24iXQogCiB2ZXJpZnk6Ci1QQVNTIGp3ay51c2UgaXMgJ3ZmeW9ubHkn
CitQQVNTIGp3ay51c2UgaXMgdW5kZWZpbmVkCitQQVNTIGp3ay5rZXlfb3BzIGlzIFsidmVyaWZ5
Il0KIAogc2lnbix2ZXJpZnk6Ci1QQVNTIGp3ay51c2UgaXMgJ3NpZycKK1BBU1MgandrLnVzZSBp
cyB1bmRlZmluZWQKK1BBU1MgandrLmtleV9vcHMgaXMgWyJzaWduIiwidmVyaWZ5Il0KIAogUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8v
c3VidGxlL2p3ay1leHBvcnQtdXNlLXZhbHVlcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2NyeXB0by9zdWJ0bGUvandrLWV4cG9ydC11c2UtdmFsdWVzLmh0bWwJKHJldmlzaW9uIDE2
MzEzMykKKysrIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvandrLWV4cG9ydC11c2UtdmFsdWVz
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE4LDQyICsxOCw0NCBAQCB2YXIgZXh0cmFjdGFibGUg
PSB0cnVlOwogdmFyIGFlc0tleUFzQXJyYXlCdWZmZXIgPSBCYXNlNjRVUkwucGFyc2UoImpuT3c5
OW9PWkZMSUVQTXJnSkI1NVdMNDZ0SlNMR3Q3Iik7CiB2YXIgaG1hY0tleUFzQXJyYXlCdWZmZXIg
PSBCYXNlNjRVUkwucGFyc2UoImFoamtuLV8zODdmZ25zaWJmMjNxc3ZhaGprbi1fMzg3Zmduc2li
ZjIzcXMiKTsKIAotZnVuY3Rpb24gdGVzdFdpdGhBRVNDQkModXNhZ2VzLCBleHBlY3RlZFVzZSkK
K2Z1bmN0aW9uIHRlc3RXaXRoQUVTQ0JDKHVzYWdlcywgZXhwZWN0ZWRLZXlPcHMpCiB7CiAgICAg
cmV0dXJuIGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJyYXciLCBhZXNLZXlBc0FycmF5QnVmZmVy
LCAiQUVTLUNCQyIsIGV4dHJhY3RhYmxlLCB1c2FnZXMpLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7
CiAgICAgICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmV4cG9ydEtleSgiandrIiwgcmVzdWx0KTsK
ICAgICB9KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewogICAgICAgICBqd2sgPSBKU09OLnBhcnNl
KGJ5dGVzVG9BU0NJSVN0cmluZyhyZXN1bHQpKTsKICAgICAgICAgZGVidWcodXNhZ2VzICsgIjoi
KTsKLSAgICAgICAgc2hvdWxkQmUoImp3ay51c2UiLCAiJyIgKyBleHBlY3RlZFVzZSArICInIik7
CisgICAgICAgIHNob3VsZEJlKCJqd2sudXNlIiwgInVuZGVmaW5lZCIpOworICAgICAgICBzaG91
bGRCZSgiandrLmtleV9vcHMiLCBKU09OLnN0cmluZ2lmeShleHBlY3RlZEtleU9wcykpOwogICAg
ICAgICBkZWJ1ZygiIik7CiAgICAgfSk7CiB9CiAKLWZ1bmN0aW9uIHRlc3RXaXRoSE1BQyh1c2Fn
ZXMsIGV4cGVjdGVkVXNlKQorZnVuY3Rpb24gdGVzdFdpdGhITUFDKHVzYWdlcywgZXhwZWN0ZWRL
ZXlPcHMpCiB7CiAgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJyYXciLCBobWFj
S2V5QXNBcnJheUJ1ZmZlciwge25hbWU6ICdobWFjJywgaGFzaDoge25hbWU6ICdzaGEtMjU2J319
LCBleHRyYWN0YWJsZSwgdXNhZ2VzKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewogICAgICAgICBy
ZXR1cm4gY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkoImp3ayIsIHJlc3VsdCk7CiAgICAgfSkudGhl
bihmdW5jdGlvbihyZXN1bHQpIHsKICAgICAgICAgandrID0gSlNPTi5wYXJzZShieXRlc1RvQVND
SUlTdHJpbmcocmVzdWx0KSk7CiAgICAgICAgIGRlYnVnKHVzYWdlcyArICI6Iik7Ci0gICAgICAg
IHNob3VsZEJlKCJqd2sudXNlIiwgIiciICsgZXhwZWN0ZWRVc2UgKyAiJyIpOworICAgICAgICBz
aG91bGRCZSgiandrLnVzZSIsICJ1bmRlZmluZWQiKTsKKyAgICAgICAgc2hvdWxkQmUoImp3ay5r
ZXlfb3BzIiwgSlNPTi5zdHJpbmdpZnkoZXhwZWN0ZWRLZXlPcHMpKTsKICAgICAgICAgZGVidWco
IiIpOwogICAgIH0pOwogfQogCiBQcm9taXNlLmFsbChbCi0gICAgdGVzdFdpdGhBRVNDQkMoWyJl
bmNyeXB0Il0sICJlbmNvbmx5IiksCi0gICAgdGVzdFdpdGhBRVNDQkMoWyJkZWNyeXB0Il0sICJk
ZWNvbmx5IiksCi0gICAgdGVzdFdpdGhBRVNDQkMoWyJlbmNyeXB0IiwgImRlY3J5cHQiXSwgImVu
Y29ubHksZGVjb25seSIpLAotICAgIHRlc3RXaXRoQUVTQ0JDKFsid3JhcEtleSJdLCAid3JhcCIp
LAotICAgIHRlc3RXaXRoQUVTQ0JDKFsidW53cmFwS2V5Il0sICJ1bndyYXAiKSwKLSAgICB0ZXN0
V2l0aEFFU0NCQyhbIndyYXBLZXkiLCAidW53cmFwS2V5Il0sICJ3cmFwLHVud3JhcCIpLAotICAg
IHRlc3RXaXRoQUVTQ0JDKFsiZW5jcnlwdCIsICJkZWNyeXB0IiwgIndyYXBLZXkiXSwgImVuY29u
bHksZGVjb25seSx3cmFwIiksCi0gICAgdGVzdFdpdGhBRVNDQkMoWyJlbmNyeXB0IiwgImRlY3J5
cHQiLCAid3JhcEtleSIsICJ1bndyYXBLZXkiXSwgImVuYyIpLAotICAgIHRlc3RXaXRoSE1BQyhb
InNpZ24iXSwgInNpZ29ubHkiKSwKLSAgICB0ZXN0V2l0aEhNQUMoWyJ2ZXJpZnkiXSwgInZmeW9u
bHkiKSwKLSAgICB0ZXN0V2l0aEhNQUMoWyJzaWduIiwgInZlcmlmeSJdLCAic2lnIiksCisgICAg
dGVzdFdpdGhBRVNDQkMoWyJlbmNyeXB0Il0sIFsiZW5jcnlwdCJdKSwKKyAgICB0ZXN0V2l0aEFF
U0NCQyhbImRlY3J5cHQiXSwgWyJkZWNyeXB0Il0pLAorICAgIHRlc3RXaXRoQUVTQ0JDKFsiZW5j
cnlwdCIsICJkZWNyeXB0Il0sIFsiZW5jcnlwdCIsICJkZWNyeXB0Il0pLAorICAgIHRlc3RXaXRo
QUVTQ0JDKFsid3JhcEtleSJdLCBbIndyYXAiXSksCisgICAgdGVzdFdpdGhBRVNDQkMoWyJ1bndy
YXBLZXkiXSwgWyJ1bndyYXAiXSksCisgICAgdGVzdFdpdGhBRVNDQkMoWyJ3cmFwS2V5IiwgInVu
d3JhcEtleSJdLCBbIndyYXAiLCAidW53cmFwIl0pLAorICAgIHRlc3RXaXRoQUVTQ0JDKFsiZW5j
cnlwdCIsICJkZWNyeXB0IiwgIndyYXBLZXkiXSwgWyJlbmNyeXB0IiwgImRlY3J5cHQiLCAid3Jh
cCJdKSwKKyAgICB0ZXN0V2l0aEFFU0NCQyhbImVuY3J5cHQiLCAiZGVjcnlwdCIsICJ3cmFwS2V5
IiwgInVud3JhcEtleSJdLCBbImVuY3J5cHQiLCAiZGVjcnlwdCIsICJ3cmFwIiwgInVud3JhcCJd
KSwKKyAgICB0ZXN0V2l0aEhNQUMoWyJzaWduIl0sIFsic2lnbiJdKSwKKyAgICB0ZXN0V2l0aEhN
QUMoWyJ2ZXJpZnkiXSwgWyJ2ZXJpZnkiXSksCisgICAgdGVzdFdpdGhITUFDKFsic2lnbiIsICJ2
ZXJpZnkiXSwgWyJzaWduIiwgInZlcmlmeSJdKSwKIF0pLnRoZW4oZnVuY3Rpb24oKSB7IGZpbmlz
aEpTVGVzdCgpOyB9ICk7CiA8L3NjcmlwdD4KIApJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3N1
YnRsZS9qd2staW1wb3J0LXVzZS12YWx1ZXMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvandrLWltcG9ydC11c2UtdmFsdWVzLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMTYzMTMzKQorKysgTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9qd2staW1w
b3J0LXVzZS12YWx1ZXMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0zLDU0ICszLDUw
IEBAIFRlc3QgaW1wb3J0aW5nIGtleXMgd2l0aCB2YXJpb3VzIHVzZXMgZnIKIE9uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KIAogCi1lbmNvbmx5OgorUEFTUyB0ZXN0V2l0aEFFU0NCQyhbImVuY3J5
cHQiXSwge2tleV9vcHM6IFsiZW5jcnlwdCIsICJlbmNyeXB0Il19KSB0aHJldyBleGNlcHRpb24g
VHlwZUVycm9yOiBKV0sga2V5X29wcyBjb250YWlucyBhIGR1cGxpY2F0ZSBvcGVyYXRpb24uCisK
K3sia2V5X29wcyI6WyJlbmNyeXB0Il19OgogUEFTUyBrZXkudXNhZ2VzIGlzIFsiZW5jcnlwdCJd
CiAKLWRlY29ubHk6Cit7ImtleV9vcHMiOlsiZGVjcnlwdCJdfToKIFBBU1Mga2V5LnVzYWdlcyBp
cyBbImRlY3J5cHQiXQogCi1lbmNvbmx5LGRlY29ubHk6Cit7ImtleV9vcHMiOlsiZW5jcnlwdCIs
ImRlY3J5cHQiXX06CiBQQVNTIGtleS51c2FnZXMgaXMgWyJkZWNyeXB0IiwiZW5jcnlwdCJdCiAK
LXdyYXA6Cit7ImtleV9vcHMiOlsid3JhcCJdfToKIFBBU1Mga2V5LnVzYWdlcyBpcyBbIndyYXBL
ZXkiXQogCi11bndyYXA6Cit7ImtleV9vcHMiOlsidW53cmFwIl19OgogUEFTUyBrZXkudXNhZ2Vz
IGlzIFsidW53cmFwS2V5Il0KIAotd3JhcCx1bndyYXA6Cit7ImtleV9vcHMiOlsid3JhcCIsInVu
d3JhcCJdfToKIFBBU1Mga2V5LnVzYWdlcyBpcyBbInVud3JhcEtleSIsIndyYXBLZXkiXQogCi1l
bmNvbmx5LGRlY29ubHksd3JhcDoKK3sia2V5X29wcyI6WyJlbmNyeXB0IiwiZGVjcnlwdCIsIndy
YXAiXX06CiBQQVNTIGtleS51c2FnZXMgaXMgWyJkZWNyeXB0IiwiZW5jcnlwdCIsIndyYXBLZXki
XQogCi1lbmM6Cit7InVzZSI6ImVuYyJ9OgogUEFTUyBrZXkudXNhZ2VzIGlzIFsiZGVjcnlwdCIs
ImVuY3J5cHQiLCJ1bndyYXBLZXkiLCJ3cmFwS2V5Il0KIAotc2lnb25seToKK3sia2V5X29wcyI6
WyJzaWduIl19OgogUEFTUyBrZXkudXNhZ2VzIGlzIFsic2lnbiJdCiAKLXZmeW9ubHk6Cit7Imtl
eV9vcHMiOlsidmVyaWZ5Il19OgogUEFTUyBrZXkudXNhZ2VzIGlzIFsidmVyaWZ5Il0KIAotc2ln
OgoreyJ1c2UiOiJzaWcifToKIFBBU1Mga2V5LnVzYWdlcyBpcyBbInNpZ24iLCJ2ZXJpZnkiXQog
Ci0nZW5jb25seSc6Cit7ImtleV9vcHMiOlsiJ2VuY3J5cHQnIl19OgogUEFTUyBrZXkudXNhZ2Vz
IGlzIFtdCiAKLWVuY29ubHkgOgoreyJrZXlfb3BzIjpbImVuY3J5cHQgIl19OgogUEFTUyBrZXku
dXNhZ2VzIGlzIFtdCiAKLUVuY09ubHk6Cit7ImtleV9vcHMiOlsiRW5jcnlwdCJdfToKIFBBU1Mg
a2V5LnVzYWdlcyBpcyBbXQogCi1lbmNvbmx5LCBkZWNvbmx5OgotUEFTUyBrZXkudXNhZ2VzIGlz
IFsiZW5jcnlwdCJdCi0KLWVuY29ubHksLGRlY29ubHk6Ci1QQVNTIGtleS51c2FnZXMgaXMgWyJk
ZWNyeXB0IiwiZW5jcnlwdCJdCi0KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAog
VEVTVCBDT01QTEVURQpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9qd2staW1wb3J0
LXVzZS12YWx1ZXMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxl
L2p3ay1pbXBvcnQtdXNlLXZhbHVlcy5odG1sCShyZXZpc2lvbiAxNjMxMzMpCisrKyBMYXlvdXRU
ZXN0cy9jcnlwdG8vc3VidGxlL2p3ay1pbXBvcnQtdXNlLXZhbHVlcy5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0yOSw0NyArMjksNjMgQEAgdmFyIGhtYWNLZXlBc0pTT04gPSB7CiAgICAgImsiOiAi
YWhqa24tXzM4N2ZnbnNpYmYyM3FzdmFoamtuLV8zODdmZ25zaWJmMjNxcyIKIH07CiAKLWZ1bmN0
aW9uIHRlc3RXaXRoQUVTQ0JDKGV4cGVjdGVkVXNhZ2VzLCB1c2UpCitmdW5jdGlvbiB0ZXN0V2l0
aEFFU0NCQyhleHBlY3RlZFVzYWdlcywgandrVXNhZ2VzKQogewotICAgIGFlc0tleUFzSlNPTi51
c2UgPSB1c2U7CisgICAgaWYgKGp3a1VzYWdlcy5rZXlfb3BzKSB7CisgICAgICAgIGFlc0tleUFz
SlNPTi5rZXlfb3BzID0gandrVXNhZ2VzLmtleV9vcHM7CisgICAgICAgIGRlbGV0ZSBhZXNLZXlB
c0pTT04udXNlOworICAgIH0gZWxzZSB7CisgICAgICAgIGRlbGV0ZSBhZXNLZXlBc0pTT04ua2V5
X29wczsKKyAgICAgICAgYWVzS2V5QXNKU09OLnVzZSA9IGp3a1VzYWdlcy51c2U7CisgICAgfQor
CiAgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhB
cnJheShKU09OLnN0cmluZ2lmeShhZXNLZXlBc0pTT04pKSwgIkFFUy1DQkMiLCBleHRyYWN0YWJs
ZSwgWyJlbmNyeXB0IiwgImRlY3J5cHQiLCAid3JhcEtleSIsICJ1bndyYXBLZXkiXSkudGhlbihm
dW5jdGlvbihyZXN1bHQpIHsKICAgICAgICAga2V5ID0gcmVzdWx0OwotICAgICAgICBkZWJ1Zyh1
c2UgKyAiOiIpOworICAgICAgICBkZWJ1ZyhKU09OLnN0cmluZ2lmeShqd2tVc2FnZXMpICsgIjoi
KTsKICAgICAgICAgc2hvdWxkQmUoImtleS51c2FnZXMiLCBKU09OLnN0cmluZ2lmeShleHBlY3Rl
ZFVzYWdlcykpOwogICAgICAgICBkZWJ1ZygiIik7CiAgICAgfSk7CiB9CiAKLWZ1bmN0aW9uIHRl
c3RXaXRoSE1BQyhleHBlY3RlZFVzYWdlcywgdXNlKQorZnVuY3Rpb24gdGVzdFdpdGhITUFDKGV4
cGVjdGVkVXNhZ2VzLCBqd2tVc2FnZXMpCiB7Ci0gICAgaG1hY0tleUFzSlNPTi51c2UgPSB1c2U7
CisgICAgaWYgKGp3a1VzYWdlcy5rZXlfb3BzKSB7CisgICAgICAgIGhtYWNLZXlBc0pTT04ua2V5
X29wcyA9IGp3a1VzYWdlcy5rZXlfb3BzOworICAgICAgICBkZWxldGUgaG1hY0tleUFzSlNPTi51
c2U7CisgICAgfSBlbHNlIHsKKyAgICAgICAgZGVsZXRlIGhtYWNLZXlBc0pTT04ua2V5X29wczsK
KyAgICAgICAgaG1hY0tleUFzSlNPTi51c2UgPSBqd2tVc2FnZXMudXNlOworICAgIH0KKwogICAg
IHJldHVybiBjcnlwdG8uc3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4QXJyYXko
SlNPTi5zdHJpbmdpZnkoaG1hY0tleUFzSlNPTikpLCB7bmFtZTogJ2htYWMnLCBoYXNoOiB7bmFt
ZTogJ3NoYS0yNTYnfX0sIGV4dHJhY3RhYmxlLCBbInNpZ24iLCAidmVyaWZ5Il0pLnRoZW4oZnVu
Y3Rpb24ocmVzdWx0KSB7CiAgICAgICAgIGtleSA9IHJlc3VsdDsKLSAgICAgICAgZGVidWcodXNl
ICsgIjoiKTsKKyAgICAgICAgZGVidWcoSlNPTi5zdHJpbmdpZnkoandrVXNhZ2VzKSArICI6Iik7
CiAgICAgICAgIHNob3VsZEJlKCJrZXkudXNhZ2VzIiwgSlNPTi5zdHJpbmdpZnkoZXhwZWN0ZWRV
c2FnZXMpKTsKICAgICAgICAgZGVidWcoIiIpOwogICAgIH0pOwogfQogCisvLyBEdXBsaWNhdGVz
IGFyZSBub3QgYWxsb3dlZC4gV2UgY3VycmVudGx5IHJhaXNlIGFuIGV4Y2VwdGlvbiwgYWx0aG91
Z2ggd2Ugc2hvdWxkIHJlamVjdCB0aGUgcHJvbWlzZSBpbnN0ZWFkLgorc2hvdWxkVGhyb3coJ3Rl
c3RXaXRoQUVTQ0JDKFsiZW5jcnlwdCJdLCB7a2V5X29wczogWyJlbmNyeXB0IiwgImVuY3J5cHQi
XX0pJyk7CitkZWJ1ZygiIik7CisKIFByb21pc2UuYWxsKFsKLSAgICB0ZXN0V2l0aEFFU0NCQyhb
ImVuY3J5cHQiXSwgImVuY29ubHkiKSwKLSAgICB0ZXN0V2l0aEFFU0NCQyhbImRlY3J5cHQiXSwg
ImRlY29ubHkiKSwKLSAgICB0ZXN0V2l0aEFFU0NCQyhbImRlY3J5cHQiLCAiZW5jcnlwdCJdLCAi
ZW5jb25seSxkZWNvbmx5IiksCi0gICAgdGVzdFdpdGhBRVNDQkMoWyJ3cmFwS2V5Il0sICJ3cmFw
IiksCi0gICAgdGVzdFdpdGhBRVNDQkMoWyJ1bndyYXBLZXkiXSwgInVud3JhcCIpLAotICAgIHRl
c3RXaXRoQUVTQ0JDKFsidW53cmFwS2V5IiwgIndyYXBLZXkiXSwgIndyYXAsdW53cmFwIiksCi0g
ICAgdGVzdFdpdGhBRVNDQkMoWyJkZWNyeXB0IiwgImVuY3J5cHQiLCAid3JhcEtleSJdLCAiZW5j
b25seSxkZWNvbmx5LHdyYXAiKSwKLSAgICB0ZXN0V2l0aEFFU0NCQyhbImRlY3J5cHQiLCAiZW5j
cnlwdCIsICJ1bndyYXBLZXkiLCAid3JhcEtleSJdLCAiZW5jIiksCi0gICAgdGVzdFdpdGhITUFD
KFsic2lnbiJdLCAic2lnb25seSIpLAotICAgIHRlc3RXaXRoSE1BQyhbInZlcmlmeSJdLCAidmZ5
b25seSIpLAotICAgIHRlc3RXaXRoSE1BQyhbInNpZ24iLCAidmVyaWZ5Il0sICJzaWciKSwKLQot
Ly8gSW5jb3JyZWN0IHVzZSBzdHJpbmdzLiBUaGVyZSBpcyBjdXJyZW50bHkgbm8gc3BlYyBmb3Ig
d2hhdCB0byBkbywgYnV0IGlnbm9yaW5nIHVua25vd24gdXNlcyBzZWVtcyByaWdodC4KLSAgICB0
ZXN0V2l0aEFFU0NCQyhbXSwgIidlbmNvbmx5JyIpLAotICAgIHRlc3RXaXRoQUVTQ0JDKFtdLCAi
ZW5jb25seSAiKSwKLSAgICB0ZXN0V2l0aEFFU0NCQyhbXSwgIkVuY09ubHkiKSwKLSAgICB0ZXN0
V2l0aEFFU0NCQyhbImVuY3J5cHQiXSwgImVuY29ubHksIGRlY29ubHkiKSwKLSAgICB0ZXN0V2l0
aEFFU0NCQyhbImRlY3J5cHQiLCJlbmNyeXB0Il0sICJlbmNvbmx5LCxkZWNvbmx5IiksCisgICAg
dGVzdFdpdGhBRVNDQkMoWyJlbmNyeXB0Il0sIHtrZXlfb3BzOiBbImVuY3J5cHQiXX0pLAorICAg
IHRlc3RXaXRoQUVTQ0JDKFsiZGVjcnlwdCJdLCB7a2V5X29wczogWyJkZWNyeXB0Il19KSwKKyAg
ICB0ZXN0V2l0aEFFU0NCQyhbImRlY3J5cHQiLCAiZW5jcnlwdCJdLCB7a2V5X29wczogWyJlbmNy
eXB0IiwgImRlY3J5cHQiXX0pLAorICAgIHRlc3RXaXRoQUVTQ0JDKFsid3JhcEtleSJdLCB7a2V5
X29wczogWyJ3cmFwIl19KSwKKyAgICB0ZXN0V2l0aEFFU0NCQyhbInVud3JhcEtleSJdLCB7a2V5
X29wczogWyJ1bndyYXAiXX0pLAorICAgIHRlc3RXaXRoQUVTQ0JDKFsidW53cmFwS2V5IiwgIndy
YXBLZXkiXSwge2tleV9vcHM6IFsid3JhcCIsICJ1bndyYXAiXX0pLAorICAgIHRlc3RXaXRoQUVT
Q0JDKFsiZGVjcnlwdCIsICJlbmNyeXB0IiwgIndyYXBLZXkiXSwge2tleV9vcHM6IFsiZW5jcnlw
dCIsICJkZWNyeXB0IiwgIndyYXAiXX0pLAorICAgIHRlc3RXaXRoQUVTQ0JDKFsiZGVjcnlwdCIs
ICJlbmNyeXB0IiwgInVud3JhcEtleSIsICJ3cmFwS2V5Il0sIHt1c2U6ICJlbmMifSksCisgICAg
dGVzdFdpdGhITUFDKFsic2lnbiJdLCB7a2V5X29wczogWyJzaWduIl19KSwKKyAgICB0ZXN0V2l0
aEhNQUMoWyJ2ZXJpZnkiXSwge2tleV9vcHM6IFsidmVyaWZ5Il19KSwKKyAgICB0ZXN0V2l0aEhN
QUMoWyJzaWduIiwgInZlcmlmeSJdLCB7dXNlOiAic2lnIn0pLAorCisvLyBVbmtub3duIGtleV9v
cHMgc3RyaW5ncyBhcmUgaWdub3JlZC4KKyAgICB0ZXN0V2l0aEFFU0NCQyhbXSwge2tleV9vcHM6
IFsiJ2VuY3J5cHQnIl19KSwKKyAgICB0ZXN0V2l0aEFFU0NCQyhbXSwge2tleV9vcHM6IFsiZW5j
cnlwdCAiXX0pLAorICAgIHRlc3RXaXRoQUVTQ0JDKFtdLCB7a2V5X29wczogWyJFbmNyeXB0Il19
KSwKIAogXSkudGhlbihmdW5jdGlvbigpIHsgZmluaXNoSlNUZXN0KCk7IH0gKTsKIDwvc2NyaXB0
PgpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2EtZXhwb3J0LWtleS1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2EtZXhwb3J0
LWtleS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE2MzEzMykKKysrIExheW91dFRlc3RzL2NyeXB0
by9zdWJ0bGUvcnNhLWV4cG9ydC1rZXktZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0x
Nyw3ICsxNyw4IEBAIFBBU1MgZXhwb3J0ZWRKV0subiBpcyBwdWJsaWNLZXlKU09OLm4KIFBBU1Mg
ZXhwb3J0ZWRKV0suZSBpcyBwdWJsaWNLZXlKU09OLmUKIFBBU1MgZXhwb3J0ZWRKV0suYWxnIGlz
ICdSUzI1NicKIFBBU1MgZXhwb3J0ZWRKV0suZXh0IGlzIHRydWUKLVBBU1MgZXhwb3J0ZWRKV0su
dXNlIGlzICdzaWcnCitQQVNTIGV4cG9ydGVkSldLLnVzZSBpcyB1bmRlZmluZWQKK1BBU1MgZXhw
b3J0ZWRKV0sua2V5X29wcyBpcyBbJ3NpZ24nLCAndmVyaWZ5J10KIFBBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRv
L3N1YnRsZS9yc2EtZXhwb3J0LWtleS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Ny
eXB0by9zdWJ0bGUvcnNhLWV4cG9ydC1rZXkuaHRtbAkocmV2aXNpb24gMTYzMTMzKQorKysgTGF5
b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2EtZXhwb3J0LWtleS5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC00NSw3ICs0NSw4IEBAIGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBqd2tLZXlB
c0EKICAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0suZSIsICJwdWJsaWNLZXlKU09OLmUiKTsKICAg
ICBzaG91bGRCZSgiZXhwb3J0ZWRKV0suYWxnIiwgIidSUzI1NiciKTsKICAgICBzaG91bGRCZSgi
ZXhwb3J0ZWRKV0suZXh0IiwgInRydWUiKTsKLSAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0sudXNl
IiwgIidzaWcnIik7CisgICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLnVzZSIsICJ1bmRlZmluZWQi
KTsKKyAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0sua2V5X29wcyIsICJbJ3NpZ24nLCAndmVyaWZ5
J10iKTsKIAogICAgIGZpbmlzaEpTVGVzdCgpOwogfSk7CkluZGV4OiBMYXlvdXRUZXN0cy9jcnlw
dG8vc3VidGxlL3JzYS1leHBvcnQtcHJpdmF0ZS1rZXktZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNhLWV4cG9ydC1wcml2YXRlLWtleS1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDE2MzEzMykKKysrIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUv
cnNhLWV4cG9ydC1wcml2YXRlLWtleS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTE5
LDcgKzE5LDggQEAgUEFTUyBleHBvcnRlZEpXSy5xaSBpcyBwcml2YXRlS2V5SlNPTi5xaQogUEFT
UyBleHBvcnRlZEpXSy5vdGggaXMgcHJpdmF0ZUtleUpTT04ub3RoCiBQQVNTIGV4cG9ydGVkSldL
LmFsZyBpcyBwcml2YXRlS2V5SlNPTi5hbGcKIFBBU1MgZXhwb3J0ZWRKV0suZXh0IGlzIHRydWUK
LVBBU1MgZXhwb3J0ZWRKV0sudXNlIGlzICdzaWcnCitQQVNTIGV4cG9ydGVkSldLLmtleV9vcHMg
aXMgWydzaWduJywgJ3ZlcmlmeSddCitQQVNTIGV4cG9ydGVkSldLLnVzZSBpcyB1bmRlZmluZWQK
IFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpJbmRleDog
TGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2EtZXhwb3J0LXByaXZhdGUta2V5Lmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2EtZXhwb3J0LXByaXZhdGUt
a2V5Lmh0bWwJKHJldmlzaW9uIDE2MzEzMykKKysrIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUv
cnNhLWV4cG9ydC1wcml2YXRlLWtleS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC01Myw3ICs1Myw4
IEBAIGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBqd2tLZXlBc0EKICAgICBzaG91bGRC
ZSgiZXhwb3J0ZWRKV0sub3RoIiwgInByaXZhdGVLZXlKU09OLm90aCIpOwogICAgIHNob3VsZEJl
KCJleHBvcnRlZEpXSy5hbGciLCAicHJpdmF0ZUtleUpTT04uYWxnIik7CiAgICAgc2hvdWxkQmUo
ImV4cG9ydGVkSldLLmV4dCIsICJ0cnVlIik7Ci0gICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLnVz
ZSIsICInc2lnJyIpOworICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5rZXlfb3BzIiwgIlsnc2ln
bicsICd2ZXJpZnknXSIpOworICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy51c2UiLCAidW5kZWZp
bmVkIik7CiAKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0pOwpJbmRleDogTGF5b3V0VGVzdHMvY3J5
cHRvL3N1YnRsZS9yc2Etb2FlcC1rZXktbWFuaXB1bGF0aW9uLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYS1vYWVwLWtleS1tYW5pcHVsYXRp
b24tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxNjMxMzMpCisrKyBMYXlvdXRUZXN0cy9jcnlwdG8v
c3VidGxlL3JzYS1vYWVwLWtleS1tYW5pcHVsYXRpb24tZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNv
cHkpCkBAIC0yNyw3ICsyNyw4IEBAIFBBU1MgUHJvbWlzZSByZWplY3RlZCBmb3IgZXhwb3J0aW5n
IHByaXYKIEV4cG9ydGluZyBwdWJsaWMga2V5IHRvIEpXSy4uLgogUEFTUyBqd2tQdWJsaWNLZXku
YWxnIGlzICdSU0EtT0FFUCcKIFBBU1MgandrUHVibGljS2V5LmV4dCBpcyB0cnVlCi1QQVNTIGp3
a1B1YmxpY0tleS51c2UgaXMgJ2VuYycKK1BBU1MgandrUHVibGljS2V5LmtleV9vcHMgaXMgWydl
bmNyeXB0JywgJ2RlY3J5cHQnLCAnd3JhcCcsICd1bndyYXAnXQorUEFTUyBqd2tQdWJsaWNLZXku
dXNlIGlzIHVuZGVmaW5lZAogUEFTUyBqd2tQdWJsaWNLZXkua3R5IGlzICdSU0EnCiBQQVNTIGJ5
dGVzVG9IZXhTdHJpbmcoQmFzZTY0VVJMLnBhcnNlKGp3a1B1YmxpY0tleS5lKSkgaXMgJzAxMDAw
MScKIApJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2Etb2FlcC1rZXktbWFuaXB1
bGF0aW9uLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2Et
b2FlcC1rZXktbWFuaXB1bGF0aW9uLmh0bWwJKHJldmlzaW9uIDE2MzEzMykKKysrIExheW91dFRl
c3RzL2NyeXB0by9zdWJ0bGUvcnNhLW9hZXAta2V5LW1hbmlwdWxhdGlvbi5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC01Niw3ICs1Niw4IEBAIGNyeXB0by5zdWJ0bGUuZ2VuZXJhdGVLZXkoYWxnb3Jp
dGhtS2V5R2UKICAgICBqd2tQdWJsaWNLZXkgPSBKU09OLnBhcnNlKGJ5dGVzVG9BU0NJSVN0cmlu
Zyhqd2tQdWJsaWNLZXlBcnJheSkpOwogICAgIHNob3VsZEJlKCJqd2tQdWJsaWNLZXkuYWxnIiwg
IidSU0EtT0FFUCciKTsKICAgICBzaG91bGRCZSgiandrUHVibGljS2V5LmV4dCIsICJ0cnVlIik7
Ci0gICAgc2hvdWxkQmUoImp3a1B1YmxpY0tleS51c2UiLCAiJ2VuYyciKTsKKyAgICBzaG91bGRC
ZSgiandrUHVibGljS2V5LmtleV9vcHMiLCAiWydlbmNyeXB0JywgJ2RlY3J5cHQnLCAnd3JhcCcs
ICd1bndyYXAnXSIpOworICAgIHNob3VsZEJlKCJqd2tQdWJsaWNLZXkudXNlIiwgInVuZGVmaW5l
ZCIpOwogICAgIHNob3VsZEJlKCJqd2tQdWJsaWNLZXkua3R5IiwgIidSU0EnIik7CiAgICAgc2hv
dWxkQmUoImJ5dGVzVG9IZXhTdHJpbmcoQmFzZTY0VVJMLnBhcnNlKGp3a1B1YmxpY0tleS5lKSki
LCAiJzAxMDAwMSciKTsKIApJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2EtcG9z
dE1lc3NhZ2UtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NyeXB0by9z
dWJ0bGUvcnNhLXBvc3RNZXNzYWdlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTYzMTMzKQorKysg
TGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2EtcG9zdE1lc3NhZ2UtZXhwZWN0ZWQudHh0CSh3
b3JraW5nIGNvcHkpCkBAIC0xNSw3ICsxNSw4IEBAIEV4cG9ydGVkIGJhY2sgdG8gSldLOgogUEFT
UyBleHBvcnRlZEpXSy5rdHkgaXMgJ1JTQScKIFBBU1MgZXhwb3J0ZWRKV0suYWxnIGlzICdSUzI1
NicKIFBBU1MgZXhwb3J0ZWRKV0suZXh0IGlzIHRydWUKLVBBU1MgZXhwb3J0ZWRKV0sudXNlIGlz
ICdzaWcnCitQQVNTIGV4cG9ydGVkSldLLmtleV9vcHMgaXMgWydzaWduJywndmVyaWZ5J10KK1BB
U1MgZXhwb3J0ZWRKV0sudXNlIGlzIHVuZGVmaW5lZAogUEFTUyBleHBvcnRlZEpXSy5uIGlzIHBy
aXZhdGVLZXlKU09OLm4KIFBBU1MgZXhwb3J0ZWRKV0suZSBpcyBwcml2YXRlS2V5SlNPTi5lCiBQ
QVNTIGV4cG9ydGVkSldLLmQgaXMgcHJpdmF0ZUtleUpTT04uZApJbmRleDogTGF5b3V0VGVzdHMv
Y3J5cHRvL3N1YnRsZS9yc2EtcG9zdE1lc3NhZ2UuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9jcnlwdG8vc3VidGxlL3JzYS1wb3N0TWVzc2FnZS5odG1sCShyZXZpc2lvbiAxNjMxMzMp
CisrKyBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYS1wb3N0TWVzc2FnZS5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC00MSw3ICs0MSw4IEBAIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNz
YWdlIiwgZnVuY3QKICAgICAgICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLmt0eSIsICInUlNBJyIp
OwogICAgICAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0suYWxnIiwgIidSUzI1NiciKTsKICAgICAg
ICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLmV4dCIsICJ0cnVlIik7Ci0gICAgICAgIHNob3VsZEJl
KCJleHBvcnRlZEpXSy51c2UiLCAiJ3NpZyciKTsKKyAgICAgICAgc2hvdWxkQmUoImV4cG9ydGVk
SldLLmtleV9vcHMiLCAiWydzaWduJywndmVyaWZ5J10iKTsKKyAgICAgICAgc2hvdWxkQmUoImV4
cG9ydGVkSldLLnVzZSIsICJ1bmRlZmluZWQiKTsKICAgICAgICAgc2hvdWxkQmUoImV4cG9ydGVk
SldLLm4iLCAicHJpdmF0ZUtleUpTT04ubiIpOwogICAgICAgICBzaG91bGRCZSgiZXhwb3J0ZWRK
V0suZSIsICJwcml2YXRlS2V5SlNPTi5lIik7CiAgICAgICAgIHNob3VsZEJlKCJleHBvcnRlZEpX
Sy5kIiwgInByaXZhdGVLZXlKU09OLmQiKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>