<?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>234535</bug_id>
          
          <creation_ts>2021-12-20 15:59:30 -0800</creation_ts>
          <short_desc>Momentum Event Dispatcher: Momentum tails may get truncated if the duration runs longer than the system&apos;s</short_desc>
          <delta_ts>2022-01-05 13:58:47 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1825791</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-12-20 15:59:30 -0800</bug_when>
    <thetext>Momentum Event Dispatcher: Momentum tails may get truncated if the duration runs longer than the system&apos;s</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825792</commentid>
    <comment_count>1</comment_count>
      <attachid>447657</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-12-20 16:02:37 -0800</bug_when>
    <thetext>Created attachment 447657
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825793</commentid>
    <comment_count>2</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-12-20 16:02:40 -0800</bug_when>
    <thetext>&lt;rdar://problem/86338105&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825800</commentid>
    <comment_count>3</comment_count>
      <attachid>447657</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-12-20 16:13:02 -0800</bug_when>
    <thetext>Comment on attachment 447657
Patch

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

&gt; Source/WebKit/Shared/mac/WebEventFactory.mm:414
&gt; +    WallTime ioHIDEventWallTime = timestamp;

auto

&gt; Source/WebKit/Shared/mac/WebEventFactory.mm:416
&gt; +    WebWheelEvent::MomentumEndType momentumEndType = WebWheelEvent::MomentumEndType::Unknown;

auto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825816</commentid>
    <comment_count>4</comment_count>
      <attachid>447666</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-12-20 16:58:39 -0800</bug_when>
    <thetext>Created attachment 447666
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825871</commentid>
    <comment_count>5</comment_count>
      <attachid>447687</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-12-20 21:30:34 -0800</bug_when>
    <thetext>Created attachment 447687
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828153</commentid>
    <comment_count>6</comment_count>
      <attachid>448349</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2022-01-04 17:00:21 -0800</bug_when>
    <thetext>Created attachment 448349
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828167</commentid>
    <comment_count>7</comment_count>
      <attachid>448353</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2022-01-04 17:40:15 -0800</bug_when>
    <thetext>Created attachment 448353
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828180</commentid>
    <comment_count>8</comment_count>
      <attachid>448353</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-01-04 21:12:58 -0800</bug_when>
    <thetext>Comment on attachment 448353
Patch

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

&gt; Source/WebKit/WebProcess/WebPage/MomentumEventDispatcher.h:30
&gt; -#define ENABLE_MOMENTUM_EVENT_DISPATCHER_TEMPORARY_LOGGING 0
&gt; +#define ENABLE_MOMENTUM_EVENT_DISPATCHER_TEMPORARY_LOGGING 1

Was this checked in by accident?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828183</commentid>
    <comment_count>9</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2022-01-04 22:10:23 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #8)
&gt; Comment on attachment 448353 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=448353&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/WebProcess/WebPage/MomentumEventDispatcher.h:30
&gt; &gt; -#define ENABLE_MOMENTUM_EVENT_DISPATCHER_TEMPORARY_LOGGING 0
&gt; &gt; +#define ENABLE_MOMENTUM_EVENT_DISPATCHER_TEMPORARY_LOGGING 1
&gt; 
&gt; Was this checked in by accident?

Good point, need to not accidentally revert r287578!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828184</commentid>
    <comment_count>10</comment_count>
      <attachid>448359</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2022-01-04 22:12:12 -0800</bug_when>
    <thetext>Created attachment 448359
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828338</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-01-05 11:30:53 -0800</bug_when>
    <thetext>Committed r287641 (245745@main): &lt;https://commits.webkit.org/245745@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 448359.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828384</commentid>
    <comment_count>12</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2022-01-05 13:58:47 -0800</bug_when>
    <thetext>Build fix: https://trac.webkit.org/changeset/287651/webkit</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447657</attachid>
            <date>2021-12-20 16:02:37 -0800</date>
            <delta_ts>2021-12-20 16:58:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234535-20211220160237.patch</filename>
            <type>text/plain</type>
            <size>24301</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3MTkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDAyMWU0YTkzYWZmOTJhNDY4ZmI5YTZm
ZDNjNmMwNDBjMDQ3YTQ4ZDMuLjkxZWNiODcyMjU4NDIzZWQxOGJhNGRjZmE2ZDcxZTczMGFmMDA2
MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMTItMjAgIFRpbSBIb3J0b24gIDx0aW1vdGh5
X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgTW9tZW50dW0gRXZlbnQgRGlzcGF0Y2hlcjog
TW9tZW50dW0gdGFpbHMgbWF5IGdldCB0cnVuY2F0ZWQgaWYgdGhlIGR1cmF0aW9uIHJ1bnMgbG9u
Z2VyIHRoYW4gdGhlIHN5c3RlbSdzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzQ1MzUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg2MzM4MTA1Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL1Bs
YXRmb3JtSGF2ZS5oOgorICAgICAgICBBZGQgYSBIQVZFIGZvciBrSU9ISURFdmVudFNjcm9sbE1v
bWVudHVtSW50ZXJydXB0ZWQuCisKIDIwMjEtMTItMTYgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hy
aXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZlcnRpbmcgcjI4
NzA1Ni4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKaW5kZXggMTI5YjQxMjQ4YTNhZmY2ODNlOWMzOTg0ZDQzMzkzYjZiOWQxOTIw
OS4uNmYwOWIwYmYyNjBmODQ0NGM5MGU5NjI4ZmU2NmI0ZDIxOTkwNmI3NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSw3MSBAQAorMjAyMS0xMi0yMCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFw
cGxlLmNvbT4KKworICAgICAgICBNb21lbnR1bSBFdmVudCBEaXNwYXRjaGVyOiBNb21lbnR1bSB0
YWlscyBtYXkgZ2V0IHRydW5jYXRlZCBpZiB0aGUgZHVyYXRpb24gcnVucyBsb25nZXIgdGhhbiB0
aGUgc3lzdGVtJ3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzNDUzNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODYzMzgxMDU+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ3VycmVudGx5LCBzeW50aGV0
aWMgbW9tZW50dW0gZGlzcGF0Y2ggaXMgc3RyaWN0bHkgdGllZCB0byB0aGUgZHVyYXRpb24KKyAg
ICAgICAgb2YgdGhlIHJlYWwgcGxhdGZvcm0gbW9tZW50dW0gcGhhc2UsIHdoaWNoIGhhcyB0d28g
dW5mb3J0dW5hdGUgaW1wbGljYXRpb25zOgorCisgICAgICAgIC0gaWYgb3VyIHBoYXNlIHJ1bnMg
c2hvcnRlciB0aGFuIHRoZSBwbGF0Zm9ybSBwaGFzZSwgd2UnbGwga2VlcCBkaXNwYXRjaGluZwor
ICAgICAgICAgIHplcm8tZGVsdGEgZXZlbnRzIHVudGlsIHRoZSBwbGF0Zm9ybSBtb21lbnR1bSBl
bmRzCisKKyAgICAgICAgLSBtb3JlIGltcG9ydGFudGx5LCBpZiBvdXIgcGhhc2UgcnVucyBsb25n
ZXIsIGl0IHdpbGwgYmUgYWJydXB0bHkgdGVybWluYXRlZAorICAgICAgICAgIHdoZW4gdGhlIHBs
YXRmb3JtIG1vbWVudHVtIGVuZHMKKworICAgICAgICBJbiBwcmFjdGljZSwgb3VyIHN5bnRoZXRp
YyBwaGFzZSBpcyB2ZXJ5IGNsb3NlIGluIGR1cmF0aW9uIHRvIHRoZSBzeXN0ZW0gb25lLAorICAg
ICAgICBzbyB0aGUgaW1wYWN0IGlzIG1pbmltYWwuIEJ1dCwgdG8gYmUgc2FmZSwgZGlzZW50YWds
ZSB0aGUgdHdvIGR1cmF0aW9ucywKKyAgICAgICAgdXNpbmcgYSBuZXcgYml0IGZyb20gdGhlIHBs
YXRmb3JtIHRvIGRldGVybWluZSBpZiB0aGUgc3lzdGVtIG1vbWVudHVtIHBoYXNlCisgICAgICAg
IHdhcyBpbnRlcnJ1cHRlZCBieSB0aGUgdXNlciAoZS5nLiBieSB0YXBwaW5nIHRoZSB0cmFja3Bh
ZCkgb3IgbmF0dXJhbGx5LAorICAgICAgICBhbmQgaWdub3JpbmcgdGhlIGVuZGVkIGV2ZW50IGlu
IHRoZSBuYXR1cmFsIGNhc2UsIGFsbG93aW5nIHN5bnRoZXRpYworICAgICAgICBldmVudHMgdG8g
Y29udGludWUgYmVpbmcgZGlzcGF0Y2hlZC4KKworICAgICAgICAqIFNoYXJlZC9XZWJXaGVlbEV2
ZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViV2hlZWxFdmVudDo6V2ViV2hlZWxFdmVudCk6
CisgICAgICAgIChXZWJLaXQ6OldlYldoZWVsRXZlbnQ6OmVuY29kZSBjb25zdCk6CisgICAgICAg
IChXZWJLaXQ6OldlYldoZWVsRXZlbnQ6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYldo
ZWVsRXZlbnQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViV2hlZWxFdmVudDo6bW9tZW50dW1FbmRU
eXBlIGNvbnN0KToKKyAgICAgICAgKiBTaGFyZWQvV2ViV2hlZWxFdmVudENvYWxlc2Nlci5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYldoZWVsRXZlbnRDb2FsZXNjZXI6OmNvYWxlc2NlKToKKyAg
ICAgICAgUGx1bWIgbW9tZW50dW1FbmRUeXBlIGFsb25nIG9uIFdlYldoZWVsRXZlbnQuIFBsYXRm
b3JtcyB0aGF0IGRvbid0CisgICAgICAgIHByb3ZpZGUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGlu
dGVycnVwdGlvbiByZWFzb24gd2lsbCBhbHdheXMgc2F5IFVua25vd24uCisKKyAgICAgICAgKiBT
aGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnRG
YWN0b3J5OjpjcmVhdGVXZWJXaGVlbEV2ZW50KToKKyAgICAgICAgT25seSBib3RoZXIgbG9va2lu
ZyB1cCB0aGUgQ0dFdmVudC9JT0hJREV2ZW50IG9uY2UsIGFuZCBleHRyYWN0IGFsbAorICAgICAg
ICByZWxldmFudCBkZXRhaWxzIGluIG9uZSBnby4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9Nb21lbnR1bUV2ZW50RGlzcGF0Y2hlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok1vbWVu
dHVtRXZlbnREaXNwYXRjaGVyOjpoYW5kbGVXaGVlbEV2ZW50KToKKyAgICAgICAgRG9uJ3QgaW50
ZXJydXB0IHRoZSBzeW50aGV0aWMgbW9tZW50dW0gcGhhc2UgaWYgdGhlIG1vbWVudHVtLWVuZGVk
IGV2ZW50CisgICAgICAgIGNvbWVzIGZyb20gdGhlIG5hdHVyYWwgZW5kIG9mIHRoZSBkZWNlbGVy
YXRpb24gaW5zdGVhZCBvZiBhbiBpbnRlcnJ1cHRpb24KKyAgICAgICAgKG9yIGFuIHVua25vd24g
cmVhc29uKS4KKworICAgICAgICBLZWVwIHRyYWNrIG9mIHdoZXRoZXIgd2UncmUgaW4gdGhlIG1p
ZGRsZSBvZiBhIHBsYXRmb3JtIG1vbWVudHVtIHBoYXNlCisgICAgICAgIHRoYXQgd2UgY2hvc2Ug
KGF0IG1vbWVudHVtLWJlZ2luIHRpbWUpIHRvIG92ZXJyaWRlLiBXaGVuIGRlY2lkaW5nCisgICAg
ICAgIHdoZXRoZXIgdG8gZWF0IGFuIGluY29taW5nIGV2ZW50LCB0YWtlICpib3RoKiB0aGlzIG5l
dyBiaXQgYW5kIHdoZXRoZXIKKyAgICAgICAgd2UgYXJlIGN1cnJlbnRseSBpbiB0aGUgbWlkZGxl
IG9mIGEgc3ludGhldGljIHBoYXNlIGludG8gYWNjb3VudC4gSXQKKyAgICAgICAgaXMgaW1wb3J0
YW50IHRvIGNvbnRpbnVlIGVhdGluZyBpbmNvbWluZyBldmVudHMgaW4gdGhlIGNhc2Ugd2hlcmUg
CisgICAgICAgIHRoZSBzeW50aGV0aWMgcGhhc2UgZW5kZWQgZWFybHkgKHNvIGBhY3RpdmVgIGJl
Y2FtZSBmYWxzZSkgYnV0IHRoZQorICAgICAgICBwbGF0Zm9ybSBwaGFzZSBjb250aW51ZXMuCisK
KyAgICAgICAgKFdlYktpdDo6TW9tZW50dW1FdmVudERpc3BhdGNoZXI6OmRpc3BhdGNoU3ludGhl
dGljTW9tZW50dW1FdmVudCk6CisgICAgICAgIChXZWJLaXQ6Ok1vbWVudHVtRXZlbnREaXNwYXRj
aGVyOjpkaWRFbmRNb21lbnR1bVBoYXNlKToKKyAgICAgICAgQWRqdXN0IHNvbWUgbG9nZ2luZyB3
b3JkaW5nIHRvIGJlIG1vcmUgcHJlY2lzZS4KKworICAgICAgICAoV2ViS2l0OjpNb21lbnR1bUV2
ZW50RGlzcGF0Y2hlcjo6Y29uc3VtZURlbHRhRm9yQ3VycmVudFRpbWUpOgorICAgICAgICBNYWtl
IGNvbnN1bWVEZWx0YUZvckN1cnJlbnRUaW1lIGluZm9ybSB0aGUgY2xpZW50IHZpYSBhbiBvcHRp
b25hbCB3aGVuCisgICAgICAgIHdlIGFyZSBhdCB0aGUgZW5kIG9mIHRoZSBkZWx0YSB0YWJsZS4K
KworICAgICAgICAoV2ViS2l0OjpNb21lbnR1bUV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGxheVdhc1Jl
ZnJlc2hlZCk6CisgICAgICAgIFN0b3AgdGhlIHN5bnRoZXRpYyBtb21lbnR1bSBwaGFzZSBhcyBz
b29uIGFzIHdlIHJ1biBvdXQgb2YgZGVsdGFzLgorCisgICAgICAgIChXZWJLaXQ6Ok1vbWVudHVt
RXZlbnREaXNwYXRjaGVyOjpjb21wdXRlTmV4dERlbHRhKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvTW9tZW50dW1FdmVudERpc3BhdGNoZXIuaDoKKwogMjAyMS0xMi0xNyAgQ2hyaXMg
RHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJldmVydGlu
ZyByMjg2ODUwLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmggYi9T
b3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaAppbmRleCAwZGJhNWY1ZWQ1YTdhZDVjNGE1ZDM4
YzYzNWE2NWUwNzU1Yzc0MWNjLi5iYzRmYzk3Y2RjYTcwYWY3NTI5YzI1MjczMzNhNWU0MmZkYjIx
MjMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaApAQCAtMTEyMywzICsxMTIzLDcgQEAKICNpZiBQTEFU
Rk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTIwMDAwCiAj
ZGVmaW5lIEhBVkVfTlNTQ1JFRU5fU0FGRV9BUkVBIDEKICNlbmRpZgorCisjaWYgUExBVEZPUk0o
TUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUFYX0FMTE9XRUQgPj0gMTIwMjAwCisjZGVmaW5l
IEhBVkVfUExBVEZPUk1fU0NST0xMX01PTUVOVFVNX0lOVEVSUlVQVElPTl9SRUFTT04gMQorI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJXaGVlbEV2ZW50LmNwcCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYldoZWVsRXZlbnQuY3BwCmluZGV4IDUxYjJiOGUxYjVj
NGQ5NzA2NGRhYTAyYTQ0ODU0MjZiZDNhMTIzYTEuLjQzNWY3MDJkMTI3Zjg3OGE1NWRmZDE1ODRi
YTFiY2VjOGNkNmU1NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYldoZWVs
RXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYldoZWVsRXZlbnQuY3BwCkBA
IC00NCw3ICs0NCw3IEBAIFdlYldoZWVsRXZlbnQ6OldlYldoZWVsRXZlbnQoVHlwZSB0eXBlLCBj
b25zdCBJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IEludFBvaW50CiB9CiAKICNpZiBQTEFURk9S
TShDT0NPQSkKLVdlYldoZWVsRXZlbnQ6OldlYldoZWVsRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBJ
bnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3Qg
RmxvYXRTaXplJiBkZWx0YSwgY29uc3QgRmxvYXRTaXplJiB3aGVlbFRpY2tzLCBHcmFudWxhcml0
eSBncmFudWxhcml0eSwgYm9vbCBkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UsIFBoYXNlIHBo
YXNlLCBQaGFzZSBtb21lbnR1bVBoYXNlLCBib29sIGhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMs
IHVpbnQzMl90IHNjcm9sbENvdW50LCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHVuYWNjZWxl
cmF0ZWRTY3JvbGxpbmdEZWx0YSwgT3B0aW9uU2V0PE1vZGlmaWVyPiBtb2RpZmllcnMsIFdhbGxU
aW1lIHRpbWVzdGFtcCwgV2FsbFRpbWUgaW9ISURFdmVudFRpbWVzdGFtcCwgc3RkOjpvcHRpb25h
bDxXZWJDb3JlOjpGbG9hdFNpemU+IHJhd1BsYXRmb3JtRGVsdGEpCitXZWJXaGVlbEV2ZW50OjpX
ZWJXaGVlbEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJ
bnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IEZsb2F0U2l6ZSYgZGVsdGEsIGNvbnN0IEZs
b2F0U2l6ZSYgd2hlZWxUaWNrcywgR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIGJvb2wgZGlyZWN0
aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlLCBQaGFzZSBwaGFzZSwgUGhhc2UgbW9tZW50dW1QaGFzZSwg
Ym9vbCBoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzLCB1aW50MzJfdCBzY3JvbGxDb3VudCwgY29u
c3QgV2ViQ29yZTo6RmxvYXRTaXplJiB1bmFjY2VsZXJhdGVkU2Nyb2xsaW5nRGVsdGEsIE9wdGlv
blNldDxNb2RpZmllcj4gbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXAsIFdhbGxUaW1lIGlv
SElERXZlbnRUaW1lc3RhbXAsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRTaXplPiByYXdQ
bGF0Zm9ybURlbHRhLCBNb21lbnR1bUVuZFR5cGUgbW9tZW50dW1FbmRUeXBlKQogICAgIDogV2Vi
RXZlbnQodHlwZSwgbW9kaWZpZXJzLCB0aW1lc3RhbXApCiAgICAgLCBtX3Bvc2l0aW9uKHBvc2l0
aW9uKQogICAgICwgbV9nbG9iYWxQb3NpdGlvbihnbG9iYWxQb3NpdGlvbikKQEAgLTUzLDYgKzUz
LDcgQEAgV2ViV2hlZWxFdmVudDo6V2ViV2hlZWxFdmVudChUeXBlIHR5cGUsIGNvbnN0IEludFBv
aW50JiBwb3NpdGlvbiwgY29uc3QgSW50UG9pbnQKICAgICAsIG1fZ3JhbnVsYXJpdHkoZ3JhbnVs
YXJpdHkpCiAgICAgLCBtX3BoYXNlKHBoYXNlKQogICAgICwgbV9tb21lbnR1bVBoYXNlKG1vbWVu
dHVtUGhhc2UpCisgICAgLCBtX21vbWVudHVtRW5kVHlwZShtb21lbnR1bUVuZFR5cGUpCiAgICAg
LCBtX2RpcmVjdGlvbkludmVydGVkRnJvbURldmljZShkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZp
Y2UpCiAgICAgLCBtX2hhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMoaGFzUHJlY2lzZVNjcm9sbGlu
Z0RlbHRhcykKICAgICAsIG1faW9ISURFdmVudFRpbWVzdGFtcChpb0hJREV2ZW50VGltZXN0YW1w
KQpAQCAtODcsNiArODgsNyBAQCB2b2lkIFdlYldoZWVsRXZlbnQ6OmVuY29kZShJUEM6OkVuY29k
ZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCBtX2RlbHRhOwogICAgIGVuY29kZXIg
PDwgbV93aGVlbFRpY2tzOwogICAgIGVuY29kZXIgPDwgbV9ncmFudWxhcml0eTsKKyAgICBlbmNv
ZGVyIDw8IG1fbW9tZW50dW1FbmRUeXBlOwogICAgIGVuY29kZXIgPDwgbV9kaXJlY3Rpb25JbnZl
cnRlZEZyb21EZXZpY2U7CiAjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykgfHwg
VVNFKExJQldQRSkKICAgICBlbmNvZGVyIDw8IG1fcGhhc2U7CkBAIC0xMTUsNiArMTE3LDggQEAg
Ym9vbCBXZWJXaGVlbEV2ZW50OjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBXZWJXaGVl
bEV2ZW50JiB0KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZSh0Lm1fZ3JhbnVsYXJpdHkpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZSh0Lm1fbW9tZW50dW1FbmRUeXBlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUodC5tX2RpcmVjdGlvbkludmVydGVkRnJvbURldmljZSkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKICNpZiBQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0o
R1RLKSB8fCBVU0UoTElCV1BFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
V2hlZWxFdmVudC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViV2hlZWxFdmVudC5oCmluZGV4
IGE5ZWM4ZThhZmYwMDZmNmQ1MzlmYjg4YjczNjk3ZDYzNjlhZWNhODQuLjgyMWVlMjIwMTI4MzM2
OGI1Yzk5NTdmMGRhMTYzZDRlMWMzYjA2MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYldoZWVsRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJXaGVlbEV2
ZW50LmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJXZWJFdmVudC5oIgogI2luY2x1ZGUg
PFdlYkNvcmUvRmxvYXRTaXplLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRQb2ludC5oPgorI2lu
Y2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC00OSwx
MSArNTAsMTcgQEAgcHVibGljOgogICAgICAgICBQaGFzZU1heUJlZ2luICAgID0gMSA8PCA1LAog
ICAgIH07CiAKKyAgICBlbnVtIGNsYXNzIE1vbWVudHVtRW5kVHlwZSA6IHVpbnQ4X3QgeworICAg
ICAgICBVbmtub3duLAorICAgICAgICBJbnRlcnJ1cHRlZCwKKyAgICAgICAgTmF0dXJhbCwKKyAg
ICB9OworCiAgICAgV2ViV2hlZWxFdmVudCgpID0gZGVmYXVsdDsKIAogICAgIFdlYldoZWVsRXZl
bnQoVHlwZSwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBXZWJDb3Jl
OjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgZGVs
dGEsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgd2hlZWxUaWNrcywgR3JhbnVsYXJpdHksIE9w
dGlvblNldDxNb2RpZmllcj4sIFdhbGxUaW1lIHRpbWVzdGFtcCk7CiAjaWYgUExBVEZPUk0oQ09D
T0EpCi0gICAgV2ViV2hlZWxFdmVudChUeXBlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9z
aXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgV2Vi
Q29yZTo6RmxvYXRTaXplJiBkZWx0YSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB3aGVlbFRp
Y2tzLCBHcmFudWxhcml0eSwgYm9vbCBkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UsIFBoYXNl
LCBQaGFzZSBtb21lbnR1bVBoYXNlLCBib29sIGhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMsIHVp
bnQzMl90IHNjcm9sbENvdW50LCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHVuYWNjZWxlcmF0
ZWRTY3JvbGxpbmdEZWx0YSwgT3B0aW9uU2V0PE1vZGlmaWVyPiwgV2FsbFRpbWUgdGltZXN0YW1w
LCBXYWxsVGltZSBpb0hJREV2ZW50VGltZXN0YW1wLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZs
b2F0U2l6ZT4gcmF3UGxhdGZvcm1EZWx0YSk7CisgICAgV2ViV2hlZWxFdmVudChUeXBlLCBjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBn
bG9iYWxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBkZWx0YSwgY29uc3QgV2Vi
Q29yZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBHcmFudWxhcml0eSwgYm9vbCBkaXJlY3Rpb25J
bnZlcnRlZEZyb21EZXZpY2UsIFBoYXNlLCBQaGFzZSBtb21lbnR1bVBoYXNlLCBib29sIGhhc1By
ZWNpc2VTY3JvbGxpbmdEZWx0YXMsIHVpbnQzMl90IHNjcm9sbENvdW50LCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFNpemUmIHVuYWNjZWxlcmF0ZWRTY3JvbGxpbmdEZWx0YSwgT3B0aW9uU2V0PE1vZGlm
aWVyPiwgV2FsbFRpbWUgdGltZXN0YW1wLCBXYWxsVGltZSBpb0hJREV2ZW50VGltZXN0YW1wLCBz
dGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0U2l6ZT4gcmF3UGxhdGZvcm1EZWx0YSwgTW9tZW50
dW1FbmRUeXBlKTsKICNlbGlmIFBMQVRGT1JNKEdUSykgfHwgVVNFKExJQldQRSkKICAgICBXZWJX
aGVlbEV2ZW50KFR5cGUsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbiwgY29uc3Qg
V2ViQ29yZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNp
emUmIGRlbHRhLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHdoZWVsVGlja3MsIFBoYXNlLCBQ
aGFzZSBtb21lbnR1bVBoYXNlLCBHcmFudWxhcml0eSwgYm9vbCBoYXNQcmVjaXNlU2Nyb2xsaW5n
RGVsdGFzLCBPcHRpb25TZXQ8TW9kaWZpZXI+LCBXYWxsVGltZSB0aW1lc3RhbXApOwogI2VuZGlm
CkBAIC02Niw2ICs3Myw3IEBAIHB1YmxpYzoKICAgICBib29sIGRpcmVjdGlvbkludmVydGVkRnJv
bURldmljZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlOyB9
CiAgICAgUGhhc2UgcGhhc2UoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxQaGFzZT4obV9w
aGFzZSk7IH0KICAgICBQaGFzZSBtb21lbnR1bVBoYXNlKCkgY29uc3QgeyByZXR1cm4gc3RhdGlj
X2Nhc3Q8UGhhc2U+KG1fbW9tZW50dW1QaGFzZSk7IH0KKyAgICBNb21lbnR1bUVuZFR5cGUgbW9t
ZW50dW1FbmRUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9tb21lbnR1bUVuZFR5cGU7IH0KICNpZiBQ
TEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oR1RLKSB8fCBVU0UoTElCV1BFKQogICAgIGJvb2wg
aGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcygpIGNvbnN0IHsgcmV0dXJuIG1faGFzUHJlY2lzZVNj
cm9sbGluZ0RlbHRhczsgfQogI2VuZGlmCkBAIC05MCw2ICs5OCw3IEBAIHByaXZhdGU6CiAgICAg
dWludDMyX3QgbV9waGFzZSB7IFBoYXNlOjpQaGFzZU5vbmUgfTsKICAgICB1aW50MzJfdCBtX21v
bWVudHVtUGhhc2UgeyBQaGFzZTo6UGhhc2VOb25lIH07CiAKKyAgICBNb21lbnR1bUVuZFR5cGUg
bV9tb21lbnR1bUVuZFR5cGUgeyBNb21lbnR1bUVuZFR5cGU6OlVua25vd24gfTsKICAgICBib29s
IG1fZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlIHsgZmFsc2UgfTsKICNpZiBQTEFURk9STShD
T0NPQSkgfHwgUExBVEZPUk0oR1RLKSB8fCBVU0UoTElCV1BFKQogICAgIGJvb2wgbV9oYXNQcmVj
aXNlU2Nyb2xsaW5nRGVsdGFzIHsgZmFsc2UgfTsKQEAgLTEwMywzICsxMTIsMTYgQEAgcHJpdmF0
ZToKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAorCituYW1lc3BhY2UgV1RGIHsKKwordGVt
cGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJLaXQ6OldlYldoZWVsRXZlbnQ6Ok1vbWVudHVt
RW5kVHlwZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgV2ViS2l0OjpX
ZWJXaGVlbEV2ZW50OjpNb21lbnR1bUVuZFR5cGUsCisgICAgV2ViS2l0OjpXZWJXaGVlbEV2ZW50
OjpNb21lbnR1bUVuZFR5cGU6OlVua25vd24sCisgICAgV2ViS2l0OjpXZWJXaGVlbEV2ZW50OjpN
b21lbnR1bUVuZFR5cGU6OkludGVycnVwdGVkLAorICAgIFdlYktpdDo6V2ViV2hlZWxFdmVudDo6
TW9tZW50dW1FbmRUeXBlOjpOYXR1cmFsCisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdU
RgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViV2hlZWxFdmVudENvYWxlc2Nl
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJXaGVlbEV2ZW50Q29hbGVzY2VyLmNwcApp
bmRleCBiOTZhMTQxODZhN2FhZDcwZmY0NTMyYWU1NzBiN2E2MTlkMWVjNzIwLi40ZDU0MjdjZTYz
MGM2MTA2ZmExMDk3M2Q3MTg5MDJkNGU1NWQ2YzVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJXaGVlbEV2ZW50Q29hbGVzY2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJXaGVlbEV2ZW50Q29hbGVzY2VyLmNwcApAQCAtODEsNyArODEsNyBAQCBXZWJXaGVl
bEV2ZW50IFdlYldoZWVsRXZlbnRDb2FsZXNjZXI6OmNvYWxlc2NlKGNvbnN0IFdlYldoZWVsRXZl
bnQmIGEsIGNvbnN0IFdlYgogICAgIGlmIChhLnJhd1BsYXRmb3JtRGVsdGEoKSAmJiBiLnJhd1Bs
YXRmb3JtRGVsdGEoKSkKICAgICAgICAgbWVyZ2VkUmF3UGxhdGZvcm1TY3JvbGxpbmdEZWx0YSA9
IGEucmF3UGxhdGZvcm1EZWx0YSgpLnZhbHVlKCkgKyBiLnJhd1BsYXRmb3JtRGVsdGEoKS52YWx1
ZSgpOwogCi0gICAgcmV0dXJuIFdlYldoZWVsRXZlbnQoV2ViRXZlbnQ6OldoZWVsLCBiLnBvc2l0
aW9uKCksIGIuZ2xvYmFsUG9zaXRpb24oKSwgbWVyZ2VkRGVsdGEsIG1lcmdlZFdoZWVsVGlja3Ms
IGIuZ3JhbnVsYXJpdHkoKSwgYi5kaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UoKSwgYi5waGFz
ZSgpLCBiLm1vbWVudHVtUGhhc2UoKSwgYi5oYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzKCksIGIu
c2Nyb2xsQ291bnQoKSwgbWVyZ2VkVW5hY2NlbGVyYXRlZFNjcm9sbGluZ0RlbHRhLCBiLm1vZGlm
aWVycygpLCBiLnRpbWVzdGFtcCgpLCBiLmlvSElERXZlbnRUaW1lc3RhbXAoKSwgbWVyZ2VkUmF3
UGxhdGZvcm1TY3JvbGxpbmdEZWx0YSk7CisgICAgcmV0dXJuIFdlYldoZWVsRXZlbnQoV2ViRXZl
bnQ6OldoZWVsLCBiLnBvc2l0aW9uKCksIGIuZ2xvYmFsUG9zaXRpb24oKSwgbWVyZ2VkRGVsdGEs
IG1lcmdlZFdoZWVsVGlja3MsIGIuZ3JhbnVsYXJpdHkoKSwgYi5kaXJlY3Rpb25JbnZlcnRlZEZy
b21EZXZpY2UoKSwgYi5waGFzZSgpLCBiLm1vbWVudHVtUGhhc2UoKSwgYi5oYXNQcmVjaXNlU2Ny
b2xsaW5nRGVsdGFzKCksIGIuc2Nyb2xsQ291bnQoKSwgbWVyZ2VkVW5hY2NlbGVyYXRlZFNjcm9s
bGluZ0RlbHRhLCBiLm1vZGlmaWVycygpLCBiLnRpbWVzdGFtcCgpLCBiLmlvSElERXZlbnRUaW1l
c3RhbXAoKSwgbWVyZ2VkUmF3UGxhdGZvcm1TY3JvbGxpbmdEZWx0YSwgYi5tb21lbnR1bUVuZFR5
cGUoKSk7CiAjZWxpZiBQTEFURk9STShHVEspIHx8IFVTRShMSUJXUEUpCiAgICAgcmV0dXJuIFdl
YldoZWVsRXZlbnQoV2ViRXZlbnQ6OldoZWVsLCBiLnBvc2l0aW9uKCksIGIuZ2xvYmFsUG9zaXRp
b24oKSwgbWVyZ2VkRGVsdGEsIG1lcmdlZFdoZWVsVGlja3MsIGIucGhhc2UoKSwgYi5tb21lbnR1
bVBoYXNlKCksIGIuZ3JhbnVsYXJpdHkoKSwgYi5oYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzKCks
IGIubW9kaWZpZXJzKCksIGIudGltZXN0YW1wKCkpOwogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkubW0gYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9tYWMvV2ViRXZlbnRGYWN0b3J5Lm1tCmluZGV4IDE4ZTM5MjIzM2NjYWNlMTgyM2VhNzNm
Y2Q2ZGNkZGQyYzFmMTE3NTYuLmJmMGJiMzBjOWFiNDI2MzQwMWFmOTM1MTJjMjI4ZThjZDA3Y2E1
YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJFdmVudEZhY3Rvcnku
bW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5tbQpAQCAt
NDEwLDM3ICs0MTAsMzUgQEAgV2ViV2hlZWxFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdl
YldoZWVsRXZlbnQoTlNFdmVudCAqZXZlbnQsIE5TVmlldyAqd2luZG8KIAogICAgIGF1dG8gbW9k
aWZpZXJzID0gbW9kaWZpZXJzRm9yRXZlbnQoZXZlbnQpOwogICAgIGF1dG8gdGltZXN0YW1wID0g
V2ViQ29yZTo6ZXZlbnRUaW1lU3RhbXBTaW5jZTE5NzAoZXZlbnQudGltZXN0YW1wKTsKLQotICAg
IGF1dG8gaW9ISURFdmVudFRpbWVzdGFtcCA9IFsmXSgpIHsKKyAgICAKKyAgICBXYWxsVGltZSBp
b0hJREV2ZW50V2FsbFRpbWUgPSB0aW1lc3RhbXA7CisgICAgc3RkOjpvcHRpb25hbDxXZWJDb3Jl
OjpGbG9hdFNpemU+IHJhd1BsYXRmb3JtRGVsdGE7CisgICAgV2ViV2hlZWxFdmVudDo6TW9tZW50
dW1FbmRUeXBlIG1vbWVudHVtRW5kVHlwZSA9IFdlYldoZWVsRXZlbnQ6Ok1vbWVudHVtRW5kVHlw
ZTo6VW5rbm93bjsKKyAgICAKKyAgICAoWyZdIHsKICAgICAgICAgYXV0byBjZ0V2ZW50ID0gZXZl
bnQuQ0dFdmVudDsKICAgICAgICAgaWYgKCFjZ0V2ZW50KQotICAgICAgICAgICAgcmV0dXJuIGV2
ZW50LnRpbWVzdGFtcDsKKyAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBhdXRvIGlvSElE
RXZlbnQgPSBhZG9wdENGKENHRXZlbnRDb3B5SU9ISURFdmVudChjZ0V2ZW50KSk7CiAgICAgICAg
IGlmICghaW9ISURFdmVudCkKLSAgICAgICAgICAgIHJldHVybiBldmVudC50aW1lc3RhbXA7Cisg
ICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgYXV0byBpb0hJREV2ZW50VGltZXN0YW1wID0g
SU9ISURFdmVudEdldFRpbWVTdGFtcChpb0hJREV2ZW50LmdldCgpKTsgLy8gSU9FdmVudFJlZiB0
aW1lc3RhbXAgaXMgbWFjaF9hYnNvbHV0ZV90aW1lIHVuaXRzLgotICAgICAgICByZXR1cm4gTW9u
b3RvbmljVGltZTo6ZnJvbU1hY2hBYnNvbHV0ZVRpbWUoaW9ISURFdmVudFRpbWVzdGFtcCkuc2Vj
b25kc1NpbmNlRXBvY2goKS5zZWNvbmRzKCk7Ci0gICAgfSgpOwotCi0gICAgYXV0byByYXdQbGF0
Zm9ybURlbHRhID0gWyZdKCkgLT4gc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGbG9hdFNpemU+IHsK
LSAgICAgICAgYXV0byBjZ0V2ZW50ID0gZXZlbnQuQ0dFdmVudDsKLSAgICAgICAgaWYgKCFjZ0V2
ZW50KQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgICAgICBhdXRvIGlv
SElERXZlbnQgPSBhZG9wdENGKENHRXZlbnRDb3B5SU9ISURFdmVudChjZ0V2ZW50KSk7Ci0gICAg
ICAgIGlmICghaW9ISURFdmVudCkKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Cisg
ICAgICAgIGF1dG8gbW9ub3RvbmljSU9ISURFdmVudFRpbWVzdGFtcCA9IE1vbm90b25pY1RpbWU6
OmZyb21NYWNoQWJzb2x1dGVUaW1lKGlvSElERXZlbnRUaW1lc3RhbXApLnNlY29uZHNTaW5jZUVw
b2NoKCkuc2Vjb25kcygpOworICAgICAgICBpb0hJREV2ZW50V2FsbFRpbWUgPSBXZWJDb3JlOjpl
dmVudFRpbWVTdGFtcFNpbmNlMTk3MChtb25vdG9uaWNJT0hJREV2ZW50VGltZXN0YW1wKTsKICAg
ICAgICAgCi0gICAgICAgIHJldHVybiB7IFdlYkNvcmU6OkZsb2F0U2l6ZSgtSU9ISURFdmVudEdl
dEZsb2F0VmFsdWUoaW9ISURFdmVudC5nZXQoKSwga0lPSElERXZlbnRGaWVsZFNjcm9sbFgpLCAt
SU9ISURFdmVudEdldEZsb2F0VmFsdWUoaW9ISURFdmVudC5nZXQoKSwga0lPSElERXZlbnRGaWVs
ZFNjcm9sbFkpKSB9OwotICAgIH0oKTsKKyAgICAgICAgcmF3UGxhdGZvcm1EZWx0YSA9IHsgV2Vi
Q29yZTo6RmxvYXRTaXplKC1JT0hJREV2ZW50R2V0RmxvYXRWYWx1ZShpb0hJREV2ZW50LmdldCgp
LCBrSU9ISURFdmVudEZpZWxkU2Nyb2xsWCksIC1JT0hJREV2ZW50R2V0RmxvYXRWYWx1ZShpb0hJ
REV2ZW50LmdldCgpLCBrSU9ISURFdmVudEZpZWxkU2Nyb2xsWSkpIH07CiAKLSAgICBhdXRvIGlv
SElERXZlbnRXYWxsVGltZSA9IFdlYkNvcmU6OmV2ZW50VGltZVN0YW1wU2luY2UxOTcwKGlvSElE
RXZlbnRUaW1lc3RhbXApOworI2lmIEhBVkUoUExBVEZPUk1fU0NST0xMX01PTUVOVFVNX0lOVEVS
UlVQVElPTl9SRUFTT04pCisgICAgICAgIGJvb2wgbW9tZW50dW1XYXNJbnRlcnJ1cHRlZCA9IElP
SElERXZlbnRHZXRQaGFzZShpb0hJREV2ZW50LmdldCgpKSAmIGtJT0hJREV2ZW50U2Nyb2xsTW9t
ZW50dW1JbnRlcnJ1cHRlZDsKKyAgICAgICAgbW9tZW50dW1FbmRUeXBlID0gbW9tZW50dW1XYXNJ
bnRlcnJ1cHRlZCA/IFdlYldoZWVsRXZlbnQ6Ok1vbWVudHVtRW5kVHlwZTo6SW50ZXJydXB0ZWQg
OiBXZWJXaGVlbEV2ZW50OjpNb21lbnR1bUVuZFR5cGU6Ok5hdHVyYWw7CisjZW5kaWYKKyAgICB9
KSgpOwogCiAgICAgcmV0dXJuIFdlYldoZWVsRXZlbnQoV2ViRXZlbnQ6OldoZWVsLCBXZWJDb3Jl
OjpJbnRQb2ludChwb3NpdGlvbiksIFdlYkNvcmU6OkludFBvaW50KGdsb2JhbFBvc2l0aW9uKSwg
V2ViQ29yZTo6RmxvYXRTaXplKGRlbHRhWCwgZGVsdGFZKSwgV2ViQ29yZTo6RmxvYXRTaXplKHdo
ZWVsVGlja3NYLCB3aGVlbFRpY2tzWSksCiAgICAgICAgIGdyYW51bGFyaXR5LCBkaXJlY3Rpb25J
bnZlcnRlZEZyb21EZXZpY2UsIHBoYXNlLCBtb21lbnR1bVBoYXNlLCBoYXNQcmVjaXNlU2Nyb2xs
aW5nRGVsdGFzLAotICAgICAgICBzY3JvbGxDb3VudCwgdW5hY2NlbGVyYXRlZFNjcm9sbGluZ0Rl
bHRhLCBtb2RpZmllcnMsIHRpbWVzdGFtcCwgaW9ISURFdmVudFdhbGxUaW1lLCByYXdQbGF0Zm9y
bURlbHRhKTsKKyAgICAgICAgc2Nyb2xsQ291bnQsIHVuYWNjZWxlcmF0ZWRTY3JvbGxpbmdEZWx0
YSwgbW9kaWZpZXJzLCB0aW1lc3RhbXAsIGlvSElERXZlbnRXYWxsVGltZSwgcmF3UGxhdGZvcm1E
ZWx0YSwgbW9tZW50dW1FbmRUeXBlKTsKIH0KIAogV2ViS2V5Ym9hcmRFdmVudCBXZWJFdmVudEZh
Y3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQoTlNFdmVudCAqZXZlbnQsIGJvb2wgaGFuZGxl
ZEJ5SW5wdXRNZXRob2QsIGJvb2wgcmVwbGFjZXNTb2Z0U3BhY2UsIGNvbnN0IFZlY3RvcjxXZWJD
b3JlOjpLZXlwcmVzc0NvbW1hbmQ+JiBjb21tYW5kcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL01vbWVudHVtRXZlbnREaXNwYXRjaGVyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL01vbWVudHVtRXZlbnREaXNwYXRjaGVyLmNwcApp
bmRleCAyMWYyODIxOTUxNjQ0YTdhNWJiOGY4MGRjODVmMjAwMjM5ZGE5ZTJmLi5jOTA2MzYxMzM5
MzIxZTllYmQ5YjRiMGNiNGNmNGUwNjc2ODQxYmMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9Nb21lbnR1bUV2ZW50RGlzcGF0Y2hlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvTW9tZW50dW1FdmVudERpc3BhdGNoZXIuY3Bw
CkBAIC04Nyw4ICs4NywyMyBAQCBib29sIE1vbWVudHVtRXZlbnREaXNwYXRjaGVyOjpoYW5kbGVX
aGVlbEV2ZW50KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudAogICAgICAgICAvLyBt
b21lbnR1bVBoYXNlID09IFBoYXNlRW5kZWQgdGhhdCBpbnRlcnJ1cHRzLgogICAgICAgICBib29s
IGV2ZW50U2hvdWxkSW50ZXJydXB0R2VzdHVyZSA9ICFpc01vbWVudHVtRXZlbnQgfHwgZXZlbnQu
bW9tZW50dW1QaGFzZSgpICE9IFdlYldoZWVsRXZlbnQ6OlBoYXNlQ2hhbmdlZDsKIAotICAgICAg
ICBpZiAocGFnZUlkZW50aWZpZXJDaGFuZ2VkIHx8IGV2ZW50U2hvdWxkSW50ZXJydXB0R2VzdHVy
ZSkKKyAgICAgICAgaWYgKGV2ZW50Lm1vbWVudHVtUGhhc2UoKSA9PSBXZWJXaGVlbEV2ZW50OjpQ
aGFzZUVuZGVkKSB7CisjaWYgRU5BQkxFKE1PTUVOVFVNX0VWRU5UX0RJU1BBVENIRVJfVEVNUE9S
QVJZX0xPR0dJTkcpCisgICAgICAgICAgICBSRUxFQVNFX0xPRyhTY3JvbGxBbmltYXRpb25zLCAi
TW9tZW50dW1FdmVudERpc3BhdGNoZXIgc2F3IG1vbWVudHVtIGVuZGVkIHBoYXNlLCBpbnRlcnJ1
cHRlZD0lZCIsIHN0YXRpY19jYXN0PGludD4oZXZlbnQubW9tZW50dW1FbmRUeXBlKCkpKTsKKyNl
bmRpZgorCisgICAgICAgICAgICAvLyBJZ25vcmUgbW9tZW50dW1QaGFzZSA9PSBQaGFzZUVuZGVk
IGlmIGl0IHdhcyBkdWUgdG8gdGhlIG5hdHVyYWwKKyAgICAgICAgICAgIC8vIGVuZCBvZiB0aGUg
YW5pbWF0aW9uIChhcyBvcHBvc2VkIHRvIGludGVycnVwdGlvbiBieSBwbGFjaW5nIGZpbmdlcnMK
KyAgICAgICAgICAgIC8vIG9uIHRoZSB0cmFja3BhZCksIHNvIHRoYXQgb3VyIG1vbWVudHVtIGlz
IG5vdCBjdXQgc2hvcnQgaWYgdGhlCisgICAgICAgICAgICAvLyBkZWNlbGVyYXRpb24gcnVucyBs
b25nZXIgdGhhbiB0aGUgc3lzdGVtIGN1cnZlLgorICAgICAgICAgICAgaWYgKGV2ZW50Lm1vbWVu
dHVtRW5kVHlwZSgpID09IFdlYldoZWVsRXZlbnQ6Ok1vbWVudHVtRW5kVHlwZTo6TmF0dXJhbCkK
KyAgICAgICAgICAgICAgICBldmVudFNob3VsZEludGVycnVwdEdlc3R1cmUgPSBmYWxzZTsKKyAg
ICAgICAgfQorCisgICAgICAgIGlmIChwYWdlSWRlbnRpZmllckNoYW5nZWQgfHwgZXZlbnRTaG91
bGRJbnRlcnJ1cHRHZXN0dXJlKSB7CisgICAgICAgICAgICBSRUxFQVNFX0xPRyhTY3JvbGxBbmlt
YXRpb25zLCAiTW9tZW50dW1FdmVudERpc3BhdGNoZXIgaW50ZXJydXB0aW5nIHN5bnRoZXRpYyBt
b21lbnR1bSBwaGFzZSIpOwogICAgICAgICAgICAgZGlkRW5kTW9tZW50dW1QaGFzZSgpOworICAg
ICAgICB9CiAgICAgfQogCiAgICAgaWYgKGV2ZW50LnBoYXNlKCkgPT0gV2ViV2hlZWxFdmVudDo6
UGhhc2VCZWdhbiB8fCBldmVudC5waGFzZSgpID09IFdlYldoZWVsRXZlbnQ6OlBoYXNlQ2hhbmdl
ZCkgewpAQCAtMTAwLDE4ICsxMTUsMjYgQEAgYm9vbCBNb21lbnR1bUV2ZW50RGlzcGF0Y2hlcjo6
aGFuZGxlV2hlZWxFdmVudChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSWRlbnQKICNlbmRp
ZgogICAgIH0KIAotICAgIGlmIChldmVudFNob3VsZFN0YXJ0U3ludGhldGljTW9tZW50dW1QaGFz
ZShwYWdlSWRlbnRpZmllciwgZXZlbnQpKQorICAgIGlmIChldmVudFNob3VsZFN0YXJ0U3ludGhl
dGljTW9tZW50dW1QaGFzZShwYWdlSWRlbnRpZmllciwgZXZlbnQpKSB7CiAgICAgICAgIGRpZFN0
YXJ0TW9tZW50dW1QaGFzZShwYWdlSWRlbnRpZmllciwgZXZlbnQpOworICAgICAgICBtX2lzSW5P
dmVycmlkZGVuUGxhdGZvcm1Nb21lbnR1bUdlc3R1cmUgPSB0cnVlOworICAgIH0KIAotICAgIGJv
b2wgaXNNb21lbnR1bUV2ZW50RHVyaW5nU3ludGhldGljR2VzdHVyZSA9IGlzTW9tZW50dW1FdmVu
dCAmJiBtX2N1cnJlbnRHZXN0dXJlLmFjdGl2ZTsKKyAgICAvLyBDb25zdW1lIGFueSBpbmNvbWlu
ZyBtb21lbnR1bSBldmVudHMgd2hpbGUgd2UncmUgZ2VuZXJhdGluZyBhIHN5bnRoZXRpYworICAg
IC8vIG1vbWVudHVtIGdlc3R1cmUgKm9yKiBhIHBsYXRmb3JtIG1vbWVudHVtIHBoYXNlIHRoYXQg
d2FzIG92ZXJyaWRkZW4KKyAgICAvLyBpcyBzdGlsbCBydW5uaW5nIGFmdGVyIHdlIGZpbmlzaGVk
IHRoZSBzeW50aGV0aWMgZ2VzdHVyZS4KKyAgICBib29sIHNob3VsZElnbm9yZUluY29taW5nUGxh
dGZvcm1FdmVudCA9IGlzTW9tZW50dW1FdmVudCAmJiAobV9pc0luT3ZlcnJpZGRlblBsYXRmb3Jt
TW9tZW50dW1HZXN0dXJlIHx8IG1fY3VycmVudEdlc3R1cmUuYWN0aXZlKTsKKworICAgIGlmIChl
dmVudC5tb21lbnR1bVBoYXNlKCkgPT0gV2ViV2hlZWxFdmVudDo6UGhhc2VFbmRlZCkKKyAgICAg
ICAgbV9pc0luT3ZlcnJpZGRlblBsYXRmb3JtTW9tZW50dW1HZXN0dXJlID0gZmFsc2U7CiAKICNp
ZiBFTkFCTEUoTU9NRU5UVU1fRVZFTlRfRElTUEFUQ0hFUl9URU1QT1JBUllfTE9HR0lORykKLSAg
ICBpZiAoaXNNb21lbnR1bUV2ZW50RHVyaW5nU3ludGhldGljR2VzdHVyZSkKKyAgICBpZiAoc2hv
dWxkSWdub3JlSW5jb21pbmdQbGF0Zm9ybUV2ZW50KQogICAgICAgICBtX2N1cnJlbnRHZXN0dXJl
LmFjY3VtdWxhdGVkRXZlbnRPZmZzZXQgKz0gZXZlbnQuZGVsdGEoKTsKIAogICAgIGF1dG8gY29t
YmluZWRQaGFzZSA9IChldmVudC5waGFzZSgpIDw8IDgpIHwgKGV2ZW50Lm1vbWVudHVtUGhhc2Uo
KSk7CiAgICAgbV9jdXJyZW50TG9nU3RhdGUudG90YWxFdmVudE9mZnNldCArPSBldmVudC5kZWx0
YSgpLmhlaWdodCgpOwotICAgIGlmICghaXNNb21lbnR1bUV2ZW50RHVyaW5nU3ludGhldGljR2Vz
dHVyZSkgeworICAgIGlmICghc2hvdWxkSWdub3JlSW5jb21pbmdQbGF0Zm9ybUV2ZW50KSB7CiAg
ICAgICAgIC8vIExvZyBldmVudHMgdGhhdCB3ZSBkb24ndCBibG9jayB0byB0aGUgZ2VuZXJhdGVk
IG9mZnNldHMgbG9nIGFzIHdlbGwsCiAgICAgICAgIC8vIGV2ZW4gdGhvdWdoIHdlIGRpZG4ndCB0
ZWNobmljYWxseSBnZW5lcmF0ZSB0aGVtLCBqdXN0IHBhc3NlZCB0aGVtIHRocm91Z2guCiAgICAg
ICAgIG1fY3VycmVudExvZ1N0YXRlLnRvdGFsR2VuZXJhdGVkT2Zmc2V0ICs9IGV2ZW50LmRlbHRh
KCkuaGVpZ2h0KCk7CkBAIC0xMjEsOCArMTQ0LDcgQEAgYm9vbCBNb21lbnR1bUV2ZW50RGlzcGF0
Y2hlcjo6aGFuZGxlV2hlZWxFdmVudChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSWRlbnQK
ICAgICAKICNlbmRpZgogCi0gICAgLy8gQ29uc3VtZSBhbnkgbm9ybWFsIG1vbWVudHVtIGV2ZW50
cyB3aGlsZSB3ZSdyZSBpbnNpZGUgYSBzeW50aGV0aWMgbW9tZW50dW0gZ2VzdHVyZS4KLSAgICBy
ZXR1cm4gaXNNb21lbnR1bUV2ZW50RHVyaW5nU3ludGhldGljR2VzdHVyZTsKKyAgICByZXR1cm4g
c2hvdWxkSWdub3JlSW5jb21pbmdQbGF0Zm9ybUV2ZW50OwogfQogCiBzdGF0aWMgZmxvYXQgYXBw
S2l0U2Nyb2xsTXVsdGlwbGllckZvckV2ZW50KGNvbnN0IFdlYldoZWVsRXZlbnQmIGV2ZW50KQpA
QCAtMTcwLDcgKzE5Miw4IEBAIHZvaWQgTW9tZW50dW1FdmVudERpc3BhdGNoZXI6OmRpc3BhdGNo
U3ludGhldGljTW9tZW50dW1FdmVudChXZWJXaGVlbEV2ZW50OjpQaGFzCiAgICAgICAgIG1fbGFz
dEluY29taW5nRXZlbnQtPm1vZGlmaWVycygpLAogICAgICAgICB0aW1lLAogICAgICAgICB0aW1l
LAotICAgICAgICB7IH0pOworICAgICAgICB7IH0sCisgICAgICAgIFdlYldoZWVsRXZlbnQ6Ok1v
bWVudHVtRW5kVHlwZTo6VW5rbm93bik7CiAgICAgbV9kaXNwYXRjaGVyLmludGVybmFsV2hlZWxF
dmVudChtX2N1cnJlbnRHZXN0dXJlLnBhZ2VJZGVudGlmaWVyLCBzeW50aGV0aWNFdmVudCwgbV9s
YXN0UnViYmVyQmFuZGFibGVFZGdlcywgRXZlbnREaXNwYXRjaGVyOjpXaGVlbEV2ZW50T3JpZ2lu
OjpNb21lbnR1bUV2ZW50RGlzcGF0Y2hlcik7CiAKICNpZiBFTkFCTEUoTU9NRU5UVU1fRVZFTlRf
RElTUEFUQ0hFUl9URU1QT1JBUllfTE9HR0lORykKQEAgLTIyMyw3ICsyNDYsNyBAQCB2b2lkIE1v
bWVudHVtRXZlbnREaXNwYXRjaGVyOjpkaWRFbmRNb21lbnR1bVBoYXNlKCkKICAgICBkaXNwYXRj
aFN5bnRoZXRpY01vbWVudHVtRXZlbnQoV2ViV2hlZWxFdmVudDo6UGhhc2VFbmRlZCwgeyB9KTsK
IAogI2lmIEVOQUJMRShNT01FTlRVTV9FVkVOVF9ESVNQQVRDSEVSX1RFTVBPUkFSWV9MT0dHSU5H
KQotICAgIFJFTEVBU0VfTE9HKFNjcm9sbEFuaW1hdGlvbnMsICJNb21lbnR1bUV2ZW50RGlzcGF0
Y2hlciBzYXcgbW9tZW50dW0gZW5kIHBoYXNlIHdpdGggdG90YWwgb2Zmc2V0ICUuMWYgJS4xZiwg
ZHVyYXRpb24gJWYgKGV2ZW50IG9mZnNldCB3b3VsZCBoYXZlIGJlZW4gJS4xZiAlLjFmKSAodGFp
bCBpbmRleCAlZCBvZiAlenUpIiwgbV9jdXJyZW50R2VzdHVyZS5jdXJyZW50T2Zmc2V0LndpZHRo
KCksIG1fY3VycmVudEdlc3R1cmUuY3VycmVudE9mZnNldC5oZWlnaHQoKSwgKE1vbm90b25pY1Rp
bWU6Om5vdygpIC0gbV9jdXJyZW50R2VzdHVyZS5zdGFydFRpbWUpLnNlY29uZHMoKSwgbV9jdXJy
ZW50R2VzdHVyZS5hY2N1bXVsYXRlZEV2ZW50T2Zmc2V0LndpZHRoKCksIG1fY3VycmVudEdlc3R1
cmUuYWNjdW11bGF0ZWRFdmVudE9mZnNldC5oZWlnaHQoKSwgbV9jdXJyZW50R2VzdHVyZS5jdXJy
ZW50VGFpbERlbHRhSW5kZXgsIG1fY3VycmVudEdlc3R1cmUudGFpbERlbHRhVGFibGUuc2l6ZSgp
KTsKKyAgICBSRUxFQVNFX0xPRyhTY3JvbGxBbmltYXRpb25zLCAiTW9tZW50dW1FdmVudERpc3Bh
dGNoZXIgZW5kaW5nIHN5bnRoZXRpYyBtb21lbnR1bSBwaGFzZSB3aXRoIHRvdGFsIG9mZnNldCAl
LjFmICUuMWYsIGR1cmF0aW9uICVmIChldmVudCBvZmZzZXQgd291bGQgaGF2ZSBiZWVuICUuMWYg
JS4xZikgKHRhaWwgaW5kZXggJWQgb2YgJXp1KSIsIG1fY3VycmVudEdlc3R1cmUuY3VycmVudE9m
ZnNldC53aWR0aCgpLCBtX2N1cnJlbnRHZXN0dXJlLmN1cnJlbnRPZmZzZXQuaGVpZ2h0KCksIChN
b25vdG9uaWNUaW1lOjpub3coKSAtIG1fY3VycmVudEdlc3R1cmUuc3RhcnRUaW1lKS5zZWNvbmRz
KCksIG1fY3VycmVudEdlc3R1cmUuYWNjdW11bGF0ZWRFdmVudE9mZnNldC53aWR0aCgpLCBtX2N1
cnJlbnRHZXN0dXJlLmFjY3VtdWxhdGVkRXZlbnRPZmZzZXQuaGVpZ2h0KCksIG1fY3VycmVudEdl
c3R1cmUuY3VycmVudFRhaWxEZWx0YUluZGV4LCBtX2N1cnJlbnRHZXN0dXJlLnRhaWxEZWx0YVRh
YmxlLnNpemUoKSk7CiAgICAgbV9kaXNwYXRjaGVyLnF1ZXVlKCkuZGlzcGF0Y2hBZnRlcigxX3Ms
IFt0aGlzXSB7CiAgICAgICAgIGZsdXNoTG9nKCk7CiAgICAgfSk7CkBAIC0yOTksNyArMzIyLDcg
QEAgdm9pZCBNb21lbnR1bUV2ZW50RGlzcGF0Y2hlcjo6cGFnZVNjcmVlbkRpZENoYW5nZShXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQKICAgICAgICAgc3RhcnREaXNwbGF5TGluaygpOwog
fQogCi1XZWJDb3JlOjpGbG9hdFNpemUgTW9tZW50dW1FdmVudERpc3BhdGNoZXI6OmNvbnN1bWVE
ZWx0YUZvckN1cnJlbnRUaW1lKCkKK3N0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRTaXplPiBN
b21lbnR1bUV2ZW50RGlzcGF0Y2hlcjo6Y29uc3VtZURlbHRhRm9yQ3VycmVudFRpbWUoKQogewog
ICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBkZWx0YTsKIApAQCAtMzExLDcgKzMzNCw3IEBAIFdlYkNv
cmU6OkZsb2F0U2l6ZSBNb21lbnR1bUV2ZW50RGlzcGF0Y2hlcjo6Y29uc3VtZURlbHRhRm9yQ3Vy
cmVudFRpbWUoKQogICAgICAgICBpZiAobV9jdXJyZW50R2VzdHVyZS5jdXJyZW50VGFpbERlbHRh
SW5kZXggPCBtX2N1cnJlbnRHZXN0dXJlLnRhaWxEZWx0YVRhYmxlLnNpemUoKSkKICAgICAgICAg
ICAgIGRlbHRhID0gLW1fY3VycmVudEdlc3R1cmUudGFpbERlbHRhVGFibGVbbV9jdXJyZW50R2Vz
dHVyZS5jdXJyZW50VGFpbERlbHRhSW5kZXgrK107CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAg
IGRlbHRhID0geyB9OworICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAK
ICAgICBtX2N1cnJlbnRHZXN0dXJlLmN1cnJlbnRPZmZzZXQgKz0gZGVsdGE7CkBAIC0zMzEsNyAr
MzU0LDE2IEBAIHZvaWQgTW9tZW50dW1FdmVudERpc3BhdGNoZXI6OmRpc3BsYXlXYXNSZWZyZXNo
ZWQoV2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5SUQgZGlzCiAgICAgaWYgKCFkaXNwbGF5UHJvcGVy
dGllcyB8fCBkaXNwbGF5SUQgIT0gZGlzcGxheVByb3BlcnRpZXMtPmRpc3BsYXlJRCkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgZGlzcGF0Y2hTeW50aGV0aWNNb21lbnR1bUV2ZW50KFdlYldoZWVs
RXZlbnQ6OlBoYXNlQ2hhbmdlZCwgY29uc3VtZURlbHRhRm9yQ3VycmVudFRpbWUoKSk7CisgICAg
YXV0byBkZWx0YSA9IGNvbnN1bWVEZWx0YUZvckN1cnJlbnRUaW1lKCk7CisgICAgaWYgKCFkZWx0
YSkgeworI2lmIEVOQUJMRShNT01FTlRVTV9FVkVOVF9ESVNQQVRDSEVSX1RFTVBPUkFSWV9MT0dH
SU5HKQorICAgICAgICBSRUxFQVNFX0xPRyhTY3JvbGxBbmltYXRpb25zLCAiTW9tZW50dW1FdmVu
dERpc3BhdGNoZXIgY29tcGxldGVkIHN5bnRoZXRpYyBtb21lbnR1bSBwaGFzZSIpOworI2VuZGlm
CisgICAgICAgIGRpZEVuZE1vbWVudHVtUGhhc2UoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIGRpc3BhdGNoU3ludGhldGljTW9tZW50dW1FdmVudChXZWJXaGVlbEV2ZW50OjpQaGFz
ZUNoYW5nZWQsICpkZWx0YSk7CiB9CiAKIHZvaWQgTW9tZW50dW1FdmVudERpc3BhdGNoZXI6OmRp
ZFJlY2VpdmVTY3JvbGxFdmVudFdpdGhJbnRlcnZhbChXZWJDb3JlOjpGbG9hdFNpemUgc2l6ZSwg
U2Vjb25kcyBmcmFtZUludGVydmFsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvTW9tZW50dW1FdmVudERpc3BhdGNoZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL01vbWVudHVtRXZlbnREaXNwYXRjaGVyLmgKaW5kZXggMTA5NjFmMDJk
OWNkOGZkNWIwYTUzNzQwNGIwZTIyZWViODc4ZTU2MC4uMzgzZjc1ZTEwNjhkMzYwNTAxMjBhZWU3
OWFhYmVlNTc5ZDg4OGVjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvTW9tZW50dW1FdmVudERpc3BhdGNoZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9Nb21lbnR1bUV2ZW50RGlzcGF0Y2hlci5oCkBAIC04Niw3ICs4Niw3IEBA
IHByaXZhdGU6CiAgICAgdm9pZCBlcXVhbGl6ZVRhaWxHYXBzKCk7CiAKICAgICAvLyBPbmNlIGNv
bnN1bWVkLCB0aGlzIGRlbHRhICptdXN0KiBiZSBkaXNwYXRjaGVkIGluIGFuIGV2ZW50LgotICAg
IFdlYkNvcmU6OkZsb2F0U2l6ZSBjb25zdW1lRGVsdGFGb3JDdXJyZW50VGltZSgpOworICAgIHN0
ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRTaXplPiBjb25zdW1lRGVsdGFGb3JDdXJyZW50VGlt
ZSgpOwogCiAgICAgV2ViQ29yZTo6RmxvYXRTaXplIG9mZnNldEF0VGltZShTZWNvbmRzKTsKICAg
ICBzdGQ6OnBhaXI8V2ViQ29yZTo6RmxvYXRTaXplLCBXZWJDb3JlOjpGbG9hdFNpemU+IGNvbXB1
dGVOZXh0RGVsdGEoV2ViQ29yZTo6RmxvYXRTaXplIGN1cnJlbnRVbmFjY2VsZXJhdGVkRGVsdGEp
OwpAQCAtMTI1LDYgKzEyNSw3IEBAIHByaXZhdGU6CiAgICAgc3RkOjpvcHRpb25hbDxXYWxsVGlt
ZT4gbV9sYXN0U2Nyb2xsVGltZXN0YW1wOwogICAgIHN0ZDo6b3B0aW9uYWw8V2ViV2hlZWxFdmVu
dD4gbV9sYXN0SW5jb21pbmdFdmVudDsKICAgICBXZWJDb3JlOjpSZWN0RWRnZXM8Ym9vbD4gbV9s
YXN0UnViYmVyQmFuZGFibGVFZGdlczsKKyAgICBib29sIG1faXNJbk92ZXJyaWRkZW5QbGF0Zm9y
bU1vbWVudHVtR2VzdHVyZSB7IGZhbHNlIH07CiAKICAgICBzdHJ1Y3QgewogICAgICAgICBib29s
IGFjdGl2ZSB7IGZhbHNlIH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447666</attachid>
            <date>2021-12-20 16:58:39 -0800</date>
            <delta_ts>2021-12-20 21:30:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234535-20211220165839.patch</filename>
            <type>text/plain</type>
            <size>24267</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3MTkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDAyMWU0YTkzYWZmOTJhNDY4ZmI5YTZm
ZDNjNmMwNDBjMDQ3YTQ4ZDMuLjY1ZjM4ZDM5NjczYjBjYTM3MGMzMmExYzc4ZmNjZGU5Y2ZmNTg5
YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMTItMjAgIFRpbSBIb3J0b24gIDx0aW1vdGh5
X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgTW9tZW50dW0gRXZlbnQgRGlzcGF0Y2hlcjog
TW9tZW50dW0gdGFpbHMgbWF5IGdldCB0cnVuY2F0ZWQgaWYgdGhlIGR1cmF0aW9uIHJ1bnMgbG9u
Z2VyIHRoYW4gdGhlIHN5c3RlbSdzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzQ1MzUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg2MzM4MTA1Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICAqIHd0Zi9QbGF0
Zm9ybUhhdmUuaDoKKyAgICAgICAgQWRkIGEgSEFWRSBmb3Iga0lPSElERXZlbnRTY3JvbGxNb21l
bnR1bUludGVycnVwdGVkLgorCiAyMDIxLTEyLTE2ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlz
dGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyODcw
NTYuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCmluZGV4IDEyOWI0MTI0OGEzYWZmNjgzZTljMzk4NGQ0MzM5M2I2YjlkMTkyMDku
LjQ3NmY0ODQwMzE5YzZjMTZkNTdhYWZlOTNkYmEzYmY0ZDY0ODAyZWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNzEgQEAKKzIwMjEtMTItMjAgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBs
ZS5jb20+CisKKyAgICAgICAgTW9tZW50dW0gRXZlbnQgRGlzcGF0Y2hlcjogTW9tZW50dW0gdGFp
bHMgbWF5IGdldCB0cnVuY2F0ZWQgaWYgdGhlIGR1cmF0aW9uIHJ1bnMgbG9uZ2VyIHRoYW4gdGhl
IHN5c3RlbSdzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzQ1MzUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg2MzM4MTA1PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICBDdXJyZW50bHksIHN5bnRoZXRpYyBt
b21lbnR1bSBkaXNwYXRjaCBpcyBzdHJpY3RseSB0aWVkIHRvIHRoZSBkdXJhdGlvbgorICAgICAg
ICBvZiB0aGUgcmVhbCBwbGF0Zm9ybSBtb21lbnR1bSBwaGFzZSwgd2hpY2ggaGFzIHR3byB1bmZv
cnR1bmF0ZSBpbXBsaWNhdGlvbnM6CisKKyAgICAgICAgLSBpZiBvdXIgcGhhc2UgcnVucyBzaG9y
dGVyIHRoYW4gdGhlIHBsYXRmb3JtIHBoYXNlLCB3ZSdsbCBrZWVwIGRpc3BhdGNoaW5nCisgICAg
ICAgICAgemVyby1kZWx0YSBldmVudHMgdW50aWwgdGhlIHBsYXRmb3JtIG1vbWVudHVtIGVuZHMK
KworICAgICAgICAtIG1vcmUgaW1wb3J0YW50bHksIGlmIG91ciBwaGFzZSBydW5zIGxvbmdlciwg
aXQgd2lsbCBiZSBhYnJ1cHRseSB0ZXJtaW5hdGVkCisgICAgICAgICAgd2hlbiB0aGUgcGxhdGZv
cm0gbW9tZW50dW0gZW5kcworCisgICAgICAgIEluIHByYWN0aWNlLCBvdXIgc3ludGhldGljIHBo
YXNlIGlzIHZlcnkgY2xvc2UgaW4gZHVyYXRpb24gdG8gdGhlIHN5c3RlbSBvbmUsCisgICAgICAg
IHNvIHRoZSBpbXBhY3QgaXMgbWluaW1hbC4gQnV0LCB0byBiZSBzYWZlLCBkaXNlbnRhZ2xlIHRo
ZSB0d28gZHVyYXRpb25zLAorICAgICAgICB1c2luZyBhIG5ldyBiaXQgZnJvbSB0aGUgcGxhdGZv
cm0gdG8gZGV0ZXJtaW5lIGlmIHRoZSBzeXN0ZW0gbW9tZW50dW0gcGhhc2UKKyAgICAgICAgd2Fz
IGludGVycnVwdGVkIGJ5IHRoZSB1c2VyIChlLmcuIGJ5IHRhcHBpbmcgdGhlIHRyYWNrcGFkKSBv
ciBuYXR1cmFsbHksCisgICAgICAgIGFuZCBpZ25vcmluZyB0aGUgZW5kZWQgZXZlbnQgaW4gdGhl
IG5hdHVyYWwgY2FzZSwgYWxsb3dpbmcgc3ludGhldGljCisgICAgICAgIGV2ZW50cyB0byBjb250
aW51ZSBiZWluZyBkaXNwYXRjaGVkLgorCisgICAgICAgICogU2hhcmVkL1dlYldoZWVsRXZlbnQu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJXaGVlbEV2ZW50OjpXZWJXaGVlbEV2ZW50KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViV2hlZWxFdmVudDo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdl
YktpdDo6V2ViV2hlZWxFdmVudDo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViV2hlZWxF
dmVudC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJXaGVlbEV2ZW50Ojptb21lbnR1bUVuZFR5cGUg
Y29uc3QpOgorICAgICAgICAqIFNoYXJlZC9XZWJXaGVlbEV2ZW50Q29hbGVzY2VyLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViV2hlZWxFdmVudENvYWxlc2Nlcjo6Y29hbGVzY2UpOgorICAgICAg
ICBQbHVtYiBtb21lbnR1bUVuZFR5cGUgYWxvbmcgb24gV2ViV2hlZWxFdmVudC4gUGxhdGZvcm1z
IHRoYXQgZG9uJ3QKKyAgICAgICAgcHJvdmlkZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgaW50ZXJy
dXB0aW9uIHJlYXNvbiB3aWxsIGFsd2F5cyBzYXkgVW5rbm93bi4KKworICAgICAgICAqIFNoYXJl
ZC9tYWMvV2ViRXZlbnRGYWN0b3J5Lm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZhY3Rv
cnk6OmNyZWF0ZVdlYldoZWVsRXZlbnQpOgorICAgICAgICBPbmx5IGJvdGhlciBsb29raW5nIHVw
IHRoZSBDR0V2ZW50L0lPSElERXZlbnQgb25jZSwgYW5kIGV4dHJhY3QgYWxsCisgICAgICAgIHJl
bGV2YW50IGRldGFpbHMgaW4gb25lIGdvLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L01vbWVudHVtRXZlbnREaXNwYXRjaGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TW9tZW50dW1F
dmVudERpc3BhdGNoZXI6OmhhbmRsZVdoZWVsRXZlbnQpOgorICAgICAgICBEb24ndCBpbnRlcnJ1
cHQgdGhlIHN5bnRoZXRpYyBtb21lbnR1bSBwaGFzZSBpZiB0aGUgbW9tZW50dW0tZW5kZWQgZXZl
bnQKKyAgICAgICAgY29tZXMgZnJvbSB0aGUgbmF0dXJhbCBlbmQgb2YgdGhlIGRlY2VsZXJhdGlv
biBpbnN0ZWFkIG9mIGFuIGludGVycnVwdGlvbgorICAgICAgICAob3IgYW4gdW5rbm93biByZWFz
b24pLgorCisgICAgICAgIEtlZXAgdHJhY2sgb2Ygd2hldGhlciB3ZSdyZSBpbiB0aGUgbWlkZGxl
IG9mIGEgcGxhdGZvcm0gbW9tZW50dW0gcGhhc2UKKyAgICAgICAgdGhhdCB3ZSBjaG9zZSAoYXQg
bW9tZW50dW0tYmVnaW4gdGltZSkgdG8gb3ZlcnJpZGUuIFdoZW4gZGVjaWRpbmcKKyAgICAgICAg
d2hldGhlciB0byBlYXQgYW4gaW5jb21pbmcgZXZlbnQsIHRha2UgKmJvdGgqIHRoaXMgbmV3IGJp
dCBhbmQgd2hldGhlcgorICAgICAgICB3ZSBhcmUgY3VycmVudGx5IGluIHRoZSBtaWRkbGUgb2Yg
YSBzeW50aGV0aWMgcGhhc2UgaW50byBhY2NvdW50LiBJdAorICAgICAgICBpcyBpbXBvcnRhbnQg
dG8gY29udGludWUgZWF0aW5nIGluY29taW5nIGV2ZW50cyBpbiB0aGUgY2FzZSB3aGVyZSAKKyAg
ICAgICAgdGhlIHN5bnRoZXRpYyBwaGFzZSBlbmRlZCBlYXJseSAoc28gYGFjdGl2ZWAgYmVjYW1l
IGZhbHNlKSBidXQgdGhlCisgICAgICAgIHBsYXRmb3JtIHBoYXNlIGNvbnRpbnVlcy4KKworICAg
ICAgICAoV2ViS2l0OjpNb21lbnR1bUV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2hTeW50aGV0aWNN
b21lbnR1bUV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6TW9tZW50dW1FdmVudERpc3BhdGNoZXI6
OmRpZEVuZE1vbWVudHVtUGhhc2UpOgorICAgICAgICBBZGp1c3Qgc29tZSBsb2dnaW5nIHdvcmRp
bmcgdG8gYmUgbW9yZSBwcmVjaXNlLgorCisgICAgICAgIChXZWJLaXQ6Ok1vbWVudHVtRXZlbnRE
aXNwYXRjaGVyOjpjb25zdW1lRGVsdGFGb3JDdXJyZW50VGltZSk6CisgICAgICAgIE1ha2UgY29u
c3VtZURlbHRhRm9yQ3VycmVudFRpbWUgaW5mb3JtIHRoZSBjbGllbnQgdmlhIGFuIG9wdGlvbmFs
IHdoZW4KKyAgICAgICAgd2UgYXJlIGF0IHRoZSBlbmQgb2YgdGhlIGRlbHRhIHRhYmxlLgorCisg
ICAgICAgIChXZWJLaXQ6Ok1vbWVudHVtRXZlbnREaXNwYXRjaGVyOjpkaXNwbGF5V2FzUmVmcmVz
aGVkKToKKyAgICAgICAgU3RvcCB0aGUgc3ludGhldGljIG1vbWVudHVtIHBoYXNlIGFzIHNvb24g
YXMgd2UgcnVuIG91dCBvZiBkZWx0YXMuCisKKyAgICAgICAgKFdlYktpdDo6TW9tZW50dW1FdmVu
dERpc3BhdGNoZXI6OmNvbXB1dGVOZXh0RGVsdGEpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9Nb21lbnR1bUV2ZW50RGlzcGF0Y2hlci5oOgorCiAyMDIxLTEyLTE3ICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIy
ODY4NTAuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaCBiL1NvdXJj
ZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCmluZGV4IDBkYmE1ZjVlZDVhN2FkNWM0YTVkMzhjNjM1
YTY1ZTA3NTVjNzQxY2MuLmJjNGZjOTdjZGNhNzBhZjc1MjljMjUyNzMzM2E1ZTQyZmRiMjEyMzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCisrKyBiL1NvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtSGF2ZS5oCkBAIC0xMTIzLDMgKzExMjMsNyBAQAogI2lmIFBMQVRGT1JN
KE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMjAwMDAKICNkZWZp
bmUgSEFWRV9OU1NDUkVFTl9TQUZFX0FSRUEgMQogI2VuZGlmCisKKyNpZiBQTEFURk9STShNQUMp
ICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NQVhfQUxMT1dFRCA+PSAxMjAyMDAKKyNkZWZpbmUgSEFW
RV9QTEFURk9STV9TQ1JPTExfTU9NRU5UVU1fSU5URVJSVVBUSU9OX1JFQVNPTiAxCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYldoZWVsRXZlbnQuY3BwIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViV2hlZWxFdmVudC5jcHAKaW5kZXggNTFiMmI4ZTFiNWM0ZDk3
MDY0ZGFhMDJhNDQ4NTQyNmJkM2ExMjNhMS4uNDM1ZjcwMmQxMjdmODc4YTU1ZGZkMTU4NGJhMWJj
ZWM4Y2Q2ZTU3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViV2hlZWxFdmVu
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViV2hlZWxFdmVudC5jcHAKQEAgLTQ0
LDcgKzQ0LDcgQEAgV2ViV2hlZWxFdmVudDo6V2ViV2hlZWxFdmVudChUeXBlIHR5cGUsIGNvbnN0
IEludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgSW50UG9pbnQKIH0KIAogI2lmIFBMQVRGT1JNKENP
Q09BKQotV2ViV2hlZWxFdmVudDo6V2ViV2hlZWxFdmVudChUeXBlIHR5cGUsIGNvbnN0IEludFBv
aW50JiBwb3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBjb25zdCBGbG9h
dFNpemUmIGRlbHRhLCBjb25zdCBGbG9hdFNpemUmIHdoZWVsVGlja3MsIEdyYW51bGFyaXR5IGdy
YW51bGFyaXR5LCBib29sIGRpcmVjdGlvbkludmVydGVkRnJvbURldmljZSwgUGhhc2UgcGhhc2Us
IFBoYXNlIG1vbWVudHVtUGhhc2UsIGJvb2wgaGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcywgdWlu
dDMyX3Qgc2Nyb2xsQ291bnQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgdW5hY2NlbGVyYXRl
ZFNjcm9sbGluZ0RlbHRhLCBPcHRpb25TZXQ8TW9kaWZpZXI+IG1vZGlmaWVycywgV2FsbFRpbWUg
dGltZXN0YW1wLCBXYWxsVGltZSBpb0hJREV2ZW50VGltZXN0YW1wLCBzdGQ6Om9wdGlvbmFsPFdl
YkNvcmU6OkZsb2F0U2l6ZT4gcmF3UGxhdGZvcm1EZWx0YSkKK1dlYldoZWVsRXZlbnQ6OldlYldo
ZWVsRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IEludFBv
aW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgRmxvYXRTaXplJiBkZWx0YSwgY29uc3QgRmxvYXRT
aXplJiB3aGVlbFRpY2tzLCBHcmFudWxhcml0eSBncmFudWxhcml0eSwgYm9vbCBkaXJlY3Rpb25J
bnZlcnRlZEZyb21EZXZpY2UsIFBoYXNlIHBoYXNlLCBQaGFzZSBtb21lbnR1bVBoYXNlLCBib29s
IGhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMsIHVpbnQzMl90IHNjcm9sbENvdW50LCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFNpemUmIHVuYWNjZWxlcmF0ZWRTY3JvbGxpbmdEZWx0YSwgT3B0aW9uU2V0
PE1vZGlmaWVyPiBtb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCwgV2FsbFRpbWUgaW9ISURF
dmVudFRpbWVzdGFtcCwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGbG9hdFNpemU+IHJhd1BsYXRm
b3JtRGVsdGEsIE1vbWVudHVtRW5kVHlwZSBtb21lbnR1bUVuZFR5cGUpCiAgICAgOiBXZWJFdmVu
dCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAsIG1fcG9zaXRpb24ocG9zaXRpb24p
CiAgICAgLCBtX2dsb2JhbFBvc2l0aW9uKGdsb2JhbFBvc2l0aW9uKQpAQCAtNTMsNiArNTMsNyBA
QCBXZWJXaGVlbEV2ZW50OjpXZWJXaGVlbEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgSW50UG9pbnQm
IHBvc2l0aW9uLCBjb25zdCBJbnRQb2ludAogICAgICwgbV9ncmFudWxhcml0eShncmFudWxhcml0
eSkKICAgICAsIG1fcGhhc2UocGhhc2UpCiAgICAgLCBtX21vbWVudHVtUGhhc2UobW9tZW50dW1Q
aGFzZSkKKyAgICAsIG1fbW9tZW50dW1FbmRUeXBlKG1vbWVudHVtRW5kVHlwZSkKICAgICAsIG1f
ZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlKGRpcmVjdGlvbkludmVydGVkRnJvbURldmljZSkK
ICAgICAsIG1faGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcyhoYXNQcmVjaXNlU2Nyb2xsaW5nRGVs
dGFzKQogICAgICwgbV9pb0hJREV2ZW50VGltZXN0YW1wKGlvSElERXZlbnRUaW1lc3RhbXApCkBA
IC04Nyw2ICs4OCw3IEBAIHZvaWQgV2ViV2hlZWxFdmVudDo6ZW5jb2RlKElQQzo6RW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IG1fZGVsdGE7CiAgICAgZW5jb2RlciA8PCBt
X3doZWVsVGlja3M7CiAgICAgZW5jb2RlciA8PCBtX2dyYW51bGFyaXR5OworICAgIGVuY29kZXIg
PDwgbV9tb21lbnR1bUVuZFR5cGU7CiAgICAgZW5jb2RlciA8PCBtX2RpcmVjdGlvbkludmVydGVk
RnJvbURldmljZTsKICNpZiBQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oR1RLKSB8fCBVU0Uo
TElCV1BFKQogICAgIGVuY29kZXIgPDwgbV9waGFzZTsKQEAgLTExNSw2ICsxMTcsOCBAQCBib29s
IFdlYldoZWVsRXZlbnQ6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFdlYldoZWVsRXZl
bnQmIHQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHQu
bV9ncmFudWxhcml0eSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKHQubV9tb21lbnR1bUVuZFR5cGUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
aWYgKCFkZWNvZGVyLmRlY29kZSh0Lm1fZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShHVEsp
IHx8IFVTRShMSUJXUEUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJXaGVl
bEV2ZW50LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJXaGVlbEV2ZW50LmgKaW5kZXggYTll
YzhlOGFmZjAwNmY2ZDUzOWZiODhiNzM2OTdkNjM2OWFlY2E4NC4uODIxZWUyMjAxMjgzMzY4YjVj
OTk1N2YwZGExNjNkNGUxYzNiMDYzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViV2hlZWxFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYldoZWVsRXZlbnQu
aApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIldlYkV2ZW50LmgiCiAjaW5jbHVkZSA8V2Vi
Q29yZS9GbG9hdFNpemUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ludFBvaW50Lmg+CisjaW5jbHVk
ZSA8d3RmL0VudW1UcmFpdHMuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTQ5LDExICs1
MCwxNyBAQCBwdWJsaWM6CiAgICAgICAgIFBoYXNlTWF5QmVnaW4gICAgPSAxIDw8IDUsCiAgICAg
fTsKIAorICAgIGVudW0gY2xhc3MgTW9tZW50dW1FbmRUeXBlIDogdWludDhfdCB7CisgICAgICAg
IFVua25vd24sCisgICAgICAgIEludGVycnVwdGVkLAorICAgICAgICBOYXR1cmFsLAorICAgIH07
CisKICAgICBXZWJXaGVlbEV2ZW50KCkgPSBkZWZhdWx0OwogCiAgICAgV2ViV2hlZWxFdmVudChU
eXBlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6Oklu
dFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBkZWx0YSwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBHcmFudWxhcml0eSwgT3B0aW9u
U2V0PE1vZGlmaWVyPiwgV2FsbFRpbWUgdGltZXN0YW1wKTsKICNpZiBQTEFURk9STShDT0NPQSkK
LSAgICBXZWJXaGVlbEV2ZW50KFR5cGUsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlv
biwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFNpemUmIGRlbHRhLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHdoZWVsVGlja3Ms
IEdyYW51bGFyaXR5LCBib29sIGRpcmVjdGlvbkludmVydGVkRnJvbURldmljZSwgUGhhc2UsIFBo
YXNlIG1vbWVudHVtUGhhc2UsIGJvb2wgaGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcywgdWludDMy
X3Qgc2Nyb2xsQ291bnQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgdW5hY2NlbGVyYXRlZFNj
cm9sbGluZ0RlbHRhLCBPcHRpb25TZXQ8TW9kaWZpZXI+LCBXYWxsVGltZSB0aW1lc3RhbXAsIFdh
bGxUaW1lIGlvSElERXZlbnRUaW1lc3RhbXAsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRT
aXplPiByYXdQbGF0Zm9ybURlbHRhKTsKKyAgICBXZWJXaGVlbEV2ZW50KFR5cGUsIGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGdsb2Jh
bFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGRlbHRhLCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFNpemUmIHdoZWVsVGlja3MsIEdyYW51bGFyaXR5LCBib29sIGRpcmVjdGlvbkludmVy
dGVkRnJvbURldmljZSwgUGhhc2UsIFBoYXNlIG1vbWVudHVtUGhhc2UsIGJvb2wgaGFzUHJlY2lz
ZVNjcm9sbGluZ0RlbHRhcywgdWludDMyX3Qgc2Nyb2xsQ291bnQsIGNvbnN0IFdlYkNvcmU6OkZs
b2F0U2l6ZSYgdW5hY2NlbGVyYXRlZFNjcm9sbGluZ0RlbHRhLCBPcHRpb25TZXQ8TW9kaWZpZXI+
LCBXYWxsVGltZSB0aW1lc3RhbXAsIFdhbGxUaW1lIGlvSElERXZlbnRUaW1lc3RhbXAsIHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRTaXplPiByYXdQbGF0Zm9ybURlbHRhLCBNb21lbnR1bUVu
ZFR5cGUpOwogI2VsaWYgUExBVEZPUk0oR1RLKSB8fCBVU0UoTElCV1BFKQogICAgIFdlYldoZWVs
RXZlbnQoVHlwZSwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBXZWJD
b3JlOjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYg
ZGVsdGEsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgd2hlZWxUaWNrcywgUGhhc2UsIFBoYXNl
IG1vbWVudHVtUGhhc2UsIEdyYW51bGFyaXR5LCBib29sIGhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0
YXMsIE9wdGlvblNldDxNb2RpZmllcj4sIFdhbGxUaW1lIHRpbWVzdGFtcCk7CiAjZW5kaWYKQEAg
LTY2LDYgKzczLDcgQEAgcHVibGljOgogICAgIGJvb2wgZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2
aWNlKCkgY29uc3QgeyByZXR1cm4gbV9kaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2U7IH0KICAg
ICBQaGFzZSBwaGFzZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFBoYXNlPihtX3BoYXNl
KTsgfQogICAgIFBoYXNlIG1vbWVudHVtUGhhc2UoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2Fz
dDxQaGFzZT4obV9tb21lbnR1bVBoYXNlKTsgfQorICAgIE1vbWVudHVtRW5kVHlwZSBtb21lbnR1
bUVuZFR5cGUoKSBjb25zdCB7IHJldHVybiBtX21vbWVudHVtRW5kVHlwZTsgfQogI2lmIFBMQVRG
T1JNKENPQ09BKSB8fCBQTEFURk9STShHVEspIHx8IFVTRShMSUJXUEUpCiAgICAgYm9vbCBoYXNQ
cmVjaXNlU2Nyb2xsaW5nRGVsdGFzKCkgY29uc3QgeyByZXR1cm4gbV9oYXNQcmVjaXNlU2Nyb2xs
aW5nRGVsdGFzOyB9CiAjZW5kaWYKQEAgLTkwLDYgKzk4LDcgQEAgcHJpdmF0ZToKICAgICB1aW50
MzJfdCBtX3BoYXNlIHsgUGhhc2U6OlBoYXNlTm9uZSB9OwogICAgIHVpbnQzMl90IG1fbW9tZW50
dW1QaGFzZSB7IFBoYXNlOjpQaGFzZU5vbmUgfTsKIAorICAgIE1vbWVudHVtRW5kVHlwZSBtX21v
bWVudHVtRW5kVHlwZSB7IE1vbWVudHVtRW5kVHlwZTo6VW5rbm93biB9OwogICAgIGJvb2wgbV9k
aXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UgeyBmYWxzZSB9OwogI2lmIFBMQVRGT1JNKENPQ09B
KSB8fCBQTEFURk9STShHVEspIHx8IFVTRShMSUJXUEUpCiAgICAgYm9vbCBtX2hhc1ByZWNpc2VT
Y3JvbGxpbmdEZWx0YXMgeyBmYWxzZSB9OwpAQCAtMTAzLDMgKzExMiwxNiBAQCBwcml2YXRlOgog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0
ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYktpdDo6V2ViV2hlZWxFdmVudDo6TW9tZW50dW1FbmRU
eXBlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICBXZWJLaXQ6OldlYldo
ZWVsRXZlbnQ6Ok1vbWVudHVtRW5kVHlwZSwKKyAgICBXZWJLaXQ6OldlYldoZWVsRXZlbnQ6Ok1v
bWVudHVtRW5kVHlwZTo6VW5rbm93biwKKyAgICBXZWJLaXQ6OldlYldoZWVsRXZlbnQ6Ok1vbWVu
dHVtRW5kVHlwZTo6SW50ZXJydXB0ZWQsCisgICAgV2ViS2l0OjpXZWJXaGVlbEV2ZW50OjpNb21l
bnR1bUVuZFR5cGU6Ok5hdHVyYWwKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJXaGVlbEV2ZW50Q29hbGVzY2VyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYldoZWVsRXZlbnRDb2FsZXNjZXIuY3BwCmluZGV4
IGI5NmExNDE4NmE3YWFkNzBmZjQ1MzJhZTU3MGI3YTYxOWQxZWM3MjAuLjRkNTQyN2NlNjMwYzYx
MDZmYTEwOTczZDcxODkwMmQ0ZTU1ZDZjNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYldoZWVsRXZlbnRDb2FsZXNjZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYldoZWVsRXZlbnRDb2FsZXNjZXIuY3BwCkBAIC04MSw3ICs4MSw3IEBAIFdlYldoZWVsRXZl
bnQgV2ViV2hlZWxFdmVudENvYWxlc2Nlcjo6Y29hbGVzY2UoY29uc3QgV2ViV2hlZWxFdmVudCYg
YSwgY29uc3QgV2ViCiAgICAgaWYgKGEucmF3UGxhdGZvcm1EZWx0YSgpICYmIGIucmF3UGxhdGZv
cm1EZWx0YSgpKQogICAgICAgICBtZXJnZWRSYXdQbGF0Zm9ybVNjcm9sbGluZ0RlbHRhID0gYS5y
YXdQbGF0Zm9ybURlbHRhKCkudmFsdWUoKSArIGIucmF3UGxhdGZvcm1EZWx0YSgpLnZhbHVlKCk7
CiAKLSAgICByZXR1cm4gV2ViV2hlZWxFdmVudChXZWJFdmVudDo6V2hlZWwsIGIucG9zaXRpb24o
KSwgYi5nbG9iYWxQb3NpdGlvbigpLCBtZXJnZWREZWx0YSwgbWVyZ2VkV2hlZWxUaWNrcywgYi5n
cmFudWxhcml0eSgpLCBiLmRpcmVjdGlvbkludmVydGVkRnJvbURldmljZSgpLCBiLnBoYXNlKCks
IGIubW9tZW50dW1QaGFzZSgpLCBiLmhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMoKSwgYi5zY3Jv
bGxDb3VudCgpLCBtZXJnZWRVbmFjY2VsZXJhdGVkU2Nyb2xsaW5nRGVsdGEsIGIubW9kaWZpZXJz
KCksIGIudGltZXN0YW1wKCksIGIuaW9ISURFdmVudFRpbWVzdGFtcCgpLCBtZXJnZWRSYXdQbGF0
Zm9ybVNjcm9sbGluZ0RlbHRhKTsKKyAgICByZXR1cm4gV2ViV2hlZWxFdmVudChXZWJFdmVudDo6
V2hlZWwsIGIucG9zaXRpb24oKSwgYi5nbG9iYWxQb3NpdGlvbigpLCBtZXJnZWREZWx0YSwgbWVy
Z2VkV2hlZWxUaWNrcywgYi5ncmFudWxhcml0eSgpLCBiLmRpcmVjdGlvbkludmVydGVkRnJvbURl
dmljZSgpLCBiLnBoYXNlKCksIGIubW9tZW50dW1QaGFzZSgpLCBiLmhhc1ByZWNpc2VTY3JvbGxp
bmdEZWx0YXMoKSwgYi5zY3JvbGxDb3VudCgpLCBtZXJnZWRVbmFjY2VsZXJhdGVkU2Nyb2xsaW5n
RGVsdGEsIGIubW9kaWZpZXJzKCksIGIudGltZXN0YW1wKCksIGIuaW9ISURFdmVudFRpbWVzdGFt
cCgpLCBtZXJnZWRSYXdQbGF0Zm9ybVNjcm9sbGluZ0RlbHRhLCBiLm1vbWVudHVtRW5kVHlwZSgp
KTsKICNlbGlmIFBMQVRGT1JNKEdUSykgfHwgVVNFKExJQldQRSkKICAgICByZXR1cm4gV2ViV2hl
ZWxFdmVudChXZWJFdmVudDo6V2hlZWwsIGIucG9zaXRpb24oKSwgYi5nbG9iYWxQb3NpdGlvbigp
LCBtZXJnZWREZWx0YSwgbWVyZ2VkV2hlZWxUaWNrcywgYi5waGFzZSgpLCBiLm1vbWVudHVtUGhh
c2UoKSwgYi5ncmFudWxhcml0eSgpLCBiLmhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMoKSwgYi5t
b2RpZmllcnMoKSwgYi50aW1lc3RhbXAoKSk7CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L21hYy9XZWJFdmVudEZhY3RvcnkubW0KaW5kZXggMThlMzkyMjMzY2NhY2UxODIzZWE3M2ZjZDZk
Y2RkZDJjMWYxMTc1Ni4uMWYzMjY0YWQwYTczYmM0N2ZmN2U5NzhkZDhlNjY5MWUxY2M5MmUwZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViRXZlbnRGYWN0b3J5Lm1tCkBAIC00MTAs
MzcgKzQxMCwzNSBAQCBXZWJXaGVlbEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViV2hl
ZWxFdmVudChOU0V2ZW50ICpldmVudCwgTlNWaWV3ICp3aW5kbwogCiAgICAgYXV0byBtb2RpZmll
cnMgPSBtb2RpZmllcnNGb3JFdmVudChldmVudCk7CiAgICAgYXV0byB0aW1lc3RhbXAgPSBXZWJD
b3JlOjpldmVudFRpbWVTdGFtcFNpbmNlMTk3MChldmVudC50aW1lc3RhbXApOwotCi0gICAgYXV0
byBpb0hJREV2ZW50VGltZXN0YW1wID0gWyZdKCkgeworICAgIAorICAgIGF1dG8gaW9ISURFdmVu
dFdhbGxUaW1lID0gdGltZXN0YW1wOworICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRT
aXplPiByYXdQbGF0Zm9ybURlbHRhOworICAgIGF1dG8gbW9tZW50dW1FbmRUeXBlID0gV2ViV2hl
ZWxFdmVudDo6TW9tZW50dW1FbmRUeXBlOjpVbmtub3duOworICAgIAorICAgIChbJl0gewogICAg
ICAgICBhdXRvIGNnRXZlbnQgPSBldmVudC5DR0V2ZW50OwogICAgICAgICBpZiAoIWNnRXZlbnQp
Ci0gICAgICAgICAgICByZXR1cm4gZXZlbnQudGltZXN0YW1wOworICAgICAgICAgICAgcmV0dXJu
OwogCiAgICAgICAgIGF1dG8gaW9ISURFdmVudCA9IGFkb3B0Q0YoQ0dFdmVudENvcHlJT0hJREV2
ZW50KGNnRXZlbnQpKTsKICAgICAgICAgaWYgKCFpb0hJREV2ZW50KQotICAgICAgICAgICAgcmV0
dXJuIGV2ZW50LnRpbWVzdGFtcDsKKyAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBhdXRv
IGlvSElERXZlbnRUaW1lc3RhbXAgPSBJT0hJREV2ZW50R2V0VGltZVN0YW1wKGlvSElERXZlbnQu
Z2V0KCkpOyAvLyBJT0V2ZW50UmVmIHRpbWVzdGFtcCBpcyBtYWNoX2Fic29sdXRlX3RpbWUgdW5p
dHMuCi0gICAgICAgIHJldHVybiBNb25vdG9uaWNUaW1lOjpmcm9tTWFjaEFic29sdXRlVGltZShp
b0hJREV2ZW50VGltZXN0YW1wKS5zZWNvbmRzU2luY2VFcG9jaCgpLnNlY29uZHMoKTsKLSAgICB9
KCk7Ci0KLSAgICBhdXRvIHJhd1BsYXRmb3JtRGVsdGEgPSBbJl0oKSAtPiBzdGQ6Om9wdGlvbmFs
PFdlYkNvcmU6OkZsb2F0U2l6ZT4gewotICAgICAgICBhdXRvIGNnRXZlbnQgPSBldmVudC5DR0V2
ZW50OwotICAgICAgICBpZiAoIWNnRXZlbnQpCi0gICAgICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OwotCi0gICAgICAgIGF1dG8gaW9ISURFdmVudCA9IGFkb3B0Q0YoQ0dFdmVudENvcHlJT0hJ
REV2ZW50KGNnRXZlbnQpKTsKLSAgICAgICAgaWYgKCFpb0hJREV2ZW50KQotICAgICAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgYXV0byBtb25vdG9uaWNJT0hJREV2ZW50VGlt
ZXN0YW1wID0gTW9ub3RvbmljVGltZTo6ZnJvbU1hY2hBYnNvbHV0ZVRpbWUoaW9ISURFdmVudFRp
bWVzdGFtcCkuc2Vjb25kc1NpbmNlRXBvY2goKS5zZWNvbmRzKCk7CisgICAgICAgIGlvSElERXZl
bnRXYWxsVGltZSA9IFdlYkNvcmU6OmV2ZW50VGltZVN0YW1wU2luY2UxOTcwKG1vbm90b25pY0lP
SElERXZlbnRUaW1lc3RhbXApOwogICAgICAgICAKLSAgICAgICAgcmV0dXJuIHsgV2ViQ29yZTo6
RmxvYXRTaXplKC1JT0hJREV2ZW50R2V0RmxvYXRWYWx1ZShpb0hJREV2ZW50LmdldCgpLCBrSU9I
SURFdmVudEZpZWxkU2Nyb2xsWCksIC1JT0hJREV2ZW50R2V0RmxvYXRWYWx1ZShpb0hJREV2ZW50
LmdldCgpLCBrSU9ISURFdmVudEZpZWxkU2Nyb2xsWSkpIH07Ci0gICAgfSgpOworICAgICAgICBy
YXdQbGF0Zm9ybURlbHRhID0geyBXZWJDb3JlOjpGbG9hdFNpemUoLUlPSElERXZlbnRHZXRGbG9h
dFZhbHVlKGlvSElERXZlbnQuZ2V0KCksIGtJT0hJREV2ZW50RmllbGRTY3JvbGxYKSwgLUlPSElE
RXZlbnRHZXRGbG9hdFZhbHVlKGlvSElERXZlbnQuZ2V0KCksIGtJT0hJREV2ZW50RmllbGRTY3Jv
bGxZKSkgfTsKIAotICAgIGF1dG8gaW9ISURFdmVudFdhbGxUaW1lID0gV2ViQ29yZTo6ZXZlbnRU
aW1lU3RhbXBTaW5jZTE5NzAoaW9ISURFdmVudFRpbWVzdGFtcCk7CisjaWYgSEFWRShQTEFURk9S
TV9TQ1JPTExfTU9NRU5UVU1fSU5URVJSVVBUSU9OX1JFQVNPTikKKyAgICAgICAgYm9vbCBtb21l
bnR1bVdhc0ludGVycnVwdGVkID0gSU9ISURFdmVudEdldFBoYXNlKGlvSElERXZlbnQuZ2V0KCkp
ICYga0lPSElERXZlbnRTY3JvbGxNb21lbnR1bUludGVycnVwdGVkOworICAgICAgICBtb21lbnR1
bUVuZFR5cGUgPSBtb21lbnR1bVdhc0ludGVycnVwdGVkID8gV2ViV2hlZWxFdmVudDo6TW9tZW50
dW1FbmRUeXBlOjpJbnRlcnJ1cHRlZCA6IFdlYldoZWVsRXZlbnQ6Ok1vbWVudHVtRW5kVHlwZTo6
TmF0dXJhbDsKKyNlbmRpZgorICAgIH0pKCk7CiAKICAgICByZXR1cm4gV2ViV2hlZWxFdmVudChX
ZWJFdmVudDo6V2hlZWwsIFdlYkNvcmU6OkludFBvaW50KHBvc2l0aW9uKSwgV2ViQ29yZTo6SW50
UG9pbnQoZ2xvYmFsUG9zaXRpb24pLCBXZWJDb3JlOjpGbG9hdFNpemUoZGVsdGFYLCBkZWx0YVkp
LCBXZWJDb3JlOjpGbG9hdFNpemUod2hlZWxUaWNrc1gsIHdoZWVsVGlja3NZKSwKICAgICAgICAg
Z3JhbnVsYXJpdHksIGRpcmVjdGlvbkludmVydGVkRnJvbURldmljZSwgcGhhc2UsIG1vbWVudHVt
UGhhc2UsIGhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMsCi0gICAgICAgIHNjcm9sbENvdW50LCB1
bmFjY2VsZXJhdGVkU2Nyb2xsaW5nRGVsdGEsIG1vZGlmaWVycywgdGltZXN0YW1wLCBpb0hJREV2
ZW50V2FsbFRpbWUsIHJhd1BsYXRmb3JtRGVsdGEpOworICAgICAgICBzY3JvbGxDb3VudCwgdW5h
Y2NlbGVyYXRlZFNjcm9sbGluZ0RlbHRhLCBtb2RpZmllcnMsIHRpbWVzdGFtcCwgaW9ISURFdmVu
dFdhbGxUaW1lLCByYXdQbGF0Zm9ybURlbHRhLCBtb21lbnR1bUVuZFR5cGUpOwogfQogCiBXZWJL
ZXlib2FyZEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViS2V5Ym9hcmRFdmVudChOU0V2
ZW50ICpldmVudCwgYm9vbCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgYm9vbCByZXBsYWNlc1NvZnRT
cGFjZSwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4mIGNvbW1hbmRzKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvTW9tZW50dW1FdmVu
dERpc3BhdGNoZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvTW9tZW50
dW1FdmVudERpc3BhdGNoZXIuY3BwCmluZGV4IDIxZjI4MjE5NTE2NDRhN2E1YmI4ZjgwZGM4NWYy
MDAyMzlkYTllMmYuLmM5MDYzNjEzMzkzMjFlOWViZDliNGIwY2I0Y2Y0ZTA2NzY4NDFiYzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL01vbWVudHVtRXZlbnRE
aXNwYXRjaGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Nb21l
bnR1bUV2ZW50RGlzcGF0Y2hlci5jcHAKQEAgLTg3LDggKzg3LDIzIEBAIGJvb2wgTW9tZW50dW1F
dmVudERpc3BhdGNoZXI6OmhhbmRsZVdoZWVsRXZlbnQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIg
cGFnZUlkZW50CiAgICAgICAgIC8vIG1vbWVudHVtUGhhc2UgPT0gUGhhc2VFbmRlZCB0aGF0IGlu
dGVycnVwdHMuCiAgICAgICAgIGJvb2wgZXZlbnRTaG91bGRJbnRlcnJ1cHRHZXN0dXJlID0gIWlz
TW9tZW50dW1FdmVudCB8fCBldmVudC5tb21lbnR1bVBoYXNlKCkgIT0gV2ViV2hlZWxFdmVudDo6
UGhhc2VDaGFuZ2VkOwogCi0gICAgICAgIGlmIChwYWdlSWRlbnRpZmllckNoYW5nZWQgfHwgZXZl
bnRTaG91bGRJbnRlcnJ1cHRHZXN0dXJlKQorICAgICAgICBpZiAoZXZlbnQubW9tZW50dW1QaGFz
ZSgpID09IFdlYldoZWVsRXZlbnQ6OlBoYXNlRW5kZWQpIHsKKyNpZiBFTkFCTEUoTU9NRU5UVU1f
RVZFTlRfRElTUEFUQ0hFUl9URU1QT1JBUllfTE9HR0lORykKKyAgICAgICAgICAgIFJFTEVBU0Vf
TE9HKFNjcm9sbEFuaW1hdGlvbnMsICJNb21lbnR1bUV2ZW50RGlzcGF0Y2hlciBzYXcgbW9tZW50
dW0gZW5kZWQgcGhhc2UsIGludGVycnVwdGVkPSVkIiwgc3RhdGljX2Nhc3Q8aW50PihldmVudC5t
b21lbnR1bUVuZFR5cGUoKSkpOworI2VuZGlmCisKKyAgICAgICAgICAgIC8vIElnbm9yZSBtb21l
bnR1bVBoYXNlID09IFBoYXNlRW5kZWQgaWYgaXQgd2FzIGR1ZSB0byB0aGUgbmF0dXJhbAorICAg
ICAgICAgICAgLy8gZW5kIG9mIHRoZSBhbmltYXRpb24gKGFzIG9wcG9zZWQgdG8gaW50ZXJydXB0
aW9uIGJ5IHBsYWNpbmcgZmluZ2VycworICAgICAgICAgICAgLy8gb24gdGhlIHRyYWNrcGFkKSwg
c28gdGhhdCBvdXIgbW9tZW50dW0gaXMgbm90IGN1dCBzaG9ydCBpZiB0aGUKKyAgICAgICAgICAg
IC8vIGRlY2VsZXJhdGlvbiBydW5zIGxvbmdlciB0aGFuIHRoZSBzeXN0ZW0gY3VydmUuCisgICAg
ICAgICAgICBpZiAoZXZlbnQubW9tZW50dW1FbmRUeXBlKCkgPT0gV2ViV2hlZWxFdmVudDo6TW9t
ZW50dW1FbmRUeXBlOjpOYXR1cmFsKQorICAgICAgICAgICAgICAgIGV2ZW50U2hvdWxkSW50ZXJy
dXB0R2VzdHVyZSA9IGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHBhZ2VJZGVudGlm
aWVyQ2hhbmdlZCB8fCBldmVudFNob3VsZEludGVycnVwdEdlc3R1cmUpIHsKKyAgICAgICAgICAg
IFJFTEVBU0VfTE9HKFNjcm9sbEFuaW1hdGlvbnMsICJNb21lbnR1bUV2ZW50RGlzcGF0Y2hlciBp
bnRlcnJ1cHRpbmcgc3ludGhldGljIG1vbWVudHVtIHBoYXNlIik7CiAgICAgICAgICAgICBkaWRF
bmRNb21lbnR1bVBoYXNlKCk7CisgICAgICAgIH0KICAgICB9CiAKICAgICBpZiAoZXZlbnQucGhh
c2UoKSA9PSBXZWJXaGVlbEV2ZW50OjpQaGFzZUJlZ2FuIHx8IGV2ZW50LnBoYXNlKCkgPT0gV2Vi
V2hlZWxFdmVudDo6UGhhc2VDaGFuZ2VkKSB7CkBAIC0xMDAsMTggKzExNSwyNiBAQCBib29sIE1v
bWVudHVtRXZlbnREaXNwYXRjaGVyOjpoYW5kbGVXaGVlbEV2ZW50KFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyIHBhZ2VJZGVudAogI2VuZGlmCiAgICAgfQogCi0gICAgaWYgKGV2ZW50U2hvdWxkU3Rh
cnRTeW50aGV0aWNNb21lbnR1bVBoYXNlKHBhZ2VJZGVudGlmaWVyLCBldmVudCkpCisgICAgaWYg
KGV2ZW50U2hvdWxkU3RhcnRTeW50aGV0aWNNb21lbnR1bVBoYXNlKHBhZ2VJZGVudGlmaWVyLCBl
dmVudCkpIHsKICAgICAgICAgZGlkU3RhcnRNb21lbnR1bVBoYXNlKHBhZ2VJZGVudGlmaWVyLCBl
dmVudCk7CisgICAgICAgIG1faXNJbk92ZXJyaWRkZW5QbGF0Zm9ybU1vbWVudHVtR2VzdHVyZSA9
IHRydWU7CisgICAgfQogCi0gICAgYm9vbCBpc01vbWVudHVtRXZlbnREdXJpbmdTeW50aGV0aWNH
ZXN0dXJlID0gaXNNb21lbnR1bUV2ZW50ICYmIG1fY3VycmVudEdlc3R1cmUuYWN0aXZlOworICAg
IC8vIENvbnN1bWUgYW55IGluY29taW5nIG1vbWVudHVtIGV2ZW50cyB3aGlsZSB3ZSdyZSBnZW5l
cmF0aW5nIGEgc3ludGhldGljCisgICAgLy8gbW9tZW50dW0gZ2VzdHVyZSAqb3IqIGEgcGxhdGZv
cm0gbW9tZW50dW0gcGhhc2UgdGhhdCB3YXMgb3ZlcnJpZGRlbgorICAgIC8vIGlzIHN0aWxsIHJ1
bm5pbmcgYWZ0ZXIgd2UgZmluaXNoZWQgdGhlIHN5bnRoZXRpYyBnZXN0dXJlLgorICAgIGJvb2wg
c2hvdWxkSWdub3JlSW5jb21pbmdQbGF0Zm9ybUV2ZW50ID0gaXNNb21lbnR1bUV2ZW50ICYmICht
X2lzSW5PdmVycmlkZGVuUGxhdGZvcm1Nb21lbnR1bUdlc3R1cmUgfHwgbV9jdXJyZW50R2VzdHVy
ZS5hY3RpdmUpOworCisgICAgaWYgKGV2ZW50Lm1vbWVudHVtUGhhc2UoKSA9PSBXZWJXaGVlbEV2
ZW50OjpQaGFzZUVuZGVkKQorICAgICAgICBtX2lzSW5PdmVycmlkZGVuUGxhdGZvcm1Nb21lbnR1
bUdlc3R1cmUgPSBmYWxzZTsKIAogI2lmIEVOQUJMRShNT01FTlRVTV9FVkVOVF9ESVNQQVRDSEVS
X1RFTVBPUkFSWV9MT0dHSU5HKQotICAgIGlmIChpc01vbWVudHVtRXZlbnREdXJpbmdTeW50aGV0
aWNHZXN0dXJlKQorICAgIGlmIChzaG91bGRJZ25vcmVJbmNvbWluZ1BsYXRmb3JtRXZlbnQpCiAg
ICAgICAgIG1fY3VycmVudEdlc3R1cmUuYWNjdW11bGF0ZWRFdmVudE9mZnNldCArPSBldmVudC5k
ZWx0YSgpOwogCiAgICAgYXV0byBjb21iaW5lZFBoYXNlID0gKGV2ZW50LnBoYXNlKCkgPDwgOCkg
fCAoZXZlbnQubW9tZW50dW1QaGFzZSgpKTsKICAgICBtX2N1cnJlbnRMb2dTdGF0ZS50b3RhbEV2
ZW50T2Zmc2V0ICs9IGV2ZW50LmRlbHRhKCkuaGVpZ2h0KCk7Ci0gICAgaWYgKCFpc01vbWVudHVt
RXZlbnREdXJpbmdTeW50aGV0aWNHZXN0dXJlKSB7CisgICAgaWYgKCFzaG91bGRJZ25vcmVJbmNv
bWluZ1BsYXRmb3JtRXZlbnQpIHsKICAgICAgICAgLy8gTG9nIGV2ZW50cyB0aGF0IHdlIGRvbid0
IGJsb2NrIHRvIHRoZSBnZW5lcmF0ZWQgb2Zmc2V0cyBsb2cgYXMgd2VsbCwKICAgICAgICAgLy8g
ZXZlbiB0aG91Z2ggd2UgZGlkbid0IHRlY2huaWNhbGx5IGdlbmVyYXRlIHRoZW0sIGp1c3QgcGFz
c2VkIHRoZW0gdGhyb3VnaC4KICAgICAgICAgbV9jdXJyZW50TG9nU3RhdGUudG90YWxHZW5lcmF0
ZWRPZmZzZXQgKz0gZXZlbnQuZGVsdGEoKS5oZWlnaHQoKTsKQEAgLTEyMSw4ICsxNDQsNyBAQCBi
b29sIE1vbWVudHVtRXZlbnREaXNwYXRjaGVyOjpoYW5kbGVXaGVlbEV2ZW50KFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyIHBhZ2VJZGVudAogICAgIAogI2VuZGlmCiAKLSAgICAvLyBDb25zdW1lIGFu
eSBub3JtYWwgbW9tZW50dW0gZXZlbnRzIHdoaWxlIHdlJ3JlIGluc2lkZSBhIHN5bnRoZXRpYyBt
b21lbnR1bSBnZXN0dXJlLgotICAgIHJldHVybiBpc01vbWVudHVtRXZlbnREdXJpbmdTeW50aGV0
aWNHZXN0dXJlOworICAgIHJldHVybiBzaG91bGRJZ25vcmVJbmNvbWluZ1BsYXRmb3JtRXZlbnQ7
CiB9CiAKIHN0YXRpYyBmbG9hdCBhcHBLaXRTY3JvbGxNdWx0aXBsaWVyRm9yRXZlbnQoY29uc3Qg
V2ViV2hlZWxFdmVudCYgZXZlbnQpCkBAIC0xNzAsNyArMTkyLDggQEAgdm9pZCBNb21lbnR1bUV2
ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2hTeW50aGV0aWNNb21lbnR1bUV2ZW50KFdlYldoZWVsRXZl
bnQ6OlBoYXMKICAgICAgICAgbV9sYXN0SW5jb21pbmdFdmVudC0+bW9kaWZpZXJzKCksCiAgICAg
ICAgIHRpbWUsCiAgICAgICAgIHRpbWUsCi0gICAgICAgIHsgfSk7CisgICAgICAgIHsgfSwKKyAg
ICAgICAgV2ViV2hlZWxFdmVudDo6TW9tZW50dW1FbmRUeXBlOjpVbmtub3duKTsKICAgICBtX2Rp
c3BhdGNoZXIuaW50ZXJuYWxXaGVlbEV2ZW50KG1fY3VycmVudEdlc3R1cmUucGFnZUlkZW50aWZp
ZXIsIHN5bnRoZXRpY0V2ZW50LCBtX2xhc3RSdWJiZXJCYW5kYWJsZUVkZ2VzLCBFdmVudERpc3Bh
dGNoZXI6OldoZWVsRXZlbnRPcmlnaW46Ok1vbWVudHVtRXZlbnREaXNwYXRjaGVyKTsKIAogI2lm
IEVOQUJMRShNT01FTlRVTV9FVkVOVF9ESVNQQVRDSEVSX1RFTVBPUkFSWV9MT0dHSU5HKQpAQCAt
MjIzLDcgKzI0Niw3IEBAIHZvaWQgTW9tZW50dW1FdmVudERpc3BhdGNoZXI6OmRpZEVuZE1vbWVu
dHVtUGhhc2UoKQogICAgIGRpc3BhdGNoU3ludGhldGljTW9tZW50dW1FdmVudChXZWJXaGVlbEV2
ZW50OjpQaGFzZUVuZGVkLCB7IH0pOwogCiAjaWYgRU5BQkxFKE1PTUVOVFVNX0VWRU5UX0RJU1BB
VENIRVJfVEVNUE9SQVJZX0xPR0dJTkcpCi0gICAgUkVMRUFTRV9MT0coU2Nyb2xsQW5pbWF0aW9u
cywgIk1vbWVudHVtRXZlbnREaXNwYXRjaGVyIHNhdyBtb21lbnR1bSBlbmQgcGhhc2Ugd2l0aCB0
b3RhbCBvZmZzZXQgJS4xZiAlLjFmLCBkdXJhdGlvbiAlZiAoZXZlbnQgb2Zmc2V0IHdvdWxkIGhh
dmUgYmVlbiAlLjFmICUuMWYpICh0YWlsIGluZGV4ICVkIG9mICV6dSkiLCBtX2N1cnJlbnRHZXN0
dXJlLmN1cnJlbnRPZmZzZXQud2lkdGgoKSwgbV9jdXJyZW50R2VzdHVyZS5jdXJyZW50T2Zmc2V0
LmhlaWdodCgpLCAoTW9ub3RvbmljVGltZTo6bm93KCkgLSBtX2N1cnJlbnRHZXN0dXJlLnN0YXJ0
VGltZSkuc2Vjb25kcygpLCBtX2N1cnJlbnRHZXN0dXJlLmFjY3VtdWxhdGVkRXZlbnRPZmZzZXQu
d2lkdGgoKSwgbV9jdXJyZW50R2VzdHVyZS5hY2N1bXVsYXRlZEV2ZW50T2Zmc2V0LmhlaWdodCgp
LCBtX2N1cnJlbnRHZXN0dXJlLmN1cnJlbnRUYWlsRGVsdGFJbmRleCwgbV9jdXJyZW50R2VzdHVy
ZS50YWlsRGVsdGFUYWJsZS5zaXplKCkpOworICAgIFJFTEVBU0VfTE9HKFNjcm9sbEFuaW1hdGlv
bnMsICJNb21lbnR1bUV2ZW50RGlzcGF0Y2hlciBlbmRpbmcgc3ludGhldGljIG1vbWVudHVtIHBo
YXNlIHdpdGggdG90YWwgb2Zmc2V0ICUuMWYgJS4xZiwgZHVyYXRpb24gJWYgKGV2ZW50IG9mZnNl
dCB3b3VsZCBoYXZlIGJlZW4gJS4xZiAlLjFmKSAodGFpbCBpbmRleCAlZCBvZiAlenUpIiwgbV9j
dXJyZW50R2VzdHVyZS5jdXJyZW50T2Zmc2V0LndpZHRoKCksIG1fY3VycmVudEdlc3R1cmUuY3Vy
cmVudE9mZnNldC5oZWlnaHQoKSwgKE1vbm90b25pY1RpbWU6Om5vdygpIC0gbV9jdXJyZW50R2Vz
dHVyZS5zdGFydFRpbWUpLnNlY29uZHMoKSwgbV9jdXJyZW50R2VzdHVyZS5hY2N1bXVsYXRlZEV2
ZW50T2Zmc2V0LndpZHRoKCksIG1fY3VycmVudEdlc3R1cmUuYWNjdW11bGF0ZWRFdmVudE9mZnNl
dC5oZWlnaHQoKSwgbV9jdXJyZW50R2VzdHVyZS5jdXJyZW50VGFpbERlbHRhSW5kZXgsIG1fY3Vy
cmVudEdlc3R1cmUudGFpbERlbHRhVGFibGUuc2l6ZSgpKTsKICAgICBtX2Rpc3BhdGNoZXIucXVl
dWUoKS5kaXNwYXRjaEFmdGVyKDFfcywgW3RoaXNdIHsKICAgICAgICAgZmx1c2hMb2coKTsKICAg
ICB9KTsKQEAgLTI5OSw3ICszMjIsNyBAQCB2b2lkIE1vbWVudHVtRXZlbnREaXNwYXRjaGVyOjpw
YWdlU2NyZWVuRGlkQ2hhbmdlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRAogICAgICAg
ICBzdGFydERpc3BsYXlMaW5rKCk7CiB9CiAKLVdlYkNvcmU6OkZsb2F0U2l6ZSBNb21lbnR1bUV2
ZW50RGlzcGF0Y2hlcjo6Y29uc3VtZURlbHRhRm9yQ3VycmVudFRpbWUoKQorc3RkOjpvcHRpb25h
bDxXZWJDb3JlOjpGbG9hdFNpemU+IE1vbWVudHVtRXZlbnREaXNwYXRjaGVyOjpjb25zdW1lRGVs
dGFGb3JDdXJyZW50VGltZSgpCiB7CiAgICAgV2ViQ29yZTo6RmxvYXRTaXplIGRlbHRhOwogCkBA
IC0zMTEsNyArMzM0LDcgQEAgV2ViQ29yZTo6RmxvYXRTaXplIE1vbWVudHVtRXZlbnREaXNwYXRj
aGVyOjpjb25zdW1lRGVsdGFGb3JDdXJyZW50VGltZSgpCiAgICAgICAgIGlmIChtX2N1cnJlbnRH
ZXN0dXJlLmN1cnJlbnRUYWlsRGVsdGFJbmRleCA8IG1fY3VycmVudEdlc3R1cmUudGFpbERlbHRh
VGFibGUuc2l6ZSgpKQogICAgICAgICAgICAgZGVsdGEgPSAtbV9jdXJyZW50R2VzdHVyZS50YWls
RGVsdGFUYWJsZVttX2N1cnJlbnRHZXN0dXJlLmN1cnJlbnRUYWlsRGVsdGFJbmRleCsrXTsKICAg
ICAgICAgZWxzZQotICAgICAgICAgICAgZGVsdGEgPSB7IH07CisgICAgICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OwogICAgIH0KIAogICAgIG1fY3VycmVudEdlc3R1cmUuY3VycmVudE9mZnNl
dCArPSBkZWx0YTsKQEAgLTMzMSw3ICszNTQsMTYgQEAgdm9pZCBNb21lbnR1bUV2ZW50RGlzcGF0
Y2hlcjo6ZGlzcGxheVdhc1JlZnJlc2hlZChXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlJRCBkaXMK
ICAgICBpZiAoIWRpc3BsYXlQcm9wZXJ0aWVzIHx8IGRpc3BsYXlJRCAhPSBkaXNwbGF5UHJvcGVy
dGllcy0+ZGlzcGxheUlEKQogICAgICAgICByZXR1cm47CiAKLSAgICBkaXNwYXRjaFN5bnRoZXRp
Y01vbWVudHVtRXZlbnQoV2ViV2hlZWxFdmVudDo6UGhhc2VDaGFuZ2VkLCBjb25zdW1lRGVsdGFG
b3JDdXJyZW50VGltZSgpKTsKKyAgICBhdXRvIGRlbHRhID0gY29uc3VtZURlbHRhRm9yQ3VycmVu
dFRpbWUoKTsKKyAgICBpZiAoIWRlbHRhKSB7CisjaWYgRU5BQkxFKE1PTUVOVFVNX0VWRU5UX0RJ
U1BBVENIRVJfVEVNUE9SQVJZX0xPR0dJTkcpCisgICAgICAgIFJFTEVBU0VfTE9HKFNjcm9sbEFu
aW1hdGlvbnMsICJNb21lbnR1bUV2ZW50RGlzcGF0Y2hlciBjb21wbGV0ZWQgc3ludGhldGljIG1v
bWVudHVtIHBoYXNlIik7CisjZW5kaWYKKyAgICAgICAgZGlkRW5kTW9tZW50dW1QaGFzZSgpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgZGlzcGF0Y2hTeW50aGV0aWNNb21lbnR1bUV2
ZW50KFdlYldoZWVsRXZlbnQ6OlBoYXNlQ2hhbmdlZCwgKmRlbHRhKTsKIH0KIAogdm9pZCBNb21l
bnR1bUV2ZW50RGlzcGF0Y2hlcjo6ZGlkUmVjZWl2ZVNjcm9sbEV2ZW50V2l0aEludGVydmFsKFdl
YkNvcmU6OkZsb2F0U2l6ZSBzaXplLCBTZWNvbmRzIGZyYW1lSW50ZXJ2YWwpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Nb21lbnR1bUV2ZW50RGlzcGF0Y2hl
ci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvTW9tZW50dW1FdmVudERpc3Bh
dGNoZXIuaAppbmRleCAxMDk2MWYwMmQ5Y2Q4ZmQ1YjBhNTM3NDA0YjBlMjJlZWI4NzhlNTYwLi4z
ODNmNzVlMTA2OGQzNjA1MDEyMGFlZTc5YWFiZWU1NzlkODg4ZWNmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Nb21lbnR1bUV2ZW50RGlzcGF0Y2hlci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL01vbWVudHVtRXZlbnREaXNwYXRj
aGVyLmgKQEAgLTg2LDcgKzg2LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGVxdWFsaXplVGFpbEdh
cHMoKTsKIAogICAgIC8vIE9uY2UgY29uc3VtZWQsIHRoaXMgZGVsdGEgKm11c3QqIGJlIGRpc3Bh
dGNoZWQgaW4gYW4gZXZlbnQuCi0gICAgV2ViQ29yZTo6RmxvYXRTaXplIGNvbnN1bWVEZWx0YUZv
ckN1cnJlbnRUaW1lKCk7CisgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGbG9hdFNpemU+IGNv
bnN1bWVEZWx0YUZvckN1cnJlbnRUaW1lKCk7CiAKICAgICBXZWJDb3JlOjpGbG9hdFNpemUgb2Zm
c2V0QXRUaW1lKFNlY29uZHMpOwogICAgIHN0ZDo6cGFpcjxXZWJDb3JlOjpGbG9hdFNpemUsIFdl
YkNvcmU6OkZsb2F0U2l6ZT4gY29tcHV0ZU5leHREZWx0YShXZWJDb3JlOjpGbG9hdFNpemUgY3Vy
cmVudFVuYWNjZWxlcmF0ZWREZWx0YSk7CkBAIC0xMjUsNiArMTI1LDcgQEAgcHJpdmF0ZToKICAg
ICBzdGQ6Om9wdGlvbmFsPFdhbGxUaW1lPiBtX2xhc3RTY3JvbGxUaW1lc3RhbXA7CiAgICAgc3Rk
OjpvcHRpb25hbDxXZWJXaGVlbEV2ZW50PiBtX2xhc3RJbmNvbWluZ0V2ZW50OwogICAgIFdlYkNv
cmU6OlJlY3RFZGdlczxib29sPiBtX2xhc3RSdWJiZXJCYW5kYWJsZUVkZ2VzOworICAgIGJvb2wg
bV9pc0luT3ZlcnJpZGRlblBsYXRmb3JtTW9tZW50dW1HZXN0dXJlIHsgZmFsc2UgfTsKIAogICAg
IHN0cnVjdCB7CiAgICAgICAgIGJvb2wgYWN0aXZlIHsgZmFsc2UgfTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447687</attachid>
            <date>2021-12-20 21:30:34 -0800</date>
            <delta_ts>2022-01-04 17:00:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234535-20211220213033.patch</filename>
            <type>text/plain</type>
            <size>24950</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3Mjk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDk4M2QxNzMxMWZmZTE5MTRlYzc2YmY5
Nzk1Nzc1YTkyMTdmNGQ2YTMuLjhjMGVkYzc5YzMwYzM1NTdlODc4NTVjM2NhNTI4NTMzMGNkZmNl
ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMTItMjAgIFRpbSBIb3J0b24gIDx0aW1vdGh5
X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgTW9tZW50dW0gRXZlbnQgRGlzcGF0Y2hlcjog
TW9tZW50dW0gdGFpbHMgbWF5IGdldCB0cnVuY2F0ZWQgaWYgdGhlIGR1cmF0aW9uIHJ1bnMgbG9u
Z2VyIHRoYW4gdGhlIHN5c3RlbSdzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzQ1MzUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg2MzM4MTA1Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICAqIHd0Zi9QbGF0
Zm9ybUhhdmUuaDoKKyAgICAgICAgQWRkIGEgSEFWRSBmb3Iga0lPSElERXZlbnRTY3JvbGxNb21l
bnR1bUludGVycnVwdGVkLgorCiAyMDIxLTEyLTIwICBBbGV4ZXkgU2h2YXlrYSAgPGFzaHZheWth
QGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViSURMXSBjb252ZXJ0VmFyaWFkaWNBcmd1bWVudHMo
KSBzaG91bGQgcmV0dXJuIGEgRml4ZWRWZWN0b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNzljMDc5YmYwMjFjOTlm
OTU5NTI2ZDRjMDBkN2Y2MWVmYjE4MDkyNy4uNTA1NzJiNjUwM2JmNTYxMDUwZjliOGNmN2MwYjM0
MTcyNzYwOWY3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3NCBAQAorMjAyMS0xMi0yMCAgVGltIEhv
cnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBNb21lbnR1bSBFdmVu
dCBEaXNwYXRjaGVyOiBNb21lbnR1bSB0YWlscyBtYXkgZ2V0IHRydW5jYXRlZCBpZiB0aGUgZHVy
YXRpb24gcnVucyBsb25nZXIgdGhhbiB0aGUgc3lzdGVtJ3MKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDUzNQorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vODYzMzgxMDU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAg
ICAgIEN1cnJlbnRseSwgc3ludGhldGljIG1vbWVudHVtIGRpc3BhdGNoIGlzIHN0cmljdGx5IHRp
ZWQgdG8gdGhlIGR1cmF0aW9uCisgICAgICAgIG9mIHRoZSByZWFsIHBsYXRmb3JtIG1vbWVudHVt
IHBoYXNlLCB3aGljaCBoYXMgdHdvIHVuZm9ydHVuYXRlIGltcGxpY2F0aW9uczoKKworICAgICAg
ICAtIGlmIG91ciBwaGFzZSBydW5zIHNob3J0ZXIgdGhhbiB0aGUgcGxhdGZvcm0gcGhhc2UsIHdl
J2xsIGtlZXAgZGlzcGF0Y2hpbmcKKyAgICAgICAgICB6ZXJvLWRlbHRhIGV2ZW50cyB1bnRpbCB0
aGUgcGxhdGZvcm0gbW9tZW50dW0gZW5kcworCisgICAgICAgIC0gbW9yZSBpbXBvcnRhbnRseSwg
aWYgb3VyIHBoYXNlIHJ1bnMgbG9uZ2VyLCBpdCB3aWxsIGJlIGFicnVwdGx5IHRlcm1pbmF0ZWQK
KyAgICAgICAgICB3aGVuIHRoZSBwbGF0Zm9ybSBtb21lbnR1bSBlbmRzCisKKyAgICAgICAgSW4g
cHJhY3RpY2UsIG91ciBzeW50aGV0aWMgcGhhc2UgaXMgdmVyeSBjbG9zZSBpbiBkdXJhdGlvbiB0
byB0aGUgc3lzdGVtIG9uZSwKKyAgICAgICAgc28gdGhlIGltcGFjdCBpcyBtaW5pbWFsLiBCdXQs
IHRvIGJlIHNhZmUsIGRpc2VudGFnbGUgdGhlIHR3byBkdXJhdGlvbnMsCisgICAgICAgIHVzaW5n
IGEgbmV3IGJpdCBmcm9tIHRoZSBwbGF0Zm9ybSB0byBkZXRlcm1pbmUgaWYgdGhlIHN5c3RlbSBt
b21lbnR1bSBwaGFzZQorICAgICAgICB3YXMgaW50ZXJydXB0ZWQgYnkgdGhlIHVzZXIgKGUuZy4g
YnkgdGFwcGluZyB0aGUgdHJhY2twYWQpIG9yIG5hdHVyYWxseSwKKyAgICAgICAgYW5kIGlnbm9y
aW5nIHRoZSBlbmRlZCBldmVudCBpbiB0aGUgbmF0dXJhbCBjYXNlLCBhbGxvd2luZyBzeW50aGV0
aWMKKyAgICAgICAgZXZlbnRzIHRvIGNvbnRpbnVlIGJlaW5nIGRpc3BhdGNoZWQuCisKKyAgICAg
ICAgKiBTaGFyZWQvV2ViV2hlZWxFdmVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYldoZWVs
RXZlbnQ6OldlYldoZWVsRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJXaGVlbEV2ZW50Ojpl
bmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJXaGVlbEV2ZW50OjpkZWNvZGUpOgor
ICAgICAgICAqIFNoYXJlZC9XZWJXaGVlbEV2ZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYldo
ZWVsRXZlbnQ6Om1vbWVudHVtRW5kVHlwZSBjb25zdCk6CisgICAgICAgICogU2hhcmVkL1dlYldo
ZWVsRXZlbnRDb2FsZXNjZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJXaGVlbEV2ZW50Q29h
bGVzY2VyOjpjb2FsZXNjZSk6CisgICAgICAgIFBsdW1iIG1vbWVudHVtRW5kVHlwZSBhbG9uZyBv
biBXZWJXaGVlbEV2ZW50LiBQbGF0Zm9ybXMgdGhhdCBkb24ndAorICAgICAgICBwcm92aWRlIGlu
Zm9ybWF0aW9uIGFib3V0IHRoZSBpbnRlcnJ1cHRpb24gcmVhc29uIHdpbGwgYWx3YXlzIHNheSBV
bmtub3duLgorCisgICAgICAgICogU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkubW06CisgICAg
ICAgIChXZWJLaXQ6OldlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViV2hlZWxFdmVudCk6CisgICAg
ICAgIE9ubHkgYm90aGVyIGxvb2tpbmcgdXAgdGhlIENHRXZlbnQvSU9ISURFdmVudCBvbmNlLCBh
bmQgZXh0cmFjdCBhbGwKKyAgICAgICAgcmVsZXZhbnQgZGV0YWlscyBpbiBvbmUgZ28uCisKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvTW9tZW50dW1FdmVudERpc3BhdGNoZXIuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpNb21lbnR1bUV2ZW50RGlzcGF0Y2hlcjo6aGFuZGxlV2hlZWxFdmVu
dCk6CisgICAgICAgIERvbid0IGludGVycnVwdCB0aGUgc3ludGhldGljIG1vbWVudHVtIHBoYXNl
IGlmIHRoZSBtb21lbnR1bS1lbmRlZCBldmVudAorICAgICAgICBjb21lcyBmcm9tIHRoZSBuYXR1
cmFsIGVuZCBvZiB0aGUgZGVjZWxlcmF0aW9uIGluc3RlYWQgb2YgYW4gaW50ZXJydXB0aW9uCisg
ICAgICAgIChvciBhbiB1bmtub3duIHJlYXNvbikuCisKKyAgICAgICAgS2VlcCB0cmFjayBvZiB3
aGV0aGVyIHdlJ3JlIGluIHRoZSBtaWRkbGUgb2YgYSBwbGF0Zm9ybSBtb21lbnR1bSBwaGFzZQor
ICAgICAgICB0aGF0IHdlIGNob3NlIChhdCBtb21lbnR1bS1iZWdpbiB0aW1lKSB0byBvdmVycmlk
ZS4gV2hlbiBkZWNpZGluZworICAgICAgICB3aGV0aGVyIHRvIGVhdCBhbiBpbmNvbWluZyBldmVu
dCwgdGFrZSAqYm90aCogdGhpcyBuZXcgYml0IGFuZCB3aGV0aGVyCisgICAgICAgIHdlIGFyZSBj
dXJyZW50bHkgaW4gdGhlIG1pZGRsZSBvZiBhIHN5bnRoZXRpYyBwaGFzZSBpbnRvIGFjY291bnQu
IEl0CisgICAgICAgIGlzIGltcG9ydGFudCB0byBjb250aW51ZSBlYXRpbmcgaW5jb21pbmcgZXZl
bnRzIGluIHRoZSBjYXNlIHdoZXJlIAorICAgICAgICB0aGUgc3ludGhldGljIHBoYXNlIGVuZGVk
IGVhcmx5IChzbyBgYWN0aXZlYCBiZWNhbWUgZmFsc2UpIGJ1dCB0aGUKKyAgICAgICAgcGxhdGZv
cm0gcGhhc2UgY29udGludWVzLgorCisgICAgICAgIChXZWJLaXQ6Ok1vbWVudHVtRXZlbnREaXNw
YXRjaGVyOjpkaXNwYXRjaFN5bnRoZXRpY01vbWVudHVtRXZlbnQpOgorICAgICAgICAoV2ViS2l0
OjpNb21lbnR1bUV2ZW50RGlzcGF0Y2hlcjo6ZGlkRW5kTW9tZW50dW1QaGFzZSk6CisgICAgICAg
IEFkanVzdCBzb21lIGxvZ2dpbmcgd29yZGluZyB0byBiZSBtb3JlIHByZWNpc2UuCisKKyAgICAg
ICAgKFdlYktpdDo6TW9tZW50dW1FdmVudERpc3BhdGNoZXI6OnNldFNjcm9sbGluZ0FjY2VsZXJh
dGlvbkN1cnZlKToKKyAgICAgICAgTWFrZSB0aGlzIGxvZyBwdWJsaWMgc28gdGhhdCB0aGUgY3Vy
dmUgdmFsdWUgaXMgdmlzaWJsZSBpbiBsb2dzLgorCisgICAgICAgIChXZWJLaXQ6Ok1vbWVudHVt
RXZlbnREaXNwYXRjaGVyOjpjb25zdW1lRGVsdGFGb3JDdXJyZW50VGltZSk6CisgICAgICAgIE1h
a2UgY29uc3VtZURlbHRhRm9yQ3VycmVudFRpbWUgaW5mb3JtIHRoZSBjbGllbnQgdmlhIGFuIG9w
dGlvbmFsIHdoZW4KKyAgICAgICAgd2UgYXJlIGF0IHRoZSBlbmQgb2YgdGhlIGRlbHRhIHRhYmxl
LgorCisgICAgICAgIChXZWJLaXQ6Ok1vbWVudHVtRXZlbnREaXNwYXRjaGVyOjpkaXNwbGF5V2Fz
UmVmcmVzaGVkKToKKyAgICAgICAgU3RvcCB0aGUgc3ludGhldGljIG1vbWVudHVtIHBoYXNlIGFz
IHNvb24gYXMgd2UgcnVuIG91dCBvZiBkZWx0YXMuCisKKyAgICAgICAgKFdlYktpdDo6TW9tZW50
dW1FdmVudERpc3BhdGNoZXI6OmNvbXB1dGVOZXh0RGVsdGEpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9Nb21lbnR1bUV2ZW50RGlzcGF0Y2hlci5oOgorCiAyMDIxLTEyLTIwICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBNb2RhbENv
bnRhaW5lckNvbnRyb2xDbGFzc2lmaWVyIGFuZCB1c2UgaXQgdG8gaW1wbGVtZW50IGNsYXNzaWZ5
TW9kYWxDb250YWluZXJDb250cm9scygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybUhhdmUuaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCmluZGV4IGRiOWJkODRl
N2VkNWM5MDdiZDM0ZGIwOWFmNmViOWRkMGM3MmQwNTguLjFmNDhjZTEyNWJjODhkOGJkYTYxMDMw
N2ExNmM2MzQ5MmQ2NmY5NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2
ZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCkBAIC0xMTI3LDMgKzExMjcs
NyBAQAogI2lmIFBMQVRGT1JNKENPQ09BKQogI2RlZmluZSBIQVZFX0NGQVVUT1JFTEVBU0UgMQog
I2VuZGlmCisKKyNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NQVhfQUxM
T1dFRCA+PSAxMjAyMDAKKyNkZWZpbmUgSEFWRV9QTEFURk9STV9TQ1JPTExfTU9NRU5UVU1fSU5U
RVJSVVBUSU9OX1JFQVNPTiAxCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYldoZWVsRXZlbnQuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViV2hlZWxFdmVu
dC5jcHAKaW5kZXggNTFiMmI4ZTFiNWM0ZDk3MDY0ZGFhMDJhNDQ4NTQyNmJkM2ExMjNhMS4uNDM1
ZjcwMmQxMjdmODc4YTU1ZGZkMTU4NGJhMWJjZWM4Y2Q2ZTU3MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViV2hlZWxFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViV2hlZWxFdmVudC5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgV2ViV2hlZWxFdmVudDo6V2Vi
V2hlZWxFdmVudChUeXBlIHR5cGUsIGNvbnN0IEludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgSW50
UG9pbnQKIH0KIAogI2lmIFBMQVRGT1JNKENPQ09BKQotV2ViV2hlZWxFdmVudDo6V2ViV2hlZWxF
dmVudChUeXBlIHR5cGUsIGNvbnN0IEludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgSW50UG9pbnQm
IGdsb2JhbFBvc2l0aW9uLCBjb25zdCBGbG9hdFNpemUmIGRlbHRhLCBjb25zdCBGbG9hdFNpemUm
IHdoZWVsVGlja3MsIEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBib29sIGRpcmVjdGlvbkludmVy
dGVkRnJvbURldmljZSwgUGhhc2UgcGhhc2UsIFBoYXNlIG1vbWVudHVtUGhhc2UsIGJvb2wgaGFz
UHJlY2lzZVNjcm9sbGluZ0RlbHRhcywgdWludDMyX3Qgc2Nyb2xsQ291bnQsIGNvbnN0IFdlYkNv
cmU6OkZsb2F0U2l6ZSYgdW5hY2NlbGVyYXRlZFNjcm9sbGluZ0RlbHRhLCBPcHRpb25TZXQ8TW9k
aWZpZXI+IG1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wLCBXYWxsVGltZSBpb0hJREV2ZW50
VGltZXN0YW1wLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0U2l6ZT4gcmF3UGxhdGZvcm1E
ZWx0YSkKK1dlYldoZWVsRXZlbnQ6OldlYldoZWVsRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBJbnRQ
b2ludCYgcG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgRmxv
YXRTaXplJiBkZWx0YSwgY29uc3QgRmxvYXRTaXplJiB3aGVlbFRpY2tzLCBHcmFudWxhcml0eSBn
cmFudWxhcml0eSwgYm9vbCBkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UsIFBoYXNlIHBoYXNl
LCBQaGFzZSBtb21lbnR1bVBoYXNlLCBib29sIGhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMsIHVp
bnQzMl90IHNjcm9sbENvdW50LCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHVuYWNjZWxlcmF0
ZWRTY3JvbGxpbmdEZWx0YSwgT3B0aW9uU2V0PE1vZGlmaWVyPiBtb2RpZmllcnMsIFdhbGxUaW1l
IHRpbWVzdGFtcCwgV2FsbFRpbWUgaW9ISURFdmVudFRpbWVzdGFtcCwgc3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpGbG9hdFNpemU+IHJhd1BsYXRmb3JtRGVsdGEsIE1vbWVudHVtRW5kVHlwZSBtb21l
bnR1bUVuZFR5cGUpCiAgICAgOiBXZWJFdmVudCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFtcCkK
ICAgICAsIG1fcG9zaXRpb24ocG9zaXRpb24pCiAgICAgLCBtX2dsb2JhbFBvc2l0aW9uKGdsb2Jh
bFBvc2l0aW9uKQpAQCAtNTMsNiArNTMsNyBAQCBXZWJXaGVlbEV2ZW50OjpXZWJXaGVlbEV2ZW50
KFR5cGUgdHlwZSwgY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2ludAogICAg
ICwgbV9ncmFudWxhcml0eShncmFudWxhcml0eSkKICAgICAsIG1fcGhhc2UocGhhc2UpCiAgICAg
LCBtX21vbWVudHVtUGhhc2UobW9tZW50dW1QaGFzZSkKKyAgICAsIG1fbW9tZW50dW1FbmRUeXBl
KG1vbWVudHVtRW5kVHlwZSkKICAgICAsIG1fZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlKGRp
cmVjdGlvbkludmVydGVkRnJvbURldmljZSkKICAgICAsIG1faGFzUHJlY2lzZVNjcm9sbGluZ0Rl
bHRhcyhoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzKQogICAgICwgbV9pb0hJREV2ZW50VGltZXN0
YW1wKGlvSElERXZlbnRUaW1lc3RhbXApCkBAIC04Nyw2ICs4OCw3IEBAIHZvaWQgV2ViV2hlZWxF
dmVudDo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8
IG1fZGVsdGE7CiAgICAgZW5jb2RlciA8PCBtX3doZWVsVGlja3M7CiAgICAgZW5jb2RlciA8PCBt
X2dyYW51bGFyaXR5OworICAgIGVuY29kZXIgPDwgbV9tb21lbnR1bUVuZFR5cGU7CiAgICAgZW5j
b2RlciA8PCBtX2RpcmVjdGlvbkludmVydGVkRnJvbURldmljZTsKICNpZiBQTEFURk9STShDT0NP
QSkgfHwgUExBVEZPUk0oR1RLKSB8fCBVU0UoTElCV1BFKQogICAgIGVuY29kZXIgPDwgbV9waGFz
ZTsKQEAgLTExNSw2ICsxMTcsOCBAQCBib29sIFdlYldoZWVsRXZlbnQ6OmRlY29kZShJUEM6OkRl
Y29kZXImIGRlY29kZXIsIFdlYldoZWVsRXZlbnQmIHQpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHQubV9ncmFudWxhcml0eSkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHQubV9tb21lbnR1bUVuZFR5cGUpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh0Lm1fZGlyZWN0
aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogI2lmIFBMQVRG
T1JNKENPQ09BKSB8fCBQTEFURk9STShHVEspIHx8IFVTRShMSUJXUEUpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJXaGVlbEV2ZW50LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJXaGVlbEV2ZW50LmgKaW5kZXggYTllYzhlOGFmZjAwNmY2ZDUzOWZiODhiNzM2OTdkNjM2
OWFlY2E4NC4uODIxZWUyMjAxMjgzMzY4YjVjOTk1N2YwZGExNjNkNGUxYzNiMDYzMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViV2hlZWxFdmVudC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYldoZWVsRXZlbnQuaApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUg
IldlYkV2ZW50LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFNpemUuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0ludFBvaW50Lmg+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KIAogbmFtZXNw
YWNlIFdlYktpdCB7CiAKQEAgLTQ5LDExICs1MCwxNyBAQCBwdWJsaWM6CiAgICAgICAgIFBoYXNl
TWF5QmVnaW4gICAgPSAxIDw8IDUsCiAgICAgfTsKIAorICAgIGVudW0gY2xhc3MgTW9tZW50dW1F
bmRUeXBlIDogdWludDhfdCB7CisgICAgICAgIFVua25vd24sCisgICAgICAgIEludGVycnVwdGVk
LAorICAgICAgICBOYXR1cmFsLAorICAgIH07CisKICAgICBXZWJXaGVlbEV2ZW50KCkgPSBkZWZh
dWx0OwogCiAgICAgV2ViV2hlZWxFdmVudChUeXBlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYg
cG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3Qg
V2ViQ29yZTo6RmxvYXRTaXplJiBkZWx0YSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB3aGVl
bFRpY2tzLCBHcmFudWxhcml0eSwgT3B0aW9uU2V0PE1vZGlmaWVyPiwgV2FsbFRpbWUgdGltZXN0
YW1wKTsKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBXZWJXaGVlbEV2ZW50KFR5cGUsIGNvbnN0
IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGds
b2JhbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGRlbHRhLCBjb25zdCBXZWJD
b3JlOjpGbG9hdFNpemUmIHdoZWVsVGlja3MsIEdyYW51bGFyaXR5LCBib29sIGRpcmVjdGlvbklu
dmVydGVkRnJvbURldmljZSwgUGhhc2UsIFBoYXNlIG1vbWVudHVtUGhhc2UsIGJvb2wgaGFzUHJl
Y2lzZVNjcm9sbGluZ0RlbHRhcywgdWludDMyX3Qgc2Nyb2xsQ291bnQsIGNvbnN0IFdlYkNvcmU6
OkZsb2F0U2l6ZSYgdW5hY2NlbGVyYXRlZFNjcm9sbGluZ0RlbHRhLCBPcHRpb25TZXQ8TW9kaWZp
ZXI+LCBXYWxsVGltZSB0aW1lc3RhbXAsIFdhbGxUaW1lIGlvSElERXZlbnRUaW1lc3RhbXAsIHN0
ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRTaXplPiByYXdQbGF0Zm9ybURlbHRhKTsKKyAgICBX
ZWJXaGVlbEV2ZW50KFR5cGUsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbiwgY29u
c3QgV2ViQ29yZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9h
dFNpemUmIGRlbHRhLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHdoZWVsVGlja3MsIEdyYW51
bGFyaXR5LCBib29sIGRpcmVjdGlvbkludmVydGVkRnJvbURldmljZSwgUGhhc2UsIFBoYXNlIG1v
bWVudHVtUGhhc2UsIGJvb2wgaGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcywgdWludDMyX3Qgc2Ny
b2xsQ291bnQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgdW5hY2NlbGVyYXRlZFNjcm9sbGlu
Z0RlbHRhLCBPcHRpb25TZXQ8TW9kaWZpZXI+LCBXYWxsVGltZSB0aW1lc3RhbXAsIFdhbGxUaW1l
IGlvSElERXZlbnRUaW1lc3RhbXAsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRTaXplPiBy
YXdQbGF0Zm9ybURlbHRhLCBNb21lbnR1bUVuZFR5cGUpOwogI2VsaWYgUExBVEZPUk0oR1RLKSB8
fCBVU0UoTElCV1BFKQogICAgIFdlYldoZWVsRXZlbnQoVHlwZSwgY29uc3QgV2ViQ29yZTo6SW50
UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24s
IGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgZGVsdGEsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6
ZSYgd2hlZWxUaWNrcywgUGhhc2UsIFBoYXNlIG1vbWVudHVtUGhhc2UsIEdyYW51bGFyaXR5LCBi
b29sIGhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMsIE9wdGlvblNldDxNb2RpZmllcj4sIFdhbGxU
aW1lIHRpbWVzdGFtcCk7CiAjZW5kaWYKQEAgLTY2LDYgKzczLDcgQEAgcHVibGljOgogICAgIGJv
b2wgZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlKCkgY29uc3QgeyByZXR1cm4gbV9kaXJlY3Rp
b25JbnZlcnRlZEZyb21EZXZpY2U7IH0KICAgICBQaGFzZSBwaGFzZSgpIGNvbnN0IHsgcmV0dXJu
IHN0YXRpY19jYXN0PFBoYXNlPihtX3BoYXNlKTsgfQogICAgIFBoYXNlIG1vbWVudHVtUGhhc2Uo
KSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxQaGFzZT4obV9tb21lbnR1bVBoYXNlKTsgfQor
ICAgIE1vbWVudHVtRW5kVHlwZSBtb21lbnR1bUVuZFR5cGUoKSBjb25zdCB7IHJldHVybiBtX21v
bWVudHVtRW5kVHlwZTsgfQogI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShHVEspIHx8
IFVTRShMSUJXUEUpCiAgICAgYm9vbCBoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzKCkgY29uc3Qg
eyByZXR1cm4gbV9oYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzOyB9CiAjZW5kaWYKQEAgLTkwLDYg
Kzk4LDcgQEAgcHJpdmF0ZToKICAgICB1aW50MzJfdCBtX3BoYXNlIHsgUGhhc2U6OlBoYXNlTm9u
ZSB9OwogICAgIHVpbnQzMl90IG1fbW9tZW50dW1QaGFzZSB7IFBoYXNlOjpQaGFzZU5vbmUgfTsK
IAorICAgIE1vbWVudHVtRW5kVHlwZSBtX21vbWVudHVtRW5kVHlwZSB7IE1vbWVudHVtRW5kVHlw
ZTo6VW5rbm93biB9OwogICAgIGJvb2wgbV9kaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UgeyBm
YWxzZSB9OwogI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShHVEspIHx8IFVTRShMSUJX
UEUpCiAgICAgYm9vbCBtX2hhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMgeyBmYWxzZSB9OwpAQCAt
MTAzLDMgKzExMiwxNiBAQCBwcml2YXRlOgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
K25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYktpdDo6
V2ViV2hlZWxFdmVudDo6TW9tZW50dW1FbmRUeXBlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51
bVZhbHVlczwKKyAgICBXZWJLaXQ6OldlYldoZWVsRXZlbnQ6Ok1vbWVudHVtRW5kVHlwZSwKKyAg
ICBXZWJLaXQ6OldlYldoZWVsRXZlbnQ6Ok1vbWVudHVtRW5kVHlwZTo6VW5rbm93biwKKyAgICBX
ZWJLaXQ6OldlYldoZWVsRXZlbnQ6Ok1vbWVudHVtRW5kVHlwZTo6SW50ZXJydXB0ZWQsCisgICAg
V2ViS2l0OjpXZWJXaGVlbEV2ZW50OjpNb21lbnR1bUVuZFR5cGU6Ok5hdHVyYWwKKyAgICA+Owor
fTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJXaGVlbEV2ZW50Q29hbGVzY2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYldo
ZWVsRXZlbnRDb2FsZXNjZXIuY3BwCmluZGV4IGI5NmExNDE4NmE3YWFkNzBmZjQ1MzJhZTU3MGI3
YTYxOWQxZWM3MjAuLjRkNTQyN2NlNjMwYzYxMDZmYTEwOTczZDcxODkwMmQ0ZTU1ZDZjNWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYldoZWVsRXZlbnRDb2FsZXNjZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYldoZWVsRXZlbnRDb2FsZXNjZXIuY3BwCkBA
IC04MSw3ICs4MSw3IEBAIFdlYldoZWVsRXZlbnQgV2ViV2hlZWxFdmVudENvYWxlc2Nlcjo6Y29h
bGVzY2UoY29uc3QgV2ViV2hlZWxFdmVudCYgYSwgY29uc3QgV2ViCiAgICAgaWYgKGEucmF3UGxh
dGZvcm1EZWx0YSgpICYmIGIucmF3UGxhdGZvcm1EZWx0YSgpKQogICAgICAgICBtZXJnZWRSYXdQ
bGF0Zm9ybVNjcm9sbGluZ0RlbHRhID0gYS5yYXdQbGF0Zm9ybURlbHRhKCkudmFsdWUoKSArIGIu
cmF3UGxhdGZvcm1EZWx0YSgpLnZhbHVlKCk7CiAKLSAgICByZXR1cm4gV2ViV2hlZWxFdmVudChX
ZWJFdmVudDo6V2hlZWwsIGIucG9zaXRpb24oKSwgYi5nbG9iYWxQb3NpdGlvbigpLCBtZXJnZWRE
ZWx0YSwgbWVyZ2VkV2hlZWxUaWNrcywgYi5ncmFudWxhcml0eSgpLCBiLmRpcmVjdGlvbkludmVy
dGVkRnJvbURldmljZSgpLCBiLnBoYXNlKCksIGIubW9tZW50dW1QaGFzZSgpLCBiLmhhc1ByZWNp
c2VTY3JvbGxpbmdEZWx0YXMoKSwgYi5zY3JvbGxDb3VudCgpLCBtZXJnZWRVbmFjY2VsZXJhdGVk
U2Nyb2xsaW5nRGVsdGEsIGIubW9kaWZpZXJzKCksIGIudGltZXN0YW1wKCksIGIuaW9ISURFdmVu
dFRpbWVzdGFtcCgpLCBtZXJnZWRSYXdQbGF0Zm9ybVNjcm9sbGluZ0RlbHRhKTsKKyAgICByZXR1
cm4gV2ViV2hlZWxFdmVudChXZWJFdmVudDo6V2hlZWwsIGIucG9zaXRpb24oKSwgYi5nbG9iYWxQ
b3NpdGlvbigpLCBtZXJnZWREZWx0YSwgbWVyZ2VkV2hlZWxUaWNrcywgYi5ncmFudWxhcml0eSgp
LCBiLmRpcmVjdGlvbkludmVydGVkRnJvbURldmljZSgpLCBiLnBoYXNlKCksIGIubW9tZW50dW1Q
aGFzZSgpLCBiLmhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMoKSwgYi5zY3JvbGxDb3VudCgpLCBt
ZXJnZWRVbmFjY2VsZXJhdGVkU2Nyb2xsaW5nRGVsdGEsIGIubW9kaWZpZXJzKCksIGIudGltZXN0
YW1wKCksIGIuaW9ISURFdmVudFRpbWVzdGFtcCgpLCBtZXJnZWRSYXdQbGF0Zm9ybVNjcm9sbGlu
Z0RlbHRhLCBiLm1vbWVudHVtRW5kVHlwZSgpKTsKICNlbGlmIFBMQVRGT1JNKEdUSykgfHwgVVNF
KExJQldQRSkKICAgICByZXR1cm4gV2ViV2hlZWxFdmVudChXZWJFdmVudDo6V2hlZWwsIGIucG9z
aXRpb24oKSwgYi5nbG9iYWxQb3NpdGlvbigpLCBtZXJnZWREZWx0YSwgbWVyZ2VkV2hlZWxUaWNr
cywgYi5waGFzZSgpLCBiLm1vbWVudHVtUGhhc2UoKSwgYi5ncmFudWxhcml0eSgpLCBiLmhhc1By
ZWNpc2VTY3JvbGxpbmdEZWx0YXMoKSwgYi5tb2RpZmllcnMoKSwgYi50aW1lc3RhbXAoKSk7CiAj
ZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9y
eS5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkubW0KaW5kZXgg
MThlMzkyMjMzY2NhY2UxODIzZWE3M2ZjZDZkY2RkZDJjMWYxMTc1Ni4uMWYzMjY0YWQwYTczYmM0
N2ZmN2U5NzhkZDhlNjY5MWUxY2M5MmUwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMv
V2ViRXZlbnRGYWN0b3J5Lm1tCkBAIC00MTAsMzcgKzQxMCwzNSBAQCBXZWJXaGVlbEV2ZW50IFdl
YkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViV2hlZWxFdmVudChOU0V2ZW50ICpldmVudCwgTlNWaWV3
ICp3aW5kbwogCiAgICAgYXV0byBtb2RpZmllcnMgPSBtb2RpZmllcnNGb3JFdmVudChldmVudCk7
CiAgICAgYXV0byB0aW1lc3RhbXAgPSBXZWJDb3JlOjpldmVudFRpbWVTdGFtcFNpbmNlMTk3MChl
dmVudC50aW1lc3RhbXApOwotCi0gICAgYXV0byBpb0hJREV2ZW50VGltZXN0YW1wID0gWyZdKCkg
eworICAgIAorICAgIGF1dG8gaW9ISURFdmVudFdhbGxUaW1lID0gdGltZXN0YW1wOworICAgIHN0
ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRTaXplPiByYXdQbGF0Zm9ybURlbHRhOworICAgIGF1
dG8gbW9tZW50dW1FbmRUeXBlID0gV2ViV2hlZWxFdmVudDo6TW9tZW50dW1FbmRUeXBlOjpVbmtu
b3duOworICAgIAorICAgIChbJl0gewogICAgICAgICBhdXRvIGNnRXZlbnQgPSBldmVudC5DR0V2
ZW50OwogICAgICAgICBpZiAoIWNnRXZlbnQpCi0gICAgICAgICAgICByZXR1cm4gZXZlbnQudGlt
ZXN0YW1wOworICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIGF1dG8gaW9ISURFdmVudCA9
IGFkb3B0Q0YoQ0dFdmVudENvcHlJT0hJREV2ZW50KGNnRXZlbnQpKTsKICAgICAgICAgaWYgKCFp
b0hJREV2ZW50KQotICAgICAgICAgICAgcmV0dXJuIGV2ZW50LnRpbWVzdGFtcDsKKyAgICAgICAg
ICAgIHJldHVybjsKIAogICAgICAgICBhdXRvIGlvSElERXZlbnRUaW1lc3RhbXAgPSBJT0hJREV2
ZW50R2V0VGltZVN0YW1wKGlvSElERXZlbnQuZ2V0KCkpOyAvLyBJT0V2ZW50UmVmIHRpbWVzdGFt
cCBpcyBtYWNoX2Fic29sdXRlX3RpbWUgdW5pdHMuCi0gICAgICAgIHJldHVybiBNb25vdG9uaWNU
aW1lOjpmcm9tTWFjaEFic29sdXRlVGltZShpb0hJREV2ZW50VGltZXN0YW1wKS5zZWNvbmRzU2lu
Y2VFcG9jaCgpLnNlY29uZHMoKTsKLSAgICB9KCk7Ci0KLSAgICBhdXRvIHJhd1BsYXRmb3JtRGVs
dGEgPSBbJl0oKSAtPiBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0U2l6ZT4gewotICAgICAg
ICBhdXRvIGNnRXZlbnQgPSBldmVudC5DR0V2ZW50OwotICAgICAgICBpZiAoIWNnRXZlbnQpCi0g
ICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAgICAgIGF1dG8gaW9ISURFdmVu
dCA9IGFkb3B0Q0YoQ0dFdmVudENvcHlJT0hJREV2ZW50KGNnRXZlbnQpKTsKLSAgICAgICAgaWYg
KCFpb0hJREV2ZW50KQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAgICAg
YXV0byBtb25vdG9uaWNJT0hJREV2ZW50VGltZXN0YW1wID0gTW9ub3RvbmljVGltZTo6ZnJvbU1h
Y2hBYnNvbHV0ZVRpbWUoaW9ISURFdmVudFRpbWVzdGFtcCkuc2Vjb25kc1NpbmNlRXBvY2goKS5z
ZWNvbmRzKCk7CisgICAgICAgIGlvSElERXZlbnRXYWxsVGltZSA9IFdlYkNvcmU6OmV2ZW50VGlt
ZVN0YW1wU2luY2UxOTcwKG1vbm90b25pY0lPSElERXZlbnRUaW1lc3RhbXApOwogICAgICAgICAK
LSAgICAgICAgcmV0dXJuIHsgV2ViQ29yZTo6RmxvYXRTaXplKC1JT0hJREV2ZW50R2V0RmxvYXRW
YWx1ZShpb0hJREV2ZW50LmdldCgpLCBrSU9ISURFdmVudEZpZWxkU2Nyb2xsWCksIC1JT0hJREV2
ZW50R2V0RmxvYXRWYWx1ZShpb0hJREV2ZW50LmdldCgpLCBrSU9ISURFdmVudEZpZWxkU2Nyb2xs
WSkpIH07Ci0gICAgfSgpOworICAgICAgICByYXdQbGF0Zm9ybURlbHRhID0geyBXZWJDb3JlOjpG
bG9hdFNpemUoLUlPSElERXZlbnRHZXRGbG9hdFZhbHVlKGlvSElERXZlbnQuZ2V0KCksIGtJT0hJ
REV2ZW50RmllbGRTY3JvbGxYKSwgLUlPSElERXZlbnRHZXRGbG9hdFZhbHVlKGlvSElERXZlbnQu
Z2V0KCksIGtJT0hJREV2ZW50RmllbGRTY3JvbGxZKSkgfTsKIAotICAgIGF1dG8gaW9ISURFdmVu
dFdhbGxUaW1lID0gV2ViQ29yZTo6ZXZlbnRUaW1lU3RhbXBTaW5jZTE5NzAoaW9ISURFdmVudFRp
bWVzdGFtcCk7CisjaWYgSEFWRShQTEFURk9STV9TQ1JPTExfTU9NRU5UVU1fSU5URVJSVVBUSU9O
X1JFQVNPTikKKyAgICAgICAgYm9vbCBtb21lbnR1bVdhc0ludGVycnVwdGVkID0gSU9ISURFdmVu
dEdldFBoYXNlKGlvSElERXZlbnQuZ2V0KCkpICYga0lPSElERXZlbnRTY3JvbGxNb21lbnR1bUlu
dGVycnVwdGVkOworICAgICAgICBtb21lbnR1bUVuZFR5cGUgPSBtb21lbnR1bVdhc0ludGVycnVw
dGVkID8gV2ViV2hlZWxFdmVudDo6TW9tZW50dW1FbmRUeXBlOjpJbnRlcnJ1cHRlZCA6IFdlYldo
ZWVsRXZlbnQ6Ok1vbWVudHVtRW5kVHlwZTo6TmF0dXJhbDsKKyNlbmRpZgorICAgIH0pKCk7CiAK
ICAgICByZXR1cm4gV2ViV2hlZWxFdmVudChXZWJFdmVudDo6V2hlZWwsIFdlYkNvcmU6OkludFBv
aW50KHBvc2l0aW9uKSwgV2ViQ29yZTo6SW50UG9pbnQoZ2xvYmFsUG9zaXRpb24pLCBXZWJDb3Jl
OjpGbG9hdFNpemUoZGVsdGFYLCBkZWx0YVkpLCBXZWJDb3JlOjpGbG9hdFNpemUod2hlZWxUaWNr
c1gsIHdoZWVsVGlja3NZKSwKICAgICAgICAgZ3JhbnVsYXJpdHksIGRpcmVjdGlvbkludmVydGVk
RnJvbURldmljZSwgcGhhc2UsIG1vbWVudHVtUGhhc2UsIGhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0
YXMsCi0gICAgICAgIHNjcm9sbENvdW50LCB1bmFjY2VsZXJhdGVkU2Nyb2xsaW5nRGVsdGEsIG1v
ZGlmaWVycywgdGltZXN0YW1wLCBpb0hJREV2ZW50V2FsbFRpbWUsIHJhd1BsYXRmb3JtRGVsdGEp
OworICAgICAgICBzY3JvbGxDb3VudCwgdW5hY2NlbGVyYXRlZFNjcm9sbGluZ0RlbHRhLCBtb2Rp
ZmllcnMsIHRpbWVzdGFtcCwgaW9ISURFdmVudFdhbGxUaW1lLCByYXdQbGF0Zm9ybURlbHRhLCBt
b21lbnR1bUVuZFR5cGUpOwogfQogCiBXZWJLZXlib2FyZEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6
Y3JlYXRlV2ViS2V5Ym9hcmRFdmVudChOU0V2ZW50ICpldmVudCwgYm9vbCBoYW5kbGVkQnlJbnB1
dE1ldGhvZCwgYm9vbCByZXBsYWNlc1NvZnRTcGFjZSwgY29uc3QgVmVjdG9yPFdlYkNvcmU6Oktl
eXByZXNzQ29tbWFuZD4mIGNvbW1hbmRzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvTW9tZW50dW1FdmVudERpc3BhdGNoZXIuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvTW9tZW50dW1FdmVudERpc3BhdGNoZXIuY3BwCmluZGV4IDIx
ZjI4MjE5NTE2NDRhN2E1YmI4ZjgwZGM4NWYyMDAyMzlkYTllMmYuLmI2ODZhZjRlYTY4OThiZWUx
ZGRlYWNhYjI5MDM0ZWFjZjgyY2MxMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL01vbWVudHVtRXZlbnREaXNwYXRjaGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Nb21lbnR1bUV2ZW50RGlzcGF0Y2hlci5jcHAKQEAgLTg3
LDggKzg3LDIzIEBAIGJvb2wgTW9tZW50dW1FdmVudERpc3BhdGNoZXI6OmhhbmRsZVdoZWVsRXZl
bnQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlkZW50CiAgICAgICAgIC8vIG1vbWVudHVt
UGhhc2UgPT0gUGhhc2VFbmRlZCB0aGF0IGludGVycnVwdHMuCiAgICAgICAgIGJvb2wgZXZlbnRT
aG91bGRJbnRlcnJ1cHRHZXN0dXJlID0gIWlzTW9tZW50dW1FdmVudCB8fCBldmVudC5tb21lbnR1
bVBoYXNlKCkgIT0gV2ViV2hlZWxFdmVudDo6UGhhc2VDaGFuZ2VkOwogCi0gICAgICAgIGlmIChw
YWdlSWRlbnRpZmllckNoYW5nZWQgfHwgZXZlbnRTaG91bGRJbnRlcnJ1cHRHZXN0dXJlKQorICAg
ICAgICBpZiAoZXZlbnQubW9tZW50dW1QaGFzZSgpID09IFdlYldoZWVsRXZlbnQ6OlBoYXNlRW5k
ZWQpIHsKKyNpZiBFTkFCTEUoTU9NRU5UVU1fRVZFTlRfRElTUEFUQ0hFUl9URU1QT1JBUllfTE9H
R0lORykKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HKFNjcm9sbEFuaW1hdGlvbnMsICJNb21lbnR1
bUV2ZW50RGlzcGF0Y2hlciBzYXcgbW9tZW50dW0gZW5kZWQgcGhhc2UsIGludGVycnVwdGVkPSVk
Iiwgc3RhdGljX2Nhc3Q8aW50PihldmVudC5tb21lbnR1bUVuZFR5cGUoKSkpOworI2VuZGlmCisK
KyAgICAgICAgICAgIC8vIElnbm9yZSBtb21lbnR1bVBoYXNlID09IFBoYXNlRW5kZWQgaWYgaXQg
d2FzIGR1ZSB0byB0aGUgbmF0dXJhbAorICAgICAgICAgICAgLy8gZW5kIG9mIHRoZSBhbmltYXRp
b24gKGFzIG9wcG9zZWQgdG8gaW50ZXJydXB0aW9uIGJ5IHBsYWNpbmcgZmluZ2VycworICAgICAg
ICAgICAgLy8gb24gdGhlIHRyYWNrcGFkKSwgc28gdGhhdCBvdXIgbW9tZW50dW0gaXMgbm90IGN1
dCBzaG9ydCBpZiB0aGUKKyAgICAgICAgICAgIC8vIGRlY2VsZXJhdGlvbiBydW5zIGxvbmdlciB0
aGFuIHRoZSBzeXN0ZW0gY3VydmUuCisgICAgICAgICAgICBpZiAoZXZlbnQubW9tZW50dW1FbmRU
eXBlKCkgPT0gV2ViV2hlZWxFdmVudDo6TW9tZW50dW1FbmRUeXBlOjpOYXR1cmFsKQorICAgICAg
ICAgICAgICAgIGV2ZW50U2hvdWxkSW50ZXJydXB0R2VzdHVyZSA9IGZhbHNlOworICAgICAgICB9
CisKKyAgICAgICAgaWYgKHBhZ2VJZGVudGlmaWVyQ2hhbmdlZCB8fCBldmVudFNob3VsZEludGVy
cnVwdEdlc3R1cmUpIHsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HKFNjcm9sbEFuaW1hdGlvbnMs
ICJNb21lbnR1bUV2ZW50RGlzcGF0Y2hlciBpbnRlcnJ1cHRpbmcgc3ludGhldGljIG1vbWVudHVt
IHBoYXNlIik7CiAgICAgICAgICAgICBkaWRFbmRNb21lbnR1bVBoYXNlKCk7CisgICAgICAgIH0K
ICAgICB9CiAKICAgICBpZiAoZXZlbnQucGhhc2UoKSA9PSBXZWJXaGVlbEV2ZW50OjpQaGFzZUJl
Z2FuIHx8IGV2ZW50LnBoYXNlKCkgPT0gV2ViV2hlZWxFdmVudDo6UGhhc2VDaGFuZ2VkKSB7CkBA
IC0xMDAsMTggKzExNSwyNiBAQCBib29sIE1vbWVudHVtRXZlbnREaXNwYXRjaGVyOjpoYW5kbGVX
aGVlbEV2ZW50KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudAogI2VuZGlmCiAgICAg
fQogCi0gICAgaWYgKGV2ZW50U2hvdWxkU3RhcnRTeW50aGV0aWNNb21lbnR1bVBoYXNlKHBhZ2VJ
ZGVudGlmaWVyLCBldmVudCkpCisgICAgaWYgKGV2ZW50U2hvdWxkU3RhcnRTeW50aGV0aWNNb21l
bnR1bVBoYXNlKHBhZ2VJZGVudGlmaWVyLCBldmVudCkpIHsKICAgICAgICAgZGlkU3RhcnRNb21l
bnR1bVBoYXNlKHBhZ2VJZGVudGlmaWVyLCBldmVudCk7CisgICAgICAgIG1faXNJbk92ZXJyaWRk
ZW5QbGF0Zm9ybU1vbWVudHVtR2VzdHVyZSA9IHRydWU7CisgICAgfQogCi0gICAgYm9vbCBpc01v
bWVudHVtRXZlbnREdXJpbmdTeW50aGV0aWNHZXN0dXJlID0gaXNNb21lbnR1bUV2ZW50ICYmIG1f
Y3VycmVudEdlc3R1cmUuYWN0aXZlOworICAgIC8vIENvbnN1bWUgYW55IGluY29taW5nIG1vbWVu
dHVtIGV2ZW50cyB3aGlsZSB3ZSdyZSBnZW5lcmF0aW5nIGEgc3ludGhldGljCisgICAgLy8gbW9t
ZW50dW0gZ2VzdHVyZSAqb3IqIGEgcGxhdGZvcm0gbW9tZW50dW0gcGhhc2UgdGhhdCB3YXMgb3Zl
cnJpZGRlbgorICAgIC8vIGlzIHN0aWxsIHJ1bm5pbmcgYWZ0ZXIgd2UgZmluaXNoZWQgdGhlIHN5
bnRoZXRpYyBnZXN0dXJlLgorICAgIGJvb2wgc2hvdWxkSWdub3JlSW5jb21pbmdQbGF0Zm9ybUV2
ZW50ID0gaXNNb21lbnR1bUV2ZW50ICYmIChtX2lzSW5PdmVycmlkZGVuUGxhdGZvcm1Nb21lbnR1
bUdlc3R1cmUgfHwgbV9jdXJyZW50R2VzdHVyZS5hY3RpdmUpOworCisgICAgaWYgKGV2ZW50Lm1v
bWVudHVtUGhhc2UoKSA9PSBXZWJXaGVlbEV2ZW50OjpQaGFzZUVuZGVkKQorICAgICAgICBtX2lz
SW5PdmVycmlkZGVuUGxhdGZvcm1Nb21lbnR1bUdlc3R1cmUgPSBmYWxzZTsKIAogI2lmIEVOQUJM
RShNT01FTlRVTV9FVkVOVF9ESVNQQVRDSEVSX1RFTVBPUkFSWV9MT0dHSU5HKQotICAgIGlmIChp
c01vbWVudHVtRXZlbnREdXJpbmdTeW50aGV0aWNHZXN0dXJlKQorICAgIGlmIChzaG91bGRJZ25v
cmVJbmNvbWluZ1BsYXRmb3JtRXZlbnQpCiAgICAgICAgIG1fY3VycmVudEdlc3R1cmUuYWNjdW11
bGF0ZWRFdmVudE9mZnNldCArPSBldmVudC5kZWx0YSgpOwogCiAgICAgYXV0byBjb21iaW5lZFBo
YXNlID0gKGV2ZW50LnBoYXNlKCkgPDwgOCkgfCAoZXZlbnQubW9tZW50dW1QaGFzZSgpKTsKICAg
ICBtX2N1cnJlbnRMb2dTdGF0ZS50b3RhbEV2ZW50T2Zmc2V0ICs9IGV2ZW50LmRlbHRhKCkuaGVp
Z2h0KCk7Ci0gICAgaWYgKCFpc01vbWVudHVtRXZlbnREdXJpbmdTeW50aGV0aWNHZXN0dXJlKSB7
CisgICAgaWYgKCFzaG91bGRJZ25vcmVJbmNvbWluZ1BsYXRmb3JtRXZlbnQpIHsKICAgICAgICAg
Ly8gTG9nIGV2ZW50cyB0aGF0IHdlIGRvbid0IGJsb2NrIHRvIHRoZSBnZW5lcmF0ZWQgb2Zmc2V0
cyBsb2cgYXMgd2VsbCwKICAgICAgICAgLy8gZXZlbiB0aG91Z2ggd2UgZGlkbid0IHRlY2huaWNh
bGx5IGdlbmVyYXRlIHRoZW0sIGp1c3QgcGFzc2VkIHRoZW0gdGhyb3VnaC4KICAgICAgICAgbV9j
dXJyZW50TG9nU3RhdGUudG90YWxHZW5lcmF0ZWRPZmZzZXQgKz0gZXZlbnQuZGVsdGEoKS5oZWln
aHQoKTsKQEAgLTEyMSw4ICsxNDQsNyBAQCBib29sIE1vbWVudHVtRXZlbnREaXNwYXRjaGVyOjpo
YW5kbGVXaGVlbEV2ZW50KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudAogICAgIAog
I2VuZGlmCiAKLSAgICAvLyBDb25zdW1lIGFueSBub3JtYWwgbW9tZW50dW0gZXZlbnRzIHdoaWxl
IHdlJ3JlIGluc2lkZSBhIHN5bnRoZXRpYyBtb21lbnR1bSBnZXN0dXJlLgotICAgIHJldHVybiBp
c01vbWVudHVtRXZlbnREdXJpbmdTeW50aGV0aWNHZXN0dXJlOworICAgIHJldHVybiBzaG91bGRJ
Z25vcmVJbmNvbWluZ1BsYXRmb3JtRXZlbnQ7CiB9CiAKIHN0YXRpYyBmbG9hdCBhcHBLaXRTY3Jv
bGxNdWx0aXBsaWVyRm9yRXZlbnQoY29uc3QgV2ViV2hlZWxFdmVudCYgZXZlbnQpCkBAIC0xNzAs
NyArMTkyLDggQEAgdm9pZCBNb21lbnR1bUV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2hTeW50aGV0
aWNNb21lbnR1bUV2ZW50KFdlYldoZWVsRXZlbnQ6OlBoYXMKICAgICAgICAgbV9sYXN0SW5jb21p
bmdFdmVudC0+bW9kaWZpZXJzKCksCiAgICAgICAgIHRpbWUsCiAgICAgICAgIHRpbWUsCi0gICAg
ICAgIHsgfSk7CisgICAgICAgIHsgfSwKKyAgICAgICAgV2ViV2hlZWxFdmVudDo6TW9tZW50dW1F
bmRUeXBlOjpVbmtub3duKTsKICAgICBtX2Rpc3BhdGNoZXIuaW50ZXJuYWxXaGVlbEV2ZW50KG1f
Y3VycmVudEdlc3R1cmUucGFnZUlkZW50aWZpZXIsIHN5bnRoZXRpY0V2ZW50LCBtX2xhc3RSdWJi
ZXJCYW5kYWJsZUVkZ2VzLCBFdmVudERpc3BhdGNoZXI6OldoZWVsRXZlbnRPcmlnaW46Ok1vbWVu
dHVtRXZlbnREaXNwYXRjaGVyKTsKIAogI2lmIEVOQUJMRShNT01FTlRVTV9FVkVOVF9ESVNQQVRD
SEVSX1RFTVBPUkFSWV9MT0dHSU5HKQpAQCAtMjIzLDcgKzI0Niw3IEBAIHZvaWQgTW9tZW50dW1F
dmVudERpc3BhdGNoZXI6OmRpZEVuZE1vbWVudHVtUGhhc2UoKQogICAgIGRpc3BhdGNoU3ludGhl
dGljTW9tZW50dW1FdmVudChXZWJXaGVlbEV2ZW50OjpQaGFzZUVuZGVkLCB7IH0pOwogCiAjaWYg
RU5BQkxFKE1PTUVOVFVNX0VWRU5UX0RJU1BBVENIRVJfVEVNUE9SQVJZX0xPR0dJTkcpCi0gICAg
UkVMRUFTRV9MT0coU2Nyb2xsQW5pbWF0aW9ucywgIk1vbWVudHVtRXZlbnREaXNwYXRjaGVyIHNh
dyBtb21lbnR1bSBlbmQgcGhhc2Ugd2l0aCB0b3RhbCBvZmZzZXQgJS4xZiAlLjFmLCBkdXJhdGlv
biAlZiAoZXZlbnQgb2Zmc2V0IHdvdWxkIGhhdmUgYmVlbiAlLjFmICUuMWYpICh0YWlsIGluZGV4
ICVkIG9mICV6dSkiLCBtX2N1cnJlbnRHZXN0dXJlLmN1cnJlbnRPZmZzZXQud2lkdGgoKSwgbV9j
dXJyZW50R2VzdHVyZS5jdXJyZW50T2Zmc2V0LmhlaWdodCgpLCAoTW9ub3RvbmljVGltZTo6bm93
KCkgLSBtX2N1cnJlbnRHZXN0dXJlLnN0YXJ0VGltZSkuc2Vjb25kcygpLCBtX2N1cnJlbnRHZXN0
dXJlLmFjY3VtdWxhdGVkRXZlbnRPZmZzZXQud2lkdGgoKSwgbV9jdXJyZW50R2VzdHVyZS5hY2N1
bXVsYXRlZEV2ZW50T2Zmc2V0LmhlaWdodCgpLCBtX2N1cnJlbnRHZXN0dXJlLmN1cnJlbnRUYWls
RGVsdGFJbmRleCwgbV9jdXJyZW50R2VzdHVyZS50YWlsRGVsdGFUYWJsZS5zaXplKCkpOworICAg
IFJFTEVBU0VfTE9HKFNjcm9sbEFuaW1hdGlvbnMsICJNb21lbnR1bUV2ZW50RGlzcGF0Y2hlciBl
bmRpbmcgc3ludGhldGljIG1vbWVudHVtIHBoYXNlIHdpdGggdG90YWwgb2Zmc2V0ICUuMWYgJS4x
ZiwgZHVyYXRpb24gJWYgKGV2ZW50IG9mZnNldCB3b3VsZCBoYXZlIGJlZW4gJS4xZiAlLjFmKSAo
dGFpbCBpbmRleCAlZCBvZiAlenUpIiwgbV9jdXJyZW50R2VzdHVyZS5jdXJyZW50T2Zmc2V0Lndp
ZHRoKCksIG1fY3VycmVudEdlc3R1cmUuY3VycmVudE9mZnNldC5oZWlnaHQoKSwgKE1vbm90b25p
Y1RpbWU6Om5vdygpIC0gbV9jdXJyZW50R2VzdHVyZS5zdGFydFRpbWUpLnNlY29uZHMoKSwgbV9j
dXJyZW50R2VzdHVyZS5hY2N1bXVsYXRlZEV2ZW50T2Zmc2V0LndpZHRoKCksIG1fY3VycmVudEdl
c3R1cmUuYWNjdW11bGF0ZWRFdmVudE9mZnNldC5oZWlnaHQoKSwgbV9jdXJyZW50R2VzdHVyZS5j
dXJyZW50VGFpbERlbHRhSW5kZXgsIG1fY3VycmVudEdlc3R1cmUudGFpbERlbHRhVGFibGUuc2l6
ZSgpKTsKICAgICBtX2Rpc3BhdGNoZXIucXVldWUoKS5kaXNwYXRjaEFmdGVyKDFfcywgW3RoaXNd
IHsKICAgICAgICAgZmx1c2hMb2coKTsKICAgICB9KTsKQEAgLTI0Miw3ICsyNjUsNyBAQCB2b2lk
IE1vbWVudHVtRXZlbnREaXNwYXRjaGVyOjpzZXRTY3JvbGxpbmdBY2NlbGVyYXRpb25DdXJ2ZShX
ZWJDb3JlOjpQYWdlSWRlbnRpZgogI2lmIEVOQUJMRShNT01FTlRVTV9FVkVOVF9ESVNQQVRDSEVS
X1RFTVBPUkFSWV9MT0dHSU5HKQogICAgIFdURjo6VGV4dFN0cmVhbSBzdHJlYW0oV1RGOjpUZXh0
U3RyZWFtOjpMaW5lTW9kZTo6U2luZ2xlTGluZSk7CiAgICAgc3RyZWFtIDw8IGN1cnZlOwotICAg
IFJFTEVBU0VfTE9HKFNjcm9sbEFuaW1hdGlvbnMsICJNb21lbnR1bUV2ZW50RGlzcGF0Y2hlciBz
ZXQgY3VydmUgJXMiLCBzdHJlYW0ucmVsZWFzZSgpLnV0ZjgoKS5kYXRhKCkpOworICAgIFJFTEVB
U0VfTE9HKFNjcm9sbEFuaW1hdGlvbnMsICJNb21lbnR1bUV2ZW50RGlzcGF0Y2hlciBzZXQgY3Vy
dmUgJXtwdWJsaWN9cyIsIHN0cmVhbS5yZWxlYXNlKCkudXRmOCgpLmRhdGEoKSk7CiAjZW5kaWYK
IH0KIApAQCAtMjk5LDcgKzMyMiw3IEBAIHZvaWQgTW9tZW50dW1FdmVudERpc3BhdGNoZXI6OnBh
Z2VTY3JlZW5EaWRDaGFuZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlECiAgICAgICAg
IHN0YXJ0RGlzcGxheUxpbmsoKTsKIH0KIAotV2ViQ29yZTo6RmxvYXRTaXplIE1vbWVudHVtRXZl
bnREaXNwYXRjaGVyOjpjb25zdW1lRGVsdGFGb3JDdXJyZW50VGltZSgpCitzdGQ6Om9wdGlvbmFs
PFdlYkNvcmU6OkZsb2F0U2l6ZT4gTW9tZW50dW1FdmVudERpc3BhdGNoZXI6OmNvbnN1bWVEZWx0
YUZvckN1cnJlbnRUaW1lKCkKIHsKICAgICBXZWJDb3JlOjpGbG9hdFNpemUgZGVsdGE7CiAKQEAg
LTMxMSw3ICszMzQsNyBAQCBXZWJDb3JlOjpGbG9hdFNpemUgTW9tZW50dW1FdmVudERpc3BhdGNo
ZXI6OmNvbnN1bWVEZWx0YUZvckN1cnJlbnRUaW1lKCkKICAgICAgICAgaWYgKG1fY3VycmVudEdl
c3R1cmUuY3VycmVudFRhaWxEZWx0YUluZGV4IDwgbV9jdXJyZW50R2VzdHVyZS50YWlsRGVsdGFU
YWJsZS5zaXplKCkpCiAgICAgICAgICAgICBkZWx0YSA9IC1tX2N1cnJlbnRHZXN0dXJlLnRhaWxE
ZWx0YVRhYmxlW21fY3VycmVudEdlc3R1cmUuY3VycmVudFRhaWxEZWx0YUluZGV4KytdOwogICAg
ICAgICBlbHNlCi0gICAgICAgICAgICBkZWx0YSA9IHsgfTsKKyAgICAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CiAgICAgfQogCiAgICAgbV9jdXJyZW50R2VzdHVyZS5jdXJyZW50T2Zmc2V0
ICs9IGRlbHRhOwpAQCAtMzMxLDcgKzM1NCwxNiBAQCB2b2lkIE1vbWVudHVtRXZlbnREaXNwYXRj
aGVyOjpkaXNwbGF5V2FzUmVmcmVzaGVkKFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheUlEIGRpcwog
ICAgIGlmICghZGlzcGxheVByb3BlcnRpZXMgfHwgZGlzcGxheUlEICE9IGRpc3BsYXlQcm9wZXJ0
aWVzLT5kaXNwbGF5SUQpCiAgICAgICAgIHJldHVybjsKIAotICAgIGRpc3BhdGNoU3ludGhldGlj
TW9tZW50dW1FdmVudChXZWJXaGVlbEV2ZW50OjpQaGFzZUNoYW5nZWQsIGNvbnN1bWVEZWx0YUZv
ckN1cnJlbnRUaW1lKCkpOworICAgIGF1dG8gZGVsdGEgPSBjb25zdW1lRGVsdGFGb3JDdXJyZW50
VGltZSgpOworICAgIGlmICghZGVsdGEpIHsKKyNpZiBFTkFCTEUoTU9NRU5UVU1fRVZFTlRfRElT
UEFUQ0hFUl9URU1QT1JBUllfTE9HR0lORykKKyAgICAgICAgUkVMRUFTRV9MT0coU2Nyb2xsQW5p
bWF0aW9ucywgIk1vbWVudHVtRXZlbnREaXNwYXRjaGVyIGNvbXBsZXRlZCBzeW50aGV0aWMgbW9t
ZW50dW0gcGhhc2UiKTsKKyNlbmRpZgorICAgICAgICBkaWRFbmRNb21lbnR1bVBoYXNlKCk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBkaXNwYXRjaFN5bnRoZXRpY01vbWVudHVtRXZl
bnQoV2ViV2hlZWxFdmVudDo6UGhhc2VDaGFuZ2VkLCAqZGVsdGEpOwogfQogCiB2b2lkIE1vbWVu
dHVtRXZlbnREaXNwYXRjaGVyOjpkaWRSZWNlaXZlU2Nyb2xsRXZlbnRXaXRoSW50ZXJ2YWwoV2Vi
Q29yZTo6RmxvYXRTaXplIHNpemUsIFNlY29uZHMgZnJhbWVJbnRlcnZhbCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL01vbWVudHVtRXZlbnREaXNwYXRjaGVy
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Nb21lbnR1bUV2ZW50RGlzcGF0
Y2hlci5oCmluZGV4IDEwOTYxZjAyZDljZDhmZDViMGE1Mzc0MDRiMGUyMmVlYjg3OGU1NjAuLjM4
M2Y3NWUxMDY4ZDM2MDUwMTIwYWVlNzlhYWJlZTU3OWQ4ODhlY2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL01vbWVudHVtRXZlbnREaXNwYXRjaGVyLmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvTW9tZW50dW1FdmVudERpc3BhdGNo
ZXIuaApAQCAtODYsNyArODYsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZXF1YWxpemVUYWlsR2Fw
cygpOwogCiAgICAgLy8gT25jZSBjb25zdW1lZCwgdGhpcyBkZWx0YSAqbXVzdCogYmUgZGlzcGF0
Y2hlZCBpbiBhbiBldmVudC4KLSAgICBXZWJDb3JlOjpGbG9hdFNpemUgY29uc3VtZURlbHRhRm9y
Q3VycmVudFRpbWUoKTsKKyAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0U2l6ZT4gY29u
c3VtZURlbHRhRm9yQ3VycmVudFRpbWUoKTsKIAogICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBvZmZz
ZXRBdFRpbWUoU2Vjb25kcyk7CiAgICAgc3RkOjpwYWlyPFdlYkNvcmU6OkZsb2F0U2l6ZSwgV2Vi
Q29yZTo6RmxvYXRTaXplPiBjb21wdXRlTmV4dERlbHRhKFdlYkNvcmU6OkZsb2F0U2l6ZSBjdXJy
ZW50VW5hY2NlbGVyYXRlZERlbHRhKTsKQEAgLTEyNSw2ICsxMjUsNyBAQCBwcml2YXRlOgogICAg
IHN0ZDo6b3B0aW9uYWw8V2FsbFRpbWU+IG1fbGFzdFNjcm9sbFRpbWVzdGFtcDsKICAgICBzdGQ6
Om9wdGlvbmFsPFdlYldoZWVsRXZlbnQ+IG1fbGFzdEluY29taW5nRXZlbnQ7CiAgICAgV2ViQ29y
ZTo6UmVjdEVkZ2VzPGJvb2w+IG1fbGFzdFJ1YmJlckJhbmRhYmxlRWRnZXM7CisgICAgYm9vbCBt
X2lzSW5PdmVycmlkZGVuUGxhdGZvcm1Nb21lbnR1bUdlc3R1cmUgeyBmYWxzZSB9OwogCiAgICAg
c3RydWN0IHsKICAgICAgICAgYm9vbCBhY3RpdmUgeyBmYWxzZSB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448349</attachid>
            <date>2022-01-04 17:00:21 -0800</date>
            <delta_ts>2022-01-04 17:40:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234535-20220104170020.patch</filename>
            <type>text/plain</type>
            <size>26240</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3NTg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDg4MWY1ODMwNGQyMmIwNjdiYTZmYjUw
OTZkZGZmOTdlYjExN2Q4OWEuLjMxZWI1NGQ2YTk2OGM0NTAxN2U1Yjg1YjQxNjIzOGY2NWNlNjlh
YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjItMDEtMDQgIFRpbSBIb3J0b24gIDx0aW1vdGh5
X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgTW9tZW50dW0gRXZlbnQgRGlzcGF0Y2hlcjog
TW9tZW50dW0gdGFpbHMgbWF5IGdldCB0cnVuY2F0ZWQgaWYgdGhlIGR1cmF0aW9uIHJ1bnMgbG9u
Z2VyIHRoYW4gdGhlIHN5c3RlbSdzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzQ1MzUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg2MzM4MTA1Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICAqIHd0Zi9QbGF0
Zm9ybUhhdmUuaDoKKyAgICAgICAgQWRkIGEgSEFWRSBmb3Iga0lPSElERXZlbnRTY3JvbGxNb21l
bnR1bUludGVycnVwdGVkLgorCiAyMDIxLTEyLTMxICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBh
cHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gUmVwbGFjZSBVRElTODYgd2l0aCBaeWRpcwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwppbmRleCBhZjZlNzcwMDAyNzFmODA2N2IxNTY0OGVmYWI5ZmE2MjE1MGUxMTJiLi5hNzRjMDI4
OWE0ZjM5MmQ1YTQ1MDI0MjAyMGQyMWZmZjM2ZDZjMGUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDc0
IEBACisyMDIyLTAxLTA0ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgor
CisgICAgICAgIE1vbWVudHVtIEV2ZW50IERpc3BhdGNoZXI6IE1vbWVudHVtIHRhaWxzIG1heSBn
ZXQgdHJ1bmNhdGVkIGlmIHRoZSBkdXJhdGlvbiBydW5zIGxvbmdlciB0aGFuIHRoZSBzeXN0ZW0n
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0NTM1
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NjMzODEwNT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgQ3VycmVudGx5LCBzeW50aGV0aWMgbW9tZW50dW0g
ZGlzcGF0Y2ggaXMgc3RyaWN0bHkgdGllZCB0byB0aGUgZHVyYXRpb24KKyAgICAgICAgb2YgdGhl
IHJlYWwgcGxhdGZvcm0gbW9tZW50dW0gcGhhc2UsIHdoaWNoIGhhcyB0d28gdW5mb3J0dW5hdGUg
aW1wbGljYXRpb25zOgorCisgICAgICAgIC0gaWYgb3VyIHBoYXNlIHJ1bnMgc2hvcnRlciB0aGFu
IHRoZSBwbGF0Zm9ybSBwaGFzZSwgd2UnbGwga2VlcCBkaXNwYXRjaGluZworICAgICAgICAgIHpl
cm8tZGVsdGEgZXZlbnRzIHVudGlsIHRoZSBwbGF0Zm9ybSBtb21lbnR1bSBlbmRzCisKKyAgICAg
ICAgLSBtb3JlIGltcG9ydGFudGx5LCBpZiBvdXIgcGhhc2UgcnVucyBsb25nZXIsIGl0IHdpbGwg
YmUgYWJydXB0bHkgdGVybWluYXRlZAorICAgICAgICAgIHdoZW4gdGhlIHBsYXRmb3JtIG1vbWVu
dHVtIGVuZHMKKworICAgICAgICBJbiBwcmFjdGljZSwgb3VyIHN5bnRoZXRpYyBwaGFzZSBpcyB2
ZXJ5IGNsb3NlIGluIGR1cmF0aW9uIHRvIHRoZSBzeXN0ZW0gb25lLAorICAgICAgICBzbyB0aGUg
aW1wYWN0IGlzIG1pbmltYWwuIEJ1dCwgdG8gYmUgc2FmZSwgZGlzZW50YWdsZSB0aGUgdHdvIGR1
cmF0aW9ucywKKyAgICAgICAgdXNpbmcgYSBuZXcgYml0IGZyb20gdGhlIHBsYXRmb3JtIHRvIGRl
dGVybWluZSBpZiB0aGUgc3lzdGVtIG1vbWVudHVtIHBoYXNlCisgICAgICAgIHdhcyBpbnRlcnJ1
cHRlZCBieSB0aGUgdXNlciAoZS5nLiBieSB0YXBwaW5nIHRoZSB0cmFja3BhZCkgb3IgbmF0dXJh
bGx5LAorICAgICAgICBhbmQgaWdub3JpbmcgdGhlIGVuZGVkIGV2ZW50IGluIHRoZSBuYXR1cmFs
IGNhc2UsIGFsbG93aW5nIHN5bnRoZXRpYworICAgICAgICBldmVudHMgdG8gY29udGludWUgYmVp
bmcgZGlzcGF0Y2hlZC4KKworICAgICAgICAqIFNoYXJlZC9XZWJXaGVlbEV2ZW50LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViV2hlZWxFdmVudDo6V2ViV2hlZWxFdmVudCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYldoZWVsRXZlbnQ6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YldoZWVsRXZlbnQ6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYldoZWVsRXZlbnQuaDoK
KyAgICAgICAgKFdlYktpdDo6V2ViV2hlZWxFdmVudDo6bW9tZW50dW1FbmRUeXBlIGNvbnN0KToK
KyAgICAgICAgKiBTaGFyZWQvV2ViV2hlZWxFdmVudENvYWxlc2Nlci5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYldoZWVsRXZlbnRDb2FsZXNjZXI6OmNvYWxlc2NlKToKKyAgICAgICAgUGx1bWIg
bW9tZW50dW1FbmRUeXBlIGFsb25nIG9uIFdlYldoZWVsRXZlbnQuIFBsYXRmb3JtcyB0aGF0IGRv
bid0CisgICAgICAgIHByb3ZpZGUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGludGVycnVwdGlvbiBy
ZWFzb24gd2lsbCBhbHdheXMgc2F5IFVua25vd24uCisKKyAgICAgICAgKiBTaGFyZWQvbWFjL1dl
YkV2ZW50RmFjdG9yeS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnRGYWN0b3J5OjpjcmVh
dGVXZWJXaGVlbEV2ZW50KToKKyAgICAgICAgT25seSBib3RoZXIgbG9va2luZyB1cCB0aGUgQ0dF
dmVudC9JT0hJREV2ZW50IG9uY2UsIGFuZCBleHRyYWN0IGFsbAorICAgICAgICByZWxldmFudCBk
ZXRhaWxzIGluIG9uZSBnby4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Nb21lbnR1
bUV2ZW50RGlzcGF0Y2hlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok1vbWVudHVtRXZlbnREaXNw
YXRjaGVyOjpoYW5kbGVXaGVlbEV2ZW50KToKKyAgICAgICAgRG9uJ3QgaW50ZXJydXB0IHRoZSBz
eW50aGV0aWMgbW9tZW50dW0gcGhhc2UgaWYgdGhlIG1vbWVudHVtLWVuZGVkIGV2ZW50CisgICAg
ICAgIGNvbWVzIGZyb20gdGhlIG5hdHVyYWwgZW5kIG9mIHRoZSBkZWNlbGVyYXRpb24gaW5zdGVh
ZCBvZiBhbiBpbnRlcnJ1cHRpb24KKyAgICAgICAgKG9yIGFuIHVua25vd24gcmVhc29uKS4KKwor
ICAgICAgICBLZWVwIHRyYWNrIG9mIHdoZXRoZXIgd2UncmUgaW4gdGhlIG1pZGRsZSBvZiBhIHBs
YXRmb3JtIG1vbWVudHVtIHBoYXNlCisgICAgICAgIHRoYXQgd2UgY2hvc2UgKGF0IG1vbWVudHVt
LWJlZ2luIHRpbWUpIHRvIG92ZXJyaWRlLiBXaGVuIGRlY2lkaW5nCisgICAgICAgIHdoZXRoZXIg
dG8gZWF0IGFuIGluY29taW5nIGV2ZW50LCB0YWtlICpib3RoKiB0aGlzIG5ldyBiaXQgYW5kIHdo
ZXRoZXIKKyAgICAgICAgd2UgYXJlIGN1cnJlbnRseSBpbiB0aGUgbWlkZGxlIG9mIGEgc3ludGhl
dGljIHBoYXNlIGludG8gYWNjb3VudC4gSXQKKyAgICAgICAgaXMgaW1wb3J0YW50IHRvIGNvbnRp
bnVlIGVhdGluZyBpbmNvbWluZyBldmVudHMgaW4gdGhlIGNhc2Ugd2hlcmUgCisgICAgICAgIHRo
ZSBzeW50aGV0aWMgcGhhc2UgZW5kZWQgZWFybHkgKHNvIGBhY3RpdmVgIGJlY2FtZSBmYWxzZSkg
YnV0IHRoZQorICAgICAgICBwbGF0Zm9ybSBwaGFzZSBjb250aW51ZXMuCisKKyAgICAgICAgKFdl
YktpdDo6TW9tZW50dW1FdmVudERpc3BhdGNoZXI6OmRpc3BhdGNoU3ludGhldGljTW9tZW50dW1F
dmVudCk6CisgICAgICAgIChXZWJLaXQ6Ok1vbWVudHVtRXZlbnREaXNwYXRjaGVyOjpkaWRFbmRN
b21lbnR1bVBoYXNlKToKKyAgICAgICAgQWRqdXN0IHNvbWUgbG9nZ2luZyB3b3JkaW5nIHRvIGJl
IG1vcmUgcHJlY2lzZS4KKworICAgICAgICAoV2ViS2l0OjpNb21lbnR1bUV2ZW50RGlzcGF0Y2hl
cjo6c2V0U2Nyb2xsaW5nQWNjZWxlcmF0aW9uQ3VydmUpOgorICAgICAgICBNYWtlIHRoaXMgbG9n
IHB1YmxpYyBzbyB0aGF0IHRoZSBjdXJ2ZSB2YWx1ZSBpcyB2aXNpYmxlIGluIGxvZ3MuCisKKyAg
ICAgICAgKFdlYktpdDo6TW9tZW50dW1FdmVudERpc3BhdGNoZXI6OmNvbnN1bWVEZWx0YUZvckN1
cnJlbnRUaW1lKToKKyAgICAgICAgTWFrZSBjb25zdW1lRGVsdGFGb3JDdXJyZW50VGltZSBpbmZv
cm0gdGhlIGNsaWVudCB2aWEgYW4gb3B0aW9uYWwgd2hlbgorICAgICAgICB3ZSBhcmUgYXQgdGhl
IGVuZCBvZiB0aGUgZGVsdGEgdGFibGUuCisKKyAgICAgICAgKFdlYktpdDo6TW9tZW50dW1FdmVu
dERpc3BhdGNoZXI6OmRpc3BsYXlXYXNSZWZyZXNoZWQpOgorICAgICAgICBTdG9wIHRoZSBzeW50
aGV0aWMgbW9tZW50dW0gcGhhc2UgYXMgc29vbiBhcyB3ZSBydW4gb3V0IG9mIGRlbHRhcy4KKwor
ICAgICAgICAoV2ViS2l0OjpNb21lbnR1bUV2ZW50RGlzcGF0Y2hlcjo6Y29tcHV0ZU5leHREZWx0
YSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL01vbWVudHVtRXZlbnREaXNwYXRjaGVy
Lmg6CisKIDIwMjItMDEtMDQgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgog
CiAgICAgICAgIFtpT1NdW1dQXSBBZGQgdGVsZW1ldHJ5IGZvciBzeXNjYWxsIHZpb2xhdGlvbnMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oIGIvU291cmNlL1dURi93
dGYvUGxhdGZvcm1IYXZlLmgKaW5kZXggNDQ5YzYzZTMwOWViY2MxN2FhMDI0NzlhMjcxZGQ2YTEx
ZjlhODE1YS4uMWE2MmJiYWYzZWYzMGMzNzk1ZDgwYzQ2YWUxNTNiODViY2Y2ZjFjOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgKKysrIGIvU291cmNlL1dURi93dGYv
UGxhdGZvcm1IYXZlLmgKQEAgLTExNDAsMyArMTE0MCw3IEBACiAjaWYgUExBVEZPUk0oQ09DT0Ep
CiAjZGVmaW5lIEhBVkVfQ0ZBVVRPUkVMRUFTRSAxCiAjZW5kaWYKKworI2lmIFBMQVRGT1JNKE1B
QykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01BWF9BTExPV0VEID49IDEyMDIwMAorI2RlZmluZSBI
QVZFX1BMQVRGT1JNX1NDUk9MTF9NT01FTlRVTV9JTlRFUlJVUFRJT05fUkVBU09OIDEKKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL0lPS2l0U1BJTWFj
LmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvSU9LaXRTUElNYWMuaAppbmRleCBk
NDMwYjgxNWQ0NGNhNTQwM2ZkNDExMDFlYmZlMzQ0NzUyM2RkN2RiLi44ZGU4MzYyNWVhZWQ3NGY2
NGI4Y2I5MmIzODA2OTkxZGE1ZTc1OTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL3NwaS9tYWMvSU9LaXRTUElNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3Nw
aS9tYWMvSU9LaXRTUElNYWMuaApAQCAtODEsMTMgKzgxLDE4IEBAIGVudW0gewogICAgIGtJT0hJ
REV2ZW50VHlwZURpZ2l0aXplciA9IDExLAogICAgIGtJT0hJREV2ZW50VHlwZU5hdmlnYXRpb25T
d2lwZSA9IDE2LAogICAgIGtJT0hJREV2ZW50VHlwZUZvcmNlID0gMzIsCi0KIH07CiB0eXBlZGVm
IHVpbnQzMl90IElPSElERXZlbnRUeXBlOwogCiB0eXBlZGVmIHVpbnQzMl90IElPSElERXZlbnRG
aWVsZDsKIHR5cGVkZWYgdWludDY0X3QgSU9ISURFdmVudFNlbmRlcklEOwogCisKK2VudW0gewor
ICAgIGtJT0hJREV2ZW50U2Nyb2xsTW9tZW50dW1JbnRlcnJ1cHRlZCA9ICgxIDw8IDQpLAorfTsK
K3R5cGVkZWYgdWludDhfdCBJT0hJREV2ZW50U2Nyb2xsTW9tZW50dW1CaXRzOworCiAjaWZkZWYg
X19MUDY0X18KIHR5cGVkZWYgZG91YmxlIElPSElERmxvYXQ7CiAjZWxzZQpAQCAtMTAzLDYgKzEw
OCw3IEBAIHN0YXRpYyBjb25zdCBJT0hJREV2ZW50RmllbGQga0lPSElERXZlbnRGaWVsZFNjcm9s
bFkgPSAoa0lPSElERXZlbnRGaWVsZFNjcm9sbEJhCiB1aW50NjRfdCBJT0hJREV2ZW50R2V0VGlt
ZVN0YW1wKElPSElERXZlbnRSZWYpOwogSU9ISURGbG9hdCBJT0hJREV2ZW50R2V0RmxvYXRWYWx1
ZShJT0hJREV2ZW50UmVmLCBJT0hJREV2ZW50RmllbGQpOwogSU9ISURFdmVudFNlbmRlcklEIElP
SElERXZlbnRHZXRTZW5kZXJJRChJT0hJREV2ZW50UmVmKTsKK0lPSElERXZlbnRTY3JvbGxNb21l
bnR1bUJpdHMgSU9ISURFdmVudEdldFNjcm9sbE1vbWVudHVtKElPSElERXZlbnRSZWYpOwogCiBX
VEZfRVhURVJOX0NfRU5ECiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYldo
ZWVsRXZlbnQuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViV2hlZWxFdmVudC5jcHAKaW5k
ZXggNTFiMmI4ZTFiNWM0ZDk3MDY0ZGFhMDJhNDQ4NTQyNmJkM2ExMjNhMS4uNDM1ZjcwMmQxMjdm
ODc4YTU1ZGZkMTU4NGJhMWJjZWM4Y2Q2ZTU3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViV2hlZWxFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViV2hl
ZWxFdmVudC5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgV2ViV2hlZWxFdmVudDo6V2ViV2hlZWxFdmVu
dChUeXBlIHR5cGUsIGNvbnN0IEludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgSW50UG9pbnQKIH0K
IAogI2lmIFBMQVRGT1JNKENPQ09BKQotV2ViV2hlZWxFdmVudDo6V2ViV2hlZWxFdmVudChUeXBl
IHR5cGUsIGNvbnN0IEludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIGdsb2JhbFBv
c2l0aW9uLCBjb25zdCBGbG9hdFNpemUmIGRlbHRhLCBjb25zdCBGbG9hdFNpemUmIHdoZWVsVGlj
a3MsIEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBib29sIGRpcmVjdGlvbkludmVydGVkRnJvbURl
dmljZSwgUGhhc2UgcGhhc2UsIFBoYXNlIG1vbWVudHVtUGhhc2UsIGJvb2wgaGFzUHJlY2lzZVNj
cm9sbGluZ0RlbHRhcywgdWludDMyX3Qgc2Nyb2xsQ291bnQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
U2l6ZSYgdW5hY2NlbGVyYXRlZFNjcm9sbGluZ0RlbHRhLCBPcHRpb25TZXQ8TW9kaWZpZXI+IG1v
ZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wLCBXYWxsVGltZSBpb0hJREV2ZW50VGltZXN0YW1w
LCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0U2l6ZT4gcmF3UGxhdGZvcm1EZWx0YSkKK1dl
YldoZWVsRXZlbnQ6OldlYldoZWVsRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBJbnRQb2ludCYgcG9z
aXRpb24sIGNvbnN0IEludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgRmxvYXRTaXplJiBk
ZWx0YSwgY29uc3QgRmxvYXRTaXplJiB3aGVlbFRpY2tzLCBHcmFudWxhcml0eSBncmFudWxhcml0
eSwgYm9vbCBkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UsIFBoYXNlIHBoYXNlLCBQaGFzZSBt
b21lbnR1bVBoYXNlLCBib29sIGhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMsIHVpbnQzMl90IHNj
cm9sbENvdW50LCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHVuYWNjZWxlcmF0ZWRTY3JvbGxp
bmdEZWx0YSwgT3B0aW9uU2V0PE1vZGlmaWVyPiBtb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFt
cCwgV2FsbFRpbWUgaW9ISURFdmVudFRpbWVzdGFtcCwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpG
bG9hdFNpemU+IHJhd1BsYXRmb3JtRGVsdGEsIE1vbWVudHVtRW5kVHlwZSBtb21lbnR1bUVuZFR5
cGUpCiAgICAgOiBXZWJFdmVudCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAsIG1f
cG9zaXRpb24ocG9zaXRpb24pCiAgICAgLCBtX2dsb2JhbFBvc2l0aW9uKGdsb2JhbFBvc2l0aW9u
KQpAQCAtNTMsNiArNTMsNyBAQCBXZWJXaGVlbEV2ZW50OjpXZWJXaGVlbEV2ZW50KFR5cGUgdHlw
ZSwgY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2ludAogICAgICwgbV9ncmFu
dWxhcml0eShncmFudWxhcml0eSkKICAgICAsIG1fcGhhc2UocGhhc2UpCiAgICAgLCBtX21vbWVu
dHVtUGhhc2UobW9tZW50dW1QaGFzZSkKKyAgICAsIG1fbW9tZW50dW1FbmRUeXBlKG1vbWVudHVt
RW5kVHlwZSkKICAgICAsIG1fZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlKGRpcmVjdGlvbklu
dmVydGVkRnJvbURldmljZSkKICAgICAsIG1faGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcyhoYXNQ
cmVjaXNlU2Nyb2xsaW5nRGVsdGFzKQogICAgICwgbV9pb0hJREV2ZW50VGltZXN0YW1wKGlvSElE
RXZlbnRUaW1lc3RhbXApCkBAIC04Nyw2ICs4OCw3IEBAIHZvaWQgV2ViV2hlZWxFdmVudDo6ZW5j
b2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IG1fZGVsdGE7
CiAgICAgZW5jb2RlciA8PCBtX3doZWVsVGlja3M7CiAgICAgZW5jb2RlciA8PCBtX2dyYW51bGFy
aXR5OworICAgIGVuY29kZXIgPDwgbV9tb21lbnR1bUVuZFR5cGU7CiAgICAgZW5jb2RlciA8PCBt
X2RpcmVjdGlvbkludmVydGVkRnJvbURldmljZTsKICNpZiBQTEFURk9STShDT0NPQSkgfHwgUExB
VEZPUk0oR1RLKSB8fCBVU0UoTElCV1BFKQogICAgIGVuY29kZXIgPDwgbV9waGFzZTsKQEAgLTEx
NSw2ICsxMTcsOCBAQCBib29sIFdlYldoZWVsRXZlbnQ6OmRlY29kZShJUEM6OkRlY29kZXImIGRl
Y29kZXIsIFdlYldoZWVsRXZlbnQmIHQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKHQubV9ncmFudWxhcml0eSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHQubV9tb21lbnR1bUVuZFR5cGUpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh0Lm1fZGlyZWN0aW9uSW52ZXJ0
ZWRGcm9tRGV2aWNlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogI2lmIFBMQVRGT1JNKENPQ09B
KSB8fCBQTEFURk9STShHVEspIHx8IFVTRShMSUJXUEUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJXaGVlbEV2ZW50LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJXaGVl
bEV2ZW50LmgKaW5kZXggYTllYzhlOGFmZjAwNmY2ZDUzOWZiODhiNzM2OTdkNjM2OWFlY2E4NC4u
ODIxZWUyMjAxMjgzMzY4YjVjOTk1N2YwZGExNjNkNGUxYzNiMDYzMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViV2hlZWxFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYldoZWVsRXZlbnQuaApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIldlYkV2ZW50
LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFNpemUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0lu
dFBvaW50Lmg+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KIAogbmFtZXNwYWNlIFdlYktp
dCB7CiAKQEAgLTQ5LDExICs1MCwxNyBAQCBwdWJsaWM6CiAgICAgICAgIFBoYXNlTWF5QmVnaW4g
ICAgPSAxIDw8IDUsCiAgICAgfTsKIAorICAgIGVudW0gY2xhc3MgTW9tZW50dW1FbmRUeXBlIDog
dWludDhfdCB7CisgICAgICAgIFVua25vd24sCisgICAgICAgIEludGVycnVwdGVkLAorICAgICAg
ICBOYXR1cmFsLAorICAgIH07CisKICAgICBXZWJXaGVlbEV2ZW50KCkgPSBkZWZhdWx0OwogCiAg
ICAgV2ViV2hlZWxFdmVudChUeXBlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24s
IGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6
RmxvYXRTaXplJiBkZWx0YSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBH
cmFudWxhcml0eSwgT3B0aW9uU2V0PE1vZGlmaWVyPiwgV2FsbFRpbWUgdGltZXN0YW1wKTsKICNp
ZiBQTEFURk9STShDT0NPQSkKLSAgICBXZWJXaGVlbEV2ZW50KFR5cGUsIGNvbnN0IFdlYkNvcmU6
OkludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0
aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGRlbHRhLCBjb25zdCBXZWJDb3JlOjpGbG9h
dFNpemUmIHdoZWVsVGlja3MsIEdyYW51bGFyaXR5LCBib29sIGRpcmVjdGlvbkludmVydGVkRnJv
bURldmljZSwgUGhhc2UsIFBoYXNlIG1vbWVudHVtUGhhc2UsIGJvb2wgaGFzUHJlY2lzZVNjcm9s
bGluZ0RlbHRhcywgdWludDMyX3Qgc2Nyb2xsQ291bnQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6
ZSYgdW5hY2NlbGVyYXRlZFNjcm9sbGluZ0RlbHRhLCBPcHRpb25TZXQ8TW9kaWZpZXI+LCBXYWxs
VGltZSB0aW1lc3RhbXAsIFdhbGxUaW1lIGlvSElERXZlbnRUaW1lc3RhbXAsIHN0ZDo6b3B0aW9u
YWw8V2ViQ29yZTo6RmxvYXRTaXplPiByYXdQbGF0Zm9ybURlbHRhKTsKKyAgICBXZWJXaGVlbEV2
ZW50KFR5cGUsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGRl
bHRhLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHdoZWVsVGlja3MsIEdyYW51bGFyaXR5LCBi
b29sIGRpcmVjdGlvbkludmVydGVkRnJvbURldmljZSwgUGhhc2UsIFBoYXNlIG1vbWVudHVtUGhh
c2UsIGJvb2wgaGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcywgdWludDMyX3Qgc2Nyb2xsQ291bnQs
IGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgdW5hY2NlbGVyYXRlZFNjcm9sbGluZ0RlbHRhLCBP
cHRpb25TZXQ8TW9kaWZpZXI+LCBXYWxsVGltZSB0aW1lc3RhbXAsIFdhbGxUaW1lIGlvSElERXZl
bnRUaW1lc3RhbXAsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRTaXplPiByYXdQbGF0Zm9y
bURlbHRhLCBNb21lbnR1bUVuZFR5cGUpOwogI2VsaWYgUExBVEZPUk0oR1RLKSB8fCBVU0UoTElC
V1BFKQogICAgIFdlYldoZWVsRXZlbnQoVHlwZSwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBv
c2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IFdl
YkNvcmU6OkZsb2F0U2l6ZSYgZGVsdGEsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgd2hlZWxU
aWNrcywgUGhhc2UsIFBoYXNlIG1vbWVudHVtUGhhc2UsIEdyYW51bGFyaXR5LCBib29sIGhhc1By
ZWNpc2VTY3JvbGxpbmdEZWx0YXMsIE9wdGlvblNldDxNb2RpZmllcj4sIFdhbGxUaW1lIHRpbWVz
dGFtcCk7CiAjZW5kaWYKQEAgLTY2LDYgKzczLDcgQEAgcHVibGljOgogICAgIGJvb2wgZGlyZWN0
aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlKCkgY29uc3QgeyByZXR1cm4gbV9kaXJlY3Rpb25JbnZlcnRl
ZEZyb21EZXZpY2U7IH0KICAgICBQaGFzZSBwaGFzZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19j
YXN0PFBoYXNlPihtX3BoYXNlKTsgfQogICAgIFBoYXNlIG1vbWVudHVtUGhhc2UoKSBjb25zdCB7
IHJldHVybiBzdGF0aWNfY2FzdDxQaGFzZT4obV9tb21lbnR1bVBoYXNlKTsgfQorICAgIE1vbWVu
dHVtRW5kVHlwZSBtb21lbnR1bUVuZFR5cGUoKSBjb25zdCB7IHJldHVybiBtX21vbWVudHVtRW5k
VHlwZTsgfQogI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShHVEspIHx8IFVTRShMSUJX
UEUpCiAgICAgYm9vbCBoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzKCkgY29uc3QgeyByZXR1cm4g
bV9oYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzOyB9CiAjZW5kaWYKQEAgLTkwLDYgKzk4LDcgQEAg
cHJpdmF0ZToKICAgICB1aW50MzJfdCBtX3BoYXNlIHsgUGhhc2U6OlBoYXNlTm9uZSB9OwogICAg
IHVpbnQzMl90IG1fbW9tZW50dW1QaGFzZSB7IFBoYXNlOjpQaGFzZU5vbmUgfTsKIAorICAgIE1v
bWVudHVtRW5kVHlwZSBtX21vbWVudHVtRW5kVHlwZSB7IE1vbWVudHVtRW5kVHlwZTo6VW5rbm93
biB9OwogICAgIGJvb2wgbV9kaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UgeyBmYWxzZSB9Owog
I2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShHVEspIHx8IFVTRShMSUJXUEUpCiAgICAg
Ym9vbCBtX2hhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMgeyBmYWxzZSB9OwpAQCAtMTAzLDMgKzEx
MiwxNiBAQCBwcml2YXRlOgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKK25hbWVzcGFj
ZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYktpdDo6V2ViV2hlZWxF
dmVudDo6TW9tZW50dW1FbmRUeXBlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwK
KyAgICBXZWJLaXQ6OldlYldoZWVsRXZlbnQ6Ok1vbWVudHVtRW5kVHlwZSwKKyAgICBXZWJLaXQ6
OldlYldoZWVsRXZlbnQ6Ok1vbWVudHVtRW5kVHlwZTo6VW5rbm93biwKKyAgICBXZWJLaXQ6Oldl
YldoZWVsRXZlbnQ6Ok1vbWVudHVtRW5kVHlwZTo6SW50ZXJydXB0ZWQsCisgICAgV2ViS2l0OjpX
ZWJXaGVlbEV2ZW50OjpNb21lbnR1bUVuZFR5cGU6Ok5hdHVyYWwKKyAgICA+OworfTsKKworfSAv
LyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJXaGVl
bEV2ZW50Q29hbGVzY2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYldoZWVsRXZlbnRD
b2FsZXNjZXIuY3BwCmluZGV4IDAxNTJlNjAzY2NmODFlNTFiNWVkY2UyYTdmZWY0MGJiYjljMDdi
YTYuLmEyMjM1OWM3N2RiNjg5NjFiMGMwY2EwNDVjNjA3Mzc4MzI0OGFjMDIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYldoZWVsRXZlbnRDb2FsZXNjZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYldoZWVsRXZlbnRDb2FsZXNjZXIuY3BwCkBAIC04MSw3ICs4
MSw3IEBAIFdlYldoZWVsRXZlbnQgV2ViV2hlZWxFdmVudENvYWxlc2Nlcjo6Y29hbGVzY2UoY29u
c3QgV2ViV2hlZWxFdmVudCYgYSwgY29uc3QgV2ViCiAgICAgaWYgKGEucmF3UGxhdGZvcm1EZWx0
YSgpICYmIGIucmF3UGxhdGZvcm1EZWx0YSgpKQogICAgICAgICBtZXJnZWRSYXdQbGF0Zm9ybVNj
cm9sbGluZ0RlbHRhID0gYS5yYXdQbGF0Zm9ybURlbHRhKCkudmFsdWUoKSArIGIucmF3UGxhdGZv
cm1EZWx0YSgpLnZhbHVlKCk7CiAKLSAgICByZXR1cm4gV2ViV2hlZWxFdmVudChXZWJFdmVudDo6
V2hlZWwsIGIucG9zaXRpb24oKSwgYi5nbG9iYWxQb3NpdGlvbigpLCBtZXJnZWREZWx0YSwgbWVy
Z2VkV2hlZWxUaWNrcywgYi5ncmFudWxhcml0eSgpLCBiLmRpcmVjdGlvbkludmVydGVkRnJvbURl
dmljZSgpLCBiLnBoYXNlKCksIGIubW9tZW50dW1QaGFzZSgpLCBiLmhhc1ByZWNpc2VTY3JvbGxp
bmdEZWx0YXMoKSwgYi5zY3JvbGxDb3VudCgpLCBtZXJnZWRVbmFjY2VsZXJhdGVkU2Nyb2xsaW5n
RGVsdGEsIGIubW9kaWZpZXJzKCksIGIudGltZXN0YW1wKCksIGIuaW9ISURFdmVudFRpbWVzdGFt
cCgpLCBtZXJnZWRSYXdQbGF0Zm9ybVNjcm9sbGluZ0RlbHRhKTsKKyAgICByZXR1cm4gV2ViV2hl
ZWxFdmVudChXZWJFdmVudDo6V2hlZWwsIGIucG9zaXRpb24oKSwgYi5nbG9iYWxQb3NpdGlvbigp
LCBtZXJnZWREZWx0YSwgbWVyZ2VkV2hlZWxUaWNrcywgYi5ncmFudWxhcml0eSgpLCBiLmRpcmVj
dGlvbkludmVydGVkRnJvbURldmljZSgpLCBiLnBoYXNlKCksIGIubW9tZW50dW1QaGFzZSgpLCBi
Lmhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMoKSwgYi5zY3JvbGxDb3VudCgpLCBtZXJnZWRVbmFj
Y2VsZXJhdGVkU2Nyb2xsaW5nRGVsdGEsIGIubW9kaWZpZXJzKCksIGIudGltZXN0YW1wKCksIGIu
aW9ISURFdmVudFRpbWVzdGFtcCgpLCBtZXJnZWRSYXdQbGF0Zm9ybVNjcm9sbGluZ0RlbHRhLCBi
Lm1vbWVudHVtRW5kVHlwZSgpKTsKICNlbGlmIFBMQVRGT1JNKEdUSykgfHwgVVNFKExJQldQRSkK
ICAgICByZXR1cm4gV2ViV2hlZWxFdmVudChXZWJFdmVudDo6V2hlZWwsIGIucG9zaXRpb24oKSwg
Yi5nbG9iYWxQb3NpdGlvbigpLCBtZXJnZWREZWx0YSwgbWVyZ2VkV2hlZWxUaWNrcywgYi5waGFz
ZSgpLCBiLm1vbWVudHVtUGhhc2UoKSwgYi5ncmFudWxhcml0eSgpLCBiLmhhc1ByZWNpc2VTY3Jv
bGxpbmdEZWx0YXMoKSwgYi5tb2RpZmllcnMoKSwgYi50aW1lc3RhbXAoKSk7CiAjZWxzZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5tbSBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkubW0KaW5kZXggMThlMzkyMjMz
Y2NhY2UxODIzZWE3M2ZjZDZkY2RkZDJjMWYxMTc1Ni4uYzQ5OWU2Zjg1MzJhMmM3MmI3ZjEyNzhm
ZDQwZjQ4MDM0NGQ1YjM0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dl
YkV2ZW50RmFjdG9yeS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViRXZlbnRG
YWN0b3J5Lm1tCkBAIC00MTAsMzcgKzQxMCwzNSBAQCBXZWJXaGVlbEV2ZW50IFdlYkV2ZW50RmFj
dG9yeTo6Y3JlYXRlV2ViV2hlZWxFdmVudChOU0V2ZW50ICpldmVudCwgTlNWaWV3ICp3aW5kbwog
CiAgICAgYXV0byBtb2RpZmllcnMgPSBtb2RpZmllcnNGb3JFdmVudChldmVudCk7CiAgICAgYXV0
byB0aW1lc3RhbXAgPSBXZWJDb3JlOjpldmVudFRpbWVTdGFtcFNpbmNlMTk3MChldmVudC50aW1l
c3RhbXApOwotCi0gICAgYXV0byBpb0hJREV2ZW50VGltZXN0YW1wID0gWyZdKCkgeworICAgIAor
ICAgIGF1dG8gaW9ISURFdmVudFdhbGxUaW1lID0gdGltZXN0YW1wOworICAgIHN0ZDo6b3B0aW9u
YWw8V2ViQ29yZTo6RmxvYXRTaXplPiByYXdQbGF0Zm9ybURlbHRhOworICAgIGF1dG8gbW9tZW50
dW1FbmRUeXBlID0gV2ViV2hlZWxFdmVudDo6TW9tZW50dW1FbmRUeXBlOjpVbmtub3duOworICAg
IAorICAgIChbJl0gewogICAgICAgICBhdXRvIGNnRXZlbnQgPSBldmVudC5DR0V2ZW50OwogICAg
ICAgICBpZiAoIWNnRXZlbnQpCi0gICAgICAgICAgICByZXR1cm4gZXZlbnQudGltZXN0YW1wOwor
ICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIGF1dG8gaW9ISURFdmVudCA9IGFkb3B0Q0Yo
Q0dFdmVudENvcHlJT0hJREV2ZW50KGNnRXZlbnQpKTsKICAgICAgICAgaWYgKCFpb0hJREV2ZW50
KQotICAgICAgICAgICAgcmV0dXJuIGV2ZW50LnRpbWVzdGFtcDsKKyAgICAgICAgICAgIHJldHVy
bjsKIAogICAgICAgICBhdXRvIGlvSElERXZlbnRUaW1lc3RhbXAgPSBJT0hJREV2ZW50R2V0VGlt
ZVN0YW1wKGlvSElERXZlbnQuZ2V0KCkpOyAvLyBJT0V2ZW50UmVmIHRpbWVzdGFtcCBpcyBtYWNo
X2Fic29sdXRlX3RpbWUgdW5pdHMuCi0gICAgICAgIHJldHVybiBNb25vdG9uaWNUaW1lOjpmcm9t
TWFjaEFic29sdXRlVGltZShpb0hJREV2ZW50VGltZXN0YW1wKS5zZWNvbmRzU2luY2VFcG9jaCgp
LnNlY29uZHMoKTsKLSAgICB9KCk7Ci0KLSAgICBhdXRvIHJhd1BsYXRmb3JtRGVsdGEgPSBbJl0o
KSAtPiBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0U2l6ZT4gewotICAgICAgICBhdXRvIGNn
RXZlbnQgPSBldmVudC5DR0V2ZW50OwotICAgICAgICBpZiAoIWNnRXZlbnQpCi0gICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAgICAgIGF1dG8gaW9ISURFdmVudCA9IGFkb3B0
Q0YoQ0dFdmVudENvcHlJT0hJREV2ZW50KGNnRXZlbnQpKTsKLSAgICAgICAgaWYgKCFpb0hJREV2
ZW50KQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgYXV0byBtb25v
dG9uaWNJT0hJREV2ZW50VGltZXN0YW1wID0gTW9ub3RvbmljVGltZTo6ZnJvbU1hY2hBYnNvbHV0
ZVRpbWUoaW9ISURFdmVudFRpbWVzdGFtcCkuc2Vjb25kc1NpbmNlRXBvY2goKS5zZWNvbmRzKCk7
CisgICAgICAgIGlvSElERXZlbnRXYWxsVGltZSA9IFdlYkNvcmU6OmV2ZW50VGltZVN0YW1wU2lu
Y2UxOTcwKG1vbm90b25pY0lPSElERXZlbnRUaW1lc3RhbXApOwogICAgICAgICAKLSAgICAgICAg
cmV0dXJuIHsgV2ViQ29yZTo6RmxvYXRTaXplKC1JT0hJREV2ZW50R2V0RmxvYXRWYWx1ZShpb0hJ
REV2ZW50LmdldCgpLCBrSU9ISURFdmVudEZpZWxkU2Nyb2xsWCksIC1JT0hJREV2ZW50R2V0Rmxv
YXRWYWx1ZShpb0hJREV2ZW50LmdldCgpLCBrSU9ISURFdmVudEZpZWxkU2Nyb2xsWSkpIH07Ci0g
ICAgfSgpOworICAgICAgICByYXdQbGF0Zm9ybURlbHRhID0geyBXZWJDb3JlOjpGbG9hdFNpemUo
LUlPSElERXZlbnRHZXRGbG9hdFZhbHVlKGlvSElERXZlbnQuZ2V0KCksIGtJT0hJREV2ZW50Rmll
bGRTY3JvbGxYKSwgLUlPSElERXZlbnRHZXRGbG9hdFZhbHVlKGlvSElERXZlbnQuZ2V0KCksIGtJ
T0hJREV2ZW50RmllbGRTY3JvbGxZKSkgfTsKIAotICAgIGF1dG8gaW9ISURFdmVudFdhbGxUaW1l
ID0gV2ViQ29yZTo6ZXZlbnRUaW1lU3RhbXBTaW5jZTE5NzAoaW9ISURFdmVudFRpbWVzdGFtcCk7
CisjaWYgSEFWRShQTEFURk9STV9TQ1JPTExfTU9NRU5UVU1fSU5URVJSVVBUSU9OX1JFQVNPTikK
KyAgICAgICAgYm9vbCBtb21lbnR1bVdhc0ludGVycnVwdGVkID0gSU9ISURFdmVudEdldFNjcm9s
bE1vbWVudHVtKGlvSElERXZlbnQuZ2V0KCkpICYga0lPSElERXZlbnRTY3JvbGxNb21lbnR1bUlu
dGVycnVwdGVkOworICAgICAgICBtb21lbnR1bUVuZFR5cGUgPSBtb21lbnR1bVdhc0ludGVycnVw
dGVkID8gV2ViV2hlZWxFdmVudDo6TW9tZW50dW1FbmRUeXBlOjpJbnRlcnJ1cHRlZCA6IFdlYldo
ZWVsRXZlbnQ6Ok1vbWVudHVtRW5kVHlwZTo6TmF0dXJhbDsKKyNlbmRpZgorICAgIH0pKCk7CiAK
ICAgICByZXR1cm4gV2ViV2hlZWxFdmVudChXZWJFdmVudDo6V2hlZWwsIFdlYkNvcmU6OkludFBv
aW50KHBvc2l0aW9uKSwgV2ViQ29yZTo6SW50UG9pbnQoZ2xvYmFsUG9zaXRpb24pLCBXZWJDb3Jl
OjpGbG9hdFNpemUoZGVsdGFYLCBkZWx0YVkpLCBXZWJDb3JlOjpGbG9hdFNpemUod2hlZWxUaWNr
c1gsIHdoZWVsVGlja3NZKSwKICAgICAgICAgZ3JhbnVsYXJpdHksIGRpcmVjdGlvbkludmVydGVk
RnJvbURldmljZSwgcGhhc2UsIG1vbWVudHVtUGhhc2UsIGhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0
YXMsCi0gICAgICAgIHNjcm9sbENvdW50LCB1bmFjY2VsZXJhdGVkU2Nyb2xsaW5nRGVsdGEsIG1v
ZGlmaWVycywgdGltZXN0YW1wLCBpb0hJREV2ZW50V2FsbFRpbWUsIHJhd1BsYXRmb3JtRGVsdGEp
OworICAgICAgICBzY3JvbGxDb3VudCwgdW5hY2NlbGVyYXRlZFNjcm9sbGluZ0RlbHRhLCBtb2Rp
ZmllcnMsIHRpbWVzdGFtcCwgaW9ISURFdmVudFdhbGxUaW1lLCByYXdQbGF0Zm9ybURlbHRhLCBt
b21lbnR1bUVuZFR5cGUpOwogfQogCiBXZWJLZXlib2FyZEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6
Y3JlYXRlV2ViS2V5Ym9hcmRFdmVudChOU0V2ZW50ICpldmVudCwgYm9vbCBoYW5kbGVkQnlJbnB1
dE1ldGhvZCwgYm9vbCByZXBsYWNlc1NvZnRTcGFjZSwgY29uc3QgVmVjdG9yPFdlYkNvcmU6Oktl
eXByZXNzQ29tbWFuZD4mIGNvbW1hbmRzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvTW9tZW50dW1FdmVudERpc3BhdGNoZXIuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvTW9tZW50dW1FdmVudERpc3BhdGNoZXIuY3BwCmluZGV4IDIx
ZjI4MjE5NTE2NDRhN2E1YmI4ZjgwZGM4NWYyMDAyMzlkYTllMmYuLmI2ODZhZjRlYTY4OThiZWUx
ZGRlYWNhYjI5MDM0ZWFjZjgyY2MxMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL01vbWVudHVtRXZlbnREaXNwYXRjaGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Nb21lbnR1bUV2ZW50RGlzcGF0Y2hlci5jcHAKQEAgLTg3
LDggKzg3LDIzIEBAIGJvb2wgTW9tZW50dW1FdmVudERpc3BhdGNoZXI6OmhhbmRsZVdoZWVsRXZl
bnQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlkZW50CiAgICAgICAgIC8vIG1vbWVudHVt
UGhhc2UgPT0gUGhhc2VFbmRlZCB0aGF0IGludGVycnVwdHMuCiAgICAgICAgIGJvb2wgZXZlbnRT
aG91bGRJbnRlcnJ1cHRHZXN0dXJlID0gIWlzTW9tZW50dW1FdmVudCB8fCBldmVudC5tb21lbnR1
bVBoYXNlKCkgIT0gV2ViV2hlZWxFdmVudDo6UGhhc2VDaGFuZ2VkOwogCi0gICAgICAgIGlmIChw
YWdlSWRlbnRpZmllckNoYW5nZWQgfHwgZXZlbnRTaG91bGRJbnRlcnJ1cHRHZXN0dXJlKQorICAg
ICAgICBpZiAoZXZlbnQubW9tZW50dW1QaGFzZSgpID09IFdlYldoZWVsRXZlbnQ6OlBoYXNlRW5k
ZWQpIHsKKyNpZiBFTkFCTEUoTU9NRU5UVU1fRVZFTlRfRElTUEFUQ0hFUl9URU1QT1JBUllfTE9H
R0lORykKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HKFNjcm9sbEFuaW1hdGlvbnMsICJNb21lbnR1
bUV2ZW50RGlzcGF0Y2hlciBzYXcgbW9tZW50dW0gZW5kZWQgcGhhc2UsIGludGVycnVwdGVkPSVk
Iiwgc3RhdGljX2Nhc3Q8aW50PihldmVudC5tb21lbnR1bUVuZFR5cGUoKSkpOworI2VuZGlmCisK
KyAgICAgICAgICAgIC8vIElnbm9yZSBtb21lbnR1bVBoYXNlID09IFBoYXNlRW5kZWQgaWYgaXQg
d2FzIGR1ZSB0byB0aGUgbmF0dXJhbAorICAgICAgICAgICAgLy8gZW5kIG9mIHRoZSBhbmltYXRp
b24gKGFzIG9wcG9zZWQgdG8gaW50ZXJydXB0aW9uIGJ5IHBsYWNpbmcgZmluZ2VycworICAgICAg
ICAgICAgLy8gb24gdGhlIHRyYWNrcGFkKSwgc28gdGhhdCBvdXIgbW9tZW50dW0gaXMgbm90IGN1
dCBzaG9ydCBpZiB0aGUKKyAgICAgICAgICAgIC8vIGRlY2VsZXJhdGlvbiBydW5zIGxvbmdlciB0
aGFuIHRoZSBzeXN0ZW0gY3VydmUuCisgICAgICAgICAgICBpZiAoZXZlbnQubW9tZW50dW1FbmRU
eXBlKCkgPT0gV2ViV2hlZWxFdmVudDo6TW9tZW50dW1FbmRUeXBlOjpOYXR1cmFsKQorICAgICAg
ICAgICAgICAgIGV2ZW50U2hvdWxkSW50ZXJydXB0R2VzdHVyZSA9IGZhbHNlOworICAgICAgICB9
CisKKyAgICAgICAgaWYgKHBhZ2VJZGVudGlmaWVyQ2hhbmdlZCB8fCBldmVudFNob3VsZEludGVy
cnVwdEdlc3R1cmUpIHsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HKFNjcm9sbEFuaW1hdGlvbnMs
ICJNb21lbnR1bUV2ZW50RGlzcGF0Y2hlciBpbnRlcnJ1cHRpbmcgc3ludGhldGljIG1vbWVudHVt
IHBoYXNlIik7CiAgICAgICAgICAgICBkaWRFbmRNb21lbnR1bVBoYXNlKCk7CisgICAgICAgIH0K
ICAgICB9CiAKICAgICBpZiAoZXZlbnQucGhhc2UoKSA9PSBXZWJXaGVlbEV2ZW50OjpQaGFzZUJl
Z2FuIHx8IGV2ZW50LnBoYXNlKCkgPT0gV2ViV2hlZWxFdmVudDo6UGhhc2VDaGFuZ2VkKSB7CkBA
IC0xMDAsMTggKzExNSwyNiBAQCBib29sIE1vbWVudHVtRXZlbnREaXNwYXRjaGVyOjpoYW5kbGVX
aGVlbEV2ZW50KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudAogI2VuZGlmCiAgICAg
fQogCi0gICAgaWYgKGV2ZW50U2hvdWxkU3RhcnRTeW50aGV0aWNNb21lbnR1bVBoYXNlKHBhZ2VJ
ZGVudGlmaWVyLCBldmVudCkpCisgICAgaWYgKGV2ZW50U2hvdWxkU3RhcnRTeW50aGV0aWNNb21l
bnR1bVBoYXNlKHBhZ2VJZGVudGlmaWVyLCBldmVudCkpIHsKICAgICAgICAgZGlkU3RhcnRNb21l
bnR1bVBoYXNlKHBhZ2VJZGVudGlmaWVyLCBldmVudCk7CisgICAgICAgIG1faXNJbk92ZXJyaWRk
ZW5QbGF0Zm9ybU1vbWVudHVtR2VzdHVyZSA9IHRydWU7CisgICAgfQogCi0gICAgYm9vbCBpc01v
bWVudHVtRXZlbnREdXJpbmdTeW50aGV0aWNHZXN0dXJlID0gaXNNb21lbnR1bUV2ZW50ICYmIG1f
Y3VycmVudEdlc3R1cmUuYWN0aXZlOworICAgIC8vIENvbnN1bWUgYW55IGluY29taW5nIG1vbWVu
dHVtIGV2ZW50cyB3aGlsZSB3ZSdyZSBnZW5lcmF0aW5nIGEgc3ludGhldGljCisgICAgLy8gbW9t
ZW50dW0gZ2VzdHVyZSAqb3IqIGEgcGxhdGZvcm0gbW9tZW50dW0gcGhhc2UgdGhhdCB3YXMgb3Zl
cnJpZGRlbgorICAgIC8vIGlzIHN0aWxsIHJ1bm5pbmcgYWZ0ZXIgd2UgZmluaXNoZWQgdGhlIHN5
bnRoZXRpYyBnZXN0dXJlLgorICAgIGJvb2wgc2hvdWxkSWdub3JlSW5jb21pbmdQbGF0Zm9ybUV2
ZW50ID0gaXNNb21lbnR1bUV2ZW50ICYmIChtX2lzSW5PdmVycmlkZGVuUGxhdGZvcm1Nb21lbnR1
bUdlc3R1cmUgfHwgbV9jdXJyZW50R2VzdHVyZS5hY3RpdmUpOworCisgICAgaWYgKGV2ZW50Lm1v
bWVudHVtUGhhc2UoKSA9PSBXZWJXaGVlbEV2ZW50OjpQaGFzZUVuZGVkKQorICAgICAgICBtX2lz
SW5PdmVycmlkZGVuUGxhdGZvcm1Nb21lbnR1bUdlc3R1cmUgPSBmYWxzZTsKIAogI2lmIEVOQUJM
RShNT01FTlRVTV9FVkVOVF9ESVNQQVRDSEVSX1RFTVBPUkFSWV9MT0dHSU5HKQotICAgIGlmIChp
c01vbWVudHVtRXZlbnREdXJpbmdTeW50aGV0aWNHZXN0dXJlKQorICAgIGlmIChzaG91bGRJZ25v
cmVJbmNvbWluZ1BsYXRmb3JtRXZlbnQpCiAgICAgICAgIG1fY3VycmVudEdlc3R1cmUuYWNjdW11
bGF0ZWRFdmVudE9mZnNldCArPSBldmVudC5kZWx0YSgpOwogCiAgICAgYXV0byBjb21iaW5lZFBo
YXNlID0gKGV2ZW50LnBoYXNlKCkgPDwgOCkgfCAoZXZlbnQubW9tZW50dW1QaGFzZSgpKTsKICAg
ICBtX2N1cnJlbnRMb2dTdGF0ZS50b3RhbEV2ZW50T2Zmc2V0ICs9IGV2ZW50LmRlbHRhKCkuaGVp
Z2h0KCk7Ci0gICAgaWYgKCFpc01vbWVudHVtRXZlbnREdXJpbmdTeW50aGV0aWNHZXN0dXJlKSB7
CisgICAgaWYgKCFzaG91bGRJZ25vcmVJbmNvbWluZ1BsYXRmb3JtRXZlbnQpIHsKICAgICAgICAg
Ly8gTG9nIGV2ZW50cyB0aGF0IHdlIGRvbid0IGJsb2NrIHRvIHRoZSBnZW5lcmF0ZWQgb2Zmc2V0
cyBsb2cgYXMgd2VsbCwKICAgICAgICAgLy8gZXZlbiB0aG91Z2ggd2UgZGlkbid0IHRlY2huaWNh
bGx5IGdlbmVyYXRlIHRoZW0sIGp1c3QgcGFzc2VkIHRoZW0gdGhyb3VnaC4KICAgICAgICAgbV9j
dXJyZW50TG9nU3RhdGUudG90YWxHZW5lcmF0ZWRPZmZzZXQgKz0gZXZlbnQuZGVsdGEoKS5oZWln
aHQoKTsKQEAgLTEyMSw4ICsxNDQsNyBAQCBib29sIE1vbWVudHVtRXZlbnREaXNwYXRjaGVyOjpo
YW5kbGVXaGVlbEV2ZW50KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudAogICAgIAog
I2VuZGlmCiAKLSAgICAvLyBDb25zdW1lIGFueSBub3JtYWwgbW9tZW50dW0gZXZlbnRzIHdoaWxl
IHdlJ3JlIGluc2lkZSBhIHN5bnRoZXRpYyBtb21lbnR1bSBnZXN0dXJlLgotICAgIHJldHVybiBp
c01vbWVudHVtRXZlbnREdXJpbmdTeW50aGV0aWNHZXN0dXJlOworICAgIHJldHVybiBzaG91bGRJ
Z25vcmVJbmNvbWluZ1BsYXRmb3JtRXZlbnQ7CiB9CiAKIHN0YXRpYyBmbG9hdCBhcHBLaXRTY3Jv
bGxNdWx0aXBsaWVyRm9yRXZlbnQoY29uc3QgV2ViV2hlZWxFdmVudCYgZXZlbnQpCkBAIC0xNzAs
NyArMTkyLDggQEAgdm9pZCBNb21lbnR1bUV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2hTeW50aGV0
aWNNb21lbnR1bUV2ZW50KFdlYldoZWVsRXZlbnQ6OlBoYXMKICAgICAgICAgbV9sYXN0SW5jb21p
bmdFdmVudC0+bW9kaWZpZXJzKCksCiAgICAgICAgIHRpbWUsCiAgICAgICAgIHRpbWUsCi0gICAg
ICAgIHsgfSk7CisgICAgICAgIHsgfSwKKyAgICAgICAgV2ViV2hlZWxFdmVudDo6TW9tZW50dW1F
bmRUeXBlOjpVbmtub3duKTsKICAgICBtX2Rpc3BhdGNoZXIuaW50ZXJuYWxXaGVlbEV2ZW50KG1f
Y3VycmVudEdlc3R1cmUucGFnZUlkZW50aWZpZXIsIHN5bnRoZXRpY0V2ZW50LCBtX2xhc3RSdWJi
ZXJCYW5kYWJsZUVkZ2VzLCBFdmVudERpc3BhdGNoZXI6OldoZWVsRXZlbnRPcmlnaW46Ok1vbWVu
dHVtRXZlbnREaXNwYXRjaGVyKTsKIAogI2lmIEVOQUJMRShNT01FTlRVTV9FVkVOVF9ESVNQQVRD
SEVSX1RFTVBPUkFSWV9MT0dHSU5HKQpAQCAtMjIzLDcgKzI0Niw3IEBAIHZvaWQgTW9tZW50dW1F
dmVudERpc3BhdGNoZXI6OmRpZEVuZE1vbWVudHVtUGhhc2UoKQogICAgIGRpc3BhdGNoU3ludGhl
dGljTW9tZW50dW1FdmVudChXZWJXaGVlbEV2ZW50OjpQaGFzZUVuZGVkLCB7IH0pOwogCiAjaWYg
RU5BQkxFKE1PTUVOVFVNX0VWRU5UX0RJU1BBVENIRVJfVEVNUE9SQVJZX0xPR0dJTkcpCi0gICAg
UkVMRUFTRV9MT0coU2Nyb2xsQW5pbWF0aW9ucywgIk1vbWVudHVtRXZlbnREaXNwYXRjaGVyIHNh
dyBtb21lbnR1bSBlbmQgcGhhc2Ugd2l0aCB0b3RhbCBvZmZzZXQgJS4xZiAlLjFmLCBkdXJhdGlv
biAlZiAoZXZlbnQgb2Zmc2V0IHdvdWxkIGhhdmUgYmVlbiAlLjFmICUuMWYpICh0YWlsIGluZGV4
ICVkIG9mICV6dSkiLCBtX2N1cnJlbnRHZXN0dXJlLmN1cnJlbnRPZmZzZXQud2lkdGgoKSwgbV9j
dXJyZW50R2VzdHVyZS5jdXJyZW50T2Zmc2V0LmhlaWdodCgpLCAoTW9ub3RvbmljVGltZTo6bm93
KCkgLSBtX2N1cnJlbnRHZXN0dXJlLnN0YXJ0VGltZSkuc2Vjb25kcygpLCBtX2N1cnJlbnRHZXN0
dXJlLmFjY3VtdWxhdGVkRXZlbnRPZmZzZXQud2lkdGgoKSwgbV9jdXJyZW50R2VzdHVyZS5hY2N1
bXVsYXRlZEV2ZW50T2Zmc2V0LmhlaWdodCgpLCBtX2N1cnJlbnRHZXN0dXJlLmN1cnJlbnRUYWls
RGVsdGFJbmRleCwgbV9jdXJyZW50R2VzdHVyZS50YWlsRGVsdGFUYWJsZS5zaXplKCkpOworICAg
IFJFTEVBU0VfTE9HKFNjcm9sbEFuaW1hdGlvbnMsICJNb21lbnR1bUV2ZW50RGlzcGF0Y2hlciBl
bmRpbmcgc3ludGhldGljIG1vbWVudHVtIHBoYXNlIHdpdGggdG90YWwgb2Zmc2V0ICUuMWYgJS4x
ZiwgZHVyYXRpb24gJWYgKGV2ZW50IG9mZnNldCB3b3VsZCBoYXZlIGJlZW4gJS4xZiAlLjFmKSAo
dGFpbCBpbmRleCAlZCBvZiAlenUpIiwgbV9jdXJyZW50R2VzdHVyZS5jdXJyZW50T2Zmc2V0Lndp
ZHRoKCksIG1fY3VycmVudEdlc3R1cmUuY3VycmVudE9mZnNldC5oZWlnaHQoKSwgKE1vbm90b25p
Y1RpbWU6Om5vdygpIC0gbV9jdXJyZW50R2VzdHVyZS5zdGFydFRpbWUpLnNlY29uZHMoKSwgbV9j
dXJyZW50R2VzdHVyZS5hY2N1bXVsYXRlZEV2ZW50T2Zmc2V0LndpZHRoKCksIG1fY3VycmVudEdl
c3R1cmUuYWNjdW11bGF0ZWRFdmVudE9mZnNldC5oZWlnaHQoKSwgbV9jdXJyZW50R2VzdHVyZS5j
dXJyZW50VGFpbERlbHRhSW5kZXgsIG1fY3VycmVudEdlc3R1cmUudGFpbERlbHRhVGFibGUuc2l6
ZSgpKTsKICAgICBtX2Rpc3BhdGNoZXIucXVldWUoKS5kaXNwYXRjaEFmdGVyKDFfcywgW3RoaXNd
IHsKICAgICAgICAgZmx1c2hMb2coKTsKICAgICB9KTsKQEAgLTI0Miw3ICsyNjUsNyBAQCB2b2lk
IE1vbWVudHVtRXZlbnREaXNwYXRjaGVyOjpzZXRTY3JvbGxpbmdBY2NlbGVyYXRpb25DdXJ2ZShX
ZWJDb3JlOjpQYWdlSWRlbnRpZgogI2lmIEVOQUJMRShNT01FTlRVTV9FVkVOVF9ESVNQQVRDSEVS
X1RFTVBPUkFSWV9MT0dHSU5HKQogICAgIFdURjo6VGV4dFN0cmVhbSBzdHJlYW0oV1RGOjpUZXh0
U3RyZWFtOjpMaW5lTW9kZTo6U2luZ2xlTGluZSk7CiAgICAgc3RyZWFtIDw8IGN1cnZlOwotICAg
IFJFTEVBU0VfTE9HKFNjcm9sbEFuaW1hdGlvbnMsICJNb21lbnR1bUV2ZW50RGlzcGF0Y2hlciBz
ZXQgY3VydmUgJXMiLCBzdHJlYW0ucmVsZWFzZSgpLnV0ZjgoKS5kYXRhKCkpOworICAgIFJFTEVB
U0VfTE9HKFNjcm9sbEFuaW1hdGlvbnMsICJNb21lbnR1bUV2ZW50RGlzcGF0Y2hlciBzZXQgY3Vy
dmUgJXtwdWJsaWN9cyIsIHN0cmVhbS5yZWxlYXNlKCkudXRmOCgpLmRhdGEoKSk7CiAjZW5kaWYK
IH0KIApAQCAtMjk5LDcgKzMyMiw3IEBAIHZvaWQgTW9tZW50dW1FdmVudERpc3BhdGNoZXI6OnBh
Z2VTY3JlZW5EaWRDaGFuZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlECiAgICAgICAg
IHN0YXJ0RGlzcGxheUxpbmsoKTsKIH0KIAotV2ViQ29yZTo6RmxvYXRTaXplIE1vbWVudHVtRXZl
bnREaXNwYXRjaGVyOjpjb25zdW1lRGVsdGFGb3JDdXJyZW50VGltZSgpCitzdGQ6Om9wdGlvbmFs
PFdlYkNvcmU6OkZsb2F0U2l6ZT4gTW9tZW50dW1FdmVudERpc3BhdGNoZXI6OmNvbnN1bWVEZWx0
YUZvckN1cnJlbnRUaW1lKCkKIHsKICAgICBXZWJDb3JlOjpGbG9hdFNpemUgZGVsdGE7CiAKQEAg
LTMxMSw3ICszMzQsNyBAQCBXZWJDb3JlOjpGbG9hdFNpemUgTW9tZW50dW1FdmVudERpc3BhdGNo
ZXI6OmNvbnN1bWVEZWx0YUZvckN1cnJlbnRUaW1lKCkKICAgICAgICAgaWYgKG1fY3VycmVudEdl
c3R1cmUuY3VycmVudFRhaWxEZWx0YUluZGV4IDwgbV9jdXJyZW50R2VzdHVyZS50YWlsRGVsdGFU
YWJsZS5zaXplKCkpCiAgICAgICAgICAgICBkZWx0YSA9IC1tX2N1cnJlbnRHZXN0dXJlLnRhaWxE
ZWx0YVRhYmxlW21fY3VycmVudEdlc3R1cmUuY3VycmVudFRhaWxEZWx0YUluZGV4KytdOwogICAg
ICAgICBlbHNlCi0gICAgICAgICAgICBkZWx0YSA9IHsgfTsKKyAgICAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CiAgICAgfQogCiAgICAgbV9jdXJyZW50R2VzdHVyZS5jdXJyZW50T2Zmc2V0
ICs9IGRlbHRhOwpAQCAtMzMxLDcgKzM1NCwxNiBAQCB2b2lkIE1vbWVudHVtRXZlbnREaXNwYXRj
aGVyOjpkaXNwbGF5V2FzUmVmcmVzaGVkKFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheUlEIGRpcwog
ICAgIGlmICghZGlzcGxheVByb3BlcnRpZXMgfHwgZGlzcGxheUlEICE9IGRpc3BsYXlQcm9wZXJ0
aWVzLT5kaXNwbGF5SUQpCiAgICAgICAgIHJldHVybjsKIAotICAgIGRpc3BhdGNoU3ludGhldGlj
TW9tZW50dW1FdmVudChXZWJXaGVlbEV2ZW50OjpQaGFzZUNoYW5nZWQsIGNvbnN1bWVEZWx0YUZv
ckN1cnJlbnRUaW1lKCkpOworICAgIGF1dG8gZGVsdGEgPSBjb25zdW1lRGVsdGFGb3JDdXJyZW50
VGltZSgpOworICAgIGlmICghZGVsdGEpIHsKKyNpZiBFTkFCTEUoTU9NRU5UVU1fRVZFTlRfRElT
UEFUQ0hFUl9URU1QT1JBUllfTE9HR0lORykKKyAgICAgICAgUkVMRUFTRV9MT0coU2Nyb2xsQW5p
bWF0aW9ucywgIk1vbWVudHVtRXZlbnREaXNwYXRjaGVyIGNvbXBsZXRlZCBzeW50aGV0aWMgbW9t
ZW50dW0gcGhhc2UiKTsKKyNlbmRpZgorICAgICAgICBkaWRFbmRNb21lbnR1bVBoYXNlKCk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBkaXNwYXRjaFN5bnRoZXRpY01vbWVudHVtRXZl
bnQoV2ViV2hlZWxFdmVudDo6UGhhc2VDaGFuZ2VkLCAqZGVsdGEpOwogfQogCiB2b2lkIE1vbWVu
dHVtRXZlbnREaXNwYXRjaGVyOjpkaWRSZWNlaXZlU2Nyb2xsRXZlbnRXaXRoSW50ZXJ2YWwoV2Vi
Q29yZTo6RmxvYXRTaXplIHNpemUsIFNlY29uZHMgZnJhbWVJbnRlcnZhbCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL01vbWVudHVtRXZlbnREaXNwYXRjaGVy
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Nb21lbnR1bUV2ZW50RGlzcGF0
Y2hlci5oCmluZGV4IDVjZTE5NDRhYzQ0NDFmNDFhZmUyMTY5NzNhZmFlOWM2ZjljMDdkYjIuLjM4
M2Y3NWUxMDY4ZDM2MDUwMTIwYWVlNzlhYWJlZTU3OWQ4ODhlY2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL01vbWVudHVtRXZlbnREaXNwYXRjaGVyLmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvTW9tZW50dW1FdmVudERpc3BhdGNo
ZXIuaApAQCAtMjcsNyArMjcsNyBAQAogCiAjaWYgRU5BQkxFKE1PTUVOVFVNX0VWRU5UX0RJU1BB
VENIRVIpCiAKLSNkZWZpbmUgRU5BQkxFX01PTUVOVFVNX0VWRU5UX0RJU1BBVENIRVJfVEVNUE9S
QVJZX0xPR0dJTkcgMAorI2RlZmluZSBFTkFCTEVfTU9NRU5UVU1fRVZFTlRfRElTUEFUQ0hFUl9U
RU1QT1JBUllfTE9HR0lORyAxCiAKICNpbmNsdWRlICJEaXNwbGF5TGlua09ic2VydmVySUQuaCIK
ICNpbmNsdWRlICJTY3JvbGxpbmdBY2NlbGVyYXRpb25DdXJ2ZS5oIgpAQCAtODYsNyArODYsNyBA
QCBwcml2YXRlOgogICAgIHZvaWQgZXF1YWxpemVUYWlsR2FwcygpOwogCiAgICAgLy8gT25jZSBj
b25zdW1lZCwgdGhpcyBkZWx0YSAqbXVzdCogYmUgZGlzcGF0Y2hlZCBpbiBhbiBldmVudC4KLSAg
ICBXZWJDb3JlOjpGbG9hdFNpemUgY29uc3VtZURlbHRhRm9yQ3VycmVudFRpbWUoKTsKKyAgICBz
dGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0U2l6ZT4gY29uc3VtZURlbHRhRm9yQ3VycmVudFRp
bWUoKTsKIAogICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBvZmZzZXRBdFRpbWUoU2Vjb25kcyk7CiAg
ICAgc3RkOjpwYWlyPFdlYkNvcmU6OkZsb2F0U2l6ZSwgV2ViQ29yZTo6RmxvYXRTaXplPiBjb21w
dXRlTmV4dERlbHRhKFdlYkNvcmU6OkZsb2F0U2l6ZSBjdXJyZW50VW5hY2NlbGVyYXRlZERlbHRh
KTsKQEAgLTEyNSw2ICsxMjUsNyBAQCBwcml2YXRlOgogICAgIHN0ZDo6b3B0aW9uYWw8V2FsbFRp
bWU+IG1fbGFzdFNjcm9sbFRpbWVzdGFtcDsKICAgICBzdGQ6Om9wdGlvbmFsPFdlYldoZWVsRXZl
bnQ+IG1fbGFzdEluY29taW5nRXZlbnQ7CiAgICAgV2ViQ29yZTo6UmVjdEVkZ2VzPGJvb2w+IG1f
bGFzdFJ1YmJlckJhbmRhYmxlRWRnZXM7CisgICAgYm9vbCBtX2lzSW5PdmVycmlkZGVuUGxhdGZv
cm1Nb21lbnR1bUdlc3R1cmUgeyBmYWxzZSB9OwogCiAgICAgc3RydWN0IHsKICAgICAgICAgYm9v
bCBhY3RpdmUgeyBmYWxzZSB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448353</attachid>
            <date>2022-01-04 17:40:15 -0800</date>
            <delta_ts>2022-01-04 22:12:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234535-20220104174014.patch</filename>
            <type>text/plain</type>
            <size>26398</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3NTk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDg4MWY1ODMwNGQyMmIwNjdiYTZmYjUw
OTZkZGZmOTdlYjExN2Q4OWEuLjMxZWI1NGQ2YTk2OGM0NTAxN2U1Yjg1YjQxNjIzOGY2NWNlNjlh
YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjItMDEtMDQgIFRpbSBIb3J0b24gIDx0aW1vdGh5
X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgTW9tZW50dW0gRXZlbnQgRGlzcGF0Y2hlcjog
TW9tZW50dW0gdGFpbHMgbWF5IGdldCB0cnVuY2F0ZWQgaWYgdGhlIGR1cmF0aW9uIHJ1bnMgbG9u
Z2VyIHRoYW4gdGhlIHN5c3RlbSdzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzQ1MzUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg2MzM4MTA1Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICAqIHd0Zi9QbGF0
Zm9ybUhhdmUuaDoKKyAgICAgICAgQWRkIGEgSEFWRSBmb3Iga0lPSElERXZlbnRTY3JvbGxNb21l
bnR1bUludGVycnVwdGVkLgorCiAyMDIxLTEyLTMxICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBh
cHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gUmVwbGFjZSBVRElTODYgd2l0aCBaeWRpcwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwppbmRleCAwOTJhMGJlNjVmMTg2OWZjMjc0MjA5N2EzMzk4ZDYwZGZjNjM4ZjhiLi44NDA3MTQ4
N2FhZDZlOWQ4OWI1NjRmNTNjMWJmODljMGFkYzlmMDQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDc0
IEBACisyMDIyLTAxLTA0ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgor
CisgICAgICAgIE1vbWVudHVtIEV2ZW50IERpc3BhdGNoZXI6IE1vbWVudHVtIHRhaWxzIG1heSBn
ZXQgdHJ1bmNhdGVkIGlmIHRoZSBkdXJhdGlvbiBydW5zIGxvbmdlciB0aGFuIHRoZSBzeXN0ZW0n
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0NTM1
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NjMzODEwNT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgQ3VycmVudGx5LCBzeW50aGV0aWMgbW9tZW50dW0g
ZGlzcGF0Y2ggaXMgc3RyaWN0bHkgdGllZCB0byB0aGUgZHVyYXRpb24KKyAgICAgICAgb2YgdGhl
IHJlYWwgcGxhdGZvcm0gbW9tZW50dW0gcGhhc2UsIHdoaWNoIGhhcyB0d28gdW5mb3J0dW5hdGUg
aW1wbGljYXRpb25zOgorCisgICAgICAgIC0gaWYgb3VyIHBoYXNlIHJ1bnMgc2hvcnRlciB0aGFu
IHRoZSBwbGF0Zm9ybSBwaGFzZSwgd2UnbGwga2VlcCBkaXNwYXRjaGluZworICAgICAgICAgIHpl
cm8tZGVsdGEgZXZlbnRzIHVudGlsIHRoZSBwbGF0Zm9ybSBtb21lbnR1bSBlbmRzCisKKyAgICAg
ICAgLSBtb3JlIGltcG9ydGFudGx5LCBpZiBvdXIgcGhhc2UgcnVucyBsb25nZXIsIGl0IHdpbGwg
YmUgYWJydXB0bHkgdGVybWluYXRlZAorICAgICAgICAgIHdoZW4gdGhlIHBsYXRmb3JtIG1vbWVu
dHVtIGVuZHMKKworICAgICAgICBJbiBwcmFjdGljZSwgb3VyIHN5bnRoZXRpYyBwaGFzZSBpcyB2
ZXJ5IGNsb3NlIGluIGR1cmF0aW9uIHRvIHRoZSBzeXN0ZW0gb25lLAorICAgICAgICBzbyB0aGUg
aW1wYWN0IGlzIG1pbmltYWwuIEJ1dCwgdG8gYmUgc2FmZSwgZGlzZW50YWdsZSB0aGUgdHdvIGR1
cmF0aW9ucywKKyAgICAgICAgdXNpbmcgYSBuZXcgYml0IGZyb20gdGhlIHBsYXRmb3JtIHRvIGRl
dGVybWluZSBpZiB0aGUgc3lzdGVtIG1vbWVudHVtIHBoYXNlCisgICAgICAgIHdhcyBpbnRlcnJ1
cHRlZCBieSB0aGUgdXNlciAoZS5nLiBieSB0YXBwaW5nIHRoZSB0cmFja3BhZCkgb3IgbmF0dXJh
bGx5LAorICAgICAgICBhbmQgaWdub3JpbmcgdGhlIGVuZGVkIGV2ZW50IGluIHRoZSBuYXR1cmFs
IGNhc2UsIGFsbG93aW5nIHN5bnRoZXRpYworICAgICAgICBldmVudHMgdG8gY29udGludWUgYmVp
bmcgZGlzcGF0Y2hlZC4KKworICAgICAgICAqIFNoYXJlZC9XZWJXaGVlbEV2ZW50LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViV2hlZWxFdmVudDo6V2ViV2hlZWxFdmVudCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYldoZWVsRXZlbnQ6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YldoZWVsRXZlbnQ6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYldoZWVsRXZlbnQuaDoK
KyAgICAgICAgKFdlYktpdDo6V2ViV2hlZWxFdmVudDo6bW9tZW50dW1FbmRUeXBlIGNvbnN0KToK
KyAgICAgICAgKiBTaGFyZWQvV2ViV2hlZWxFdmVudENvYWxlc2Nlci5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYldoZWVsRXZlbnRDb2FsZXNjZXI6OmNvYWxlc2NlKToKKyAgICAgICAgUGx1bWIg
bW9tZW50dW1FbmRUeXBlIGFsb25nIG9uIFdlYldoZWVsRXZlbnQuIFBsYXRmb3JtcyB0aGF0IGRv
bid0CisgICAgICAgIHByb3ZpZGUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGludGVycnVwdGlvbiBy
ZWFzb24gd2lsbCBhbHdheXMgc2F5IFVua25vd24uCisKKyAgICAgICAgKiBTaGFyZWQvbWFjL1dl
YkV2ZW50RmFjdG9yeS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnRGYWN0b3J5OjpjcmVh
dGVXZWJXaGVlbEV2ZW50KToKKyAgICAgICAgT25seSBib3RoZXIgbG9va2luZyB1cCB0aGUgQ0dF
dmVudC9JT0hJREV2ZW50IG9uY2UsIGFuZCBleHRyYWN0IGFsbAorICAgICAgICByZWxldmFudCBk
ZXRhaWxzIGluIG9uZSBnby4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Nb21lbnR1
bUV2ZW50RGlzcGF0Y2hlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok1vbWVudHVtRXZlbnREaXNw
YXRjaGVyOjpoYW5kbGVXaGVlbEV2ZW50KToKKyAgICAgICAgRG9uJ3QgaW50ZXJydXB0IHRoZSBz
eW50aGV0aWMgbW9tZW50dW0gcGhhc2UgaWYgdGhlIG1vbWVudHVtLWVuZGVkIGV2ZW50CisgICAg
ICAgIGNvbWVzIGZyb20gdGhlIG5hdHVyYWwgZW5kIG9mIHRoZSBkZWNlbGVyYXRpb24gaW5zdGVh
ZCBvZiBhbiBpbnRlcnJ1cHRpb24KKyAgICAgICAgKG9yIGFuIHVua25vd24gcmVhc29uKS4KKwor
ICAgICAgICBLZWVwIHRyYWNrIG9mIHdoZXRoZXIgd2UncmUgaW4gdGhlIG1pZGRsZSBvZiBhIHBs
YXRmb3JtIG1vbWVudHVtIHBoYXNlCisgICAgICAgIHRoYXQgd2UgY2hvc2UgKGF0IG1vbWVudHVt
LWJlZ2luIHRpbWUpIHRvIG92ZXJyaWRlLiBXaGVuIGRlY2lkaW5nCisgICAgICAgIHdoZXRoZXIg
dG8gZWF0IGFuIGluY29taW5nIGV2ZW50LCB0YWtlICpib3RoKiB0aGlzIG5ldyBiaXQgYW5kIHdo
ZXRoZXIKKyAgICAgICAgd2UgYXJlIGN1cnJlbnRseSBpbiB0aGUgbWlkZGxlIG9mIGEgc3ludGhl
dGljIHBoYXNlIGludG8gYWNjb3VudC4gSXQKKyAgICAgICAgaXMgaW1wb3J0YW50IHRvIGNvbnRp
bnVlIGVhdGluZyBpbmNvbWluZyBldmVudHMgaW4gdGhlIGNhc2Ugd2hlcmUgCisgICAgICAgIHRo
ZSBzeW50aGV0aWMgcGhhc2UgZW5kZWQgZWFybHkgKHNvIGBhY3RpdmVgIGJlY2FtZSBmYWxzZSkg
YnV0IHRoZQorICAgICAgICBwbGF0Zm9ybSBwaGFzZSBjb250aW51ZXMuCisKKyAgICAgICAgKFdl
YktpdDo6TW9tZW50dW1FdmVudERpc3BhdGNoZXI6OmRpc3BhdGNoU3ludGhldGljTW9tZW50dW1F
dmVudCk6CisgICAgICAgIChXZWJLaXQ6Ok1vbWVudHVtRXZlbnREaXNwYXRjaGVyOjpkaWRFbmRN
b21lbnR1bVBoYXNlKToKKyAgICAgICAgQWRqdXN0IHNvbWUgbG9nZ2luZyB3b3JkaW5nIHRvIGJl
IG1vcmUgcHJlY2lzZS4KKworICAgICAgICAoV2ViS2l0OjpNb21lbnR1bUV2ZW50RGlzcGF0Y2hl
cjo6c2V0U2Nyb2xsaW5nQWNjZWxlcmF0aW9uQ3VydmUpOgorICAgICAgICBNYWtlIHRoaXMgbG9n
IHB1YmxpYyBzbyB0aGF0IHRoZSBjdXJ2ZSB2YWx1ZSBpcyB2aXNpYmxlIGluIGxvZ3MuCisKKyAg
ICAgICAgKFdlYktpdDo6TW9tZW50dW1FdmVudERpc3BhdGNoZXI6OmNvbnN1bWVEZWx0YUZvckN1
cnJlbnRUaW1lKToKKyAgICAgICAgTWFrZSBjb25zdW1lRGVsdGFGb3JDdXJyZW50VGltZSBpbmZv
cm0gdGhlIGNsaWVudCB2aWEgYW4gb3B0aW9uYWwgd2hlbgorICAgICAgICB3ZSBhcmUgYXQgdGhl
IGVuZCBvZiB0aGUgZGVsdGEgdGFibGUuCisKKyAgICAgICAgKFdlYktpdDo6TW9tZW50dW1FdmVu
dERpc3BhdGNoZXI6OmRpc3BsYXlXYXNSZWZyZXNoZWQpOgorICAgICAgICBTdG9wIHRoZSBzeW50
aGV0aWMgbW9tZW50dW0gcGhhc2UgYXMgc29vbiBhcyB3ZSBydW4gb3V0IG9mIGRlbHRhcy4KKwor
ICAgICAgICAoV2ViS2l0OjpNb21lbnR1bUV2ZW50RGlzcGF0Y2hlcjo6Y29tcHV0ZU5leHREZWx0
YSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL01vbWVudHVtRXZlbnREaXNwYXRjaGVy
Lmg6CisKIDIwMjItMDEtMDQgIFJ5YW4gSGFkZGFkICA8cnlhbmhhZGRhZEBhcHBsZS5jb20+CiAK
ICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyODczNzQuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5o
CmluZGV4IDQ0OWM2M2UzMDllYmNjMTdhYTAyNDc5YTI3MWRkNmExMWY5YTgxNWEuLjFhNjJiYmFm
M2VmMzBjMzc5NWQ4MGM0NmFlMTUzYjg1YmNmNmYxYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL1BsYXRmb3JtSGF2ZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCkBA
IC0xMTQwLDMgKzExNDAsNyBAQAogI2lmIFBMQVRGT1JNKENPQ09BKQogI2RlZmluZSBIQVZFX0NG
QVVUT1JFTEVBU0UgMQogI2VuZGlmCisKKyNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hf
VkVSU0lPTl9NQVhfQUxMT1dFRCA+PSAxMjAyMDAKKyNkZWZpbmUgSEFWRV9QTEFURk9STV9TQ1JP
TExfTU9NRU5UVU1fSU5URVJSVVBUSU9OX1JFQVNPTiAxCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9JT0tpdFNQSU1hYy5oIGIvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9zcGkvbWFjL0lPS2l0U1BJTWFjLmgKaW5kZXggZDQzMGI4MTVkNDRjYTU0MDNm
ZDQxMTAxZWJmZTM0NDc1MjNkZDdkYi4uOGRlODM2MjVlYWVkNzRmNjRiOGNiOTJiMzgwNjk5MWRh
NWU3NTk5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL0lPS2l0
U1BJTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL0lPS2l0U1BJTWFj
LmgKQEAgLTgxLDEzICs4MSwxOCBAQCBlbnVtIHsKICAgICBrSU9ISURFdmVudFR5cGVEaWdpdGl6
ZXIgPSAxMSwKICAgICBrSU9ISURFdmVudFR5cGVOYXZpZ2F0aW9uU3dpcGUgPSAxNiwKICAgICBr
SU9ISURFdmVudFR5cGVGb3JjZSA9IDMyLAotCiB9OwogdHlwZWRlZiB1aW50MzJfdCBJT0hJREV2
ZW50VHlwZTsKIAogdHlwZWRlZiB1aW50MzJfdCBJT0hJREV2ZW50RmllbGQ7CiB0eXBlZGVmIHVp
bnQ2NF90IElPSElERXZlbnRTZW5kZXJJRDsKIAorCitlbnVtIHsKKyAgICBrSU9ISURFdmVudFNj
cm9sbE1vbWVudHVtSW50ZXJydXB0ZWQgPSAoMSA8PCA0KSwKK307Cit0eXBlZGVmIHVpbnQ4X3Qg
SU9ISURFdmVudFNjcm9sbE1vbWVudHVtQml0czsKKwogI2lmZGVmIF9fTFA2NF9fCiB0eXBlZGVm
IGRvdWJsZSBJT0hJREZsb2F0OwogI2Vsc2UKQEAgLTEwMyw2ICsxMDgsNyBAQCBzdGF0aWMgY29u
c3QgSU9ISURFdmVudEZpZWxkIGtJT0hJREV2ZW50RmllbGRTY3JvbGxZID0gKGtJT0hJREV2ZW50
RmllbGRTY3JvbGxCYQogdWludDY0X3QgSU9ISURFdmVudEdldFRpbWVTdGFtcChJT0hJREV2ZW50
UmVmKTsKIElPSElERmxvYXQgSU9ISURFdmVudEdldEZsb2F0VmFsdWUoSU9ISURFdmVudFJlZiwg
SU9ISURFdmVudEZpZWxkKTsKIElPSElERXZlbnRTZW5kZXJJRCBJT0hJREV2ZW50R2V0U2VuZGVy
SUQoSU9ISURFdmVudFJlZik7CitJT0hJREV2ZW50U2Nyb2xsTW9tZW50dW1CaXRzIElPSElERXZl
bnRHZXRTY3JvbGxNb21lbnR1bShJT0hJREV2ZW50UmVmKTsKIAogV1RGX0VYVEVSTl9DX0VORAog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJXaGVlbEV2ZW50LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYldoZWVsRXZlbnQuY3BwCmluZGV4IDUxYjJiOGUxYjVjNGQ5
NzA2NGRhYTAyYTQ0ODU0MjZiZDNhMTIzYTEuLjQzNWY3MDJkMTI3Zjg3OGE1NWRmZDE1ODRiYTFi
Y2VjOGNkNmU1NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYldoZWVsRXZl
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYldoZWVsRXZlbnQuY3BwCkBAIC00
NCw3ICs0NCw3IEBAIFdlYldoZWVsRXZlbnQ6OldlYldoZWVsRXZlbnQoVHlwZSB0eXBlLCBjb25z
dCBJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IEludFBvaW50CiB9CiAKICNpZiBQTEFURk9STShD
T0NPQSkKLVdlYldoZWVsRXZlbnQ6OldlYldoZWVsRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBJbnRQ
b2ludCYgcG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgRmxv
YXRTaXplJiBkZWx0YSwgY29uc3QgRmxvYXRTaXplJiB3aGVlbFRpY2tzLCBHcmFudWxhcml0eSBn
cmFudWxhcml0eSwgYm9vbCBkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UsIFBoYXNlIHBoYXNl
LCBQaGFzZSBtb21lbnR1bVBoYXNlLCBib29sIGhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMsIHVp
bnQzMl90IHNjcm9sbENvdW50LCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHVuYWNjZWxlcmF0
ZWRTY3JvbGxpbmdEZWx0YSwgT3B0aW9uU2V0PE1vZGlmaWVyPiBtb2RpZmllcnMsIFdhbGxUaW1l
IHRpbWVzdGFtcCwgV2FsbFRpbWUgaW9ISURFdmVudFRpbWVzdGFtcCwgc3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpGbG9hdFNpemU+IHJhd1BsYXRmb3JtRGVsdGEpCitXZWJXaGVlbEV2ZW50OjpXZWJX
aGVlbEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQ
b2ludCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IEZsb2F0U2l6ZSYgZGVsdGEsIGNvbnN0IEZsb2F0
U2l6ZSYgd2hlZWxUaWNrcywgR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIGJvb2wgZGlyZWN0aW9u
SW52ZXJ0ZWRGcm9tRGV2aWNlLCBQaGFzZSBwaGFzZSwgUGhhc2UgbW9tZW50dW1QaGFzZSwgYm9v
bCBoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzLCB1aW50MzJfdCBzY3JvbGxDb3VudCwgY29uc3Qg
V2ViQ29yZTo6RmxvYXRTaXplJiB1bmFjY2VsZXJhdGVkU2Nyb2xsaW5nRGVsdGEsIE9wdGlvblNl
dDxNb2RpZmllcj4gbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXAsIFdhbGxUaW1lIGlvSElE
RXZlbnRUaW1lc3RhbXAsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRTaXplPiByYXdQbGF0
Zm9ybURlbHRhLCBNb21lbnR1bUVuZFR5cGUgbW9tZW50dW1FbmRUeXBlKQogICAgIDogV2ViRXZl
bnQodHlwZSwgbW9kaWZpZXJzLCB0aW1lc3RhbXApCiAgICAgLCBtX3Bvc2l0aW9uKHBvc2l0aW9u
KQogICAgICwgbV9nbG9iYWxQb3NpdGlvbihnbG9iYWxQb3NpdGlvbikKQEAgLTUzLDYgKzUzLDcg
QEAgV2ViV2hlZWxFdmVudDo6V2ViV2hlZWxFdmVudChUeXBlIHR5cGUsIGNvbnN0IEludFBvaW50
JiBwb3NpdGlvbiwgY29uc3QgSW50UG9pbnQKICAgICAsIG1fZ3JhbnVsYXJpdHkoZ3JhbnVsYXJp
dHkpCiAgICAgLCBtX3BoYXNlKHBoYXNlKQogICAgICwgbV9tb21lbnR1bVBoYXNlKG1vbWVudHVt
UGhhc2UpCisgICAgLCBtX21vbWVudHVtRW5kVHlwZShtb21lbnR1bUVuZFR5cGUpCiAgICAgLCBt
X2RpcmVjdGlvbkludmVydGVkRnJvbURldmljZShkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2Up
CiAgICAgLCBtX2hhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMoaGFzUHJlY2lzZVNjcm9sbGluZ0Rl
bHRhcykKICAgICAsIG1faW9ISURFdmVudFRpbWVzdGFtcChpb0hJREV2ZW50VGltZXN0YW1wKQpA
QCAtODcsNiArODgsNyBAQCB2b2lkIFdlYldoZWVsRXZlbnQ6OmVuY29kZShJUEM6OkVuY29kZXIm
IGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCBtX2RlbHRhOwogICAgIGVuY29kZXIgPDwg
bV93aGVlbFRpY2tzOwogICAgIGVuY29kZXIgPDwgbV9ncmFudWxhcml0eTsKKyAgICBlbmNvZGVy
IDw8IG1fbW9tZW50dW1FbmRUeXBlOwogICAgIGVuY29kZXIgPDwgbV9kaXJlY3Rpb25JbnZlcnRl
ZEZyb21EZXZpY2U7CiAjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykgfHwgVVNF
KExJQldQRSkKICAgICBlbmNvZGVyIDw8IG1fcGhhc2U7CkBAIC0xMTUsNiArMTE3LDggQEAgYm9v
bCBXZWJXaGVlbEV2ZW50OjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBXZWJXaGVlbEV2
ZW50JiB0KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh0
Lm1fZ3JhbnVsYXJpdHkpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVy
LmRlY29kZSh0Lm1fbW9tZW50dW1FbmRUeXBlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IGlmICghZGVjb2Rlci5kZWNvZGUodC5tX2RpcmVjdGlvbkludmVydGVkRnJvbURldmljZSkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICNpZiBQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oR1RL
KSB8fCBVU0UoTElCV1BFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViV2hl
ZWxFdmVudC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViV2hlZWxFdmVudC5oCmluZGV4IGE5
ZWM4ZThhZmYwMDZmNmQ1MzlmYjg4YjczNjk3ZDYzNjlhZWNhODQuLjgyMWVlMjIwMTI4MzM2OGI1
Yzk5NTdmMGRhMTYzZDRlMWMzYjA2MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYldoZWVsRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJXaGVlbEV2ZW50
LmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJXZWJFdmVudC5oIgogI2luY2x1ZGUgPFdl
YkNvcmUvRmxvYXRTaXplLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRQb2ludC5oPgorI2luY2x1
ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC00OSwxMSAr
NTAsMTcgQEAgcHVibGljOgogICAgICAgICBQaGFzZU1heUJlZ2luICAgID0gMSA8PCA1LAogICAg
IH07CiAKKyAgICBlbnVtIGNsYXNzIE1vbWVudHVtRW5kVHlwZSA6IHVpbnQ4X3QgeworICAgICAg
ICBVbmtub3duLAorICAgICAgICBJbnRlcnJ1cHRlZCwKKyAgICAgICAgTmF0dXJhbCwKKyAgICB9
OworCiAgICAgV2ViV2hlZWxFdmVudCgpID0gZGVmYXVsdDsKIAogICAgIFdlYldoZWVsRXZlbnQo
VHlwZSwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJ
bnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgZGVsdGEs
IGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgd2hlZWxUaWNrcywgR3JhbnVsYXJpdHksIE9wdGlv
blNldDxNb2RpZmllcj4sIFdhbGxUaW1lIHRpbWVzdGFtcCk7CiAjaWYgUExBVEZPUk0oQ09DT0Ep
Ci0gICAgV2ViV2hlZWxFdmVudChUeXBlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRp
b24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgV2ViQ29y
ZTo6RmxvYXRTaXplJiBkZWx0YSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tz
LCBHcmFudWxhcml0eSwgYm9vbCBkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UsIFBoYXNlLCBQ
aGFzZSBtb21lbnR1bVBoYXNlLCBib29sIGhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMsIHVpbnQz
Ml90IHNjcm9sbENvdW50LCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHVuYWNjZWxlcmF0ZWRT
Y3JvbGxpbmdEZWx0YSwgT3B0aW9uU2V0PE1vZGlmaWVyPiwgV2FsbFRpbWUgdGltZXN0YW1wLCBX
YWxsVGltZSBpb0hJREV2ZW50VGltZXN0YW1wLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0
U2l6ZT4gcmF3UGxhdGZvcm1EZWx0YSk7CisgICAgV2ViV2hlZWxFdmVudChUeXBlLCBjb25zdCBX
ZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9i
YWxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBkZWx0YSwgY29uc3QgV2ViQ29y
ZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBHcmFudWxhcml0eSwgYm9vbCBkaXJlY3Rpb25JbnZl
cnRlZEZyb21EZXZpY2UsIFBoYXNlLCBQaGFzZSBtb21lbnR1bVBoYXNlLCBib29sIGhhc1ByZWNp
c2VTY3JvbGxpbmdEZWx0YXMsIHVpbnQzMl90IHNjcm9sbENvdW50LCBjb25zdCBXZWJDb3JlOjpG
bG9hdFNpemUmIHVuYWNjZWxlcmF0ZWRTY3JvbGxpbmdEZWx0YSwgT3B0aW9uU2V0PE1vZGlmaWVy
PiwgV2FsbFRpbWUgdGltZXN0YW1wLCBXYWxsVGltZSBpb0hJREV2ZW50VGltZXN0YW1wLCBzdGQ6
Om9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0U2l6ZT4gcmF3UGxhdGZvcm1EZWx0YSwgTW9tZW50dW1F
bmRUeXBlKTsKICNlbGlmIFBMQVRGT1JNKEdUSykgfHwgVVNFKExJQldQRSkKICAgICBXZWJXaGVl
bEV2ZW50KFR5cGUsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUm
IGRlbHRhLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHdoZWVsVGlja3MsIFBoYXNlLCBQaGFz
ZSBtb21lbnR1bVBoYXNlLCBHcmFudWxhcml0eSwgYm9vbCBoYXNQcmVjaXNlU2Nyb2xsaW5nRGVs
dGFzLCBPcHRpb25TZXQ8TW9kaWZpZXI+LCBXYWxsVGltZSB0aW1lc3RhbXApOwogI2VuZGlmCkBA
IC02Niw2ICs3Myw3IEBAIHB1YmxpYzoKICAgICBib29sIGRpcmVjdGlvbkludmVydGVkRnJvbURl
dmljZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlOyB9CiAg
ICAgUGhhc2UgcGhhc2UoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxQaGFzZT4obV9waGFz
ZSk7IH0KICAgICBQaGFzZSBtb21lbnR1bVBoYXNlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nh
c3Q8UGhhc2U+KG1fbW9tZW50dW1QaGFzZSk7IH0KKyAgICBNb21lbnR1bUVuZFR5cGUgbW9tZW50
dW1FbmRUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9tb21lbnR1bUVuZFR5cGU7IH0KICNpZiBQTEFU
Rk9STShDT0NPQSkgfHwgUExBVEZPUk0oR1RLKSB8fCBVU0UoTElCV1BFKQogICAgIGJvb2wgaGFz
UHJlY2lzZVNjcm9sbGluZ0RlbHRhcygpIGNvbnN0IHsgcmV0dXJuIG1faGFzUHJlY2lzZVNjcm9s
bGluZ0RlbHRhczsgfQogI2VuZGlmCkBAIC05MCw2ICs5OCw3IEBAIHByaXZhdGU6CiAgICAgdWlu
dDMyX3QgbV9waGFzZSB7IFBoYXNlOjpQaGFzZU5vbmUgfTsKICAgICB1aW50MzJfdCBtX21vbWVu
dHVtUGhhc2UgeyBQaGFzZTo6UGhhc2VOb25lIH07CiAKKyAgICBNb21lbnR1bUVuZFR5cGUgbV9t
b21lbnR1bUVuZFR5cGUgeyBNb21lbnR1bUVuZFR5cGU6OlVua25vd24gfTsKICAgICBib29sIG1f
ZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlIHsgZmFsc2UgfTsKICNpZiBQTEFURk9STShDT0NP
QSkgfHwgUExBVEZPUk0oR1RLKSB8fCBVU0UoTElCV1BFKQogICAgIGJvb2wgbV9oYXNQcmVjaXNl
U2Nyb2xsaW5nRGVsdGFzIHsgZmFsc2UgfTsKQEAgLTEwMywzICsxMTIsMTYgQEAgcHJpdmF0ZToK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxh
dGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJLaXQ6OldlYldoZWVsRXZlbnQ6Ok1vbWVudHVtRW5k
VHlwZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgV2ViS2l0OjpXZWJX
aGVlbEV2ZW50OjpNb21lbnR1bUVuZFR5cGUsCisgICAgV2ViS2l0OjpXZWJXaGVlbEV2ZW50OjpN
b21lbnR1bUVuZFR5cGU6OlVua25vd24sCisgICAgV2ViS2l0OjpXZWJXaGVlbEV2ZW50OjpNb21l
bnR1bUVuZFR5cGU6OkludGVycnVwdGVkLAorICAgIFdlYktpdDo6V2ViV2hlZWxFdmVudDo6TW9t
ZW50dW1FbmRUeXBlOjpOYXR1cmFsCisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViV2hlZWxFdmVudENvYWxlc2Nlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJXaGVlbEV2ZW50Q29hbGVzY2VyLmNwcAppbmRl
eCAwMTUyZTYwM2NjZjgxZTUxYjVlZGNlMmE3ZmVmNDBiYmI5YzA3YmE2Li5hMjIzNTljNzdkYjY4
OTYxYjBjMGNhMDQ1YzYwNzM3ODMyNDhhYzAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJXaGVlbEV2ZW50Q29hbGVzY2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJXaGVlbEV2ZW50Q29hbGVzY2VyLmNwcApAQCAtODEsNyArODEsNyBAQCBXZWJXaGVlbEV2
ZW50IFdlYldoZWVsRXZlbnRDb2FsZXNjZXI6OmNvYWxlc2NlKGNvbnN0IFdlYldoZWVsRXZlbnQm
IGEsIGNvbnN0IFdlYgogICAgIGlmIChhLnJhd1BsYXRmb3JtRGVsdGEoKSAmJiBiLnJhd1BsYXRm
b3JtRGVsdGEoKSkKICAgICAgICAgbWVyZ2VkUmF3UGxhdGZvcm1TY3JvbGxpbmdEZWx0YSA9IGEu
cmF3UGxhdGZvcm1EZWx0YSgpLnZhbHVlKCkgKyBiLnJhd1BsYXRmb3JtRGVsdGEoKS52YWx1ZSgp
OwogCi0gICAgcmV0dXJuIFdlYldoZWVsRXZlbnQoV2ViRXZlbnQ6OldoZWVsLCBiLnBvc2l0aW9u
KCksIGIuZ2xvYmFsUG9zaXRpb24oKSwgbWVyZ2VkRGVsdGEsIG1lcmdlZFdoZWVsVGlja3MsIGIu
Z3JhbnVsYXJpdHkoKSwgYi5kaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UoKSwgYi5waGFzZSgp
LCBiLm1vbWVudHVtUGhhc2UoKSwgYi5oYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzKCksIGIuc2Ny
b2xsQ291bnQoKSwgbWVyZ2VkVW5hY2NlbGVyYXRlZFNjcm9sbGluZ0RlbHRhLCBiLm1vZGlmaWVy
cygpLCBiLnRpbWVzdGFtcCgpLCBiLmlvSElERXZlbnRUaW1lc3RhbXAoKSwgbWVyZ2VkUmF3UGxh
dGZvcm1TY3JvbGxpbmdEZWx0YSk7CisgICAgcmV0dXJuIFdlYldoZWVsRXZlbnQoV2ViRXZlbnQ6
OldoZWVsLCBiLnBvc2l0aW9uKCksIGIuZ2xvYmFsUG9zaXRpb24oKSwgbWVyZ2VkRGVsdGEsIG1l
cmdlZFdoZWVsVGlja3MsIGIuZ3JhbnVsYXJpdHkoKSwgYi5kaXJlY3Rpb25JbnZlcnRlZEZyb21E
ZXZpY2UoKSwgYi5waGFzZSgpLCBiLm1vbWVudHVtUGhhc2UoKSwgYi5oYXNQcmVjaXNlU2Nyb2xs
aW5nRGVsdGFzKCksIGIuc2Nyb2xsQ291bnQoKSwgbWVyZ2VkVW5hY2NlbGVyYXRlZFNjcm9sbGlu
Z0RlbHRhLCBiLm1vZGlmaWVycygpLCBiLnRpbWVzdGFtcCgpLCBiLmlvSElERXZlbnRUaW1lc3Rh
bXAoKSwgbWVyZ2VkUmF3UGxhdGZvcm1TY3JvbGxpbmdEZWx0YSwgYi5tb21lbnR1bUVuZFR5cGUo
KSk7CiAjZWxpZiBQTEFURk9STShHVEspIHx8IFVTRShMSUJXUEUpCiAgICAgcmV0dXJuIFdlYldo
ZWVsRXZlbnQoV2ViRXZlbnQ6OldoZWVsLCBiLnBvc2l0aW9uKCksIGIuZ2xvYmFsUG9zaXRpb24o
KSwgbWVyZ2VkRGVsdGEsIG1lcmdlZFdoZWVsVGlja3MsIGIucGhhc2UoKSwgYi5tb21lbnR1bVBo
YXNlKCksIGIuZ3JhbnVsYXJpdHkoKSwgYi5oYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzKCksIGIu
bW9kaWZpZXJzKCksIGIudGltZXN0YW1wKCkpOwogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9tYWMvV2ViRXZlbnRGYWN0b3J5Lm1tCmluZGV4IDE1M2M5OTI4YWRmYzcyNjExZDUwYzQ3MzE4
NGYyNjBiZjBmYjEyMGQuLjkyMGRlMDBiYjY4NjIwMmI2YzFkNjRmYWFkNzEyMzU5YzE2MDI3OGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkubW0K
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5tbQpAQCAtNDEw
LDMzICs0MTAsMzEgQEAgV2ViV2hlZWxFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYldo
ZWVsRXZlbnQoTlNFdmVudCAqZXZlbnQsIE5TVmlldyAqd2luZG8KIAogICAgIGF1dG8gbW9kaWZp
ZXJzID0gbW9kaWZpZXJzRm9yRXZlbnQoZXZlbnQpOwogICAgIGF1dG8gdGltZXN0YW1wID0gV2Vi
Q29yZTo6ZXZlbnRUaW1lU3RhbXBTaW5jZTE5NzAoZXZlbnQudGltZXN0YW1wKTsKLQotICAgIGF1
dG8gaW9ISURFdmVudFRpbWVzdGFtcCA9IFsmXSgpIHsKKyAgICAKKyAgICBhdXRvIGlvSElERXZl
bnRXYWxsVGltZSA9IHRpbWVzdGFtcDsKKyAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0
U2l6ZT4gcmF3UGxhdGZvcm1EZWx0YTsKKyAgICBhdXRvIG1vbWVudHVtRW5kVHlwZSA9IFdlYldo
ZWVsRXZlbnQ6Ok1vbWVudHVtRW5kVHlwZTo6VW5rbm93bjsKKyAgICAKKyAgICAoWyZdIHsKICAg
ICAgICAgYXV0byBjZ0V2ZW50ID0gZXZlbnQuQ0dFdmVudDsKICAgICAgICAgaWYgKCFjZ0V2ZW50
KQotICAgICAgICAgICAgcmV0dXJuIGV2ZW50LnRpbWVzdGFtcDsKKyAgICAgICAgICAgIHJldHVy
bjsKIAogICAgICAgICBhdXRvIGlvSElERXZlbnQgPSBhZG9wdENGKENHRXZlbnRDb3B5SU9ISURF
dmVudChjZ0V2ZW50KSk7CiAgICAgICAgIGlmICghaW9ISURFdmVudCkKLSAgICAgICAgICAgIHJl
dHVybiBldmVudC50aW1lc3RhbXA7CisgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgYXV0
byBpb0hJREV2ZW50VGltZXN0YW1wID0gSU9ISURFdmVudEdldFRpbWVTdGFtcChpb0hJREV2ZW50
LmdldCgpKTsgLy8gSU9FdmVudFJlZiB0aW1lc3RhbXAgaXMgbWFjaF9hYnNvbHV0ZV90aW1lIHVu
aXRzLgotICAgICAgICByZXR1cm4gTW9ub3RvbmljVGltZTo6ZnJvbU1hY2hBYnNvbHV0ZVRpbWUo
aW9ISURFdmVudFRpbWVzdGFtcCkuc2Vjb25kc1NpbmNlRXBvY2goKS5zZWNvbmRzKCk7Ci0gICAg
fSgpOwotCi0gICAgYXV0byByYXdQbGF0Zm9ybURlbHRhID0gWyZdKCkgLT4gc3RkOjpvcHRpb25h
bDxXZWJDb3JlOjpGbG9hdFNpemU+IHsKLSAgICAgICAgYXV0byBjZ0V2ZW50ID0gZXZlbnQuQ0dF
dmVudDsKLSAgICAgICAgaWYgKCFjZ0V2ZW50KQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKLQotICAgICAgICBhdXRvIGlvSElERXZlbnQgPSBhZG9wdENGKENHRXZlbnRDb3B5SU9I
SURFdmVudChjZ0V2ZW50KSk7Ci0gICAgICAgIGlmICghaW9ISURFdmVudCkKLSAgICAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAgIGF1dG8gbW9ub3RvbmljSU9ISURFdmVudFRp
bWVzdGFtcCA9IE1vbm90b25pY1RpbWU6OmZyb21NYWNoQWJzb2x1dGVUaW1lKGlvSElERXZlbnRU
aW1lc3RhbXApLnNlY29uZHNTaW5jZUVwb2NoKCkuc2Vjb25kcygpOworICAgICAgICBpb0hJREV2
ZW50V2FsbFRpbWUgPSBXZWJDb3JlOjpldmVudFRpbWVTdGFtcFNpbmNlMTk3MChtb25vdG9uaWNJ
T0hJREV2ZW50VGltZXN0YW1wKTsKICAgICAgICAgCi0gICAgICAgIHJldHVybiB7IFdlYkNvcmU6
OkZsb2F0U2l6ZSgtSU9ISURFdmVudEdldEZsb2F0VmFsdWUoaW9ISURFdmVudC5nZXQoKSwga0lP
SElERXZlbnRGaWVsZFNjcm9sbFgpLCAtSU9ISURFdmVudEdldEZsb2F0VmFsdWUoaW9ISURFdmVu
dC5nZXQoKSwga0lPSElERXZlbnRGaWVsZFNjcm9sbFkpKSB9OwotICAgIH0oKTsKKyAgICAgICAg
cmF3UGxhdGZvcm1EZWx0YSA9IHsgV2ViQ29yZTo6RmxvYXRTaXplKC1JT0hJREV2ZW50R2V0Rmxv
YXRWYWx1ZShpb0hJREV2ZW50LmdldCgpLCBrSU9ISURFdmVudEZpZWxkU2Nyb2xsWCksIC1JT0hJ
REV2ZW50R2V0RmxvYXRWYWx1ZShpb0hJREV2ZW50LmdldCgpLCBrSU9ISURFdmVudEZpZWxkU2Ny
b2xsWSkpIH07CiAKLSAgICBhdXRvIGlvSElERXZlbnRXYWxsVGltZSA9IFdlYkNvcmU6OmV2ZW50
VGltZVN0YW1wU2luY2UxOTcwKGlvSElERXZlbnRUaW1lc3RhbXApOworI2lmIEhBVkUoUExBVEZP
Uk1fU0NST0xMX01PTUVOVFVNX0lOVEVSUlVQVElPTl9SRUFTT04pCisgICAgICAgIGJvb2wgbW9t
ZW50dW1XYXNJbnRlcnJ1cHRlZCA9IElPSElERXZlbnRHZXRTY3JvbGxNb21lbnR1bShpb0hJREV2
ZW50LmdldCgpKSAmIGtJT0hJREV2ZW50U2Nyb2xsTW9tZW50dW1JbnRlcnJ1cHRlZDsKKyAgICAg
ICAgbW9tZW50dW1FbmRUeXBlID0gbW9tZW50dW1XYXNJbnRlcnJ1cHRlZCA/IFdlYldoZWVsRXZl
bnQ6Ok1vbWVudHVtRW5kVHlwZTo6SW50ZXJydXB0ZWQgOiBXZWJXaGVlbEV2ZW50OjpNb21lbnR1
bUVuZFR5cGU6Ok5hdHVyYWw7CisjZW5kaWYKKyAgICB9KSgpOwogCiAgICAgaWYgKHBoYXNlID09
IFdlYldoZWVsRXZlbnQ6OlBoYXNlQ2FuY2VsbGVkKSB7CiAgICAgICAgIGRlbHRhWCA9IDA7CkBA
IC00NDksNyArNDQ3LDcgQEAgV2ViV2hlZWxFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdl
YldoZWVsRXZlbnQoTlNFdmVudCAqZXZlbnQsIE5TVmlldyAqd2luZG8KIAogICAgIHJldHVybiBX
ZWJXaGVlbEV2ZW50KFdlYkV2ZW50OjpXaGVlbCwgV2ViQ29yZTo6SW50UG9pbnQocG9zaXRpb24p
LCBXZWJDb3JlOjpJbnRQb2ludChnbG9iYWxQb3NpdGlvbiksIFdlYkNvcmU6OkZsb2F0U2l6ZShk
ZWx0YVgsIGRlbHRhWSksIFdlYkNvcmU6OkZsb2F0U2l6ZSh3aGVlbFRpY2tzWCwgd2hlZWxUaWNr
c1kpLAogICAgICAgICBncmFudWxhcml0eSwgZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlLCBw
aGFzZSwgbW9tZW50dW1QaGFzZSwgaGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcywKLSAgICAgICAg
c2Nyb2xsQ291bnQsIHVuYWNjZWxlcmF0ZWRTY3JvbGxpbmdEZWx0YSwgbW9kaWZpZXJzLCB0aW1l
c3RhbXAsIGlvSElERXZlbnRXYWxsVGltZSwgcmF3UGxhdGZvcm1EZWx0YSk7CisgICAgICAgIHNj
cm9sbENvdW50LCB1bmFjY2VsZXJhdGVkU2Nyb2xsaW5nRGVsdGEsIG1vZGlmaWVycywgdGltZXN0
YW1wLCBpb0hJREV2ZW50V2FsbFRpbWUsIHJhd1BsYXRmb3JtRGVsdGEsIG1vbWVudHVtRW5kVHlw
ZSk7CiB9CiAKIFdlYktleWJvYXJkRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJLZXli
b2FyZEV2ZW50KE5TRXZlbnQgKmV2ZW50LCBib29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBib29s
IHJlcGxhY2VzU29mdFNwYWNlLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5k
PiYgY29tbWFuZHMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9Nb21lbnR1bUV2ZW50RGlzcGF0Y2hlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9Nb21lbnR1bUV2ZW50RGlzcGF0Y2hlci5jcHAKaW5kZXggMjFmMjgyMTk1MTY0NGE3
YTViYjhmODBkYzg1ZjIwMDIzOWRhOWUyZi4uYjY4NmFmNGVhNjg5OGJlZTFkZGVhY2FiMjkwMzRl
YWNmODJjYzExNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
TW9tZW50dW1FdmVudERpc3BhdGNoZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL01vbWVudHVtRXZlbnREaXNwYXRjaGVyLmNwcApAQCAtODcsOCArODcsMjMgQEAg
Ym9vbCBNb21lbnR1bUV2ZW50RGlzcGF0Y2hlcjo6aGFuZGxlV2hlZWxFdmVudChXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciBwYWdlSWRlbnQKICAgICAgICAgLy8gbW9tZW50dW1QaGFzZSA9PSBQaGFz
ZUVuZGVkIHRoYXQgaW50ZXJydXB0cy4KICAgICAgICAgYm9vbCBldmVudFNob3VsZEludGVycnVw
dEdlc3R1cmUgPSAhaXNNb21lbnR1bUV2ZW50IHx8IGV2ZW50Lm1vbWVudHVtUGhhc2UoKSAhPSBX
ZWJXaGVlbEV2ZW50OjpQaGFzZUNoYW5nZWQ7CiAKLSAgICAgICAgaWYgKHBhZ2VJZGVudGlmaWVy
Q2hhbmdlZCB8fCBldmVudFNob3VsZEludGVycnVwdEdlc3R1cmUpCisgICAgICAgIGlmIChldmVu
dC5tb21lbnR1bVBoYXNlKCkgPT0gV2ViV2hlZWxFdmVudDo6UGhhc2VFbmRlZCkgeworI2lmIEVO
QUJMRShNT01FTlRVTV9FVkVOVF9ESVNQQVRDSEVSX1RFTVBPUkFSWV9MT0dHSU5HKQorICAgICAg
ICAgICAgUkVMRUFTRV9MT0coU2Nyb2xsQW5pbWF0aW9ucywgIk1vbWVudHVtRXZlbnREaXNwYXRj
aGVyIHNhdyBtb21lbnR1bSBlbmRlZCBwaGFzZSwgaW50ZXJydXB0ZWQ9JWQiLCBzdGF0aWNfY2Fz
dDxpbnQ+KGV2ZW50Lm1vbWVudHVtRW5kVHlwZSgpKSk7CisjZW5kaWYKKworICAgICAgICAgICAg
Ly8gSWdub3JlIG1vbWVudHVtUGhhc2UgPT0gUGhhc2VFbmRlZCBpZiBpdCB3YXMgZHVlIHRvIHRo
ZSBuYXR1cmFsCisgICAgICAgICAgICAvLyBlbmQgb2YgdGhlIGFuaW1hdGlvbiAoYXMgb3Bwb3Nl
ZCB0byBpbnRlcnJ1cHRpb24gYnkgcGxhY2luZyBmaW5nZXJzCisgICAgICAgICAgICAvLyBvbiB0
aGUgdHJhY2twYWQpLCBzbyB0aGF0IG91ciBtb21lbnR1bSBpcyBub3QgY3V0IHNob3J0IGlmIHRo
ZQorICAgICAgICAgICAgLy8gZGVjZWxlcmF0aW9uIHJ1bnMgbG9uZ2VyIHRoYW4gdGhlIHN5c3Rl
bSBjdXJ2ZS4KKyAgICAgICAgICAgIGlmIChldmVudC5tb21lbnR1bUVuZFR5cGUoKSA9PSBXZWJX
aGVlbEV2ZW50OjpNb21lbnR1bUVuZFR5cGU6Ok5hdHVyYWwpCisgICAgICAgICAgICAgICAgZXZl
bnRTaG91bGRJbnRlcnJ1cHRHZXN0dXJlID0gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBp
ZiAocGFnZUlkZW50aWZpZXJDaGFuZ2VkIHx8IGV2ZW50U2hvdWxkSW50ZXJydXB0R2VzdHVyZSkg
eworICAgICAgICAgICAgUkVMRUFTRV9MT0coU2Nyb2xsQW5pbWF0aW9ucywgIk1vbWVudHVtRXZl
bnREaXNwYXRjaGVyIGludGVycnVwdGluZyBzeW50aGV0aWMgbW9tZW50dW0gcGhhc2UiKTsKICAg
ICAgICAgICAgIGRpZEVuZE1vbWVudHVtUGhhc2UoKTsKKyAgICAgICAgfQogICAgIH0KIAogICAg
IGlmIChldmVudC5waGFzZSgpID09IFdlYldoZWVsRXZlbnQ6OlBoYXNlQmVnYW4gfHwgZXZlbnQu
cGhhc2UoKSA9PSBXZWJXaGVlbEV2ZW50OjpQaGFzZUNoYW5nZWQpIHsKQEAgLTEwMCwxOCArMTE1
LDI2IEBAIGJvb2wgTW9tZW50dW1FdmVudERpc3BhdGNoZXI6OmhhbmRsZVdoZWVsRXZlbnQoV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlkZW50CiAjZW5kaWYKICAgICB9CiAKLSAgICBpZiAo
ZXZlbnRTaG91bGRTdGFydFN5bnRoZXRpY01vbWVudHVtUGhhc2UocGFnZUlkZW50aWZpZXIsIGV2
ZW50KSkKKyAgICBpZiAoZXZlbnRTaG91bGRTdGFydFN5bnRoZXRpY01vbWVudHVtUGhhc2UocGFn
ZUlkZW50aWZpZXIsIGV2ZW50KSkgewogICAgICAgICBkaWRTdGFydE1vbWVudHVtUGhhc2UocGFn
ZUlkZW50aWZpZXIsIGV2ZW50KTsKKyAgICAgICAgbV9pc0luT3ZlcnJpZGRlblBsYXRmb3JtTW9t
ZW50dW1HZXN0dXJlID0gdHJ1ZTsKKyAgICB9CiAKLSAgICBib29sIGlzTW9tZW50dW1FdmVudER1
cmluZ1N5bnRoZXRpY0dlc3R1cmUgPSBpc01vbWVudHVtRXZlbnQgJiYgbV9jdXJyZW50R2VzdHVy
ZS5hY3RpdmU7CisgICAgLy8gQ29uc3VtZSBhbnkgaW5jb21pbmcgbW9tZW50dW0gZXZlbnRzIHdo
aWxlIHdlJ3JlIGdlbmVyYXRpbmcgYSBzeW50aGV0aWMKKyAgICAvLyBtb21lbnR1bSBnZXN0dXJl
ICpvciogYSBwbGF0Zm9ybSBtb21lbnR1bSBwaGFzZSB0aGF0IHdhcyBvdmVycmlkZGVuCisgICAg
Ly8gaXMgc3RpbGwgcnVubmluZyBhZnRlciB3ZSBmaW5pc2hlZCB0aGUgc3ludGhldGljIGdlc3R1
cmUuCisgICAgYm9vbCBzaG91bGRJZ25vcmVJbmNvbWluZ1BsYXRmb3JtRXZlbnQgPSBpc01vbWVu
dHVtRXZlbnQgJiYgKG1faXNJbk92ZXJyaWRkZW5QbGF0Zm9ybU1vbWVudHVtR2VzdHVyZSB8fCBt
X2N1cnJlbnRHZXN0dXJlLmFjdGl2ZSk7CisKKyAgICBpZiAoZXZlbnQubW9tZW50dW1QaGFzZSgp
ID09IFdlYldoZWVsRXZlbnQ6OlBoYXNlRW5kZWQpCisgICAgICAgIG1faXNJbk92ZXJyaWRkZW5Q
bGF0Zm9ybU1vbWVudHVtR2VzdHVyZSA9IGZhbHNlOwogCiAjaWYgRU5BQkxFKE1PTUVOVFVNX0VW
RU5UX0RJU1BBVENIRVJfVEVNUE9SQVJZX0xPR0dJTkcpCi0gICAgaWYgKGlzTW9tZW50dW1FdmVu
dER1cmluZ1N5bnRoZXRpY0dlc3R1cmUpCisgICAgaWYgKHNob3VsZElnbm9yZUluY29taW5nUGxh
dGZvcm1FdmVudCkKICAgICAgICAgbV9jdXJyZW50R2VzdHVyZS5hY2N1bXVsYXRlZEV2ZW50T2Zm
c2V0ICs9IGV2ZW50LmRlbHRhKCk7CiAKICAgICBhdXRvIGNvbWJpbmVkUGhhc2UgPSAoZXZlbnQu
cGhhc2UoKSA8PCA4KSB8IChldmVudC5tb21lbnR1bVBoYXNlKCkpOwogICAgIG1fY3VycmVudExv
Z1N0YXRlLnRvdGFsRXZlbnRPZmZzZXQgKz0gZXZlbnQuZGVsdGEoKS5oZWlnaHQoKTsKLSAgICBp
ZiAoIWlzTW9tZW50dW1FdmVudER1cmluZ1N5bnRoZXRpY0dlc3R1cmUpIHsKKyAgICBpZiAoIXNo
b3VsZElnbm9yZUluY29taW5nUGxhdGZvcm1FdmVudCkgewogICAgICAgICAvLyBMb2cgZXZlbnRz
IHRoYXQgd2UgZG9uJ3QgYmxvY2sgdG8gdGhlIGdlbmVyYXRlZCBvZmZzZXRzIGxvZyBhcyB3ZWxs
LAogICAgICAgICAvLyBldmVuIHRob3VnaCB3ZSBkaWRuJ3QgdGVjaG5pY2FsbHkgZ2VuZXJhdGUg
dGhlbSwganVzdCBwYXNzZWQgdGhlbSB0aHJvdWdoLgogICAgICAgICBtX2N1cnJlbnRMb2dTdGF0
ZS50b3RhbEdlbmVyYXRlZE9mZnNldCArPSBldmVudC5kZWx0YSgpLmhlaWdodCgpOwpAQCAtMTIx
LDggKzE0NCw3IEBAIGJvb2wgTW9tZW50dW1FdmVudERpc3BhdGNoZXI6OmhhbmRsZVdoZWVsRXZl
bnQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlkZW50CiAgICAgCiAjZW5kaWYKIAotICAg
IC8vIENvbnN1bWUgYW55IG5vcm1hbCBtb21lbnR1bSBldmVudHMgd2hpbGUgd2UncmUgaW5zaWRl
IGEgc3ludGhldGljIG1vbWVudHVtIGdlc3R1cmUuCi0gICAgcmV0dXJuIGlzTW9tZW50dW1FdmVu
dER1cmluZ1N5bnRoZXRpY0dlc3R1cmU7CisgICAgcmV0dXJuIHNob3VsZElnbm9yZUluY29taW5n
UGxhdGZvcm1FdmVudDsKIH0KIAogc3RhdGljIGZsb2F0IGFwcEtpdFNjcm9sbE11bHRpcGxpZXJG
b3JFdmVudChjb25zdCBXZWJXaGVlbEV2ZW50JiBldmVudCkKQEAgLTE3MCw3ICsxOTIsOCBAQCB2
b2lkIE1vbWVudHVtRXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaFN5bnRoZXRpY01vbWVudHVtRXZl
bnQoV2ViV2hlZWxFdmVudDo6UGhhcwogICAgICAgICBtX2xhc3RJbmNvbWluZ0V2ZW50LT5tb2Rp
ZmllcnMoKSwKICAgICAgICAgdGltZSwKICAgICAgICAgdGltZSwKLSAgICAgICAgeyB9KTsKKyAg
ICAgICAgeyB9LAorICAgICAgICBXZWJXaGVlbEV2ZW50OjpNb21lbnR1bUVuZFR5cGU6OlVua25v
d24pOwogICAgIG1fZGlzcGF0Y2hlci5pbnRlcm5hbFdoZWVsRXZlbnQobV9jdXJyZW50R2VzdHVy
ZS5wYWdlSWRlbnRpZmllciwgc3ludGhldGljRXZlbnQsIG1fbGFzdFJ1YmJlckJhbmRhYmxlRWRn
ZXMsIEV2ZW50RGlzcGF0Y2hlcjo6V2hlZWxFdmVudE9yaWdpbjo6TW9tZW50dW1FdmVudERpc3Bh
dGNoZXIpOwogCiAjaWYgRU5BQkxFKE1PTUVOVFVNX0VWRU5UX0RJU1BBVENIRVJfVEVNUE9SQVJZ
X0xPR0dJTkcpCkBAIC0yMjMsNyArMjQ2LDcgQEAgdm9pZCBNb21lbnR1bUV2ZW50RGlzcGF0Y2hl
cjo6ZGlkRW5kTW9tZW50dW1QaGFzZSgpCiAgICAgZGlzcGF0Y2hTeW50aGV0aWNNb21lbnR1bUV2
ZW50KFdlYldoZWVsRXZlbnQ6OlBoYXNlRW5kZWQsIHsgfSk7CiAKICNpZiBFTkFCTEUoTU9NRU5U
VU1fRVZFTlRfRElTUEFUQ0hFUl9URU1QT1JBUllfTE9HR0lORykKLSAgICBSRUxFQVNFX0xPRyhT
Y3JvbGxBbmltYXRpb25zLCAiTW9tZW50dW1FdmVudERpc3BhdGNoZXIgc2F3IG1vbWVudHVtIGVu
ZCBwaGFzZSB3aXRoIHRvdGFsIG9mZnNldCAlLjFmICUuMWYsIGR1cmF0aW9uICVmIChldmVudCBv
ZmZzZXQgd291bGQgaGF2ZSBiZWVuICUuMWYgJS4xZikgKHRhaWwgaW5kZXggJWQgb2YgJXp1KSIs
IG1fY3VycmVudEdlc3R1cmUuY3VycmVudE9mZnNldC53aWR0aCgpLCBtX2N1cnJlbnRHZXN0dXJl
LmN1cnJlbnRPZmZzZXQuaGVpZ2h0KCksIChNb25vdG9uaWNUaW1lOjpub3coKSAtIG1fY3VycmVu
dEdlc3R1cmUuc3RhcnRUaW1lKS5zZWNvbmRzKCksIG1fY3VycmVudEdlc3R1cmUuYWNjdW11bGF0
ZWRFdmVudE9mZnNldC53aWR0aCgpLCBtX2N1cnJlbnRHZXN0dXJlLmFjY3VtdWxhdGVkRXZlbnRP
ZmZzZXQuaGVpZ2h0KCksIG1fY3VycmVudEdlc3R1cmUuY3VycmVudFRhaWxEZWx0YUluZGV4LCBt
X2N1cnJlbnRHZXN0dXJlLnRhaWxEZWx0YVRhYmxlLnNpemUoKSk7CisgICAgUkVMRUFTRV9MT0co
U2Nyb2xsQW5pbWF0aW9ucywgIk1vbWVudHVtRXZlbnREaXNwYXRjaGVyIGVuZGluZyBzeW50aGV0
aWMgbW9tZW50dW0gcGhhc2Ugd2l0aCB0b3RhbCBvZmZzZXQgJS4xZiAlLjFmLCBkdXJhdGlvbiAl
ZiAoZXZlbnQgb2Zmc2V0IHdvdWxkIGhhdmUgYmVlbiAlLjFmICUuMWYpICh0YWlsIGluZGV4ICVk
IG9mICV6dSkiLCBtX2N1cnJlbnRHZXN0dXJlLmN1cnJlbnRPZmZzZXQud2lkdGgoKSwgbV9jdXJy
ZW50R2VzdHVyZS5jdXJyZW50T2Zmc2V0LmhlaWdodCgpLCAoTW9ub3RvbmljVGltZTo6bm93KCkg
LSBtX2N1cnJlbnRHZXN0dXJlLnN0YXJ0VGltZSkuc2Vjb25kcygpLCBtX2N1cnJlbnRHZXN0dXJl
LmFjY3VtdWxhdGVkRXZlbnRPZmZzZXQud2lkdGgoKSwgbV9jdXJyZW50R2VzdHVyZS5hY2N1bXVs
YXRlZEV2ZW50T2Zmc2V0LmhlaWdodCgpLCBtX2N1cnJlbnRHZXN0dXJlLmN1cnJlbnRUYWlsRGVs
dGFJbmRleCwgbV9jdXJyZW50R2VzdHVyZS50YWlsRGVsdGFUYWJsZS5zaXplKCkpOwogICAgIG1f
ZGlzcGF0Y2hlci5xdWV1ZSgpLmRpc3BhdGNoQWZ0ZXIoMV9zLCBbdGhpc10gewogICAgICAgICBm
bHVzaExvZygpOwogICAgIH0pOwpAQCAtMjQyLDcgKzI2NSw3IEBAIHZvaWQgTW9tZW50dW1FdmVu
dERpc3BhdGNoZXI6OnNldFNjcm9sbGluZ0FjY2VsZXJhdGlvbkN1cnZlKFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmCiAjaWYgRU5BQkxFKE1PTUVOVFVNX0VWRU5UX0RJU1BBVENIRVJfVEVNUE9SQVJZX0xP
R0dJTkcpCiAgICAgV1RGOjpUZXh0U3RyZWFtIHN0cmVhbShXVEY6OlRleHRTdHJlYW06OkxpbmVN
b2RlOjpTaW5nbGVMaW5lKTsKICAgICBzdHJlYW0gPDwgY3VydmU7Ci0gICAgUkVMRUFTRV9MT0co
U2Nyb2xsQW5pbWF0aW9ucywgIk1vbWVudHVtRXZlbnREaXNwYXRjaGVyIHNldCBjdXJ2ZSAlcyIs
IHN0cmVhbS5yZWxlYXNlKCkudXRmOCgpLmRhdGEoKSk7CisgICAgUkVMRUFTRV9MT0coU2Nyb2xs
QW5pbWF0aW9ucywgIk1vbWVudHVtRXZlbnREaXNwYXRjaGVyIHNldCBjdXJ2ZSAle3B1YmxpY31z
Iiwgc3RyZWFtLnJlbGVhc2UoKS51dGY4KCkuZGF0YSgpKTsKICNlbmRpZgogfQogCkBAIC0yOTks
NyArMzIyLDcgQEAgdm9pZCBNb21lbnR1bUV2ZW50RGlzcGF0Y2hlcjo6cGFnZVNjcmVlbkRpZENo
YW5nZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQKICAgICAgICAgc3RhcnREaXNwbGF5
TGluaygpOwogfQogCi1XZWJDb3JlOjpGbG9hdFNpemUgTW9tZW50dW1FdmVudERpc3BhdGNoZXI6
OmNvbnN1bWVEZWx0YUZvckN1cnJlbnRUaW1lKCkKK3N0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6Rmxv
YXRTaXplPiBNb21lbnR1bUV2ZW50RGlzcGF0Y2hlcjo6Y29uc3VtZURlbHRhRm9yQ3VycmVudFRp
bWUoKQogewogICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBkZWx0YTsKIApAQCAtMzExLDcgKzMzNCw3
IEBAIFdlYkNvcmU6OkZsb2F0U2l6ZSBNb21lbnR1bUV2ZW50RGlzcGF0Y2hlcjo6Y29uc3VtZURl
bHRhRm9yQ3VycmVudFRpbWUoKQogICAgICAgICBpZiAobV9jdXJyZW50R2VzdHVyZS5jdXJyZW50
VGFpbERlbHRhSW5kZXggPCBtX2N1cnJlbnRHZXN0dXJlLnRhaWxEZWx0YVRhYmxlLnNpemUoKSkK
ICAgICAgICAgICAgIGRlbHRhID0gLW1fY3VycmVudEdlc3R1cmUudGFpbERlbHRhVGFibGVbbV9j
dXJyZW50R2VzdHVyZS5jdXJyZW50VGFpbERlbHRhSW5kZXgrK107CiAgICAgICAgIGVsc2UKLSAg
ICAgICAgICAgIGRlbHRhID0geyB9OworICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
ICAgICB9CiAKICAgICBtX2N1cnJlbnRHZXN0dXJlLmN1cnJlbnRPZmZzZXQgKz0gZGVsdGE7CkBA
IC0zMzEsNyArMzU0LDE2IEBAIHZvaWQgTW9tZW50dW1FdmVudERpc3BhdGNoZXI6OmRpc3BsYXlX
YXNSZWZyZXNoZWQoV2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5SUQgZGlzCiAgICAgaWYgKCFkaXNw
bGF5UHJvcGVydGllcyB8fCBkaXNwbGF5SUQgIT0gZGlzcGxheVByb3BlcnRpZXMtPmRpc3BsYXlJ
RCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgZGlzcGF0Y2hTeW50aGV0aWNNb21lbnR1bUV2ZW50
KFdlYldoZWVsRXZlbnQ6OlBoYXNlQ2hhbmdlZCwgY29uc3VtZURlbHRhRm9yQ3VycmVudFRpbWUo
KSk7CisgICAgYXV0byBkZWx0YSA9IGNvbnN1bWVEZWx0YUZvckN1cnJlbnRUaW1lKCk7CisgICAg
aWYgKCFkZWx0YSkgeworI2lmIEVOQUJMRShNT01FTlRVTV9FVkVOVF9ESVNQQVRDSEVSX1RFTVBP
UkFSWV9MT0dHSU5HKQorICAgICAgICBSRUxFQVNFX0xPRyhTY3JvbGxBbmltYXRpb25zLCAiTW9t
ZW50dW1FdmVudERpc3BhdGNoZXIgY29tcGxldGVkIHN5bnRoZXRpYyBtb21lbnR1bSBwaGFzZSIp
OworI2VuZGlmCisgICAgICAgIGRpZEVuZE1vbWVudHVtUGhhc2UoKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIGRpc3BhdGNoU3ludGhldGljTW9tZW50dW1FdmVudChXZWJXaGVlbEV2
ZW50OjpQaGFzZUNoYW5nZWQsICpkZWx0YSk7CiB9CiAKIHZvaWQgTW9tZW50dW1FdmVudERpc3Bh
dGNoZXI6OmRpZFJlY2VpdmVTY3JvbGxFdmVudFdpdGhJbnRlcnZhbChXZWJDb3JlOjpGbG9hdFNp
emUgc2l6ZSwgU2Vjb25kcyBmcmFtZUludGVydmFsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvTW9tZW50dW1FdmVudERpc3BhdGNoZXIuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL01vbWVudHVtRXZlbnREaXNwYXRjaGVyLmgKaW5kZXgg
NWNlMTk0NGFjNDQ0MWY0MWFmZTIxNjk3M2FmYWU5YzZmOWMwN2RiMi4uMzgzZjc1ZTEwNjhkMzYw
NTAxMjBhZWU3OWFhYmVlNTc5ZDg4OGVjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvTW9tZW50dW1FdmVudERpc3BhdGNoZXIuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Nb21lbnR1bUV2ZW50RGlzcGF0Y2hlci5oCkBAIC0yNyw3
ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoTU9NRU5UVU1fRVZFTlRfRElTUEFUQ0hFUikKIAotI2Rl
ZmluZSBFTkFCTEVfTU9NRU5UVU1fRVZFTlRfRElTUEFUQ0hFUl9URU1QT1JBUllfTE9HR0lORyAw
CisjZGVmaW5lIEVOQUJMRV9NT01FTlRVTV9FVkVOVF9ESVNQQVRDSEVSX1RFTVBPUkFSWV9MT0dH
SU5HIDEKIAogI2luY2x1ZGUgIkRpc3BsYXlMaW5rT2JzZXJ2ZXJJRC5oIgogI2luY2x1ZGUgIlNj
cm9sbGluZ0FjY2VsZXJhdGlvbkN1cnZlLmgiCkBAIC04Niw3ICs4Niw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBlcXVhbGl6ZVRhaWxHYXBzKCk7CiAKICAgICAvLyBPbmNlIGNvbnN1bWVkLCB0aGlz
IGRlbHRhICptdXN0KiBiZSBkaXNwYXRjaGVkIGluIGFuIGV2ZW50LgotICAgIFdlYkNvcmU6OkZs
b2F0U2l6ZSBjb25zdW1lRGVsdGFGb3JDdXJyZW50VGltZSgpOworICAgIHN0ZDo6b3B0aW9uYWw8
V2ViQ29yZTo6RmxvYXRTaXplPiBjb25zdW1lRGVsdGFGb3JDdXJyZW50VGltZSgpOwogCiAgICAg
V2ViQ29yZTo6RmxvYXRTaXplIG9mZnNldEF0VGltZShTZWNvbmRzKTsKICAgICBzdGQ6OnBhaXI8
V2ViQ29yZTo6RmxvYXRTaXplLCBXZWJDb3JlOjpGbG9hdFNpemU+IGNvbXB1dGVOZXh0RGVsdGEo
V2ViQ29yZTo6RmxvYXRTaXplIGN1cnJlbnRVbmFjY2VsZXJhdGVkRGVsdGEpOwpAQCAtMTI1LDYg
KzEyNSw3IEBAIHByaXZhdGU6CiAgICAgc3RkOjpvcHRpb25hbDxXYWxsVGltZT4gbV9sYXN0U2Ny
b2xsVGltZXN0YW1wOwogICAgIHN0ZDo6b3B0aW9uYWw8V2ViV2hlZWxFdmVudD4gbV9sYXN0SW5j
b21pbmdFdmVudDsKICAgICBXZWJDb3JlOjpSZWN0RWRnZXM8Ym9vbD4gbV9sYXN0UnViYmVyQmFu
ZGFibGVFZGdlczsKKyAgICBib29sIG1faXNJbk92ZXJyaWRkZW5QbGF0Zm9ybU1vbWVudHVtR2Vz
dHVyZSB7IGZhbHNlIH07CiAKICAgICBzdHJ1Y3QgewogICAgICAgICBib29sIGFjdGl2ZSB7IGZh
bHNlIH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448359</attachid>
            <date>2022-01-04 22:12:12 -0800</date>
            <delta_ts>2022-01-05 11:30:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234535-20220104221211.patch</filename>
            <type>text/plain</type>
            <size>26134</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3NTk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDg4MWY1ODMwNGQyMmIwNjdiYTZmYjUw
OTZkZGZmOTdlYjExN2Q4OWEuLjMxZWI1NGQ2YTk2OGM0NTAxN2U1Yjg1YjQxNjIzOGY2NWNlNjlh
YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjItMDEtMDQgIFRpbSBIb3J0b24gIDx0aW1vdGh5
X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgTW9tZW50dW0gRXZlbnQgRGlzcGF0Y2hlcjog
TW9tZW50dW0gdGFpbHMgbWF5IGdldCB0cnVuY2F0ZWQgaWYgdGhlIGR1cmF0aW9uIHJ1bnMgbG9u
Z2VyIHRoYW4gdGhlIHN5c3RlbSdzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzQ1MzUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg2MzM4MTA1Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICAqIHd0Zi9QbGF0
Zm9ybUhhdmUuaDoKKyAgICAgICAgQWRkIGEgSEFWRSBmb3Iga0lPSElERXZlbnRTY3JvbGxNb21l
bnR1bUludGVycnVwdGVkLgorCiAyMDIxLTEyLTMxICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBh
cHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gUmVwbGFjZSBVRElTODYgd2l0aCBaeWRpcwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwppbmRleCAwOTJhMGJlNjVmMTg2OWZjMjc0MjA5N2EzMzk4ZDYwZGZjNjM4ZjhiLi44NDA3MTQ4
N2FhZDZlOWQ4OWI1NjRmNTNjMWJmODljMGFkYzlmMDQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDc0
IEBACisyMDIyLTAxLTA0ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgor
CisgICAgICAgIE1vbWVudHVtIEV2ZW50IERpc3BhdGNoZXI6IE1vbWVudHVtIHRhaWxzIG1heSBn
ZXQgdHJ1bmNhdGVkIGlmIHRoZSBkdXJhdGlvbiBydW5zIGxvbmdlciB0aGFuIHRoZSBzeXN0ZW0n
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0NTM1
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NjMzODEwNT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgQ3VycmVudGx5LCBzeW50aGV0aWMgbW9tZW50dW0g
ZGlzcGF0Y2ggaXMgc3RyaWN0bHkgdGllZCB0byB0aGUgZHVyYXRpb24KKyAgICAgICAgb2YgdGhl
IHJlYWwgcGxhdGZvcm0gbW9tZW50dW0gcGhhc2UsIHdoaWNoIGhhcyB0d28gdW5mb3J0dW5hdGUg
aW1wbGljYXRpb25zOgorCisgICAgICAgIC0gaWYgb3VyIHBoYXNlIHJ1bnMgc2hvcnRlciB0aGFu
IHRoZSBwbGF0Zm9ybSBwaGFzZSwgd2UnbGwga2VlcCBkaXNwYXRjaGluZworICAgICAgICAgIHpl
cm8tZGVsdGEgZXZlbnRzIHVudGlsIHRoZSBwbGF0Zm9ybSBtb21lbnR1bSBlbmRzCisKKyAgICAg
ICAgLSBtb3JlIGltcG9ydGFudGx5LCBpZiBvdXIgcGhhc2UgcnVucyBsb25nZXIsIGl0IHdpbGwg
YmUgYWJydXB0bHkgdGVybWluYXRlZAorICAgICAgICAgIHdoZW4gdGhlIHBsYXRmb3JtIG1vbWVu
dHVtIGVuZHMKKworICAgICAgICBJbiBwcmFjdGljZSwgb3VyIHN5bnRoZXRpYyBwaGFzZSBpcyB2
ZXJ5IGNsb3NlIGluIGR1cmF0aW9uIHRvIHRoZSBzeXN0ZW0gb25lLAorICAgICAgICBzbyB0aGUg
aW1wYWN0IGlzIG1pbmltYWwuIEJ1dCwgdG8gYmUgc2FmZSwgZGlzZW50YWdsZSB0aGUgdHdvIGR1
cmF0aW9ucywKKyAgICAgICAgdXNpbmcgYSBuZXcgYml0IGZyb20gdGhlIHBsYXRmb3JtIHRvIGRl
dGVybWluZSBpZiB0aGUgc3lzdGVtIG1vbWVudHVtIHBoYXNlCisgICAgICAgIHdhcyBpbnRlcnJ1
cHRlZCBieSB0aGUgdXNlciAoZS5nLiBieSB0YXBwaW5nIHRoZSB0cmFja3BhZCkgb3IgbmF0dXJh
bGx5LAorICAgICAgICBhbmQgaWdub3JpbmcgdGhlIGVuZGVkIGV2ZW50IGluIHRoZSBuYXR1cmFs
IGNhc2UsIGFsbG93aW5nIHN5bnRoZXRpYworICAgICAgICBldmVudHMgdG8gY29udGludWUgYmVp
bmcgZGlzcGF0Y2hlZC4KKworICAgICAgICAqIFNoYXJlZC9XZWJXaGVlbEV2ZW50LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViV2hlZWxFdmVudDo6V2ViV2hlZWxFdmVudCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYldoZWVsRXZlbnQ6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YldoZWVsRXZlbnQ6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYldoZWVsRXZlbnQuaDoK
KyAgICAgICAgKFdlYktpdDo6V2ViV2hlZWxFdmVudDo6bW9tZW50dW1FbmRUeXBlIGNvbnN0KToK
KyAgICAgICAgKiBTaGFyZWQvV2ViV2hlZWxFdmVudENvYWxlc2Nlci5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYldoZWVsRXZlbnRDb2FsZXNjZXI6OmNvYWxlc2NlKToKKyAgICAgICAgUGx1bWIg
bW9tZW50dW1FbmRUeXBlIGFsb25nIG9uIFdlYldoZWVsRXZlbnQuIFBsYXRmb3JtcyB0aGF0IGRv
bid0CisgICAgICAgIHByb3ZpZGUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGludGVycnVwdGlvbiBy
ZWFzb24gd2lsbCBhbHdheXMgc2F5IFVua25vd24uCisKKyAgICAgICAgKiBTaGFyZWQvbWFjL1dl
YkV2ZW50RmFjdG9yeS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnRGYWN0b3J5OjpjcmVh
dGVXZWJXaGVlbEV2ZW50KToKKyAgICAgICAgT25seSBib3RoZXIgbG9va2luZyB1cCB0aGUgQ0dF
dmVudC9JT0hJREV2ZW50IG9uY2UsIGFuZCBleHRyYWN0IGFsbAorICAgICAgICByZWxldmFudCBk
ZXRhaWxzIGluIG9uZSBnby4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Nb21lbnR1
bUV2ZW50RGlzcGF0Y2hlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok1vbWVudHVtRXZlbnREaXNw
YXRjaGVyOjpoYW5kbGVXaGVlbEV2ZW50KToKKyAgICAgICAgRG9uJ3QgaW50ZXJydXB0IHRoZSBz
eW50aGV0aWMgbW9tZW50dW0gcGhhc2UgaWYgdGhlIG1vbWVudHVtLWVuZGVkIGV2ZW50CisgICAg
ICAgIGNvbWVzIGZyb20gdGhlIG5hdHVyYWwgZW5kIG9mIHRoZSBkZWNlbGVyYXRpb24gaW5zdGVh
ZCBvZiBhbiBpbnRlcnJ1cHRpb24KKyAgICAgICAgKG9yIGFuIHVua25vd24gcmVhc29uKS4KKwor
ICAgICAgICBLZWVwIHRyYWNrIG9mIHdoZXRoZXIgd2UncmUgaW4gdGhlIG1pZGRsZSBvZiBhIHBs
YXRmb3JtIG1vbWVudHVtIHBoYXNlCisgICAgICAgIHRoYXQgd2UgY2hvc2UgKGF0IG1vbWVudHVt
LWJlZ2luIHRpbWUpIHRvIG92ZXJyaWRlLiBXaGVuIGRlY2lkaW5nCisgICAgICAgIHdoZXRoZXIg
dG8gZWF0IGFuIGluY29taW5nIGV2ZW50LCB0YWtlICpib3RoKiB0aGlzIG5ldyBiaXQgYW5kIHdo
ZXRoZXIKKyAgICAgICAgd2UgYXJlIGN1cnJlbnRseSBpbiB0aGUgbWlkZGxlIG9mIGEgc3ludGhl
dGljIHBoYXNlIGludG8gYWNjb3VudC4gSXQKKyAgICAgICAgaXMgaW1wb3J0YW50IHRvIGNvbnRp
bnVlIGVhdGluZyBpbmNvbWluZyBldmVudHMgaW4gdGhlIGNhc2Ugd2hlcmUgCisgICAgICAgIHRo
ZSBzeW50aGV0aWMgcGhhc2UgZW5kZWQgZWFybHkgKHNvIGBhY3RpdmVgIGJlY2FtZSBmYWxzZSkg
YnV0IHRoZQorICAgICAgICBwbGF0Zm9ybSBwaGFzZSBjb250aW51ZXMuCisKKyAgICAgICAgKFdl
YktpdDo6TW9tZW50dW1FdmVudERpc3BhdGNoZXI6OmRpc3BhdGNoU3ludGhldGljTW9tZW50dW1F
dmVudCk6CisgICAgICAgIChXZWJLaXQ6Ok1vbWVudHVtRXZlbnREaXNwYXRjaGVyOjpkaWRFbmRN
b21lbnR1bVBoYXNlKToKKyAgICAgICAgQWRqdXN0IHNvbWUgbG9nZ2luZyB3b3JkaW5nIHRvIGJl
IG1vcmUgcHJlY2lzZS4KKworICAgICAgICAoV2ViS2l0OjpNb21lbnR1bUV2ZW50RGlzcGF0Y2hl
cjo6c2V0U2Nyb2xsaW5nQWNjZWxlcmF0aW9uQ3VydmUpOgorICAgICAgICBNYWtlIHRoaXMgbG9n
IHB1YmxpYyBzbyB0aGF0IHRoZSBjdXJ2ZSB2YWx1ZSBpcyB2aXNpYmxlIGluIGxvZ3MuCisKKyAg
ICAgICAgKFdlYktpdDo6TW9tZW50dW1FdmVudERpc3BhdGNoZXI6OmNvbnN1bWVEZWx0YUZvckN1
cnJlbnRUaW1lKToKKyAgICAgICAgTWFrZSBjb25zdW1lRGVsdGFGb3JDdXJyZW50VGltZSBpbmZv
cm0gdGhlIGNsaWVudCB2aWEgYW4gb3B0aW9uYWwgd2hlbgorICAgICAgICB3ZSBhcmUgYXQgdGhl
IGVuZCBvZiB0aGUgZGVsdGEgdGFibGUuCisKKyAgICAgICAgKFdlYktpdDo6TW9tZW50dW1FdmVu
dERpc3BhdGNoZXI6OmRpc3BsYXlXYXNSZWZyZXNoZWQpOgorICAgICAgICBTdG9wIHRoZSBzeW50
aGV0aWMgbW9tZW50dW0gcGhhc2UgYXMgc29vbiBhcyB3ZSBydW4gb3V0IG9mIGRlbHRhcy4KKwor
ICAgICAgICAoV2ViS2l0OjpNb21lbnR1bUV2ZW50RGlzcGF0Y2hlcjo6Y29tcHV0ZU5leHREZWx0
YSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL01vbWVudHVtRXZlbnREaXNwYXRjaGVy
Lmg6CisKIDIwMjItMDEtMDQgIFJ5YW4gSGFkZGFkICA8cnlhbmhhZGRhZEBhcHBsZS5jb20+CiAK
ICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyODczNzQuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5o
CmluZGV4IDQ0OWM2M2UzMDllYmNjMTdhYTAyNDc5YTI3MWRkNmExMWY5YTgxNWEuLjFhNjJiYmFm
M2VmMzBjMzc5NWQ4MGM0NmFlMTUzYjg1YmNmNmYxYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL1BsYXRmb3JtSGF2ZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCkBA
IC0xMTQwLDMgKzExNDAsNyBAQAogI2lmIFBMQVRGT1JNKENPQ09BKQogI2RlZmluZSBIQVZFX0NG
QVVUT1JFTEVBU0UgMQogI2VuZGlmCisKKyNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hf
VkVSU0lPTl9NQVhfQUxMT1dFRCA+PSAxMjAyMDAKKyNkZWZpbmUgSEFWRV9QTEFURk9STV9TQ1JP
TExfTU9NRU5UVU1fSU5URVJSVVBUSU9OX1JFQVNPTiAxCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9JT0tpdFNQSU1hYy5oIGIvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9zcGkvbWFjL0lPS2l0U1BJTWFjLmgKaW5kZXggZDQzMGI4MTVkNDRjYTU0MDNm
ZDQxMTAxZWJmZTM0NDc1MjNkZDdkYi4uOGRlODM2MjVlYWVkNzRmNjRiOGNiOTJiMzgwNjk5MWRh
NWU3NTk5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL0lPS2l0
U1BJTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL0lPS2l0U1BJTWFj
LmgKQEAgLTgxLDEzICs4MSwxOCBAQCBlbnVtIHsKICAgICBrSU9ISURFdmVudFR5cGVEaWdpdGl6
ZXIgPSAxMSwKICAgICBrSU9ISURFdmVudFR5cGVOYXZpZ2F0aW9uU3dpcGUgPSAxNiwKICAgICBr
SU9ISURFdmVudFR5cGVGb3JjZSA9IDMyLAotCiB9OwogdHlwZWRlZiB1aW50MzJfdCBJT0hJREV2
ZW50VHlwZTsKIAogdHlwZWRlZiB1aW50MzJfdCBJT0hJREV2ZW50RmllbGQ7CiB0eXBlZGVmIHVp
bnQ2NF90IElPSElERXZlbnRTZW5kZXJJRDsKIAorCitlbnVtIHsKKyAgICBrSU9ISURFdmVudFNj
cm9sbE1vbWVudHVtSW50ZXJydXB0ZWQgPSAoMSA8PCA0KSwKK307Cit0eXBlZGVmIHVpbnQ4X3Qg
SU9ISURFdmVudFNjcm9sbE1vbWVudHVtQml0czsKKwogI2lmZGVmIF9fTFA2NF9fCiB0eXBlZGVm
IGRvdWJsZSBJT0hJREZsb2F0OwogI2Vsc2UKQEAgLTEwMyw2ICsxMDgsNyBAQCBzdGF0aWMgY29u
c3QgSU9ISURFdmVudEZpZWxkIGtJT0hJREV2ZW50RmllbGRTY3JvbGxZID0gKGtJT0hJREV2ZW50
RmllbGRTY3JvbGxCYQogdWludDY0X3QgSU9ISURFdmVudEdldFRpbWVTdGFtcChJT0hJREV2ZW50
UmVmKTsKIElPSElERmxvYXQgSU9ISURFdmVudEdldEZsb2F0VmFsdWUoSU9ISURFdmVudFJlZiwg
SU9ISURFdmVudEZpZWxkKTsKIElPSElERXZlbnRTZW5kZXJJRCBJT0hJREV2ZW50R2V0U2VuZGVy
SUQoSU9ISURFdmVudFJlZik7CitJT0hJREV2ZW50U2Nyb2xsTW9tZW50dW1CaXRzIElPSElERXZl
bnRHZXRTY3JvbGxNb21lbnR1bShJT0hJREV2ZW50UmVmKTsKIAogV1RGX0VYVEVSTl9DX0VORAog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJXaGVlbEV2ZW50LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYldoZWVsRXZlbnQuY3BwCmluZGV4IDUxYjJiOGUxYjVjNGQ5
NzA2NGRhYTAyYTQ0ODU0MjZiZDNhMTIzYTEuLjQzNWY3MDJkMTI3Zjg3OGE1NWRmZDE1ODRiYTFi
Y2VjOGNkNmU1NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYldoZWVsRXZl
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYldoZWVsRXZlbnQuY3BwCkBAIC00
NCw3ICs0NCw3IEBAIFdlYldoZWVsRXZlbnQ6OldlYldoZWVsRXZlbnQoVHlwZSB0eXBlLCBjb25z
dCBJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IEludFBvaW50CiB9CiAKICNpZiBQTEFURk9STShD
T0NPQSkKLVdlYldoZWVsRXZlbnQ6OldlYldoZWVsRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBJbnRQ
b2ludCYgcG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgRmxv
YXRTaXplJiBkZWx0YSwgY29uc3QgRmxvYXRTaXplJiB3aGVlbFRpY2tzLCBHcmFudWxhcml0eSBn
cmFudWxhcml0eSwgYm9vbCBkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UsIFBoYXNlIHBoYXNl
LCBQaGFzZSBtb21lbnR1bVBoYXNlLCBib29sIGhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMsIHVp
bnQzMl90IHNjcm9sbENvdW50LCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHVuYWNjZWxlcmF0
ZWRTY3JvbGxpbmdEZWx0YSwgT3B0aW9uU2V0PE1vZGlmaWVyPiBtb2RpZmllcnMsIFdhbGxUaW1l
IHRpbWVzdGFtcCwgV2FsbFRpbWUgaW9ISURFdmVudFRpbWVzdGFtcCwgc3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpGbG9hdFNpemU+IHJhd1BsYXRmb3JtRGVsdGEpCitXZWJXaGVlbEV2ZW50OjpXZWJX
aGVlbEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQ
b2ludCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IEZsb2F0U2l6ZSYgZGVsdGEsIGNvbnN0IEZsb2F0
U2l6ZSYgd2hlZWxUaWNrcywgR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIGJvb2wgZGlyZWN0aW9u
SW52ZXJ0ZWRGcm9tRGV2aWNlLCBQaGFzZSBwaGFzZSwgUGhhc2UgbW9tZW50dW1QaGFzZSwgYm9v
bCBoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzLCB1aW50MzJfdCBzY3JvbGxDb3VudCwgY29uc3Qg
V2ViQ29yZTo6RmxvYXRTaXplJiB1bmFjY2VsZXJhdGVkU2Nyb2xsaW5nRGVsdGEsIE9wdGlvblNl
dDxNb2RpZmllcj4gbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXAsIFdhbGxUaW1lIGlvSElE
RXZlbnRUaW1lc3RhbXAsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRTaXplPiByYXdQbGF0
Zm9ybURlbHRhLCBNb21lbnR1bUVuZFR5cGUgbW9tZW50dW1FbmRUeXBlKQogICAgIDogV2ViRXZl
bnQodHlwZSwgbW9kaWZpZXJzLCB0aW1lc3RhbXApCiAgICAgLCBtX3Bvc2l0aW9uKHBvc2l0aW9u
KQogICAgICwgbV9nbG9iYWxQb3NpdGlvbihnbG9iYWxQb3NpdGlvbikKQEAgLTUzLDYgKzUzLDcg
QEAgV2ViV2hlZWxFdmVudDo6V2ViV2hlZWxFdmVudChUeXBlIHR5cGUsIGNvbnN0IEludFBvaW50
JiBwb3NpdGlvbiwgY29uc3QgSW50UG9pbnQKICAgICAsIG1fZ3JhbnVsYXJpdHkoZ3JhbnVsYXJp
dHkpCiAgICAgLCBtX3BoYXNlKHBoYXNlKQogICAgICwgbV9tb21lbnR1bVBoYXNlKG1vbWVudHVt
UGhhc2UpCisgICAgLCBtX21vbWVudHVtRW5kVHlwZShtb21lbnR1bUVuZFR5cGUpCiAgICAgLCBt
X2RpcmVjdGlvbkludmVydGVkRnJvbURldmljZShkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2Up
CiAgICAgLCBtX2hhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMoaGFzUHJlY2lzZVNjcm9sbGluZ0Rl
bHRhcykKICAgICAsIG1faW9ISURFdmVudFRpbWVzdGFtcChpb0hJREV2ZW50VGltZXN0YW1wKQpA
QCAtODcsNiArODgsNyBAQCB2b2lkIFdlYldoZWVsRXZlbnQ6OmVuY29kZShJUEM6OkVuY29kZXIm
IGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCBtX2RlbHRhOwogICAgIGVuY29kZXIgPDwg
bV93aGVlbFRpY2tzOwogICAgIGVuY29kZXIgPDwgbV9ncmFudWxhcml0eTsKKyAgICBlbmNvZGVy
IDw8IG1fbW9tZW50dW1FbmRUeXBlOwogICAgIGVuY29kZXIgPDwgbV9kaXJlY3Rpb25JbnZlcnRl
ZEZyb21EZXZpY2U7CiAjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykgfHwgVVNF
KExJQldQRSkKICAgICBlbmNvZGVyIDw8IG1fcGhhc2U7CkBAIC0xMTUsNiArMTE3LDggQEAgYm9v
bCBXZWJXaGVlbEV2ZW50OjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBXZWJXaGVlbEV2
ZW50JiB0KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh0
Lm1fZ3JhbnVsYXJpdHkpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVy
LmRlY29kZSh0Lm1fbW9tZW50dW1FbmRUeXBlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IGlmICghZGVjb2Rlci5kZWNvZGUodC5tX2RpcmVjdGlvbkludmVydGVkRnJvbURldmljZSkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICNpZiBQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oR1RL
KSB8fCBVU0UoTElCV1BFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViV2hl
ZWxFdmVudC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViV2hlZWxFdmVudC5oCmluZGV4IGE5
ZWM4ZThhZmYwMDZmNmQ1MzlmYjg4YjczNjk3ZDYzNjlhZWNhODQuLjgyMWVlMjIwMTI4MzM2OGI1
Yzk5NTdmMGRhMTYzZDRlMWMzYjA2MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYldoZWVsRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJXaGVlbEV2ZW50
LmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJXZWJFdmVudC5oIgogI2luY2x1ZGUgPFdl
YkNvcmUvRmxvYXRTaXplLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRQb2ludC5oPgorI2luY2x1
ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC00OSwxMSAr
NTAsMTcgQEAgcHVibGljOgogICAgICAgICBQaGFzZU1heUJlZ2luICAgID0gMSA8PCA1LAogICAg
IH07CiAKKyAgICBlbnVtIGNsYXNzIE1vbWVudHVtRW5kVHlwZSA6IHVpbnQ4X3QgeworICAgICAg
ICBVbmtub3duLAorICAgICAgICBJbnRlcnJ1cHRlZCwKKyAgICAgICAgTmF0dXJhbCwKKyAgICB9
OworCiAgICAgV2ViV2hlZWxFdmVudCgpID0gZGVmYXVsdDsKIAogICAgIFdlYldoZWVsRXZlbnQo
VHlwZSwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJ
bnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgZGVsdGEs
IGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgd2hlZWxUaWNrcywgR3JhbnVsYXJpdHksIE9wdGlv
blNldDxNb2RpZmllcj4sIFdhbGxUaW1lIHRpbWVzdGFtcCk7CiAjaWYgUExBVEZPUk0oQ09DT0Ep
Ci0gICAgV2ViV2hlZWxFdmVudChUeXBlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRp
b24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgV2ViQ29y
ZTo6RmxvYXRTaXplJiBkZWx0YSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tz
LCBHcmFudWxhcml0eSwgYm9vbCBkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UsIFBoYXNlLCBQ
aGFzZSBtb21lbnR1bVBoYXNlLCBib29sIGhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMsIHVpbnQz
Ml90IHNjcm9sbENvdW50LCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHVuYWNjZWxlcmF0ZWRT
Y3JvbGxpbmdEZWx0YSwgT3B0aW9uU2V0PE1vZGlmaWVyPiwgV2FsbFRpbWUgdGltZXN0YW1wLCBX
YWxsVGltZSBpb0hJREV2ZW50VGltZXN0YW1wLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0
U2l6ZT4gcmF3UGxhdGZvcm1EZWx0YSk7CisgICAgV2ViV2hlZWxFdmVudChUeXBlLCBjb25zdCBX
ZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9i
YWxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBkZWx0YSwgY29uc3QgV2ViQ29y
ZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBHcmFudWxhcml0eSwgYm9vbCBkaXJlY3Rpb25JbnZl
cnRlZEZyb21EZXZpY2UsIFBoYXNlLCBQaGFzZSBtb21lbnR1bVBoYXNlLCBib29sIGhhc1ByZWNp
c2VTY3JvbGxpbmdEZWx0YXMsIHVpbnQzMl90IHNjcm9sbENvdW50LCBjb25zdCBXZWJDb3JlOjpG
bG9hdFNpemUmIHVuYWNjZWxlcmF0ZWRTY3JvbGxpbmdEZWx0YSwgT3B0aW9uU2V0PE1vZGlmaWVy
PiwgV2FsbFRpbWUgdGltZXN0YW1wLCBXYWxsVGltZSBpb0hJREV2ZW50VGltZXN0YW1wLCBzdGQ6
Om9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0U2l6ZT4gcmF3UGxhdGZvcm1EZWx0YSwgTW9tZW50dW1F
bmRUeXBlKTsKICNlbGlmIFBMQVRGT1JNKEdUSykgfHwgVVNFKExJQldQRSkKICAgICBXZWJXaGVl
bEV2ZW50KFR5cGUsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUm
IGRlbHRhLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHdoZWVsVGlja3MsIFBoYXNlLCBQaGFz
ZSBtb21lbnR1bVBoYXNlLCBHcmFudWxhcml0eSwgYm9vbCBoYXNQcmVjaXNlU2Nyb2xsaW5nRGVs
dGFzLCBPcHRpb25TZXQ8TW9kaWZpZXI+LCBXYWxsVGltZSB0aW1lc3RhbXApOwogI2VuZGlmCkBA
IC02Niw2ICs3Myw3IEBAIHB1YmxpYzoKICAgICBib29sIGRpcmVjdGlvbkludmVydGVkRnJvbURl
dmljZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlOyB9CiAg
ICAgUGhhc2UgcGhhc2UoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxQaGFzZT4obV9waGFz
ZSk7IH0KICAgICBQaGFzZSBtb21lbnR1bVBoYXNlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nh
c3Q8UGhhc2U+KG1fbW9tZW50dW1QaGFzZSk7IH0KKyAgICBNb21lbnR1bUVuZFR5cGUgbW9tZW50
dW1FbmRUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9tb21lbnR1bUVuZFR5cGU7IH0KICNpZiBQTEFU
Rk9STShDT0NPQSkgfHwgUExBVEZPUk0oR1RLKSB8fCBVU0UoTElCV1BFKQogICAgIGJvb2wgaGFz
UHJlY2lzZVNjcm9sbGluZ0RlbHRhcygpIGNvbnN0IHsgcmV0dXJuIG1faGFzUHJlY2lzZVNjcm9s
bGluZ0RlbHRhczsgfQogI2VuZGlmCkBAIC05MCw2ICs5OCw3IEBAIHByaXZhdGU6CiAgICAgdWlu
dDMyX3QgbV9waGFzZSB7IFBoYXNlOjpQaGFzZU5vbmUgfTsKICAgICB1aW50MzJfdCBtX21vbWVu
dHVtUGhhc2UgeyBQaGFzZTo6UGhhc2VOb25lIH07CiAKKyAgICBNb21lbnR1bUVuZFR5cGUgbV9t
b21lbnR1bUVuZFR5cGUgeyBNb21lbnR1bUVuZFR5cGU6OlVua25vd24gfTsKICAgICBib29sIG1f
ZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlIHsgZmFsc2UgfTsKICNpZiBQTEFURk9STShDT0NP
QSkgfHwgUExBVEZPUk0oR1RLKSB8fCBVU0UoTElCV1BFKQogICAgIGJvb2wgbV9oYXNQcmVjaXNl
U2Nyb2xsaW5nRGVsdGFzIHsgZmFsc2UgfTsKQEAgLTEwMywzICsxMTIsMTYgQEAgcHJpdmF0ZToK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxh
dGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJLaXQ6OldlYldoZWVsRXZlbnQ6Ok1vbWVudHVtRW5k
VHlwZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgV2ViS2l0OjpXZWJX
aGVlbEV2ZW50OjpNb21lbnR1bUVuZFR5cGUsCisgICAgV2ViS2l0OjpXZWJXaGVlbEV2ZW50OjpN
b21lbnR1bUVuZFR5cGU6OlVua25vd24sCisgICAgV2ViS2l0OjpXZWJXaGVlbEV2ZW50OjpNb21l
bnR1bUVuZFR5cGU6OkludGVycnVwdGVkLAorICAgIFdlYktpdDo6V2ViV2hlZWxFdmVudDo6TW9t
ZW50dW1FbmRUeXBlOjpOYXR1cmFsCisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViV2hlZWxFdmVudENvYWxlc2Nlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJXaGVlbEV2ZW50Q29hbGVzY2VyLmNwcAppbmRl
eCAwMTUyZTYwM2NjZjgxZTUxYjVlZGNlMmE3ZmVmNDBiYmI5YzA3YmE2Li5hMjIzNTljNzdkYjY4
OTYxYjBjMGNhMDQ1YzYwNzM3ODMyNDhhYzAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJXaGVlbEV2ZW50Q29hbGVzY2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJXaGVlbEV2ZW50Q29hbGVzY2VyLmNwcApAQCAtODEsNyArODEsNyBAQCBXZWJXaGVlbEV2
ZW50IFdlYldoZWVsRXZlbnRDb2FsZXNjZXI6OmNvYWxlc2NlKGNvbnN0IFdlYldoZWVsRXZlbnQm
IGEsIGNvbnN0IFdlYgogICAgIGlmIChhLnJhd1BsYXRmb3JtRGVsdGEoKSAmJiBiLnJhd1BsYXRm
b3JtRGVsdGEoKSkKICAgICAgICAgbWVyZ2VkUmF3UGxhdGZvcm1TY3JvbGxpbmdEZWx0YSA9IGEu
cmF3UGxhdGZvcm1EZWx0YSgpLnZhbHVlKCkgKyBiLnJhd1BsYXRmb3JtRGVsdGEoKS52YWx1ZSgp
OwogCi0gICAgcmV0dXJuIFdlYldoZWVsRXZlbnQoV2ViRXZlbnQ6OldoZWVsLCBiLnBvc2l0aW9u
KCksIGIuZ2xvYmFsUG9zaXRpb24oKSwgbWVyZ2VkRGVsdGEsIG1lcmdlZFdoZWVsVGlja3MsIGIu
Z3JhbnVsYXJpdHkoKSwgYi5kaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UoKSwgYi5waGFzZSgp
LCBiLm1vbWVudHVtUGhhc2UoKSwgYi5oYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzKCksIGIuc2Ny
b2xsQ291bnQoKSwgbWVyZ2VkVW5hY2NlbGVyYXRlZFNjcm9sbGluZ0RlbHRhLCBiLm1vZGlmaWVy
cygpLCBiLnRpbWVzdGFtcCgpLCBiLmlvSElERXZlbnRUaW1lc3RhbXAoKSwgbWVyZ2VkUmF3UGxh
dGZvcm1TY3JvbGxpbmdEZWx0YSk7CisgICAgcmV0dXJuIFdlYldoZWVsRXZlbnQoV2ViRXZlbnQ6
OldoZWVsLCBiLnBvc2l0aW9uKCksIGIuZ2xvYmFsUG9zaXRpb24oKSwgbWVyZ2VkRGVsdGEsIG1l
cmdlZFdoZWVsVGlja3MsIGIuZ3JhbnVsYXJpdHkoKSwgYi5kaXJlY3Rpb25JbnZlcnRlZEZyb21E
ZXZpY2UoKSwgYi5waGFzZSgpLCBiLm1vbWVudHVtUGhhc2UoKSwgYi5oYXNQcmVjaXNlU2Nyb2xs
aW5nRGVsdGFzKCksIGIuc2Nyb2xsQ291bnQoKSwgbWVyZ2VkVW5hY2NlbGVyYXRlZFNjcm9sbGlu
Z0RlbHRhLCBiLm1vZGlmaWVycygpLCBiLnRpbWVzdGFtcCgpLCBiLmlvSElERXZlbnRUaW1lc3Rh
bXAoKSwgbWVyZ2VkUmF3UGxhdGZvcm1TY3JvbGxpbmdEZWx0YSwgYi5tb21lbnR1bUVuZFR5cGUo
KSk7CiAjZWxpZiBQTEFURk9STShHVEspIHx8IFVTRShMSUJXUEUpCiAgICAgcmV0dXJuIFdlYldo
ZWVsRXZlbnQoV2ViRXZlbnQ6OldoZWVsLCBiLnBvc2l0aW9uKCksIGIuZ2xvYmFsUG9zaXRpb24o
KSwgbWVyZ2VkRGVsdGEsIG1lcmdlZFdoZWVsVGlja3MsIGIucGhhc2UoKSwgYi5tb21lbnR1bVBo
YXNlKCksIGIuZ3JhbnVsYXJpdHkoKSwgYi5oYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzKCksIGIu
bW9kaWZpZXJzKCksIGIudGltZXN0YW1wKCkpOwogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9tYWMvV2ViRXZlbnRGYWN0b3J5Lm1tCmluZGV4IDE1M2M5OTI4YWRmYzcyNjExZDUwYzQ3MzE4
NGYyNjBiZjBmYjEyMGQuLjkyMGRlMDBiYjY4NjIwMmI2YzFkNjRmYWFkNzEyMzU5YzE2MDI3OGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkubW0K
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5tbQpAQCAtNDEw
LDMzICs0MTAsMzEgQEAgV2ViV2hlZWxFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYldo
ZWVsRXZlbnQoTlNFdmVudCAqZXZlbnQsIE5TVmlldyAqd2luZG8KIAogICAgIGF1dG8gbW9kaWZp
ZXJzID0gbW9kaWZpZXJzRm9yRXZlbnQoZXZlbnQpOwogICAgIGF1dG8gdGltZXN0YW1wID0gV2Vi
Q29yZTo6ZXZlbnRUaW1lU3RhbXBTaW5jZTE5NzAoZXZlbnQudGltZXN0YW1wKTsKLQotICAgIGF1
dG8gaW9ISURFdmVudFRpbWVzdGFtcCA9IFsmXSgpIHsKKyAgICAKKyAgICBhdXRvIGlvSElERXZl
bnRXYWxsVGltZSA9IHRpbWVzdGFtcDsKKyAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0
U2l6ZT4gcmF3UGxhdGZvcm1EZWx0YTsKKyAgICBhdXRvIG1vbWVudHVtRW5kVHlwZSA9IFdlYldo
ZWVsRXZlbnQ6Ok1vbWVudHVtRW5kVHlwZTo6VW5rbm93bjsKKyAgICAKKyAgICAoWyZdIHsKICAg
ICAgICAgYXV0byBjZ0V2ZW50ID0gZXZlbnQuQ0dFdmVudDsKICAgICAgICAgaWYgKCFjZ0V2ZW50
KQotICAgICAgICAgICAgcmV0dXJuIGV2ZW50LnRpbWVzdGFtcDsKKyAgICAgICAgICAgIHJldHVy
bjsKIAogICAgICAgICBhdXRvIGlvSElERXZlbnQgPSBhZG9wdENGKENHRXZlbnRDb3B5SU9ISURF
dmVudChjZ0V2ZW50KSk7CiAgICAgICAgIGlmICghaW9ISURFdmVudCkKLSAgICAgICAgICAgIHJl
dHVybiBldmVudC50aW1lc3RhbXA7CisgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgYXV0
byBpb0hJREV2ZW50VGltZXN0YW1wID0gSU9ISURFdmVudEdldFRpbWVTdGFtcChpb0hJREV2ZW50
LmdldCgpKTsgLy8gSU9FdmVudFJlZiB0aW1lc3RhbXAgaXMgbWFjaF9hYnNvbHV0ZV90aW1lIHVu
aXRzLgotICAgICAgICByZXR1cm4gTW9ub3RvbmljVGltZTo6ZnJvbU1hY2hBYnNvbHV0ZVRpbWUo
aW9ISURFdmVudFRpbWVzdGFtcCkuc2Vjb25kc1NpbmNlRXBvY2goKS5zZWNvbmRzKCk7Ci0gICAg
fSgpOwotCi0gICAgYXV0byByYXdQbGF0Zm9ybURlbHRhID0gWyZdKCkgLT4gc3RkOjpvcHRpb25h
bDxXZWJDb3JlOjpGbG9hdFNpemU+IHsKLSAgICAgICAgYXV0byBjZ0V2ZW50ID0gZXZlbnQuQ0dF
dmVudDsKLSAgICAgICAgaWYgKCFjZ0V2ZW50KQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKLQotICAgICAgICBhdXRvIGlvSElERXZlbnQgPSBhZG9wdENGKENHRXZlbnRDb3B5SU9I
SURFdmVudChjZ0V2ZW50KSk7Ci0gICAgICAgIGlmICghaW9ISURFdmVudCkKLSAgICAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAgIGF1dG8gbW9ub3RvbmljSU9ISURFdmVudFRp
bWVzdGFtcCA9IE1vbm90b25pY1RpbWU6OmZyb21NYWNoQWJzb2x1dGVUaW1lKGlvSElERXZlbnRU
aW1lc3RhbXApLnNlY29uZHNTaW5jZUVwb2NoKCkuc2Vjb25kcygpOworICAgICAgICBpb0hJREV2
ZW50V2FsbFRpbWUgPSBXZWJDb3JlOjpldmVudFRpbWVTdGFtcFNpbmNlMTk3MChtb25vdG9uaWNJ
T0hJREV2ZW50VGltZXN0YW1wKTsKICAgICAgICAgCi0gICAgICAgIHJldHVybiB7IFdlYkNvcmU6
OkZsb2F0U2l6ZSgtSU9ISURFdmVudEdldEZsb2F0VmFsdWUoaW9ISURFdmVudC5nZXQoKSwga0lP
SElERXZlbnRGaWVsZFNjcm9sbFgpLCAtSU9ISURFdmVudEdldEZsb2F0VmFsdWUoaW9ISURFdmVu
dC5nZXQoKSwga0lPSElERXZlbnRGaWVsZFNjcm9sbFkpKSB9OwotICAgIH0oKTsKKyAgICAgICAg
cmF3UGxhdGZvcm1EZWx0YSA9IHsgV2ViQ29yZTo6RmxvYXRTaXplKC1JT0hJREV2ZW50R2V0Rmxv
YXRWYWx1ZShpb0hJREV2ZW50LmdldCgpLCBrSU9ISURFdmVudEZpZWxkU2Nyb2xsWCksIC1JT0hJ
REV2ZW50R2V0RmxvYXRWYWx1ZShpb0hJREV2ZW50LmdldCgpLCBrSU9ISURFdmVudEZpZWxkU2Ny
b2xsWSkpIH07CiAKLSAgICBhdXRvIGlvSElERXZlbnRXYWxsVGltZSA9IFdlYkNvcmU6OmV2ZW50
VGltZVN0YW1wU2luY2UxOTcwKGlvSElERXZlbnRUaW1lc3RhbXApOworI2lmIEhBVkUoUExBVEZP
Uk1fU0NST0xMX01PTUVOVFVNX0lOVEVSUlVQVElPTl9SRUFTT04pCisgICAgICAgIGJvb2wgbW9t
ZW50dW1XYXNJbnRlcnJ1cHRlZCA9IElPSElERXZlbnRHZXRTY3JvbGxNb21lbnR1bShpb0hJREV2
ZW50LmdldCgpKSAmIGtJT0hJREV2ZW50U2Nyb2xsTW9tZW50dW1JbnRlcnJ1cHRlZDsKKyAgICAg
ICAgbW9tZW50dW1FbmRUeXBlID0gbW9tZW50dW1XYXNJbnRlcnJ1cHRlZCA/IFdlYldoZWVsRXZl
bnQ6Ok1vbWVudHVtRW5kVHlwZTo6SW50ZXJydXB0ZWQgOiBXZWJXaGVlbEV2ZW50OjpNb21lbnR1
bUVuZFR5cGU6Ok5hdHVyYWw7CisjZW5kaWYKKyAgICB9KSgpOwogCiAgICAgaWYgKHBoYXNlID09
IFdlYldoZWVsRXZlbnQ6OlBoYXNlQ2FuY2VsbGVkKSB7CiAgICAgICAgIGRlbHRhWCA9IDA7CkBA
IC00NDksNyArNDQ3LDcgQEAgV2ViV2hlZWxFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdl
YldoZWVsRXZlbnQoTlNFdmVudCAqZXZlbnQsIE5TVmlldyAqd2luZG8KIAogICAgIHJldHVybiBX
ZWJXaGVlbEV2ZW50KFdlYkV2ZW50OjpXaGVlbCwgV2ViQ29yZTo6SW50UG9pbnQocG9zaXRpb24p
LCBXZWJDb3JlOjpJbnRQb2ludChnbG9iYWxQb3NpdGlvbiksIFdlYkNvcmU6OkZsb2F0U2l6ZShk
ZWx0YVgsIGRlbHRhWSksIFdlYkNvcmU6OkZsb2F0U2l6ZSh3aGVlbFRpY2tzWCwgd2hlZWxUaWNr
c1kpLAogICAgICAgICBncmFudWxhcml0eSwgZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlLCBw
aGFzZSwgbW9tZW50dW1QaGFzZSwgaGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcywKLSAgICAgICAg
c2Nyb2xsQ291bnQsIHVuYWNjZWxlcmF0ZWRTY3JvbGxpbmdEZWx0YSwgbW9kaWZpZXJzLCB0aW1l
c3RhbXAsIGlvSElERXZlbnRXYWxsVGltZSwgcmF3UGxhdGZvcm1EZWx0YSk7CisgICAgICAgIHNj
cm9sbENvdW50LCB1bmFjY2VsZXJhdGVkU2Nyb2xsaW5nRGVsdGEsIG1vZGlmaWVycywgdGltZXN0
YW1wLCBpb0hJREV2ZW50V2FsbFRpbWUsIHJhd1BsYXRmb3JtRGVsdGEsIG1vbWVudHVtRW5kVHlw
ZSk7CiB9CiAKIFdlYktleWJvYXJkRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJLZXli
b2FyZEV2ZW50KE5TRXZlbnQgKmV2ZW50LCBib29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBib29s
IHJlcGxhY2VzU29mdFNwYWNlLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5k
PiYgY29tbWFuZHMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9Nb21lbnR1bUV2ZW50RGlzcGF0Y2hlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9Nb21lbnR1bUV2ZW50RGlzcGF0Y2hlci5jcHAKaW5kZXggMjFmMjgyMTk1MTY0NGE3
YTViYjhmODBkYzg1ZjIwMDIzOWRhOWUyZi4uYjY4NmFmNGVhNjg5OGJlZTFkZGVhY2FiMjkwMzRl
YWNmODJjYzExNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
TW9tZW50dW1FdmVudERpc3BhdGNoZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL01vbWVudHVtRXZlbnREaXNwYXRjaGVyLmNwcApAQCAtODcsOCArODcsMjMgQEAg
Ym9vbCBNb21lbnR1bUV2ZW50RGlzcGF0Y2hlcjo6aGFuZGxlV2hlZWxFdmVudChXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciBwYWdlSWRlbnQKICAgICAgICAgLy8gbW9tZW50dW1QaGFzZSA9PSBQaGFz
ZUVuZGVkIHRoYXQgaW50ZXJydXB0cy4KICAgICAgICAgYm9vbCBldmVudFNob3VsZEludGVycnVw
dEdlc3R1cmUgPSAhaXNNb21lbnR1bUV2ZW50IHx8IGV2ZW50Lm1vbWVudHVtUGhhc2UoKSAhPSBX
ZWJXaGVlbEV2ZW50OjpQaGFzZUNoYW5nZWQ7CiAKLSAgICAgICAgaWYgKHBhZ2VJZGVudGlmaWVy
Q2hhbmdlZCB8fCBldmVudFNob3VsZEludGVycnVwdEdlc3R1cmUpCisgICAgICAgIGlmIChldmVu
dC5tb21lbnR1bVBoYXNlKCkgPT0gV2ViV2hlZWxFdmVudDo6UGhhc2VFbmRlZCkgeworI2lmIEVO
QUJMRShNT01FTlRVTV9FVkVOVF9ESVNQQVRDSEVSX1RFTVBPUkFSWV9MT0dHSU5HKQorICAgICAg
ICAgICAgUkVMRUFTRV9MT0coU2Nyb2xsQW5pbWF0aW9ucywgIk1vbWVudHVtRXZlbnREaXNwYXRj
aGVyIHNhdyBtb21lbnR1bSBlbmRlZCBwaGFzZSwgaW50ZXJydXB0ZWQ9JWQiLCBzdGF0aWNfY2Fz
dDxpbnQ+KGV2ZW50Lm1vbWVudHVtRW5kVHlwZSgpKSk7CisjZW5kaWYKKworICAgICAgICAgICAg
Ly8gSWdub3JlIG1vbWVudHVtUGhhc2UgPT0gUGhhc2VFbmRlZCBpZiBpdCB3YXMgZHVlIHRvIHRo
ZSBuYXR1cmFsCisgICAgICAgICAgICAvLyBlbmQgb2YgdGhlIGFuaW1hdGlvbiAoYXMgb3Bwb3Nl
ZCB0byBpbnRlcnJ1cHRpb24gYnkgcGxhY2luZyBmaW5nZXJzCisgICAgICAgICAgICAvLyBvbiB0
aGUgdHJhY2twYWQpLCBzbyB0aGF0IG91ciBtb21lbnR1bSBpcyBub3QgY3V0IHNob3J0IGlmIHRo
ZQorICAgICAgICAgICAgLy8gZGVjZWxlcmF0aW9uIHJ1bnMgbG9uZ2VyIHRoYW4gdGhlIHN5c3Rl
bSBjdXJ2ZS4KKyAgICAgICAgICAgIGlmIChldmVudC5tb21lbnR1bUVuZFR5cGUoKSA9PSBXZWJX
aGVlbEV2ZW50OjpNb21lbnR1bUVuZFR5cGU6Ok5hdHVyYWwpCisgICAgICAgICAgICAgICAgZXZl
bnRTaG91bGRJbnRlcnJ1cHRHZXN0dXJlID0gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBp
ZiAocGFnZUlkZW50aWZpZXJDaGFuZ2VkIHx8IGV2ZW50U2hvdWxkSW50ZXJydXB0R2VzdHVyZSkg
eworICAgICAgICAgICAgUkVMRUFTRV9MT0coU2Nyb2xsQW5pbWF0aW9ucywgIk1vbWVudHVtRXZl
bnREaXNwYXRjaGVyIGludGVycnVwdGluZyBzeW50aGV0aWMgbW9tZW50dW0gcGhhc2UiKTsKICAg
ICAgICAgICAgIGRpZEVuZE1vbWVudHVtUGhhc2UoKTsKKyAgICAgICAgfQogICAgIH0KIAogICAg
IGlmIChldmVudC5waGFzZSgpID09IFdlYldoZWVsRXZlbnQ6OlBoYXNlQmVnYW4gfHwgZXZlbnQu
cGhhc2UoKSA9PSBXZWJXaGVlbEV2ZW50OjpQaGFzZUNoYW5nZWQpIHsKQEAgLTEwMCwxOCArMTE1
LDI2IEBAIGJvb2wgTW9tZW50dW1FdmVudERpc3BhdGNoZXI6OmhhbmRsZVdoZWVsRXZlbnQoV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlkZW50CiAjZW5kaWYKICAgICB9CiAKLSAgICBpZiAo
ZXZlbnRTaG91bGRTdGFydFN5bnRoZXRpY01vbWVudHVtUGhhc2UocGFnZUlkZW50aWZpZXIsIGV2
ZW50KSkKKyAgICBpZiAoZXZlbnRTaG91bGRTdGFydFN5bnRoZXRpY01vbWVudHVtUGhhc2UocGFn
ZUlkZW50aWZpZXIsIGV2ZW50KSkgewogICAgICAgICBkaWRTdGFydE1vbWVudHVtUGhhc2UocGFn
ZUlkZW50aWZpZXIsIGV2ZW50KTsKKyAgICAgICAgbV9pc0luT3ZlcnJpZGRlblBsYXRmb3JtTW9t
ZW50dW1HZXN0dXJlID0gdHJ1ZTsKKyAgICB9CiAKLSAgICBib29sIGlzTW9tZW50dW1FdmVudER1
cmluZ1N5bnRoZXRpY0dlc3R1cmUgPSBpc01vbWVudHVtRXZlbnQgJiYgbV9jdXJyZW50R2VzdHVy
ZS5hY3RpdmU7CisgICAgLy8gQ29uc3VtZSBhbnkgaW5jb21pbmcgbW9tZW50dW0gZXZlbnRzIHdo
aWxlIHdlJ3JlIGdlbmVyYXRpbmcgYSBzeW50aGV0aWMKKyAgICAvLyBtb21lbnR1bSBnZXN0dXJl
ICpvciogYSBwbGF0Zm9ybSBtb21lbnR1bSBwaGFzZSB0aGF0IHdhcyBvdmVycmlkZGVuCisgICAg
Ly8gaXMgc3RpbGwgcnVubmluZyBhZnRlciB3ZSBmaW5pc2hlZCB0aGUgc3ludGhldGljIGdlc3R1
cmUuCisgICAgYm9vbCBzaG91bGRJZ25vcmVJbmNvbWluZ1BsYXRmb3JtRXZlbnQgPSBpc01vbWVu
dHVtRXZlbnQgJiYgKG1faXNJbk92ZXJyaWRkZW5QbGF0Zm9ybU1vbWVudHVtR2VzdHVyZSB8fCBt
X2N1cnJlbnRHZXN0dXJlLmFjdGl2ZSk7CisKKyAgICBpZiAoZXZlbnQubW9tZW50dW1QaGFzZSgp
ID09IFdlYldoZWVsRXZlbnQ6OlBoYXNlRW5kZWQpCisgICAgICAgIG1faXNJbk92ZXJyaWRkZW5Q
bGF0Zm9ybU1vbWVudHVtR2VzdHVyZSA9IGZhbHNlOwogCiAjaWYgRU5BQkxFKE1PTUVOVFVNX0VW
RU5UX0RJU1BBVENIRVJfVEVNUE9SQVJZX0xPR0dJTkcpCi0gICAgaWYgKGlzTW9tZW50dW1FdmVu
dER1cmluZ1N5bnRoZXRpY0dlc3R1cmUpCisgICAgaWYgKHNob3VsZElnbm9yZUluY29taW5nUGxh
dGZvcm1FdmVudCkKICAgICAgICAgbV9jdXJyZW50R2VzdHVyZS5hY2N1bXVsYXRlZEV2ZW50T2Zm
c2V0ICs9IGV2ZW50LmRlbHRhKCk7CiAKICAgICBhdXRvIGNvbWJpbmVkUGhhc2UgPSAoZXZlbnQu
cGhhc2UoKSA8PCA4KSB8IChldmVudC5tb21lbnR1bVBoYXNlKCkpOwogICAgIG1fY3VycmVudExv
Z1N0YXRlLnRvdGFsRXZlbnRPZmZzZXQgKz0gZXZlbnQuZGVsdGEoKS5oZWlnaHQoKTsKLSAgICBp
ZiAoIWlzTW9tZW50dW1FdmVudER1cmluZ1N5bnRoZXRpY0dlc3R1cmUpIHsKKyAgICBpZiAoIXNo
b3VsZElnbm9yZUluY29taW5nUGxhdGZvcm1FdmVudCkgewogICAgICAgICAvLyBMb2cgZXZlbnRz
IHRoYXQgd2UgZG9uJ3QgYmxvY2sgdG8gdGhlIGdlbmVyYXRlZCBvZmZzZXRzIGxvZyBhcyB3ZWxs
LAogICAgICAgICAvLyBldmVuIHRob3VnaCB3ZSBkaWRuJ3QgdGVjaG5pY2FsbHkgZ2VuZXJhdGUg
dGhlbSwganVzdCBwYXNzZWQgdGhlbSB0aHJvdWdoLgogICAgICAgICBtX2N1cnJlbnRMb2dTdGF0
ZS50b3RhbEdlbmVyYXRlZE9mZnNldCArPSBldmVudC5kZWx0YSgpLmhlaWdodCgpOwpAQCAtMTIx
LDggKzE0NCw3IEBAIGJvb2wgTW9tZW50dW1FdmVudERpc3BhdGNoZXI6OmhhbmRsZVdoZWVsRXZl
bnQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlkZW50CiAgICAgCiAjZW5kaWYKIAotICAg
IC8vIENvbnN1bWUgYW55IG5vcm1hbCBtb21lbnR1bSBldmVudHMgd2hpbGUgd2UncmUgaW5zaWRl
IGEgc3ludGhldGljIG1vbWVudHVtIGdlc3R1cmUuCi0gICAgcmV0dXJuIGlzTW9tZW50dW1FdmVu
dER1cmluZ1N5bnRoZXRpY0dlc3R1cmU7CisgICAgcmV0dXJuIHNob3VsZElnbm9yZUluY29taW5n
UGxhdGZvcm1FdmVudDsKIH0KIAogc3RhdGljIGZsb2F0IGFwcEtpdFNjcm9sbE11bHRpcGxpZXJG
b3JFdmVudChjb25zdCBXZWJXaGVlbEV2ZW50JiBldmVudCkKQEAgLTE3MCw3ICsxOTIsOCBAQCB2
b2lkIE1vbWVudHVtRXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaFN5bnRoZXRpY01vbWVudHVtRXZl
bnQoV2ViV2hlZWxFdmVudDo6UGhhcwogICAgICAgICBtX2xhc3RJbmNvbWluZ0V2ZW50LT5tb2Rp
ZmllcnMoKSwKICAgICAgICAgdGltZSwKICAgICAgICAgdGltZSwKLSAgICAgICAgeyB9KTsKKyAg
ICAgICAgeyB9LAorICAgICAgICBXZWJXaGVlbEV2ZW50OjpNb21lbnR1bUVuZFR5cGU6OlVua25v
d24pOwogICAgIG1fZGlzcGF0Y2hlci5pbnRlcm5hbFdoZWVsRXZlbnQobV9jdXJyZW50R2VzdHVy
ZS5wYWdlSWRlbnRpZmllciwgc3ludGhldGljRXZlbnQsIG1fbGFzdFJ1YmJlckJhbmRhYmxlRWRn
ZXMsIEV2ZW50RGlzcGF0Y2hlcjo6V2hlZWxFdmVudE9yaWdpbjo6TW9tZW50dW1FdmVudERpc3Bh
dGNoZXIpOwogCiAjaWYgRU5BQkxFKE1PTUVOVFVNX0VWRU5UX0RJU1BBVENIRVJfVEVNUE9SQVJZ
X0xPR0dJTkcpCkBAIC0yMjMsNyArMjQ2LDcgQEAgdm9pZCBNb21lbnR1bUV2ZW50RGlzcGF0Y2hl
cjo6ZGlkRW5kTW9tZW50dW1QaGFzZSgpCiAgICAgZGlzcGF0Y2hTeW50aGV0aWNNb21lbnR1bUV2
ZW50KFdlYldoZWVsRXZlbnQ6OlBoYXNlRW5kZWQsIHsgfSk7CiAKICNpZiBFTkFCTEUoTU9NRU5U
VU1fRVZFTlRfRElTUEFUQ0hFUl9URU1QT1JBUllfTE9HR0lORykKLSAgICBSRUxFQVNFX0xPRyhT
Y3JvbGxBbmltYXRpb25zLCAiTW9tZW50dW1FdmVudERpc3BhdGNoZXIgc2F3IG1vbWVudHVtIGVu
ZCBwaGFzZSB3aXRoIHRvdGFsIG9mZnNldCAlLjFmICUuMWYsIGR1cmF0aW9uICVmIChldmVudCBv
ZmZzZXQgd291bGQgaGF2ZSBiZWVuICUuMWYgJS4xZikgKHRhaWwgaW5kZXggJWQgb2YgJXp1KSIs
IG1fY3VycmVudEdlc3R1cmUuY3VycmVudE9mZnNldC53aWR0aCgpLCBtX2N1cnJlbnRHZXN0dXJl
LmN1cnJlbnRPZmZzZXQuaGVpZ2h0KCksIChNb25vdG9uaWNUaW1lOjpub3coKSAtIG1fY3VycmVu
dEdlc3R1cmUuc3RhcnRUaW1lKS5zZWNvbmRzKCksIG1fY3VycmVudEdlc3R1cmUuYWNjdW11bGF0
ZWRFdmVudE9mZnNldC53aWR0aCgpLCBtX2N1cnJlbnRHZXN0dXJlLmFjY3VtdWxhdGVkRXZlbnRP
ZmZzZXQuaGVpZ2h0KCksIG1fY3VycmVudEdlc3R1cmUuY3VycmVudFRhaWxEZWx0YUluZGV4LCBt
X2N1cnJlbnRHZXN0dXJlLnRhaWxEZWx0YVRhYmxlLnNpemUoKSk7CisgICAgUkVMRUFTRV9MT0co
U2Nyb2xsQW5pbWF0aW9ucywgIk1vbWVudHVtRXZlbnREaXNwYXRjaGVyIGVuZGluZyBzeW50aGV0
aWMgbW9tZW50dW0gcGhhc2Ugd2l0aCB0b3RhbCBvZmZzZXQgJS4xZiAlLjFmLCBkdXJhdGlvbiAl
ZiAoZXZlbnQgb2Zmc2V0IHdvdWxkIGhhdmUgYmVlbiAlLjFmICUuMWYpICh0YWlsIGluZGV4ICVk
IG9mICV6dSkiLCBtX2N1cnJlbnRHZXN0dXJlLmN1cnJlbnRPZmZzZXQud2lkdGgoKSwgbV9jdXJy
ZW50R2VzdHVyZS5jdXJyZW50T2Zmc2V0LmhlaWdodCgpLCAoTW9ub3RvbmljVGltZTo6bm93KCkg
LSBtX2N1cnJlbnRHZXN0dXJlLnN0YXJ0VGltZSkuc2Vjb25kcygpLCBtX2N1cnJlbnRHZXN0dXJl
LmFjY3VtdWxhdGVkRXZlbnRPZmZzZXQud2lkdGgoKSwgbV9jdXJyZW50R2VzdHVyZS5hY2N1bXVs
YXRlZEV2ZW50T2Zmc2V0LmhlaWdodCgpLCBtX2N1cnJlbnRHZXN0dXJlLmN1cnJlbnRUYWlsRGVs
dGFJbmRleCwgbV9jdXJyZW50R2VzdHVyZS50YWlsRGVsdGFUYWJsZS5zaXplKCkpOwogICAgIG1f
ZGlzcGF0Y2hlci5xdWV1ZSgpLmRpc3BhdGNoQWZ0ZXIoMV9zLCBbdGhpc10gewogICAgICAgICBm
bHVzaExvZygpOwogICAgIH0pOwpAQCAtMjQyLDcgKzI2NSw3IEBAIHZvaWQgTW9tZW50dW1FdmVu
dERpc3BhdGNoZXI6OnNldFNjcm9sbGluZ0FjY2VsZXJhdGlvbkN1cnZlKFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmCiAjaWYgRU5BQkxFKE1PTUVOVFVNX0VWRU5UX0RJU1BBVENIRVJfVEVNUE9SQVJZX0xP
R0dJTkcpCiAgICAgV1RGOjpUZXh0U3RyZWFtIHN0cmVhbShXVEY6OlRleHRTdHJlYW06OkxpbmVN
b2RlOjpTaW5nbGVMaW5lKTsKICAgICBzdHJlYW0gPDwgY3VydmU7Ci0gICAgUkVMRUFTRV9MT0co
U2Nyb2xsQW5pbWF0aW9ucywgIk1vbWVudHVtRXZlbnREaXNwYXRjaGVyIHNldCBjdXJ2ZSAlcyIs
IHN0cmVhbS5yZWxlYXNlKCkudXRmOCgpLmRhdGEoKSk7CisgICAgUkVMRUFTRV9MT0coU2Nyb2xs
QW5pbWF0aW9ucywgIk1vbWVudHVtRXZlbnREaXNwYXRjaGVyIHNldCBjdXJ2ZSAle3B1YmxpY31z
Iiwgc3RyZWFtLnJlbGVhc2UoKS51dGY4KCkuZGF0YSgpKTsKICNlbmRpZgogfQogCkBAIC0yOTks
NyArMzIyLDcgQEAgdm9pZCBNb21lbnR1bUV2ZW50RGlzcGF0Y2hlcjo6cGFnZVNjcmVlbkRpZENo
YW5nZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQKICAgICAgICAgc3RhcnREaXNwbGF5
TGluaygpOwogfQogCi1XZWJDb3JlOjpGbG9hdFNpemUgTW9tZW50dW1FdmVudERpc3BhdGNoZXI6
OmNvbnN1bWVEZWx0YUZvckN1cnJlbnRUaW1lKCkKK3N0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6Rmxv
YXRTaXplPiBNb21lbnR1bUV2ZW50RGlzcGF0Y2hlcjo6Y29uc3VtZURlbHRhRm9yQ3VycmVudFRp
bWUoKQogewogICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBkZWx0YTsKIApAQCAtMzExLDcgKzMzNCw3
IEBAIFdlYkNvcmU6OkZsb2F0U2l6ZSBNb21lbnR1bUV2ZW50RGlzcGF0Y2hlcjo6Y29uc3VtZURl
bHRhRm9yQ3VycmVudFRpbWUoKQogICAgICAgICBpZiAobV9jdXJyZW50R2VzdHVyZS5jdXJyZW50
VGFpbERlbHRhSW5kZXggPCBtX2N1cnJlbnRHZXN0dXJlLnRhaWxEZWx0YVRhYmxlLnNpemUoKSkK
ICAgICAgICAgICAgIGRlbHRhID0gLW1fY3VycmVudEdlc3R1cmUudGFpbERlbHRhVGFibGVbbV9j
dXJyZW50R2VzdHVyZS5jdXJyZW50VGFpbERlbHRhSW5kZXgrK107CiAgICAgICAgIGVsc2UKLSAg
ICAgICAgICAgIGRlbHRhID0geyB9OworICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
ICAgICB9CiAKICAgICBtX2N1cnJlbnRHZXN0dXJlLmN1cnJlbnRPZmZzZXQgKz0gZGVsdGE7CkBA
IC0zMzEsNyArMzU0LDE2IEBAIHZvaWQgTW9tZW50dW1FdmVudERpc3BhdGNoZXI6OmRpc3BsYXlX
YXNSZWZyZXNoZWQoV2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5SUQgZGlzCiAgICAgaWYgKCFkaXNw
bGF5UHJvcGVydGllcyB8fCBkaXNwbGF5SUQgIT0gZGlzcGxheVByb3BlcnRpZXMtPmRpc3BsYXlJ
RCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgZGlzcGF0Y2hTeW50aGV0aWNNb21lbnR1bUV2ZW50
KFdlYldoZWVsRXZlbnQ6OlBoYXNlQ2hhbmdlZCwgY29uc3VtZURlbHRhRm9yQ3VycmVudFRpbWUo
KSk7CisgICAgYXV0byBkZWx0YSA9IGNvbnN1bWVEZWx0YUZvckN1cnJlbnRUaW1lKCk7CisgICAg
aWYgKCFkZWx0YSkgeworI2lmIEVOQUJMRShNT01FTlRVTV9FVkVOVF9ESVNQQVRDSEVSX1RFTVBP
UkFSWV9MT0dHSU5HKQorICAgICAgICBSRUxFQVNFX0xPRyhTY3JvbGxBbmltYXRpb25zLCAiTW9t
ZW50dW1FdmVudERpc3BhdGNoZXIgY29tcGxldGVkIHN5bnRoZXRpYyBtb21lbnR1bSBwaGFzZSIp
OworI2VuZGlmCisgICAgICAgIGRpZEVuZE1vbWVudHVtUGhhc2UoKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIGRpc3BhdGNoU3ludGhldGljTW9tZW50dW1FdmVudChXZWJXaGVlbEV2
ZW50OjpQaGFzZUNoYW5nZWQsICpkZWx0YSk7CiB9CiAKIHZvaWQgTW9tZW50dW1FdmVudERpc3Bh
dGNoZXI6OmRpZFJlY2VpdmVTY3JvbGxFdmVudFdpdGhJbnRlcnZhbChXZWJDb3JlOjpGbG9hdFNp
emUgc2l6ZSwgU2Vjb25kcyBmcmFtZUludGVydmFsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvTW9tZW50dW1FdmVudERpc3BhdGNoZXIuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL01vbWVudHVtRXZlbnREaXNwYXRjaGVyLmgKaW5kZXgg
NWNlMTk0NGFjNDQ0MWY0MWFmZTIxNjk3M2FmYWU5YzZmOWMwN2RiMi4uOWM1OGYyMjY4ODA5Mjdh
YjUxZDM2YjQ0OGY2ZjgwZmYyMjc1ZGE1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvTW9tZW50dW1FdmVudERpc3BhdGNoZXIuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Nb21lbnR1bUV2ZW50RGlzcGF0Y2hlci5oCkBAIC04Niw3
ICs4Niw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBlcXVhbGl6ZVRhaWxHYXBzKCk7CiAKICAgICAv
LyBPbmNlIGNvbnN1bWVkLCB0aGlzIGRlbHRhICptdXN0KiBiZSBkaXNwYXRjaGVkIGluIGFuIGV2
ZW50LgotICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBjb25zdW1lRGVsdGFGb3JDdXJyZW50VGltZSgp
OworICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRTaXplPiBjb25zdW1lRGVsdGFGb3JD
dXJyZW50VGltZSgpOwogCiAgICAgV2ViQ29yZTo6RmxvYXRTaXplIG9mZnNldEF0VGltZShTZWNv
bmRzKTsKICAgICBzdGQ6OnBhaXI8V2ViQ29yZTo6RmxvYXRTaXplLCBXZWJDb3JlOjpGbG9hdFNp
emU+IGNvbXB1dGVOZXh0RGVsdGEoV2ViQ29yZTo6RmxvYXRTaXplIGN1cnJlbnRVbmFjY2VsZXJh
dGVkRGVsdGEpOwpAQCAtMTI1LDYgKzEyNSw3IEBAIHByaXZhdGU6CiAgICAgc3RkOjpvcHRpb25h
bDxXYWxsVGltZT4gbV9sYXN0U2Nyb2xsVGltZXN0YW1wOwogICAgIHN0ZDo6b3B0aW9uYWw8V2Vi
V2hlZWxFdmVudD4gbV9sYXN0SW5jb21pbmdFdmVudDsKICAgICBXZWJDb3JlOjpSZWN0RWRnZXM8
Ym9vbD4gbV9sYXN0UnViYmVyQmFuZGFibGVFZGdlczsKKyAgICBib29sIG1faXNJbk92ZXJyaWRk
ZW5QbGF0Zm9ybU1vbWVudHVtR2VzdHVyZSB7IGZhbHNlIH07CiAKICAgICBzdHJ1Y3QgewogICAg
ICAgICBib29sIGFjdGl2ZSB7IGZhbHNlIH07Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>