<?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>164404</bug_id>
          
          <creation_ts>2016-11-03 21:51:35 -0700</creation_ts>
          <short_desc>IndexedDB 2.0: Implement new IDBCursor.continuePrimaryKey function</short_desc>
          <delta_ts>2016-11-09 15:33:17 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>164504</dependson>
          <blocked>160306</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>achristensen</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1248037</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-11-03 21:51:35 -0700</bug_when>
    <thetext>IndexedDB 2.0: Implement new IDBCursor.continuePrimaryKey function</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1249125</commentid>
    <comment_count>1</comment_count>
      <attachid>294183</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-11-08 14:14:17 -0800</bug_when>
    <thetext>Created attachment 294183
Patch

Note: This will likely NOT apply to trunk because it builds upon multiple reviewed patches that haven&apos;t landed due to the tree closure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1249181</commentid>
    <comment_count>2</comment_count>
      <attachid>294183</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-11-08 16:46:05 -0800</bug_when>
    <thetext>Comment on attachment 294183
Patch

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

&gt; LayoutTests/storage/indexeddb/modern/resources/idbcursor-continue-primary-key-1.js:489
&gt; +// indexeddb_test(

What&apos;s all this commented-out code?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1249205</commentid>
    <comment_count>3</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-11-08 17:56:50 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 294183 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=294183&amp;action=review
&gt; 
&gt; &gt; LayoutTests/storage/indexeddb/modern/resources/idbcursor-continue-primary-key-1.js:489
&gt; &gt; +// indexeddb_test(
&gt; 
&gt; What&apos;s all this commented-out code?

Whoops! Sorry, it&apos;s gone, but I just didn&apos;t stage it.

Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1249537</commentid>
    <comment_count>4</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-11-09 15:33:17 -0800</bug_when>
    <thetext>https://trac.webkit.org/changeset/208500</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>294183</attachid>
            <date>2016-11-08 14:14:17 -0800</date>
            <delta_ts>2016-11-08 16:46:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>55439</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0MDA3ZGU4Li43NjJlMWVjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTYtMTEt
MDggIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIEluZGV4ZWRE
QiAyLjA6IEltcGxlbWVudCBuZXcgSURCQ3Vyc29yLmNvbnRpbnVlUHJpbWFyeUtleSBmdW5jdGlv
bi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDQw
NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3Rv
cmFnZS9pbmRleGVkZGIvY3Vyc29yLWJhc2ljcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3Rv
cmFnZS9pbmRleGVkZGIvY3Vyc29yLWJhc2ljcy1wcml2YXRlLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRiY3Vyc29yLWNvbnRpbnVlLXByaW1hcnkt
a2V5LTEtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9t
b2Rlcm4vaWRiY3Vyc29yLWNvbnRpbnVlLXByaW1hcnkta2V5LTEtcHJpdmF0ZS1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJjdXJzb3It
Y29udGludWUtcHJpbWFyeS1rZXktMS1wcml2YXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN0
b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJjdXJzb3ItY29udGludWUtcHJpbWFyeS1rZXktMS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2Vz
L2lkYmN1cnNvci1jb250aW51ZS1wcmltYXJ5LWtleS0xLmpzOiBBZGRlZC4KKwogMjAxNi0xMS0w
NyAgUnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMjA4MzgyLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5k
ZXggMGRhZjJiNS4uNGMxMmY2NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTIgQEAKKzIwMTYtMTEtMDggIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29t
PgorCisgICAgICAgIEluZGV4ZWREQiAyLjA6IEltcGxlbWVudCBuZXcgSURCQ3Vyc29yLmNvbnRp
bnVlUHJpbWFyeUtleSBmdW5jdGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE2NDQwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3It
Y29udGludWVQcmltYXJ5S2V5LWV4Y2VwdGlvbi1vcmRlci1leHBlY3RlZC50eHQ6CisKIDIwMTYt
MTEtMDcgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIEluZGV4
ZWREQiAyLjA6IENsZWFuIHVwIG1vcmUgdHJhbnNhY3Rpb24gYWJvcnQgYmVoYXZpb3IsIGluY2x1
ZGluZyB0d2Vha3MgdG8gSW5kZXgvT2JqZWN0U3RvcmUgbGlmZXRpbWUuCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJj
dXJzb3ItY29udGludWVQcmltYXJ5S2V5LWV4Y2VwdGlvbi1vcmRlci1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJj
dXJzb3ItY29udGludWVQcmltYXJ5S2V5LWV4Y2VwdGlvbi1vcmRlci1leHBlY3RlZC50eHQKaW5k
ZXggZTdiYjE5Yi4uZmQ2NDQ1MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yLWNvbnRpbnVlUHJpbWFyeUtl
eS1leGNlcHRpb24tb3JkZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvci1jb250aW51ZVByaW1h
cnlLZXktZXhjZXB0aW9uLW9yZGVyLWV4cGVjdGVkLnR4dApAQCAtMSwzMiArMSwxNSBAQAotQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDI0MjI6IEVycm9yOiBhc3NlcnRfdGhyb3dzOiB0cmFuc2FjdGlv
bi1zdGF0ZSBjaGVjayBzaG91bGQgcHJlY2VkZSBkZWxldGlvbiBjaGVjayBmdW5jdGlvbiAiZnVu
Y3Rpb24gKCkgewotICAgICAgICAgICAgICAgIGN1cnNvci5jb250aW51ZVByaW1hcnlLZXkoIi4u
LiIgdGhyZXcgb2JqZWN0ICJUeXBlRXJyb3I6IGN1cnNvci5jb250aW51ZVByaW1hcnlLZXkgaXMg
bm90IGEgZnVuY3Rpb24uICguLi4iIHRoYXQgaXMgbm90IGEgRE9NRXhjZXB0aW9uIFRyYW5zYWN0
aW9uSW5hY3RpdmVFcnJvcjogcHJvcGVydHkgImNvZGUiIGlzIGVxdWFsIHRvIHVuZGVmaW5lZCwg
ZXhwZWN0ZWQgMAogCi1IYXJuZXNzIEVycm9yIChGQUlMKSwgbWVzc2FnZSA9IEVycm9yOiBhc3Nl
cnRfdGhyb3dzOiB0cmFuc2FjdGlvbi1zdGF0ZSBjaGVjayBzaG91bGQgcHJlY2VkZSBkZWxldGlv
biBjaGVjayBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAgIGN1cnNvci5j
b250aW51ZVByaW1hcnlLZXkoIi4uLiIgdGhyZXcgb2JqZWN0ICJUeXBlRXJyb3I6IGN1cnNvci5j
b250aW51ZVByaW1hcnlLZXkgaXMgbm90IGEgZnVuY3Rpb24uICguLi4iIHRoYXQgaXMgbm90IGEg
RE9NRXhjZXB0aW9uIFRyYW5zYWN0aW9uSW5hY3RpdmVFcnJvcjogcHJvcGVydHkgImNvZGUiIGlz
IGVxdWFsIHRvIHVuZGVmaW5lZCwgZXhwZWN0ZWQgMAotCi1USU1FT1VUIFRyYW5zYWN0aW9uSW5h
Y3RpdmVFcnJvciB2LnMuIEludmFsaWRTdGF0ZUVycm9yKGRlbGV0ZWQgaW5kZXgpIFRlc3QgdGlt
ZWQgb3V0Ci1GQUlMIEludmFsaWRTdGF0ZUVycm9yKGRlbGV0ZWQgc291cmNlKSB2LnMuIEludmFs
aWRBY2Nlc3NFcnJvcihpbmNvcnJlY3Qgc291cmNlKSBhc3NlcnRfdGhyb3dzOiBkZWxldGlvbiBj
aGVjayBzaG91bGQgcHJlY2VkZSBpbmRleCBzb3VyY2UgY2hlY2sgZnVuY3Rpb24gImZ1bmN0aW9u
ICgpIHsKLSAgICAgICAgICAgICAgICBjdXJzb3IuY29udGludWVQcmltYXJ5S2V5KCIuLi4iIHRo
cmV3IG9iamVjdCAiVHlwZUVycm9yOiBjdXJzb3IuY29udGludWVQcmltYXJ5S2V5IGlzIG5vdCBh
IGZ1bmN0aW9uLiAoLi4uIiB0aGF0IGlzIG5vdCBhIERPTUV4Y2VwdGlvbiBJbnZhbGlkU3RhdGVF
cnJvcjogcHJvcGVydHkgImNvZGUiIGlzIGVxdWFsIHRvIHVuZGVmaW5lZCwgZXhwZWN0ZWQgMTEK
LUZBSUwgSW52YWxpZFN0YXRlRXJyb3IoZGVsZXRlZCBzb3VyY2UpIHYucy4gSW52YWxpZEFjY2Vz
c0Vycm9yKGluY29ycmVjdCBkaXJlY3Rpb24pIGFzc2VydF90aHJvd3M6IGRlbGV0aW9uIGNoZWNr
IHNob3VsZCBwcmVjZWRlIGN1cnNvciBkaXJlY3Rpb24gY2hlY2sgZnVuY3Rpb24gImZ1bmN0aW9u
ICgpIHsKLSAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlUHJpbWFyeUtleSgiQSIuLi4iIHRo
cmV3IG9iamVjdCAiVHlwZUVycm9yOiBjdXJzb3IuY29udGludWVQcmltYXJ5S2V5IGlzIG5vdCBh
IGZ1bmN0aW9uLiAoLi4uIiB0aGF0IGlzIG5vdCBhIERPTUV4Y2VwdGlvbiBJbnZhbGlkU3RhdGVF
cnJvcjogcHJvcGVydHkgImNvZGUiIGlzIGVxdWFsIHRvIHVuZGVmaW5lZCwgZXhwZWN0ZWQgMTEK
LUZBSUwgSW52YWxpZEFjY2Vzc0Vycm9yKGluY29ycmVjdCBkaXJlY3Rpb24pIHYucy4gSW52YWxp
ZFN0YXRlRXJyb3IoaXRlcmF0aW9uIGNvbXBsZXRlKSBhc3NlcnRfdGhyb3dzOiBkaXJlY3Rpb24g
Y2hlY2sgc2hvdWxkIHByZWNlZGUgZ290X3ZhbHVlX2ZsYWcgY2hlY2sgZnVuY3Rpb24gImZ1bmN0
aW9uICgpIHsKLSAgICAgICAgICAgICAgICBjdXJzb3IuY29udGludWVQcmltYXJ5S2V5KCIuLi4i
IHRocmV3IG9iamVjdCAiVHlwZUVycm9yOiBjdXJzb3IuY29udGludWVQcmltYXJ5S2V5IGlzIG5v
dCBhIGZ1bmN0aW9uLiAoLi4uIiB0aGF0IGlzIG5vdCBhIERPTUV4Y2VwdGlvbiBJbnZhbGlkQWNj
ZXNzRXJyb3I6IHByb3BlcnR5ICJjb2RlIiBpcyBlcXVhbCB0byB1bmRlZmluZWQsIGV4cGVjdGVk
IDE1Ci1GQUlMIEludmFsaWRBY2Nlc3NFcnJvcihpbmNvcnJlY3QgZGlyZWN0aW9uKSB2LnMuIElu
dmFsaWRTdGF0ZUVycm9yKGl0ZXJhdGlvbiBvbmdvaW5nKSBhc3NlcnRfdGhyb3dzOiBkaXJlY3Rp
b24gY2hlY2sgc2hvdWxkIHByZWNlZGUgaXRlcmF0aW9uIG9uZ29pbmcgY2hlY2sgZnVuY3Rpb24g
ImZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlUHJpbWFy
eUsuLi4iIHRocmV3IG9iamVjdCAiVHlwZUVycm9yOiBjdXJzb3IuY29udGludWVQcmltYXJ5S2V5
IGlzIG5vdCBhIGZ1bmN0aW9uLiAoLi4uIiB0aGF0IGlzIG5vdCBhIERPTUV4Y2VwdGlvbiBJbnZh
bGlkQWNjZXNzRXJyb3I6IHByb3BlcnR5ICJjb2RlIiBpcyBlcXVhbCB0byB1bmRlZmluZWQsIGV4
cGVjdGVkIDE1Ci1GQUlMIEludmFsaWRBY2Nlc3NFcnJvcihpbmNvcnJlY3Qgc291cmNlKSB2LnMu
IEludmFsaWRTdGF0ZUVycm9yKGl0ZXJhdGlvbiBvbmdvaW5nKSBhc3NlcnRfdGhyb3dzOiBpbmRl
eCBzb3VyY2UgY2hlY2sgc2hvdWxkIHByZWNlZGUgaXRlcmF0aW9uIG9uZ29pbmcgY2hlY2sgZnVu
Y3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVl
UHJpbWFyeUsuLi4iIHRocmV3IG9iamVjdCAiVHlwZUVycm9yOiBjdXJzb3IuY29udGludWVQcmlt
YXJ5S2V5IGlzIG5vdCBhIGZ1bmN0aW9uLiAoLi4uIiB0aGF0IGlzIG5vdCBhIERPTUV4Y2VwdGlv
biBJbnZhbGlkQWNjZXNzRXJyb3I6IHByb3BlcnR5ICJjb2RlIiBpcyBlcXVhbCB0byB1bmRlZmlu
ZWQsIGV4cGVjdGVkIDE1Ci1GQUlMIEludmFsaWRBY2Nlc3NFcnJvcihpbmNvcnJlY3Qgc291cmNl
KSB2LnMuIEludmFsaWRTdGF0ZUVycm9yKGl0ZXJhdGlvbiBjb21wbGV0ZSkgYXNzZXJ0X3Rocm93
czogaW5kZXggc291cmNlIGNoZWNrIHNob3VsZCBwcmVjZWRlIGdvdF92YWx1ZV9mbGFnIGNoZWNr
IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVl
UHJpbWFyeUtleSgiLi4uIiB0aHJldyBvYmplY3QgIlR5cGVFcnJvcjogY3Vyc29yLmNvbnRpbnVl
UHJpbWFyeUtleSBpcyBub3QgYSBmdW5jdGlvbi4gKC4uLiIgdGhhdCBpcyBub3QgYSBET01FeGNl
cHRpb24gSW52YWxpZEFjY2Vzc0Vycm9yOiBwcm9wZXJ0eSAiY29kZSIgaXMgZXF1YWwgdG8gdW5k
ZWZpbmVkLCBleHBlY3RlZCAxNQotRkFJTCBJbnZhbGlkU3RhdGVFcnJvcihpdGVyYXRpb24gb25n
b2luZykgdi5zLiBEYXRhRXJyb3IodW5zZXQga2V5KSBhc3NlcnRfdGhyb3dzOiBpdGVyYXRpb24g
b25nb2luZyBjaGVjayBzaG91bGQgcHJlY2VkZSB1bnNldCBrZXkgY2hlY2sgZnVuY3Rpb24gImZ1
bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlUHJpbWFyeUsu
Li4iIHRocmV3IG9iamVjdCAiVHlwZUVycm9yOiBjdXJzb3IuY29udGludWVQcmltYXJ5S2V5IGlz
IG5vdCBhIGZ1bmN0aW9uLiAoLi4uIiB0aGF0IGlzIG5vdCBhIERPTUV4Y2VwdGlvbiBJbnZhbGlk
U3RhdGVFcnJvcjogcHJvcGVydHkgImNvZGUiIGlzIGVxdWFsIHRvIHVuZGVmaW5lZCwgZXhwZWN0
ZWQgMTEKLUZBSUwgSW52YWxpZFN0YXRlRXJyb3IoaXRlcmF0aW9uIGNvbXBsZXRlKSB2LnMuIERh
dGFFcnJvcih1bnNldCBrZXkpIGFzc2VydF90aHJvd3M6IGdvdF92YWx1ZV9mbGFnIGNoZWNrIHNo
b3VsZCBwcmVjZWRlIHVuc2V0IGtleSBjaGVjayBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAg
ICAgICAgICAgICAgIGN1cnNvci5jb250aW51ZVByaW1hcnlLZXkobi4uLiIgdGhyZXcgb2JqZWN0
ICJUeXBlRXJyb3I6IGN1cnNvci5jb250aW51ZVByaW1hcnlLZXkgaXMgbm90IGEgZnVuY3Rpb24u
ICguLi4iIHRoYXQgaXMgbm90IGEgRE9NRXhjZXB0aW9uIEludmFsaWRTdGF0ZUVycm9yOiBwcm9w
ZXJ0eSAiY29kZSIgaXMgZXF1YWwgdG8gdW5kZWZpbmVkLCBleHBlY3RlZCAxMQotRkFJTCBEYXRh
RXJyb3IodW5zZXQga2V5KSBhc3NlcnRfdGhyb3dzOiBEYXRhRXJyb3IgaXMgZXhwZWN0ZWQgaWYg
a2V5IGlzIHVuc2V0LiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAgIGN1
cnNvci5jb250aW51ZVByaW1hcnlLZXkobi4uLiIgdGhyZXcgb2JqZWN0ICJUeXBlRXJyb3I6IGN1
cnNvci5jb250aW51ZVByaW1hcnlLZXkgaXMgbm90IGEgZnVuY3Rpb24uICguLi4iIHRoYXQgaXMg
bm90IGEgRE9NRXhjZXB0aW9uIERhdGFFcnJvcjogcHJvcGVydHkgImNvZGUiIGlzIGVxdWFsIHRv
IHVuZGVmaW5lZCwgZXhwZWN0ZWQgMAotRkFJTCBEYXRhRXJyb3IodW5zZXQgcHJpbWFyeSBrZXkp
IGFzc2VydF90aHJvd3M6IERhdGFFcnJvciBpcyBleHBlY3RlZCBpZiBwcmltYXJ5IGtleSBpcyB1
bnNldC4gZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAgICBjdXJzb3IuY29u
dGludWVQcmltYXJ5S2V5KCIuLi4iIHRocmV3IG9iamVjdCAiVHlwZUVycm9yOiBjdXJzb3IuY29u
dGludWVQcmltYXJ5S2V5IGlzIG5vdCBhIGZ1bmN0aW9uLiAoLi4uIiB0aGF0IGlzIG5vdCBhIERP
TUV4Y2VwdGlvbiBEYXRhRXJyb3I6IHByb3BlcnR5ICJjb2RlIiBpcyBlcXVhbCB0byB1bmRlZmlu
ZWQsIGV4cGVjdGVkIDAKLUZBSUwgRGF0YUVycm9yKGtleXMgYXJlIGxvd2VyIHRoZW4gY3VycmVu
dCBvbmUpIGluICduZXh0JyBkaXJlY3Rpb24gYXNzZXJ0X3Rocm93czogRGF0YUVycm9yIGlzIGV4
cGVjdGVkIGlmIGtleSBpcyBsb3dlciB0aGVuIGN1cnJlbnQgb25lLiBmdW5jdGlvbiAiZnVuY3Rp
b24gKCkgewotICAgICAgICAgICAgICAgIGN1cnNvci5jb250aW51ZVByaW1hcnlLZXkoIi4uLiIg
dGhyZXcgb2JqZWN0ICJUeXBlRXJyb3I6IGN1cnNvci5jb250aW51ZVByaW1hcnlLZXkgaXMgbm90
IGEgZnVuY3Rpb24uICguLi4iIHRoYXQgaXMgbm90IGEgRE9NRXhjZXB0aW9uIERhdGFFcnJvcjog
cHJvcGVydHkgImNvZGUiIGlzIGVxdWFsIHRvIHVuZGVmaW5lZCwgZXhwZWN0ZWQgMAotRkFJTCBE
YXRhRXJyb3Ioa2V5cyBhcmUgbGFyZ2VyIHRoZW4gY3VycmVudCBvbmUpIGluICdwcmV2JyBkaXJl
Y3Rpb24gYXNzZXJ0X3Rocm93czogRGF0YUVycm9yIGlzIGV4cGVjdGVkIGlmIGtleSBpcyBsYXJn
ZXIgdGhlbiBjdXJyZW50IG9uZS4gZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAg
ICAgICBjdXJzb3IuY29udGludWVQcmltYXJ5S2V5KCIuLi4iIHRocmV3IG9iamVjdCAiVHlwZUVy
cm9yOiBjdXJzb3IuY29udGludWVQcmltYXJ5S2V5IGlzIG5vdCBhIGZ1bmN0aW9uLiAoLi4uIiB0
aGF0IGlzIG5vdCBhIERPTUV4Y2VwdGlvbiBEYXRhRXJyb3I6IHByb3BlcnR5ICJjb2RlIiBpcyBl
cXVhbCB0byB1bmRlZmluZWQsIGV4cGVjdGVkIDAKK1BBU1MgVHJhbnNhY3Rpb25JbmFjdGl2ZUVy
cm9yIHYucy4gSW52YWxpZFN0YXRlRXJyb3IoZGVsZXRlZCBpbmRleCkgCitQQVNTIEludmFsaWRT
dGF0ZUVycm9yKGRlbGV0ZWQgc291cmNlKSB2LnMuIEludmFsaWRBY2Nlc3NFcnJvcihpbmNvcnJl
Y3Qgc291cmNlKSAKK1BBU1MgSW52YWxpZFN0YXRlRXJyb3IoZGVsZXRlZCBzb3VyY2UpIHYucy4g
SW52YWxpZEFjY2Vzc0Vycm9yKGluY29ycmVjdCBkaXJlY3Rpb24pIAorUEFTUyBJbnZhbGlkQWNj
ZXNzRXJyb3IoaW5jb3JyZWN0IGRpcmVjdGlvbikgdi5zLiBJbnZhbGlkU3RhdGVFcnJvcihpdGVy
YXRpb24gY29tcGxldGUpIAorUEFTUyBJbnZhbGlkQWNjZXNzRXJyb3IoaW5jb3JyZWN0IGRpcmVj
dGlvbikgdi5zLiBJbnZhbGlkU3RhdGVFcnJvcihpdGVyYXRpb24gb25nb2luZykgCitQQVNTIElu
dmFsaWRBY2Nlc3NFcnJvcihpbmNvcnJlY3Qgc291cmNlKSB2LnMuIEludmFsaWRTdGF0ZUVycm9y
KGl0ZXJhdGlvbiBvbmdvaW5nKSAKK1BBU1MgSW52YWxpZEFjY2Vzc0Vycm9yKGluY29ycmVjdCBz
b3VyY2UpIHYucy4gSW52YWxpZFN0YXRlRXJyb3IoaXRlcmF0aW9uIGNvbXBsZXRlKSAKK1BBU1Mg
SW52YWxpZFN0YXRlRXJyb3IoaXRlcmF0aW9uIG9uZ29pbmcpIHYucy4gRGF0YUVycm9yKHVuc2V0
IGtleSkgCitQQVNTIEludmFsaWRTdGF0ZUVycm9yKGl0ZXJhdGlvbiBjb21wbGV0ZSkgdi5zLiBE
YXRhRXJyb3IodW5zZXQga2V5KSAKK1BBU1MgRGF0YUVycm9yKHVuc2V0IGtleSkgCitQQVNTIERh
dGFFcnJvcih1bnNldCBwcmltYXJ5IGtleSkgCitQQVNTIERhdGFFcnJvcihrZXlzIGFyZSBsb3dl
ciB0aGVuIGN1cnJlbnQgb25lKSBpbiAnbmV4dCcgZGlyZWN0aW9uIAorUEFTUyBEYXRhRXJyb3Io
a2V5cyBhcmUgbGFyZ2VyIHRoZW4gY3VycmVudCBvbmUpIGluICdwcmV2JyBkaXJlY3Rpb24gCiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1iYXNpY3Mt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWJhc2lj
cy1leHBlY3RlZC50eHQKaW5kZXggMzNkOWNiNC4uZGVmODk2NyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWJhc2ljcy1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWJhc2ljcy1leHBlY3RlZC50eHQK
QEAgLTI0LDggKzI0LDggQEAgUEFTUyAna2V5JyBpbiBjdXJzb3IgaXMgdHJ1ZQogUEFTUyAncHJp
bWFyeUtleScgaW4gY3Vyc29yIGlzIHRydWUKIFBBU1MgJ2NvbnRpbnVlJyBpbiBjdXJzb3IgaXMg
dHJ1ZQogUEFTUyB0eXBlb2YgY3Vyc29yLmNvbnRpbnVlIGlzICJmdW5jdGlvbiIKLUZBSUwgJ2Nv
bnRpbnVlUHJpbWFyeUtleScgaW4gY3Vyc29yIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCi1G
QUlMIHR5cGVvZiBjdXJzb3IuY29udGludWVQcmltYXJ5S2V5IHNob3VsZCBiZSBmdW5jdGlvbi4g
V2FzIHVuZGVmaW5lZC4KK1BBU1MgJ2NvbnRpbnVlUHJpbWFyeUtleScgaW4gY3Vyc29yIGlzIHRy
dWUKK1BBU1MgdHlwZW9mIGN1cnNvci5jb250aW51ZVByaW1hcnlLZXkgaXMgImZ1bmN0aW9uIgog
UEFTUyAnYWR2YW5jZScgaW4gY3Vyc29yIGlzIHRydWUKIFBBU1MgdHlwZW9mIGN1cnNvci5hZHZh
bmNlIGlzICJmdW5jdGlvbiIKIFBBU1MgJ3VwZGF0ZScgaW4gY3Vyc29yIGlzIHRydWUKQEAgLTQ2
LDggKzQ2LDggQEAgUEFTUyAna2V5JyBpbiBjdXJzb3IgaXMgdHJ1ZQogUEFTUyAncHJpbWFyeUtl
eScgaW4gY3Vyc29yIGlzIHRydWUKIFBBU1MgJ2NvbnRpbnVlJyBpbiBjdXJzb3IgaXMgdHJ1ZQog
UEFTUyB0eXBlb2YgY3Vyc29yLmNvbnRpbnVlIGlzICJmdW5jdGlvbiIKLUZBSUwgJ2NvbnRpbnVl
UHJpbWFyeUtleScgaW4gY3Vyc29yIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCi1GQUlMIHR5
cGVvZiBjdXJzb3IuY29udGludWVQcmltYXJ5S2V5IHNob3VsZCBiZSBmdW5jdGlvbi4gV2FzIHVu
ZGVmaW5lZC4KK1BBU1MgJ2NvbnRpbnVlUHJpbWFyeUtleScgaW4gY3Vyc29yIGlzIHRydWUKK1BB
U1MgdHlwZW9mIGN1cnNvci5jb250aW51ZVByaW1hcnlLZXkgaXMgImZ1bmN0aW9uIgogUEFTUyAn
YWR2YW5jZScgaW4gY3Vyc29yIGlzIHRydWUKIFBBU1MgdHlwZW9mIGN1cnNvci5hZHZhbmNlIGlz
ICJmdW5jdGlvbiIKIFBBU1MgJ3VwZGF0ZScgaW4gY3Vyc29yIGlzIHRydWUKQEAgLTY4LDggKzY4
LDggQEAgUEFTUyAna2V5JyBpbiBjdXJzb3IgaXMgdHJ1ZQogUEFTUyAncHJpbWFyeUtleScgaW4g
Y3Vyc29yIGlzIHRydWUKIFBBU1MgJ2NvbnRpbnVlJyBpbiBjdXJzb3IgaXMgdHJ1ZQogUEFTUyB0
eXBlb2YgY3Vyc29yLmNvbnRpbnVlIGlzICJmdW5jdGlvbiIKLUZBSUwgJ2NvbnRpbnVlUHJpbWFy
eUtleScgaW4gY3Vyc29yIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCi1GQUlMIHR5cGVvZiBj
dXJzb3IuY29udGludWVQcmltYXJ5S2V5IHNob3VsZCBiZSBmdW5jdGlvbi4gV2FzIHVuZGVmaW5l
ZC4KK1BBU1MgJ2NvbnRpbnVlUHJpbWFyeUtleScgaW4gY3Vyc29yIGlzIHRydWUKK1BBU1MgdHlw
ZW9mIGN1cnNvci5jb250aW51ZVByaW1hcnlLZXkgaXMgImZ1bmN0aW9uIgogUEFTUyAnYWR2YW5j
ZScgaW4gY3Vyc29yIGlzIHRydWUKIFBBU1MgdHlwZW9mIGN1cnNvci5hZHZhbmNlIGlzICJmdW5j
dGlvbiIKIFBBU1MgJ3VwZGF0ZScgaW4gY3Vyc29yIGlzIHRydWUKQEAgLTgyLDcgKzgyLDYgQEAg
UEFTUyBjdXJzb3IgaW5zdGFuY2VvZiBJREJDdXJzb3JXaXRoVmFsdWUgaXMgZmFsc2UKIFBBU1Mg
Y3Vyc29yLnByaW1hcnlLZXkgaXMgMAogUEFTUyAndmFsdWUnIGluIGN1cnNvciBpcyBmYWxzZQog
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotU29tZSB0ZXN0cyBmYWlsZWQuCiAKIFRF
U1QgQ09NUExFVEUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
Y3Vyc29yLWJhc2ljcy1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL2N1cnNvci1iYXNpY3MtcHJpdmF0ZS1leHBlY3RlZC50eHQKaW5kZXggMzNkOWNi
NC4uZGVmODk2NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vy
c29yLWJhc2ljcy1wcml2YXRlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9jdXJzb3ItYmFzaWNzLXByaXZhdGUtZXhwZWN0ZWQudHh0CkBAIC0yNCw4ICsy
NCw4IEBAIFBBU1MgJ2tleScgaW4gY3Vyc29yIGlzIHRydWUKIFBBU1MgJ3ByaW1hcnlLZXknIGlu
IGN1cnNvciBpcyB0cnVlCiBQQVNTICdjb250aW51ZScgaW4gY3Vyc29yIGlzIHRydWUKIFBBU1Mg
dHlwZW9mIGN1cnNvci5jb250aW51ZSBpcyAiZnVuY3Rpb24iCi1GQUlMICdjb250aW51ZVByaW1h
cnlLZXknIGluIGN1cnNvciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgotRkFJTCB0eXBlb2Yg
Y3Vyc29yLmNvbnRpbnVlUHJpbWFyeUtleSBzaG91bGQgYmUgZnVuY3Rpb24uIFdhcyB1bmRlZmlu
ZWQuCitQQVNTICdjb250aW51ZVByaW1hcnlLZXknIGluIGN1cnNvciBpcyB0cnVlCitQQVNTIHR5
cGVvZiBjdXJzb3IuY29udGludWVQcmltYXJ5S2V5IGlzICJmdW5jdGlvbiIKIFBBU1MgJ2FkdmFu
Y2UnIGluIGN1cnNvciBpcyB0cnVlCiBQQVNTIHR5cGVvZiBjdXJzb3IuYWR2YW5jZSBpcyAiZnVu
Y3Rpb24iCiBQQVNTICd1cGRhdGUnIGluIGN1cnNvciBpcyB0cnVlCkBAIC00Niw4ICs0Niw4IEBA
IFBBU1MgJ2tleScgaW4gY3Vyc29yIGlzIHRydWUKIFBBU1MgJ3ByaW1hcnlLZXknIGluIGN1cnNv
ciBpcyB0cnVlCiBQQVNTICdjb250aW51ZScgaW4gY3Vyc29yIGlzIHRydWUKIFBBU1MgdHlwZW9m
IGN1cnNvci5jb250aW51ZSBpcyAiZnVuY3Rpb24iCi1GQUlMICdjb250aW51ZVByaW1hcnlLZXkn
IGluIGN1cnNvciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgotRkFJTCB0eXBlb2YgY3Vyc29y
LmNvbnRpbnVlUHJpbWFyeUtleSBzaG91bGQgYmUgZnVuY3Rpb24uIFdhcyB1bmRlZmluZWQuCitQ
QVNTICdjb250aW51ZVByaW1hcnlLZXknIGluIGN1cnNvciBpcyB0cnVlCitQQVNTIHR5cGVvZiBj
dXJzb3IuY29udGludWVQcmltYXJ5S2V5IGlzICJmdW5jdGlvbiIKIFBBU1MgJ2FkdmFuY2UnIGlu
IGN1cnNvciBpcyB0cnVlCiBQQVNTIHR5cGVvZiBjdXJzb3IuYWR2YW5jZSBpcyAiZnVuY3Rpb24i
CiBQQVNTICd1cGRhdGUnIGluIGN1cnNvciBpcyB0cnVlCkBAIC02OCw4ICs2OCw4IEBAIFBBU1Mg
J2tleScgaW4gY3Vyc29yIGlzIHRydWUKIFBBU1MgJ3ByaW1hcnlLZXknIGluIGN1cnNvciBpcyB0
cnVlCiBQQVNTICdjb250aW51ZScgaW4gY3Vyc29yIGlzIHRydWUKIFBBU1MgdHlwZW9mIGN1cnNv
ci5jb250aW51ZSBpcyAiZnVuY3Rpb24iCi1GQUlMICdjb250aW51ZVByaW1hcnlLZXknIGluIGN1
cnNvciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgotRkFJTCB0eXBlb2YgY3Vyc29yLmNvbnRp
bnVlUHJpbWFyeUtleSBzaG91bGQgYmUgZnVuY3Rpb24uIFdhcyB1bmRlZmluZWQuCitQQVNTICdj
b250aW51ZVByaW1hcnlLZXknIGluIGN1cnNvciBpcyB0cnVlCitQQVNTIHR5cGVvZiBjdXJzb3Iu
Y29udGludWVQcmltYXJ5S2V5IGlzICJmdW5jdGlvbiIKIFBBU1MgJ2FkdmFuY2UnIGluIGN1cnNv
ciBpcyB0cnVlCiBQQVNTIHR5cGVvZiBjdXJzb3IuYWR2YW5jZSBpcyAiZnVuY3Rpb24iCiBQQVNT
ICd1cGRhdGUnIGluIGN1cnNvciBpcyB0cnVlCkBAIC04Miw3ICs4Miw2IEBAIFBBU1MgY3Vyc29y
IGluc3RhbmNlb2YgSURCQ3Vyc29yV2l0aFZhbHVlIGlzIGZhbHNlCiBQQVNTIGN1cnNvci5wcmlt
YXJ5S2V5IGlzIDAKIFBBU1MgJ3ZhbHVlJyBpbiBjdXJzb3IgaXMgZmFsc2UKIFBBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKLVNvbWUgdGVzdHMgZmFpbGVkLgogCiBURVNUIENPTVBMRVRF
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJj
dXJzb3ItY29udGludWUtcHJpbWFyeS1rZXktMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRiY3Vyc29yLWNvbnRpbnVlLXByaW1hcnkta2V5LTEt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI3YjI5OTgK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4v
aWRiY3Vyc29yLWNvbnRpbnVlLXByaW1hcnkta2V5LTEtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MzYgQEAKK1RoaXMgdGVzdCB2ZXJpZmllcyB0aGUgYmFzaWMgZnVuY3Rpb25hbGl0eSBvZiBJREJD
dXJzb3IuY29udGludWVQcmltYXJ5S2V5KCkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTICEhY3Vyc29yIGlzIHRydWUKK1BBU1MgInRyYW5zYWN0aW9uLXN0YXRlIGNoZWNr
IHNob3VsZCBwcmVjZWRlIGRlbGV0aW9uIGNoZWNrIiB0aHJldyBhcyBleHBlY3RlZAorUEFTUyAh
IWN1cnNvciBpcyB0cnVlCitQQVNTICJkZWxldGlvbiBjaGVjayBzaG91bGQgcHJlY2VkZSBpbmRl
eCBzb3VyY2UgY2hlY2siIHRocmV3IGFzIGV4cGVjdGVkCitQQVNTICEhY3Vyc29yIGlzIHRydWUK
K1BBU1MgImRlbGV0aW9uIGNoZWNrIHNob3VsZCBwcmVjZWRlIGN1cnNvciBkaXJlY3Rpb24gY2hl
Y2siIHRocmV3IGFzIGV4cGVjdGVkCitQQVNTICJkaXJlY3Rpb24gY2hlY2sgc2hvdWxkIHByZWNl
ZGUgZ290X3ZhbHVlX2ZsYWcgY2hlY2siIHRocmV3IGFzIGV4cGVjdGVkCitQQVNTICEhY3Vyc29y
IGlzIHRydWUKK1BBU1MgImRpcmVjdGlvbiBjaGVjayBzaG91bGQgcHJlY2VkZSBpdGVyYXRpb24g
b25nb2luZyBjaGVjayIgdGhyZXcgYXMgZXhwZWN0ZWQKK1BBU1MgISFjdXJzb3IgaXMgdHJ1ZQor
UEFTUyAiaW5kZXggc291cmNlIGNoZWNrIHNob3VsZCBwcmVjZWRlIGl0ZXJhdGlvbiBvbmdvaW5n
IGNoZWNrIiB0aHJldyBhcyBleHBlY3RlZAorUEFTUyAiaW5kZXggc291cmNlIGNoZWNrIHNob3Vs
ZCBwcmVjZWRlIGdvdF92YWx1ZV9mbGFnIGNoZWNrIiB0aHJldyBhcyBleHBlY3RlZAorUEFTUyAh
IWN1cnNvciBpcyB0cnVlCitQQVNTICJpdGVyYXRpb24gb25nb2luZyBjaGVjayBzaG91bGQgcHJl
Y2VkZSB1bnNldCBrZXkgY2hlY2siIHRocmV3IGFzIGV4cGVjdGVkCitQQVNTICJnb3RfdmFsdWVf
ZmxhZyBjaGVjayBzaG91bGQgcHJlY2VkZSB1bnNldCBrZXkgY2hlY2siIHRocmV3IGFzIGV4cGVj
dGVkCitQQVNTICEhY3Vyc29yIGlzIHRydWUKK1BBU1MgIkRhdGFFcnJvciBpcyBleHBlY3RlZCBp
ZiBrZXkgaXMgdW5zZXQuIiB0aHJldyBhcyBleHBlY3RlZAorUEFTUyAhIWN1cnNvciBpcyB0cnVl
CitQQVNTICJEYXRhRXJyb3IgaXMgZXhwZWN0ZWQgaWYgcHJpbWFyeSBrZXkgaXMgdW5zZXQuIiB0
aHJldyBhcyBleHBlY3RlZAorUEFTUyAhIWN1cnNvciBpcyB0cnVlCitQQVNTICJEYXRhRXJyb3Ig
aXMgZXhwZWN0ZWQgaWYga2V5IGlzIGxvd2VyIHRoZW4gY3VycmVudCBvbmUuIiB0aHJldyBhcyBl
eHBlY3RlZAorUEFTUyAiRGF0YUVycm9yIGlzIGV4cGVjdGVkIGlmIHByaW1hcnkga2V5IGlzIGVx
dWFsIHRvIGN1cnJlbnQgb25lLiIgdGhyZXcgYXMgZXhwZWN0ZWQKK1BBU1MgIkRhdGFFcnJvciBp
cyBleHBlY3RlZCBpZiBwcmltYXJ5IGtleSBpcyBsb3dlciB0aGFuIGN1cnJlbnQgb25lLiIgdGhy
ZXcgYXMgZXhwZWN0ZWQKK1BBU1MgISFjdXJzb3IgaXMgdHJ1ZQorUEFTUyAiRGF0YUVycm9yIGlz
IGV4cGVjdGVkIGlmIGtleSBpcyBsYXJnZXIgdGhlbiBjdXJyZW50IG9uZS4iIHRocmV3IGFzIGV4
cGVjdGVkCitQQVNTICJEYXRhRXJyb3IgaXMgZXhwZWN0ZWQgaWYgcHJpbWFyeSBrZXkgaXMgZXF1
YWwgdG8gY3VycmVudCBvbmUuIiB0aHJldyBhcyBleHBlY3RlZAorUEFTUyAiRGF0YUVycm9yIGlz
IGV4cGVjdGVkIGlmIHByaW1hcnkga2V5IGlzIGxhcmdlciB0aGFuIGN1cnJlbnQgb25lLiIgdGhy
ZXcgYXMgZXhwZWN0ZWQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rl
cm4vaWRiY3Vyc29yLWNvbnRpbnVlLXByaW1hcnkta2V5LTEtcHJpdmF0ZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRiY3Vyc29yLWNvbnRpbnVl
LXByaW1hcnkta2V5LTEtcHJpdmF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uMjdiMjk5OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJjdXJzb3ItY29udGludWUtcHJpbWFyeS1rZXktMS1w
cml2YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM2IEBACitUaGlzIHRlc3QgdmVyaWZpZXMg
dGhlIGJhc2ljIGZ1bmN0aW9uYWxpdHkgb2YgSURCQ3Vyc29yLmNvbnRpbnVlUHJpbWFyeUtleSgp
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyAhIWN1cnNvciBpcyB0cnVl
CitQQVNTICJ0cmFuc2FjdGlvbi1zdGF0ZSBjaGVjayBzaG91bGQgcHJlY2VkZSBkZWxldGlvbiBj
aGVjayIgdGhyZXcgYXMgZXhwZWN0ZWQKK1BBU1MgISFjdXJzb3IgaXMgdHJ1ZQorUEFTUyAiZGVs
ZXRpb24gY2hlY2sgc2hvdWxkIHByZWNlZGUgaW5kZXggc291cmNlIGNoZWNrIiB0aHJldyBhcyBl
eHBlY3RlZAorUEFTUyAhIWN1cnNvciBpcyB0cnVlCitQQVNTICJkZWxldGlvbiBjaGVjayBzaG91
bGQgcHJlY2VkZSBjdXJzb3IgZGlyZWN0aW9uIGNoZWNrIiB0aHJldyBhcyBleHBlY3RlZAorUEFT
UyAiZGlyZWN0aW9uIGNoZWNrIHNob3VsZCBwcmVjZWRlIGdvdF92YWx1ZV9mbGFnIGNoZWNrIiB0
aHJldyBhcyBleHBlY3RlZAorUEFTUyAhIWN1cnNvciBpcyB0cnVlCitQQVNTICJkaXJlY3Rpb24g
Y2hlY2sgc2hvdWxkIHByZWNlZGUgaXRlcmF0aW9uIG9uZ29pbmcgY2hlY2siIHRocmV3IGFzIGV4
cGVjdGVkCitQQVNTICEhY3Vyc29yIGlzIHRydWUKK1BBU1MgImluZGV4IHNvdXJjZSBjaGVjayBz
aG91bGQgcHJlY2VkZSBpdGVyYXRpb24gb25nb2luZyBjaGVjayIgdGhyZXcgYXMgZXhwZWN0ZWQK
K1BBU1MgImluZGV4IHNvdXJjZSBjaGVjayBzaG91bGQgcHJlY2VkZSBnb3RfdmFsdWVfZmxhZyBj
aGVjayIgdGhyZXcgYXMgZXhwZWN0ZWQKK1BBU1MgISFjdXJzb3IgaXMgdHJ1ZQorUEFTUyAiaXRl
cmF0aW9uIG9uZ29pbmcgY2hlY2sgc2hvdWxkIHByZWNlZGUgdW5zZXQga2V5IGNoZWNrIiB0aHJl
dyBhcyBleHBlY3RlZAorUEFTUyAiZ290X3ZhbHVlX2ZsYWcgY2hlY2sgc2hvdWxkIHByZWNlZGUg
dW5zZXQga2V5IGNoZWNrIiB0aHJldyBhcyBleHBlY3RlZAorUEFTUyAhIWN1cnNvciBpcyB0cnVl
CitQQVNTICJEYXRhRXJyb3IgaXMgZXhwZWN0ZWQgaWYga2V5IGlzIHVuc2V0LiIgdGhyZXcgYXMg
ZXhwZWN0ZWQKK1BBU1MgISFjdXJzb3IgaXMgdHJ1ZQorUEFTUyAiRGF0YUVycm9yIGlzIGV4cGVj
dGVkIGlmIHByaW1hcnkga2V5IGlzIHVuc2V0LiIgdGhyZXcgYXMgZXhwZWN0ZWQKK1BBU1MgISFj
dXJzb3IgaXMgdHJ1ZQorUEFTUyAiRGF0YUVycm9yIGlzIGV4cGVjdGVkIGlmIGtleSBpcyBsb3dl
ciB0aGVuIGN1cnJlbnQgb25lLiIgdGhyZXcgYXMgZXhwZWN0ZWQKK1BBU1MgIkRhdGFFcnJvciBp
cyBleHBlY3RlZCBpZiBwcmltYXJ5IGtleSBpcyBlcXVhbCB0byBjdXJyZW50IG9uZS4iIHRocmV3
IGFzIGV4cGVjdGVkCitQQVNTICJEYXRhRXJyb3IgaXMgZXhwZWN0ZWQgaWYgcHJpbWFyeSBrZXkg
aXMgbG93ZXIgdGhhbiBjdXJyZW50IG9uZS4iIHRocmV3IGFzIGV4cGVjdGVkCitQQVNTICEhY3Vy
c29yIGlzIHRydWUKK1BBU1MgIkRhdGFFcnJvciBpcyBleHBlY3RlZCBpZiBrZXkgaXMgbGFyZ2Vy
IHRoZW4gY3VycmVudCBvbmUuIiB0aHJldyBhcyBleHBlY3RlZAorUEFTUyAiRGF0YUVycm9yIGlz
IGV4cGVjdGVkIGlmIHByaW1hcnkga2V5IGlzIGVxdWFsIHRvIGN1cnJlbnQgb25lLiIgdGhyZXcg
YXMgZXhwZWN0ZWQKK1BBU1MgIkRhdGFFcnJvciBpcyBleHBlY3RlZCBpZiBwcmltYXJ5IGtleSBp
cyBsYXJnZXIgdGhhbiBjdXJyZW50IG9uZS4iIHRocmV3IGFzIGV4cGVjdGVkCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2lkYmN1cnNvci1jb250aW51ZS1wcmlt
YXJ5LWtleS0xLXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21v
ZGVybi9pZGJjdXJzb3ItY29udGludWUtcHJpbWFyeS1rZXktMS1wcml2YXRlLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjNhM2Q5ZQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJjdXJzb3ItY29udGludWUt
cHJpbWFyeS1rZXktMS1wcml2YXRlLmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPGh0bWw+Cis8aGVh
ZD4KKzxzY3JpcHQ+CitlbmFibGVQcml2YXRlQnJvd3NpbmcgPSB0cnVlOworPC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+CisKKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvaWRiY3Vyc29yLWNvbnRpbnVlLXByaW1hcnkt
a2V5LTEuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2lkYmN1cnNvci1jb250aW51ZS1wcmltYXJ5
LWtleS0xLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRiY3Vy
c29yLWNvbnRpbnVlLXByaW1hcnkta2V5LTEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi4zZDRiNjliCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvbW9kZXJuL2lkYmN1cnNvci1jb250aW51ZS1wcmltYXJ5LWtleS0xLmh0bWwK
QEAgLTAsMCArMSwxMCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L3NoYXJlZC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKworPHNjcmlwdCBzcmM9InJl
c291cmNlcy9pZGJjdXJzb3ItY29udGludWUtcHJpbWFyeS1rZXktMS5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9tb2Rlcm4vcmVzb3VyY2VzL2lkYmN1cnNvci1jb250aW51ZS1wcmltYXJ5LWtleS0xLmpzIGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy9pZGJjdXJzb3It
Y29udGludWUtcHJpbWFyeS1rZXktMS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi5jNWE2NTI2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvbW9kZXJuL3Jlc291cmNlcy9pZGJjdXJzb3ItY29udGludWUtcHJpbWFyeS1rZXktMS5q
cwpAQCAtMCwwICsxLDU1NSBAQAorLy8gVGVzdCBtb2RlbGVkIGFmdGVyIGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvci1jb250aW51ZVByaW1hcnlLZXkt
ZXhjZXB0aW9uLW9yZGVyLmh0bQorCitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IHZlcmlmaWVzIHRo
ZSBiYXNpYyBmdW5jdGlvbmFsaXR5IG9mIElEQkN1cnNvci5jb250aW51ZVByaW1hcnlLZXkoKS4i
KTsKKworZnVuY3Rpb24gc2V0dXBfdGVzdF9zdG9yZShkYikgeworCXZhciByZWNvcmRzID0gWyB7
IGlLZXk6ICJBIiwgcEtleTogMSB9LAorCSAgICAgICAgICAgICAgICB7IGlLZXk6ICJBIiwgcEtl
eTogMiB9LAorCSAgICAgICAgICAgICAgICB7IGlLZXk6ICJBIiwgcEtleTogMyB9LAorCSAgICAg
ICAgICAgICAgICB7IGlLZXk6ICJBIiwgcEtleTogNCB9LAorCSAgICAgICAgICAgICAgICB7IGlL
ZXk6ICJCIiwgcEtleTogNSB9LAorCSAgICAgICAgICAgICAgICB7IGlLZXk6ICJCIiwgcEtleTog
NiB9LAorCSAgICAgICAgICAgICAgICB7IGlLZXk6ICJCIiwgcEtleTogNyB9LAorCSAgICAgICAg
ICAgICAgICB7IGlLZXk6ICJDIiwgcEtleTogOCB9LAorCSAgICAgICAgICAgICAgICB7IGlLZXk6
ICJDIiwgcEtleTogOSB9LAorCSAgICAgICAgICAgICAgICB7IGlLZXk6ICJEIiwgcEtleTogMTAg
fSBdOworCisgICAgdmFyIHN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiLCB7IGtl
eVBhdGg6ICJwS2V5IiB9KTsKKyAgICB2YXIgaW5kZXggPSBzdG9yZS5jcmVhdGVJbmRleCgiaWR4
IiwgImlLZXkiKTsKKworICAgIGZvcih2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsr
KQorICAgICAgICBzdG9yZS5hZGQocmVjb3Jkc1tpXSk7CisKKyAgICByZXR1cm4gc3RvcmU7Cit9
CisKK2Z1bmN0aW9uIGxvZyhtZXNzYWdlKQoreworICAgIGRlYnVnKG1lc3NhZ2UpOworfQorCitm
dW5jdGlvbiBuZXh0KCkKK3sKKyAgICB0ZXN0R2VuZXJhdG9yLm5leHQoKTsKK30KKworZnVuY3Rp
b24gYXN5bmNOZXh0KCkKK3sKKyAgICBzZXRUaW1lb3V0KCJ0ZXN0R2VuZXJhdG9yLm5leHQoKTsi
LCAwKTsKK30KKworZnVuY3Rpb24gdW5yZWFjaGVkKGRlc2NyaXB0aW9uKQoreworCXJldHVybiBm
dW5jdGlvbigpIHsKKwkJZGVidWcoIkZBSUw6ICIgKyBkZXNjcmlwdGlvbik7CisJCWZpbmlzaEpT
VGVzdCgpOworCX0KK307CisKK3ZhciBkYk5hbWUgPSB3aW5kb3cubG9jYXRpb24uaHJlZiArICIg
dGVzdCI7Cit2YXIgZGI7CisKK3ZhciB0ZXN0R2VuZXJhdG9yID0gdGVzdFN0ZXBzKCk7Cit0ZXN0
R2VuZXJhdG9yLm5leHQoKTsKKworZnVuY3Rpb24gc2hvdWxkVGhyb3dUeXBlKG5hbWUsIGZ1bmMs
IHRleHQpIHsKKyAgICB2YXIgZXJyb3JUZXh0ID0gdGV4dCArICIgc2hvdWxkIHRocm93IGFuIGV4
Y2VwdGlvbiI7CisgICAgdHJ5IHsKKyAgICAgICAgZnVuYygpOworICAgICAgICB0ZXN0RmFpbGVk
KGVycm9yVGV4dCk7CisgICAgfSBjYXRjaCAoZSkgeworCQlpZiAoZS5uYW1lID09IG5hbWUpCisg
ICAgICAgIAl0ZXN0UGFzc2VkKCciJyArIHRleHQgKyAiXCIgdGhyZXcgYXMgZXhwZWN0ZWQiKTsK
KyAgICAgICAgZWxzZQorCQkJdGVzdEZhaWxlZCh0ZXh0ICsgIiBzaG91bGQgdGhyb3cgZXhjZXB0
aW9uIHR5cGUgIiArIG5hbWUgKyAiLCBidXQgdGhyZXcgIiArIGUubmFtZSArICIgaW5zdGVhZCIp
OworICAgIH0KK30KKwordmFyIGRiOworZnVuY3Rpb24qIHRlc3RTdGVwcygpCit7CisJaW5kZXhl
ZERCLmRlbGV0ZURhdGFiYXNlKGRiTmFtZSkub25zdWNjZXNzID0gbmV4dDsKKwl5aWVsZDsKKwkK
KwlyZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJOYW1lKTsKKwlyZXF1ZXN0Lm9udXBncmFkZW5l
ZWRlZCA9IGZ1bmN0aW9uKCkgeworCQlkYiA9IHJlcXVlc3QucmVzdWx0OworCQl2YXIgdHhuID0g
cmVxdWVzdC50cmFuc2FjdGlvbjsKKworCQl2YXIgc3RvcmUgPSBzZXR1cF90ZXN0X3N0b3JlKGRi
KTsKKwkJdmFyIGluZGV4ID0gc3RvcmUuaW5kZXgoImlkeCIpOworCQl2YXIgY3Vyc29yX3JxID0g
aW5kZXgub3BlbkN1cnNvcigpOworCisJCWN1cnNvcl9ycS5vbmVycm9yID0gdW5yZWFjaGVkKCdv
cGVuQ3Vyc29yIHNob3VsZCBzdWNjZWVkJyk7CisJCWN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSBmdW5j
dGlvbihlKSB7CisJCSAgICBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICBz
aG91bGRCZVRydWUoIiEhY3Vyc29yIik7CisKKwkJICAgIHN0b3JlLmRlbGV0ZUluZGV4KCJpZHgi
KTsKKwkJfTsKKwkJdHhuLm9uY29tcGxldGUgPSBmdW5jdGlvbigpIHsKKwkJICAgIHNob3VsZFRo
cm93VHlwZSgiVHJhbnNhY3Rpb25JbmFjdGl2ZUVycm9yIiwgZnVuY3Rpb24oKSB7CisJCSAgICAg
ICAgY3Vyc29yLmNvbnRpbnVlUHJpbWFyeUtleSgiQSIsIDQpOworCQkgICAgfSwgInRyYW5zYWN0
aW9uLXN0YXRlIGNoZWNrIHNob3VsZCBwcmVjZWRlIGRlbGV0aW9uIGNoZWNrIik7CisJCQlkYi5j
bG9zZSgpOworCQkJbmV4dCgpOworCQl9OworCX07CisJeWllbGQ7CisKKwljdXJzb3IgPSB1bmRl
ZmluZWQ7CisJaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRiTmFtZSkub25zdWNjZXNzID0gbmV4
dDsKKwl5aWVsZDsKKworCXJlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYk5hbWUpOworCXJlcXVl
c3Qub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oKSB7CisJCWRiID0gcmVxdWVzdC5yZXN1bHQ7
CisKKwkJdmFyIHN0b3JlID0gc2V0dXBfdGVzdF9zdG9yZShkYik7CisgICAgICAgIHZhciBjdXJz
b3JfcnEgPSBzdG9yZS5vcGVuQ3Vyc29yKCk7CisKKyAgICAgICAgY3Vyc29yX3JxLm9uZXJyb3Ig
PSB1bnJlYWNoZWQoJ29wZW5DdXJzb3Igc2hvdWxkIHN1Y2NlZWQnKTsKKyAgICAgICAgY3Vyc29y
X3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGN1cnNvciA9IGUudGFy
Z2V0LnJlc3VsdDsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgiISFjdXJzb3IiKTsKKworICAg
ICAgICAgICAgZGIuZGVsZXRlT2JqZWN0U3RvcmUoInRlc3QiKTsKKworICAgICAgICAgICAgc2hv
dWxkVGhyb3dUeXBlKCJJbnZhbGlkU3RhdGVFcnJvciIsIGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgICAgIGN1cnNvci5jb250aW51ZVByaW1hcnlLZXkoIkEiLCA0KTsKKyAgICAgICAgICAgIH0s
ICJkZWxldGlvbiBjaGVjayBzaG91bGQgcHJlY2VkZSBpbmRleCBzb3VyY2UgY2hlY2siKTsKKwor
CQkJZGIuY2xvc2UoKTsKKyAgICAgICAgICAgIG5leHQoKTsKKyAgICAgICAgfTsKKwl9OworCXlp
ZWxkOworCisJY3Vyc29yID0gdW5kZWZpbmVkOworCWluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShk
Yk5hbWUpLm9uc3VjY2VzcyA9IG5leHQ7CisJeWllbGQ7CisKKwlyZXF1ZXN0ID0gaW5kZXhlZERC
Lm9wZW4oZGJOYW1lKTsKKwlyZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKCkgewor
CQlkYiA9IHJlcXVlc3QucmVzdWx0OworCQkKKyAgICAgICAgdmFyIHN0b3JlID0gc2V0dXBfdGVz
dF9zdG9yZShkYik7CisgICAgICAgIHZhciBpbmRleCA9IHN0b3JlLmluZGV4KCJpZHgiKTsKKyAg
ICAgICAgdmFyIGN1cnNvcl9ycSA9IGluZGV4Lm9wZW5DdXJzb3IobnVsbCwgIm5leHR1bmlxdWUi
KTsKKworICAgICAgICBjdXJzb3JfcnEub25lcnJvciA9IHVucmVhY2hlZCgnb3BlbkN1cnNvciBz
aG91bGQgc3VjY2VlZCcpOworICAgICAgICBjdXJzb3JfcnEub25zdWNjZXNzID0gZnVuY3Rpb24o
ZSkgeworICAgICAgICAgICAgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICAgICAg
c2hvdWxkQmVUcnVlKCIhIWN1cnNvciIpOworCisgICAgICAgICAgICBzdG9yZS5kZWxldGVJbmRl
eCgiaWR4Iik7CisKKyAgICAgICAgICAgIHNob3VsZFRocm93VHlwZSgiSW52YWxpZFN0YXRlRXJy
b3IiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlUHJpbWFyeUtl
eSgiQSIsIDQpOworICAgICAgICAgICAgfSwgImRlbGV0aW9uIGNoZWNrIHNob3VsZCBwcmVjZWRl
IGN1cnNvciBkaXJlY3Rpb24gY2hlY2siKTsKKwkJCQorCQkJZGIuY2xvc2UoKTsKKyAgICAgICAg
ICAgIG5leHQoKTsKKyAgICAgICAgfTsKKwl9OworCXlpZWxkOworCisJY3Vyc29yID0gdW5kZWZp
bmVkOworCWluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYk5hbWUpLm9uc3VjY2VzcyA9IG5leHQ7
CisJeWllbGQ7CisKKwlyZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJOYW1lKTsKKwlyZXF1ZXN0
Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKCkgeworCQlkYiA9IHJlcXVlc3QucmVzdWx0Owor
CQkKKyAgICAgICAgdmFyIHN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiLCB7a2V5
UGF0aDoicEtleSJ9KTsKKyAgICAgICAgdmFyIGluZGV4ID0gc3RvcmUuY3JlYXRlSW5kZXgoImlk
eCIsICJpS2V5Iik7CisKKyAgICAgICAgc3RvcmUuYWRkKHsgaUtleTogIkEiLCBwS2V5OiAxIH0p
OworCisgICAgICAgIHZhciBjdXJzb3JfcnEgPSBpbmRleC5vcGVuQ3Vyc29yKG51bGwsICJuZXh0
dW5pcXVlIik7CisKKyAgICAgICAgY3Vyc29yX3JxLm9uZXJyb3IgPSB1bnJlYWNoZWQoJ29wZW5D
dXJzb3Igc2hvdWxkIHN1Y2NlZWQnKTsKKyAgICAgICAgY3Vyc29yX3JxLm9uc3VjY2VzcyA9IGZ1
bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGlmIChlLnRhcmdldC5yZXN1bHQpIHsKKyAgICAgICAg
ICAgICAgICBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICAgICAgY3Vyc29y
LmNvbnRpbnVlKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICBzaG91bGRUaHJvd1R5cGUoIkludmFsaWRBY2Nlc3NFcnJvciIsIGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgICAgIGN1cnNvci5jb250aW51ZVByaW1hcnlLZXkoIkEiLCA0KTsK
KyAgICAgICAgICAgIH0sICJkaXJlY3Rpb24gY2hlY2sgc2hvdWxkIHByZWNlZGUgZ290X3ZhbHVl
X2ZsYWcgY2hlY2siKTsKKworCQkJZGIuY2xvc2UoKTsKKyAgICAgICAgICAgIG5leHQoKTsKKyAg
ICAgICAgfTsKKwl9OworCXlpZWxkOworCisJaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRiTmFt
ZSkub25zdWNjZXNzID0gbmV4dDsKKwljdXJzb3IgPSB1bmRlZmluZWQ7CisJeWllbGQ7CisJCisJ
cmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRiTmFtZSk7CisJcmVxdWVzdC5vbnVwZ3JhZGVuZWVk
ZWQgPSBmdW5jdGlvbigpIHsKKwkJZGIgPSByZXF1ZXN0LnJlc3VsdDsKKwkKKyAgICAgICAgdmFy
IHN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiLCB7a2V5UGF0aDoicEtleSJ9KTsK
KyAgICAgICAgdmFyIGluZGV4ID0gc3RvcmUuY3JlYXRlSW5kZXgoImlkeCIsICJpS2V5Iik7CisK
KyAgICAgICAgc3RvcmUuYWRkKHsgaUtleTogIkEiLCBwS2V5OiAxIH0pOworCisgICAgICAgIHZh
ciBjdXJzb3JfcnEgPSBpbmRleC5vcGVuQ3Vyc29yKG51bGwsICJuZXh0dW5pcXVlIik7CisKKyAg
ICAgICAgY3Vyc29yX3JxLm9uZXJyb3IgPSB1bnJlYWNoZWQoJ29wZW5DdXJzb3Igc2hvdWxkIHN1
Y2NlZWQnKTsKKyAgICAgICAgY3Vyc29yX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAg
ICAgICAgICAgIGlmICghY3Vyc29yKSB7CisgICAgICAgICAgICAgICAgY3Vyc29yID0gZS50YXJn
ZXQucmVzdWx0OworICAgICAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgiISFjdXJzb3IiKTsKKwor
ICAgICAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgpOworCisgICAgICAgICAgICAgICAgc2hv
dWxkVGhyb3dUeXBlKCJJbnZhbGlkQWNjZXNzRXJyb3IiLCBmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlUHJpbWFyeUtleSgiQSIsIDQpOworICAgICAgICAg
ICAgICAgIH0sICJkaXJlY3Rpb24gY2hlY2sgc2hvdWxkIHByZWNlZGUgaXRlcmF0aW9uIG9uZ29p
bmcgY2hlY2siKTsKKworCQkJCWN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSB1bmRlZmluZWQ7CisJCQkJ
ZGIuY2xvc2UoKTsKKyAgICAgICAgICAgICAgICBuZXh0KCk7CisgICAgICAgICAgICB9CisgICAg
ICAgIH07CisJfTsKKwl5aWVsZDsKKwkKKwlpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJOYW1l
KS5vbnN1Y2Nlc3MgPSBuZXh0OworCWN1cnNvciA9IHVuZGVmaW5lZDsKKwl5aWVsZDsKKwkKKwly
ZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJOYW1lKTsKKwlyZXF1ZXN0Lm9udXBncmFkZW5lZWRl
ZCA9IGZ1bmN0aW9uKCkgeworCQlkYiA9IHJlcXVlc3QucmVzdWx0OworCQkKKyAgICAgICAgdmFy
IHN0b3JlID0gc2V0dXBfdGVzdF9zdG9yZShkYik7CisgICAgICAgIHZhciBjdXJzb3JfcnEgPSBz
dG9yZS5vcGVuQ3Vyc29yKCk7CisKKyAgICAgICAgY3Vyc29yX3JxLm9uZXJyb3IgPSB1bnJlYWNo
ZWQoJ29wZW5DdXJzb3Igc2hvdWxkIHN1Y2NlZWQnKTsKKyAgICAgICAgY3Vyc29yX3JxLm9uc3Vj
Y2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGlmICghY3Vyc29yKSB7CisgICAgICAg
ICAgICAgICAgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICAgICAgICAgIHNob3Vs
ZEJlVHJ1ZSgiISFjdXJzb3IiKTsKKworICAgICAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgp
OworCisgICAgICAgICAgICAgICAgc2hvdWxkVGhyb3dUeXBlKCJJbnZhbGlkQWNjZXNzRXJyb3Ii
LCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlUHJpbWFy
eUtleSgiQSIsIDQpOworICAgICAgICAgICAgICAgIH0sICJpbmRleCBzb3VyY2UgY2hlY2sgc2hv
dWxkIHByZWNlZGUgaXRlcmF0aW9uIG9uZ29pbmcgY2hlY2siKTsKKworCQkJCWN1cnNvcl9ycS5v
bnN1Y2Nlc3MgPSB1bmRlZmluZWQ7CisJCSAgICAgICAgZGIuY2xvc2UoKTsKKyAgICAgICAgICAg
ICAgICBuZXh0KCk7CisgICAgICAgICAgICB9CisgICAgICAgCX07CisJfTsKKwl5aWVsZDsKKwor
CWluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYk5hbWUpLm9uc3VjY2VzcyA9IG5leHQ7CisJY3Vy
c29yID0gdW5kZWZpbmVkOworCXlpZWxkOworCQorCXJlcXVlc3QgPSBpbmRleGVkREIub3Blbihk
Yk5hbWUpOworCXJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oKSB7CisJCWRiID0g
cmVxdWVzdC5yZXN1bHQ7CisJCQorICAgICAgICB2YXIgc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RT
dG9yZSgidGVzdCIsIHtrZXlQYXRoOiJwS2V5In0pOworCisgICAgICAgIHN0b3JlLmFkZCh7IGlL
ZXk6ICJBIiwgcEtleTogMSB9KTsKKworICAgICAgICB2YXIgY3Vyc29yX3JxID0gc3RvcmUub3Bl
bkN1cnNvcigpOworCisgICAgICAgIGN1cnNvcl9ycS5vbmVycm9yID0gdW5yZWFjaGVkKCdvcGVu
Q3Vyc29yIHNob3VsZCBzdWNjZWVkJyk7CisgICAgICAgIGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSBm
dW5jdGlvbihlKSB7CisgICAgICAgICAgICBpZiAoZS50YXJnZXQucmVzdWx0KSB7CisgICAgICAg
ICAgICAgICAgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICAgICAgICAgIGN1cnNv
ci5jb250aW51ZSgpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgc2hvdWxkVGhyb3dUeXBlKCJJbnZhbGlkQWNjZXNzRXJyb3IiLCBmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgICAgICBjdXJzb3IuY29udGludWVQcmltYXJ5S2V5KCJBIiwgNCk7
CisgICAgICAgICAgICB9LCAiaW5kZXggc291cmNlIGNoZWNrIHNob3VsZCBwcmVjZWRlIGdvdF92
YWx1ZV9mbGFnIGNoZWNrIik7CisJCSAgICBkYi5jbG9zZSgpOworICAgICAgICAgICAgbmV4dCgp
OworICAgICAgICB9OworCX07CisJeWllbGQ7CisKKwlpbmRleGVkREIuZGVsZXRlRGF0YWJhc2Uo
ZGJOYW1lKS5vbnN1Y2Nlc3MgPSBuZXh0OworCWN1cnNvciA9IHVuZGVmaW5lZDsKKwl5aWVsZDsK
KwkKKwlyZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJOYW1lKTsKKwlyZXF1ZXN0Lm9udXBncmFk
ZW5lZWRlZCA9IGZ1bmN0aW9uKCkgeworCQlkYiA9IHJlcXVlc3QucmVzdWx0OworCQkKKyAgICAg
ICAgdmFyIHN0b3JlID0gc2V0dXBfdGVzdF9zdG9yZShkYik7CisgICAgICAgIHZhciBpbmRleCA9
IHN0b3JlLmluZGV4KCJpZHgiKTsKKyAgICAgICAgdmFyIGN1cnNvcl9ycSA9IGluZGV4Lm9wZW5D
dXJzb3IoKTsKKworICAgICAgICBjdXJzb3JfcnEub25lcnJvciA9IHVucmVhY2hlZCgnb3BlbkN1
cnNvciBzaG91bGQgc3VjY2VlZCcpOworICAgICAgICBjdXJzb3JfcnEub25zdWNjZXNzID0gZnVu
Y3Rpb24oZSkgeworICAgICAgICAgICAgaWYgKCFjdXJzb3IpIHsKKyAgICAgICAgICAgICAgICBj
dXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCIh
IWN1cnNvciIpOworCisgICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7CisKKyAgICAg
ICAgICAgICAgICBzaG91bGRUaHJvd1R5cGUoIkludmFsaWRTdGF0ZUVycm9yIiwgZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICAgICAgICAgIGN1cnNvci5jb250aW51ZVByaW1hcnlLZXkobnVsbCwg
NCk7CisgICAgICAgICAgICAgICAgfSwgIml0ZXJhdGlvbiBvbmdvaW5nIGNoZWNrIHNob3VsZCBw
cmVjZWRlIHVuc2V0IGtleSBjaGVjayIpOworCisJCQkJY3Vyc29yX3JxLm9uc3VjY2VzcyA9IHVu
ZGVmaW5lZDsKKwkJICAgIAlkYi5jbG9zZSgpOworICAgICAgICAgICAgICAgIG5leHQoKTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfTsKKwl9OworCXlpZWxkOworCisJaW5kZXhlZERCLmRlbGV0
ZURhdGFiYXNlKGRiTmFtZSkub25zdWNjZXNzID0gbmV4dDsKKwljdXJzb3IgPSB1bmRlZmluZWQ7
CisJeWllbGQ7CisJCisJcmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRiTmFtZSk7CisJcmVxdWVz
dC5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbigpIHsKKwkJZGIgPSByZXF1ZXN0LnJlc3VsdDsK
KwkJCisgICAgICAgIHZhciBzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0Iiwge2tl
eVBhdGg6InBLZXkifSk7CisgICAgICAgIHZhciBpbmRleCA9IHN0b3JlLmNyZWF0ZUluZGV4KCJp
ZHgiLCAiaUtleSIpOworCisgICAgICAgIHN0b3JlLmFkZCh7IGlLZXk6ICJBIiwgcEtleTogMSB9
KTsKKworICAgICAgICB2YXIgY3Vyc29yX3JxID0gaW5kZXgub3BlbkN1cnNvcigpOworCisgICAg
ICAgIGN1cnNvcl9ycS5vbmVycm9yID0gdW5yZWFjaGVkKCdvcGVuQ3Vyc29yIHNob3VsZCBzdWNj
ZWVkJyk7CisgICAgICAgIGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAg
ICAgICAgICBpZiAoZS50YXJnZXQucmVzdWx0KSB7CisgICAgICAgICAgICAgICAgY3Vyc29yID0g
ZS50YXJnZXQucmVzdWx0OworICAgICAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgpOworICAg
ICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgc2hvdWxk
VGhyb3dUeXBlKCJJbnZhbGlkU3RhdGVFcnJvciIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
ICAgIGN1cnNvci5jb250aW51ZVByaW1hcnlLZXkobnVsbCwgNCk7CisgICAgICAgICAgICB9LCAi
Z290X3ZhbHVlX2ZsYWcgY2hlY2sgc2hvdWxkIHByZWNlZGUgdW5zZXQga2V5IGNoZWNrIik7CisJ
ICAgCQkKKwkJCWRiLmNsb3NlKCk7CisgICAgICAgICAgICBuZXh0KCk7CisgICAgICAgIH07CisJ
fTsKKwl5aWVsZDsKKworCWluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYk5hbWUpLm9uc3VjY2Vz
cyA9IG5leHQ7CisJY3Vyc29yID0gdW5kZWZpbmVkOworCXlpZWxkOworCQorCXJlcXVlc3QgPSBp
bmRleGVkREIub3BlbihkYk5hbWUpOworCXJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gZnVuY3Rp
b24oKSB7CisJCWRiID0gcmVxdWVzdC5yZXN1bHQ7CisKKyAgICAgICAgdmFyIHN0b3JlID0gc2V0
dXBfdGVzdF9zdG9yZShkYik7CisgICAgICAgIHZhciBpbmRleCA9IHN0b3JlLmluZGV4KCJpZHgi
KTsKKyAgICAgICAgdmFyIGN1cnNvcl9ycSA9IGluZGV4Lm9wZW5DdXJzb3IoKTsKKworICAgICAg
ICBjdXJzb3JfcnEub25lcnJvciA9IHVucmVhY2hlZCgnb3BlbkN1cnNvciBzaG91bGQgc3VjY2Vl
ZCcpOworICAgICAgICBjdXJzb3JfcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAg
ICAgICAgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICAgICAgc2hvdWxkQmVUcnVl
KCIhIWN1cnNvciIpOworCisgICAgICAgICAgICBzaG91bGRUaHJvd1R5cGUoIkRhdGFFcnJvciIs
IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGN1cnNvci5jb250aW51ZVByaW1hcnlLZXko
bnVsbCwgNCk7CisgICAgICAgICAgICB9LCAiRGF0YUVycm9yIGlzIGV4cGVjdGVkIGlmIGtleSBp
cyB1bnNldC4iKTsKKworCQkJZGIuY2xvc2UoKTsKKyAgICAgICAgICAgIG5leHQoKTsKKyAgICAg
ICAgfTsKKwl9OworCXlpZWxkOworCisJaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRiTmFtZSku
b25zdWNjZXNzID0gbmV4dDsKKwljdXJzb3IgPSB1bmRlZmluZWQ7CisJeWllbGQ7CisJCisJcmVx
dWVzdCA9IGluZGV4ZWREQi5vcGVuKGRiTmFtZSk7CisJcmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQg
PSBmdW5jdGlvbigpIHsKKwkJZGIgPSByZXF1ZXN0LnJlc3VsdDsKKworICAgICAgICB2YXIgc3Rv
cmUgPSBzZXR1cF90ZXN0X3N0b3JlKGRiKTsKKyAgICAgICAgdmFyIGluZGV4ID0gc3RvcmUuaW5k
ZXgoImlkeCIpOworICAgICAgICB2YXIgY3Vyc29yX3JxID0gaW5kZXgub3BlbkN1cnNvcigpOwor
CisgICAgICAgIGN1cnNvcl9ycS5vbmVycm9yID0gdW5yZWFjaGVkKCdvcGVuQ3Vyc29yIHNob3Vs
ZCBzdWNjZWVkJyk7CisgICAgICAgIGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7
CisgICAgICAgICAgICBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICBzaG91
bGRCZVRydWUoIiEhY3Vyc29yIik7CisKKyAgICAgICAgICAgIHNob3VsZFRocm93VHlwZSgiRGF0
YUVycm9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlUHJp
bWFyeUtleSgiQSIsIG51bGwpOworICAgICAgICAgICAgfSwgIkRhdGFFcnJvciBpcyBleHBlY3Rl
ZCBpZiBwcmltYXJ5IGtleSBpcyB1bnNldC4iKTsKKworCQkJZGIuY2xvc2UoKTsKKyAgICAgICAg
ICAgIG5leHQoKTsKKyAgICAgICAgfTsKKwl9OworCXlpZWxkOworCQorCWluZGV4ZWREQi5kZWxl
dGVEYXRhYmFzZShkYk5hbWUpLm9uc3VjY2VzcyA9IG5leHQ7CisJY3Vyc29yID0gdW5kZWZpbmVk
OworCXlpZWxkOworCQorCXJlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYk5hbWUpOworCXJlcXVl
c3Qub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oKSB7CisJCWRiID0gcmVxdWVzdC5yZXN1bHQ7
CisKKyAgICAgICAgdmFyIHN0b3JlID0gc2V0dXBfdGVzdF9zdG9yZShkYik7CisgICAgICAgIHZh
ciBpbmRleCA9IHN0b3JlLmluZGV4KCJpZHgiKTsKKyAgICAgICAgdmFyIGN1cnNvcl9ycSA9IGlu
ZGV4Lm9wZW5DdXJzb3IoSURCS2V5UmFuZ2UubG93ZXJCb3VuZCgiQiIpKTsKKworICAgICAgICBj
dXJzb3JfcnEub25lcnJvciA9IHVucmVhY2hlZCgnb3BlbkN1cnNvciBzaG91bGQgc3VjY2VlZCcp
OworICAgICAgICBjdXJzb3JfcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICAg
ICAgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCIh
IWN1cnNvciIpOworCisgICAgICAgICAgICBzaG91bGRCZVRydWUoImN1cnNvci5rZXkgPT0gJ0In
IiwgImV4cGVjdGVkIGtleSIpOworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJjdXJzb3IucHJp
bWFyeUtleSA9PSA1IiwgImV4cGVjdGVkIHByaW1hcnkga2V5Iik7CisKKyAgICAgICAgICAgIHNo
b3VsZFRocm93VHlwZSgiRGF0YUVycm9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAg
Y3Vyc29yLmNvbnRpbnVlUHJpbWFyeUtleSgiQSIsIDYpOworICAgICAgICAgICAgfSwgIkRhdGFF
cnJvciBpcyBleHBlY3RlZCBpZiBrZXkgaXMgbG93ZXIgdGhlbiBjdXJyZW50IG9uZS4iKTsKKwor
ICAgICAgICAgICAgc2hvdWxkVGhyb3dUeXBlKCJEYXRhRXJyb3IiLCBmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgICAgICBjdXJzb3IuY29udGludWVQcmltYXJ5S2V5KCJCIiwgNSk7CisgICAgICAg
ICAgICB9LCAiRGF0YUVycm9yIGlzIGV4cGVjdGVkIGlmIHByaW1hcnkga2V5IGlzIGVxdWFsIHRv
IGN1cnJlbnQgb25lLiIpOworCisgICAgICAgICAgICBzaG91bGRUaHJvd1R5cGUoIkRhdGFFcnJv
ciIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGN1cnNvci5jb250aW51ZVByaW1hcnlL
ZXkoIkIiLCA0KTsKKyAgICAgICAgICAgIH0sICJEYXRhRXJyb3IgaXMgZXhwZWN0ZWQgaWYgcHJp
bWFyeSBrZXkgaXMgbG93ZXIgdGhhbiBjdXJyZW50IG9uZS4iKTsKKworCQkJZGIuY2xvc2UoKTsK
KyAgICAgICAgICAgIG5leHQoKTsKKyAgICAgICAgfTsKKwl9OworCXlpZWxkOworCisJaW5kZXhl
ZERCLmRlbGV0ZURhdGFiYXNlKGRiTmFtZSkub25zdWNjZXNzID0gbmV4dDsKKwljdXJzb3IgPSB1
bmRlZmluZWQ7CisJeWllbGQ7CisJCisJcmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRiTmFtZSk7
CisJcmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbigpIHsKKwkJZGIgPSByZXF1ZXN0
LnJlc3VsdDsKKwkKKyAgICAgICAgdmFyIHN0b3JlID0gc2V0dXBfdGVzdF9zdG9yZShkYik7Cisg
ICAgICAgIHZhciBpbmRleCA9IHN0b3JlLmluZGV4KCJpZHgiKTsKKyAgICAgICAgdmFyIGN1cnNv
cl9ycSA9IGluZGV4Lm9wZW5DdXJzb3IoSURCS2V5UmFuZ2UudXBwZXJCb3VuZCgiQiIpLCAicHJl
diIpOworCisgICAgICAgIGN1cnNvcl9ycS5vbmVycm9yID0gdW5yZWFjaGVkKCdvcGVuQ3Vyc29y
IHNob3VsZCBzdWNjZWVkJyk7CisgICAgICAgIGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlv
bihlKSB7CisgICAgICAgICAgICBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAg
ICBzaG91bGRCZVRydWUoIiEhY3Vyc29yIik7CisKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgi
Y3Vyc29yLmtleSA9PSAnQiciLCAiZXhwZWN0ZWQga2V5Iik7CisgICAgICAgICAgICBzaG91bGRC
ZVRydWUoImN1cnNvci5wcmltYXJ5S2V5ID09IDciLCAiZXhwZWN0ZWQgcHJpbWFyeSBrZXkiKTsK
KworICAgICAgICAgICAgc2hvdWxkVGhyb3dUeXBlKCJEYXRhRXJyb3IiLCBmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgICAgICBjdXJzb3IuY29udGludWVQcmltYXJ5S2V5KCJDIiwgNik7CisgICAg
ICAgICAgICB9LCAiRGF0YUVycm9yIGlzIGV4cGVjdGVkIGlmIGtleSBpcyBsYXJnZXIgdGhlbiBj
dXJyZW50IG9uZS4iKTsKKworICAgICAgICAgICAgc2hvdWxkVGhyb3dUeXBlKCJEYXRhRXJyb3Ii
LCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBjdXJzb3IuY29udGludWVQcmltYXJ5S2V5
KCJCIiwgNyk7CisgICAgICAgICAgICB9LCAiRGF0YUVycm9yIGlzIGV4cGVjdGVkIGlmIHByaW1h
cnkga2V5IGlzIGVxdWFsIHRvIGN1cnJlbnQgb25lLiIpOworCisgICAgICAgICAgICBzaG91bGRU
aHJvd1R5cGUoIkRhdGFFcnJvciIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGN1cnNv
ci5jb250aW51ZVByaW1hcnlLZXkoIkIiLCA4KTsKKyAgICAgICAgICAgIH0sICJEYXRhRXJyb3Ig
aXMgZXhwZWN0ZWQgaWYgcHJpbWFyeSBrZXkgaXMgbGFyZ2VyIHRoYW4gY3VycmVudCBvbmUuIik7
CisKKwkJCWRiLmNsb3NlKCk7CisgICAgICAgICAgICBuZXh0KCk7CisgICAgICAgIH07CisJfTsK
Kwl5aWVsZDsKKworCWZpbmlzaEpTVGVzdCgpOworfQorCisKKworCisKKy8vIGluZGV4ZWRkYl90
ZXN0KAorLy8gICAgIGZ1bmN0aW9uKHQsIGRiLCB0eG4pIHsKKy8vICAgICAgICAgdmFyIHN0b3Jl
ID0gc2V0dXBfdGVzdF9zdG9yZShkYik7CisvLyAgICAgICAgIHZhciBpbmRleCA9IHN0b3JlLmlu
ZGV4KCJpZHgiKTsKKy8vICAgICAgICAgdmFyIGN1cnNvcl9ycSA9IGluZGV4Lm9wZW5DdXJzb3Io
SURCS2V5UmFuZ2UubG93ZXJCb3VuZCgiQiIpKTsKKy8vICAgICAgICAgdmFyIGN1cnNvcjsKKy8v
IAorLy8gICAgICAgICBjdXJzb3JfcnEub25lcnJvciA9IHVucmVhY2hlZCgnb3BlbkN1cnNvciBz
aG91bGQgc3VjY2VlZCcpOworLy8gICAgICAgICBjdXJzb3JfcnEub25zdWNjZXNzID0gZnVuY3Rp
b24oZSkgeworLy8gICAgICAgICAgICAgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OworLy8gICAg
ICAgICAgICAgc2hvdWxkQmVUcnVlKCEhY3Vyc29yLCAiYWNxdWlyZSBjdXJzb3IiKTsKKy8vIAor
Ly8gICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3Iua2V5LCAiQiIsICJleHBlY3RlZCBr
ZXkiKTsKKy8vICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnByaW1hcnlLZXksIDUs
ICJleHBlY3RlZCBwcmltYXJ5IGtleSIpOworLy8gCisvLyAgICAgICAgICAgICBzaG91bGRUaHJv
d1R5cGUoIkRhdGFFcnJvciIsIGZ1bmN0aW9uKCkgeworLy8gICAgICAgICAgICAgICAgIGN1cnNv
ci5jb250aW51ZVByaW1hcnlLZXkoIkEiLCA2KTsKKy8vICAgICAgICAgICAgIH0sICJEYXRhRXJy
b3IgaXMgZXhwZWN0ZWQgaWYga2V5IGlzIGxvd2VyIHRoZW4gY3VycmVudCBvbmUuIik7CisvLyAK
Ky8vICAgICAgICAgICAgIHNob3VsZFRocm93VHlwZSgiRGF0YUVycm9yIiwgZnVuY3Rpb24oKSB7
CisvLyAgICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlUHJpbWFyeUtleSgiQiIsIDUpOwor
Ly8gICAgICAgICAgICAgfSwgIkRhdGFFcnJvciBpcyBleHBlY3RlZCBpZiBwcmltYXJ5IGtleSBp
cyBlcXVhbCB0byBjdXJyZW50IG9uZS4iKTsKKy8vIAorLy8gICAgICAgICAgICAgc2hvdWxkVGhy
b3dUeXBlKCJEYXRhRXJyb3IiLCBmdW5jdGlvbigpIHsKKy8vICAgICAgICAgICAgICAgICBjdXJz
b3IuY29udGludWVQcmltYXJ5S2V5KCJCIiwgNCk7CisvLyAgICAgICAgICAgICB9LCAiRGF0YUVy
cm9yIGlzIGV4cGVjdGVkIGlmIHByaW1hcnkga2V5IGlzIGxvd2VyIHRoYW4gY3VycmVudCBvbmUu
Iik7CisvLyAKKy8vICAgICAgICAgICAgIG5leHQoKTsKKy8vICAgICAgICAgfSk7CisvLyAgICAg
fSwKKy8vICAgICBudWxsLAorLy8gICAgICJEYXRhRXJyb3Ioa2V5cyBhcmUgbG93ZXIgdGhlbiBj
dXJyZW50IG9uZSkgaW4gJ25leHQnIGRpcmVjdGlvbiIKKy8vICk7CisvLyAKKy8vIGluZGV4ZWRk
Yl90ZXN0KAorLy8gICAgIGZ1bmN0aW9uKHQsIGRiLCB0eG4pIHsKKy8vICAgICAgICAgdmFyIHN0
b3JlID0gc2V0dXBfdGVzdF9zdG9yZShkYik7CisvLyAgICAgICAgIHZhciBpbmRleCA9IHN0b3Jl
LmluZGV4KCJpZHgiKTsKKy8vICAgICAgICAgdmFyIGN1cnNvcl9ycSA9IGluZGV4Lm9wZW5DdXJz
b3IoSURCS2V5UmFuZ2UudXBwZXJCb3VuZCgiQiIpLCAicHJldiIpOworLy8gCisvLyAgICAgICAg
IGN1cnNvcl9ycS5vbmVycm9yID0gdW5yZWFjaGVkKCdvcGVuQ3Vyc29yIHNob3VsZCBzdWNjZWVk
Jyk7CisvLyAgICAgICAgIGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisvLyAg
ICAgICAgICAgICBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisvLyAgICAgICAgICAgICBzaG91
bGRCZVRydWUoISFjdXJzb3IsICJhY3F1aXJlIGN1cnNvciIpOworLy8gCisvLyAgICAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKGN1cnNvci5rZXksICJCIiwgImV4cGVjdGVkIGtleSIpOworLy8gICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IucHJpbWFyeUtleSwgNywgImV4cGVjdGVkIHBy
aW1hcnkga2V5Iik7CisvLyAKKy8vICAgICAgICAgICAgIHNob3VsZFRocm93VHlwZSgiRGF0YUVy
cm9yIiwgZnVuY3Rpb24oKSB7CisvLyAgICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlUHJp
bWFyeUtleSgiQyIsIDYpOworLy8gICAgICAgICAgICAgfSwgIkRhdGFFcnJvciBpcyBleHBlY3Rl
ZCBpZiBrZXkgaXMgbGFyZ2VyIHRoZW4gY3VycmVudCBvbmUuIik7CisvLyAKKy8vICAgICAgICAg
ICAgIHNob3VsZFRocm93VHlwZSgiRGF0YUVycm9yIiwgZnVuY3Rpb24oKSB7CisvLyAgICAgICAg
ICAgICAgICAgY3Vyc29yLmNvbnRpbnVlUHJpbWFyeUtleSgiQiIsIDcpOworLy8gICAgICAgICAg
ICAgfSwgIkRhdGFFcnJvciBpcyBleHBlY3RlZCBpZiBwcmltYXJ5IGtleSBpcyBlcXVhbCB0byBj
dXJyZW50IG9uZS4iKTsKKy8vIAorLy8gICAgICAgICAgICAgc2hvdWxkVGhyb3dUeXBlKCJEYXRh
RXJyb3IiLCBmdW5jdGlvbigpIHsKKy8vICAgICAgICAgICAgICAgICBjdXJzb3IuY29udGludWVQ
cmltYXJ5S2V5KCJCIiwgOCk7CisvLyAgICAgICAgICAgICB9LCAiRGF0YUVycm9yIGlzIGV4cGVj
dGVkIGlmIHByaW1hcnkga2V5IGlzIGxhcmdlciB0aGFuIGN1cnJlbnQgb25lLiIpOworLy8gCisv
LyAgICAgICAgICAgICBuZXh0KCk7CisvLyAgICAgICAgIH0pOworLy8gICAgIH0sCisvLyAgICAg
bnVsbCwKKy8vICAgICAiRGF0YUVycm9yKGtleXMgYXJlIGxhcmdlciB0aGVuIGN1cnJlbnQgb25l
KSBpbiAncHJldicgZGlyZWN0aW9uIgorLy8gKTsKKy8vIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGVkZTkxYmQu
LmVmODA2ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSw1MyBAQAogMjAxNi0xMS0wOCAgQnJhZHkg
RWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKKyAgICAgICAgSW5kZXhlZERCIDIuMDogSW1w
bGVtZW50IG5ldyBJREJDdXJzb3IuY29udGludWVQcmltYXJ5S2V5IGZ1bmN0aW9uLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0NDA0CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHM6IHN0b3JhZ2Uv
aW5kZXhlZGRiL21vZGVybi9pZGJjdXJzb3ItY29udGludWUtcHJpbWFyeS1rZXktMS1wcml2YXRl
Lmh0bWwKKyAgICAgICAgICAgICAgIHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJjdXJzb3It
Y29udGludWUtcHJpbWFyeS1rZXktMS5odG1sCisgICAgICAgICAgICAgICBBbHNvIGNvdmVyZWQg
YnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJz
b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yOjpjb250aW51ZVByaW1hcnlLZXkp
OgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yOjp1bmNoZWNrZWRJdGVyYXRlQ3Vyc29yKToK
KyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuaDoKKyAgICAgICAgKiBNb2R1
bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuaWRsOgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVk
ZGIvSURCS2V5RGF0YS5oOgorICAgICAgICAoV2ViQ29yZTo6SURCS2V5RGF0YTo6b3BlcmF0b3I+
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQktleURhdGE6Om9wZXJhdG9yPD0pOgorICAgICAgICAo
V2ViQ29yZTo6SURCS2V5RGF0YTo6b3BlcmF0b3I+PSk6CisKKyAgICAgICAgKiBNb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5Q3Vyc29yLmg6CisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4
ZWRkYi9zZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OklEQlNlcnZlcjo6TWVtb3J5SURCQmFja2luZ1N0b3JlOjppdGVyYXRlQ3Vyc29yKToKKworICAg
ICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJbmRleEN1cnNvci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6Ok1lbW9yeUluZGV4Q3Vyc29yOjppdGVyYXRlKToK
KyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SW5kZXhDdXJzb3IuaDoK
KworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlPYmplY3RTdG9yZUN1
cnNvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6Ok1lbW9yeU9iamVjdFN0b3Jl
Q3Vyc29yOjppdGVyYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVt
b3J5T2JqZWN0U3RvcmVDdXJzb3IuaDoKKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2Vy
dmVyOjpTUUxpdGVJREJCYWNraW5nU3RvcmU6Oml0ZXJhdGVDdXJzb3IpOgorCisgICAgICAgICog
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkN1cnNvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJREJTZXJ2ZXI6OlNRTGl0ZUlEQkN1cnNvcjo6aXRlcmF0ZSk6CisgICAgICAgICog
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkN1cnNvci5oOgorCisgICAgICAgICog
TW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkl0ZXJhdGVDdXJzb3JEYXRhLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OklEQkl0ZXJhdGVDdXJzb3JEYXRhOjppc29sYXRlZENvcHkpOgorICAgICAg
ICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJJdGVyYXRlQ3Vyc29yRGF0YS5oOgorICAg
ICAgICAoV2ViQ29yZTo6SURCSXRlcmF0ZUN1cnNvckRhdGE6OmVuY29kZSk6CisgICAgICAgIChX
ZWJDb3JlOjpJREJJdGVyYXRlQ3Vyc29yRGF0YTo6ZGVjb2RlKToKKworMjAxNi0xMS0wOCAgQnJh
ZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKICAgICAgICAgSW5kZXhlZERCIDIuMDog
RW5jYXBzdWxhdGUgY3Vyc29yIGl0ZXJhdGlvbiBwYXJhbWV0ZXJzIGZvciBlYXN5IGZ1dHVyZSBl
eHBhbnNpb24uCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNjQ1MDQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCQ3Vyc29yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNv
ci5jcHAKaW5kZXggMmMwNWQ4Mi4uZDIzNDQ0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuY3BwCkBAIC0yNDIsNiArMjQyLDU1IEBAIEV4Y2VwdGlv
bk9yPHZvaWQ+IElEQkN1cnNvcjo6YWR2YW5jZSh1bnNpZ25lZCBjb3VudCkKICAgICByZXR1cm4g
eyB9OwogfQogCitFeGNlcHRpb25Pcjx2b2lkPiBJREJDdXJzb3I6OmNvbnRpbnVlUHJpbWFyeUtl
eShFeGVjU3RhdGUmIHN0YXRlLCBKU1ZhbHVlIGtleVZhbHVlLCBKU1ZhbHVlIHByaW1hcnlLZXlW
YWx1ZSkKK3sKKyAgICBpZiAoIXRyYW5zYWN0aW9uKCkuaXNBY3RpdmUoKSkKKyAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpUcmFuc2FjdGlvbkluYWN0aXZl
RXJyb3IsIEFTQ0lJTGl0ZXJhbCgiRmFpbGVkIHRvIGV4ZWN1dGUgJ2NvbnRpbnVlUHJpbWFyeUtl
eScgb24gJ0lEQkN1cnNvcic6IFRoZSB0cmFuc2FjdGlvbiBpcyBpbmFjdGl2ZSBvciBmaW5pc2hl
ZC4iKSB9OworCisgICAgaWYgKHNvdXJjZXNEZWxldGVkKCkpCisgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6SW52YWxpZFN0YXRlRXJyb3IsIEFTQ0lJTGl0
ZXJhbCgiRmFpbGVkIHRvIGV4ZWN1dGUgJ2NvbnRpbnVlUHJpbWFyeUtleScgb24gJ0lEQkN1cnNv
cic6IFRoZSBjdXJzb3IncyBzb3VyY2Ugb3IgZWZmZWN0aXZlIG9iamVjdCBzdG9yZSBoYXMgYmVl
biBkZWxldGVkLiIpIH07CisKKyAgICBpZiAoIW1faW5kZXgpCisgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6SW52YWxpZEFjY2Vzc0Vycm9yLCBBU0NJSUxp
dGVyYWwoIkZhaWxlZCB0byBleGVjdXRlICdjb250aW51ZVByaW1hcnlLZXknIG9uICdJREJDdXJz
b3InOiBUaGUgY3Vyc29yJ3Mgc291cmNlIGlzIG5vdCBhbiBpbmRleC4iKSB9OworCisgICAgYXV0
byBkaXJlY3Rpb24gPSBtX2luZm8uY3Vyc29yRGlyZWN0aW9uKCk7CisgICAgaWYgKGRpcmVjdGlv
biAhPSBJbmRleGVkREI6OkN1cnNvckRpcmVjdGlvbjo6TmV4dCAmJiBkaXJlY3Rpb24gIT0gSW5k
ZXhlZERCOjpDdXJzb3JEaXJlY3Rpb246OlByZXYpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6SW52YWxpZEFjY2Vzc0Vycm9yLCBBU0NJSUxpdGVyYWwo
IkZhaWxlZCB0byBleGVjdXRlICdjb250aW51ZVByaW1hcnlLZXknIG9uICdJREJDdXJzb3InOiBU
aGUgY3Vyc29yJ3MgZGlyZWN0aW9uIG11c3QgYmUgZWl0aGVyIFwibmV4dFwiIG9yIFwicHJldlwi
LiIpIH07CisKKyAgICBpZiAoIW1fZ290VmFsdWUpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6SW52YWxpZFN0YXRlRXJyb3IsIEFTQ0lJTGl0ZXJhbCgi
RmFpbGVkIHRvIGV4ZWN1dGUgJ2NvbnRpbnVlUHJpbWFyeUtleScgb24gJ0lEQkN1cnNvcic6IFRo
ZSBjdXJzb3IgaXMgYmVpbmcgaXRlcmF0ZWQgb3IgaGFzIGl0ZXJhdGVkIHBhc3QgaXRzIGVuZC4i
KSB9OworCisgICAgUmVmUHRyPElEQktleT4ga2V5ID0gc2NyaXB0VmFsdWVUb0lEQktleShzdGF0
ZSwga2V5VmFsdWUpOworICAgIGlmICgha2V5LT5pc1ZhbGlkKCkpCisgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6RGF0YUVycm9yLCBBU0NJSUxpdGVyYWwo
IkZhaWxlZCB0byBleGVjdXRlICdjb250aW51ZVByaW1hcnlLZXknIG9uICdJREJDdXJzb3InOiBU
aGUgZmlyc3QgcGFyYW1ldGVyIGlzIG5vdCBhIHZhbGlkIGtleS4iKSB9OworCisgICAgUmVmUHRy
PElEQktleT4gcHJpbWFyeUtleSA9IHNjcmlwdFZhbHVlVG9JREJLZXkoc3RhdGUsIHByaW1hcnlL
ZXlWYWx1ZSk7CisgICAgaWYgKCFwcmltYXJ5S2V5LT5pc1ZhbGlkKCkpCisgICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6RGF0YUVycm9yLCBBU0NJSUxpdGVy
YWwoIkZhaWxlZCB0byBleGVjdXRlICdjb250aW51ZVByaW1hcnlLZXknIG9uICdJREJDdXJzb3In
OiBUaGUgc2Vjb25kIHBhcmFtZXRlciBpcyBub3QgYSB2YWxpZCBrZXkuIikgfTsKKworICAgIElE
QktleURhdGEga2V5RGF0YSA9IHsga2V5LmdldCgpIH07CisgICAgSURCS2V5RGF0YSBwcmltYXJ5
S2V5RGF0YSA9IHsgcHJpbWFyeUtleS5nZXQoKSB9OworCisgICAgaWYgKGtleURhdGEgPCBtX2N1
cnJlbnRLZXlEYXRhICYmIGRpcmVjdGlvbiA9PSBJbmRleGVkREI6OkN1cnNvckRpcmVjdGlvbjo6
TmV4dCkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpE
YXRhRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiRmFpbGVkIHRvIGV4ZWN1dGUgJ2NvbnRpbnVlUHJpbWFy
eUtleScgb24gJ0lEQkN1cnNvcic6IFRoZSBmaXJzdCBwYXJhbWV0ZXIgaXMgbGVzcyB0aGFuIHRo
aXMgY3Vyc29yJ3MgcG9zaXRpb24gYW5kIHRoaXMgY3Vyc29yJ3MgZGlyZWN0aW9uIGlzIFwibmV4
dFwiLiIpIH07CisKKyAgICBpZiAoa2V5RGF0YSA+IG1fY3VycmVudEtleURhdGEgJiYgZGlyZWN0
aW9uID09IEluZGV4ZWREQjo6Q3Vyc29yRGlyZWN0aW9uOjpQcmV2KQorICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgSURCRGF0YWJhc2VFeGNlcHRpb246OkRhdGFFcnJvciwgQVNDSUlMaXRlcmFs
KCJGYWlsZWQgdG8gZXhlY3V0ZSAnY29udGludWVQcmltYXJ5S2V5JyBvbiAnSURCQ3Vyc29yJzog
VGhlIGZpcnN0IHBhcmFtZXRlciBpcyBncmVhdGVyIHRoYW4gdGhpcyBjdXJzb3IncyBwb3NpdGlv
biBhbmQgdGhpcyBjdXJzb3IncyBkaXJlY3Rpb24gaXMgXCJwcmV2XCIuIikgfTsKKworICAgIGlm
IChrZXlEYXRhID09IG1fY3VycmVudEtleURhdGEpIHsKKyAgICAgICAgaWYgKHByaW1hcnlLZXlE
YXRhIDw9IG1fY3VycmVudFByaW1hcnlLZXlEYXRhICYmIGRpcmVjdGlvbiA9PSBJbmRleGVkREI6
OkN1cnNvckRpcmVjdGlvbjo6TmV4dCkKKyAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJ
REJEYXRhYmFzZUV4Y2VwdGlvbjo6RGF0YUVycm9yLCBBU0NJSUxpdGVyYWwoIkZhaWxlZCB0byBl
eGVjdXRlICdjb250aW51ZVByaW1hcnlLZXknIG9uICdJREJDdXJzb3InOiBUaGUga2V5IHBhcmFt
ZXRlcnMgcmVwcmVzZW50IGEgcG9zaXRpb24gbGVzcy10aGFuLW9yLWVxdWFsLXRvIHRoaXMgY3Vy
c29yJ3MgcG9zaXRpb24gYW5kIHRoaXMgY3Vyc29yJ3MgZGlyZWN0aW9uIGlzIFwibmV4dFwiLiIp
IH07CisgICAgICAgIGlmIChwcmltYXJ5S2V5RGF0YSA+PSBtX2N1cnJlbnRQcmltYXJ5S2V5RGF0
YSAmJiBkaXJlY3Rpb24gPT0gSW5kZXhlZERCOjpDdXJzb3JEaXJlY3Rpb246OlByZXYpCisgICAg
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSURCRGF0YWJhc2VFeGNlcHRpb246OkRhdGFFcnJv
ciwgQVNDSUlMaXRlcmFsKCJGYWlsZWQgdG8gZXhlY3V0ZSAnY29udGludWVQcmltYXJ5S2V5JyBv
biAnSURCQ3Vyc29yJzogVGhlIGtleSBwYXJhbWV0ZXJzIHJlcHJlc2VudCBhIHBvc2l0aW9uIGdy
ZWF0ZXItdGhhbi1vci1lcXVhbC10byB0aGlzIGN1cnNvcidzIHBvc2l0aW9uIGFuZCB0aGlzIGN1
cnNvcidzIGRpcmVjdGlvbiBpcyBcInByZXZcIi4iKSB9OworICAgIH0KKworICAgIG1fZ290VmFs
dWUgPSBmYWxzZTsKKworICAgIHVuY2hlY2tlZEl0ZXJhdGVDdXJzb3Ioa2V5RGF0YSwgcHJpbWFy
eUtleURhdGEpOworCisgICAgcmV0dXJuIHsgfTsKK30KKwogRXhjZXB0aW9uT3I8dm9pZD4gSURC
Q3Vyc29yOjpjb250aW51ZUZ1bmN0aW9uKEV4ZWNTdGF0ZSYgZXhlY1N0YXRlLCBKU1ZhbHVlIGtl
eVZhbHVlKQogewogICAgIFJlZlB0cjxJREJLZXk+IGtleTsKQEAgLTI5Myw3ICszNDIsMTcgQEAg
dm9pZCBJREJDdXJzb3I6OnVuY2hlY2tlZEl0ZXJhdGVDdXJzb3IoY29uc3QgSURCS2V5RGF0YSYg
a2V5LCB1bnNpZ25lZCBjb3VudCkKICAgICArK21fb3V0c3RhbmRpbmdSZXF1ZXN0Q291bnQ7CiAK
ICAgICBtX3JlcXVlc3QtPndpbGxJdGVyYXRlQ3Vyc29yKCp0aGlzKTsKLSAgICB0cmFuc2FjdGlv
bigpLml0ZXJhdGVDdXJzb3IoKnRoaXMsIHsga2V5LCBjb3VudCB9KTsKKyAgICB0cmFuc2FjdGlv
bigpLml0ZXJhdGVDdXJzb3IoKnRoaXMsIHsga2V5LCB7IH0sIGNvdW50IH0pOworfQorCit2b2lk
IElEQkN1cnNvcjo6dW5jaGVja2VkSXRlcmF0ZUN1cnNvcihjb25zdCBJREJLZXlEYXRhJiBrZXks
IGNvbnN0IElEQktleURhdGEmIHByaW1hcnlLZXkpCit7CisgICAgQVNTRVJUKGN1cnJlbnRUaHJl
YWQoKSA9PSBlZmZlY3RpdmVPYmplY3RTdG9yZSgpLnRyYW5zYWN0aW9uKCkuZGF0YWJhc2UoKS5v
cmlnaW5UaHJlYWRJRCgpKTsKKworICAgICsrbV9vdXRzdGFuZGluZ1JlcXVlc3RDb3VudDsKKwor
ICAgIG1fcmVxdWVzdC0+d2lsbEl0ZXJhdGVDdXJzb3IoKnRoaXMpOworICAgIHRyYW5zYWN0aW9u
KCkuaXRlcmF0ZUN1cnNvcigqdGhpcywgeyBrZXksIHByaW1hcnlLZXksIDAgfSk7CiB9CiAKIEV4
Y2VwdGlvbk9yPFJlZjxXZWJDb3JlOjpJREJSZXF1ZXN0Pj4gSURCQ3Vyc29yOjpkZWxldGVGdW5j
dGlvbihFeGVjU3RhdGUmIHN0YXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCQ3Vyc29yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJDdXJzb3IuaAppbmRleCAyYWE4ODgyLi5kMDE3NmRlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuaApAQCAtNjUsNiArNjUsNyBAQCBwdWJsaWM6
CiAgICAgRXhjZXB0aW9uT3I8UmVmPElEQlJlcXVlc3Q+PiB1cGRhdGUoSlNDOjpFeGVjU3RhdGUm
LCBKU0M6OkpTVmFsdWUpOwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IGFkdmFuY2UodW5zaWduZWQp
OwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IGNvbnRpbnVlRnVuY3Rpb24oSlNDOjpFeGVjU3RhdGUm
LCBKU0M6OkpTVmFsdWUga2V5KTsKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBjb250aW51ZVByaW1h
cnlLZXkoSlNDOjpFeGVjU3RhdGUmLCBKU0M6OkpTVmFsdWUga2V5LCBKU0M6OkpTVmFsdWUgcHJp
bWFyeUtleSk7CiAgICAgRXhjZXB0aW9uT3I8UmVmPElEQlJlcXVlc3Q+PiBkZWxldGVGdW5jdGlv
bihKU0M6OkV4ZWNTdGF0ZSYpOwogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gY29udGludWVGdW5j
dGlvbihjb25zdCBJREJLZXlEYXRhJik7CkBAIC05Niw2ICs5Nyw3IEBAIHByaXZhdGU6CiAgICAg
SURCVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uKCkgY29uc3Q7CiAKICAgICB2b2lkIHVuY2hlY2tl
ZEl0ZXJhdGVDdXJzb3IoY29uc3QgSURCS2V5RGF0YSYsIHVuc2lnbmVkIGNvdW50KTsKKyAgICB2
b2lkIHVuY2hlY2tlZEl0ZXJhdGVDdXJzb3IoY29uc3QgSURCS2V5RGF0YSYsIGNvbnN0IElEQktl
eURhdGEmKTsKIAogICAgIC8vIEN1cnNvcnMgYXJlIGNyZWF0ZWQgd2l0aCBhbiBvdXRzdGFuZGlu
ZyBpdGVyYXRpb24gcmVxdWVzdC4KICAgICB1bnNpZ25lZCBtX291dHN0YW5kaW5nUmVxdWVzdENv
dW50IHsgMSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCQ3Vyc29yLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNv
ci5pZGwKaW5kZXggMGQ2NjU0Ny4uNGY2NDA3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuaWRsCkBAIC0zOSw1ICszOSw2IEBACiAgICAgW0NhbGxX
aXRoPVNjcmlwdFN0YXRlLCBNYXlUaHJvd0V4Y2VwdGlvbl0gSURCUmVxdWVzdCB1cGRhdGUoYW55
IHZhbHVlKTsKICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIHZvaWQgYWR2YW5jZShbRW5mb3JjZVJh
bmdlXSB1bnNpZ25lZCBsb25nIGNvdW50KTsKICAgICBbQ2FsbFdpdGg9U2NyaXB0U3RhdGUsIElt
cGxlbWVudGVkQXM9Y29udGludWVGdW5jdGlvbiwgTWF5VGhyb3dFeGNlcHRpb25dIHZvaWQgY29u
dGludWUob3B0aW9uYWwgYW55IGtleSk7CisgICAgW0NhbGxXaXRoPVNjcmlwdFN0YXRlLCBNYXlU
aHJvd0V4Y2VwdGlvbl0gdm9pZCBjb250aW51ZVByaW1hcnlLZXkoYW55IGtleSwgYW55IHByaW1h
cnlLZXkpOwogICAgIFtDYWxsV2l0aD1TY3JpcHRTdGF0ZSwgSW1wbGVtZW50ZWRBcz1kZWxldGVG
dW5jdGlvbiwgTWF5VGhyb3dFeGNlcHRpb25dIElEQlJlcXVlc3QgZGVsZXRlKCk7CiB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5RGF0YS5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5RGF0YS5oCmluZGV4IDg0ODg3
MGEuLjBiYWZkNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQktleURhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJL
ZXlEYXRhLmgKQEAgLTk1LDYgKzk1LDIxIEBAIHB1YmxpYzoKICAgICBLZXlUeXBlIHR5cGUoKSBj
b25zdCB7IHJldHVybiBtX3R5cGU7IH0KIAogICAgIGJvb2wgb3BlcmF0b3I8KGNvbnN0IElEQktl
eURhdGEmKSBjb25zdDsKKyAgICBib29sIG9wZXJhdG9yPihjb25zdCBJREJLZXlEYXRhJiBvdGhl
cikgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiAhKCp0aGlzIDwgb3RoZXIpICYmICEoKnRo
aXMgPT0gb3RoZXIpOworICAgIH0KKworICAgIGJvb2wgb3BlcmF0b3I8PShjb25zdCBJREJLZXlE
YXRhJiBvdGhlcikgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiAhKCp0aGlzID4gb3RoZXIp
OworICAgIH0KKworICAgIGJvb2wgb3BlcmF0b3I+PShjb25zdCBJREJLZXlEYXRhJiBvdGhlcikg
Y29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiAhKCp0aGlzIDwgb3RoZXIpOworICAgIH0KKwog
ICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBJREJLZXlEYXRhJiBvdGhlcikgY29uc3Q7CiAgICAg
Ym9vbCBvcGVyYXRvciE9KGNvbnN0IElEQktleURhdGEmIG90aGVyKSBjb25zdAogICAgIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlD
dXJzb3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlD
dXJzb3IuaAppbmRleCBjZDNmOTM4Li5kYjVlOGRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5Q3Vyc29yLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUN1cnNvci5oCkBAIC00Myw3ICs0
Myw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5NZW1vcnlDdXJzb3IoKTsKIAogICAgIHZpcnR1
YWwgdm9pZCBjdXJyZW50RGF0YShJREJHZXRSZXN1bHQmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lk
IGl0ZXJhdGUoY29uc3QgSURCS2V5RGF0YSYsIHVpbnQzMl90IGNvdW50LCBJREJHZXRSZXN1bHQm
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGl0ZXJhdGUoY29uc3QgSURCS2V5RGF0YSYsIGNvbnN0
IElEQktleURhdGEmIHByaW1hcnlLZXksIHVpbnQzMl90IGNvdW50LCBJREJHZXRSZXN1bHQmKSA9
IDA7CiAKICAgICBzdGF0aWMgTWVtb3J5Q3Vyc29yKiBjdXJzb3JGb3JJZGVudGlmaWVyKGNvbnN0
IElEQlJlc291cmNlSWRlbnRpZmllciYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0b3JlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJCYWNraW5nU3RvcmUu
Y3BwCmluZGV4IGI4ZTFhOGFkLi4wYTE2NTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0b3JlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0
b3JlLmNwcApAQCAtNTM4LDcgKzUzOCw3IEBAIElEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9y
ZTo6aXRlcmF0ZUN1cnNvcihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zCiAgICAg
aWYgKCFjdXJzb3IpCiAgICAgICAgIHJldHVybiB7IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpVbmtu
b3duRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiTm8gYmFja2luZyBzdG9yZSBjdXJzb3IgZm91bmQgaW4g
d2hpY2ggdG8gaXRlcmF0ZSBjdXJzb3IiKSB9OwogCi0gICAgY3Vyc29yLT5pdGVyYXRlKGRhdGEu
a2V5RGF0YSwgZGF0YS5jb3VudCwgb3V0RGF0YSk7CisgICAgY3Vyc29yLT5pdGVyYXRlKGRhdGEu
a2V5RGF0YSwgZGF0YS5wcmltYXJ5S2V5RGF0YSwgZGF0YS5jb3VudCwgb3V0RGF0YSk7CiAKICAg
ICByZXR1cm4geyB9OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvc2VydmVyL01lbW9yeUluZGV4Q3Vyc29yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJbmRleEN1cnNvci5jcHAKaW5kZXggMDQ2ODUwMS4u
ZWIzYmIxZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9NZW1vcnlJbmRleEN1cnNvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvc2VydmVyL01lbW9yeUluZGV4Q3Vyc29yLmNwcApAQCAtODEsMTIgKzgxLDE3IEBA
IHZvaWQgTWVtb3J5SW5kZXhDdXJzb3I6OmN1cnJlbnREYXRhKElEQkdldFJlc3VsdCYgZ2V0UmVz
dWx0KQogICAgIH0KIH0KIAotdm9pZCBNZW1vcnlJbmRleEN1cnNvcjo6aXRlcmF0ZShjb25zdCBJ
REJLZXlEYXRhJiBrZXksIHVpbnQzMl90IGNvdW50LCBJREJHZXRSZXN1bHQmIGdldFJlc3VsdCkK
K3ZvaWQgTWVtb3J5SW5kZXhDdXJzb3I6Oml0ZXJhdGUoY29uc3QgSURCS2V5RGF0YSYga2V5LCBj
b25zdCBJREJLZXlEYXRhJiBwcmltYXJ5S2V5LCB1aW50MzJfdCBjb3VudCwgSURCR2V0UmVzdWx0
JiBnZXRSZXN1bHQpCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIk1lbW9yeUluZGV4Q3Vyc29yOjpp
dGVyYXRlIHRvIGtleSAlcywgJXUgY291bnQiLCBrZXkubG9nZ2luZ1N0cmluZygpLnV0ZjgoKS5k
YXRhKCksIGNvdW50KTsKIAorI2lmbmRlZiBOREVCVUcKKyAgICBpZiAocHJpbWFyeUtleS5pc1Zh
bGlkKCkpCisgICAgICAgIEFTU0VSVChrZXkuaXNWYWxpZCgpKTsKKyNlbmRpZgorCiAgICAgaWYg
KGtleS5pc1ZhbGlkKCkpIHsKLSAgICAgICAgLy8gQ2Fubm90IGl0ZXJhdG9yIGJ5IGJvdGggYSBj
b3VudCBhbmQgdG8gYSBrZXkKKyAgICAgICAgLy8gQ2Fubm90IGl0ZXJhdGUgYnkgYm90aCBhIGNv
dW50IGFuZCB0byBhIGtleQogICAgICAgICBBU1NFUlQoIWNvdW50KTsKIAogICAgICAgICBhdXRv
KiB2YWx1ZVN0b3JlID0gbV9pbmRleC52YWx1ZVN0b3JlKCk7CkBAIC05NywxMCArMTAyLDE3IEBA
IHZvaWQgTWVtb3J5SW5kZXhDdXJzb3I6Oml0ZXJhdGUoY29uc3QgSURCS2V5RGF0YSYga2V5LCB1
aW50MzJfdCBjb3VudCwgSURCR2V0UmVzCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0K
IAotICAgICAgICBpZiAobV9pbmZvLmlzRGlyZWN0aW9uRm9yd2FyZCgpKQotICAgICAgICAgICAg
bV9jdXJyZW50SXRlcmF0b3IgPSB2YWx1ZVN0b3JlLT5maW5kKGtleSk7Ci0gICAgICAgIGVsc2UK
LSAgICAgICAgICAgIG1fY3VycmVudEl0ZXJhdG9yID0gdmFsdWVTdG9yZS0+cmV2ZXJzZUZpbmQo
a2V5LCBtX2luZm8uZHVwbGljaXR5KCkpOworICAgICAgICBpZiAocHJpbWFyeUtleS5pc1ZhbGlk
KCkpIHsKKyAgICAgICAgICAgIGlmIChtX2luZm8uaXNEaXJlY3Rpb25Gb3J3YXJkKCkpCisgICAg
ICAgICAgICAgICAgbV9jdXJyZW50SXRlcmF0b3IgPSB2YWx1ZVN0b3JlLT5maW5kKGtleSwgcHJp
bWFyeUtleSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbV9jdXJyZW50SXRl
cmF0b3IgPSB2YWx1ZVN0b3JlLT5yZXZlcnNlRmluZChrZXksIHByaW1hcnlLZXksIG1faW5mby5k
dXBsaWNpdHkoKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAobV9pbmZvLmlz
RGlyZWN0aW9uRm9yd2FyZCgpKQorICAgICAgICAgICAgICAgIG1fY3VycmVudEl0ZXJhdG9yID0g
dmFsdWVTdG9yZS0+ZmluZChrZXkpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
IG1fY3VycmVudEl0ZXJhdG9yID0gdmFsdWVTdG9yZS0+cmV2ZXJzZUZpbmQoa2V5LCBtX2luZm8u
ZHVwbGljaXR5KCkpOworICAgICAgICB9CiAKICAgICAgICAgaWYgKG1fY3VycmVudEl0ZXJhdG9y
LmlzVmFsaWQoKSAmJiAhbV9pbmZvLnJhbmdlKCkuY29udGFpbnNLZXkobV9jdXJyZW50SXRlcmF0
b3Iua2V5KCkpKQogICAgICAgICAgICAgbV9jdXJyZW50SXRlcmF0b3IuaW52YWxpZGF0ZSgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9y
eUluZGV4Q3Vyc29yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIv
TWVtb3J5SW5kZXhDdXJzb3IuaAppbmRleCBmMjA3NDUwLi4yMDVjMGYxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SW5kZXhDdXJzb3Iu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SW5k
ZXhDdXJzb3IuaApAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgdm9p
ZCBjdXJyZW50RGF0YShJREJHZXRSZXN1bHQmKSBmaW5hbDsKLSAgICB2b2lkIGl0ZXJhdGUoY29u
c3QgSURCS2V5RGF0YSYsIHVpbnQzMl90IGNvdW50LCBJREJHZXRSZXN1bHQmKSBmaW5hbDsKKyAg
ICB2b2lkIGl0ZXJhdGUoY29uc3QgSURCS2V5RGF0YSYsIGNvbnN0IElEQktleURhdGEmIHByaW1h
cnlLZXksIHVpbnQzMl90IGNvdW50LCBJREJHZXRSZXN1bHQmKSBmaW5hbDsKIAogICAgIE1lbW9y
eUluZGV4JiBtX2luZGV4OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5T2JqZWN0U3RvcmVDdXJzb3IuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeU9iamVjdFN0b3JlQ3Vyc29yLmNwcApp
bmRleCAyMjY5NmIyLi44YWI3NzQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5T2JqZWN0U3RvcmVDdXJzb3IuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlPYmplY3RTdG9yZUN1cnNv
ci5jcHAKQEAgLTMxNCwxMCArMzE0LDEyIEBAIHZvaWQgTWVtb3J5T2JqZWN0U3RvcmVDdXJzb3I6
OmluY3JlbWVudFJldmVyc2VJdGVyYXRvcihzdGQ6OnNldDxJREJLZXlEYXRhPiYgc2V0CiAgICAg
fQogfQogCi12b2lkIE1lbW9yeU9iamVjdFN0b3JlQ3Vyc29yOjppdGVyYXRlKGNvbnN0IElEQktl
eURhdGEmIGtleSwgdWludDMyX3QgY291bnQsIElEQkdldFJlc3VsdCYgb3V0RGF0YSkKK3ZvaWQg
TWVtb3J5T2JqZWN0U3RvcmVDdXJzb3I6Oml0ZXJhdGUoY29uc3QgSURCS2V5RGF0YSYga2V5LCBj
b25zdCBJREJLZXlEYXRhJiBwcmltYXJ5S2V5RGF0YSwgdWludDMyX3QgY291bnQsIElEQkdldFJl
c3VsdCYgb3V0RGF0YSkKIHsKICAgICBMT0coSW5kZXhlZERCLCAiTWVtb3J5T2JqZWN0U3RvcmVD
dXJzb3I6Oml0ZXJhdGUgdG8ga2V5ICVzIiwga2V5LmxvZ2dpbmdTdHJpbmcoKS51dGY4KCkuZGF0
YSgpKTsKIAorICAgIEFTU0VSVF9VTlVTRUQocHJpbWFyeUtleURhdGEsIHByaW1hcnlLZXlEYXRh
LmlzTnVsbCgpKTsKKwogICAgIGlmICghbV9vYmplY3RTdG9yZS5vcmRlcmVkS2V5cygpKSB7CiAg
ICAgICAgIG1fY3VycmVudFBvc2l0aW9uS2V5ID0geyB9OwogICAgICAgICBvdXREYXRhID0geyB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01l
bW9yeU9iamVjdFN0b3JlQ3Vyc29yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9zZXJ2ZXIvTWVtb3J5T2JqZWN0U3RvcmVDdXJzb3IuaAppbmRleCAyY2U1OTg5Li40ZmI3M2Uz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVt
b3J5T2JqZWN0U3RvcmVDdXJzb3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zZXJ2ZXIvTWVtb3J5T2JqZWN0U3RvcmVDdXJzb3IuaApAQCAtNDksNyArNDksNyBAQCBw
dWJsaWM6CiAKIHByaXZhdGU6CiAgICAgdm9pZCBjdXJyZW50RGF0YShJREJHZXRSZXN1bHQmKSBm
aW5hbDsKLSAgICB2b2lkIGl0ZXJhdGUoY29uc3QgSURCS2V5RGF0YSYsIHVpbnQzMl90IGNvdW50
LCBJREJHZXRSZXN1bHQmKSBmaW5hbDsKKyAgICB2b2lkIGl0ZXJhdGUoY29uc3QgSURCS2V5RGF0
YSYsIGNvbnN0IElEQktleURhdGEmIHByaW1hcnlLZXksIHVpbnQzMl90IGNvdW50LCBJREJHZXRS
ZXN1bHQmKSBmaW5hbDsKIAogICAgIHZvaWQgc2V0Rmlyc3RJblJlbWFpbmluZ1JhbmdlKHN0ZDo6
c2V0PElEQktleURhdGE+Jik7CiAgICAgdm9pZCBzZXRGb3J3YXJkSXRlcmF0b3JGcm9tUmVtYWlu
aW5nUmFuZ2Uoc3RkOjpzZXQ8SURCS2V5RGF0YT4mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdT
dG9yZS5jcHAKaW5kZXggNzhkYzUwYi4uM2RmODM1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tp
bmdTdG9yZS5jcHAKQEAgLTIyOTAsMTQgKzIyOTAsMTYgQEAgSURCRXJyb3IgU1FMaXRlSURCQmFj
a2luZ1N0b3JlOjppdGVyYXRlQ3Vyc29yKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJh
bnMKICAgICB9CiAKICAgICBhdXRvIGtleSA9IGRhdGEua2V5RGF0YTsKKyAgICBhdXRvIHByaW1h
cnlLZXkgPSBkYXRhLnByaW1hcnlLZXlEYXRhOwogICAgIGF1dG8gY291bnQgPSBkYXRhLmNvdW50
OwogCiAgICAgaWYgKGtleS5pc1ZhbGlkKCkpIHsKLSAgICAgICAgaWYgKCFjdXJzb3ItPml0ZXJh
dGUoa2V5KSkgeworICAgICAgICBpZiAoIWN1cnNvci0+aXRlcmF0ZShrZXksIHByaW1hcnlLZXkp
KSB7CiAgICAgICAgICAgICBMT0dfRVJST1IoIkF0dGVtcHQgdG8gaXRlcmF0ZSBjdXJzb3IgZmFp
bGVkIik7CiAgICAgICAgICAgICByZXR1cm4geyBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6VW5rbm93
bkVycm9yLCBBU0NJSUxpdGVyYWwoIkF0dGVtcHQgdG8gaXRlcmF0ZSBjdXJzb3IgZmFpbGVkIikg
fTsKICAgICAgICAgfQogICAgIH0gZWxzZSB7CisgICAgICAgIEFTU0VSVCghcHJpbWFyeUtleS5p
c1ZhbGlkKCkpOwogICAgICAgICBpZiAoIWNvdW50KQogICAgICAgICAgICAgY291bnQgPSAxOwog
ICAgICAgICBpZiAoIWN1cnNvci0+YWR2YW5jZShjb3VudCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJDdXJzb3IuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkN1cnNvci5j
cHAKaW5kZXggOWZmODk3ZS4uZWY3NTk2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkN1cnNvci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkN1cnNvci5jcHAKQEAgLTQ0
MCw3ICs0NDAsNyBAQCBTUUxpdGVJREJDdXJzb3I6OkFkdmFuY2VSZXN1bHQgU1FMaXRlSURCQ3Vy
c29yOjppbnRlcm5hbEFkdmFuY2VPbmNlKCkKICAgICByZXR1cm4gQWR2YW5jZVJlc3VsdDo6U3Vj
Y2VzczsKIH0KIAotYm9vbCBTUUxpdGVJREJDdXJzb3I6Oml0ZXJhdGUoY29uc3QgV2ViQ29yZTo6
SURCS2V5RGF0YSYgdGFyZ2V0S2V5KQorYm9vbCBTUUxpdGVJREJDdXJzb3I6Oml0ZXJhdGUoY29u
c3QgSURCS2V5RGF0YSYgdGFyZ2V0S2V5LCBjb25zdCBJREJLZXlEYXRhJiB0YXJnZXRQcmltYXJ5
S2V5KQogewogICAgIEFTU0VSVChtX3RyYW5zYWN0aW9uLT5zcWxpdGVUcmFuc2FjdGlvbigpKTsK
ICAgICBBU1NFUlQobV9zdGF0ZW1lbnQpOwpAQCAtNDY1LDYgKzQ2NSwyMiBAQCBib29sIFNRTGl0
ZUlEQkN1cnNvcjo6aXRlcmF0ZShjb25zdCBXZWJDb3JlOjpJREJLZXlEYXRhJiB0YXJnZXRLZXkp
CiAgICAgICAgIHJlc3VsdCA9IGFkdmFuY2UoMSk7CiAgICAgfQogCisgICAgaWYgKHRhcmdldFBy
aW1hcnlLZXkuaXNWYWxpZCgpKSB7CisgICAgICAgIHdoaWxlICghbV9jb21wbGV0ZWQgJiYgIW1f
Y3VycmVudEtleS5jb21wYXJlKHRhcmdldEtleSkpIHsKKyAgICAgICAgICAgIGlmICghcmVzdWx0
KQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAgICAgLy8gU2VhcmNo
IGZvciB0aGUgbmV4dCBwcmltYXJ5IGtleSA+PSB0aGUgcHJpbWFyeSB0YXJnZXQgaWYgdGhlIGN1
cnNvciBpcyBhIE5leHQgY3Vyc29yLCBvciB0aGUgbmV4dCBrZXkgPD0gaWYgdGhlIGN1cnNvciBp
cyBhIFByZXZpb3VzIGN1cnNvci4KKyAgICAgICAgICAgIGlmIChtX2N1cnNvckRpcmVjdGlvbiA9
PSBJbmRleGVkREI6OkN1cnNvckRpcmVjdGlvbjo6TmV4dCB8fCBtX2N1cnNvckRpcmVjdGlvbiA9
PSBJbmRleGVkREI6OkN1cnNvckRpcmVjdGlvbjo6TmV4dE5vRHVwbGljYXRlKSB7CisgICAgICAg
ICAgICAgICAgaWYgKG1fY3VycmVudFByaW1hcnlLZXkuY29tcGFyZSh0YXJnZXRQcmltYXJ5S2V5
KSA+PSAwKQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0gZWxzZSBp
ZiAobV9jdXJyZW50UHJpbWFyeUtleS5jb21wYXJlKHRhcmdldFByaW1hcnlLZXkpIDw9IDApCisg
ICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIHJlc3VsdCA9IGFkdmFuY2UoMSk7
CisgICAgICAgIH0KKyAgICB9CisKICAgICByZXR1cm4gcmVzdWx0OwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQ3Vyc29y
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQ3Vy
c29yLmgKaW5kZXggMWQ4YjBjYS4uMWZlZWM3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkN1cnNvci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJDdXJzb3IuaApAQCAtNjUs
NyArNjUsNyBAQCBwdWJsaWM6CiAgICAgSURCVmFsdWUqIGN1cnJlbnRWYWx1ZSgpIGNvbnN0IHsg
cmV0dXJuIG1fY3VycmVudFZhbHVlLmdldCgpOyB9CiAKICAgICBib29sIGFkdmFuY2UodWludDY0
X3QgY291bnQpOwotICAgIGJvb2wgaXRlcmF0ZShjb25zdCBJREJLZXlEYXRhJiB0YXJnZXRLZXkp
OworICAgIGJvb2wgaXRlcmF0ZShjb25zdCBJREJLZXlEYXRhJiB0YXJnZXRLZXksIGNvbnN0IElE
QktleURhdGEmIHRhcmdldFByaW1hcnlLZXkpOwogCiAgICAgYm9vbCBkaWRDb21wbGV0ZSgpIGNv
bnN0IHsgcmV0dXJuIG1fY29tcGxldGVkOyB9CiAgICAgYm9vbCBkaWRFcnJvcigpIGNvbnN0IHsg
cmV0dXJuIG1fZXJyb3JlZDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvc2hhcmVkL0lEQkl0ZXJhdGVDdXJzb3JEYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJJdGVyYXRlQ3Vyc29yRGF0YS5jcHAKaW5kZXgg
OGYyNGNmMC4uYjg2NTQyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvc2hhcmVkL0lEQkl0ZXJhdGVDdXJzb3JEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCSXRlcmF0ZUN1cnNvckRhdGEuY3BwCkBAIC0z
Miw3ICszMiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogSURCSXRlcmF0ZUN1cnNvckRhdGEg
SURCSXRlcmF0ZUN1cnNvckRhdGE6Omlzb2xhdGVkQ29weSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJu
IHsga2V5RGF0YS5pc29sYXRlZENvcHkoKSwgY291bnQgfTsKKyAgICByZXR1cm4geyBrZXlEYXRh
Lmlzb2xhdGVkQ29weSgpLCBwcmltYXJ5S2V5RGF0YS5pc29sYXRlZENvcHkoKSwgY291bnQgfTsK
IH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkl0ZXJhdGVDdXJzb3JEYXRhLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCSXRlcmF0ZUN1cnNvckRhdGEuaApp
bmRleCBkOTZiN2MwLi42YjA0N2U5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9zaGFyZWQvSURCSXRlcmF0ZUN1cnNvckRhdGEuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCSXRlcmF0ZUN1cnNvckRhdGEuaApAQCAt
MzMsNiArMzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBJREJJdGVyYXRlQ3Vy
c29yRGF0YSB7CiAgICAgSURCS2V5RGF0YSBrZXlEYXRhOworICAgIElEQktleURhdGEgcHJpbWFy
eUtleURhdGE7CiAgICAgdW5zaWduZWQgY291bnQ7CiAKICAgICBJREJJdGVyYXRlQ3Vyc29yRGF0
YSBpc29sYXRlZENvcHkoKSBjb25zdDsKQEAgLTQ0LDcgKzQ1LDcgQEAgc3RydWN0IElEQkl0ZXJh
dGVDdXJzb3JEYXRhIHsKIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CiB2b2lkIElEQkl0ZXJhdGVD
dXJzb3JEYXRhOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVy
IDw8IGtleURhdGEgPDwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KGNvdW50KTsKKyAgICBlbmNvZGVy
IDw8IGtleURhdGEgPDwgcHJpbWFyeUtleURhdGEgPDwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KGNv
dW50KTsKIH0KIAogdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KQEAgLTUzLDYgKzU0LDkgQEAgYm9v
bCBJREJJdGVyYXRlQ3Vyc29yRGF0YTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIElEQkl0ZXJh
dGVDdXJzb3JEYXRhJiBpdGVyYXQKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGl0ZXJhdG9yQ3Vy
c29yRGF0YS5rZXlEYXRhKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShpdGVyYXRvckN1cnNvckRhdGEucHJpbWFyeUtleURhdGEpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKICAgICB1aW50NjRfdCBjb3VudDsKICAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKGNvdW50KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwo=
</data>
<flag name="review"
          id="316922"
          type_id="1"
          status="+"
          setter="achristensen"
    />
          </attachment>
      

    </bug>

</bugzilla>