<?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>226711</bug_id>
          
          <creation_ts>2021-06-07 00:55:04 -0700</creation_ts>
          <short_desc>[MSE] Rework handling of SourceBuffer&apos;s buffer full.</short_desc>
          <delta_ts>2021-06-08 05:30:01 -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>Media</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=225630</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=226034</see_also>
          <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="Jean-Yves Avenard [:jya]">jean-yves.avenard</reporter>
          <assigned_to name="Jean-Yves Avenard [:jya]">jean-yves.avenard</assigned_to>
          <cc>calvaris</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1767338</commentid>
    <comment_count>0</comment_count>
    <who name="Jean-Yves Avenard [:jya]">jean-yves.avenard</who>
    <bug_when>2021-06-07 00:55:04 -0700</bug_when>
    <thetext>Follow-up from https://bugs.webkit.org/show_bug.cgi?id=225630#c9

bug 225630 changed the logic on how we are to reject an append only after one has already been added.

One downside of the change was also that it broke the class separation between SourceBuffer and SourceBufferPrivate ; it is preferable to have all the handling of buffer size in the SourceBufferPrivate which avoid ambiguities as discussed in bug https://bugs.webkit.org/show_bug.cgi?id=226034</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767340</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-06-07 00:58:09 -0700</bug_when>
    <thetext>&lt;rdar://problem/78937909&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767371</commentid>
    <comment_count>2</comment_count>
      <attachid>430730</attachid>
    <who name="Jean-Yves Avenard [:jya]">jean-yves.avenard</who>
    <bug_when>2021-06-07 02:06:34 -0700</bug_when>
    <thetext>Created attachment 430730
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767600</commentid>
    <comment_count>3</comment_count>
      <attachid>430730</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-06-07 16:43:24 -0700</bug_when>
    <thetext>Comment on attachment 430730
Patch

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

&gt; Source/WebCore/platform/graphics/SourceBufferPrivate.cpp:726
&gt; +    if (WTF::sumOverflows&lt;uint64_t&gt;(totalTrackBufferSizeInBytes(), requiredSize))
&gt; +        return true;
&gt; +
&gt; +    return totalTrackBufferSizeInBytes() + requiredSize &gt;= maximumBufferSize;

Irrespective of the overall patch, this performs the addition twice. It would probably be more efficient to do something like:

uint64_t totalRequired = 0;
if (CheckedState::DidOverflow == CheckedSum(totalTrackBufferSizeInBytes(), requiredSize).safeGet(totalRequired);
    return true;
return totalRequired &gt;= maximumBufferSize;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767661</commentid>
    <comment_count>4</comment_count>
      <attachid>430806</attachid>
    <who name="Jean-Yves Avenard [:jya]">jean-yves.avenard</who>
    <bug_when>2021-06-07 21:27:54 -0700</bug_when>
    <thetext>Created attachment 430806
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767683</commentid>
    <comment_count>5</comment_count>
      <attachid>430806</attachid>
    <who name="Jean-Yves Avenard [:jya]">jean-yves.avenard</who>
    <bug_when>2021-06-07 23:43:52 -0700</bug_when>
    <thetext>Comment on attachment 430806
Patch

test failures unrelated to media&apos;s MSE</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767684</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-07 23:44:15 -0700</bug_when>
    <thetext>jean-yves.avenard@apple.com does not have committer permissions according to https://raw.githubusercontent.com/WebKit/WebKit/main/Tools/Scripts/webkitpy/common/config/contributors.json.

Rejecting attachment 430806 from commit queue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767693</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-08 00:41:04 -0700</bug_when>
    <thetext>jean-yves.avenard@apple.com does not have committer permissions according to https://raw.githubusercontent.com/WebKit/WebKit/main/Tools/Scripts/webkitpy/common/config/contributors.json.

Rejecting attachment 430806 from commit queue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767733</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-08 03:52:11 -0700</bug_when>
    <thetext>jean-yves.avenard@apple.com does not have committer permissions according to https://raw.githubusercontent.com/WebKit/WebKit/main/Tools/Scripts/webkitpy/common/config/contributors.json.

Rejecting attachment 430806 from commit queue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767744</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-08 05:29:58 -0700</bug_when>
    <thetext>Committed r278603 (238592@main): &lt;https://commits.webkit.org/238592@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 430806.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430730</attachid>
            <date>2021-06-07 02:06:34 -0700</date>
            <delta_ts>2021-06-07 21:27:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226711-20210607190633.patch</filename>
            <type>text/plain</type>
            <size>25405</size>
            <attacher name="Jean-Yves Avenard [:jya]">jean-yves.avenard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MzM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTdmZjMxNzFhMzJjODRk
ZTk2YmQ4NGU0NzRmNmIzZjc0ODU2NTY2OC4uZjI2YTRlYjk0Y2VmMzQ2ZmMwNzAwMzZlOTk5MTk5
YjA4YTNiZjM4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDIxLTA2LTA3ICBKZWFu
LVl2ZXMgQXZlbmFyZCAgPGp5YUBhcHBsZS5jb20+CisKKyAgICAgICAgW01TRV0gUmV3b3JrIGhh
bmRsaW5nIG9mIFNvdXJjZUJ1ZmZlcidzIGJ1ZmZlciBmdWxsLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2NzExCisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS83ODkzNzkwOT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBCdWcgMjI1NjMwIG1vZGlmaWVkIHRoZSBoYW5kbGluZyBvZiB0aGUgU291cmNlIEJ1
ZmZlciAiYnVmZmVyIGZ1bGwiIGFsZ29yaXRobS4KKyAgICAgICAgUGVyIHNwZWMsIHdlIGFyZSB0
byByZWplY3QgYSBidWZmZXIgb25seSBvbmNlIHdlIGtub3cgdGhhdCB0aGUgc291cmNlIGJ1ZmZl
ciBpcyBmdWxsLgorICAgICAgICBUaGUgZmlyc3QgYXBwZW5kQnVmZmVyIHNob3VsZCBhbHdheXMg
Y29tcGxldGUuCisgICAgICAgIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9tZWRpYS1zb3VyY2UvI3Nv
dXJjZWJ1ZmZlci1idWZmZXItZnVsbC1mbGFnCisgICAgICAgICJUaGUgYnVmZmVyIGZ1bGwgZmxh
ZyBrZWVwcyB0cmFjayBvZiB3aGV0aGVyIGFwcGVuZEJ1ZmZlcigpIGlzIGFsbG93ZWQgdG8gYWNj
ZXB0CisgICAgICAgICBtb3JlIGJ5dGVzLiBJdCBpcyBzZXQgdG8gZmFsc2Ugd2hlbiB0aGUgU291
cmNlQnVmZmVyIG9iamVjdCBpcyBjcmVhdGVkIGFuZCBnZXRzCisgICAgICAgICB1cGRhdGVkIGFz
IGRhdGEgaXMgYXBwZW5kZWQgYW5kIHJlbW92ZWQuIgorCisgICAgICAgICJidWZmZXIgZnVsbCBm
bGFnIiBvbmx5IGdldHMgbW9kaWZpZWQgdG8gdHJ1ZSBpbiB0aGUgMy41LjEgU2VnbWVudCBQYXJz
ZXIgTG9vcAorICAgICAgICBhbGdvcml0aG0sIHN0ZXAgNi4zCisgICAgICAgIGh0dHBzOi8vdzNj
LmdpdGh1Yi5pby9tZWRpYS1zb3VyY2UvI3NvdXJjZWJ1ZmZlci1zZWdtZW50LXBhcnNlci1sb29w
CisgICAgICAgICJJZiB0aGlzIFNvdXJjZUJ1ZmZlciBpcyBmdWxsIGFuZCBjYW5ub3QgYWNjZXB0
IG1vcmUgbWVkaWEgZGF0YSwgdGhlbiBzZXQgdGhlCisgICAgICAgICBidWZmZXIgZnVsbCBmbGFn
IHRvIHRydWUuIgorCisgICAgICAgIE9uIHRoZSAybmQgY2FsbCB0byB0aGUgYXBwZW5kQnVmZmVy
LCBpbiB0aGUgUHJlcGFyZSBBcHBlbmQgYWxnb3JpdGhtLCBzdGVwIDMuNS40LjY6CisgICAgICAg
IGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9tZWRpYS1zb3VyY2UvI3NvdXJjZWJ1ZmZlci1wcmVwYXJl
LWFwcGVuZAorCisgICAgICAgICJJZiB0aGUgYnVmZmVyIGZ1bGwgZmxhZyBlcXVhbHMgdHJ1ZSwg
dGhlbiB0aHJvdyBhIFF1b3RhRXhjZWVkZWRFcnJvciBleGNlcHRpb24KKyAgICAgICAgIGFuZCBh
Ym9ydCB0aGVzZSBzdGVwcy4iCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgbW92ZXMgdGhlIGNoZWNr
IG9mIHRoZSBzb3VyY2UgYnVmZmVyIHNpemUgYmFjayBpbnRvIFNvdXJjZUJ1ZmZlclByaXZhdGUK
KyAgICAgICAgc28gdGhhdCBjaGVja2luZyBpZiB3ZSBoYXZlIHN1ZmZpY2llbnQgc3BhY2Ugb3Ig
bm90IGlzIGhpZGRlbiBmcm9tIHRoZSBTb3VyY2VCdWZmZXIuCisgICAgICAgIFJhdGhlciB0aGFu
IGRlYWwgd2l0aCBhIHNpbmdsZSAiYnVmZmVyIGZ1bGwiIGZsYWcsIHdlIHVzZSBpbnN0ZWFkIGEg
aXNCdWZmZXJGdWxsRm9yKCkKKyAgICAgICAgbWV0aG9kIHdoaWNoIGFsbG93cyB0byBlYXNpbHkg
c3dhcCBiZXR3ZWVuIHRoZSBwcmV2aW91cyBwZXItc3BlYyBiZWhhdmlvdXIgYW5kIHRoZQorICAg
ICAgICBvbmUgaW50cm9kdWNlZCBieSBidWcgMjI1NjMwIGFzIGl0IGRvZXMgcHJlc2VudCBzb21l
IGFkdmFudGFnZXMuCisgICAgICAgIFdlIGNhbiBhbHdheXMgZGV0ZXJtaW5lIGlmIHdlIGhhdmUg
c3VmZmljaWVudCBzcGFjZSBieSBjaGVja2luZyB0aGUgY3VycmVudCBzb3VyY2UKKyAgICAgICAg
YnVmZmVyIG1lbW9yeSBzaXplIGFuZCB0aGUgcmVxdWVzdGVkIGxpbWl0LgorICAgICAgICBUaGUg
cHJldmlvdXMgYWxnb3JpdGhtIHRvb2sgaW50byBjb25zaWRlcmF0aW9uIHRoZSBhbGxvY2F0ZWQg
Y2FwYWNpdHkgb2YgdGhlCisgICAgICAgIHRlbXBvcmFyeSBTb3VyY2VCdWZmZXI6Om1fcGVuZGlu
Z0FwcGVuZERhdGEgOyB0aGlzIGFwcHJvYWNoIHdhcyBmbGF3ZWQgaW4gdGhhdCB3ZQorICAgICAg
ICBhbHdheXMgY2hlY2tlZCBpZiBtX3BlbmRpbmdBcHBlbmREYXRhLmNhcGFjaXR5ICsgbmV3RGF0
YVNpemUgd291bGQgZml0IGluIHRoZQorICAgICAgICBzb3VyY2UgYnVmZmVyLiBIb3dldmVyIG5l
d0RhdGFTaXplIHdvdWxkIGFsd2F5cyBoYXBwZW4gdG8gZml0IHdpdGhpbiB0aGUgZXhpc3RpbmcK
KyAgICAgICAgY2FwYWNpdHksIHNvIGl0IHdhcyBhY2NvdW50ZWQgZm9yIHR3aWNlLgorICAgICAg
ICBXZSByZW1vdmUgY2hlY2sgb24gdGhlIGNhcGFjaXR5IGFsbG9jYXRlZCBhcyBpdCBzaW1wbGlm
aWVzIHRoZSBjb2RlIGEgZ3JlYXQgZGVhbCwKKyAgICAgICAgYW5kIGF2b2lkIHRoZSBwaWdneS1i
YWNraW5nIG9mIHVucmVsYXRlZCBtZXRob2RzIChzdWNoIGFzCisgICAgICAgIFNvdXJjZUJ1ZmZl
clByaXZhdGU6OnJlZW5xdWV1ZU1lZGlhSWZOZWVkZWQgdGhhdCBlbmRlZCB1cCBhbHNvIGNoZWNr
aW5nIGNhcGFjaXR5KQorCisgICAgICAgIFRoaXMgY2hhbmdlIGlzIGFscmVhZHkgY292ZXJlZCB3
aXRoIGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3Vy
Y2VCdWZmZXIuY3BwOiBjYWxsIG5ldyBpc0J1ZmZlckZ1bGxGb3IgdG8gY2hlY2sgaWYKKyAgICAg
ICAgc3VmZmljaWVudCBpcyBhdmFpbGFibGUuCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZm
ZXI6OmFwcGVuZEJ1ZmZlckludGVybmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZl
cjo6c291cmNlQnVmZmVyUHJpdmF0ZUFwcGVuZENvbXBsZXRlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9Tb3VyY2VCdWZmZXJQcml2YXRlLmg6IEFkZCBpc0J1ZmZlckZ1bGxGb3IgbWV0
aG9kCisgICAgICAgIHJlbW92ZSBtX2J1ZmZlckZ1bGwgbWVtYmVyLgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL1NvdXJjZUJ1ZmZlclByaXZhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U291cmNlQnVmZmVyUHJpdmF0ZTo6cmVlbnF1ZXVlTWVkaWFJZk5lZWRlZCk6IHJlbW92ZSByZWZl
cmVuY2UgdG8KKyAgICAgICAgYnVmZmVyIGNhcGFjaXR5CisgICAgICAgIChXZWJDb3JlOjpTb3Vy
Y2VCdWZmZXJQcml2YXRlOjpldmljdENvZGVkRnJhbWVzKTogcmVtb3ZlIHJlZmVyZW5jZSB0bwor
ICAgICAgICBidWZmZXIgY2FwYWNpdHkKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclBy
aXZhdGU6OmlzQnVmZmVyRnVsbEZvcik6IFRvIGdldCBwZXItc3BlYyBiZWhhdmlvdXIKKyAgICAg
ICAgd2Ugb25seSBuZWVkIHRvIHN0b3AgY2hlY2tpbmcgdGhlIHZhbHVlIG9mIHRoZSByZXF1aXJl
ZFNpemUgYXJndW1lbnQuCisKIDIwMjEtMDYtMDQgIEplYW4tWXZlcyBBdmVuYXJkICA8anlhQGFw
cGxlLmNvbT4KIAogICAgICAgICBbR1BVUF1bTVNFXSBRdW90YUV4Y2VlZGVkRXJyb3IgRXhjZXB0
aW9uIG5vdCB0aHJvd24gZXZlbiBpZiB0aGUgc3VtIG9mIHRvdGFsVHJhY2tCdWZmZXJTaXplIGFu
ZCBhcHBlbmRCdWZmZXIgc2l6ZSBleGNlZWRzIG1heGltdW1CdWZmZXJTaXplCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4
IDk3ZjY1MGViN2Y2NDIzODEzMWIxZGVjODFiYjhkY2FhMmZlMDJkNDcuLjIxNjIyNTljNzc4ODcw
MGJiZmMwZDdlMjBiZTNlNjVlYzRmMWY5ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIw
MjEtMDYtMDcgIEplYW4tWXZlcyBBdmVuYXJkICA8anlhQGFwcGxlLmNvbT4KKworICAgICAgICBb
TVNFXSBSZXdvcmsgaGFuZGxpbmcgb2YgU291cmNlQnVmZmVyJ3MgYnVmZmVyIGZ1bGwuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjY3MTEKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzc4OTM3OTA5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVTb3VyY2VCdWZm
ZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5Ojpl
dmljdENvZGVkRnJhbWVzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU291cmNlQnVmZmVyUHJv
eHk6OnJlZW5xdWV1ZU1lZGlhSWZOZWVkZWQpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlU291cmNlQnVmZmVyUHJveHkuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZVNvdXJjZUJ1ZmZlclByb3h5Lm1lc3NhZ2VzLmluOiBSZW1vdmUgY2FwYWNpdHkgYW5kCisg
ICAgICAgIGJ1ZmZlciBmdWxsIHJlZmVyZW5jZXMgZnJvbSBhbGwgbWV0aG9kczsgcmVseWluZyBv
biB0aGUgdG90YWxUcmFja0J1ZmZlclNpemVJbkJ5dGVzCisgICAgICAgIGluc3RlYWQuCisgICAg
ICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGU6OmV2aWN0Q29kZWRG
cmFtZXMpOgorICAgICAgICAoV2ViS2l0OjpTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlOjpyZWVu
cXVldWVNZWRpYUlmTmVlZGVkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9Tb3Vy
Y2VCdWZmZXJQcml2YXRlUmVtb3RlLmg6CisKIDIwMjEtMDYtMDQgIEplYW4tWXZlcyBBdmVuYXJk
ICA8anlhQGFwcGxlLmNvbT4KIAogICAgICAgICBbR1BVUF1bTVNFXSBRdW90YUV4Y2VlZGVkRXJy
b3IgRXhjZXB0aW9uIG5vdCB0aHJvd24gZXZlbiBpZiB0aGUgc3VtIG9mIHRvdGFsVHJhY2tCdWZm
ZXJTaXplIGFuZCBhcHBlbmRCdWZmZXIgc2l6ZSBleGNlZWRzIG1heGltdW1CdWZmZXJTaXplCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5j
cHAKaW5kZXggOGRlMWZkY2FlZTkzNDczOWRhNjkyNTAyYWZmMGQ1OTg1YWUxY2VkZC4uYTA1MjQ1
MzUxMjFhNTdmYmRmNTg3YWE0YzAyYTRkNjZmMDMyYzI0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcApAQCAtNDg4LDEwICs0
ODgsMTAgQEAgRXhjZXB0aW9uT3I8dm9pZD4gU291cmNlQnVmZmVyOjphcHBlbmRCdWZmZXJJbnRl
cm5hbChjb25zdCB1bnNpZ25lZCBjaGFyKiBkYXRhLAogICAgIG1fc291cmNlLT5vcGVuSWZJbkVu
ZGVkU3RhdGUoKTsKIAogICAgIC8vIDQuIFJ1biB0aGUgY29kZWQgZnJhbWUgZXZpY3Rpb24gYWxn
b3JpdGhtLgotICAgIG1fcHJpdmF0ZS0+ZXZpY3RDb2RlZEZyYW1lcyhzaXplLCBtX3BlbmRpbmdB
cHBlbmREYXRhLnNpemUoKSwgbWF4aW11bUJ1ZmZlclNpemUoKSwgbV9zb3VyY2UtPmN1cnJlbnRU
aW1lKCksIG1fc291cmNlLT5kdXJhdGlvbigpLCBtX3NvdXJjZS0+aXNFbmRlZCgpKTsKKyAgICBt
X3ByaXZhdGUtPmV2aWN0Q29kZWRGcmFtZXMoc2l6ZSwgbWF4aW11bUJ1ZmZlclNpemUoKSwgbV9z
b3VyY2UtPmN1cnJlbnRUaW1lKCksIG1fc291cmNlLT5kdXJhdGlvbigpLCBtX3NvdXJjZS0+aXNF
bmRlZCgpKTsKIAogICAgIC8vIDUuIElmIHRoZSBidWZmZXIgZnVsbCBmbGFnIGVxdWFscyB0cnVl
LCB0aGVuIHRocm93IGEgUXVvdGFFeGNlZWRlZEVycm9yIGV4Y2VwdGlvbiBhbmQgYWJvcnQgdGhl
c2Ugc3RlcC4KLSAgICBpZiAobV9wcml2YXRlLT5idWZmZXJGdWxsKCkgfHwgbV9wcml2YXRlLT50
b3RhbFRyYWNrQnVmZmVyU2l6ZUluQnl0ZXMoKSArIG1fcGVuZGluZ0FwcGVuZERhdGEuc2l6ZSgp
ICsgc2l6ZSA+PSBtYXhpbXVtQnVmZmVyU2l6ZSgpKSB7CisgICAgaWYgKG1fcHJpdmF0ZS0+aXNC
dWZmZXJGdWxsRm9yKHNpemUsIG1heGltdW1CdWZmZXJTaXplKCkpKSB7CiAgICAgICAgIEVSUk9S
X0xPRyhMT0dJREVOVElGSUVSLCAiYnVmZmVyIGZ1bGwsIGZhaWxpbmcgd2l0aCBRdW90YUV4Y2Vl
ZGVkRXJyb3IgZXJyb3IiKTsKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFF1b3RhRXhjZWVk
ZWRFcnJvciB9OwogICAgIH0KQEAgLTU3OCw3ICs1NzgsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6
c291cmNlQnVmZmVyUHJpdmF0ZUFwcGVuZENvbXBsZXRlKEFwcGVuZFJlc3VsdCByZXN1bHQpCiAg
ICAgc2NoZWR1bGVFdmVudChldmVudE5hbWVzKCkudXBkYXRlZW5kRXZlbnQpOwogCiAgICAgbV9z
b3VyY2UtPm1vbml0b3JTb3VyY2VCdWZmZXJzKCk7Ci0gICAgbV9wcml2YXRlLT5yZWVucXVldWVN
ZWRpYUlmTmVlZGVkKG1fc291cmNlLT5jdXJyZW50VGltZSgpLCBtX3BlbmRpbmdBcHBlbmREYXRh
LmNhcGFjaXR5KCksIG1heGltdW1CdWZmZXJTaXplKCkpOworICAgIG1fcHJpdmF0ZS0+cmVlbnF1
ZXVlTWVkaWFJZk5lZWRlZChtX3NvdXJjZS0+Y3VycmVudFRpbWUoKSk7CiAKICAgICBERUJVR19M
T0coTE9HSURFTlRJRklFUik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Tb3VyY2VCdWZmZXJQcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL1NvdXJjZUJ1ZmZlclByaXZhdGUuY3BwCmluZGV4IDUyNjBjNGJmNDM0ODkx
OGRiYTlkOTAyOTVlZmQzNTQwYWU4MTJjYTguLjg3OWFmYjA0YjNlNjU1MDg3YzZmYWRhY2Q2MWYz
YTc1Njc4ZTRmMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L1NvdXJjZUJ1ZmZlclByaXZhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL1NvdXJjZUJ1ZmZlclByaXZhdGUuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVk
ZSAiU2FtcGxlTWFwLmgiCiAjaW5jbHVkZSAiU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudC5oIgog
I2luY2x1ZGUgIlRpbWVSYW5nZXMuaCIKKyNpbmNsdWRlIDx3dGYvQ2hlY2tlZEFyaXRobWV0aWMu
aD4KICNpbmNsdWRlIDx3dGYvTWVkaWFUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL1N0cmluZ1ByaW50
U3RyZWFtLmg+CiAKQEAgLTQxOSw3ICs0MjAsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGU6
OnJlZW5xdWV1ZU1lZGlhRm9yVGltZShUcmFja0J1ZmZlciYgdHJhY2tCdWZmZXIsIGNvbnN0CiAg
ICAgdHJhY2tCdWZmZXIubmVlZHNSZWVucXVldWVpbmcgPSBmYWxzZTsKIH0KIAotdm9pZCBTb3Vy
Y2VCdWZmZXJQcml2YXRlOjpyZWVucXVldWVNZWRpYUlmTmVlZGVkKGNvbnN0IE1lZGlhVGltZSYg
Y3VycmVudFRpbWUsIHVpbnQ2NF90IHBlbmRpbmdBcHBlbmREYXRhQ2FwYWNpdHksIHVpbnQ2NF90
IG1heGltdW1CdWZmZXJTaXplKQordm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlOjpyZWVucXVldWVN
ZWRpYUlmTmVlZGVkKGNvbnN0IE1lZGlhVGltZSYgY3VycmVudFRpbWUpCiB7CiAgICAgZm9yIChh
dXRvJiB0cmFja0J1ZmZlclBhaXIgOiBtX3RyYWNrQnVmZmVyTWFwKSB7CiAgICAgICAgIFRyYWNr
QnVmZmVyJiB0cmFja0J1ZmZlciA9IHRyYWNrQnVmZmVyUGFpci52YWx1ZTsKQEAgLTQzMSw5ICs0
MzIsNiBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGU6OnJlZW5xdWV1ZU1lZGlhSWZOZWVkZWQo
Y29uc3QgTWVkaWFUaW1lJiBjdXJyZW50VGltZSwgdQogICAgICAgICB9IGVsc2UKICAgICAgICAg
ICAgIHByb3ZpZGVNZWRpYURhdGEodHJhY2tCdWZmZXIsIHRyYWNrSUQpOwogICAgIH0KLQotICAg
IGlmICh0b3RhbFRyYWNrQnVmZmVyU2l6ZUluQnl0ZXMoKSArIHBlbmRpbmdBcHBlbmREYXRhQ2Fw
YWNpdHkgPiBtYXhpbXVtQnVmZmVyU2l6ZSkKLSAgICAgICAgbV9idWZmZXJGdWxsID0gdHJ1ZTsK
IH0KIAogc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZVRpbWVDb21wYXJhdG9y
KGNvbnN0IFByZXNlbnRhdGlvbk9yZGVyU2FtcGxlTWFwOjpNYXBUeXBlOjp2YWx1ZV90eXBlJiBh
LCBjb25zdCBQcmVzZW50YXRpb25PcmRlclNhbXBsZU1hcDo6TWFwVHlwZTo6dmFsdWVfdHlwZSYg
YikKQEAgLTYyOCw3ICs2MjYsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGU6OnJlbW92ZUNv
ZGVkRnJhbWVzKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVAogICAgIGNvbXBs
ZXRpb25IYW5kbGVyKCk7CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZTo6ZXZpY3RDb2Rl
ZEZyYW1lcyh1aW50NjRfdCBuZXdEYXRhU2l6ZSwgdWludDY0X3QgcGVuZGluZ0FwcGVuZERhdGFD
YXBhY2l0eSwgdWludDY0X3QgbWF4aW11bUJ1ZmZlclNpemUsIGNvbnN0IE1lZGlhVGltZSYgY3Vy
cmVudFRpbWUsIGNvbnN0IE1lZGlhVGltZSYgZHVyYXRpb24sIGJvb2wgaXNFbmRlZCkKK3ZvaWQg
U291cmNlQnVmZmVyUHJpdmF0ZTo6ZXZpY3RDb2RlZEZyYW1lcyh1aW50NjRfdCBuZXdEYXRhU2l6
ZSwgdWludDY0X3QgbWF4aW11bUJ1ZmZlclNpemUsIGNvbnN0IE1lZGlhVGltZSYgY3VycmVudFRp
bWUsIGNvbnN0IE1lZGlhVGltZSYgZHVyYXRpb24sIGJvb2wgaXNFbmRlZCkKIHsKICAgICAvLyAz
LjUuMTMgQ29kZWQgRnJhbWUgRXZpY3Rpb24gQWxnb3JpdGhtCiAgICAgLy8gaHR0cDovL3d3dy53
My5vcmcvVFIvbWVkaWEtc291cmNlLyNzb3VyY2VidWZmZXItY29kZWQtZnJhbWUtZXZpY3Rpb24K
QEAgLTYzOSw3ICs2MzcsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGU6OmV2aWN0Q29kZWRG
cmFtZXModWludDY0X3QgbmV3RGF0YVNpemUsIHVpbnQ2NF90IHBlbmRpbgogICAgIC8vIFRoaXMg
YWxnb3JpdGhtIGlzIHJ1biB0byBmcmVlIHVwIHNwYWNlIGluIHRoaXMgc291cmNlIGJ1ZmZlciB3
aGVuIG5ldyBkYXRhIGlzIGFwcGVuZGVkLgogICAgIC8vIDEuIExldCBuZXcgZGF0YSBlcXVhbCB0
aGUgZGF0YSB0aGF0IGlzIGFib3V0IHRvIGJlIGFwcGVuZGVkIHRvIHRoaXMgU291cmNlQnVmZmVy
LgogICAgIC8vIDIuIElmIHRoZSBidWZmZXIgZnVsbCBmbGFnIGVxdWFscyBmYWxzZSwgdGhlbiBh
Ym9ydCB0aGVzZSBzdGVwcy4KLSAgICBpZiAoIW1fYnVmZmVyRnVsbCAmJiB0b3RhbFRyYWNrQnVm
ZmVyU2l6ZUluQnl0ZXMoKSArIHBlbmRpbmdBcHBlbmREYXRhQ2FwYWNpdHkgKyBuZXdEYXRhU2l6
ZSA8IG1heGltdW1CdWZmZXJTaXplKQorICAgIGlmICghaXNCdWZmZXJGdWxsRm9yKG5ld0RhdGFT
aXplLCBtYXhpbXVtQnVmZmVyU2l6ZSkpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIDMuIExl
dCByZW1vdmFsIHJhbmdlcyBlcXVhbCBhIGxpc3Qgb2YgcHJlc2VudGF0aW9uIHRpbWUgcmFuZ2Vz
IHRoYXQgY2FuIGJlIGV2aWN0ZWQgZnJvbQpAQCAtNjYxLDggKzY1OSw3IEBAIHZvaWQgU291cmNl
QnVmZmVyUHJpdmF0ZTo6ZXZpY3RDb2RlZEZyYW1lcyh1aW50NjRfdCBuZXdEYXRhU2l6ZSwgdWlu
dDY0X3QgcGVuZGluCiAgICAgICAgIC8vIDQuIEZvciBlYWNoIHJhbmdlIGluIHJlbW92YWwgcmFu
Z2VzLCBydW4gdGhlIGNvZGVkIGZyYW1lIHJlbW92YWwgYWxnb3JpdGhtIHdpdGggc3RhcnQgYW5k
CiAgICAgICAgIC8vIGVuZCBlcXVhbCB0byB0aGUgcmVtb3ZhbCByYW5nZSBzdGFydCBhbmQgZW5k
IHRpbWVzdGFtcCByZXNwZWN0aXZlbHkuCiAgICAgICAgIHJlbW92ZUNvZGVkRnJhbWVzKHJhbmdl
U3RhcnQsIHN0ZDo6bWluKHJhbmdlRW5kLCBtYXhpbXVtUmFuZ2VFbmQpLCBjdXJyZW50VGltZSwg
aXNFbmRlZCk7Ci0gICAgICAgIGlmICh0b3RhbFRyYWNrQnVmZmVyU2l6ZUluQnl0ZXMoKSArIHBl
bmRpbmdBcHBlbmREYXRhQ2FwYWNpdHkgKyBuZXdEYXRhU2l6ZSA8IG1heGltdW1CdWZmZXJTaXpl
KSB7Ci0gICAgICAgICAgICBtX2J1ZmZlckZ1bGwgPSBmYWxzZTsKKyAgICAgICAgaWYgKCFpc0J1
ZmZlckZ1bGxGb3IobmV3RGF0YVNpemUsIG1heGltdW1CdWZmZXJTaXplKSkgewogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0KIApAQCAtNjcwLDcgKzY2Nyw3IEBAIHZvaWQgU291cmNlQnVm
ZmVyUHJpdmF0ZTo6ZXZpY3RDb2RlZEZyYW1lcyh1aW50NjRfdCBuZXdEYXRhU2l6ZSwgdWludDY0
X3QgcGVuZGluCiAgICAgICAgIHJhbmdlRW5kICs9IHRoaXJ0eVNlY29uZHM7CiAgICAgfQogCi0g
ICAgaWYgKCFtX2J1ZmZlckZ1bGwpIHsKKyAgICBpZiAoIWlzQnVmZmVyRnVsbEZvcihuZXdEYXRh
U2l6ZSwgbWF4aW11bUJ1ZmZlclNpemUpKSB7CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAg
ICAgICAgIERFQlVHX0xPRyhMT0dJREVOVElGSUVSLCAiZXZpY3RlZCAiLCBpbml0aWFsQnVmZmVy
ZWRTaXplIC0gdG90YWxUcmFja0J1ZmZlclNpemVJbkJ5dGVzKCkpOwogI2VuZGlmCkBAIC03MDUs
OCArNzAyLDcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlOjpldmljdENvZGVkRnJhbWVzKHVp
bnQ2NF90IG5ld0RhdGFTaXplLCB1aW50NjRfdCBwZW5kaW4KICAgICAgICAgLy8gZW5kIGVxdWFs
IHRvIHRoZSByZW1vdmFsIHJhbmdlIHN0YXJ0IGFuZCBlbmQgdGltZXN0YW1wIHJlc3BlY3RpdmVs
eS4KICAgICAgICAgcmVtb3ZlQ29kZWRGcmFtZXMoc3RkOjptYXgobWluaW11bVJhbmdlU3RhcnQs
IHJhbmdlU3RhcnQpLCByYW5nZUVuZCwgY3VycmVudFRpbWUsIGlzRW5kZWQpOwogCi0gICAgICAg
IGlmICh0b3RhbFRyYWNrQnVmZmVyU2l6ZUluQnl0ZXMoKSArIHBlbmRpbmdBcHBlbmREYXRhQ2Fw
YWNpdHkgKyBuZXdEYXRhU2l6ZSA8IG1heGltdW1CdWZmZXJTaXplKSB7Ci0gICAgICAgICAgICBt
X2J1ZmZlckZ1bGwgPSBmYWxzZTsKKyAgICAgICAgaWYgKCFpc0J1ZmZlckZ1bGxGb3IobmV3RGF0
YVNpemUsIG1heGltdW1CdWZmZXJTaXplKSkgewogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IH0KIApAQCAtNzE1LDEzICs3MTEsMjEgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlOjpldmlj
dENvZGVkRnJhbWVzKHVpbnQ2NF90IG5ld0RhdGFTaXplLCB1aW50NjRfdCBwZW5kaW4KICAgICB9
CiAKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKLSAgICBpZiAobV9idWZmZXJGdWxsKQorICAg
IGlmIChpc0J1ZmZlckZ1bGxGb3IobmV3RGF0YVNpemUsIG1heGltdW1CdWZmZXJTaXplKSkKICAg
ICAgICAgRVJST1JfTE9HKExPR0lERU5USUZJRVIsICJGQUlMRUQgdG8gZnJlZSBlbm91Z2ggYWZ0
ZXIgZXZpY3RpbmcgIiwgaW5pdGlhbEJ1ZmZlcmVkU2l6ZSAtIHRvdGFsVHJhY2tCdWZmZXJTaXpl
SW5CeXRlcygpKTsKICAgICBlbHNlCiAgICAgICAgIERFQlVHX0xPRyhMT0dJREVOVElGSUVSLCAi
ZXZpY3RlZCAiLCBpbml0aWFsQnVmZmVyZWRTaXplIC0gdG90YWxUcmFja0J1ZmZlclNpemVJbkJ5
dGVzKCkpOwogI2VuZGlmCiB9CiAKK2Jvb2wgU291cmNlQnVmZmVyUHJpdmF0ZTo6aXNCdWZmZXJG
dWxsRm9yKHVpbnQ2NF90IHJlcXVpcmVkU2l6ZSwgdWludDY0X3QgbWF4aW11bUJ1ZmZlclNpemUp
Cit7CisgICAgaWYgKFdURjo6c3VtT3ZlcmZsb3dzPHVpbnQ2NF90Pih0b3RhbFRyYWNrQnVmZmVy
U2l6ZUluQnl0ZXMoKSwgcmVxdWlyZWRTaXplKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAg
ICByZXR1cm4gdG90YWxUcmFja0J1ZmZlclNpemVJbkJ5dGVzKCkgKyByZXF1aXJlZFNpemUgPj0g
bWF4aW11bUJ1ZmZlclNpemU7Cit9CisKIHVpbnQ2NF90IFNvdXJjZUJ1ZmZlclByaXZhdGU6OnRv
dGFsVHJhY2tCdWZmZXJTaXplSW5CeXRlcygpIGNvbnN0CiB7CiAgICAgdWludDY0X3QgdG90YWxT
aXplSW5CeXRlcyA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Tb3VyY2VCdWZmZXJQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Tb3VyY2VCdWZmZXJQcml2YXRlLmgKaW5kZXggMTkxYTU2NDJjMTMzZDA3ODQxODA2ZGVl
MzVlNTM2YzMwNDI2ODVlNS4uODI4NzRhMGI4OTc4ZjFiM2UzOTY1NzFhZGViNjY3NGZmZDZhODlj
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNlQnVm
ZmVyUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NvdXJj
ZUJ1ZmZlclByaXZhdGUuaApAQCAtNzcsNyArNzcsNyBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JF
X0VYUE9SVCB2aXJ0dWFsIHZvaWQgc2V0TWVkaWFTb3VyY2VFbmRlZChib29sKTsKICAgICB2aXJ0
dWFsIHZvaWQgc2V0TW9kZShTb3VyY2VCdWZmZXJBcHBlbmRNb2RlIG1vZGUpIHsgbV9hcHBlbmRN
b2RlID0gbW9kZTsgfQotICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCByZWVucXVldWVN
ZWRpYUlmTmVlZGVkKGNvbnN0IE1lZGlhVGltZSYgY3VycmVudE1lZGlhVGltZSwgdWludDY0X3Qg
cGVuZGluZ0FwcGVuZERhdGFDYXBhY2l0eSwgdWludDY0X3QgbWF4aW11bUJ1ZmZlclNpemUpOwor
ICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCByZWVucXVldWVNZWRpYUlmTmVlZGVkKGNv
bnN0IE1lZGlhVGltZSYgY3VycmVudE1lZGlhVGltZSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdmly
dHVhbCB2b2lkIGFkZFRyYWNrQnVmZmVyKGNvbnN0IEF0b21TdHJpbmcmIHRyYWNrSWQsIFJlZlB0
cjxNZWRpYURlc2NyaXB0aW9uPiYmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQg
cmVzZXRUcmFja0J1ZmZlcnMoKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgY2xl
YXJUcmFja0J1ZmZlcnMoKTsKQEAgLTg3LDcgKzg3LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
dm9pZCBzZXRTaG91bGRHZW5lcmF0ZVRpbWVzdGFtcHMoYm9vbCBmbGFnKSB7IG1fc2hvdWxkR2Vu
ZXJhdGVUaW1lc3RhbXBzID0gZmxhZzsgfQogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9p
ZCB1cGRhdGVCdWZmZXJlZEZyb21UcmFja0J1ZmZlcnMoYm9vbCBzb3VyY2VJc0VuZGVkKTsKICAg
ICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgcmVtb3ZlQ29kZWRGcmFtZXMoY29uc3QgTWVk
aWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIGNvbnN0IE1lZGlhVGltZSYgY3Vy
cmVudE1lZGlhVGltZSwgYm9vbCBpc0VuZGVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYg
PSBbXSB7IH0pOwotICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBldmljdENvZGVkRnJh
bWVzKHVpbnQ2NF90IG5ld0RhdGFTaXplLCB1aW50NjRfdCBwZW5kaW5nQXBwZW5kRGF0YUNhcGFj
aXR5LCB1aW50NjRfdCBtYXhpbXVtQnVmZmVyU2l6ZSwgY29uc3QgTWVkaWFUaW1lJiBjdXJyZW50
VGltZSwgY29uc3QgTWVkaWFUaW1lJiBkdXJhdGlvbiwgYm9vbCBpc0VuZGVkKTsKKyAgICBXRUJD
T1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgZXZpY3RDb2RlZEZyYW1lcyh1aW50NjRfdCBuZXdEYXRh
U2l6ZSwgdWludDY0X3QgbWF4aW11bUJ1ZmZlclNpemUsIGNvbnN0IE1lZGlhVGltZSYgY3VycmVu
dFRpbWUsIGNvbnN0IE1lZGlhVGltZSYgZHVyYXRpb24sIGJvb2wgaXNFbmRlZCk7CiAgICAgV0VC
Q09SRV9FWFBPUlQgdmlydHVhbCB1aW50NjRfdCB0b3RhbFRyYWNrQnVmZmVyU2l6ZUluQnl0ZXMo
KSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgcmVzZXRUaW1lc3RhbXBP
ZmZzZXRJblRyYWNrQnVmZmVycygpOwogICAgIHZpcnR1YWwgdm9pZCBzdGFydENoYW5naW5nVHlw
ZSgpIHsgbV9wZW5kaW5nSW5pdGlhbGl6YXRpb25TZWdtZW50Rm9yQ2hhbmdlVHlwZSA9IHRydWU7
IH0KQEAgLTEwMiw3ICsxMDIsNyBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBUaW1lUmFuZ2VzKiBi
dWZmZXJlZCgpIGNvbnN0IHsgcmV0dXJuIG1fYnVmZmVyZWQuZ2V0KCk7IH0KIAotICAgIGJvb2wg
YnVmZmVyRnVsbCgpIGNvbnN0IHsgcmV0dXJuIG1fYnVmZmVyRnVsbDsgfQorICAgIGJvb2wgaXNC
dWZmZXJGdWxsRm9yKHVpbnQ2NF90IHJlcXVpcmVkU2l6ZSwgdWludDY0X3QgbWF4aW11bUJ1ZmZl
clNpemUpOwogCiAgICAgLy8gTWV0aG9kcyB1c2VkIGJ5IE1lZGlhU291cmNlUHJpdmF0ZQogICAg
IGJvb2wgaGFzQXVkaW8oKSBjb25zdCB7IHJldHVybiBtX2hhc0F1ZGlvOyB9CkBAIC0xNjcsNyAr
MTY3LDYgQEAgcHJvdGVjdGVkOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkUmVjZWl2ZUlu
aXRpYWxpemF0aW9uU2VnbWVudChTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50OjpJbml0aWFsaXph
dGlvblNlZ21lbnQmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIGRpZFJlY2VpdmVTYW1wbGUoUmVmPE1lZGlhU2FtcGxlPiYmKTsKICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHNldEJ1ZmZlcmVkUmFuZ2VzKGNvbnN0IFBsYXRmb3JtVGltZVJh
bmdlcyYpOwotICAgIHZvaWQgc2V0QnVmZmVyRnVsbChib29sIGJ1ZmZlckZ1bGwpIHsgbV9idWZm
ZXJGdWxsID0gYnVmZmVyRnVsbDsgfQogICAgIHZvaWQgcHJvdmlkZU1lZGlhRGF0YShjb25zdCBB
dG9tU3RyaW5nJiB0cmFja0lEKTsKIAogICAgIFNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQqIG1f
Y2xpZW50IHsgbnVsbHB0ciB9OwpAQCAtMjAxLDcgKzIwMCw2IEBAIHByaXZhdGU6CiAgICAgTWVk
aWFUaW1lIG1fZ3JvdXBTdGFydFRpbWVzdGFtcCB7IE1lZGlhVGltZTo6aW52YWxpZFRpbWUoKSB9
OwogICAgIE1lZGlhVGltZSBtX2dyb3VwRW5kVGltZXN0YW1wIHsgTWVkaWFUaW1lOjp6ZXJvVGlt
ZSgpIH07CiAKLSAgICBib29sIG1fYnVmZmVyRnVsbCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2lz
TWVkaWFTb3VyY2VFbmRlZCB7IGZhbHNlIH07CiAgICAgUmVmUHRyPFRpbWVSYW5nZXM+IG1fYnVm
ZmVyZWQ7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZVNvdXJjZUJ1ZmZlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVTb3VyY2VCdWZmZXJQcm94eS5jcHAKaW5kZXggNjhkZWY5MmU3ZWNkNDFmYjE2Nzc1
OGI3M2EwODgyOWYzMmNlZDcxYy4uNjU0YjFhYTMzZGI2M2RkN2IzYTdmOTZiMTNkNWI2NTlmNjdh
OWFjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVNv
dXJjZUJ1ZmZlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlU291cmNlQnVmZmVyUHJveHkuY3BwCkBAIC0yNTcsMTAgKzI1NywxMCBAQCB2b2lkIFJl
bW90ZVNvdXJjZUJ1ZmZlclByb3h5OjpyZW1vdmVDb2RlZEZyYW1lcyhjb25zdCBNZWRpYVRpbWUm
IHN0YXJ0LCBjb25zdCBNZQogICAgIH0pOwogfQogCi12b2lkIFJlbW90ZVNvdXJjZUJ1ZmZlclBy
b3h5OjpldmljdENvZGVkRnJhbWVzKHVpbnQ2NF90IG5ld0RhdGFTaXplLCB1aW50NjRfdCBwZW5k
aW5nQXBwZW5kRGF0YUNhcGFjaXR5LCB1aW50NjRfdCBtYXhpbXVtQnVmZmVyU2l6ZSwgY29uc3Qg
TWVkaWFUaW1lJiBjdXJyZW50VGltZSwgY29uc3QgTWVkaWFUaW1lJiBkdXJhdGlvbiwgYm9vbCBp
c0VuZGVkLCBFdmljdENvZGVkRnJhbWVzRGVsYXllZFJlcGx5JiYgY29tcGxldGlvbkhhbmRsZXIp
Cit2b2lkIFJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5OjpldmljdENvZGVkRnJhbWVzKHVpbnQ2NF90
IG5ld0RhdGFTaXplLCB1aW50NjRfdCBtYXhpbXVtQnVmZmVyU2l6ZSwgY29uc3QgTWVkaWFUaW1l
JiBjdXJyZW50VGltZSwgY29uc3QgTWVkaWFUaW1lJiBkdXJhdGlvbiwgYm9vbCBpc0VuZGVkLCBF
dmljdENvZGVkRnJhbWVzRGVsYXllZFJlcGx5JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAg
bV9zb3VyY2VCdWZmZXJQcml2YXRlLT5ldmljdENvZGVkRnJhbWVzKG5ld0RhdGFTaXplLCBwZW5k
aW5nQXBwZW5kRGF0YUNhcGFjaXR5LCBtYXhpbXVtQnVmZmVyU2l6ZSwgY3VycmVudFRpbWUsIGR1
cmF0aW9uLCBpc0VuZGVkKTsKLSAgICBjb21wbGV0aW9uSGFuZGxlcihtX3NvdXJjZUJ1ZmZlclBy
aXZhdGUtPmJ1ZmZlckZ1bGwoKSwgbV9zb3VyY2VCdWZmZXJQcml2YXRlLT50b3RhbFRyYWNrQnVm
ZmVyU2l6ZUluQnl0ZXMoKSk7CisgICAgbV9zb3VyY2VCdWZmZXJQcml2YXRlLT5ldmljdENvZGVk
RnJhbWVzKG5ld0RhdGFTaXplLCBtYXhpbXVtQnVmZmVyU2l6ZSwgY3VycmVudFRpbWUsIGR1cmF0
aW9uLCBpc0VuZGVkKTsKKyAgICBjb21wbGV0aW9uSGFuZGxlcihtX3NvdXJjZUJ1ZmZlclByaXZh
dGUtPnRvdGFsVHJhY2tCdWZmZXJTaXplSW5CeXRlcygpKTsKIH0KIAogdm9pZCBSZW1vdGVTb3Vy
Y2VCdWZmZXJQcm94eTo6YWRkVHJhY2tCdWZmZXIoVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmll
ciB0cmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyKQpAQCAtMjg1LDEwICsyODUsOSBAQCB2b2lk
IFJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5OjpzZXRBbGxUcmFja0J1ZmZlcnNOZWVkUmFuZG9tQWNj
ZXNzKCkKICAgICBtX3NvdXJjZUJ1ZmZlclByaXZhdGUtPnNldEFsbFRyYWNrQnVmZmVyc05lZWRS
YW5kb21BY2Nlc3MoKTsKIH0KIAotdm9pZCBSZW1vdGVTb3VyY2VCdWZmZXJQcm94eTo6cmVlbnF1
ZXVlTWVkaWFJZk5lZWRlZChjb25zdCBNZWRpYVRpbWUmIGN1cnJlbnRNZWRpYVRpbWUsIHVpbnQ2
NF90IHBlbmRpbmdBcHBlbmREYXRhQ2FwYWNpdHksIHVpbnQ2NF90IG1heGltdW1CdWZmZXJTaXpl
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9p
ZCBSZW1vdGVTb3VyY2VCdWZmZXJQcm94eTo6cmVlbnF1ZXVlTWVkaWFJZk5lZWRlZChjb25zdCBN
ZWRpYVRpbWUmIGN1cnJlbnRNZWRpYVRpbWUpCiB7Ci0gICAgbV9zb3VyY2VCdWZmZXJQcml2YXRl
LT5yZWVucXVldWVNZWRpYUlmTmVlZGVkKGN1cnJlbnRNZWRpYVRpbWUsIHBlbmRpbmdBcHBlbmRE
YXRhQ2FwYWNpdHksIG1heGltdW1CdWZmZXJTaXplKTsKLSAgICBjb21wbGV0aW9uSGFuZGxlciht
X3NvdXJjZUJ1ZmZlclByaXZhdGUtPmJ1ZmZlckZ1bGwoKSk7CisgICAgbV9zb3VyY2VCdWZmZXJQ
cml2YXRlLT5yZWVucXVldWVNZWRpYUlmTmVlZGVkKGN1cnJlbnRNZWRpYVRpbWUpOwogfQogCiB2
b2lkIFJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5OjpzZXRHcm91cFN0YXJ0VGltZXN0YW1wKGNvbnN0
IE1lZGlhVGltZSYgdGltZXN0YW1wKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZVNvdXJjZUJ1ZmZlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlU291cmNlQnVmZmVyUHJveHkuaAppbmRleCBiYWVjZGZjZGEyNTUy
Mzc2NjQ4NDVjMzE5MjY1MWI0YTIzMTYxMGM5Li5jOTEyOTAxNThkODNlYzk2MDI1ZWM5NTkzM2Yy
YTMxYjc1ZTVlYTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlU291cmNlQnVmZmVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlU291cmNlQnVmZmVyUHJveHkuaApAQCAtOTgsMTIgKzk4LDEyIEBAIHByaXZh
dGU6CiAgICAgdXNpbmcgUmVtb3ZlQ29kZWRGcmFtZXNBc3luY1JlcGx5ID0gTWVzc2FnZXM6OlJl
bW90ZVNvdXJjZUJ1ZmZlclByb3h5OjpSZW1vdmVDb2RlZEZyYW1lc0FzeW5jUmVwbHk7CiAgICAg
dXNpbmcgRXZpY3RDb2RlZEZyYW1lc0RlbGF5ZWRSZXBseT0gTWVzc2FnZXM6OlJlbW90ZVNvdXJj
ZUJ1ZmZlclByb3h5OjpFdmljdENvZGVkRnJhbWVzRGVsYXllZFJlcGx5OwogICAgIHZvaWQgcmVt
b3ZlQ29kZWRGcmFtZXMoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBl
bmQsIGNvbnN0IE1lZGlhVGltZSYgY3VycmVudFRpbWUsIGJvb2wgaXNFbmRlZCwgUmVtb3ZlQ29k
ZWRGcmFtZXNBc3luY1JlcGx5JiYpOwotICAgIHZvaWQgZXZpY3RDb2RlZEZyYW1lcyh1aW50NjRf
dCBuZXdEYXRhU2l6ZSwgdWludDY0X3QgcGVuZGluZ0FwcGVuZERhdGFDYXBhY2l0eSwgdWludDY0
X3QgbWF4aW11bUJ1ZmZlclNpemUsIGNvbnN0IE1lZGlhVGltZSYgY3VycmVudFRpbWUsIGNvbnN0
IE1lZGlhVGltZSYgZHVyYXRpb24sIGJvb2wgaXNFbmRlZCwgRXZpY3RDb2RlZEZyYW1lc0RlbGF5
ZWRSZXBseSYmKTsKKyAgICB2b2lkIGV2aWN0Q29kZWRGcmFtZXModWludDY0X3QgbmV3RGF0YVNp
emUsIHVpbnQ2NF90IG1heGltdW1CdWZmZXJTaXplLCBjb25zdCBNZWRpYVRpbWUmIGN1cnJlbnRU
aW1lLCBjb25zdCBNZWRpYVRpbWUmIGR1cmF0aW9uLCBib29sIGlzRW5kZWQsIEV2aWN0Q29kZWRG
cmFtZXNEZWxheWVkUmVwbHkmJik7CiAgICAgdm9pZCBhZGRUcmFja0J1ZmZlcihUcmFja1ByaXZh
dGVSZW1vdGVJZGVudGlmaWVyKTsKICAgICB2b2lkIHJlc2V0VHJhY2tCdWZmZXJzKCk7CiAgICAg
dm9pZCBjbGVhclRyYWNrQnVmZmVycygpOwogICAgIHZvaWQgc2V0QWxsVHJhY2tCdWZmZXJzTmVl
ZFJhbmRvbUFjY2VzcygpOwotICAgIHZvaWQgcmVlbnF1ZXVlTWVkaWFJZk5lZWRlZChjb25zdCBN
ZWRpYVRpbWUmIGN1cnJlbnRNZWRpYVRpbWUsIHVpbnQ2NF90IHBlbmRpbmdBcHBlbmREYXRhQ2Fw
YWNpdHksIHVpbnQ2NF90IG1heGltdW1CdWZmZXJTaXplLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wpPiYmKTsKKyAgICB2b2lkIHJlZW5xdWV1ZU1lZGlhSWZOZWVkZWQoY29uc3QgTWVkaWFU
aW1lJiBjdXJyZW50TWVkaWFUaW1lKTsKICAgICB2b2lkIHNldEdyb3VwU3RhcnRUaW1lc3RhbXAo
Y29uc3QgTWVkaWFUaW1lJik7CiAgICAgdm9pZCBzZXRHcm91cFN0YXJ0VGltZXN0YW1wVG9FbmRU
aW1lc3RhbXAoKTsKICAgICB2b2lkIHNldFNob3VsZEdlbmVyYXRlVGltZXN0YW1wcyhib29sKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVTb3VyY2VC
dWZmZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVTb3VyY2VCdWZmZXJQcm94eS5tZXNzYWdlcy5pbgppbmRleCA1ZWE2MGY3ZmQ4Njk0MWQx
Y2FhZjUwZjhiODg2NTQ3OGI5M2UxMWM0Li5mZWZlOGY1NWY5ZDg4NTljMWI1MDlmNjdiNTIzZjdj
Nzg1MDhkNzliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlU291cmNlQnVmZmVyUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZVNvdXJjZUJ1ZmZlclByb3h5Lm1lc3NhZ2VzLmluCkBAIC00Miw4
ICs0Miw4IEBAIG1lc3NhZ2VzIC0+IFJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5IE5vdFJlZkNvdW50
ZWQgewogICAgIENsZWFyVHJhY2tCdWZmZXJzKCkKICAgICBTZXRBbGxUcmFja0J1ZmZlcnNOZWVk
UmFuZG9tQWNjZXNzKCkKICAgICBSZW1vdmVDb2RlZEZyYW1lcyhNZWRpYVRpbWUgc3RhcnQsIE1l
ZGlhVGltZSBlbmQsIE1lZGlhVGltZSBjdXJyZW50VGltZSwgYm9vbCBpc0VuZGVkKSAtPiAoV2Vi
Q29yZTo6UGxhdGZvcm1UaW1lUmFuZ2VzIGJ1ZmZlcmVkLCB1aW50NjRfdCB0b3RhbFRyYWNrQnVm
ZmVyU2l6ZUluQnl0ZXMpIEFzeW5jCi0gICAgRXZpY3RDb2RlZEZyYW1lcyh1aW50NjRfdCBuZXdE
YXRhU2l6ZSwgdWludDY0X3QgcGVuZGluZ0FwcGVuZERhdGFDYXBhY2l0eSwgdWludDY0X3QgbWF4
aW11bUJ1ZmZlclNpemUsIE1lZGlhVGltZSBjdXJyZW50VGltZSwgTWVkaWFUaW1lIGR1cmF0aW9u
LCBib29sIGlzRW5kZWQpIC0+IChib29sIGJ1ZmZlckZ1bGwsIHVpbnQ2NF90IHRvdGFsVHJhY2tC
dWZmZXJTaXplSW5CeXRlcykgU3luY2hyb25vdXMKLSAgICBSZWVucXVldWVNZWRpYUlmTmVlZGVk
KE1lZGlhVGltZSBjdXJyZW50TWVkaWFUaW1lLCB1aW50NjRfdCBwZW5kaW5nQXBwZW5kRGF0YUNh
cGFjaXR5LCB1aW50NjRfdCBtYXhpbXVtQnVmZmVyU2l6ZSkgLT4gKGJvb2wgYnVmZmVyRnVsbCkg
QXN5bmMKKyAgICBFdmljdENvZGVkRnJhbWVzKHVpbnQ2NF90IG5ld0RhdGFTaXplLCB1aW50NjRf
dCBtYXhpbXVtQnVmZmVyU2l6ZSwgTWVkaWFUaW1lIGN1cnJlbnRUaW1lLCBNZWRpYVRpbWUgZHVy
YXRpb24sIGJvb2wgaXNFbmRlZCkgLT4gKHVpbnQ2NF90IHRvdGFsVHJhY2tCdWZmZXJTaXplSW5C
eXRlcykgU3luY2hyb25vdXMKKyAgICBSZWVucXVldWVNZWRpYUlmTmVlZGVkKE1lZGlhVGltZSBj
dXJyZW50TWVkaWFUaW1lKQogICAgIFNldEdyb3VwU3RhcnRUaW1lc3RhbXAoTWVkaWFUaW1lIHRp
bWVzdGFtcCkKICAgICBTZXRHcm91cFN0YXJ0VGltZXN0YW1wVG9FbmRUaW1lc3RhbXAoKQogICAg
IFNldFNob3VsZEdlbmVyYXRlVGltZXN0YW1wcyhib29sIHNob3VsZEdlbmVyYXRlVGltZXN0YW1w
cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvU291cmNl
QnVmZmVyUHJpdmF0ZVJlbW90ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL1NvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGUuY3BwCmluZGV4IGFjMmRmMTUyNTE4YWE1NDUx
OTA0MjNlMmFlZmRhNzE1NjVjN2RhM2YuLjc1OGYwMGQ1NzZjZjg5YjFjZjc0OTQyOGIwNDM1ZGQw
NGY5YzkwM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
U291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9Tb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlLmNwcApAQCAtMjAwLDE1ICsy
MDAsMTMgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlOjpyZW1vdmVDb2RlZEZyYW1l
cyhjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdAogICAgICAgICBtX3JlbW90ZVNvdXJjZUJ1
ZmZlcklkZW50aWZpZXIpOwogfQogCi12b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGU6OmV2
aWN0Q29kZWRGcmFtZXModWludDY0X3QgbmV3RGF0YVNpemUsIHVpbnQ2NF90IHBlbmRpbmdBcHBl
bmREYXRhQ2FwYWNpdHksIHVpbnQ2NF90IG1heGltdW1CdWZmZXJTaXplLCBjb25zdCBNZWRpYVRp
bWUmIGN1cnJlbnRUaW1lLCBjb25zdCBNZWRpYVRpbWUmIGR1cmF0aW9uLCBib29sIGlzRW5kZWQp
Cit2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGU6OmV2aWN0Q29kZWRGcmFtZXModWludDY0
X3QgbmV3RGF0YVNpemUsIHVpbnQ2NF90IG1heGltdW1CdWZmZXJTaXplLCBjb25zdCBNZWRpYVRp
bWUmIGN1cnJlbnRUaW1lLCBjb25zdCBNZWRpYVRpbWUmIGR1cmF0aW9uLCBib29sIGlzRW5kZWQp
CiB7CiAgICAgaWYgKCFtX2dwdVByb2Nlc3NDb25uZWN0aW9uKQogICAgICAgICByZXR1cm47CiAK
LSAgICBib29sIGJ1ZmZlckZ1bGwgPSBmYWxzZTsKICAgICB1aW50NjRfdCB0b3RhbEJ1ZmZlclNp
emVJbkJ5dGVzID0gMDsKLSAgICBpZiAobV9ncHVQcm9jZXNzQ29ubmVjdGlvbi0+Y29ubmVjdGlv
bigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVTb3VyY2VCdWZmZXJQcm94eTo6RXZpY3RDb2Rl
ZEZyYW1lcyhuZXdEYXRhU2l6ZSwgcGVuZGluZ0FwcGVuZERhdGFDYXBhY2l0eSwgbWF4aW11bUJ1
ZmZlclNpemUsIGN1cnJlbnRUaW1lLCBkdXJhdGlvbiwgaXNFbmRlZCksIE1lc3NhZ2VzOjpSZW1v
dGVTb3VyY2VCdWZmZXJQcm94eTo6RXZpY3RDb2RlZEZyYW1lczo6UmVwbHkoYnVmZmVyRnVsbCwg
dG90YWxCdWZmZXJTaXplSW5CeXRlcyksIG1fcmVtb3RlU291cmNlQnVmZmVySWRlbnRpZmllcikp
IHsKLSAgICAgICAgc2V0QnVmZmVyRnVsbChidWZmZXJGdWxsKTsKKyAgICBpZiAobV9ncHVQcm9j
ZXNzQ29ubmVjdGlvbi0+Y29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVTb3Vy
Y2VCdWZmZXJQcm94eTo6RXZpY3RDb2RlZEZyYW1lcyhuZXdEYXRhU2l6ZSwgbWF4aW11bUJ1ZmZl
clNpemUsIGN1cnJlbnRUaW1lLCBkdXJhdGlvbiwgaXNFbmRlZCksIE1lc3NhZ2VzOjpSZW1vdGVT
b3VyY2VCdWZmZXJQcm94eTo6RXZpY3RDb2RlZEZyYW1lczo6UmVwbHkodG90YWxCdWZmZXJTaXpl
SW5CeXRlcyksIG1fcmVtb3RlU291cmNlQnVmZmVySWRlbnRpZmllcikpIHsKICAgICAgICAgbV90
b3RhbFRyYWNrQnVmZmVyU2l6ZUluQnl0ZXMgPSB0b3RhbEJ1ZmZlclNpemVJbkJ5dGVzOwogICAg
IH0KIH0KQEAgLTI3MSwxNCArMjY5LDEyIEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90
ZTo6c2V0U2hvdWxkR2VuZXJhdGVUaW1lc3RhbXBzKGJvb2wgc2hvdWxkR2VuZXJhdGVUCiAgICAg
bV9ncHVQcm9jZXNzQ29ubmVjdGlvbi0+Y29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90
ZVNvdXJjZUJ1ZmZlclByb3h5OjpTZXRTaG91bGRHZW5lcmF0ZVRpbWVzdGFtcHMoc2hvdWxkR2Vu
ZXJhdGVUaW1lc3RhbXBzKSwgbV9yZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlmaWVyKTsKIH0KIAot
dm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlOjpyZWVucXVldWVNZWRpYUlmTmVlZGVkKGNv
bnN0IE1lZGlhVGltZSYgY3VycmVudE1lZGlhVGltZSwgdWludDY0X3QgcGVuZGluZ0FwcGVuZERh
dGFDYXBhY2l0eSwgdWludDY0X3QgbWF4aW11bUJ1ZmZlclNpemUpCit2b2lkIFNvdXJjZUJ1ZmZl
clByaXZhdGVSZW1vdGU6OnJlZW5xdWV1ZU1lZGlhSWZOZWVkZWQoY29uc3QgTWVkaWFUaW1lJiBj
dXJyZW50TWVkaWFUaW1lKQogewogICAgIGlmICghbV9ncHVQcm9jZXNzQ29ubmVjdGlvbikKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgbV9ncHVQcm9jZXNzQ29ubmVjdGlvbi0+Y29ubmVjdGlvbigp
LnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6UmVtb3RlU291cmNlQnVmZmVyUHJveHk6OlJl
ZW5xdWV1ZU1lZGlhSWZOZWVkZWQoY3VycmVudE1lZGlhVGltZSwgcGVuZGluZ0FwcGVuZERhdGFD
YXBhY2l0eSwgbWF4aW11bUJ1ZmZlclNpemUpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VS
ZWYoKnRoaXMpXShhdXRvIGJ1ZmZlckZ1bGwpIG11dGFibGUgewotICAgICAgICBzZXRCdWZmZXJG
dWxsKGJ1ZmZlckZ1bGwpOwotICAgIH0sIG1fcmVtb3RlU291cmNlQnVmZmVySWRlbnRpZmllcik7
CisgICAgbV9ncHVQcm9jZXNzQ29ubmVjdGlvbi0+Y29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6
OlJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5OjpSZWVucXVldWVNZWRpYUlmTmVlZGVkKGN1cnJlbnRN
ZWRpYVRpbWUpLCBtX3JlbW90ZVNvdXJjZUJ1ZmZlcklkZW50aWZpZXIpOwogfQogCiB2b2lkIFNv
dXJjZUJ1ZmZlclByaXZhdGVSZW1vdGU6OnJlc2V0VGltZXN0YW1wT2Zmc2V0SW5UcmFja0J1ZmZl
cnMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9Tb3Vy
Y2VCdWZmZXJQcml2YXRlUmVtb3RlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL1NvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGUuaAppbmRleCA4YjZkMTAwMmM3NjMzNjQzMGM5
YmRhYjY5MmRhNjg3NmNhOTUxNDU5Li5kMGFiOTcwYTBhNWIyZWFkZDE2ZDhmNGY5ZTIwZDUyY2Y1
NWZiNjJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1Nv
dXJjZUJ1ZmZlclByaXZhdGVSZW1vdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL1NvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGUuaApAQCAtODEsNyArODEsNyBAQCBw
cml2YXRlOgogICAgIGJvb2wgY2FuU3dpdGNoVG9UeXBlKGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRU
eXBlJikgZmluYWw7CiAgICAgdm9pZCBzZXRNZWRpYVNvdXJjZUVuZGVkKGJvb2wpIGZpbmFsOwog
ICAgIHZvaWQgc2V0TW9kZShXZWJDb3JlOjpTb3VyY2VCdWZmZXJBcHBlbmRNb2RlKSBmaW5hbDsK
LSAgICB2b2lkIHJlZW5xdWV1ZU1lZGlhSWZOZWVkZWQoY29uc3QgTWVkaWFUaW1lJiBjdXJyZW50
TWVkaWFUaW1lLCB1aW50NjRfdCBwZW5kaW5nQXBwZW5kRGF0YUNhcGFjaXR5LCB1aW50NjRfdCBt
YXhpbXVtQnVmZmVyU2l6ZSkgZmluYWw7CisgICAgdm9pZCByZWVucXVldWVNZWRpYUlmTmVlZGVk
KGNvbnN0IE1lZGlhVGltZSYgY3VycmVudE1lZGlhVGltZSkgZmluYWw7CiAgICAgdm9pZCBhZGRU
cmFja0J1ZmZlcihjb25zdCBBdG9tU3RyaW5nJiB0cmFja0lkLCBSZWZQdHI8V2ViQ29yZTo6TWVk
aWFEZXNjcmlwdGlvbj4mJikgZmluYWw7CiAgICAgdm9pZCByZXNldFRyYWNrQnVmZmVycygpIGZp
bmFsOwogICAgIHZvaWQgY2xlYXJUcmFja0J1ZmZlcnMoKSBmaW5hbDsKQEAgLTkxLDcgKzkxLDcg
QEAgcHJpdmF0ZToKICAgICB2b2lkIHNldFNob3VsZEdlbmVyYXRlVGltZXN0YW1wcyhib29sKSBm
aW5hbDsKICAgICB2b2lkIHVwZGF0ZUJ1ZmZlcmVkRnJvbVRyYWNrQnVmZmVycyhib29sIHNvdXJj
ZUlzRW5kZWQpIGZpbmFsOwogICAgIHZvaWQgcmVtb3ZlQ29kZWRGcmFtZXMoY29uc3QgTWVkaWFU
aW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIGNvbnN0IE1lZGlhVGltZSYgY3VycmVu
dE1lZGlhVGltZSwgYm9vbCBpc0VuZGVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIGZp
bmFsOwotICAgIHZvaWQgZXZpY3RDb2RlZEZyYW1lcyh1aW50NjRfdCBuZXdEYXRhU2l6ZSwgdWlu
dDY0X3QgcGVuZGluZ0FwcGVuZERhdGFDYXBhY2l0eSwgdWludDY0X3QgbWF4aW11bUJ1ZmZlclNp
emUsIGNvbnN0IE1lZGlhVGltZSYgY3VycmVudFRpbWUsIGNvbnN0IE1lZGlhVGltZSYgZHVyYXRp
b24sIGJvb2wgaXNFbmRlZCkgZmluYWw7CisgICAgdm9pZCBldmljdENvZGVkRnJhbWVzKHVpbnQ2
NF90IG5ld0RhdGFTaXplLCB1aW50NjRfdCBtYXhpbXVtQnVmZmVyU2l6ZSwgY29uc3QgTWVkaWFU
aW1lJiBjdXJyZW50VGltZSwgY29uc3QgTWVkaWFUaW1lJiBkdXJhdGlvbiwgYm9vbCBpc0VuZGVk
KSBmaW5hbDsKICAgICB2b2lkIHJlc2V0VGltZXN0YW1wT2Zmc2V0SW5UcmFja0J1ZmZlcnMoKSBm
aW5hbDsKICAgICB2b2lkIHN0YXJ0Q2hhbmdpbmdUeXBlKCkgZmluYWw7CiAgICAgdm9pZCBzZXRU
aW1lc3RhbXBPZmZzZXQoY29uc3QgTWVkaWFUaW1lJikgZmluYWw7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430806</attachid>
            <date>2021-06-07 21:27:54 -0700</date>
            <delta_ts>2021-06-08 05:30:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226711-20210608142752.patch</filename>
            <type>text/plain</type>
            <size>25290</size>
            <attacher name="Jean-Yves Avenard [:jya]">jean-yves.avenard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4NTkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzIzMDY0YjM0NWE2YTFi
NGJjOWI5MTA0OTJlZDMzMGYwNTMxYTMwNS4uMGU2ZGIzNjY1ODdhNzk4MmIxZTFjZWU1ZTJlNjY3
MjRhNmUzYzkzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDIxLTA2LTA3ICBKZWFu
LVl2ZXMgQXZlbmFyZCAgPGp5YUBhcHBsZS5jb20+CisKKyAgICAgICAgW01TRV0gUmV3b3JrIGhh
bmRsaW5nIG9mIFNvdXJjZUJ1ZmZlcidzIGJ1ZmZlciBmdWxsLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2NzExCisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS83ODkzNzkwOT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBCdWcgMjI1NjMwIG1vZGlmaWVkIHRoZSBoYW5kbGluZyBvZiB0aGUgU291cmNlIEJ1
ZmZlciAiYnVmZmVyIGZ1bGwiIGFsZ29yaXRobS4KKyAgICAgICAgUGVyIHNwZWMsIHdlIGFyZSB0
byByZWplY3QgYSBidWZmZXIgb25seSBvbmNlIHdlIGtub3cgdGhhdCB0aGUgc291cmNlIGJ1ZmZl
ciBpcyBmdWxsLgorICAgICAgICBUaGUgZmlyc3QgYXBwZW5kQnVmZmVyIHNob3VsZCBhbHdheXMg
Y29tcGxldGUuCisgICAgICAgIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9tZWRpYS1zb3VyY2UvI3Nv
dXJjZWJ1ZmZlci1idWZmZXItZnVsbC1mbGFnCisgICAgICAgICJUaGUgYnVmZmVyIGZ1bGwgZmxh
ZyBrZWVwcyB0cmFjayBvZiB3aGV0aGVyIGFwcGVuZEJ1ZmZlcigpIGlzIGFsbG93ZWQgdG8gYWNj
ZXB0CisgICAgICAgICBtb3JlIGJ5dGVzLiBJdCBpcyBzZXQgdG8gZmFsc2Ugd2hlbiB0aGUgU291
cmNlQnVmZmVyIG9iamVjdCBpcyBjcmVhdGVkIGFuZCBnZXRzCisgICAgICAgICB1cGRhdGVkIGFz
IGRhdGEgaXMgYXBwZW5kZWQgYW5kIHJlbW92ZWQuIgorCisgICAgICAgICJidWZmZXIgZnVsbCBm
bGFnIiBvbmx5IGdldHMgbW9kaWZpZWQgdG8gdHJ1ZSBpbiB0aGUgMy41LjEgU2VnbWVudCBQYXJz
ZXIgTG9vcAorICAgICAgICBhbGdvcml0aG0sIHN0ZXAgNi4zCisgICAgICAgIGh0dHBzOi8vdzNj
LmdpdGh1Yi5pby9tZWRpYS1zb3VyY2UvI3NvdXJjZWJ1ZmZlci1zZWdtZW50LXBhcnNlci1sb29w
CisgICAgICAgICJJZiB0aGlzIFNvdXJjZUJ1ZmZlciBpcyBmdWxsIGFuZCBjYW5ub3QgYWNjZXB0
IG1vcmUgbWVkaWEgZGF0YSwgdGhlbiBzZXQgdGhlCisgICAgICAgICBidWZmZXIgZnVsbCBmbGFn
IHRvIHRydWUuIgorCisgICAgICAgIE9uIHRoZSAybmQgY2FsbCB0byB0aGUgYXBwZW5kQnVmZmVy
LCBpbiB0aGUgUHJlcGFyZSBBcHBlbmQgYWxnb3JpdGhtLCBzdGVwIDMuNS40LjY6CisgICAgICAg
IGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9tZWRpYS1zb3VyY2UvI3NvdXJjZWJ1ZmZlci1wcmVwYXJl
LWFwcGVuZAorCisgICAgICAgICJJZiB0aGUgYnVmZmVyIGZ1bGwgZmxhZyBlcXVhbHMgdHJ1ZSwg
dGhlbiB0aHJvdyBhIFF1b3RhRXhjZWVkZWRFcnJvciBleGNlcHRpb24KKyAgICAgICAgIGFuZCBh
Ym9ydCB0aGVzZSBzdGVwcy4iCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgbW92ZXMgdGhlIGNoZWNr
IG9mIHRoZSBzb3VyY2UgYnVmZmVyIHNpemUgYmFjayBpbnRvIFNvdXJjZUJ1ZmZlclByaXZhdGUK
KyAgICAgICAgc28gdGhhdCBjaGVja2luZyBpZiB3ZSBoYXZlIHN1ZmZpY2llbnQgc3BhY2Ugb3Ig
bm90IGlzIGhpZGRlbiBmcm9tIHRoZSBTb3VyY2VCdWZmZXIuCisgICAgICAgIFJhdGhlciB0aGFu
IGRlYWwgd2l0aCBhIHNpbmdsZSAiYnVmZmVyIGZ1bGwiIGZsYWcsIHdlIHVzZSBpbnN0ZWFkIGEg
aXNCdWZmZXJGdWxsRm9yKCkKKyAgICAgICAgbWV0aG9kIHdoaWNoIGFsbG93cyB0byBlYXNpbHkg
c3dhcCBiZXR3ZWVuIHRoZSBwcmV2aW91cyBwZXItc3BlYyBiZWhhdmlvdXIgYW5kIHRoZQorICAg
ICAgICBvbmUgaW50cm9kdWNlZCBieSBidWcgMjI1NjMwIGFzIGl0IGRvZXMgcHJlc2VudCBzb21l
IGFkdmFudGFnZXMuCisgICAgICAgIFdlIGNhbiBhbHdheXMgZGV0ZXJtaW5lIGlmIHdlIGhhdmUg
c3VmZmljaWVudCBzcGFjZSBieSBjaGVja2luZyB0aGUgY3VycmVudCBzb3VyY2UKKyAgICAgICAg
YnVmZmVyIG1lbW9yeSBzaXplIGFuZCB0aGUgcmVxdWVzdGVkIGxpbWl0LgorICAgICAgICBUaGUg
cHJldmlvdXMgYWxnb3JpdGhtIHRvb2sgaW50byBjb25zaWRlcmF0aW9uIHRoZSBhbGxvY2F0ZWQg
Y2FwYWNpdHkgb2YgdGhlCisgICAgICAgIHRlbXBvcmFyeSBTb3VyY2VCdWZmZXI6Om1fcGVuZGlu
Z0FwcGVuZERhdGEgOyB0aGlzIGFwcHJvYWNoIHdhcyBmbGF3ZWQgaW4gdGhhdCB3ZQorICAgICAg
ICBhbHdheXMgY2hlY2tlZCBpZiBtX3BlbmRpbmdBcHBlbmREYXRhLmNhcGFjaXR5ICsgbmV3RGF0
YVNpemUgd291bGQgZml0IGluIHRoZQorICAgICAgICBzb3VyY2UgYnVmZmVyLiBIb3dldmVyIG5l
d0RhdGFTaXplIHdvdWxkIGFsd2F5cyBoYXBwZW4gdG8gZml0IHdpdGhpbiB0aGUgZXhpc3RpbmcK
KyAgICAgICAgY2FwYWNpdHksIHNvIGl0IHdhcyBhY2NvdW50ZWQgZm9yIHR3aWNlLgorICAgICAg
ICBXZSByZW1vdmUgY2hlY2sgb24gdGhlIGNhcGFjaXR5IGFsbG9jYXRlZCBhcyBpdCBzaW1wbGlm
aWVzIHRoZSBjb2RlIGEgZ3JlYXQgZGVhbCwKKyAgICAgICAgYW5kIGF2b2lkIHRoZSBwaWdneS1i
YWNraW5nIG9mIHVucmVsYXRlZCBtZXRob2RzIChzdWNoIGFzCisgICAgICAgIFNvdXJjZUJ1ZmZl
clByaXZhdGU6OnJlZW5xdWV1ZU1lZGlhSWZOZWVkZWQgdGhhdCBlbmRlZCB1cCBhbHNvIGNoZWNr
aW5nIGNhcGFjaXR5KQorCisgICAgICAgIFRoaXMgY2hhbmdlIGlzIGFscmVhZHkgY292ZXJlZCB3
aXRoIGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3Vy
Y2VCdWZmZXIuY3BwOiBjYWxsIG5ldyBpc0J1ZmZlckZ1bGxGb3IgdG8gY2hlY2sgaWYKKyAgICAg
ICAgc3VmZmljaWVudCBpcyBhdmFpbGFibGUuCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZm
ZXI6OmFwcGVuZEJ1ZmZlckludGVybmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZl
cjo6c291cmNlQnVmZmVyUHJpdmF0ZUFwcGVuZENvbXBsZXRlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9Tb3VyY2VCdWZmZXJQcml2YXRlLmg6IEFkZCBpc0J1ZmZlckZ1bGxGb3IgbWV0
aG9kCisgICAgICAgIHJlbW92ZSBtX2J1ZmZlckZ1bGwgbWVtYmVyLgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL1NvdXJjZUJ1ZmZlclByaXZhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U291cmNlQnVmZmVyUHJpdmF0ZTo6cmVlbnF1ZXVlTWVkaWFJZk5lZWRlZCk6IHJlbW92ZSByZWZl
cmVuY2UgdG8KKyAgICAgICAgYnVmZmVyIGNhcGFjaXR5CisgICAgICAgIChXZWJDb3JlOjpTb3Vy
Y2VCdWZmZXJQcml2YXRlOjpldmljdENvZGVkRnJhbWVzKTogcmVtb3ZlIHJlZmVyZW5jZSB0bwor
ICAgICAgICBidWZmZXIgY2FwYWNpdHkKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclBy
aXZhdGU6OmlzQnVmZmVyRnVsbEZvcik6IFRvIGdldCBwZXItc3BlYyBiZWhhdmlvdXIKKyAgICAg
ICAgd2Ugb25seSBuZWVkIHRvIHN0b3AgY2hlY2tpbmcgdGhlIHZhbHVlIG9mIHRoZSByZXF1aXJl
ZFNpemUgYXJndW1lbnQuCisKIDIwMjEtMDYtMDcgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0
ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBBZG9wdCBTZWNUcnVzdEdldENlcnRpZmljYXRl
QXRJbmRleCByZXBsYWNlbWVudCB3aGVyZSBhdmFpbGFibGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggM2UyMWYxZTBk
YjFhODViYTVmNWRhNWYwMmU3Y2U3Y2Y4MzVmODg0MS4uY2EyNGNmNjQ1ZDgyN2RmN2E1NGI4N2Q1
ZDBmMWRhMGI0Yzg5ZDFlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAyMS0wNi0wNyAg
SmVhbi1ZdmVzIEF2ZW5hcmQgIDxqeWFAYXBwbGUuY29tPgorCisgICAgICAgIFtNU0VdIFJld29y
ayBoYW5kbGluZyBvZiBTb3VyY2VCdWZmZXIncyBidWZmZXIgZnVsbC4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjcxMQorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNzg5Mzc5MDk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZVNvdXJjZUJ1ZmZlclByb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU291cmNlQnVmZmVyUHJveHk6OmV2aWN0Q29kZWRG
cmFtZXMpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTb3VyY2VCdWZmZXJQcm94eTo6cmVlbnF1
ZXVlTWVkaWFJZk5lZWRlZCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVTb3Vy
Y2VCdWZmZXJQcm94eS5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlU291cmNl
QnVmZmVyUHJveHkubWVzc2FnZXMuaW46IFJlbW92ZSBjYXBhY2l0eSBhbmQKKyAgICAgICAgYnVm
ZmVyIGZ1bGwgcmVmZXJlbmNlcyBmcm9tIGFsbCBtZXRob2RzOyByZWx5aW5nIG9uIHRoZSB0b3Rh
bFRyYWNrQnVmZmVyU2l6ZUluQnl0ZXMKKyAgICAgICAgaW5zdGVhZC4KKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0dQVS9tZWRpYS9Tb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6U291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZTo6ZXZpY3RDb2RlZEZyYW1lcyk6Cisg
ICAgICAgIChXZWJLaXQ6OlNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGU6OnJlZW5xdWV1ZU1lZGlh
SWZOZWVkZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1NvdXJjZUJ1ZmZlclBy
aXZhdGVSZW1vdGUuaDoKKwogMjAyMS0wNi0wNyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3Rl
bnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEFkb3B0IFNlY1RydXN0R2V0Q2VydGlmaWNhdGVB
dEluZGV4IHJlcGxhY2VtZW50IHdoZXJlIGF2YWlsYWJsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwCmluZGV4IGUwODdiMzNlYjg2
Y2Y1ZGZjMGU1MGVhMzllNTY5YTE5ZDNiZjgxZGIuLmFiNGI3OWIxNDcyZmI4YzE1NTkwYmE0Nzkx
MzIwZTc2Nzk3NWRhZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
b3VyY2UvU291cmNlQnVmZmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c291cmNlL1NvdXJjZUJ1ZmZlci5jcHAKQEAgLTQ4MywxMCArNDgzLDEwIEBAIEV4Y2VwdGlvbk9y
PHZvaWQ+IFNvdXJjZUJ1ZmZlcjo6YXBwZW5kQnVmZmVySW50ZXJuYWwoY29uc3QgdW5zaWduZWQg
Y2hhciogZGF0YSwKICAgICBtX3NvdXJjZS0+b3BlbklmSW5FbmRlZFN0YXRlKCk7CiAKICAgICAv
LyA0LiBSdW4gdGhlIGNvZGVkIGZyYW1lIGV2aWN0aW9uIGFsZ29yaXRobS4KLSAgICBtX3ByaXZh
dGUtPmV2aWN0Q29kZWRGcmFtZXMoc2l6ZSwgbV9wZW5kaW5nQXBwZW5kRGF0YS5zaXplKCksIG1h
eGltdW1CdWZmZXJTaXplKCksIG1fc291cmNlLT5jdXJyZW50VGltZSgpLCBtX3NvdXJjZS0+ZHVy
YXRpb24oKSwgbV9zb3VyY2UtPmlzRW5kZWQoKSk7CisgICAgbV9wcml2YXRlLT5ldmljdENvZGVk
RnJhbWVzKHNpemUsIG1heGltdW1CdWZmZXJTaXplKCksIG1fc291cmNlLT5jdXJyZW50VGltZSgp
LCBtX3NvdXJjZS0+ZHVyYXRpb24oKSwgbV9zb3VyY2UtPmlzRW5kZWQoKSk7CiAKICAgICAvLyA1
LiBJZiB0aGUgYnVmZmVyIGZ1bGwgZmxhZyBlcXVhbHMgdHJ1ZSwgdGhlbiB0aHJvdyBhIFF1b3Rh
RXhjZWVkZWRFcnJvciBleGNlcHRpb24gYW5kIGFib3J0IHRoZXNlIHN0ZXAuCi0gICAgaWYgKG1f
cHJpdmF0ZS0+YnVmZmVyRnVsbCgpIHx8IG1fcHJpdmF0ZS0+dG90YWxUcmFja0J1ZmZlclNpemVJ
bkJ5dGVzKCkgKyBtX3BlbmRpbmdBcHBlbmREYXRhLnNpemUoKSArIHNpemUgPj0gbWF4aW11bUJ1
ZmZlclNpemUoKSkgeworICAgIGlmIChtX3ByaXZhdGUtPmlzQnVmZmVyRnVsbEZvcihzaXplLCBt
YXhpbXVtQnVmZmVyU2l6ZSgpKSkgewogICAgICAgICBFUlJPUl9MT0coTE9HSURFTlRJRklFUiwg
ImJ1ZmZlciBmdWxsLCBmYWlsaW5nIHdpdGggUXVvdGFFeGNlZWRlZEVycm9yIGVycm9yIik7CiAg
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBRdW90YUV4Y2VlZGVkRXJyb3IgfTsKICAgICB9CkBA
IC01NzMsNyArNTczLDcgQEAgdm9pZCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVB
cHBlbmRDb21wbGV0ZShBcHBlbmRSZXN1bHQgcmVzdWx0KQogICAgIHNjaGVkdWxlRXZlbnQoZXZl
bnROYW1lcygpLnVwZGF0ZWVuZEV2ZW50KTsKIAogICAgIG1fc291cmNlLT5tb25pdG9yU291cmNl
QnVmZmVycygpOwotICAgIG1fcHJpdmF0ZS0+cmVlbnF1ZXVlTWVkaWFJZk5lZWRlZChtX3NvdXJj
ZS0+Y3VycmVudFRpbWUoKSwgbV9wZW5kaW5nQXBwZW5kRGF0YS5jYXBhY2l0eSgpLCBtYXhpbXVt
QnVmZmVyU2l6ZSgpKTsKKyAgICBtX3ByaXZhdGUtPnJlZW5xdWV1ZU1lZGlhSWZOZWVkZWQobV9z
b3VyY2UtPmN1cnJlbnRUaW1lKCkpOwogCiAgICAgREVCVUdfTE9HKExPR0lERU5USUZJRVIpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNlQnVm
ZmVyUHJpdmF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VC
dWZmZXJQcml2YXRlLmNwcAppbmRleCA1MjYwYzRiZjQzNDg5MThkYmE5ZDkwMjk1ZWZkMzU0MGFl
ODEyY2E4Li43ZDdhMmQ0MWZhM2IyYzU2NTZlZmQzNjNlOGE2YzI3MWYwODkzODJkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VCdWZmZXJQcml2YXRl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VCdWZmZXJQ
cml2YXRlLmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIlNhbXBsZU1hcC5oIgogI2lu
Y2x1ZGUgIlNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQuaCIKICNpbmNsdWRlICJUaW1lUmFuZ2Vz
LmgiCisjaW5jbHVkZSA8d3RmL0NoZWNrZWRBcml0aG1ldGljLmg+CiAjaW5jbHVkZSA8d3RmL01l
ZGlhVGltZS5oPgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVhbS5oPgogCkBAIC00MTks
NyArNDIwLDcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlOjpyZWVucXVldWVNZWRpYUZvclRp
bWUoVHJhY2tCdWZmZXImIHRyYWNrQnVmZmVyLCBjb25zdAogICAgIHRyYWNrQnVmZmVyLm5lZWRz
UmVlbnF1ZXVlaW5nID0gZmFsc2U7CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZTo6cmVl
bnF1ZXVlTWVkaWFJZk5lZWRlZChjb25zdCBNZWRpYVRpbWUmIGN1cnJlbnRUaW1lLCB1aW50NjRf
dCBwZW5kaW5nQXBwZW5kRGF0YUNhcGFjaXR5LCB1aW50NjRfdCBtYXhpbXVtQnVmZmVyU2l6ZSkK
K3ZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZTo6cmVlbnF1ZXVlTWVkaWFJZk5lZWRlZChjb25zdCBN
ZWRpYVRpbWUmIGN1cnJlbnRUaW1lKQogewogICAgIGZvciAoYXV0byYgdHJhY2tCdWZmZXJQYWly
IDogbV90cmFja0J1ZmZlck1hcCkgewogICAgICAgICBUcmFja0J1ZmZlciYgdHJhY2tCdWZmZXIg
PSB0cmFja0J1ZmZlclBhaXIudmFsdWU7CkBAIC00MzEsOSArNDMyLDYgQEAgdm9pZCBTb3VyY2VC
dWZmZXJQcml2YXRlOjpyZWVucXVldWVNZWRpYUlmTmVlZGVkKGNvbnN0IE1lZGlhVGltZSYgY3Vy
cmVudFRpbWUsIHUKICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBwcm92aWRlTWVkaWFEYXRh
KHRyYWNrQnVmZmVyLCB0cmFja0lEKTsKICAgICB9Ci0KLSAgICBpZiAodG90YWxUcmFja0J1ZmZl
clNpemVJbkJ5dGVzKCkgKyBwZW5kaW5nQXBwZW5kRGF0YUNhcGFjaXR5ID4gbWF4aW11bUJ1ZmZl
clNpemUpCi0gICAgICAgIG1fYnVmZmVyRnVsbCA9IHRydWU7CiB9CiAKIHN0YXRpYyBXQVJOX1VO
VVNFRF9SRVRVUk4gYm9vbCBkZWNvZGVUaW1lQ29tcGFyYXRvcihjb25zdCBQcmVzZW50YXRpb25P
cmRlclNhbXBsZU1hcDo6TWFwVHlwZTo6dmFsdWVfdHlwZSYgYSwgY29uc3QgUHJlc2VudGF0aW9u
T3JkZXJTYW1wbGVNYXA6Ok1hcFR5cGU6OnZhbHVlX3R5cGUmIGIpCkBAIC02MjgsNyArNjI2LDcg
QEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlOjpyZW1vdmVDb2RlZEZyYW1lcyhjb25zdCBNZWRp
YVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVQKICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogfQog
Ci12b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGU6OmV2aWN0Q29kZWRGcmFtZXModWludDY0X3QgbmV3
RGF0YVNpemUsIHVpbnQ2NF90IHBlbmRpbmdBcHBlbmREYXRhQ2FwYWNpdHksIHVpbnQ2NF90IG1h
eGltdW1CdWZmZXJTaXplLCBjb25zdCBNZWRpYVRpbWUmIGN1cnJlbnRUaW1lLCBjb25zdCBNZWRp
YVRpbWUmIGR1cmF0aW9uLCBib29sIGlzRW5kZWQpCit2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGU6
OmV2aWN0Q29kZWRGcmFtZXModWludDY0X3QgbmV3RGF0YVNpemUsIHVpbnQ2NF90IG1heGltdW1C
dWZmZXJTaXplLCBjb25zdCBNZWRpYVRpbWUmIGN1cnJlbnRUaW1lLCBjb25zdCBNZWRpYVRpbWUm
IGR1cmF0aW9uLCBib29sIGlzRW5kZWQpCiB7CiAgICAgLy8gMy41LjEzIENvZGVkIEZyYW1lIEV2
aWN0aW9uIEFsZ29yaXRobQogICAgIC8vIGh0dHA6Ly93d3cudzMub3JnL1RSL21lZGlhLXNvdXJj
ZS8jc291cmNlYnVmZmVyLWNvZGVkLWZyYW1lLWV2aWN0aW9uCkBAIC02MzksNyArNjM3LDcgQEAg
dm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlOjpldmljdENvZGVkRnJhbWVzKHVpbnQ2NF90IG5ld0Rh
dGFTaXplLCB1aW50NjRfdCBwZW5kaW4KICAgICAvLyBUaGlzIGFsZ29yaXRobSBpcyBydW4gdG8g
ZnJlZSB1cCBzcGFjZSBpbiB0aGlzIHNvdXJjZSBidWZmZXIgd2hlbiBuZXcgZGF0YSBpcyBhcHBl
bmRlZC4KICAgICAvLyAxLiBMZXQgbmV3IGRhdGEgZXF1YWwgdGhlIGRhdGEgdGhhdCBpcyBhYm91
dCB0byBiZSBhcHBlbmRlZCB0byB0aGlzIFNvdXJjZUJ1ZmZlci4KICAgICAvLyAyLiBJZiB0aGUg
YnVmZmVyIGZ1bGwgZmxhZyBlcXVhbHMgZmFsc2UsIHRoZW4gYWJvcnQgdGhlc2Ugc3RlcHMuCi0g
ICAgaWYgKCFtX2J1ZmZlckZ1bGwgJiYgdG90YWxUcmFja0J1ZmZlclNpemVJbkJ5dGVzKCkgKyBw
ZW5kaW5nQXBwZW5kRGF0YUNhcGFjaXR5ICsgbmV3RGF0YVNpemUgPCBtYXhpbXVtQnVmZmVyU2l6
ZSkKKyAgICBpZiAoIWlzQnVmZmVyRnVsbEZvcihuZXdEYXRhU2l6ZSwgbWF4aW11bUJ1ZmZlclNp
emUpKQogICAgICAgICByZXR1cm47CiAKICAgICAvLyAzLiBMZXQgcmVtb3ZhbCByYW5nZXMgZXF1
YWwgYSBsaXN0IG9mIHByZXNlbnRhdGlvbiB0aW1lIHJhbmdlcyB0aGF0IGNhbiBiZSBldmljdGVk
IGZyb20KQEAgLTY2MSw4ICs2NTksNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGU6OmV2aWN0
Q29kZWRGcmFtZXModWludDY0X3QgbmV3RGF0YVNpemUsIHVpbnQ2NF90IHBlbmRpbgogICAgICAg
ICAvLyA0LiBGb3IgZWFjaCByYW5nZSBpbiByZW1vdmFsIHJhbmdlcywgcnVuIHRoZSBjb2RlZCBm
cmFtZSByZW1vdmFsIGFsZ29yaXRobSB3aXRoIHN0YXJ0IGFuZAogICAgICAgICAvLyBlbmQgZXF1
YWwgdG8gdGhlIHJlbW92YWwgcmFuZ2Ugc3RhcnQgYW5kIGVuZCB0aW1lc3RhbXAgcmVzcGVjdGl2
ZWx5LgogICAgICAgICByZW1vdmVDb2RlZEZyYW1lcyhyYW5nZVN0YXJ0LCBzdGQ6Om1pbihyYW5n
ZUVuZCwgbWF4aW11bVJhbmdlRW5kKSwgY3VycmVudFRpbWUsIGlzRW5kZWQpOwotICAgICAgICBp
ZiAodG90YWxUcmFja0J1ZmZlclNpemVJbkJ5dGVzKCkgKyBwZW5kaW5nQXBwZW5kRGF0YUNhcGFj
aXR5ICsgbmV3RGF0YVNpemUgPCBtYXhpbXVtQnVmZmVyU2l6ZSkgewotICAgICAgICAgICAgbV9i
dWZmZXJGdWxsID0gZmFsc2U7CisgICAgICAgIGlmICghaXNCdWZmZXJGdWxsRm9yKG5ld0RhdGFT
aXplLCBtYXhpbXVtQnVmZmVyU2l6ZSkpIHsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9
CiAKQEAgLTY3MCw3ICs2NjcsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGU6OmV2aWN0Q29k
ZWRGcmFtZXModWludDY0X3QgbmV3RGF0YVNpemUsIHVpbnQ2NF90IHBlbmRpbgogICAgICAgICBy
YW5nZUVuZCArPSB0aGlydHlTZWNvbmRzOwogICAgIH0KIAotICAgIGlmICghbV9idWZmZXJGdWxs
KSB7CisgICAgaWYgKCFpc0J1ZmZlckZ1bGxGb3IobmV3RGF0YVNpemUsIG1heGltdW1CdWZmZXJT
aXplKSkgewogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgICAgICBERUJVR19MT0coTE9H
SURFTlRJRklFUiwgImV2aWN0ZWQgIiwgaW5pdGlhbEJ1ZmZlcmVkU2l6ZSAtIHRvdGFsVHJhY2tC
dWZmZXJTaXplSW5CeXRlcygpKTsKICNlbmRpZgpAQCAtNzA1LDggKzcwMiw3IEBAIHZvaWQgU291
cmNlQnVmZmVyUHJpdmF0ZTo6ZXZpY3RDb2RlZEZyYW1lcyh1aW50NjRfdCBuZXdEYXRhU2l6ZSwg
dWludDY0X3QgcGVuZGluCiAgICAgICAgIC8vIGVuZCBlcXVhbCB0byB0aGUgcmVtb3ZhbCByYW5n
ZSBzdGFydCBhbmQgZW5kIHRpbWVzdGFtcCByZXNwZWN0aXZlbHkuCiAgICAgICAgIHJlbW92ZUNv
ZGVkRnJhbWVzKHN0ZDo6bWF4KG1pbmltdW1SYW5nZVN0YXJ0LCByYW5nZVN0YXJ0KSwgcmFuZ2VF
bmQsIGN1cnJlbnRUaW1lLCBpc0VuZGVkKTsKIAotICAgICAgICBpZiAodG90YWxUcmFja0J1ZmZl
clNpemVJbkJ5dGVzKCkgKyBwZW5kaW5nQXBwZW5kRGF0YUNhcGFjaXR5ICsgbmV3RGF0YVNpemUg
PCBtYXhpbXVtQnVmZmVyU2l6ZSkgewotICAgICAgICAgICAgbV9idWZmZXJGdWxsID0gZmFsc2U7
CisgICAgICAgIGlmICghaXNCdWZmZXJGdWxsRm9yKG5ld0RhdGFTaXplLCBtYXhpbXVtQnVmZmVy
U2l6ZSkpIHsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKQEAgLTcxNSwxMyArNzEx
LDIyIEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZTo6ZXZpY3RDb2RlZEZyYW1lcyh1aW50NjRf
dCBuZXdEYXRhU2l6ZSwgdWludDY0X3QgcGVuZGluCiAgICAgfQogCiAjaWYgIVJFTEVBU0VfTE9H
X0RJU0FCTEVECi0gICAgaWYgKG1fYnVmZmVyRnVsbCkKKyAgICBpZiAoaXNCdWZmZXJGdWxsRm9y
KG5ld0RhdGFTaXplLCBtYXhpbXVtQnVmZmVyU2l6ZSkpCiAgICAgICAgIEVSUk9SX0xPRyhMT0dJ
REVOVElGSUVSLCAiRkFJTEVEIHRvIGZyZWUgZW5vdWdoIGFmdGVyIGV2aWN0aW5nICIsIGluaXRp
YWxCdWZmZXJlZFNpemUgLSB0b3RhbFRyYWNrQnVmZmVyU2l6ZUluQnl0ZXMoKSk7CiAgICAgZWxz
ZQogICAgICAgICBERUJVR19MT0coTE9HSURFTlRJRklFUiwgImV2aWN0ZWQgIiwgaW5pdGlhbEJ1
ZmZlcmVkU2l6ZSAtIHRvdGFsVHJhY2tCdWZmZXJTaXplSW5CeXRlcygpKTsKICNlbmRpZgogfQog
Citib29sIFNvdXJjZUJ1ZmZlclByaXZhdGU6OmlzQnVmZmVyRnVsbEZvcih1aW50NjRfdCByZXF1
aXJlZFNpemUsIHVpbnQ2NF90IG1heGltdW1CdWZmZXJTaXplKQoreworICAgIGF1dG8gdG90YWxS
ZXF1aXJlZCA9IGNoZWNrZWRTdW08dWludDY0X3Q+KHRvdGFsVHJhY2tCdWZmZXJTaXplSW5CeXRl
cygpLCByZXF1aXJlZFNpemUpOworICAgIGlmICh0b3RhbFJlcXVpcmVkLmhhc092ZXJmbG93ZWQo
KSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICByZXR1cm4gdG90YWxSZXF1aXJlZCA+PSBt
YXhpbXVtQnVmZmVyU2l6ZTsKK30KKwogdWludDY0X3QgU291cmNlQnVmZmVyUHJpdmF0ZTo6dG90
YWxUcmFja0J1ZmZlclNpemVJbkJ5dGVzKCkgY29uc3QKIHsKICAgICB1aW50NjRfdCB0b3RhbFNp
emVJbkJ5dGVzID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL1NvdXJjZUJ1ZmZlclByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL1NvdXJjZUJ1ZmZlclByaXZhdGUuaAppbmRleCAxOTFhNTY0MmMxMzNkMDc4NDE4MDZkZWUz
NWU1MzZjMzA0MjY4NWU1Li44Mjg3NGEwYjg5NzhmMWIzZTM5NjU3MWFkZWI2Njc0ZmZkNmE4OWM1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VCdWZm
ZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNl
QnVmZmVyUHJpdmF0ZS5oCkBAIC03Nyw3ICs3Nyw3IEBAIHB1YmxpYzoKIAogICAgIFdFQkNPUkVf
RVhQT1JUIHZpcnR1YWwgdm9pZCBzZXRNZWRpYVNvdXJjZUVuZGVkKGJvb2wpOwogICAgIHZpcnR1
YWwgdm9pZCBzZXRNb2RlKFNvdXJjZUJ1ZmZlckFwcGVuZE1vZGUgbW9kZSkgeyBtX2FwcGVuZE1v
ZGUgPSBtb2RlOyB9Ci0gICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIHJlZW5xdWV1ZU1l
ZGlhSWZOZWVkZWQoY29uc3QgTWVkaWFUaW1lJiBjdXJyZW50TWVkaWFUaW1lLCB1aW50NjRfdCBw
ZW5kaW5nQXBwZW5kRGF0YUNhcGFjaXR5LCB1aW50NjRfdCBtYXhpbXVtQnVmZmVyU2l6ZSk7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIHJlZW5xdWV1ZU1lZGlhSWZOZWVkZWQoY29u
c3QgTWVkaWFUaW1lJiBjdXJyZW50TWVkaWFUaW1lKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0
dWFsIHZvaWQgYWRkVHJhY2tCdWZmZXIoY29uc3QgQXRvbVN0cmluZyYgdHJhY2tJZCwgUmVmUHRy
PE1lZGlhRGVzY3JpcHRpb24+JiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBy
ZXNldFRyYWNrQnVmZmVycygpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBjbGVh
clRyYWNrQnVmZmVycygpOwpAQCAtODcsNyArODcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIHNldFNob3VsZEdlbmVyYXRlVGltZXN0YW1wcyhib29sIGZsYWcpIHsgbV9zaG91bGRHZW5l
cmF0ZVRpbWVzdGFtcHMgPSBmbGFnOyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lk
IHVwZGF0ZUJ1ZmZlcmVkRnJvbVRyYWNrQnVmZmVycyhib29sIHNvdXJjZUlzRW5kZWQpOwogICAg
IFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCByZW1vdmVDb2RlZEZyYW1lcyhjb25zdCBNZWRp
YVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgY29uc3QgTWVkaWFUaW1lJiBjdXJy
ZW50TWVkaWFUaW1lLCBib29sIGlzRW5kZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiA9
IFtdIHsgfSk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIGV2aWN0Q29kZWRGcmFt
ZXModWludDY0X3QgbmV3RGF0YVNpemUsIHVpbnQ2NF90IHBlbmRpbmdBcHBlbmREYXRhQ2FwYWNp
dHksIHVpbnQ2NF90IG1heGltdW1CdWZmZXJTaXplLCBjb25zdCBNZWRpYVRpbWUmIGN1cnJlbnRU
aW1lLCBjb25zdCBNZWRpYVRpbWUmIGR1cmF0aW9uLCBib29sIGlzRW5kZWQpOworICAgIFdFQkNP
UkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBldmljdENvZGVkRnJhbWVzKHVpbnQ2NF90IG5ld0RhdGFT
aXplLCB1aW50NjRfdCBtYXhpbXVtQnVmZmVyU2l6ZSwgY29uc3QgTWVkaWFUaW1lJiBjdXJyZW50
VGltZSwgY29uc3QgTWVkaWFUaW1lJiBkdXJhdGlvbiwgYm9vbCBpc0VuZGVkKTsKICAgICBXRUJD
T1JFX0VYUE9SVCB2aXJ0dWFsIHVpbnQ2NF90IHRvdGFsVHJhY2tCdWZmZXJTaXplSW5CeXRlcygp
IGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCByZXNldFRpbWVzdGFtcE9m
ZnNldEluVHJhY2tCdWZmZXJzKCk7CiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0Q2hhbmdpbmdUeXBl
KCkgeyBtX3BlbmRpbmdJbml0aWFsaXphdGlvblNlZ21lbnRGb3JDaGFuZ2VUeXBlID0gdHJ1ZTsg
fQpAQCAtMTAyLDcgKzEwMiw3IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IFRpbWVSYW5nZXMqIGJ1
ZmZlcmVkKCkgY29uc3QgeyByZXR1cm4gbV9idWZmZXJlZC5nZXQoKTsgfQogCi0gICAgYm9vbCBi
dWZmZXJGdWxsKCkgY29uc3QgeyByZXR1cm4gbV9idWZmZXJGdWxsOyB9CisgICAgYm9vbCBpc0J1
ZmZlckZ1bGxGb3IodWludDY0X3QgcmVxdWlyZWRTaXplLCB1aW50NjRfdCBtYXhpbXVtQnVmZmVy
U2l6ZSk7CiAKICAgICAvLyBNZXRob2RzIHVzZWQgYnkgTWVkaWFTb3VyY2VQcml2YXRlCiAgICAg
Ym9vbCBoYXNBdWRpbygpIGNvbnN0IHsgcmV0dXJuIG1faGFzQXVkaW87IH0KQEAgLTE2Nyw3ICsx
NjcsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaWRSZWNlaXZlSW5p
dGlhbGl6YXRpb25TZWdtZW50KFNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQ6OkluaXRpYWxpemF0
aW9uU2VnbWVudCYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgZGlkUmVjZWl2ZVNhbXBsZShSZWY8TWVkaWFTYW1wbGU+JiYpOwogICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgc2V0QnVmZmVyZWRSYW5nZXMoY29uc3QgUGxhdGZvcm1UaW1lUmFu
Z2VzJik7Ci0gICAgdm9pZCBzZXRCdWZmZXJGdWxsKGJvb2wgYnVmZmVyRnVsbCkgeyBtX2J1ZmZl
ckZ1bGwgPSBidWZmZXJGdWxsOyB9CiAgICAgdm9pZCBwcm92aWRlTWVkaWFEYXRhKGNvbnN0IEF0
b21TdHJpbmcmIHRyYWNrSUQpOwogCiAgICAgU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudCogbV9j
bGllbnQgeyBudWxscHRyIH07CkBAIC0yMDEsNyArMjAwLDYgQEAgcHJpdmF0ZToKICAgICBNZWRp
YVRpbWUgbV9ncm91cFN0YXJ0VGltZXN0YW1wIHsgTWVkaWFUaW1lOjppbnZhbGlkVGltZSgpIH07
CiAgICAgTWVkaWFUaW1lIG1fZ3JvdXBFbmRUaW1lc3RhbXAgeyBNZWRpYVRpbWU6Onplcm9UaW1l
KCkgfTsKIAotICAgIGJvb2wgbV9idWZmZXJGdWxsIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNN
ZWRpYVNvdXJjZUVuZGVkIHsgZmFsc2UgfTsKICAgICBSZWZQdHI8VGltZVJhbmdlcz4gbV9idWZm
ZXJlZDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlU291cmNlQnVmZmVyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZVNvdXJjZUJ1ZmZlclByb3h5LmNwcAppbmRleCA2OGRlZjkyZTdlY2Q0MWZiMTY3NzU4
YjczYTA4ODI5ZjMyY2VkNzFjLi42NTRiMWFhMzNkYjYzZGQ3YjNhN2Y5NmIxM2Q1YjY1OWY2N2E5
YWM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlU291
cmNlQnVmZmVyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVTb3VyY2VCdWZmZXJQcm94eS5jcHAKQEAgLTI1NywxMCArMjU3LDEwIEBAIHZvaWQgUmVt
b3RlU291cmNlQnVmZmVyUHJveHk6OnJlbW92ZUNvZGVkRnJhbWVzKGNvbnN0IE1lZGlhVGltZSYg
c3RhcnQsIGNvbnN0IE1lCiAgICAgfSk7CiB9CiAKLXZvaWQgUmVtb3RlU291cmNlQnVmZmVyUHJv
eHk6OmV2aWN0Q29kZWRGcmFtZXModWludDY0X3QgbmV3RGF0YVNpemUsIHVpbnQ2NF90IHBlbmRp
bmdBcHBlbmREYXRhQ2FwYWNpdHksIHVpbnQ2NF90IG1heGltdW1CdWZmZXJTaXplLCBjb25zdCBN
ZWRpYVRpbWUmIGN1cnJlbnRUaW1lLCBjb25zdCBNZWRpYVRpbWUmIGR1cmF0aW9uLCBib29sIGlz
RW5kZWQsIEV2aWN0Q29kZWRGcmFtZXNEZWxheWVkUmVwbHkmJiBjb21wbGV0aW9uSGFuZGxlcikK
K3ZvaWQgUmVtb3RlU291cmNlQnVmZmVyUHJveHk6OmV2aWN0Q29kZWRGcmFtZXModWludDY0X3Qg
bmV3RGF0YVNpemUsIHVpbnQ2NF90IG1heGltdW1CdWZmZXJTaXplLCBjb25zdCBNZWRpYVRpbWUm
IGN1cnJlbnRUaW1lLCBjb25zdCBNZWRpYVRpbWUmIGR1cmF0aW9uLCBib29sIGlzRW5kZWQsIEV2
aWN0Q29kZWRGcmFtZXNEZWxheWVkUmVwbHkmJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBt
X3NvdXJjZUJ1ZmZlclByaXZhdGUtPmV2aWN0Q29kZWRGcmFtZXMobmV3RGF0YVNpemUsIHBlbmRp
bmdBcHBlbmREYXRhQ2FwYWNpdHksIG1heGltdW1CdWZmZXJTaXplLCBjdXJyZW50VGltZSwgZHVy
YXRpb24sIGlzRW5kZWQpOwotICAgIGNvbXBsZXRpb25IYW5kbGVyKG1fc291cmNlQnVmZmVyUHJp
dmF0ZS0+YnVmZmVyRnVsbCgpLCBtX3NvdXJjZUJ1ZmZlclByaXZhdGUtPnRvdGFsVHJhY2tCdWZm
ZXJTaXplSW5CeXRlcygpKTsKKyAgICBtX3NvdXJjZUJ1ZmZlclByaXZhdGUtPmV2aWN0Q29kZWRG
cmFtZXMobmV3RGF0YVNpemUsIG1heGltdW1CdWZmZXJTaXplLCBjdXJyZW50VGltZSwgZHVyYXRp
b24sIGlzRW5kZWQpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKG1fc291cmNlQnVmZmVyUHJpdmF0
ZS0+dG90YWxUcmFja0J1ZmZlclNpemVJbkJ5dGVzKCkpOwogfQogCiB2b2lkIFJlbW90ZVNvdXJj
ZUJ1ZmZlclByb3h5OjphZGRUcmFja0J1ZmZlcihUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVy
IHRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIpCkBAIC0yODUsMTAgKzI4NSw5IEBAIHZvaWQg
UmVtb3RlU291cmNlQnVmZmVyUHJveHk6OnNldEFsbFRyYWNrQnVmZmVyc05lZWRSYW5kb21BY2Nl
c3MoKQogICAgIG1fc291cmNlQnVmZmVyUHJpdmF0ZS0+c2V0QWxsVHJhY2tCdWZmZXJzTmVlZFJh
bmRvbUFjY2VzcygpOwogfQogCi12b2lkIFJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5OjpyZWVucXVl
dWVNZWRpYUlmTmVlZGVkKGNvbnN0IE1lZGlhVGltZSYgY3VycmVudE1lZGlhVGltZSwgdWludDY0
X3QgcGVuZGluZ0FwcGVuZERhdGFDYXBhY2l0eSwgdWludDY0X3QgbWF4aW11bUJ1ZmZlclNpemUs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lk
IFJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5OjpyZWVucXVldWVNZWRpYUlmTmVlZGVkKGNvbnN0IE1l
ZGlhVGltZSYgY3VycmVudE1lZGlhVGltZSkKIHsKLSAgICBtX3NvdXJjZUJ1ZmZlclByaXZhdGUt
PnJlZW5xdWV1ZU1lZGlhSWZOZWVkZWQoY3VycmVudE1lZGlhVGltZSwgcGVuZGluZ0FwcGVuZERh
dGFDYXBhY2l0eSwgbWF4aW11bUJ1ZmZlclNpemUpOwotICAgIGNvbXBsZXRpb25IYW5kbGVyKG1f
c291cmNlQnVmZmVyUHJpdmF0ZS0+YnVmZmVyRnVsbCgpKTsKKyAgICBtX3NvdXJjZUJ1ZmZlclBy
aXZhdGUtPnJlZW5xdWV1ZU1lZGlhSWZOZWVkZWQoY3VycmVudE1lZGlhVGltZSk7CiB9CiAKIHZv
aWQgUmVtb3RlU291cmNlQnVmZmVyUHJveHk6OnNldEdyb3VwU3RhcnRUaW1lc3RhbXAoY29uc3Qg
TWVkaWFUaW1lJiB0aW1lc3RhbXApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlU291cmNlQnVmZmVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVTb3VyY2VCdWZmZXJQcm94eS5oCmluZGV4IGJhZWNkZmNkYTI1NTIz
NzY2NDg0NWMzMTkyNjUxYjRhMjMxNjEwYzkuLmM5MTI5MDE1OGQ4M2VjOTYwMjVlYzk1OTMzZjJh
MzFiNzVlNWVhM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVTb3VyY2VCdWZmZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVTb3VyY2VCdWZmZXJQcm94eS5oCkBAIC05OCwxMiArOTgsMTIgQEAgcHJpdmF0
ZToKICAgICB1c2luZyBSZW1vdmVDb2RlZEZyYW1lc0FzeW5jUmVwbHkgPSBNZXNzYWdlczo6UmVt
b3RlU291cmNlQnVmZmVyUHJveHk6OlJlbW92ZUNvZGVkRnJhbWVzQXN5bmNSZXBseTsKICAgICB1
c2luZyBFdmljdENvZGVkRnJhbWVzRGVsYXllZFJlcGx5PSBNZXNzYWdlczo6UmVtb3RlU291cmNl
QnVmZmVyUHJveHk6OkV2aWN0Q29kZWRGcmFtZXNEZWxheWVkUmVwbHk7CiAgICAgdm9pZCByZW1v
dmVDb2RlZEZyYW1lcyhjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVu
ZCwgY29uc3QgTWVkaWFUaW1lJiBjdXJyZW50VGltZSwgYm9vbCBpc0VuZGVkLCBSZW1vdmVDb2Rl
ZEZyYW1lc0FzeW5jUmVwbHkmJik7Ci0gICAgdm9pZCBldmljdENvZGVkRnJhbWVzKHVpbnQ2NF90
IG5ld0RhdGFTaXplLCB1aW50NjRfdCBwZW5kaW5nQXBwZW5kRGF0YUNhcGFjaXR5LCB1aW50NjRf
dCBtYXhpbXVtQnVmZmVyU2l6ZSwgY29uc3QgTWVkaWFUaW1lJiBjdXJyZW50VGltZSwgY29uc3Qg
TWVkaWFUaW1lJiBkdXJhdGlvbiwgYm9vbCBpc0VuZGVkLCBFdmljdENvZGVkRnJhbWVzRGVsYXll
ZFJlcGx5JiYpOworICAgIHZvaWQgZXZpY3RDb2RlZEZyYW1lcyh1aW50NjRfdCBuZXdEYXRhU2l6
ZSwgdWludDY0X3QgbWF4aW11bUJ1ZmZlclNpemUsIGNvbnN0IE1lZGlhVGltZSYgY3VycmVudFRp
bWUsIGNvbnN0IE1lZGlhVGltZSYgZHVyYXRpb24sIGJvb2wgaXNFbmRlZCwgRXZpY3RDb2RlZEZy
YW1lc0RlbGF5ZWRSZXBseSYmKTsKICAgICB2b2lkIGFkZFRyYWNrQnVmZmVyKFRyYWNrUHJpdmF0
ZVJlbW90ZUlkZW50aWZpZXIpOwogICAgIHZvaWQgcmVzZXRUcmFja0J1ZmZlcnMoKTsKICAgICB2
b2lkIGNsZWFyVHJhY2tCdWZmZXJzKCk7CiAgICAgdm9pZCBzZXRBbGxUcmFja0J1ZmZlcnNOZWVk
UmFuZG9tQWNjZXNzKCk7Ci0gICAgdm9pZCByZWVucXVldWVNZWRpYUlmTmVlZGVkKGNvbnN0IE1l
ZGlhVGltZSYgY3VycmVudE1lZGlhVGltZSwgdWludDY0X3QgcGVuZGluZ0FwcGVuZERhdGFDYXBh
Y2l0eSwgdWludDY0X3QgbWF4aW11bUJ1ZmZlclNpemUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Ym9vbCk+JiYpOworICAgIHZvaWQgcmVlbnF1ZXVlTWVkaWFJZk5lZWRlZChjb25zdCBNZWRpYVRp
bWUmIGN1cnJlbnRNZWRpYVRpbWUpOwogICAgIHZvaWQgc2V0R3JvdXBTdGFydFRpbWVzdGFtcChj
b25zdCBNZWRpYVRpbWUmKTsKICAgICB2b2lkIHNldEdyb3VwU3RhcnRUaW1lc3RhbXBUb0VuZFRp
bWVzdGFtcCgpOwogICAgIHZvaWQgc2V0U2hvdWxkR2VuZXJhdGVUaW1lc3RhbXBzKGJvb2wpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVNvdXJjZUJ1
ZmZlclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZVNvdXJjZUJ1ZmZlclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDVlYTYwZjdmZDg2OTQxZDFj
YWFmNTBmOGI4ODY1NDc4YjkzZTExYzQuLmZlZmU4ZjU1ZjlkODg1OWMxYjUwOWY2N2I1MjNmN2M3
ODUwOGQ3OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVTb3VyY2VCdWZmZXJQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlU291cmNlQnVmZmVyUHJveHkubWVzc2FnZXMuaW4KQEAgLTQyLDgg
KzQyLDggQEAgbWVzc2FnZXMgLT4gUmVtb3RlU291cmNlQnVmZmVyUHJveHkgTm90UmVmQ291bnRl
ZCB7CiAgICAgQ2xlYXJUcmFja0J1ZmZlcnMoKQogICAgIFNldEFsbFRyYWNrQnVmZmVyc05lZWRS
YW5kb21BY2Nlc3MoKQogICAgIFJlbW92ZUNvZGVkRnJhbWVzKE1lZGlhVGltZSBzdGFydCwgTWVk
aWFUaW1lIGVuZCwgTWVkaWFUaW1lIGN1cnJlbnRUaW1lLCBib29sIGlzRW5kZWQpIC0+IChXZWJD
b3JlOjpQbGF0Zm9ybVRpbWVSYW5nZXMgYnVmZmVyZWQsIHVpbnQ2NF90IHRvdGFsVHJhY2tCdWZm
ZXJTaXplSW5CeXRlcykgQXN5bmMKLSAgICBFdmljdENvZGVkRnJhbWVzKHVpbnQ2NF90IG5ld0Rh
dGFTaXplLCB1aW50NjRfdCBwZW5kaW5nQXBwZW5kRGF0YUNhcGFjaXR5LCB1aW50NjRfdCBtYXhp
bXVtQnVmZmVyU2l6ZSwgTWVkaWFUaW1lIGN1cnJlbnRUaW1lLCBNZWRpYVRpbWUgZHVyYXRpb24s
IGJvb2wgaXNFbmRlZCkgLT4gKGJvb2wgYnVmZmVyRnVsbCwgdWludDY0X3QgdG90YWxUcmFja0J1
ZmZlclNpemVJbkJ5dGVzKSBTeW5jaHJvbm91cwotICAgIFJlZW5xdWV1ZU1lZGlhSWZOZWVkZWQo
TWVkaWFUaW1lIGN1cnJlbnRNZWRpYVRpbWUsIHVpbnQ2NF90IHBlbmRpbmdBcHBlbmREYXRhQ2Fw
YWNpdHksIHVpbnQ2NF90IG1heGltdW1CdWZmZXJTaXplKSAtPiAoYm9vbCBidWZmZXJGdWxsKSBB
c3luYworICAgIEV2aWN0Q29kZWRGcmFtZXModWludDY0X3QgbmV3RGF0YVNpemUsIHVpbnQ2NF90
IG1heGltdW1CdWZmZXJTaXplLCBNZWRpYVRpbWUgY3VycmVudFRpbWUsIE1lZGlhVGltZSBkdXJh
dGlvbiwgYm9vbCBpc0VuZGVkKSAtPiAodWludDY0X3QgdG90YWxUcmFja0J1ZmZlclNpemVJbkJ5
dGVzKSBTeW5jaHJvbm91cworICAgIFJlZW5xdWV1ZU1lZGlhSWZOZWVkZWQoTWVkaWFUaW1lIGN1
cnJlbnRNZWRpYVRpbWUpCiAgICAgU2V0R3JvdXBTdGFydFRpbWVzdGFtcChNZWRpYVRpbWUgdGlt
ZXN0YW1wKQogICAgIFNldEdyb3VwU3RhcnRUaW1lc3RhbXBUb0VuZFRpbWVzdGFtcCgpCiAgICAg
U2V0U2hvdWxkR2VuZXJhdGVUaW1lc3RhbXBzKGJvb2wgc2hvdWxkR2VuZXJhdGVUaW1lc3RhbXBz
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9Tb3VyY2VC
dWZmZXJQcml2YXRlUmVtb3RlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZS5jcHAKaW5kZXggYWMyZGYxNTI1MThhYTU0NTE5
MDQyM2UyYWVmZGE3MTU2NWM3ZGEzZi4uNzU4ZjAwZDU3NmNmODliMWNmNzQ5NDI4YjA0MzVkZDA0
ZjljOTAzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9T
b3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL1NvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGUuY3BwCkBAIC0yMDAsMTUgKzIw
MCwxMyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGU6OnJlbW92ZUNvZGVkRnJhbWVz
KGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0CiAgICAgICAgIG1fcmVtb3RlU291cmNlQnVm
ZmVySWRlbnRpZmllcik7CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZTo6ZXZp
Y3RDb2RlZEZyYW1lcyh1aW50NjRfdCBuZXdEYXRhU2l6ZSwgdWludDY0X3QgcGVuZGluZ0FwcGVu
ZERhdGFDYXBhY2l0eSwgdWludDY0X3QgbWF4aW11bUJ1ZmZlclNpemUsIGNvbnN0IE1lZGlhVGlt
ZSYgY3VycmVudFRpbWUsIGNvbnN0IE1lZGlhVGltZSYgZHVyYXRpb24sIGJvb2wgaXNFbmRlZCkK
K3ZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZTo6ZXZpY3RDb2RlZEZyYW1lcyh1aW50NjRf
dCBuZXdEYXRhU2l6ZSwgdWludDY0X3QgbWF4aW11bUJ1ZmZlclNpemUsIGNvbnN0IE1lZGlhVGlt
ZSYgY3VycmVudFRpbWUsIGNvbnN0IE1lZGlhVGltZSYgZHVyYXRpb24sIGJvb2wgaXNFbmRlZCkK
IHsKICAgICBpZiAoIW1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24pCiAgICAgICAgIHJldHVybjsKIAot
ICAgIGJvb2wgYnVmZmVyRnVsbCA9IGZhbHNlOwogICAgIHVpbnQ2NF90IHRvdGFsQnVmZmVyU2l6
ZUluQnl0ZXMgPSAwOwotICAgIGlmIChtX2dwdVByb2Nlc3NDb25uZWN0aW9uLT5jb25uZWN0aW9u
KCkuc2VuZFN5bmMoTWVzc2FnZXM6OlJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5OjpFdmljdENvZGVk
RnJhbWVzKG5ld0RhdGFTaXplLCBwZW5kaW5nQXBwZW5kRGF0YUNhcGFjaXR5LCBtYXhpbXVtQnVm
ZmVyU2l6ZSwgY3VycmVudFRpbWUsIGR1cmF0aW9uLCBpc0VuZGVkKSwgTWVzc2FnZXM6OlJlbW90
ZVNvdXJjZUJ1ZmZlclByb3h5OjpFdmljdENvZGVkRnJhbWVzOjpSZXBseShidWZmZXJGdWxsLCB0
b3RhbEJ1ZmZlclNpemVJbkJ5dGVzKSwgbV9yZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlmaWVyKSkg
ewotICAgICAgICBzZXRCdWZmZXJGdWxsKGJ1ZmZlckZ1bGwpOworICAgIGlmIChtX2dwdVByb2Nl
c3NDb25uZWN0aW9uLT5jb25uZWN0aW9uKCkuc2VuZFN5bmMoTWVzc2FnZXM6OlJlbW90ZVNvdXJj
ZUJ1ZmZlclByb3h5OjpFdmljdENvZGVkRnJhbWVzKG5ld0RhdGFTaXplLCBtYXhpbXVtQnVmZmVy
U2l6ZSwgY3VycmVudFRpbWUsIGR1cmF0aW9uLCBpc0VuZGVkKSwgTWVzc2FnZXM6OlJlbW90ZVNv
dXJjZUJ1ZmZlclByb3h5OjpFdmljdENvZGVkRnJhbWVzOjpSZXBseSh0b3RhbEJ1ZmZlclNpemVJ
bkJ5dGVzKSwgbV9yZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlmaWVyKSkgewogICAgICAgICBtX3Rv
dGFsVHJhY2tCdWZmZXJTaXplSW5CeXRlcyA9IHRvdGFsQnVmZmVyU2l6ZUluQnl0ZXM7CiAgICAg
fQogfQpAQCAtMjcxLDE0ICsyNjksMTIgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3Rl
OjpzZXRTaG91bGRHZW5lcmF0ZVRpbWVzdGFtcHMoYm9vbCBzaG91bGRHZW5lcmF0ZVQKICAgICBt
X2dwdVByb2Nlc3NDb25uZWN0aW9uLT5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3Rl
U291cmNlQnVmZmVyUHJveHk6OlNldFNob3VsZEdlbmVyYXRlVGltZXN0YW1wcyhzaG91bGRHZW5l
cmF0ZVRpbWVzdGFtcHMpLCBtX3JlbW90ZVNvdXJjZUJ1ZmZlcklkZW50aWZpZXIpOwogfQogCi12
b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGU6OnJlZW5xdWV1ZU1lZGlhSWZOZWVkZWQoY29u
c3QgTWVkaWFUaW1lJiBjdXJyZW50TWVkaWFUaW1lLCB1aW50NjRfdCBwZW5kaW5nQXBwZW5kRGF0
YUNhcGFjaXR5LCB1aW50NjRfdCBtYXhpbXVtQnVmZmVyU2l6ZSkKK3ZvaWQgU291cmNlQnVmZmVy
UHJpdmF0ZVJlbW90ZTo6cmVlbnF1ZXVlTWVkaWFJZk5lZWRlZChjb25zdCBNZWRpYVRpbWUmIGN1
cnJlbnRNZWRpYVRpbWUpCiB7CiAgICAgaWYgKCFtX2dwdVByb2Nlc3NDb25uZWN0aW9uKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBtX2dwdVByb2Nlc3NDb25uZWN0aW9uLT5jb25uZWN0aW9uKCku
c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpSZW1vdGVTb3VyY2VCdWZmZXJQcm94eTo6UmVl
bnF1ZXVlTWVkaWFJZk5lZWRlZChjdXJyZW50TWVkaWFUaW1lLCBwZW5kaW5nQXBwZW5kRGF0YUNh
cGFjaXR5LCBtYXhpbXVtQnVmZmVyU2l6ZSksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJl
ZigqdGhpcyldKGF1dG8gYnVmZmVyRnVsbCkgbXV0YWJsZSB7Ci0gICAgICAgIHNldEJ1ZmZlckZ1
bGwoYnVmZmVyRnVsbCk7Ci0gICAgfSwgbV9yZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlmaWVyKTsK
KyAgICBtX2dwdVByb2Nlc3NDb25uZWN0aW9uLT5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6
UmVtb3RlU291cmNlQnVmZmVyUHJveHk6OlJlZW5xdWV1ZU1lZGlhSWZOZWVkZWQoY3VycmVudE1l
ZGlhVGltZSksIG1fcmVtb3RlU291cmNlQnVmZmVySWRlbnRpZmllcik7CiB9CiAKIHZvaWQgU291
cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZTo6cmVzZXRUaW1lc3RhbXBPZmZzZXRJblRyYWNrQnVmZmVy
cygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1NvdXJj
ZUJ1ZmZlclByaXZhdGVSZW1vdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZS5oCmluZGV4IDhiNmQxMDAyYzc2MzM2NDMwYzli
ZGFiNjkyZGE2ODc2Y2E5NTE0NTkuLmQwYWI5NzBhMGE1YjJlYWRkMTZkOGY0ZjllMjBkNTJjZjU1
ZmI2MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvU291
cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZS5oCkBAIC04MSw3ICs4MSw3IEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBjYW5Td2l0Y2hUb1R5cGUoY29uc3QgV2ViQ29yZTo6Q29udGVudFR5
cGUmKSBmaW5hbDsKICAgICB2b2lkIHNldE1lZGlhU291cmNlRW5kZWQoYm9vbCkgZmluYWw7CiAg
ICAgdm9pZCBzZXRNb2RlKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlckFwcGVuZE1vZGUpIGZpbmFsOwot
ICAgIHZvaWQgcmVlbnF1ZXVlTWVkaWFJZk5lZWRlZChjb25zdCBNZWRpYVRpbWUmIGN1cnJlbnRN
ZWRpYVRpbWUsIHVpbnQ2NF90IHBlbmRpbmdBcHBlbmREYXRhQ2FwYWNpdHksIHVpbnQ2NF90IG1h
eGltdW1CdWZmZXJTaXplKSBmaW5hbDsKKyAgICB2b2lkIHJlZW5xdWV1ZU1lZGlhSWZOZWVkZWQo
Y29uc3QgTWVkaWFUaW1lJiBjdXJyZW50TWVkaWFUaW1lKSBmaW5hbDsKICAgICB2b2lkIGFkZFRy
YWNrQnVmZmVyKGNvbnN0IEF0b21TdHJpbmcmIHRyYWNrSWQsIFJlZlB0cjxXZWJDb3JlOjpNZWRp
YURlc2NyaXB0aW9uPiYmKSBmaW5hbDsKICAgICB2b2lkIHJlc2V0VHJhY2tCdWZmZXJzKCkgZmlu
YWw7CiAgICAgdm9pZCBjbGVhclRyYWNrQnVmZmVycygpIGZpbmFsOwpAQCAtOTEsNyArOTEsNyBA
QCBwcml2YXRlOgogICAgIHZvaWQgc2V0U2hvdWxkR2VuZXJhdGVUaW1lc3RhbXBzKGJvb2wpIGZp
bmFsOwogICAgIHZvaWQgdXBkYXRlQnVmZmVyZWRGcm9tVHJhY2tCdWZmZXJzKGJvb2wgc291cmNl
SXNFbmRlZCkgZmluYWw7CiAgICAgdm9pZCByZW1vdmVDb2RlZEZyYW1lcyhjb25zdCBNZWRpYVRp
bWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgY29uc3QgTWVkaWFUaW1lJiBjdXJyZW50
TWVkaWFUaW1lLCBib29sIGlzRW5kZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgZmlu
YWw7Ci0gICAgdm9pZCBldmljdENvZGVkRnJhbWVzKHVpbnQ2NF90IG5ld0RhdGFTaXplLCB1aW50
NjRfdCBwZW5kaW5nQXBwZW5kRGF0YUNhcGFjaXR5LCB1aW50NjRfdCBtYXhpbXVtQnVmZmVyU2l6
ZSwgY29uc3QgTWVkaWFUaW1lJiBjdXJyZW50VGltZSwgY29uc3QgTWVkaWFUaW1lJiBkdXJhdGlv
biwgYm9vbCBpc0VuZGVkKSBmaW5hbDsKKyAgICB2b2lkIGV2aWN0Q29kZWRGcmFtZXModWludDY0
X3QgbmV3RGF0YVNpemUsIHVpbnQ2NF90IG1heGltdW1CdWZmZXJTaXplLCBjb25zdCBNZWRpYVRp
bWUmIGN1cnJlbnRUaW1lLCBjb25zdCBNZWRpYVRpbWUmIGR1cmF0aW9uLCBib29sIGlzRW5kZWQp
IGZpbmFsOwogICAgIHZvaWQgcmVzZXRUaW1lc3RhbXBPZmZzZXRJblRyYWNrQnVmZmVycygpIGZp
bmFsOwogICAgIHZvaWQgc3RhcnRDaGFuZ2luZ1R5cGUoKSBmaW5hbDsKICAgICB2b2lkIHNldFRp
bWVzdGFtcE9mZnNldChjb25zdCBNZWRpYVRpbWUmKSBmaW5hbDsK
</data>

          </attachment>
      

    </bug>

</bugzilla>