<?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>182903</bug_id>
          
          <creation_ts>2018-02-17 05:54:10 -0800</creation_ts>
          <short_desc>[Web Animations] Store all parsed keyframe input information in a single structure</short_desc>
          <delta_ts>2018-02-19 11:15:16 -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>Animations</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antoine Quint">graouts</reporter>
          <assigned_to name="Antoine Quint">graouts</assigned_to>
          <cc>dino</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1400165</commentid>
    <comment_count>0</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2018-02-17 05:54:10 -0800</bug_when>
    <thetext>[Web Animations] Store all parsed keyframe input information in a single structure</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1400166</commentid>
    <comment_count>1</comment_count>
      <attachid>334107</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2018-02-17 06:13:21 -0800</bug_when>
    <thetext>Created attachment 334107
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1400381</commentid>
    <comment_count>2</comment_count>
      <attachid>334107</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2018-02-19 09:50:15 -0800</bug_when>
    <thetext>Comment on attachment 334107
Patch

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

&gt; Source/WebCore/animation/KeyframeEffectReadOnly.cpp:85
&gt; +        keyframe.computedOffset = keyframe.offset ? keyframe.offset.value() : 0;

keyframe.offset.value_or(0)

&gt; Source/WebCore/animation/KeyframeEffectReadOnly.cpp:442
&gt; +        ParsedKeyframe parsedKeyframe;
&gt; +        parsedKeyframe.easing = sourceParsedKeyframe.easing;
&gt; +        parsedKeyframe.offset = sourceParsedKeyframe.offset;
&gt; +        parsedKeyframe.composite = sourceParsedKeyframe.composite;
&gt; +        parsedKeyframe.unparsedStyle = sourceParsedKeyframe.unparsedStyle;
&gt; +        parsedKeyframe.computedOffset = sourceParsedKeyframe.computedOffset;
&gt; +        parsedKeyframe.timingFunction = sourceParsedKeyframe.timingFunction;
&gt; +        parsedKeyframe.style = sourceParsedKeyframe.style-&gt;mutableCopy();

You should make a operator= for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1400389</commentid>
    <comment_count>3</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2018-02-19 10:04:15 -0800</bug_when>
    <thetext>(In reply to Dean Jackson from comment #2)
&gt; Comment on attachment 334107 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=334107&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/animation/KeyframeEffectReadOnly.cpp:85
&gt; &gt; +        keyframe.computedOffset = keyframe.offset ? keyframe.offset.value() : 0;
&gt; 
&gt; keyframe.offset.value_or(0)

Very cool.

&gt; &gt; Source/WebCore/animation/KeyframeEffectReadOnly.cpp:442
&gt; &gt; +        ParsedKeyframe parsedKeyframe;
&gt; &gt; +        parsedKeyframe.easing = sourceParsedKeyframe.easing;
&gt; &gt; +        parsedKeyframe.offset = sourceParsedKeyframe.offset;
&gt; &gt; +        parsedKeyframe.composite = sourceParsedKeyframe.composite;
&gt; &gt; +        parsedKeyframe.unparsedStyle = sourceParsedKeyframe.unparsedStyle;
&gt; &gt; +        parsedKeyframe.computedOffset = sourceParsedKeyframe.computedOffset;
&gt; &gt; +        parsedKeyframe.timingFunction = sourceParsedKeyframe.timingFunction;
&gt; &gt; +        parsedKeyframe.style = sourceParsedKeyframe.style-&gt;mutableCopy();
&gt; 
&gt; You should make a operator= for this.

I intentionally did not provide one because I would like to avoid unexpected copies of ParsedKeyframe.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1400428</commentid>
    <comment_count>4</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2018-02-19 11:06:30 -0800</bug_when>
    <thetext>Committed r228702: &lt;https://trac.webkit.org/changeset/228702&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1400429</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-02-19 11:07:15 -0800</bug_when>
    <thetext>&lt;rdar://problem/37677856&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>334107</attachid>
            <date>2018-02-17 06:13:21 -0800</date>
            <delta_ts>2018-02-19 09:50:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-182903-20180217061320.patch</filename>
            <type>text/plain</type>
            <size>60949</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI4NTM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWM3MDcwMWQyMDJmZDVk
MjJmMWY5NzI1MGQ2Y2ZlMzk1MWRhMGE5Yy4uZGVjMzU0NmM2MDMwNmUzZGU5ZDJmY2ExYWVhMDBk
NjNkNGM1ZjBjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY0IEBACisyMDE4LTAyLTE3ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYiBBbmltYXRpb25z
XSBTdG9yZSBhbGwgcGFyc2VkIGtleWZyYW1lIGlucHV0IGluZm9ybWF0aW9uIGluIGEgc2luZ2xl
IHN0cnVjdHVyZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTgyOTAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgV2hlbiBwYXJzaW5nIGtleWZyYW1lIGlucHV0IHByb3ZpZGVkIHRocm91Z2ggdGhlIEpTIEFQ
SSwgd2UgdXNlZCB0byBjcmVhdGUgc2V2ZXJhbCBkYXRhIHN0cnVjdHVyZXMuCisgICAgICAgIER1
cmluZyBwYXJzaW5nIHdlIHdvdWxkIGNyZWF0ZSBhIFZlY3RvcjxQcm9jZXNzZWRLZXlmcmFtZT4g
d2hlcmUgd2Ugd291bGQgc3RvcmUgdGhlIHZhbGlkYXRlZCB2YWx1ZXMKKyAgICAgICAgZm9yICJv
ZmZzZXQiLCAiZWFzaW5nIiBhbmQgImNvbXBvc2l0ZSIgYXMgd2VsbCBhcyBDU1MgcHJvcGVydGll
cyBhbmQgQ1NTIHZhbHVlcyBhcyBzdHJpbmdzLiAKKworICAgICAgICBUaGVuIHdlIHdvdWxkIGNy
ZWF0ZSBhIEtleWZyYW1lTGlzdCwgYSBjbGFzcyB0aGF0IHByZS1kYXRlcyB0aGUgd29yayBvbiBX
ZWIgQW5pbWF0aW9ucyBhbmQgaXMgdXNlZAorICAgICAgICBmb3IgaGFyZHdhcmUgYW5pbWF0aW9u
cywgd2l0aCBSZW5kZXJTdHlsZSBvYmplY3RzIHRoYXQgYXJlIHVzZWQgZm9yIENTUyBwcm9wZXJ0
eSBibGVuZGluZyBhdCBydW50aW1lLgorICAgICAgICBPbmNlIHRoZSBLZXlmcmFtZUxpc3Qgd2Fz
IGNyZWF0ZWQsIHRoZSBWZWN0b3I8UHJvY2Vzc2VkS2V5ZnJhbWU+IHdhcyBkaXNjYXJkZWQuCisK
KyAgICAgICAgU2luY2UgS2V5ZnJhbWVMaXN0IGRpZCBub3Qga25vdyBhYm91dCBudWxsYWJsZSBv
ZmZzZXRzLCB0aW1pbmcgZnVuY3Rpb25zIGFuZCBjb21wb3NpdGUgb3BlcmF0aW9ucywgYW5kCisg
ICAgICAgIGJlY2F1c2Ugd2UgZG8gbm90IHdpdGggdG8gbW9kaWZ5IGEgbGVnYWN5IGNsYXNzIHRo
YXQgd2Ugd2lsbCBldmVudHVhbGx5IHJlbW92ZSBvbmNlIGFsbCB0aGUgV2ViIEFuaW1hdGlvbnMK
KyAgICAgICAgd29yayBpcyBjb21wbGV0ZSwgd2UgYWxzbyBzdG9yZWQgdGhlIHBhcnNlZCBvZmZz
ZXRzIGFzIG1fb2Zmc2V0cywgdGhlIHRpbWluZyBmdW5jdGlvbnMgYXMgbV90aW1pbmdGdW5jdGlv
bnMKKyAgICAgICAgYW5kIHRoZSBjb21wb3NpdGUgb3BlcmF0aW9ucyBhcyBtX2NvbXBvc2l0ZU9w
ZXJhdGlvbnMuCisKKyAgICAgICAgSW4gdGhpcyBwYXRjaCB3ZSByZW5hbWUgdGhlIFByb2Nlc3Nl
ZEtleWZyYW1lIHN0cnVjdHVyZSB1c2VkIHRlbXBvcmFyaWx5IGR1cmluZyBwYXJzaW5nIHRvIFBh
cnNlZEtleWZyYW1lIGFuZAorICAgICAgICBzdG9yZSBib3RoIHRoZSBpbnB1dCBhbmQgcHJvY2Vz
c2VkIGRhdGEgcmVsYXRlZCB0byBhIGdpdmVuIGtleWZyYW1lIGluIHRoYXQgc2luZ2xlIHN0cnVj
dHVyZSB3aGljaCB3ZSBrZWVwCisgICAgICAgIGFyb3VuZCBhcyBtX3BhcnNlZEtleWZyYW1lcyB3
aGVuIHdlIGZpbmlzaGVkIHByb2Nlc3NpbmcgdGhlIGtleWZyYW1lcyBpbnB1dC4gVGhpcyB1cGRh
dGUgUGFyc2VkS2V5ZnJhbWUgc3RydWN0dXJlCisgICAgICAgIGFsbG93cyB0byBrZWVwIGFyb3Vu
ZCB0aGUgb3JpZ2luYWwgbnVsbGFibGUgb2Zmc2V0cywgdGhlIG9yaWdpbmFsIENTUyBwcm9wZXJ0
aWVzIGFuZCBDU1MgdmFsdWVzIGFzIHN0cmluZ3MgYXMKKyAgICAgICAgYSBIYXNoTWFwPENTU1By
b3BlcnR5SUQsIFN0cmluZz4sIGFzIHdlbGwgYXMgdGhlIENTUyBwcm9wZXJ0aWVzIGFuZCBDU1Mg
dmFsdWVzIGFzIENTU1ZhbHVlIG9iamVjdHMgdXNpbmcgYQorICAgICAgICBNdXRhYmxlU3R5bGVQ
cm9wZXJ0aWVzIG9iamVjdC4gCisKKyAgICAgICAgVGhpcyBoYXMgdGhlIGJlbmVmaXQgb2YgcmVk
dWNpbmcgdGhlIG51bWJlciBvZiBtZW1iZXJzLCBidXQgYWxzbyBwYXZlIHRoZSB3YXkgZm9yIHN1
cHBvcnRpbmcgcmVhZC13cml0ZSB0YXJnZXRzCisgICAgICAgIHdoZXJlIHdlIHdpbGwgYmUgYWJs
ZSB0byBkZWNvdXBsZSBwYXJzaW5nIGtleWZyYW1lcyBhbmQgY3JlYXRpbmcgYSBLZXlmcmFtZUxp
c3QsIHdoaWNoIHJlcXVpcmVzIGEgdmFsaWQgdGFyZ2V0CisgICAgICAgIHRvIGNyZWF0ZSBSZW5k
ZXJTdHlsZSBvYmplY3RzIHVzZWQgZm9yIGJsZW5kaW5nLCBzaW5jZSB0aGUgb3JpZ2luYWwgcGFy
c2luZy10aW1lIGluZm9ybWF0aW9uIGlzIG5vdyBzdG9yZWQuCisKKyAgICAgICAgRmluYWxseSwg
dGhpcyBhbGxvd2VkIGdldEtleWZyYW1lcygpIHRvIGJlIG1vcmUgY29tcGxpYW50IGJ5IHJldHVy
bmluZyB0aGUgQ1NTIHZhbHVlcyBhcyBvcmlnaW5hbGx5IHByb3ZpZGVkIGluCisgICAgICAgIHRo
ZSBrZXlmcmFtZSBpbnB1dCB3aXRoIHNob3J0aGFuZCBwcm9wZXJ0aWVzIHdoZW4gcHJvdmlkZWQs
IHJhdGhlciB0aGFuIHRoZSBsb25nLWhhbmRzIHdlIHVzZWQgdG8gcmVhZCBiYWNrCisgICAgICAg
IHRocm91Z2ggUmVuZGVyU3R5bGUgb2JqZWN0cy4KKworICAgICAgICBUaGUgZ2VuZXJhdGVkIEtl
eWZyYW1lTGlzdCBpcyBub3cgc3RvcmVkIGFzIG1fYmxlbmRpbmdLZXlmcmFtZXMgYW5kIGlzIG9u
bHkgdXNlZCBmb3IgdGhlIHB1cnBvc2Ugb2YgaW50ZXJmYWNpbmcKKyAgICAgICAgd2l0aCBoYXJk
d2FyZSBhbmltYXRpb25zIGFuZCBDU1MgcHJvcGVydHkgYmxlbmRpbmcuCisKKyAgICAgICAgV2hp
bGUgUHJvY2Vzc2VkS2V5ZnJhbWUgd2FzIGNvcHlhYmxlIGR1ZSB0byBob2xkaW5nIG9ubHkgc2lt
cGxlIHR5cGVzLCBQYXJzZWRLZXlmcmFtZSBpcyBub3Qgc2luY2UgaXQgdXNlcyBhIFJlZgorICAg
ICAgICB0byBob2xkIHRoZSBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzLiBUaGlzIHVuY292ZXJlZCBz
b21lIGNhc2VzIHdoZXJlIHdlIGNvcGllZCBQcm9jZXNzZWRLZXlmcmFtZSBvYmplY3RzLCB3ZSBu
b3cKKyAgICAgICAgZW5zdXJlIHRoYXQgdGhlIFBhcnNlZEtleWZyYW1lIG9iamVjdHMgYXJlIG1v
dmVkIGluc3RlYWQsIHdoaWNoIHdhcyB0aGUgY29ycmVjdCB0aGluZyB0byBkbyBhbGwgYWxvbmcu
CisKKyAgICAgICAgKiBhbmltYXRpb24vS2V5ZnJhbWVFZmZlY3RSZWFkT25seS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpjb21wdXRlTWlzc2luZ0tleWZyYW1lT2Zmc2V0cyk6IFdoaWxlIHdlIHVz
ZWQgdG8gc3RvcmUgc3RkOjpvcHRpb25hbDxkb3VibGU+IGZvciB0aGUgY29tcHV0ZWQgb2Zmc2V0
LAorICAgICAgICB3ZSBub3cgc3RvcmUgYSBzaW1wbGUgZG91YmxlLCB3aGljaCBtYWtlcyBtb3Jl
IHNlbnNlIHNpbmNlIHRoZSBjb21wdXRlZCBvZmZzZXQgaXMgZXZlbnR1YWxseSBhIGZ1bGx5IHJl
c29sdmVkCisgICAgICAgIHZhbHVlIGFmdGVyIGNhbGxpbmcgY29tcHV0ZU1pc3NpbmdLZXlmcmFt
ZU9mZnNldHMoKS4gU28gd2Ugbm93IGNvbXB1dGUgdGhlIGZpbmFsIGNvbXB1dGVkIG9mZnNldCB3
aXRob3V0IHJlc29ydGluZworICAgICAgICB0byBpbnRlcm1lZGlhdGUgbnVsbGFibGUgY29tcHV0
ZWQgb2Zmc2V0cy4KKyAgICAgICAgKFdlYkNvcmU6OnByb2Nlc3NJdGVyYWJsZUtleWZyYW1lcyk6
CisgICAgICAgIChXZWJDb3JlOjpwcm9jZXNzUHJvcGVydHlJbmRleGVkS2V5ZnJhbWVzKToKKyAg
ICAgICAgKFdlYkNvcmU6OktleWZyYW1lRWZmZWN0UmVhZE9ubHk6OktleWZyYW1lRWZmZWN0UmVh
ZE9ubHkpOgorICAgICAgICAoV2ViQ29yZTo6S2V5ZnJhbWVFZmZlY3RSZWFkT25seTo6Y29weVBy
b3BlcnRpZXNGcm9tU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1lRWZmZWN0UmVh
ZE9ubHk6OmdldEtleWZyYW1lcyk6CisgICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZUVmZmVjdFJl
YWRPbmx5Ojpwcm9jZXNzS2V5ZnJhbWVzKToKKyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1lRWZm
ZWN0UmVhZE9ubHk6OmNvbXB1dGVTdGFja2luZ0NvbnRleHRJbXBhY3QpOgorICAgICAgICAoV2Vi
Q29yZTo6S2V5ZnJhbWVFZmZlY3RSZWFkT25seTo6c2hvdWxkUnVuQWNjZWxlcmF0ZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6S2V5ZnJhbWVFZmZlY3RSZWFkT25seTo6Z2V0QW5pbWF0ZWRTdHlsZSk6
CisgICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZUVmZmVjdFJlYWRPbmx5OjpzZXRBbmltYXRlZFBy
b3BlcnRpZXNJblN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1lRWZmZWN0UmVhZE9u
bHk6OnN0YXJ0T3JTdG9wQWNjZWxlcmF0ZWQpOgorICAgICAgICAqIGFuaW1hdGlvbi9LZXlmcmFt
ZUVmZmVjdFJlYWRPbmx5Lmg6CisgICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZUVmZmVjdFJlYWRP
bmx5OjpQYXJzZWRLZXlmcmFtZTo6UGFyc2VkS2V5ZnJhbWUpOgorCiAyMDE4LTAyLTE1ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYiBBbmltYXRpb25z
XSBFbnN1cmUgdGhhdCBjaGFuZ2luZyB0aGUgdGltaW5nIG1vZGVsIHVwZGF0ZXMgc3R5bGVzIHN5
bmNocm9ub3VzbHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFt
ZUVmZmVjdFJlYWRPbmx5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVm
ZmVjdFJlYWRPbmx5LmNwcAppbmRleCA1YjgwZmM5ZDlhNjIyZTUzNTE5MjU2ZTEyNjAwZTVmYzAw
NjI0YTJiLi41NzA5MTcyOWIzMWRiZTFlYTUxOGVlNDFlMWQzYmJiN2U3NjkwYzc0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3RSZWFkT25seS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0UmVhZE9ubHkuY3Bw
CkBAIC0zNiw3ICszNiw2IEBACiAjaW5jbHVkZSAiSlNDb21wb3NpdGVPcGVyYXRpb24uaCIKICNp
bmNsdWRlICJKU0tleWZyYW1lRWZmZWN0UmVhZE9ubHkuaCIKICNpbmNsdWRlICJSZW5kZXJTdHls
ZS5oIgotI2luY2x1ZGUgIlN0eWxlUHJvcGVydGllcy5oIgogI2luY2x1ZGUgIlN0eWxlUmVzb2x2
ZXIuaCIKICNpbmNsdWRlICJUaW1pbmdGdW5jdGlvbi5oIgogI2luY2x1ZGUgIldpbGxDaGFuZ2VE
YXRhLmgiCkBAIC03MSw3ICs3MCw3IEBAIHN0YXRpYyBpbmxpbmUgU3RyaW5nIENTU1Byb3BlcnR5
SURUb0lETEF0dHJpYnV0ZU5hbWUoQ1NTUHJvcGVydHlJRCBjc3NQcm9wZXJ0eUlkCiAgICAgcmV0
dXJuIGdldEpTUHJvcGVydHlOYW1lKGNzc1Byb3BlcnR5SWQpOwogfQogCi1zdGF0aWMgaW5saW5l
IHZvaWQgY29tcHV0ZU1pc3NpbmdLZXlmcmFtZU9mZnNldHMoVmVjdG9yPEtleWZyYW1lRWZmZWN0
UmVhZE9ubHk6OlByb2Nlc3NlZEtleWZyYW1lPiYga2V5ZnJhbWVzKQorc3RhdGljIGlubGluZSB2
b2lkIGNvbXB1dGVNaXNzaW5nS2V5ZnJhbWVPZmZzZXRzKFZlY3RvcjxLZXlmcmFtZUVmZmVjdFJl
YWRPbmx5OjpQYXJzZWRLZXlmcmFtZT4mIGtleWZyYW1lcykKIHsKICAgICAvLyBodHRwczovL2Ry
YWZ0cy5jc3N3Zy5vcmcvd2ViLWFuaW1hdGlvbnMtMS8jY29tcHV0ZS1taXNzaW5nLWtleWZyYW1l
LW9mZnNldHMKIApAQCAtNzksMTYgKzc4LDE5IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBjb21wdXRl
TWlzc2luZ0tleWZyYW1lT2Zmc2V0cyhWZWN0b3I8S2V5ZnJhbWVFZmZlY3RSZWFkT25seTo6CiAg
ICAgICAgIHJldHVybjsKIAogICAgIC8vIDEuIEZvciBlYWNoIGtleWZyYW1lLCBpbiBrZXlmcmFt
ZXMsIGxldCB0aGUgY29tcHV0ZWQga2V5ZnJhbWUgb2Zmc2V0IG9mIHRoZSBrZXlmcmFtZSBiZSBl
cXVhbCB0byBpdHMga2V5ZnJhbWUgb2Zmc2V0IHZhbHVlLgorICAgIC8vIEluIG91ciBpbXBsZW1l
bnRhdGlvbiwgd2Ugb25seSBzZXQgbm9uLW51bGwgdmFsdWVzIHRvIGF2b2lkIG1ha2luZyBjb21w
dXRlZE9mZnNldCBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4uIEluc3RlYWQsIHdlJ2xsIGtub3cKKyAg
ICAvLyB0aGF0IGEga2V5ZnJhbWUgaGFzbid0IGhhZCBhIGNvbXB1dGVkIG9mZnNldCBieSBjaGVj
a2luZyBpZiBpdCBoYXMgYSBudWxsIG9mZnNldCBhbmQgYSAwIGNvbXB1dGVkT2Zmc2V0LCBzaW5j
ZSB0aGUgZmlyc3QKKyAgICAvLyBrZXlmcmFtZSB3aWxsIGFscmVhZHkgaGF2ZSBhIDAgY29tcHV0
ZWRPZmZzZXQuCiAgICAgZm9yIChhdXRvJiBrZXlmcmFtZSA6IGtleWZyYW1lcykKLSAgICAgICAg
a2V5ZnJhbWUuY29tcHV0ZWRPZmZzZXQgPSBrZXlmcmFtZS5vZmZzZXQ7CisgICAgICAgIGtleWZy
YW1lLmNvbXB1dGVkT2Zmc2V0ID0ga2V5ZnJhbWUub2Zmc2V0ID8ga2V5ZnJhbWUub2Zmc2V0LnZh
bHVlKCkgOiAwOwogCiAgICAgLy8gMi4gSWYga2V5ZnJhbWVzIGNvbnRhaW5zIG1vcmUgdGhhbiBv
bmUga2V5ZnJhbWUgYW5kIHRoZSBjb21wdXRlZCBrZXlmcmFtZSBvZmZzZXQgb2YgdGhlIGZpcnN0
IGtleWZyYW1lIGluIGtleWZyYW1lcyBpcyBudWxsLAogICAgIC8vICAgIHNldCB0aGUgY29tcHV0
ZWQga2V5ZnJhbWUgb2Zmc2V0IG9mIHRoZSBmaXJzdCBrZXlmcmFtZSB0byAwLgotICAgIGlmIChr
ZXlmcmFtZXMuc2l6ZSgpID4gMSAmJiAha2V5ZnJhbWVzWzBdLmNvbXB1dGVkT2Zmc2V0KQorICAg
IGlmIChrZXlmcmFtZXMuc2l6ZSgpID4gMSAmJiAha2V5ZnJhbWVzWzBdLm9mZnNldCkKICAgICAg
ICAga2V5ZnJhbWVzWzBdLmNvbXB1dGVkT2Zmc2V0ID0gMDsKIAogICAgIC8vIDMuIElmIHRoZSBj
b21wdXRlZCBrZXlmcmFtZSBvZmZzZXQgb2YgdGhlIGxhc3Qga2V5ZnJhbWUgaW4ga2V5ZnJhbWVz
IGlzIG51bGwsIHNldCBpdHMgY29tcHV0ZWQga2V5ZnJhbWUgb2Zmc2V0IHRvIDEuCi0gICAgaWYg
KCFrZXlmcmFtZXMubGFzdCgpLmNvbXB1dGVkT2Zmc2V0KQorICAgIGlmICgha2V5ZnJhbWVzLmxh
c3QoKS5vZmZzZXQpCiAgICAgICAgIGtleWZyYW1lcy5sYXN0KCkuY29tcHV0ZWRPZmZzZXQgPSAx
OwogCiAgICAgLy8gNC4gRm9yIGVhY2ggcGFpciBvZiBrZXlmcmFtZXMgQSBhbmQgQiB3aGVyZToK
QEAgLTEwOCw4ICsxMTAsOCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgY29tcHV0ZU1pc3NpbmdLZXlm
cmFtZU9mZnNldHMoVmVjdG9yPEtleWZyYW1lRWZmZWN0UmVhZE9ubHk6OgogICAgICAgICBpZiAo
aW5kZXhPZkxhc3RLZXlmcmFtZVdpdGhOb25OdWxsT2Zmc2V0ID09IGkgLSAxKQogICAgICAgICAg
ICAgY29udGludWU7CiAKLSAgICAgICAgZG91YmxlIGxhc3ROb25OdWxsT2Zmc2V0ID0ga2V5ZnJh
bWVzW2luZGV4T2ZMYXN0S2V5ZnJhbWVXaXRoTm9uTnVsbE9mZnNldF0uY29tcHV0ZWRPZmZzZXQu
dmFsdWUoKTsKLSAgICAgICAgZG91YmxlIG9mZnNldERlbHRhID0ga2V5ZnJhbWUuY29tcHV0ZWRP
ZmZzZXQudmFsdWUoKSAtIGxhc3ROb25OdWxsT2Zmc2V0OworICAgICAgICBkb3VibGUgbGFzdE5v
bk51bGxPZmZzZXQgPSBrZXlmcmFtZXNbaW5kZXhPZkxhc3RLZXlmcmFtZVdpdGhOb25OdWxsT2Zm
c2V0XS5jb21wdXRlZE9mZnNldDsKKyAgICAgICAgZG91YmxlIG9mZnNldERlbHRhID0ga2V5ZnJh
bWUuY29tcHV0ZWRPZmZzZXQgLSBsYXN0Tm9uTnVsbE9mZnNldDsKICAgICAgICAgZG91YmxlIG9m
ZnNldEluY3JlbWVudCA9IG9mZnNldERlbHRhIC8gKGkgLSBpbmRleE9mTGFzdEtleWZyYW1lV2l0
aE5vbk51bGxPZmZzZXQpOwogICAgICAgICBzaXplX3QgaW5kZXhPZkZpcnN0S2V5ZnJhbWVXaXRo
TnVsbE9mZnNldCA9IGluZGV4T2ZMYXN0S2V5ZnJhbWVXaXRoTm9uTnVsbE9mZnNldCArIDE7CiAg
ICAgICAgIGZvciAoc2l6ZV90IGogPSBpbmRleE9mRmlyc3RLZXlmcmFtZVdpdGhOdWxsT2Zmc2V0
OyBqIDwgaTsgKytqKQpAQCAtMTE5LDEzICsxMjEsMTMgQEAgc3RhdGljIGlubGluZSB2b2lkIGNv
bXB1dGVNaXNzaW5nS2V5ZnJhbWVPZmZzZXRzKFZlY3RvcjxLZXlmcmFtZUVmZmVjdFJlYWRPbmx5
OjoKICAgICB9CiB9CiAKLXN0YXRpYyBpbmxpbmUgRXhjZXB0aW9uT3I8dm9pZD4gcHJvY2Vzc0l0
ZXJhYmxlS2V5ZnJhbWVzKEV4ZWNTdGF0ZSYgc3RhdGUsIFN0cm9uZzxKU09iamVjdD4mJiBrZXlm
cmFtZXNJbnB1dCwgSlNWYWx1ZSBtZXRob2QsIFZlY3RvcjxLZXlmcmFtZUVmZmVjdFJlYWRPbmx5
OjpQcm9jZXNzZWRLZXlmcmFtZT4mIHByb2Nlc3NlZEtleWZyYW1lcykKK3N0YXRpYyBpbmxpbmUg
RXhjZXB0aW9uT3I8dm9pZD4gcHJvY2Vzc0l0ZXJhYmxlS2V5ZnJhbWVzKEV4ZWNTdGF0ZSYgc3Rh
dGUsIFN0cm9uZzxKU09iamVjdD4mJiBrZXlmcmFtZXNJbnB1dCwgSlNWYWx1ZSBtZXRob2QsIFZl
Y3RvcjxLZXlmcmFtZUVmZmVjdFJlYWRPbmx5OjpQYXJzZWRLZXlmcmFtZT4mIHBhcnNlZEtleWZy
YW1lcykKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIC8vIDEuIExldCBpdGVyIGJlIEdldEl0ZXJhdG9y
KG9iamVjdCwgbWV0aG9kKS4KLSAgICBmb3JFYWNoSW5JdGVyYWJsZShzdGF0ZSwga2V5ZnJhbWVz
SW5wdXQuZ2V0KCksIG1ldGhvZCwgWyZwcm9jZXNzZWRLZXlmcmFtZXNdKFZNJiB2bSwgRXhlY1N0
YXRlJiBzdGF0ZSwgSlNWYWx1ZSBuZXh0VmFsdWUpIC0+IEV4Y2VwdGlvbk9yPHZvaWQ+IHsKKyAg
ICBmb3JFYWNoSW5JdGVyYWJsZShzdGF0ZSwga2V5ZnJhbWVzSW5wdXQuZ2V0KCksIG1ldGhvZCwg
WyZwYXJzZWRLZXlmcmFtZXNdKFZNJiB2bSwgRXhlY1N0YXRlJiBzdGF0ZSwgSlNWYWx1ZSBuZXh0
VmFsdWUpIC0+IEV4Y2VwdGlvbk9yPHZvaWQ+IHsKICAgICAgICAgaWYgKCFuZXh0VmFsdWUgfHwg
IW5leHRWYWx1ZS5pc09iamVjdCgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5
cGVFcnJvciB9OwogCkBAIC0xMzYsNyArMTM4LDcgQEAgc3RhdGljIGlubGluZSBFeGNlcHRpb25P
cjx2b2lkPiBwcm9jZXNzSXRlcmFibGVLZXlmcmFtZXMoRXhlY1N0YXRlJiBzdGF0ZSwgU3Ryb24K
ICAgICAgICAgSlNPYmplY3Q6OmdldE93blByb3BlcnR5TmFtZXMoa2V5ZnJhbWUsICZzdGF0ZSwg
b3duUHJvcGVydHlOYW1lcywgRW51bWVyYXRpb25Nb2RlKCkpOwogICAgICAgICBzaXplX3QgbnVt
YmVyT2ZQcm9wZXJ0aWVzID0gb3duUHJvcGVydHlOYW1lcy5zaXplKCk7CiAKLSAgICAgICAgS2V5
ZnJhbWVFZmZlY3RSZWFkT25seTo6UHJvY2Vzc2VkS2V5ZnJhbWUga2V5ZnJhbWVPdXRwdXQ7Cisg
ICAgICAgIEtleWZyYW1lRWZmZWN0UmVhZE9ubHk6OlBhcnNlZEtleWZyYW1lIGtleWZyYW1lT3V0
cHV0OwogCiAgICAgICAgIFN0cmluZyBlYXNpbmcoImxpbmVhciIpOwogICAgICAgICBzdGQ6Om9w
dGlvbmFsPGRvdWJsZT4gb2Zmc2V0OwpAQCAtMTUzLDggKzE1NSwxMSBAQCBzdGF0aWMgaW5saW5l
IEV4Y2VwdGlvbk9yPHZvaWQ+IHByb2Nlc3NJdGVyYWJsZUtleWZyYW1lcyhFeGVjU3RhdGUmIHN0
YXRlLCBTdHJvbgogICAgICAgICAgICAgICAgIGNvbXBvc2l0ZSA9IGNvbnZlcnQ8SURMRW51bWVy
YXRpb248Q29tcG9zaXRlT3BlcmF0aW9uPj4oc3RhdGUsIG93blByb3BlcnR5UmF3VmFsdWUpOwog
ICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgYXV0byBjc3NQcm9wZXJ0eUlkID0g
SURMQXR0cmlidXRlTmFtZVRvQW5pbWF0aW9uUHJvcGVydHlOYW1lKG93blByb3BlcnR5TmFtZS5z
dHJpbmcoKSk7Ci0gICAgICAgICAgICAgICAgaWYgKENTU1Byb3BlcnR5QW5pbWF0aW9uOjppc1By
b3BlcnR5QW5pbWF0YWJsZShjc3NQcm9wZXJ0eUlkKSkKLSAgICAgICAgICAgICAgICAgICAga2V5
ZnJhbWVPdXRwdXQuY3NzUHJvcGVydGllc0FuZFZhbHVlcy5zZXQoY3NzUHJvcGVydHlJZCwgY29u
dmVydDxJRExET01TdHJpbmc+KHN0YXRlLCBvd25Qcm9wZXJ0eVJhd1ZhbHVlKSk7CisgICAgICAg
ICAgICAgICAgaWYgKENTU1Byb3BlcnR5QW5pbWF0aW9uOjppc1Byb3BlcnR5QW5pbWF0YWJsZShj
c3NQcm9wZXJ0eUlkKSkgeworICAgICAgICAgICAgICAgICAgICBhdXRvIHN0cmluZ1ZhbHVlID0g
Y29udmVydDxJRExET01TdHJpbmc+KHN0YXRlLCBvd25Qcm9wZXJ0eVJhd1ZhbHVlKTsKKyAgICAg
ICAgICAgICAgICAgICAgaWYgKGtleWZyYW1lT3V0cHV0LnN0eWxlLT5zZXRQcm9wZXJ0eShjc3NQ
cm9wZXJ0eUlkLCBzdHJpbmdWYWx1ZSkpCisgICAgICAgICAgICAgICAgICAgICAgICBrZXlmcmFt
ZU91dHB1dC51bnBhcnNlZFN0eWxlLnNldChjc3NQcm9wZXJ0eUlkLCBzdHJpbmdWYWx1ZSk7Cisg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICAgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgRXhjZXB0aW9uIHsgVHlwZUVycm9yIH0pOwogICAgICAgICB9CkBAIC0x
NjMsNyArMTY4LDcgQEAgc3RhdGljIGlubGluZSBFeGNlcHRpb25Pcjx2b2lkPiBwcm9jZXNzSXRl
cmFibGVLZXlmcmFtZXMoRXhlY1N0YXRlJiBzdGF0ZSwgU3Ryb24KICAgICAgICAga2V5ZnJhbWVP
dXRwdXQub2Zmc2V0ID0gb2Zmc2V0OwogICAgICAgICBrZXlmcmFtZU91dHB1dC5jb21wb3NpdGUg
PSBjb21wb3NpdGU7CiAKLSAgICAgICAgcHJvY2Vzc2VkS2V5ZnJhbWVzLmFwcGVuZChXVEZNb3Zl
KGtleWZyYW1lT3V0cHV0KSk7CisgICAgICAgIHBhcnNlZEtleWZyYW1lcy5hcHBlbmQoV1RGTW92
ZShrZXlmcmFtZU91dHB1dCkpOwogCiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfSk7CkBAIC0y
NTEsNyArMjU2LDcgQEAgc3RhdGljIGlubGluZSBFeGNlcHRpb25PcjxLZXlmcmFtZUVmZmVjdFJl
YWRPbmx5OjpLZXlmcmFtZUxpa2VPYmplY3Q+IHByb2Nlc3NLZXkKICAgICByZXR1cm4geyBXVEZN
b3ZlKGtleWZyYW1lT3VwdXQpIH07CiB9CiAKLXN0YXRpYyBpbmxpbmUgRXhjZXB0aW9uT3I8dm9p
ZD4gcHJvY2Vzc1Byb3BlcnR5SW5kZXhlZEtleWZyYW1lcyhFeGVjU3RhdGUmIHN0YXRlLCBTdHJv
bmc8SlNPYmplY3Q+JiYga2V5ZnJhbWVzSW5wdXQsIFZlY3RvcjxLZXlmcmFtZUVmZmVjdFJlYWRP
bmx5OjpQcm9jZXNzZWRLZXlmcmFtZT4mIHByb2Nlc3NlZEtleWZyYW1lcywgVmVjdG9yPFN0cmlu
Zz4mIHVudXNlZEVhc2luZ3MpCitzdGF0aWMgaW5saW5lIEV4Y2VwdGlvbk9yPHZvaWQ+IHByb2Nl
c3NQcm9wZXJ0eUluZGV4ZWRLZXlmcmFtZXMoRXhlY1N0YXRlJiBzdGF0ZSwgU3Ryb25nPEpTT2Jq
ZWN0PiYmIGtleWZyYW1lc0lucHV0LCBWZWN0b3I8S2V5ZnJhbWVFZmZlY3RSZWFkT25seTo6UGFy
c2VkS2V5ZnJhbWU+JiBwYXJzZWRLZXlmcmFtZXMsIFZlY3RvcjxTdHJpbmc+JiB1bnVzZWRFYXNp
bmdzKQogewogICAgIC8vIDEuIExldCBwcm9wZXJ0eS1pbmRleGVkIGtleWZyYW1lIGJlIHRoZSBy
ZXN1bHQgb2YgcnVubmluZyB0aGUgcHJvY2VkdXJlIHRvIHByb2Nlc3MgYSBrZXlmcmFtZS1saWtl
IG9iamVjdCBwYXNzaW5nIG9iamVjdCBhcyB0aGUga2V5ZnJhbWUgaW5wdXQuCiAgICAgYXV0byBw
cm9jZXNzS2V5ZnJhbWVMaWtlT2JqZWN0UmVzdWx0ID0gcHJvY2Vzc0tleWZyYW1lTGlrZU9iamVj
dChzdGF0ZSwgV1RGTW92ZShrZXlmcmFtZXNJbnB1dCkpOwpAQCAtMjY5LDQ5ICsyNzQsNTUgQEAg
c3RhdGljIGlubGluZSBFeGNlcHRpb25Pcjx2b2lkPiBwcm9jZXNzUHJvcGVydHlJbmRleGVkS2V5
ZnJhbWVzKEV4ZWNTdGF0ZSYgc3RhdGUKICAgICAgICAgLy8gMy4gTGV0IHByb3BlcnR5IHZhbHVl
cyBiZSB0aGUgdmFsdWUgZm9yIG0uCiAgICAgICAgIGF1dG8gcHJvcGVydHlWYWx1ZXMgPSBtLnZh
bHVlczsKICAgICAgICAgLy8gNC4gTGV0IHByb3BlcnR5IGtleWZyYW1lcyBiZSBhbiBlbXB0eSBz
ZXF1ZW5jZSBvZiBrZXlmcmFtZXMuCi0gICAgICAgIFZlY3RvcjxLZXlmcmFtZUVmZmVjdFJlYWRP
bmx5OjpQcm9jZXNzZWRLZXlmcmFtZT4gcHJvcGVydHlLZXlmcmFtZXM7CisgICAgICAgIFZlY3Rv
cjxLZXlmcmFtZUVmZmVjdFJlYWRPbmx5OjpQYXJzZWRLZXlmcmFtZT4gcHJvcGVydHlLZXlmcmFt
ZXM7CiAgICAgICAgIC8vIDUuIEZvciBlYWNoIHZhbHVlLCB2LCBpbiBwcm9wZXJ0eSB2YWx1ZXMg
cGVyZm9ybSB0aGUgZm9sbG93aW5nIHN0ZXBzOgogICAgICAgICBmb3IgKGF1dG8mIHYgOiBwcm9w
ZXJ0eVZhbHVlcykgewogICAgICAgICAgICAgLy8gMS4gTGV0IGsgYmUgYSBuZXcga2V5ZnJhbWUg
d2l0aCBhIG51bGwga2V5ZnJhbWUgb2Zmc2V0LgotICAgICAgICAgICAgS2V5ZnJhbWVFZmZlY3RS
ZWFkT25seTo6UHJvY2Vzc2VkS2V5ZnJhbWUgazsKKyAgICAgICAgICAgIEtleWZyYW1lRWZmZWN0
UmVhZE9ubHk6OlBhcnNlZEtleWZyYW1lIGs7CiAgICAgICAgICAgICAvLyAyLiBBZGQgdGhlIHBy
b3BlcnR5LXZhbHVlIHBhaXIsIHByb3BlcnR5IG5hbWUg4oaSIHYsIHRvIGsuCi0gICAgICAgICAg
ICBrLmNzc1Byb3BlcnRpZXNBbmRWYWx1ZXMuc2V0KHByb3BlcnR5TmFtZSwgdik7CisgICAgICAg
ICAgICBpZiAoay5zdHlsZS0+c2V0UHJvcGVydHkocHJvcGVydHlOYW1lLCB2KSkKKyAgICAgICAg
ICAgICAgICBrLnVucGFyc2VkU3R5bGUuc2V0KHByb3BlcnR5TmFtZSwgdik7CiAgICAgICAgICAg
ICAvLyAzLiBBcHBlbmQgayB0byBwcm9wZXJ0eSBrZXlmcmFtZXMuCi0gICAgICAgICAgICBwcm9w
ZXJ0eUtleWZyYW1lcy5hcHBlbmQoayk7CisgICAgICAgICAgICBwcm9wZXJ0eUtleWZyYW1lcy5h
cHBlbmQoV1RGTW92ZShrKSk7CiAgICAgICAgIH0KICAgICAgICAgLy8gNi4gQXBwbHkgdGhlIHBy
b2NlZHVyZSB0byBjb21wdXRlIG1pc3Npbmcga2V5ZnJhbWUgb2Zmc2V0cyB0byBwcm9wZXJ0eSBr
ZXlmcmFtZXMuCiAgICAgICAgIGNvbXB1dGVNaXNzaW5nS2V5ZnJhbWVPZmZzZXRzKHByb3BlcnR5
S2V5ZnJhbWVzKTsKIAogICAgICAgICAvLyA3LiBBZGQga2V5ZnJhbWVzIGluIHByb3BlcnR5IGtl
eWZyYW1lcyB0byBwcm9jZXNzZWQga2V5ZnJhbWVzLgogICAgICAgICBmb3IgKGF1dG8mIGtleWZy
YW1lIDogcHJvcGVydHlLZXlmcmFtZXMpCi0gICAgICAgICAgICBwcm9jZXNzZWRLZXlmcmFtZXMu
YXBwZW5kKGtleWZyYW1lKTsKKyAgICAgICAgICAgIHBhcnNlZEtleWZyYW1lcy5hcHBlbmQoV1RG
TW92ZShrZXlmcmFtZSkpOwogICAgIH0KIAogICAgIC8vIDMuIFNvcnQgcHJvY2Vzc2VkIGtleWZy
YW1lcyBieSB0aGUgY29tcHV0ZWQga2V5ZnJhbWUgb2Zmc2V0IG9mIGVhY2gga2V5ZnJhbWUgaW4g
aW5jcmVhc2luZyBvcmRlci4KLSAgICBzdGQ6OnNvcnQocHJvY2Vzc2VkS2V5ZnJhbWVzLmJlZ2lu
KCksIHByb2Nlc3NlZEtleWZyYW1lcy5lbmQoKSwgW10oYXV0byYgbGhzLCBhdXRvJiByaHMpIHsK
LSAgICAgICAgcmV0dXJuIGxocy5jb21wdXRlZE9mZnNldC52YWx1ZSgpIDwgcmhzLmNvbXB1dGVk
T2Zmc2V0LnZhbHVlKCk7CisgICAgc3RkOjpzb3J0KHBhcnNlZEtleWZyYW1lcy5iZWdpbigpLCBw
YXJzZWRLZXlmcmFtZXMuZW5kKCksIFtdKGF1dG8mIGxocywgYXV0byYgcmhzKSB7CisgICAgICAg
IHJldHVybiBsaHMuY29tcHV0ZWRPZmZzZXQgPCByaHMuY29tcHV0ZWRPZmZzZXQ7CiAgICAgfSk7
CiAKICAgICAvLyA0LiBNZXJnZSBhZGphY2VudCBrZXlmcmFtZXMgaW4gcHJvY2Vzc2VkIGtleWZy
YW1lcyB3aGVuIHRoZXkgaGF2ZSBlcXVhbCBjb21wdXRlZCBrZXlmcmFtZSBvZmZzZXRzLgogICAg
IHNpemVfdCBpID0gMTsKLSAgICB3aGlsZSAoaSA8IHByb2Nlc3NlZEtleWZyYW1lcy5zaXplKCkp
IHsKLSAgICAgICAgYXV0byYga2V5ZnJhbWUgPSBwcm9jZXNzZWRLZXlmcmFtZXNbaV07Ci0gICAg
ICAgIGF1dG8mIHByZXZpb3VzS2V5ZnJhbWUgPSBwcm9jZXNzZWRLZXlmcmFtZXNbaSAtIDFdOwor
ICAgIHdoaWxlIChpIDwgcGFyc2VkS2V5ZnJhbWVzLnNpemUoKSkgeworICAgICAgICBhdXRvJiBr
ZXlmcmFtZSA9IHBhcnNlZEtleWZyYW1lc1tpXTsKKyAgICAgICAgYXV0byYgcHJldmlvdXNLZXlm
cmFtZSA9IHBhcnNlZEtleWZyYW1lc1tpIC0gMV07CiAgICAgICAgIC8vIElmIHRoZSBvZmZzZXRz
IG9mIHRoaXMga2V5ZnJhbWUgYW5kIHRoZSBwcmV2aW91cyBrZXlmcmFtZSBhcmUgZGlmZmVyZW50
LAogICAgICAgICAvLyB0aGlzIG1lYW5zIHRoYXQgdGhlIHR3byBrZXlmcmFtZXMgc2hvdWxkIG5v
dCBiZSBtZXJnZWQgYW5kIHdlIGNhbiBtb3ZlCiAgICAgICAgIC8vIG9uIHRvIHRoZSBuZXh0IGtl
eWZyYW1lLgotICAgICAgICBpZiAoa2V5ZnJhbWUuY29tcHV0ZWRPZmZzZXQudmFsdWUoKSAhPSBw
cmV2aW91c0tleWZyYW1lLmNvbXB1dGVkT2Zmc2V0LnZhbHVlKCkpIHsKKyAgICAgICAgaWYgKGtl
eWZyYW1lLmNvbXB1dGVkT2Zmc2V0ICE9IHByZXZpb3VzS2V5ZnJhbWUuY29tcHV0ZWRPZmZzZXQp
IHsKICAgICAgICAgICAgIGkrKzsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAg
ICAgICAgIC8vIE90aGVyd2lzZSwgYm90aCB0aGlzIGtleWZyYW1lIGFuZCB0aGUgcHJldmlvdXMg
a2V5ZnJhbWUgc2hvdWxkIGJlIG1lcmdlZC4KLSAgICAgICAgLy8gVW5wcm9jZXNzZWQga2V5ZnJh
bWVzIGluIHByb2Nlc3NlZEtleWZyYW1lcyBhdCB0aGlzIHN0YWdlIGhhdmUgYSBzaW5nbGUKKyAg
ICAgICAgLy8gVW5wcm9jZXNzZWQga2V5ZnJhbWVzIGluIHBhcnNlZEtleWZyYW1lcyBhdCB0aGlz
IHN0YWdlIGhhdmUgYXQgbW9zdCBhIHNpbmdsZQogICAgICAgICAvLyBwcm9wZXJ0eSBpbiBjc3NQ
cm9wZXJ0aWVzQW5kVmFsdWVzLCBzbyBqdXN0IHNldCB0aGlzIG9uIHRoZSBwcmV2aW91cyBrZXlm
cmFtZS4KLSAgICAgICAgYXV0byBzaW5nbGVWYWx1ZUluS2V5ZnJhbWUgPSBrZXlmcmFtZS5jc3NQ
cm9wZXJ0aWVzQW5kVmFsdWVzLmJlZ2luKCk7Ci0gICAgICAgIHByZXZpb3VzS2V5ZnJhbWUuY3Nz
UHJvcGVydGllc0FuZFZhbHVlcy5zZXQoc2luZ2xlVmFsdWVJbktleWZyYW1lLT5rZXksIHNpbmds
ZVZhbHVlSW5LZXlmcmFtZS0+dmFsdWUpOworICAgICAgICAvLyBJbiBjYXNlIGFuIGludmFsaWQg
b3IgbnVsbCB2YWx1ZSB3YXMgb3JpZ2luYWxseSBwcm92aWRlZCwgdGhlbiB0aGUgcHJvcGVydHkK
KyAgICAgICAgLy8gd2FzIG5vdCBzZXQgYW5kIHRoZSBwcm9wZXJ0eSBjb3VudCBpcyAwLCBpbiB3
aGljaCBjYXNlIHRoZXJlIGlzIG5vdGhpbmcgdG8gbWVyZ2UuCisgICAgICAgIGlmIChrZXlmcmFt
ZS5zdHlsZS0+cHJvcGVydHlDb3VudCgpKSB7CisgICAgICAgICAgICBhdXRvIHByb3BlcnR5ID0g
a2V5ZnJhbWUuc3R5bGUtPnByb3BlcnR5QXQoMCk7CisgICAgICAgICAgICBwcmV2aW91c0tleWZy
YW1lLnN0eWxlLT5zZXRQcm9wZXJ0eShwcm9wZXJ0eS5pZCgpLCBwcm9wZXJ0eS52YWx1ZSgpKTsK
KyAgICAgICAgICAgIHByZXZpb3VzS2V5ZnJhbWUudW5wYXJzZWRTdHlsZS5zZXQocHJvcGVydHku
aWQoKSwga2V5ZnJhbWUudW5wYXJzZWRTdHlsZS5nZXQocHJvcGVydHkuaWQoKSkpOworICAgICAg
ICB9CiAgICAgICAgIC8vIFNpbmNlIHdlJ3ZlIHByb2Nlc3NlZCB0aGlzIGtleWZyYW1lLCB3ZSBj
YW4gcmVtb3ZlIGl0IGFuZCBrZWVwIGkgdGhlIHNhbWUKICAgICAgICAgLy8gc28gdGhhdCB3ZSBw
cm9jZXNzIHRoZSBuZXh0IGtleWZyYW1lIGluIHRoZSBuZXh0IGxvb3AgaXRlcmF0aW9uLgotICAg
ICAgICBwcm9jZXNzZWRLZXlmcmFtZXMucmVtb3ZlKGkpOworICAgICAgICBwYXJzZWRLZXlmcmFt
ZXMucmVtb3ZlKGkpOwogICAgIH0KIAogICAgIC8vIDUuIExldCBvZmZzZXRzIGJlIGEgc2VxdWVu
Y2Ugb2YgbnVsbGFibGUgZG91YmxlIHZhbHVlcyBhc3NpZ25lZCBiYXNlZCBvbiB0aGUgdHlwZSBv
ZiB0aGUg4oCcb2Zmc2V04oCdIG1lbWJlciBvZiB0aGUgcHJvcGVydHktaW5kZXhlZCBrZXlmcmFt
ZSBhcyBmb2xsb3dzOgpAQCAtMzI2LDggKzMzNyw4IEBAIHN0YXRpYyBpbmxpbmUgRXhjZXB0aW9u
T3I8dm9pZD4gcHJvY2Vzc1Byb3BlcnR5SW5kZXhlZEtleWZyYW1lcyhFeGVjU3RhdGUmIHN0YXRl
CiAgICAgICAgIG9mZnNldHMuYXBwZW5kKHN0ZDo6bnVsbG9wdCk7CiAKICAgICAvLyA2LiBBc3Np
Z24gZWFjaCB2YWx1ZSBpbiBvZmZzZXRzIHRvIHRoZSBrZXlmcmFtZSBvZmZzZXQgb2YgdGhlIGtl
eWZyYW1lIHdpdGggY29ycmVzcG9uZGluZyBwb3NpdGlvbiBpbiBwcm9wZXJ0eSBrZXlmcmFtZXMg
dW50aWwgdGhlIGVuZCBvZiBlaXRoZXIgc2VxdWVuY2UgaXMgcmVhY2hlZC4KLSAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IG9mZnNldHMuc2l6ZSgpICYmIGkgPCBwcm9jZXNzZWRLZXlmcmFtZXMu
c2l6ZSgpOyArK2kpCi0gICAgICAgIHByb2Nlc3NlZEtleWZyYW1lc1tpXS5vZmZzZXQgPSBvZmZz
ZXRzW2ldOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgb2Zmc2V0cy5zaXplKCkgJiYgaSA8
IHBhcnNlZEtleWZyYW1lcy5zaXplKCk7ICsraSkKKyAgICAgICAgcGFyc2VkS2V5ZnJhbWVzW2ld
Lm9mZnNldCA9IG9mZnNldHNbaV07CiAKICAgICAvLyA3LiBMZXQgZWFzaW5ncyBiZSBhIHNlcXVl
bmNlIG9mIERPTVN0cmluZyB2YWx1ZXMgYXNzaWduZWQgYmFzZWQgb24gdGhlIHR5cGUgb2YgdGhl
IOKAnGVhc2luZ+KAnSBtZW1iZXIgb2YgdGhlIHByb3BlcnR5LWluZGV4ZWQga2V5ZnJhbWUgYXMg
Zm9sbG93czoKICAgICAvLyAgICAtIHNlcXVlbmNlPERPTVN0cmluZz4sIHRoZSB2YWx1ZSBvZiDi
gJxlYXNpbmfigJ0gYXMtaXMuCkBAIC0zNDQsMjAgKzM1NSwyMCBAQCBzdGF0aWMgaW5saW5lIEV4
Y2VwdGlvbk9yPHZvaWQ+IHByb2Nlc3NQcm9wZXJ0eUluZGV4ZWRLZXlmcmFtZXMoRXhlY1N0YXRl
JiBzdGF0ZQogCiAgICAgLy8gOS4gSWYgZWFzaW5ncyBoYXMgZmV3ZXIgaXRlbXMgdGhhbiBwcm9w
ZXJ0eSBrZXlmcmFtZXMsIHJlcGVhdCB0aGUgZWxlbWVudHMgaW4gZWFzaW5ncyBzdWNjZXNzaXZl
bHkgc3RhcnRpbmcgZnJvbSB0aGUgYmVnaW5uaW5nIG9mIHRoZSBsaXN0IHVudGlsIGVhc2luZ3Mg
aGFzIGFzIG1hbnkKICAgICAvLyAgICBpdGVtcyBhcyBwcm9wZXJ0eSBrZXlmcmFtZXMuCi0gICAg
aWYgKGVhc2luZ3Muc2l6ZSgpIDwgcHJvY2Vzc2VkS2V5ZnJhbWVzLnNpemUoKSkgeworICAgIGlm
IChlYXNpbmdzLnNpemUoKSA8IHBhcnNlZEtleWZyYW1lcy5zaXplKCkpIHsKICAgICAgICAgc2l6
ZV90IGluaXRpYWxOdW1iZXJPZkVhc2luZ3MgPSBlYXNpbmdzLnNpemUoKTsKLSAgICAgICAgZm9y
IChpID0gaW5pdGlhbE51bWJlck9mRWFzaW5ncyArIDE7IGkgPD0gcHJvY2Vzc2VkS2V5ZnJhbWVz
LnNpemUoKTsgKytpKQorICAgICAgICBmb3IgKGkgPSBpbml0aWFsTnVtYmVyT2ZFYXNpbmdzICsg
MTsgaSA8PSBwYXJzZWRLZXlmcmFtZXMuc2l6ZSgpOyArK2kpCiAgICAgICAgICAgICBlYXNpbmdz
LmFwcGVuZChlYXNpbmdzW2kgJSBpbml0aWFsTnVtYmVyT2ZFYXNpbmdzXSk7CiAgICAgfQogCiAg
ICAgLy8gMTAuIElmIGVhc2luZ3MgaGFzIG1vcmUgaXRlbXMgdGhhbiBwcm9wZXJ0eSBrZXlmcmFt
ZXMsIHN0b3JlIHRoZSBleGNlc3MgaXRlbXMgYXMgdW51c2VkIGVhc2luZ3MuCi0gICAgd2hpbGUg
KGVhc2luZ3Muc2l6ZSgpID4gcHJvY2Vzc2VkS2V5ZnJhbWVzLnNpemUoKSkKKyAgICB3aGlsZSAo
ZWFzaW5ncy5zaXplKCkgPiBwYXJzZWRLZXlmcmFtZXMuc2l6ZSgpKQogICAgICAgICB1bnVzZWRF
YXNpbmdzLmFwcGVuZChlYXNpbmdzLnRha2VMYXN0KCkpOwogCiAgICAgLy8gMTEuIEFzc2lnbiBl
YWNoIHZhbHVlIGluIGVhc2luZ3MgdG8gYSBwcm9wZXJ0eSBuYW1lZCDigJxlYXNpbmfigJ0gb24g
dGhlIGtleWZyYW1lIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgcG9zaXRpb24gaW4gcHJvcGVydHkg
a2V5ZnJhbWVzIHVudGlsIHRoZSBlbmQgb2YgcHJvcGVydHkga2V5ZnJhbWVzCiAgICAgLy8gICAg
IGlzIHJlYWNoZWQuCi0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBwcm9jZXNzZWRLZXlmcmFt
ZXMuc2l6ZSgpOyArK2kpCi0gICAgICAgIHByb2Nlc3NlZEtleWZyYW1lc1tpXS5lYXNpbmcgPSBl
YXNpbmdzW2ldOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcGFyc2VkS2V5ZnJhbWVzLnNp
emUoKTsgKytpKQorICAgICAgICBwYXJzZWRLZXlmcmFtZXNbaV0uZWFzaW5nID0gZWFzaW5nc1tp
XTsKIAogICAgIC8vIDEyLiBJZiB0aGUg4oCcY29tcG9zaXRl4oCdIG1lbWJlciBvZiB0aGUgcHJv
cGVydHktaW5kZXhlZCBrZXlmcmFtZSBpcyBub3QgYW4gZW1wdHkgc2VxdWVuY2U6CiAgICAgVmVj
dG9yPENvbXBvc2l0ZU9wZXJhdGlvbj4gY29tcG9zaXRlTW9kZXM7CkBAIC0zNzAsMTUgKzM4MSwx
NSBAQCBzdGF0aWMgaW5saW5lIEV4Y2VwdGlvbk9yPHZvaWQ+IHByb2Nlc3NQcm9wZXJ0eUluZGV4
ZWRLZXlmcmFtZXMoRXhlY1N0YXRlJiBzdGF0ZQogICAgICAgICAvLyAgICBvcGVyYXRpb24sIGxl
dCBjb21wb3NpdGUgbW9kZXMgYmUgYSBzZXF1ZW5jZSBvZiBsZW5ndGggb25lLCB3aXRoIHRoZSB2
YWx1ZSBvZiB0aGUg4oCcY29tcG9zaXRl4oCdIGFzIGl0cyBzaW5nbGUgaXRlbS4KICAgICAgICAg
Ly8gMi4gQXMgd2l0aCBlYXNpbmdzLCBpZiBjb21wb3NpdGUgbW9kZXMgaGFzIGZld2VyIGl0ZW1z
IHRoYW4gcHJvcGVydHkga2V5ZnJhbWVzLCByZXBlYXQgdGhlIGVsZW1lbnRzIGluIGNvbXBvc2l0
ZSBtb2RlcyBzdWNjZXNzaXZlbHkgc3RhcnRpbmcgZnJvbSB0aGUgYmVnaW5uaW5nIG9mCiAgICAg
ICAgIC8vICAgIHRoZSBsaXN0IHVudGlsIGNvbXBvc2l0ZSBtb2RlcyBoYXMgYXMgbWFueSBpdGVt
cyBhcyBwcm9wZXJ0eSBrZXlmcmFtZXMuCi0gICAgICAgIGlmIChjb21wb3NpdGVNb2Rlcy5zaXpl
KCkgPCBwcm9jZXNzZWRLZXlmcmFtZXMuc2l6ZSgpKSB7CisgICAgICAgIGlmIChjb21wb3NpdGVN
b2Rlcy5zaXplKCkgPCBwYXJzZWRLZXlmcmFtZXMuc2l6ZSgpKSB7CiAgICAgICAgICAgICBzaXpl
X3QgaW5pdGlhbE51bWJlck9mQ29tcG9zaXRlTW9kZXMgPSBjb21wb3NpdGVNb2Rlcy5zaXplKCk7
Ci0gICAgICAgICAgICBmb3IgKGkgPSBpbml0aWFsTnVtYmVyT2ZDb21wb3NpdGVNb2RlcyArIDE7
IGkgPD0gcHJvY2Vzc2VkS2V5ZnJhbWVzLnNpemUoKTsgKytpKQorICAgICAgICAgICAgZm9yIChp
ID0gaW5pdGlhbE51bWJlck9mQ29tcG9zaXRlTW9kZXMgKyAxOyBpIDw9IHBhcnNlZEtleWZyYW1l
cy5zaXplKCk7ICsraSkKICAgICAgICAgICAgICAgICBjb21wb3NpdGVNb2Rlcy5hcHBlbmQoY29t
cG9zaXRlTW9kZXNbaSAlIGluaXRpYWxOdW1iZXJPZkNvbXBvc2l0ZU1vZGVzXSk7CiAgICAgICAg
IH0KICAgICAgICAgLy8gMy4gQXNzaWduIGVhY2ggdmFsdWUgaW4gY29tcG9zaXRlIG1vZGVzIHRv
IHRoZSBrZXlmcmFtZS1zcGVjaWZpYyBjb21wb3NpdGUgb3BlcmF0aW9uIG9uIHRoZSBrZXlmcmFt
ZSB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIHBvc2l0aW9uIGluIHByb3BlcnR5IGtleWZyYW1lcyB1
bnRpbAogICAgICAgICAvLyAgICB0aGUgZW5kIG9mIHByb3BlcnR5IGtleWZyYW1lcyBpcyByZWFj
aGVkLgotICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNvbXBvc2l0ZU1vZGVzLnNpemUo
KSAmJiBpIDwgcHJvY2Vzc2VkS2V5ZnJhbWVzLnNpemUoKTsgKytpKQotICAgICAgICAgICAgcHJv
Y2Vzc2VkS2V5ZnJhbWVzW2ldLmNvbXBvc2l0ZSA9IGNvbXBvc2l0ZU1vZGVzW2ldOworICAgICAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNvbXBvc2l0ZU1vZGVzLnNpemUoKSAmJiBpIDwgcGFy
c2VkS2V5ZnJhbWVzLnNpemUoKTsgKytpKQorICAgICAgICAgICAgcGFyc2VkS2V5ZnJhbWVzW2ld
LmNvbXBvc2l0ZSA9IGNvbXBvc2l0ZU1vZGVzW2ldOwogICAgIH0KIAogICAgIHJldHVybiB7IH07
CkBAIC00MDksMjkgKzQyMCw0MCBAQCBFeGNlcHRpb25PcjxSZWY8S2V5ZnJhbWVFZmZlY3RSZWFk
T25seT4+IEtleWZyYW1lRWZmZWN0UmVhZE9ubHk6OmNyZWF0ZShKU0M6OkV4ZQogS2V5ZnJhbWVF
ZmZlY3RSZWFkT25seTo6S2V5ZnJhbWVFZmZlY3RSZWFkT25seShDbGFzc1R5cGUgY2xhc3NUeXBl
LCBSZWY8QW5pbWF0aW9uRWZmZWN0VGltaW5nUmVhZE9ubHk+JiYgdGltaW5nLCBFbGVtZW50KiB0
YXJnZXQpCiAgICAgOiBBbmltYXRpb25FZmZlY3RSZWFkT25seShjbGFzc1R5cGUsIFdURk1vdmUo
dGltaW5nKSkKICAgICAsIG1fdGFyZ2V0KHRhcmdldCkKLSAgICAsIG1fa2V5ZnJhbWVzKGVtcHR5
U3RyaW5nKCkpCisgICAgLCBtX2JsZW5kaW5nS2V5ZnJhbWVzKGVtcHR5U3RyaW5nKCkpCiB7CiB9
CiAKIHZvaWQgS2V5ZnJhbWVFZmZlY3RSZWFkT25seTo6Y29weVByb3BlcnRpZXNGcm9tU291cmNl
KFJlZjxLZXlmcmFtZUVmZmVjdFJlYWRPbmx5PiYmIHNvdXJjZSkKIHsKICAgICBtX3RhcmdldCA9
IHNvdXJjZS0+bV90YXJnZXQ7Ci0gICAgbV9vZmZzZXRzID0gc291cmNlLT5tX29mZnNldHM7Ci0g
ICAgbV90aW1pbmdGdW5jdGlvbnMgPSBzb3VyY2UtPm1fdGltaW5nRnVuY3Rpb25zOwogICAgIG1f
Y29tcG9zaXRlT3BlcmF0aW9uID0gc291cmNlLT5tX2NvbXBvc2l0ZU9wZXJhdGlvbjsKLSAgICBt
X2NvbXBvc2l0ZU9wZXJhdGlvbnMgPSBzb3VyY2UtPm1fY29tcG9zaXRlT3BlcmF0aW9uczsKICAg
ICBtX2l0ZXJhdGlvbkNvbXBvc2l0ZU9wZXJhdGlvbiA9IHNvdXJjZS0+bV9pdGVyYXRpb25Db21w
b3NpdGVPcGVyYXRpb247CiAKKyAgICBWZWN0b3I8UGFyc2VkS2V5ZnJhbWU+IHBhcnNlZEtleWZy
YW1lczsKKyAgICBmb3IgKGF1dG8mIHNvdXJjZVBhcnNlZEtleWZyYW1lIDogc291cmNlLT5tX3Bh
cnNlZEtleWZyYW1lcykgeworICAgICAgICBQYXJzZWRLZXlmcmFtZSBwYXJzZWRLZXlmcmFtZTsK
KyAgICAgICAgcGFyc2VkS2V5ZnJhbWUuZWFzaW5nID0gc291cmNlUGFyc2VkS2V5ZnJhbWUuZWFz
aW5nOworICAgICAgICBwYXJzZWRLZXlmcmFtZS5vZmZzZXQgPSBzb3VyY2VQYXJzZWRLZXlmcmFt
ZS5vZmZzZXQ7CisgICAgICAgIHBhcnNlZEtleWZyYW1lLmNvbXBvc2l0ZSA9IHNvdXJjZVBhcnNl
ZEtleWZyYW1lLmNvbXBvc2l0ZTsKKyAgICAgICAgcGFyc2VkS2V5ZnJhbWUudW5wYXJzZWRTdHls
ZSA9IHNvdXJjZVBhcnNlZEtleWZyYW1lLnVucGFyc2VkU3R5bGU7CisgICAgICAgIHBhcnNlZEtl
eWZyYW1lLmNvbXB1dGVkT2Zmc2V0ID0gc291cmNlUGFyc2VkS2V5ZnJhbWUuY29tcHV0ZWRPZmZz
ZXQ7CisgICAgICAgIHBhcnNlZEtleWZyYW1lLnRpbWluZ0Z1bmN0aW9uID0gc291cmNlUGFyc2Vk
S2V5ZnJhbWUudGltaW5nRnVuY3Rpb247CisgICAgICAgIHBhcnNlZEtleWZyYW1lLnN0eWxlID0g
c291cmNlUGFyc2VkS2V5ZnJhbWUuc3R5bGUtPm11dGFibGVDb3B5KCk7CisgICAgICAgIHBhcnNl
ZEtleWZyYW1lcy5hcHBlbmQoV1RGTW92ZShwYXJzZWRLZXlmcmFtZSkpOworICAgIH0KKyAgICBt
X3BhcnNlZEtleWZyYW1lcyA9IFdURk1vdmUocGFyc2VkS2V5ZnJhbWVzKTsKKwogICAgIHRpbWlu
ZygpLT5jb3B5UHJvcGVydGllc0Zyb21Tb3VyY2Uoc291cmNlLT50aW1pbmcoKSk7CiAKICAgICBL
ZXlmcmFtZUxpc3Qga2V5ZnJhbWVMaXN0KCJrZXlmcmFtZS1lZmZlY3QtIiArIGNyZWF0ZUNhbm9u
aWNhbFVVSURTdHJpbmcoKSk7Ci0gICAgZm9yIChhdXRvJiBrZXlmcmFtZSA6IHNvdXJjZS0+bV9r
ZXlmcmFtZXMua2V5ZnJhbWVzKCkpIHsKKyAgICBmb3IgKGF1dG8mIGtleWZyYW1lIDogc291cmNl
LT5tX2JsZW5kaW5nS2V5ZnJhbWVzLmtleWZyYW1lcygpKSB7CiAgICAgICAgIEtleWZyYW1lVmFs
dWUga2V5ZnJhbWVWYWx1ZShrZXlmcmFtZS5rZXkoKSwgUmVuZGVyU3R5bGU6OmNsb25lUHRyKCpr
ZXlmcmFtZS5zdHlsZSgpKSk7CiAgICAgICAgIGZvciAoYXV0byBwcm9wZXJ0eUlkIDoga2V5ZnJh
bWUucHJvcGVydGllcygpKQogICAgICAgICAgICAga2V5ZnJhbWVWYWx1ZS5hZGRQcm9wZXJ0eShw
cm9wZXJ0eUlkKTsKICAgICAgICAga2V5ZnJhbWVMaXN0Lmluc2VydChXVEZNb3ZlKGtleWZyYW1l
VmFsdWUpKTsKICAgICB9Ci0gICAgbV9rZXlmcmFtZXMgPSBXVEZNb3ZlKGtleWZyYW1lTGlzdCk7
CisgICAgbV9ibGVuZGluZ0tleWZyYW1lcyA9IFdURk1vdmUoa2V5ZnJhbWVMaXN0KTsKIH0KIAog
VmVjdG9yPFN0cm9uZzxKU09iamVjdD4+IEtleWZyYW1lRWZmZWN0UmVhZE9ubHk6OmdldEtleWZy
YW1lcyhFeGVjU3RhdGUmIHN0YXRlKQpAQCAtNDQ5LDkgKzQ3MSw3IEBAIFZlY3RvcjxTdHJvbmc8
SlNPYmplY3Q+PiBLZXlmcmFtZUVmZmVjdFJlYWRPbmx5OjpnZXRLZXlmcmFtZXMoRXhlY1N0YXRl
JiBzdGF0ZSkKICAgICAvLyAyLiBMZXQga2V5ZnJhbWVzIGJlIHRoZSByZXN1bHQgb2YgYXBwbHlp
bmcgdGhlIHByb2NlZHVyZSB0byBjb21wdXRlIG1pc3Npbmcga2V5ZnJhbWUgb2Zmc2V0cyB0byB0
aGUga2V5ZnJhbWVzIGZvciB0aGlzIGtleWZyYW1lIGVmZmVjdC4KIAogICAgIC8vIDMuIEZvciBl
YWNoIGtleWZyYW1lIGluIGtleWZyYW1lcyBwZXJmb3JtIHRoZSBmb2xsb3dpbmcgc3RlcHM6Ci0g
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2tleWZyYW1lcy5zaXplKCk7ICsraSkgewotICAg
ICAgICBhdXRvJiBrZXlmcmFtZSA9IG1fa2V5ZnJhbWVzW2ldOwotCisgICAgZm9yIChhdXRvJiBw
YXJzZWRLZXlmcmFtZSA6IG1fcGFyc2VkS2V5ZnJhbWVzKSB7CiAgICAgICAgIC8vIDEuIEluaXRp
YWxpemUgYSBkaWN0aW9uYXJ5IG9iamVjdCwgb3V0cHV0IGtleWZyYW1lLCB1c2luZyB0aGUgZm9s
bG93aW5nIGRlZmluaXRpb246CiAgICAgICAgIC8vCiAgICAgICAgIC8vIGRpY3Rpb25hcnkgQmFz
ZUNvbXB1dGVkS2V5ZnJhbWUgewpAQCAtNDY0LDI0ICs0ODQsMjAgQEAgVmVjdG9yPFN0cm9uZzxK
U09iamVjdD4+IEtleWZyYW1lRWZmZWN0UmVhZE9ubHk6OmdldEtleWZyYW1lcyhFeGVjU3RhdGUm
IHN0YXRlKQogICAgICAgICAvLyAyLiBTZXQgb2Zmc2V0LCBjb21wdXRlZE9mZnNldCwgZWFzaW5n
LCBjb21wb3NpdGUgbWVtYmVycyBvZiBvdXRwdXQga2V5ZnJhbWUgdG8gdGhlIHJlc3BlY3RpdmUg
dmFsdWVzIGtleWZyYW1lIG9mZnNldCwgY29tcHV0ZWQga2V5ZnJhbWUKICAgICAgICAgLy8gb2Zm
c2V0LCBrZXlmcmFtZS1zcGVjaWZpYyB0aW1pbmcgZnVuY3Rpb24gYW5kIGtleWZyYW1lLXNwZWNp
ZmljIGNvbXBvc2l0ZSBvcGVyYXRpb24gb2Yga2V5ZnJhbWUuCiAgICAgICAgIEJhc2VDb21wdXRl
ZEtleWZyYW1lIGNvbXB1dGVkS2V5ZnJhbWU7Ci0gICAgICAgIGNvbXB1dGVkS2V5ZnJhbWUub2Zm
c2V0ID0gbV9vZmZzZXRzW2ldOwotICAgICAgICBjb21wdXRlZEtleWZyYW1lLmNvbXB1dGVkT2Zm
c2V0ID0ga2V5ZnJhbWUua2V5KCk7Ci0gICAgICAgIGNvbXB1dGVkS2V5ZnJhbWUuZWFzaW5nID0g
bV90aW1pbmdGdW5jdGlvbnNbaV0tPmNzc1RleHQoKTsKLSAgICAgICAgY29tcHV0ZWRLZXlmcmFt
ZS5jb21wb3NpdGUgPSBtX2NvbXBvc2l0ZU9wZXJhdGlvbnNbaV07CisgICAgICAgIGNvbXB1dGVk
S2V5ZnJhbWUub2Zmc2V0ID0gcGFyc2VkS2V5ZnJhbWUub2Zmc2V0OworICAgICAgICBjb21wdXRl
ZEtleWZyYW1lLmNvbXB1dGVkT2Zmc2V0ID0gcGFyc2VkS2V5ZnJhbWUuY29tcHV0ZWRPZmZzZXQ7
CisgICAgICAgIGNvbXB1dGVkS2V5ZnJhbWUuZWFzaW5nID0gcGFyc2VkS2V5ZnJhbWUudGltaW5n
RnVuY3Rpb24tPmNzc1RleHQoKTsKKyAgICAgICAgY29tcHV0ZWRLZXlmcmFtZS5jb21wb3NpdGUg
PSBwYXJzZWRLZXlmcmFtZS5jb21wb3NpdGU7CiAKICAgICAgICAgYXV0byBvdXRwdXRLZXlmcmFt
ZSA9IGNvbnZlcnREaWN0aW9uYXJ5VG9KUyhzdGF0ZSwgKmpzQ2FzdDxKU0RPTUdsb2JhbE9iamVj
dCo+KHN0YXRlLmxleGljYWxHbG9iYWxPYmplY3QoKSksIGNvbXB1dGVkS2V5ZnJhbWUpOwogCi0g
ICAgICAgIGF1dG8mIHN0eWxlID0gKmtleWZyYW1lLnN0eWxlKCk7Ci0gICAgICAgIGF1dG8gY29t
cHV0ZWRTdHlsZUV4dHJhY3RvciA9IENvbXB1dGVkU3R5bGVFeHRyYWN0b3IobV90YXJnZXQuZ2V0
KCkpOwotCiAgICAgICAgIC8vIDMuIEZvciBlYWNoIGFuaW1hdGlvbiBwcm9wZXJ0eS12YWx1ZSBw
YWlyIHNwZWNpZmllZCBvbiBrZXlmcmFtZSwgZGVjbGFyYXRpb24sIHBlcmZvcm0gdGhlIGZvbGxv
d2luZyBzdGVwczoKLSAgICAgICAgZm9yIChhdXRvIGNzc1Byb3BlcnR5SWQgOiBrZXlmcmFtZS5w
cm9wZXJ0aWVzKCkpIHsKKyAgICAgICAgZm9yIChhdXRvIGl0ID0gcGFyc2VkS2V5ZnJhbWUudW5w
YXJzZWRTdHlsZS5iZWdpbigpLCBlbmQgPSBwYXJzZWRLZXlmcmFtZS51bnBhcnNlZFN0eWxlLmVu
ZCgpOyBpdCAhPSBlbmQ7ICsraXQpIHsKICAgICAgICAgICAgIC8vIDEuIExldCBwcm9wZXJ0eSBu
YW1lIGJlIHRoZSByZXN1bHQgb2YgYXBwbHlpbmcgdGhlIGFuaW1hdGlvbiBwcm9wZXJ0eSBuYW1l
IHRvIElETCBhdHRyaWJ1dGUgbmFtZSBhbGdvcml0aG0gdG8gdGhlIHByb3BlcnR5IG5hbWUgb2Yg
ZGVjbGFyYXRpb24uCi0gICAgICAgICAgICBhdXRvIHByb3BlcnR5TmFtZSA9IENTU1Byb3BlcnR5
SURUb0lETEF0dHJpYnV0ZU5hbWUoY3NzUHJvcGVydHlJZCk7CisgICAgICAgICAgICBhdXRvIHBy
b3BlcnR5TmFtZSA9IENTU1Byb3BlcnR5SURUb0lETEF0dHJpYnV0ZU5hbWUoaXQtPmtleSk7CiAg
ICAgICAgICAgICAvLyAyLiBMZXQgSURMIHZhbHVlIGJlIHRoZSByZXN1bHQgb2Ygc2VyaWFsaXpp
bmcgdGhlIHByb3BlcnR5IHZhbHVlIG9mIGRlY2xhcmF0aW9uIGJ5IHBhc3NpbmcgZGVjbGFyYXRp
b24gdG8gdGhlIGFsZ29yaXRobSB0byBzZXJpYWxpemUgYSBDU1MgdmFsdWUuCi0gICAgICAgICAg
ICBhdXRvIGlkbFZhbHVlID0gY29tcHV0ZWRTdHlsZUV4dHJhY3Rvci52YWx1ZUZvclByb3BlcnR5
aW5TdHlsZShzdHlsZSwgY3NzUHJvcGVydHlJZCktPmNzc1RleHQoKTsKICAgICAgICAgICAgIC8v
IDMuIExldCB2YWx1ZSBiZSB0aGUgcmVzdWx0IG9mIGNvbnZlcnRpbmcgSURMIHZhbHVlIHRvIGFu
IEVDTUFTY3JpcHQgU3RyaW5nIHZhbHVlLgotICAgICAgICAgICAgYXV0byB2YWx1ZSA9IHRvSlM8
SURMRE9NU3RyaW5nPihzdGF0ZSwgaWRsVmFsdWUpOworICAgICAgICAgICAgYXV0byB2YWx1ZSA9
IHRvSlM8SURMRE9NU3RyaW5nPihzdGF0ZSwgaXQtPnZhbHVlKTsKICAgICAgICAgICAgIC8vIDQu
IENhbGwgdGhlIFtbRGVmaW5lT3duUHJvcGVydHldXSBpbnRlcm5hbCBtZXRob2Qgb24gb3V0cHV0
IGtleWZyYW1lIHdpdGggcHJvcGVydHkgbmFtZSBwcm9wZXJ0eSBuYW1lLAogICAgICAgICAgICAg
Ly8gICAgUHJvcGVydHkgRGVzY3JpcHRvciB7IFtbV3JpdGFibGVdXTogdHJ1ZSwgW1tFbnVtZXJh
YmxlXV06IHRydWUsIFtbQ29uZmlndXJhYmxlXV06IHRydWUsIFtbVmFsdWVdXTogdmFsdWUgfSBh
bmQgQm9vbGVhbiBmbGFnIGZhbHNlLgogICAgICAgICAgICAgSlNPYmplY3Q6OmRlZmluZU93blBy
b3BlcnR5KG91dHB1dEtleWZyYW1lLCAmc3RhdGUsIEF0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUp
LmltcGwoKSwgUHJvcGVydHlEZXNjcmlwdG9yKHZhbHVlLCAwKSwgZmFsc2UpOwpAQCAtNTA1LDcg
KzUyMSw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEtleWZyYW1lRWZmZWN0UmVhZE9ubHk6OnByb2Nl
c3NLZXlmcmFtZXMoRXhlY1N0YXRlJiBzdGF0ZSwgU3RyCiAgICAgYXV0byBzY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgLy8gMi4gTGV0IHByb2Nlc3NlZCBrZXlmcmFtZXMg
YmUgYW4gZW1wdHkgc2VxdWVuY2Ugb2Yga2V5ZnJhbWVzLgotICAgIFZlY3RvcjxQcm9jZXNzZWRL
ZXlmcmFtZT4gcHJvY2Vzc2VkS2V5ZnJhbWVzOworICAgIFZlY3RvcjxQYXJzZWRLZXlmcmFtZT4g
cGFyc2VkS2V5ZnJhbWVzOwogCiAgICAgLy8gMy4gTGV0IG1ldGhvZCBiZSB0aGUgcmVzdWx0IG9m
IEdldE1ldGhvZChvYmplY3QsIEBAaXRlcmF0b3IpLgogICAgIGF1dG8gbWV0aG9kID0ga2V5ZnJh
bWVzSW5wdXQuZ2V0KCktPmdldCgmc3RhdGUsIHZtLnByb3BlcnR5TmFtZXMtPml0ZXJhdG9yU3lt
Ym9sKTsKQEAgLTUxNiwxNSArNTMyLDE1IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEtleWZyYW1lRWZm
ZWN0UmVhZE9ubHk6OnByb2Nlc3NLZXlmcmFtZXMoRXhlY1N0YXRlJiBzdGF0ZSwgU3RyCiAgICAg
Ly8gNS4gUGVyZm9ybSB0aGUgc3RlcHMgY29ycmVzcG9uZGluZyB0byB0aGUgZmlyc3QgbWF0Y2hp
bmcgY29uZGl0aW9uIGZyb20gYmVsb3csCiAgICAgVmVjdG9yPFN0cmluZz4gdW51c2VkRWFzaW5n
czsKICAgICBpZiAoIW1ldGhvZC5pc1VuZGVmaW5lZCgpKQotICAgICAgICBwcm9jZXNzSXRlcmFi
bGVLZXlmcmFtZXMoc3RhdGUsIFdURk1vdmUoa2V5ZnJhbWVzSW5wdXQpLCBXVEZNb3ZlKG1ldGhv
ZCksIHByb2Nlc3NlZEtleWZyYW1lcyk7CisgICAgICAgIHByb2Nlc3NJdGVyYWJsZUtleWZyYW1l
cyhzdGF0ZSwgV1RGTW92ZShrZXlmcmFtZXNJbnB1dCksIFdURk1vdmUobWV0aG9kKSwgcGFyc2Vk
S2V5ZnJhbWVzKTsKICAgICBlbHNlCi0gICAgICAgIHByb2Nlc3NQcm9wZXJ0eUluZGV4ZWRLZXlm
cmFtZXMoc3RhdGUsIFdURk1vdmUoa2V5ZnJhbWVzSW5wdXQpLCBwcm9jZXNzZWRLZXlmcmFtZXMs
IHVudXNlZEVhc2luZ3MpOworICAgICAgICBwcm9jZXNzUHJvcGVydHlJbmRleGVkS2V5ZnJhbWVz
KHN0YXRlLCBXVEZNb3ZlKGtleWZyYW1lc0lucHV0KSwgcGFyc2VkS2V5ZnJhbWVzLCB1bnVzZWRF
YXNpbmdzKTsKIAogICAgIC8vIDYuIElmIHByb2Nlc3NlZCBrZXlmcmFtZXMgaXMgbm90IGxvb3Nl
bHkgc29ydGVkIGJ5IG9mZnNldCwgdGhyb3cgYSBUeXBlRXJyb3IgYW5kIGFib3J0IHRoZXNlIHN0
ZXBzLgogICAgIC8vIDcuIElmIHRoZXJlIGV4aXN0IGFueSBrZXlmcmFtZSBpbiBwcm9jZXNzZWQg
a2V5ZnJhbWVzIHdob3NlIGtleWZyYW1lIG9mZnNldCBpcyBub24tbnVsbCBhbmQgbGVzcyB0aGFu
CiAgICAgLy8gICAgemVybyBvciBncmVhdGVyIHRoYW4gb25lLCB0aHJvdyBhIFR5cGVFcnJvciBh
bmQgYWJvcnQgdGhlc2Ugc3RlcHMuCiAgICAgZG91YmxlIGxhc3ROb25OdWxsT2Zmc2V0ID0gLTE7
Ci0gICAgZm9yIChhdXRvJiBrZXlmcmFtZSA6IHByb2Nlc3NlZEtleWZyYW1lcykgeworICAgIGZv
ciAoYXV0byYga2V5ZnJhbWUgOiBwYXJzZWRLZXlmcmFtZXMpIHsKICAgICAgICAgaWYgKCFrZXlm
cmFtZS5vZmZzZXQpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgYXV0byBvZmZzZXQg
PSBrZXlmcmFtZS5vZmZzZXQudmFsdWUoKTsKQEAgLTUzNSw0MSArNTUxLDIyIEBAIEV4Y2VwdGlv
bk9yPHZvaWQ+IEtleWZyYW1lRWZmZWN0UmVhZE9ubHk6OnByb2Nlc3NLZXlmcmFtZXMoRXhlY1N0
YXRlJiBzdGF0ZSwgU3RyCiAKICAgICAvLyBXZSB0YWtlIGEgc2xpZ2h0IGRldG91ciBmcm9tIHRo
ZSBzcGVjIHRleHQgYW5kIGNvbXB1dGUgdGhlIG1pc3Npbmcga2V5ZnJhbWUgb2Zmc2V0cyByaWdo
dCBhd2F5CiAgICAgLy8gc2luY2UgdGhleSBjYW4gYmUgY29tcHV0ZWQgdXAtZnJvbnQuCi0gICAg
Y29tcHV0ZU1pc3NpbmdLZXlmcmFtZU9mZnNldHMocHJvY2Vzc2VkS2V5ZnJhbWVzKTsKKyAgICBj
b21wdXRlTWlzc2luZ0tleWZyYW1lT2Zmc2V0cyhwYXJzZWRLZXlmcmFtZXMpOwogCiAgICAgS2V5
ZnJhbWVMaXN0IGtleWZyYW1lTGlzdCgia2V5ZnJhbWUtZWZmZWN0LSIgKyBjcmVhdGVDYW5vbmlj
YWxVVUlEU3RyaW5nKCkpOwotICAgIFZlY3RvcjxzdGQ6Om9wdGlvbmFsPGRvdWJsZT4+IG9mZnNl
dHM7Ci0gICAgVmVjdG9yPFJlZlB0cjxUaW1pbmdGdW5jdGlvbj4+IHRpbWluZ0Z1bmN0aW9uczsK
LSAgICBWZWN0b3I8c3RkOjpvcHRpb25hbDxDb21wb3NpdGVPcGVyYXRpb24+PiBjb21wb3NpdGVP
cGVyYXRpb25zOwotCiAgICAgU3R5bGVSZXNvbHZlciYgc3R5bGVSZXNvbHZlciA9IG1fdGFyZ2V0
LT5zdHlsZVJlc29sdmVyKCk7Ci0gICAgYXV0byBwYXJzZXJDb250ZXh0ID0gQ1NTUGFyc2VyQ29u
dGV4dChIVE1MU3RhbmRhcmRNb2RlKTsKIAogICAgIC8vIDguIEZvciBlYWNoIGZyYW1lIGluIHBy
b2Nlc3NlZCBrZXlmcmFtZXMsIHBlcmZvcm0gdGhlIGZvbGxvd2luZyBzdGVwczoKLSAgICBmb3Ig
KGF1dG8mIGtleWZyYW1lIDogcHJvY2Vzc2VkS2V5ZnJhbWVzKSB7Ci0gICAgICAgIG9mZnNldHMu
YXBwZW5kKGtleWZyYW1lLm9mZnNldCk7Ci0gICAgICAgIGNvbXBvc2l0ZU9wZXJhdGlvbnMuYXBw
ZW5kKGtleWZyYW1lLmNvbXBvc2l0ZSk7Ci0KKyAgICBmb3IgKGF1dG8mIGtleWZyYW1lIDogcGFy
c2VkS2V5ZnJhbWVzKSB7CiAgICAgICAgIC8vIDEuIEZvciBlYWNoIHByb3BlcnR5LXZhbHVlIHBh
aXIgaW4gZnJhbWUsIHBhcnNlIHRoZSBwcm9wZXJ0eSB2YWx1ZSB1c2luZyB0aGUgc3ludGF4IHNw
ZWNpZmllZCBmb3IgdGhhdCBwcm9wZXJ0eS4KICAgICAgICAgLy8gICAgSWYgdGhlIHByb3BlcnR5
IHZhbHVlIGlzIGludmFsaWQgYWNjb3JkaW5nIHRvIHRoZSBzeW50YXggZm9yIHRoZSBwcm9wZXJ0
eSwgZGlzY2FyZCB0aGUgcHJvcGVydHktdmFsdWUgcGFpci4KICAgICAgICAgLy8gICAgVXNlciBh
Z2VudHMgdGhhdCBwcm92aWRlIHN1cHBvcnQgZm9yIGRpYWdub3NpbmcgZXJyb3JzIGluIGNvbnRl
bnQgU0hPVUxEIHByb2R1Y2UgYW4gYXBwcm9wcmlhdGUgd2FybmluZwogICAgICAgICAvLyAgICBo
aWdobGlnaHRpbmcgdGhlIGludmFsaWQgcHJvcGVydHkgdmFsdWUuCiAKLSAgICAgICAgU3RyaW5n
QnVpbGRlciBjc3NUZXh0OwotICAgICAgICBmb3IgKGF1dG8gaXQgPSBrZXlmcmFtZS5jc3NQcm9w
ZXJ0aWVzQW5kVmFsdWVzLmJlZ2luKCksIGVuZCA9IGtleWZyYW1lLmNzc1Byb3BlcnRpZXNBbmRW
YWx1ZXMuZW5kKCk7IGl0ICE9IGVuZDsgKytpdCkgewotICAgICAgICAgICAgY3NzVGV4dC5hcHBl
bmQoZ2V0UHJvcGVydHlOYW1lU3RyaW5nKGl0LT5rZXkpKTsKLSAgICAgICAgICAgIGNzc1RleHQu
YXBwZW5kTGl0ZXJhbCgiOiAiKTsKLSAgICAgICAgICAgIGNzc1RleHQuYXBwZW5kKGl0LT52YWx1
ZSk7Ci0gICAgICAgICAgICBjc3NUZXh0LmFwcGVuZExpdGVyYWwoIjsgIik7Ci0gICAgICAgIH0K
LQotICAgICAgICBLZXlmcmFtZVZhbHVlIGtleWZyYW1lVmFsdWUoa2V5ZnJhbWUuY29tcHV0ZWRP
ZmZzZXQudmFsdWUoKSwgbnVsbHB0cik7CisgICAgICAgIEtleWZyYW1lVmFsdWUga2V5ZnJhbWVW
YWx1ZShrZXlmcmFtZS5jb21wdXRlZE9mZnNldCwgbnVsbHB0cik7CiAgICAgICAgIGF1dG8gcmVu
ZGVyU3R5bGUgPSBSZW5kZXJTdHlsZTo6Y3JlYXRlUHRyKCk7Ci0gICAgICAgIGF1dG8gc3R5bGVQ
cm9wZXJ0aWVzID0gTXV0YWJsZVN0eWxlUHJvcGVydGllczo6Y3JlYXRlKCk7Ci0gICAgICAgIHN0
eWxlUHJvcGVydGllcy0+cGFyc2VEZWNsYXJhdGlvbihjc3NUZXh0LnRvU3RyaW5nKCksIHBhcnNl
ckNvbnRleHQpOwotICAgICAgICB1bnNpZ25lZCBudW1iZXJPZkNTU1Byb3BlcnRpZXMgPSBzdHls
ZVByb3BlcnRpZXMtPnByb3BlcnR5Q291bnQoKTsKLQotICAgICAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgbnVtYmVyT2ZDU1NQcm9wZXJ0aWVzOyArK2kpIHsKKyAgICAgICAgYXV0byYgc3R5
bGVQcm9wZXJ0aWVzID0ga2V5ZnJhbWUuc3R5bGU7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBzdHlsZVByb3BlcnRpZXMtPnByb3BlcnR5Q291bnQoKTsgKytpKSB7CiAgICAgICAg
ICAgICBhdXRvIGNzc1Byb3BlcnR5SWQgPSBzdHlsZVByb3BlcnRpZXMtPnByb3BlcnR5QXQoaSku
aWQoKTsKICAgICAgICAgICAgIGtleWZyYW1lVmFsdWUuYWRkUHJvcGVydHkoY3NzUHJvcGVydHlJ
ZCk7CiAgICAgICAgICAgICBrZXlmcmFtZUxpc3QuYWRkUHJvcGVydHkoY3NzUHJvcGVydHlJZCk7
CkBAIC01ODYsNyArNTgzLDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gS2V5ZnJhbWVFZmZlY3RSZWFk
T25seTo6cHJvY2Vzc0tleWZyYW1lcyhFeGVjU3RhdGUmIHN0YXRlLCBTdHIKICAgICAgICAgYXV0
byB0aW1pbmdGdW5jdGlvblJlc3VsdCA9IFRpbWluZ0Z1bmN0aW9uOjpjcmVhdGVGcm9tQ1NTVGV4
dChrZXlmcmFtZS5lYXNpbmcpOwogICAgICAgICBpZiAodGltaW5nRnVuY3Rpb25SZXN1bHQuaGFz
RXhjZXB0aW9uKCkpCiAgICAgICAgICAgICByZXR1cm4gdGltaW5nRnVuY3Rpb25SZXN1bHQucmVs
ZWFzZUV4Y2VwdGlvbigpOwotICAgICAgICB0aW1pbmdGdW5jdGlvbnMuYXBwZW5kKHRpbWluZ0Z1
bmN0aW9uUmVzdWx0LnJldHVyblZhbHVlKCkpOworICAgICAgICBrZXlmcmFtZS50aW1pbmdGdW5j
dGlvbiA9IHRpbWluZ0Z1bmN0aW9uUmVzdWx0LnJldHVyblZhbHVlKCk7CiAgICAgfQogCiAgICAg
Ly8gOS4gUGFyc2UgZWFjaCBvZiB0aGUgdmFsdWVzIGluIHVudXNlZCBlYXNpbmdzIHVzaW5nIHRo
ZSBDU1Mgc3ludGF4IGRlZmluZWQgZm9yIGVhc2luZyBwcm9wZXJ0eSBvZiB0aGUKQEAgLTU5OCwx
MCArNTk1LDggQEAgRXhjZXB0aW9uT3I8dm9pZD4gS2V5ZnJhbWVFZmZlY3RSZWFkT25seTo6cHJv
Y2Vzc0tleWZyYW1lcyhFeGVjU3RhdGUmIHN0YXRlLCBTdHIKICAgICAgICAgICAgIHJldHVybiB0
aW1pbmdGdW5jdGlvblJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCk7CiAgICAgfQogCi0gICAgbV9v
ZmZzZXRzID0gV1RGTW92ZShvZmZzZXRzKTsKLSAgICBtX2tleWZyYW1lcyA9IFdURk1vdmUoa2V5
ZnJhbWVMaXN0KTsKLSAgICBtX3RpbWluZ0Z1bmN0aW9ucyA9IFdURk1vdmUodGltaW5nRnVuY3Rp
b25zKTsKLSAgICBtX2NvbXBvc2l0ZU9wZXJhdGlvbnMgPSBXVEZNb3ZlKGNvbXBvc2l0ZU9wZXJh
dGlvbnMpOworICAgIG1fYmxlbmRpbmdLZXlmcmFtZXMgPSBXVEZNb3ZlKGtleWZyYW1lTGlzdCk7
CisgICAgbV9wYXJzZWRLZXlmcmFtZXMgPSBXVEZNb3ZlKHBhcnNlZEtleWZyYW1lcyk7CiAKICAg
ICBjb21wdXRlU3RhY2tpbmdDb250ZXh0SW1wYWN0KCk7CiAKQEAgLTYxMSw3ICs2MDYsNyBAQCBF
eGNlcHRpb25Pcjx2b2lkPiBLZXlmcmFtZUVmZmVjdFJlYWRPbmx5Ojpwcm9jZXNzS2V5ZnJhbWVz
KEV4ZWNTdGF0ZSYgc3RhdGUsIFN0cgogdm9pZCBLZXlmcmFtZUVmZmVjdFJlYWRPbmx5Ojpjb21w
dXRlU3RhY2tpbmdDb250ZXh0SW1wYWN0KCkKIHsKICAgICBtX3RyaWdnZXJzU3RhY2tpbmdDb250
ZXh0ID0gZmFsc2U7Ci0gICAgZm9yIChhdXRvIGNzc1Byb3BlcnR5SWQgOiBtX2tleWZyYW1lcy5w
cm9wZXJ0aWVzKCkpIHsKKyAgICBmb3IgKGF1dG8gY3NzUHJvcGVydHlJZCA6IG1fYmxlbmRpbmdL
ZXlmcmFtZXMucHJvcGVydGllcygpKSB7CiAgICAgICAgIGlmIChXaWxsQ2hhbmdlRGF0YTo6cHJv
cGVydHlDcmVhdGVzU3RhY2tpbmdDb250ZXh0KGNzc1Byb3BlcnR5SWQpKSB7CiAgICAgICAgICAg
ICBtX3RyaWdnZXJzU3RhY2tpbmdDb250ZXh0ID0gdHJ1ZTsKICAgICAgICAgICAgIGJyZWFrOwpA
QCAtNjY0LDcgKzY1OSw3IEBAIHZvaWQgS2V5ZnJhbWVFZmZlY3RSZWFkT25seTo6aW52YWxpZGF0
ZSgpCiAKIGJvb2wgS2V5ZnJhbWVFZmZlY3RSZWFkT25seTo6c2hvdWxkUnVuQWNjZWxlcmF0ZWQo
KQogewotICAgIGZvciAoYXV0byBjc3NQcm9wZXJ0eUlkIDogbV9rZXlmcmFtZXMucHJvcGVydGll
cygpKSB7CisgICAgZm9yIChhdXRvIGNzc1Byb3BlcnR5SWQgOiBtX2JsZW5kaW5nS2V5ZnJhbWVz
LnByb3BlcnRpZXMoKSkgewogICAgICAgICBpZiAoIUNTU1Byb3BlcnR5QW5pbWF0aW9uOjphbmlt
YXRpb25PZlByb3BlcnR5SXNBY2NlbGVyYXRlZChjc3NQcm9wZXJ0eUlkKSkKICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9CkBAIC02NzYsNyArNjcxLDcgQEAgdm9pZCBLZXlmcmFtZUVm
ZmVjdFJlYWRPbmx5OjpnZXRBbmltYXRlZFN0eWxlKHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJTdHls
ZT4mIGFuaW0KICAgICBpZiAoIWFuaW1hdGlvbigpKQogICAgICAgICByZXR1cm47CiAKLSAgICBp
ZiAoIW1fa2V5ZnJhbWVzLnNpemUoKSkKKyAgICBpZiAoIW1fYmxlbmRpbmdLZXlmcmFtZXMuc2l6
ZSgpKQogICAgICAgICByZXR1cm47CiAKICAgICBhdXRvIHByb2dyZXNzID0gaXRlcmF0aW9uUHJv
Z3Jlc3MoKTsKQEAgLTY5Nyw3ICs2OTIsNyBAQCB2b2lkIEtleWZyYW1lRWZmZWN0UmVhZE9ubHk6
OnNldEFuaW1hdGVkUHJvcGVydGllc0luU3R5bGUoUmVuZGVyU3R5bGUmIHRhcmdldFN0eQogICAg
IC8vIFRoZSBlZmZlY3QgdmFsdWUgb2YgYSBzaW5nbGUgcHJvcGVydHkgcmVmZXJlbmNlZCBieSBh
IGtleWZyYW1lIGVmZmVjdCBhcyBvbmUgb2YgaXRzIHRhcmdldCBwcm9wZXJ0aWVzLAogICAgIC8v
IGZvciBhIGdpdmVuIGl0ZXJhdGlvbiBwcm9ncmVzcywgY3VycmVudCBpdGVyYXRpb24gYW5kIHVu
ZGVybHlpbmcgdmFsdWUgaXMgY2FsY3VsYXRlZCBhcyBmb2xsb3dzLgogCi0gICAgZm9yIChhdXRv
IGNzc1Byb3BlcnR5SWQgOiBtX2tleWZyYW1lcy5wcm9wZXJ0aWVzKCkpIHsKKyAgICBmb3IgKGF1
dG8gY3NzUHJvcGVydHlJZCA6IG1fYmxlbmRpbmdLZXlmcmFtZXMucHJvcGVydGllcygpKSB7CiAg
ICAgICAgIC8vIDEuIElmIGl0ZXJhdGlvbiBwcm9ncmVzcyBpcyB1bnJlc29sdmVkIGFib3J0IHRo
aXMgcHJvY2VkdXJlLgogICAgICAgICAvLyAyLiBMZXQgdGFyZ2V0IHByb3BlcnR5IGJlIHRoZSBs
b25naGFuZCBwcm9wZXJ0eSBmb3Igd2hpY2ggdGhlIGVmZmVjdCB2YWx1ZSBpcyB0byBiZSBjYWxj
dWxhdGVkLgogICAgICAgICAvLyAzLiBJZiBhbmltYXRpb24gdHlwZSBvZiB0aGUgdGFyZ2V0IHBy
b3BlcnR5IGlzIG5vdCBhbmltYXRhYmxlIGFib3J0IHRoaXMgcHJvY2VkdXJlIHNpbmNlIHRoZSBl
ZmZlY3QgY2Fubm90IGJlIGFwcGxpZWQuCkBAIC03MDksOCArNzA0LDggQEAgdm9pZCBLZXlmcmFt
ZUVmZmVjdFJlYWRPbmx5OjpzZXRBbmltYXRlZFByb3BlcnRpZXNJblN0eWxlKFJlbmRlclN0eWxl
JiB0YXJnZXRTdHkKICAgICAgICAgdW5zaWduZWQgbnVtYmVyT2ZLZXlmcmFtZXNXaXRoWmVyb09m
ZnNldCA9IDA7CiAgICAgICAgIHVuc2lnbmVkIG51bWJlck9mS2V5ZnJhbWVzV2l0aE9uZU9mZnNl
dCA9IDA7CiAgICAgICAgIFZlY3RvcjxzdGQ6Om9wdGlvbmFsPHNpemVfdD4+IHByb3BlcnR5U3Bl
Y2lmaWNLZXlmcmFtZXM7Ci0gICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9rZXlmcmFt
ZXMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgICAgIGF1dG8mIGtleWZyYW1lID0gbV9rZXlmcmFt
ZXNbaV07CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9ibGVuZGluZ0tleWZyYW1l
cy5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgYXV0byYga2V5ZnJhbWUgPSBtX2JsZW5kaW5n
S2V5ZnJhbWVzW2ldOwogICAgICAgICAgICAgaWYgKCFrZXlmcmFtZS5jb250YWluc1Byb3BlcnR5
KGNzc1Byb3BlcnR5SWQpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAg
YXV0byBvZmZzZXQgPSBrZXlmcmFtZS5rZXkoKTsKQEAgLTc2Niw3ICs3NjEsNyBAQCB2b2lkIEtl
eWZyYW1lRWZmZWN0UmVhZE9ubHk6OnNldEFuaW1hdGVkUHJvcGVydGllc0luU3R5bGUoUmVuZGVy
U3R5bGUmIHRhcmdldFN0eQogICAgICAgICAgICAgICAgIGF1dG8gb2Zmc2V0ID0gWyZdICgpIC0+
IGRvdWJsZSB7CiAgICAgICAgICAgICAgICAgICAgIGlmICgha2V5ZnJhbWVJbmRleCkKICAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBpID8gMSA6IDA7Ci0gICAgICAgICAgICAgICAgICAg
IHJldHVybiBtX2tleWZyYW1lc1trZXlmcmFtZUluZGV4LnZhbHVlKCldLmtleSgpOworICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gbV9ibGVuZGluZ0tleWZyYW1lc1trZXlmcmFtZUluZGV4LnZh
bHVlKCldLmtleSgpOwogICAgICAgICAgICAgICAgIH0oKTsKICAgICAgICAgICAgICAgICBpZiAo
IW9mZnNldCkKICAgICAgICAgICAgICAgICAgICAgaW5kZXhPZkxhc3RLZXlmcmFtZVdpdGhaZXJv
T2Zmc2V0ID0gaTsKQEAgLTc5MiwxOCArNzg3LDE4IEBAIHZvaWQgS2V5ZnJhbWVFZmZlY3RSZWFk
T25seTo6c2V0QW5pbWF0ZWRQcm9wZXJ0aWVzSW5TdHlsZShSZW5kZXJTdHlsZSYgdGFyZ2V0U3R5
CiAgICAgICAgIC8vIDEzLiBJZiB0aGVyZSBpcyBvbmx5IG9uZSBrZXlmcmFtZSBpbiBpbnRlcnZh
bCBlbmRwb2ludHMgcmV0dXJuIHRoZSBwcm9wZXJ0eSB2YWx1ZSBvZiB0YXJnZXQgcHJvcGVydHkg
b24gdGhhdCBrZXlmcmFtZS4KICAgICAgICAgaWYgKGludGVydmFsRW5kcG9pbnRzLnNpemUoKSA9
PSAxKSB7CiAgICAgICAgICAgICBhdXRvIGtleWZyYW1lSW5kZXggPSBpbnRlcnZhbEVuZHBvaW50
c1swXTsKLSAgICAgICAgICAgIGF1dG8ga2V5ZnJhbWVTdHlsZSA9ICFrZXlmcmFtZUluZGV4ID8g
JnRhcmdldFN0eWxlIDogbV9rZXlmcmFtZXNba2V5ZnJhbWVJbmRleC52YWx1ZSgpXS5zdHlsZSgp
OworICAgICAgICAgICAgYXV0byBrZXlmcmFtZVN0eWxlID0gIWtleWZyYW1lSW5kZXggPyAmdGFy
Z2V0U3R5bGUgOiBtX2JsZW5kaW5nS2V5ZnJhbWVzW2tleWZyYW1lSW5kZXgudmFsdWUoKV0uc3R5
bGUoKTsKICAgICAgICAgICAgIENTU1Byb3BlcnR5QW5pbWF0aW9uOjpibGVuZFByb3BlcnRpZXMo
dGhpcywgY3NzUHJvcGVydHlJZCwgJnRhcmdldFN0eWxlLCBrZXlmcmFtZVN0eWxlLCBrZXlmcmFt
ZVN0eWxlLCAwKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKICAgICAgICAg
Ly8gMTQuIExldCBzdGFydCBvZmZzZXQgYmUgdGhlIGNvbXB1dGVkIGtleWZyYW1lIG9mZnNldCBv
ZiB0aGUgZmlyc3Qga2V5ZnJhbWUgaW4gaW50ZXJ2YWwgZW5kcG9pbnRzLgogICAgICAgICBhdXRv
IHN0YXJ0S2V5ZnJhbWVJbmRleCA9IGludGVydmFsRW5kcG9pbnRzLmZpcnN0KCk7Ci0gICAgICAg
IGF1dG8gc3RhcnRPZmZzZXQgPSAhc3RhcnRLZXlmcmFtZUluZGV4ID8gMCA6IG1fa2V5ZnJhbWVz
W3N0YXJ0S2V5ZnJhbWVJbmRleC52YWx1ZSgpXS5rZXkoKTsKKyAgICAgICAgYXV0byBzdGFydE9m
ZnNldCA9ICFzdGFydEtleWZyYW1lSW5kZXggPyAwIDogbV9ibGVuZGluZ0tleWZyYW1lc1tzdGFy
dEtleWZyYW1lSW5kZXgudmFsdWUoKV0ua2V5KCk7CiAKICAgICAgICAgLy8gMTUuIExldCBlbmQg
b2Zmc2V0IGJlIHRoZSBjb21wdXRlZCBrZXlmcmFtZSBvZmZzZXQgb2YgbGFzdCBrZXlmcmFtZSBp
biBpbnRlcnZhbCBlbmRwb2ludHMuCiAgICAgICAgIGF1dG8gZW5kS2V5ZnJhbWVJbmRleCA9IGlu
dGVydmFsRW5kcG9pbnRzLmxhc3QoKTsKLSAgICAgICAgYXV0byBlbmRPZmZzZXQgPSAhZW5kS2V5
ZnJhbWVJbmRleCA/IDEgOiBtX2tleWZyYW1lc1tlbmRLZXlmcmFtZUluZGV4LnZhbHVlKCldLmtl
eSgpOworICAgICAgICBhdXRvIGVuZE9mZnNldCA9ICFlbmRLZXlmcmFtZUluZGV4ID8gMSA6IG1f
YmxlbmRpbmdLZXlmcmFtZXNbZW5kS2V5ZnJhbWVJbmRleC52YWx1ZSgpXS5rZXkoKTsKIAogICAg
ICAgICAvLyAxNi4gTGV0IGludGVydmFsIGRpc3RhbmNlIGJlIHRoZSByZXN1bHQgb2YgZXZhbHVh
dGluZyAoaXRlcmF0aW9uIHByb2dyZXNzIC0gc3RhcnQgb2Zmc2V0KSAvIChlbmQgb2Zmc2V0IC0g
c3RhcnQgb2Zmc2V0KS4KICAgICAgICAgYXV0byBpbnRlcnZhbERpc3RhbmNlID0gKGl0ZXJhdGlv
blByb2dyZXNzIC0gc3RhcnRPZmZzZXQpIC8gKGVuZE9mZnNldCAtIHN0YXJ0T2Zmc2V0KTsKQEAg
LTgxNCwxNSArODA5LDE1IEBAIHZvaWQgS2V5ZnJhbWVFZmZlY3RSZWFkT25seTo6c2V0QW5pbWF0
ZWRQcm9wZXJ0aWVzSW5TdHlsZShSZW5kZXJTdHlsZSYgdGFyZ2V0U3R5CiAgICAgICAgIGlmIChz
dGFydEtleWZyYW1lSW5kZXgpIHsKICAgICAgICAgICAgIGlmIChhdXRvIGl0ZXJhdGlvbkR1cmF0
aW9uID0gdGltaW5nKCktPml0ZXJhdGlvbkR1cmF0aW9uKCkpIHsKICAgICAgICAgICAgICAgICBh
dXRvIHJhbmdlRHVyYXRpb24gPSAoZW5kT2Zmc2V0IC0gc3RhcnRPZmZzZXQpICogaXRlcmF0aW9u
RHVyYXRpb24uc2Vjb25kcygpOwotICAgICAgICAgICAgICAgIHRyYW5zZm9ybWVkRGlzdGFuY2Ug
PSBtX3RpbWluZ0Z1bmN0aW9uc1tzdGFydEtleWZyYW1lSW5kZXgudmFsdWUoKV0tPnRyYW5zZm9y
bVRpbWUoaW50ZXJ2YWxEaXN0YW5jZSwgcmFuZ2VEdXJhdGlvbik7CisgICAgICAgICAgICAgICAg
dHJhbnNmb3JtZWREaXN0YW5jZSA9IG1fcGFyc2VkS2V5ZnJhbWVzW3N0YXJ0S2V5ZnJhbWVJbmRl
eC52YWx1ZSgpXS50aW1pbmdGdW5jdGlvbi0+dHJhbnNmb3JtVGltZShpbnRlcnZhbERpc3RhbmNl
LCByYW5nZUR1cmF0aW9uKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCiAgICAgICAgIC8v
IDE4LiBSZXR1cm4gdGhlIHJlc3VsdCBvZiBhcHBseWluZyB0aGUgaW50ZXJwb2xhdGlvbiBwcm9j
ZWR1cmUgZGVmaW5lZCBieSB0aGUgYW5pbWF0aW9uIHR5cGUgb2YgdGhlIHRhcmdldCBwcm9wZXJ0
eSwgdG8gdGhlIHZhbHVlcyBvZiB0aGUgdGFyZ2V0CiAgICAgICAgIC8vICAgICBwcm9wZXJ0eSBz
cGVjaWZpZWQgb24gdGhlIHR3byBrZXlmcmFtZXMgaW4gaW50ZXJ2YWwgZW5kcG9pbnRzIHRha2lu
ZyB0aGUgZmlyc3Qgc3VjaCB2YWx1ZSBhcyBWc3RhcnQgYW5kIHRoZSBzZWNvbmQgYXMgVmVuZCBh
bmQgdXNpbmcgdHJhbnNmb3JtZWQKICAgICAgICAgLy8gICAgIGRpc3RhbmNlIGFzIHRoZSBpbnRl
cnBvbGF0aW9uIHBhcmFtZXRlciBwLgotICAgICAgICBhdXRvIHN0YXJ0U3R5bGUgPSAhc3RhcnRL
ZXlmcmFtZUluZGV4ID8gJnRhcmdldFN0eWxlIDogbV9rZXlmcmFtZXNbc3RhcnRLZXlmcmFtZUlu
ZGV4LnZhbHVlKCldLnN0eWxlKCk7Ci0gICAgICAgIGF1dG8gZW5kU3R5bGUgPSAhZW5kS2V5ZnJh
bWVJbmRleCA/ICZ0YXJnZXRTdHlsZSA6IG1fa2V5ZnJhbWVzW2VuZEtleWZyYW1lSW5kZXgudmFs
dWUoKV0uc3R5bGUoKTsKKyAgICAgICAgYXV0byBzdGFydFN0eWxlID0gIXN0YXJ0S2V5ZnJhbWVJ
bmRleCA/ICZ0YXJnZXRTdHlsZSA6IG1fYmxlbmRpbmdLZXlmcmFtZXNbc3RhcnRLZXlmcmFtZUlu
ZGV4LnZhbHVlKCldLnN0eWxlKCk7CisgICAgICAgIGF1dG8gZW5kU3R5bGUgPSAhZW5kS2V5ZnJh
bWVJbmRleCA/ICZ0YXJnZXRTdHlsZSA6IG1fYmxlbmRpbmdLZXlmcmFtZXNbZW5kS2V5ZnJhbWVJ
bmRleC52YWx1ZSgpXS5zdHlsZSgpOwogICAgICAgICBDU1NQcm9wZXJ0eUFuaW1hdGlvbjo6Ymxl
bmRQcm9wZXJ0aWVzKHRoaXMsIGNzc1Byb3BlcnR5SWQsICZ0YXJnZXRTdHlsZSwgc3RhcnRTdHls
ZSwgZW5kU3R5bGUsIHRyYW5zZm9ybWVkRGlzdGFuY2UpOwogICAgIH0KIH0KQEAgLTgzNyw5ICs4
MzIsOSBAQCB2b2lkIEtleWZyYW1lRWZmZWN0UmVhZE9ubHk6OnN0YXJ0T3JTdG9wQWNjZWxlcmF0
ZWQoKQogICAgIGlmIChtX3N0YXJ0ZWRBY2NlbGVyYXRlZCkgewogICAgICAgICBhdXRvIGFuaW1h
dGlvbiA9IEFuaW1hdGlvbjo6Y3JlYXRlKCk7CiAgICAgICAgIGFuaW1hdGlvbi0+c2V0RHVyYXRp
b24odGltaW5nKCktPml0ZXJhdGlvbkR1cmF0aW9uKCkuc2Vjb25kcygpKTsKLSAgICAgICAgY29t
cG9zaXRlZFJlbmRlcmVyLT5zdGFydEFuaW1hdGlvbigwLCBhbmltYXRpb24ucHRyKCksIG1fa2V5
ZnJhbWVzKTsKKyAgICAgICAgY29tcG9zaXRlZFJlbmRlcmVyLT5zdGFydEFuaW1hdGlvbigwLCBh
bmltYXRpb24ucHRyKCksIG1fYmxlbmRpbmdLZXlmcmFtZXMpOwogICAgIH0gZWxzZSB7Ci0gICAg
ICAgIGNvbXBvc2l0ZWRSZW5kZXJlci0+YW5pbWF0aW9uRmluaXNoZWQobV9rZXlmcmFtZXMuYW5p
bWF0aW9uTmFtZSgpKTsKKyAgICAgICAgY29tcG9zaXRlZFJlbmRlcmVyLT5hbmltYXRpb25GaW5p
c2hlZChtX2JsZW5kaW5nS2V5ZnJhbWVzLmFuaW1hdGlvbk5hbWUoKSk7CiAgICAgICAgIGlmICgh
bV90YXJnZXQtPmRvY3VtZW50KCkucmVuZGVyVHJlZUJlaW5nRGVzdHJveWVkKCkpCiAgICAgICAg
ICAgICBtX3RhcmdldC0+aW52YWxpZGF0ZVN0eWxlQW5kTGF5ZXJDb21wb3NpdGlvbigpOwogICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdFJl
YWRPbmx5LmggYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3RSZWFkT25s
eS5oCmluZGV4IDcyYjc1NDA0NGU0ZTFlMjc2ZDgzYWRiM2IwOWVhMWRiNmQxNjNhZmIuLmJhZWEw
Y2IzYTA1MzYzM2E2YzIyNTExMDVjNjZkYWFhMWIzMmVlYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdFJlYWRPbmx5LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0UmVhZE9ubHkuaApAQCAtMzQsNiArMzQsNyBA
QAogI2luY2x1ZGUgIktleWZyYW1lRWZmZWN0T3B0aW9ucy5oIgogI2luY2x1ZGUgIktleWZyYW1l
TGlzdC5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCisjaW5jbHVkZSAiU3R5bGVQcm9wZXJ0
aWVzLmgiCiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC02
MywxMiArNjQsMTkgQEAgcHVibGljOgogICAgICAgICBWZWN0b3I8UHJvcGVydHlBbmRWYWx1ZXM+
IHByb3BlcnRpZXNBbmRWYWx1ZXM7CiAgICAgfTsKIAotICAgIHN0cnVjdCBQcm9jZXNzZWRLZXlm
cmFtZSB7Ci0gICAgICAgIFN0cmluZyBlYXNpbmc7CisgICAgc3RydWN0IFBhcnNlZEtleWZyYW1l
IHsKICAgICAgICAgc3RkOjpvcHRpb25hbDxkb3VibGU+IG9mZnNldDsKLSAgICAgICAgc3RkOjpv
cHRpb25hbDxkb3VibGU+IGNvbXB1dGVkT2Zmc2V0OworICAgICAgICBkb3VibGUgY29tcHV0ZWRP
ZmZzZXQ7CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8Q29tcG9zaXRlT3BlcmF0aW9uPiBjb21wb3Np
dGU7Ci0gICAgICAgIEhhc2hNYXA8Q1NTUHJvcGVydHlJRCwgU3RyaW5nPiBjc3NQcm9wZXJ0aWVz
QW5kVmFsdWVzOworICAgICAgICBTdHJpbmcgZWFzaW5nOworICAgICAgICBSZWZQdHI8VGltaW5n
RnVuY3Rpb24+IHRpbWluZ0Z1bmN0aW9uOworICAgICAgICBSZWY8TXV0YWJsZVN0eWxlUHJvcGVy
dGllcz4gc3R5bGU7CisgICAgICAgIEhhc2hNYXA8Q1NTUHJvcGVydHlJRCwgU3RyaW5nPiB1bnBh
cnNlZFN0eWxlOworCisgICAgICAgIFBhcnNlZEtleWZyYW1lKCkKKyAgICAgICAgICAgIDogc3R5
bGUoTXV0YWJsZVN0eWxlUHJvcGVydGllczo6Y3JlYXRlKCkpCisgICAgICAgIHsKKyAgICAgICAg
fQogICAgIH07CiAKICAgICBzdHJ1Y3QgQmFzZUNvbXB1dGVkS2V5ZnJhbWUgewpAQCAtMTEzLDE1
ICsxMjEsMTMgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNvbXB1dGVTdGFja2luZ0NvbnRleHRJbXBh
Y3QoKTsKICAgICBib29sIHNob3VsZFJ1bkFjY2VsZXJhdGVkKCk7CiAKLSAgICBWZWN0b3I8c3Rk
OjpvcHRpb25hbDxkb3VibGU+PiBtX29mZnNldHM7Ci0gICAgVmVjdG9yPFJlZlB0cjxUaW1pbmdG
dW5jdGlvbj4+IG1fdGltaW5nRnVuY3Rpb25zOwotICAgIFZlY3RvcjxzdGQ6Om9wdGlvbmFsPENv
bXBvc2l0ZU9wZXJhdGlvbj4+IG1fY29tcG9zaXRlT3BlcmF0aW9uczsKICAgICBib29sIG1fdHJp
Z2dlcnNTdGFja2luZ0NvbnRleHQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9zdGFydGVkIHsgZmFs
c2UgfTsKICAgICBib29sIG1fc3RhcnRlZEFjY2VsZXJhdGVkIHsgZmFsc2UgfTsKIAogICAgIFJl
ZlB0cjxFbGVtZW50PiBtX3RhcmdldDsKLSAgICBLZXlmcmFtZUxpc3QgbV9rZXlmcmFtZXM7Cisg
ICAgS2V5ZnJhbWVMaXN0IG1fYmxlbmRpbmdLZXlmcmFtZXM7CisgICAgVmVjdG9yPFBhcnNlZEtl
eWZyYW1lPiBtX3BhcnNlZEtleWZyYW1lczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IGNlZDA4ODM0Nzc5OWE5MWFiOGE5Y2Zk
M2YxOTZkNDEzOWViZTRlNWEuLjg3OTNkNDA0ODIxM2YzOTZmNDZkNjU1MzVlZWZlZTZlYzUzNGQ5
MDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE4
LTAyLTE3ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgW1dl
YiBBbmltYXRpb25zXSBTdG9yZSBhbGwgcGFyc2VkIGtleWZyYW1lIGlucHV0IGluZm9ybWF0aW9u
IGluIGEgc2luZ2xlIHN0cnVjdHVyZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTgyOTAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVXBkYXRlIHRlc3QgZXhwZWN0YXRpb25zIHdpdGggcHJvZ3Jlc3Npb25z
IHJlc3VsdGluZyBmcm9tIHJldHVybmluZyB0aGUgc3R5bGUgdmFsdWVzIGFzIHByb3ZpZGVkCisg
ICAgICAgIGJ5IHRoZSBrZXlmcmFtZSBpbnB1dCB3aGVuIGNhbGxpbmcgZ2V0S2V5ZnJhbWVzKCku
IAorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYi1hbmltYXRpb25zL2ludGVyZmFj
ZXMvQW5pbWF0YWJsZS9hbmltYXRlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvd2ViLWFuaW1hdGlvbnMvaW50ZXJmYWNlcy9LZXlmcmFtZUVmZmVjdC9jb25zdHJ1
Y3Rvci1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYi1hbmlt
YXRpb25zL2ludGVyZmFjZXMvS2V5ZnJhbWVFZmZlY3Qvc2V0S2V5ZnJhbWVzLWV4cGVjdGVkLnR4
dDoKKwogMjAxOC0wMi0xNSAgQW50b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29tPgogCiAg
ICAgICAgIFtXZWIgQW5pbWF0aW9uc10gRW5zdXJlIHRoYXQgY2hhbmdpbmcgdGhlIHRpbWluZyBt
b2RlbCB1cGRhdGVzIHN0eWxlcyBzeW5jaHJvbm91c2x5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYi1hbmltYXRpb25zL2ludGVyZmFj
ZXMvQW5pbWF0YWJsZS9hbmltYXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViLWFuaW1hdGlvbnMvaW50ZXJmYWNlcy9BbmltYXRh
YmxlL2FuaW1hdGUtZXhwZWN0ZWQudHh0CmluZGV4IDU3NzEwODQzNGVjMWJmNGNjMjAwNDY2OTQy
ZjlmZWI2YmEwYWZmYTEuLjdmMDNhZjg2Y2VkNDQ1NzNlOWViMTY5ZjY5NGMxN2ZkZjU0YzBkYTkg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2ViLWFuaW1hdGlvbnMvaW50ZXJmYWNlcy9BbmltYXRhYmxlL2FuaW1hdGUtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViLWFu
aW1hdGlvbnMvaW50ZXJmYWNlcy9BbmltYXRhYmxlL2FuaW1hdGUtZXhwZWN0ZWQudHh0CkBAIC04
LDE0ICs4LDE0IEBAIFBBU1MgRWxlbWVudC5hbmltYXRlKCkgYWNjZXB0cyBlbXB0eSBrZXlmcmFt
ZSBsaXN0cyAoaW5wdXQ6IFtdKQogUEFTUyBFbGVtZW50LmFuaW1hdGUoKSBhY2NlcHRzIGVtcHR5
IGtleWZyYW1lIGxpc3RzIChpbnB1dDogbnVsbCkgCiBQQVNTIEVsZW1lbnQuYW5pbWF0ZSgpIGFj
Y2VwdHMgZW1wdHkga2V5ZnJhbWUgbGlzdHMgKGlucHV0OiB1bmRlZmluZWQpIAogUEFTUyBFbGVt
ZW50LmFuaW1hdGUoKSBhY2NlcHRzIGEgb25lIHByb3BlcnR5IHR3byB2YWx1ZSBwcm9wZXJ0eS1p
bmRleGVkIGtleWZyYW1lcyBzcGVjaWZpY2F0aW9uIAotRkFJTCBFbGVtZW50LmFuaW1hdGUoKSBh
Y2NlcHRzIGEgb25lIHNob3J0aGFuZCBwcm9wZXJ0eSB0d28gdmFsdWUgcHJvcGVydHktaW5kZXhl
ZCBrZXlmcmFtZXMgc3BlY2lmaWNhdGlvbiBhc3NlcnRfZXF1YWxzOiBwcm9wZXJ0aWVzIG9uIENv
bXB1dGVkS2V5ZnJhbWUgIzAgc2hvdWxkIG1hdGNoIGV4cGVjdGVkICJjb21wb3NpdGUsY29tcHV0
ZWRPZmZzZXQsZWFzaW5nLG1hcmdpbixvZmZzZXQiIGJ1dCBnb3QgImNvbXBvc2l0ZSxjb21wdXRl
ZE9mZnNldCxlYXNpbmcsbWFyZ2luQm90dG9tLG1hcmdpbkxlZnQsbWFyZ2luUmlnaHQsbWFyZ2lu
VG9wLG9mZnNldCIKLUZBSUwgRWxlbWVudC5hbmltYXRlKCkgYWNjZXB0cyBhIHR3byBwcm9wZXJ0
eSAob25lIHNob3J0aGFuZCBhbmQgb25lIG9mIGl0cyBsb25naGFuZCBjb21wb25lbnRzKSB0d28g
dmFsdWUgcHJvcGVydHktaW5kZXhlZCBrZXlmcmFtZXMgc3BlY2lmaWNhdGlvbiBhc3NlcnRfZXF1
YWxzOiBwcm9wZXJ0aWVzIG9uIENvbXB1dGVkS2V5ZnJhbWUgIzAgc2hvdWxkIG1hdGNoIGV4cGVj
dGVkICJjb21wb3NpdGUsY29tcHV0ZWRPZmZzZXQsZWFzaW5nLG1hcmdpbixtYXJnaW5Ub3Asb2Zm
c2V0IiBidXQgZ290ICJjb21wb3NpdGUsY29tcHV0ZWRPZmZzZXQsZWFzaW5nLG1hcmdpbkJvdHRv
bSxtYXJnaW5MZWZ0LG1hcmdpblJpZ2h0LG1hcmdpblRvcCxvZmZzZXQiCitQQVNTIEVsZW1lbnQu
YW5pbWF0ZSgpIGFjY2VwdHMgYSBvbmUgc2hvcnRoYW5kIHByb3BlcnR5IHR3byB2YWx1ZSBwcm9w
ZXJ0eS1pbmRleGVkIGtleWZyYW1lcyBzcGVjaWZpY2F0aW9uIAorUEFTUyBFbGVtZW50LmFuaW1h
dGUoKSBhY2NlcHRzIGEgdHdvIHByb3BlcnR5IChvbmUgc2hvcnRoYW5kIGFuZCBvbmUgb2YgaXRz
IGxvbmdoYW5kIGNvbXBvbmVudHMpIHR3byB2YWx1ZSBwcm9wZXJ0eS1pbmRleGVkIGtleWZyYW1l
cyBzcGVjaWZpY2F0aW9uIAogUEFTUyBFbGVtZW50LmFuaW1hdGUoKSBhY2NlcHRzIGEgdHdvIHBy
b3BlcnR5IHR3byB2YWx1ZSBwcm9wZXJ0eS1pbmRleGVkIGtleWZyYW1lcyBzcGVjaWZpY2F0aW9u
IAogUEFTUyBFbGVtZW50LmFuaW1hdGUoKSBhY2NlcHRzIGEgdHdvIHByb3BlcnR5IHByb3BlcnR5
LWluZGV4ZWQga2V5ZnJhbWVzIHNwZWNpZmljYXRpb24gd2l0aCBkaWZmZXJlbnQgbnVtYmVycyBv
ZiB2YWx1ZXMgCiBQQVNTIEVsZW1lbnQuYW5pbWF0ZSgpIGFjY2VwdHMgYSBwcm9wZXJ0eS1pbmRl
eGVkIGtleWZyYW1lcyBzcGVjaWZpY2F0aW9uIHdpdGggYW4gaW52YWxpZCB2YWx1ZSAKIFBBU1Mg
RWxlbWVudC5hbmltYXRlKCkgYWNjZXB0cyBhIG9uZSBwcm9wZXJ0eSB0d28gdmFsdWUgcHJvcGVy
dHktaW5kZXhlZCBrZXlmcmFtZXMgc3BlY2lmaWNhdGlvbiB0aGF0IG5lZWRzIHRvIHN0cmluZ2lm
eSBpdHMgdmFsdWVzIAotRkFJTCBFbGVtZW50LmFuaW1hdGUoKSBhY2NlcHRzIGEgcHJvcGVydHkt
aW5kZXhlZCBrZXlmcmFtZXMgc3BlY2lmaWNhdGlvbiB3aXRoIGEgQ1NTIHZhcmlhYmxlIHJlZmVy
ZW5jZSBhc3NlcnRfZXF1YWxzOiB2YWx1ZSBmb3IgJ2xlZnQnIG9uIENvbXB1dGVkS2V5ZnJhbWUg
IzAgZXhwZWN0ZWQgInZhcigtLWRpc3QpIiBidXQgZ290ICJhdXRvIgotRkFJTCBFbGVtZW50LmFu
aW1hdGUoKSBhY2NlcHRzIGEgcHJvcGVydHktaW5kZXhlZCBrZXlmcmFtZXMgc3BlY2lmaWNhdGlv
biB3aXRoIGEgQ1NTIHZhcmlhYmxlIHJlZmVyZW5jZSBpbiBhIHNob3J0aGFuZCBwcm9wZXJ0eSBh
c3NlcnRfZXF1YWxzOiBwcm9wZXJ0aWVzIG9uIENvbXB1dGVkS2V5ZnJhbWUgIzAgc2hvdWxkIG1h
dGNoIGV4cGVjdGVkICJjb21wb3NpdGUsY29tcHV0ZWRPZmZzZXQsZWFzaW5nLG1hcmdpbixvZmZz
ZXQiIGJ1dCBnb3QgImNvbXBvc2l0ZSxjb21wdXRlZE9mZnNldCxlYXNpbmcsbWFyZ2luQm90dG9t
LG1hcmdpbkxlZnQsbWFyZ2luUmlnaHQsbWFyZ2luVG9wLG9mZnNldCIKK1BBU1MgRWxlbWVudC5h
bmltYXRlKCkgYWNjZXB0cyBhIHByb3BlcnR5LWluZGV4ZWQga2V5ZnJhbWVzIHNwZWNpZmljYXRp
b24gd2l0aCBhIENTUyB2YXJpYWJsZSByZWZlcmVuY2UgCitQQVNTIEVsZW1lbnQuYW5pbWF0ZSgp
IGFjY2VwdHMgYSBwcm9wZXJ0eS1pbmRleGVkIGtleWZyYW1lcyBzcGVjaWZpY2F0aW9uIHdpdGgg
YSBDU1MgdmFyaWFibGUgcmVmZXJlbmNlIGluIGEgc2hvcnRoYW5kIHByb3BlcnR5IAogUEFTUyBF
bGVtZW50LmFuaW1hdGUoKSBhY2NlcHRzIGEgb25lIHByb3BlcnR5IG9uZSB2YWx1ZSBwcm9wZXJ0
eS1pbmRleGVkIGtleWZyYW1lcyBzcGVjaWZpY2F0aW9uIAogUEFTUyBFbGVtZW50LmFuaW1hdGUo
KSBhY2NlcHRzIGEgb25lIHByb3BlcnR5IG9uZSBub24tYXJyYXkgdmFsdWUgcHJvcGVydHktaW5k
ZXhlZCBrZXlmcmFtZXMgc3BlY2lmaWNhdGlvbiAKIFBBU1MgRWxlbWVudC5hbmltYXRlKCkgYWNj
ZXB0cyBhIG9uZSBwcm9wZXJ0eSB0d28gdmFsdWUgcHJvcGVydHktaW5kZXhlZCBrZXlmcmFtZXMg
c3BlY2lmaWNhdGlvbiB3aGVyZSB0aGUgZmlyc3QgdmFsdWUgaXMgaW52YWxpZCAKQEAgLTQ3LDEz
ICs0NywxMyBAQCBQQVNTIEVsZW1lbnQuYW5pbWF0ZSgpIGFjY2VwdHMgYSBwcm9wZXJ0eS1pbmRl
eGVkIGtleWZyYW1lIHdpdGggYSBzaW5nbGUtZWxlbWVudAogUEFTUyBFbGVtZW50LmFuaW1hdGUo
KSBhY2NlcHRzIGEgb25lIHByb3BlcnR5IG9uZSBrZXlmcmFtZSBzZXF1ZW5jZSAKIFBBU1MgRWxl
bWVudC5hbmltYXRlKCkgYWNjZXB0cyBhIG9uZSBwcm9wZXJ0eSB0d28ga2V5ZnJhbWUgc2VxdWVu
Y2UgCiBQQVNTIEVsZW1lbnQuYW5pbWF0ZSgpIGFjY2VwdHMgYSB0d28gcHJvcGVydHkgdHdvIGtl
eWZyYW1lIHNlcXVlbmNlIAotRkFJTCBFbGVtZW50LmFuaW1hdGUoKSBhY2NlcHRzIGEgb25lIHNo
b3J0aGFuZCBwcm9wZXJ0eSB0d28ga2V5ZnJhbWUgc2VxdWVuY2UgYXNzZXJ0X2VxdWFsczogcHJv
cGVydGllcyBvbiBDb21wdXRlZEtleWZyYW1lICMwIHNob3VsZCBtYXRjaCBleHBlY3RlZCAiY29t
cG9zaXRlLGNvbXB1dGVkT2Zmc2V0LGVhc2luZyxtYXJnaW4sb2Zmc2V0IiBidXQgZ290ICJjb21w
b3NpdGUsY29tcHV0ZWRPZmZzZXQsZWFzaW5nLG1hcmdpbkJvdHRvbSxtYXJnaW5MZWZ0LG1hcmdp
blJpZ2h0LG1hcmdpblRvcCxvZmZzZXQiCi1GQUlMIEVsZW1lbnQuYW5pbWF0ZSgpIGFjY2VwdHMg
YSB0d28gcHJvcGVydHkgKGEgc2hvcnRoYW5kIGFuZCBvbmUgb2YgaXRzIGNvbXBvbmVudCBsb25n
aGFuZHMpIHR3byBrZXlmcmFtZSBzZXF1ZW5jZSBhc3NlcnRfZXF1YWxzOiBwcm9wZXJ0aWVzIG9u
IENvbXB1dGVkS2V5ZnJhbWUgIzAgc2hvdWxkIG1hdGNoIGV4cGVjdGVkICJjb21wb3NpdGUsY29t
cHV0ZWRPZmZzZXQsZWFzaW5nLG1hcmdpbixtYXJnaW5Ub3Asb2Zmc2V0IiBidXQgZ290ICJjb21w
b3NpdGUsY29tcHV0ZWRPZmZzZXQsZWFzaW5nLG1hcmdpbkJvdHRvbSxtYXJnaW5MZWZ0LG1hcmdp
blJpZ2h0LG1hcmdpblRvcCxvZmZzZXQiCitQQVNTIEVsZW1lbnQuYW5pbWF0ZSgpIGFjY2VwdHMg
YSBvbmUgc2hvcnRoYW5kIHByb3BlcnR5IHR3byBrZXlmcmFtZSBzZXF1ZW5jZSAKK1BBU1MgRWxl
bWVudC5hbmltYXRlKCkgYWNjZXB0cyBhIHR3byBwcm9wZXJ0eSAoYSBzaG9ydGhhbmQgYW5kIG9u
ZSBvZiBpdHMgY29tcG9uZW50IGxvbmdoYW5kcykgdHdvIGtleWZyYW1lIHNlcXVlbmNlIAogUEFT
UyBFbGVtZW50LmFuaW1hdGUoKSBhY2NlcHRzIGEgdHdvIHByb3BlcnR5IGtleWZyYW1lIHNlcXVl
bmNlIHdoZXJlIG9uZSBwcm9wZXJ0eSBpcyBtaXNzaW5nIGZyb20gdGhlIGZpcnN0IGtleWZyYW1l
IAogUEFTUyBFbGVtZW50LmFuaW1hdGUoKSBhY2NlcHRzIGEgdHdvIHByb3BlcnR5IGtleWZyYW1l
IHNlcXVlbmNlIHdoZXJlIG9uZSBwcm9wZXJ0eSBpcyBtaXNzaW5nIGZyb20gdGhlIGxhc3Qga2V5
ZnJhbWUgCiBQQVNTIEVsZW1lbnQuYW5pbWF0ZSgpIGFjY2VwdHMgYSBvbmUgcHJvcGVydHkgdHdv
IGtleWZyYW1lIHNlcXVlbmNlIHRoYXQgbmVlZHMgdG8gc3RyaW5naWZ5IGl0cyB2YWx1ZXMgCi1G
QUlMIEVsZW1lbnQuYW5pbWF0ZSgpIGFjY2VwdHMgYSBrZXlmcmFtZSBzZXF1ZW5jZSB3aXRoIGEg
Q1NTIHZhcmlhYmxlIHJlZmVyZW5jZSBhc3NlcnRfZXF1YWxzOiB2YWx1ZSBmb3IgJ2xlZnQnIG9u
IENvbXB1dGVkS2V5ZnJhbWUgIzAgZXhwZWN0ZWQgInZhcigtLWRpc3QpIiBidXQgZ290ICJhdXRv
IgotRkFJTCBFbGVtZW50LmFuaW1hdGUoKSBhY2NlcHRzIGEga2V5ZnJhbWUgc2VxdWVuY2Ugd2l0
aCBhIENTUyB2YXJpYWJsZSByZWZlcmVuY2UgaW4gYSBzaG9ydGhhbmQgcHJvcGVydHkgYXNzZXJ0
X2VxdWFsczogcHJvcGVydGllcyBvbiBDb21wdXRlZEtleWZyYW1lICMwIHNob3VsZCBtYXRjaCBl
eHBlY3RlZCAiY29tcG9zaXRlLGNvbXB1dGVkT2Zmc2V0LGVhc2luZyxtYXJnaW4sb2Zmc2V0IiBi
dXQgZ290ICJjb21wb3NpdGUsY29tcHV0ZWRPZmZzZXQsZWFzaW5nLG1hcmdpbkJvdHRvbSxtYXJn
aW5MZWZ0LG1hcmdpblJpZ2h0LG1hcmdpblRvcCxvZmZzZXQiCitQQVNTIEVsZW1lbnQuYW5pbWF0
ZSgpIGFjY2VwdHMgYSBrZXlmcmFtZSBzZXF1ZW5jZSB3aXRoIGEgQ1NTIHZhcmlhYmxlIHJlZmVy
ZW5jZSAKK1BBU1MgRWxlbWVudC5hbmltYXRlKCkgYWNjZXB0cyBhIGtleWZyYW1lIHNlcXVlbmNl
IHdpdGggYSBDU1MgdmFyaWFibGUgcmVmZXJlbmNlIGluIGEgc2hvcnRoYW5kIHByb3BlcnR5IAog
RkFJTCBFbGVtZW50LmFuaW1hdGUoKSBhY2NlcHRzIGEga2V5ZnJhbWUgc2VxdWVuY2Ugd2l0aCBk
dXBsaWNhdGUgdmFsdWVzIGZvciBhIGdpdmVuIGludGVyaW9yIG9mZnNldCBUeXBlIGVycm9yCiBG
QUlMIEVsZW1lbnQuYW5pbWF0ZSgpIGFjY2VwdHMgYSBrZXlmcmFtZSBzZXF1ZW5jZSB3aXRoIGR1
cGxpY2F0ZSB2YWx1ZXMgZm9yIG9mZnNldHMgMCBhbmQgMSBUeXBlIGVycm9yCiBGQUlMIEVsZW1l
bnQuYW5pbWF0ZSgpIGFjY2VwdHMgYSB0d28gcHJvcGVydHkgZm91ciBrZXlmcmFtZSBzZXF1ZW5j
ZSBUeXBlIGVycm9yCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYi1hbmltYXRpb25zL2ludGVyZmFjZXMvS2V5ZnJhbWVFZmZlY3QvY29u
c3RydWN0b3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWItYW5pbWF0aW9ucy9pbnRlcmZhY2VzL0tleWZyYW1lRWZmZWN0L2NvbnN0
cnVjdG9yLWV4cGVjdGVkLnR4dAppbmRleCA2MTNmODU3YzU5NTM0YzA4ODAwYTc3Njc1OGRjMTMy
N2Y5Nzk3NjM0Li40Y2M5NjRkYzNjMGMzMjdkN2VjOTNjZjMwMDhhZDg2MDg2MTM5YWE2IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYi1h
bmltYXRpb25zL2ludGVyZmFjZXMvS2V5ZnJhbWVFZmZlY3QvY29uc3RydWN0b3ItZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
LWFuaW1hdGlvbnMvaW50ZXJmYWNlcy9LZXlmcmFtZUVmZmVjdC9jb25zdHJ1Y3Rvci1leHBlY3Rl
ZC50eHQKQEAgLTcsOSArNyw5IEBAIEZBSUwgY29tcG9zaXRlIHZhbHVlcyBhcmUgcGFyc2VkIGNv
cnJlY3RseSB3aGVuIHBhc3NlZCB0byB0aGUgS2V5ZnJhbWVFZmZlY3RSZWFkCiBQQVNTIGNvbXBv
c2l0ZSB2YWx1ZSBpcyBudWxsIGlmIHRoZSBjb21wb3NpdGUgb3BlcmF0aW9uIHNwZWNpZmllZCBv
biB0aGUga2V5ZnJhbWUgZWZmZWN0IGlzIGJlaW5nIHVzZWQgCiBQQVNTIEEgS2V5ZnJhbWVFZmZl
Y3RSZWFkT25seSBjYW4gYmUgY29uc3RydWN0ZWQgd2l0aCBhIG9uZSBwcm9wZXJ0eSB0d28gdmFs
dWUgcHJvcGVydHktaW5kZXhlZCBrZXlmcmFtZXMgc3BlY2lmaWNhdGlvbiAKIEZBSUwgQSBLZXlm
cmFtZUVmZmVjdFJlYWRPbmx5IGNvbnN0cnVjdGVkIHdpdGggYSBvbmUgcHJvcGVydHkgdHdvIHZh
bHVlIHByb3BlcnR5LWluZGV4ZWQga2V5ZnJhbWVzIHNwZWNpZmljYXRpb24gcm91bmR0cmlwcyBU
eXBlIGVycm9yCi1GQUlMIEEgS2V5ZnJhbWVFZmZlY3RSZWFkT25seSBjYW4gYmUgY29uc3RydWN0
ZWQgd2l0aCBhIG9uZSBzaG9ydGhhbmQgcHJvcGVydHkgdHdvIHZhbHVlIHByb3BlcnR5LWluZGV4
ZWQga2V5ZnJhbWVzIHNwZWNpZmljYXRpb24gYXNzZXJ0X2VxdWFsczogcHJvcGVydGllcyBvbiBD
b21wdXRlZEtleWZyYW1lICMwIHNob3VsZCBtYXRjaCBleHBlY3RlZCAiY29tcG9zaXRlLGNvbXB1
dGVkT2Zmc2V0LGVhc2luZyxtYXJnaW4sb2Zmc2V0IiBidXQgZ290ICJjb21wb3NpdGUsY29tcHV0
ZWRPZmZzZXQsZWFzaW5nLG1hcmdpbkJvdHRvbSxtYXJnaW5MZWZ0LG1hcmdpblJpZ2h0LG1hcmdp
blRvcCxvZmZzZXQiCitQQVNTIEEgS2V5ZnJhbWVFZmZlY3RSZWFkT25seSBjYW4gYmUgY29uc3Ry
dWN0ZWQgd2l0aCBhIG9uZSBzaG9ydGhhbmQgcHJvcGVydHkgdHdvIHZhbHVlIHByb3BlcnR5LWlu
ZGV4ZWQga2V5ZnJhbWVzIHNwZWNpZmljYXRpb24gCiBGQUlMIEEgS2V5ZnJhbWVFZmZlY3RSZWFk
T25seSBjb25zdHJ1Y3RlZCB3aXRoIGEgb25lIHNob3J0aGFuZCBwcm9wZXJ0eSB0d28gdmFsdWUg
cHJvcGVydHktaW5kZXhlZCBrZXlmcmFtZXMgc3BlY2lmaWNhdGlvbiByb3VuZHRyaXBzIFR5cGUg
ZXJyb3IKLUZBSUwgQSBLZXlmcmFtZUVmZmVjdFJlYWRPbmx5IGNhbiBiZSBjb25zdHJ1Y3RlZCB3
aXRoIGEgdHdvIHByb3BlcnR5IChvbmUgc2hvcnRoYW5kIGFuZCBvbmUgb2YgaXRzIGxvbmdoYW5k
IGNvbXBvbmVudHMpIHR3byB2YWx1ZSBwcm9wZXJ0eS1pbmRleGVkIGtleWZyYW1lcyBzcGVjaWZp
Y2F0aW9uIGFzc2VydF9lcXVhbHM6IHByb3BlcnRpZXMgb24gQ29tcHV0ZWRLZXlmcmFtZSAjMCBz
aG91bGQgbWF0Y2ggZXhwZWN0ZWQgImNvbXBvc2l0ZSxjb21wdXRlZE9mZnNldCxlYXNpbmcsbWFy
Z2luLG1hcmdpblRvcCxvZmZzZXQiIGJ1dCBnb3QgImNvbXBvc2l0ZSxjb21wdXRlZE9mZnNldCxl
YXNpbmcsbWFyZ2luQm90dG9tLG1hcmdpbkxlZnQsbWFyZ2luUmlnaHQsbWFyZ2luVG9wLG9mZnNl
dCIKK1BBU1MgQSBLZXlmcmFtZUVmZmVjdFJlYWRPbmx5IGNhbiBiZSBjb25zdHJ1Y3RlZCB3aXRo
IGEgdHdvIHByb3BlcnR5IChvbmUgc2hvcnRoYW5kIGFuZCBvbmUgb2YgaXRzIGxvbmdoYW5kIGNv
bXBvbmVudHMpIHR3byB2YWx1ZSBwcm9wZXJ0eS1pbmRleGVkIGtleWZyYW1lcyBzcGVjaWZpY2F0
aW9uIAogRkFJTCBBIEtleWZyYW1lRWZmZWN0UmVhZE9ubHkgY29uc3RydWN0ZWQgd2l0aCBhIHR3
byBwcm9wZXJ0eSAob25lIHNob3J0aGFuZCBhbmQgb25lIG9mIGl0cyBsb25naGFuZCBjb21wb25l
bnRzKSB0d28gdmFsdWUgcHJvcGVydHktaW5kZXhlZCBrZXlmcmFtZXMgc3BlY2lmaWNhdGlvbiBy
b3VuZHRyaXBzIFR5cGUgZXJyb3IKIFBBU1MgQSBLZXlmcmFtZUVmZmVjdFJlYWRPbmx5IGNhbiBi
ZSBjb25zdHJ1Y3RlZCB3aXRoIGEgdHdvIHByb3BlcnR5IHR3byB2YWx1ZSBwcm9wZXJ0eS1pbmRl
eGVkIGtleWZyYW1lcyBzcGVjaWZpY2F0aW9uIAogRkFJTCBBIEtleWZyYW1lRWZmZWN0UmVhZE9u
bHkgY29uc3RydWN0ZWQgd2l0aCBhIHR3byBwcm9wZXJ0eSB0d28gdmFsdWUgcHJvcGVydHktaW5k
ZXhlZCBrZXlmcmFtZXMgc3BlY2lmaWNhdGlvbiByb3VuZHRyaXBzIFR5cGUgZXJyb3IKQEAgLTE5
LDkgKzE5LDkgQEAgUEFTUyBBIEtleWZyYW1lRWZmZWN0UmVhZE9ubHkgY2FuIGJlIGNvbnN0cnVj
dGVkIHdpdGggYSBwcm9wZXJ0eS1pbmRleGVkIGtleWZyYW0KIEZBSUwgQSBLZXlmcmFtZUVmZmVj
dFJlYWRPbmx5IGNvbnN0cnVjdGVkIHdpdGggYSBwcm9wZXJ0eS1pbmRleGVkIGtleWZyYW1lcyBz
cGVjaWZpY2F0aW9uIHdpdGggYW4gaW52YWxpZCB2YWx1ZSByb3VuZHRyaXBzIFR5cGUgZXJyb3IK
IFBBU1MgQSBLZXlmcmFtZUVmZmVjdFJlYWRPbmx5IGNhbiBiZSBjb25zdHJ1Y3RlZCB3aXRoIGEg
b25lIHByb3BlcnR5IHR3byB2YWx1ZSBwcm9wZXJ0eS1pbmRleGVkIGtleWZyYW1lcyBzcGVjaWZp
Y2F0aW9uIHRoYXQgbmVlZHMgdG8gc3RyaW5naWZ5IGl0cyB2YWx1ZXMgCiBGQUlMIEEgS2V5ZnJh
bWVFZmZlY3RSZWFkT25seSBjb25zdHJ1Y3RlZCB3aXRoIGEgb25lIHByb3BlcnR5IHR3byB2YWx1
ZSBwcm9wZXJ0eS1pbmRleGVkIGtleWZyYW1lcyBzcGVjaWZpY2F0aW9uIHRoYXQgbmVlZHMgdG8g
c3RyaW5naWZ5IGl0cyB2YWx1ZXMgcm91bmR0cmlwcyBUeXBlIGVycm9yCi1GQUlMIEEgS2V5ZnJh
bWVFZmZlY3RSZWFkT25seSBjYW4gYmUgY29uc3RydWN0ZWQgd2l0aCBhIHByb3BlcnR5LWluZGV4
ZWQga2V5ZnJhbWVzIHNwZWNpZmljYXRpb24gd2l0aCBhIENTUyB2YXJpYWJsZSByZWZlcmVuY2Ug
YXNzZXJ0X2VxdWFsczogdmFsdWUgZm9yICdsZWZ0JyBvbiBDb21wdXRlZEtleWZyYW1lICMwIGV4
cGVjdGVkICJ2YXIoLS1kaXN0KSIgYnV0IGdvdCAiYXV0byIKK1BBU1MgQSBLZXlmcmFtZUVmZmVj
dFJlYWRPbmx5IGNhbiBiZSBjb25zdHJ1Y3RlZCB3aXRoIGEgcHJvcGVydHktaW5kZXhlZCBrZXlm
cmFtZXMgc3BlY2lmaWNhdGlvbiB3aXRoIGEgQ1NTIHZhcmlhYmxlIHJlZmVyZW5jZSAKIEZBSUwg
QSBLZXlmcmFtZUVmZmVjdFJlYWRPbmx5IGNvbnN0cnVjdGVkIHdpdGggYSBwcm9wZXJ0eS1pbmRl
eGVkIGtleWZyYW1lcyBzcGVjaWZpY2F0aW9uIHdpdGggYSBDU1MgdmFyaWFibGUgcmVmZXJlbmNl
IHJvdW5kdHJpcHMgVHlwZSBlcnJvcgotRkFJTCBBIEtleWZyYW1lRWZmZWN0UmVhZE9ubHkgY2Fu
IGJlIGNvbnN0cnVjdGVkIHdpdGggYSBwcm9wZXJ0eS1pbmRleGVkIGtleWZyYW1lcyBzcGVjaWZp
Y2F0aW9uIHdpdGggYSBDU1MgdmFyaWFibGUgcmVmZXJlbmNlIGluIGEgc2hvcnRoYW5kIHByb3Bl
cnR5IGFzc2VydF9lcXVhbHM6IHByb3BlcnRpZXMgb24gQ29tcHV0ZWRLZXlmcmFtZSAjMCBzaG91
bGQgbWF0Y2ggZXhwZWN0ZWQgImNvbXBvc2l0ZSxjb21wdXRlZE9mZnNldCxlYXNpbmcsbWFyZ2lu
LG9mZnNldCIgYnV0IGdvdCAiY29tcG9zaXRlLGNvbXB1dGVkT2Zmc2V0LGVhc2luZyxtYXJnaW5C
b3R0b20sbWFyZ2luTGVmdCxtYXJnaW5SaWdodCxtYXJnaW5Ub3Asb2Zmc2V0IgorUEFTUyBBIEtl
eWZyYW1lRWZmZWN0UmVhZE9ubHkgY2FuIGJlIGNvbnN0cnVjdGVkIHdpdGggYSBwcm9wZXJ0eS1p
bmRleGVkIGtleWZyYW1lcyBzcGVjaWZpY2F0aW9uIHdpdGggYSBDU1MgdmFyaWFibGUgcmVmZXJl
bmNlIGluIGEgc2hvcnRoYW5kIHByb3BlcnR5IAogRkFJTCBBIEtleWZyYW1lRWZmZWN0UmVhZE9u
bHkgY29uc3RydWN0ZWQgd2l0aCBhIHByb3BlcnR5LWluZGV4ZWQga2V5ZnJhbWVzIHNwZWNpZmlj
YXRpb24gd2l0aCBhIENTUyB2YXJpYWJsZSByZWZlcmVuY2UgaW4gYSBzaG9ydGhhbmQgcHJvcGVy
dHkgcm91bmR0cmlwcyBUeXBlIGVycm9yCiBQQVNTIEEgS2V5ZnJhbWVFZmZlY3RSZWFkT25seSBj
YW4gYmUgY29uc3RydWN0ZWQgd2l0aCBhIG9uZSBwcm9wZXJ0eSBvbmUgdmFsdWUgcHJvcGVydHkt
aW5kZXhlZCBrZXlmcmFtZXMgc3BlY2lmaWNhdGlvbiAKIEZBSUwgQSBLZXlmcmFtZUVmZmVjdFJl
YWRPbmx5IGNvbnN0cnVjdGVkIHdpdGggYSBvbmUgcHJvcGVydHkgb25lIHZhbHVlIHByb3BlcnR5
LWluZGV4ZWQga2V5ZnJhbWVzIHNwZWNpZmljYXRpb24gcm91bmR0cmlwcyBUeXBlIGVycm9yCkBA
IC04NSw5ICs4NSw5IEBAIFBBU1MgQSBLZXlmcmFtZUVmZmVjdFJlYWRPbmx5IGNhbiBiZSBjb25z
dHJ1Y3RlZCB3aXRoIGEgb25lIHByb3BlcnR5IHR3byBrZXlmcmFtCiBGQUlMIEEgS2V5ZnJhbWVF
ZmZlY3RSZWFkT25seSBjb25zdHJ1Y3RlZCB3aXRoIGEgb25lIHByb3BlcnR5IHR3byBrZXlmcmFt
ZSBzZXF1ZW5jZSByb3VuZHRyaXBzIFR5cGUgZXJyb3IKIFBBU1MgQSBLZXlmcmFtZUVmZmVjdFJl
YWRPbmx5IGNhbiBiZSBjb25zdHJ1Y3RlZCB3aXRoIGEgdHdvIHByb3BlcnR5IHR3byBrZXlmcmFt
ZSBzZXF1ZW5jZSAKIEZBSUwgQSBLZXlmcmFtZUVmZmVjdFJlYWRPbmx5IGNvbnN0cnVjdGVkIHdp
dGggYSB0d28gcHJvcGVydHkgdHdvIGtleWZyYW1lIHNlcXVlbmNlIHJvdW5kdHJpcHMgVHlwZSBl
cnJvcgotRkFJTCBBIEtleWZyYW1lRWZmZWN0UmVhZE9ubHkgY2FuIGJlIGNvbnN0cnVjdGVkIHdp
dGggYSBvbmUgc2hvcnRoYW5kIHByb3BlcnR5IHR3byBrZXlmcmFtZSBzZXF1ZW5jZSBhc3NlcnRf
ZXF1YWxzOiBwcm9wZXJ0aWVzIG9uIENvbXB1dGVkS2V5ZnJhbWUgIzAgc2hvdWxkIG1hdGNoIGV4
cGVjdGVkICJjb21wb3NpdGUsY29tcHV0ZWRPZmZzZXQsZWFzaW5nLG1hcmdpbixvZmZzZXQiIGJ1
dCBnb3QgImNvbXBvc2l0ZSxjb21wdXRlZE9mZnNldCxlYXNpbmcsbWFyZ2luQm90dG9tLG1hcmdp
bkxlZnQsbWFyZ2luUmlnaHQsbWFyZ2luVG9wLG9mZnNldCIKK1BBU1MgQSBLZXlmcmFtZUVmZmVj
dFJlYWRPbmx5IGNhbiBiZSBjb25zdHJ1Y3RlZCB3aXRoIGEgb25lIHNob3J0aGFuZCBwcm9wZXJ0
eSB0d28ga2V5ZnJhbWUgc2VxdWVuY2UgCiBGQUlMIEEgS2V5ZnJhbWVFZmZlY3RSZWFkT25seSBj
b25zdHJ1Y3RlZCB3aXRoIGEgb25lIHNob3J0aGFuZCBwcm9wZXJ0eSB0d28ga2V5ZnJhbWUgc2Vx
dWVuY2Ugcm91bmR0cmlwcyBUeXBlIGVycm9yCi1GQUlMIEEgS2V5ZnJhbWVFZmZlY3RSZWFkT25s
eSBjYW4gYmUgY29uc3RydWN0ZWQgd2l0aCBhIHR3byBwcm9wZXJ0eSAoYSBzaG9ydGhhbmQgYW5k
IG9uZSBvZiBpdHMgY29tcG9uZW50IGxvbmdoYW5kcykgdHdvIGtleWZyYW1lIHNlcXVlbmNlIGFz
c2VydF9lcXVhbHM6IHByb3BlcnRpZXMgb24gQ29tcHV0ZWRLZXlmcmFtZSAjMCBzaG91bGQgbWF0
Y2ggZXhwZWN0ZWQgImNvbXBvc2l0ZSxjb21wdXRlZE9mZnNldCxlYXNpbmcsbWFyZ2luLG1hcmdp
blRvcCxvZmZzZXQiIGJ1dCBnb3QgImNvbXBvc2l0ZSxjb21wdXRlZE9mZnNldCxlYXNpbmcsbWFy
Z2luQm90dG9tLG1hcmdpbkxlZnQsbWFyZ2luUmlnaHQsbWFyZ2luVG9wLG9mZnNldCIKK1BBU1Mg
QSBLZXlmcmFtZUVmZmVjdFJlYWRPbmx5IGNhbiBiZSBjb25zdHJ1Y3RlZCB3aXRoIGEgdHdvIHBy
b3BlcnR5IChhIHNob3J0aGFuZCBhbmQgb25lIG9mIGl0cyBjb21wb25lbnQgbG9uZ2hhbmRzKSB0
d28ga2V5ZnJhbWUgc2VxdWVuY2UgCiBGQUlMIEEgS2V5ZnJhbWVFZmZlY3RSZWFkT25seSBjb25z
dHJ1Y3RlZCB3aXRoIGEgdHdvIHByb3BlcnR5IChhIHNob3J0aGFuZCBhbmQgb25lIG9mIGl0cyBj
b21wb25lbnQgbG9uZ2hhbmRzKSB0d28ga2V5ZnJhbWUgc2VxdWVuY2Ugcm91bmR0cmlwcyBUeXBl
IGVycm9yCiBQQVNTIEEgS2V5ZnJhbWVFZmZlY3RSZWFkT25seSBjYW4gYmUgY29uc3RydWN0ZWQg
d2l0aCBhIHR3byBwcm9wZXJ0eSBrZXlmcmFtZSBzZXF1ZW5jZSB3aGVyZSBvbmUgcHJvcGVydHkg
aXMgbWlzc2luZyBmcm9tIHRoZSBmaXJzdCBrZXlmcmFtZSAKIEZBSUwgQSBLZXlmcmFtZUVmZmVj
dFJlYWRPbmx5IGNvbnN0cnVjdGVkIHdpdGggYSB0d28gcHJvcGVydHkga2V5ZnJhbWUgc2VxdWVu
Y2Ugd2hlcmUgb25lIHByb3BlcnR5IGlzIG1pc3NpbmcgZnJvbSB0aGUgZmlyc3Qga2V5ZnJhbWUg
cm91bmR0cmlwcyBUeXBlIGVycm9yCkBAIC05NSw5ICs5NSw5IEBAIFBBU1MgQSBLZXlmcmFtZUVm
ZmVjdFJlYWRPbmx5IGNhbiBiZSBjb25zdHJ1Y3RlZCB3aXRoIGEgdHdvIHByb3BlcnR5IGtleWZy
YW1lIHNlCiBGQUlMIEEgS2V5ZnJhbWVFZmZlY3RSZWFkT25seSBjb25zdHJ1Y3RlZCB3aXRoIGEg
dHdvIHByb3BlcnR5IGtleWZyYW1lIHNlcXVlbmNlIHdoZXJlIG9uZSBwcm9wZXJ0eSBpcyBtaXNz
aW5nIGZyb20gdGhlIGxhc3Qga2V5ZnJhbWUgcm91bmR0cmlwcyBUeXBlIGVycm9yCiBQQVNTIEEg
S2V5ZnJhbWVFZmZlY3RSZWFkT25seSBjYW4gYmUgY29uc3RydWN0ZWQgd2l0aCBhIG9uZSBwcm9w
ZXJ0eSB0d28ga2V5ZnJhbWUgc2VxdWVuY2UgdGhhdCBuZWVkcyB0byBzdHJpbmdpZnkgaXRzIHZh
bHVlcyAKIEZBSUwgQSBLZXlmcmFtZUVmZmVjdFJlYWRPbmx5IGNvbnN0cnVjdGVkIHdpdGggYSBv
bmUgcHJvcGVydHkgdHdvIGtleWZyYW1lIHNlcXVlbmNlIHRoYXQgbmVlZHMgdG8gc3RyaW5naWZ5
IGl0cyB2YWx1ZXMgcm91bmR0cmlwcyBUeXBlIGVycm9yCi1GQUlMIEEgS2V5ZnJhbWVFZmZlY3RS
ZWFkT25seSBjYW4gYmUgY29uc3RydWN0ZWQgd2l0aCBhIGtleWZyYW1lIHNlcXVlbmNlIHdpdGgg
YSBDU1MgdmFyaWFibGUgcmVmZXJlbmNlIGFzc2VydF9lcXVhbHM6IHZhbHVlIGZvciAnbGVmdCcg
b24gQ29tcHV0ZWRLZXlmcmFtZSAjMCBleHBlY3RlZCAidmFyKC0tZGlzdCkiIGJ1dCBnb3QgImF1
dG8iCitQQVNTIEEgS2V5ZnJhbWVFZmZlY3RSZWFkT25seSBjYW4gYmUgY29uc3RydWN0ZWQgd2l0
aCBhIGtleWZyYW1lIHNlcXVlbmNlIHdpdGggYSBDU1MgdmFyaWFibGUgcmVmZXJlbmNlIAogRkFJ
TCBBIEtleWZyYW1lRWZmZWN0UmVhZE9ubHkgY29uc3RydWN0ZWQgd2l0aCBhIGtleWZyYW1lIHNl
cXVlbmNlIHdpdGggYSBDU1MgdmFyaWFibGUgcmVmZXJlbmNlIHJvdW5kdHJpcHMgVHlwZSBlcnJv
cgotRkFJTCBBIEtleWZyYW1lRWZmZWN0UmVhZE9ubHkgY2FuIGJlIGNvbnN0cnVjdGVkIHdpdGgg
YSBrZXlmcmFtZSBzZXF1ZW5jZSB3aXRoIGEgQ1NTIHZhcmlhYmxlIHJlZmVyZW5jZSBpbiBhIHNo
b3J0aGFuZCBwcm9wZXJ0eSBhc3NlcnRfZXF1YWxzOiBwcm9wZXJ0aWVzIG9uIENvbXB1dGVkS2V5
ZnJhbWUgIzAgc2hvdWxkIG1hdGNoIGV4cGVjdGVkICJjb21wb3NpdGUsY29tcHV0ZWRPZmZzZXQs
ZWFzaW5nLG1hcmdpbixvZmZzZXQiIGJ1dCBnb3QgImNvbXBvc2l0ZSxjb21wdXRlZE9mZnNldCxl
YXNpbmcsbWFyZ2luQm90dG9tLG1hcmdpbkxlZnQsbWFyZ2luUmlnaHQsbWFyZ2luVG9wLG9mZnNl
dCIKK1BBU1MgQSBLZXlmcmFtZUVmZmVjdFJlYWRPbmx5IGNhbiBiZSBjb25zdHJ1Y3RlZCB3aXRo
IGEga2V5ZnJhbWUgc2VxdWVuY2Ugd2l0aCBhIENTUyB2YXJpYWJsZSByZWZlcmVuY2UgaW4gYSBz
aG9ydGhhbmQgcHJvcGVydHkgCiBGQUlMIEEgS2V5ZnJhbWVFZmZlY3RSZWFkT25seSBjb25zdHJ1
Y3RlZCB3aXRoIGEga2V5ZnJhbWUgc2VxdWVuY2Ugd2l0aCBhIENTUyB2YXJpYWJsZSByZWZlcmVu
Y2UgaW4gYSBzaG9ydGhhbmQgcHJvcGVydHkgcm91bmR0cmlwcyBUeXBlIGVycm9yCiBGQUlMIEEg
S2V5ZnJhbWVFZmZlY3RSZWFkT25seSBjYW4gYmUgY29uc3RydWN0ZWQgd2l0aCBhIGtleWZyYW1l
IHNlcXVlbmNlIHdpdGggZHVwbGljYXRlIHZhbHVlcyBmb3IgYSBnaXZlbiBpbnRlcmlvciBvZmZz
ZXQgVHlwZSBlcnJvcgogRkFJTCBBIEtleWZyYW1lRWZmZWN0UmVhZE9ubHkgY29uc3RydWN0ZWQg
d2l0aCBhIGtleWZyYW1lIHNlcXVlbmNlIHdpdGggZHVwbGljYXRlIHZhbHVlcyBmb3IgYSBnaXZl
biBpbnRlcmlvciBvZmZzZXQgcm91bmR0cmlwcyBUeXBlIGVycm9yCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYi1hbmltYXRpb25zL2lu
dGVyZmFjZXMvS2V5ZnJhbWVFZmZlY3Qvc2V0S2V5ZnJhbWVzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViLWFuaW1hdGlvbnMvaW50
ZXJmYWNlcy9LZXlmcmFtZUVmZmVjdC9zZXRLZXlmcmFtZXMtZXhwZWN0ZWQudHh0CmluZGV4IGQ0
MTA2YjFhMTU4ZjE4ZjRlZmM1ZDFhNDJlZThiOGMzNTRkMzY0MGEuLjVkZDQ3OWQ2NTNmZDY2NDA1
OTg5NmIzYTM5M2MwNDI1MmQyMzA2YjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViLWFuaW1hdGlvbnMvaW50ZXJmYWNlcy9LZXlmcmFt
ZUVmZmVjdC9zZXRLZXlmcmFtZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViLWFuaW1hdGlvbnMvaW50ZXJmYWNlcy9LZXlm
cmFtZUVmZmVjdC9zZXRLZXlmcmFtZXMtZXhwZWN0ZWQudHh0CkBAIC0xLDE0ICsxLDE0IEBACiAK
IFBBU1MgS2V5ZnJhbWVzIGNhbiBiZSByZXBsYWNlZCB3aXRoIGFuIGVtcHR5IGtleWZyYW1lIAog
UEFTUyBLZXlmcmFtZXMgY2FuIGJlIHJlcGxhY2VkIHdpdGggYSBvbmUgcHJvcGVydHkgdHdvIHZh
bHVlIHByb3BlcnR5LWluZGV4ZWQga2V5ZnJhbWVzIHNwZWNpZmljYXRpb24gCi1GQUlMIEtleWZy
YW1lcyBjYW4gYmUgcmVwbGFjZWQgd2l0aCBhIG9uZSBzaG9ydGhhbmQgcHJvcGVydHkgdHdvIHZh
bHVlIHByb3BlcnR5LWluZGV4ZWQga2V5ZnJhbWVzIHNwZWNpZmljYXRpb24gYXNzZXJ0X2VxdWFs
czogcHJvcGVydGllcyBvbiBDb21wdXRlZEtleWZyYW1lICMwIHNob3VsZCBtYXRjaCBleHBlY3Rl
ZCAiY29tcG9zaXRlLGNvbXB1dGVkT2Zmc2V0LGVhc2luZyxtYXJnaW4sb2Zmc2V0IiBidXQgZ290
ICJjb21wb3NpdGUsY29tcHV0ZWRPZmZzZXQsZWFzaW5nLG1hcmdpbkJvdHRvbSxtYXJnaW5MZWZ0
LG1hcmdpblJpZ2h0LG1hcmdpblRvcCxvZmZzZXQiCi1GQUlMIEtleWZyYW1lcyBjYW4gYmUgcmVw
bGFjZWQgd2l0aCBhIHR3byBwcm9wZXJ0eSAob25lIHNob3J0aGFuZCBhbmQgb25lIG9mIGl0cyBs
b25naGFuZCBjb21wb25lbnRzKSB0d28gdmFsdWUgcHJvcGVydHktaW5kZXhlZCBrZXlmcmFtZXMg
c3BlY2lmaWNhdGlvbiBhc3NlcnRfZXF1YWxzOiBwcm9wZXJ0aWVzIG9uIENvbXB1dGVkS2V5ZnJh
bWUgIzAgc2hvdWxkIG1hdGNoIGV4cGVjdGVkICJjb21wb3NpdGUsY29tcHV0ZWRPZmZzZXQsZWFz
aW5nLG1hcmdpbixtYXJnaW5Ub3Asb2Zmc2V0IiBidXQgZ290ICJjb21wb3NpdGUsY29tcHV0ZWRP
ZmZzZXQsZWFzaW5nLG1hcmdpbkJvdHRvbSxtYXJnaW5MZWZ0LG1hcmdpblJpZ2h0LG1hcmdpblRv
cCxvZmZzZXQiCitQQVNTIEtleWZyYW1lcyBjYW4gYmUgcmVwbGFjZWQgd2l0aCBhIG9uZSBzaG9y
dGhhbmQgcHJvcGVydHkgdHdvIHZhbHVlIHByb3BlcnR5LWluZGV4ZWQga2V5ZnJhbWVzIHNwZWNp
ZmljYXRpb24gCitQQVNTIEtleWZyYW1lcyBjYW4gYmUgcmVwbGFjZWQgd2l0aCBhIHR3byBwcm9w
ZXJ0eSAob25lIHNob3J0aGFuZCBhbmQgb25lIG9mIGl0cyBsb25naGFuZCBjb21wb25lbnRzKSB0
d28gdmFsdWUgcHJvcGVydHktaW5kZXhlZCBrZXlmcmFtZXMgc3BlY2lmaWNhdGlvbiAKIFBBU1Mg
S2V5ZnJhbWVzIGNhbiBiZSByZXBsYWNlZCB3aXRoIGEgdHdvIHByb3BlcnR5IHR3byB2YWx1ZSBw
cm9wZXJ0eS1pbmRleGVkIGtleWZyYW1lcyBzcGVjaWZpY2F0aW9uIAogUEFTUyBLZXlmcmFtZXMg
Y2FuIGJlIHJlcGxhY2VkIHdpdGggYSB0d28gcHJvcGVydHkgcHJvcGVydHktaW5kZXhlZCBrZXlm
cmFtZXMgc3BlY2lmaWNhdGlvbiB3aXRoIGRpZmZlcmVudCBudW1iZXJzIG9mIHZhbHVlcyAKIFBB
U1MgS2V5ZnJhbWVzIGNhbiBiZSByZXBsYWNlZCB3aXRoIGEgcHJvcGVydHktaW5kZXhlZCBrZXlm
cmFtZXMgc3BlY2lmaWNhdGlvbiB3aXRoIGFuIGludmFsaWQgdmFsdWUgCiBQQVNTIEtleWZyYW1l
cyBjYW4gYmUgcmVwbGFjZWQgd2l0aCBhIG9uZSBwcm9wZXJ0eSB0d28gdmFsdWUgcHJvcGVydHkt
aW5kZXhlZCBrZXlmcmFtZXMgc3BlY2lmaWNhdGlvbiB0aGF0IG5lZWRzIHRvIHN0cmluZ2lmeSBp
dHMgdmFsdWVzIAotRkFJTCBLZXlmcmFtZXMgY2FuIGJlIHJlcGxhY2VkIHdpdGggYSBwcm9wZXJ0
eS1pbmRleGVkIGtleWZyYW1lcyBzcGVjaWZpY2F0aW9uIHdpdGggYSBDU1MgdmFyaWFibGUgcmVm
ZXJlbmNlIGFzc2VydF9lcXVhbHM6IHZhbHVlIGZvciAnbGVmdCcgb24gQ29tcHV0ZWRLZXlmcmFt
ZSAjMCBleHBlY3RlZCAidmFyKC0tZGlzdCkiIGJ1dCBnb3QgImF1dG8iCi1GQUlMIEtleWZyYW1l
cyBjYW4gYmUgcmVwbGFjZWQgd2l0aCBhIHByb3BlcnR5LWluZGV4ZWQga2V5ZnJhbWVzIHNwZWNp
ZmljYXRpb24gd2l0aCBhIENTUyB2YXJpYWJsZSByZWZlcmVuY2UgaW4gYSBzaG9ydGhhbmQgcHJv
cGVydHkgYXNzZXJ0X2VxdWFsczogcHJvcGVydGllcyBvbiBDb21wdXRlZEtleWZyYW1lICMwIHNo
b3VsZCBtYXRjaCBleHBlY3RlZCAiY29tcG9zaXRlLGNvbXB1dGVkT2Zmc2V0LGVhc2luZyxtYXJn
aW4sb2Zmc2V0IiBidXQgZ290ICJjb21wb3NpdGUsY29tcHV0ZWRPZmZzZXQsZWFzaW5nLG1hcmdp
bkJvdHRvbSxtYXJnaW5MZWZ0LG1hcmdpblJpZ2h0LG1hcmdpblRvcCxvZmZzZXQiCitQQVNTIEtl
eWZyYW1lcyBjYW4gYmUgcmVwbGFjZWQgd2l0aCBhIHByb3BlcnR5LWluZGV4ZWQga2V5ZnJhbWVz
IHNwZWNpZmljYXRpb24gd2l0aCBhIENTUyB2YXJpYWJsZSByZWZlcmVuY2UgCitQQVNTIEtleWZy
YW1lcyBjYW4gYmUgcmVwbGFjZWQgd2l0aCBhIHByb3BlcnR5LWluZGV4ZWQga2V5ZnJhbWVzIHNw
ZWNpZmljYXRpb24gd2l0aCBhIENTUyB2YXJpYWJsZSByZWZlcmVuY2UgaW4gYSBzaG9ydGhhbmQg
cHJvcGVydHkgCiBQQVNTIEtleWZyYW1lcyBjYW4gYmUgcmVwbGFjZWQgd2l0aCBhIG9uZSBwcm9w
ZXJ0eSBvbmUgdmFsdWUgcHJvcGVydHktaW5kZXhlZCBrZXlmcmFtZXMgc3BlY2lmaWNhdGlvbiAK
IFBBU1MgS2V5ZnJhbWVzIGNhbiBiZSByZXBsYWNlZCB3aXRoIGEgb25lIHByb3BlcnR5IG9uZSBu
b24tYXJyYXkgdmFsdWUgcHJvcGVydHktaW5kZXhlZCBrZXlmcmFtZXMgc3BlY2lmaWNhdGlvbiAK
IFBBU1MgS2V5ZnJhbWVzIGNhbiBiZSByZXBsYWNlZCB3aXRoIGEgb25lIHByb3BlcnR5IHR3byB2
YWx1ZSBwcm9wZXJ0eS1pbmRleGVkIGtleWZyYW1lcyBzcGVjaWZpY2F0aW9uIHdoZXJlIHRoZSBm
aXJzdCB2YWx1ZSBpcyBpbnZhbGlkIApAQCAtNDAsMTMgKzQwLDEzIEBAIFBBU1MgS2V5ZnJhbWVz
IGNhbiBiZSByZXBsYWNlZCB3aXRoIGEgcHJvcGVydHktaW5kZXhlZCBrZXlmcmFtZSB3aXRoIGEg
c2luZ2xlLWVsCiBQQVNTIEtleWZyYW1lcyBjYW4gYmUgcmVwbGFjZWQgd2l0aCBhIG9uZSBwcm9w
ZXJ0eSBvbmUga2V5ZnJhbWUgc2VxdWVuY2UgCiBQQVNTIEtleWZyYW1lcyBjYW4gYmUgcmVwbGFj
ZWQgd2l0aCBhIG9uZSBwcm9wZXJ0eSB0d28ga2V5ZnJhbWUgc2VxdWVuY2UgCiBQQVNTIEtleWZy
YW1lcyBjYW4gYmUgcmVwbGFjZWQgd2l0aCBhIHR3byBwcm9wZXJ0eSB0d28ga2V5ZnJhbWUgc2Vx
dWVuY2UgCi1GQUlMIEtleWZyYW1lcyBjYW4gYmUgcmVwbGFjZWQgd2l0aCBhIG9uZSBzaG9ydGhh
bmQgcHJvcGVydHkgdHdvIGtleWZyYW1lIHNlcXVlbmNlIGFzc2VydF9lcXVhbHM6IHByb3BlcnRp
ZXMgb24gQ29tcHV0ZWRLZXlmcmFtZSAjMCBzaG91bGQgbWF0Y2ggZXhwZWN0ZWQgImNvbXBvc2l0
ZSxjb21wdXRlZE9mZnNldCxlYXNpbmcsbWFyZ2luLG9mZnNldCIgYnV0IGdvdCAiY29tcG9zaXRl
LGNvbXB1dGVkT2Zmc2V0LGVhc2luZyxtYXJnaW5Cb3R0b20sbWFyZ2luTGVmdCxtYXJnaW5SaWdo
dCxtYXJnaW5Ub3Asb2Zmc2V0IgotRkFJTCBLZXlmcmFtZXMgY2FuIGJlIHJlcGxhY2VkIHdpdGgg
YSB0d28gcHJvcGVydHkgKGEgc2hvcnRoYW5kIGFuZCBvbmUgb2YgaXRzIGNvbXBvbmVudCBsb25n
aGFuZHMpIHR3byBrZXlmcmFtZSBzZXF1ZW5jZSBhc3NlcnRfZXF1YWxzOiBwcm9wZXJ0aWVzIG9u
IENvbXB1dGVkS2V5ZnJhbWUgIzAgc2hvdWxkIG1hdGNoIGV4cGVjdGVkICJjb21wb3NpdGUsY29t
cHV0ZWRPZmZzZXQsZWFzaW5nLG1hcmdpbixtYXJnaW5Ub3Asb2Zmc2V0IiBidXQgZ290ICJjb21w
b3NpdGUsY29tcHV0ZWRPZmZzZXQsZWFzaW5nLG1hcmdpbkJvdHRvbSxtYXJnaW5MZWZ0LG1hcmdp
blJpZ2h0LG1hcmdpblRvcCxvZmZzZXQiCitQQVNTIEtleWZyYW1lcyBjYW4gYmUgcmVwbGFjZWQg
d2l0aCBhIG9uZSBzaG9ydGhhbmQgcHJvcGVydHkgdHdvIGtleWZyYW1lIHNlcXVlbmNlIAorUEFT
UyBLZXlmcmFtZXMgY2FuIGJlIHJlcGxhY2VkIHdpdGggYSB0d28gcHJvcGVydHkgKGEgc2hvcnRo
YW5kIGFuZCBvbmUgb2YgaXRzIGNvbXBvbmVudCBsb25naGFuZHMpIHR3byBrZXlmcmFtZSBzZXF1
ZW5jZSAKIFBBU1MgS2V5ZnJhbWVzIGNhbiBiZSByZXBsYWNlZCB3aXRoIGEgdHdvIHByb3BlcnR5
IGtleWZyYW1lIHNlcXVlbmNlIHdoZXJlIG9uZSBwcm9wZXJ0eSBpcyBtaXNzaW5nIGZyb20gdGhl
IGZpcnN0IGtleWZyYW1lIAogUEFTUyBLZXlmcmFtZXMgY2FuIGJlIHJlcGxhY2VkIHdpdGggYSB0
d28gcHJvcGVydHkga2V5ZnJhbWUgc2VxdWVuY2Ugd2hlcmUgb25lIHByb3BlcnR5IGlzIG1pc3Np
bmcgZnJvbSB0aGUgbGFzdCBrZXlmcmFtZSAKIFBBU1MgS2V5ZnJhbWVzIGNhbiBiZSByZXBsYWNl
ZCB3aXRoIGEgb25lIHByb3BlcnR5IHR3byBrZXlmcmFtZSBzZXF1ZW5jZSB0aGF0IG5lZWRzIHRv
IHN0cmluZ2lmeSBpdHMgdmFsdWVzIAotRkFJTCBLZXlmcmFtZXMgY2FuIGJlIHJlcGxhY2VkIHdp
dGggYSBrZXlmcmFtZSBzZXF1ZW5jZSB3aXRoIGEgQ1NTIHZhcmlhYmxlIHJlZmVyZW5jZSBhc3Nl
cnRfZXF1YWxzOiB2YWx1ZSBmb3IgJ2xlZnQnIG9uIENvbXB1dGVkS2V5ZnJhbWUgIzAgZXhwZWN0
ZWQgInZhcigtLWRpc3QpIiBidXQgZ290ICJhdXRvIgotRkFJTCBLZXlmcmFtZXMgY2FuIGJlIHJl
cGxhY2VkIHdpdGggYSBrZXlmcmFtZSBzZXF1ZW5jZSB3aXRoIGEgQ1NTIHZhcmlhYmxlIHJlZmVy
ZW5jZSBpbiBhIHNob3J0aGFuZCBwcm9wZXJ0eSBhc3NlcnRfZXF1YWxzOiBwcm9wZXJ0aWVzIG9u
IENvbXB1dGVkS2V5ZnJhbWUgIzAgc2hvdWxkIG1hdGNoIGV4cGVjdGVkICJjb21wb3NpdGUsY29t
cHV0ZWRPZmZzZXQsZWFzaW5nLG1hcmdpbixvZmZzZXQiIGJ1dCBnb3QgImNvbXBvc2l0ZSxjb21w
dXRlZE9mZnNldCxlYXNpbmcsbWFyZ2luQm90dG9tLG1hcmdpbkxlZnQsbWFyZ2luUmlnaHQsbWFy
Z2luVG9wLG9mZnNldCIKK1BBU1MgS2V5ZnJhbWVzIGNhbiBiZSByZXBsYWNlZCB3aXRoIGEga2V5
ZnJhbWUgc2VxdWVuY2Ugd2l0aCBhIENTUyB2YXJpYWJsZSByZWZlcmVuY2UgCitQQVNTIEtleWZy
YW1lcyBjYW4gYmUgcmVwbGFjZWQgd2l0aCBhIGtleWZyYW1lIHNlcXVlbmNlIHdpdGggYSBDU1Mg
dmFyaWFibGUgcmVmZXJlbmNlIGluIGEgc2hvcnRoYW5kIHByb3BlcnR5IAogRkFJTCBLZXlmcmFt
ZXMgY2FuIGJlIHJlcGxhY2VkIHdpdGggYSBrZXlmcmFtZSBzZXF1ZW5jZSB3aXRoIGR1cGxpY2F0
ZSB2YWx1ZXMgZm9yIGEgZ2l2ZW4gaW50ZXJpb3Igb2Zmc2V0IFR5cGUgZXJyb3IKIEZBSUwgS2V5
ZnJhbWVzIGNhbiBiZSByZXBsYWNlZCB3aXRoIGEga2V5ZnJhbWUgc2VxdWVuY2Ugd2l0aCBkdXBs
aWNhdGUgdmFsdWVzIGZvciBvZmZzZXRzIDAgYW5kIDEgVHlwZSBlcnJvcgogRkFJTCBLZXlmcmFt
ZXMgY2FuIGJlIHJlcGxhY2VkIHdpdGggYSB0d28gcHJvcGVydHkgZm91ciBrZXlmcmFtZSBzZXF1
ZW5jZSBUeXBlIGVycm9yCg==
</data>
<flag name="review"
          id="352911"
          type_id="1"
          status="+"
          setter="dino"
    />
          </attachment>
      

    </bug>

</bugzilla>