<?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>230699</bug_id>
          
          <creation_ts>2021-09-23 11:01:39 -0700</creation_ts>
          <short_desc>[iOS] Add a Multiple AVAudioSession Experimental Feature</short_desc>
          <delta_ts>2021-09-30 11:02:29 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></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="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hta</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1796573</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-09-23 11:01:39 -0700</bug_when>
    <thetext>[iOS] Add a Multiple AVAudioSession Experimental Feature</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796625</commentid>
    <comment_count>1</comment_count>
      <attachid>439080</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-09-23 12:22:10 -0700</bug_when>
    <thetext>Created attachment 439080
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796634</commentid>
    <comment_count>2</comment_count>
      <attachid>439084</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-09-23 12:54:57 -0700</bug_when>
    <thetext>Created attachment 439084
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798953</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-30 11:02:29 -0700</bug_when>
    <thetext>&lt;rdar://problem/83728367&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439080</attachid>
            <date>2021-09-23 12:22:10 -0700</date>
            <delta_ts>2021-09-23 13:41:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230699-20210923122209.patch</filename>
            <type>text/plain</type>
            <size>92827</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyNDIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDA1ZTliYWZjZjIzYjUwNmEwMzEzNmVm
OTY3N2NkYWUxMDU4ODhjZjUuLjk2NTc5ZTAxYWQ5MmJmOTg3ZTA3OTkyYTA5NGE2NDhiN2U2MGUx
OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjEtMDktMjMgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gQWRkIGEgTXVsdGlwbGUgQVZBdWRpb1Nlc3Np
b24gRXhwZXJpbWVudGFsIEZlYXR1cmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzMDY5OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVy
aW1lbnRhbC55YW1sOgorCiAyMDIxLTA5LTE3ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUu
Y29tPgogCiAgICAgICAgIFtpT1NdIEVuYWJsZSBNU0UgaW4gV0tXZWJWaWV3cyBieSBkZWZhdWx0
IG9uIGlQYWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3OTdlNzViM2YwY2NjYmRkNDQ5OTZhYWJiYTE0MDAzNzY4
NjBlNjgzLi4xYTkzY2JmOThiM2Q5Y2FhZTYyNTEyMDc5MDRhYmNkZGJjYmVkODNjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsOTAgQEAKKzIwMjEtMDktMjMgIEplciBOb2JsZSAgPGplci5ub2JsZUBh
cHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gQWRkIGEgTXVsdGlwbGUgQVZBdWRpb1Nlc3Npb24g
RXhwZXJpbWVudGFsIEZlYXR1cmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzMDY5OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZCBhbiBleHBlcmltZW50YWwgZmVhdHVyZSB3aGVyZSwgaW5zdGVhZCBv
ZiB1c2luZyBqdXN0IG9uZSwgc2hhcmVkIEFWQXVkaW9TZXNzaW9uIGFuZAorICAgICAgICByZS1j
b25maWd1cmluZyB0aGF0IHNlc3Npb24gYWNjb3JkaW5nIHRvIHRoZSB0eXBlcyBvZiBQbGF0Zm9y
bU1lZGlhU2Vzc2lvbiBpbiB1c2UsIGVhY2gKKyAgICAgICAgUGxhdGZvcm1NZWRpYVNlc3Npb24g
d2lsbCByZWNlaXZlIGEgcHJlLWNvbmZpZ3VyZWQgQVZBdWRpb1Nlc3Npb24gKGlmIHRoYXQgc2Vz
c2lvbiBzdGF0ZXMKKyAgICAgICAgaXQgY2FuIGRvIHNvKS4KKworICAgICAgICBUaGlzIHdvdWxk
IG1lYW4sIGZvciBleGFtcGxlLCBhbiBhdWRpYmxlIDxhdWRpbz4gb3IgPHZpZGVvPiBlbGVtZW50
IHdvdWxkIGdldCBhIGRpZmZlcmVudAorICAgICAgICBBVkF1ZGlvU2Vzc2lvbiB0aGFuIGEgc2ls
ZW50IG9yIG11dGVkIDxhdWRpbz4gb3IgPHZpZGVvPiBlbGVtZW50LiBXaGVuIGFuIGluYXVkaWJs
ZSA8YXVkaW8+CisgICAgICAgIG9yIDx2aWRlbz4gZWxlbWVudCBiZWdpbnMgcGxheWJhY2ssIGFj
dGl2YXRpbmcgaXRzIEFWQXVkaW9TZXNzaW9uIHNob3VsZCBubyBsb25nZXIgY2F1c2UgYW4KKyAg
ICAgICAgaW50ZXJydXB0aW9uIHRvIGJlIGlzc3VlZCBhZ2FpbnN0IG90aGVyIHBsYXlpbmcgc3lz
dGVtIGF1ZGlvLCBhbW9uZyBvdGhlciBwb3RlbnRpYWwKKyAgICAgICAgYmVuZWZpdHMuCisKKyAg
ICAgICAgRHJpdmUtYnkgZml4OiBSZW5hbWUgZW51bSBBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlw
ZSAtPiBBdWRpb1Nlc3Npb25DYXRlZ29yeSwgYWxsb3dpbmcgdGhpcworICAgICAgICBlbnVtZXJh
dGlvbiB0byBiZSBmb3J3YXJkLWRlY2xhcmVkLCByYXRoZXIgdGhhbiByZXF1aXJpbmcgY2xpZW50
cyB0byBpbmNsdWRlIEF1ZGlvU2Vzc2lvbi5oLgorCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnN1cHBvcnRz
U2V0QXVkaW9TZXNzaW9uQ2F0ZWdvcnkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1l
ZGlhRWxlbWVudDo6c2V0QXVkaW9TZXNzaW9uQ2F0ZWdvcnkpOgorICAgICAgICAqIGh0bWwvSFRN
TE1lZGlhRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5oOgor
ICAgICAgICAqIHBhZ2UvRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkRlcHJlY2F0ZWRHbG9iYWxTZXR0aW5nczo6c2V0QXVkaW9TZXNzaW9uQ2F0ZWdvcnlP
dmVycmlkZSk6CisgICAgICAgICogcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNldE11bHRpcGxlQXVkaW9T
ZXNzaW9uc0VuYWJsZWQpOgorICAgICAgICAqIHBhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5o
OgorICAgICAgICAoV2ViQ29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6bXVsdGlwbGVBdWRp
b1Nlc3Npb25zRW5hYmxlZCBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vQXVkaW9T
ZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnkp
OgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpzZXRDYXRlZ29yeU92ZXJyaWRlKToK
KyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Y2F0ZWdvcnlPdmVycmlkZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Nlc3Npb246OmNhdGVnb3J5IGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OmNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uaDoKKyAgICAgICAgKFdURjo6TG9nQXJndW1lbnQ8V2Vi
Q29yZTo6QXVkaW9TZXNzaW9uQ2F0ZWdvcnk+Ojp0b1N0cmluZyk6CisgICAgICAgIChXVEY6Okxv
Z0FyZ3VtZW50PFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlPjo6dG9TdHJpbmcp
OiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpzdXBwb3J0c1Nl
dEF1ZGlvU2Vzc2lvbkNhdGVnb3J5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3Jt
TWVkaWFTZXNzaW9uOjpzZXRBdWRpb1Nlc3Npb25DYXRlZ29yeSk6CisgICAgICAgICogcGxhdGZv
cm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRm
b3JtTWVkaWFTZXNzaW9uQ2xpZW50OjpzdXBwb3J0c1NldEF1ZGlvU2Vzc2lvbkNhdGVnb3J5IGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uQ2xpZW50OjpzZXRB
dWRpb1Nlc3Npb25DYXRlZ29yeSk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vY29jb2EvTWVk
aWFTZXNzaW9uTWFuYWdlckNvY29hLmg6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vY29jb2Ev
TWVkaWFTZXNzaW9uTWFuYWdlckNvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNz
aW9uTWFuYWdlckNvY29hOjpzZXRNdWx0aXBsZUF1ZGlvU2Vzc2lvbnNFbmFibGVkKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYTo6bXVsdGlwbGVBdWRpb1Nlc3Np
b25zRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6
OnVwZGF0ZVNlc3Npb25TdGF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlv
U2Vzc2lvbklPUy5oOgorICAgICAgICAoaXNUeXBlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRp
by9pb3MvQXVkaW9TZXNzaW9uSU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y29uZmlndXJlQVZB
dWRpb1Nlc3Npb25XaXRoQ2F0ZWdvcnlBbmRQb2xpY3kpOgorICAgICAgICAoV2ViQ29yZTo6QXVk
aW9TZXNzaW9uSU9TOjpzZXRDYXRlZ29yeSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Nlc3Np
b25JT1M6OmNhdGVnb3J5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbklP
Uzo6YXVkaW9TZXNzaW9uRm9yQ2F0ZWdvcnkpOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL21h
Yy9BdWRpb1Nlc3Npb25NYWMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9T
ZXNzaW9uTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TZXNzaW9uTWFjOjpzZXRDYXRl
Z29yeSk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vbWFjL1NoYXJlZFJvdXRpbmdBcmJpdHJh
dG9yLmg6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vbWFjL1NoYXJlZFJvdXRpbmdBcmJpdHJh
dG9yLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2hhcmVkUm91dGluZ0FyYml0cmF0b3I6OmJlZ2lu
Um91dGluZ0FyYml0cmF0aW9uRm9yVG9rZW4pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpzdXBwb3J0
c1NldEF1ZGlvU2Vzc2lvbkNhdGVnb3J5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyOjpzZXRBdWRpb1Nlc3Npb25DYXRlZ29yeSk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBs
YXllclByaXZhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUludGVy
ZmFjZTo6c3VwcG9ydHNTZXRBdWRpb1Nlc3Npb25DYXRlZ29yeSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U6OnNldEF1ZGlvU2Vzc2lvbkNhdGVn
b3J5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akM6OnN1cHBvcnRzU2V0QXVkaW9TZXNzaW9uQ2F0ZWdvcnkgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c2V0QXVkaW9TZXNzaW9u
Q2F0ZWdvcnkpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U291cmNlQVZGT2JqQzo6c3VwcG9ydHNTZXRBdWRpb1Nlc3Npb25DYXRlZ29yeSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNl
dEF1ZGlvU2Vzc2lvbkNhdGVnb3J5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvQmFzZUF1ZGlvU2hhcmVkVW5pdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCYXNlQXVkaW9T
aGFyZWRVbml0OjpzdGFydFVuaXQpOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0
aW1lQXVkaW9Tb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lQXVkaW9T
b3VyY2U6OnN0YXJ0UHJvZHVjaW5nRGF0YSk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjphdWRpb1Nlc3Npb25DYXRlZ29yeSBj
b25zdCk6CisKIDIwMjEtMDktMTcgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAK
ICAgICAgICAgW0NvY29hXSBNYWtlIEFWU2FtcGxlQnVmZmVyVmlkZW9PdXRwdXQgc3VwcG9ydCBh
biBFeHBlcmltZW50YWwgRmVhdHVyZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXggZDgwZDlmOWNkMzJi
N2ViYmZjMjVkYTM0NDFiYzhjZWQ1NzhiNzQ4ZC4uMDQ2ODRkZTNmMTc4ODM1YWQyZjYwZWNhYWNh
NGQ1ZWQwODY1YjEzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEt
MDktMjMgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10g
QWRkIGEgTXVsdGlwbGUgQVZBdWRpb1Nlc3Npb24gRXhwZXJpbWVudGFsIEZlYXR1cmUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDY5OQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERlY2xhcmUgQHByb3Rv
Y29sIEFWQXVkaW9TZXNzaW9uUGFydGljaXBhbnQuCisKKyAgICAgICAgKiBwYWwvc3BpL2NvY29h
L0FWRm91bmRhdGlvblNQSS5oOgorCiAyMDIxLTA5LTE3ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVA
YXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0gTWFrZSBBVlNhbXBsZUJ1ZmZlclZpZGVvT3V0
cHV0IHN1cHBvcnQgYW4gRXhwZXJpbWVudGFsIEZlYXR1cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggOWJmNTcwNDIz
MWIzZjRmNjRiMTc2YzA5ODU5MGU1MmIxMjc2MDg2Yi4uZDAzZGMyOGUwN2MwZjc0MjExMzdjNTZh
MWM5MTdmODVjNWRiM2VmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1OCBAQAorMjAyMS0wOS0yMyAg
SmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBBZGQgYSBN
dWx0aXBsZSBBVkF1ZGlvU2Vzc2lvbiBFeHBlcmltZW50YWwgRmVhdHVyZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwNjk5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuYW1lIGVudW0gQXVkaW9TZXNz
aW9uOjpDYXRlZ29yeVR5cGUgLT4gQXVkaW9TZXNzaW9uQ2F0ZWdvcnkuCisKKyAgICAgICAgKiBH
UFVQcm9jZXNzL21hYy9Mb2NhbEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TG9jYWxBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvcjo6YmVnaW5S
b3V0aW5nQXJiaXRyYXRpb25XaXRoQ2F0ZWdvcnkpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWFj
L0xvY2FsQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3IuaDoKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OnNldENhdGVnb3J5KToKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUF1ZGlvU2Vzc2lvblByb3h5OjpjYXRlZ29yeSBjb25zdCk6CisgICAgICAgICogR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAg
KiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OmNhdGVnb3J5Q2FuTWl4V2l0aE90aGVycyk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6dXBkYXRlQ2F0ZWdvcnkpOgorICAg
ICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OmdldENvbmZpZ3VyYXRpb24pOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpzZXRBdWRpb1Nlc3Npb25D
YXRlZ29yeSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclBy
b3h5Lmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5
Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAg
ICAgICAoaGVhZGVyc19mb3JfdHlwZSk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9NZWRpYS9B
dWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eTo6YmVnaW5Sb3V0aW5nQXJiaXRyYXRp
b25XaXRoQ2F0ZWdvcnkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9NZWRpYS9BdWRpb1Nlc3Npb25S
b3V0aW5nQXJiaXRyYXRvclByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OkF1ZGlvU2Vzc2lvblJv
dXRpbmdBcmJpdHJhdG9yUHJveHk6OmNhdGVnb3J5IGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nl
c3MvTWVkaWEvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5tZXNzYWdlcy5pbjoK
KyAgICAgICAgKiBVSVByb2Nlc3MvTWVkaWEvY29jb2EvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0
cmF0b3JQcm94eUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpBdWRpb1Nlc3Npb25Sb3V0aW5n
QXJiaXRyYXRvclByb3h5OjpiZWdpblJvdXRpbmdBcmJpdHJhdGlvbldpdGhDYXRlZ29yeSk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOgorICAgICAg
ICAoV2ViS2l0OjpHUFVQcm9jZXNzQ29ubmVjdGlvbjo6YmVnaW5Sb3V0aW5nQXJiaXRyYXRpb25X
aXRoQ2F0ZWdvcnkpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0
aW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24ubWVz
c2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
OjpzZXRBdWRpb1Nlc3Npb25DYXRlZ29yeSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVk
aW9TZXNzaW9uOjpzZXRDYXRlZ29yeSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vz
c2lvbjo6Y2F0ZWdvcnkgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1Jl
bW90ZUF1ZGlvU2Vzc2lvbi5oOgorICAgICAgICAoaXNUeXBlKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uOjplbmNvZGUgY29uc3QpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb246OmRlY29kZSk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlci5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9BdWRpb1Nl
c3Npb25Sb3V0aW5nQXJiaXRyYXRvci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkF1ZGlvU2Vzc2lv
blJvdXRpbmdBcmJpdHJhdG9yOjpiZWdpblJvdXRpbmdBcmJpdHJhdGlvbldpdGhDYXRlZ29yeSk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRv
ci5oOgorCiAyMDIxLTA5LTE3ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAg
ICAgICAgIFtpT1NdIEVuYWJsZSBNU0UgaW4gV0tXZWJWaWV3cyBieSBkZWZhdWx0IG9uIGlQYWQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCBlM2I0OTNmZGE4NzhhNzlkYWNjYmYzMTUz
NTc0ZWI4MjYzNjFmMjE5Li5iNmY1MjRmOGVmZGM2NDM5YzczODg1M2UxYmJkMmQ5NDVmNzY5ODY3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjEtMDkt
MjMgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gQWRk
IGEgTXVsdGlwbGUgQVZBdWRpb1Nlc3Npb24gRXhwZXJpbWVudGFsIEZlYXR1cmUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDY5OQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFtZSBlbnVtIEF1ZGlv
U2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIC0+IEF1ZGlvU2Vzc2lvbkNhdGVnb3J5LgorCisgICAgICAg
ICogUGx1Z2lucy9XZWJQbHVnaW5Db250cm9sbGVyLm1tOgorICAgICAgICAoaW5pdGlhbGl6ZUF1
ZGlvU2Vzc2lvbik6CisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbToKKyAgICAg
ICAgKCtbV2ViUHJlZmVyZW5jZXMgaW5pdGlhbGl6ZV0pOgorICAgICAgICAoLVtXZWJQcmVmZXJl
bmNlcyBzZXRBdWRpb1Nlc3Npb25DYXRlZ29yeU92ZXJyaWRlOl0pOgorCiAyMDIxLTA5LTE0ICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgW0hhcmRlbmluZ10gVmFs
aWRhdGUgSURCVmFsdWUncyBibG9iIHBhdGhzIGluIFdlYklEQlNlcnZlcjo6cHV0T3JBZGQoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2Vz
RXhwZXJpbWVudGFsLnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJl
ZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAppbmRleCA5MDVjYmMyYmRmNDZlMmY0NWM0MGQ4ZjY1
Y2RmNTY2MTNmMjIzMWUxLi4yNjdmY2M3YmIwNTFjMGZjZWRjMzc4Y2MwODRiZTY5MGI4NGMwYjE0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5j
ZXNFeHBlcmltZW50YWwueWFtbAorKysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMv
V2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbApAQCAtODI5LDYgKzgyOSwyMCBAQCBNb2Rl
bEVsZW1lbnRFbmFibGVkOgogICAgIFdlYkNvcmU6CiAgICAgICBkZWZhdWx0OiBmYWxzZQogCitN
dWx0aXBsZUF1ZGlvU2Vzc2lvbnNFbmFibGVkOgorICB0eXBlOiBib29sCisgIGh1bWFuUmVhZGFi
bGVOYW1lOiAiTXVsdGlwbGUgQXVkaW9TZXNzaW9uIEV4cGVyaW1lbnQiCisgIGh1bWFuUmVhZGFi
bGVEZXNjcmlwdGlvbjogIk11bHRpcGxlIEF1ZGlvU2Vzc2lvbiBFeHBlcmltZW50IgorICBjb25k
aXRpb246IFVTRShBVURJT19TRVNTSU9OKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQorICB3ZWJj
b3JlQmluZGluZzogUnVudGltZUVuYWJsZWRGZWF0dXJlcworICBkZWZhdWx0VmFsdWU6CisgICAg
V2ViS2l0TGVnYWN5OgorICAgICAgZGVmYXVsdDogZmFsc2UKKyAgICBXZWJLaXQ6CisgICAgICBk
ZWZhdWx0OiBmYWxzZQorICAgIFdlYkNvcmU6CisgICAgICBkZWZhdWx0OiBmYWxzZQorCiBPcHVz
RGVjb2RlckVuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgaHVtYW5SZWFkYWJsZU5hbWU6ICJPcHVz
IGF1ZGlvIGRlY29kZXIiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9j
b2NvYS9BVkZvdW5kYXRpb25TUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29h
L0FWRm91bmRhdGlvblNQSS5oCmluZGV4IGNiMWVkMTFmZGU3Nzk2ZTRkYjQ2OWRlMWY4YTIwOWI3
NGZkNjM3MWQuLjFhZTI5ZGQyODBhZmFlZTZmMGE5NmUyYzg5NzEzMDhhOWVhMWRmNjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0FWRm91bmRhdGlvblNQSS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0FWRm91bmRhdGlvblNQSS5o
CkBAIC0zMzgsMTEgKzMzOCw2IEBAIE5TX0FTU1VNRV9OT05OVUxMX0VORAogCiAjaWYgX19oYXNf
aW5jbHVkZSg8QVZGb3VuZGF0aW9uL0FWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlci5oPikKICNp
bXBvcnQgPEFWRm91bmRhdGlvbi9BVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXIuaD4KLU5TX0FT
U1VNRV9OT05OVUxMX0JFR0lOCi1AaW50ZXJmYWNlIEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJl
ciAoQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyV2ViS2l0T25seSkKLS0gKHZvaWQpc2V0SXNV
bmFjY29tcGFuaWVkQnlWaXN1YWxzOihCT09MKWF1ZGlvT25seSBTUElfQVZBSUxBQkxFKG1hY29z
KDEyLjApKSBBUElfVU5BVkFJTEFCTEUoaW9zLCB0dm9zLCB3YXRjaG9zKTsKLUBlbmQKLU5TX0FT
U1VNRV9OT05OVUxMX0VORAogI2Vsc2UKIAogTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KQEAgLTM2
NSw2ICszNjAsMTQgQEAgTlNfQVNTVU1FX05PTk5VTExfRU5ECiAKICNlbmRpZiAvLyBfX2hhc19p
bmNsdWRlKDxBVkZvdW5kYXRpb24vQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyLmg+KQogCisj
aWYgX19oYXNfaW5jbHVkZSg8QVZGb3VuZGF0aW9uL0FWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJl
cl9Qcml2YXRlLmg+KQorI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWU2FtcGxlQnVmZmVyQXVkaW9S
ZW5kZXJlcl9Qcml2YXRlLmg+CisjZWxzZQorQGludGVyZmFjZSBBVlNhbXBsZUJ1ZmZlckF1ZGlv
UmVuZGVyZXIgKEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlcldlYktpdE9ubHkpCistICh2b2lk
KXNldElzVW5hY2NvbXBhbmllZEJ5VmlzdWFsczooQk9PTClhdWRpb09ubHkgU1BJX0FWQUlMQUJM
RShtYWNvcygxMi4wKSkgQVBJX1VOQVZBSUxBQkxFKGlvcywgdHZvcywgd2F0Y2hvcyk7CitAZW5k
CisjZW5kaWYgLy8gX19oYXNfaW5jbHVkZSg8QVZGb3VuZGF0aW9uL0FWU2FtcGxlQnVmZmVyQXVk
aW9SZW5kZXJlcl9Qcml2YXRlLmg+KQorCiAjaWYgIVVTRShBUFBMRV9JTlRFUk5BTF9TREspCiBA
aW50ZXJmYWNlIEFWVmlkZW9QZXJmb3JtYW5jZU1ldHJpY3MgOiBOU09iamVjdAogQHByb3BlcnR5
IChub25hdG9taWMsIHJlYWRvbmx5KSB1bnNpZ25lZCBsb25nIHRvdGFsTnVtYmVyT2ZWaWRlb0Zy
YW1lczsKQEAgLTM5OSw2ICs0MDIsMTYgQEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIC0gKEJP
T0wpc2V0RWxpZ2libGVGb3JCVFNtYXJ0Um91dGluZ0NvbnNpZGVyYXRpb246KEJPT0wpaW5WYWx1
ZSBlcnJvcjooTlNFcnJvciAqKilvdXRFcnJvcjsKIEBlbmQKIAorQHByb3RvY29sIEFWQXVkaW9T
ZXNzaW9uUGFydGljaXBhbnQKK0Bwcm9wZXJ0eSAocmVhZHdyaXRlLCByZXRhaW4pIEFWQXVkaW9T
ZXNzaW9uKiBhdWRpb1Nlc3Npb247CitAZW5kCisKK0BpbnRlcmZhY2UgQVZTYW1wbGVCdWZmZXJB
dWRpb1JlbmRlcmVyIChBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXJBdWRpb1Nlc3Npb25QYXJ0
aWNpcGFudCkgPEFWQXVkaW9TZXNzaW9uUGFydGljaXBhbnQ+CitAZW5kCisKK0BpbnRlcmZhY2Ug
QVZQbGF5ZXIgKEFWUGxheWVyQXVkaW9TZXNzaW9uUGFydGljaXBhbnQpIDxBVkF1ZGlvU2Vzc2lv
blBhcnRpY2lwYW50PgorQGVuZAorCiBOU19BU1NVTUVfTk9OTlVMTF9FTkQKICNlbmRpZgogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCBmYjdjMDRmNTBhYTAz
YTdmYTc1ZDllYTY1MTVjNzA2ODY2NWRhMGY4Li5jNGUxNTA4Y2ZmZGI5YTFjMzBhY2YzYmY2NzVm
MTQ5Zjk2ZmY2MzkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAK
QEAgLTc5ODksNiArNzk4OSwxOSBAQCBib29sIEhUTUxNZWRpYUVsZW1lbnQ6OnNob3VsZE92ZXJy
aWRlUGF1c2VEdXJpbmdSb3V0ZUNoYW5nZSgpIGNvbnN0CiAjZW5kaWYKIH0KIAorYm9vbCBIVE1M
TWVkaWFFbGVtZW50OjpzdXBwb3J0c1NldEF1ZGlvU2Vzc2lvbkNhdGVnb3J5KCkgY29uc3QKK3sK
KyAgICBpZiAobV9wbGF5ZXIpCisgICAgICAgIHJldHVybiBtX3BsYXllci0+c3VwcG9ydHNTZXRB
dWRpb1Nlc3Npb25DYXRlZ29yeSgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBIVE1M
TWVkaWFFbGVtZW50OjpzZXRBdWRpb1Nlc3Npb25DYXRlZ29yeShBdWRpb1Nlc3Npb25DYXRlZ29y
eSBjYXRlZ29yeSkKK3sKKyAgICBpZiAobV9wbGF5ZXIpCisgICAgICAgIG1fcGxheWVyLT5zZXRB
dWRpb1Nlc3Npb25DYXRlZ29yeShjYXRlZ29yeSk7Cit9CisKICNpZiBFTkFCTEUoV0lSRUxFU1Nf
UExBWUJBQ0tfVEFSR0VUKQogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNjaGVkdWxlVXBkYXRl
TWVkaWFTdGF0ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IDMy
ZWRjY2Q4MDk0NzU4YzhjNGI0MjY2MmNjZjcxZjRmNGIyNjg4NDIuLmFkMDllN2JlMWUyMzBkZmU2
YmM3OTk1YjVmNTNkNzU3NGM4ODFiM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5oCkBAIC04OTYsNiArODk2LDggQEAgcHJpdmF0ZToKICAgICBib29sIGhhc01lZGlhU3Ry
ZWFtU291cmNlKCkgY29uc3QgZmluYWw7CiAgICAgdm9pZCBwcm9jZXNzSXNTdXNwZW5kZWRDaGFu
Z2VkKCkgZmluYWw7CiAgICAgYm9vbCBzaG91bGRPdmVycmlkZVBhdXNlRHVyaW5nUm91dGVDaGFu
Z2UoKSBjb25zdCBmaW5hbDsKKyAgICBib29sIHN1cHBvcnRzU2V0QXVkaW9TZXNzaW9uQ2F0ZWdv
cnkoKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIHNldEF1ZGlvU2Vzc2lvbkNhdGVnb3J5KEF1ZGlv
U2Vzc2lvbkNhdGVnb3J5KSBmaW5hbDsKIAogICAgIHZvaWQgcGFnZU11dGVkU3RhdGVEaWRDaGFu
Z2UoKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVs
ZW1lbnRTZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24u
aAppbmRleCA0NWYzNWIxYjk5MDdlYTM1YzE4YzFlMmExNTUyNDVhNTY1ZWYyOGZiLi5kZjYxNTEw
Y2VjNjUwMTBjMmQ2YmU1ZTRhMGIzMDlmNzAyNTIzNDU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L01lZGlhRWxlbWVudFNlc3Npb24uaApAQCAtNTcsNiArNTcsNyBAQCBjbGFzcyBTb3VyY2VCdWZm
ZXI7CiBzdHJ1Y3QgTWVkaWFQb3NpdGlvblN0YXRlOwogCiBlbnVtIGNsYXNzIE1lZGlhU2Vzc2lv
blBsYXliYWNrU3RhdGUgOiB1aW50OF90OworZW51bSBjbGFzcyBBdWRpb1Nlc3Npb25DYXRlZ29y
eSA6IHVpbnQ4X3Q7CiAKIGNsYXNzIE1lZGlhRWxlbWVudFNlc3Npb24gZmluYWwgOiBwdWJsaWMg
UGxhdGZvcm1NZWRpYVNlc3Npb24gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EZXByZWNhdGVkR2xvYmFsU2V0dGluZ3MuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9EZXByZWNhdGVkR2xvYmFsU2V0dGluZ3MuY3BwCmluZGV4
IDAxYWI5NWI2MmYxYWEzZmEzYWIzM2JhN2I0ZjkwNjJlZmU5ZDBhZDIuLmJkZWRhMTM1MmRlZWRj
NGE1M2U2ZDJkZGVmMGZjMDUzMGNjZTk3NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RlcHJlY2F0ZWRHbG9iYWxTZXR0aW5ncy5jcHAKQEAgLTE0OCw3ICsxNDgsNyBAQCB2b2lkIERl
cHJlY2F0ZWRHbG9iYWxTZXR0aW5nczo6c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQo
Ym9vbCBmbGFnKQogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiB2b2lkIERlcHJlY2F0ZWRHbG9i
YWxTZXR0aW5nczo6c2V0QXVkaW9TZXNzaW9uQ2F0ZWdvcnlPdmVycmlkZSh1bnNpZ25lZCBzZXNz
aW9uQ2F0ZWdvcnkpCiB7Ci0gICAgQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2V0Q2F0
ZWdvcnlPdmVycmlkZShzdGF0aWNfY2FzdDxBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZT4oc2Vz
c2lvbkNhdGVnb3J5KSk7CisgICAgQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2V0Q2F0
ZWdvcnlPdmVycmlkZShzdGF0aWNfY2FzdDxBdWRpb1Nlc3Npb25DYXRlZ29yeT4oc2Vzc2lvbkNh
dGVnb3J5KSk7CiB9CiAKIHVuc2lnbmVkIERlcHJlY2F0ZWRHbG9iYWxTZXR0aW5nczo6YXVkaW9T
ZXNzaW9uQ2F0ZWdvcnlPdmVycmlkZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1l
RW5hYmxlZEZlYXR1cmVzLmNwcAppbmRleCBmOTBiOGU2ZGUwMzY5ODY3NzkyOTRjYmIwM2M3NTNm
ZmNhZjcxODAxLi4yYzYwOTliYzY5NWNlNzNmM2E3MmYyNGNjNmUyYjJiZWFiYTlhOThhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5jcHAKQEAgLTg5
LDQgKzg5LDEyIEBAIHZvaWQgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2V0TWVkaWFTb3VyY2VJ
bmxpbmVQYWludGluZ0VuYWJsZWQoYm9vbCBpc0VuYWJsZWQpCiB9CiAjZW5kaWYKIAorI2lmIFVT
RShBVURJT19TRVNTSU9OKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQordm9pZCBSdW50aW1lRW5h
YmxlZEZlYXR1cmVzOjpzZXRNdWx0aXBsZUF1ZGlvU2Vzc2lvbnNFbmFibGVkKGJvb2wgaXNFbmFi
bGVkKQoreworICAgIG1fbXVsdGlwbGVBdWRpb1Nlc3Npb25zRW5hYmxlZCA9IGlzRW5hYmxlZDsK
KyAgICBNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6OnNldE11bHRpcGxlQXVkaW9TZXNzaW9uc0Vu
YWJsZWQoaXNFbmFibGVkKTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oCmluZGV4IDY0MTdj
MDYzNTA2MTU2N2QxNGMwOTcwNzEzMGU2NTlhZWRmYjRjZDUuLjRlY2UyYTJkMDlhZGZiNTc3ZTQ1
NjM1NzM4ZjEyNDcyMWEyMjJlZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUnVu
dGltZUVuYWJsZWRGZWF0dXJlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUnVudGltZUVu
YWJsZWRGZWF0dXJlcy5oCkBAIC0yNjAsNiArMjYwLDExIEBAIHB1YmxpYzoKICAgICBib29sIG1l
ZGlhU291cmNlSW5saW5lUGFpbnRpbmdFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYVNv
dXJjZUlubGluZVBhaW50aW5nRW5hYmxlZDsgfQogI2VuZGlmCiAKKyNpZiBVU0UoQVVESU9fU0VT
U0lPTikgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNl
dE11bHRpcGxlQXVkaW9TZXNzaW9uc0VuYWJsZWQoYm9vbCk7CisgICAgYm9vbCBtdWx0aXBsZUF1
ZGlvU2Vzc2lvbnNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9tdWx0aXBsZUF1ZGlvU2Vzc2lv
bnNFbmFibGVkOyB9CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICAvLyBOZXZlciBpbnN0YW50aWF0
ZS4KICAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzKCk7CkBAIC0zOTksNiArNDA0LDEwIEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBtX21lZGlhU291cmNlSW5saW5lUGFpbnRpbmdFbmFibGVkIHsgZmFs
c2UgfTsKICNlbmRpZgogCisjaWYgVVNFKEFVRElPX1NFU1NJT04pICYmIFBMQVRGT1JNKElPU19G
QU1JTFkpCisgICAgYm9vbCBtX211bHRpcGxlQXVkaW9TZXNzaW9uc0VuYWJsZWQgeyBmYWxzZSB9
OworI2VuZGlmCisKICAgICBmcmllbmQgY2xhc3MgV1RGOjpOZXZlckRlc3Ryb3llZDxSdW50aW1l
RW5hYmxlZEZlYXR1cmVzPjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9BdWRpb1Nlc3Npb24uY3BwCmluZGV4IDEwOTE0ZDQ1NWNjNmRjN2NhNzA2ODg1NjE0NTUzYmI1
MWY2MDNkYmEuLjQ4YzhlOWVjMGY4NjIxNWNmNmIxNTlkNDNjNzFhYWEwMTQ1MjFkN2QgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmNwcApAQCAtMTI1
LDEyICsxMjUsMTIgQEAgdm9pZCBBdWRpb1Nlc3Npb246OmVuZEludGVycnVwdGlvbihNYXlSZXN1
bWUgbWF5UmVzdW1lKQogICAgICAgICBvYnNlcnZlci5lbmRBdWRpb1Nlc3Npb25JbnRlcnJ1cHRp
b24obWF5UmVzdW1lKTsKIH0KIAotdm9pZCBBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5KENhdGVn
b3J5VHlwZSwgUm91dGVTaGFyaW5nUG9saWN5KQordm9pZCBBdWRpb1Nlc3Npb246OnNldENhdGVn
b3J5KEF1ZGlvU2Vzc2lvbkNhdGVnb3J5LCBSb3V0ZVNoYXJpbmdQb2xpY3kpCiB7CiAgICAgbm90
SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5T3ZlcnJp
ZGUoQ2F0ZWdvcnlUeXBlIGNhdGVnb3J5KQordm9pZCBBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5
T3ZlcnJpZGUoQXVkaW9TZXNzaW9uQ2F0ZWdvcnkgY2F0ZWdvcnkpCiB7CiAgICAgaWYgKG1fY2F0
ZWdvcnlPdmVycmlkZSA9PSBjYXRlZ29yeSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTM5LDE1ICsx
MzksMTUgQEAgdm9pZCBBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5T3ZlcnJpZGUoQ2F0ZWdvcnlU
eXBlIGNhdGVnb3J5KQogICAgIHNldENhdGVnb3J5KGNhdGVnb3J5LCBSb3V0ZVNoYXJpbmdQb2xp
Y3k6OkRlZmF1bHQpOwogfQogCi1BdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBBdWRpb1Nlc3Np
b246OmNhdGVnb3J5T3ZlcnJpZGUoKSBjb25zdAorQXVkaW9TZXNzaW9uQ2F0ZWdvcnkgQXVkaW9T
ZXNzaW9uOjpjYXRlZ29yeU92ZXJyaWRlKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9jYXRlZ29y
eU92ZXJyaWRlOwogfQogCi1BdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBBdWRpb1Nlc3Npb246
OmNhdGVnb3J5KCkgY29uc3QKK0F1ZGlvU2Vzc2lvbkNhdGVnb3J5IEF1ZGlvU2Vzc2lvbjo6Y2F0
ZWdvcnkoKSBjb25zdAogewogICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIEF1ZGlv
U2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpOb25lOworICAgIHJldHVybiBBdWRpb1Nlc3Npb25DYXRl
Z29yeTo6Tm9uZTsKIH0KIAogZmxvYXQgQXVkaW9TZXNzaW9uOjpzYW1wbGVSYXRlKCkgY29uc3QK
QEAgLTIzNyw3ICsyMzcsNyBAQCBTdHJpbmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoUm91
dGVTaGFyaW5nUG9saWN5IGVudW1lcmF0aW9uVmFsdWUpCiAgICAgcmV0dXJuIHZhbHVlc1tzdGF0
aWNfY2FzdDxzaXplX3Q+KGVudW1lcmF0aW9uVmFsdWUpXTsKIH0KIAotU3RyaW5nIGNvbnZlcnRF
bnVtZXJhdGlvblRvU3RyaW5nKEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIGVudW1lcmF0aW9u
VmFsdWUpCitTdHJpbmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoQXVkaW9TZXNzaW9uQ2F0
ZWdvcnkgZW51bWVyYXRpb25WYWx1ZSkKIHsKICAgICBzdGF0aWMgY29uc3QgTmV2ZXJEZXN0cm95
ZWQ8U3RyaW5nPiB2YWx1ZXNbXSA9IHsKICAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwo
Ik5vbmUiKSwKQEAgLTI0OCwxMyArMjQ4LDEzIEBAIFN0cmluZyBjb252ZXJ0RW51bWVyYXRpb25U
b1N0cmluZyhBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBlbnVtZXJhdGlvblZhbHVlKQogICAg
ICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiUGxheUFuZFJlY29yZCIpLAogICAgICAgICBN
QUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiQXVkaW9Qcm9jZXNzaW5nIiksCiAgICAgfTsKLSAgICBz
dGF0aWNfYXNzZXJ0KCFzdGF0aWNfY2FzdDxzaXplX3Q+KEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlU
eXBlOjpOb25lKSwgIkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpOb25lIGlzIG5vdCAwIGFz
IGV4cGVjdGVkIik7Ci0gICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KEF1ZGlv
U2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpBbWJpZW50U291bmQpID09IDEsICJBdWRpb1Nlc3Npb246
OkNhdGVnb3J5VHlwZTo6QW1iaWVudFNvdW5kIGlzIG5vdCAxIGFzIGV4cGVjdGVkIik7Ci0gICAg
c3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlU
eXBlOjpTb2xvQW1iaWVudFNvdW5kKSA9PSAyLCAiQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6
OlNvbG9BbWJpZW50U291bmQgaXMgbm90IDIgYXMgZXhwZWN0ZWQiKTsKLSAgICBzdGF0aWNfYXNz
ZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6Ok1lZGlh
UGxheWJhY2spID09IDMsICJBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6TWVkaWFQbGF5YmFj
ayBpcyBub3QgMyBhcyBleHBlY3RlZCIpOwotICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8
c2l6ZV90PihBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6UmVjb3JkQXVkaW8pID09IDQsICJB
dWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6UmVjb3JkQXVkaW8gaXMgbm90IDQgYXMgZXhwZWN0
ZWQiKTsKLSAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oQXVkaW9TZXNzaW9u
OjpDYXRlZ29yeVR5cGU6OlBsYXlBbmRSZWNvcmQpID09IDUsICJBdWRpb1Nlc3Npb246OkNhdGVn
b3J5VHlwZTo6UGxheUFuZFJlY29yZCBpcyBub3QgNSBhcyBleHBlY3RlZCIpOwotICAgIHN0YXRp
Y19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6
QXVkaW9Qcm9jZXNzaW5nKSA9PSA2LCAiQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6OkF1ZGlv
UHJvY2Vzc2luZyBpcyBub3QgNiBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoIXN0
YXRpY19jYXN0PHNpemVfdD4oQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6Ok5vbmUpLCAiQXVkaW9TZXNz
aW9uQ2F0ZWdvcnk6Ok5vbmUgaXMgbm90IDAgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNz
ZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6OkFtYmllbnRTb3Vu
ZCkgPT0gMSwgIkF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpBbWJpZW50U291bmQgaXMgbm90IDEgYXMg
ZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oQXVkaW9T
ZXNzaW9uQ2F0ZWdvcnk6OlNvbG9BbWJpZW50U291bmQpID09IDIsICJBdWRpb1Nlc3Npb25DYXRl
Z29yeTo6U29sb0FtYmllbnRTb3VuZCBpcyBub3QgMiBhcyBleHBlY3RlZCIpOworICAgIHN0YXRp
Y19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihBdWRpb1Nlc3Npb25DYXRlZ29yeTo6TWVkaWFQ
bGF5YmFjaykgPT0gMywgIkF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpNZWRpYVBsYXliYWNrIGlzIG5v
dCAzIGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+
KEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpSZWNvcmRBdWRpbykgPT0gNCwgIkF1ZGlvU2Vzc2lvbkNh
dGVnb3J5OjpSZWNvcmRBdWRpbyBpcyBub3QgNCBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19h
c3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihBdWRpb1Nlc3Npb25DYXRlZ29yeTo6UGxheUFuZFJl
Y29yZCkgPT0gNSwgIkF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpQbGF5QW5kUmVjb3JkIGlzIG5vdCA1
IGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KEF1
ZGlvU2Vzc2lvbkNhdGVnb3J5OjpBdWRpb1Byb2Nlc3NpbmcpID09IDYsICJBdWRpb1Nlc3Npb25D
YXRlZ29yeTo6QXVkaW9Qcm9jZXNzaW5nIGlzIG5vdCA2IGFzIGV4cGVjdGVkIik7CiAgICAgQVNT
RVJUKHN0YXRpY19jYXN0PHNpemVfdD4oZW51bWVyYXRpb25WYWx1ZSkgPCBXVEZfQVJSQVlfTEVO
R1RIKHZhbHVlcykpOwogICAgIHJldHVybiB2YWx1ZXNbc3RhdGljX2Nhc3Q8c2l6ZV90PihlbnVt
ZXJhdGlvblZhbHVlKV07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9BdWRpb1Nlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlv
U2Vzc2lvbi5oCmluZGV4IDVkMGZlY2RkNTNlOTc3ZGU2OWNiYWQ0YmQwZDIyM2UwODVlNmQzZjgu
LjU5ODRiOTdmNjMyMzFlYzI5NmNiMDc1ZmI3NDRmOTQyMmNkNzljMGYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5oCkBAIC00Niw2ICs0NiwxNiBAQCBl
bnVtIGNsYXNzIFJvdXRlU2hhcmluZ1BvbGljeSA6IHVpbnQ4X3QgewogICAgIExvbmdGb3JtVmlk
ZW8KIH07CiAKK2VudW0gY2xhc3MgQXVkaW9TZXNzaW9uQ2F0ZWdvcnkgOiB1aW50OF90IHsKKyAg
ICBOb25lLAorICAgIEFtYmllbnRTb3VuZCwKKyAgICBTb2xvQW1iaWVudFNvdW5kLAorICAgIE1l
ZGlhUGxheWJhY2ssCisgICAgUmVjb3JkQXVkaW8sCisgICAgUGxheUFuZFJlY29yZCwKKyAgICBB
dWRpb1Byb2Nlc3NpbmcsCit9OworCiBjbGFzcyBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRp
b25DbGllbnQ7CiAKIGNsYXNzIFdFQkNPUkVfRVhQT1JUIEF1ZGlvU2Vzc2lvbiB7CkBAIC02Mywy
MCArNzMsMTcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB+QXVkaW9TZXNzaW9uKCk7CiAKLSAg
ICBlbnVtIGNsYXNzIENhdGVnb3J5VHlwZSA6IHVpbnQ4X3QgewotICAgICAgICBOb25lLAotICAg
ICAgICBBbWJpZW50U291bmQsCi0gICAgICAgIFNvbG9BbWJpZW50U291bmQsCi0gICAgICAgIE1l
ZGlhUGxheWJhY2ssCi0gICAgICAgIFJlY29yZEF1ZGlvLAotICAgICAgICBQbGF5QW5kUmVjb3Jk
LAotICAgICAgICBBdWRpb1Byb2Nlc3NpbmcsCisgICAgZW51bSBjbGFzcyBLaW5kIDogdWludDhf
dCB7CisgICAgICAgIFBsYXRmb3JtLAorICAgICAgICBSZW1vdGUsCiAgICAgfTsKLSAgICB2aXJ0
dWFsIHZvaWQgc2V0Q2F0ZWdvcnkoQ2F0ZWdvcnlUeXBlLCBSb3V0ZVNoYXJpbmdQb2xpY3kpOwot
ICAgIHZpcnR1YWwgQ2F0ZWdvcnlUeXBlIGNhdGVnb3J5KCkgY29uc3Q7CisgICAgdmlydHVhbCBL
aW5kIGtpbmQoKSBjb25zdCB7IHJldHVybiBLaW5kOjpQbGF0Zm9ybTsgfQorCisgICAgdmlydHVh
bCB2b2lkIHNldENhdGVnb3J5KEF1ZGlvU2Vzc2lvbkNhdGVnb3J5LCBSb3V0ZVNoYXJpbmdQb2xp
Y3kpOworICAgIHZpcnR1YWwgQXVkaW9TZXNzaW9uQ2F0ZWdvcnkgY2F0ZWdvcnkoKSBjb25zdDsK
IAotICAgIHZpcnR1YWwgdm9pZCBzZXRDYXRlZ29yeU92ZXJyaWRlKENhdGVnb3J5VHlwZSk7Ci0g
ICAgdmlydHVhbCBDYXRlZ29yeVR5cGUgY2F0ZWdvcnlPdmVycmlkZSgpIGNvbnN0OworICAgIHZp
cnR1YWwgdm9pZCBzZXRDYXRlZ29yeU92ZXJyaWRlKEF1ZGlvU2Vzc2lvbkNhdGVnb3J5KTsKKyAg
ICB2aXJ0dWFsIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5IGNhdGVnb3J5T3ZlcnJpZGUoKSBjb25zdDsK
IAogICAgIHZpcnR1YWwgUm91dGVTaGFyaW5nUG9saWN5IHJvdXRlU2hhcmluZ1BvbGljeSgpIGNv
bnN0OwogICAgIHZpcnR1YWwgU3RyaW5nIHJvdXRpbmdDb250ZXh0VUlEKCkgY29uc3Q7CkBAIC0x
MzksNyArMTQ2LDcgQEAgcHJvdGVjdGVkOgogICAgIFdlYWtIYXNoU2V0PEludGVycnVwdGlvbk9i
c2VydmVyPiBtX2ludGVycnVwdGlvbk9ic2VydmVyczsKIAogICAgIFdlYWtQdHI8QXVkaW9TZXNz
aW9uUm91dGluZ0FyYml0cmF0aW9uQ2xpZW50PiBtX3JvdXRpbmdBcmJpdHJhdGlvbkNsaWVudDsK
LSAgICBBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBtX2NhdGVnb3J5T3ZlcnJpZGUgeyBBdWRp
b1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6Tm9uZSB9OworICAgIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5
IG1fY2F0ZWdvcnlPdmVycmlkZSB7IEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpOb25lIH07CiAgICAg
Ym9vbCBtX2FjdGl2ZSB7IGZhbHNlIH07IC8vIFVzZWQgb25seSBmb3IgdGVzdGluZy4KIAogICAg
IHN0YXRpYyBib29sIHNfc2hvdWxkTWFuYWdlQXVkaW9TZXNzaW9uQ2F0ZWdvcnk7CkBAIC0xNTQs
MTQgKzE2MSwxNCBAQCBwdWJsaWM6CiAKICAgICB1c2luZyBBcmJpdHJhdGlvbkNhbGxiYWNrID0g
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChSb3V0aW5nQXJiaXRyYXRpb25FcnJvciwgRGVmYXVsdFJv
dXRlQ2hhbmdlZCk+OwogCi0gICAgdmlydHVhbCB2b2lkIGJlZ2luUm91dGluZ0FyYml0cmF0aW9u
V2l0aENhdGVnb3J5KEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlLCBBcmJpdHJhdGlvbkNhbGxi
YWNrJiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYmVnaW5Sb3V0aW5nQXJiaXRyYXRpb25XaXRo
Q2F0ZWdvcnkoQXVkaW9TZXNzaW9uQ2F0ZWdvcnksIEFyYml0cmF0aW9uQ2FsbGJhY2smJikgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBsZWF2ZVJvdXRpbmdBYnJpdHJhdGlvbigpID0gMDsKIAogICAg
IHVzaW5nIFdlYWtWYWx1ZVR5cGUgPSBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRpb25DbGll
bnQ7CiB9OwogCiBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJp
bmcoUm91dGVTaGFyaW5nUG9saWN5KTsKLVdFQkNPUkVfRVhQT1JUIFN0cmluZyBjb252ZXJ0RW51
bWVyYXRpb25Ub1N0cmluZyhBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSk7CitXRUJDT1JFX0VY
UE9SVCBTdHJpbmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoQXVkaW9TZXNzaW9uQ2F0ZWdv
cnkpOwogV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKEF1
ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudDo6Um91dGluZ0FyYml0cmF0aW9uRXJy
b3IpOwogV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKEF1
ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudDo6RGVmYXVsdFJvdXRlQ2hhbmdlZCk7
CiAKQEAgLTE3OCwxNiArMTg1LDE2IEBAIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2Vi
Q29yZTo6Um91dGVTaGFyaW5nUG9saWN5PiB7CiAgICAgPjsKIH07CiAKLXRlbXBsYXRlIDw+IHN0
cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlPiB7Cit0
ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpBdWRpb1Nlc3Npb25DYXRlZ29y
eT4gewogICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXMgPAotICAgIFdlYkNvcmU6OkF1ZGlv
U2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlLAotICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdv
cnlUeXBlOjpOb25lLAotICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpB
bWJpZW50U291bmQsCi0gICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6OlNv
bG9BbWJpZW50U291bmQsCi0gICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6
Ok1lZGlhUGxheWJhY2ssCi0gICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6
OlJlY29yZEF1ZGlvLAotICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpQ
bGF5QW5kUmVjb3JkLAotICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpB
dWRpb1Byb2Nlc3NpbmcKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb25DYXRlZ29yeSwKKyAgICBX
ZWJDb3JlOjpBdWRpb1Nlc3Npb25DYXRlZ29yeTo6Tm9uZSwKKyAgICBXZWJDb3JlOjpBdWRpb1Nl
c3Npb25DYXRlZ29yeTo6QW1iaWVudFNvdW5kLAorICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbkNh
dGVnb3J5OjpTb2xvQW1iaWVudFNvdW5kLAorICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbkNhdGVn
b3J5OjpNZWRpYVBsYXliYWNrLAorICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpS
ZWNvcmRBdWRpbywKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb25DYXRlZ29yeTo6UGxheUFuZFJl
Y29yZCwKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb25DYXRlZ29yeTo6QXVkaW9Qcm9jZXNzaW5n
CiAgICAgPjsKIH07CiAKQEAgLTIyOCw4ICsyMzUsOCBAQCBzdHJ1Y3QgTG9nQXJndW1lbnQ8V2Vi
Q29yZTo6Um91dGVTaGFyaW5nUG9saWN5PiB7CiB9OwogCiB0ZW1wbGF0ZSA8Pgotc3RydWN0IExv
Z0FyZ3VtZW50PFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlPiB7Ci0gICAgc3Rh
dGljIFN0cmluZyB0b1N0cmluZyhjb25zdCBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5
VHlwZSBjYXRlZ29yeSkKK3N0cnVjdCBMb2dBcmd1bWVudDxXZWJDb3JlOjpBdWRpb1Nlc3Npb25D
YXRlZ29yeT4geworICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29uc3QgV2ViQ29yZTo6QXVk
aW9TZXNzaW9uQ2F0ZWdvcnkgY2F0ZWdvcnkpCiAgICAgewogICAgICAgICByZXR1cm4gY29udmVy
dEVudW1lcmF0aW9uVG9TdHJpbmcoY2F0ZWdvcnkpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmNwcAppbmRleCBk
Mzc0YzgyYzI1MGMxMmEzNzIwYWYzYTU2MjRmNzhjZDdhOWM1NGM2Li5iMThhY2E4ZTNlZTMwMzZh
OTU1Y2IxMTE0MDZlNDE0MWZlNjgyZDdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb24uY3BwCkBAIC00MTAsNiArNDEwLDE2
IEBAIHN0ZDo6b3B0aW9uYWw8Tm93UGxheWluZ0luZm8+IFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpu
b3dQbGF5aW5nSW5mbygpIGNvbnN0CiAgICAgcmV0dXJuIHsgfTsKIH0KIAorYm9vbCBQbGF0Zm9y
bU1lZGlhU2Vzc2lvbjo6c3VwcG9ydHNTZXRBdWRpb1Nlc3Npb25DYXRlZ29yeSgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIG1fY2xpZW50LnN1cHBvcnRzU2V0QXVkaW9TZXNzaW9uQ2F0ZWdvcnkoKTsK
K30KKwordm9pZCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6c2V0QXVkaW9TZXNzaW9uQ2F0ZWdvcnko
QXVkaW9TZXNzaW9uQ2F0ZWdvcnkgY2F0ZWdvcnkpCit7CisgICAgcmV0dXJuIG1fY2xpZW50LnNl
dEF1ZGlvU2Vzc2lvbkNhdGVnb3J5KGNhdGVnb3J5KTsKK30KKwogI2lmICFSRUxFQVNFX0xPR19E
SVNBQkxFRAogV1RGTG9nQ2hhbm5lbCYgUGxhdGZvcm1NZWRpYVNlc3Npb246OmxvZ0NoYW5uZWwo
KSBjb25zdAogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxh
dGZvcm1NZWRpYVNlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRm
b3JtTWVkaWFTZXNzaW9uLmgKaW5kZXggMzZmM2I3ZWNkZGM0YzJhNjJlYWJlYmMxMjMzMDU5NGVk
MDZiZWZjOS4uYjI5OGJkNzhkYjE3N2E4MzE0NWNiYjE2NTJhNzA4Y2FiZDQyM2IwZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb24u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lv
bi5oCkBAIC00NSw2ICs0NSw3IEBAIGNsYXNzIE1lZGlhUGxheWJhY2tUYXJnZXQ7CiBjbGFzcyBQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbkNsaWVudDsKIGNsYXNzIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFu
YWdlcjsKIGVudW0gY2xhc3MgRGVsYXlDYWxsaW5nVXBkYXRlTm93UGxheWluZyB7IE5vLCBZZXMg
fTsKK2VudW0gY2xhc3MgQXVkaW9TZXNzaW9uQ2F0ZWdvcnkgOiB1aW50OF90Owogc3RydWN0IE5v
d1BsYXlpbmdJbmZvOwogCiBjbGFzcyBQbGF0Zm9ybU1lZGlhU2Vzc2lvbgpAQCAtMjA2LDYgKzIw
Nyw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHN0ZDo6b3B0aW9uYWw8Tm93UGxheWluZ0luZm8+
IG5vd1BsYXlpbmdJbmZvKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZU1lZGlhVXNh
Z2VJZkNoYW5nZWQoKSB7IH0KIAorICAgIGJvb2wgc3VwcG9ydHNTZXRBdWRpb1Nlc3Npb25DYXRl
Z29yeSgpIGNvbnN0OworICAgIHZvaWQgc2V0QXVkaW9TZXNzaW9uQ2F0ZWdvcnkoQXVkaW9TZXNz
aW9uQ2F0ZWdvcnkpOworCiAgICAgTWVkaWFTZXNzaW9uSWRlbnRpZmllciBtZWRpYVNlc3Npb25J
ZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYVNlc3Npb25JZGVudGlmaWVyOyB9CiAK
IHByb3RlY3RlZDoKQEAgLTI3NCw2ICsyNzgsOSBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJv
b2wgc2hvdWxkT3ZlcnJpZGVQYXVzZUR1cmluZ1JvdXRlQ2hhbmdlKCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KIAorICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1NldEF1ZGlvU2Vzc2lvbkNhdGVn
b3J5KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0QXVkaW9T
ZXNzaW9uQ2F0ZWdvcnkoQXVkaW9TZXNzaW9uQ2F0ZWdvcnkpIHsgQVNTRVJUX05PVF9SRUFDSEVE
KCk7IH0KKwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIHZpcnR1YWwgY29uc3QgTG9n
Z2VyJiBsb2dnZXIoKSBjb25zdCA9IDA7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL01lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvTWVkaWFTZXNzaW9uTWFuYWdlckNvY29h
LmgKaW5kZXggMGYzNDI4YWNkNTA2MjQxNzAxMmRmMDRjNzNlNjY4MThhNGY5NzgzOC4uOTlmNWFj
Mjk2MTQwNmQ3Y2Q1ZWU3YTE1MjUyODVkZGVkMTZhMDNjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvTWVkaWFTZXNzaW9uTWFuYWdl
ckNvY29hLmgKQEAgLTY5LDYgKzY5LDExIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgV0VCQ09SRV9F
WFBPUlQgYm9vbCBtZWRpYVNvdXJjZUlubGluZVBhaW50aW5nRW5hYmxlZCgpOwogI2VuZGlmCiAK
KyNpZiBVU0UoQVVESU9fU0VTU0lPTikKKyAgICBzdGF0aWMgV0VCQ09SRV9FWFBPUlQgdm9pZCBz
ZXRNdWx0aXBsZUF1ZGlvU2Vzc2lvbnNFbmFibGVkKGJvb2wpOworICAgIHN0YXRpYyBXRUJDT1JF
X0VYUE9SVCBib29sIG11bHRpcGxlQXVkaW9TZXNzaW9uc0VuYWJsZWQoKTsKKyNlbmRpZgorCiBw
cm90ZWN0ZWQ6CiAgICAgdm9pZCBzY2hlZHVsZVNlc3Npb25TdGF0dXNVcGRhdGUoKSBmaW5hbDsK
ICAgICB2b2lkIHVwZGF0ZU5vd1BsYXlpbmdJbmZvKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29j
b2EubW0KaW5kZXggNjhhOTkzZGZjZTgyNjUwOWExOTZjNzQxYzhiYzk0MjJjYTE0YzE5NS4uZjcw
MWVhYTY4OWQyZmIwM2E3MTU3NGQyMjMwMTUwNmI5YzIwNDA4ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL01lZGlhU2Vzc2lvbk1h
bmFnZXJDb2NvYS5tbQpAQCAtOTEsNiArOTEsMTkgQEAgYm9vbCBNZWRpYVNlc3Npb25NYW5hZ2Vy
Q29jb2E6Om1lZGlhU291cmNlSW5saW5lUGFpbnRpbmdFbmFibGVkKCkKIH0KICNlbmRpZgogCisj
aWYgVVNFKEFVRElPX1NFU1NJT04pCitzdGF0aWMgYm9vbCBzX211bHRpcGxlQXVkaW9TZXNzaW9u
c0VuYWJsZWQgPSBmYWxzZTsKK3ZvaWQgTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hOjpzZXRNdWx0
aXBsZUF1ZGlvU2Vzc2lvbnNFbmFibGVkKGJvb2wgZW5hYmxlZCkKK3sKKyAgICBzX211bHRpcGxl
QXVkaW9TZXNzaW9uc0VuYWJsZWQgPSBlbmFibGVkOworfQorCitib29sIE1lZGlhU2Vzc2lvbk1h
bmFnZXJDb2NvYTo6bXVsdGlwbGVBdWRpb1Nlc3Npb25zRW5hYmxlZCgpCit7CisgICAgcmV0dXJu
IHNfbXVsdGlwbGVBdWRpb1Nlc3Npb25zRW5hYmxlZDsKK30KKyNlbmRpZgorCiB2b2lkIE1lZGlh
U2Vzc2lvbk1hbmFnZXJDb2NvYTo6dXBkYXRlU2Vzc2lvblN0YXRlKCkKIHsKICAgICBpbnQgdmlk
ZW9Db3VudCA9IDA7CkBAIC0xMDIsNiArMTE1LDI2IEBAIHZvaWQgTWVkaWFTZXNzaW9uTWFuYWdl
ckNvY29hOjp1cGRhdGVTZXNzaW9uU3RhdGUoKQogICAgIGJvb2wgaXNQbGF5aW5nQXVkaW8gPSBm
YWxzZTsKICAgICBmb3JFYWNoU2Vzc2lvbihbJl0gKGF1dG8mIHNlc3Npb24pIG11dGFibGUgewog
ICAgICAgICBhdXRvIHR5cGUgPSBzZXNzaW9uLm1lZGlhVHlwZSgpOworICAgICAgICBpZiAoc2Vz
c2lvbi5zdXBwb3J0c1NldEF1ZGlvU2Vzc2lvbkNhdGVnb3J5KCkpIHsKKyAgICAgICAgICAgIC8v
IElmIGEgUGxhdGZvcm1BdWRpb1Nlc3Npb24gc3VwcG9ydHMgc2V0dGluZyBhIGNhdGVnb3J5IGRp
cmVjdGx5LCBpZ25vcmUKKyAgICAgICAgICAgIC8vIHRoYXQgc2Vzc2lvbiBmb3IgdGhlIHB1cnBv
c2VzIG9mIGRldGVybWluaW5nIHRoZSBkZWZhdWx0IEF1ZGlvU2Vzc2lvbidzCisgICAgICAgICAg
ICAvLyBjYXRlZ29yeSB0eXBlLgorICAgICAgICAgICAgc3dpdGNoICh0eXBlKSB7CisgICAgICAg
ICAgICBjYXNlIFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpNZWRpYVR5cGU6Ok5vbmU6CisgICAgICAg
ICAgICBjYXNlIFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpNZWRpYVR5cGU6OlZpZGVvOgorICAgICAg
ICAgICAgICAgIHNlc3Npb24uc2V0QXVkaW9TZXNzaW9uQ2F0ZWdvcnkoQXVkaW9TZXNzaW9uQ2F0
ZWdvcnk6Ok5vbmUpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbjo6TWVkaWFUeXBlOjpWaWRlb0F1ZGlvOgorICAgICAgICAgICAg
Y2FzZSBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6TWVkaWFUeXBlOjpBdWRpbzoKKyAgICAgICAgICAg
ICAgICBzZXNzaW9uLnNldEF1ZGlvU2Vzc2lvbkNhdGVnb3J5KEF1ZGlvU2Vzc2lvbkNhdGVnb3J5
OjpNZWRpYVBsYXliYWNrKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNh
c2UgUGxhdGZvcm1NZWRpYVNlc3Npb246Ok1lZGlhVHlwZTo6V2ViQXVkaW86CisgICAgICAgICAg
ICAgICAgc2Vzc2lvbi5zZXRBdWRpb1Nlc3Npb25DYXRlZ29yeShBdWRpb1Nlc3Npb25DYXRlZ29y
eTo6QW1iaWVudFNvdW5kKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCiAgICAgICAgIHN3aXRjaCAodHlwZSkg
ewogICAgICAgICBjYXNlIFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpNZWRpYVR5cGU6Ok5vbmU6CiAg
ICAgICAgICAgICBicmVhazsKQEAgLTE1NCwxNCArMTg3LDE0IEBAIHZvaWQgTWVkaWFTZXNzaW9u
TWFuYWdlckNvY29hOjp1cGRhdGVTZXNzaW9uU3RhdGUoKQogICAgICAgICByZXR1cm47CiAKICAg
ICBSb3V0ZVNoYXJpbmdQb2xpY3kgcG9saWN5ID0gUm91dGVTaGFyaW5nUG9saWN5OjpEZWZhdWx0
OwotICAgIGF1dG8gY2F0ZWdvcnkgPSBBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6Tm9uZTsK
LSAgICBpZiAoY2FwdHVyZUNvdW50IHx8IChpc1BsYXlpbmdBdWRpbyAmJiBBdWRpb1Nlc3Npb246
OnNoYXJlZFNlc3Npb24oKS5jYXRlZ29yeSgpID09IEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBl
OjpQbGF5QW5kUmVjb3JkKSkKLSAgICAgICAgY2F0ZWdvcnkgPSBBdWRpb1Nlc3Npb246OkNhdGVn
b3J5VHlwZTo6UGxheUFuZFJlY29yZDsKKyAgICBhdXRvIGNhdGVnb3J5ID0gQXVkaW9TZXNzaW9u
Q2F0ZWdvcnk6Ok5vbmU7CisgICAgaWYgKGNhcHR1cmVDb3VudCB8fCAoaXNQbGF5aW5nQXVkaW8g
JiYgQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuY2F0ZWdvcnkoKSA9PSBBdWRpb1Nlc3Np
b25DYXRlZ29yeTo6UGxheUFuZFJlY29yZCkpCisgICAgICAgIGNhdGVnb3J5ID0gQXVkaW9TZXNz
aW9uQ2F0ZWdvcnk6OlBsYXlBbmRSZWNvcmQ7CiAgICAgZWxzZSBpZiAoaGFzQXVkaWJsZUF1ZGlv
T3JWaWRlb01lZGlhVHlwZSkgewotICAgICAgICBjYXRlZ29yeSA9IEF1ZGlvU2Vzc2lvbjo6Q2F0
ZWdvcnlUeXBlOjpNZWRpYVBsYXliYWNrOworICAgICAgICBjYXRlZ29yeSA9IEF1ZGlvU2Vzc2lv
bkNhdGVnb3J5OjpNZWRpYVBsYXliYWNrOwogICAgICAgICBwb2xpY3kgPSBSb3V0ZVNoYXJpbmdQ
b2xpY3k6OkxvbmdGb3JtQXVkaW87CiAgICAgfSBlbHNlIGlmICh3ZWJBdWRpb0NvdW50KQotICAg
ICAgICBjYXRlZ29yeSA9IEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpBbWJpZW50U291bmQ7
CisgICAgICAgIGNhdGVnb3J5ID0gQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6OkFtYmllbnRTb3VuZDsK
IAogICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgInNldHRpbmcgY2F0ZWdvcnkgPSAiLCBj
YXRlZ29yeSwgIiwgcG9saWN5ID0gIiwgcG9saWN5KTsKICAgICBBdWRpb1Nlc3Npb246OnNoYXJl
ZFNlc3Npb24oKS5zZXRDYXRlZ29yeShjYXRlZ29yeSwgcG9saWN5KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb1Nlc3Npb25JT1MuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb1Nlc3Npb25JT1MuaAppbmRleCBkZTNm
NDBjYTkyNGZlODlhY2ZmMmUwMmIwYjIzZTIzMDMzMzgyOTAzLi42ZGVkNTM1M2EyMDhjMGYyMTdl
ZmQ5MTVkOWQ1YmYwY2VlZDQ1MjcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9pb3MvQXVkaW9TZXNzaW9uSU9TLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vaW9zL0F1ZGlvU2Vzc2lvbklPUy5oCkBAIC0yOCw3ICsyOCw5IEBACiAjaWYgVVNF
KEFVRElPX1NFU1NJT04pICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAKICNpbmNsdWRlICJBdWRp
b1Nlc3Npb24uaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogCitPQkpDX0NMQVNTIEFWQXVk
aW9TZXNzaW9uOwogT0JKQ19DTEFTUyBXZWJJbnRlcnJ1cHRpb25PYnNlcnZlckhlbHBlcjsKIAog
bmFtZXNwYWNlIFdURiB7CkBAIC00MiwxMCArNDQsMTIgQEAgcHVibGljOgogICAgIEF1ZGlvU2Vz
c2lvbklPUygpOwogICAgIHZpcnR1YWwgfkF1ZGlvU2Vzc2lvbklPUygpOwogCisgICAgQVZBdWRp
b1Nlc3Npb24gKmF1ZGlvU2Vzc2lvbkZvckNhdGVnb3J5KEF1ZGlvU2Vzc2lvbkNhdGVnb3J5KTsK
KwogcHJpdmF0ZToKICAgICAvLyBBdWRpb1Nlc3Npb24KLSAgICBDYXRlZ29yeVR5cGUgY2F0ZWdv
cnkoKSBjb25zdCBmaW5hbDsKLSAgICB2b2lkIHNldENhdGVnb3J5KENhdGVnb3J5VHlwZSwgUm91
dGVTaGFyaW5nUG9saWN5KSBmaW5hbDsKKyAgICBBdWRpb1Nlc3Npb25DYXRlZ29yeSBjYXRlZ29y
eSgpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgc2V0Q2F0ZWdvcnkoQXVkaW9TZXNzaW9uQ2F0ZWdv
cnksIFJvdXRlU2hhcmluZ1BvbGljeSkgZmluYWw7CiAgICAgZmxvYXQgc2FtcGxlUmF0ZSgpIGNv
bnN0IGZpbmFsOwogICAgIHNpemVfdCBidWZmZXJTaXplKCkgY29uc3QgZmluYWw7CiAgICAgc2l6
ZV90IG51bWJlck9mT3V0cHV0Q2hhbm5lbHMoKSBjb25zdCBmaW5hbDsKQEAgLTYwLDggKzY0LDEz
IEBAIHByaXZhdGU6CiAKICAgICBSZWY8V1RGOjpXb3JrUXVldWU+IG1fd29ya1F1ZXVlOwogICAg
IFJldGFpblB0cjxXZWJJbnRlcnJ1cHRpb25PYnNlcnZlckhlbHBlcj4gbV9pbnRlcnJ1cHRpb25P
YnNlcnZlckhlbHBlcjsKKyAgICBIYXNoTWFwPEF1ZGlvU2Vzc2lvbkNhdGVnb3J5LCBSZXRhaW5Q
dHI8QVZBdWRpb1Nlc3Npb24+LCBXVEY6OkludEhhc2g8QXVkaW9TZXNzaW9uQ2F0ZWdvcnk+LCBX
VEY6OlN0cm9uZ0VudW1IYXNoVHJhaXRzPEF1ZGlvU2Vzc2lvbkNhdGVnb3J5Pj4gbV9hdXhpbGlh
cnlTZXNzaW9uczsKIH07CiAKIH0KIAorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19CRUdJTihXZWJD
b3JlOjpBdWRpb1Nlc3Npb25JT1MpCisgICAgc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNv
cmU6OkF1ZGlvU2Vzc2lvbiYgc2Vzc2lvbikgeyByZXR1cm4gc2Vzc2lvbi5raW5kKCkgPT0gV2Vi
Q29yZTo6QXVkaW9TZXNzaW9uOjpLaW5kOjpQbGF0Zm9ybTsgfQorU1BFQ0lBTElaRV9UWVBFX1RS
QUlUU19FTkQoKQorCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL2lvcy9BdWRpb1Nlc3Npb25JT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9pb3MvQXVkaW9TZXNzaW9uSU9TLm1tCmluZGV4IGQwNmJiZDM2ZWJmOGFmZmJmYTBlYjBl
OGIyZTg5Zjc0M2NjYjM2ZDIuLjhjOTc5M2Q3NWJjNGE3Njg4NzM3ZDE1Mzg4MGFlMzE5MDU4ZDk2
NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb1Nl
c3Npb25JT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlv
U2Vzc2lvbklPUy5tbQpAQCAtMTM2LDczICsxMzYsNzkgQEAgQXVkaW9TZXNzaW9uSU9TOjp+QXVk
aW9TZXNzaW9uSU9TKCkKICAgICBbbV9pbnRlcnJ1cHRpb25PYnNlcnZlckhlbHBlciBjbGVhckNh
bGxiYWNrXTsKIH0KIAotdm9pZCBBdWRpb1Nlc3Npb25JT1M6OnNldENhdGVnb3J5KENhdGVnb3J5
VHlwZSBuZXdDYXRlZ29yeSwgUm91dGVTaGFyaW5nUG9saWN5IHBvbGljeSkKK3N0YXRpYyB2b2lk
IGNvbmZpZ3VyZUFWQXVkaW9TZXNzaW9uV2l0aENhdGVnb3J5QW5kUG9saWN5KEFWQXVkaW9TZXNz
aW9uKiBzZXNzaW9uLCBBdWRpb1Nlc3Npb25DYXRlZ29yeSBuZXdDYXRlZ29yeSwgUm91dGVTaGFy
aW5nUG9saWN5IHBvbGljeSkKIHsKLSNpZiAhSEFWRShST1VURV9TSEFSSU5HX1BPTElDWV9MT05H
X0ZPUk1fVklERU8pCi0gICAgaWYgKHBvbGljeSA9PSBSb3V0ZVNoYXJpbmdQb2xpY3k6OkxvbmdG
b3JtVmlkZW8pCi0gICAgICAgIHBvbGljeSA9IFJvdXRlU2hhcmluZ1BvbGljeTo6TG9uZ0Zvcm1B
dWRpbzsKLSNlbmRpZgotCi0gICAgTE9HKE1lZGlhLCAiQXVkaW9TZXNzaW9uOjpzZXRDYXRlZ29y
eSgpIC0gY2F0ZWdvcnkgPSAlcyIsIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKG5ld0NhdGVn
b3J5KS5hc2NpaSgpLmRhdGEoKSk7Ci0KLSAgICBpZiAoY2F0ZWdvcnlPdmVycmlkZSgpICE9ICBD
YXRlZ29yeVR5cGU6Ok5vbmUgJiYgY2F0ZWdvcnlPdmVycmlkZSgpICE9IG5ld0NhdGVnb3J5KSB7
Ci0gICAgICAgIExPRyhNZWRpYSwgIkF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnkoKSAtIG92ZXJy
aWRlIHNldCwgTk9UIGNoYW5naW5nIik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KICAgICBO
U1N0cmluZyAqY2F0ZWdvcnlTdHJpbmc7CiAgICAgTlNTdHJpbmcgKmNhdGVnb3J5TW9kZSA9IEFW
QXVkaW9TZXNzaW9uTW9kZURlZmF1bHQ7CiAgICAgQVZBdWRpb1Nlc3Npb25DYXRlZ29yeU9wdGlv
bnMgb3B0aW9ucyA9IDA7CiAKICAgICBzd2l0Y2ggKG5ld0NhdGVnb3J5KSB7Ci0gICAgY2FzZSBD
YXRlZ29yeVR5cGU6OkFtYmllbnRTb3VuZDoKKyAgICBjYXNlIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5
OjpBbWJpZW50U291bmQ6CiAgICAgICAgIGNhdGVnb3J5U3RyaW5nID0gQVZBdWRpb1Nlc3Npb25D
YXRlZ29yeUFtYmllbnQ7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgQ2F0ZWdvcnlUeXBlOjpT
b2xvQW1iaWVudFNvdW5kOgorICAgIGNhc2UgQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6OlNvbG9BbWJp
ZW50U291bmQ6CiAgICAgICAgIGNhdGVnb3J5U3RyaW5nID0gQVZBdWRpb1Nlc3Npb25DYXRlZ29y
eVNvbG9BbWJpZW50OwogICAgICAgICBicmVhazsKLSAgICBjYXNlIENhdGVnb3J5VHlwZTo6TWVk
aWFQbGF5YmFjazoKKyAgICBjYXNlIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpNZWRpYVBsYXliYWNr
OgogICAgICAgICBjYXRlZ29yeVN0cmluZyA9IEFWQXVkaW9TZXNzaW9uQ2F0ZWdvcnlQbGF5YmFj
azsKKyAgICAgICAgcG9saWN5ID0gUm91dGVTaGFyaW5nUG9saWN5OjpMb25nRm9ybUF1ZGlvOwog
ICAgICAgICBicmVhazsKLSAgICBjYXNlIENhdGVnb3J5VHlwZTo6UmVjb3JkQXVkaW86CisgICAg
Y2FzZSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6UmVjb3JkQXVkaW86CiAgICAgICAgIGNhdGVnb3J5
U3RyaW5nID0gQVZBdWRpb1Nlc3Npb25DYXRlZ29yeVJlY29yZDsKICAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSBDYXRlZ29yeVR5cGU6OlBsYXlBbmRSZWNvcmQ6CisgICAgY2FzZSBBdWRpb1Nlc3Np
b25DYXRlZ29yeTo6UGxheUFuZFJlY29yZDoKICAgICAgICAgY2F0ZWdvcnlTdHJpbmcgPSBBVkF1
ZGlvU2Vzc2lvbkNhdGVnb3J5UGxheUFuZFJlY29yZDsKICAgICAgICAgY2F0ZWdvcnlNb2RlID0g
QVZBdWRpb1Nlc3Npb25Nb2RlVmlkZW9DaGF0OwogICAgICAgICBvcHRpb25zIHw9IEFWQXVkaW9T
ZXNzaW9uQ2F0ZWdvcnlPcHRpb25BbGxvd0JsdWV0b290aCB8IEFWQXVkaW9TZXNzaW9uQ2F0ZWdv
cnlPcHRpb25BbGxvd0JsdWV0b290aEEyRFAgfCBBVkF1ZGlvU2Vzc2lvbkNhdGVnb3J5T3B0aW9u
RGVmYXVsdFRvU3BlYWtlciB8IEFWQXVkaW9TZXNzaW9uQ2F0ZWdvcnlPcHRpb25BbGxvd0FpclBs
YXk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgQ2F0ZWdvcnlUeXBlOjpBdWRpb1Byb2Nlc3Np
bmc6CisgICAgY2FzZSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6QXVkaW9Qcm9jZXNzaW5nOgogICAg
ICAgICBjYXRlZ29yeVN0cmluZyA9IEFWQXVkaW9TZXNzaW9uQ2F0ZWdvcnlBdWRpb1Byb2Nlc3Np
bmc7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgQ2F0ZWdvcnlUeXBlOjpOb25lOgorICAgIGNh
c2UgQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6Ok5vbmU6CiAgICAgICAgIGNhdGVnb3J5U3RyaW5nID0g
QVZBdWRpb1Nlc3Npb25DYXRlZ29yeUFtYmllbnQ7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIAog
ICAgIE5TRXJyb3IgKmVycm9yID0gbmlsOwotICAgIFtbUEFMOjpnZXRBVkF1ZGlvU2Vzc2lvbkNs
YXNzKCkgc2hhcmVkSW5zdGFuY2VdIHNldENhdGVnb3J5OmNhdGVnb3J5U3RyaW5nIG1vZGU6Y2F0
ZWdvcnlNb2RlIHJvdXRlU2hhcmluZ1BvbGljeTpzdGF0aWNfY2FzdDxBVkF1ZGlvU2Vzc2lvblJv
dXRlU2hhcmluZ1BvbGljeT4ocG9saWN5KSBvcHRpb25zOm9wdGlvbnMgZXJyb3I6JmVycm9yXTsK
KyAgICBbc2Vzc2lvbiBzZXRDYXRlZ29yeTpjYXRlZ29yeVN0cmluZyBtb2RlOmNhdGVnb3J5TW9k
ZSByb3V0ZVNoYXJpbmdQb2xpY3k6c3RhdGljX2Nhc3Q8QVZBdWRpb1Nlc3Npb25Sb3V0ZVNoYXJp
bmdQb2xpY3k+KHBvbGljeSkgb3B0aW9uczpvcHRpb25zIGVycm9yOiZlcnJvcl07CiAjaWYgIVBM
QVRGT1JNKElPU19GQU1JTFlfU0lNVUxBVE9SKSAmJiAhUExBVEZPUk0oTUFDQ0FUQUxZU1QpCiAg
ICAgQVNTRVJUKCFlcnJvcik7CiAjZW5kaWYKIH0KIAotQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5
cGUgQXVkaW9TZXNzaW9uSU9TOjpjYXRlZ29yeSgpIGNvbnN0Cit2b2lkIEF1ZGlvU2Vzc2lvbklP
Uzo6c2V0Q2F0ZWdvcnkoQXVkaW9TZXNzaW9uQ2F0ZWdvcnkgbmV3Q2F0ZWdvcnksIFJvdXRlU2hh
cmluZ1BvbGljeSBwb2xpY3kpCit7CisjaWYgIUhBVkUoUk9VVEVfU0hBUklOR19QT0xJQ1lfTE9O
R19GT1JNX1ZJREVPKQorICAgIGlmIChwb2xpY3kgPT0gUm91dGVTaGFyaW5nUG9saWN5OjpMb25n
Rm9ybVZpZGVvKQorICAgICAgICBwb2xpY3kgPSBSb3V0ZVNoYXJpbmdQb2xpY3k6OkxvbmdGb3Jt
QXVkaW87CisjZW5kaWYKKworICAgIExPRyhNZWRpYSwgIkF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdv
cnkoKSAtIGNhdGVnb3J5ID0gJXMiLCBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhuZXdDYXRl
Z29yeSkuYXNjaWkoKS5kYXRhKCkpOworCisgICAgaWYgKGNhdGVnb3J5T3ZlcnJpZGUoKSAhPSAg
QXVkaW9TZXNzaW9uQ2F0ZWdvcnk6Ok5vbmUgJiYgY2F0ZWdvcnlPdmVycmlkZSgpICE9IG5ld0Nh
dGVnb3J5KSB7CisgICAgICAgIExPRyhNZWRpYSwgIkF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnko
KSAtIG92ZXJyaWRlIHNldCwgTk9UIGNoYW5naW5nIik7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBjb25maWd1cmVBVkF1ZGlvU2Vzc2lvbldpdGhDYXRlZ29yeUFuZFBvbGljeShbUEFM
OjpnZXRBVkF1ZGlvU2Vzc2lvbkNsYXNzKCkgc2hhcmVkSW5zdGFuY2VdLCBuZXdDYXRlZ29yeSwg
cG9saWN5KTsKK30KKworQXVkaW9TZXNzaW9uQ2F0ZWdvcnkgQXVkaW9TZXNzaW9uSU9TOjpjYXRl
Z29yeSgpIGNvbnN0CiB7CiAgICAgTlNTdHJpbmcgKmNhdGVnb3J5U3RyaW5nID0gW1tQQUw6Omdl
dEFWQXVkaW9TZXNzaW9uQ2xhc3MoKSBzaGFyZWRJbnN0YW5jZV0gY2F0ZWdvcnldOwogICAgIGlm
IChbY2F0ZWdvcnlTdHJpbmcgaXNFcXVhbDpBVkF1ZGlvU2Vzc2lvbkNhdGVnb3J5QW1iaWVudF0p
Ci0gICAgICAgIHJldHVybiBDYXRlZ29yeVR5cGU6OkFtYmllbnRTb3VuZDsKKyAgICAgICAgcmV0
dXJuIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpBbWJpZW50U291bmQ7CiAgICAgaWYgKFtjYXRlZ29y
eVN0cmluZyBpc0VxdWFsOkFWQXVkaW9TZXNzaW9uQ2F0ZWdvcnlTb2xvQW1iaWVudF0pCi0gICAg
ICAgIHJldHVybiBDYXRlZ29yeVR5cGU6OlNvbG9BbWJpZW50U291bmQ7CisgICAgICAgIHJldHVy
biBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6U29sb0FtYmllbnRTb3VuZDsKICAgICBpZiAoW2NhdGVn
b3J5U3RyaW5nIGlzRXF1YWw6QVZBdWRpb1Nlc3Npb25DYXRlZ29yeVBsYXliYWNrXSkKLSAgICAg
ICAgcmV0dXJuIENhdGVnb3J5VHlwZTo6TWVkaWFQbGF5YmFjazsKKyAgICAgICAgcmV0dXJuIEF1
ZGlvU2Vzc2lvbkNhdGVnb3J5OjpNZWRpYVBsYXliYWNrOwogICAgIGlmIChbY2F0ZWdvcnlTdHJp
bmcgaXNFcXVhbDpBVkF1ZGlvU2Vzc2lvbkNhdGVnb3J5UmVjb3JkXSkKLSAgICAgICAgcmV0dXJu
IENhdGVnb3J5VHlwZTo6UmVjb3JkQXVkaW87CisgICAgICAgIHJldHVybiBBdWRpb1Nlc3Npb25D
YXRlZ29yeTo6UmVjb3JkQXVkaW87CiAgICAgaWYgKFtjYXRlZ29yeVN0cmluZyBpc0VxdWFsOkFW
QXVkaW9TZXNzaW9uQ2F0ZWdvcnlQbGF5QW5kUmVjb3JkXSkKLSAgICAgICAgcmV0dXJuIENhdGVn
b3J5VHlwZTo6UGxheUFuZFJlY29yZDsKKyAgICAgICAgcmV0dXJuIEF1ZGlvU2Vzc2lvbkNhdGVn
b3J5OjpQbGF5QW5kUmVjb3JkOwogICAgIGlmIChbY2F0ZWdvcnlTdHJpbmcgaXNFcXVhbDpBVkF1
ZGlvU2Vzc2lvbkNhdGVnb3J5QXVkaW9Qcm9jZXNzaW5nXSkKLSAgICAgICAgcmV0dXJuIENhdGVn
b3J5VHlwZTo6QXVkaW9Qcm9jZXNzaW5nOwotICAgIHJldHVybiBDYXRlZ29yeVR5cGU6Ok5vbmU7
CisgICAgICAgIHJldHVybiBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6QXVkaW9Qcm9jZXNzaW5nOwor
ICAgIHJldHVybiBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6Tm9uZTsKIH0KIAogUm91dGVTaGFyaW5n
UG9saWN5IEF1ZGlvU2Vzc2lvbklPUzo6cm91dGVTaGFyaW5nUG9saWN5KCkgY29uc3QKQEAgLTMw
MCw2ICszMDYsMTcgQEAgdm9pZCBBdWRpb1Nlc3Npb25JT1M6OmhhbmRsZU11dGVkU3RhdGVDaGFu
Z2UoKQogewogfQogCitBVkF1ZGlvU2Vzc2lvbiAqQXVkaW9TZXNzaW9uSU9TOjphdWRpb1Nlc3Np
b25Gb3JDYXRlZ29yeShBdWRpb1Nlc3Npb25DYXRlZ29yeSBjYXRlZ29yeSkKK3sKKyAgICBhdXRv
IHJlc3VsdHMgPSBtX2F1eGlsaWFyeVNlc3Npb25zLmVuc3VyZShjYXRlZ29yeSwgWyZdIHsKKyAg
ICAgICAgYXV0byBhdXhTZXNzaW9uID0gYWRvcHROUyhbW1BBTDo6Z2V0QVZBdWRpb1Nlc3Npb25D
bGFzcygpIGFsbG9jXSBpbml0QXV4aWxpYXJ5U2Vzc2lvbl0pOworICAgICAgICBjb25maWd1cmVB
VkF1ZGlvU2Vzc2lvbldpdGhDYXRlZ29yeUFuZFBvbGljeShhdXhTZXNzaW9uLmdldCgpLCBjYXRl
Z29yeSwgUm91dGVTaGFyaW5nUG9saWN5OjpEZWZhdWx0KTsKKyAgICAgICAgcmV0dXJuIGF1eFNl
c3Npb247CisgICAgfSk7CisKKyAgICByZXR1cm4gcmVzdWx0cy5pdGVyYXRvci0+dmFsdWUuZ2V0
KCk7Cit9CisKIH0KIAogI2VuZGlmIC8vIFVTRShBVURJT19TRVNTSU9OKSAmJiBQTEFURk9STShJ
T1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFj
L0F1ZGlvU2Vzc2lvbk1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1
ZGlvU2Vzc2lvbk1hYy5oCmluZGV4IDRkNWVmZWI0MTgzMDg5MjUwMTc4OWIwZjkwNDAzYjBmZGI0
NjhmNjkuLjEzZTY1NDE3NTRkODdlYTI4NDU4ZmJmODNmNzhlYzEzNzIzMTI1OGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb1Nlc3Npb25NYWMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9TZXNzaW9uTWFjLmgK
QEAgLTQ5LDEwICs0OSwxMCBAQCBwcml2YXRlOgogICAgIHZvaWQgaGFuZGxlQnVmZmVyU2l6ZUNo
YW5nZSgpIGNvbnN0OwogCiAgICAgLy8gQXVkaW9TZXNzaW9uCi0gICAgQ2F0ZWdvcnlUeXBlIGNh
dGVnb3J5KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9jYXRlZ29yeTsgfQorICAgIEF1ZGlvU2Vz
c2lvbkNhdGVnb3J5IGNhdGVnb3J5KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9jYXRlZ29yeTsg
fQogICAgIHZvaWQgYXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCkgZmluYWw7CiAgICAgdm9pZCBz
ZXRJc1BsYXlpbmdUb0JsdWV0b290aE92ZXJyaWRlKHN0ZDo6b3B0aW9uYWw8Ym9vbD4pIGZpbmFs
OwotICAgIHZvaWQgc2V0Q2F0ZWdvcnkoQ2F0ZWdvcnlUeXBlLCBSb3V0ZVNoYXJpbmdQb2xpY3kp
IGZpbmFsOworICAgIHZvaWQgc2V0Q2F0ZWdvcnkoQXVkaW9TZXNzaW9uQ2F0ZWdvcnksIFJvdXRl
U2hhcmluZ1BvbGljeSkgZmluYWw7CiAgICAgZmxvYXQgc2FtcGxlUmF0ZSgpIGNvbnN0IGZpbmFs
OwogICAgIHNpemVfdCBidWZmZXJTaXplKCkgY29uc3QgZmluYWw7CiAgICAgc2l6ZV90IG51bWJl
ck9mT3V0cHV0Q2hhbm5lbHMoKSBjb25zdCBmaW5hbDsKQEAgLTY5LDcgKzY5LDcgQEAgcHJpdmF0
ZToKIAogICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gbV9sYXN0TXV0ZWRTdGF0ZTsKICAgICBtdXRh
YmxlIFdlYWtIYXNoU2V0PENvbmZpZ3VyYXRpb25DaGFuZ2VPYnNlcnZlcj4gbV9jb25maWd1cmF0
aW9uQ2hhbmdlT2JzZXJ2ZXJzOwotICAgIEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIG1fY2F0
ZWdvcnkgeyBBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6Tm9uZSB9OworICAgIEF1ZGlvU2Vz
c2lvbkNhdGVnb3J5IG1fY2F0ZWdvcnkgeyBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6Tm9uZSB9Owog
I2lmIEVOQUJMRShST1VUSU5HX0FSQklUUkFUSU9OKQogICAgIGJvb2wgbV9zZXR1cEFyYml0cmF0
aW9uT25nb2luZyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2luUm91dGluZ0FyYml0cmF0aW9uIHsg
ZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9B
dWRpb1Nlc3Npb25NYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVk
aW9TZXNzaW9uTWFjLm1tCmluZGV4IGQwNGM4M2QzYTBhNmI5ZjY5MGEyNGQ0N2E5NDg4N2M0YjE4
N2JlZGQuLjRjY2IxOWQ1N2RlNWQ3OTE1NWFmMzRjYTgyNTk5YTJmM2FhYTBiYjggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb1Nlc3Npb25NYWMubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvU2Vzc2lvbk1hYy5t
bQpAQCAtMjA5LDcgKzIwOSw3IEBAIHZvaWQgQXVkaW9TZXNzaW9uTWFjOjpzZXRJc1BsYXlpbmdU
b0JsdWV0b290aE92ZXJyaWRlKHN0ZDo6b3B0aW9uYWw8Ym9vbD4gdmFsdWUpCiAjZW5kaWYKIH0K
IAotdm9pZCBBdWRpb1Nlc3Npb25NYWM6OnNldENhdGVnb3J5KENhdGVnb3J5VHlwZSBjYXRlZ29y
eSwgUm91dGVTaGFyaW5nUG9saWN5KQordm9pZCBBdWRpb1Nlc3Npb25NYWM6OnNldENhdGVnb3J5
KEF1ZGlvU2Vzc2lvbkNhdGVnb3J5IGNhdGVnb3J5LCBSb3V0ZVNoYXJpbmdQb2xpY3kpCiB7CiAj
aWYgRU5BQkxFKFJPVVRJTkdfQVJCSVRSQVRJT04pCiAgICAgYm9vbCBwbGF5aW5nVG9CbHVldG9v
dGggPSBkZWZhdWx0RGV2aWNlVHJhbnNwb3J0SXNCbHVldG9vdGgoKTsKQEAgLTIzMSw3ICsyMzEs
NyBAQCB2b2lkIEF1ZGlvU2Vzc2lvbk1hYzo6c2V0Q2F0ZWdvcnkoQ2F0ZWdvcnlUeXBlIGNhdGVn
b3J5LCBSb3V0ZVNoYXJpbmdQb2xpY3kpCiAgICAgICAgIG1fcm91dGluZ0FyYml0cmF0aW9uQ2xp
ZW50LT5sZWF2ZVJvdXRpbmdBYnJpdHJhdGlvbigpOwogICAgIH0KIAotICAgIGlmIChjYXRlZ29y
eSA9PSBDYXRlZ29yeVR5cGU6OkFtYmllbnRTb3VuZCB8fCBjYXRlZ29yeSA9PSBDYXRlZ29yeVR5
cGU6OlNvbG9BbWJpZW50U291bmQgfHwgY2F0ZWdvcnkgPT0gQ2F0ZWdvcnlUeXBlOjpBdWRpb1By
b2Nlc3NpbmcgfHwgY2F0ZWdvcnkgPT0gQ2F0ZWdvcnlUeXBlOjpOb25lKQorICAgIGlmIChjYXRl
Z29yeSA9PSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6QW1iaWVudFNvdW5kIHx8IGNhdGVnb3J5ID09
IEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpTb2xvQW1iaWVudFNvdW5kIHx8IGNhdGVnb3J5ID09IEF1
ZGlvU2Vzc2lvbkNhdGVnb3J5OjpBdWRpb1Byb2Nlc3NpbmcgfHwgY2F0ZWdvcnkgPT0gQXVkaW9T
ZXNzaW9uQ2F0ZWdvcnk6Ok5vbmUpCiAgICAgICAgIHJldHVybjsKIAogICAgIHVzaW5nIFJvdXRp
bmdBcmJpdHJhdGlvbkVycm9yID0gQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0aW9uQ2xpZW50
OjpSb3V0aW5nQXJiaXRyYXRpb25FcnJvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL21hYy9TaGFyZWRSb3V0aW5nQXJiaXRyYXRvci5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vbWFjL1NoYXJlZFJvdXRpbmdBcmJpdHJhdG9yLmgKaW5kZXggNzkz
OTNlYjA0ZDIyOWMwODRjOGNkYTI2NGI4ZTQ2OWZmMzM0NWVlNC4uYWY0YWUyM2IyMzhjOWRiNzhk
ZTNlOWRiNTQxOWU3NWZkMzAyMTA1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vbWFjL1NoYXJlZFJvdXRpbmdBcmJpdHJhdG9yLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vbWFjL1NoYXJlZFJvdXRpbmdBcmJpdHJhdG9yLmgKQEAgLTUwLDEx
ICs1MCwxMSBAQCBwdWJsaWM6CiAgICAgfTsKIAogICAgIGJvb2wgaXNJblJvdXRpbmdBcmJpdHJh
dGlvbkZvclRva2VuKGNvbnN0IFRva2VuJik7Ci0gICAgdm9pZCBiZWdpblJvdXRpbmdBcmJpdHJh
dGlvbkZvclRva2VuKGNvbnN0IFRva2VuJiwgQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUsIEFy
Yml0cmF0aW9uQ2FsbGJhY2smJik7CisgICAgdm9pZCBiZWdpblJvdXRpbmdBcmJpdHJhdGlvbkZv
clRva2VuKGNvbnN0IFRva2VuJiwgQXVkaW9TZXNzaW9uQ2F0ZWdvcnksIEFyYml0cmF0aW9uQ2Fs
bGJhY2smJik7CiAgICAgdm9pZCBlbmRSb3V0aW5nQXJiaXRyYXRpb25Gb3JUb2tlbihjb25zdCBU
b2tlbiYpOwogCiBwcml2YXRlOgotICAgIHN0ZDo6b3B0aW9uYWw8QXVkaW9TZXNzaW9uOjpDYXRl
Z29yeVR5cGU+IG1fY3VycmVudENhdGVnb3J5IHsgQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6
Ok5vbmUgfTsKKyAgICBzdGQ6Om9wdGlvbmFsPEF1ZGlvU2Vzc2lvbkNhdGVnb3J5PiBtX2N1cnJl
bnRDYXRlZ29yeSB7IEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpOb25lIH07CiAgICAgV2Vha0hhc2hT
ZXQ8VG9rZW4+IG1fdG9rZW5zOwogICAgIFZlY3RvcjxBcmJpdHJhdGlvbkNhbGxiYWNrPiBtX2Vu
cXVldWVkQ2FsbGJhY2tzOwogICAgIGJvb2wgbV9zZXR1cEFyYml0cmF0aW9uT25nb2luZyB7IGZh
bHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvU2hh
cmVkUm91dGluZ0FyYml0cmF0b3IubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9t
YWMvU2hhcmVkUm91dGluZ0FyYml0cmF0b3IubW0KaW5kZXggZGQ5NDVlYzgwN2U2NzNkMDFmMjdj
MTJhMjUxNjcwOTU4ODM1Yjg5My4uYTA1YWYxNTg5MGE5ZmQwMjIyMDYwYTFjMzJmNzdhOWJkNGY1
ZmViMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL1NoYXJl
ZFJvdXRpbmdBcmJpdHJhdG9yLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L21hYy9TaGFyZWRSb3V0aW5nQXJiaXRyYXRvci5tbQpAQCAtNTAsNyArNTAsNyBAQCBib29sIFNo
YXJlZFJvdXRpbmdBcmJpdHJhdG9yOjppc0luUm91dGluZ0FyYml0cmF0aW9uRm9yVG9rZW4oY29u
c3QgVG9rZW4mIHRva2VuKQogICAgIHJldHVybiBtX3Rva2Vucy5jb250YWlucyh0b2tlbik7CiB9
CiAKLXZvaWQgU2hhcmVkUm91dGluZ0FyYml0cmF0b3I6OmJlZ2luUm91dGluZ0FyYml0cmF0aW9u
Rm9yVG9rZW4oY29uc3QgVG9rZW4mIHRva2VuLCBBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBy
ZXF1ZXN0ZWRDYXRlZ29yeSwgQXJiaXRyYXRpb25DYWxsYmFjayYmIGNhbGxiYWNrKQordm9pZCBT
aGFyZWRSb3V0aW5nQXJiaXRyYXRvcjo6YmVnaW5Sb3V0aW5nQXJiaXRyYXRpb25Gb3JUb2tlbihj
b25zdCBUb2tlbiYgdG9rZW4sIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5IHJlcXVlc3RlZENhdGVnb3J5
LCBBcmJpdHJhdGlvbkNhbGxiYWNrJiYgY2FsbGJhY2spCiB7CiAgICAgQVNTRVJUKCFpc0luUm91
dGluZ0FyYml0cmF0aW9uRm9yVG9rZW4odG9rZW4pKTsKIApAQCAtNzksMTMgKzc5LDEzIEBAIHZv
aWQgU2hhcmVkUm91dGluZ0FyYml0cmF0b3I6OmJlZ2luUm91dGluZ0FyYml0cmF0aW9uRm9yVG9r
ZW4oY29uc3QgVG9rZW4mIHRva2VuCiAKICAgICBBVkF1ZGlvUm91dGluZ0FyYml0cmF0aW9uQ2F0
ZWdvcnkgYXJiaXRyYXRpb25DYXRlZ29yeSA9IEFWQXVkaW9Sb3V0aW5nQXJiaXRyYXRpb25DYXRl
Z29yeVBsYXliYWNrOwogICAgIHN3aXRjaCAocmVxdWVzdGVkQ2F0ZWdvcnkpIHsKLSAgICBjYXNl
IEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpNZWRpYVBsYXliYWNrOgorICAgIGNhc2UgQXVk
aW9TZXNzaW9uQ2F0ZWdvcnk6Ok1lZGlhUGxheWJhY2s6CiAgICAgICAgIGFyYml0cmF0aW9uQ2F0
ZWdvcnkgPSBBVkF1ZGlvUm91dGluZ0FyYml0cmF0aW9uQ2F0ZWdvcnlQbGF5YmFjazsKICAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSBBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6UmVjb3JkQXVk
aW86CisgICAgY2FzZSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6UmVjb3JkQXVkaW86CiAgICAgICAg
IGFyYml0cmF0aW9uQ2F0ZWdvcnkgPSBBVkF1ZGlvUm91dGluZ0FyYml0cmF0aW9uQ2F0ZWdvcnlQ
bGF5QW5kUmVjb3JkOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIEF1ZGlvU2Vzc2lvbjo6Q2F0
ZWdvcnlUeXBlOjpQbGF5QW5kUmVjb3JkOgorICAgIGNhc2UgQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6
OlBsYXlBbmRSZWNvcmQ6CiAgICAgICAgIGFyYml0cmF0aW9uQ2F0ZWdvcnkgPSBBVkF1ZGlvUm91
dGluZ0FyYml0cmF0aW9uQ2F0ZWdvcnlQbGF5QW5kUmVjb3JkVm9pY2U7CiAgICAgICAgIGJyZWFr
OwogICAgIGRlZmF1bHQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllci5jcHAKaW5kZXggODQ3Y2FlZGFmODRmMmZiMGQwODk1M2Y4YzAyOTg3OGYxMGI1
YjIzMy4uN2EzMjY1MDMzYjk0N2I1YmU2OGMwNjIzMDI2ZmYzMDEyOGM0MjgxOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcApAQCAtMTY5
Myw2ICsxNjkzLDE2IEBAIHZvaWQgTWVkaWFQbGF5ZXI6OmF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdl
ZCgpCiAgICAgbV9wcml2YXRlLT5hdWRpb091dHB1dERldmljZUNoYW5nZWQoKTsKIH0KIAorYm9v
bCBNZWRpYVBsYXllcjo6c3VwcG9ydHNTZXRBdWRpb1Nlc3Npb25DYXRlZ29yeSgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+c3VwcG9ydHNTZXRBdWRpb1Nlc3Npb25DYXRlZ29yeSgp
OworfQorCit2b2lkIE1lZGlhUGxheWVyOjpzZXRBdWRpb1Nlc3Npb25DYXRlZ29yeShBdWRpb1Nl
c3Npb25DYXRlZ29yeSBjYXRlZ29yeSkKK3sKKyAgICBtX3ByaXZhdGUtPnNldEF1ZGlvU2Vzc2lv
bkNhdGVnb3J5KGNhdGVnb3J5KTsKK30KKwogTWVkaWFQbGF5ZXJJZGVudGlmaWVyIE1lZGlhUGxh
eWVyOjppZGVudGlmaWVyKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9wcml2YXRlLT5pZGVudGlm
aWVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRp
YVBsYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIu
aAppbmRleCA0YTFmNDE1MzA1NjExNDVlNmY2NTU2ZDk2ZTU1MWVmOTMxODJkMjg2Li5lMGI4NmQ4
ZTZlNmE5OWY1YjA2YjZiNmZjYTlhMjg2ZDNjNDQ3ODkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKQEAgLTY3Niw2ICs2NzYsOSBAQCBwdWJs
aWM6CiAgICAgU3RyaW5nIGF1ZGlvT3V0cHV0RGV2aWNlSWRPdmVycmlkZSgpIGNvbnN0OwogICAg
IHZvaWQgYXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCk7CiAKKyAgICBib29sIHN1cHBvcnRzU2V0
QXVkaW9TZXNzaW9uQ2F0ZWdvcnkoKSBjb25zdDsKKyAgICB2b2lkIHNldEF1ZGlvU2Vzc2lvbkNh
dGVnb3J5KEF1ZGlvU2Vzc2lvbkNhdGVnb3J5KTsKKwogICAgIE1lZGlhUGxheWVySWRlbnRpZmll
ciBpZGVudGlmaWVyKCkgY29uc3Q7CiAgICAgYm9vbCBoYXNNZWRpYUVuZ2luZSgpIGNvbnN0Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
clByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
UHJpdmF0ZS5oCmluZGV4IDA4NjQzYTA3NzI2NjI2ZjZjMGJkOTIyYWUxN2YyZjZkOWJjN2Y5ZjYu
Ljg3MTY3NTdhMGQyZTU2MWVmZmVhMDg5OTJlZTdhODcwMmM3Y2MzOTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCkBA
IC0yNyw2ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoVklERU8pCiAKKyNpbmNsdWRlICJBdWRpb1Nl
c3Npb24uaCIKICNpbmNsdWRlICJNZWRpYVBsYXllci5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVy
SWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlBsYXRmb3JtVGltZVJhbmdlcy5oIgpAQCAtMzE1LDYg
KzMxNiwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzUGF1c2VBdEhvc3RU
aW1lKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgcGxheUF0SG9z
dFRpbWUoY29uc3QgTW9ub3RvbmljVGltZSYpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVh
bCBib29sIHBhdXNlQXRIb3N0VGltZShjb25zdCBNb25vdG9uaWNUaW1lJikgeyByZXR1cm4gZmFs
c2U7IH0KKworICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1NldEF1ZGlvU2Vzc2lvbkNhdGVnb3J5
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0QXVkaW9TZXNz
aW9uQ2F0ZWdvcnkoQXVkaW9TZXNzaW9uQ2F0ZWdvcnkpIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7
IH0KKwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCmluZGV4IDBkZGRhYzkzOTYwMjQ0YTlj
Y2ExNWNlOTdmZWJhMGJiNDIzOWRiYmMuLjVkNTZiMWM0ZjkzYjg3ZGE2NjE3NjYxZDY1NDYyOGQ2
YTJkOTg5MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKQEAgLTMzNCw2ICszMzQsMTEgQEAgcHJp
dmF0ZToKICAgICBib29sIHBsYXlBdEhvc3RUaW1lKGNvbnN0IE1vbm90b25pY1RpbWUmKSBmaW5h
bDsKICAgICBib29sIHBhdXNlQXRIb3N0VGltZShjb25zdCBNb25vdG9uaWNUaW1lJikgZmluYWw7
CiAKKyNpZiBVU0UoQVVESU9fU0VTU0lPTikgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBi
b29sIHN1cHBvcnRzU2V0QXVkaW9TZXNzaW9uQ2F0ZWdvcnkoKSBjb25zdCBmaW5hbDsKKyAgICB2
b2lkIHNldEF1ZGlvU2Vzc2lvbkNhdGVnb3J5KEF1ZGlvU2Vzc2lvbkNhdGVnb3J5KSBmaW5hbDsK
KyNlbmRpZgorCiAgICAgUmV0YWluUHRyPEFWVVJMQXNzZXQ+IG1fYXZBc3NldDsKICAgICBSZXRh
aW5QdHI8QVZQbGF5ZXI+IG1fYXZQbGF5ZXI7CiAgICAgUmV0YWluUHRyPEFWUGxheWVySXRlbT4g
bV9hdlBsYXllckl0ZW07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQppbmRleCA1ZTEyNTllOTUzNTMz
MTgwMWNiOTU2NDMzNDdlMjU0YmI3NGMyMmIxLi4xNmRkMDE2OGU0Y2RkMDk5YjdjOGJjMzkyNmJk
MWQwN2VmYjUyOWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KQEAgLTEwNiw2ICsxMDYsNyBA
QAogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorI2ltcG9ydCAiQXVkaW9TZXNz
aW9uSU9TLmgiCiAjaW1wb3J0ICJMb2NhbGl6ZWREZXZpY2VNb2RlbC5oIgogI2ltcG9ydCAiV0FL
QXBwS2l0U3R1YnMuaCIKICNpbXBvcnQgPENvcmVJbWFnZS9Db3JlSW1hZ2UuaD4KQEAgLTM1OTMs
NiArMzU5NCwyNiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmF1
ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCgpCiAjZW5kaWYKIH0KIAorI2lmIFVTRShBVURJT19TRVNT
SU9OKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQorYm9vbCBNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjpzdXBwb3J0c1NldEF1ZGlvU2Vzc2lvbkNhdGVnb3J5KCkgY29uc3QKK3sK
KyAgICBpZiAoIWlzPEF1ZGlvU2Vzc2lvbklPUz4oQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9u
KCkpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIFtQQUw6OmdldEFWUGxheWVy
Q2xhc3MoKSBjb25mb3Jtc1RvUHJvdG9jb2w6QHByb3RvY29sKEFWQXVkaW9TZXNzaW9uUGFydGlj
aXBhbnQpXTsKK30KKwordm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpz
ZXRBdWRpb1Nlc3Npb25DYXRlZ29yeShBdWRpb1Nlc3Npb25DYXRlZ29yeSBjYXRlZ29yeSkKK3sK
KyAgICBBU1NFUlQoc3VwcG9ydHNTZXRBdWRpb1Nlc3Npb25DYXRlZ29yeSgpKTsKKyAgICBpZiAo
IXN1cHBvcnRzU2V0QXVkaW9TZXNzaW9uQ2F0ZWdvcnkoKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCBjYXRlZ29yeSk7CisgICAgYXV0byYgYXVkaW9T
ZXNzaW9uSU9TID0gZG93bmNhc3Q8QXVkaW9TZXNzaW9uSU9TPihBdWRpb1Nlc3Npb246OnNoYXJl
ZFNlc3Npb24oKSk7CisgICAgW21fYXZQbGF5ZXIgc2V0QXVkaW9TZXNzaW9uOmF1ZGlvU2Vzc2lv
bklPUy5hdWRpb1Nlc3Npb25Gb3JDYXRlZ29yeShjYXRlZ29yeSldOworfQorI2VuZGlmCisKIE5T
QXJyYXkqIGFzc2V0TWV0YWRhdGFLZXlOYW1lcygpCiB7CiAgICAgc3RhdGljIE5TQXJyYXkqIGtl
eXMgPSBbW05TQXJyYXkgYWxsb2NdIGluaXRXaXRoT2JqZWN0czoKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDLmgKaW5kZXggOGQwMjVkMjY0Yzg0ZDc5NzdmZjNjNDBhNTkwMWY5NmI0YzdkNzRhZS4uYjEx
MzBiNTY0OWM5MDMzNjE4MjM3OTk5NTE4OTZjNDQ0MThiYjA3MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VB
VkZPYmpDLmgKQEAgLTI3NCw2ICsyNzQsMTEgQEAgcHJpdmF0ZToKICAgICBib29sIHBhdXNlQXRI
b3N0VGltZShjb25zdCBNb25vdG9uaWNUaW1lJikgZmluYWw7CiAjZW5kaWYKIAorI2lmIFVTRShB
VURJT19TRVNTSU9OKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIGJvb2wgc3VwcG9ydHNT
ZXRBdWRpb1Nlc3Npb25DYXRlZ29yeSgpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgc2V0QXVkaW9T
ZXNzaW9uQ2F0ZWdvcnkoQXVkaW9TZXNzaW9uQ2F0ZWdvcnkpIGZpbmFsOworI2VuZGlmCisKICAg
ICBmcmllbmQgY2xhc3MgTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQzsKIAogICAgIHN0cnVjdCBQ
ZW5kaW5nU2VlayB7CkBAIC0zNDQsNiArMzQ5LDkgQEAgcHJpdmF0ZToKICAgICBjb25zdCB2b2lk
KiBtX2xvZ0lkZW50aWZpZXI7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFZpZGVvTGF5ZXJNYW5hZ2Vy
T2JqQz4gbV92aWRlb0xheWVyTWFuYWdlcjsKICAgICBSZWY8RWZmZWN0aXZlUmF0ZUNoYW5nZWRM
aXN0ZW5lcj4gbV9lZmZlY3RpdmVSYXRlQ2hhbmdlZExpc3RlbmVyOworI2lmIFVTRShBVURJT19T
RVNTSU9OKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHN0ZDo6b3B0aW9uYWw8QXVkaW9T
ZXNzaW9uQ2F0ZWdvcnk+IG1fYXVkaW9TZXNzaW9uQ2F0ZWdvcnk7CisjZW5kaWYKIH07CiAKIFN0
cmluZyBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhNZWRpYVBsYXllclByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakM6OlNlZWtTdGF0ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KaW5kZXgg
MmE3MmEzNTUwODkwMjAwNDE3N2E0NDg3MWNkYjc4NTU3N2U2MTY1OC4uZDMzOGQxOWU0NmJiMjZm
Mjg4N2JiZTY3OWUyN2JhODRmMDVkMzNmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQpA
QCAtNTQsNiArNTQsMTAgQEAKICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2ltcG9y
dCA8d3RmL1dlYWtQdHIuaD4KIAorI2lmIFVTRShBVURJT19TRVNTSU9OKSAmJiBQTEFURk9STShJ
T1NfRkFNSUxZKQorI2ltcG9ydCAiQXVkaW9TZXNzaW9uSU9TLmgiCisjZW5kaWYKKwogI2ltcG9y
dCAiQ29yZVZpZGVvU29mdExpbmsuaCIKICNpbXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGlu
ay5oPgogI2ltcG9ydCA8cGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmg+CkBAIC0xMjU2
LDYgKzEyNjAsMTEgQEAgQUxMT1dfTkVXX0FQSV9XSVRIT1VUX0dVQVJEU19FTkQKICAgICB9CiAj
ZW5kaWYKIAorI2lmIFVTRShBVURJT19TRVNTSU9OKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQor
ICAgIGlmIChtX2F1ZGlvU2Vzc2lvbkNhdGVnb3J5ICYmIHN1cHBvcnRzU2V0QXVkaW9TZXNzaW9u
Q2F0ZWdvcnkoKSkKKyAgICAgICAgYXVkaW9SZW5kZXJlci5hdWRpb1Nlc3Npb24gPSBkb3duY2Fz
dDxBdWRpb1Nlc3Npb25JT1M+KEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpKS5hdWRpb1Nl
c3Npb25Gb3JDYXRlZ29yeSgqbV9hdWRpb1Nlc3Npb25DYXRlZ29yeSk7CisjZW5kaWYKKwogICAg
IEB0cnkgewogICAgICAgICBbbV9zeW5jaHJvbml6ZXIgYWRkUmVuZGVyZXI6YXVkaW9SZW5kZXJl
cl07CiAgICAgfSBAY2F0Y2goTlNFeGNlcHRpb24gKmV4Y2VwdGlvbikgewpAQCAtMTM4Myw2ICsx
MzkyLDMzIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjphdWRp
b091dHB1dERldmljZUNoYW5nZWQoKQogI2VuZGlmCiB9CiAKKyNpZiBVU0UoQVVESU9fU0VTU0lP
TikgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKK2Jvb2wgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDOjpzdXBwb3J0c1NldEF1ZGlvU2Vzc2lvbkNhdGVnb3J5KCkgY29uc3QKK3sK
KyAgICBpZiAoIWlzPEF1ZGlvU2Vzc2lvbklPUz4oQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9u
KCkpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIFtQQUw6OmdldEFWU2FtcGxl
QnVmZmVyQXVkaW9SZW5kZXJlckNsYXNzKCkgY29uZm9ybXNUb1Byb3RvY29sOkBwcm90b2NvbChB
VkF1ZGlvU2Vzc2lvblBhcnRpY2lwYW50KV07Cit9CisKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDOjpzZXRBdWRpb1Nlc3Npb25DYXRlZ29yeShBdWRpb1Nlc3Npb25D
YXRlZ29yeSBjYXRlZ29yeSkKK3sKKyAgICBBU1NFUlQoc3VwcG9ydHNTZXRBdWRpb1Nlc3Npb25D
YXRlZ29yeSgpKTsKKyAgICBpZiAoIXN1cHBvcnRzU2V0QXVkaW9TZXNzaW9uQ2F0ZWdvcnkoKSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGNhdGVnb3J5ID09IG1fYXVkaW9TZXNzaW9uQ2F0
ZWdvcnkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fYXVkaW9TZXNzaW9uQ2F0ZWdvcnkgPSBj
YXRlZ29yeTsKKworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgY2F0ZWdvcnkpOworICAg
IGF1dG8qIGF2QXVkaW9TZXNzaW9uID0gZG93bmNhc3Q8QXVkaW9TZXNzaW9uSU9TPihBdWRpb1Nl
c3Npb246OnNoYXJlZFNlc3Npb24oKSkuYXVkaW9TZXNzaW9uRm9yQ2F0ZWdvcnkoY2F0ZWdvcnkp
OworICAgIGZvciAoY29uc3QgYXV0byYga2V5IDogbV9zYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVy
TWFwLmtleXMoKSkKKyAgICAgICAgWyhfX2JyaWRnZSBBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVy
ZXIgKilrZXkuZ2V0KCkgc2V0QXVkaW9TZXNzaW9uOmF2QXVkaW9TZXNzaW9uXTsKK30KKyNlbmRp
ZgorCisKIFdURkxvZ0NoYW5uZWwmIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2Jq
Qzo6bG9nQ2hhbm5lbCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIExvZ01lZGlhU291cmNlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Jhc2VBdWRp
b1NoYXJlZFVuaXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L0Jhc2VBdWRpb1NoYXJlZFVuaXQuY3BwCmluZGV4IGEyYmU1MjI1MzQ3MjE1ZDRlNzc5MDA3YjY2
NjYwMjM2ODBkODdiMjYuLjVmMjRiZDhmOTRlMTBjMzA1YTE2NjBiMTkyYmZkZWE4M2VjYzdlZDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9CYXNl
QXVkaW9TaGFyZWRVbml0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvQmFzZUF1ZGlvU2hhcmVkVW5pdC5jcHAKQEAgLTEwMyw3ICsxMDMsNyBAQCBPU1N0
YXR1cyBCYXNlQXVkaW9TaGFyZWRVbml0OjpzdGFydFVuaXQoKQogICAgIGZvckVhY2hDbGllbnQo
W10oYXV0byYgY2xpZW50KSB7CiAgICAgICAgIGNsaWVudC5hdWRpb1VuaXRXaWxsU3RhcnQoKTsK
ICAgICB9KTsKLSAgICBBU1NFUlQoIURlcHJlY2F0ZWRHbG9iYWxTZXR0aW5nczo6c2hvdWxkTWFu
YWdlQXVkaW9TZXNzaW9uQ2F0ZWdvcnkoKSB8fCBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24o
KS5jYXRlZ29yeSgpID09IEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpQbGF5QW5kUmVjb3Jk
KTsKKyAgICBBU1NFUlQoIURlcHJlY2F0ZWRHbG9iYWxTZXR0aW5nczo6c2hvdWxkTWFuYWdlQXVk
aW9TZXNzaW9uQ2F0ZWdvcnkoKSB8fCBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5jYXRl
Z29yeSgpID09IEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpQbGF5QW5kUmVjb3JkKTsKIAogICAgIGlm
IChhdXRvIGVycm9yID0gc3RhcnRJbnRlcm5hbCgpKSB7CiAgICAgICAgIGNhcHR1cmVGYWlsZWQo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1l
QXVkaW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRp
bWVBdWRpb1NvdXJjZS5jcHAKaW5kZXggMDVjODhlYTE3OWZjNDE3MDdlMjZhNDU2NjQwZmIzNWIy
ZGM4NzY1OS4uMGI5YmRhMDNjZDFlZDhlMTEyNTIyNzYzM2Q5MDIzNTdkODJmZTYwYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJj
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRp
b1NvdXJjZS5jcHAKQEAgLTEzOCw3ICsxMzgsNyBAQCB2b2lkIE1vY2tSZWFsdGltZUF1ZGlvU291
cmNlOjpzdGFydFByb2R1Y2luZ0RhdGEoKQogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAg
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9y
eSgpLnNldEFjdGl2ZVNvdXJjZSgqdGhpcyk7CiAgICAgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5h
Z2VyOjpzaGFyZWRNYW5hZ2VyKCkuc2Vzc2lvbkNhblByb2R1Y2VBdWRpb0NoYW5nZWQoKTsKLSAg
ICBBU1NFUlQoQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuY2F0ZWdvcnkoKSA9PSBBdWRp
b1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6UGxheUFuZFJlY29yZCk7CisgICAgQVNTRVJUKEF1ZGlv
U2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLmNhdGVnb3J5KCkgPT0gQXVkaW9TZXNzaW9uQ2F0ZWdv
cnk6OlBsYXlBbmRSZWNvcmQpOwogI2VuZGlmCiAKICAgICBpZiAoIXNhbXBsZVJhdGUoKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCBlYzJiOTJhOGY1ZmY2MTk5YmExYjNl
ODg5NDljYTZjNDMzNzhkZmMxLi41NDUzZDQyMThhYTEzNWM1MTJlZGQ1ZDUzNDM5YzQwZjM4NTM4
MWQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC01NTM0LDE5ICs1NTM0
LDE5IEBAIFN0cmluZyBJbnRlcm5hbHM6OmF1ZGlvU2Vzc2lvbkNhdGVnb3J5KCkgY29uc3QKIHsK
ICNpZiBVU0UoQVVESU9fU0VTU0lPTikKICAgICBzd2l0Y2ggKEF1ZGlvU2Vzc2lvbjo6c2hhcmVk
U2Vzc2lvbigpLmNhdGVnb3J5KCkpIHsKLSAgICBjYXNlIEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlU
eXBlOjpBbWJpZW50U291bmQ6CisgICAgY2FzZSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6QW1iaWVu
dFNvdW5kOgogICAgICAgICByZXR1cm4gIkFtYmllbnRTb3VuZCJfczsKLSAgICBjYXNlIEF1ZGlv
U2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpTb2xvQW1iaWVudFNvdW5kOgorICAgIGNhc2UgQXVkaW9T
ZXNzaW9uQ2F0ZWdvcnk6OlNvbG9BbWJpZW50U291bmQ6CiAgICAgICAgIHJldHVybiAiU29sb0Ft
YmllbnRTb3VuZCJfczsKLSAgICBjYXNlIEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpNZWRp
YVBsYXliYWNrOgorICAgIGNhc2UgQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6Ok1lZGlhUGxheWJhY2s6
CiAgICAgICAgIHJldHVybiAiTWVkaWFQbGF5YmFjayJfczsKLSAgICBjYXNlIEF1ZGlvU2Vzc2lv
bjo6Q2F0ZWdvcnlUeXBlOjpSZWNvcmRBdWRpbzoKKyAgICBjYXNlIEF1ZGlvU2Vzc2lvbkNhdGVn
b3J5OjpSZWNvcmRBdWRpbzoKICAgICAgICAgcmV0dXJuICJSZWNvcmRBdWRpbyJfczsKLSAgICBj
YXNlIEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpQbGF5QW5kUmVjb3JkOgorICAgIGNhc2Ug
QXVkaW9TZXNzaW9uQ2F0ZWdvcnk6OlBsYXlBbmRSZWNvcmQ6CiAgICAgICAgIHJldHVybiAiUGxh
eUFuZFJlY29yZCJfczsKLSAgICBjYXNlIEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpBdWRp
b1Byb2Nlc3Npbmc6CisgICAgY2FzZSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6QXVkaW9Qcm9jZXNz
aW5nOgogICAgICAgICByZXR1cm4gIkF1ZGlvUHJvY2Vzc2luZyJfczsKLSAgICBjYXNlIEF1ZGlv
U2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpOb25lOgorICAgIGNhc2UgQXVkaW9TZXNzaW9uQ2F0ZWdv
cnk6Ok5vbmU6CiAgICAgICAgIHJldHVybiAiTm9uZSJfczsKICAgICB9CiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tYWMvTG9jYWxBdWRpb1Nlc3Npb25Sb3V0
aW5nQXJiaXRyYXRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWFjL0xvY2FsQXVk
aW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3IuY3BwCmluZGV4IDdlNWVkZmVkOTgwMTVhNGE0NDMw
OTg3ZDJmYTdjNzlmMzE2MDk5M2QuLmRiNDJhYTRlMmZkMjNiZThhNDAzZWMzYmMwMjY2OTQ3MjA3
NTI2ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tYWMvTG9jYWxBdWRp
b1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL21hYy9Mb2NhbEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yLmNwcApAQCAtNTIsNyAr
NTIsNyBAQCB2b2lkIExvY2FsQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3I6OnByb2Nlc3NE
aWRUZXJtaW5hdGUoKQogICAgIGxlYXZlUm91dGluZ0Ficml0cmF0aW9uKCk7CiB9CiAKLXZvaWQg
TG9jYWxBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvcjo6YmVnaW5Sb3V0aW5nQXJiaXRyYXRp
b25XaXRoQ2F0ZWdvcnkoQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUgY2F0ZWdvcnksIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoUm91dGluZ0FyYml0cmF0aW9uRXJyb3IsIERlZmF1bHRSb3V0ZUNo
YW5nZWQpPiYmIGNhbGxiYWNrKQordm9pZCBMb2NhbEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJh
dG9yOjpiZWdpblJvdXRpbmdBcmJpdHJhdGlvbldpdGhDYXRlZ29yeShBdWRpb1Nlc3Npb25DYXRl
Z29yeSBjYXRlZ29yeSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSb3V0aW5nQXJiaXRyYXRpb25F
cnJvciwgRGVmYXVsdFJvdXRlQ2hhbmdlZCk+JiYgY2FsbGJhY2spCiB7CiAgICAgbV9jb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6
OkdQVVByb2Nlc3NDb25uZWN0aW9uOjpCZWdpblJvdXRpbmdBcmJpdHJhdGlvbldpdGhDYXRlZ29y
eShjYXRlZ29yeSksIFdURk1vdmUoY2FsbGJhY2spLCAwKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9tYWMvTG9jYWxBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRv
ci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21hYy9Mb2NhbEF1ZGlvU2Vzc2lvblJvdXRp
bmdBcmJpdHJhdG9yLmgKaW5kZXggMDhjZGIyOTAyYmVhZGU3YzhiMjU4ZDZjZWI1MWMwMzQxOWVk
NDc1Zi4uNDU3NDEzZDgzYzc1NzY4NjI3OGViYTA4NmY1NjJlOTljZTA0ZjBjZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21hYy9Mb2NhbEF1ZGlvU2Vzc2lvblJvdXRpbmdB
cmJpdHJhdG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21hYy9Mb2NhbEF1ZGlv
U2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yLmgKQEAgLTQ5LDcgKzQ5LDcgQEAgcHJpdmF0ZToKICAg
ICBMb2NhbEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yKEdQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MmKTsKIAogICAgIC8vIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudAot
ICAgIHZvaWQgYmVnaW5Sb3V0aW5nQXJiaXRyYXRpb25XaXRoQ2F0ZWdvcnkoV2ViQ29yZTo6QXVk
aW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUsIEFyYml0cmF0aW9uQ2FsbGJhY2smJikgZmluYWw7Cisg
ICAgdm9pZCBiZWdpblJvdXRpbmdBcmJpdHJhdGlvbldpdGhDYXRlZ29yeShXZWJDb3JlOjpBdWRp
b1Nlc3Npb25DYXRlZ29yeSwgQXJiaXRyYXRpb25DYWxsYmFjayYmKSBmaW5hbDsKICAgICB2b2lk
IGxlYXZlUm91dGluZ0Ficml0cmF0aW9uKCkgZmluYWw7CiAKICAgICBHUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzJiBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmNwcApp
bmRleCAyN2M4MTYyYjUxMzMzNDhkMmU2NmVhMDk1YWE4OTFkMGNlN2YwODBjLi4zY2FlYTRmM2Vk
YTBkMGNkNjE3NTlmOTI5YTc0YWVkOWJhMmRhNTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5jcHAKQEAg
LTcxLDcgKzcxLDcgQEAgUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbiBSZW1vdGVBdWRp
b1Nlc3Npb25Qcm94eTo6Y29uZmlndXJhdGlvbigpCiAgICAgfTsKIH0KIAotdm9pZCBSZW1vdGVB
dWRpb1Nlc3Npb25Qcm94eTo6c2V0Q2F0ZWdvcnkoQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUg
Y2F0ZWdvcnksIFJvdXRlU2hhcmluZ1BvbGljeSBwb2xpY3kpCit2b2lkIFJlbW90ZUF1ZGlvU2Vz
c2lvblByb3h5OjpzZXRDYXRlZ29yeShBdWRpb1Nlc3Npb25DYXRlZ29yeSBjYXRlZ29yeSwgUm91
dGVTaGFyaW5nUG9saWN5IHBvbGljeSkKIHsKICAgICBpZiAobV9jYXRlZ29yeSA9PSBjYXRlZ29y
eSAmJiBtX3JvdXRlU2hhcmluZ1BvbGljeSA9PSBwb2xpY3kgJiYgIW1faXNQbGF5aW5nVG9CbHVl
dG9vdGhPdmVycmlkZUNoYW5nZWQpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5oIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmgKaW5k
ZXggNTgzMGE2YWJiYjdkMzA4MTEwZDgxMzU4NWE5NzUyZWE2NzJmNjc4Zi4uZGIxMTg0NTJjMGYz
YjJhZjM5NmQwZTk3M2NhOGZlNWIwMWZiYTA2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmgKQEAgLTUyLDcg
KzUyLDcgQEAgcHVibGljOgogICAgIFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHByb2Nlc3NJ
ZGVudGlmaWVyKCk7CiAgICAgUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbiBjb25maWd1
cmF0aW9uKCk7CiAKLSAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBjYXRl
Z29yeSgpIGNvbnN0IHsgcmV0dXJuIG1fY2F0ZWdvcnk7IH07CisgICAgV2ViQ29yZTo6QXVkaW9T
ZXNzaW9uQ2F0ZWdvcnkgY2F0ZWdvcnkoKSBjb25zdCB7IHJldHVybiBtX2NhdGVnb3J5OyB9Owog
ICAgIFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeSByb3V0ZVNoYXJpbmdQb2xpY3koKSBjb25z
dCB7IHJldHVybiBtX3JvdXRlU2hhcmluZ1BvbGljeTsgfQogICAgIHNpemVfdCBwcmVmZXJyZWRC
dWZmZXJTaXplKCkgY29uc3QgeyByZXR1cm4gbV9wcmVmZXJyZWRCdWZmZXJTaXplOyB9CiAgICAg
Ym9vbCBpc0FjdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIG1fYWN0aXZlOyB9CkBAIC03MCw3ICs3MCw3
IEBAIHByaXZhdGU6CiAgICAgZXhwbGljaXQgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkoR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2VzcyYpOwogCiAgICAgLy8gTWVzc2FnZXMKLSAgICB2b2lkIHNldENh
dGVnb3J5KFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlLCBXZWJDb3JlOjpSb3V0
ZVNoYXJpbmdQb2xpY3kpOworICAgIHZvaWQgc2V0Q2F0ZWdvcnkoV2ViQ29yZTo6QXVkaW9TZXNz
aW9uQ2F0ZWdvcnksIFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeSk7CiAgICAgdm9pZCBzZXRQ
cmVmZXJyZWRCdWZmZXJTaXplKHVpbnQ2NF90KTsKICAgICB1c2luZyBTZXRBY3RpdmVDb21wbGV0
aW9uID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT47CiAgICAgdm9pZCB0cnlUb1NldEFj
dGl2ZShib29sLCBTZXRBY3RpdmVDb21wbGV0aW9uJiYpOwpAQCAtODAsNyArODAsNyBAQCBwcml2
YXRlOgogICAgIElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbigpOwogCiAgICAgR1BVQ29ubmVj
dGlvblRvV2ViUHJvY2VzcyYgbV9ncHVDb25uZWN0aW9uOwotICAgIFdlYkNvcmU6OkF1ZGlvU2Vz
c2lvbjo6Q2F0ZWdvcnlUeXBlIG1fY2F0ZWdvcnkgeyBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNh
dGVnb3J5VHlwZTo6Tm9uZSB9OworICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbkNhdGVnb3J5IG1f
Y2F0ZWdvcnkgeyBXZWJDb3JlOjpBdWRpb1Nlc3Npb25DYXRlZ29yeTo6Tm9uZSB9OwogICAgIFdl
YkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeSBtX3JvdXRlU2hhcmluZ1BvbGljeSB7IFdlYkNvcmU6
OlJvdXRlU2hhcmluZ1BvbGljeTo6RGVmYXVsdCB9OwogICAgIHNpemVfdCBtX3ByZWZlcnJlZEJ1
ZmZlclNpemUgeyAwIH07CiAgICAgYm9vbCBtX2FjdGl2ZSB7IGZhbHNlIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHku
bWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHkubWVzc2FnZXMuaW4KaW5kZXggYmFmOWEyNjU5ZjA5NjNhYzBmOTBiZDMwODkw
MWVjNDVmYzhkYjMwMy4uNjViZTlmZGY3OWQ2ZGNkNjIxOTRhZmM4NzBlZGEwZjNhNDE3OGVjNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vz
c2lvblByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5tZXNzYWdlcy5pbgpAQCAtMjYsNyArMjYsNyBAQAog
I2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCiAKIG1lc3NhZ2Vz
IC0+IFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5IE5vdFJlZkNvdW50ZWQgewotICAgIFNldENhdGVn
b3J5KGVudW06dWludDhfdCBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSB0eXBl
LCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5IHBvbGljeSkKKyAgICBT
ZXRDYXRlZ29yeShlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6QXVkaW9TZXNzaW9uQ2F0ZWdvcnkgdHlw
ZSwgZW51bTp1aW50OF90IFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeSBwb2xpY3kpCiAgICAg
U2V0UHJlZmVycmVkQnVmZmVyU2l6ZSh1aW50NjRfdCBwcmVmZXJyZWRCdWZmZXJTaXplKQogICAg
IFRyeVRvU2V0QWN0aXZlKGJvb2wgYWN0aXZlKSAtPiAoYm9vbCBzdWNlZWRlZCkgU3luY2hyb25v
dXMKICAgICBTZXRJc1BsYXlpbmdUb0JsdWV0b290aE92ZXJyaWRlKHN0ZDo6b3B0aW9uYWw8Ym9v
bD4gdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuY3BwCmluZGV4IDgwMzQ2ODMy
MjMwMmZkOGMxNzAzMDgzMmFhOTdmMDExNTc0YzM1YTcuLjY3MTNhYTU3ZGFiNWYwMDQ0ODkyOGM1
ZmEwNTg2N2VlZTE4NTljMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuY3BwCkBA
IC0zOCw5ICszOCw5IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiB1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKIAotc3RhdGljIGJvb2wgY2F0ZWdvcnlDYW5NaXhXaXRoT3RoZXJzKEF1ZGlvU2Vzc2lv
bjo6Q2F0ZWdvcnlUeXBlIGNhdGVnb3J5KQorc3RhdGljIGJvb2wgY2F0ZWdvcnlDYW5NaXhXaXRo
T3RoZXJzKEF1ZGlvU2Vzc2lvbkNhdGVnb3J5IGNhdGVnb3J5KQogewotICAgIHJldHVybiBjYXRl
Z29yeSA9PSBBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6QW1iaWVudFNvdW5kOworICAgIHJl
dHVybiBjYXRlZ29yeSA9PSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6QW1iaWVudFNvdW5kOwogfQog
CiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5
TWFuYWdlcigpCkBAIC03MSwzMCArNzEsMzAgQEAgdm9pZCBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94
eU1hbmFnZXI6OnJlbW92ZVByb3h5KFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5JiBwcm94eSkKIAog
dm9pZCBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6OnVwZGF0ZUNhdGVnb3J5KCkKIHsK
LSAgICBBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBjYXRlZ29yeSA9IEF1ZGlvU2Vzc2lvbjo6
Q2F0ZWdvcnlUeXBlOjpOb25lOworICAgIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5IGNhdGVnb3J5ID0g
QXVkaW9TZXNzaW9uQ2F0ZWdvcnk6Ok5vbmU7CiAgICAgUm91dGVTaGFyaW5nUG9saWN5IHBvbGlj
eSA9IFJvdXRlU2hhcmluZ1BvbGljeTo6RGVmYXVsdDsKIAotICAgIEhhc2hDb3VudGVkU2V0PEF1
ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlLCBXVEY6OkludEhhc2g8QXVkaW9TZXNzaW9uOjpDYXRl
Z29yeVR5cGU+LCBXVEY6OlN0cm9uZ0VudW1IYXNoVHJhaXRzPEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdv
cnlUeXBlPj4gY2F0ZWdvcnlDb3VudHM7CisgICAgSGFzaENvdW50ZWRTZXQ8QXVkaW9TZXNzaW9u
Q2F0ZWdvcnksIFdURjo6SW50SGFzaDxBdWRpb1Nlc3Npb25DYXRlZ29yeT4sIFdURjo6U3Ryb25n
RW51bUhhc2hUcmFpdHM8QXVkaW9TZXNzaW9uQ2F0ZWdvcnk+PiBjYXRlZ29yeUNvdW50czsKICAg
ICBIYXNoQ291bnRlZFNldDxSb3V0ZVNoYXJpbmdQb2xpY3ksIFdURjo6SW50SGFzaDxSb3V0ZVNo
YXJpbmdQb2xpY3k+LCBXVEY6OlN0cm9uZ0VudW1IYXNoVHJhaXRzPFJvdXRlU2hhcmluZ1BvbGlj
eT4+IHBvbGljeUNvdW50czsKICAgICBmb3IgKGF1dG8mIG90aGVyUHJveHkgOiBtX3Byb3hpZXMp
IHsKICAgICAgICAgY2F0ZWdvcnlDb3VudHMuYWRkKG90aGVyUHJveHkuY2F0ZWdvcnkoKSk7CiAg
ICAgICAgIHBvbGljeUNvdW50cy5hZGQob3RoZXJQcm94eS5yb3V0ZVNoYXJpbmdQb2xpY3koKSk7
CiAgICAgfQogCi0gICAgaWYgKGNhdGVnb3J5Q291bnRzLmNvbnRhaW5zKEF1ZGlvU2Vzc2lvbjo6
Q2F0ZWdvcnlUeXBlOjpQbGF5QW5kUmVjb3JkKSkKLSAgICAgICAgY2F0ZWdvcnkgPSBBdWRpb1Nl
c3Npb246OkNhdGVnb3J5VHlwZTo6UGxheUFuZFJlY29yZDsKLSAgICBlbHNlIGlmIChjYXRlZ29y
eUNvdW50cy5jb250YWlucyhBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6UmVjb3JkQXVkaW8p
KQotICAgICAgICBjYXRlZ29yeSA9IEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpSZWNvcmRB
dWRpbzsKLSAgICBlbHNlIGlmIChjYXRlZ29yeUNvdW50cy5jb250YWlucyhBdWRpb1Nlc3Npb246
OkNhdGVnb3J5VHlwZTo6TWVkaWFQbGF5YmFjaykpCi0gICAgICAgIGNhdGVnb3J5ID0gQXVkaW9T
ZXNzaW9uOjpDYXRlZ29yeVR5cGU6Ok1lZGlhUGxheWJhY2s7Ci0gICAgZWxzZSBpZiAoY2F0ZWdv
cnlDb3VudHMuY29udGFpbnMoQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6OlNvbG9BbWJpZW50
U291bmQpKQotICAgICAgICBjYXRlZ29yeSA9IEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpT
b2xvQW1iaWVudFNvdW5kOwotICAgIGVsc2UgaWYgKGNhdGVnb3J5Q291bnRzLmNvbnRhaW5zKEF1
ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpBbWJpZW50U291bmQpKQotICAgICAgICBjYXRlZ29y
eSA9IEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpBbWJpZW50U291bmQ7Ci0gICAgZWxzZSBp
ZiAoY2F0ZWdvcnlDb3VudHMuY29udGFpbnMoQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6OkF1
ZGlvUHJvY2Vzc2luZykpCi0gICAgICAgIGNhdGVnb3J5ID0gQXVkaW9TZXNzaW9uOjpDYXRlZ29y
eVR5cGU6OkF1ZGlvUHJvY2Vzc2luZzsKKyAgICBpZiAoY2F0ZWdvcnlDb3VudHMuY29udGFpbnMo
QXVkaW9TZXNzaW9uQ2F0ZWdvcnk6OlBsYXlBbmRSZWNvcmQpKQorICAgICAgICBjYXRlZ29yeSA9
IEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpQbGF5QW5kUmVjb3JkOworICAgIGVsc2UgaWYgKGNhdGVn
b3J5Q291bnRzLmNvbnRhaW5zKEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpSZWNvcmRBdWRpbykpCisg
ICAgICAgIGNhdGVnb3J5ID0gQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6OlJlY29yZEF1ZGlvOworICAg
IGVsc2UgaWYgKGNhdGVnb3J5Q291bnRzLmNvbnRhaW5zKEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpN
ZWRpYVBsYXliYWNrKSkKKyAgICAgICAgY2F0ZWdvcnkgPSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6
TWVkaWFQbGF5YmFjazsKKyAgICBlbHNlIGlmIChjYXRlZ29yeUNvdW50cy5jb250YWlucyhBdWRp
b1Nlc3Npb25DYXRlZ29yeTo6U29sb0FtYmllbnRTb3VuZCkpCisgICAgICAgIGNhdGVnb3J5ID0g
QXVkaW9TZXNzaW9uQ2F0ZWdvcnk6OlNvbG9BbWJpZW50U291bmQ7CisgICAgZWxzZSBpZiAoY2F0
ZWdvcnlDb3VudHMuY29udGFpbnMoQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6OkFtYmllbnRTb3VuZCkp
CisgICAgICAgIGNhdGVnb3J5ID0gQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6OkFtYmllbnRTb3VuZDsK
KyAgICBlbHNlIGlmIChjYXRlZ29yeUNvdW50cy5jb250YWlucyhBdWRpb1Nlc3Npb25DYXRlZ29y
eTo6QXVkaW9Qcm9jZXNzaW5nKSkKKyAgICAgICAgY2F0ZWdvcnkgPSBBdWRpb1Nlc3Npb25DYXRl
Z29yeTo6QXVkaW9Qcm9jZXNzaW5nOwogICAgIGVsc2UKLSAgICAgICAgY2F0ZWdvcnkgPSBBdWRp
b1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6Tm9uZTsKKyAgICAgICAgY2F0ZWdvcnkgPSBBdWRpb1Nl
c3Npb25DYXRlZ29yeTo6Tm9uZTsKIAogICAgIHBvbGljeSA9IFJvdXRlU2hhcmluZ1BvbGljeTo6
RGVmYXVsdDsKICAgICBpZiAocG9saWN5Q291bnRzLmNvbnRhaW5zKFJvdXRlU2hhcmluZ1BvbGlj
eTo6TG9uZ0Zvcm1WaWRlbykpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKaW5kZXggYmFmZDkyNjVkNTE2Mzk1
Y2I1YzA1MDA5ZjJmM2QwM2M2NTdlOGZhNy4uNjljMDA0ZjFlYzM2OGQwYjAxOGIwNzA1MGQ2ODQ4
MjFiYTQ1MmM3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUGxheWVyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcApAQCAtMTE2LDYgKzExNiw3IEBAIHZvaWQg
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6Z2V0Q29uZmlndXJhdGlvbihSZW1vdGVNZWRpYVBsYXll
ckNvbmZpZ3VyYXRpb24mIGNvCiAgICAgY29uZmlndXJhdGlvbi5zdXBwb3J0c0FjY2VsZXJhdGVk
UmVuZGVyaW5nID0gbV9wbGF5ZXItPnN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKTsKICAg
ICBjb25maWd1cmF0aW9uLnN1cHBvcnRzUGxheUF0SG9zdFRpbWUgPSBtX3BsYXllci0+c3VwcG9y
dHNQbGF5QXRIb3N0VGltZSgpOwogICAgIGNvbmZpZ3VyYXRpb24uc3VwcG9ydHNQYXVzZUF0SG9z
dFRpbWUgPSBtX3BsYXllci0+c3VwcG9ydHNQYXVzZUF0SG9zdFRpbWUoKTsKKyAgICBjb25maWd1
cmF0aW9uLnN1cHBvcnRzU2V0QXVkaW9TZXNzaW9uQ2F0ZWdvcnkgPSBtX3BsYXllci0+c3VwcG9y
dHNTZXRBdWRpb1Nlc3Npb25DYXRlZ29yeSgpOwogCiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlC
QUNLX1RBUkdFVCkKICAgICBjb25maWd1cmF0aW9uLmNhblBsYXlUb1dpcmVsZXNzUGxheWJhY2tU
YXJnZXQgPSBtX3BsYXllci0+Y2FuUGxheVRvV2lyZWxlc3NQbGF5YmFja1RhcmdldCgpOwpAQCAt
MTA4Nyw2ICsxMDg4LDEyIEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6cGF1c2VBdEhv
c3RUaW1lKE1vbm90b25pY1RpbWUgdGltZSkKICAgICAgICAgbV9wbGF5ZXItPnBhdXNlQXRIb3N0
VGltZSh0aW1lKTsKIH0KIAordm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjpzZXRBdWRpb1Nl
c3Npb25DYXRlZ29yeShBdWRpb1Nlc3Npb25DYXRlZ29yeSBjYXRlZ29yeSkKK3sKKyAgICBpZiAo
bV9wbGF5ZXIpCisgICAgICAgIG1fcGxheWVyLT5zZXRBdWRpb1Nlc3Npb25DYXRlZ29yeShjYXRl
Z29yeSk7Cit9CisKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKIFdURkxvZ0NoYW5uZWwmIFJl
bW90ZU1lZGlhUGxheWVyUHJveHk6OmxvZ0NoYW5uZWwoKSBjb25zdAogewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmgK
aW5kZXggNjdmN2YyYTJkZWMwZDJlOTAxYjJmYWNiMDRlMTMxMjRiOTY5OWQ3My4uM2I1NmUzYjIw
NzYxNDQzZTM0OWIxNDg2MDU0MDFhNGI2MGZmZDMyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oCkBAIC0zMDQs
NiArMzA0LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHBsYXlBdEhvc3RUaW1lKE1vbm90b25pY1Rp
bWUpOwogICAgIHZvaWQgcGF1c2VBdEhvc3RUaW1lKE1vbm90b25pY1RpbWUpOwogCisgICAgdm9p
ZCBzZXRBdWRpb1Nlc3Npb25DYXRlZ29yeShXZWJDb3JlOjpBdWRpb1Nlc3Npb25DYXRlZ29yeSk7
CisKICAgICBib29sIG1lZGlhUGxheWVyUGF1c2VkT3JTdGFsbGVkKCkgY29uc3Q7CiAgICAgdm9p
ZCBjdXJyZW50VGltZUNoYW5nZWQoY29uc3QgTWVkaWFUaW1lJik7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVy
UHJveHkubWVzc2FnZXMuaW4KaW5kZXggMjJjM2IxNzMxMzZkZmQ5Y2QzN2NkMzg4YTY1YWMzZmM0
NjEwNTViNy4uNzczZDJiMmNhYzZiNGY3OTRhN2NhYTU0ZWQ0MDlkZGQzNmFjYjQ1NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJv
eHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90
ZU1lZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW4KQEAgLTEzMSw2ICsxMzEsOCBAQCBtZXNzYWdl
cyAtPiBSZW1vdGVNZWRpYVBsYXllclByb3h5IE5vdFJlZkNvdW50ZWQgewogCiAgICAgUGxheUF0
SG9zdFRpbWUoTW9ub3RvbmljVGltZSB0aW1lKQogICAgIFBhdXNlQXRIb3N0VGltZShNb25vdG9u
aWNUaW1lIHRpbWUpCisKKyAgICBTZXRBdWRpb1Nlc3Npb25DYXRlZ29yeShlbnVtOnVpbnQ4X3Qg
V2ViQ29yZTo6QXVkaW9TZXNzaW9uQ2F0ZWdvcnkgY2F0ZWdvcnkpCiB9CiAKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJj
ZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggM2QxMTZkYmM2YmNhYjQ3
NTU0ZWZjMjQ0YzI3MWIxYmNlYTNmNDFmMy4uMmE5MmVkNzVhMjY4ZmMzY2JjMWQzMjk1YmZkZmFk
Mzg3NWVjMjBkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNz
YWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBA
IC02ODYsNiArNjg2LDcgQEAgZGVmIGhlYWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAgICAgICdX
YWxsVGltZSc6IFsnPHd0Zi9XYWxsVGltZS5oPiddLAogICAgICAgICAnU3RyaW5nJzogWyc8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+J10sCiAgICAgICAgICdQQUw6OlNlc3Npb25JRCc6IFsnPHBhbC9T
ZXNzaW9uSUQuaD4nXSwKKyAgICAgICAgJ1dlYkNvcmU6OkF1ZGlvU2Vzc2lvbkNhdGVnb3J5Jzog
Wyc8V2ViQ29yZS9BdWRpb1Nlc3Npb24uaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkF1dG9wbGF5
RXZlbnRGbGFncyc6IFsnPFdlYkNvcmUvQXV0b3BsYXlFdmVudC5oPiddLAogICAgICAgICAnV2Vi
Q29yZTo6QnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2hEZWNpc2lvbic6IFsnPFdlYkNvcmUvRnJh
bWVMb2FkZXJUeXBlcy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6Q3JlYXRlTmV3R3JvdXBGb3JI
aWdobGlnaHQnOiBbJzxXZWJDb3JlL0FwcEhpZ2hsaWdodC5oPiddLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5LmNwcAppbmRleCBkOGQ3YzIxNThhNDQyMDM0YzA2MTMyNjMwYjY3MDRiMGY5N2Q1MTEx
Li4yOWI4MDE4NTgxYzBhYmFhNjk4MzA1YTkyMmI5M2ZhNDNkMDk2NzQ3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5LmNwcApAQCAtMTAyLDcgKzEwMiw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQg
YXVkaW9Vbml0V2lsbFN0YXJ0KCkgZmluYWwKICAgICB7Ci0gICAgICAgIEF1ZGlvU2Vzc2lvbjo6
c2hhcmVkU2Vzc2lvbigpLnNldENhdGVnb3J5KEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpQ
bGF5QW5kUmVjb3JkLCBSb3V0ZVNoYXJpbmdQb2xpY3k6OkRlZmF1bHQpOworICAgICAgICBBdWRp
b1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zZXRDYXRlZ29yeShBdWRpb1Nlc3Npb25DYXRlZ29y
eTo6UGxheUFuZFJlY29yZCwgUm91dGVTaGFyaW5nUG9saWN5OjpEZWZhdWx0KTsKICAgICB9CiAK
ICAgICB2b2lkIHN0YXJ0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01l
ZGlhL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvTWVkaWEvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5jcHAK
aW5kZXggNDI4NTFlNGIzOWFmOGIwMGY2Y2IzYmVlMWI2ZjllZGEyMTIyNDQ5Zi4uOTU5NjQwMGI1
ZDUwNDg3OGM5Yzg1MjQyMmRiZThhMGQwMTE2NWYxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvTWVkaWEvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvQXVkaW9TZXNzaW9uUm91dGluZ0Fy
Yml0cmF0b3JQcm94eS5jcHAKQEAgLTQ4LDcgKzQ4LDcgQEAgdm9pZCBBdWRpb1Nlc3Npb25Sb3V0
aW5nQXJiaXRyYXRvclByb3h5Ojpwcm9jZXNzRGlkVGVybWluYXRlKCkKICAgICBub3RJbXBsZW1l
bnRlZCgpOwogfQogCi12b2lkIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6OmJl
Z2luUm91dGluZ0FyYml0cmF0aW9uV2l0aENhdGVnb3J5KFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6
Q2F0ZWdvcnlUeXBlLCBBcmJpdHJhdGlvbkNhbGxiYWNrJiYgY2FsbGJhY2spCit2b2lkIEF1ZGlv
U2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6OmJlZ2luUm91dGluZ0FyYml0cmF0aW9uV2l0
aENhdGVnb3J5KFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbkNhdGVnb3J5LCBBcmJpdHJhdGlvbkNhbGxi
YWNrJiYgY2FsbGJhY2spCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICBjYWxsYmFjayhS
b3V0aW5nQXJiaXRyYXRpb25FcnJvcjo6RmFpbGVkLCBEZWZhdWx0Um91dGVDaGFuZ2VkOjpObyk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9BdWRpb1Nlc3Npb25S
b3V0aW5nQXJiaXRyYXRvclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9B
dWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5LmgKaW5kZXggNjljYTRhY2EwYTQ3MzNm
OGQ3ZTIyZGZhMTkzNTg0NTdiM2UwZDI3Yi4uMDg5OGI3ZDQyMDFjOTRhNTk4OGY0YWRjZTRjYWI3
ZWJmNWJmM2QwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvQXVk
aW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL01lZGlhL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkuaApAQCAtNDgs
NyArNDgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0
cmF0b3JQcm94eSgpOwogCiAgICAgdm9pZCBwcm9jZXNzRGlkVGVybWluYXRlKCk7Ci0gICAgV2Vi
Q29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUgY2F0ZWdvcnkoKSBjb25zdCB7IHJldHVy
biBtX2NhdGVnb3J5OyB9CisgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uQ2F0ZWdvcnkgY2F0ZWdv
cnkoKSBjb25zdCB7IHJldHVybiBtX2NhdGVnb3J5OyB9CiAKICAgICBzdGF0aWMgdWludDY0X3Qg
ZGVzdGluYXRpb25JZCgpIHsgcmV0dXJuIDE7IH0KIApAQCAtNzAsMTEgKzcwLDExIEBAIHByaXZh
dGU6CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRl
Y29kZXImKSBmaW5hbDsKIAogICAgIC8vIE1lc3NhZ2VzCi0gICAgdm9pZCBiZWdpblJvdXRpbmdB
cmJpdHJhdGlvbldpdGhDYXRlZ29yeShXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlw
ZSwgQXJiaXRyYXRpb25DYWxsYmFjayYmKTsKKyAgICB2b2lkIGJlZ2luUm91dGluZ0FyYml0cmF0
aW9uV2l0aENhdGVnb3J5KFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbkNhdGVnb3J5LCBBcmJpdHJhdGlv
bkNhbGxiYWNrJiYpOwogICAgIHZvaWQgZW5kUm91dGluZ0FyYml0cmF0aW9uKCk7CiAKICAgICBX
ZWJQcm9jZXNzUHJveHkmIG1fcHJvY2VzczsKLSAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNh
dGVnb3J5VHlwZSBtX2NhdGVnb3J5IHsgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5
cGU6Ok5vbmUgfTsKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb25DYXRlZ29yeSBtX2NhdGVnb3J5
IHsgV2ViQ29yZTo6QXVkaW9TZXNzaW9uQ2F0ZWdvcnk6Ok5vbmUgfTsKICAgICBBcmJpdHJhdGlv
blN0YXR1cyBtX2FyYml0cmF0aW9uU3RhdHVzIHsgQXJiaXRyYXRpb25TdGF0dXM6Ok5vbmUgfTsK
ICAgICBXYWxsVGltZSBtX2FyYml0cmF0aW9uVXBkYXRlVGltZTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQ
cm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL0F1ZGlvU2Vz
c2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkubWVzc2FnZXMuaW4KaW5kZXggNWNjOTk0MWQyYWJm
YTA3YmMzMTc4NjllNzgyMGQ3MWQ1MDE0MmZmYi4uYWFjYmQ0NDRhZTY0MjM4OTUwMDZjMjVlZjRh
ZmZlZTJhMGI4ZjkzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEv
QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclBy
b3h5Lm1lc3NhZ2VzLmluCkBAIC0yMiw3ICsyMiw3IEBACiAKICNpZiBFTkFCTEUoUk9VVElOR19B
UkJJVFJBVElPTikKIG1lc3NhZ2VzIC0+IEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJv
eHkgTm90UmVmQ291bnRlZCB7Ci0gICAgQmVnaW5Sb3V0aW5nQXJiaXRyYXRpb25XaXRoQ2F0ZWdv
cnkoZW51bTp1aW50OF90IFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIGNhdGVn
b3J5KSAtPiAoZW51bTp1aW50OF90IFdlYktpdDo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0
b3JQcm94eTo6Um91dGluZ0FyYml0cmF0aW9uRXJyb3IgZXJyb3IsIGVudW06Ym9vbCBXZWJLaXQ6
OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6OkRlZmF1bHRSb3V0ZUNoYW5nZWQg
ZGVmYXVsdFJvdXRlQ2hhbmdlZCkgQXN5bmMKKyAgICBCZWdpblJvdXRpbmdBcmJpdHJhdGlvbldp
dGhDYXRlZ29yeShlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6QXVkaW9TZXNzaW9uQ2F0ZWdvcnkgY2F0
ZWdvcnkpIC0+IChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRy
YXRvclByb3h5OjpSb3V0aW5nQXJiaXRyYXRpb25FcnJvciBlcnJvciwgZW51bTpib29sIFdlYktp
dDo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eTo6RGVmYXVsdFJvdXRlQ2hhbmdl
ZCBkZWZhdWx0Um91dGVDaGFuZ2VkKSBBc3luYwogICAgIEVuZFJvdXRpbmdBcmJpdHJhdGlvbigp
OwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9j
b2NvYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5Q29jb2EubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9jb2NvYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRv
clByb3h5Q29jb2EubW0KaW5kZXggMzgyMTJjYjUzN2E5YjM0YTc5ODM5NWFjODQ0NjUzNGE2N2Zj
NTU0MC4uMjI5M2MyOGJkZjg3MmNhYzlmZGQ4Y2MyNTlhYWM0NGMyZDkxMTcyNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvY29jb2EvQXVkaW9TZXNzaW9uUm91dGlu
Z0FyYml0cmF0b3JQcm94eUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01l
ZGlhL2NvY29hL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHlDb2NvYS5tbQpAQCAt
NTYsNyArNTYsNyBAQCB2b2lkIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6OnBy
b2Nlc3NEaWRUZXJtaW5hdGUoKQogICAgICAgICBlbmRSb3V0aW5nQXJiaXRyYXRpb24oKTsKIH0K
IAotdm9pZCBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5OjpiZWdpblJvdXRpbmdB
cmJpdHJhdGlvbldpdGhDYXRlZ29yeShXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlw
ZSBjYXRlZ29yeSwgQXJiaXRyYXRpb25DYWxsYmFjayYmIGNhbGxiYWNrKQordm9pZCBBdWRpb1Nl
c3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5OjpiZWdpblJvdXRpbmdBcmJpdHJhdGlvbldpdGhD
YXRlZ29yeShXZWJDb3JlOjpBdWRpb1Nlc3Npb25DYXRlZ29yeSBjYXRlZ29yeSwgQXJiaXRyYXRp
b25DYWxsYmFjayYmIGNhbGxiYWNrKQogewogICAgIG1fY2F0ZWdvcnkgPSBjYXRlZ29yeTsKICAg
ICBtX2FyYml0cmF0aW9uU3RhdHVzID0gQXJiaXRyYXRpb25TdGF0dXM6OlBlbmRpbmc7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9u
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24u
Y3BwCmluZGV4IDE3MTVkZTA1NDVlYjA4NjM2MjlkNGY2NmU4YjE5YWQyZjhmYWZiZDcuLmQ2ZWVk
MzA3YTAyOWZlYTBlOGU2ZmY0YzMyMTg4OTI3NDdhZTdhMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCkBAIC0yNDQs
NyArMjQ0LDcgQEAgdm9pZCBHUFVQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZVJlbW90ZUNv
bW1hbmQoUGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUMKIH0KIAogI2lmIEVOQUJMRShST1VU
SU5HX0FSQklUUkFUSU9OKQotdm9pZCBHUFVQcm9jZXNzQ29ubmVjdGlvbjo6YmVnaW5Sb3V0aW5n
QXJiaXRyYXRpb25XaXRoQ2F0ZWdvcnkoQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUgY2F0ZWdv
cnksIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudDo6QXJiaXRyYXRpb25DYWxs
YmFjayYmIGNhbGxiYWNrKQordm9pZCBHUFVQcm9jZXNzQ29ubmVjdGlvbjo6YmVnaW5Sb3V0aW5n
QXJiaXRyYXRpb25XaXRoQ2F0ZWdvcnkoQXVkaW9TZXNzaW9uQ2F0ZWdvcnkgY2F0ZWdvcnksIEF1
ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudDo6QXJiaXRyYXRpb25DYWxsYmFjayYm
IGNhbGxiYWNrKQogewogICAgIGlmIChhdXRvKiBhcmJpdHJhdG9yID0gV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkuc3VwcGxlbWVudDxBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvcj4oKSkgewog
ICAgICAgICBhcmJpdHJhdG9yLT5iZWdpblJvdXRpbmdBcmJpdHJhdGlvbldpdGhDYXRlZ29yeShj
YXRlZ29yeSwgV1RGTW92ZShjYWxsYmFjaykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5oCmluZGV4IDk1NzFmMWEyNWVlOWI1NmUx
OTA3NjljZmY5NGVmM2I5Y2E2ZDM0ZTcuLmI4MmNmMmFmNGQ1MTFhZTFlZjNjOTAzNDZkN2JjZDA1
ODI2NzU5ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJv
Y2Vzc0Nvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVBy
b2Nlc3NDb25uZWN0aW9uLmgKQEAgLTEyMiw3ICsxMjIsNyBAQCBwcml2YXRlOgogICAgIHZvaWQg
ZGlkUmVjZWl2ZVJlbW90ZUNvbW1hbmQoV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJl
bW90ZUNvbnRyb2xDb21tYW5kVHlwZSwgY29uc3QgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Np
b246OlJlbW90ZUNvbW1hbmRBcmd1bWVudCYpOwogCiAjaWYgRU5BQkxFKFJPVVRJTkdfQVJCSVRS
QVRJT04pCi0gICAgdm9pZCBiZWdpblJvdXRpbmdBcmJpdHJhdGlvbldpdGhDYXRlZ29yeShXZWJD
b3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSwgV2ViQ29yZTo6QXVkaW9TZXNzaW9uUm91
dGluZ0FyYml0cmF0aW9uQ2xpZW50OjpBcmJpdHJhdGlvbkNhbGxiYWNrJiYpOworICAgIHZvaWQg
YmVnaW5Sb3V0aW5nQXJiaXRyYXRpb25XaXRoQ2F0ZWdvcnkoV2ViQ29yZTo6QXVkaW9TZXNzaW9u
Q2F0ZWdvcnksIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudDo6
QXJiaXRyYXRpb25DYWxsYmFjayYmKTsKICAgICB2b2lkIGVuZFJvdXRpbmdBcmJpdHJhdGlvbigp
OwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BV
UHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCmluZGV4IDNkYTBlNjFmMGM4YWNh
N2I1N2JlMTA2YWI1YTk2ZDc4MWVhNDg2NjYuLjhiNzgzYTg4YzUyMjExMTljZWI3YjgzMzI0Njk1
NDRjMDZiYTFkMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BV
UHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgpAQCAtMjYsNyArMjYsNyBA
QCBtZXNzYWdlcyAtPiBHUFVQcm9jZXNzQ29ubmVjdGlvbiBXYW50c0Rpc3BhdGNoTWVzc2FnZSB7
CiAgICAgRGlkUmVjZWl2ZVJlbW90ZUNvbW1hbmQoZW51bTp1aW50OF90IFdlYkNvcmU6OlBsYXRm
b3JtTWVkaWFTZXNzaW9uOjpSZW1vdGVDb250cm9sQ29tbWFuZFR5cGUgdHlwZSwgc3RydWN0IFdl
YkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpSZW1vdGVDb21tYW5kQXJndW1lbnQgYXJndW1l
bnQpCiAKICNpZiBFTkFCTEUoUk9VVElOR19BUkJJVFJBVElPTikKLSAgICBCZWdpblJvdXRpbmdB
cmJpdHJhdGlvbldpdGhDYXRlZ29yeShlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6QXVkaW9TZXNzaW9u
OjpDYXRlZ29yeVR5cGUgY2F0ZWdvcnkpIC0+IChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpBdWRpb1Nl
c3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5OjpSb3V0aW5nQXJiaXRyYXRpb25FcnJvciBlcnJv
ciwgZW51bTpib29sIFdlYktpdDo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eTo6
RGVmYXVsdFJvdXRlQ2hhbmdlZCBkZWZhdWx0Um91dGVDaGFuZ2VkKSBBc3luYworICAgIEJlZ2lu
Um91dGluZ0FyYml0cmF0aW9uV2l0aENhdGVnb3J5KGVudW06dWludDhfdCBXZWJDb3JlOjpBdWRp
b1Nlc3Npb25DYXRlZ29yeSBjYXRlZ29yeSkgLT4gKGVudW06dWludDhfdCBXZWJLaXQ6OkF1ZGlv
U2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6OlJvdXRpbmdBcmJpdHJhdGlvbkVycm9yIGVy
cm9yLCBlbnVtOmJvb2wgV2ViS2l0OjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5
OjpEZWZhdWx0Um91dGVDaGFuZ2VkIGRlZmF1bHRSb3V0ZUNoYW5nZWQpIEFzeW5jCiAgICAgRW5k
Um91dGluZ0FyYml0cmF0aW9uKCk7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
LmNwcAppbmRleCBkZmUzNDA3MzBlMDYwZmY5ZjljZDQ2OGViMzYzZmM4OTE2MDJkZWFlLi5lMWMx
MmEyOWQwOGJlNTllYWRiMWEzNDE2OTQwYTYxZjcxMzk5Mzg3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZh
dGVSZW1vdGUuY3BwCkBAIC0xMzkzLDYgKzEzOTMsMTQgQEAgdm9pZCBNZWRpYVBsYXllclByaXZh
dGVSZW1vdGU6OmdldFJhd0Nvb2tpZXMoY29uc3QgVVJMJiB1cmwsIFdlYkNvcmU6Ok1lZGlhUGxh
eWUKIH0KICNlbmRpZgogCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0QXVkaW9T
ZXNzaW9uQ2F0ZWdvcnkoQXVkaW9TZXNzaW9uQ2F0ZWdvcnkgY2F0ZWdvcnkpCit7CisgICAgQVNT
RVJUKHN1cHBvcnRzU2V0QXVkaW9TZXNzaW9uQ2F0ZWdvcnkoKSk7CisgICAgaWYgKCFzdXBwb3J0
c1NldEF1ZGlvU2Vzc2lvbkNhdGVnb3J5KCkpCisgICAgICAgIHJldHVybjsKKyAgICBjb25uZWN0
aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6U2V0QXVkaW9TZXNz
aW9uQ2F0ZWdvcnkoY2F0ZWdvcnkpLCBtX2lkKTsKK30KKwogI2lmICFSRUxFQVNFX0xPR19ESVNB
QkxFRAogV1RGTG9nQ2hhbm5lbCYgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpsb2dDaGFubmVs
KCkgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oCmluZGV4IGU3MDRlNjlkZWJmMGVk
ZGVmMzY2MDI2MjJkMTI3M2FiMTAwMTk2NjguLjY4ZDI5ZmMzNTZkM2Q5NTJmY2RhN2Y3YWNlNGFj
MzMyM2Y3N2RhM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaApAQCAtMzk3LDYgKzM5Nyw4
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBwbGF5QXRIb3N0VGltZShjb25zdCBNb25vdG9uaWNUaW1l
JikgZmluYWw7CiAgICAgYm9vbCBwYXVzZUF0SG9zdFRpbWUoY29uc3QgTW9ub3RvbmljVGltZSYp
IGZpbmFsOwogCisgICAgYm9vbCBzdXBwb3J0c1NldEF1ZGlvU2Vzc2lvbkNhdGVnb3J5KCkgY29u
c3QgZmluYWwgeyByZXR1cm4gbV9jb25maWd1cmF0aW9uLnN1cHBvcnRzU2V0QXVkaW9TZXNzaW9u
Q2F0ZWdvcnk7IH0KKyAgICB2b2lkIHNldEF1ZGlvU2Vzc2lvbkNhdGVnb3J5KFdlYkNvcmU6OkF1
ZGlvU2Vzc2lvbkNhdGVnb3J5KSBmaW5hbDsKIAogICAgIFdlYWtQdHI8V2ViQ29yZTo6TWVkaWFQ
bGF5ZXI+IG1fcGxheWVyOwogICAgIFJlZjxXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2VM
b2FkZXI+IG1fbWVkaWFSZXNvdXJjZUxvYWRlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmNwcAppbmRleCBjZGE2
YzI3YzEwNDI2YzEwZDcwZTY5YmJkNTc3NDgzMTQxODdlNGJkLi5mZWE0NjQxMWQzNDkyYmMzY2Fm
N2VhMWFmZTg1MzA3MWExM2I4NzE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24uY3BwCkBAIC05MSw3ICs5MSw3
IEBAIFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24mIFJlbW90ZUF1ZGlvU2Vzc2lvbjo6
Y29uZmlndXJhdGlvbigpCiAgICAgcmV0dXJuICptX2NvbmZpZ3VyYXRpb247CiB9CiAKLXZvaWQg
UmVtb3RlQXVkaW9TZXNzaW9uOjpzZXRDYXRlZ29yeShDYXRlZ29yeVR5cGUgdHlwZSwgUm91dGVT
aGFyaW5nUG9saWN5IHBvbGljeSkKK3ZvaWQgUmVtb3RlQXVkaW9TZXNzaW9uOjpzZXRDYXRlZ29y
eShBdWRpb1Nlc3Npb25DYXRlZ29yeSB0eXBlLCBSb3V0ZVNoYXJpbmdQb2xpY3kgcG9saWN5KQog
ewogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGlmICh0eXBlID09IG1fY2F0ZWdvcnkgJiYgcG9s
aWN5ID09IG1fcm91dGVTaGFyaW5nUG9saWN5ICYmICFtX2lzUGxheWluZ1RvQmx1ZXRvb3RoT3Zl
cnJpZGVDaGFuZ2VkKQpAQCAtMTM5LDEyICsxMzksMTIgQEAgdm9pZCBSZW1vdGVBdWRpb1Nlc3Np
b246OnNldElzUGxheWluZ1RvQmx1ZXRvb3RoT3ZlcnJpZGUoc3RkOjpvcHRpb25hbDxib29sPiB2
YWwKICAgICBlbnN1cmVDb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3RlQXVkaW9TZXNz
aW9uUHJveHk6OlNldElzUGxheWluZ1RvQmx1ZXRvb3RoT3ZlcnJpZGUodmFsdWUpLCB7IH0pOwog
fQogCi1BdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBSZW1vdGVBdWRpb1Nlc3Npb246OmNhdGVn
b3J5KCkgY29uc3QKK0F1ZGlvU2Vzc2lvbkNhdGVnb3J5IFJlbW90ZUF1ZGlvU2Vzc2lvbjo6Y2F0
ZWdvcnkoKSBjb25zdAogewogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIHJldHVybiBtX2NhdGVn
b3J5OwogI2Vsc2UKLSAgICByZXR1cm4gQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6Ok5vbmU7
CisgICAgcmV0dXJuIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpOb25lOwogI2VuZGlmCiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9T
ZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlv
U2Vzc2lvbi5oCmluZGV4IDQ1ZjJmMjFmMjc4Y2VhNTQzZjcxZjIyMWJmZjNkMDJjOGZkZDE5YTUu
Ljc4YmE0ZjYzZDgzM2I1ZDI0ZGQ3ODgxZDViYzA3ODEwZmVjZDk0ZWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24u
aApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1
ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlIDxXZWJDb3Jl
L0F1ZGlvU2Vzc2lvbi5oPgorI2luY2x1ZGUgPHd0Zi9UeXBlQ2FzdHMuaD4KIAogbmFtZXNwYWNl
IElQQyB7CiBjbGFzcyBDb25uZWN0aW9uOwpAQCAtNjUsOCArNjYsOCBAQCBwcml2YXRlOgogICAg
IHZvaWQgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb25EaWRDbG9zZShHUFVQcm9jZXNzQ29ubmVjdGlvbiYp
IGZpbmFsOwogCiAgICAgLy8gQXVkaW9TZXNzaW9uCi0gICAgdm9pZCBzZXRDYXRlZ29yeShDYXRl
Z29yeVR5cGUsIFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeSkgZmluYWw7Ci0gICAgQ2F0ZWdv
cnlUeXBlIGNhdGVnb3J5KCkgY29uc3QgZmluYWw7CisgICAgdm9pZCBzZXRDYXRlZ29yeShXZWJD
b3JlOjpBdWRpb1Nlc3Npb25DYXRlZ29yeSwgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5KSBm
aW5hbDsKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb25DYXRlZ29yeSBjYXRlZ29yeSgpIGNvbnN0
IGZpbmFsOwogCiAgICAgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5IHJvdXRlU2hhcmluZ1Bv
bGljeSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fcm91dGVTaGFyaW5nUG9saWN5OyB9CiAgICAg
U3RyaW5nIHJvdXRpbmdDb250ZXh0VUlEKCkgY29uc3QgZmluYWwgeyByZXR1cm4gY29uZmlndXJh
dGlvbigpLnJvdXRpbmdDb250ZXh0VUlEOyB9CkBAIC05NCwxMSArOTUsMTIgQEAgcHJpdmF0ZToK
ICAgICBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKCk7CiAg
ICAgdm9pZCBpbml0aWFsaXplQ29uZmlndXJhdGlvbklmTmVjZXNzYXJ5KCk7CiAKKyAgICBLaW5k
IGtpbmQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBLaW5kOjpSZW1vdGU7IH0KIAogICAgIFdlYlBy
b2Nlc3MmIG1fcHJvY2VzczsKIAogICAgIFdlYWtIYXNoU2V0PENvbmZpZ3VyYXRpb25DaGFuZ2VP
YnNlcnZlcj4gbV9jb25maWd1cmF0aW9uQ2hhbmdlT2JzZXJ2ZXJzOwotICAgIENhdGVnb3J5VHlw
ZSBtX2NhdGVnb3J5IHsgQ2F0ZWdvcnlUeXBlOjpOb25lIH07CisgICAgV2ViQ29yZTo6QXVkaW9T
ZXNzaW9uQ2F0ZWdvcnkgbV9jYXRlZ29yeSB7IFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbkNhdGVnb3J5
OjpOb25lIH07CiAgICAgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5IG1fcm91dGVTaGFyaW5n
UG9saWN5IHsgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5OjpEZWZhdWx0IH07CiAgICAgYm9v
bCBtX2lzUGxheWluZ1RvQmx1ZXRvb3RoT3ZlcnJpZGVDaGFuZ2VkIHsgZmFsc2UgfTsKICAgICBz
dGQ6Om9wdGlvbmFsPFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24+IG1fY29uZmlndXJh
dGlvbjsKQEAgLTEwNyw0ICsxMDksOCBAQCBwcml2YXRlOgogCiB9CiAKK1NQRUNJQUxJWkVfVFlQ
RV9UUkFJVFNfQkVHSU4oV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb24pCisgICAgc3RhdGljIGJv
b2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbiYgc2Vzc2lvbikgeyByZXR1cm4g
c2Vzc2lvbi5raW5kKCkgPT0gV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpLaW5kOjpSZW1vdGU7IH0K
K1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRU5EKCkKKwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJh
dGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBs
YXllckNvbmZpZ3VyYXRpb24uaAppbmRleCA1N2E2MzNhZGRiN2JlNzRkZjc5N2QzNzczZjViY2Vj
Y2IxYTVhNGI3Li4zMzhjYTcxYTc4YWY1OGM3OWVhMjMyZGU5YjAwYzJjOWFiZDcxNzI1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxh
eWVyQ29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uLmgKQEAgLTQ0LDYgKzQ0LDcgQEAgc3Ry
dWN0IFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbiB7CiAgICAgYm9vbCBzdXBwb3J0c1Bh
dXNlQXRIb3N0VGltZSB7IGZhbHNlIH07CiAgICAgYm9vbCBjYW5QbGF5VG9XaXJlbGVzc1BsYXli
YWNrVGFyZ2V0IHsgZmFsc2UgfTsKICAgICBib29sIHNob3VsZElnbm9yZUludHJpbnNpY1NpemUg
eyBmYWxzZSB9OworICAgIGJvb2wgc3VwcG9ydHNTZXRBdWRpb1Nlc3Npb25DYXRlZ29yeSB7IGZh
bHNlIH07CiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgogICAgIHZvaWQgZW5jb2RlKEVu
Y29kZXImIGVuY29kZXIpIGNvbnN0CkBAIC01OCw2ICs1OSw3IEBAIHN0cnVjdCBSZW1vdGVNZWRp
YVBsYXllckNvbmZpZ3VyYXRpb24gewogICAgICAgICBlbmNvZGVyIDw8IHN1cHBvcnRzUGF1c2VB
dEhvc3RUaW1lOwogICAgICAgICBlbmNvZGVyIDw8IGNhblBsYXlUb1dpcmVsZXNzUGxheWJhY2tU
YXJnZXQ7CiAgICAgICAgIGVuY29kZXIgPDwgc2hvdWxkSWdub3JlSW50cmluc2ljU2l6ZTsKKyAg
ICAgICAgZW5jb2RlciA8PCBzdXBwb3J0c1NldEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OwogICAgIH0K
IAogICAgIHRlbXBsYXRlIDxjbGFzcyBEZWNvZGVyPgpAQCAtMTEzLDYgKzExNSwxMSBAQCBzdHJ1
Y3QgUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uIHsKICAgICAgICAgaWYgKCFzaG91bGRJ
Z25vcmVJbnRyaW5zaWNTaXplKQogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAor
ICAgICAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IHN1cHBvcnRzU2V0QXVkaW9TZXNzaW9uQ2F0ZWdv
cnk7CisgICAgICAgIGRlY29kZXIgPj4gc3VwcG9ydHNTZXRBdWRpb1Nlc3Npb25DYXRlZ29yeTsK
KyAgICAgICAgaWYgKCFzdXBwb3J0c1NldEF1ZGlvU2Vzc2lvbkNhdGVnb3J5KQorICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwogICAgICAgICByZXR1cm4ge3sKICAgICAgICAgICAg
IFdURk1vdmUoKmVuZ2luZURlc2NyaXB0aW9uKSwKICAgICAgICAgICAgICptYXhpbXVtRHVyYXRp
b25Ub0NhY2hlTWVkaWFUaW1lLApAQCAtMTI0LDYgKzEzMSw3IEBAIHN0cnVjdCBSZW1vdGVNZWRp
YVBsYXllckNvbmZpZ3VyYXRpb24gewogICAgICAgICAgICAgKnN1cHBvcnRzUGF1c2VBdEhvc3RU
aW1lLAogICAgICAgICAgICAgKmNhblBsYXlUb1dpcmVsZXNzUGxheWJhY2tUYXJnZXQsCiAgICAg
ICAgICAgICAqc2hvdWxkSWdub3JlSW50cmluc2ljU2l6ZSwKKyAgICAgICAgICAgICpzdXBwb3J0
c1NldEF1ZGlvU2Vzc2lvbkNhdGVnb3J5LAogICAgICAgICB9fTsKICAgICB9CiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9T
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAKaW5k
ZXggNTNjYjI2ZWY0OTkxYTUwZGUxYTg5NzQ4NWRkM2M2ZjdjZWUyYTAyNS4uZjM5ZDBjMjA4MTE3
ZTZmODQ2NGE5Njg2OTliZWFhMTQ2OGUwNzc4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCkBAIC0xNTMsNyArMTUzLDcgQEAg
cHJpdmF0ZToKICAgICAgICAgYXV0byBidWZmZXJTaXplID0gQXVkaW9TZXNzaW9uOjpzaGFyZWRT
ZXNzaW9uKCkuc2FtcGxlUmF0ZSgpIC8gNTA7CiAgICAgICAgIGlmIChBdWRpb1Nlc3Npb246OnNo
YXJlZFNlc3Npb24oKS5wcmVmZXJyZWRCdWZmZXJTaXplKCkgPiBidWZmZXJTaXplKQogICAgICAg
ICAgICAgQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2V0UHJlZmVycmVkQnVmZmVyU2l6
ZShidWZmZXJTaXplKTsKLSAgICAgICAgQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2V0
Q2F0ZWdvcnkoQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6OlBsYXlBbmRSZWNvcmQsIFJvdXRl
U2hhcmluZ1BvbGljeTo6RGVmYXVsdCk7CisgICAgICAgIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vz
c2lvbigpLnNldENhdGVnb3J5KEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpQbGF5QW5kUmVjb3JkLCBS
b3V0ZVNoYXJpbmdQb2xpY3k6OkRlZmF1bHQpOwogI2VuZGlmCiAgICAgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0
cmF0b3IuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL0F1ZGlvU2Vzc2lvblJv
dXRpbmdBcmJpdHJhdG9yLmNwcAppbmRleCA3ZWVkMzlkYjg3ZDViNWFhZTUxODU1ODllOWIxZmUy
MzgwYWFhOTIxLi4yOWE1YjU1MzU2MTlmMmZiNDgzMmFjMGU3ZmY0ZTJhZDg1YmEwOTU1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvQXVkaW9TZXNzaW9uUm91dGlu
Z0FyYml0cmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9BdWRp
b1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvci5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgY29uc3QgY2hh
ciogQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3I6OnN1cHBsZW1lbnROYW1lKCkKICAgICBy
ZXR1cm4gIkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yIjsKIH0KIAotdm9pZCBBdWRpb1Nl
c3Npb25Sb3V0aW5nQXJiaXRyYXRvcjo6YmVnaW5Sb3V0aW5nQXJiaXRyYXRpb25XaXRoQ2F0ZWdv
cnkoQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUgY2F0ZWdvcnksIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoUm91dGluZ0FyYml0cmF0aW9uRXJyb3IsIERlZmF1bHRSb3V0ZUNoYW5nZWQpPiYmIGNh
bGxiYWNrKQordm9pZCBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvcjo6YmVnaW5Sb3V0aW5n
QXJiaXRyYXRpb25XaXRoQ2F0ZWdvcnkoQXVkaW9TZXNzaW9uQ2F0ZWdvcnkgY2F0ZWdvcnksIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoUm91dGluZ0FyYml0cmF0aW9uRXJyb3IsIERlZmF1bHRSb3V0
ZUNoYW5nZWQpPiYmIGNhbGxiYWNrKQogewogICAgIG1fcHJvY2Vzcy5wYXJlbnRQcm9jZXNzQ29u
bmVjdGlvbigpLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OkF1ZGlvU2Vzc2lvblJvdXRp
bmdBcmJpdHJhdG9yUHJveHk6OkJlZ2luUm91dGluZ0FyYml0cmF0aW9uV2l0aENhdGVnb3J5KGNh
dGVnb3J5KSwgV1RGTW92ZShjYWxsYmFjayksIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9y
UHJveHk6OmRlc3RpbmF0aW9uSWQoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3IuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvci5oCmlu
ZGV4IGYxZDU3MjMyZmFkMjkzZmI4YTFkZTdlMGU0MGIyNDBmMjBjY2FhMzkuLmI3ZjcyOTNkMzRj
OWRlZTI0MTJiMDRlZmVjOTBlODVhM2JmYjE4NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9jb2NvYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvci5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRv
ci5oCkBAIC00OSw3ICs0OSw3IEBAIHB1YmxpYzoKICAgICB1c2luZyBXZWFrVmFsdWVUeXBlID0g
V2ViQ29yZTo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0aW9uQ2xpZW50OwogCiAgICAgLy8g
QXVkaW9TZXNzaW9uUm91dGluZ0Ficml0cmF0b3IKLSAgICB2b2lkIGJlZ2luUm91dGluZ0FyYml0
cmF0aW9uV2l0aENhdGVnb3J5KFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFJvdXRpbmdBcmJpdHJhdGlvbkVycm9yLCBEZWZhdWx0Um91
dGVDaGFuZ2VkKT4mJikgZmluYWw7CisgICAgdm9pZCBiZWdpblJvdXRpbmdBcmJpdHJhdGlvbldp
dGhDYXRlZ29yeShXZWJDb3JlOjpBdWRpb1Nlc3Npb25DYXRlZ29yeSwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChSb3V0aW5nQXJiaXRyYXRpb25FcnJvciwgRGVmYXVsdFJvdXRlQ2hhbmdlZCk+JiYp
IGZpbmFsOwogICAgIHZvaWQgbGVhdmVSb3V0aW5nQWJyaXRyYXRpb24oKSBmaW5hbDsKIAogcHJp
dmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2ViUGx1
Z2luQ29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2ViUGx1
Z2luQ29udHJvbGxlci5tbQppbmRleCA5NDhhZjMyMTkxZDBhOWFhNWMxZDY2YTE3NzU4MGYyMzA2
OTcyZmNiLi4yMDZjYzc2MzY0YjJmOGVkN2I3ODc3ZDA0YmJkYzM4ZDAwYzE5MjU4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL1dlYlBsdWdpbkNvbnRyb2xsZXIu
bW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJQbHVnaW5Db250cm9s
bGVyLm1tCkBAIC0xMTQsNyArMTE0LDcgQEAgc3RhdGljIHZvaWQgaW5pdGlhbGl6ZUF1ZGlvU2Vz
c2lvbigpCiAgICAgaWYgKCFXZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNNb2JpbGVTYWZhcmko
KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpzaGFyZWRT
ZXNzaW9uKCkuc2V0Q2F0ZWdvcnkoV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6
Ok1lZGlhUGxheWJhY2ssIFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeTo6RGVmYXVsdCk7Cisg
ICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2V0Q2F0ZWdvcnkoV2Vi
Q29yZTo6QXVkaW9TZXNzaW9uQ2F0ZWdvcnk6Ok1lZGlhUGxheWJhY2ssIFdlYkNvcmU6OlJvdXRl
U2hhcmluZ1BvbGljeTo6RGVmYXVsdCk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbSBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KaW5kZXggYzNlOGUyYzFkMzRm
NGM1NzVhNGU3YzBlMGQ0Y2JmODAxZWIxZGVjMy4uMTIyMGMwZjMyZWU0YWJkNmQ3MDE5YjBmNjk0
YjcyMjZmYTM4Mzg5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJQcmVmZXJlbmNlcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYlByZWZlcmVuY2VzLm1tCkBAIC00MjMsNyArNDIzLDcgQEAgKyAodm9pZClpbml0aWFsaXpl
CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgICAgICBATk8sIFdlYktpdFN0b3JhZ2VU
cmFja2VyRW5hYmxlZFByZWZlcmVuY2VLZXksCi0gICAgICAgIEAoc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpOb25lKSksIFdlYktpdEF1ZGlvU2Vzc2lv
bkNhdGVnb3J5T3ZlcnJpZGUsCisgICAgICAgIEAoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEF1ZGlv
U2Vzc2lvbkNhdGVnb3J5OjpOb25lKSksIFdlYktpdEF1ZGlvU2Vzc2lvbkNhdGVnb3J5T3ZlcnJp
ZGUsCiAKICAgICAgICAgLy8gUGVyLU9yaWdpbiBRdW90YSBvbiBpT1MgaXMgMjVNQi4gV2hlbiB0
aGUgcXVvdGEgaXMgcmVhY2hlZCBmb3IgYSBwYXJ0aWN1bGFyIG9yaWdpbgogICAgICAgICAvLyB0
aGUgcXVvdGEgZm9yIHRoYXQgb3JpZ2luIGNhbiBiZSBpbmNyZWFzZWQuIFNlZSBhbHNvIHdlYlZp
ZXc6ZXhjZWVkZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGFGb3JTZWN1cml0eU9yaWdpbjp0
b3RhbFNwYWNlTmVlZGVkIGluIFdlYlVJL1dlYlVJRGVsZWdhdGUubS4KQEAgLTIwNjYsMzAgKzIw
NjYsMzAgQEAgLSAodW5zaWduZWQpYXVkaW9TZXNzaW9uQ2F0ZWdvcnlPdmVycmlkZQogCiAtICh2
b2lkKXNldEF1ZGlvU2Vzc2lvbkNhdGVnb3J5T3ZlcnJpZGU6KHVuc2lnbmVkKW92ZXJyaWRlCiB7
Ci0gICAgaWYgKG92ZXJyaWRlID4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEF1ZGlvU2Vzc2lvbjo6
Q2F0ZWdvcnlUeXBlOjpBdWRpb1Byb2Nlc3NpbmcpKSB7CisgICAgaWYgKG92ZXJyaWRlID4gc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpBdWRpb1Byb2Nlc3Npbmcp
KSB7CiAgICAgICAgIC8vIENsaWVudHMgYXJlIHBhc3NpbmcgdXMgT1NUeXBlcyB2YWx1ZXMgZnJv
bSBBdWRpb1Rvb2xib3gvQXVkaW9TZXNzaW9uLmgsCi0gICAgICAgIC8vIHdoaWNoIG5lZWQgdG8g
YmUgdHJhbnNsYXRlZCBpbnRvIEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOgorICAgICAgICAv
LyB3aGljaCBuZWVkIHRvIGJlIHRyYW5zbGF0ZWQgaW50byBBdWRpb1Nlc3Npb25DYXRlZ29yeToK
ICAgICAgICAgc3dpdGNoIChvdmVycmlkZSkgewogICAgICAgICBjYXNlIFdlYktpdEF1ZGlvU2Vz
c2lvbkNhdGVnb3J5QW1iaWVudFNvdW5kOgotICAgICAgICAgICAgb3ZlcnJpZGUgPSBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6OkFtYmllbnRTb3VuZCk7
CisgICAgICAgICAgICBvdmVycmlkZSA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihBdWRpb1Nlc3Np
b25DYXRlZ29yeTo6QW1iaWVudFNvdW5kKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBj
YXNlIFdlYktpdEF1ZGlvU2Vzc2lvbkNhdGVnb3J5U29sb0FtYmllbnRTb3VuZDoKLSAgICAgICAg
ICAgIG92ZXJyaWRlID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdv
cnlUeXBlOjpTb2xvQW1iaWVudFNvdW5kKTsKKyAgICAgICAgICAgIG92ZXJyaWRlID0gc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpTb2xvQW1iaWVudFNvdW5kKTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFdlYktpdEF1ZGlvU2Vzc2lvbkNhdGVn
b3J5TWVkaWFQbGF5YmFjazoKLSAgICAgICAgICAgIG92ZXJyaWRlID0gc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpNZWRpYVBsYXliYWNrKTsKKyAgICAg
ICAgICAgIG92ZXJyaWRlID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEF1ZGlvU2Vzc2lvbkNhdGVn
b3J5OjpNZWRpYVBsYXliYWNrKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFdl
YktpdEF1ZGlvU2Vzc2lvbkNhdGVnb3J5UmVjb3JkQXVkaW86Ci0gICAgICAgICAgICBvdmVycmlk
ZSA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6UmVj
b3JkQXVkaW8pOworICAgICAgICAgICAgb3ZlcnJpZGUgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
QXVkaW9TZXNzaW9uQ2F0ZWdvcnk6OlJlY29yZEF1ZGlvKTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICBjYXNlIFdlYktpdEF1ZGlvU2Vzc2lvbkNhdGVnb3J5UGxheUFuZFJlY29yZDoKLSAg
ICAgICAgICAgIG92ZXJyaWRlID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEF1ZGlvU2Vzc2lvbjo6
Q2F0ZWdvcnlUeXBlOjpQbGF5QW5kUmVjb3JkKTsKKyAgICAgICAgICAgIG92ZXJyaWRlID0gc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpQbGF5QW5kUmVjb3JkKTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFdlYktpdEF1ZGlvU2Vzc2lvbkNhdGVn
b3J5QXVkaW9Qcm9jZXNzaW5nOgotICAgICAgICAgICAgb3ZlcnJpZGUgPSBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6OkF1ZGlvUHJvY2Vzc2luZyk7Cisg
ICAgICAgICAgICBvdmVycmlkZSA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihBdWRpb1Nlc3Npb25D
YXRlZ29yeTo6QXVkaW9Qcm9jZXNzaW5nKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBk
ZWZhdWx0OgotICAgICAgICAgICAgb3ZlcnJpZGUgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oQXVk
aW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6Ok5vbmUpOworICAgICAgICAgICAgb3ZlcnJpZGUgPSBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6Ok5vbmUpOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9Cg==
</data>
<flag name="commit-queue"
          id="462653"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439084</attachid>
            <date>2021-09-23 12:54:57 -0700</date>
            <delta_ts>2021-09-23 14:11:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230699-20210923125456.patch</filename>
            <type>text/plain</type>
            <size>93138</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyNDIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDA1ZTliYWZjZjIzYjUwNmEwMzEzNmVm
OTY3N2NkYWUxMDU4ODhjZjUuLjk2NTc5ZTAxYWQ5MmJmOTg3ZTA3OTkyYTA5NGE2NDhiN2U2MGUx
OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjEtMDktMjMgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gQWRkIGEgTXVsdGlwbGUgQVZBdWRpb1Nlc3Np
b24gRXhwZXJpbWVudGFsIEZlYXR1cmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzMDY5OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVy
aW1lbnRhbC55YW1sOgorCiAyMDIxLTA5LTE3ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUu
Y29tPgogCiAgICAgICAgIFtpT1NdIEVuYWJsZSBNU0UgaW4gV0tXZWJWaWV3cyBieSBkZWZhdWx0
IG9uIGlQYWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3OTdlNzViM2YwY2NjYmRkNDQ5OTZhYWJiYTE0MDAzNzY4
NjBlNjgzLi4xYTkzY2JmOThiM2Q5Y2FhZTYyNTEyMDc5MDRhYmNkZGJjYmVkODNjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsOTAgQEAKKzIwMjEtMDktMjMgIEplciBOb2JsZSAgPGplci5ub2JsZUBh
cHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gQWRkIGEgTXVsdGlwbGUgQVZBdWRpb1Nlc3Npb24g
RXhwZXJpbWVudGFsIEZlYXR1cmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzMDY5OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZCBhbiBleHBlcmltZW50YWwgZmVhdHVyZSB3aGVyZSwgaW5zdGVhZCBv
ZiB1c2luZyBqdXN0IG9uZSwgc2hhcmVkIEFWQXVkaW9TZXNzaW9uIGFuZAorICAgICAgICByZS1j
b25maWd1cmluZyB0aGF0IHNlc3Npb24gYWNjb3JkaW5nIHRvIHRoZSB0eXBlcyBvZiBQbGF0Zm9y
bU1lZGlhU2Vzc2lvbiBpbiB1c2UsIGVhY2gKKyAgICAgICAgUGxhdGZvcm1NZWRpYVNlc3Npb24g
d2lsbCByZWNlaXZlIGEgcHJlLWNvbmZpZ3VyZWQgQVZBdWRpb1Nlc3Npb24gKGlmIHRoYXQgc2Vz
c2lvbiBzdGF0ZXMKKyAgICAgICAgaXQgY2FuIGRvIHNvKS4KKworICAgICAgICBUaGlzIHdvdWxk
IG1lYW4sIGZvciBleGFtcGxlLCBhbiBhdWRpYmxlIDxhdWRpbz4gb3IgPHZpZGVvPiBlbGVtZW50
IHdvdWxkIGdldCBhIGRpZmZlcmVudAorICAgICAgICBBVkF1ZGlvU2Vzc2lvbiB0aGFuIGEgc2ls
ZW50IG9yIG11dGVkIDxhdWRpbz4gb3IgPHZpZGVvPiBlbGVtZW50LiBXaGVuIGFuIGluYXVkaWJs
ZSA8YXVkaW8+CisgICAgICAgIG9yIDx2aWRlbz4gZWxlbWVudCBiZWdpbnMgcGxheWJhY2ssIGFj
dGl2YXRpbmcgaXRzIEFWQXVkaW9TZXNzaW9uIHNob3VsZCBubyBsb25nZXIgY2F1c2UgYW4KKyAg
ICAgICAgaW50ZXJydXB0aW9uIHRvIGJlIGlzc3VlZCBhZ2FpbnN0IG90aGVyIHBsYXlpbmcgc3lz
dGVtIGF1ZGlvLCBhbW9uZyBvdGhlciBwb3RlbnRpYWwKKyAgICAgICAgYmVuZWZpdHMuCisKKyAg
ICAgICAgRHJpdmUtYnkgZml4OiBSZW5hbWUgZW51bSBBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlw
ZSAtPiBBdWRpb1Nlc3Npb25DYXRlZ29yeSwgYWxsb3dpbmcgdGhpcworICAgICAgICBlbnVtZXJh
dGlvbiB0byBiZSBmb3J3YXJkLWRlY2xhcmVkLCByYXRoZXIgdGhhbiByZXF1aXJpbmcgY2xpZW50
cyB0byBpbmNsdWRlIEF1ZGlvU2Vzc2lvbi5oLgorCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnN1cHBvcnRz
U2V0QXVkaW9TZXNzaW9uQ2F0ZWdvcnkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1l
ZGlhRWxlbWVudDo6c2V0QXVkaW9TZXNzaW9uQ2F0ZWdvcnkpOgorICAgICAgICAqIGh0bWwvSFRN
TE1lZGlhRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5oOgor
ICAgICAgICAqIHBhZ2UvRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkRlcHJlY2F0ZWRHbG9iYWxTZXR0aW5nczo6c2V0QXVkaW9TZXNzaW9uQ2F0ZWdvcnlP
dmVycmlkZSk6CisgICAgICAgICogcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNldE11bHRpcGxlQXVkaW9T
ZXNzaW9uc0VuYWJsZWQpOgorICAgICAgICAqIHBhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5o
OgorICAgICAgICAoV2ViQ29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6bXVsdGlwbGVBdWRp
b1Nlc3Npb25zRW5hYmxlZCBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vQXVkaW9T
ZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnkp
OgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpzZXRDYXRlZ29yeU92ZXJyaWRlKToK
KyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Y2F0ZWdvcnlPdmVycmlkZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Nlc3Npb246OmNhdGVnb3J5IGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OmNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uaDoKKyAgICAgICAgKFdURjo6TG9nQXJndW1lbnQ8V2Vi
Q29yZTo6QXVkaW9TZXNzaW9uQ2F0ZWdvcnk+Ojp0b1N0cmluZyk6CisgICAgICAgIChXVEY6Okxv
Z0FyZ3VtZW50PFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlPjo6dG9TdHJpbmcp
OiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpzdXBwb3J0c1Nl
dEF1ZGlvU2Vzc2lvbkNhdGVnb3J5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3Jt
TWVkaWFTZXNzaW9uOjpzZXRBdWRpb1Nlc3Npb25DYXRlZ29yeSk6CisgICAgICAgICogcGxhdGZv
cm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRm
b3JtTWVkaWFTZXNzaW9uQ2xpZW50OjpzdXBwb3J0c1NldEF1ZGlvU2Vzc2lvbkNhdGVnb3J5IGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uQ2xpZW50OjpzZXRB
dWRpb1Nlc3Npb25DYXRlZ29yeSk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vY29jb2EvTWVk
aWFTZXNzaW9uTWFuYWdlckNvY29hLmg6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vY29jb2Ev
TWVkaWFTZXNzaW9uTWFuYWdlckNvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNz
aW9uTWFuYWdlckNvY29hOjpzZXRNdWx0aXBsZUF1ZGlvU2Vzc2lvbnNFbmFibGVkKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYTo6bXVsdGlwbGVBdWRpb1Nlc3Np
b25zRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6
OnVwZGF0ZVNlc3Npb25TdGF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlv
U2Vzc2lvbklPUy5oOgorICAgICAgICAoaXNUeXBlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRp
by9pb3MvQXVkaW9TZXNzaW9uSU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y29uZmlndXJlQVZB
dWRpb1Nlc3Npb25XaXRoQ2F0ZWdvcnlBbmRQb2xpY3kpOgorICAgICAgICAoV2ViQ29yZTo6QXVk
aW9TZXNzaW9uSU9TOjpzZXRDYXRlZ29yeSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Nlc3Np
b25JT1M6OmNhdGVnb3J5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbklP
Uzo6YXVkaW9TZXNzaW9uRm9yQ2F0ZWdvcnkpOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL21h
Yy9BdWRpb1Nlc3Npb25NYWMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9T
ZXNzaW9uTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TZXNzaW9uTWFjOjpzZXRDYXRl
Z29yeSk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vbWFjL1NoYXJlZFJvdXRpbmdBcmJpdHJh
dG9yLmg6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vbWFjL1NoYXJlZFJvdXRpbmdBcmJpdHJh
dG9yLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2hhcmVkUm91dGluZ0FyYml0cmF0b3I6OmJlZ2lu
Um91dGluZ0FyYml0cmF0aW9uRm9yVG9rZW4pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpzdXBwb3J0
c1NldEF1ZGlvU2Vzc2lvbkNhdGVnb3J5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyOjpzZXRBdWRpb1Nlc3Npb25DYXRlZ29yeSk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBs
YXllclByaXZhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUludGVy
ZmFjZTo6c3VwcG9ydHNTZXRBdWRpb1Nlc3Npb25DYXRlZ29yeSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U6OnNldEF1ZGlvU2Vzc2lvbkNhdGVn
b3J5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akM6OnN1cHBvcnRzU2V0QXVkaW9TZXNzaW9uQ2F0ZWdvcnkgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c2V0QXVkaW9TZXNzaW9u
Q2F0ZWdvcnkpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U291cmNlQVZGT2JqQzo6c3VwcG9ydHNTZXRBdWRpb1Nlc3Npb25DYXRlZ29yeSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNl
dEF1ZGlvU2Vzc2lvbkNhdGVnb3J5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvQmFzZUF1ZGlvU2hhcmVkVW5pdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCYXNlQXVkaW9T
aGFyZWRVbml0OjpzdGFydFVuaXQpOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0
aW1lQXVkaW9Tb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lQXVkaW9T
b3VyY2U6OnN0YXJ0UHJvZHVjaW5nRGF0YSk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjphdWRpb1Nlc3Npb25DYXRlZ29yeSBj
b25zdCk6CisKIDIwMjEtMDktMTcgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAK
ICAgICAgICAgW0NvY29hXSBNYWtlIEFWU2FtcGxlQnVmZmVyVmlkZW9PdXRwdXQgc3VwcG9ydCBh
biBFeHBlcmltZW50YWwgRmVhdHVyZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXggZDgwZDlmOWNkMzJi
N2ViYmZjMjVkYTM0NDFiYzhjZWQ1NzhiNzQ4ZC4uMDQ2ODRkZTNmMTc4ODM1YWQyZjYwZWNhYWNh
NGQ1ZWQwODY1YjEzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEt
MDktMjMgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10g
QWRkIGEgTXVsdGlwbGUgQVZBdWRpb1Nlc3Npb24gRXhwZXJpbWVudGFsIEZlYXR1cmUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDY5OQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERlY2xhcmUgQHByb3Rv
Y29sIEFWQXVkaW9TZXNzaW9uUGFydGljaXBhbnQuCisKKyAgICAgICAgKiBwYWwvc3BpL2NvY29h
L0FWRm91bmRhdGlvblNQSS5oOgorCiAyMDIxLTA5LTE3ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVA
YXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0gTWFrZSBBVlNhbXBsZUJ1ZmZlclZpZGVvT3V0
cHV0IHN1cHBvcnQgYW4gRXhwZXJpbWVudGFsIEZlYXR1cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggOWJmNTcwNDIz
MWIzZjRmNjRiMTc2YzA5ODU5MGU1MmIxMjc2MDg2Yi4uZDAzZGMyOGUwN2MwZjc0MjExMzdjNTZh
MWM5MTdmODVjNWRiM2VmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1OCBAQAorMjAyMS0wOS0yMyAg
SmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBBZGQgYSBN
dWx0aXBsZSBBVkF1ZGlvU2Vzc2lvbiBFeHBlcmltZW50YWwgRmVhdHVyZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwNjk5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuYW1lIGVudW0gQXVkaW9TZXNz
aW9uOjpDYXRlZ29yeVR5cGUgLT4gQXVkaW9TZXNzaW9uQ2F0ZWdvcnkuCisKKyAgICAgICAgKiBH
UFVQcm9jZXNzL21hYy9Mb2NhbEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TG9jYWxBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvcjo6YmVnaW5S
b3V0aW5nQXJiaXRyYXRpb25XaXRoQ2F0ZWdvcnkpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWFj
L0xvY2FsQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3IuaDoKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OnNldENhdGVnb3J5KToKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUF1ZGlvU2Vzc2lvblByb3h5OjpjYXRlZ29yeSBjb25zdCk6CisgICAgICAgICogR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAg
KiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OmNhdGVnb3J5Q2FuTWl4V2l0aE90aGVycyk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6dXBkYXRlQ2F0ZWdvcnkpOgorICAg
ICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OmdldENvbmZpZ3VyYXRpb24pOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpzZXRBdWRpb1Nlc3Npb25D
YXRlZ29yeSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclBy
b3h5Lmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5
Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAg
ICAgICAoaGVhZGVyc19mb3JfdHlwZSk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9NZWRpYS9B
dWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eTo6YmVnaW5Sb3V0aW5nQXJiaXRyYXRp
b25XaXRoQ2F0ZWdvcnkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9NZWRpYS9BdWRpb1Nlc3Npb25S
b3V0aW5nQXJiaXRyYXRvclByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OkF1ZGlvU2Vzc2lvblJv
dXRpbmdBcmJpdHJhdG9yUHJveHk6OmNhdGVnb3J5IGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nl
c3MvTWVkaWEvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5tZXNzYWdlcy5pbjoK
KyAgICAgICAgKiBVSVByb2Nlc3MvTWVkaWEvY29jb2EvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0
cmF0b3JQcm94eUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpBdWRpb1Nlc3Npb25Sb3V0aW5n
QXJiaXRyYXRvclByb3h5OjpiZWdpblJvdXRpbmdBcmJpdHJhdGlvbldpdGhDYXRlZ29yeSk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOgorICAgICAg
ICAoV2ViS2l0OjpHUFVQcm9jZXNzQ29ubmVjdGlvbjo6YmVnaW5Sb3V0aW5nQXJiaXRyYXRpb25X
aXRoQ2F0ZWdvcnkpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0
aW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24ubWVz
c2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
OjpzZXRBdWRpb1Nlc3Npb25DYXRlZ29yeSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVk
aW9TZXNzaW9uOjpzZXRDYXRlZ29yeSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vz
c2lvbjo6Y2F0ZWdvcnkgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1Jl
bW90ZUF1ZGlvU2Vzc2lvbi5oOgorICAgICAgICAoaXNUeXBlKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uOjplbmNvZGUgY29uc3QpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb246OmRlY29kZSk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlci5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9BdWRpb1Nl
c3Npb25Sb3V0aW5nQXJiaXRyYXRvci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkF1ZGlvU2Vzc2lv
blJvdXRpbmdBcmJpdHJhdG9yOjpiZWdpblJvdXRpbmdBcmJpdHJhdGlvbldpdGhDYXRlZ29yeSk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRv
ci5oOgorCiAyMDIxLTA5LTE3ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAg
ICAgICAgIFtpT1NdIEVuYWJsZSBNU0UgaW4gV0tXZWJWaWV3cyBieSBkZWZhdWx0IG9uIGlQYWQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCBlM2I0OTNmZGE4NzhhNzlkYWNjYmYzMTUz
NTc0ZWI4MjYzNjFmMjE5Li5iNmY1MjRmOGVmZGM2NDM5YzczODg1M2UxYmJkMmQ5NDVmNzY5ODY3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjEtMDkt
MjMgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gQWRk
IGEgTXVsdGlwbGUgQVZBdWRpb1Nlc3Npb24gRXhwZXJpbWVudGFsIEZlYXR1cmUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDY5OQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFtZSBlbnVtIEF1ZGlv
U2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIC0+IEF1ZGlvU2Vzc2lvbkNhdGVnb3J5LgorCisgICAgICAg
ICogUGx1Z2lucy9XZWJQbHVnaW5Db250cm9sbGVyLm1tOgorICAgICAgICAoaW5pdGlhbGl6ZUF1
ZGlvU2Vzc2lvbik6CisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbToKKyAgICAg
ICAgKCtbV2ViUHJlZmVyZW5jZXMgaW5pdGlhbGl6ZV0pOgorICAgICAgICAoLVtXZWJQcmVmZXJl
bmNlcyBzZXRBdWRpb1Nlc3Npb25DYXRlZ29yeU92ZXJyaWRlOl0pOgorCiAyMDIxLTA5LTE0ICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgW0hhcmRlbmluZ10gVmFs
aWRhdGUgSURCVmFsdWUncyBibG9iIHBhdGhzIGluIFdlYklEQlNlcnZlcjo6cHV0T3JBZGQoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2Vz
RXhwZXJpbWVudGFsLnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJl
ZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAppbmRleCA5MDVjYmMyYmRmNDZlMmY0NWM0MGQ4ZjY1
Y2RmNTY2MTNmMjIzMWUxLi4yNjdmY2M3YmIwNTFjMGZjZWRjMzc4Y2MwODRiZTY5MGI4NGMwYjE0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5j
ZXNFeHBlcmltZW50YWwueWFtbAorKysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMv
V2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbApAQCAtODI5LDYgKzgyOSwyMCBAQCBNb2Rl
bEVsZW1lbnRFbmFibGVkOgogICAgIFdlYkNvcmU6CiAgICAgICBkZWZhdWx0OiBmYWxzZQogCitN
dWx0aXBsZUF1ZGlvU2Vzc2lvbnNFbmFibGVkOgorICB0eXBlOiBib29sCisgIGh1bWFuUmVhZGFi
bGVOYW1lOiAiTXVsdGlwbGUgQXVkaW9TZXNzaW9uIEV4cGVyaW1lbnQiCisgIGh1bWFuUmVhZGFi
bGVEZXNjcmlwdGlvbjogIk11bHRpcGxlIEF1ZGlvU2Vzc2lvbiBFeHBlcmltZW50IgorICBjb25k
aXRpb246IFVTRShBVURJT19TRVNTSU9OKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQorICB3ZWJj
b3JlQmluZGluZzogUnVudGltZUVuYWJsZWRGZWF0dXJlcworICBkZWZhdWx0VmFsdWU6CisgICAg
V2ViS2l0TGVnYWN5OgorICAgICAgZGVmYXVsdDogZmFsc2UKKyAgICBXZWJLaXQ6CisgICAgICBk
ZWZhdWx0OiBmYWxzZQorICAgIFdlYkNvcmU6CisgICAgICBkZWZhdWx0OiBmYWxzZQorCiBPcHVz
RGVjb2RlckVuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgaHVtYW5SZWFkYWJsZU5hbWU6ICJPcHVz
IGF1ZGlvIGRlY29kZXIiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9j
b2NvYS9BVkZvdW5kYXRpb25TUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29h
L0FWRm91bmRhdGlvblNQSS5oCmluZGV4IGNiMWVkMTFmZGU3Nzk2ZTRkYjQ2OWRlMWY4YTIwOWI3
NGZkNjM3MWQuLjFhZTI5ZGQyODBhZmFlZTZmMGE5NmUyYzg5NzEzMDhhOWVhMWRmNjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0FWRm91bmRhdGlvblNQSS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0FWRm91bmRhdGlvblNQSS5o
CkBAIC0zMzgsMTEgKzMzOCw2IEBAIE5TX0FTU1VNRV9OT05OVUxMX0VORAogCiAjaWYgX19oYXNf
aW5jbHVkZSg8QVZGb3VuZGF0aW9uL0FWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlci5oPikKICNp
bXBvcnQgPEFWRm91bmRhdGlvbi9BVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXIuaD4KLU5TX0FT
U1VNRV9OT05OVUxMX0JFR0lOCi1AaW50ZXJmYWNlIEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJl
ciAoQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyV2ViS2l0T25seSkKLS0gKHZvaWQpc2V0SXNV
bmFjY29tcGFuaWVkQnlWaXN1YWxzOihCT09MKWF1ZGlvT25seSBTUElfQVZBSUxBQkxFKG1hY29z
KDEyLjApKSBBUElfVU5BVkFJTEFCTEUoaW9zLCB0dm9zLCB3YXRjaG9zKTsKLUBlbmQKLU5TX0FT
U1VNRV9OT05OVUxMX0VORAogI2Vsc2UKIAogTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KQEAgLTM2
NSw2ICszNjAsMTQgQEAgTlNfQVNTVU1FX05PTk5VTExfRU5ECiAKICNlbmRpZiAvLyBfX2hhc19p
bmNsdWRlKDxBVkZvdW5kYXRpb24vQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyLmg+KQogCisj
aWYgX19oYXNfaW5jbHVkZSg8QVZGb3VuZGF0aW9uL0FWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJl
cl9Qcml2YXRlLmg+KQorI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWU2FtcGxlQnVmZmVyQXVkaW9S
ZW5kZXJlcl9Qcml2YXRlLmg+CisjZWxzZQorQGludGVyZmFjZSBBVlNhbXBsZUJ1ZmZlckF1ZGlv
UmVuZGVyZXIgKEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlcldlYktpdE9ubHkpCistICh2b2lk
KXNldElzVW5hY2NvbXBhbmllZEJ5VmlzdWFsczooQk9PTClhdWRpb09ubHkgU1BJX0FWQUlMQUJM
RShtYWNvcygxMi4wKSkgQVBJX1VOQVZBSUxBQkxFKGlvcywgdHZvcywgd2F0Y2hvcyk7CitAZW5k
CisjZW5kaWYgLy8gX19oYXNfaW5jbHVkZSg8QVZGb3VuZGF0aW9uL0FWU2FtcGxlQnVmZmVyQXVk
aW9SZW5kZXJlcl9Qcml2YXRlLmg+KQorCiAjaWYgIVVTRShBUFBMRV9JTlRFUk5BTF9TREspCiBA
aW50ZXJmYWNlIEFWVmlkZW9QZXJmb3JtYW5jZU1ldHJpY3MgOiBOU09iamVjdAogQHByb3BlcnR5
IChub25hdG9taWMsIHJlYWRvbmx5KSB1bnNpZ25lZCBsb25nIHRvdGFsTnVtYmVyT2ZWaWRlb0Zy
YW1lczsKQEAgLTM5OSw2ICs0MDIsMTYgQEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIC0gKEJP
T0wpc2V0RWxpZ2libGVGb3JCVFNtYXJ0Um91dGluZ0NvbnNpZGVyYXRpb246KEJPT0wpaW5WYWx1
ZSBlcnJvcjooTlNFcnJvciAqKilvdXRFcnJvcjsKIEBlbmQKIAorQHByb3RvY29sIEFWQXVkaW9T
ZXNzaW9uUGFydGljaXBhbnQKK0Bwcm9wZXJ0eSAocmVhZHdyaXRlLCByZXRhaW4pIEFWQXVkaW9T
ZXNzaW9uKiBhdWRpb1Nlc3Npb247CitAZW5kCisKK0BpbnRlcmZhY2UgQVZTYW1wbGVCdWZmZXJB
dWRpb1JlbmRlcmVyIChBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXJBdWRpb1Nlc3Npb25QYXJ0
aWNpcGFudCkgPEFWQXVkaW9TZXNzaW9uUGFydGljaXBhbnQ+CitAZW5kCisKK0BpbnRlcmZhY2Ug
QVZQbGF5ZXIgKEFWUGxheWVyQXVkaW9TZXNzaW9uUGFydGljaXBhbnQpIDxBVkF1ZGlvU2Vzc2lv
blBhcnRpY2lwYW50PgorQGVuZAorCiBOU19BU1NVTUVfTk9OTlVMTF9FTkQKICNlbmRpZgogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCBmYjdjMDRmNTBhYTAz
YTdmYTc1ZDllYTY1MTVjNzA2ODY2NWRhMGY4Li5jNGUxNTA4Y2ZmZGI5YTFjMzBhY2YzYmY2NzVm
MTQ5Zjk2ZmY2MzkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAK
QEAgLTc5ODksNiArNzk4OSwxOSBAQCBib29sIEhUTUxNZWRpYUVsZW1lbnQ6OnNob3VsZE92ZXJy
aWRlUGF1c2VEdXJpbmdSb3V0ZUNoYW5nZSgpIGNvbnN0CiAjZW5kaWYKIH0KIAorYm9vbCBIVE1M
TWVkaWFFbGVtZW50OjpzdXBwb3J0c1NldEF1ZGlvU2Vzc2lvbkNhdGVnb3J5KCkgY29uc3QKK3sK
KyAgICBpZiAobV9wbGF5ZXIpCisgICAgICAgIHJldHVybiBtX3BsYXllci0+c3VwcG9ydHNTZXRB
dWRpb1Nlc3Npb25DYXRlZ29yeSgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBIVE1M
TWVkaWFFbGVtZW50OjpzZXRBdWRpb1Nlc3Npb25DYXRlZ29yeShBdWRpb1Nlc3Npb25DYXRlZ29y
eSBjYXRlZ29yeSkKK3sKKyAgICBpZiAobV9wbGF5ZXIpCisgICAgICAgIG1fcGxheWVyLT5zZXRB
dWRpb1Nlc3Npb25DYXRlZ29yeShjYXRlZ29yeSk7Cit9CisKICNpZiBFTkFCTEUoV0lSRUxFU1Nf
UExBWUJBQ0tfVEFSR0VUKQogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNjaGVkdWxlVXBkYXRl
TWVkaWFTdGF0ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IDMy
ZWRjY2Q4MDk0NzU4YzhjNGI0MjY2MmNjZjcxZjRmNGIyNjg4NDIuLmFkMDllN2JlMWUyMzBkZmU2
YmM3OTk1YjVmNTNkNzU3NGM4ODFiM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5oCkBAIC04OTYsNiArODk2LDggQEAgcHJpdmF0ZToKICAgICBib29sIGhhc01lZGlhU3Ry
ZWFtU291cmNlKCkgY29uc3QgZmluYWw7CiAgICAgdm9pZCBwcm9jZXNzSXNTdXNwZW5kZWRDaGFu
Z2VkKCkgZmluYWw7CiAgICAgYm9vbCBzaG91bGRPdmVycmlkZVBhdXNlRHVyaW5nUm91dGVDaGFu
Z2UoKSBjb25zdCBmaW5hbDsKKyAgICBib29sIHN1cHBvcnRzU2V0QXVkaW9TZXNzaW9uQ2F0ZWdv
cnkoKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIHNldEF1ZGlvU2Vzc2lvbkNhdGVnb3J5KEF1ZGlv
U2Vzc2lvbkNhdGVnb3J5KSBmaW5hbDsKIAogICAgIHZvaWQgcGFnZU11dGVkU3RhdGVEaWRDaGFu
Z2UoKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVs
ZW1lbnRTZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24u
aAppbmRleCA0NWYzNWIxYjk5MDdlYTM1YzE4YzFlMmExNTUyNDVhNTY1ZWYyOGZiLi5kZjYxNTEw
Y2VjNjUwMTBjMmQ2YmU1ZTRhMGIzMDlmNzAyNTIzNDU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L01lZGlhRWxlbWVudFNlc3Npb24uaApAQCAtNTcsNiArNTcsNyBAQCBjbGFzcyBTb3VyY2VCdWZm
ZXI7CiBzdHJ1Y3QgTWVkaWFQb3NpdGlvblN0YXRlOwogCiBlbnVtIGNsYXNzIE1lZGlhU2Vzc2lv
blBsYXliYWNrU3RhdGUgOiB1aW50OF90OworZW51bSBjbGFzcyBBdWRpb1Nlc3Npb25DYXRlZ29y
eSA6IHVpbnQ4X3Q7CiAKIGNsYXNzIE1lZGlhRWxlbWVudFNlc3Npb24gZmluYWwgOiBwdWJsaWMg
UGxhdGZvcm1NZWRpYVNlc3Npb24gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EZXByZWNhdGVkR2xvYmFsU2V0dGluZ3MuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9EZXByZWNhdGVkR2xvYmFsU2V0dGluZ3MuY3BwCmluZGV4
IDAxYWI5NWI2MmYxYWEzZmEzYWIzM2JhN2I0ZjkwNjJlZmU5ZDBhZDIuLmJkZWRhMTM1MmRlZWRj
NGE1M2U2ZDJkZGVmMGZjMDUzMGNjZTk3NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RlcHJlY2F0ZWRHbG9iYWxTZXR0aW5ncy5jcHAKQEAgLTE0OCw3ICsxNDgsNyBAQCB2b2lkIERl
cHJlY2F0ZWRHbG9iYWxTZXR0aW5nczo6c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQo
Ym9vbCBmbGFnKQogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiB2b2lkIERlcHJlY2F0ZWRHbG9i
YWxTZXR0aW5nczo6c2V0QXVkaW9TZXNzaW9uQ2F0ZWdvcnlPdmVycmlkZSh1bnNpZ25lZCBzZXNz
aW9uQ2F0ZWdvcnkpCiB7Ci0gICAgQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2V0Q2F0
ZWdvcnlPdmVycmlkZShzdGF0aWNfY2FzdDxBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZT4oc2Vz
c2lvbkNhdGVnb3J5KSk7CisgICAgQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2V0Q2F0
ZWdvcnlPdmVycmlkZShzdGF0aWNfY2FzdDxBdWRpb1Nlc3Npb25DYXRlZ29yeT4oc2Vzc2lvbkNh
dGVnb3J5KSk7CiB9CiAKIHVuc2lnbmVkIERlcHJlY2F0ZWRHbG9iYWxTZXR0aW5nczo6YXVkaW9T
ZXNzaW9uQ2F0ZWdvcnlPdmVycmlkZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1l
RW5hYmxlZEZlYXR1cmVzLmNwcAppbmRleCBmOTBiOGU2ZGUwMzY5ODY3NzkyOTRjYmIwM2M3NTNm
ZmNhZjcxODAxLi4wZGY3Njg2NTBiNThmMWFlMjI1ZjEwYTM2NTQ0YjMwMDZhYWJjOTNiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5jcHAKQEAgLTM4
LDcgKzM4LDcgQEAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9PcHRpb25zLmg+CiAjaW5jbHVk
ZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKLSNpZiBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBI
QVZFKEFWU0FNUExFQlVGRkVSVklERU9PVVRQVVQpCisjaWYgKEVOQUJMRShNRURJQV9TT1VSQ0Up
ICYmIEhBVkUoQVZTQU1QTEVCVUZGRVJWSURFT09VVFBVVCkpIHx8IChVU0UoQVVESU9fU0VTU0lP
TikgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkpCiAjaW5jbHVkZSAiTWVkaWFTZXNzaW9uTWFuYWdl
ckNvY29hLmgiCiAjZW5kaWYKIApAQCAtODksNCArODksMTIgQEAgdm9pZCBSdW50aW1lRW5hYmxl
ZEZlYXR1cmVzOjpzZXRNZWRpYVNvdXJjZUlubGluZVBhaW50aW5nRW5hYmxlZChib29sIGlzRW5h
YmxlZCkKIH0KICNlbmRpZgogCisjaWYgVVNFKEFVRElPX1NFU1NJT04pICYmIFBMQVRGT1JNKElP
U19GQU1JTFkpCit2b2lkIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNldE11bHRpcGxlQXVkaW9T
ZXNzaW9uc0VuYWJsZWQoYm9vbCBpc0VuYWJsZWQpCit7CisgICAgbV9tdWx0aXBsZUF1ZGlvU2Vz
c2lvbnNFbmFibGVkID0gaXNFbmFibGVkOworICAgIE1lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYTo6
c2V0TXVsdGlwbGVBdWRpb1Nlc3Npb25zRW5hYmxlZChpc0VuYWJsZWQpOworfQorI2VuZGlmCisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5h
YmxlZEZlYXR1cmVzLmgKaW5kZXggNjQxN2MwNjM1MDYxNTY3ZDE0YzA5NzA3MTMwZTY1OWFlZGZi
NGNkNS4uNGVjZTJhMmQwOWFkZmI1NzdlNDU2MzU3MzhmMTI0NzIxYTIyMmVkOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKQEAgLTI2MCw2ICsyNjAs
MTEgQEAgcHVibGljOgogICAgIGJvb2wgbWVkaWFTb3VyY2VJbmxpbmVQYWludGluZ0VuYWJsZWQo
KSBjb25zdCB7IHJldHVybiBtX21lZGlhU291cmNlSW5saW5lUGFpbnRpbmdFbmFibGVkOyB9CiAj
ZW5kaWYKIAorI2lmIFVTRShBVURJT19TRVNTSU9OKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQor
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0TXVsdGlwbGVBdWRpb1Nlc3Npb25zRW5hYmxlZChi
b29sKTsKKyAgICBib29sIG11bHRpcGxlQXVkaW9TZXNzaW9uc0VuYWJsZWQoKSBjb25zdCB7IHJl
dHVybiBtX211bHRpcGxlQXVkaW9TZXNzaW9uc0VuYWJsZWQ7IH0KKyNlbmRpZgorCiBwcml2YXRl
OgogICAgIC8vIE5ldmVyIGluc3RhbnRpYXRlLgogICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMo
KTsKQEAgLTM5OSw2ICs0MDQsMTAgQEAgcHJpdmF0ZToKICAgICBib29sIG1fbWVkaWFTb3VyY2VJ
bmxpbmVQYWludGluZ0VuYWJsZWQgeyBmYWxzZSB9OwogI2VuZGlmCiAKKyNpZiBVU0UoQVVESU9f
U0VTU0lPTikgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBib29sIG1fbXVsdGlwbGVBdWRp
b1Nlc3Npb25zRW5hYmxlZCB7IGZhbHNlIH07CisjZW5kaWYKKwogICAgIGZyaWVuZCBjbGFzcyBX
VEY6Ok5ldmVyRGVzdHJveWVkPFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM+OwogfTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5jcHAKaW5kZXggMTA5MTRk
NDU1Y2M2ZGM3Y2E3MDY4ODU2MTQ1NTNiYjUxZjYwM2RiYS4uNDhjOGU5ZWMwZjg2MjE1Y2Y2YjE1
OWQ0M2M3MWFhYTAxNDUyMWQ3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vQXVkaW9TZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9BdWRpb1Nlc3Npb24uY3BwCkBAIC0xMjUsMTIgKzEyNSwxMiBAQCB2b2lkIEF1ZGlvU2Vzc2lv
bjo6ZW5kSW50ZXJydXB0aW9uKE1heVJlc3VtZSBtYXlSZXN1bWUpCiAgICAgICAgIG9ic2VydmVy
LmVuZEF1ZGlvU2Vzc2lvbkludGVycnVwdGlvbihtYXlSZXN1bWUpOwogfQogCi12b2lkIEF1ZGlv
U2Vzc2lvbjo6c2V0Q2F0ZWdvcnkoQ2F0ZWdvcnlUeXBlLCBSb3V0ZVNoYXJpbmdQb2xpY3kpCit2
b2lkIEF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnkoQXVkaW9TZXNzaW9uQ2F0ZWdvcnksIFJvdXRl
U2hhcmluZ1BvbGljeSkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIEF1ZGlv
U2Vzc2lvbjo6c2V0Q2F0ZWdvcnlPdmVycmlkZShDYXRlZ29yeVR5cGUgY2F0ZWdvcnkpCit2b2lk
IEF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnlPdmVycmlkZShBdWRpb1Nlc3Npb25DYXRlZ29yeSBj
YXRlZ29yeSkKIHsKICAgICBpZiAobV9jYXRlZ29yeU92ZXJyaWRlID09IGNhdGVnb3J5KQogICAg
ICAgICByZXR1cm47CkBAIC0xMzksMTUgKzEzOSwxNSBAQCB2b2lkIEF1ZGlvU2Vzc2lvbjo6c2V0
Q2F0ZWdvcnlPdmVycmlkZShDYXRlZ29yeVR5cGUgY2F0ZWdvcnkpCiAgICAgc2V0Q2F0ZWdvcnko
Y2F0ZWdvcnksIFJvdXRlU2hhcmluZ1BvbGljeTo6RGVmYXVsdCk7CiB9CiAKLUF1ZGlvU2Vzc2lv
bjo6Q2F0ZWdvcnlUeXBlIEF1ZGlvU2Vzc2lvbjo6Y2F0ZWdvcnlPdmVycmlkZSgpIGNvbnN0CitB
dWRpb1Nlc3Npb25DYXRlZ29yeSBBdWRpb1Nlc3Npb246OmNhdGVnb3J5T3ZlcnJpZGUoKSBjb25z
dAogewogICAgIHJldHVybiBtX2NhdGVnb3J5T3ZlcnJpZGU7CiB9CiAKLUF1ZGlvU2Vzc2lvbjo6
Q2F0ZWdvcnlUeXBlIEF1ZGlvU2Vzc2lvbjo6Y2F0ZWdvcnkoKSBjb25zdAorQXVkaW9TZXNzaW9u
Q2F0ZWdvcnkgQXVkaW9TZXNzaW9uOjpjYXRlZ29yeSgpIGNvbnN0CiB7CiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKLSAgICByZXR1cm4gQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6Ok5vbmU7Cisg
ICAgcmV0dXJuIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpOb25lOwogfQogCiBmbG9hdCBBdWRpb1Nl
c3Npb246OnNhbXBsZVJhdGUoKSBjb25zdApAQCAtMjM3LDcgKzIzNyw3IEBAIFN0cmluZyBjb252
ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhSb3V0ZVNoYXJpbmdQb2xpY3kgZW51bWVyYXRpb25WYWx1
ZSkKICAgICByZXR1cm4gdmFsdWVzW3N0YXRpY19jYXN0PHNpemVfdD4oZW51bWVyYXRpb25WYWx1
ZSldOwogfQogCi1TdHJpbmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoQXVkaW9TZXNzaW9u
OjpDYXRlZ29yeVR5cGUgZW51bWVyYXRpb25WYWx1ZSkKK1N0cmluZyBjb252ZXJ0RW51bWVyYXRp
b25Ub1N0cmluZyhBdWRpb1Nlc3Npb25DYXRlZ29yeSBlbnVtZXJhdGlvblZhbHVlKQogewogICAg
IHN0YXRpYyBjb25zdCBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHZhbHVlc1tdID0gewogICAgICAg
ICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiTm9uZSIpLApAQCAtMjQ4LDEzICsyNDgsMTMgQEAg
U3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlU
eXBlIGVudW1lcmF0aW9uVmFsdWUpCiAgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJQ
bGF5QW5kUmVjb3JkIiksCiAgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJBdWRpb1By
b2Nlc3NpbmciKSwKICAgICB9OwotICAgIHN0YXRpY19hc3NlcnQoIXN0YXRpY19jYXN0PHNpemVf
dD4oQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6Ok5vbmUpLCAiQXVkaW9TZXNzaW9uOjpDYXRl
Z29yeVR5cGU6Ok5vbmUgaXMgbm90IDAgYXMgZXhwZWN0ZWQiKTsKLSAgICBzdGF0aWNfYXNzZXJ0
KHN0YXRpY19jYXN0PHNpemVfdD4oQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6OkFtYmllbnRT
b3VuZCkgPT0gMSwgIkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpBbWJpZW50U291bmQgaXMg
bm90IDEgYXMgZXhwZWN0ZWQiKTsKLSAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVf
dD4oQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6OlNvbG9BbWJpZW50U291bmQpID09IDIsICJB
dWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6U29sb0FtYmllbnRTb3VuZCBpcyBub3QgMiBhcyBl
eHBlY3RlZCIpOwotICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihBdWRpb1Nl
c3Npb246OkNhdGVnb3J5VHlwZTo6TWVkaWFQbGF5YmFjaykgPT0gMywgIkF1ZGlvU2Vzc2lvbjo6
Q2F0ZWdvcnlUeXBlOjpNZWRpYVBsYXliYWNrIGlzIG5vdCAzIGFzIGV4cGVjdGVkIik7Ci0gICAg
c3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlU
eXBlOjpSZWNvcmRBdWRpbykgPT0gNCwgIkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpSZWNv
cmRBdWRpbyBpcyBub3QgNCBhcyBleHBlY3RlZCIpOwotICAgIHN0YXRpY19hc3NlcnQoc3RhdGlj
X2Nhc3Q8c2l6ZV90PihBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6UGxheUFuZFJlY29yZCkg
PT0gNSwgIkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpQbGF5QW5kUmVjb3JkIGlzIG5vdCA1
IGFzIGV4cGVjdGVkIik7Ci0gICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KEF1
ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpBdWRpb1Byb2Nlc3NpbmcpID09IDYsICJBdWRpb1Nl
c3Npb246OkNhdGVnb3J5VHlwZTo6QXVkaW9Qcm9jZXNzaW5nIGlzIG5vdCA2IGFzIGV4cGVjdGVk
Iik7CisgICAgc3RhdGljX2Fzc2VydCghc3RhdGljX2Nhc3Q8c2l6ZV90PihBdWRpb1Nlc3Npb25D
YXRlZ29yeTo6Tm9uZSksICJBdWRpb1Nlc3Npb25DYXRlZ29yeTo6Tm9uZSBpcyBub3QgMCBhcyBl
eHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihBdWRpb1Nl
c3Npb25DYXRlZ29yeTo6QW1iaWVudFNvdW5kKSA9PSAxLCAiQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6
OkFtYmllbnRTb3VuZCBpcyBub3QgMSBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQo
c3RhdGljX2Nhc3Q8c2l6ZV90PihBdWRpb1Nlc3Npb25DYXRlZ29yeTo6U29sb0FtYmllbnRTb3Vu
ZCkgPT0gMiwgIkF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpTb2xvQW1iaWVudFNvdW5kIGlzIG5vdCAy
IGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KEF1
ZGlvU2Vzc2lvbkNhdGVnb3J5OjpNZWRpYVBsYXliYWNrKSA9PSAzLCAiQXVkaW9TZXNzaW9uQ2F0
ZWdvcnk6Ok1lZGlhUGxheWJhY2sgaXMgbm90IDMgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNf
YXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6OlJlY29yZEF1
ZGlvKSA9PSA0LCAiQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6OlJlY29yZEF1ZGlvIGlzIG5vdCA0IGFz
IGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KEF1ZGlv
U2Vzc2lvbkNhdGVnb3J5OjpQbGF5QW5kUmVjb3JkKSA9PSA1LCAiQXVkaW9TZXNzaW9uQ2F0ZWdv
cnk6OlBsYXlBbmRSZWNvcmQgaXMgbm90IDUgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNz
ZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6OkF1ZGlvUHJvY2Vz
c2luZykgPT0gNiwgIkF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpBdWRpb1Byb2Nlc3NpbmcgaXMgbm90
IDYgYXMgZXhwZWN0ZWQiKTsKICAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8c2l6ZV90PihlbnVtZXJh
dGlvblZhbHVlKSA8IFdURl9BUlJBWV9MRU5HVEgodmFsdWVzKSk7CiAgICAgcmV0dXJuIHZhbHVl
c1tzdGF0aWNfY2FzdDxzaXplX3Q+KGVudW1lcmF0aW9uVmFsdWUpXTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmgKaW5kZXggNWQwZmVjZGQ1M2U5Nzdk
ZTY5Y2JhZDRiZDBkMjIzZTA4NWU2ZDNmOC4uNTk4NGI5N2Y2MzIzMWVjMjk2Y2IwNzVmYjc0NGY5
NDIyY2Q3OWMwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVk
aW9TZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNz
aW9uLmgKQEAgLTQ2LDYgKzQ2LDE2IEBAIGVudW0gY2xhc3MgUm91dGVTaGFyaW5nUG9saWN5IDog
dWludDhfdCB7CiAgICAgTG9uZ0Zvcm1WaWRlbwogfTsKIAorZW51bSBjbGFzcyBBdWRpb1Nlc3Np
b25DYXRlZ29yeSA6IHVpbnQ4X3QgeworICAgIE5vbmUsCisgICAgQW1iaWVudFNvdW5kLAorICAg
IFNvbG9BbWJpZW50U291bmQsCisgICAgTWVkaWFQbGF5YmFjaywKKyAgICBSZWNvcmRBdWRpbywK
KyAgICBQbGF5QW5kUmVjb3JkLAorICAgIEF1ZGlvUHJvY2Vzc2luZywKK307CisKIGNsYXNzIEF1
ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudDsKIAogY2xhc3MgV0VCQ09SRV9FWFBP
UlQgQXVkaW9TZXNzaW9uIHsKQEAgLTYzLDIwICs3MywxNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0
dWFsIH5BdWRpb1Nlc3Npb24oKTsKIAotICAgIGVudW0gY2xhc3MgQ2F0ZWdvcnlUeXBlIDogdWlu
dDhfdCB7Ci0gICAgICAgIE5vbmUsCi0gICAgICAgIEFtYmllbnRTb3VuZCwKLSAgICAgICAgU29s
b0FtYmllbnRTb3VuZCwKLSAgICAgICAgTWVkaWFQbGF5YmFjaywKLSAgICAgICAgUmVjb3JkQXVk
aW8sCi0gICAgICAgIFBsYXlBbmRSZWNvcmQsCi0gICAgICAgIEF1ZGlvUHJvY2Vzc2luZywKKyAg
ICBlbnVtIGNsYXNzIEtpbmQgOiB1aW50OF90IHsKKyAgICAgICAgUGxhdGZvcm0sCisgICAgICAg
IFJlbW90ZSwKICAgICB9OwotICAgIHZpcnR1YWwgdm9pZCBzZXRDYXRlZ29yeShDYXRlZ29yeVR5
cGUsIFJvdXRlU2hhcmluZ1BvbGljeSk7Ci0gICAgdmlydHVhbCBDYXRlZ29yeVR5cGUgY2F0ZWdv
cnkoKSBjb25zdDsKKyAgICB2aXJ0dWFsIEtpbmQga2luZCgpIGNvbnN0IHsgcmV0dXJuIEtpbmQ6
OlBsYXRmb3JtOyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q2F0ZWdvcnkoQXVkaW9TZXNzaW9u
Q2F0ZWdvcnksIFJvdXRlU2hhcmluZ1BvbGljeSk7CisgICAgdmlydHVhbCBBdWRpb1Nlc3Npb25D
YXRlZ29yeSBjYXRlZ29yeSgpIGNvbnN0OwogCi0gICAgdmlydHVhbCB2b2lkIHNldENhdGVnb3J5
T3ZlcnJpZGUoQ2F0ZWdvcnlUeXBlKTsKLSAgICB2aXJ0dWFsIENhdGVnb3J5VHlwZSBjYXRlZ29y
eU92ZXJyaWRlKCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIHNldENhdGVnb3J5T3ZlcnJpZGUo
QXVkaW9TZXNzaW9uQ2F0ZWdvcnkpOworICAgIHZpcnR1YWwgQXVkaW9TZXNzaW9uQ2F0ZWdvcnkg
Y2F0ZWdvcnlPdmVycmlkZSgpIGNvbnN0OwogCiAgICAgdmlydHVhbCBSb3V0ZVNoYXJpbmdQb2xp
Y3kgcm91dGVTaGFyaW5nUG9saWN5KCkgY29uc3Q7CiAgICAgdmlydHVhbCBTdHJpbmcgcm91dGlu
Z0NvbnRleHRVSUQoKSBjb25zdDsKQEAgLTEzOSw3ICsxNDYsNyBAQCBwcm90ZWN0ZWQ6CiAgICAg
V2Vha0hhc2hTZXQ8SW50ZXJydXB0aW9uT2JzZXJ2ZXI+IG1faW50ZXJydXB0aW9uT2JzZXJ2ZXJz
OwogCiAgICAgV2Vha1B0cjxBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRpb25DbGllbnQ+IG1f
cm91dGluZ0FyYml0cmF0aW9uQ2xpZW50OwotICAgIEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBl
IG1fY2F0ZWdvcnlPdmVycmlkZSB7IEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpOb25lIH07
CisgICAgQXVkaW9TZXNzaW9uQ2F0ZWdvcnkgbV9jYXRlZ29yeU92ZXJyaWRlIHsgQXVkaW9TZXNz
aW9uQ2F0ZWdvcnk6Ok5vbmUgfTsKICAgICBib29sIG1fYWN0aXZlIHsgZmFsc2UgfTsgLy8gVXNl
ZCBvbmx5IGZvciB0ZXN0aW5nLgogCiAgICAgc3RhdGljIGJvb2wgc19zaG91bGRNYW5hZ2VBdWRp
b1Nlc3Npb25DYXRlZ29yeTsKQEAgLTE1NCwxNCArMTYxLDE0IEBAIHB1YmxpYzoKIAogICAgIHVz
aW5nIEFyYml0cmF0aW9uQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJvdXRpbmdB
cmJpdHJhdGlvbkVycm9yLCBEZWZhdWx0Um91dGVDaGFuZ2VkKT47CiAKLSAgICB2aXJ0dWFsIHZv
aWQgYmVnaW5Sb3V0aW5nQXJiaXRyYXRpb25XaXRoQ2F0ZWdvcnkoQXVkaW9TZXNzaW9uOjpDYXRl
Z29yeVR5cGUsIEFyYml0cmF0aW9uQ2FsbGJhY2smJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBi
ZWdpblJvdXRpbmdBcmJpdHJhdGlvbldpdGhDYXRlZ29yeShBdWRpb1Nlc3Npb25DYXRlZ29yeSwg
QXJiaXRyYXRpb25DYWxsYmFjayYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGxlYXZlUm91dGlu
Z0Ficml0cmF0aW9uKCkgPSAwOwogCiAgICAgdXNpbmcgV2Vha1ZhbHVlVHlwZSA9IEF1ZGlvU2Vz
c2lvblJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudDsKIH07CiAKIFdFQkNPUkVfRVhQT1JUIFN0cmlu
ZyBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhSb3V0ZVNoYXJpbmdQb2xpY3kpOwotV0VCQ09S
RV9FWFBPUlQgU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKEF1ZGlvU2Vzc2lvbjo6
Q2F0ZWdvcnlUeXBlKTsKK1dFQkNPUkVfRVhQT1JUIFN0cmluZyBjb252ZXJ0RW51bWVyYXRpb25U
b1N0cmluZyhBdWRpb1Nlc3Npb25DYXRlZ29yeSk7CiBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgY29u
dmVydEVudW1lcmF0aW9uVG9TdHJpbmcoQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0aW9uQ2xp
ZW50OjpSb3V0aW5nQXJiaXRyYXRpb25FcnJvcik7CiBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgY29u
dmVydEVudW1lcmF0aW9uVG9TdHJpbmcoQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0aW9uQ2xp
ZW50OjpEZWZhdWx0Um91dGVDaGFuZ2VkKTsKIApAQCAtMTc4LDE2ICsxODUsMTYgQEAgdGVtcGxh
dGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3k+IHsKICAg
ICA+OwogfTsKIAotdGVtcGxhdGUgPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6QXVkaW9T
ZXNzaW9uOjpDYXRlZ29yeVR5cGU+IHsKK3RlbXBsYXRlIDw+IHN0cnVjdCBFbnVtVHJhaXRzPFdl
YkNvcmU6OkF1ZGlvU2Vzc2lvbkNhdGVnb3J5PiB7CiAgICAgdXNpbmcgdmFsdWVzID0gRW51bVZh
bHVlcyA8Ci0gICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUsCi0gICAgV2Vi
Q29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6Ok5vbmUsCi0gICAgV2ViQ29yZTo6QXVk
aW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6OkFtYmllbnRTb3VuZCwKLSAgICBXZWJDb3JlOjpBdWRp
b1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6U29sb0FtYmllbnRTb3VuZCwKLSAgICBXZWJDb3JlOjpB
dWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6TWVkaWFQbGF5YmFjaywKLSAgICBXZWJDb3JlOjpB
dWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6UmVjb3JkQXVkaW8sCi0gICAgV2ViQ29yZTo6QXVk
aW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6OlBsYXlBbmRSZWNvcmQsCi0gICAgV2ViQ29yZTo6QXVk
aW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6OkF1ZGlvUHJvY2Vzc2luZworICAgIFdlYkNvcmU6OkF1
ZGlvU2Vzc2lvbkNhdGVnb3J5LAorICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpO
b25lLAorICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpBbWJpZW50U291bmQsCisg
ICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uQ2F0ZWdvcnk6OlNvbG9BbWJpZW50U291bmQsCisgICAg
V2ViQ29yZTo6QXVkaW9TZXNzaW9uQ2F0ZWdvcnk6Ok1lZGlhUGxheWJhY2ssCisgICAgV2ViQ29y
ZTo6QXVkaW9TZXNzaW9uQ2F0ZWdvcnk6OlJlY29yZEF1ZGlvLAorICAgIFdlYkNvcmU6OkF1ZGlv
U2Vzc2lvbkNhdGVnb3J5OjpQbGF5QW5kUmVjb3JkLAorICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lv
bkNhdGVnb3J5OjpBdWRpb1Byb2Nlc3NpbmcKICAgICA+OwogfTsKIApAQCAtMjI4LDggKzIzNSw4
IEBAIHN0cnVjdCBMb2dBcmd1bWVudDxXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3k+IHsKIH07
CiAKIHRlbXBsYXRlIDw+Ci1zdHJ1Y3QgTG9nQXJndW1lbnQ8V2ViQ29yZTo6QXVkaW9TZXNzaW9u
OjpDYXRlZ29yeVR5cGU+IHsKLSAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IFdlYkNv
cmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIGNhdGVnb3J5KQorc3RydWN0IExvZ0FyZ3Vt
ZW50PFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbkNhdGVnb3J5PiB7CisgICAgc3RhdGljIFN0cmluZyB0
b1N0cmluZyhjb25zdCBXZWJDb3JlOjpBdWRpb1Nlc3Npb25DYXRlZ29yeSBjYXRlZ29yeSkKICAg
ICB7CiAgICAgICAgIHJldHVybiBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhjYXRlZ29yeSk7
CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZv
cm1NZWRpYVNlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZv
cm1NZWRpYVNlc3Npb24uY3BwCmluZGV4IGQzNzRjODJjMjUwYzEyYTM3MjBhZjNhNTYyNGY3OGNk
N2E5YzU0YzYuLmIxOGFjYThlM2VlMzAzNmE5NTVjYjExMTQwNmU0MTQxZmU2ODJkN2IgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vz
c2lvbi5jcHAKQEAgLTQxMCw2ICs0MTAsMTYgQEAgc3RkOjpvcHRpb25hbDxOb3dQbGF5aW5nSW5m
bz4gUGxhdGZvcm1NZWRpYVNlc3Npb246Om5vd1BsYXlpbmdJbmZvKCkgY29uc3QKICAgICByZXR1
cm4geyB9OwogfQogCitib29sIFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpzdXBwb3J0c1NldEF1ZGlv
U2Vzc2lvbkNhdGVnb3J5KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jbGllbnQuc3VwcG9ydHNT
ZXRBdWRpb1Nlc3Npb25DYXRlZ29yeSgpOworfQorCit2b2lkIFBsYXRmb3JtTWVkaWFTZXNzaW9u
OjpzZXRBdWRpb1Nlc3Npb25DYXRlZ29yeShBdWRpb1Nlc3Npb25DYXRlZ29yeSBjYXRlZ29yeSkK
K3sKKyAgICByZXR1cm4gbV9jbGllbnQuc2V0QXVkaW9TZXNzaW9uQ2F0ZWdvcnkoY2F0ZWdvcnkp
OworfQorCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiBXVEZMb2dDaGFubmVsJiBQbGF0Zm9y
bU1lZGlhU2Vzc2lvbjo6bG9nQ2hhbm5lbCgpIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb24uaAppbmRleCAzNmYzYjdl
Y2RkYzRjMmE2MmVhYmViYzEyMzMwNTk0ZWQwNmJlZmM5Li5iMjk4YmQ3OGRiMTc3YTgzMTQ1Y2Ji
MTY1MmE3MDhjYWJkNDIzYjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmgKQEAgLTQ1LDYgKzQ1LDcgQEAgY2xhc3MgTWVk
aWFQbGF5YmFja1RhcmdldDsKIGNsYXNzIFBsYXRmb3JtTWVkaWFTZXNzaW9uQ2xpZW50OwogY2xh
c3MgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOwogZW51bSBjbGFzcyBEZWxheUNhbGxpbmdV
cGRhdGVOb3dQbGF5aW5nIHsgTm8sIFllcyB9OworZW51bSBjbGFzcyBBdWRpb1Nlc3Npb25DYXRl
Z29yeSA6IHVpbnQ4X3Q7CiBzdHJ1Y3QgTm93UGxheWluZ0luZm87CiAKIGNsYXNzIFBsYXRmb3Jt
TWVkaWFTZXNzaW9uCkBAIC0yMDYsNiArMjA3LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgc3Rk
OjpvcHRpb25hbDxOb3dQbGF5aW5nSW5mbz4gbm93UGxheWluZ0luZm8oKSBjb25zdDsKICAgICB2
aXJ0dWFsIHZvaWQgdXBkYXRlTWVkaWFVc2FnZUlmQ2hhbmdlZCgpIHsgfQogCisgICAgYm9vbCBz
dXBwb3J0c1NldEF1ZGlvU2Vzc2lvbkNhdGVnb3J5KCkgY29uc3Q7CisgICAgdm9pZCBzZXRBdWRp
b1Nlc3Npb25DYXRlZ29yeShBdWRpb1Nlc3Npb25DYXRlZ29yeSk7CisKICAgICBNZWRpYVNlc3Np
b25JZGVudGlmaWVyIG1lZGlhU2Vzc2lvbklkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX21l
ZGlhU2Vzc2lvbklkZW50aWZpZXI7IH0KIAogcHJvdGVjdGVkOgpAQCAtMjc0LDYgKzI3OCw5IEBA
IHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRPdmVycmlkZVBhdXNlRHVyaW5nUm91
dGVDaGFuZ2UoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCisgICAgdmlydHVhbCBib29sIHN1
cHBvcnRzU2V0QXVkaW9TZXNzaW9uQ2F0ZWdvcnkoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQor
ICAgIHZpcnR1YWwgdm9pZCBzZXRBdWRpb1Nlc3Npb25DYXRlZ29yeShBdWRpb1Nlc3Npb25DYXRl
Z29yeSkgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FC
TEVECiAgICAgdmlydHVhbCBjb25zdCBMb2dnZXImIGxvZ2dlcigpIGNvbnN0ID0gMDsKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvTWVkaWFT
ZXNzaW9uTWFuYWdlckNvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2Nv
YS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EuaAppbmRleCAwZjM0MjhhY2Q1MDYyNDE3MDEyZGYw
NGM3M2U2NjgxOGE0Zjk3ODM4Li45OWY1YWMyOTYxNDA2ZDdjZDVlZTdhMTUyNTI4NWRkZWQxNmEw
M2NmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRp
YVNlc3Npb25NYW5hZ2VyQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9jb2NvYS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EuaApAQCAtNjksNiArNjksMTEgQEAgcHVi
bGljOgogICAgIHN0YXRpYyBXRUJDT1JFX0VYUE9SVCBib29sIG1lZGlhU291cmNlSW5saW5lUGFp
bnRpbmdFbmFibGVkKCk7CiAjZW5kaWYKIAorI2lmIFVTRShBVURJT19TRVNTSU9OKQorICAgIHN0
YXRpYyBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldE11bHRpcGxlQXVkaW9TZXNzaW9uc0VuYWJsZWQo
Ym9vbCk7CisgICAgc3RhdGljIFdFQkNPUkVfRVhQT1JUIGJvb2wgbXVsdGlwbGVBdWRpb1Nlc3Np
b25zRW5hYmxlZCgpOworI2VuZGlmCisKIHByb3RlY3RlZDoKICAgICB2b2lkIHNjaGVkdWxlU2Vz
c2lvblN0YXR1c1VwZGF0ZSgpIGZpbmFsOwogICAgIHZvaWQgdXBkYXRlTm93UGxheWluZ0luZm8o
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL01lZGlh
U2Vzc2lvbk1hbmFnZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2Nv
Y29hL01lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5tbQppbmRleCA2OGE5OTNkZmNlODI2NTA5YTE5
NmM3NDFjOGJjOTQyMmNhMTRjMTk1Li5mNzAxZWFhNjg5ZDJmYjAzYTcxNTc0ZDIyMzAxNTA2Yjlj
MjA0MDhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9N
ZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vY29jb2EvTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hLm1tCkBAIC05MSw2ICs5MSwxOSBA
QCBib29sIE1lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYTo6bWVkaWFTb3VyY2VJbmxpbmVQYWludGlu
Z0VuYWJsZWQoKQogfQogI2VuZGlmCiAKKyNpZiBVU0UoQVVESU9fU0VTU0lPTikKK3N0YXRpYyBi
b29sIHNfbXVsdGlwbGVBdWRpb1Nlc3Npb25zRW5hYmxlZCA9IGZhbHNlOwordm9pZCBNZWRpYVNl
c3Npb25NYW5hZ2VyQ29jb2E6OnNldE11bHRpcGxlQXVkaW9TZXNzaW9uc0VuYWJsZWQoYm9vbCBl
bmFibGVkKQoreworICAgIHNfbXVsdGlwbGVBdWRpb1Nlc3Npb25zRW5hYmxlZCA9IGVuYWJsZWQ7
Cit9CisKK2Jvb2wgTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hOjptdWx0aXBsZUF1ZGlvU2Vzc2lv
bnNFbmFibGVkKCkKK3sKKyAgICByZXR1cm4gc19tdWx0aXBsZUF1ZGlvU2Vzc2lvbnNFbmFibGVk
OworfQorI2VuZGlmCisKIHZvaWQgTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hOjp1cGRhdGVTZXNz
aW9uU3RhdGUoKQogewogICAgIGludCB2aWRlb0NvdW50ID0gMDsKQEAgLTEwMiw2ICsxMTUsMjYg
QEAgdm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6OnVwZGF0ZVNlc3Npb25TdGF0ZSgpCiAg
ICAgYm9vbCBpc1BsYXlpbmdBdWRpbyA9IGZhbHNlOwogICAgIGZvckVhY2hTZXNzaW9uKFsmXSAo
YXV0byYgc2Vzc2lvbikgbXV0YWJsZSB7CiAgICAgICAgIGF1dG8gdHlwZSA9IHNlc3Npb24ubWVk
aWFUeXBlKCk7CisgICAgICAgIGlmIChzZXNzaW9uLnN1cHBvcnRzU2V0QXVkaW9TZXNzaW9uQ2F0
ZWdvcnkoKSkgeworICAgICAgICAgICAgLy8gSWYgYSBQbGF0Zm9ybUF1ZGlvU2Vzc2lvbiBzdXBw
b3J0cyBzZXR0aW5nIGEgY2F0ZWdvcnkgZGlyZWN0bHksIGlnbm9yZQorICAgICAgICAgICAgLy8g
dGhhdCBzZXNzaW9uIGZvciB0aGUgcHVycG9zZXMgb2YgZGV0ZXJtaW5pbmcgdGhlIGRlZmF1bHQg
QXVkaW9TZXNzaW9uJ3MKKyAgICAgICAgICAgIC8vIGNhdGVnb3J5IHR5cGUuCisgICAgICAgICAg
ICBzd2l0Y2ggKHR5cGUpIHsKKyAgICAgICAgICAgIGNhc2UgUGxhdGZvcm1NZWRpYVNlc3Npb246
Ok1lZGlhVHlwZTo6Tm9uZToKKyAgICAgICAgICAgIGNhc2UgUGxhdGZvcm1NZWRpYVNlc3Npb246
Ok1lZGlhVHlwZTo6VmlkZW86CisgICAgICAgICAgICAgICAgc2Vzc2lvbi5zZXRBdWRpb1Nlc3Np
b25DYXRlZ29yeShBdWRpb1Nlc3Npb25DYXRlZ29yeTo6Tm9uZSk7CisgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICBjYXNlIFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpNZWRpYVR5cGU6
OlZpZGVvQXVkaW86CisgICAgICAgICAgICBjYXNlIFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpNZWRp
YVR5cGU6OkF1ZGlvOgorICAgICAgICAgICAgICAgIHNlc3Npb24uc2V0QXVkaW9TZXNzaW9uQ2F0
ZWdvcnkoQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6Ok1lZGlhUGxheWJhY2spOworICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6TWVkaWFU
eXBlOjpXZWJBdWRpbzoKKyAgICAgICAgICAgICAgICBzZXNzaW9uLnNldEF1ZGlvU2Vzc2lvbkNh
dGVnb3J5KEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpBbWJpZW50U291bmQpOworICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CisKICAgICAgICAgc3dpdGNoICh0eXBlKSB7CiAgICAgICAgIGNhc2UgUGxhdGZvcm1NZWRpYVNl
c3Npb246Ok1lZGlhVHlwZTo6Tm9uZToKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTU0LDE0ICsx
ODcsMTQgQEAgdm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6OnVwZGF0ZVNlc3Npb25TdGF0
ZSgpCiAgICAgICAgIHJldHVybjsKIAogICAgIFJvdXRlU2hhcmluZ1BvbGljeSBwb2xpY3kgPSBS
b3V0ZVNoYXJpbmdQb2xpY3k6OkRlZmF1bHQ7Ci0gICAgYXV0byBjYXRlZ29yeSA9IEF1ZGlvU2Vz
c2lvbjo6Q2F0ZWdvcnlUeXBlOjpOb25lOwotICAgIGlmIChjYXB0dXJlQ291bnQgfHwgKGlzUGxh
eWluZ0F1ZGlvICYmIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLmNhdGVnb3J5KCkgPT0g
QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6OlBsYXlBbmRSZWNvcmQpKQotICAgICAgICBjYXRl
Z29yeSA9IEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpQbGF5QW5kUmVjb3JkOworICAgIGF1
dG8gY2F0ZWdvcnkgPSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6Tm9uZTsKKyAgICBpZiAoY2FwdHVy
ZUNvdW50IHx8IChpc1BsYXlpbmdBdWRpbyAmJiBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24o
KS5jYXRlZ29yeSgpID09IEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpQbGF5QW5kUmVjb3JkKSkKKyAg
ICAgICAgY2F0ZWdvcnkgPSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6UGxheUFuZFJlY29yZDsKICAg
ICBlbHNlIGlmIChoYXNBdWRpYmxlQXVkaW9PclZpZGVvTWVkaWFUeXBlKSB7Ci0gICAgICAgIGNh
dGVnb3J5ID0gQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6Ok1lZGlhUGxheWJhY2s7CisgICAg
ICAgIGNhdGVnb3J5ID0gQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6Ok1lZGlhUGxheWJhY2s7CiAgICAg
ICAgIHBvbGljeSA9IFJvdXRlU2hhcmluZ1BvbGljeTo6TG9uZ0Zvcm1BdWRpbzsKICAgICB9IGVs
c2UgaWYgKHdlYkF1ZGlvQ291bnQpCi0gICAgICAgIGNhdGVnb3J5ID0gQXVkaW9TZXNzaW9uOjpD
YXRlZ29yeVR5cGU6OkFtYmllbnRTb3VuZDsKKyAgICAgICAgY2F0ZWdvcnkgPSBBdWRpb1Nlc3Np
b25DYXRlZ29yeTo6QW1iaWVudFNvdW5kOwogCiAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVS
LCAic2V0dGluZyBjYXRlZ29yeSA9ICIsIGNhdGVnb3J5LCAiLCBwb2xpY3kgPSAiLCBwb2xpY3kp
OwogICAgIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldENhdGVnb3J5KGNhdGVnb3J5
LCBwb2xpY3kpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9z
L0F1ZGlvU2Vzc2lvbklPUy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL0F1
ZGlvU2Vzc2lvbklPUy5oCmluZGV4IGRlM2Y0MGNhOTI0ZmU4OWFjZmYyZTAyYjBiMjNlMjMwMzMz
ODI5MDMuLjZkZWQ1MzUzYTIwOGMwZjIxN2VmZDkxNWQ5ZDViZjBjZWVkNDUyNzIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb1Nlc3Npb25JT1MuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9TZXNzaW9uSU9TLmgK
QEAgLTI4LDcgKzI4LDkgQEAKICNpZiBVU0UoQVVESU9fU0VTU0lPTikgJiYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKIAogI2luY2x1ZGUgIkF1ZGlvU2Vzc2lvbi5oIgorI2luY2x1ZGUgPHd0Zi9IYXNo
TWFwLmg+CiAKK09CSkNfQ0xBU1MgQVZBdWRpb1Nlc3Npb247CiBPQkpDX0NMQVNTIFdlYkludGVy
cnVwdGlvbk9ic2VydmVySGVscGVyOwogCiBuYW1lc3BhY2UgV1RGIHsKQEAgLTQyLDEwICs0NCwx
MiBAQCBwdWJsaWM6CiAgICAgQXVkaW9TZXNzaW9uSU9TKCk7CiAgICAgdmlydHVhbCB+QXVkaW9T
ZXNzaW9uSU9TKCk7CiAKKyAgICBBVkF1ZGlvU2Vzc2lvbiAqYXVkaW9TZXNzaW9uRm9yQ2F0ZWdv
cnkoQXVkaW9TZXNzaW9uQ2F0ZWdvcnkpOworCiBwcml2YXRlOgogICAgIC8vIEF1ZGlvU2Vzc2lv
bgotICAgIENhdGVnb3J5VHlwZSBjYXRlZ29yeSgpIGNvbnN0IGZpbmFsOwotICAgIHZvaWQgc2V0
Q2F0ZWdvcnkoQ2F0ZWdvcnlUeXBlLCBSb3V0ZVNoYXJpbmdQb2xpY3kpIGZpbmFsOworICAgIEF1
ZGlvU2Vzc2lvbkNhdGVnb3J5IGNhdGVnb3J5KCkgY29uc3QgZmluYWw7CisgICAgdm9pZCBzZXRD
YXRlZ29yeShBdWRpb1Nlc3Npb25DYXRlZ29yeSwgUm91dGVTaGFyaW5nUG9saWN5KSBmaW5hbDsK
ICAgICBmbG9hdCBzYW1wbGVSYXRlKCkgY29uc3QgZmluYWw7CiAgICAgc2l6ZV90IGJ1ZmZlclNp
emUoKSBjb25zdCBmaW5hbDsKICAgICBzaXplX3QgbnVtYmVyT2ZPdXRwdXRDaGFubmVscygpIGNv
bnN0IGZpbmFsOwpAQCAtNjAsOCArNjQsMTMgQEAgcHJpdmF0ZToKIAogICAgIFJlZjxXVEY6Oldv
cmtRdWV1ZT4gbV93b3JrUXVldWU7CiAgICAgUmV0YWluUHRyPFdlYkludGVycnVwdGlvbk9ic2Vy
dmVySGVscGVyPiBtX2ludGVycnVwdGlvbk9ic2VydmVySGVscGVyOworICAgIEhhc2hNYXA8QXVk
aW9TZXNzaW9uQ2F0ZWdvcnksIFJldGFpblB0cjxBVkF1ZGlvU2Vzc2lvbj4sIFdURjo6SW50SGFz
aDxBdWRpb1Nlc3Npb25DYXRlZ29yeT4sIFdURjo6U3Ryb25nRW51bUhhc2hUcmFpdHM8QXVkaW9T
ZXNzaW9uQ2F0ZWdvcnk+PiBtX2F1eGlsaWFyeVNlc3Npb25zOwogfTsKIAogfQogCitTUEVDSUFM
SVpFX1RZUEVfVFJBSVRTX0JFR0lOKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbklPUykKKyAgICBzdGF0
aWMgYm9vbCBpc1R5cGUoY29uc3QgV2ViQ29yZTo6QXVkaW9TZXNzaW9uJiBzZXNzaW9uKSB7IHJl
dHVybiBzZXNzaW9uLmtpbmQoKSA9PSBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OktpbmQ6OlBsYXRm
b3JtOyB9CitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCisKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvU2Vzc2lvbklPUy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb1Nlc3Npb25JT1MubW0KaW5k
ZXggZDA2YmJkMzZlYmY4YWZmYmZhMGViMGU4YjJlODlmNzQzY2NiMzZkMi4uOGM5NzkzZDc1YmM0
YTc2ODg3MzdkMTUzODgwYWUzMTkwNThkOTY3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvU2Vzc2lvbklPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9TZXNzaW9uSU9TLm1tCkBAIC0xMzYsNzMgKzEzNiw3
OSBAQCBBdWRpb1Nlc3Npb25JT1M6On5BdWRpb1Nlc3Npb25JT1MoKQogICAgIFttX2ludGVycnVw
dGlvbk9ic2VydmVySGVscGVyIGNsZWFyQ2FsbGJhY2tdOwogfQogCi12b2lkIEF1ZGlvU2Vzc2lv
bklPUzo6c2V0Q2F0ZWdvcnkoQ2F0ZWdvcnlUeXBlIG5ld0NhdGVnb3J5LCBSb3V0ZVNoYXJpbmdQ
b2xpY3kgcG9saWN5KQorc3RhdGljIHZvaWQgY29uZmlndXJlQVZBdWRpb1Nlc3Npb25XaXRoQ2F0
ZWdvcnlBbmRQb2xpY3koQVZBdWRpb1Nlc3Npb24qIHNlc3Npb24sIEF1ZGlvU2Vzc2lvbkNhdGVn
b3J5IG5ld0NhdGVnb3J5LCBSb3V0ZVNoYXJpbmdQb2xpY3kgcG9saWN5KQogewotI2lmICFIQVZF
KFJPVVRFX1NIQVJJTkdfUE9MSUNZX0xPTkdfRk9STV9WSURFTykKLSAgICBpZiAocG9saWN5ID09
IFJvdXRlU2hhcmluZ1BvbGljeTo6TG9uZ0Zvcm1WaWRlbykKLSAgICAgICAgcG9saWN5ID0gUm91
dGVTaGFyaW5nUG9saWN5OjpMb25nRm9ybUF1ZGlvOwotI2VuZGlmCi0KLSAgICBMT0coTWVkaWEs
ICJBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5KCkgLSBjYXRlZ29yeSA9ICVzIiwgY29udmVydEVu
dW1lcmF0aW9uVG9TdHJpbmcobmV3Q2F0ZWdvcnkpLmFzY2lpKCkuZGF0YSgpKTsKLQotICAgIGlm
IChjYXRlZ29yeU92ZXJyaWRlKCkgIT0gIENhdGVnb3J5VHlwZTo6Tm9uZSAmJiBjYXRlZ29yeU92
ZXJyaWRlKCkgIT0gbmV3Q2F0ZWdvcnkpIHsKLSAgICAgICAgTE9HKE1lZGlhLCAiQXVkaW9TZXNz
aW9uOjpzZXRDYXRlZ29yeSgpIC0gb3ZlcnJpZGUgc2V0LCBOT1QgY2hhbmdpbmciKTsKLSAgICAg
ICAgcmV0dXJuOwotICAgIH0KLQogICAgIE5TU3RyaW5nICpjYXRlZ29yeVN0cmluZzsKICAgICBO
U1N0cmluZyAqY2F0ZWdvcnlNb2RlID0gQVZBdWRpb1Nlc3Npb25Nb2RlRGVmYXVsdDsKICAgICBB
VkF1ZGlvU2Vzc2lvbkNhdGVnb3J5T3B0aW9ucyBvcHRpb25zID0gMDsKIAogICAgIHN3aXRjaCAo
bmV3Q2F0ZWdvcnkpIHsKLSAgICBjYXNlIENhdGVnb3J5VHlwZTo6QW1iaWVudFNvdW5kOgorICAg
IGNhc2UgQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6OkFtYmllbnRTb3VuZDoKICAgICAgICAgY2F0ZWdv
cnlTdHJpbmcgPSBBVkF1ZGlvU2Vzc2lvbkNhdGVnb3J5QW1iaWVudDsKICAgICAgICAgYnJlYWs7
Ci0gICAgY2FzZSBDYXRlZ29yeVR5cGU6OlNvbG9BbWJpZW50U291bmQ6CisgICAgY2FzZSBBdWRp
b1Nlc3Npb25DYXRlZ29yeTo6U29sb0FtYmllbnRTb3VuZDoKICAgICAgICAgY2F0ZWdvcnlTdHJp
bmcgPSBBVkF1ZGlvU2Vzc2lvbkNhdGVnb3J5U29sb0FtYmllbnQ7CiAgICAgICAgIGJyZWFrOwot
ICAgIGNhc2UgQ2F0ZWdvcnlUeXBlOjpNZWRpYVBsYXliYWNrOgorICAgIGNhc2UgQXVkaW9TZXNz
aW9uQ2F0ZWdvcnk6Ok1lZGlhUGxheWJhY2s6CiAgICAgICAgIGNhdGVnb3J5U3RyaW5nID0gQVZB
dWRpb1Nlc3Npb25DYXRlZ29yeVBsYXliYWNrOworICAgICAgICBwb2xpY3kgPSBSb3V0ZVNoYXJp
bmdQb2xpY3k6OkxvbmdGb3JtQXVkaW87CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgQ2F0ZWdv
cnlUeXBlOjpSZWNvcmRBdWRpbzoKKyAgICBjYXNlIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpSZWNv
cmRBdWRpbzoKICAgICAgICAgY2F0ZWdvcnlTdHJpbmcgPSBBVkF1ZGlvU2Vzc2lvbkNhdGVnb3J5
UmVjb3JkOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIENhdGVnb3J5VHlwZTo6UGxheUFuZFJl
Y29yZDoKKyAgICBjYXNlIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpQbGF5QW5kUmVjb3JkOgogICAg
ICAgICBjYXRlZ29yeVN0cmluZyA9IEFWQXVkaW9TZXNzaW9uQ2F0ZWdvcnlQbGF5QW5kUmVjb3Jk
OwogICAgICAgICBjYXRlZ29yeU1vZGUgPSBBVkF1ZGlvU2Vzc2lvbk1vZGVWaWRlb0NoYXQ7CiAg
ICAgICAgIG9wdGlvbnMgfD0gQVZBdWRpb1Nlc3Npb25DYXRlZ29yeU9wdGlvbkFsbG93Qmx1ZXRv
b3RoIHwgQVZBdWRpb1Nlc3Npb25DYXRlZ29yeU9wdGlvbkFsbG93Qmx1ZXRvb3RoQTJEUCB8IEFW
QXVkaW9TZXNzaW9uQ2F0ZWdvcnlPcHRpb25EZWZhdWx0VG9TcGVha2VyIHwgQVZBdWRpb1Nlc3Np
b25DYXRlZ29yeU9wdGlvbkFsbG93QWlyUGxheTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBD
YXRlZ29yeVR5cGU6OkF1ZGlvUHJvY2Vzc2luZzoKKyAgICBjYXNlIEF1ZGlvU2Vzc2lvbkNhdGVn
b3J5OjpBdWRpb1Byb2Nlc3Npbmc6CiAgICAgICAgIGNhdGVnb3J5U3RyaW5nID0gQVZBdWRpb1Nl
c3Npb25DYXRlZ29yeUF1ZGlvUHJvY2Vzc2luZzsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBD
YXRlZ29yeVR5cGU6Ok5vbmU6CisgICAgY2FzZSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6Tm9uZToK
ICAgICAgICAgY2F0ZWdvcnlTdHJpbmcgPSBBVkF1ZGlvU2Vzc2lvbkNhdGVnb3J5QW1iaWVudDsK
ICAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgTlNFcnJvciAqZXJyb3IgPSBuaWw7Ci0gICAg
W1tQQUw6OmdldEFWQXVkaW9TZXNzaW9uQ2xhc3MoKSBzaGFyZWRJbnN0YW5jZV0gc2V0Q2F0ZWdv
cnk6Y2F0ZWdvcnlTdHJpbmcgbW9kZTpjYXRlZ29yeU1vZGUgcm91dGVTaGFyaW5nUG9saWN5OnN0
YXRpY19jYXN0PEFWQXVkaW9TZXNzaW9uUm91dGVTaGFyaW5nUG9saWN5Pihwb2xpY3kpIG9wdGlv
bnM6b3B0aW9ucyBlcnJvcjomZXJyb3JdOworICAgIFtzZXNzaW9uIHNldENhdGVnb3J5OmNhdGVn
b3J5U3RyaW5nIG1vZGU6Y2F0ZWdvcnlNb2RlIHJvdXRlU2hhcmluZ1BvbGljeTpzdGF0aWNfY2Fz
dDxBVkF1ZGlvU2Vzc2lvblJvdXRlU2hhcmluZ1BvbGljeT4ocG9saWN5KSBvcHRpb25zOm9wdGlv
bnMgZXJyb3I6JmVycm9yXTsKICNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWV9TSU1VTEFUT1IpICYm
ICFQTEFURk9STShNQUNDQVRBTFlTVCkKICAgICBBU1NFUlQoIWVycm9yKTsKICNlbmRpZgogfQog
Ci1BdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBBdWRpb1Nlc3Npb25JT1M6OmNhdGVnb3J5KCkg
Y29uc3QKK3ZvaWQgQXVkaW9TZXNzaW9uSU9TOjpzZXRDYXRlZ29yeShBdWRpb1Nlc3Npb25DYXRl
Z29yeSBuZXdDYXRlZ29yeSwgUm91dGVTaGFyaW5nUG9saWN5IHBvbGljeSkKK3sKKyNpZiAhSEFW
RShST1VURV9TSEFSSU5HX1BPTElDWV9MT05HX0ZPUk1fVklERU8pCisgICAgaWYgKHBvbGljeSA9
PSBSb3V0ZVNoYXJpbmdQb2xpY3k6OkxvbmdGb3JtVmlkZW8pCisgICAgICAgIHBvbGljeSA9IFJv
dXRlU2hhcmluZ1BvbGljeTo6TG9uZ0Zvcm1BdWRpbzsKKyNlbmRpZgorCisgICAgTE9HKE1lZGlh
LCAiQXVkaW9TZXNzaW9uOjpzZXRDYXRlZ29yeSgpIC0gY2F0ZWdvcnkgPSAlcyIsIGNvbnZlcnRF
bnVtZXJhdGlvblRvU3RyaW5nKG5ld0NhdGVnb3J5KS5hc2NpaSgpLmRhdGEoKSk7CisKKyAgICBp
ZiAoY2F0ZWdvcnlPdmVycmlkZSgpICE9ICBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6Tm9uZSAmJiBj
YXRlZ29yeU92ZXJyaWRlKCkgIT0gbmV3Q2F0ZWdvcnkpIHsKKyAgICAgICAgTE9HKE1lZGlhLCAi
QXVkaW9TZXNzaW9uOjpzZXRDYXRlZ29yeSgpIC0gb3ZlcnJpZGUgc2V0LCBOT1QgY2hhbmdpbmci
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGNvbmZpZ3VyZUFWQXVkaW9TZXNzaW9u
V2l0aENhdGVnb3J5QW5kUG9saWN5KFtQQUw6OmdldEFWQXVkaW9TZXNzaW9uQ2xhc3MoKSBzaGFy
ZWRJbnN0YW5jZV0sIG5ld0NhdGVnb3J5LCBwb2xpY3kpOworfQorCitBdWRpb1Nlc3Npb25DYXRl
Z29yeSBBdWRpb1Nlc3Npb25JT1M6OmNhdGVnb3J5KCkgY29uc3QKIHsKICAgICBOU1N0cmluZyAq
Y2F0ZWdvcnlTdHJpbmcgPSBbW1BBTDo6Z2V0QVZBdWRpb1Nlc3Npb25DbGFzcygpIHNoYXJlZElu
c3RhbmNlXSBjYXRlZ29yeV07CiAgICAgaWYgKFtjYXRlZ29yeVN0cmluZyBpc0VxdWFsOkFWQXVk
aW9TZXNzaW9uQ2F0ZWdvcnlBbWJpZW50XSkKLSAgICAgICAgcmV0dXJuIENhdGVnb3J5VHlwZTo6
QW1iaWVudFNvdW5kOworICAgICAgICByZXR1cm4gQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6OkFtYmll
bnRTb3VuZDsKICAgICBpZiAoW2NhdGVnb3J5U3RyaW5nIGlzRXF1YWw6QVZBdWRpb1Nlc3Npb25D
YXRlZ29yeVNvbG9BbWJpZW50XSkKLSAgICAgICAgcmV0dXJuIENhdGVnb3J5VHlwZTo6U29sb0Ft
YmllbnRTb3VuZDsKKyAgICAgICAgcmV0dXJuIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpTb2xvQW1i
aWVudFNvdW5kOwogICAgIGlmIChbY2F0ZWdvcnlTdHJpbmcgaXNFcXVhbDpBVkF1ZGlvU2Vzc2lv
bkNhdGVnb3J5UGxheWJhY2tdKQotICAgICAgICByZXR1cm4gQ2F0ZWdvcnlUeXBlOjpNZWRpYVBs
YXliYWNrOworICAgICAgICByZXR1cm4gQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6Ok1lZGlhUGxheWJh
Y2s7CiAgICAgaWYgKFtjYXRlZ29yeVN0cmluZyBpc0VxdWFsOkFWQXVkaW9TZXNzaW9uQ2F0ZWdv
cnlSZWNvcmRdKQotICAgICAgICByZXR1cm4gQ2F0ZWdvcnlUeXBlOjpSZWNvcmRBdWRpbzsKKyAg
ICAgICAgcmV0dXJuIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpSZWNvcmRBdWRpbzsKICAgICBpZiAo
W2NhdGVnb3J5U3RyaW5nIGlzRXF1YWw6QVZBdWRpb1Nlc3Npb25DYXRlZ29yeVBsYXlBbmRSZWNv
cmRdKQotICAgICAgICByZXR1cm4gQ2F0ZWdvcnlUeXBlOjpQbGF5QW5kUmVjb3JkOworICAgICAg
ICByZXR1cm4gQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6OlBsYXlBbmRSZWNvcmQ7CiAgICAgaWYgKFtj
YXRlZ29yeVN0cmluZyBpc0VxdWFsOkFWQXVkaW9TZXNzaW9uQ2F0ZWdvcnlBdWRpb1Byb2Nlc3Np
bmddKQotICAgICAgICByZXR1cm4gQ2F0ZWdvcnlUeXBlOjpBdWRpb1Byb2Nlc3Npbmc7Ci0gICAg
cmV0dXJuIENhdGVnb3J5VHlwZTo6Tm9uZTsKKyAgICAgICAgcmV0dXJuIEF1ZGlvU2Vzc2lvbkNh
dGVnb3J5OjpBdWRpb1Byb2Nlc3Npbmc7CisgICAgcmV0dXJuIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5
OjpOb25lOwogfQogCiBSb3V0ZVNoYXJpbmdQb2xpY3kgQXVkaW9TZXNzaW9uSU9TOjpyb3V0ZVNo
YXJpbmdQb2xpY3koKSBjb25zdApAQCAtMzAwLDYgKzMwNiwxNyBAQCB2b2lkIEF1ZGlvU2Vzc2lv
bklPUzo6aGFuZGxlTXV0ZWRTdGF0ZUNoYW5nZSgpCiB7CiB9CiAKK0FWQXVkaW9TZXNzaW9uICpB
dWRpb1Nlc3Npb25JT1M6OmF1ZGlvU2Vzc2lvbkZvckNhdGVnb3J5KEF1ZGlvU2Vzc2lvbkNhdGVn
b3J5IGNhdGVnb3J5KQoreworICAgIGF1dG8gcmVzdWx0cyA9IG1fYXV4aWxpYXJ5U2Vzc2lvbnMu
ZW5zdXJlKGNhdGVnb3J5LCBbJl0geworICAgICAgICBhdXRvIGF1eFNlc3Npb24gPSBhZG9wdE5T
KFtbUEFMOjpnZXRBVkF1ZGlvU2Vzc2lvbkNsYXNzKCkgYWxsb2NdIGluaXRBdXhpbGlhcnlTZXNz
aW9uXSk7CisgICAgICAgIGNvbmZpZ3VyZUFWQXVkaW9TZXNzaW9uV2l0aENhdGVnb3J5QW5kUG9s
aWN5KGF1eFNlc3Npb24uZ2V0KCksIGNhdGVnb3J5LCBSb3V0ZVNoYXJpbmdQb2xpY3k6OkRlZmF1
bHQpOworICAgICAgICByZXR1cm4gYXV4U2Vzc2lvbjsKKyAgICB9KTsKKworICAgIHJldHVybiBy
ZXN1bHRzLml0ZXJhdG9yLT52YWx1ZS5nZXQoKTsKK30KKwogfQogCiAjZW5kaWYgLy8gVVNFKEFV
RElPX1NFU1NJT04pICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9TZXNzaW9uTWFjLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9TZXNzaW9uTWFjLmgKaW5kZXggNGQ1ZWZlYjQx
ODMwODkyNTAxNzg5YjBmOTA0MDNiMGZkYjQ2OGY2OS4uMTNlNjU0MTc1NGQ4N2VhMjg0NThmYmY4
M2Y3OGVjMTM3MjMxMjU4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vbWFjL0F1ZGlvU2Vzc2lvbk1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL21hYy9BdWRpb1Nlc3Npb25NYWMuaApAQCAtNDksMTAgKzQ5LDEwIEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBoYW5kbGVCdWZmZXJTaXplQ2hhbmdlKCkgY29uc3Q7CiAKICAgICAvLyBBdWRpb1Nl
c3Npb24KLSAgICBDYXRlZ29yeVR5cGUgY2F0ZWdvcnkoKSBjb25zdCBmaW5hbCB7IHJldHVybiBt
X2NhdGVnb3J5OyB9CisgICAgQXVkaW9TZXNzaW9uQ2F0ZWdvcnkgY2F0ZWdvcnkoKSBjb25zdCBm
aW5hbCB7IHJldHVybiBtX2NhdGVnb3J5OyB9CiAgICAgdm9pZCBhdWRpb091dHB1dERldmljZUNo
YW5nZWQoKSBmaW5hbDsKICAgICB2b2lkIHNldElzUGxheWluZ1RvQmx1ZXRvb3RoT3ZlcnJpZGUo
c3RkOjpvcHRpb25hbDxib29sPikgZmluYWw7Ci0gICAgdm9pZCBzZXRDYXRlZ29yeShDYXRlZ29y
eVR5cGUsIFJvdXRlU2hhcmluZ1BvbGljeSkgZmluYWw7CisgICAgdm9pZCBzZXRDYXRlZ29yeShB
dWRpb1Nlc3Npb25DYXRlZ29yeSwgUm91dGVTaGFyaW5nUG9saWN5KSBmaW5hbDsKICAgICBmbG9h
dCBzYW1wbGVSYXRlKCkgY29uc3QgZmluYWw7CiAgICAgc2l6ZV90IGJ1ZmZlclNpemUoKSBjb25z
dCBmaW5hbDsKICAgICBzaXplX3QgbnVtYmVyT2ZPdXRwdXRDaGFubmVscygpIGNvbnN0IGZpbmFs
OwpAQCAtNjksNyArNjksNyBAQCBwcml2YXRlOgogCiAgICAgc3RkOjpvcHRpb25hbDxib29sPiBt
X2xhc3RNdXRlZFN0YXRlOwogICAgIG11dGFibGUgV2Vha0hhc2hTZXQ8Q29uZmlndXJhdGlvbkNo
YW5nZU9ic2VydmVyPiBtX2NvbmZpZ3VyYXRpb25DaGFuZ2VPYnNlcnZlcnM7Ci0gICAgQXVkaW9T
ZXNzaW9uOjpDYXRlZ29yeVR5cGUgbV9jYXRlZ29yeSB7IEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlU
eXBlOjpOb25lIH07CisgICAgQXVkaW9TZXNzaW9uQ2F0ZWdvcnkgbV9jYXRlZ29yeSB7IEF1ZGlv
U2Vzc2lvbkNhdGVnb3J5OjpOb25lIH07CiAjaWYgRU5BQkxFKFJPVVRJTkdfQVJCSVRSQVRJT04p
CiAgICAgYm9vbCBtX3NldHVwQXJiaXRyYXRpb25PbmdvaW5nIHsgZmFsc2UgfTsKICAgICBib29s
IG1faW5Sb3V0aW5nQXJiaXRyYXRpb24geyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvU2Vzc2lvbk1hYy5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb1Nlc3Npb25NYWMubW0KaW5kZXggZDA0YzgzZDNh
MGE2YjlmNjkwYTI0ZDQ3YTk0ODg3YzRiMTg3YmVkZC4uNGNjYjE5ZDU3ZGU1ZDc5MTU1YWYzNGNh
ODI1OTlhMmYzYWFhMGJiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vbWFjL0F1ZGlvU2Vzc2lvbk1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9tYWMvQXVkaW9TZXNzaW9uTWFjLm1tCkBAIC0yMDksNyArMjA5LDcgQEAgdm9pZCBBdWRp
b1Nlc3Npb25NYWM6OnNldElzUGxheWluZ1RvQmx1ZXRvb3RoT3ZlcnJpZGUoc3RkOjpvcHRpb25h
bDxib29sPiB2YWx1ZSkKICNlbmRpZgogfQogCi12b2lkIEF1ZGlvU2Vzc2lvbk1hYzo6c2V0Q2F0
ZWdvcnkoQ2F0ZWdvcnlUeXBlIGNhdGVnb3J5LCBSb3V0ZVNoYXJpbmdQb2xpY3kpCit2b2lkIEF1
ZGlvU2Vzc2lvbk1hYzo6c2V0Q2F0ZWdvcnkoQXVkaW9TZXNzaW9uQ2F0ZWdvcnkgY2F0ZWdvcnks
IFJvdXRlU2hhcmluZ1BvbGljeSkKIHsKICNpZiBFTkFCTEUoUk9VVElOR19BUkJJVFJBVElPTikK
ICAgICBib29sIHBsYXlpbmdUb0JsdWV0b290aCA9IGRlZmF1bHREZXZpY2VUcmFuc3BvcnRJc0Js
dWV0b290aCgpOwpAQCAtMjMxLDcgKzIzMSw3IEBAIHZvaWQgQXVkaW9TZXNzaW9uTWFjOjpzZXRD
YXRlZ29yeShDYXRlZ29yeVR5cGUgY2F0ZWdvcnksIFJvdXRlU2hhcmluZ1BvbGljeSkKICAgICAg
ICAgbV9yb3V0aW5nQXJiaXRyYXRpb25DbGllbnQtPmxlYXZlUm91dGluZ0Ficml0cmF0aW9uKCk7
CiAgICAgfQogCi0gICAgaWYgKGNhdGVnb3J5ID09IENhdGVnb3J5VHlwZTo6QW1iaWVudFNvdW5k
IHx8IGNhdGVnb3J5ID09IENhdGVnb3J5VHlwZTo6U29sb0FtYmllbnRTb3VuZCB8fCBjYXRlZ29y
eSA9PSBDYXRlZ29yeVR5cGU6OkF1ZGlvUHJvY2Vzc2luZyB8fCBjYXRlZ29yeSA9PSBDYXRlZ29y
eVR5cGU6Ok5vbmUpCisgICAgaWYgKGNhdGVnb3J5ID09IEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpB
bWJpZW50U291bmQgfHwgY2F0ZWdvcnkgPT0gQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6OlNvbG9BbWJp
ZW50U291bmQgfHwgY2F0ZWdvcnkgPT0gQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6OkF1ZGlvUHJvY2Vz
c2luZyB8fCBjYXRlZ29yeSA9PSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6Tm9uZSkKICAgICAgICAg
cmV0dXJuOwogCiAgICAgdXNpbmcgUm91dGluZ0FyYml0cmF0aW9uRXJyb3IgPSBBdWRpb1Nlc3Np
b25Sb3V0aW5nQXJiaXRyYXRpb25DbGllbnQ6OlJvdXRpbmdBcmJpdHJhdGlvbkVycm9yOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL1NoYXJlZFJvdXRpbmdB
cmJpdHJhdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvU2hhcmVkUm91
dGluZ0FyYml0cmF0b3IuaAppbmRleCA3OTM5M2ViMDRkMjI5YzA4NGM4Y2RhMjY0YjhlNDY5ZmYz
MzQ1ZWU0Li5hZjRhZTIzYjIzOGM5ZGI3OGRlM2U5ZGI1NDE5ZTc1ZmQzMDIxMDVhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvU2hhcmVkUm91dGluZ0FyYml0
cmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvU2hhcmVkUm91
dGluZ0FyYml0cmF0b3IuaApAQCAtNTAsMTEgKzUwLDExIEBAIHB1YmxpYzoKICAgICB9OwogCiAg
ICAgYm9vbCBpc0luUm91dGluZ0FyYml0cmF0aW9uRm9yVG9rZW4oY29uc3QgVG9rZW4mKTsKLSAg
ICB2b2lkIGJlZ2luUm91dGluZ0FyYml0cmF0aW9uRm9yVG9rZW4oY29uc3QgVG9rZW4mLCBBdWRp
b1Nlc3Npb246OkNhdGVnb3J5VHlwZSwgQXJiaXRyYXRpb25DYWxsYmFjayYmKTsKKyAgICB2b2lk
IGJlZ2luUm91dGluZ0FyYml0cmF0aW9uRm9yVG9rZW4oY29uc3QgVG9rZW4mLCBBdWRpb1Nlc3Np
b25DYXRlZ29yeSwgQXJiaXRyYXRpb25DYWxsYmFjayYmKTsKICAgICB2b2lkIGVuZFJvdXRpbmdB
cmJpdHJhdGlvbkZvclRva2VuKGNvbnN0IFRva2VuJik7CiAKIHByaXZhdGU6Ci0gICAgc3RkOjpv
cHRpb25hbDxBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZT4gbV9jdXJyZW50Q2F0ZWdvcnkgeyBB
dWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6Tm9uZSB9OworICAgIHN0ZDo6b3B0aW9uYWw8QXVk
aW9TZXNzaW9uQ2F0ZWdvcnk+IG1fY3VycmVudENhdGVnb3J5IHsgQXVkaW9TZXNzaW9uQ2F0ZWdv
cnk6Ok5vbmUgfTsKICAgICBXZWFrSGFzaFNldDxUb2tlbj4gbV90b2tlbnM7CiAgICAgVmVjdG9y
PEFyYml0cmF0aW9uQ2FsbGJhY2s+IG1fZW5xdWV1ZWRDYWxsYmFja3M7CiAgICAgYm9vbCBtX3Nl
dHVwQXJiaXRyYXRpb25PbmdvaW5nIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9TaGFyZWRSb3V0aW5nQXJiaXRyYXRvci5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9TaGFyZWRSb3V0aW5nQXJiaXRyYXRvci5tbQpp
bmRleCBkZDk0NWVjODA3ZTY3M2QwMWYyN2MxMmEyNTE2NzA5NTg4MzViODkzLi5hMDVhZjE1ODkw
YTlmZDAyMjIwNjBhMWMzMmY3N2E5YmQ0ZjVmZWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9tYWMvU2hhcmVkUm91dGluZ0FyYml0cmF0b3IubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL1NoYXJlZFJvdXRpbmdBcmJpdHJhdG9yLm1t
CkBAIC01MCw3ICs1MCw3IEBAIGJvb2wgU2hhcmVkUm91dGluZ0FyYml0cmF0b3I6OmlzSW5Sb3V0
aW5nQXJiaXRyYXRpb25Gb3JUb2tlbihjb25zdCBUb2tlbiYgdG9rZW4pCiAgICAgcmV0dXJuIG1f
dG9rZW5zLmNvbnRhaW5zKHRva2VuKTsKIH0KIAotdm9pZCBTaGFyZWRSb3V0aW5nQXJiaXRyYXRv
cjo6YmVnaW5Sb3V0aW5nQXJiaXRyYXRpb25Gb3JUb2tlbihjb25zdCBUb2tlbiYgdG9rZW4sIEF1
ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIHJlcXVlc3RlZENhdGVnb3J5LCBBcmJpdHJhdGlvbkNh
bGxiYWNrJiYgY2FsbGJhY2spCit2b2lkIFNoYXJlZFJvdXRpbmdBcmJpdHJhdG9yOjpiZWdpblJv
dXRpbmdBcmJpdHJhdGlvbkZvclRva2VuKGNvbnN0IFRva2VuJiB0b2tlbiwgQXVkaW9TZXNzaW9u
Q2F0ZWdvcnkgcmVxdWVzdGVkQ2F0ZWdvcnksIEFyYml0cmF0aW9uQ2FsbGJhY2smJiBjYWxsYmFj
aykKIHsKICAgICBBU1NFUlQoIWlzSW5Sb3V0aW5nQXJiaXRyYXRpb25Gb3JUb2tlbih0b2tlbikp
OwogCkBAIC03OSwxMyArNzksMTMgQEAgdm9pZCBTaGFyZWRSb3V0aW5nQXJiaXRyYXRvcjo6YmVn
aW5Sb3V0aW5nQXJiaXRyYXRpb25Gb3JUb2tlbihjb25zdCBUb2tlbiYgdG9rZW4KIAogICAgIEFW
QXVkaW9Sb3V0aW5nQXJiaXRyYXRpb25DYXRlZ29yeSBhcmJpdHJhdGlvbkNhdGVnb3J5ID0gQVZB
dWRpb1JvdXRpbmdBcmJpdHJhdGlvbkNhdGVnb3J5UGxheWJhY2s7CiAgICAgc3dpdGNoIChyZXF1
ZXN0ZWRDYXRlZ29yeSkgewotICAgIGNhc2UgQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6Ok1l
ZGlhUGxheWJhY2s6CisgICAgY2FzZSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6TWVkaWFQbGF5YmFj
azoKICAgICAgICAgYXJiaXRyYXRpb25DYXRlZ29yeSA9IEFWQXVkaW9Sb3V0aW5nQXJiaXRyYXRp
b25DYXRlZ29yeVBsYXliYWNrOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIEF1ZGlvU2Vzc2lv
bjo6Q2F0ZWdvcnlUeXBlOjpSZWNvcmRBdWRpbzoKKyAgICBjYXNlIEF1ZGlvU2Vzc2lvbkNhdGVn
b3J5OjpSZWNvcmRBdWRpbzoKICAgICAgICAgYXJiaXRyYXRpb25DYXRlZ29yeSA9IEFWQXVkaW9S
b3V0aW5nQXJiaXRyYXRpb25DYXRlZ29yeVBsYXlBbmRSZWNvcmQ7CiAgICAgICAgIGJyZWFrOwot
ICAgIGNhc2UgQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6OlBsYXlBbmRSZWNvcmQ6CisgICAg
Y2FzZSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6UGxheUFuZFJlY29yZDoKICAgICAgICAgYXJiaXRy
YXRpb25DYXRlZ29yeSA9IEFWQXVkaW9Sb3V0aW5nQXJiaXRyYXRpb25DYXRlZ29yeVBsYXlBbmRS
ZWNvcmRWb2ljZTsKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAppbmRleCA4NDdjYWVkYWY4
NGYyZmIwZDA4OTUzZjhjMDI5ODc4ZjEwYjViMjMzLi43YTMyNjUwMzNiOTQ3YjViZTY4YzA2MjMw
MjZmZjMwMTI4YzQyODE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXIuY3BwCkBAIC0xNjkzLDYgKzE2OTMsMTYgQEAgdm9pZCBNZWRpYVBsYXll
cjo6YXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCkKICAgICBtX3ByaXZhdGUtPmF1ZGlvT3V0cHV0
RGV2aWNlQ2hhbmdlZCgpOwogfQogCitib29sIE1lZGlhUGxheWVyOjpzdXBwb3J0c1NldEF1ZGlv
U2Vzc2lvbkNhdGVnb3J5KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcml2YXRlLT5zdXBwb3J0
c1NldEF1ZGlvU2Vzc2lvbkNhdGVnb3J5KCk7Cit9CisKK3ZvaWQgTWVkaWFQbGF5ZXI6OnNldEF1
ZGlvU2Vzc2lvbkNhdGVnb3J5KEF1ZGlvU2Vzc2lvbkNhdGVnb3J5IGNhdGVnb3J5KQoreworICAg
IG1fcHJpdmF0ZS0+c2V0QXVkaW9TZXNzaW9uQ2F0ZWdvcnkoY2F0ZWdvcnkpOworfQorCiBNZWRp
YVBsYXllcklkZW50aWZpZXIgTWVkaWFQbGF5ZXI6OmlkZW50aWZpZXIoKSBjb25zdAogewogICAg
IHJldHVybiBtX3ByaXZhdGUtPmlkZW50aWZpZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCmluZGV4IDRhMWY0MTUzMDU2MTE0NWU2ZjY1NTZk
OTZlNTUxZWY5MzE4MmQyODYuLmUwYjg2ZDhlNmU2YTk5ZjViMDZiNmI2ZmNhOWEyODZkM2M0NDc4
OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIu
aApAQCAtNjc2LDYgKzY3Niw5IEBAIHB1YmxpYzoKICAgICBTdHJpbmcgYXVkaW9PdXRwdXREZXZp
Y2VJZE92ZXJyaWRlKCkgY29uc3Q7CiAgICAgdm9pZCBhdWRpb091dHB1dERldmljZUNoYW5nZWQo
KTsKIAorICAgIGJvb2wgc3VwcG9ydHNTZXRBdWRpb1Nlc3Npb25DYXRlZ29yeSgpIGNvbnN0Owor
ICAgIHZvaWQgc2V0QXVkaW9TZXNzaW9uQ2F0ZWdvcnkoQXVkaW9TZXNzaW9uQ2F0ZWdvcnkpOwor
CiAgICAgTWVkaWFQbGF5ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdDsKICAgICBib29s
IGhhc01lZGlhRW5naW5lKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKaW5kZXggMDg2NDNhMDc3MjY2MjZm
NmMwYmQ5MjJhZTE3ZjJmNmQ5YmM3ZjlmNi4uODcxNjc1N2EwZDJlNTYxZWZmZWEwODk5MmVlN2E4
NzAyYzdjYzM5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2lmIEVOQUJMRShW
SURFTykKIAorI2luY2x1ZGUgIkF1ZGlvU2Vzc2lvbi5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVy
LmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiUGxhdGZv
cm1UaW1lUmFuZ2VzLmgiCkBAIC0zMTUsNiArMzE2LDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IGJvb2wgc3VwcG9ydHNQYXVzZUF0SG9zdFRpbWUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQog
ICAgIHZpcnR1YWwgYm9vbCBwbGF5QXRIb3N0VGltZShjb25zdCBNb25vdG9uaWNUaW1lJikgeyBy
ZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgcGF1c2VBdEhvc3RUaW1lKGNvbnN0IE1v
bm90b25pY1RpbWUmKSB7IHJldHVybiBmYWxzZTsgfQorCisgICAgdmlydHVhbCBib29sIHN1cHBv
cnRzU2V0QXVkaW9TZXNzaW9uQ2F0ZWdvcnkoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAg
IHZpcnR1YWwgdm9pZCBzZXRBdWRpb1Nlc3Npb25DYXRlZ29yeShBdWRpb1Nlc3Npb25DYXRlZ29y
eSkgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorCiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
LmgKaW5kZXggMGRkZGFjOTM5NjAyNDRhOWNjYTE1Y2U5N2ZlYmEwYmI0MjM5ZGJiYy4uNWQ1NmIx
YzRmOTNiODdkYTY2MTc2NjFkNjU0NjI4ZDZhMmQ5ODkwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMu
aApAQCAtMzM0LDYgKzMzNCwxMSBAQCBwcml2YXRlOgogICAgIGJvb2wgcGxheUF0SG9zdFRpbWUo
Y29uc3QgTW9ub3RvbmljVGltZSYpIGZpbmFsOwogICAgIGJvb2wgcGF1c2VBdEhvc3RUaW1lKGNv
bnN0IE1vbm90b25pY1RpbWUmKSBmaW5hbDsKIAorI2lmIFVTRShBVURJT19TRVNTSU9OKSAmJiBQ
TEFURk9STShJT1NfRkFNSUxZKQorICAgIGJvb2wgc3VwcG9ydHNTZXRBdWRpb1Nlc3Npb25DYXRl
Z29yeSgpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgc2V0QXVkaW9TZXNzaW9uQ2F0ZWdvcnkoQXVk
aW9TZXNzaW9uQ2F0ZWdvcnkpIGZpbmFsOworI2VuZGlmCisKICAgICBSZXRhaW5QdHI8QVZVUkxB
c3NldD4gbV9hdkFzc2V0OwogICAgIFJldGFpblB0cjxBVlBsYXllcj4gbV9hdlBsYXllcjsKICAg
ICBSZXRhaW5QdHI8QVZQbGF5ZXJJdGVtPiBtX2F2UGxheWVySXRlbTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDLm1tCmluZGV4IDVlMTI1OWU5NTM1MzMxODAxY2I5NTY0MzM0N2UyNTRiYjc0YzIyYjEuLjE2
ZGQwMTY4ZTRjZGQwOTliN2M4YmMzOTI2YmQxZDA3ZWZiNTI5YzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQy5tbQpAQCAtMTA2LDYgKzEwNiw3IEBACiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpCisjaW1wb3J0ICJBdWRpb1Nlc3Npb25JT1MuaCIKICNpbXBvcnQgIkxvY2FsaXplZERl
dmljZU1vZGVsLmgiCiAjaW1wb3J0ICJXQUtBcHBLaXRTdHVicy5oIgogI2ltcG9ydCA8Q29yZUlt
YWdlL0NvcmVJbWFnZS5oPgpAQCAtMzU5Myw2ICszNTk0LDI2IEBAIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6YXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCkKICNlbmRp
ZgogfQogCisjaWYgVVNFKEFVRElPX1NFU1NJT04pICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCiti
b29sIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnN1cHBvcnRzU2V0QXVkaW9T
ZXNzaW9uQ2F0ZWdvcnkoKSBjb25zdAoreworICAgIGlmICghaXM8QXVkaW9TZXNzaW9uSU9TPihB
dWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICByZXR1cm4gW1BBTDo6Z2V0QVZQbGF5ZXJDbGFzcygpIGNvbmZvcm1zVG9Qcm90b2NvbDpAcHJv
dG9jb2woQVZBdWRpb1Nlc3Npb25QYXJ0aWNpcGFudCldOworfQorCit2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNldEF1ZGlvU2Vzc2lvbkNhdGVnb3J5KEF1ZGlvU2Vz
c2lvbkNhdGVnb3J5IGNhdGVnb3J5KQoreworICAgIEFTU0VSVChzdXBwb3J0c1NldEF1ZGlvU2Vz
c2lvbkNhdGVnb3J5KCkpOworICAgIGlmICghc3VwcG9ydHNTZXRBdWRpb1Nlc3Npb25DYXRlZ29y
eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsIGNh
dGVnb3J5KTsKKyAgICBhdXRvJiBhdWRpb1Nlc3Npb25JT1MgPSBkb3duY2FzdDxBdWRpb1Nlc3Np
b25JT1M+KEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpKTsKKyAgICBbbV9hdlBsYXllciBz
ZXRBdWRpb1Nlc3Npb246YXVkaW9TZXNzaW9uSU9TLmF1ZGlvU2Vzc2lvbkZvckNhdGVnb3J5KGNh
dGVnb3J5KV07Cit9CisjZW5kaWYKKwogTlNBcnJheSogYXNzZXRNZXRhZGF0YUtleU5hbWVzKCkK
IHsKICAgICBzdGF0aWMgTlNBcnJheSoga2V5cyA9IFtbTlNBcnJheSBhbGxvY10gaW5pdFdpdGhP
YmplY3RzOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaAppbmRleCA4ZDAyNWQyNjRjODRkNzk3N2Zm
M2M0MGE1OTAxZjk2YjRjN2Q3NGFlLi5iMTEzMGI1NjQ5YzkwMzM2MTgyMzc5OTk1MTg5NmM0NDQx
OGJiMDczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaApAQCAtMjc0LDYgKzI3NCwxMSBAQCBw
cml2YXRlOgogICAgIGJvb2wgcGF1c2VBdEhvc3RUaW1lKGNvbnN0IE1vbm90b25pY1RpbWUmKSBm
aW5hbDsKICNlbmRpZgogCisjaWYgVVNFKEFVRElPX1NFU1NJT04pICYmIFBMQVRGT1JNKElPU19G
QU1JTFkpCisgICAgYm9vbCBzdXBwb3J0c1NldEF1ZGlvU2Vzc2lvbkNhdGVnb3J5KCkgY29uc3Qg
ZmluYWw7CisgICAgdm9pZCBzZXRBdWRpb1Nlc3Npb25DYXRlZ29yeShBdWRpb1Nlc3Npb25DYXRl
Z29yeSkgZmluYWw7CisjZW5kaWYKKwogICAgIGZyaWVuZCBjbGFzcyBNZWRpYVNvdXJjZVByaXZh
dGVBVkZPYmpDOwogCiAgICAgc3RydWN0IFBlbmRpbmdTZWVrIHsKQEAgLTM0NCw2ICszNDksOSBA
QCBwcml2YXRlOgogICAgIGNvbnN0IHZvaWQqIG1fbG9nSWRlbnRpZmllcjsKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8VmlkZW9MYXllck1hbmFnZXJPYmpDPiBtX3ZpZGVvTGF5ZXJNYW5hZ2VyOwogICAg
IFJlZjxFZmZlY3RpdmVSYXRlQ2hhbmdlZExpc3RlbmVyPiBtX2VmZmVjdGl2ZVJhdGVDaGFuZ2Vk
TGlzdGVuZXI7CisjaWYgVVNFKEFVRElPX1NFU1NJT04pICYmIFBMQVRGT1JNKElPU19GQU1JTFkp
CisgICAgc3RkOjpvcHRpb25hbDxBdWRpb1Nlc3Npb25DYXRlZ29yeT4gbV9hdWRpb1Nlc3Npb25D
YXRlZ29yeTsKKyNlbmRpZgogfTsKIAogU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5n
KE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6U2Vla1N0YXRlKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQy5tbQppbmRleCAyYTcyYTM1NTA4OTAyMDA0MTc3YTQ0ODcxY2RiNzg1
NTc3ZTYxNjU4Li5kMzM4ZDE5ZTQ2YmIyNmYyODg3YmJlNjc5ZTI3YmE4NGYwNWQzM2YwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCkBAIC01NCw2ICs1NCwxMCBAQAogI2ltcG9ydCA8d3Rm
L05ldmVyRGVzdHJveWVkLmg+CiAjaW1wb3J0IDx3dGYvV2Vha1B0ci5oPgogCisjaWYgVVNFKEFV
RElPX1NFU1NJT04pICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCisjaW1wb3J0ICJBdWRpb1Nlc3Np
b25JT1MuaCIKKyNlbmRpZgorCiAjaW1wb3J0ICJDb3JlVmlkZW9Tb2Z0TGluay5oIgogI2ltcG9y
dCA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAjaW1wb3J0IDxwYWwvY29jb2EvQVZGb3Vu
ZGF0aW9uU29mdExpbmsuaD4KQEAgLTEyNTYsNiArMTI2MCwxMSBAQCBBTExPV19ORVdfQVBJX1dJ
VEhPVVRfR1VBUkRTX0VORAogICAgIH0KICNlbmRpZgogCisjaWYgVVNFKEFVRElPX1NFU1NJT04p
ICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgaWYgKG1fYXVkaW9TZXNzaW9uQ2F0ZWdvcnkg
JiYgc3VwcG9ydHNTZXRBdWRpb1Nlc3Npb25DYXRlZ29yeSgpKQorICAgICAgICBhdWRpb1JlbmRl
cmVyLmF1ZGlvU2Vzc2lvbiA9IGRvd25jYXN0PEF1ZGlvU2Vzc2lvbklPUz4oQXVkaW9TZXNzaW9u
OjpzaGFyZWRTZXNzaW9uKCkpLmF1ZGlvU2Vzc2lvbkZvckNhdGVnb3J5KCptX2F1ZGlvU2Vzc2lv
bkNhdGVnb3J5KTsKKyNlbmRpZgorCiAgICAgQHRyeSB7CiAgICAgICAgIFttX3N5bmNocm9uaXpl
ciBhZGRSZW5kZXJlcjphdWRpb1JlbmRlcmVyXTsKICAgICB9IEBjYXRjaChOU0V4Y2VwdGlvbiAq
ZXhjZXB0aW9uKSB7CkBAIC0xMzgzLDYgKzEzOTIsMzMgQEAgdm9pZCBNZWRpYVBsYXllclByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakM6OmF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCgpCiAjZW5kaWYK
IH0KIAorI2lmIFVTRShBVURJT19TRVNTSU9OKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQorYm9v
bCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnN1cHBvcnRzU2V0QXVkaW9T
ZXNzaW9uQ2F0ZWdvcnkoKSBjb25zdAoreworICAgIGlmICghaXM8QXVkaW9TZXNzaW9uSU9TPihB
dWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICByZXR1cm4gW1BBTDo6Z2V0QVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyQ2xhc3MoKSBjb25m
b3Jtc1RvUHJvdG9jb2w6QHByb3RvY29sKEFWQXVkaW9TZXNzaW9uUGFydGljaXBhbnQpXTsKK30K
Kwordm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNldEF1ZGlvU2Vz
c2lvbkNhdGVnb3J5KEF1ZGlvU2Vzc2lvbkNhdGVnb3J5IGNhdGVnb3J5KQoreworICAgIEFTU0VS
VChzdXBwb3J0c1NldEF1ZGlvU2Vzc2lvbkNhdGVnb3J5KCkpOworICAgIGlmICghc3VwcG9ydHNT
ZXRBdWRpb1Nlc3Npb25DYXRlZ29yeSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoY2F0
ZWdvcnkgPT0gbV9hdWRpb1Nlc3Npb25DYXRlZ29yeSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
bV9hdWRpb1Nlc3Npb25DYXRlZ29yeSA9IGNhdGVnb3J5OworCisgICAgQUxXQVlTX0xPRyhMT0dJ
REVOVElGSUVSLCBjYXRlZ29yeSk7CisgICAgYXV0byogYXZBdWRpb1Nlc3Npb24gPSBkb3duY2Fz
dDxBdWRpb1Nlc3Npb25JT1M+KEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpKS5hdWRpb1Nl
c3Npb25Gb3JDYXRlZ29yeShjYXRlZ29yeSk7CisgICAgZm9yIChjb25zdCBhdXRvJiBrZXkgOiBt
X3NhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXJNYXAua2V5cygpKQorICAgICAgICBbKF9fYnJpZGdl
IEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlciAqKWtleS5nZXQoKSBzZXRBdWRpb1Nlc3Npb246
YXZBdWRpb1Nlc3Npb25dOworfQorI2VuZGlmCisKKwogV1RGTG9nQ2hhbm5lbCYgTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpsb2dDaGFubmVsKCkgY29uc3QKIHsKICAgICBy
ZXR1cm4gTG9nTWVkaWFTb3VyY2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvQmFzZUF1ZGlvU2hhcmVkVW5pdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQmFzZUF1ZGlvU2hhcmVkVW5pdC5jcHAKaW5kZXgg
YTJiZTUyMjUzNDcyMTVkNGU3NzkwMDdiNjY2NjAyMzY4MGQ4N2IyNi4uNWYyNGJkOGY5NGUxMGMz
MDVhMTY2MGIxOTJiZmRlYTgzZWNjN2VkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Jhc2VBdWRpb1NoYXJlZFVuaXQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9CYXNlQXVkaW9TaGFyZWRVbml0LmNw
cApAQCAtMTAzLDcgKzEwMyw3IEBAIE9TU3RhdHVzIEJhc2VBdWRpb1NoYXJlZFVuaXQ6OnN0YXJ0
VW5pdCgpCiAgICAgZm9yRWFjaENsaWVudChbXShhdXRvJiBjbGllbnQpIHsKICAgICAgICAgY2xp
ZW50LmF1ZGlvVW5pdFdpbGxTdGFydCgpOwogICAgIH0pOwotICAgIEFTU0VSVCghRGVwcmVjYXRl
ZEdsb2JhbFNldHRpbmdzOjpzaG91bGRNYW5hZ2VBdWRpb1Nlc3Npb25DYXRlZ29yeSgpIHx8IEF1
ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLmNhdGVnb3J5KCkgPT0gQXVkaW9TZXNzaW9uOjpD
YXRlZ29yeVR5cGU6OlBsYXlBbmRSZWNvcmQpOworICAgIEFTU0VSVCghRGVwcmVjYXRlZEdsb2Jh
bFNldHRpbmdzOjpzaG91bGRNYW5hZ2VBdWRpb1Nlc3Npb25DYXRlZ29yeSgpIHx8IEF1ZGlvU2Vz
c2lvbjo6c2hhcmVkU2Vzc2lvbigpLmNhdGVnb3J5KCkgPT0gQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6
OlBsYXlBbmRSZWNvcmQpOwogCiAgICAgaWYgKGF1dG8gZXJyb3IgPSBzdGFydEludGVybmFsKCkp
IHsKICAgICAgICAgY2FwdHVyZUZhaWxlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmNwcAppbmRleCAwNWM4OGVh
MTc5ZmM0MTcwN2UyNmE0NTY2NDBmYjM1YjJkYzg3NjU5Li4wYjliZGEwM2NkMWVkOGUxMTI1MjI3
NjMzZDkwMjM1N2Q4MmZlNjBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
b2NrL01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tb2NrL01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmNwcApAQCAtMTM4LDcgKzEzOCw3IEBA
IHZvaWQgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OnN0YXJ0UHJvZHVjaW5nRGF0YSgpCiAjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5n
bGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuc2V0QWN0aXZlU291cmNlKCp0aGlzKTsKICAg
ICBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5zZXNzaW9uQ2Fu
UHJvZHVjZUF1ZGlvQ2hhbmdlZCgpOwotICAgIEFTU0VSVChBdWRpb1Nlc3Npb246OnNoYXJlZFNl
c3Npb24oKS5jYXRlZ29yeSgpID09IEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpQbGF5QW5k
UmVjb3JkKTsKKyAgICBBU1NFUlQoQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuY2F0ZWdv
cnkoKSA9PSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6UGxheUFuZFJlY29yZCk7CiAjZW5kaWYKIAog
ICAgIGlmICghc2FtcGxlUmF0ZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmlu
ZGV4IGVjMmI5MmE4ZjVmZjYxOTliYTFiM2U4ODk0OWNhNmM0MzM3OGRmYzEuLjU0NTNkNDIxOGFh
MTM1YzUxMmVkZDVkNTM0MzljNDBmMzg1MzgxZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5jcHAKQEAgLTU1MzQsMTkgKzU1MzQsMTkgQEAgU3RyaW5nIEludGVybmFsczo6YXVkaW9T
ZXNzaW9uQ2F0ZWdvcnkoKSBjb25zdAogewogI2lmIFVTRShBVURJT19TRVNTSU9OKQogICAgIHN3
aXRjaCAoQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuY2F0ZWdvcnkoKSkgewotICAgIGNh
c2UgQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6OkFtYmllbnRTb3VuZDoKKyAgICBjYXNlIEF1
ZGlvU2Vzc2lvbkNhdGVnb3J5OjpBbWJpZW50U291bmQ6CiAgICAgICAgIHJldHVybiAiQW1iaWVu
dFNvdW5kIl9zOwotICAgIGNhc2UgQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6OlNvbG9BbWJp
ZW50U291bmQ6CisgICAgY2FzZSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6U29sb0FtYmllbnRTb3Vu
ZDoKICAgICAgICAgcmV0dXJuICJTb2xvQW1iaWVudFNvdW5kIl9zOwotICAgIGNhc2UgQXVkaW9T
ZXNzaW9uOjpDYXRlZ29yeVR5cGU6Ok1lZGlhUGxheWJhY2s6CisgICAgY2FzZSBBdWRpb1Nlc3Np
b25DYXRlZ29yeTo6TWVkaWFQbGF5YmFjazoKICAgICAgICAgcmV0dXJuICJNZWRpYVBsYXliYWNr
Il9zOwotICAgIGNhc2UgQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6OlJlY29yZEF1ZGlvOgor
ICAgIGNhc2UgQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6OlJlY29yZEF1ZGlvOgogICAgICAgICByZXR1
cm4gIlJlY29yZEF1ZGlvIl9zOwotICAgIGNhc2UgQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6
OlBsYXlBbmRSZWNvcmQ6CisgICAgY2FzZSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6UGxheUFuZFJl
Y29yZDoKICAgICAgICAgcmV0dXJuICJQbGF5QW5kUmVjb3JkIl9zOwotICAgIGNhc2UgQXVkaW9T
ZXNzaW9uOjpDYXRlZ29yeVR5cGU6OkF1ZGlvUHJvY2Vzc2luZzoKKyAgICBjYXNlIEF1ZGlvU2Vz
c2lvbkNhdGVnb3J5OjpBdWRpb1Byb2Nlc3Npbmc6CiAgICAgICAgIHJldHVybiAiQXVkaW9Qcm9j
ZXNzaW5nIl9zOwotICAgIGNhc2UgQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6Ok5vbmU6Cisg
ICAgY2FzZSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6Tm9uZToKICAgICAgICAgcmV0dXJuICJOb25l
Il9zOwogICAgIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21hYy9Mb2NhbEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yLmNwcCBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9tYWMvTG9jYWxBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvci5jcHAK
aW5kZXggN2U1ZWRmZWQ5ODAxNWE0YTQ0MzA5ODdkMmZhN2M3OWYzMTYwOTkzZC4uZGI0MmFhNGUy
ZmQyM2JlOGE0MDNlYzNiYzAyNjY5NDcyMDc1MjZmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21hYy9Mb2NhbEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWFjL0xvY2FsQXVkaW9TZXNzaW9uUm91dGlu
Z0FyYml0cmF0b3IuY3BwCkBAIC01Miw3ICs1Miw3IEBAIHZvaWQgTG9jYWxBdWRpb1Nlc3Npb25S
b3V0aW5nQXJiaXRyYXRvcjo6cHJvY2Vzc0RpZFRlcm1pbmF0ZSgpCiAgICAgbGVhdmVSb3V0aW5n
QWJyaXRyYXRpb24oKTsKIH0KIAotdm9pZCBMb2NhbEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJh
dG9yOjpiZWdpblJvdXRpbmdBcmJpdHJhdGlvbldpdGhDYXRlZ29yeShBdWRpb1Nlc3Npb246OkNh
dGVnb3J5VHlwZSBjYXRlZ29yeSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSb3V0aW5nQXJiaXRy
YXRpb25FcnJvciwgRGVmYXVsdFJvdXRlQ2hhbmdlZCk+JiYgY2FsbGJhY2spCit2b2lkIExvY2Fs
QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3I6OmJlZ2luUm91dGluZ0FyYml0cmF0aW9uV2l0
aENhdGVnb3J5KEF1ZGlvU2Vzc2lvbkNhdGVnb3J5IGNhdGVnb3J5LCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFJvdXRpbmdBcmJpdHJhdGlvbkVycm9yLCBEZWZhdWx0Um91dGVDaGFuZ2VkKT4mJiBj
YWxsYmFjaykKIHsKICAgICBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY29ubmVjdGlvbigpLnNl
bmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6R1BVUHJvY2Vzc0Nvbm5lY3Rpb246OkJlZ2luUm91
dGluZ0FyYml0cmF0aW9uV2l0aENhdGVnb3J5KGNhdGVnb3J5KSwgV1RGTW92ZShjYWxsYmFjayks
IDApOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21hYy9Mb2NhbEF1
ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWFjL0xvY2FsQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3IuaAppbmRleCAwOGNkYjI5MDJi
ZWFkZTdjOGIyNThkNmNlYjUxYzAzNDE5ZWQ0NzVmLi40NTc0MTNkODNjNzU3Njg2Mjc4ZWJhMDg2
ZjU2MmU5OWNlMDRmMGNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWFj
L0xvY2FsQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWFjL0xvY2FsQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3IuaApAQCAt
NDksNyArNDksNyBAQCBwcml2YXRlOgogICAgIExvY2FsQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0
cmF0b3IoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYpOwogCiAgICAgLy8gQXVkaW9TZXNzaW9u
Um91dGluZ0FyYml0cmF0aW9uQ2xpZW50Ci0gICAgdm9pZCBiZWdpblJvdXRpbmdBcmJpdHJhdGlv
bldpdGhDYXRlZ29yeShXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSwgQXJiaXRy
YXRpb25DYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2b2lkIGJlZ2luUm91dGluZ0FyYml0cmF0aW9u
V2l0aENhdGVnb3J5KFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbkNhdGVnb3J5LCBBcmJpdHJhdGlvbkNh
bGxiYWNrJiYpIGZpbmFsOwogICAgIHZvaWQgbGVhdmVSb3V0aW5nQWJyaXRyYXRpb24oKSBmaW5h
bDsKIAogICAgIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIG1fY29ubmVjdGlvblRvV2ViUHJv
Y2VzczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVB
dWRpb1Nlc3Npb25Qcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlQXVkaW9TZXNzaW9uUHJveHkuY3BwCmluZGV4IDI3YzgxNjJiNTEzMzM0OGQyZTY2ZWEwOTVh
YTg5MWQwY2U3ZjA4MGMuLjNjYWVhNGYzZWRhMGQwY2Q2MTc1OWY5MjlhNzRhZWQ5YmEyZGE1Nzgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5LmNwcApAQCAtNzEsNyArNzEsNyBAQCBSZW1vdGVBdWRpb1Nlc3Np
b25Db25maWd1cmF0aW9uIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Ojpjb25maWd1cmF0aW9uKCkK
ICAgICB9OwogfQogCi12b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OjpzZXRDYXRlZ29yeShB
dWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBjYXRlZ29yeSwgUm91dGVTaGFyaW5nUG9saWN5IHBv
bGljeSkKK3ZvaWQgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OnNldENhdGVnb3J5KEF1ZGlvU2Vz
c2lvbkNhdGVnb3J5IGNhdGVnb3J5LCBSb3V0ZVNoYXJpbmdQb2xpY3kgcG9saWN5KQogewogICAg
IGlmIChtX2NhdGVnb3J5ID09IGNhdGVnb3J5ICYmIG1fcm91dGVTaGFyaW5nUG9saWN5ID09IHBv
bGljeSAmJiAhbV9pc1BsYXlpbmdUb0JsdWV0b290aE92ZXJyaWRlQ2hhbmdlZCkKICAgICAgICAg
cmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlQXVkaW9TZXNzaW9uUHJveHkuaAppbmRleCA1ODMwYTZhYmJiN2QzMDgxMTBkODEzNTg1YTk3
NTJlYTY3MmY2NzhmLi5kYjExODQ1MmMwZjNiMmFmMzk2ZDBlOTczY2E4ZmU1YjAxZmJhMDY2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNz
aW9uUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVk
aW9TZXNzaW9uUHJveHkuaApAQCAtNTIsNyArNTIsNyBAQCBwdWJsaWM6CiAgICAgV2ViQ29yZTo6
UHJvY2Vzc0lkZW50aWZpZXIgcHJvY2Vzc0lkZW50aWZpZXIoKTsKICAgICBSZW1vdGVBdWRpb1Nl
c3Npb25Db25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24oKTsKIAotICAgIFdlYkNvcmU6OkF1ZGlv
U2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIGNhdGVnb3J5KCkgY29uc3QgeyByZXR1cm4gbV9jYXRlZ29y
eTsgfTsKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb25DYXRlZ29yeSBjYXRlZ29yeSgpIGNvbnN0
IHsgcmV0dXJuIG1fY2F0ZWdvcnk7IH07CiAgICAgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5
IHJvdXRlU2hhcmluZ1BvbGljeSgpIGNvbnN0IHsgcmV0dXJuIG1fcm91dGVTaGFyaW5nUG9saWN5
OyB9CiAgICAgc2l6ZV90IHByZWZlcnJlZEJ1ZmZlclNpemUoKSBjb25zdCB7IHJldHVybiBtX3By
ZWZlcnJlZEJ1ZmZlclNpemU7IH0KICAgICBib29sIGlzQWN0aXZlKCkgY29uc3QgeyByZXR1cm4g
bV9hY3RpdmU7IH0KQEAgLTcwLDcgKzcwLDcgQEAgcHJpdmF0ZToKICAgICBleHBsaWNpdCBSZW1v
dGVBdWRpb1Nlc3Npb25Qcm94eShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJik7CiAKICAgICAv
LyBNZXNzYWdlcwotICAgIHZvaWQgc2V0Q2F0ZWdvcnkoV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpD
YXRlZ29yeVR5cGUsIFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeSk7CisgICAgdm9pZCBzZXRD
YXRlZ29yeShXZWJDb3JlOjpBdWRpb1Nlc3Npb25DYXRlZ29yeSwgV2ViQ29yZTo6Um91dGVTaGFy
aW5nUG9saWN5KTsKICAgICB2b2lkIHNldFByZWZlcnJlZEJ1ZmZlclNpemUodWludDY0X3QpOwog
ICAgIHVzaW5nIFNldEFjdGl2ZUNvbXBsZXRpb24gPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJv
b2wpPjsKICAgICB2b2lkIHRyeVRvU2V0QWN0aXZlKGJvb2wsIFNldEFjdGl2ZUNvbXBsZXRpb24m
Jik7CkBAIC04MCw3ICs4MCw3IEBAIHByaXZhdGU6CiAgICAgSVBDOjpDb25uZWN0aW9uJiBjb25u
ZWN0aW9uKCk7CiAKICAgICBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBtX2dwdUNvbm5lY3Rp
b247Ci0gICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUgbV9jYXRlZ29yeSB7
IFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpOb25lIH07CisgICAgV2ViQ29y
ZTo6QXVkaW9TZXNzaW9uQ2F0ZWdvcnkgbV9jYXRlZ29yeSB7IFdlYkNvcmU6OkF1ZGlvU2Vzc2lv
bkNhdGVnb3J5OjpOb25lIH07CiAgICAgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5IG1fcm91
dGVTaGFyaW5nUG9saWN5IHsgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5OjpEZWZhdWx0IH07
CiAgICAgc2l6ZV90IG1fcHJlZmVycmVkQnVmZmVyU2l6ZSB7IDAgfTsKICAgICBib29sIG1fYWN0
aXZlIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5tZXNzYWdlcy5pbgppbmRleCBi
YWY5YTI2NTlmMDk2M2FjMGY5MGJkMzA4OTAxZWM0NWZjOGRiMzAzLi42NWJlOWZkZjc5ZDZkY2Q2
MjE5NGFmYzg3MGVkYTBmM2E0MTc4ZWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Lm1lc3Nh
Z2VzLmluCkBAIC0yNiw3ICsyNiw3IEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0Uo
QVVESU9fU0VTU0lPTikKIAogbWVzc2FnZXMgLT4gUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkgTm90
UmVmQ291bnRlZCB7Ci0gICAgU2V0Q2F0ZWdvcnkoZW51bTp1aW50OF90IFdlYkNvcmU6OkF1ZGlv
U2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIHR5cGUsIGVudW06dWludDhfdCBXZWJDb3JlOjpSb3V0ZVNo
YXJpbmdQb2xpY3kgcG9saWN5KQorICAgIFNldENhdGVnb3J5KGVudW06dWludDhfdCBXZWJDb3Jl
OjpBdWRpb1Nlc3Npb25DYXRlZ29yeSB0eXBlLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6Um91dGVT
aGFyaW5nUG9saWN5IHBvbGljeSkKICAgICBTZXRQcmVmZXJyZWRCdWZmZXJTaXplKHVpbnQ2NF90
IHByZWZlcnJlZEJ1ZmZlclNpemUpCiAgICAgVHJ5VG9TZXRBY3RpdmUoYm9vbCBhY3RpdmUpIC0+
IChib29sIHN1Y2VlZGVkKSBTeW5jaHJvbm91cwogICAgIFNldElzUGxheWluZ1RvQmx1ZXRvb3Ro
T3ZlcnJpZGUoc3RkOjpvcHRpb25hbDxib29sPiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuY3Bw
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5
TWFuYWdlci5jcHAKaW5kZXggODAzNDY4MzIyMzAyZmQ4YzE3MDMwODMyYWE5N2YwMTE1NzRjMzVh
Ny4uNjcxM2FhNTdkYWI1ZjAwNDQ4OTI4YzVmYTA1ODY3ZWVlMTg1OWMxYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFu
YWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlv
U2Vzc2lvblByb3h5TWFuYWdlci5jcHAKQEAgLTM4LDkgKzM4LDkgQEAgbmFtZXNwYWNlIFdlYktp
dCB7CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1zdGF0aWMgYm9vbCBjYXRlZ29yeUNh
bk1peFdpdGhPdGhlcnMoQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUgY2F0ZWdvcnkpCitzdGF0
aWMgYm9vbCBjYXRlZ29yeUNhbk1peFdpdGhPdGhlcnMoQXVkaW9TZXNzaW9uQ2F0ZWdvcnkgY2F0
ZWdvcnkpCiB7Ci0gICAgcmV0dXJuIGNhdGVnb3J5ID09IEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlU
eXBlOjpBbWJpZW50U291bmQ7CisgICAgcmV0dXJuIGNhdGVnb3J5ID09IEF1ZGlvU2Vzc2lvbkNh
dGVnb3J5OjpBbWJpZW50U291bmQ7CiB9CiAKIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdl
cjo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyKCkKQEAgLTcxLDMwICs3MSwzMCBAQCB2
b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6cmVtb3ZlUHJveHkoUmVtb3RlQXVk
aW9TZXNzaW9uUHJveHkmIHByb3h5KQogCiB2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFu
YWdlcjo6dXBkYXRlQ2F0ZWdvcnkoKQogewotICAgIEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBl
IGNhdGVnb3J5ID0gQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6Ok5vbmU7CisgICAgQXVkaW9T
ZXNzaW9uQ2F0ZWdvcnkgY2F0ZWdvcnkgPSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6Tm9uZTsKICAg
ICBSb3V0ZVNoYXJpbmdQb2xpY3kgcG9saWN5ID0gUm91dGVTaGFyaW5nUG9saWN5OjpEZWZhdWx0
OwogCi0gICAgSGFzaENvdW50ZWRTZXQ8QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUsIFdURjo6
SW50SGFzaDxBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZT4sIFdURjo6U3Ryb25nRW51bUhhc2hU
cmFpdHM8QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU+PiBjYXRlZ29yeUNvdW50czsKKyAgICBI
YXNoQ291bnRlZFNldDxBdWRpb1Nlc3Npb25DYXRlZ29yeSwgV1RGOjpJbnRIYXNoPEF1ZGlvU2Vz
c2lvbkNhdGVnb3J5PiwgV1RGOjpTdHJvbmdFbnVtSGFzaFRyYWl0czxBdWRpb1Nlc3Npb25DYXRl
Z29yeT4+IGNhdGVnb3J5Q291bnRzOwogICAgIEhhc2hDb3VudGVkU2V0PFJvdXRlU2hhcmluZ1Bv
bGljeSwgV1RGOjpJbnRIYXNoPFJvdXRlU2hhcmluZ1BvbGljeT4sIFdURjo6U3Ryb25nRW51bUhh
c2hUcmFpdHM8Um91dGVTaGFyaW5nUG9saWN5Pj4gcG9saWN5Q291bnRzOwogICAgIGZvciAoYXV0
byYgb3RoZXJQcm94eSA6IG1fcHJveGllcykgewogICAgICAgICBjYXRlZ29yeUNvdW50cy5hZGQo
b3RoZXJQcm94eS5jYXRlZ29yeSgpKTsKICAgICAgICAgcG9saWN5Q291bnRzLmFkZChvdGhlclBy
b3h5LnJvdXRlU2hhcmluZ1BvbGljeSgpKTsKICAgICB9CiAKLSAgICBpZiAoY2F0ZWdvcnlDb3Vu
dHMuY29udGFpbnMoQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6OlBsYXlBbmRSZWNvcmQpKQot
ICAgICAgICBjYXRlZ29yeSA9IEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpQbGF5QW5kUmVj
b3JkOwotICAgIGVsc2UgaWYgKGNhdGVnb3J5Q291bnRzLmNvbnRhaW5zKEF1ZGlvU2Vzc2lvbjo6
Q2F0ZWdvcnlUeXBlOjpSZWNvcmRBdWRpbykpCi0gICAgICAgIGNhdGVnb3J5ID0gQXVkaW9TZXNz
aW9uOjpDYXRlZ29yeVR5cGU6OlJlY29yZEF1ZGlvOwotICAgIGVsc2UgaWYgKGNhdGVnb3J5Q291
bnRzLmNvbnRhaW5zKEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpNZWRpYVBsYXliYWNrKSkK
LSAgICAgICAgY2F0ZWdvcnkgPSBBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6TWVkaWFQbGF5
YmFjazsKLSAgICBlbHNlIGlmIChjYXRlZ29yeUNvdW50cy5jb250YWlucyhBdWRpb1Nlc3Npb246
OkNhdGVnb3J5VHlwZTo6U29sb0FtYmllbnRTb3VuZCkpCi0gICAgICAgIGNhdGVnb3J5ID0gQXVk
aW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6OlNvbG9BbWJpZW50U291bmQ7Ci0gICAgZWxzZSBpZiAo
Y2F0ZWdvcnlDb3VudHMuY29udGFpbnMoQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6OkFtYmll
bnRTb3VuZCkpCi0gICAgICAgIGNhdGVnb3J5ID0gQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6
OkFtYmllbnRTb3VuZDsKLSAgICBlbHNlIGlmIChjYXRlZ29yeUNvdW50cy5jb250YWlucyhBdWRp
b1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6QXVkaW9Qcm9jZXNzaW5nKSkKLSAgICAgICAgY2F0ZWdv
cnkgPSBBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6QXVkaW9Qcm9jZXNzaW5nOworICAgIGlm
IChjYXRlZ29yeUNvdW50cy5jb250YWlucyhBdWRpb1Nlc3Npb25DYXRlZ29yeTo6UGxheUFuZFJl
Y29yZCkpCisgICAgICAgIGNhdGVnb3J5ID0gQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6OlBsYXlBbmRS
ZWNvcmQ7CisgICAgZWxzZSBpZiAoY2F0ZWdvcnlDb3VudHMuY29udGFpbnMoQXVkaW9TZXNzaW9u
Q2F0ZWdvcnk6OlJlY29yZEF1ZGlvKSkKKyAgICAgICAgY2F0ZWdvcnkgPSBBdWRpb1Nlc3Npb25D
YXRlZ29yeTo6UmVjb3JkQXVkaW87CisgICAgZWxzZSBpZiAoY2F0ZWdvcnlDb3VudHMuY29udGFp
bnMoQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6Ok1lZGlhUGxheWJhY2spKQorICAgICAgICBjYXRlZ29y
eSA9IEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpNZWRpYVBsYXliYWNrOworICAgIGVsc2UgaWYgKGNh
dGVnb3J5Q291bnRzLmNvbnRhaW5zKEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpTb2xvQW1iaWVudFNv
dW5kKSkKKyAgICAgICAgY2F0ZWdvcnkgPSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6U29sb0FtYmll
bnRTb3VuZDsKKyAgICBlbHNlIGlmIChjYXRlZ29yeUNvdW50cy5jb250YWlucyhBdWRpb1Nlc3Np
b25DYXRlZ29yeTo6QW1iaWVudFNvdW5kKSkKKyAgICAgICAgY2F0ZWdvcnkgPSBBdWRpb1Nlc3Np
b25DYXRlZ29yeTo6QW1iaWVudFNvdW5kOworICAgIGVsc2UgaWYgKGNhdGVnb3J5Q291bnRzLmNv
bnRhaW5zKEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpBdWRpb1Byb2Nlc3NpbmcpKQorICAgICAgICBj
YXRlZ29yeSA9IEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpBdWRpb1Byb2Nlc3Npbmc7CiAgICAgZWxz
ZQotICAgICAgICBjYXRlZ29yeSA9IEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpOb25lOwor
ICAgICAgICBjYXRlZ29yeSA9IEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpOb25lOwogCiAgICAgcG9s
aWN5ID0gUm91dGVTaGFyaW5nUG9saWN5OjpEZWZhdWx0OwogICAgIGlmIChwb2xpY3lDb3VudHMu
Y29udGFpbnMoUm91dGVTaGFyaW5nUG9saWN5OjpMb25nRm9ybVZpZGVvKSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5
LmNwcAppbmRleCBiYWZkOTI2NWQ1MTYzOTVjYjVjMDUwMDlmMmYzZDAzYzY1N2U4ZmE3Li42OWMw
MDRmMWVjMzY4ZDBiMDE4YjA3MDUwZDY4NDgyMWJhNDUyYzdhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3Bw
CkBAIC0xMTYsNiArMTE2LDcgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjpnZXRDb25m
aWd1cmF0aW9uKFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbiYgY28KICAgICBjb25maWd1
cmF0aW9uLnN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcgPSBtX3BsYXllci0+c3VwcG9ydHNB
Y2NlbGVyYXRlZFJlbmRlcmluZygpOwogICAgIGNvbmZpZ3VyYXRpb24uc3VwcG9ydHNQbGF5QXRI
b3N0VGltZSA9IG1fcGxheWVyLT5zdXBwb3J0c1BsYXlBdEhvc3RUaW1lKCk7CiAgICAgY29uZmln
dXJhdGlvbi5zdXBwb3J0c1BhdXNlQXRIb3N0VGltZSA9IG1fcGxheWVyLT5zdXBwb3J0c1BhdXNl
QXRIb3N0VGltZSgpOworICAgIGNvbmZpZ3VyYXRpb24uc3VwcG9ydHNTZXRBdWRpb1Nlc3Npb25D
YXRlZ29yeSA9IG1fcGxheWVyLT5zdXBwb3J0c1NldEF1ZGlvU2Vzc2lvbkNhdGVnb3J5KCk7CiAK
ICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQogICAgIGNvbmZpZ3VyYXRpb24u
Y2FuUGxheVRvV2lyZWxlc3NQbGF5YmFja1RhcmdldCA9IG1fcGxheWVyLT5jYW5QbGF5VG9XaXJl
bGVzc1BsYXliYWNrVGFyZ2V0KCk7CkBAIC0xMDg3LDYgKzEwODgsMTIgQEAgdm9pZCBSZW1vdGVN
ZWRpYVBsYXllclByb3h5OjpwYXVzZUF0SG9zdFRpbWUoTW9ub3RvbmljVGltZSB0aW1lKQogICAg
ICAgICBtX3BsYXllci0+cGF1c2VBdEhvc3RUaW1lKHRpbWUpOwogfQogCit2b2lkIFJlbW90ZU1l
ZGlhUGxheWVyUHJveHk6OnNldEF1ZGlvU2Vzc2lvbkNhdGVnb3J5KEF1ZGlvU2Vzc2lvbkNhdGVn
b3J5IGNhdGVnb3J5KQoreworICAgIGlmIChtX3BsYXllcikKKyAgICAgICAgbV9wbGF5ZXItPnNl
dEF1ZGlvU2Vzc2lvbkNhdGVnb3J5KGNhdGVnb3J5KTsKK30KKwogI2lmICFSRUxFQVNFX0xPR19E
SVNBQkxFRAogV1RGTG9nQ2hhbm5lbCYgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bG9nQ2hhbm5l
bCgpIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaAppbmRleCA2N2Y3ZjJhMmRlYzBkMmU5MDFiMmZhY2Iw
NGUxMzEyNGI5Njk5ZDczLi4zYjU2ZTNiMjA3NjE0NDNlMzQ5YjE0ODYwNTQwMWE0YjYwZmZkMzIz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVN
ZWRpYVBsYXllclByb3h5LmgKQEAgLTMwNCw2ICszMDQsOCBAQCBwcml2YXRlOgogICAgIHZvaWQg
cGxheUF0SG9zdFRpbWUoTW9ub3RvbmljVGltZSk7CiAgICAgdm9pZCBwYXVzZUF0SG9zdFRpbWUo
TW9ub3RvbmljVGltZSk7CiAKKyAgICB2b2lkIHNldEF1ZGlvU2Vzc2lvbkNhdGVnb3J5KFdlYkNv
cmU6OkF1ZGlvU2Vzc2lvbkNhdGVnb3J5KTsKKwogICAgIGJvb2wgbWVkaWFQbGF5ZXJQYXVzZWRP
clN0YWxsZWQoKSBjb25zdDsKICAgICB2b2lkIGN1cnJlbnRUaW1lQ2hhbmdlZChjb25zdCBNZWRp
YVRpbWUmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbgppbmRleCAyMmMzYjE3
MzEzNmRmZDljZDM3Y2QzODhhNjVhYzNmYzQ2MTA1NWI3Li43NzNkMmIyY2FjNmI0Zjc5NGE3Y2Fh
NTRlZDQwOWRkZDM2YWNiNDU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbgpA
QCAtMTMxLDYgKzEzMSw4IEBAIG1lc3NhZ2VzIC0+IFJlbW90ZU1lZGlhUGxheWVyUHJveHkgTm90
UmVmQ291bnRlZCB7CiAKICAgICBQbGF5QXRIb3N0VGltZShNb25vdG9uaWNUaW1lIHRpbWUpCiAg
ICAgUGF1c2VBdEhvc3RUaW1lKE1vbm90b25pY1RpbWUgdGltZSkKKworICAgIFNldEF1ZGlvU2Vz
c2lvbkNhdGVnb3J5KGVudW06dWludDhfdCBXZWJDb3JlOjpBdWRpb1Nlc3Npb25DYXRlZ29yeSBj
YXRlZ29yeSkKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMv
d2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdl
cy5weQppbmRleCAzZDExNmRiYzZiY2FiNDc1NTRlZmMyNDRjMjcxYjFiY2VhM2Y0MWYzLi4yYTky
ZWQ3NWEyNjhmYzNjYmMxZDMyOTViZmRmYWQzODc1ZWMyMGQyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2Ny
aXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAgLTY4Niw2ICs2ODYsNyBAQCBkZWYgaGVhZGVyc19m
b3JfdHlwZSh0eXBlKToKICAgICAgICAgJ1dhbGxUaW1lJzogWyc8d3RmL1dhbGxUaW1lLmg+J10s
CiAgICAgICAgICdTdHJpbmcnOiBbJzx3dGYvdGV4dC9XVEZTdHJpbmcuaD4nXSwKICAgICAgICAg
J1BBTDo6U2Vzc2lvbklEJzogWyc8cGFsL1Nlc3Npb25JRC5oPiddLAorICAgICAgICAnV2ViQ29y
ZTo6QXVkaW9TZXNzaW9uQ2F0ZWdvcnknOiBbJzxXZWJDb3JlL0F1ZGlvU2Vzc2lvbi5oPiddLAog
ICAgICAgICAnV2ViQ29yZTo6QXV0b3BsYXlFdmVudEZsYWdzJzogWyc8V2ViQ29yZS9BdXRvcGxh
eUV2ZW50Lmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpCcm93c2luZ0NvbnRleHRHcm91cFN3aXRj
aERlY2lzaW9uJzogWyc8V2ViQ29yZS9GcmFtZUxvYWRlclR5cGVzLmg+J10sCiAgICAgICAgICdX
ZWJDb3JlOjpDcmVhdGVOZXdHcm91cEZvckhpZ2hsaWdodCc6IFsnPFdlYkNvcmUvQXBwSGlnaGxp
Z2h0Lmg+J10sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCmluZGV4IGQ4ZDdjMjE1OGE0NDIw
MzRjMDYxMzI2MzBiNjcwNGIwZjk3ZDUxMTEuLjI5YjgwMTg1ODFjMGFiYWE2OTgzMDVhOTIyYjkz
ZmE0M2QwOTY3NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1Vz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCkBAIC0xMDIsNyArMTAy
LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBhdWRpb1VuaXRXaWxsU3RhcnQoKSBmaW5hbAogICAg
IHsKLSAgICAgICAgQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2V0Q2F0ZWdvcnkoQXVk
aW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6OlBsYXlBbmRSZWNvcmQsIFJvdXRlU2hhcmluZ1BvbGlj
eTo6RGVmYXVsdCk7CisgICAgICAgIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldENh
dGVnb3J5KEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpQbGF5QW5kUmVjb3JkLCBSb3V0ZVNoYXJpbmdQ
b2xpY3k6OkRlZmF1bHQpOwogICAgIH0KIAogICAgIHZvaWQgc3RhcnQoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0
b3JQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9BdWRpb1Nlc3Npb25S
b3V0aW5nQXJiaXRyYXRvclByb3h5LmNwcAppbmRleCA0Mjg1MWU0YjM5YWY4YjAwZjZjYjNiZWUx
YjZmOWVkYTIxMjI0NDlmLi45NTk2NDAwYjVkNTA0ODc4YzljODUyNDIyZGJlOGEwZDAxMTY1ZjE3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9BdWRpb1Nlc3Npb25S
b3V0aW5nQXJiaXRyYXRvclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9N
ZWRpYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5LmNwcApAQCAtNDgsNyArNDgs
NyBAQCB2b2lkIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6OnByb2Nlc3NEaWRU
ZXJtaW5hdGUoKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgQXVkaW9TZXNzaW9u
Um91dGluZ0FyYml0cmF0b3JQcm94eTo6YmVnaW5Sb3V0aW5nQXJiaXRyYXRpb25XaXRoQ2F0ZWdv
cnkoV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUsIEFyYml0cmF0aW9uQ2FsbGJh
Y2smJiBjYWxsYmFjaykKK3ZvaWQgQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eTo6
YmVnaW5Sb3V0aW5nQXJiaXRyYXRpb25XaXRoQ2F0ZWdvcnkoV2ViQ29yZTo6QXVkaW9TZXNzaW9u
Q2F0ZWdvcnksIEFyYml0cmF0aW9uQ2FsbGJhY2smJiBjYWxsYmFjaykKIHsKICAgICBub3RJbXBs
ZW1lbnRlZCgpOwogICAgIGNhbGxiYWNrKFJvdXRpbmdBcmJpdHJhdGlvbkVycm9yOjpGYWlsZWQs
IERlZmF1bHRSb3V0ZUNoYW5nZWQ6Ok5vKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL01lZGlhL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJv
eHkuaAppbmRleCA2OWNhNGFjYTBhNDczM2Y4ZDdlMjJkZmExOTM1ODQ1N2IzZTBkMjdiLi4wODk4
YjdkNDIwMWM5NGE1OTg4ZjRhZGNlNGNhYjdlYmY1YmYzZDBlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvQXVkaW9TZXNzaW9uUm91dGlu
Z0FyYml0cmF0b3JQcm94eS5oCkBAIC00OCw3ICs0OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IH5BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5KCk7CiAKICAgICB2b2lkIHByb2Nl
c3NEaWRUZXJtaW5hdGUoKTsKLSAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlw
ZSBjYXRlZ29yeSgpIGNvbnN0IHsgcmV0dXJuIG1fY2F0ZWdvcnk7IH0KKyAgICBXZWJDb3JlOjpB
dWRpb1Nlc3Npb25DYXRlZ29yeSBjYXRlZ29yeSgpIGNvbnN0IHsgcmV0dXJuIG1fY2F0ZWdvcnk7
IH0KIAogICAgIHN0YXRpYyB1aW50NjRfdCBkZXN0aW5hdGlvbklkKCkgeyByZXR1cm4gMTsgfQog
CkBAIC03MCwxMSArNzAsMTEgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOwogCiAgICAgLy8gTWVzc2Fn
ZXMKLSAgICB2b2lkIGJlZ2luUm91dGluZ0FyYml0cmF0aW9uV2l0aENhdGVnb3J5KFdlYkNvcmU6
OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlLCBBcmJpdHJhdGlvbkNhbGxiYWNrJiYpOworICAg
IHZvaWQgYmVnaW5Sb3V0aW5nQXJiaXRyYXRpb25XaXRoQ2F0ZWdvcnkoV2ViQ29yZTo6QXVkaW9T
ZXNzaW9uQ2F0ZWdvcnksIEFyYml0cmF0aW9uQ2FsbGJhY2smJik7CiAgICAgdm9pZCBlbmRSb3V0
aW5nQXJiaXRyYXRpb24oKTsKIAogICAgIFdlYlByb2Nlc3NQcm94eSYgbV9wcm9jZXNzOwotICAg
IFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIG1fY2F0ZWdvcnkgeyBXZWJDb3Jl
OjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6Tm9uZSB9OworICAgIFdlYkNvcmU6OkF1ZGlv
U2Vzc2lvbkNhdGVnb3J5IG1fY2F0ZWdvcnkgeyBXZWJDb3JlOjpBdWRpb1Nlc3Npb25DYXRlZ29y
eTo6Tm9uZSB9OwogICAgIEFyYml0cmF0aW9uU3RhdHVzIG1fYXJiaXRyYXRpb25TdGF0dXMgeyBB
cmJpdHJhdGlvblN0YXR1czo6Tm9uZSB9OwogICAgIFdhbGxUaW1lIG1fYXJiaXRyYXRpb25VcGRh
dGVUaW1lOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9BdWRp
b1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvTWVkaWEvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5tZXNz
YWdlcy5pbgppbmRleCA1Y2M5OTQxZDJhYmZhMDdiYzMxNzg2OWU3ODIwZDcxZDUwMTQyZmZiLi5h
YWNiZDQ0NGFlNjQyMzg5NTAwNmMyNWVmNGFmZmVlMmEwYjhmOTM3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclBy
b3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL0F1ZGlv
U2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkubWVzc2FnZXMuaW4KQEAgLTIyLDcgKzIyLDcg
QEAKIAogI2lmIEVOQUJMRShST1VUSU5HX0FSQklUUkFUSU9OKQogbWVzc2FnZXMgLT4gQXVkaW9T
ZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eSBOb3RSZWZDb3VudGVkIHsKLSAgICBCZWdpblJv
dXRpbmdBcmJpdHJhdGlvbldpdGhDYXRlZ29yeShlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6QXVkaW9T
ZXNzaW9uOjpDYXRlZ29yeVR5cGUgY2F0ZWdvcnkpIC0+IChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpB
dWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5OjpSb3V0aW5nQXJiaXRyYXRpb25FcnJv
ciBlcnJvciwgZW51bTpib29sIFdlYktpdDo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQ
cm94eTo6RGVmYXVsdFJvdXRlQ2hhbmdlZCBkZWZhdWx0Um91dGVDaGFuZ2VkKSBBc3luYworICAg
IEJlZ2luUm91dGluZ0FyYml0cmF0aW9uV2l0aENhdGVnb3J5KGVudW06dWludDhfdCBXZWJDb3Jl
OjpBdWRpb1Nlc3Npb25DYXRlZ29yeSBjYXRlZ29yeSkgLT4gKGVudW06dWludDhfdCBXZWJLaXQ6
OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6OlJvdXRpbmdBcmJpdHJhdGlvbkVy
cm9yIGVycm9yLCBlbnVtOmJvb2wgV2ViS2l0OjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRv
clByb3h5OjpEZWZhdWx0Um91dGVDaGFuZ2VkIGRlZmF1bHRSb3V0ZUNoYW5nZWQpIEFzeW5jCiAg
ICAgRW5kUm91dGluZ0FyYml0cmF0aW9uKCk7CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL2NvY29hL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJh
dG9yUHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL2NvY29hL0F1
ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHlDb2NvYS5tbQppbmRleCAzODIxMmNiNTM3
YTliMzRhNzk4Mzk1YWM4NDQ2NTM0YTY3ZmM1NTQwLi4yMjkzYzI4YmRmODcyY2FjOWZkZDhjYzI1
OWFhYzQ0YzJkOTExNzI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRp
YS9jb2NvYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5Q29jb2EubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvY29jb2EvQXVkaW9TZXNzaW9uUm91dGluZ0Fy
Yml0cmF0b3JQcm94eUNvY29hLm1tCkBAIC01Niw3ICs1Niw3IEBAIHZvaWQgQXVkaW9TZXNzaW9u
Um91dGluZ0FyYml0cmF0b3JQcm94eTo6cHJvY2Vzc0RpZFRlcm1pbmF0ZSgpCiAgICAgICAgIGVu
ZFJvdXRpbmdBcmJpdHJhdGlvbigpOwogfQogCi12b2lkIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJp
dHJhdG9yUHJveHk6OmJlZ2luUm91dGluZ0FyYml0cmF0aW9uV2l0aENhdGVnb3J5KFdlYkNvcmU6
OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIGNhdGVnb3J5LCBBcmJpdHJhdGlvbkNhbGxiYWNr
JiYgY2FsbGJhY2spCit2b2lkIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6OmJl
Z2luUm91dGluZ0FyYml0cmF0aW9uV2l0aENhdGVnb3J5KFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbkNh
dGVnb3J5IGNhdGVnb3J5LCBBcmJpdHJhdGlvbkNhbGxiYWNrJiYgY2FsbGJhY2spCiB7CiAgICAg
bV9jYXRlZ29yeSA9IGNhdGVnb3J5OwogICAgIG1fYXJiaXRyYXRpb25TdGF0dXMgPSBBcmJpdHJh
dGlvblN0YXR1czo6UGVuZGluZzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5jcHAKaW5kZXggMTcxNWRlMDU0NWViMDg2MzYyOWQ0
ZjY2ZThiMTlhZDJmOGZhZmJkNy4uZDZlZWQzMDdhMDI5ZmVhMGU4ZTZmZjRjMzIxODg5Mjc0N2Fl
N2ExOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNz
Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9j
ZXNzQ29ubmVjdGlvbi5jcHAKQEAgLTI0NCw3ICsyNDQsNyBAQCB2b2lkIEdQVVByb2Nlc3NDb25u
ZWN0aW9uOjpkaWRSZWNlaXZlUmVtb3RlQ29tbWFuZChQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UmVt
b3RlQwogfQogCiAjaWYgRU5BQkxFKFJPVVRJTkdfQVJCSVRSQVRJT04pCi12b2lkIEdQVVByb2Nl
c3NDb25uZWN0aW9uOjpiZWdpblJvdXRpbmdBcmJpdHJhdGlvbldpdGhDYXRlZ29yeShBdWRpb1Nl
c3Npb246OkNhdGVnb3J5VHlwZSBjYXRlZ29yeSwgQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0
aW9uQ2xpZW50OjpBcmJpdHJhdGlvbkNhbGxiYWNrJiYgY2FsbGJhY2spCit2b2lkIEdQVVByb2Nl
c3NDb25uZWN0aW9uOjpiZWdpblJvdXRpbmdBcmJpdHJhdGlvbldpdGhDYXRlZ29yeShBdWRpb1Nl
c3Npb25DYXRlZ29yeSBjYXRlZ29yeSwgQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0aW9uQ2xp
ZW50OjpBcmJpdHJhdGlvbkNhbGxiYWNrJiYgY2FsbGJhY2spCiB7CiAgICAgaWYgKGF1dG8qIGFy
Yml0cmF0b3IgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5zdXBwbGVtZW50PEF1ZGlvU2Vzc2lv
blJvdXRpbmdBcmJpdHJhdG9yPigpKSB7CiAgICAgICAgIGFyYml0cmF0b3ItPmJlZ2luUm91dGlu
Z0FyYml0cmF0aW9uV2l0aENhdGVnb3J5KGNhdGVnb3J5LCBXVEZNb3ZlKGNhbGxiYWNrKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0
aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9u
LmgKaW5kZXggOTU3MWYxYTI1ZWU5YjU2ZTE5MDc2OWNmZjk0ZWYzYjljYTZkMzRlNy4uYjgyY2Yy
YWY0ZDUxMWFlMWVmM2M5MDM0NmQ3YmNkMDU4MjY3NTlkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaApAQCAtMTIyLDcgKzEy
Miw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRSZWNlaXZlUmVtb3RlQ29tbWFuZChXZWJDb3Jl
OjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UmVtb3RlQ29udHJvbENvbW1hbmRUeXBlLCBjb25zdCBX
ZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UmVtb3RlQ29tbWFuZEFyZ3VtZW50Jik7CiAK
ICNpZiBFTkFCTEUoUk9VVElOR19BUkJJVFJBVElPTikKLSAgICB2b2lkIGJlZ2luUm91dGluZ0Fy
Yml0cmF0aW9uV2l0aENhdGVnb3J5KFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBl
LCBXZWJDb3JlOjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRpb25DbGllbnQ6OkFyYml0cmF0
aW9uQ2FsbGJhY2smJik7CisgICAgdm9pZCBiZWdpblJvdXRpbmdBcmJpdHJhdGlvbldpdGhDYXRl
Z29yeShXZWJDb3JlOjpBdWRpb1Nlc3Npb25DYXRlZ29yeSwgV2ViQ29yZTo6QXVkaW9TZXNzaW9u
Um91dGluZ0FyYml0cmF0aW9uQ2xpZW50OjpBcmJpdHJhdGlvbkNhbGxiYWNrJiYpOwogICAgIHZv
aWQgZW5kUm91dGluZ0FyYml0cmF0aW9uKCk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2Fn
ZXMuaW4KaW5kZXggM2RhMGU2MWYwYzhhY2E3YjU3YmUxMDZhYjVhOTZkNzgxZWE0ODY2Ni4uOGI3
ODNhODhjNTIyMTExOWNlYjdiODMzMjQ2OTU0NGMwNmJhMWQyYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLm1l
c3NhZ2VzLmluCkBAIC0yNiw3ICsyNiw3IEBAIG1lc3NhZ2VzIC0+IEdQVVByb2Nlc3NDb25uZWN0
aW9uIFdhbnRzRGlzcGF0Y2hNZXNzYWdlIHsKICAgICBEaWRSZWNlaXZlUmVtb3RlQ29tbWFuZChl
bnVtOnVpbnQ4X3QgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xD
b21tYW5kVHlwZSB0eXBlLCBzdHJ1Y3QgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJl
bW90ZUNvbW1hbmRBcmd1bWVudCBhcmd1bWVudCkKIAogI2lmIEVOQUJMRShST1VUSU5HX0FSQklU
UkFUSU9OKQotICAgIEJlZ2luUm91dGluZ0FyYml0cmF0aW9uV2l0aENhdGVnb3J5KGVudW06dWlu
dDhfdCBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBjYXRlZ29yeSkgLT4gKGVu
dW06dWludDhfdCBXZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6OlJv
dXRpbmdBcmJpdHJhdGlvbkVycm9yIGVycm9yLCBlbnVtOmJvb2wgV2ViS2l0OjpBdWRpb1Nlc3Np
b25Sb3V0aW5nQXJiaXRyYXRvclByb3h5OjpEZWZhdWx0Um91dGVDaGFuZ2VkIGRlZmF1bHRSb3V0
ZUNoYW5nZWQpIEFzeW5jCisgICAgQmVnaW5Sb3V0aW5nQXJiaXRyYXRpb25XaXRoQ2F0ZWdvcnko
ZW51bTp1aW50OF90IFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbkNhdGVnb3J5IGNhdGVnb3J5KSAtPiAo
ZW51bTp1aW50OF90IFdlYktpdDo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eTo6
Um91dGluZ0FyYml0cmF0aW9uRXJyb3IgZXJyb3IsIGVudW06Ym9vbCBXZWJLaXQ6OkF1ZGlvU2Vz
c2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6OkRlZmF1bHRSb3V0ZUNoYW5nZWQgZGVmYXVsdFJv
dXRlQ2hhbmdlZCkgQXN5bmMKICAgICBFbmRSb3V0aW5nQXJiaXRyYXRpb24oKTsKICNlbmRpZgog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBs
YXllclByaXZhdGVSZW1vdGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCmluZGV4IGRmZTM0MDczMGUwNjBmZjlmOWNk
NDY4ZWIzNjNmYzg5MTYwMmRlYWUuLmUxYzEyYTI5ZDA4YmU1OWVhZGIxYTM0MTY5NDBhNjFmNzEz
OTkzODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKQEAgLTEzOTMsNiArMTM5Mywx
NCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6Z2V0UmF3Q29va2llcyhjb25zdCBV
UkwmIHVybCwgV2ViQ29yZTo6TWVkaWFQbGF5ZQogfQogI2VuZGlmCiAKK3ZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlOjpzZXRBdWRpb1Nlc3Npb25DYXRlZ29yeShBdWRpb1Nlc3Npb25DYXRl
Z29yeSBjYXRlZ29yeSkKK3sKKyAgICBBU1NFUlQoc3VwcG9ydHNTZXRBdWRpb1Nlc3Npb25DYXRl
Z29yeSgpKTsKKyAgICBpZiAoIXN1cHBvcnRzU2V0QXVkaW9TZXNzaW9uQ2F0ZWdvcnkoKSkKKyAg
ICAgICAgcmV0dXJuOworICAgIGNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRp
YVBsYXllclByb3h5OjpTZXRBdWRpb1Nlc3Npb25DYXRlZ29yeShjYXRlZ29yeSksIG1faWQpOwor
fQorCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiBXVEZMb2dDaGFubmVsJiBNZWRpYVBsYXll
clByaXZhdGVSZW1vdGU6OmxvZ0NoYW5uZWwoKSBjb25zdAogewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlLmgKaW5kZXggZTcwNGU2OWRlYmYwZWRkZWYzNjYwMjYyMmQxMjczYWIxMDAxOTY2OC4uNjhk
MjlmYzM1NmQzZDk1MmZjZGE3ZjdhY2U0YWMzMzIzZjc3ZGEzYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZS5oCkBAIC0zOTcsNiArMzk3LDggQEAgcHJpdmF0ZToKICAgICBib29sIHBsYXlBdEhv
c3RUaW1lKGNvbnN0IE1vbm90b25pY1RpbWUmKSBmaW5hbDsKICAgICBib29sIHBhdXNlQXRIb3N0
VGltZShjb25zdCBNb25vdG9uaWNUaW1lJikgZmluYWw7CiAKKyAgICBib29sIHN1cHBvcnRzU2V0
QXVkaW9TZXNzaW9uQ2F0ZWdvcnkoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2NvbmZpZ3VyYXRp
b24uc3VwcG9ydHNTZXRBdWRpb1Nlc3Npb25DYXRlZ29yeTsgfQorICAgIHZvaWQgc2V0QXVkaW9T
ZXNzaW9uQ2F0ZWdvcnkoV2ViQ29yZTo6QXVkaW9TZXNzaW9uQ2F0ZWdvcnkpIGZpbmFsOwogCiAg
ICAgV2Vha1B0cjxXZWJDb3JlOjpNZWRpYVBsYXllcj4gbV9wbGF5ZXI7CiAgICAgUmVmPFdlYkNv
cmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlcj4gbV9tZWRpYVJlc291cmNlTG9hZGVyOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRp
b1Nlc3Npb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVB
dWRpb1Nlc3Npb24uY3BwCmluZGV4IGNkYTZjMjdjMTA0MjZjMTBkNzBlNjliYmQ1Nzc0ODMxNDE4
N2U0YmQuLmZlYTQ2NDExZDM0OTJiYzNjYWY3ZWExYWZlODUzMDcxYTEzYjg3MTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlv
U2Vzc2lvbi5jcHAKQEAgLTkxLDcgKzkxLDcgQEAgUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJh
dGlvbiYgUmVtb3RlQXVkaW9TZXNzaW9uOjpjb25maWd1cmF0aW9uKCkKICAgICByZXR1cm4gKm1f
Y29uZmlndXJhdGlvbjsKIH0KIAotdm9pZCBSZW1vdGVBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5
KENhdGVnb3J5VHlwZSB0eXBlLCBSb3V0ZVNoYXJpbmdQb2xpY3kgcG9saWN5KQordm9pZCBSZW1v
dGVBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5KEF1ZGlvU2Vzc2lvbkNhdGVnb3J5IHR5cGUsIFJv
dXRlU2hhcmluZ1BvbGljeSBwb2xpY3kpCiB7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgaWYg
KHR5cGUgPT0gbV9jYXRlZ29yeSAmJiBwb2xpY3kgPT0gbV9yb3V0ZVNoYXJpbmdQb2xpY3kgJiYg
IW1faXNQbGF5aW5nVG9CbHVldG9vdGhPdmVycmlkZUNoYW5nZWQpCkBAIC0xMzksMTIgKzEzOSwx
MiBAQCB2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvbjo6c2V0SXNQbGF5aW5nVG9CbHVldG9vdGhPdmVy
cmlkZShzdGQ6Om9wdGlvbmFsPGJvb2w+IHZhbAogICAgIGVuc3VyZUNvbm5lY3Rpb24oKS5zZW5k
KE1lc3NhZ2VzOjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6U2V0SXNQbGF5aW5nVG9CbHVldG9v
dGhPdmVycmlkZSh2YWx1ZSksIHsgfSk7CiB9CiAKLUF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBl
IFJlbW90ZUF1ZGlvU2Vzc2lvbjo6Y2F0ZWdvcnkoKSBjb25zdAorQXVkaW9TZXNzaW9uQ2F0ZWdv
cnkgUmVtb3RlQXVkaW9TZXNzaW9uOjpjYXRlZ29yeSgpIGNvbnN0CiB7CiAjaWYgUExBVEZPUk0o
Q09DT0EpCiAgICAgcmV0dXJuIG1fY2F0ZWdvcnk7CiAjZWxzZQotICAgIHJldHVybiBBdWRpb1Nl
c3Npb246OkNhdGVnb3J5VHlwZTo6Tm9uZTsKKyAgICByZXR1cm4gQXVkaW9TZXNzaW9uQ2F0ZWdv
cnk6Ok5vbmU7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmgKaW5kZXggNDVmMmYyMWYyNzhjZWE1
NDNmNzFmMjIxYmZmM2QwMmM4ZmRkMTlhNS4uNzhiYTRmNjNkODMzYjVkMjRkZDc4ODFkNWJjMDc4
MTBmZWNkOTRlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9SZW1vdGVBdWRpb1Nlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAi
TWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJh
dGlvbi5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9TZXNzaW9uLmg+CisjaW5jbHVkZSA8d3Rm
L1R5cGVDYXN0cy5oPgogCiBuYW1lc3BhY2UgSVBDIHsKIGNsYXNzIENvbm5lY3Rpb247CkBAIC02
NSw4ICs2Niw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBncHVQcm9jZXNzQ29ubmVjdGlvbkRpZENs
b3NlKEdQVVByb2Nlc3NDb25uZWN0aW9uJikgZmluYWw7CiAKICAgICAvLyBBdWRpb1Nlc3Npb24K
LSAgICB2b2lkIHNldENhdGVnb3J5KENhdGVnb3J5VHlwZSwgV2ViQ29yZTo6Um91dGVTaGFyaW5n
UG9saWN5KSBmaW5hbDsKLSAgICBDYXRlZ29yeVR5cGUgY2F0ZWdvcnkoKSBjb25zdCBmaW5hbDsK
KyAgICB2b2lkIHNldENhdGVnb3J5KFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbkNhdGVnb3J5LCBXZWJD
b3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3kpIGZpbmFsOworICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lv
bkNhdGVnb3J5IGNhdGVnb3J5KCkgY29uc3QgZmluYWw7CiAKICAgICBXZWJDb3JlOjpSb3V0ZVNo
YXJpbmdQb2xpY3kgcm91dGVTaGFyaW5nUG9saWN5KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9y
b3V0ZVNoYXJpbmdQb2xpY3k7IH0KICAgICBTdHJpbmcgcm91dGluZ0NvbnRleHRVSUQoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBjb25maWd1cmF0aW9uKCkucm91dGluZ0NvbnRleHRVSUQ7IH0KQEAg
LTk0LDExICs5NSwxMiBAQCBwcml2YXRlOgogICAgIFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3Vy
YXRpb24mIGNvbmZpZ3VyYXRpb24oKTsKICAgICB2b2lkIGluaXRpYWxpemVDb25maWd1cmF0aW9u
SWZOZWNlc3NhcnkoKTsKIAorICAgIEtpbmQga2luZCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIEtp
bmQ6OlJlbW90ZTsgfQogCiAgICAgV2ViUHJvY2VzcyYgbV9wcm9jZXNzOwogCiAgICAgV2Vha0hh
c2hTZXQ8Q29uZmlndXJhdGlvbkNoYW5nZU9ic2VydmVyPiBtX2NvbmZpZ3VyYXRpb25DaGFuZ2VP
YnNlcnZlcnM7Ci0gICAgQ2F0ZWdvcnlUeXBlIG1fY2F0ZWdvcnkgeyBDYXRlZ29yeVR5cGU6Ok5v
bmUgfTsKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb25DYXRlZ29yeSBtX2NhdGVnb3J5IHsgV2Vi
Q29yZTo6QXVkaW9TZXNzaW9uQ2F0ZWdvcnk6Ok5vbmUgfTsKICAgICBXZWJDb3JlOjpSb3V0ZVNo
YXJpbmdQb2xpY3kgbV9yb3V0ZVNoYXJpbmdQb2xpY3kgeyBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQ
b2xpY3k6OkRlZmF1bHQgfTsKICAgICBib29sIG1faXNQbGF5aW5nVG9CbHVldG9vdGhPdmVycmlk
ZUNoYW5nZWQgeyBmYWxzZSB9OwogICAgIHN0ZDo6b3B0aW9uYWw8UmVtb3RlQXVkaW9TZXNzaW9u
Q29uZmlndXJhdGlvbj4gbV9jb25maWd1cmF0aW9uOwpAQCAtMTA3LDQgKzEwOSw4IEBAIHByaXZh
dGU6CiAKIH0KIAorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19CRUdJTihXZWJLaXQ6OlJlbW90ZUF1
ZGlvU2Vzc2lvbikKKyAgICBzdGF0aWMgYm9vbCBpc1R5cGUoY29uc3QgV2ViQ29yZTo6QXVkaW9T
ZXNzaW9uJiBzZXNzaW9uKSB7IHJldHVybiBzZXNzaW9uLmtpbmQoKSA9PSBXZWJDb3JlOjpBdWRp
b1Nlc3Npb246OktpbmQ6OlJlbW90ZTsgfQorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19FTkQoKQor
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
UmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbi5oCmluZGV4IDU3YTYz
M2FkZGI3YmU3NGRmNzk3ZDM3NzNmNWJjZWNjYjFhNWE0YjcuLjMzOGNhNzFhNzhhZjU4Yzc5ZWEy
MzJkZTliMDBjMmM5YWJkNzE3MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRp
b24uaApAQCAtNDQsNiArNDQsNyBAQCBzdHJ1Y3QgUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0
aW9uIHsKICAgICBib29sIHN1cHBvcnRzUGF1c2VBdEhvc3RUaW1lIHsgZmFsc2UgfTsKICAgICBi
b29sIGNhblBsYXlUb1dpcmVsZXNzUGxheWJhY2tUYXJnZXQgeyBmYWxzZSB9OwogICAgIGJvb2wg
c2hvdWxkSWdub3JlSW50cmluc2ljU2l6ZSB7IGZhbHNlIH07CisgICAgYm9vbCBzdXBwb3J0c1Nl
dEF1ZGlvU2Vzc2lvbkNhdGVnb3J5IHsgZmFsc2UgfTsKIAogICAgIHRlbXBsYXRlPGNsYXNzIEVu
Y29kZXI+CiAgICAgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKQEAgLTU4LDYg
KzU5LDcgQEAgc3RydWN0IFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbiB7CiAgICAgICAg
IGVuY29kZXIgPDwgc3VwcG9ydHNQYXVzZUF0SG9zdFRpbWU7CiAgICAgICAgIGVuY29kZXIgPDwg
Y2FuUGxheVRvV2lyZWxlc3NQbGF5YmFja1RhcmdldDsKICAgICAgICAgZW5jb2RlciA8PCBzaG91
bGRJZ25vcmVJbnRyaW5zaWNTaXplOworICAgICAgICBlbmNvZGVyIDw8IHN1cHBvcnRzU2V0QXVk
aW9TZXNzaW9uQ2F0ZWdvcnk7CiAgICAgfQogCiAgICAgdGVtcGxhdGUgPGNsYXNzIERlY29kZXI+
CkBAIC0xMTMsNiArMTE1LDExIEBAIHN0cnVjdCBSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRp
b24gewogICAgICAgICBpZiAoIXNob3VsZElnbm9yZUludHJpbnNpY1NpemUpCiAgICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OwogCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gc3Vw
cG9ydHNTZXRBdWRpb1Nlc3Npb25DYXRlZ29yeTsKKyAgICAgICAgZGVjb2RlciA+PiBzdXBwb3J0
c1NldEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OworICAgICAgICBpZiAoIXN1cHBvcnRzU2V0QXVkaW9T
ZXNzaW9uQ2F0ZWdvcnkpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCiAgICAg
ICAgIHJldHVybiB7ewogICAgICAgICAgICAgV1RGTW92ZSgqZW5naW5lRGVzY3JpcHRpb24pLAog
ICAgICAgICAgICAgKm1heGltdW1EdXJhdGlvblRvQ2FjaGVNZWRpYVRpbWUsCkBAIC0xMjQsNiAr
MTMxLDcgQEAgc3RydWN0IFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbiB7CiAgICAgICAg
ICAgICAqc3VwcG9ydHNQYXVzZUF0SG9zdFRpbWUsCiAgICAgICAgICAgICAqY2FuUGxheVRvV2ly
ZWxlc3NQbGF5YmFja1RhcmdldCwKICAgICAgICAgICAgICpzaG91bGRJZ25vcmVJbnRyaW5zaWNT
aXplLAorICAgICAgICAgICAgKnN1cHBvcnRzU2V0QXVkaW9TZXNzaW9uQ2F0ZWdvcnksCiAgICAg
ICAgIH19OwogICAgIH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
U3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyLmNwcAppbmRleCA1M2NiMjZlZjQ5OTFhNTBkZTFhODk3NDg1ZGQz
YzZmN2NlZTJhMDI1Li5mMzlkMGMyMDgxMTdlNmY4NDY0YTk2ODY5OWJlYWExNDY4ZTA3Nzg5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ci5jcHAKQEAgLTE1Myw3ICsxNTMsNyBAQCBwcml2YXRlOgogICAgICAgICBhdXRvIGJ1ZmZlclNp
emUgPSBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zYW1wbGVSYXRlKCkgLyA1MDsKICAg
ICAgICAgaWYgKEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnByZWZlcnJlZEJ1ZmZlclNp
emUoKSA+IGJ1ZmZlclNpemUpCiAgICAgICAgICAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Np
b24oKS5zZXRQcmVmZXJyZWRCdWZmZXJTaXplKGJ1ZmZlclNpemUpOwotICAgICAgICBBdWRpb1Nl
c3Npb246OnNoYXJlZFNlc3Npb24oKS5zZXRDYXRlZ29yeShBdWRpb1Nlc3Npb246OkNhdGVnb3J5
VHlwZTo6UGxheUFuZFJlY29yZCwgUm91dGVTaGFyaW5nUG9saWN5OjpEZWZhdWx0KTsKKyAgICAg
ICAgQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2V0Q2F0ZWdvcnkoQXVkaW9TZXNzaW9u
Q2F0ZWdvcnk6OlBsYXlBbmRSZWNvcmQsIFJvdXRlU2hhcmluZ1BvbGljeTo6RGVmYXVsdCk7CiAj
ZW5kaWYKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvY29jb2EvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3IuY3BwCmluZGV4IDdlZWQz
OWRiODdkNWI1YWFlNTE4NTU4OWU5YjFmZTIzODBhYWE5MjEuLjI5YTViNTUzNTYxOWYyZmI0ODMy
YWMwZTdmZjRlMmFkODViYTA5NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvci5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yLmNwcApA
QCAtNTEsNyArNTEsNyBAQCBjb25zdCBjaGFyKiBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRv
cjo6c3VwcGxlbWVudE5hbWUoKQogICAgIHJldHVybiAiQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0
cmF0b3IiOwogfQogCi12b2lkIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yOjpiZWdpblJv
dXRpbmdBcmJpdHJhdGlvbldpdGhDYXRlZ29yeShBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBj
YXRlZ29yeSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSb3V0aW5nQXJiaXRyYXRpb25FcnJvciwg
RGVmYXVsdFJvdXRlQ2hhbmdlZCk+JiYgY2FsbGJhY2spCit2b2lkIEF1ZGlvU2Vzc2lvblJvdXRp
bmdBcmJpdHJhdG9yOjpiZWdpblJvdXRpbmdBcmJpdHJhdGlvbldpdGhDYXRlZ29yeShBdWRpb1Nl
c3Npb25DYXRlZ29yeSBjYXRlZ29yeSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSb3V0aW5nQXJi
aXRyYXRpb25FcnJvciwgRGVmYXVsdFJvdXRlQ2hhbmdlZCk+JiYgY2FsbGJhY2spCiB7CiAgICAg
bV9wcm9jZXNzLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRXaXRoQXN5bmNSZXBseShN
ZXNzYWdlczo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eTo6QmVnaW5Sb3V0aW5n
QXJiaXRyYXRpb25XaXRoQ2F0ZWdvcnkoY2F0ZWdvcnkpLCBXVEZNb3ZlKGNhbGxiYWNrKSwgQXVk
aW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eTo6ZGVzdGluYXRpb25JZCgpKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9BdWRpb1Nlc3Npb25Sb3V0
aW5nQXJiaXRyYXRvci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL0F1ZGlvU2Vz
c2lvblJvdXRpbmdBcmJpdHJhdG9yLmgKaW5kZXggZjFkNTcyMzJmYWQyOTNmYjhhMWRlN2UwZTQw
YjI0MGYyMGNjYWEzOS4uYjdmNzI5M2QzNGM5ZGVlMjQxMmIwNGVmZWM5MGU4NWEzYmZiMTg0ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL0F1ZGlvU2Vzc2lvblJv
dXRpbmdBcmJpdHJhdG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL0F1
ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yLmgKQEAgLTQ5LDcgKzQ5LDcgQEAgcHVibGljOgog
ICAgIHVzaW5nIFdlYWtWYWx1ZVR5cGUgPSBXZWJDb3JlOjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJi
aXRyYXRpb25DbGllbnQ7CiAKICAgICAvLyBBdWRpb1Nlc3Npb25Sb3V0aW5nQWJyaXRyYXRvcgot
ICAgIHZvaWQgYmVnaW5Sb3V0aW5nQXJiaXRyYXRpb25XaXRoQ2F0ZWdvcnkoV2ViQ29yZTo6QXVk
aW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUm91dGluZ0Fy
Yml0cmF0aW9uRXJyb3IsIERlZmF1bHRSb3V0ZUNoYW5nZWQpPiYmKSBmaW5hbDsKKyAgICB2b2lk
IGJlZ2luUm91dGluZ0FyYml0cmF0aW9uV2l0aENhdGVnb3J5KFdlYkNvcmU6OkF1ZGlvU2Vzc2lv
bkNhdGVnb3J5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJvdXRpbmdBcmJpdHJhdGlvbkVycm9y
LCBEZWZhdWx0Um91dGVDaGFuZ2VkKT4mJikgZmluYWw7CiAgICAgdm9pZCBsZWF2ZVJvdXRpbmdB
YnJpdHJhdGlvbigpIGZpbmFsOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJQbHVnaW5Db250cm9sbGVyLm1tIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJQbHVnaW5Db250cm9sbGVyLm1tCmluZGV4IDk0OGFmMzIx
OTFkMGE5YWE1YzFkNjZhMTc3NTgwZjIzMDY5NzJmY2IuLjIwNmNjNzYzNjRiMmY4ZWQ3Yjc4Nzdk
MDRiYmRjMzhkMDBjMTkyNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1Bs
dWdpbnMvV2ViUGx1Z2luQ29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9QbHVnaW5zL1dlYlBsdWdpbkNvbnRyb2xsZXIubW0KQEAgLTExNCw3ICsxMTQsNyBAQCBzdGF0
aWMgdm9pZCBpbml0aWFsaXplQXVkaW9TZXNzaW9uKCkKICAgICBpZiAoIVdlYkNvcmU6OklPU0Fw
cGxpY2F0aW9uOjppc01vYmlsZVNhZmFyaSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBXZWJD
b3JlOjpBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zZXRDYXRlZ29yeShXZWJDb3JlOjpB
dWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6TWVkaWFQbGF5YmFjaywgV2ViQ29yZTo6Um91dGVT
aGFyaW5nUG9saWN5OjpEZWZhdWx0KTsKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OnNoYXJl
ZFNlc3Npb24oKS5zZXRDYXRlZ29yeShXZWJDb3JlOjpBdWRpb1Nlc3Npb25DYXRlZ29yeTo6TWVk
aWFQbGF5YmFjaywgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5OjpEZWZhdWx0KTsKIH0KICNl
bmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlBy
ZWZlcmVuY2VzLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJl
bmNlcy5tbQppbmRleCBjM2U4ZTJjMWQzNGY0YzU3NWE0ZTdjMGUwZDRjYmY4MDFlYjFkZWMzLi4x
MjIwYzBmMzJlZTRhYmQ2ZDcwMTliMGY2OTRiNzIyNmZhMzgzODlmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KQEAgLTQyMyw3ICs0
MjMsNyBAQCArICh2b2lkKWluaXRpYWxpemUKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAg
ICAgICAgIEBOTywgV2ViS2l0U3RvcmFnZVRyYWNrZXJFbmFibGVkUHJlZmVyZW5jZUtleSwKLSAg
ICAgICAgQChzdGF0aWNfY2FzdDx1bnNpZ25lZD4oQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6
Ok5vbmUpKSwgV2ViS2l0QXVkaW9TZXNzaW9uQ2F0ZWdvcnlPdmVycmlkZSwKKyAgICAgICAgQChz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6Ok5vbmUpKSwgV2ViS2l0
QXVkaW9TZXNzaW9uQ2F0ZWdvcnlPdmVycmlkZSwKIAogICAgICAgICAvLyBQZXItT3JpZ2luIFF1
b3RhIG9uIGlPUyBpcyAyNU1CLiBXaGVuIHRoZSBxdW90YSBpcyByZWFjaGVkIGZvciBhIHBhcnRp
Y3VsYXIgb3JpZ2luCiAgICAgICAgIC8vIHRoZSBxdW90YSBmb3IgdGhhdCBvcmlnaW4gY2FuIGJl
IGluY3JlYXNlZC4gU2VlIGFsc28gd2ViVmlldzpleGNlZWRlZEFwcGxpY2F0aW9uQ2FjaGVPcmln
aW5RdW90YUZvclNlY3VyaXR5T3JpZ2luOnRvdGFsU3BhY2VOZWVkZWQgaW4gV2ViVUkvV2ViVUlE
ZWxlZ2F0ZS5tLgpAQCAtMjA2NiwzMCArMjA2NiwzMCBAQCAtICh1bnNpZ25lZClhdWRpb1Nlc3Np
b25DYXRlZ29yeU92ZXJyaWRlCiAKIC0gKHZvaWQpc2V0QXVkaW9TZXNzaW9uQ2F0ZWdvcnlPdmVy
cmlkZToodW5zaWduZWQpb3ZlcnJpZGUKIHsKLSAgICBpZiAob3ZlcnJpZGUgPiBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6OkF1ZGlvUHJvY2Vzc2luZykp
IHsKKyAgICBpZiAob3ZlcnJpZGUgPiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oQXVkaW9TZXNzaW9u
Q2F0ZWdvcnk6OkF1ZGlvUHJvY2Vzc2luZykpIHsKICAgICAgICAgLy8gQ2xpZW50cyBhcmUgcGFz
c2luZyB1cyBPU1R5cGVzIHZhbHVlcyBmcm9tIEF1ZGlvVG9vbGJveC9BdWRpb1Nlc3Npb24uaCwK
LSAgICAgICAgLy8gd2hpY2ggbmVlZCB0byBiZSB0cmFuc2xhdGVkIGludG8gQXVkaW9TZXNzaW9u
OjpDYXRlZ29yeVR5cGU6CisgICAgICAgIC8vIHdoaWNoIG5lZWQgdG8gYmUgdHJhbnNsYXRlZCBp
bnRvIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OgogICAgICAgICBzd2l0Y2ggKG92ZXJyaWRlKSB7CiAg
ICAgICAgIGNhc2UgV2ViS2l0QXVkaW9TZXNzaW9uQ2F0ZWdvcnlBbWJpZW50U291bmQ6Ci0gICAg
ICAgICAgICBvdmVycmlkZSA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihBdWRpb1Nlc3Npb246OkNh
dGVnb3J5VHlwZTo6QW1iaWVudFNvdW5kKTsKKyAgICAgICAgICAgIG92ZXJyaWRlID0gc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpBbWJpZW50U291bmQpOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgV2ViS2l0QXVkaW9TZXNzaW9uQ2F0ZWdvcnlT
b2xvQW1iaWVudFNvdW5kOgotICAgICAgICAgICAgb3ZlcnJpZGUgPSBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6OlNvbG9BbWJpZW50U291bmQpOworICAg
ICAgICAgICAgb3ZlcnJpZGUgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oQXVkaW9TZXNzaW9uQ2F0
ZWdvcnk6OlNvbG9BbWJpZW50U291bmQpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNh
c2UgV2ViS2l0QXVkaW9TZXNzaW9uQ2F0ZWdvcnlNZWRpYVBsYXliYWNrOgotICAgICAgICAgICAg
b3ZlcnJpZGUgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5
cGU6Ok1lZGlhUGxheWJhY2spOworICAgICAgICAgICAgb3ZlcnJpZGUgPSBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6Ok1lZGlhUGxheWJhY2spOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIGNhc2UgV2ViS2l0QXVkaW9TZXNzaW9uQ2F0ZWdvcnlSZWNvcmRB
dWRpbzoKLSAgICAgICAgICAgIG92ZXJyaWRlID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEF1ZGlv
U2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpSZWNvcmRBdWRpbyk7CisgICAgICAgICAgICBvdmVycmlk
ZSA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihBdWRpb1Nlc3Npb25DYXRlZ29yeTo6UmVjb3JkQXVk
aW8pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgV2ViS2l0QXVkaW9TZXNzaW9u
Q2F0ZWdvcnlQbGF5QW5kUmVjb3JkOgotICAgICAgICAgICAgb3ZlcnJpZGUgPSBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6OlBsYXlBbmRSZWNvcmQpOwor
ICAgICAgICAgICAgb3ZlcnJpZGUgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oQXVkaW9TZXNzaW9u
Q2F0ZWdvcnk6OlBsYXlBbmRSZWNvcmQpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNh
c2UgV2ViS2l0QXVkaW9TZXNzaW9uQ2F0ZWdvcnlBdWRpb1Byb2Nlc3Npbmc6Ci0gICAgICAgICAg
ICBvdmVycmlkZSA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihBdWRpb1Nlc3Npb246OkNhdGVnb3J5
VHlwZTo6QXVkaW9Qcm9jZXNzaW5nKTsKKyAgICAgICAgICAgIG92ZXJyaWRlID0gc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpBdWRpb1Byb2Nlc3NpbmcpOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBvdmVycmlkZSA9
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6Tm9uZSk7
CisgICAgICAgICAgICBvdmVycmlkZSA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihBdWRpb1Nlc3Np
b25DYXRlZ29yeTo6Tm9uZSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0K
</data>
<flag name="review"
          id="462647"
          type_id="1"
          status="?"
          setter="jer.noble"
    />
    <flag name="commit-queue"
          id="462657"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>