<?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>115678</bug_id>
          
          <creation_ts>2013-05-06 14:33:18 -0700</creation_ts>
          <short_desc>KeyframeValueList::m_values should be Vector of OwnPtrs</short_desc>
          <delta_ts>2013-05-07 10:55:16 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>115652</dup_id>
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>73757</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>eflews.bot</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>philn</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>885397</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-05-06 14:33:18 -0700</bug_when>
    <thetext>KeyframeValueList::m_values should be Vector of OwnPtrs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>885403</commentid>
    <comment_count>1</comment_count>
      <attachid>200817</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-05-06 14:55:55 -0700</bug_when>
    <thetext>Created attachment 200817
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>885404</commentid>
    <comment_count>2</comment_count>
      <attachid>200817</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-05-06 15:00:17 -0700</bug_when>
    <thetext>Comment on attachment 200817
Patch

Attachment 200817 did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/378270</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>885406</commentid>
    <comment_count>3</comment_count>
      <attachid>200817</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-05-06 15:01:30 -0700</bug_when>
    <thetext>Comment on attachment 200817
Patch

Attachment 200817 did not pass qt-ews (qt):
Output: http://webkit-queues.appspot.com/results/281201</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>885483</commentid>
    <comment_count>4</comment_count>
      <attachid>200817</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-05-06 15:40:27 -0700</bug_when>
    <thetext>Comment on attachment 200817
Patch

r-. Lots of red EWS and no justification.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>885759</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-05-07 09:13:04 -0700</bug_when>
    <thetext>I fixed this in bug 115652, but Anders’ patch has some additional refactoring that still might be worthwhile beyond my fix.

*** This bug has been marked as a duplicate of bug 115652 ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>885832</commentid>
    <comment_count>6</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-05-07 10:55:16 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; I fixed this in bug 115652, but Anders’ patch has some additional refactoring that still might be worthwhile beyond my fix.
&gt; 
&gt; *** This bug has been marked as a duplicate of bug 115652 ***

Doing the additional refactoring in https://bugs.webkit.org/show_bug.cgi?id=115738.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>200817</attachid>
            <date>2013-05-06 14:55:55 -0700</date>
            <delta_ts>2013-05-06 15:40:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-115678-20130506145502.patch</filename>
            <type>text/plain</type>
            <size>36486</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ5NjMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2YwMGM2NGFmNmFiNjg5
ZjdmZWVmZjNlNWU4ODU0NGUyODA4ODc2Yi4uNmVkNDUwNmJiMzM5NDllMTIxMzQ1YmY5ZDI4ZWM4
ZjZlNzQxNWZkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDEzLTA1LTA2ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgS2V5ZnJhbWVWYWx1
ZUxpc3Q6Om1fdmFsdWVzIHNob3VsZCBiZSBWZWN0b3Igb2YgT3duUHRycworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE1Njc4CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWxzbywgY2hhbmdlIHNvbWUgZnVu
Y3Rpb24gcGFyYW1ldGVycy9yZXR1cm4gdmFsdWVzIHRoYXQgY2FuIG5ldmVyIGJlIG51bGwgdG8g
Y29uc3QgcmVmZXJlbmNlcy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
TGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6S2V5ZnJhbWVWYWx1ZUxpc3Q6Omluc2VydCk6
CisgICAgICAgIChXZWJDb3JlOjpmaWx0ZXJPcGVyYXRpb25zQXQpOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NMYXllcjo6dmFsaWRhdGVGaWx0ZXJPcGVyYXRpb25zKToKKyAgICAgICAgKFdl
YkNvcmU6Om9wZXJhdGlvbnNBdCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjp2
YWxpZGF0ZVRyYW5zZm9ybU9wZXJhdGlvbnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzTGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvblZhbHVlOjp+QW5p
bWF0aW9uVmFsdWUpOgorICAgICAgICAoQW5pbWF0aW9uVmFsdWUpOgorICAgICAgICAoV2ViQ29y
ZTo6QW5pbWF0aW9uVmFsdWU6OmtleVRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9u
VmFsdWU6OnRpbWluZ0Z1bmN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvblZhbHVl
OjpBbmltYXRpb25WYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdEFuaW1hdGlvblZhbHVl
OjpjcmVhdGUpOgorICAgICAgICAoRmxvYXRBbmltYXRpb25WYWx1ZSk6CisgICAgICAgIChXZWJD
b3JlOjpGbG9hdEFuaW1hdGlvblZhbHVlOjpGbG9hdEFuaW1hdGlvblZhbHVlKToKKyAgICAgICAg
KFdlYkNvcmU6OlRyYW5zZm9ybUFuaW1hdGlvblZhbHVlOjpjcmVhdGUpOgorICAgICAgICAoVHJh
bnNmb3JtQW5pbWF0aW9uVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNmb3JtQW5pbWF0
aW9uVmFsdWU6OnZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlRyYW5zZm9ybUFuaW1hdGlvblZh
bHVlOjpUcmFuc2Zvcm1BbmltYXRpb25WYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWx0ZXJB
bmltYXRpb25WYWx1ZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbHRlckFuaW1hdGlv
blZhbHVlOjp2YWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWx0ZXJBbmltYXRpb25WYWx1ZTo6
RmlsdGVyQW5pbWF0aW9uVmFsdWUpOgorICAgICAgICAoRmlsdGVyQW5pbWF0aW9uVmFsdWUpOgor
ICAgICAgICAoV2ViQ29yZTo6S2V5ZnJhbWVWYWx1ZUxpc3Q6On5LZXlmcmFtZVZhbHVlTGlzdCk6
CisgICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZVZhbHVlTGlzdDo6YXQpOgorICAgICAgICAoS2V5
ZnJhbWVWYWx1ZUxpc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNz
TGF5ZXJDQS5jcHA6CisgICAgICAgIChXZWJDb3JlOjphbmltYXRpb25IYXNTdGVwc1RpbWluZ0Z1
bmN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6Y3JlYXRlVHJhbnNm
b3JtQW5pbWF0aW9uc0Zyb21LZXlmcmFtZXMpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NM
YXllckNBOjpjcmVhdGVGaWx0ZXJBbmltYXRpb25zRnJvbUtleWZyYW1lcyk6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnRpbWluZ0Z1bmN0aW9uRm9yQW5pbWF0aW9uVmFsdWUp
OgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpzZXRBbmltYXRpb25FbmRwb2lu
dHMpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpzZXRBbmltYXRpb25LZXlm
cmFtZXMpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpzZXRUcmFuc2Zvcm1B
bmltYXRpb25FbmRwb2ludHMpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpz
ZXRUcmFuc2Zvcm1BbmltYXRpb25LZXlmcmFtZXMpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NMYXllckNBOjpzZXRGaWx0ZXJBbmltYXRpb25FbmRwb2ludHMpOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NMYXllckNBOjpzZXRGaWx0ZXJBbmltYXRpb25LZXlmcmFtZXMpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oOgorICAgICAgICAoR3Jh
cGhpY3NMYXllckNBKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6c3RhcnRBbmltYXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpzdGFydFRyYW5zaXRpb24p
OgorCiAyMDEzLTA1LTA2ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAg
ICBVc2UgT3duUHRyIGluc3RlYWQgb2YgZGVsZXRlQWxsVmFsdWVzIGluIFNWR0F0dHJpYnV0ZVRv
UHJvcGVydHlNYXAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NMYXllci5jcHAKaW5kZXggYjBlZGFjZTNlNjRhYWU3YmE4MmM1MTJlMmY1MzJkZTdiZjRi
ZDVhYy4uMDFiNmEzZmQ3YTJiMGExZmZhNGQ2Y2Y1NDVhYWYwYzZlNTE3YTgyYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAKQEAg
LTUzLDEwICs1MywxMCBAQCBzdGF0aWMgUmVwYWludE1hcCYgcmVwYWludFJlY3RNYXAoKQogICAg
IHJldHVybiBtYXA7CiB9CiAKLXZvaWQgS2V5ZnJhbWVWYWx1ZUxpc3Q6Omluc2VydChjb25zdCBB
bmltYXRpb25WYWx1ZSogdmFsdWUpCit2b2lkIEtleWZyYW1lVmFsdWVMaXN0OjppbnNlcnQoUGFz
c093blB0cjxjb25zdCBBbmltYXRpb25WYWx1ZT4gdmFsdWUpCiB7CiAgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBtX3ZhbHVlcy5zaXplKCk7ICsraSkgewotICAgICAgICBjb25zdCBBbmltYXRp
b25WYWx1ZSogY3VyVmFsdWUgPSBtX3ZhbHVlc1tpXTsKKyAgICAgICAgY29uc3QgQW5pbWF0aW9u
VmFsdWUqIGN1clZhbHVlID0gbV92YWx1ZXNbaV0uZ2V0KCk7CiAgICAgICAgIGlmIChjdXJWYWx1
ZS0+a2V5VGltZSgpID09IHZhbHVlLT5rZXlUaW1lKCkpIHsKICAgICAgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgLy8gaW5zZXJ0IGFmdGVyCkBAIC00MDksOSArNDA5
LDkgQEAgdm9pZCBHcmFwaGljc0xheWVyOjpkaXN0cmlidXRlT3BhY2l0eShmbG9hdCBhY2N1bXVs
YXRlZE9wYWNpdHkpCiB9CiAKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCi1zdGF0aWMgaW5saW5l
IGNvbnN0IEZpbHRlck9wZXJhdGlvbnMqIGZpbHRlck9wZXJhdGlvbnNBdChjb25zdCBLZXlmcmFt
ZVZhbHVlTGlzdCYgdmFsdWVMaXN0LCBzaXplX3QgaW5kZXgpCitzdGF0aWMgaW5saW5lIGNvbnN0
IEZpbHRlck9wZXJhdGlvbnMmIGZpbHRlck9wZXJhdGlvbnNBdChjb25zdCBLZXlmcmFtZVZhbHVl
TGlzdCYgdmFsdWVMaXN0LCBzaXplX3QgaW5kZXgpCiB7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0
PGNvbnN0IEZpbHRlckFuaW1hdGlvblZhbHVlKj4odmFsdWVMaXN0LmF0KGluZGV4KSktPnZhbHVl
KCk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IEZpbHRlckFuaW1hdGlvblZhbHVlJj4o
dmFsdWVMaXN0LmF0KGluZGV4KSkudmFsdWUoKTsKIH0KIAogaW50IEdyYXBoaWNzTGF5ZXI6OnZh
bGlkYXRlRmlsdGVyT3BlcmF0aW9ucyhjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYgdmFsdWVMaXN0
KQpAQCAtNDI0LDIzICs0MjQsMjMgQEAgaW50IEdyYXBoaWNzTGF5ZXI6OnZhbGlkYXRlRmlsdGVy
T3BlcmF0aW9ucyhjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYgdmFsdWVMaXN0KQogICAgIC8vIEVt
cHR5IGZpbHRlcnMgbWF0Y2ggYW55dGhpbmcsIHNvIGZpbmQgdGhlIGZpcnN0IG5vbi1lbXB0eSBl
bnRyeSBhcyB0aGUgcmVmZXJlbmNlCiAgICAgc2l6ZV90IGZpcnN0SW5kZXggPSAwOwogICAgIGZv
ciAoIDsgZmlyc3RJbmRleCA8IHZhbHVlTGlzdC5zaXplKCk7ICsrZmlyc3RJbmRleCkgewotICAg
ICAgICBpZiAoZmlsdGVyT3BlcmF0aW9uc0F0KHZhbHVlTGlzdCwgZmlyc3RJbmRleCktPm9wZXJh
dGlvbnMoKS5zaXplKCkgPiAwKQorICAgICAgICBpZiAoIWZpbHRlck9wZXJhdGlvbnNBdCh2YWx1
ZUxpc3QsIGZpcnN0SW5kZXgpLm9wZXJhdGlvbnMoKS5pc0VtcHR5KCkpCiAgICAgICAgICAgICBi
cmVhazsKICAgICB9CiAKICAgICBpZiAoZmlyc3RJbmRleCA+PSB2YWx1ZUxpc3Quc2l6ZSgpKQog
ICAgICAgICByZXR1cm4gLTE7CiAKLSAgICBjb25zdCBGaWx0ZXJPcGVyYXRpb25zKiBmaXJzdFZh
bCA9IGZpbHRlck9wZXJhdGlvbnNBdCh2YWx1ZUxpc3QsIGZpcnN0SW5kZXgpOworICAgIGNvbnN0
IEZpbHRlck9wZXJhdGlvbnMmIGZpcnN0VmFsID0gZmlsdGVyT3BlcmF0aW9uc0F0KHZhbHVlTGlz
dCwgZmlyc3RJbmRleCk7CiAgICAgCiAgICAgZm9yIChzaXplX3QgaSA9IGZpcnN0SW5kZXggKyAx
OyBpIDwgdmFsdWVMaXN0LnNpemUoKTsgKytpKSB7Ci0gICAgICAgIGNvbnN0IEZpbHRlck9wZXJh
dGlvbnMqIHZhbCA9IGZpbHRlck9wZXJhdGlvbnNBdCh2YWx1ZUxpc3QsIGkpOworICAgICAgICBj
b25zdCBGaWx0ZXJPcGVyYXRpb25zJiB2YWwgPSBmaWx0ZXJPcGVyYXRpb25zQXQodmFsdWVMaXN0
LCBpKTsKICAgICAgICAgCiAgICAgICAgIC8vIEFuIGVtdHB5IGZpbHRlciBsaXN0IG1hdGNoZXMg
YW55dGhpbmcuCi0gICAgICAgIGlmICh2YWwtPm9wZXJhdGlvbnMoKS5pc0VtcHR5KCkpCisgICAg
ICAgIGlmICh2YWwub3BlcmF0aW9ucygpLmlzRW1wdHkoKSkKICAgICAgICAgICAgIGNvbnRpbnVl
OwogICAgICAgICAKLSAgICAgICAgaWYgKCFmaXJzdFZhbC0+b3BlcmF0aW9uc01hdGNoKCp2YWwp
KQorICAgICAgICBpZiAoIWZpcnN0VmFsLm9wZXJhdGlvbnNNYXRjaCh2YWwpKQogICAgICAgICAg
ICAgcmV0dXJuIC0xOwogICAgIH0KICAgICAKQEAgLTQ1Miw5ICs0NTIsOSBAQCBpbnQgR3JhcGhp
Y3NMYXllcjo6dmFsaWRhdGVGaWx0ZXJPcGVyYXRpb25zKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0
JiB2YWx1ZUxpc3QpCiAvLyBUaGUgaGFzQmlnUm90YXRpb24gZmxhZyB3aWxsIGFsd2F5cyByZXR1
cm4gZmFsc2UgaWYgaXNWYWxpZCBpcyBmYWxzZS4gT3RoZXJ3aXNlIGhhc0JpZ1JvdGF0aW9uIGlz
IAogLy8gdHJ1ZSBpZiB0aGUgcm90YXRpb24gYmV0d2VlbiBhbnkgdHdvIGtleWZyYW1lcyBpcyA+
PSAxODAgZGVncmVlcy4KIAotc3RhdGljIGlubGluZSBjb25zdCBUcmFuc2Zvcm1PcGVyYXRpb25z
KiBvcGVyYXRpb25zQXQoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmIHZhbHVlTGlzdCwgc2l6ZV90
IGluZGV4KQorc3RhdGljIGlubGluZSBjb25zdCBUcmFuc2Zvcm1PcGVyYXRpb25zJiBvcGVyYXRp
b25zQXQoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmIHZhbHVlTGlzdCwgc2l6ZV90IGluZGV4KQog
ewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBUcmFuc2Zvcm1BbmltYXRpb25WYWx1ZSo+
KHZhbHVlTGlzdC5hdChpbmRleCkpLT52YWx1ZSgpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxj
b25zdCBUcmFuc2Zvcm1BbmltYXRpb25WYWx1ZSY+KHZhbHVlTGlzdC5hdChpbmRleCkpLnZhbHVl
KCk7CiB9CiAKIGludCBHcmFwaGljc0xheWVyOjp2YWxpZGF0ZVRyYW5zZm9ybU9wZXJhdGlvbnMo
Y29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmIHZhbHVlTGlzdCwgYm9vbCYgaGFzQmlnUm90YXRpb24p
CkBAIC00NjksMjQgKzQ2OSwyNCBAQCBpbnQgR3JhcGhpY3NMYXllcjo6dmFsaWRhdGVUcmFuc2Zv
cm1PcGVyYXRpb25zKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiB2YWx1ZUxpcwogICAgIC8vIEVt
cHR5IHRyYW5zZm9ybXMgbWF0Y2ggYW55dGhpbmcsIHNvIGZpbmQgdGhlIGZpcnN0IG5vbi1lbXB0
eSBlbnRyeSBhcyB0aGUgcmVmZXJlbmNlLgogICAgIHNpemVfdCBmaXJzdEluZGV4ID0gMDsKICAg
ICBmb3IgKCA7IGZpcnN0SW5kZXggPCB2YWx1ZUxpc3Quc2l6ZSgpOyArK2ZpcnN0SW5kZXgpIHsK
LSAgICAgICAgaWYgKG9wZXJhdGlvbnNBdCh2YWx1ZUxpc3QsIGZpcnN0SW5kZXgpLT5vcGVyYXRp
b25zKCkuc2l6ZSgpID4gMCkKKyAgICAgICAgaWYgKCFvcGVyYXRpb25zQXQodmFsdWVMaXN0LCBm
aXJzdEluZGV4KS5vcGVyYXRpb25zKCkuaXNFbXB0eSgpKQogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgfQogICAgIAogICAgIGlmIChmaXJzdEluZGV4ID49IHZhbHVlTGlzdC5zaXplKCkpCiAgICAg
ICAgIHJldHVybiAtMTsKICAgICAgICAgCi0gICAgY29uc3QgVHJhbnNmb3JtT3BlcmF0aW9ucyog
Zmlyc3RWYWwgPSBvcGVyYXRpb25zQXQodmFsdWVMaXN0LCBmaXJzdEluZGV4KTsKKyAgICBjb25z
dCBUcmFuc2Zvcm1PcGVyYXRpb25zJiBmaXJzdFZhbCA9IG9wZXJhdGlvbnNBdCh2YWx1ZUxpc3Qs
IGZpcnN0SW5kZXgpOwogICAgIAogICAgIC8vIFNlZSBpZiB0aGUga2V5ZnJhbWVzIGFyZSB2YWxp
ZC4KICAgICBmb3IgKHNpemVfdCBpID0gZmlyc3RJbmRleCArIDE7IGkgPCB2YWx1ZUxpc3Quc2l6
ZSgpOyArK2kpIHsKLSAgICAgICAgY29uc3QgVHJhbnNmb3JtT3BlcmF0aW9ucyogdmFsID0gb3Bl
cmF0aW9uc0F0KHZhbHVlTGlzdCwgaSk7CisgICAgICAgIGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlv
bnMmIHZhbCA9IG9wZXJhdGlvbnNBdCh2YWx1ZUxpc3QsIGkpOwogICAgICAgICAKLSAgICAgICAg
Ly8gQW4gZW10cHkgdHJhbnNmb3JtIGxpc3QgbWF0Y2hlcyBhbnl0aGluZy4KLSAgICAgICAgaWYg
KHZhbC0+b3BlcmF0aW9ucygpLmlzRW1wdHkoKSkKKyAgICAgICAgLy8gQW4gZW1wdHkgdHJhbnNm
b3JtIGxpc3QgbWF0Y2hlcyBhbnl0aGluZy4KKyAgICAgICAgaWYgKHZhbC5vcGVyYXRpb25zKCku
aXNFbXB0eSgpKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAKLSAgICAgICAg
aWYgKCFmaXJzdFZhbC0+b3BlcmF0aW9uc01hdGNoKCp2YWwpKQorICAgICAgICBpZiAoIWZpcnN0
VmFsLm9wZXJhdGlvbnNNYXRjaCh2YWwpKQogICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgIH0K
IApAQCAtNDk0LDIyICs0OTQsMjIgQEAgaW50IEdyYXBoaWNzTGF5ZXI6OnZhbGlkYXRlVHJhbnNm
b3JtT3BlcmF0aW9ucyhjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYgdmFsdWVMaXMKICAgICBkb3Vi
bGUgbGFzdFJvdEFuZ2xlID0gMC4wOwogICAgIGRvdWJsZSBtYXhSb3RBbmdsZSA9IC0xLjA7CiAg
ICAgICAgIAotICAgIGZvciAoc2l6ZV90IGogPSAwOyBqIDwgZmlyc3RWYWwtPm9wZXJhdGlvbnMo
KS5zaXplKCk7ICsraikgewotICAgICAgICBUcmFuc2Zvcm1PcGVyYXRpb246Ok9wZXJhdGlvblR5
cGUgdHlwZSA9IGZpcnN0VmFsLT5vcGVyYXRpb25zKCkuYXQoaiktPmdldE9wZXJhdGlvblR5cGUo
KTsKKyAgICBmb3IgKHNpemVfdCBqID0gMDsgaiA8IGZpcnN0VmFsLm9wZXJhdGlvbnMoKS5zaXpl
KCk7ICsraikgeworICAgICAgICBUcmFuc2Zvcm1PcGVyYXRpb246Ok9wZXJhdGlvblR5cGUgdHlw
ZSA9IGZpcnN0VmFsLm9wZXJhdGlvbnMoKS5hdChqKS0+Z2V0T3BlcmF0aW9uVHlwZSgpOwogICAg
ICAgICAKICAgICAgICAgLy8gaWYgdGhpcyBpcyBhIHJvdGF0aW9uIGVudHJ5LCB3ZSBuZWVkIHRv
IHNlZSBpZiBhbnkgYW5nbGUgZGlmZmVyZW5jZXMgYXJlID49IDE4MCBkZWcKICAgICAgICAgaWYg
KHR5cGUgPT0gVHJhbnNmb3JtT3BlcmF0aW9uOjpST1RBVEVfWCB8fAogICAgICAgICAgICAgdHlw
ZSA9PSBUcmFuc2Zvcm1PcGVyYXRpb246OlJPVEFURV9ZIHx8CiAgICAgICAgICAgICB0eXBlID09
IFRyYW5zZm9ybU9wZXJhdGlvbjo6Uk9UQVRFX1ogfHwKICAgICAgICAgICAgIHR5cGUgPT0gVHJh
bnNmb3JtT3BlcmF0aW9uOjpST1RBVEVfM0QpIHsKLSAgICAgICAgICAgIGxhc3RSb3RBbmdsZSA9
IHN0YXRpY19jYXN0PFJvdGF0ZVRyYW5zZm9ybU9wZXJhdGlvbio+KGZpcnN0VmFsLT5vcGVyYXRp
b25zKCkuYXQoaikuZ2V0KCkpLT5hbmdsZSgpOworICAgICAgICAgICAgbGFzdFJvdEFuZ2xlID0g
c3RhdGljX2Nhc3Q8Um90YXRlVHJhbnNmb3JtT3BlcmF0aW9uKj4oZmlyc3RWYWwub3BlcmF0aW9u
cygpLmF0KGopLmdldCgpKS0+YW5nbGUoKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYg
KG1heFJvdEFuZ2xlIDwgMCkKICAgICAgICAgICAgICAgICBtYXhSb3RBbmdsZSA9IGZhYnMobGFz
dFJvdEFuZ2xlKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IGZp
cnN0SW5kZXggKyAxOyBpIDwgdmFsdWVMaXN0LnNpemUoKTsgKytpKSB7Ci0gICAgICAgICAgICAg
ICAgY29uc3QgVHJhbnNmb3JtT3BlcmF0aW9ucyogdmFsID0gb3BlcmF0aW9uc0F0KHZhbHVlTGlz
dCwgaSk7Ci0gICAgICAgICAgICAgICAgZG91YmxlIHJvdEFuZ2xlID0gdmFsLT5vcGVyYXRpb25z
KCkuaXNFbXB0eSgpID8gMCA6IChzdGF0aWNfY2FzdDxSb3RhdGVUcmFuc2Zvcm1PcGVyYXRpb24q
Pih2YWwtPm9wZXJhdGlvbnMoKS5hdChqKS5nZXQoKSktPmFuZ2xlKCkpOworICAgICAgICAgICAg
ICAgIGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlvbnMmIHZhbCA9IG9wZXJhdGlvbnNBdCh2YWx1ZUxp
c3QsIGkpOworICAgICAgICAgICAgICAgIGRvdWJsZSByb3RBbmdsZSA9IHZhbC5vcGVyYXRpb25z
KCkuaXNFbXB0eSgpID8gMCA6IChzdGF0aWNfY2FzdDxSb3RhdGVUcmFuc2Zvcm1PcGVyYXRpb24q
Pih2YWwub3BlcmF0aW9ucygpLmF0KGopLmdldCgpKS0+YW5nbGUoKSk7CiAgICAgICAgICAgICAg
ICAgZG91YmxlIGRpZmZBbmdsZSA9IGZhYnMocm90QW5nbGUgLSBsYXN0Um90QW5nbGUpOwogICAg
ICAgICAgICAgICAgIGlmIChkaWZmQW5nbGUgPiBtYXhSb3RBbmdsZSkKICAgICAgICAgICAgICAg
ICAgICAgbWF4Um90QW5nbGUgPSBkaWZmQW5nbGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKaW5kZXggOTc5YzkzZTdlMWE3MDQ5NDdjZGI3
ZTI0YzJjZDQ3OWRiMTczOTBjOS4uOWY2YmJkMGI1ZjgwOGNmMWI3N2IwMWZkYTAwODZhMGM4OTE5
MTZkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
TGF5ZXIuaApAQCAtNzEsMTggKzcxLDE5IEBAIGNsYXNzIFRyYW5zZm9ybWF0aW9uTWF0cml4Owog
Y2xhc3MgQW5pbWF0aW9uVmFsdWUgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVi
bGljOgorICAgIHZpcnR1YWwgfkFuaW1hdGlvblZhbHVlKCkgeyB9CisKKyAgICBmbG9hdCBrZXlU
aW1lKCkgY29uc3QgeyByZXR1cm4gbV9rZXlUaW1lOyB9CisgICAgY29uc3QgVGltaW5nRnVuY3Rp
b24qIHRpbWluZ0Z1bmN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV90aW1pbmdGdW5jdGlvbi5nZXQo
KTsgfQorICAgIHZpcnR1YWwgUGFzc093blB0cjxBbmltYXRpb25WYWx1ZT4gY2xvbmUoKSBjb25z
dCA9IDA7CisKK3Byb3RlY3RlZDoKICAgICBBbmltYXRpb25WYWx1ZShmbG9hdCBrZXlUaW1lLCBQ
YXNzUmVmUHRyPFRpbWluZ0Z1bmN0aW9uPiB0aW1pbmdGdW5jdGlvbiA9IDApCiAgICAgICAgIDog
bV9rZXlUaW1lKGtleVRpbWUpCiAgICAgewogICAgICAgICBpZiAodGltaW5nRnVuY3Rpb24pCiAg
ICAgICAgICAgICBtX3RpbWluZ0Z1bmN0aW9uID0gdGltaW5nRnVuY3Rpb247CiAgICAgfQotICAg
IAotICAgIHZpcnR1YWwgfkFuaW1hdGlvblZhbHVlKCkgeyB9Ci0KLSAgICBmbG9hdCBrZXlUaW1l
KCkgY29uc3QgeyByZXR1cm4gbV9rZXlUaW1lOyB9Ci0gICAgY29uc3QgVGltaW5nRnVuY3Rpb24q
IHRpbWluZ0Z1bmN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV90aW1pbmdGdW5jdGlvbi5nZXQoKTsg
fQotICAgIHZpcnR1YWwgQW5pbWF0aW9uVmFsdWUqIGNsb25lKCkgY29uc3QgPSAwOwogCiBwcml2
YXRlOgogICAgIGZsb2F0IG1fa2V5VGltZTsKQEAgLTkyLDMzICs5Myw1MCBAQCBwcml2YXRlOgog
Ly8gVXNlZCB0byBzdG9yZSBvbmUgZmxvYXQgdmFsdWUgb2YgYW4gYW5pbWF0aW9uLgogY2xhc3Mg
RmxvYXRBbmltYXRpb25WYWx1ZSA6IHB1YmxpYyBBbmltYXRpb25WYWx1ZSB7CiBwdWJsaWM6Ci0g
ICAgRmxvYXRBbmltYXRpb25WYWx1ZShmbG9hdCBrZXlUaW1lLCBmbG9hdCB2YWx1ZSwgUGFzc1Jl
ZlB0cjxUaW1pbmdGdW5jdGlvbj4gdGltaW5nRnVuY3Rpb24gPSAwKQotICAgICAgICA6IEFuaW1h
dGlvblZhbHVlKGtleVRpbWUsIHRpbWluZ0Z1bmN0aW9uKQotICAgICAgICAsIG1fdmFsdWUodmFs
dWUpCisgICAgc3RhdGljIFBhc3NPd25QdHI8RmxvYXRBbmltYXRpb25WYWx1ZT4gY3JlYXRlKGZs
b2F0IGtleVRpbWUsIGZsb2F0IHZhbHVlLCBQYXNzUmVmUHRyPFRpbWluZ0Z1bmN0aW9uPiB0aW1p
bmdGdW5jdGlvbiA9IDApCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IEZsb2F0
QW5pbWF0aW9uVmFsdWUoa2V5VGltZSwgdmFsdWUsIHRpbWluZ0Z1bmN0aW9uKSk7CisgICAgfQor
CisgICAgdmlydHVhbCBQYXNzT3duUHRyPEFuaW1hdGlvblZhbHVlPiBjbG9uZSgpIGNvbnN0IE9W
RVJSSURFCiAgICAgeworICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IEZsb2F0QW5pbWF0aW9u
VmFsdWUoKnRoaXMpKTsKICAgICB9Ci0gICAgdmlydHVhbCBBbmltYXRpb25WYWx1ZSogY2xvbmUo
KSBjb25zdCB7IHJldHVybiBuZXcgRmxvYXRBbmltYXRpb25WYWx1ZSgqdGhpcyk7IH0KIAogICAg
IGZsb2F0IHZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZTsgfQogCiBwcml2YXRlOgorICAg
IEZsb2F0QW5pbWF0aW9uVmFsdWUoZmxvYXQga2V5VGltZSwgZmxvYXQgdmFsdWUsIFBhc3NSZWZQ
dHI8VGltaW5nRnVuY3Rpb24+IHRpbWluZ0Z1bmN0aW9uKQorICAgICAgICA6IEFuaW1hdGlvblZh
bHVlKGtleVRpbWUsIHRpbWluZ0Z1bmN0aW9uKQorICAgICAgICAsIG1fdmFsdWUodmFsdWUpCisg
ICAgeworICAgIH0KKwogICAgIGZsb2F0IG1fdmFsdWU7CiB9OwogCiAvLyBVc2VkIHRvIHN0b3Jl
IG9uZSB0cmFuc2Zvcm0gdmFsdWUgaW4gYSBrZXlmcmFtZSBsaXN0LgogY2xhc3MgVHJhbnNmb3Jt
QW5pbWF0aW9uVmFsdWUgOiBwdWJsaWMgQW5pbWF0aW9uVmFsdWUgewogcHVibGljOgotICAgIFRy
YW5zZm9ybUFuaW1hdGlvblZhbHVlKGZsb2F0IGtleVRpbWUsIGNvbnN0IFRyYW5zZm9ybU9wZXJh
dGlvbnMqIHZhbHVlID0gMCwgUGFzc1JlZlB0cjxUaW1pbmdGdW5jdGlvbj4gdGltaW5nRnVuY3Rp
b24gPSAwKQotICAgICAgICA6IEFuaW1hdGlvblZhbHVlKGtleVRpbWUsIHRpbWluZ0Z1bmN0aW9u
KQorICAgIHN0YXRpYyBQYXNzT3duUHRyPFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlPiBjcmVhdGUo
ZmxvYXQga2V5VGltZSwgY29uc3QgVHJhbnNmb3JtT3BlcmF0aW9ucyYgdmFsdWUsIFBhc3NSZWZQ
dHI8VGltaW5nRnVuY3Rpb24+IHRpbWluZ0Z1bmN0aW9uID0gMCkKKyAgICB7CisgICAgICAgIHJl
dHVybiBhZG9wdFB0cihuZXcgVHJhbnNmb3JtQW5pbWF0aW9uVmFsdWUoa2V5VGltZSwgdmFsdWUs
IHRpbWluZ0Z1bmN0aW9uKSk7CisgICAgfQorCisgICAgdmlydHVhbCBQYXNzT3duUHRyPEFuaW1h
dGlvblZhbHVlPiBjbG9uZSgpIGNvbnN0IE9WRVJSSURFCiAgICAgewotICAgICAgICBpZiAodmFs
dWUpCi0gICAgICAgICAgICBtX3ZhbHVlID0gKnZhbHVlOworICAgICAgICByZXR1cm4gYWRvcHRQ
dHIobmV3IFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlKCp0aGlzKSk7CiAgICAgfQotICAgIHZpcnR1
YWwgQW5pbWF0aW9uVmFsdWUqIGNsb25lKCkgY29uc3QgeyByZXR1cm4gbmV3IFRyYW5zZm9ybUFu
aW1hdGlvblZhbHVlKCp0aGlzKTsgfQogCi0gICAgY29uc3QgVHJhbnNmb3JtT3BlcmF0aW9ucyog
dmFsdWUoKSBjb25zdCB7IHJldHVybiAmbV92YWx1ZTsgfQorICAgIGNvbnN0IFRyYW5zZm9ybU9w
ZXJhdGlvbnMmIHZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZTsgfQogCiBwcml2YXRlOgor
ICAgIFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlKGZsb2F0IGtleVRpbWUsIGNvbnN0IFRyYW5zZm9y
bU9wZXJhdGlvbnMmIHZhbHVlLCBQYXNzUmVmUHRyPFRpbWluZ0Z1bmN0aW9uPiB0aW1pbmdGdW5j
dGlvbikKKyAgICAgICAgOiBBbmltYXRpb25WYWx1ZShrZXlUaW1lLCB0aW1pbmdGdW5jdGlvbikK
KyAgICAgICAgLCBtX3ZhbHVlKHZhbHVlKQorICAgIHsKKyAgICB9CisKICAgICBUcmFuc2Zvcm1P
cGVyYXRpb25zIG1fdmFsdWU7CiB9OwogCkBAIC0xMjYsMTcgKzE0NCwyNSBAQCBwcml2YXRlOgog
Ly8gVXNlZCB0byBzdG9yZSBvbmUgZmlsdGVyIHZhbHVlIGluIGEga2V5ZnJhbWUgbGlzdC4KIGNs
YXNzIEZpbHRlckFuaW1hdGlvblZhbHVlIDogcHVibGljIEFuaW1hdGlvblZhbHVlIHsKIHB1Ymxp
YzoKLSAgICBGaWx0ZXJBbmltYXRpb25WYWx1ZShmbG9hdCBrZXlUaW1lLCBjb25zdCBGaWx0ZXJP
cGVyYXRpb25zKiB2YWx1ZSA9IDAsIFBhc3NSZWZQdHI8VGltaW5nRnVuY3Rpb24+IHRpbWluZ0Z1
bmN0aW9uID0gMCkKLSAgICAgICAgOiBBbmltYXRpb25WYWx1ZShrZXlUaW1lLCB0aW1pbmdGdW5j
dGlvbikKKyAgICBzdGF0aWMgUGFzc093blB0cjxGaWx0ZXJBbmltYXRpb25WYWx1ZT4gY3JlYXRl
KGZsb2F0IGtleVRpbWUsIGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmIHZhbHVlLCBQYXNzUmVmUHRy
PFRpbWluZ0Z1bmN0aW9uPiB0aW1pbmdGdW5jdGlvbiA9IDApCiAgICAgewotICAgICAgICBpZiAo
dmFsdWUpCi0gICAgICAgICAgICBtX3ZhbHVlID0gKnZhbHVlOworICAgICAgICByZXR1cm4gYWRv
cHRQdHIobmV3IEZpbHRlckFuaW1hdGlvblZhbHVlKGtleVRpbWUsIHZhbHVlLCB0aW1pbmdGdW5j
dGlvbikpOwogICAgIH0KLSAgICB2aXJ0dWFsIEFuaW1hdGlvblZhbHVlKiBjbG9uZSgpIGNvbnN0
IHsgcmV0dXJuIG5ldyBGaWx0ZXJBbmltYXRpb25WYWx1ZSgqdGhpcyk7IH0KIAotICAgIGNvbnN0
IEZpbHRlck9wZXJhdGlvbnMqIHZhbHVlKCkgY29uc3QgeyByZXR1cm4gJm1fdmFsdWU7IH0KKyAg
ICB2aXJ0dWFsIFBhc3NPd25QdHI8QW5pbWF0aW9uVmFsdWU+IGNsb25lKCkgY29uc3QgT1ZFUlJJ
REUKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgRmlsdGVyQW5pbWF0aW9uVmFs
dWUoKnRoaXMpKTsKKyAgICB9CisKKyAgICBjb25zdCBGaWx0ZXJPcGVyYXRpb25zJiB2YWx1ZSgp
IGNvbnN0IHsgcmV0dXJuIG1fdmFsdWU7IH0KIAogcHJpdmF0ZToKKyAgICBGaWx0ZXJBbmltYXRp
b25WYWx1ZShmbG9hdCBrZXlUaW1lLCBjb25zdCBGaWx0ZXJPcGVyYXRpb25zJiB2YWx1ZSwgUGFz
c1JlZlB0cjxUaW1pbmdGdW5jdGlvbj4gdGltaW5nRnVuY3Rpb24pCisgICAgICAgIDogQW5pbWF0
aW9uVmFsdWUoa2V5VGltZSwgdGltaW5nRnVuY3Rpb24pCisgICAgICAgICwgbV92YWx1ZSh2YWx1
ZSkKKyAgICB7CisgICAgfQorCiAgICAgRmlsdGVyT3BlcmF0aW9ucyBtX3ZhbHVlOwogfTsKICNl
bmRpZgpAQCAtMTYwLDcgKzE4Niw2IEBAIHB1YmxpYzoKIAogICAgIH5LZXlmcmFtZVZhbHVlTGlz
dCgpCiAgICAgewotICAgICAgICBkZWxldGVBbGxWYWx1ZXMobV92YWx1ZXMpOwogICAgIH0KIAog
ICAgIEtleWZyYW1lVmFsdWVMaXN0JiBvcGVyYXRvcj0oY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3Qm
IG90aGVyKQpAQCAtMTc5LDEzICsyMDQsMTMgQEAgcHVibGljOgogICAgIEFuaW1hdGVkUHJvcGVy
dHlJRCBwcm9wZXJ0eSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJvcGVydHk7IH0KIAogICAgIHNpemVf
dCBzaXplKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZXMuc2l6ZSgpOyB9Ci0gICAgY29uc3QgQW5p
bWF0aW9uVmFsdWUqIGF0KHNpemVfdCBpKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlcy5hdChpKTsg
fQorICAgIGNvbnN0IEFuaW1hdGlvblZhbHVlJiBhdChzaXplX3QgaSkgY29uc3QgeyByZXR1cm4g
Km1fdmFsdWVzLmF0KGkpOyB9CiAgICAgCi0gICAgLy8gSW5zZXJ0LCBzb3J0ZWQgYnkga2V5VGlt
ZS4gVGFrZXMgb3duZXJzaGlwIG9mIHRoZSBwb2ludGVyLgotICAgIHZvaWQgaW5zZXJ0KGNvbnN0
IEFuaW1hdGlvblZhbHVlKik7CisgICAgLy8gSW5zZXJ0LCBzb3J0ZWQgYnkga2V5VGltZS4KKyAg
ICB2b2lkIGluc2VydChQYXNzT3duUHRyPGNvbnN0IEFuaW1hdGlvblZhbHVlPik7CiAgICAgCiBw
cm90ZWN0ZWQ6Ci0gICAgVmVjdG9yPGNvbnN0IEFuaW1hdGlvblZhbHVlKj4gbV92YWx1ZXM7Cisg
ICAgVmVjdG9yPE93blB0cjxjb25zdCBBbmltYXRpb25WYWx1ZT4gPiBtX3ZhbHVlczsKICAgICBB
bmltYXRlZFByb3BlcnR5SUQgbV9wcm9wZXJ0eTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCmluZGV4IDIx
MmU5MmVkNzhhMTZhNGFjODhiY2RiYWJjNDdiMGZiNGM0NzM3ZDcuLjY1MmNjM2E5NjcxZmZmMWZh
ZmJlMDAxNjhiYTdkMzYyOWIwMTc5NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcApAQCAtMjQyLDkgKzI0Miwx
MCBAQCBzdGF0aWMgYm9vbCBhbmltYXRpb25IYXNTdGVwc1RpbWluZ0Z1bmN0aW9uKGNvbnN0IEtl
eWZyYW1lVmFsdWVMaXN0JiB2YWx1ZUxpc3QsCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIAog
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCB2YWx1ZUxpc3Quc2l6ZSgpOyArK2kpIHsKLSAg
ICAgICAgY29uc3QgVGltaW5nRnVuY3Rpb24qIHRpbWluZ0Z1bmN0aW9uID0gdmFsdWVMaXN0LmF0
KGkpLT50aW1pbmdGdW5jdGlvbigpOwotICAgICAgICBpZiAodGltaW5nRnVuY3Rpb24gJiYgdGlt
aW5nRnVuY3Rpb24tPmlzU3RlcHNUaW1pbmdGdW5jdGlvbigpKQotICAgICAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgICAgIGlmIChjb25zdCBUaW1pbmdGdW5jdGlvbiogdGltaW5nRnVuY3Rpb24g
PSB2YWx1ZUxpc3QuYXQoaSkudGltaW5nRnVuY3Rpb24oKSkgeworICAgICAgICAgICAgaWYgKHRp
bWluZ0Z1bmN0aW9uLT5pc1N0ZXBzVGltaW5nRnVuY3Rpb24oKSkKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIHJldHVybiBmYWxzZTsKQEAgLTIw
OTEsNyArMjA5Miw3IEBAIGJvb2wgR3JhcGhpY3NMYXllckNBOjpjcmVhdGVUcmFuc2Zvcm1Bbmlt
YXRpb25zRnJvbUtleWZyYW1lcyhjb25zdCBLZXlmcmFtZVZhbHVlCiAKICAgICBib29sIGhhc0Jp
Z1JvdGF0aW9uOwogICAgIGludCBsaXN0SW5kZXggPSB2YWxpZGF0ZVRyYW5zZm9ybU9wZXJhdGlv
bnModmFsdWVMaXN0LCBoYXNCaWdSb3RhdGlvbik7Ci0gICAgY29uc3QgVHJhbnNmb3JtT3BlcmF0
aW9ucyogb3BlcmF0aW9ucyA9IChsaXN0SW5kZXggPj0gMCkgPyBzdGF0aWNfY2FzdDxjb25zdCBU
cmFuc2Zvcm1BbmltYXRpb25WYWx1ZSo+KHZhbHVlTGlzdC5hdChsaXN0SW5kZXgpKS0+dmFsdWUo
KSA6IDA7CisgICAgY29uc3QgVHJhbnNmb3JtT3BlcmF0aW9ucyogb3BlcmF0aW9ucyA9IChsaXN0
SW5kZXggPj0gMCkgPyAmc3RhdGljX2Nhc3Q8Y29uc3QgVHJhbnNmb3JtQW5pbWF0aW9uVmFsdWUm
Pih2YWx1ZUxpc3QuYXQobGlzdEluZGV4KSkudmFsdWUoKSA6IDA7CiAKICAgICAvLyBXZSBuZWVk
IHRvIGZhbGwgYmFjayB0byBzb2Z0d2FyZSBhbmltYXRpb24gaWYgd2UgZG9uJ3QgaGF2ZSBzZXRW
YWx1ZUZ1bmN0aW9uOiwgYW5kCiAgICAgLy8gd2Ugd291bGQgbmVlZCB0byBhbmltYXRlIGVhY2gg
aW5jb21pbmcgdHJhbnNmb3JtIGZ1bmN0aW9uIHNlcGFyYXRlbHkuIFRoaXMgaXMgdGhlCkBAIC0y
MTgxLDIxICsyMTgyLDIxIEBAIGJvb2wgR3JhcGhpY3NMYXllckNBOjpjcmVhdGVGaWx0ZXJBbmlt
YXRpb25zRnJvbUtleWZyYW1lcyhjb25zdCBLZXlmcmFtZVZhbHVlTGlzCiAgICAgaWYgKGxpc3RJ
bmRleCA8IDApCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgCi0gICAgY29uc3QgRmls
dGVyT3BlcmF0aW9ucyogb3BlcmF0aW9ucyA9IHN0YXRpY19jYXN0PGNvbnN0IEZpbHRlckFuaW1h
dGlvblZhbHVlKj4odmFsdWVMaXN0LmF0KGxpc3RJbmRleCkpLT52YWx1ZSgpOworICAgIGNvbnN0
IEZpbHRlck9wZXJhdGlvbnMmIG9wZXJhdGlvbnMgPSBzdGF0aWNfY2FzdDxjb25zdCBGaWx0ZXJB
bmltYXRpb25WYWx1ZSY+KHZhbHVlTGlzdC5hdChsaXN0SW5kZXgpKS52YWx1ZSgpOwogICAgIC8v
IE1ha2Ugc3VyZSB0aGUgcGxhdGZvcm0gbGF5ZXIgZGlkbid0IGZhbGxiYWNrIHRvIHVzaW5nIHNv
ZnR3YXJlIGZpbHRlciBjb21wb3NpdGluZyBpbnN0ZWFkLgotICAgIGlmICghUGxhdGZvcm1DQUxh
eWVyOjpmaWx0ZXJzQ2FuQmVDb21wb3NpdGVkKCpvcGVyYXRpb25zKSkKKyAgICBpZiAoIVBsYXRm
b3JtQ0FMYXllcjo6ZmlsdGVyc0NhbkJlQ29tcG9zaXRlZChvcGVyYXRpb25zKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCi0gICAgaW50IG51bUFuaW1hdGlvbnMgPSBvcGVyYXRpb25zLT5zaXpl
KCk7CisgICAgaW50IG51bUFuaW1hdGlvbnMgPSBvcGVyYXRpb25zLnNpemUoKTsKIAogICAgIC8v
IEZJWE1FOiBXZSBjYW4ndCBjdXJyZW50bHkgaGFyZHdhcmUgYW5pbWF0ZSBzaGFkb3dzLgogICAg
IGZvciAoaW50IGkgPSAwOyBpIDwgbnVtQW5pbWF0aW9uczsgKytpKSB7Ci0gICAgICAgIGlmIChv
cGVyYXRpb25zLT5hdChpKS0+Z2V0T3BlcmF0aW9uVHlwZSgpID09IEZpbHRlck9wZXJhdGlvbjo6
RFJPUF9TSEFET1cpCisgICAgICAgIGlmIChvcGVyYXRpb25zLmF0KGkpLT5nZXRPcGVyYXRpb25U
eXBlKCkgPT0gRmlsdGVyT3BlcmF0aW9uOjpEUk9QX1NIQURPVykKICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICB9CiAKICAgICBmb3IgKGludCBhbmltYXRpb25JbmRleCA9IDA7IGFuaW1h
dGlvbkluZGV4IDwgbnVtQW5pbWF0aW9uczsgKythbmltYXRpb25JbmRleCkgewotICAgICAgICBp
ZiAoIWFwcGVuZFRvVW5jb21taXR0ZWRBbmltYXRpb25zKHZhbHVlTGlzdCwgb3BlcmF0aW9ucy0+
b3BlcmF0aW9ucygpLmF0KGFuaW1hdGlvbkluZGV4KS5nZXQoKSwgYW5pbWF0aW9uLCBhbmltYXRp
b25OYW1lLCBhbmltYXRpb25JbmRleCwgdGltZU9mZnNldCkpCisgICAgICAgIGlmICghYXBwZW5k
VG9VbmNvbW1pdHRlZEFuaW1hdGlvbnModmFsdWVMaXN0LCBvcGVyYXRpb25zLm9wZXJhdGlvbnMo
KS5hdChhbmltYXRpb25JbmRleCkuZ2V0KCksIGFuaW1hdGlvbiwgYW5pbWF0aW9uTmFtZSwgYW5p
bWF0aW9uSW5kZXgsIHRpbWVPZmZzZXQpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IH0KIApAQCAtMjI1MywxMiArMjI1NCwxMiBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6c2V0dXBB
bmltYXRpb24oUGxhdGZvcm1DQUFuaW1hdGlvbiogcHJvcGVydHlBbmltLCBjb25zdCBBbgogICAg
IHByb3BlcnR5QW5pbS0+c2V0RmlsbE1vZGUoZmlsbE1vZGUpOwogfQogCi1jb25zdCBUaW1pbmdG
dW5jdGlvbiogR3JhcGhpY3NMYXllckNBOjp0aW1pbmdGdW5jdGlvbkZvckFuaW1hdGlvblZhbHVl
KGNvbnN0IEFuaW1hdGlvblZhbHVlKiBhbmltVmFsdWUsIGNvbnN0IEFuaW1hdGlvbiogYW5pbSkK
K2NvbnN0IFRpbWluZ0Z1bmN0aW9uKiBHcmFwaGljc0xheWVyQ0E6OnRpbWluZ0Z1bmN0aW9uRm9y
QW5pbWF0aW9uVmFsdWUoY29uc3QgQW5pbWF0aW9uVmFsdWUmIGFuaW1WYWx1ZSwgY29uc3QgQW5p
bWF0aW9uJiBhbmltKQogewotICAgIGlmIChhbmltVmFsdWUtPnRpbWluZ0Z1bmN0aW9uKCkpCi0g
ICAgICAgIHJldHVybiBhbmltVmFsdWUtPnRpbWluZ0Z1bmN0aW9uKCk7Ci0gICAgaWYgKGFuaW0t
PmlzVGltaW5nRnVuY3Rpb25TZXQoKSkKLSAgICAgICAgcmV0dXJuIGFuaW0tPnRpbWluZ0Z1bmN0
aW9uKCkuZ2V0KCk7CisgICAgaWYgKGFuaW1WYWx1ZS50aW1pbmdGdW5jdGlvbigpKQorICAgICAg
ICByZXR1cm4gYW5pbVZhbHVlLnRpbWluZ0Z1bmN0aW9uKCk7CisgICAgaWYgKGFuaW0uaXNUaW1p
bmdGdW5jdGlvblNldCgpKQorICAgICAgICByZXR1cm4gYW5pbS50aW1pbmdGdW5jdGlvbigpLmdl
dCgpOwogICAgIAogICAgIHJldHVybiBDdWJpY0JlemllclRpbWluZ0Z1bmN0aW9uOjpkZWZhdWx0
VGltaW5nRnVuY3Rpb24oKTsKIH0KQEAgLTIyNzIsOCArMjI3Myw4IEBAIGJvb2wgR3JhcGhpY3NM
YXllckNBOjpzZXRBbmltYXRpb25FbmRwb2ludHMoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmIHZh
bHVlTGlzdCwKICAgICAKICAgICBzd2l0Y2ggKHZhbHVlTGlzdC5wcm9wZXJ0eSgpKSB7CiAgICAg
Y2FzZSBBbmltYXRlZFByb3BlcnR5T3BhY2l0eTogewotICAgICAgICBiYXNpY0FuaW0tPnNldEZy
b21WYWx1ZShzdGF0aWNfY2FzdDxjb25zdCBGbG9hdEFuaW1hdGlvblZhbHVlKj4odmFsdWVMaXN0
LmF0KGZyb21JbmRleCkpLT52YWx1ZSgpKTsKLSAgICAgICAgYmFzaWNBbmltLT5zZXRUb1ZhbHVl
KHN0YXRpY19jYXN0PGNvbnN0IEZsb2F0QW5pbWF0aW9uVmFsdWUqPih2YWx1ZUxpc3QuYXQodG9J
bmRleCkpLT52YWx1ZSgpKTsKKyAgICAgICAgYmFzaWNBbmltLT5zZXRGcm9tVmFsdWUoc3RhdGlj
X2Nhc3Q8Y29uc3QgRmxvYXRBbmltYXRpb25WYWx1ZSY+KHZhbHVlTGlzdC5hdChmcm9tSW5kZXgp
KS52YWx1ZSgpKTsKKyAgICAgICAgYmFzaWNBbmltLT5zZXRUb1ZhbHVlKHN0YXRpY19jYXN0PGNv
bnN0IEZsb2F0QW5pbWF0aW9uVmFsdWUmPih2YWx1ZUxpc3QuYXQodG9JbmRleCkpLnZhbHVlKCkp
OwogICAgICAgICBicmVhazsKICAgICB9CiAgICAgZGVmYXVsdDoKQEAgLTIyODMsNyArMjI4NCw3
IEBAIGJvb2wgR3JhcGhpY3NMYXllckNBOjpzZXRBbmltYXRpb25FbmRwb2ludHMoY29uc3QgS2V5
ZnJhbWVWYWx1ZUxpc3QmIHZhbHVlTGlzdCwKIAogICAgIC8vIFRoaXMgY29kZXBhdGggaXMgdXNl
ZCBmb3IgMi1rZXlmcmFtZSBhbmltYXRpb25zLCBzbyB3ZSBzdGlsbCBuZWVkIHRvIGxvb2sgaW4g
dGhlIHN0YXJ0CiAgICAgLy8gZm9yIGEgdGltaW5nIGZ1bmN0aW9uLiBFdmVuIGluIHRoZSByZXZl
cnNpbmcgYW5pbWF0aW9uIGNhc2UsIHRoZSBmaXJzdCBrZXlmcmFtZSBwcm92aWRlcyB0aGUgdGlt
aW5nIGZ1bmN0aW9uLgotICAgIGNvbnN0IFRpbWluZ0Z1bmN0aW9uKiB0aW1pbmdGdW5jdGlvbiA9
IHRpbWluZ0Z1bmN0aW9uRm9yQW5pbWF0aW9uVmFsdWUodmFsdWVMaXN0LmF0KDApLCBhbmltYXRp
b24pOworICAgIGNvbnN0IFRpbWluZ0Z1bmN0aW9uKiB0aW1pbmdGdW5jdGlvbiA9IHRpbWluZ0Z1
bmN0aW9uRm9yQW5pbWF0aW9uVmFsdWUodmFsdWVMaXN0LmF0KDApLCAqYW5pbWF0aW9uKTsKICAg
ICBpZiAodGltaW5nRnVuY3Rpb24pCiAgICAgICAgIGJhc2ljQW5pbS0+c2V0VGltaW5nRnVuY3Rp
b24odGltaW5nRnVuY3Rpb24sICFmb3J3YXJkcyk7CiAKQEAgLTIzMDAsMTMgKzIzMDEsMTMgQEAg
Ym9vbCBHcmFwaGljc0xheWVyQ0E6OnNldEFuaW1hdGlvbktleWZyYW1lcyhjb25zdCBLZXlmcmFt
ZVZhbHVlTGlzdCYgdmFsdWVMaXN0LAogICAgIAogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCB2YWx1ZUxpc3Quc2l6ZSgpOyArK2kpIHsKICAgICAgICAgdW5zaWduZWQgaW5kZXggPSBmb3J3
YXJkcyA/IGkgOiAodmFsdWVMaXN0LnNpemUoKSAtIGkgLSAxKTsKLSAgICAgICAgY29uc3QgQW5p
bWF0aW9uVmFsdWUqIGN1clZhbHVlID0gdmFsdWVMaXN0LmF0KGluZGV4KTsKLSAgICAgICAga2V5
VGltZXMuYXBwZW5kKGZvcndhcmRzID8gY3VyVmFsdWUtPmtleVRpbWUoKSA6ICgxIC0gY3VyVmFs
dWUtPmtleVRpbWUoKSkpOworICAgICAgICBjb25zdCBBbmltYXRpb25WYWx1ZSYgY3VyVmFsdWUg
PSB2YWx1ZUxpc3QuYXQoaW5kZXgpOworICAgICAgICBrZXlUaW1lcy5hcHBlbmQoZm9yd2FyZHMg
PyBjdXJWYWx1ZS5rZXlUaW1lKCkgOiAoMSAtIGN1clZhbHVlLmtleVRpbWUoKSkpOwogCiAgICAg
ICAgIHN3aXRjaCAodmFsdWVMaXN0LnByb3BlcnR5KCkpIHsKICAgICAgICAgY2FzZSBBbmltYXRl
ZFByb3BlcnR5T3BhY2l0eTogewotICAgICAgICAgICAgY29uc3QgRmxvYXRBbmltYXRpb25WYWx1
ZSogZmxvYXRWYWx1ZSA9IHN0YXRpY19jYXN0PGNvbnN0IEZsb2F0QW5pbWF0aW9uVmFsdWUqPihj
dXJWYWx1ZSk7Ci0gICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKGZsb2F0VmFsdWUtPnZhbHVlKCkp
OworICAgICAgICAgICAgY29uc3QgRmxvYXRBbmltYXRpb25WYWx1ZSYgZmxvYXRWYWx1ZSA9IHN0
YXRpY19jYXN0PGNvbnN0IEZsb2F0QW5pbWF0aW9uVmFsdWUmPihjdXJWYWx1ZSk7CisgICAgICAg
ICAgICB2YWx1ZXMuYXBwZW5kKGZsb2F0VmFsdWUudmFsdWUoKSk7CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgfQogICAgICAgICBkZWZhdWx0OgpAQCAtMjMxNSw3ICsyMzE2LDcgQEAgYm9v
bCBHcmFwaGljc0xheWVyQ0E6OnNldEFuaW1hdGlvbktleWZyYW1lcyhjb25zdCBLZXlmcmFtZVZh
bHVlTGlzdCYgdmFsdWVMaXN0LAogICAgICAgICB9CiAKICAgICAgICAgaWYgKGkgPCAodmFsdWVM
aXN0LnNpemUoKSAtIDEpKQotICAgICAgICAgICAgdGltaW5nRnVuY3Rpb25zLmFwcGVuZCh0aW1p
bmdGdW5jdGlvbkZvckFuaW1hdGlvblZhbHVlKGZvcndhcmRzID8gY3VyVmFsdWUgOiB2YWx1ZUxp
c3QuYXQoaW5kZXggLSAxKSwgYW5pbWF0aW9uKSk7CisgICAgICAgICAgICB0aW1pbmdGdW5jdGlv
bnMuYXBwZW5kKHRpbWluZ0Z1bmN0aW9uRm9yQW5pbWF0aW9uVmFsdWUoZm9yd2FyZHMgPyBjdXJW
YWx1ZSA6IHZhbHVlTGlzdC5hdChpbmRleCAtIDEpLCAqYW5pbWF0aW9uKSk7CiAgICAgfQogICAg
IAogICAgIGtleWZyYW1lQW5pbS0+c2V0S2V5VGltZXMoa2V5VGltZXMpOwpAQCAtMjMzNCwxMyAr
MjMzNSwxMyBAQCBib29sIEdyYXBoaWNzTGF5ZXJDQTo6c2V0VHJhbnNmb3JtQW5pbWF0aW9uRW5k
cG9pbnRzKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiB2YQogICAgIHVuc2lnbmVkIGZyb21JbmRl
eCA9ICFmb3J3YXJkczsKICAgICB1bnNpZ25lZCB0b0luZGV4ID0gZm9yd2FyZHM7CiAgICAgCi0g
ICAgY29uc3QgVHJhbnNmb3JtQW5pbWF0aW9uVmFsdWUqIHN0YXJ0VmFsdWUgPSBzdGF0aWNfY2Fz
dDxjb25zdCBUcmFuc2Zvcm1BbmltYXRpb25WYWx1ZSo+KHZhbHVlTGlzdC5hdChmcm9tSW5kZXgp
KTsKLSAgICBjb25zdCBUcmFuc2Zvcm1BbmltYXRpb25WYWx1ZSogZW5kVmFsdWUgPSBzdGF0aWNf
Y2FzdDxjb25zdCBUcmFuc2Zvcm1BbmltYXRpb25WYWx1ZSo+KHZhbHVlTGlzdC5hdCh0b0luZGV4
KSk7CisgICAgY29uc3QgVHJhbnNmb3JtQW5pbWF0aW9uVmFsdWUmIHN0YXJ0VmFsdWUgPSBzdGF0
aWNfY2FzdDxjb25zdCBUcmFuc2Zvcm1BbmltYXRpb25WYWx1ZSY+KHZhbHVlTGlzdC5hdChmcm9t
SW5kZXgpKTsKKyAgICBjb25zdCBUcmFuc2Zvcm1BbmltYXRpb25WYWx1ZSYgZW5kVmFsdWUgPSBz
dGF0aWNfY2FzdDxjb25zdCBUcmFuc2Zvcm1BbmltYXRpb25WYWx1ZSY+KHZhbHVlTGlzdC5hdCh0
b0luZGV4KSk7CiAgICAgCiAgICAgaWYgKGlzTWF0cml4QW5pbWF0aW9uKSB7CiAgICAgICAgIFRy
YW5zZm9ybWF0aW9uTWF0cml4IGZyb21UcmFuc2Zvcm0sIHRvVHJhbnNmb3JtOwotICAgICAgICBz
dGFydFZhbHVlLT52YWx1ZSgpLT5hcHBseShib3hTaXplLCBmcm9tVHJhbnNmb3JtKTsKLSAgICAg
ICAgZW5kVmFsdWUtPnZhbHVlKCktPmFwcGx5KGJveFNpemUsIHRvVHJhbnNmb3JtKTsKKyAgICAg
ICAgc3RhcnRWYWx1ZS52YWx1ZSgpLmFwcGx5KGJveFNpemUsIGZyb21UcmFuc2Zvcm0pOworICAg
ICAgICBlbmRWYWx1ZS52YWx1ZSgpLmFwcGx5KGJveFNpemUsIHRvVHJhbnNmb3JtKTsKIAogICAg
ICAgICAvLyBJZiBhbnkgbWF0cml4IGlzIHNpbmd1bGFyLCBDQSB3b24ndCBhbmltYXRlIGl0IGNv
cnJlY3RseS4gU28gZmFsbCBiYWNrIHRvIHNvZnR3YXJlIGFuaW1hdGlvbgogICAgICAgICBpZiAo
IWZyb21UcmFuc2Zvcm0uaXNJbnZlcnRpYmxlKCkgfHwgIXRvVHJhbnNmb3JtLmlzSW52ZXJ0aWJs
ZSgpKQpAQCAtMjM1MSwzNCArMjM1MiwzNCBAQCBib29sIEdyYXBoaWNzTGF5ZXJDQTo6c2V0VHJh
bnNmb3JtQW5pbWF0aW9uRW5kcG9pbnRzKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiB2YQogICAg
IH0gZWxzZSB7CiAgICAgICAgIGlmIChpc1RyYW5zZm9ybVR5cGVOdW1iZXIodHJhbnNmb3JtT3BU
eXBlKSkgewogICAgICAgICAgICAgZmxvYXQgZnJvbVZhbHVlOwotICAgICAgICAgICAgZ2V0VHJh
bnNmb3JtRnVuY3Rpb25WYWx1ZShzdGFydFZhbHVlLT52YWx1ZSgpLT5hdChmdW5jdGlvbkluZGV4
KSwgdHJhbnNmb3JtT3BUeXBlLCBib3hTaXplLCBmcm9tVmFsdWUpOworICAgICAgICAgICAgZ2V0
VHJhbnNmb3JtRnVuY3Rpb25WYWx1ZShzdGFydFZhbHVlLnZhbHVlKCkuYXQoZnVuY3Rpb25JbmRl
eCksIHRyYW5zZm9ybU9wVHlwZSwgYm94U2l6ZSwgZnJvbVZhbHVlKTsKICAgICAgICAgICAgIGJh
c2ljQW5pbS0+c2V0RnJvbVZhbHVlKGZyb21WYWx1ZSk7CiAgICAgICAgICAgICAKICAgICAgICAg
ICAgIGZsb2F0IHRvVmFsdWU7Ci0gICAgICAgICAgICBnZXRUcmFuc2Zvcm1GdW5jdGlvblZhbHVl
KGVuZFZhbHVlLT52YWx1ZSgpLT5hdChmdW5jdGlvbkluZGV4KSwgdHJhbnNmb3JtT3BUeXBlLCBi
b3hTaXplLCB0b1ZhbHVlKTsKKyAgICAgICAgICAgIGdldFRyYW5zZm9ybUZ1bmN0aW9uVmFsdWUo
ZW5kVmFsdWUudmFsdWUoKS5hdChmdW5jdGlvbkluZGV4KSwgdHJhbnNmb3JtT3BUeXBlLCBib3hT
aXplLCB0b1ZhbHVlKTsKICAgICAgICAgICAgIGJhc2ljQW5pbS0+c2V0VG9WYWx1ZSh0b1ZhbHVl
KTsKICAgICAgICAgfSBlbHNlIGlmIChpc1RyYW5zZm9ybVR5cGVGbG9hdFBvaW50M0QodHJhbnNm
b3JtT3BUeXBlKSkgewogICAgICAgICAgICAgRmxvYXRQb2ludDNEIGZyb21WYWx1ZTsKLSAgICAg
ICAgICAgIGdldFRyYW5zZm9ybUZ1bmN0aW9uVmFsdWUoc3RhcnRWYWx1ZS0+dmFsdWUoKS0+YXQo
ZnVuY3Rpb25JbmRleCksIHRyYW5zZm9ybU9wVHlwZSwgYm94U2l6ZSwgZnJvbVZhbHVlKTsKKyAg
ICAgICAgICAgIGdldFRyYW5zZm9ybUZ1bmN0aW9uVmFsdWUoc3RhcnRWYWx1ZS52YWx1ZSgpLmF0
KGZ1bmN0aW9uSW5kZXgpLCB0cmFuc2Zvcm1PcFR5cGUsIGJveFNpemUsIGZyb21WYWx1ZSk7CiAg
ICAgICAgICAgICBiYXNpY0FuaW0tPnNldEZyb21WYWx1ZShmcm9tVmFsdWUpOwogICAgICAgICAg
ICAgCiAgICAgICAgICAgICBGbG9hdFBvaW50M0QgdG9WYWx1ZTsKLSAgICAgICAgICAgIGdldFRy
YW5zZm9ybUZ1bmN0aW9uVmFsdWUoZW5kVmFsdWUtPnZhbHVlKCktPmF0KGZ1bmN0aW9uSW5kZXgp
LCB0cmFuc2Zvcm1PcFR5cGUsIGJveFNpemUsIHRvVmFsdWUpOworICAgICAgICAgICAgZ2V0VHJh
bnNmb3JtRnVuY3Rpb25WYWx1ZShlbmRWYWx1ZS52YWx1ZSgpLmF0KGZ1bmN0aW9uSW5kZXgpLCB0
cmFuc2Zvcm1PcFR5cGUsIGJveFNpemUsIHRvVmFsdWUpOwogICAgICAgICAgICAgYmFzaWNBbmlt
LT5zZXRUb1ZhbHVlKHRvVmFsdWUpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgVHJh
bnNmb3JtYXRpb25NYXRyaXggZnJvbVZhbHVlOwotICAgICAgICAgICAgZ2V0VHJhbnNmb3JtRnVu
Y3Rpb25WYWx1ZShzdGFydFZhbHVlLT52YWx1ZSgpLT5hdChmdW5jdGlvbkluZGV4KSwgdHJhbnNm
b3JtT3BUeXBlLCBib3hTaXplLCBmcm9tVmFsdWUpOworICAgICAgICAgICAgZ2V0VHJhbnNmb3Jt
RnVuY3Rpb25WYWx1ZShzdGFydFZhbHVlLnZhbHVlKCkuYXQoZnVuY3Rpb25JbmRleCksIHRyYW5z
Zm9ybU9wVHlwZSwgYm94U2l6ZSwgZnJvbVZhbHVlKTsKICAgICAgICAgICAgIGJhc2ljQW5pbS0+
c2V0RnJvbVZhbHVlKGZyb21WYWx1ZSk7CiAKICAgICAgICAgICAgIFRyYW5zZm9ybWF0aW9uTWF0
cml4IHRvVmFsdWU7Ci0gICAgICAgICAgICBnZXRUcmFuc2Zvcm1GdW5jdGlvblZhbHVlKGVuZFZh
bHVlLT52YWx1ZSgpLT5hdChmdW5jdGlvbkluZGV4KSwgdHJhbnNmb3JtT3BUeXBlLCBib3hTaXpl
LCB0b1ZhbHVlKTsKKyAgICAgICAgICAgIGdldFRyYW5zZm9ybUZ1bmN0aW9uVmFsdWUoZW5kVmFs
dWUudmFsdWUoKS5hdChmdW5jdGlvbkluZGV4KSwgdHJhbnNmb3JtT3BUeXBlLCBib3hTaXplLCB0
b1ZhbHVlKTsKICAgICAgICAgICAgIGJhc2ljQW5pbS0+c2V0VG9WYWx1ZSh0b1ZhbHVlKTsKICAg
ICAgICAgfQogICAgIH0KIAogICAgIC8vIFRoaXMgY29kZXBhdGggaXMgdXNlZCBmb3IgMi1rZXlm
cmFtZSBhbmltYXRpb25zLCBzbyB3ZSBzdGlsbCBuZWVkIHRvIGxvb2sgaW4gdGhlIHN0YXJ0CiAg
ICAgLy8gZm9yIGEgdGltaW5nIGZ1bmN0aW9uLiBFdmVuIGluIHRoZSByZXZlcnNpbmcgYW5pbWF0
aW9uIGNhc2UsIHRoZSBmaXJzdCBrZXlmcmFtZSBwcm92aWRlcyB0aGUgdGltaW5nIGZ1bmN0aW9u
LgotICAgIGNvbnN0IFRpbWluZ0Z1bmN0aW9uKiB0aW1pbmdGdW5jdGlvbiA9IHRpbWluZ0Z1bmN0
aW9uRm9yQW5pbWF0aW9uVmFsdWUodmFsdWVMaXN0LmF0KDApLCBhbmltYXRpb24pOworICAgIGNv
bnN0IFRpbWluZ0Z1bmN0aW9uKiB0aW1pbmdGdW5jdGlvbiA9IHRpbWluZ0Z1bmN0aW9uRm9yQW5p
bWF0aW9uVmFsdWUodmFsdWVMaXN0LmF0KDApLCAqYW5pbWF0aW9uKTsKICAgICBiYXNpY0FuaW0t
PnNldFRpbWluZ0Z1bmN0aW9uKHRpbWluZ0Z1bmN0aW9uLCAhZm9yd2FyZHMpOwogCiAgICAgUGxh
dGZvcm1DQUFuaW1hdGlvbjo6VmFsdWVGdW5jdGlvblR5cGUgdmFsdWVGdW5jdGlvbiA9IGdldFZh
bHVlRnVuY3Rpb25OYW1lRm9yVHJhbnNmb3JtT3BlcmF0aW9uKHRyYW5zZm9ybU9wVHlwZSk7CkBA
IC0yNDAwLDEyICsyNDAxLDEyIEBAIGJvb2wgR3JhcGhpY3NMYXllckNBOjpzZXRUcmFuc2Zvcm1B
bmltYXRpb25LZXlmcmFtZXMoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmIHZhCiAKICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgdmFsdWVMaXN0LnNpemUoKTsgKytpKSB7CiAgICAgICAgIHVu
c2lnbmVkIGluZGV4ID0gZm9yd2FyZHMgPyBpIDogKHZhbHVlTGlzdC5zaXplKCkgLSBpIC0gMSk7
Ci0gICAgICAgIGNvbnN0IFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlKiBjdXJWYWx1ZSA9IHN0YXRp
Y19jYXN0PGNvbnN0IFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlKj4odmFsdWVMaXN0LmF0KGluZGV4
KSk7Ci0gICAgICAgIGtleVRpbWVzLmFwcGVuZChmb3J3YXJkcyA/IGN1clZhbHVlLT5rZXlUaW1l
KCkgOiAoMSAtIGN1clZhbHVlLT5rZXlUaW1lKCkpKTsKKyAgICAgICAgY29uc3QgVHJhbnNmb3Jt
QW5pbWF0aW9uVmFsdWUmIGN1clZhbHVlID0gc3RhdGljX2Nhc3Q8Y29uc3QgVHJhbnNmb3JtQW5p
bWF0aW9uVmFsdWUmPih2YWx1ZUxpc3QuYXQoaW5kZXgpKTsKKyAgICAgICAga2V5VGltZXMuYXBw
ZW5kKGZvcndhcmRzID8gY3VyVmFsdWUua2V5VGltZSgpIDogKDEgLSBjdXJWYWx1ZS5rZXlUaW1l
KCkpKTsKIAogICAgICAgICBpZiAoaXNNYXRyaXhBbmltYXRpb24pIHsKICAgICAgICAgICAgIFRy
YW5zZm9ybWF0aW9uTWF0cml4IHRyYW5zZm9ybTsKLSAgICAgICAgICAgIGN1clZhbHVlLT52YWx1
ZSgpLT5hcHBseShib3hTaXplLCB0cmFuc2Zvcm0pOworICAgICAgICAgICAgY3VyVmFsdWUudmFs
dWUoKS5hcHBseShib3hTaXplLCB0cmFuc2Zvcm0pOwogCiAgICAgICAgICAgICAvLyBJZiBhbnkg
bWF0cml4IGlzIHNpbmd1bGFyLCBDQSB3b24ndCBhbmltYXRlIGl0IGNvcnJlY3RseS4gU28gZmFs
bCBiYWNrIHRvIHNvZnR3YXJlIGFuaW1hdGlvbgogICAgICAgICAgICAgaWYgKCF0cmFuc2Zvcm0u
aXNJbnZlcnRpYmxlKCkpCkBAIC0yNDEzLDcgKzI0MTQsNyBAQCBib29sIEdyYXBoaWNzTGF5ZXJD
QTo6c2V0VHJhbnNmb3JtQW5pbWF0aW9uS2V5ZnJhbWVzKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0
JiB2YQogCiAgICAgICAgICAgICB0cmFuc2Zvcm1hdGlvbk1hdHJpeFZhbHVlcy5hcHBlbmQodHJh
bnNmb3JtKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGNvbnN0IFRyYW5zZm9ybU9w
ZXJhdGlvbiogdHJhbnNmb3JtT3AgPSBjdXJWYWx1ZS0+dmFsdWUoKS0+YXQoZnVuY3Rpb25JbmRl
eCk7CisgICAgICAgICAgICBjb25zdCBUcmFuc2Zvcm1PcGVyYXRpb24qIHRyYW5zZm9ybU9wID0g
Y3VyVmFsdWUudmFsdWUoKS5hdChmdW5jdGlvbkluZGV4KTsKICAgICAgICAgICAgIGlmIChpc1Ry
YW5zZm9ybVR5cGVOdW1iZXIodHJhbnNmb3JtT3BUeXBlKSkgewogICAgICAgICAgICAgICAgIGZs
b2F0IHZhbHVlOwogICAgICAgICAgICAgICAgIGdldFRyYW5zZm9ybUZ1bmN0aW9uVmFsdWUodHJh
bnNmb3JtT3AsIHRyYW5zZm9ybU9wVHlwZSwgYm94U2l6ZSwgdmFsdWUpOwpAQCAtMjQzMCw3ICsy
NDMxLDcgQEAgYm9vbCBHcmFwaGljc0xheWVyQ0E6OnNldFRyYW5zZm9ybUFuaW1hdGlvbktleWZy
YW1lcyhjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYgdmEKICAgICAgICAgfQogCiAgICAgICAgIGlm
IChpIDwgKHZhbHVlTGlzdC5zaXplKCkgLSAxKSkKLSAgICAgICAgICAgIHRpbWluZ0Z1bmN0aW9u
cy5hcHBlbmQodGltaW5nRnVuY3Rpb25Gb3JBbmltYXRpb25WYWx1ZShmb3J3YXJkcyA/IGN1clZh
bHVlIDogdmFsdWVMaXN0LmF0KGluZGV4IC0gMSksIGFuaW1hdGlvbikpOworICAgICAgICAgICAg
dGltaW5nRnVuY3Rpb25zLmFwcGVuZCh0aW1pbmdGdW5jdGlvbkZvckFuaW1hdGlvblZhbHVlKGZv
cndhcmRzID8gY3VyVmFsdWUgOiB2YWx1ZUxpc3QuYXQoaW5kZXggLSAxKSwgKmFuaW1hdGlvbikp
OwogICAgIH0KICAgICAKICAgICBrZXlmcmFtZUFuaW0tPnNldEtleVRpbWVzKGtleVRpbWVzKTsK
QEAgLTI0NjEsMTEgKzI0NjIsMTEgQEAgYm9vbCBHcmFwaGljc0xheWVyQ0E6OnNldEZpbHRlckFu
aW1hdGlvbkVuZHBvaW50cyhjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYgdmFsdWUKICAgICB1bnNp
Z25lZCBmcm9tSW5kZXggPSAhZm9yd2FyZHM7CiAgICAgdW5zaWduZWQgdG9JbmRleCA9IGZvcndh
cmRzOwogCi0gICAgY29uc3QgRmlsdGVyQW5pbWF0aW9uVmFsdWUqIGZyb21WYWx1ZSA9IHN0YXRp
Y19jYXN0PGNvbnN0IEZpbHRlckFuaW1hdGlvblZhbHVlKj4odmFsdWVMaXN0LmF0KGZyb21JbmRl
eCkpOwotICAgIGNvbnN0IEZpbHRlckFuaW1hdGlvblZhbHVlKiB0b1ZhbHVlID0gc3RhdGljX2Nh
c3Q8Y29uc3QgRmlsdGVyQW5pbWF0aW9uVmFsdWUqPih2YWx1ZUxpc3QuYXQodG9JbmRleCkpOwor
ICAgIGNvbnN0IEZpbHRlckFuaW1hdGlvblZhbHVlJiBmcm9tVmFsdWUgPSBzdGF0aWNfY2FzdDxj
b25zdCBGaWx0ZXJBbmltYXRpb25WYWx1ZSY+KHZhbHVlTGlzdC5hdChmcm9tSW5kZXgpKTsKKyAg
ICBjb25zdCBGaWx0ZXJBbmltYXRpb25WYWx1ZSYgdG9WYWx1ZSA9IHN0YXRpY19jYXN0PGNvbnN0
IEZpbHRlckFuaW1hdGlvblZhbHVlJj4odmFsdWVMaXN0LmF0KHRvSW5kZXgpKTsKIAotICAgIGNv
bnN0IEZpbHRlck9wZXJhdGlvbiogZnJvbU9wZXJhdGlvbiA9IGZyb21WYWx1ZS0+dmFsdWUoKS0+
YXQoZnVuY3Rpb25JbmRleCk7Ci0gICAgY29uc3QgRmlsdGVyT3BlcmF0aW9uKiB0b09wZXJhdGlv
biA9IHRvVmFsdWUtPnZhbHVlKCktPmF0KGZ1bmN0aW9uSW5kZXgpOworICAgIGNvbnN0IEZpbHRl
ck9wZXJhdGlvbiogZnJvbU9wZXJhdGlvbiA9IGZyb21WYWx1ZS52YWx1ZSgpLmF0KGZ1bmN0aW9u
SW5kZXgpOworICAgIGNvbnN0IEZpbHRlck9wZXJhdGlvbiogdG9PcGVyYXRpb24gPSB0b1ZhbHVl
LnZhbHVlKCkuYXQoZnVuY3Rpb25JbmRleCk7CiAKICAgICBSZWZQdHI8RGVmYXVsdEZpbHRlck9w
ZXJhdGlvbj4gZGVmYXVsdEZyb21PcGVyYXRpb247CiAgICAgUmVmUHRyPERlZmF1bHRGaWx0ZXJP
cGVyYXRpb24+IGRlZmF1bHRUb09wZXJhdGlvbjsKQEAgLTI0ODcsNyArMjQ4OCw3IEBAIGJvb2wg
R3JhcGhpY3NMYXllckNBOjpzZXRGaWx0ZXJBbmltYXRpb25FbmRwb2ludHMoY29uc3QgS2V5ZnJh
bWVWYWx1ZUxpc3QmIHZhbHVlCiAKICAgICAvLyBUaGlzIGNvZGVwYXRoIGlzIHVzZWQgZm9yIDIt
a2V5ZnJhbWUgYW5pbWF0aW9ucywgc28gd2Ugc3RpbGwgbmVlZCB0byBsb29rIGluIHRoZSBzdGFy
dAogICAgIC8vIGZvciBhIHRpbWluZyBmdW5jdGlvbi4gRXZlbiBpbiB0aGUgcmV2ZXJzaW5nIGFu
aW1hdGlvbiBjYXNlLCB0aGUgZmlyc3Qga2V5ZnJhbWUgcHJvdmlkZXMgdGhlIHRpbWluZyBmdW5j
dGlvbi4KLSAgICBiYXNpY0FuaW0tPnNldFRpbWluZ0Z1bmN0aW9uKHRpbWluZ0Z1bmN0aW9uRm9y
QW5pbWF0aW9uVmFsdWUodmFsdWVMaXN0LmF0KDApLCBhbmltYXRpb24pLCAhZm9yd2FyZHMpOwor
ICAgIGJhc2ljQW5pbS0+c2V0VGltaW5nRnVuY3Rpb24odGltaW5nRnVuY3Rpb25Gb3JBbmltYXRp
b25WYWx1ZSh2YWx1ZUxpc3QuYXQoMCksICphbmltYXRpb24pLCAhZm9yd2FyZHMpOwogCiAgICAg
cmV0dXJuIHRydWU7CiB9CkBAIC0yNTAzLDExICsyNTA0LDExIEBAIGJvb2wgR3JhcGhpY3NMYXll
ckNBOjpzZXRGaWx0ZXJBbmltYXRpb25LZXlmcmFtZXMoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3Qm
IHZhbHVlCiAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgdmFsdWVMaXN0LnNpemUoKTsg
KytpKSB7CiAgICAgICAgIHVuc2lnbmVkIGluZGV4ID0gZm9yd2FyZHMgPyBpIDogKHZhbHVlTGlz
dC5zaXplKCkgLSBpIC0gMSk7Ci0gICAgICAgIGNvbnN0IEZpbHRlckFuaW1hdGlvblZhbHVlKiBj
dXJWYWx1ZSA9IHN0YXRpY19jYXN0PGNvbnN0IEZpbHRlckFuaW1hdGlvblZhbHVlKj4odmFsdWVM
aXN0LmF0KGluZGV4KSk7Ci0gICAgICAgIGtleVRpbWVzLmFwcGVuZChmb3J3YXJkcyA/IGN1clZh
bHVlLT5rZXlUaW1lKCkgOiAoMSAtIGN1clZhbHVlLT5rZXlUaW1lKCkpKTsKKyAgICAgICAgY29u
c3QgRmlsdGVyQW5pbWF0aW9uVmFsdWUmIGN1clZhbHVlID0gc3RhdGljX2Nhc3Q8Y29uc3QgRmls
dGVyQW5pbWF0aW9uVmFsdWUmPih2YWx1ZUxpc3QuYXQoaW5kZXgpKTsKKyAgICAgICAga2V5VGlt
ZXMuYXBwZW5kKGZvcndhcmRzID8gY3VyVmFsdWUua2V5VGltZSgpIDogKDEgLSBjdXJWYWx1ZS5r
ZXlUaW1lKCkpKTsKIAotICAgICAgICBpZiAoY3VyVmFsdWUtPnZhbHVlKCktPm9wZXJhdGlvbnMo
KS5zaXplKCkgPiBzdGF0aWNfY2FzdDxzaXplX3Q+KGZ1bmN0aW9uSW5kZXgpKQotICAgICAgICAg
ICAgdmFsdWVzLmFwcGVuZChjdXJWYWx1ZS0+dmFsdWUoKS0+b3BlcmF0aW9ucygpW2Z1bmN0aW9u
SW5kZXhdKTsKKyAgICAgICAgaWYgKGN1clZhbHVlLnZhbHVlKCkub3BlcmF0aW9ucygpLnNpemUo
KSA+IHN0YXRpY19jYXN0PHNpemVfdD4oZnVuY3Rpb25JbmRleCkpCisgICAgICAgICAgICB2YWx1
ZXMuYXBwZW5kKGN1clZhbHVlLnZhbHVlKCkub3BlcmF0aW9ucygpW2Z1bmN0aW9uSW5kZXhdKTsK
ICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBpZiAoIWRlZmF1bHRPcGVyYXRpb24pCiAgICAg
ICAgICAgICAgICAgZGVmYXVsdE9wZXJhdGlvbiA9IERlZmF1bHRGaWx0ZXJPcGVyYXRpb246OmNy
ZWF0ZShmaWx0ZXJPcCk7CkBAIC0yNTE1LDcgKzI1MTYsNyBAQCBib29sIEdyYXBoaWNzTGF5ZXJD
QTo6c2V0RmlsdGVyQW5pbWF0aW9uS2V5ZnJhbWVzKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiB2
YWx1ZQogICAgICAgICB9CiAKICAgICAgICAgaWYgKGkgPCAodmFsdWVMaXN0LnNpemUoKSAtIDEp
KQotICAgICAgICAgICAgdGltaW5nRnVuY3Rpb25zLmFwcGVuZCh0aW1pbmdGdW5jdGlvbkZvckFu
aW1hdGlvblZhbHVlKGZvcndhcmRzID8gY3VyVmFsdWUgOiB2YWx1ZUxpc3QuYXQoaW5kZXggLSAx
KSwgYW5pbWF0aW9uKSk7CisgICAgICAgICAgICB0aW1pbmdGdW5jdGlvbnMuYXBwZW5kKHRpbWlu
Z0Z1bmN0aW9uRm9yQW5pbWF0aW9uVmFsdWUoZm9yd2FyZHMgPyBjdXJWYWx1ZSA6IHZhbHVlTGlz
dC5hdChpbmRleCAtIDEpLCAqYW5pbWF0aW9uKSk7CiAgICAgfQogICAgIAogICAgIGtleWZyYW1l
QW5pbS0+c2V0S2V5VGltZXMoa2V5VGltZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaAppbmRleCAwMmMwMjI3ZTk4YzZj
NTJlODk0M2FkYWJkZDhlMGM5NGE2MTRhNTIwLi4wOWNjY2U0NTFmNzYxNTI3NzM2MzNjYWVhMDkx
NDY5NGU2MWRlZDRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYS9HcmFwaGljc0xheWVyQ0EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaApAQCAtMjA1LDcgKzIwNSw3IEBAIHByaXZhdGU6CiAg
ICAgUGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBjcmVhdGVLZXlmcmFtZUFuaW1hdGlv
bihjb25zdCBBbmltYXRpb24qLCBjb25zdCBTdHJpbmcmLCBib29sIGFkZGl0aXZlKTsKICAgICB2
b2lkIHNldHVwQW5pbWF0aW9uKFBsYXRmb3JtQ0FBbmltYXRpb24qLCBjb25zdCBBbmltYXRpb24q
LCBib29sIGFkZGl0aXZlKTsKICAgICAKLSAgICBjb25zdCBUaW1pbmdGdW5jdGlvbiogdGltaW5n
RnVuY3Rpb25Gb3JBbmltYXRpb25WYWx1ZShjb25zdCBBbmltYXRpb25WYWx1ZSosIGNvbnN0IEFu
aW1hdGlvbiopOworICAgIGNvbnN0IFRpbWluZ0Z1bmN0aW9uKiB0aW1pbmdGdW5jdGlvbkZvckFu
aW1hdGlvblZhbHVlKGNvbnN0IEFuaW1hdGlvblZhbHVlJiwgY29uc3QgQW5pbWF0aW9uJik7CiAg
ICAgCiAgICAgYm9vbCBzZXRBbmltYXRpb25FbmRwb2ludHMoY29uc3QgS2V5ZnJhbWVWYWx1ZUxp
c3QmLCBjb25zdCBBbmltYXRpb24qLCBQbGF0Zm9ybUNBQW5pbWF0aW9uKik7CiAgICAgYm9vbCBz
ZXRBbmltYXRpb25LZXlmcmFtZXMoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmLCBjb25zdCBBbmlt
YXRpb24qLCBQbGF0Zm9ybUNBQW5pbWF0aW9uKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCmluZGV4IDBmNDM0MTQyOTdkYzNhZWFhOTQ5MjJl
YTU5NmNmMzE3MTRkZTg5N2YuLjMwMjNmNzcyMTQ5YzQ4NzFjZGMwYmU3ZTNlOWJlYzJmYTQzODIy
OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tp
bmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcu
Y3BwCkBAIC0yMTA3LDE0ICsyMTA3LDE0IEBAIGJvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjpzdGFy
dEFuaW1hdGlvbihkb3VibGUgdGltZU9mZnNldCwgY29uc3QgQW5pbWF0aW9uKiBhbmltCiAgICAg
ICAgIAogICAgICAgICBib29sIGlzRmlyc3RPckxhc3RLZXlmcmFtZSA9IGtleSA9PSAwIHx8IGtl
eSA9PSAxOwogICAgICAgICBpZiAoKGhhc1RyYW5zZm9ybSAmJiBpc0ZpcnN0T3JMYXN0S2V5ZnJh
bWUpIHx8IGN1cnJlbnRLZXlmcmFtZS5jb250YWluc1Byb3BlcnR5KENTU1Byb3BlcnR5V2Via2l0
VHJhbnNmb3JtKSkKLSAgICAgICAgICAgIHRyYW5zZm9ybVZlY3Rvci5pbnNlcnQobmV3IFRyYW5z
Zm9ybUFuaW1hdGlvblZhbHVlKGtleSwgJihrZXlmcmFtZVN0eWxlLT50cmFuc2Zvcm0oKSksIHRm
KSk7Ci0gICAgICAgIAorICAgICAgICAgICAgdHJhbnNmb3JtVmVjdG9yLmluc2VydChUcmFuc2Zv
cm1BbmltYXRpb25WYWx1ZTo6Y3JlYXRlKGtleSwga2V5ZnJhbWVTdHlsZS0+dHJhbnNmb3JtKCks
IHRmKSk7CisKICAgICAgICAgaWYgKChoYXNPcGFjaXR5ICYmIGlzRmlyc3RPckxhc3RLZXlmcmFt
ZSkgfHwgY3VycmVudEtleWZyYW1lLmNvbnRhaW5zUHJvcGVydHkoQ1NTUHJvcGVydHlPcGFjaXR5
KSkKLSAgICAgICAgICAgIG9wYWNpdHlWZWN0b3IuaW5zZXJ0KG5ldyBGbG9hdEFuaW1hdGlvblZh
bHVlKGtleSwga2V5ZnJhbWVTdHlsZS0+b3BhY2l0eSgpLCB0ZikpOworICAgICAgICAgICAgb3Bh
Y2l0eVZlY3Rvci5pbnNlcnQoRmxvYXRBbmltYXRpb25WYWx1ZTo6Y3JlYXRlKGtleSwga2V5ZnJh
bWVTdHlsZS0+b3BhY2l0eSgpLCB0ZikpOwogCiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQogICAg
ICAgICBpZiAoKGhhc0ZpbHRlciAmJiBpc0ZpcnN0T3JMYXN0S2V5ZnJhbWUpIHx8IGN1cnJlbnRL
ZXlmcmFtZS5jb250YWluc1Byb3BlcnR5KENTU1Byb3BlcnR5V2Via2l0RmlsdGVyKSkKLSAgICAg
ICAgICAgIGZpbHRlclZlY3Rvci5pbnNlcnQobmV3IEZpbHRlckFuaW1hdGlvblZhbHVlKGtleSwg
JihrZXlmcmFtZVN0eWxlLT5maWx0ZXIoKSksIHRmKSk7CisgICAgICAgICAgICBmaWx0ZXJWZWN0
b3IuaW5zZXJ0KEZpbHRlckFuaW1hdGlvblZhbHVlOjpjcmVhdGUoa2V5LCBrZXlmcmFtZVN0eWxl
LT5maWx0ZXIoKSwgdGYpKTsKICNlbmRpZgogICAgIH0KIApAQCAtMjE2Niw4ICsyMTY2LDggQEAg
Ym9vbCBSZW5kZXJMYXllckJhY2tpbmc6OnN0YXJ0VHJhbnNpdGlvbihkb3VibGUgdGltZU9mZnNl
dCwgQ1NTUHJvcGVydHlJRCBwcm9wZXIKICAgICAgICAgY29uc3QgQW5pbWF0aW9uKiBvcGFjaXR5
QW5pbSA9IHRvU3R5bGUtPnRyYW5zaXRpb25Gb3JQcm9wZXJ0eShDU1NQcm9wZXJ0eU9wYWNpdHkp
OwogICAgICAgICBpZiAob3BhY2l0eUFuaW0gJiYgIW9wYWNpdHlBbmltLT5pc0VtcHR5T3JaZXJv
RHVyYXRpb24oKSkgewogICAgICAgICAgICAgS2V5ZnJhbWVWYWx1ZUxpc3Qgb3BhY2l0eVZlY3Rv
cihBbmltYXRlZFByb3BlcnR5T3BhY2l0eSk7Ci0gICAgICAgICAgICBvcGFjaXR5VmVjdG9yLmlu
c2VydChuZXcgRmxvYXRBbmltYXRpb25WYWx1ZSgwLCBjb21wb3NpdGluZ09wYWNpdHkoZnJvbVN0
eWxlLT5vcGFjaXR5KCkpKSk7Ci0gICAgICAgICAgICBvcGFjaXR5VmVjdG9yLmluc2VydChuZXcg
RmxvYXRBbmltYXRpb25WYWx1ZSgxLCBjb21wb3NpdGluZ09wYWNpdHkodG9TdHlsZS0+b3BhY2l0
eSgpKSkpOworICAgICAgICAgICAgb3BhY2l0eVZlY3Rvci5pbnNlcnQoRmxvYXRBbmltYXRpb25W
YWx1ZTo6Y3JlYXRlKDAsIGNvbXBvc2l0aW5nT3BhY2l0eShmcm9tU3R5bGUtPm9wYWNpdHkoKSkp
KTsKKyAgICAgICAgICAgIG9wYWNpdHlWZWN0b3IuaW5zZXJ0KEZsb2F0QW5pbWF0aW9uVmFsdWU6
OmNyZWF0ZSgxLCBjb21wb3NpdGluZ09wYWNpdHkodG9TdHlsZS0+b3BhY2l0eSgpKSkpOwogICAg
ICAgICAgICAgLy8gVGhlIGJveFNpemUgcGFyYW0gaXMgb25seSB1c2VkIGZvciB0cmFuc2Zvcm0g
YW5pbWF0aW9ucyAod2hpY2ggY2FuIG9ubHkgcnVuIG9uIFJlbmRlckJveGVzKSwgc28gd2UgcGFz
cyBhbiBlbXB0eSBzaXplIGhlcmUuCiAgICAgICAgICAgICBpZiAobV9ncmFwaGljc0xheWVyLT5h
ZGRBbmltYXRpb24ob3BhY2l0eVZlY3RvciwgSW50U2l6ZSgpLCBvcGFjaXR5QW5pbSwgR3JhcGhp
Y3NMYXllcjo6YW5pbWF0aW9uTmFtZUZvclRyYW5zaXRpb24oQW5pbWF0ZWRQcm9wZXJ0eU9wYWNp
dHkpLCB0aW1lT2Zmc2V0KSkgewogICAgICAgICAgICAgICAgIC8vIFRvIGVuc3VyZSB0aGF0IHRo
ZSBjb3JyZWN0IG9wYWNpdHkgaXMgdmlzaWJsZSB3aGVuIHRoZSBhbmltYXRpb24gZW5kcywgYWxz
byBzZXQgdGhlIGZpbmFsIG9wYWNpdHkuCkBAIC0yMTgxLDggKzIxODEsOCBAQCBib29sIFJlbmRl
ckxheWVyQmFja2luZzo6c3RhcnRUcmFuc2l0aW9uKGRvdWJsZSB0aW1lT2Zmc2V0LCBDU1NQcm9w
ZXJ0eUlEIHByb3BlcgogICAgICAgICBjb25zdCBBbmltYXRpb24qIHRyYW5zZm9ybUFuaW0gPSB0
b1N0eWxlLT50cmFuc2l0aW9uRm9yUHJvcGVydHkoQ1NTUHJvcGVydHlXZWJraXRUcmFuc2Zvcm0p
OwogICAgICAgICBpZiAodHJhbnNmb3JtQW5pbSAmJiAhdHJhbnNmb3JtQW5pbS0+aXNFbXB0eU9y
WmVyb0R1cmF0aW9uKCkpIHsKICAgICAgICAgICAgIEtleWZyYW1lVmFsdWVMaXN0IHRyYW5zZm9y
bVZlY3RvcihBbmltYXRlZFByb3BlcnR5V2Via2l0VHJhbnNmb3JtKTsKLSAgICAgICAgICAgIHRy
YW5zZm9ybVZlY3Rvci5pbnNlcnQobmV3IFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlKDAsICZmcm9t
U3R5bGUtPnRyYW5zZm9ybSgpKSk7Ci0gICAgICAgICAgICB0cmFuc2Zvcm1WZWN0b3IuaW5zZXJ0
KG5ldyBUcmFuc2Zvcm1BbmltYXRpb25WYWx1ZSgxLCAmdG9TdHlsZS0+dHJhbnNmb3JtKCkpKTsK
KyAgICAgICAgICAgIHRyYW5zZm9ybVZlY3Rvci5pbnNlcnQoVHJhbnNmb3JtQW5pbWF0aW9uVmFs
dWU6OmNyZWF0ZSgwLCBmcm9tU3R5bGUtPnRyYW5zZm9ybSgpKSk7CisgICAgICAgICAgICB0cmFu
c2Zvcm1WZWN0b3IuaW5zZXJ0KFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlOjpjcmVhdGUoMSwgdG9T
dHlsZS0+dHJhbnNmb3JtKCkpKTsKICAgICAgICAgICAgIGlmIChtX2dyYXBoaWNzTGF5ZXItPmFk
ZEFuaW1hdGlvbih0cmFuc2Zvcm1WZWN0b3IsIHRvUmVuZGVyQm94KHJlbmRlcmVyKCkpLT5waXhl
bFNuYXBwZWRCb3JkZXJCb3hSZWN0KCkuc2l6ZSgpLCB0cmFuc2Zvcm1BbmltLCBHcmFwaGljc0xh
eWVyOjphbmltYXRpb25OYW1lRm9yVHJhbnNpdGlvbihBbmltYXRlZFByb3BlcnR5V2Via2l0VHJh
bnNmb3JtKSwgdGltZU9mZnNldCkpIHsKICAgICAgICAgICAgICAgICAvLyBUbyBlbnN1cmUgdGhh
dCB0aGUgY29ycmVjdCB0cmFuc2Zvcm0gaXMgdmlzaWJsZSB3aGVuIHRoZSBhbmltYXRpb24gZW5k
cywgYWxzbyBzZXQgdGhlIGZpbmFsIHRyYW5zZm9ybS4KICAgICAgICAgICAgICAgICB1cGRhdGVU
cmFuc2Zvcm0odG9TdHlsZSk7CkBAIC0yMTk2LDggKzIxOTYsOCBAQCBib29sIFJlbmRlckxheWVy
QmFja2luZzo6c3RhcnRUcmFuc2l0aW9uKGRvdWJsZSB0aW1lT2Zmc2V0LCBDU1NQcm9wZXJ0eUlE
IHByb3BlcgogICAgICAgICBjb25zdCBBbmltYXRpb24qIGZpbHRlckFuaW0gPSB0b1N0eWxlLT50
cmFuc2l0aW9uRm9yUHJvcGVydHkoQ1NTUHJvcGVydHlXZWJraXRGaWx0ZXIpOwogICAgICAgICBp
ZiAoZmlsdGVyQW5pbSAmJiAhZmlsdGVyQW5pbS0+aXNFbXB0eU9yWmVyb0R1cmF0aW9uKCkpIHsK
ICAgICAgICAgICAgIEtleWZyYW1lVmFsdWVMaXN0IGZpbHRlclZlY3RvcihBbmltYXRlZFByb3Bl
cnR5V2Via2l0RmlsdGVyKTsKLSAgICAgICAgICAgIGZpbHRlclZlY3Rvci5pbnNlcnQobmV3IEZp
bHRlckFuaW1hdGlvblZhbHVlKDAsICZmcm9tU3R5bGUtPmZpbHRlcigpKSk7Ci0gICAgICAgICAg
ICBmaWx0ZXJWZWN0b3IuaW5zZXJ0KG5ldyBGaWx0ZXJBbmltYXRpb25WYWx1ZSgxLCAmdG9TdHls
ZS0+ZmlsdGVyKCkpKTsKKyAgICAgICAgICAgIGZpbHRlclZlY3Rvci5pbnNlcnQoRmlsdGVyQW5p
bWF0aW9uVmFsdWU6OmNyZWF0ZSgwLCBmcm9tU3R5bGUtPmZpbHRlcigpKSk7CisgICAgICAgICAg
ICBmaWx0ZXJWZWN0b3IuaW5zZXJ0KEZpbHRlckFuaW1hdGlvblZhbHVlOjpjcmVhdGUoMSwgdG9T
dHlsZS0+ZmlsdGVyKCkpKTsKICAgICAgICAgICAgIGlmIChtX2dyYXBoaWNzTGF5ZXItPmFkZEFu
aW1hdGlvbihmaWx0ZXJWZWN0b3IsIEludFNpemUoKSwgZmlsdGVyQW5pbSwgR3JhcGhpY3NMYXll
cjo6YW5pbWF0aW9uTmFtZUZvclRyYW5zaXRpb24oQW5pbWF0ZWRQcm9wZXJ0eVdlYmtpdEZpbHRl
ciksIHRpbWVPZmZzZXQpKSB7CiAgICAgICAgICAgICAgICAgLy8gVG8gZW5zdXJlIHRoYXQgdGhl
IGNvcnJlY3QgZmlsdGVyIGlzIHZpc2libGUgd2hlbiB0aGUgYW5pbWF0aW9uIGVuZHMsIGFsc28g
c2V0IHRoZSBmaW5hbCBmaWx0ZXIuCiAgICAgICAgICAgICAgICAgdXBkYXRlRmlsdGVycyh0b1N0
eWxlKTsK
</data>
<flag name="review"
          id="222122"
          type_id="1"
          status="-"
          setter="simon.fraser"
    />
    <flag name="commit-queue"
          id="222123"
          type_id="3"
          status="-"
          setter="eflews.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>