<?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>231634</bug_id>
          
          <creation_ts>2021-10-12 15:17:05 -0700</creation_ts>
          <short_desc>[Build-time perf] Forward-declare more things in ScriptExecutionContext.h</short_desc>
          <delta_ts>2021-10-19 15:18:22 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>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>aboxhall</cc>
    
    <cc>alecflett</cc>
    
    <cc>andresg_22</cc>
    
    <cc>annulen</cc>
    
    <cc>apinheiro</cc>
    
    <cc>beidson</cc>
    
    <cc>benjamin</cc>
    
    <cc>berto</cc>
    
    <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>cfleizach</cc>
    
    <cc>cgarcia</cc>
    
    <cc>changseok</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dino</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fmalita</cc>
    
    <cc>fred.wang</cc>
    
    <cc>glenn</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>hta</cc>
    
    <cc>japhet</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>joepeck</cc>
    
    <cc>jsbell</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>mifenton</cc>
    
    <cc>mkwst</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>pangle</cc>
    
    <cc>pdr</cc>
    
    <cc>philipj</cc>
    
    <cc>pnormand</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>samuel_white</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tommyw</cc>
    
    <cc>toyoshim</cc>
    
    <cc>vjaquez</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>yutak</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1803461</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-10-12 15:17:05 -0700</bug_when>
    <thetext>[Build-time perf] Forward-declare more things in ScriptExecutionContext.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803470</commentid>
    <comment_count>1</comment_count>
      <attachid>441001</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-10-12 15:22:19 -0700</bug_when>
    <thetext>Created attachment 441001
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803471</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2021-10-12 15:23:11 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See https://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803856</commentid>
    <comment_count>3</comment_count>
      <attachid>441107</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-10-13 10:53:47 -0700</bug_when>
    <thetext>Created attachment 441107
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804343</commentid>
    <comment_count>4</comment_count>
      <attachid>441238</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-10-14 10:52:22 -0700</bug_when>
    <thetext>Created attachment 441238
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804363</commentid>
    <comment_count>5</comment_count>
      <attachid>441242</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-10-14 11:17:51 -0700</bug_when>
    <thetext>Created attachment 441242
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804563</commentid>
    <comment_count>6</comment_count>
      <attachid>441297</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-10-14 15:55:42 -0700</bug_when>
    <thetext>Created attachment 441297
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806366</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-19 15:18:22 -0700</bug_when>
    <thetext>&lt;rdar://problem/84435865&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441001</attachid>
            <date>2021-10-12 15:22:19 -0700</date>
            <delta_ts>2021-10-12 15:26:53 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-231634-20211012152219.patch</filename>
            <type>text/plain</type>
            <size>279576</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNjA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmFhZDQyNmEyNDY2YThl
YmZlNjM1MDcwNzBlNDA1NzBjOTVhNTBhYi4uOWY4NjAzMDFiZmE2MzFhNWQ0MGE0ZjgyYWI4OWMw
YTgzNDc4YmU0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0OSBAQAorMjAyMS0xMC0xMCAgSmVy
IE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBbQnVpbGQtdGltZSBwZXJm
XSBGb3J3YXJkLWRlY2xhcmUgbW9yZSB0aGluZ3MgaW4gRG9jdW1lbnQuaAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxNDg5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTXlsZXMgQy4gTWF4ZmllbGQuCisKKyAgICAgICAgTW92ZSB0aGUgZm9sb3dpbmcg
ZW51bWVyYXRpb25zIG91dHNpZGUgdGhlaXIgY2xhc3NlcyBzbyB0aGF0IHRoZXkgY2FuIGJlIGZv
cndhcmQtZGVjbGFyZWQ6CisgICAgICAgIC0gTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdz
IC0+IE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MKKyAgICAgICAgLSBNZWRpYVByb2R1Y2Vy
OjpNZWRpYUNhcHR1cmVLaW5kIC0+IE1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kCisgICAg
ICAgIC0gTWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZSAtPiBNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0
ZQorICAgICAgICAtIFN0eWxlQ29sb3I6Ok9wdGlvbnMgLT4gU3R5bGVDb2xvck9wdGlvbnMKKyAg
ICAgICAgLSBNdXRhdGlvbk9ic2VydmVyOjp7TXV0YXRpb25UeXBlLE9ic2VydmF0aW9uRmxhZ3Ms
RGVsaXZlcnlGbGFnc30gLT4gTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGUKKworICAgICAgICBB
ZGRpdGlvbmFsbHksIG1ha2UgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgYSBPcHRpb25TZXQ8TXV0
YXRpb25PYnNlcnZlck9wdGlvblR5cGU+LCBhbmQgdXBkYXRlCisgICAgICAgIGNhbGxzaXRlcyB0
byB1c2UgT3B0aW9uU2V0IG1ldGhvZHMgZm9yIHNldHRpbmcgYW5kIGNoZWNraW5nIGZsYWdzLgor
CisgICAgICAgIE1vdmUgaW5saW5lZCBtZXRob2RzIHRvIERvY3VtZW50SW5saW5lcy5oIGFuZCBQ
YWdlSW5saW5lcy5oIGFuZCBtYXJrIHRoZSBkZWNsYXJhdGlvbnMgYXMgYGlubGluZWAuCisKKyAg
ICAgICAgT24gdGhpcyBtYWNoaW5lLCB0aGlzIHNob3dzIGEgcmVkdWN0aW9uIGZyb20gfjEuMnMg
Y29tcGlsYXRpb24gdGltZSBmb3IgRG9jdW1lbnQuaCB0byB+MS4wcywgbW9zdAorICAgICAgICBv
ZiB0aGUgcmVtYWluZGVyIGR1ZSB0byB0aGUgaW5jbHVzaW9uIG9mIE5vZGUuaCAodmlhIENvbnRh
aW5lck5vZGUuaCkgYW5kIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaC4KKworICAgICAgICAqIE1v
ZHVsZXMvYWlycGxheS9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmZsYWdzQXJlU2V0KToKKyAgICAgICAgKFdlYkNvcmU6Om1lZGlhUHJvZHVjZXJTdGF0ZVN0
cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpzaG93UGxh
eWJhY2tUYXJnZXRQaWNrZXIpOgorICAgICAgICAoV2ViQ29yZTo6V2ViTWVkaWFTZXNzaW9uTWFu
YWdlcjo6Y2xpZW50U3RhdGVEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6V2ViTWVkaWFT
ZXNzaW9uTWFuYWdlcjo6Y29uZmlndXJlUGxheWJhY2tUYXJnZXRDbGllbnRzKToKKyAgICAgICAg
KFdlYkNvcmU6OldlYk1lZGlhU2Vzc2lvbk1hbmFnZXI6OmNvbmZpZ3VyZVBsYXliYWNrVGFyZ2V0
TW9uaXRvcmluZyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpj
b25maWd1cmVXYXRjaGRvZ1RpbWVyKToKKyAgICAgICAgKiBNb2R1bGVzL2FpcnBsYXkvV2ViTWVk
aWFTZXNzaW9uTWFuYWdlci5oOgorICAgICAgICAoV1RGOjpMb2dBcmd1bWVudDxXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzPjo6dG9TdHJpbmcpOgorICAgICAgICAoV1RGOjpM
b2dBcmd1bWVudDxXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3M+Ojp0b1N0
cmluZyk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbTo6bWVkaWFTdGF0ZSBjb25zdCk6
CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5oOgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVN0cmVhbVRyYWNrOjptZWRpYVN0YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OnNvdXJjZUNhcHR1cmVTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRy
YWNrOjpjYXB0dXJlU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFjazo6
dXBkYXRlQ2FwdHVyZUFjY29yZGluZ1RvTXV0ZWRTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVN0cmVhbVRyYWNrOjp1cGRhdGVUb1BhZ2VNdXRlZFN0YXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OnRyYWNrTWF0Y2hlc0tpbmQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFj
azo6ZW5kQ2FwdHVyZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bVRyYWNrLmg6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENDb250cm9sbGVyLmNw
cDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwOgor
ICAgICAgICAqIE1vZHVsZXMvcGVybWlzc2lvbnMvUGVybWlzc2lvblN0YXR1cy5jcHA6CisgICAg
ICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QXVkaW9Db250ZXh0OjptZWRpYVN0YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvQ29udGV4dDo6dmlzaWJpbGl0eVN0YXRlQ2hhbmdlZCk6CisgICAgICAgICogTW9kdWxlcy93
ZWJhdWRpby9BdWRpb0NvbnRleHQuaDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmg6Cisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcDoKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU0xhenlFdmVudExpc3RlbmVyLmNwcDoKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKiBjc3MvU3R5bGVDb2xvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTdHlsZUNvbG9yOjpjb2xvckZyb21LZXl3b3JkKToKKyAgICAg
ICAgKiBjc3MvU3R5bGVDb2xvci5oOgorICAgICAgICAqIGRvbS9DaGFyYWN0ZXJEYXRhLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmNhblVzZVNldERhdGFPcHRpbWl6YXRpb24pOgorICAgICAgICAq
IGRvbS9DaGlsZExpc3RNdXRhdGlvblNjb3BlLmg6CisgICAgICAgIChXZWJDb3JlOjpDaGlsZExp
c3RNdXRhdGlvblNjb3BlOjpDaGlsZExpc3RNdXRhdGlvblNjb3BlKToKKyAgICAgICAgKiBkb20v
Q29udGFpbmVyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250YWluZXJOb2RlOjpyZW1v
dmVBbGxDaGlsZHJlbldpdGhTY3JpcHRBc3NlcnRpb24pOgorICAgICAgICAqIGRvbS9Eb2N1bWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cmVzZXRWaXNpdGVkTGlua0NvbG9y
KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXRSVENOZXR3b3JrTWFuYWdlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dXBkYXRlSXNQbGF5aW5nTWVkaWEpOgorICAgICAg
ICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzdHlsZUNvbG9yT3B0aW9ucyBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRT
dGF0ZURpZENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c3RvcE1lZGlhQ2Fw
dHVyZSk6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudDo6aGFzTXV0YXRpb25PYnNlcnZlcnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnQ6OmFkZE11dGF0aW9uT2JzZXJ2ZXJUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudDo6Z2V0T3ZlcnJpZGVTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6Y2hh
cnNldCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZW5jb2Rp
bmcgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNldFJUQ05l
dHdvcmtNYW5hZ2VyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpoYXNN
dXRhdGlvbk9ic2VydmVyc09mVHlwZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudDo6aXNTYW1lT3JpZ2luQXNUb3BEb2N1bWVudCBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6aXNDYXB0dXJpbmcgY29uc3QpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnRleHRFbmNvZGluZyBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dGVtcGxhdGVEb2N1bWVudCBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZXhpc3RpbmdBWE9iamVjdENhY2hl
IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpjcmVhdGUpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmludmFsaWRhdGVBY2Nlc3NLZXlD
YWNoZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpzY3JpcHRFeGVjdXRpb25D
b250ZXh0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vRG9jdW1lbnRJbmxpbmVzLmg6
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZW5jb2RpbmcgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6RG9jdW1lbnQ6OmNoYXJzZXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnQ6OmlzQ2FwdHVyaW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpo
YXNNdXRhdGlvbk9ic2VydmVyc09mVHlwZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudDo6aXNTYW1lT3JpZ2luQXNUb3BEb2N1bWVudCBjb25zdCk6CisgICAgICAgICogZG9tL011
dGF0aW9uT2JzZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlcjo6
dmFsaWRhdGVPcHRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXI6Om9i
c2VydmUpOgorICAgICAgICAqIGRvbS9NdXRhdGlvbk9ic2VydmVyLmg6CisgICAgICAgICogZG9t
L011dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok11
dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwOjpjcmVhdGVJZk5lZWRlZCk6CisgICAgICAgICog
ZG9tL011dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmg6CisgICAgICAgIChXZWJDb3JlOjpN
dXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cDo6Y3JlYXRlRm9yQ2hpbGRMaXN0TXV0YXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXA6OmNyZWF0
ZUZvckNoYXJhY3RlckRhdGFNdXRhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9i
c2VydmVySW50ZXJlc3RHcm91cDo6Y3JlYXRlRm9yQXR0cmlidXRlc011dGF0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwOjpoYXNPbGRWYWx1ZSBj
b25zdCk6CisgICAgICAgICogZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbjo6c2hvdWxkUmVj
ZWl2ZU11dGF0aW9uRnJvbSBjb25zdCk6CisgICAgICAgICogZG9tL011dGF0aW9uT2JzZXJ2ZXJS
ZWdpc3RyYXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXJSZWdpc3Ry
YXRpb246OmlzU3VidHJlZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2Vy
dmVyUmVnaXN0cmF0aW9uOjpkZWxpdmVyeU9wdGlvbnMgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbjo6bXV0YXRpb25UeXBlcyBjb25zdCk6Cisg
ICAgICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29sbGVjdE1hdGNoaW5n
T2JzZXJ2ZXJzRm9yTXV0YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6cmVnaXN0ZXJl
ZE11dGF0aW9uT2JzZXJ2ZXJzKToKKyAgICAgICAgKiBkb20vTm9kZS5oOgorICAgICAgICAqIGRv
bS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwOgorICAgICAgICAqIGRvbS9TY3JpcHRFbGVtZW50
LmNwcDoKKyAgICAgICAgKiBkb20vU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudC5oOgorICAg
ICAgICAoV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQ6OlNlY3VyaXR5
UG9saWN5VmlvbGF0aW9uRXZlbnRJbml0KToKKyAgICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5UG9s
aWN5VmlvbGF0aW9uRXZlbnRJbml0OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQ6OmRlY29kZSk6CisgICAgICAgIChXZWJD
b3JlOjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJbml0OjplbmNvZGUgY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6
SW5pdDo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL0hUTUxMaW5rRWxlbWVudC5j
cHA6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNob3VsZE92ZXJyaWRlQmFja2dyb3VuZFBsYXliYWNrUmVz
dHJpY3Rpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6dXBk
YXRlTWVkaWFTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjptZWRp
YVN0YXRlIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAgICAg
ICAgKiBodG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFFbGVtZW50U2Vzc2lvbjo6cGxheWJhY2tTdGF0ZUNoYW5nZVBlcm1pdHRlZCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYUVsZW1lbnRTZXNzaW9uOjptZWRpYVN0YXRlRGlkQ2hhbmdl
KToKKyAgICAgICAgKiBodG1sL01lZGlhRWxlbWVudFNlc3Npb24uaDoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgICogaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JET01BZ2VudC5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwOgorICAgICAgICAqIGxvYWRlci9Dcm9zc09yaWdpbk9w
ZW5lclBvbGljeS5oOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0
aW9uRXZlbnQpOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5oOgorICAgICAgICAq
IGxvYWRlci9Eb2N1bWVudFdyaXRlci5jcHA6CisgICAgICAgICogbG9hZGVyL0Zvcm1TdWJtaXNz
aW9uLmNwcDoKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAqIGxv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgICogcGFnZS9DaHJv
bWVDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudDo6aXNQbGF5aW5nTWVk
aWFEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50OjpwbGF5YmFja1Rh
cmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNw
cDoKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZVZpZXc6OnN0eWxlQ29sb3JPcHRpb25zIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmll
dy5oOgorICAgICAgICAqIHBhZ2UvTWVkaWFQcm9kdWNlci5oOgorICAgICAgICAqIHBhZ2UvUGFn
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjp1cGRhdGVJc1BsYXlpbmdNZWRpYSk6Cisg
ICAgICAgIChXZWJDb3JlOjpQYWdlOjpzZXRNdXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpQYWdl
OjpzdG9wTWVkaWFDYXB0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnBsYXliYWNrVGFy
Z2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UpOgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6UGFnZTo6bWVkaWFTdGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpQYWdlOjptdXRlZFN0YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6Omlz
QXVkaW9NdXRlZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQYWdlOjppc01l
ZGlhQ2FwdHVyZU11dGVkIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL1BhZ2VJbmxp
bmVzLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudElubGluZXMuaC4K
KyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OmlzQXVkaW9NdXRlZCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpQYWdlOjppc01lZGlhQ2FwdHVyZU11dGVkIGNvbnN0KToKKyAgICAgICAgKiBwYWdl
L1BhZ2VTZXJpYWxpemVyLmNwcDoKKyAgICAgICAgKiBwYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQ
b2xpY3kuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5OjpyZXBv
cnRWaW9sYXRpb24gY29uc3QpOgorICAgICAgICAqIHBhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBv
bGljeUNsaWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNw
cDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlck9iamVjdDo6c3R5bGVDb2xvck9wdGlvbnMgY29uc3QpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJPYmplY3QuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUmVwbGFj
ZWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVwbGFjZWQ6OmNhbGN1bGF0ZUhpZ2hs
aWdodENvbG9yIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRD
b2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6aW5hY3RpdmVTZWxl
Y3Rpb25CYWNrZ3JvdW5kQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhl
bWU6OnRyYW5zZm9ybVNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUaGVtZTo6YWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjppbmFjdGl2ZVNlbGVjdGlvbkZvcmVn
cm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6YWN0aXZl
TGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUaGVtZTo6aW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjphY3RpdmVMaXN0Qm94U2VsZWN0
aW9uRm9yZWdyb3VuZENvbG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1l
OjppbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3Vu
ZENvbG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUFj
dGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJUaGVtZTo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVj
dGlvbkZvcmVncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZTo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxl
Y3Rpb25Gb3JlZ3JvdW5kQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhl
bWU6OnBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUluYWN0aXZlTGlzdEJv
eFNlbGVjdGlvbkZvcmVncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUaGVtZTo6Y29sb3JDYWNoZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZTo6c3lzdGVtQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OnRl
eHRTZWFyY2hIaWdobGlnaHRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJU
aGVtZTo6cGxhdGZvcm1UZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3IgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGhlbWU6OmFwcEhpZ2hsaWdodENvbG9yIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUFwcEhpZ2hsaWdodENvbG9yIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpkZWZhdWx0QnV0dG9uVGV4dENvbG9yIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybURlZmF1bHRCdXR0
b25UZXh0Q29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OmZvY3Vz
UmluZ0NvbG9yIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWUuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUZvY3VzUmluZ0NvbG9yIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpzdXBwb3J0c1NlbGVjdGlvbkZvcmVn
cm91bmRDb2xvcnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OnN1cHBv
cnRzTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcnMgY29uc3QpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJUaGVtZUlPUy5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVt
ZUlPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lSU9TOjpwbGF0Zm9ybUFjdGl2
ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUaGVtZUlPUzo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUlPUzo6cGxhdGZvcm1Gb2N1c1JpbmdD
b2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUlPUzo6cGxhdGZvcm1B
cHBIaWdobGlnaHRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUlP
Uzo6c3lzdGVtQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVJT1M6
OmNoZWNrYm94UmFkaW9Cb3JkZXJDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZUlPUzo6Y2hlY2tib3hSYWRpb0JhY2tncm91bmRDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJUaGVtZUlPUzo6Y2hlY2tib3hSYWRpb0luZGljYXRvckNvbG9yKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhl
bWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1BY3Rp
dmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyVGhlbWVNYWM6OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OnRyYW5zZm9ybVNlbGVjdGlv
bkJhY2tncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1h
Yzo6c3VwcG9ydHNTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3JzIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRD
b2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1J
bmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3Vu
ZENvbG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFjOjpwbGF0Zm9y
bUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9u
Rm9yZWdyb3VuZENvbG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFj
OjpwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvciBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1Gb2N1c1JpbmdDb2xv
ciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1UZXh0
U2VhcmNoSGlnaGxpZ2h0Q29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhl
bWVNYWM6OnBsYXRmb3JtQXBwSGlnaGxpZ2h0Q29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtRGVmYXVsdEJ1dHRvblRleHRDb2xvciBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6c3lzdGVtQ29sb3IgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OmFkanVzdE1lbnVMaXN0U3R5bGUgY29u
c3QpOgorICAgICAgICAqIHJlbmRlcmluZy9TdHlsZWRNYXJrZWRUZXh0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnJlc29sdmVTdHlsZUZvck1hcmtlZFRleHQpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9UZXh0UGFpbnRTdHlsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb21wdXRlVGV4dFBhaW50
U3R5bGUpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkludGVybmFsczo6c2V0UGFnZU11dGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFs
czo6cGFnZU1lZGlhU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpzeXN0ZW1D
b2xvckZvckNTU1ZhbHVlKToKKyAgICAgICAgKiB4bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2Vy
TGlieG1sMi5jcHA6CisKIDIwMjEtMTAtMDkgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5j
b20+CiAKICAgICAgICAgW0J1aWxkLXRpbWUgcGVyZl0gU3BlZWQgdXAgdGhlIFdlYkNvcmUgbnVs
bCBidWlsZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCBiZGYwYzA1NGQ5Nzk5NmZkYTQ5NTVmMDBhN2FjOTNhOTZiMDk4
YTcwLi45OWRmNWE3NTExNzJlZDBhOGU0Mjc5M2M2ZTNhMzE1Y2MyZjU3NThkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDgxIEBACisyMDIxLTEwLTEwICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUu
Y29tPgorCisgICAgICAgIFtCdWlsZC10aW1lIHBlcmZdIEZvcndhcmQtZGVjbGFyZSBtb3JlIHRo
aW5ncyBpbiBEb2N1bWVudC5oCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzE0ODkKKworICAgICAgICBSZXZpZXdlZCBieSBNeWxlcyBDLiBNYXhmaWVs
ZC4KKworICAgICAgICBNb3ZlIHRoZSBmb2xvd2luZyBlbnVtZXJhdGlvbnMgb3V0c2lkZSB0aGVp
ciBjbGFzc2VzIHNvIHRoYXQgdGhleSBjYW4gYmUgZm9yd2FyZC1kZWNsYXJlZDoKKyAgICAgICAg
LSBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgLT4gTWVkaWFQcm9kdWNlck1lZGlhU3Rh
dGVGbGFncworICAgICAgICAtIE1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQgLT4gTWVk
aWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQKKyAgICAgICAgLSBNZWRpYVByb2R1Y2VyOjpNdXRl
ZFN0YXRlIC0+IE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlCisKKyAgICAgICAgKiBHUFVQcm9jZXNz
L21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtS
ZXNvdXJjZUxvYWRlcjo6ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQpOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oOgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAoaGVhZGVyc19mb3JfdHlwZSk6
CisgICAgICAgICogU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAq
IFNoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9BUElVSUNsaWVudC5oOgorICAgICAgICAoQVBJOjpVSUNsaWVudDo6bWVkaWFDYXB0dXJl
U3RhdGVEaWRDaGFuZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwOgor
ICAgICAgICAoV0tQYWdlU2V0TXV0ZWQpOgorICAgICAgICAoV0tQYWdlR2V0TWVkaWFTdGF0ZSk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgt
W1dLV2ViVmlldyBjYW1lcmFDYXB0dXJlU3RhdGVdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IG1p
Y3JvcGhvbmVDYXB0dXJlU3RhdGVdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHNldE1pY3JvcGhv
bmVDYXB0dXJlU3RhdGU6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW1dLV2ViVmll
dyBzZXRDYW1lcmFDYXB0dXJlU3RhdGU6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICgt
W1dLV2ViVmlldyBfc3RvcE1lZGlhQ2FwdHVyZV0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3Nl
dFBhZ2VNdXRlZDpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmll
dy5jcHA6CisgICAgICAgICh3ZWJraXRXZWJWaWV3Q29uZmlndXJlTWVkaWFDYXB0dXJlKToKKyAg
ICAgICAgKHdlYmtpdF93ZWJfdmlld19zZXRfY2FtZXJhX2NhcHR1cmVfc3RhdGUpOgorICAgICAg
ICAod2Via2l0X3dlYl92aWV3X3NldF9taWNyb3Bob25lX2NhcHR1cmVfc3RhdGUpOgorICAgICAg
ICAod2Via2l0X3dlYl92aWV3X3NldF9kaXNwbGF5X2NhcHR1cmVfc3RhdGUpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9Db2NvYS9NZWRpYVV0aWxpdGllcy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9D
b2NvYS9NZWRpYVV0aWxpdGllcy5tbToKKyAgICAgICAgKFdlYktpdDo6dG9XS01lZGlhQ2FwdHVy
ZVN0YXRlRGVwcmVjYXRlZCk6CisgICAgICAgIChXZWJLaXQ6OnRvV0tNZWRpYU11dGVkU3RhdGUp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW06CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6
OlVJQ2xpZW50OjptZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZSk6CisgICAgICAgICogVUlQcm9j
ZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6On5Vc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpzdG9wQ2FwdHVyZSk6CisgICAgICAg
IChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpjYXB0dXJl
U3RhdGVDaGFuZ2VkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp1cGRhdGVBY3Rpdml0eVN0YXRlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXRNdXRlZCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6c3RvcE1lZGlhQ2FwdHVyZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6aXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OnVwZGF0ZVBsYXlpbmdNZWRpYURpZENoYW5nZSk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5n
ZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6cGFnZU11
dGVkU3RhdGVDaGFuZ2VkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwOgorICAgICAgICAq
IFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3Lmg6CisgICAgICAgIChXZWJLaXQ6OlBsdWdp
blZpZXc6Om1lZGlhU3RhdGUgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xp
ZW50Ojppc1BsYXlpbmdNZWRpYURpZENoYW5nZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9t
ZUNsaWVudDo6cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZSk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjpzZXRNdXRlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OnN0b3BNZWRpYUNhcHR1cmUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjppc1BsYXlpbmdN
ZWRpYURpZENoYW5nZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKwogMjAy
MS0xMC0wNiAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBbQnVp
bGQtdGltZSBwZXJmXSBGb3J3YXJkLWRlY2xhcmUgbW9yZSB0aGluZ3MgaW4gRWxlbWVudC5oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggZWEzYzdhNWRhYTA5Y2Q3Y2E0Y2FjYzc5YTgz
NzkzMjgyZTY2NTRlNi4uZWRjOGU1NmU3NjYyMWM5ZjFmODdiOTkzODc0ZmExYTQ1NmMyY2Y2MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIxLTEwLTEw
ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtCdWlsZC10aW1l
IHBlcmZdIEZvcndhcmQtZGVjbGFyZSBtb3JlIHRoaW5ncyBpbiBEb2N1bWVudC5oCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE0ODkKKworICAgICAg
ICBSZXZpZXdlZCBieSBNeWxlcyBDLiBNYXhmaWVsZC4KKworICAgICAgICBNb3ZlIHRoZSBmb2xv
d2luZyBlbnVtZXJhdGlvbnMgb3V0c2lkZSB0aGVpciBjbGFzc2VzIHNvIHRoYXQgdGhleSBjYW4g
YmUgZm9yd2FyZC1kZWNsYXJlZDoKKyAgICAgICAgLSBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
RmxhZ3MgLT4gTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncworICAgICAgICAtIE1lZGlhUHJv
ZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQgLT4gTWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQK
KyAgICAgICAgLSBNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlIC0+IE1lZGlhUHJvZHVjZXJNdXRl
ZFN0YXRlCisKKyAgICAgICAgKiBET00vRE9NRG9jdW1lbnQubW06CisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50Lm1tOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpwbGF5YmFja1Rhcmdl
dFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYk1lZGlh
UGxheWJhY2tUYXJnZXRQaWNrZXIuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYk1lZGlhUGxheWJh
Y2tUYXJnZXRQaWNrZXIubW06CisgICAgICAgIChXZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2Vy
OjpwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKToKKyAgICAgICAgKiBX
ZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgX3BsYXliYWNrVGFyZ2V0UGlj
a2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2U6c3RhdGU6XSk6CisgICAgICAgICogV2ViVmlldy9XZWJW
aWV3SW50ZXJuYWwuaDoKKwogMjAyMS0xMC0wNiAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxl
LmNvbT4KIAogICAgICAgICBbQnVpbGQtdGltZSBwZXJmXSBGb3J3YXJkLWRlY2xhcmUgbW9yZSB0
aGluZ3MgaW4gRWxlbWVudC5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNt
YWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCAwMDNmZDZlODk5ZTYxNGQx
NTBjMmU0NzllMGUzNDM2YmQ4MjY1NTM0Li5jZmRlOGZhMWM3MTQxYjczODM0ZTUxZWY2ZjkwZDkz
OTBlZWM0ODY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTQ3NSw2ICs0NzUsNyBAQCBzZXQoV2Vi
Q29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgZG9tL0RvY3VtZW50Rm9udExvYWRl
ci5oCiAgICAgZG9tL0RvY3VtZW50RnJhZ21lbnQuaAogICAgIGRvbS9Eb2N1bWVudEZ1bGxzY3Jl
ZW4uaAorICAgIGRvbS9Eb2N1bWVudElubGluZXMuaAogICAgIGRvbS9Eb2N1bWVudE1hcmtlci5o
CiAgICAgZG9tL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5oCiAgICAgZG9tL0RvY3VtZW50U3Rv
cmFnZUFjY2Vzcy5oCkBAIC05NTksNiArOTYwLDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFN
RVdPUktfSEVBREVSUwogICAgIHBhZ2UvUGFnZUNvbnNvbGVDbGllbnQuaAogICAgIHBhZ2UvUGFn
ZUdyb3VwLmgKICAgICBwYWdlL1BhZ2VJZGVudGlmaWVyLmgKKyAgICBwYWdlL1BhZ2VJbmxpbmVz
LmgKICAgICBwYWdlL1BhZ2VPdmVybGF5LmgKICAgICBwYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxl
ci5oCiAgICAgcGFnZS9QYWdlUGFzdGVib2FyZENvbnRleHQuaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9haXJwbGF5L1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9haXJwbGF5L1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCmlu
ZGV4IDI5ODNjMGVmMTFhYTNjMDZlMjI2MzE0NzY1NGJiZDVmM2RkZGYzOTAuLjhjNjc4N2MzNmI0
OGUzYjNjY2MzM2U2ZDQzNjI4N2I3ZGVlMWEzNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvYWlycGxheS9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2FpcnBsYXkvV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAKQEAgLTU4
LDM3ICs1OCwzNyBAQCBzdHJ1Y3QgQ2xpZW50U3RhdGUgewogCiAgICAgV2ViTWVkaWFTZXNzaW9u
TWFuYWdlckNsaWVudCYgY2xpZW50OwogICAgIFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElk
ZW50aWZpZXIgY29udGV4dElkOwotICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGVGbGFncyBmbGFnczsKKyAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdz
IGZsYWdzOwogICAgIGJvb2wgcmVxdWVzdGVkUGlja2VyIHsgZmFsc2UgfTsKICAgICBib29sIHBy
ZXZpb3VzbHlSZXF1ZXN0ZWRQaWNrZXIgeyBmYWxzZSB9OwogICAgIGJvb2wgY29uZmlndXJhdGlv
blJlcXVpcmVkIHsgdHJ1ZSB9OwogICAgIGJvb2wgcGxheWVkVG9FbmQgeyBmYWxzZSB9OwogfTsK
IAotc3RhdGljIGJvb2wgZmxhZ3NBcmVTZXQoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdz
IHZhbHVlLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgZmxhZ3MpCitzdGF0aWMgYm9v
bCBmbGFnc0FyZVNldChNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIHZhbHVlLCBNZWRpYVBy
b2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIGZsYWdzKQogewogICAgIHJldHVybiB2YWx1ZS5jb250YWlu
c0FueShmbGFncyk7CiB9CiAKLVN0cmluZyBtZWRpYVByb2R1Y2VyU3RhdGVTdHJpbmcoTWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIGZsYWdzKQorU3RyaW5nIG1lZGlhUHJvZHVjZXJTdGF0
ZVN0cmluZyhNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIGZsYWdzKQogewogICAgIFN0cmlu
Z0J1aWxkZXIgc3RyaW5nOwogICAgIHN0cmluZy5hcHBlbmQoIiB7ICIpOwotICAgIGlmIChmbGFn
cyAmIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvKQorICAgIGlmIChm
bGFncyAmIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbykKICAgICAgICAg
c3RyaW5nLmFwcGVuZCgiSXNQbGF5aW5nQXVkaW8rIik7Ci0gICAgaWYgKGZsYWdzICYgTWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nVmlkZW8pCisgICAgaWYgKGZsYWdzICYgTWVk
aWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvKQogICAgICAgICBzdHJpbmcuYXBw
ZW5kKCJJc1BsYXlpbmdWaWRlbysiKTsKLSAgICBpZiAoZmxhZ3MgJiBNZWRpYVByb2R1Y2VyOjpN
ZWRpYVN0YXRlOjpJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlKQorICAgIGlmIChmbGFncyAmIE1l
ZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlKQogICAgICAg
ICBzdHJpbmcuYXBwZW5kKCJJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlKyIpOwotICAgIGlmIChm
bGFncyAmIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc1BsYXliYWNrVGFyZ2V0QXZhaWxh
YmlsaXR5TGlzdGVuZXIpCisgICAgaWYgKGZsYWdzICYgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6
Okhhc1BsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5TGlzdGVuZXIpCiAgICAgICAgIHN0cmluZy5h
cHBlbmQoIkhhc1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVyKyIpOwotICAgIGlmIChmbGFncyAm
IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OlJlcXVpcmVzUGxheWJhY2tUYXJnZXRNb25pdG9y
aW5nKQorICAgIGlmIChmbGFncyAmIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpSZXF1aXJlc1Bs
YXliYWNrVGFyZ2V0TW9uaXRvcmluZykKICAgICAgICAgc3RyaW5nLmFwcGVuZCgiUmVxdWlyZXNU
YXJnZXRNb25pdG9yaW5nKyIpOwotICAgIGlmIChmbGFncyAmIE1lZGlhUHJvZHVjZXI6Ok1lZGlh
U3RhdGU6OkV4dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUpCisgICAgaWYgKGZsYWdzICYg
TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OkV4dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUp
CiAgICAgICAgIHN0cmluZy5hcHBlbmQoIkV4dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUr
Iik7Ci0gICAgaWYgKGZsYWdzICYgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6RGlkUGxheVRv
RW5kKQorICAgIGlmIChmbGFncyAmIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpEaWRQbGF5VG9F
bmQpCiAgICAgICAgIHN0cmluZy5hcHBlbmQoIkRpZFBsYXlUb0VuZCsiKTsKLSAgICBpZiAoZmxh
Z3MgJiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBdWRpb09yVmlkZW8pCisgICAgaWYg
KGZsYWdzICYgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0F1ZGlvT3JWaWRlbykKICAgICAg
ICAgc3RyaW5nLmFwcGVuZCgiSGFzQXVkaW9PclZpZGVvKyIpOwogICAgIGlmIChzdHJpbmcuaXNF
bXB0eSgpKQogICAgICAgICBzdHJpbmcuYXBwZW5kKCJJc05vdFBsYXlpbmciKTsKQEAgLTI1Niwx
MSArMjU2LDExIEBAIHZvaWQgV2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hvd1BsYXliYWNrVGFy
Z2V0UGlja2VyKFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGllCiAKICAgICBBTFdBWVNfTE9HX01F
RElBU0VTU0lPTk1BTkFHRVIoX19mdW5jX18sIG1fY2xpZW50U3RhdGVbaW5kZXhdLmdldCgpKTsK
IAotICAgIGJvb2wgaGFzQWN0aXZlUm91dGUgPSBmbGFnc0FyZVNldChtX2NsaWVudFN0YXRlW2lu
ZGV4XS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1RvRXh0ZXJu
YWxEZXZpY2UpOworICAgIGJvb2wgaGFzQWN0aXZlUm91dGUgPSBmbGFnc0FyZVNldChtX2NsaWVu
dFN0YXRlW2luZGV4XS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdU
b0V4dGVybmFsRGV2aWNlKTsKICAgICB0YXJnZXRQaWNrZXIoKS5zaG93UGxheWJhY2tUYXJnZXRQ
aWNrZXIoY2xpZW50LnBsYXRmb3JtVmlldygpLCBGbG9hdFJlY3QocmVjdCksIGhhc0FjdGl2ZVJv
dXRlLCB1c2VEYXJrQXBwZWFyYW5jZSwgY2xpZW50LnVzZWlUdW5lc0FWT3V0cHV0Q29udGV4dCgp
KTsKIH0KIAotdm9pZCBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpjbGllbnRTdGF0ZURpZENoYW5n
ZShXZWJNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50JiBjbGllbnQsIFBsYXliYWNrVGFyZ2V0Q2xp
ZW50Q29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
RmxhZ3MgbmV3RmxhZ3MpCit2b2lkIFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXI6OmNsaWVudFN0YXRl
RGlkQ2hhbmdlKFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGllbnQmIGNsaWVudCwgUGxheWJhY2tU
YXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIE1lZGlhUHJvZHVjZXJNZWRp
YVN0YXRlRmxhZ3MgbmV3RmxhZ3MpCiB7CiAgICAgc2l6ZV90IGluZGV4ID0gZmluZCgmY2xpZW50
LCBjb250ZXh0SWQpOwogICAgIEFTU0VSVChpbmRleCAhPSBub3RGb3VuZCk7CkBAIC0yNjgsNyAr
MjY4LDcgQEAgdm9pZCBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpjbGllbnRTdGF0ZURpZENoYW5n
ZShXZWJNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50JgogICAgICAgICByZXR1cm47CiAKICAgICBh
dXRvJiBjaGFuZ2VkQ2xpZW50U3RhdGUgPSBtX2NsaWVudFN0YXRlW2luZGV4XTsKLSAgICBNZWRp
YVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgb2xkRmxhZ3MgPSBjaGFuZ2VkQ2xpZW50U3RhdGUt
PmZsYWdzOworICAgIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3Mgb2xkRmxhZ3MgPSBjaGFu
Z2VkQ2xpZW50U3RhdGUtPmZsYWdzOwogICAgIGlmIChuZXdGbGFncyA9PSBvbGRGbGFncykKICAg
ICAgICAgcmV0dXJuOwogCkBAIC0yNzYsMTggKzI3NiwxOCBAQCB2b2lkIFdlYk1lZGlhU2Vzc2lv
bk1hbmFnZXI6OmNsaWVudFN0YXRlRGlkQ2hhbmdlKFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGll
bnQmCiAKICAgICBjaGFuZ2VkQ2xpZW50U3RhdGUtPmZsYWdzID0gbmV3RmxhZ3M7CiAKLSAgICBj
b25zdGV4cHIgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHVwZGF0ZUNvbmZpZ3VyYXRp
b25GbGFncyB7IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OlJlcXVpcmVzUGxheWJhY2tUYXJn
ZXRNb25pdG9yaW5nLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNQbGF5YmFja1Rhcmdl
dEF2YWlsYWJpbGl0eUxpc3RlbmVyLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBdWRp
b09yVmlkZW8gfTsKKyAgICBjb25zdGV4cHIgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyB1
cGRhdGVDb25maWd1cmF0aW9uRmxhZ3MgeyBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6UmVxdWly
ZXNQbGF5YmFja1RhcmdldE1vbml0b3JpbmcsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNQ
bGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVyLCBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0
ZTo6SGFzQXVkaW9PclZpZGVvIH07CiAgICAgaWYgKChvbGRGbGFncyAmIHVwZGF0ZUNvbmZpZ3Vy
YXRpb25GbGFncykgIT0gKG5ld0ZsYWdzICYgdXBkYXRlQ29uZmlndXJhdGlvbkZsYWdzKSkKICAg
ICAgICAgc2NoZWR1bGVEZWxheWVkVGFzayhUYXJnZXRNb25pdG9yaW5nQ29uZmlndXJhdGlvblRh
c2spOwogCi0gICAgY29uc3RleHByIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBwbGF5
aW5nVG9UYXJnZXRGbGFncyB7IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1Rv
RXh0ZXJuYWxEZXZpY2UsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVv
IH07CisgICAgY29uc3RleHByIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgcGxheWluZ1Rv
VGFyZ2V0RmxhZ3MgeyBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nVG9FeHRlcm5h
bERldmljZSwgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvIH07CiAgICAg
aWYgKChvbGRGbGFncyAmIHBsYXlpbmdUb1RhcmdldEZsYWdzKSAhPSAobmV3RmxhZ3MgJiBwbGF5
aW5nVG9UYXJnZXRGbGFncykpIHsKLSAgICAgICAgaWYgKGZsYWdzQXJlU2V0KG9sZEZsYWdzLCBN
ZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbykgJiYgIWZsYWdzQXJlU2V0
KG5ld0ZsYWdzLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbykgJiYg
ZmxhZ3NBcmVTZXQobmV3RmxhZ3MsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OkRpZFBsYXlU
b0VuZCkpCisgICAgICAgIGlmIChmbGFnc0FyZVNldChvbGRGbGFncywgTWVkaWFQcm9kdWNlck1l
ZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvKSAmJiAhZmxhZ3NBcmVTZXQobmV3RmxhZ3MsIE1lZGlh
UHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbykgJiYgZmxhZ3NBcmVTZXQobmV3Rmxh
Z3MsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpEaWRQbGF5VG9FbmQpKQogICAgICAgICAgICAg
Y2hhbmdlZENsaWVudFN0YXRlLT5wbGF5ZWRUb0VuZCA9IHRydWU7CiAgICAgICAgIHNjaGVkdWxl
RGVsYXllZFRhc2soV2F0Y2hkb2dUaW1lckNvbmZpZ3VyYXRpb25UYXNrKTsKICAgICB9CiAKLSAg
ICBpZiAoIW1fcGxheWJhY2tUYXJnZXQgfHwgIW1fcGxheWJhY2tUYXJnZXQtPmhhc0FjdGl2ZVJv
dXRlKCkgfHwgIWZsYWdzQXJlU2V0KG5ld0ZsYWdzLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
OjpFeHRlcm5hbERldmljZUF1dG9QbGF5Q2FuZGlkYXRlKSkKKyAgICBpZiAoIW1fcGxheWJhY2tU
YXJnZXQgfHwgIW1fcGxheWJhY2tUYXJnZXQtPmhhc0FjdGl2ZVJvdXRlKCkgfHwgIWZsYWdzQXJl
U2V0KG5ld0ZsYWdzLCBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6RXh0ZXJuYWxEZXZpY2VBdXRv
UGxheUNhbmRpZGF0ZSkpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIERvIG5vdCBpbnRlcnJ1
cHQgYW5vdGhlciBlbGVtZW50IGFscmVhZHkgcGxheWluZyB0byBhIGRldmljZS4KQEAgLTI5NSwx
NCArMjk1LDE0IEBAIHZvaWQgV2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6Y2xpZW50U3RhdGVEaWRD
aGFuZ2UoV2ViTWVkaWFTZXNzaW9uTWFuYWdlckNsaWVudCYKICAgICAgICAgaWYgKHN0YXRlID09
IGNoYW5nZWRDbGllbnRTdGF0ZSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIGlm
IChmbGFnc0FyZVNldChzdGF0ZS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Oklz
UGxheWluZ1RvRXh0ZXJuYWxEZXZpY2UpICYmIGZsYWdzQXJlU2V0KHN0YXRlLT5mbGFncywgTWVk
aWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nVmlkZW8pKSB7CisgICAgICAgIGlmIChm
bGFnc0FyZVNldChzdGF0ZS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlp
bmdUb0V4dGVybmFsRGV2aWNlKSAmJiBmbGFnc0FyZVNldChzdGF0ZS0+ZmxhZ3MsIE1lZGlhUHJv
ZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbykpIHsKICAgICAgICAgICAgIEFMV0FZU19M
T0dfTUVESUFTRVNTSU9OTUFOQUdFUihfX2Z1bmNfXywgc3RhdGUuZ2V0KCksICIgcmV0dXJuaW5n
IGVhcmx5Iik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICB9CiAKICAgICAv
LyBEbyBub3QgYmVnaW4gcGxheWluZyB0byB0aGUgZGV2aWNlIHVubGVzcyBwbGF5YmFjayBoYXMg
anVzdCBzdGFydGVkLgotICAgIGlmICghZmxhZ3NBcmVTZXQobmV3RmxhZ3MsIE1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvKSB8fCBmbGFnc0FyZVNldChvbGRGbGFncywg
TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nVmlkZW8pKSB7CisgICAgaWYgKCFm
bGFnc0FyZVNldChuZXdGbGFncywgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ1Zp
ZGVvKSB8fCBmbGFnc0FyZVNldChvbGRGbGFncywgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Oklz
UGxheWluZ1ZpZGVvKSkgewogICAgICAgICBBTFdBWVNfTE9HX01FRElBU0VTU0lPTk1BTkFHRVIo
X19mdW5jX18sICJyZXR1cm5pbmcgZWFybHksIHBsYXliYWNrIGRpZG4ndCBqdXN0IHN0YXJ0Iik7
CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0zNzcsNyArMzc3LDcgQEAgdm9pZCBXZWJNZWRp
YVNlc3Npb25NYW5hZ2VyOjpjb25maWd1cmVQbGF5YmFja1RhcmdldENsaWVudHMoKQogICAgICAg
ICBpZiAoKG1fdGFyZ2V0Q2hhbmdlZCB8fCBtX3BsYXliYWNrVGFyZ2V0UGlja2VyRGlzbWlzc2Vk
KSAmJiBzdGF0ZS0+cmVxdWVzdGVkUGlja2VyKQogICAgICAgICAgICAgaW5kZXhPZkNsaWVudFRo
YXRSZXF1ZXN0ZWRQaWNrZXIgPSBpOwogCi0gICAgICAgIGlmIChpbmRleE9mQ2xpZW50V2lsbFBs
YXlUb1RhcmdldCA9PSBub3RGb3VuZCAmJiBmbGFnc0FyZVNldChzdGF0ZS0+ZmxhZ3MsIE1lZGlh
UHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1RvRXh0ZXJuYWxEZXZpY2UpKQorICAgICAg
ICBpZiAoaW5kZXhPZkNsaWVudFdpbGxQbGF5VG9UYXJnZXQgPT0gbm90Rm91bmQgJiYgZmxhZ3NB
cmVTZXQoc3RhdGUtPmZsYWdzLCBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nVG9F
eHRlcm5hbERldmljZSkpCiAgICAgICAgICAgICBpbmRleE9mQ2xpZW50V2lsbFBsYXlUb1Rhcmdl
dCA9IGk7CiAKICAgICAgICAgaWYgKGluZGV4T2ZDbGllbnRXaWxsUGxheVRvVGFyZ2V0ID09IG5v
dEZvdW5kICYmIGhhdmVBY3RpdmVSb3V0ZSAmJiBzdGF0ZS0+cHJldmlvdXNseVJlcXVlc3RlZFBp
Y2tlcikKQEAgLTM4OCw3ICszODgsNyBAQCB2b2lkIFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXI6OmNv
bmZpZ3VyZVBsYXliYWNrVGFyZ2V0Q2xpZW50cygpCiAgICAgICAgIGluZGV4T2ZDbGllbnRXaWxs
UGxheVRvVGFyZ2V0ID0gaW5kZXhPZkNsaWVudFRoYXRSZXF1ZXN0ZWRQaWNrZXI7CiAgICAgaWYg
KGluZGV4T2ZDbGllbnRXaWxsUGxheVRvVGFyZ2V0ID09IG5vdEZvdW5kICYmIGluZGV4T2ZMYXN0
Q2xpZW50VG9SZXF1ZXN0UGlja2VyICE9IG5vdEZvdW5kKQogICAgICAgICBpbmRleE9mQ2xpZW50
V2lsbFBsYXlUb1RhcmdldCA9IGluZGV4T2ZMYXN0Q2xpZW50VG9SZXF1ZXN0UGlja2VyOwotICAg
IGlmIChpbmRleE9mQ2xpZW50V2lsbFBsYXlUb1RhcmdldCA9PSBub3RGb3VuZCAmJiBoYXZlQWN0
aXZlUm91dGUgJiYgZmxhZ3NBcmVTZXQobV9jbGllbnRTdGF0ZVswXS0+ZmxhZ3MsIE1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGU6OkV4dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUpICYmICFm
bGFnc0FyZVNldChtX2NsaWVudFN0YXRlWzBdLT5mbGFncywgTWVkaWFQcm9kdWNlcjo6TWVkaWFT
dGF0ZTo6SXNQbGF5aW5nVmlkZW8pKQorICAgIGlmIChpbmRleE9mQ2xpZW50V2lsbFBsYXlUb1Rh
cmdldCA9PSBub3RGb3VuZCAmJiBoYXZlQWN0aXZlUm91dGUgJiYgZmxhZ3NBcmVTZXQobV9jbGll
bnRTdGF0ZVswXS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpFeHRlcm5hbERldmlj
ZUF1dG9QbGF5Q2FuZGlkYXRlKSAmJiAhZmxhZ3NBcmVTZXQobV9jbGllbnRTdGF0ZVswXS0+Zmxh
Z3MsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbykpCiAgICAgICAgIGlu
ZGV4T2ZDbGllbnRXaWxsUGxheVRvVGFyZ2V0ID0gMDsKIAogICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgbV9jbGllbnRTdGF0ZS5zaXplKCk7ICsraSkgewpAQCAtNDE0LDcgKzQxNCw3IEBAIHZv
aWQgV2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6Y29uZmlndXJlUGxheWJhY2tUYXJnZXRDbGllbnRz
KCkKIAogICAgIGlmIChoYXZlQWN0aXZlUm91dGUgJiYgaW5kZXhPZkNsaWVudFdpbGxQbGF5VG9U
YXJnZXQgIT0gbm90Rm91bmQpIHsKICAgICAgICAgYXV0byYgc3RhdGUgPSBtX2NsaWVudFN0YXRl
W2luZGV4T2ZDbGllbnRXaWxsUGxheVRvVGFyZ2V0XTsKLSAgICAgICAgaWYgKCFmbGFnc0FyZVNl
dChzdGF0ZS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1RvRXh0
ZXJuYWxEZXZpY2UpKSB7CisgICAgICAgIGlmICghZmxhZ3NBcmVTZXQoc3RhdGUtPmZsYWdzLCBN
ZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nVG9FeHRlcm5hbERldmljZSkpIHsKICAg
ICAgICAgICAgIEFMV0FZU19MT0dfTUVESUFTRVNTSU9OTUFOQUdFUihfX2Z1bmNfXywgc3RhdGUu
Z2V0KCksICIgY2FsbGluZyBzZXRTaG91bGRQbGF5VG9QbGF5YmFja1RhcmdldCh0cnVlKSIpOwog
ICAgICAgICAgICAgc3RhdGUtPmNsaWVudC5zZXRTaG91bGRQbGF5VG9QbGF5YmFja1RhcmdldChz
dGF0ZS0+Y29udGV4dElkLCB0cnVlKTsKICAgICAgICAgfQpAQCAtNDMxLDEzICs0MzEsMTMgQEAg
dm9pZCBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpjb25maWd1cmVQbGF5YmFja1RhcmdldE1vbml0
b3JpbmcoKQogICAgIGJvb2wgaGF2ZUNsaWVudFdpdGhNZWRpYSA9IGZhbHNlOwogICAgIGZvciAo
YXV0byYgc3RhdGUgOiBtX2NsaWVudFN0YXRlKSB7CiAgICAgICAgIEFMV0FZU19MT0dfTUVESUFT
RVNTSU9OTUFOQUdFUihfX2Z1bmNfXywgc3RhdGUuZ2V0KCkpOwotICAgICAgICBpZiAoc3RhdGUt
PmZsYWdzICYgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6UmVxdWlyZXNQbGF5YmFja1Rhcmdl
dE1vbml0b3JpbmcpIHsKKyAgICAgICAgaWYgKHN0YXRlLT5mbGFncyAmIE1lZGlhUHJvZHVjZXJN
ZWRpYVN0YXRlOjpSZXF1aXJlc1BsYXliYWNrVGFyZ2V0TW9uaXRvcmluZykgewogICAgICAgICAg
ICAgbW9uaXRvcmluZ1JlcXVpcmVkID0gdHJ1ZTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICB9Ci0gICAgICAgIGlmIChzdGF0ZS0+ZmxhZ3MgJiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
OjpIYXNQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVyKQorICAgICAgICBpZiAoc3Rh
dGUtPmZsYWdzICYgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc1BsYXliYWNrVGFyZ2V0QXZh
aWxhYmlsaXR5TGlzdGVuZXIpCiAgICAgICAgICAgICBoYXNBdmFpbGFiaWxpdHlMaXN0ZW5lciA9
IHRydWU7Ci0gICAgICAgIGlmIChzdGF0ZS0+ZmxhZ3MgJiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlOjpIYXNBdWRpb09yVmlkZW8pCisgICAgICAgIGlmIChzdGF0ZS0+ZmxhZ3MgJiBNZWRpYVBy
b2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQXVkaW9PclZpZGVvKQogICAgICAgICAgICAgaGF2ZUNsaWVu
dFdpdGhNZWRpYSA9IHRydWU7CiAgICAgfQogCkBAIC01MDEsNyArNTAxLDcgQEAgdm9pZCBXZWJN
ZWRpYVNlc3Npb25NYW5hZ2VyOjpjb25maWd1cmVXYXRjaGRvZ1RpbWVyKCkKIAogICAgICAgICBB
TFdBWVNfTE9HX01FRElBU0VTU0lPTk1BTkFHRVIoX19mdW5jX18sIHN0YXRlLmdldCgpLCAiIHBs
YXllZFRvRW5kID0gIiwgc3RhdGUtPnBsYXllZFRvRW5kKTsKIAotICAgICAgICBpZiAoZmxhZ3NB
cmVTZXQoc3RhdGUtPmZsYWdzLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdU
b0V4dGVybmFsRGV2aWNlKSAmJiBmbGFnc0FyZVNldChzdGF0ZS0+ZmxhZ3MsIE1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvKSkKKyAgICAgICAgaWYgKGZsYWdzQXJlU2V0
KHN0YXRlLT5mbGFncywgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ1RvRXh0ZXJu
YWxEZXZpY2UpICYmIGZsYWdzQXJlU2V0KHN0YXRlLT5mbGFncywgTWVkaWFQcm9kdWNlck1lZGlh
U3RhdGU6OklzUGxheWluZ1ZpZGVvKSkKICAgICAgICAgICAgIHN0b3BUaW1lciA9IHRydWU7CiAg
ICAgICAgIGlmIChzdGF0ZS0+cGxheWVkVG9FbmQpCiAgICAgICAgICAgICBkaWRQbGF5VG9FbmQg
PSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9haXJwbGF5L1dlYk1l
ZGlhU2Vzc2lvbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYWlycGxheS9XZWJN
ZWRpYVNlc3Npb25NYW5hZ2VyLmgKaW5kZXggMWJhMTI4NGYyMzMzYzc4NDZhYjgwZDRlMTFkYjJi
ZjRmMDIwNjZiNS4uNmFkNzcxNTAzYTZlZTZiNTM4NDZkZDFlYjZkY2ZjYWUwYzY4NzA1OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9haXJwbGF5L1dlYk1lZGlhU2Vzc2lvbk1h
bmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FpcnBsYXkvV2ViTWVkaWFTZXNz
aW9uTWFuYWdlci5oCkBAIC01OCw3ICs1OCw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHJlbW92ZVBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KFdlYk1lZGlhU2Vzc2lvbk1h
bmFnZXJDbGllbnQmLCBQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyKTsKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZUFsbFBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50
cyhXZWJNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50Jik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoV2ViTWVkaWFTZXNzaW9uTWFuYWdlckNsaWVudCYs
IFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIsIGNvbnN0IEludFJlY3QmLCBi
b29sLCBib29sKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsaWVudFN0YXRlRGlkQ2hhbmdl
KFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGllbnQmLCBQbGF5YmFja1RhcmdldENsaWVudENvbnRl
eHRJZGVudGlmaWVyLCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpOwor
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xpZW50U3RhdGVEaWRDaGFuZ2UoV2ViTWVkaWFTZXNz
aW9uTWFuYWdlckNsaWVudCYsIFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIs
IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MpOwogCiAgICAgYm9vbCBhbHdh
eXNPbkxvZ2dpbmdBbGxvd2VkKCkgY29uc3Q7CiAKQEAgLTExOCw3ICsxMTgsNyBAQCBwcml2YXRl
OgogICAgIGJvb2wgbV9tb2NrUGlja2VyRW5hYmxlZCB7IGZhbHNlIH07CiB9OwogCi1TdHJpbmcg
bWVkaWFQcm9kdWNlclN0YXRlU3RyaW5nKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGVGbGFncyk7CitTdHJpbmcgbWVkaWFQcm9kdWNlclN0YXRlU3RyaW5nKFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MpOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKQEAg
LTEyNiw4ICsxMjYsOCBAQCBuYW1lc3BhY2UgV1RGIHsKIAogdGVtcGxhdGU8dHlwZW5hbWU+IHN0
cnVjdCBMb2dBcmd1bWVudDsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgTG9nQXJndW1lbnQ8V2ViQ29y
ZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzPiB7Ci0gICAgc3RhdGljIFN0cmluZyB0
b1N0cmluZyhXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgZmxhZ3MpIHsg
cmV0dXJuIFdlYkNvcmU6Om1lZGlhUHJvZHVjZXJTdGF0ZVN0cmluZyhmbGFncyk7IH0KK3RlbXBs
YXRlPD4gc3RydWN0IExvZ0FyZ3VtZW50PFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRl
RmxhZ3M+IHsKKyAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXJNZWRpYVN0YXRlRmxhZ3MgZmxhZ3MpIHsgcmV0dXJuIFdlYkNvcmU6Om1lZGlhUHJvZHVjZXJT
dGF0ZVN0cmluZyhmbGFncyk7IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcAppbmRleCAz
ODE2OGVlNzVhZGIxZTY4MmQ5ZDk4NzM4OTE2ZDgwZGQ0MzI0NTdiLi40ZmIwNGEzYWU1NjlhNzg5
ZGNiMmIwMTA4NzUxMmIyMWQ1M2ZmNDdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcApAQCAtMjc3LDkgKzI3Nyw5IEBAIHZvaWQg
TWVkaWFTdHJlYW06OnN0b3BQcm9kdWNpbmdEYXRhKCkKICAgICBtX3ByaXZhdGUtPnN0b3BQcm9k
dWNpbmdEYXRhKCk7CiB9CiAKLU1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBNZWRpYVN0
cmVhbTo6bWVkaWFTdGF0ZSgpIGNvbnN0CitNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIE1l
ZGlhU3RyZWFtOjptZWRpYVN0YXRlKCkgY29uc3QKIHsKLSAgICBNZWRpYVByb2R1Y2VyOjpNZWRp
YVN0YXRlRmxhZ3Mgc3RhdGU7CisgICAgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBzdGF0
ZTsKIAogICAgIGlmICghbV9pc0FjdGl2ZSB8fCAhZG9jdW1lbnQoKSB8fCAhZG9jdW1lbnQoKS0+
cGFnZSgpKQogICAgICAgICByZXR1cm4gc3RhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmgKaW5kZXggN2NlMWY2NDE4MjExMDdhNDQzMTky
MzlmMTBkMzhhNDk0MDUzNjVmYy4uMzQxOGNmNjNjOTc2NTA2MWU3ZGYxZDBmYTViYmNiNmFlNWJm
YzI5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW0uaApAQCAtMTIyLDcgKzEyMiw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRSZW1vdmVU
cmFjayhNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIGZpbmFsOwogICAgIHZvaWQgY2hhcmFjdGVy
aXN0aWNzQ2hhbmdlZCgpIGZpbmFsOwogCi0gICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZs
YWdzIG1lZGlhU3RhdGUoKSBjb25zdDsKKyAgICBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdz
IG1lZGlhU3RhdGUoKSBjb25zdDsKIAogICAgIC8vIE1lZGlhQ2FuU3RhcnRMaXN0ZW5lcgogICAg
IHZvaWQgbWVkaWFDYW5TdGFydChEb2N1bWVudCYpIGZpbmFsOwpAQCAtMTQzLDcgKzE0Myw3IEBA
IHByaXZhdGU6CiAKICAgICBIYXNoTWFwPFN0cmluZywgUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+
PiBtX3RyYWNrU2V0OwogCi0gICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1fc3Rh
dGU7CisgICAgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBtX3N0YXRlOwogCiAgICAgYm9v
bCBtX2lzQWN0aXZlIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNQcm9kdWNpbmdEYXRhIHsgZmFs
c2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1UcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtVHJhY2suY3BwCmluZGV4IGQ1NGYxZGMyZDY1NTAxNzRiYjA3MWYxMjhiYzgyMTM3
OWZkOGRjOTguLjEzMTcxMTljM2E3NjdiYzZmZDkzNzg1MjBjMzgxZmNjNzFiNzVlMzkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFj
ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bVRyYWNrLmNwcApAQCAtNjMsNyArNjMsNyBAQCBzdGF0aWMgSGFzaFNldDxNZWRpYVN0cmVhbVRy
YWNrKj4mIGFsbENhcHR1cmVUcmFja3MoKQogICAgIHJldHVybiBjYXB0dXJlVHJhY2tzOwogfQog
Ci1zdGF0aWMgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHNvdXJjZUNhcHR1cmVTdGF0
ZShSZWFsdGltZU1lZGlhU291cmNlJik7CitzdGF0aWMgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVG
bGFncyBzb3VyY2VDYXB0dXJlU3RhdGUoUmVhbHRpbWVNZWRpYVNvdXJjZSYpOwogCiBXVEZfTUFL
RV9JU09fQUxMT0NBVEVEX0lNUEwoTWVkaWFTdHJlYW1UcmFjayk7CiAKQEAgLTQwMSw3ICs0MDEs
NyBAQCB2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OnJlbW92ZU9ic2VydmVyKE9ic2VydmVyJiBvYnNl
cnZlcikKICAgICBtX29ic2VydmVycy5yZW1vdmVGaXJzdCgmb2JzZXJ2ZXIpOwogfQogCi1NZWRp
YVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgTWVkaWFTdHJlYW1UcmFjazo6bWVkaWFTdGF0ZSgp
IGNvbnN0CitNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIE1lZGlhU3RyZWFtVHJhY2s6Om1l
ZGlhU3RhdGUoKSBjb25zdAogewogICAgIGlmIChtX2VuZGVkIHx8ICFpc0NhcHR1cmVUcmFjaygp
KQogICAgICAgICByZXR1cm4gTWVkaWFQcm9kdWNlcjo6SXNOb3RQbGF5aW5nOwpAQCAtNDEzLDMz
ICs0MTMsMzMgQEAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIE1lZGlhU3RyZWFtVHJh
Y2s6Om1lZGlhU3RhdGUoKSBjb25zdAogICAgIHJldHVybiBzb3VyY2VDYXB0dXJlU3RhdGUoc291
cmNlKCkpOwogfQogCi1NZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc291cmNlQ2FwdHVy
ZVN0YXRlKFJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSkKK01lZGlhUHJvZHVjZXJNZWRpYVN0
YXRlRmxhZ3Mgc291cmNlQ2FwdHVyZVN0YXRlKFJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSkK
IHsKICAgICBzd2l0Y2ggKHNvdXJjZS5kZXZpY2VUeXBlKCkpIHsKICAgICBjYXNlIENhcHR1cmVE
ZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmU6CiAgICAgICAgIGlmIChzb3VyY2UubXV0ZWQo
KSkKLSAgICAgICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNNdXRl
ZEF1ZGlvQ2FwdHVyZURldmljZTsKKyAgICAgICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyTWVk
aWFTdGF0ZTo6SGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2U7CiAgICAgICAgIGlmIChzb3VyY2Uu
aW50ZXJydXB0ZWQoKSkKLSAgICAgICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlOjpIYXNJbnRlcnJ1cHRlZEF1ZGlvQ2FwdHVyZURldmljZTsKKyAgICAgICAgICAgIHJldHVy
biBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzSW50ZXJydXB0ZWRBdWRpb0NhcHR1cmVEZXZp
Y2U7CiAgICAgICAgIGlmIChzb3VyY2UuaXNQcm9kdWNpbmdEYXRhKCkpCi0gICAgICAgICAgICBy
ZXR1cm4gTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2
aWNlOworICAgICAgICAgICAgcmV0dXJuIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBY3Rp
dmVBdWRpb0NhcHR1cmVEZXZpY2U7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ2FwdHVyZURl
dmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhOgogICAgICAgICBpZiAoc291cmNlLm11dGVkKCkpCi0g
ICAgICAgICAgICByZXR1cm4gTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzTXV0ZWRWaWRl
b0NhcHR1cmVEZXZpY2U7CisgICAgICAgICAgICByZXR1cm4gTWVkaWFQcm9kdWNlck1lZGlhU3Rh
dGU6Okhhc011dGVkVmlkZW9DYXB0dXJlRGV2aWNlOwogICAgICAgICBpZiAoc291cmNlLmludGVy
cnVwdGVkKCkpCi0gICAgICAgICAgICByZXR1cm4gTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6
SGFzSW50ZXJydXB0ZWRWaWRlb0NhcHR1cmVEZXZpY2U7CisgICAgICAgICAgICByZXR1cm4gTWVk
aWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0ludGVycnVwdGVkVmlkZW9DYXB0dXJlRGV2aWNlOwog
ICAgICAgICBpZiAoc291cmNlLmlzUHJvZHVjaW5nRGF0YSgpKQotICAgICAgICAgICAgcmV0dXJu
IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZTsK
KyAgICAgICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQWN0aXZlVmlk
ZW9DYXB0dXJlRGV2aWNlOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6
OkRldmljZVR5cGU6OlNjcmVlbjoKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6
OldpbmRvdzoKICAgICAgICAgaWYgKHNvdXJjZS5tdXRlZCgpKQotICAgICAgICAgICAgcmV0dXJu
IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc011dGVkRGlzcGxheUNhcHR1cmVEZXZpY2U7
CisgICAgICAgICAgICByZXR1cm4gTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc011dGVkRGlz
cGxheUNhcHR1cmVEZXZpY2U7CiAgICAgICAgIGlmIChzb3VyY2UuaW50ZXJydXB0ZWQoKSkKLSAg
ICAgICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNJbnRlcnJ1cHRl
ZERpc3BsYXlDYXB0dXJlRGV2aWNlOworICAgICAgICAgICAgcmV0dXJuIE1lZGlhUHJvZHVjZXJN
ZWRpYVN0YXRlOjpIYXNJbnRlcnJ1cHRlZERpc3BsYXlDYXB0dXJlRGV2aWNlOwogICAgICAgICBp
ZiAoc291cmNlLmlzUHJvZHVjaW5nRGF0YSgpKQotICAgICAgICAgICAgcmV0dXJuIE1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZURpc3BsYXlDYXB0dXJlRGV2aWNlOworICAgICAg
ICAgICAgcmV0dXJuIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBY3RpdmVEaXNwbGF5Q2Fw
dHVyZURldmljZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZp
Y2VUeXBlOjpTcGVha2VyOgogICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6VW5r
bm93bjoKQEAgLTQ0OSw5ICs0NDksOSBAQCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mg
c291cmNlQ2FwdHVyZVN0YXRlKFJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSkKICAgICByZXR1
cm4gTWVkaWFQcm9kdWNlcjo6SXNOb3RQbGF5aW5nOwogfQogCi1NZWRpYVByb2R1Y2VyOjpNZWRp
YVN0YXRlRmxhZ3MgTWVkaWFTdHJlYW1UcmFjazo6Y2FwdHVyZVN0YXRlKERvY3VtZW50JiBkb2N1
bWVudCkKK01lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgTWVkaWFTdHJlYW1UcmFjazo6Y2Fw
dHVyZVN0YXRlKERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICBNZWRpYVByb2R1Y2VyOjpNZWRp
YVN0YXRlRmxhZ3Mgc3RhdGU7CisgICAgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBzdGF0
ZTsKICAgICBmb3IgKGF1dG8qIGNhcHR1cmVUcmFjayA6IGFsbENhcHR1cmVUcmFja3MoKSkgewog
ICAgICAgICBpZiAoY2FwdHVyZVRyYWNrLT5kb2N1bWVudCgpICE9ICZkb2N1bWVudCB8fCBjYXB0
dXJlVHJhY2stPmVuZGVkKCkpCiAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTQ4MywxMyArNDgz
LDEzIEBAIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6dXBkYXRlQ2FwdHVyZUFjY29yZGluZ1RvTXV0
ZWRTdGF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiAKICAgICBhdXRvKiBhY3RpdmVBdWRpb1NvdXJj
ZSA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZh
Y3RvcnkoKS5hY3RpdmVTb3VyY2UoKTsKICAgICBpZiAoYWN0aXZlQXVkaW9Tb3VyY2UgJiYgaXNT
b3VyY2VDYXB0dXJpbmdGb3JUcmFja0luRG9jdW1lbnQoKmFjdGl2ZUF1ZGlvU291cmNlLCBkb2N1
bWVudCkpIHsKLSAgICAgICAgYm9vbCBwYWdlTXV0ZWQgPSBwYWdlLT5tdXRlZFN0YXRlKCkuY29u
dGFpbnMoTWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6QXVkaW9DYXB0dXJlSXNNdXRlZCk7Cisg
ICAgICAgIGJvb2wgcGFnZU11dGVkID0gcGFnZS0+bXV0ZWRTdGF0ZSgpLmNvbnRhaW5zKE1lZGlh
UHJvZHVjZXJNdXRlZFN0YXRlOjpBdWRpb0NhcHR1cmVJc011dGVkKTsKICAgICAgICAgYWN0aXZl
QXVkaW9Tb3VyY2UtPnNldE11dGVkKHBhZ2VNdXRlZCB8fCAoZG9jdW1lbnQuaGlkZGVuKCkgJiYg
ZG9jdW1lbnQuc2V0dGluZ3MoKS5pbnRlcnJ1cHRBdWRpb09uUGFnZVZpc2liaWxpdHlDaGFuZ2VF
bmFibGVkKCkpKTsKICAgICB9CiAKICAgICBhdXRvKiBhY3RpdmVWaWRlb1NvdXJjZSA9IFJlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZpZGVvQ2FwdHVyZUZhY3RvcnkoKS5h
Y3RpdmVTb3VyY2UoKTsKICAgICBpZiAoYWN0aXZlVmlkZW9Tb3VyY2UgJiYgaXNTb3VyY2VDYXB0
dXJpbmdGb3JUcmFja0luRG9jdW1lbnQoKmFjdGl2ZVZpZGVvU291cmNlLCBkb2N1bWVudCkpIHsK
LSAgICAgICAgYm9vbCBwYWdlTXV0ZWQgPSBwYWdlLT5tdXRlZFN0YXRlKCkuY29udGFpbnMoTWVk
aWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6VmlkZW9DYXB0dXJlSXNNdXRlZCk7CisgICAgICAgIGJv
b2wgcGFnZU11dGVkID0gcGFnZS0+bXV0ZWRTdGF0ZSgpLmNvbnRhaW5zKE1lZGlhUHJvZHVjZXJN
dXRlZFN0YXRlOjpWaWRlb0NhcHR1cmVJc011dGVkKTsKICAgICAgICAgYWN0aXZlVmlkZW9Tb3Vy
Y2UtPnNldE11dGVkKHBhZ2VNdXRlZCB8fCBkb2N1bWVudC5oaWRkZW4oKSk7CiAgICAgfQogI2Vs
c2UKQEAgLTUwOSwxNCArNTA5LDE0IEBAIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6dXBkYXRlVG9Q
YWdlTXV0ZWRTdGF0ZSgpCiAKICAgICBzd2l0Y2ggKHNvdXJjZSgpLmRldmljZVR5cGUoKSkgewog
ICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZToKLSAgICAgICAg
bV9wcml2YXRlLT5zZXRNdXRlZChwYWdlLT5tdXRlZFN0YXRlKCkuY29udGFpbnMoTWVkaWFQcm9k
dWNlcjo6TXV0ZWRTdGF0ZTo6QXVkaW9DYXB0dXJlSXNNdXRlZCkpOworICAgICAgICBtX3ByaXZh
dGUtPnNldE11dGVkKHBhZ2UtPm11dGVkU3RhdGUoKS5jb250YWlucyhNZWRpYVByb2R1Y2VyTXV0
ZWRTdGF0ZTo6QXVkaW9DYXB0dXJlSXNNdXRlZCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYToKLSAgICAgICAgbV9wcml2YXRlLT5z
ZXRNdXRlZChwYWdlLT5tdXRlZFN0YXRlKCkuY29udGFpbnMoTWVkaWFQcm9kdWNlcjo6TXV0ZWRT
dGF0ZTo6VmlkZW9DYXB0dXJlSXNNdXRlZCkpOworICAgICAgICBtX3ByaXZhdGUtPnNldE11dGVk
KHBhZ2UtPm11dGVkU3RhdGUoKS5jb250YWlucyhNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZTo6Vmlk
ZW9DYXB0dXJlSXNNdXRlZCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENhcHR1cmVEZXZp
Y2U6OkRldmljZVR5cGU6OlNjcmVlbjoKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5
cGU6OldpbmRvdzoKLSAgICAgICAgbV9wcml2YXRlLT5zZXRNdXRlZChwYWdlLT5tdXRlZFN0YXRl
KCkuY29udGFpbnMoTWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6U2NyZWVuQ2FwdHVyZUlzTXV0
ZWQpKTsKKyAgICAgICAgbV9wcml2YXRlLT5zZXRNdXRlZChwYWdlLT5tdXRlZFN0YXRlKCkuY29u
dGFpbnMoTWVkaWFQcm9kdWNlck11dGVkU3RhdGU6OlNjcmVlbkNhcHR1cmVJc011dGVkKSk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U3BlYWtl
cjoKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlVua25vd246CkBAIC01MjUs
MjAgKzUyNSwyMCBAQCB2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OnVwZGF0ZVRvUGFnZU11dGVkU3Rh
dGUoKQogICAgIH0KIH0KIAotc3RhdGljIGlubGluZSBib29sIHRyYWNrTWF0Y2hlc0tpbmQoUmVh
bHRpbWVNZWRpYVNvdXJjZTo6VHlwZSB0eXBlLCBNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVL
aW5kIGtpbmQpCitzdGF0aWMgaW5saW5lIGJvb2wgdHJhY2tNYXRjaGVzS2luZChSZWFsdGltZU1l
ZGlhU291cmNlOjpUeXBlIHR5cGUsIE1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kIGtpbmQp
CiB7CiAgICAgc3dpdGNoIChraW5kKSB7Ci0gICAgY2FzZSBNZWRpYVByb2R1Y2VyOjpNZWRpYUNh
cHR1cmVLaW5kOjpBdWRpbzoKKyAgICBjYXNlIE1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5k
OjpBdWRpbzoKICAgICAgICAgcmV0dXJuIHR5cGUgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlw
ZTo6QXVkaW87Ci0gICAgY2FzZSBNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpBdWRp
b1ZpZGVvOgorICAgIGNhc2UgTWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvVmlk
ZW86CiAgICAgICAgIHJldHVybiB0eXBlICE9IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6Ok5v
bmU7Ci0gICAgY2FzZSBNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpWaWRlbzoKKyAg
ICBjYXNlIE1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kOjpWaWRlbzoKICAgICAgICAgcmV0
dXJuIHR5cGUgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW87CiAgICAgfQogICAg
IFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKLXZvaWQgTWVkaWFTdHJlYW1UcmFj
azo6ZW5kQ2FwdHVyZShEb2N1bWVudCYgZG9jdW1lbnQsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2Fw
dHVyZUtpbmQga2luZCkKK3ZvaWQgTWVkaWFTdHJlYW1UcmFjazo6ZW5kQ2FwdHVyZShEb2N1bWVu
dCYgZG9jdW1lbnQsIE1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kIGtpbmQpCiB7CiAgICAg
Ym9vbCBkaWRFbmRDYXB0dXJlID0gZmFsc2U7CiAgICAgZm9yIChhdXRvKiBjYXB0dXJlVHJhY2sg
OiBhbGxDYXB0dXJlVHJhY2tzKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKaW5kZXggNzc3MDhiZTg5ODM2MjBlZWU4
OTcyNWQ5Zjk0NDVjNGYyZTBmNTM1Mi4uZDA5ODUyN2NlN2Q1Nzg5OTdiNjY2MWQyZTcwOGU0N2U2
NGY2YzJhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVRyYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbVRyYWNrLmgKQEAgLTY5LDkgKzY5LDkgQEAgcHVibGljOgogICAgIHN0YXRp
YyBSZWY8TWVkaWFTdHJlYW1UcmFjaz4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBS
ZWY8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+JiYpOwogICAgIHZpcnR1YWwgfk1lZGlhU3RyZWFt
VHJhY2soKTsKIAotICAgIHN0YXRpYyB2b2lkIGVuZENhcHR1cmUoRG9jdW1lbnQmLCBNZWRpYVBy
b2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kKTsKKyAgICBzdGF0aWMgdm9pZCBlbmRDYXB0dXJlKERv
Y3VtZW50JiwgTWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQpOwogCi0gICAgc3RhdGljIE1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBjYXB0dXJlU3RhdGUoRG9jdW1lbnQmKTsKKyAg
ICBzdGF0aWMgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBjYXB0dXJlU3RhdGUoRG9jdW1l
bnQmKTsKICAgICBzdGF0aWMgdm9pZCB1cGRhdGVDYXB0dXJlQWNjb3JkaW5nVG9NdXRlZFN0YXRl
KERvY3VtZW50Jik7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNDYW52YXMoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQpAQCAtMTQxLDcgKzE0MSw3IEBAIHB1YmxpYzoKIAogICAgIFJlZlB0cjxXZWJB
dWRpb1NvdXJjZVByb3ZpZGVyPiBjcmVhdGVBdWRpb1NvdXJjZVByb3ZpZGVyKCk7CiAKLSAgICBN
ZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbWVkaWFTdGF0ZSgpIGNvbnN0OworICAgIE1l
ZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgbWVkaWFTdGF0ZSgpIGNvbnN0OwogCiAgICAgdm9p
ZCBhZGRPYnNlcnZlcihPYnNlcnZlciYpOwogICAgIHZvaWQgcmVtb3ZlT2JzZXJ2ZXIoT2JzZXJ2
ZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0Nv
bnRyb2xsZXIuY3BwCmluZGV4IGNmMzQ1YTQ2MmZjZGIyMTE5ZjdmYmRmNWViZGRmMDE0NWViYTc2
YjMuLjYwYzdkNWMzOTc1NWQ0OTZkMWZhNDMzY2JjYTY1MjNjNzA3ZTY4YTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDQ29udHJvbGxlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENDb250cm9sbGVyLmNwcApA
QCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJMaWJX
ZWJSVENQcm92aWRlci5oIgorI2luY2x1ZGUgIlJUQ05ldHdvcmtNYW5hZ2VyLmgiCiAjaW5jbHVk
ZSAiUlRDUGVlckNvbm5lY3Rpb24uaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5j
cHAKaW5kZXggOWEwMDBkNGZkOGViNDA5YzQ1MThkMzVmZjczZGRkZTgxYmY5ZWRmNS4uODUyNWU3
ZDg4YzdjZTU1Y2M5MDExNzBmMWQ4NGJjMjA2Y2I0MWQyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwCkBAIC0z
Niw3ICszNiw3IEBACiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCi0jaW5jbHVkZSAiRG9j
dW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJGcmFtZS5o
IgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCiAjaW5jbHVkZSAiSlNNZWRpYVN0
cmVhbS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wZXJtaXNzaW9ucy9Q
ZXJtaXNzaW9uU3RhdHVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGVybWlzc2lvbnMv
UGVybWlzc2lvblN0YXR1cy5jcHAKaW5kZXggNjZhMGYwYmJhOTViZDQ1NTVkMTdhMmRmN2M5Njg2
MmFhOGYxYzBjOS4uY2Q5YjA3Yzk3YzZmMjhiMDlhMDhiYjU1N2NhNGUwMDkzYjYwY2NhZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wZXJtaXNzaW9ucy9QZXJtaXNzaW9uU3Rh
dHVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Blcm1pc3Npb25zL1Blcm1pc3Np
b25TdGF0dXMuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNp
bmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiUGVybWlzc2lvbkNvbnRyb2xsZXIuaCIK
KyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxp
bmVzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcAppbmRleCBlYmIyZjJmNTQ2YzczMjJjZTkzNWY4
YTRlYmE5NDkzYTAyYjI5YWI2Li5hZDI1N2IyMzU2ZTlkY2ZiYmFiNTU0ZjNmMDM1MDFkNzIwNTk1
ZTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29u
dGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRl
eHQuY3BwCkBAIC0zMSw5ICszMSwxMCBAQAogI2luY2x1ZGUgIkF1ZGlvQ29udGV4dE9wdGlvbnMu
aCIKICNpbmNsdWRlICJBdWRpb1RpbWVzdGFtcC5oIgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgor
I2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVy
cmVkLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgotI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRl
ICJQYWdlSW5saW5lcy5oIgogI2luY2x1ZGUgIlBlcmZvcm1hbmNlLmgiCiAjaW5jbHVkZSAiUGxh
dGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmgiCiAjaW5jbHVkZSAiUXVpcmtzLmgiCkBAIC0zNTYs
MTAgKzM1NywxMCBAQCBib29sIEF1ZGlvQ29udGV4dDo6d2lsbFBhdXNlUGxheWJhY2soKQogICAg
IHJldHVybiBtX21lZGlhU2Vzc2lvbi0+Y2xpZW50V2lsbFBhdXNlUGxheWJhY2soKTsKIH0KIAot
TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIEF1ZGlvQ29udGV4dDo6bWVkaWFTdGF0ZSgp
IGNvbnN0CitNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIEF1ZGlvQ29udGV4dDo6bWVkaWFT
dGF0ZSgpIGNvbnN0CiB7CiAgICAgaWYgKCFpc1N0b3BwZWQoKSAmJiBkZXN0aW5hdGlvbigpLmlz
UGxheWluZ0F1ZGlvKCkpCi0gICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
OjpJc1BsYXlpbmdBdWRpbzsKKyAgICAgICAgcmV0dXJuIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRl
OjpJc1BsYXlpbmdBdWRpbzsKIAogICAgIHJldHVybiBNZWRpYVByb2R1Y2VyOjpJc05vdFBsYXlp
bmc7CiB9CkBAIC00MTksNyArNDIwLDcgQEAgYm9vbCBBdWRpb0NvbnRleHQ6OndpbGxCZWdpblBs
YXliYWNrKCkKIHZvaWQgQXVkaW9Db250ZXh0Ojp2aXNpYmlsaXR5U3RhdGVDaGFuZ2VkKCkKIHsK
ICAgICAvLyBEbyBub3Qgc3VzcGVuZCBpZiBhdWRpbyBpcyBhdWRpYmxlLgotICAgIGlmICghZG9j
dW1lbnQoKSB8fCBtZWRpYVN0YXRlKCkgPT0gTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQ
bGF5aW5nQXVkaW8gfHwgaXNTdG9wcGVkKCkpCisgICAgaWYgKCFkb2N1bWVudCgpIHx8IG1lZGlh
U3RhdGUoKSA9PSBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8gfHwgaXNT
dG9wcGVkKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChkb2N1bWVudCgpLT5oaWRkZW4o
KSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0Nv
bnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmgK
aW5kZXggMGY2NThiM2I3YmM0Y2QzODE5MzZjZmFmNmFmY2U1NmQ1NDI3OWRiMS4uNGFiODQ3MTY5
ZjFiYWQ3YzcxYjI5MjBjZDA2NWVhZTYyYjA1ODZjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oCkBAIC0xMTYsNyArMTE2LDcgQEAgcHJpdmF0
ZToKICAgICBib29sIGlzT2ZmbGluZUNvbnRleHQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBmYWxz
ZTsgfQogCiAgICAgLy8gTWVkaWFQcm9kdWNlcgotICAgIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGVGbGFncyBtZWRpYVN0YXRlKCkgY29uc3QgZmluYWw7CisgICAgTWVkaWFQcm9kdWNlck1lZGlh
U3RhdGVGbGFncyBtZWRpYVN0YXRlKCkgY29uc3QgZmluYWw7CiAgICAgdm9pZCBwYWdlTXV0ZWRT
dGF0ZURpZENoYW5nZSgpIGZpbmFsOwogCiAgICAgLy8gUGxhdGZvcm1NZWRpYVNlc3Npb25DbGll
bnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCBhNjg3NTEyNmEzNjAzYmU1YjM4ZmI4NjYwZDY0NzJkZTZkNjE3ZjI2Li4yNmVlZGE0
YjZjYTM0ZWM5ODliNDk2ZDgzZTY2MTRiYThmODlmMTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00NTQzLDYgKzQ1NDMsOCBA
QAogCQlDREVEMUMzQzI0Q0QzMDU3MDA5MzRFMTIgLyogVlA5VXRpbGl0aWVzQ29jb2EubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDZGRTVCODI0QkNF
NjQ1MDA5RkNEQTQgLyogVlA5VXRpbGl0aWVzQ29jb2EubW0gKi87IH07CiAJCUNERUY0RkQ3MTdF
ODVDOEYwMEFFRTI0QiAvKiBHcmlkTGVuZ3RoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDREVGNEZENjE3RTg1QzhGMDBBRUUyNEIgLyogR3JpZExlbmd0
aC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNE
RUZBMjI4MUU3NjY5RTgwMDBBRTk5QyAvKiBQbGF0Zm9ybUF1ZGlvRGF0YS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFNjY3QTExRTRCQkE0RDAwRTgx
NTRBIC8qIFBsYXRmb3JtQXVkaW9EYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJQ0RFRkRBMEIyNzEyMjYzODAwNTU1OUE3IC8qIERvY3VtZW50
SW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0RFRkRBMDkyNzEyMjYzODAwNTU1OUE3IC8qIERvY3VtZW50SW5saW5lcy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUNERUZEQTBFMjcxMjI5QkEw
MDU1NTlBNyAvKiBQYWdlSW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0RFRkRBMEQyNzEyMjlCQTAwNTU1OUE3IC8qIFBhZ2VJbmxpbmVzLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0RGMTM1
MDgyNEM5RkE0NDAwNDMyRTFFIC8qIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk0uaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOEY2NjcyMjRDMEYyMDgwMDBD
NDIxQyAvKiBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0RGMTM1MDkyNEM5RkNBMzAwNDMyRTFFIC8qIFNv
dXJjZUJ1ZmZlclBhcnNlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0RFQjNENzMyNEM0MUE2RTAwMUZCRUVGIC8qIFNvdXJjZUJ1ZmZlclBhcnNlci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNERjJC
MDA0MTgxRjA1OUMwMEYyQjQyNCAvKiBNZWRpYURlc2NyaXB0aW9uLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREYyQjAwMzE4MUYwNTlDMDBGMkI0MjQg
LyogTWVkaWFEZXNjcmlwdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CkBAIC0xNTQxOCw2ICsxNTQyMCw4IEBACiAJCUNERUUzOTM4MTc5NzQyNzQw
MDFENzU4MCAvKiBVUkxSZWdpc3RyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVUkxSZWdpc3RyeS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREVGNEZENjE3RTg1QzhGMDBBRUUyNEIgLyog
R3JpZExlbmd0aC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHcmlkTGVuZ3Ro
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERUZEOUVBMjcxMEE2OTMwMDU1NTlB
NyAvKiBNZWRpYUtleU1lc3NhZ2VUeXBlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBNZWRpYUtleU1lc3NhZ2VUeXBlLmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RFRkRBMDkyNzEyMjYzODAwNTU1OUE3
IC8qIERvY3VtZW50SW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBE
b2N1bWVudElubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RFRkRBMEQy
NzEyMjlCQTAwNTU1OUE3IC8qIFBhZ2VJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhZ2VJbmxp
bmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERjJCMDAzMTgxRjA1OUMwMEYy
QjQyNCAvKiBNZWRpYURlc2NyaXB0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IE1lZGlhRGVzY3JpcHRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RG
MkIwMDYxODIwNTQwNjAwRjJCNDI0IC8qIE1vY2tCb3guY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gTW9ja0JveC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUNERjJCMDA3MTgyMDU0MDYwMEYyQjQyNCAvKiBNb2NrQm94LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IE1vY2tCb3guaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTIyNTA5LDYgKzIyNTEzLDcgQEAKIAkJCQk3QTY3NEJEOTBGOUVCRjRFMDA2Q0YwOTkgLyog
UGFnZUdyb3VwTG9hZERlZmVycmVyLmNwcCAqLywKIAkJCQk3QTY3NEJEQTBGOUVCRjRFMDA2Q0Yw
OTkgLyogUGFnZUdyb3VwTG9hZERlZmVycmVyLmggKi8sCiAJCQkJNDZCNjUwREIyMjk2MjYyNzAw
RkQ4QUE0IC8qIFBhZ2VJZGVudGlmaWVyLmggKi8sCisJCQkJQ0RFRkRBMEQyNzEyMjlCQTAwNTU1
OUE3IC8qIFBhZ2VJbmxpbmVzLmggKi8sCiAJCQkJMkQ1QzlDRkIxOUM3QjUyRTAwQjNDNUMxIC8q
IFBhZ2VPdmVybGF5LmNwcCAqLywKIAkJCQkyRDVDOUNGQzE5QzdCNTJFMDBCM0M1QzEgLyogUGFn
ZU92ZXJsYXkuaCAqLywKIAkJCQkyRDVDOUNGRDE5QzdCNTJFMDBCM0M1QzEgLyogUGFnZU92ZXJs
YXlDb250cm9sbGVyLmNwcCAqLywKQEAgLTMwNDcwLDYgKzMwNDc1LDcgQEAKIAkJCQlBODE4NUYz
NTA5NzY1NzY1MDA1ODI2RDkgLyogRG9jdW1lbnRGcmFnbWVudC5oICovLAogCQkJCTFBNDk0RUQ1
MEExMjNGMUEwMEZEQUZDMSAvKiBEb2N1bWVudEZyYWdtZW50LmlkbCAqLywKIAkJCQlDRDkyRjUx
MDIyNjBGRkVFMDBGODdCQjMgLyogRG9jdW1lbnRGdWxsc2NyZWVuLmggKi8sCisJCQkJQ0RFRkRB
MDkyNzEyMjYzODAwNTU1OUE3IC8qIERvY3VtZW50SW5saW5lcy5oICovLAogCQkJCUVEMkJBODNC
MDlBMjRCOTEwMDZDMEFDNCAvKiBEb2N1bWVudE1hcmtlci5oICovLAogCQkJCUNFMDU3RkEzMTIy
MDczMTEwMEE0NzZENSAvKiBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwICovLAogCQkJCUNF
MDU3RkE0MTIyMDczMTEwMEE0NzZENSAvKiBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaCAqLywK
QEAgLTMyMzk3LDYgKzMyNDAzLDcgQEAKIAkJCQlBODE4NUYzRDA5NzY1NzY2MDA1ODI2RDkgLyog
RG9jdW1lbnRGcmFnbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0Q5MkY1MTMyMjYwRkZFRTAw
Rjg3QkIzIC8qIERvY3VtZW50RnVsbHNjcmVlbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE4MjZC
RjIyM0ZCNTk3NzAwQjkyMkIxIC8qIERvY3VtZW50SWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8s
CisJCQkJQ0RFRkRBMEIyNzEyMjYzODAwNTU1OUE3IC8qIERvY3VtZW50SW5saW5lcy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNjU2RDM3MzYwQURCQTVERTAwQTQ1NTREIC8qIERvY3VtZW50TG9hZGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQk4QTEyRTM1RDExRkEzMzI4MDAyNTgzNkEgLyogRG9jdW1l
bnRMb2FkVGltaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQlFRDJCQTgzQzA5QTI0QjkxMDA2QzBB
QzQgLyogRG9jdW1lbnRNYXJrZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMzQ1MjYsNiArMzQ1MzMs
NyBAQAogCQkJCTdBNjc0QkRDMEY5RUJGNEUwMDZDRjA5OSAvKiBQYWdlR3JvdXBMb2FkRGVmZXJy
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1QjgxQ0M0MUZBQTQ0QkMwMDM3RDFFNiAvKiBQYWdl
SGVhcEFnZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk0NkI2NTBERDIyOTYyNjI3MDBGRDhBQTQg
LyogUGFnZUlkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUNERUZEQTBFMjcxMjI5QkEw
MDU1NTlBNyAvKiBQYWdlSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVDQjA1MjQxRkI1
MUYzMzAwMDg5Qjk3IC8qIFBhZ2VOZXR3b3JrQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTJE
NUM5RDAwMTlDN0I1MkUwMEIzQzVDMSAvKiBQYWdlT3ZlcmxheS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMkQ1QzlEMDIxOUM3QjUyRTAwQjNDNUMxIC8qIFBhZ2VPdmVybGF5Q29udHJvbGxlci5oIGlu
IEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FY
SW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWEltYWdlLmNwcAppbmRl
eCBkNzIyNmYyZTUyZTkxNzMzZmU1ZTE1NWQ5YjQzMTdkNGRmM2QwYjE3Li42ZjY4ZTcxNTNlNDg2
MTUyNmU2MmZkMWE3MmI0OGZlYjRhMDUzYmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FYSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQVhJbWFnZS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJBWExvZ2dlci5oIgog
I2luY2x1ZGUgIkNocm9tZS5oIgogI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgorI2luY2x1ZGUg
IkRvY3VtZW50SW5saW5lcy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKaW5kZXggZjZhM2Y2MjMwY2JkOTkw
NWM4OTM5MjVmYWVmODIyNjEzNzM5YTFmYi4uNzVjOTA3ZjRhMWU2M2ZjODc0Nzk1ZTlkMmU1YzRi
NzRhNzEyOTNkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9i
amVjdENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENh
Y2hlLmgKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1
ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL0xpc3RIYXNoU2V0Lmg+CisjaW5jbHVk
ZSA8d3RmL1dlYWtIYXNoU2V0Lmg+CiAKICNpZiBVU0UoQVRLKQogI2luY2x1ZGUgPHd0Zi9nbGli
L0dSZWZQdHIuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlPYmplY3QuY3BwCmluZGV4IDg2MGEyY2YzMmRmYTBmM2Y4ZGJjNjc3NDhmNDFkZDJi
MGI3ZmQ1ODIuLjhiM2Y0OTRkMDJmNjA2NjZiYjQ0NThiMjlkZmM1Yjc2ODc5MjRjYTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0
LmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIkNocm9tZS5oIgogI2luY2x1ZGUgIkNo
cm9tZUNsaWVudC5oIgogI2luY2x1ZGUgIkRPTVRva2VuTGlzdC5oIgorI2luY2x1ZGUgIkRvY3Vt
ZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkVkaXRpbmcuaCIKICNpbmNsdWRlICJFZGl0b3IuaCIK
ICNpbmNsdWRlICJFbGVtZW50SXRlcmF0b3IuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVJbnRlcmZhY2VEb2N1bWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlSW50ZXJm
YWNlRG9jdW1lbnQuY3BwCmluZGV4IDdmMGI1YTAwNTQ3ODMzYjZhOTY0MDBmMTAyY2Y4YThlOGQ2
ZGU4OGEuLjM0OTAwZTcxYjMxNmQ5YTE4NWRkMWE2MGU3YWYxZDQxNmUyZWFmYjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVJbnRl
cmZhY2VEb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsv
V2ViS2l0QWNjZXNzaWJsZUludGVyZmFjZURvY3VtZW50LmNwcApAQCAtMzUsNyArMzUsNyBAQAog
I2lmIEVOQUJMRShBQ0NFU1NJQklMSVRZKSAmJiBVU0UoQVRLKQogCiAjaW5jbHVkZSAiQWNjZXNz
aWJpbGl0eU9iamVjdC5oIgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1l
bnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRUeXBlLmgiCiAjaW5jbHVkZSAiV2ViS2l0
QWNjZXNzaWJsZS5oIgogI2luY2x1ZGUgIldlYktpdEFjY2Vzc2libGVVdGlsLmgiCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcAppbmRleCA3ZWE0ZWQx
ZjczZTBiNDBkM2I1MGExNDAzNGQ4ZmY3NDE5NWYzZDM3Li45OGEyODM4ZGRhZDI2YzQzYWZlOWQ5
NjkyZjAxZThmMDFiNjcxYmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTVdpbmRvd0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NV2luZG93QmFzZS5jcHAKQEAgLTEwMyw2ICsxMDMsOCBAQCBKU0RPTVdpbmRvd0Jhc2U6OkpT
RE9NV2luZG93QmFzZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBSZWZQdHI8RE9NV2lu
ZG93PgogICAgIG1fcHJveHkuc2V0KHZtLCB0aGlzLCBwcm94eSk7CiB9CiAKK0pTRE9NV2luZG93
QmFzZTo6fkpTRE9NV2luZG93QmFzZSgpID0gZGVmYXVsdDsKKwogU1VQUFJFU1NfQVNBTiBpbmxp
bmUgdm9pZCBKU0RPTVdpbmRvd0Jhc2U6OmluaXRTdGF0aWNHbG9iYWxzKEpTQzo6Vk0mIHZtKQog
ewogICAgIGF1dG8mIGJ1aWx0aW5OYW1lcyA9IHN0YXRpY19jYXN0PEpTVk1DbGllbnREYXRhKj4o
dm0uY2xpZW50RGF0YSktPmJ1aWx0aW5OYW1lcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTVdpbmRvd0Jhc2UuaAppbmRleCA3NmIwYzE2MjUyNWYzOGY4ZGY5ZmNiNzc1MDMz
MjRhMWIxZjQ1YTU3Li42ZjJjNjNhYjc3OTY3NTFhOTMzNjhjYTJlNDNmN2MxNTM4OWZkNmJkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaApAQCAtNTYs
NiArNTYsNyBAQCBwdWJsaWM6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUsIEpTQzo6U3Vic3BhY2VB
Y2Nlc3M+CiAgICAgc3RhdGljIHZvaWQgc3Vic3BhY2VGb3IoSlNDOjpWTSYpIHsgUkVMRUFTRV9B
U1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogCisgICAgfkpTRE9NV2luZG93QmFzZSgpOwogICAgIHZv
aWQgdXBkYXRlRG9jdW1lbnQoKTsKIAogICAgIERPTVdpbmRvdyYgd3JhcHBlZCgpIGNvbnN0IHsg
cmV0dXJuICptX3dyYXBwZWQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTTGF6eUV2ZW50TGlzdGVuZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNMYXp5RXZlbnRMaXN0ZW5lci5jcHAKaW5kZXggOTg3Y2JhNGMzMWI3MGU1OGI0MWUzYTY2YWNj
ZjBiYTJhNmY3NTg4ZS4uMzlmMmEwMzljMDI1OGExNjUzM2RiOTVhMDVhYzk4OTIzMmYxOGM5YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNMYXp5RXZlbnRMaXN0ZW5l
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNMYXp5RXZlbnRMaXN0ZW5l
ci5jcHAKQEAgLTIyLDYgKzIyLDcgQEAKIAogI2luY2x1ZGUgIkNhY2hlZFNjcmlwdEZldGNoZXIu
aCIKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3kuaCIKKyNpbmNsdWRlICJEb2N1bWVu
dElubGluZXMuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNp
bmNsdWRlICJKU05vZGUuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1NjcmlwdENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0
Q29udHJvbGxlci5jcHAKaW5kZXggNjY4NDg2ZmQ4N2ZjZmU0NGUyOGMxYzVkMWE3NjgyY2I5YmFl
NzIzNi4uNjMyM2Y1ZDY0Y2JjNmJjNmIwMjJmMDU1ODM4OTA2YzAzZjdiNTNiNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKQEAgLTI2LDYg
KzI2LDcgQEAKICNpbmNsdWRlICJDb21tb25WTS5oIgogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0
eVBvbGljeS5oIgogI2luY2x1ZGUgIkRPTVdyYXBwZXJXb3JsZC5oIgorI2luY2x1ZGUgIkRvY3Vt
ZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRXZl
bnQuaCIKICNpbmNsdWRlICJGcmFtZS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlQ29sb3IuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQ29sb3IuY3BwCmluZGV4
IDZjMDg1YTgwMGNkZjRhZjM0YjIzNTJjMjVjYWJiMTM5ZWIwNWU2ZGUuLjAzODZlMzY2MDllNGNl
OGQ3NDBjNzlmMTg2N2U3NjY3YmVkMmM2N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TdHlsZUNvbG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVDb2xvci5jcHAK
QEAgLTM3LDcgKzM3LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1Db2xvciBTdHlsZUNv
bG9yOjpjb2xvckZyb21LZXl3b3JkKENTU1ZhbHVlSUQga2V5d29yZCwgT3B0aW9uU2V0PE9wdGlv
bnM+IG9wdGlvbnMpCitDb2xvciBTdHlsZUNvbG9yOjpjb2xvckZyb21LZXl3b3JkKENTU1ZhbHVl
SUQga2V5d29yZCwgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKQogewogICAg
IGlmIChjb25zdCBjaGFyKiB2YWx1ZU5hbWUgPSBnZXRWYWx1ZU5hbWUoa2V5d29yZCkpIHsKICAg
ICAgICAgaWYgKGNvbnN0IE5hbWVkQ29sb3IqIG5hbWVkQ29sb3IgPSBmaW5kQ29sb3IodmFsdWVO
YW1lLCBzdHJsZW4odmFsdWVOYW1lKSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVDb2xvci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQ29sb3IuaAppbmRleCBlNGU1
OGRmOWM1ZWZlNDg3NTJjZTg4ZjEyNDEwY2UyMzlmMTM5Mjc2Li4zMjE0NGY0ZjFmNjViNjBmNjg2
ZGYyNzZmMjU0ZTlmMjBkZDZjNzcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVDb2xvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUNvbG9yLmgKQEAgLTM3LDE1
ICszNywxNSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0cnVjdCBTdHlsZUNvbG9yIHsK
LSAgICBlbnVtIGNsYXNzIE9wdGlvbnMgOiB1aW50OF90IHsKLSAgICAgICAgRm9yVmlzaXRlZExp
bmsgPSAxIDw8IDAsCi0gICAgICAgIFVzZVN5c3RlbUFwcGVhcmFuY2UgPSAxIDw8IDEsCi0gICAg
ICAgIFVzZURhcmtBcHBlYXJhbmNlID0gMSA8PCAyLAotICAgICAgICBVc2VFbGV2YXRlZFVzZXJJ
bnRlcmZhY2VMZXZlbCA9IDEgPDwgMwotICAgIH07CitlbnVtIGNsYXNzIFN0eWxlQ29sb3JPcHRp
b25zIDogdWludDhfdCB7CisgICAgRm9yVmlzaXRlZExpbmsgPSAxIDw8IDAsCisgICAgVXNlU3lz
dGVtQXBwZWFyYW5jZSA9IDEgPDwgMSwKKyAgICBVc2VEYXJrQXBwZWFyYW5jZSA9IDEgPDwgMiwK
KyAgICBVc2VFbGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCA9IDEgPDwgMworfTsKIAotICAgIHN0
YXRpYyBDb2xvciBjb2xvckZyb21LZXl3b3JkKENTU1ZhbHVlSUQsIE9wdGlvblNldDxPcHRpb25z
Pik7CitzdHJ1Y3QgU3R5bGVDb2xvciB7CisgICAgc3RhdGljIENvbG9yIGNvbG9yRnJvbUtleXdv
cmQoQ1NTVmFsdWVJRCwgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPik7CiAgICAgc3RhdGlj
IGJvb2wgaXNBYnNvbHV0ZUNvbG9yS2V5d29yZChDU1NWYWx1ZUlEKTsKICAgICBXRUJDT1JFX0VY
UE9SVCBzdGF0aWMgYm9vbCBpc1N5c3RlbUNvbG9yS2V5d29yZChDU1NWYWx1ZUlEKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NoYXJhY3RlckRhdGEuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL0NoYXJhY3RlckRhdGEuY3BwCmluZGV4IGJiOGQ1M2NjYzQ0NWM3MGNmYTgyZmVj
ZjYzNWQ1Y2IyMDQ2ZjY0YTcuLjJlNjVjNjI0NDk3MzM3ZTZiOTAwYWUzOTAwYzFhMTI2Yzk3ZDZj
ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DaGFyYWN0ZXJEYXRhLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2hhcmFjdGVyRGF0YS5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAg
V1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKENoYXJhY3RlckRhdGEpOwogc3RhdGljIGJvb2wg
Y2FuVXNlU2V0RGF0YU9wdGltaXphdGlvbihjb25zdCBDaGFyYWN0ZXJEYXRhJiBub2RlKQogewog
ICAgIGF1dG8mIGRvY3VtZW50ID0gbm9kZS5kb2N1bWVudCgpOwotICAgIHJldHVybiAhZG9jdW1l
bnQuaGFzTGlzdGVuZXJUeXBlKERvY3VtZW50OjpET01DSEFSQUNURVJEQVRBTU9ESUZJRURfTElT
VEVORVIpICYmICFkb2N1bWVudC5oYXNNdXRhdGlvbk9ic2VydmVyc09mVHlwZShNdXRhdGlvbk9i
c2VydmVyOjpDaGFyYWN0ZXJEYXRhKQorICAgIHJldHVybiAhZG9jdW1lbnQuaGFzTGlzdGVuZXJU
eXBlKERvY3VtZW50OjpET01DSEFSQUNURVJEQVRBTU9ESUZJRURfTElTVEVORVIpICYmICFkb2N1
bWVudC5oYXNNdXRhdGlvbk9ic2VydmVyc09mVHlwZShNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlw
ZTo6Q2hhcmFjdGVyRGF0YSkKICAgICAgICAgJiYgIWRvY3VtZW50Lmhhc0xpc3RlbmVyVHlwZShE
b2N1bWVudDo6RE9NU1VCVFJFRU1PRElGSUVEX0xJU1RFTkVSKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0NoaWxkTGlzdE11dGF0aW9uU2NvcGUuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9DaGlsZExpc3RNdXRhdGlvblNjb3BlLmgKaW5kZXggMjk2Njc2Nzc2OGYwZDcxNDc0
MmUzNmJjZTViNjEwODY5NzdmOTFmZi4uNjRjOTI0NjVmMmExMDNiM2E5OTBlNjFhM2NmMTI4YTA5
NWIyYmNhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NoaWxkTGlzdE11dGF0aW9u
U2NvcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2hpbGRMaXN0TXV0YXRpb25TY29wZS5o
CkBAIC0zMSw3ICszMSw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkNvbnRhaW5lck5v
ZGUuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5o
IgogI2luY2x1ZGUgIk11dGF0aW9uT2JzZXJ2ZXIuaCIKICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5j
bHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CkBAIC03Niw3ICs3Niw3IEBAIGNsYXNzIENoaWxkTGlz
dE11dGF0aW9uU2NvcGUgewogcHVibGljOgogICAgIGV4cGxpY2l0IENoaWxkTGlzdE11dGF0aW9u
U2NvcGUoQ29udGFpbmVyTm9kZSYgdGFyZ2V0KQogICAgIHsKLSAgICAgICAgaWYgKHRhcmdldC5k
b2N1bWVudCgpLmhhc011dGF0aW9uT2JzZXJ2ZXJzT2ZUeXBlKE11dGF0aW9uT2JzZXJ2ZXI6OkNo
aWxkTGlzdCkpCisgICAgICAgIGlmICh0YXJnZXQuZG9jdW1lbnQoKS5oYXNNdXRhdGlvbk9ic2Vy
dmVyc09mVHlwZShNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZTo6Q2hpbGRMaXN0KSkKICAgICAg
ICAgICAgIG1fYWNjdW11bGF0b3IgPSBDaGlsZExpc3RNdXRhdGlvbkFjY3VtdWxhdG9yOjpnZXRP
ckNyZWF0ZSh0YXJnZXQpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0NvbnRhaW5lck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3Bw
CmluZGV4IDJiNTliMzZiYzg5YWQyZWRmOTUyOTk0NTE2ZGE5ODk3YTA3ZjQ3OGUuLmFkOGE3NTQ5
NGZiZWQwMjllODE2MmQwY2JhNWVlNGE4ZTIwZDE2Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFp
bmVyTm9kZS5jcHAKQEAgLTEwMiw3ICsxMDIsNyBAQCBBTFdBWVNfSU5MSU5FIE5vZGVWZWN0b3Ig
Q29udGFpbmVyTm9kZTo6cmVtb3ZlQWxsQ2hpbGRyZW5XaXRoU2NyaXB0QXNzZXJ0aW9uKENoaQog
ICAgIH0gZWxzZSB7CiAgICAgICAgIEFTU0VSVChzb3VyY2UgPT0gQ2hpbGRDaGFuZ2U6OlNvdXJj
ZTo6UGFyc2VyKTsKICAgICAgICAgU2NyaXB0RGlzYWxsb3dlZFNjb3BlOjpJbk1haW5UaHJlYWQg
c2NyaXB0RGlzYWxsb3dlZFNjb3BlOwotICAgICAgICBpZiAoVU5MSUtFTFkoZG9jdW1lbnQoKS5o
YXNNdXRhdGlvbk9ic2VydmVyc09mVHlwZShNdXRhdGlvbk9ic2VydmVyOjpDaGlsZExpc3QpKSkg
eworICAgICAgICBpZiAoVU5MSUtFTFkoZG9jdW1lbnQoKS5oYXNNdXRhdGlvbk9ic2VydmVyc09m
VHlwZShNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZTo6Q2hpbGRMaXN0KSkpIHsKICAgICAgICAg
ICAgIENoaWxkTGlzdE11dGF0aW9uU2NvcGUgbXV0YXRpb24oKnRoaXMpOwogICAgICAgICAgICAg
Zm9yIChhdXRvJiBjaGlsZCA6IGNoaWxkcmVuKQogICAgICAgICAgICAgICAgIG11dGF0aW9uLndp
bGxSZW1vdmVDaGlsZChjaGlsZC5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBl
OGJjNTZlNzZlNmY2NGM5NmY3MWFmYzYzY2MyZDc2ZDEyZmYwY2E0Li5hZGY1MzU1MmZlMDdmNTVh
N2YxMTkzNDgwZjU1Y2MyYmRlMWJhNjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTYy
LDYgKzYyLDcgQEAKICNpbmNsdWRlICJEZWJ1Z1BhZ2VPdmVybGF5cy5oIgogI2luY2x1ZGUgIkRl
cHJlY2F0ZWRHbG9iYWxTZXR0aW5ncy5oIgogI2luY2x1ZGUgIkRvY3VtZW50Rm9udExvYWRlci5o
IgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVy
LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRG9j
dW1lbnRTaGFyZWRPYmplY3RQb29sLmgiCkBAIC0xNzcsNiArMTc4LDcgQEAKICNpbmNsdWRlICJQ
c2V1ZG9DbGFzc0NoYW5nZUludmFsaWRhdGlvbi5oIgogI2luY2x1ZGUgIlB1YmxpY1N1ZmZpeC5o
IgogI2luY2x1ZGUgIlF1aXJrcy5oIgorI2luY2x1ZGUgIlJUQ05ldHdvcmtNYW5hZ2VyLmgiCiAj
aW5jbHVkZSAiUmFuZ2UuaCIKICNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgi
CiAjaW5jbHVkZSAiUmVuZGVyQ2hpbGRJdGVyYXRvci5oIgpAQCAtMjM5LDYgKzI0MSw3IEBACiAj
aW5jbHVkZSAiVGV4dEV2ZW50LmgiCiAjaW5jbHVkZSAiVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xs
ZXIuaCIKICNpbmNsdWRlICJUZXh0Tm9kZVRyYXZlcnNhbC5oIgorI2luY2x1ZGUgIlRleHRSZXNv
dXJjZURlY29kZXIuaCIKICNpbmNsdWRlICJUb3VjaEFjdGlvbi5oIgogI2luY2x1ZGUgIlRyYW5z
Zm9ybVNvdXJjZS5oIgogI2luY2x1ZGUgIlRyZWVXYWxrZXIuaCIKQEAgLTk3OSw3ICs5ODIsNyBA
QCB2b2lkIERvY3VtZW50OjpyZXNldExpbmtDb2xvcigpCiAKIHZvaWQgRG9jdW1lbnQ6OnJlc2V0
VmlzaXRlZExpbmtDb2xvcigpCiB7Ci0gICAgbV92aXNpdGVkTGlua0NvbG9yID0gU3R5bGVDb2xv
cjo6Y29sb3JGcm9tS2V5d29yZChDU1NWYWx1ZVdlYmtpdExpbmssIHN0eWxlQ29sb3JPcHRpb25z
KG51bGxwdHIpIHwgU3R5bGVDb2xvcjo6T3B0aW9uczo6Rm9yVmlzaXRlZExpbmspOworICAgIG1f
dmlzaXRlZExpbmtDb2xvciA9IFN0eWxlQ29sb3I6OmNvbG9yRnJvbUtleXdvcmQoQ1NTVmFsdWVX
ZWJraXRMaW5rLCBzdHlsZUNvbG9yT3B0aW9ucyhudWxscHRyKSB8IFN0eWxlQ29sb3JPcHRpb25z
OjpGb3JWaXNpdGVkTGluayk7CiB9CiAKIHZvaWQgRG9jdW1lbnQ6OnJlc2V0QWN0aXZlTGlua0Nv
bG9yKCkKQEAgLTM1NzgsNiArMzU4MSwxMyBAQCBSZWZQdHI8UlRDRGF0YUNoYW5uZWxSZW1vdGVI
YW5kbGVyQ29ubmVjdGlvbj4gRG9jdW1lbnQ6OmNyZWF0ZVJUQ0RhdGFDaGFubmVsUmVtbwogICAg
IHJldHVybiBwYWdlLT5saWJXZWJSVENQcm92aWRlcigpLmNyZWF0ZVJUQ0RhdGFDaGFubmVsUmVt
b3RlSGFuZGxlckNvbm5lY3Rpb24oKTsKIH0KIAorI2lmIEVOQUJMRShXRUJfUlRDKQordm9pZCBE
b2N1bWVudDo6c2V0UlRDTmV0d29ya01hbmFnZXIoUmVmPFJUQ05ldHdvcmtNYW5hZ2VyPiYmIHJ0
Y05ldHdvcmtNYW5hZ2VyKQoreworICAgIG1fcnRjTmV0d29ya01hbmFnZXIgPSBXVEZNb3ZlKHJ0
Y05ldHdvcmtNYW5hZ2VyKTsKK30KKyNlbmRpZgorCiBib29sIERvY3VtZW50OjpjYW5OYXZpZ2F0
ZShGcmFtZSogdGFyZ2V0RnJhbWUsIGNvbnN0IFVSTCYgZGVzdGluYXRpb25VUkwpCiB7CiAgICAg
aWYgKCFtX2ZyYW1lKQpAQCAtNDQwMywxOCArNDQxMywxOCBAQCB2b2lkIERvY3VtZW50Ojpub3Rl
VXNlckludGVyYWN0aW9uV2l0aE1lZGlhRWxlbWVudCgpCiB2b2lkIERvY3VtZW50Ojp1cGRhdGVJ
c1BsYXlpbmdNZWRpYSgpCiB7CiAgICAgQVNTRVJUKCFtX2F1ZGlvUHJvZHVjZXJzLmhhc051bGxS
ZWZlcmVuY2VzKCkpOwotICAgIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0ZTsK
KyAgICBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIHN0YXRlOwogICAgIGZvciAoYXV0byYg
YXVkaW9Qcm9kdWNlciA6IG1fYXVkaW9Qcm9kdWNlcnMpCiAgICAgICAgIHN0YXRlLmFkZChhdWRp
b1Byb2R1Y2VyLm1lZGlhU3RhdGUoKSk7CiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAg
IHN0YXRlLmFkZChNZWRpYVN0cmVhbVRyYWNrOjpjYXB0dXJlU3RhdGUoKnRoaXMpKTsKICAgICBp
ZiAobV9hY3RpdmVTcGVlY2hSZWNvZ25pdGlvbikKLSAgICAgICAgc3RhdGUuYWRkKE1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSk7CisgICAgICAg
IHN0YXRlLmFkZChNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJl
RGV2aWNlKTsKICNlbmRpZgogCiAgICAgaWYgKG1fdXNlckhhc0ludGVyYWN0ZWRXaXRoTWVkaWFF
bGVtZW50KQotICAgICAgICBzdGF0ZS5hZGQoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFz
VXNlckludGVyYWN0ZWRXaXRoTWVkaWFFbGVtZW50KTsKKyAgICAgICAgc3RhdGUuYWRkKE1lZGlh
UHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNVc2VySW50ZXJhY3RlZFdpdGhNZWRpYUVsZW1lbnQpOwog
CiAgICAgaWYgKHN0YXRlID09IG1fbWVkaWFTdGF0ZSkKICAgICAgICAgcmV0dXJuOwpAQCAtNjcy
NSw3ICs2NzM1LDcgQEAgdm9pZCBEb2N1bWVudDo6ZGlzcGF0Y2hQYWdlc2hvd0V2ZW50KFBhZ2Vz
aG93RXZlbnRQZXJzaXN0ZW5jZSBwZXJzaXN0ZWQpCiAgICAgZGlzcGF0Y2hXaW5kb3dFdmVudChQ
YWdlVHJhbnNpdGlvbkV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnBhZ2VzaG93RXZlbnQsIHBl
cnNpc3RlZCksIHRoaXMpOwogfQogCi12b2lkIERvY3VtZW50OjplbnF1ZXVlU2VjdXJpdHlQb2xp
Y3lWaW9sYXRpb25FdmVudChTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJbml0JiYgZXZl
bnRJbml0KQordm9pZCBEb2N1bWVudDo6ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZl
bnQoU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQmJiBldmVudEluaXQpCiB7CiAgICAg
cXVldWVUYXNrVG9EaXNwYXRjaEV2ZW50KFRhc2tTb3VyY2U6OkRPTU1hbmlwdWxhdGlvbiwgU2Vj
dXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zZWN1cml0eXBv
bGljeXZpb2xhdGlvbkV2ZW50LCBXVEZNb3ZlKGV2ZW50SW5pdCksIEV2ZW50OjpJc1RydXN0ZWQ6
OlllcykpOwogfQpAQCAtNzUwOSwxNSArNzUxOSwxNSBAQCBib29sIERvY3VtZW50Ojp1c2VFbGV2
YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCgpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1P
cHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gRG9jdW1lbnQ6OnN0eWxlQ29sb3JPcHRpb25z
KGNvbnN0IFJlbmRlclN0eWxlKiBzdHlsZSkgY29uc3QKK09wdGlvblNldDxTdHlsZUNvbG9yT3B0
aW9ucz4gRG9jdW1lbnQ6OnN0eWxlQ29sb3JPcHRpb25zKGNvbnN0IFJlbmRlclN0eWxlKiBzdHls
ZSkgY29uc3QKIHsKLSAgICBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9uczsK
KyAgICBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnM7CiAgICAgaWYgKHVzZVN5
c3RlbUFwcGVhcmFuY2UoKSkKLSAgICAgICAgb3B0aW9ucy5hZGQoU3R5bGVDb2xvcjo6T3B0aW9u
czo6VXNlU3lzdGVtQXBwZWFyYW5jZSk7CisgICAgICAgIG9wdGlvbnMuYWRkKFN0eWxlQ29sb3JP
cHRpb25zOjpVc2VTeXN0ZW1BcHBlYXJhbmNlKTsKICAgICBpZiAodXNlRGFya0FwcGVhcmFuY2Uo
c3R5bGUpKQotICAgICAgICBvcHRpb25zLmFkZChTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VEYXJr
QXBwZWFyYW5jZSk7CisgICAgICAgIG9wdGlvbnMuYWRkKFN0eWxlQ29sb3JPcHRpb25zOjpVc2VE
YXJrQXBwZWFyYW5jZSk7CiAgICAgaWYgKHVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVsKCkp
Ci0gICAgICAgIG9wdGlvbnMuYWRkKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZUVsZXZhdGVkVXNl
ckludGVyZmFjZUxldmVsKTsKKyAgICAgICAgb3B0aW9ucy5hZGQoU3R5bGVDb2xvck9wdGlvbnM6
OlVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVsKTsKICAgICByZXR1cm4gb3B0aW9uczsKIH0K
IApAQCAtNzY5NCw3ICs3NzA0LDcgQEAgdm9pZCBEb2N1bWVudDo6c2hvd1BsYXliYWNrVGFyZ2V0
UGlja2VyKE1lZGlhUGxheWJhY2tUYXJnZXRDbGllbnQmIGNsaWVudCwgYm9vbAogICAgIHBhZ2Ut
PnNob3dQbGF5YmFja1RhcmdldFBpY2tlcihpdC0+dmFsdWUsIHBvc2l0aW9uLCBpc1ZpZGVvLCBy
b3V0ZVNoYXJpbmdQb2xpY3ksIHJvdXRpbmdDb250ZXh0VUlEKTsKIH0KIAotdm9pZCBEb2N1bWVu
dDo6cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShNZWRpYVBsYXliYWNr
VGFyZ2V0Q2xpZW50JiBjbGllbnQsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0
ZSkKK3ZvaWQgRG9jdW1lbnQ6OnBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFu
Z2UoTWVkaWFQbGF5YmFja1RhcmdldENsaWVudCYgY2xpZW50LCBNZWRpYVByb2R1Y2VyTWVkaWFT
dGF0ZUZsYWdzIHN0YXRlKQogewogICAgIFBhZ2UqIHBhZ2UgPSB0aGlzLT5wYWdlKCk7CiAgICAg
aWYgKCFwYWdlKQpAQCAtODE5OSw3ICs4MjA5LDcgQEAgdm9pZCBEb2N1bWVudDo6b3JpZW50YXRp
b25DaGFuZ2VkKGludCBvcmllbnRhdGlvbikKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAK
LXZvaWQgRG9jdW1lbnQ6OnN0b3BNZWRpYUNhcHR1cmUoTWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0
dXJlS2luZCBraW5kKQordm9pZCBEb2N1bWVudDo6c3RvcE1lZGlhQ2FwdHVyZShNZWRpYVByb2R1
Y2VyTWVkaWFDYXB0dXJlS2luZCBraW5kKQogewogICAgIE1lZGlhU3RyZWFtVHJhY2s6OmVuZENh
cHR1cmUoKnRoaXMsIGtpbmQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCAzODZlMzc4Mjgw
ODhmM2ZkMWVhN2JmYzgwNjgyZTk1YTg1MDg5MDA2Li5mZWU1MTIxMjI5MjMwYzBkZDk3YTBlYmUz
ZWRlYTRlYzBkMTU3NzBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMzUsNyArMzUsNiBAQAog
I2luY2x1ZGUgIkRpc2FibGVkQWRhcHRhdGlvbnMuaCIKICNpbmNsdWRlICJEb2N1bWVudEV2ZW50
VGltaW5nLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRJZGVudGlmaWVyLmgiCi0jaW5jbHVkZSAiRG9j
dW1lbnRUaW1lbGluZXNDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRWxlbWVudElkZW50aWZpZXIu
aCIKICNpbmNsdWRlICJGb2N1c09wdGlvbnMuaCIKICNpbmNsdWRlICJGb250U2VsZWN0b3JDbGll
bnQuaCIKQEAgLTQzLDMwICs0MiwyMSBAQAogI2luY2x1ZGUgIkZyYW1lSWRlbnRpZmllci5oIgog
I2luY2x1ZGUgIkZyYW1lTG9hZGVyVHlwZXMuaCIKICNpbmNsdWRlICJHcmFwaGljc1R5cGVzLmgi
Ci0jaW5jbHVkZSAiTWVkaWFQcm9kdWNlci5oIgotI2luY2x1ZGUgIk11dGF0aW9uT2JzZXJ2ZXIu
aCIKICNpbmNsdWRlICJPcmllbnRhdGlvbk5vdGlmaWVyLmgiCiAjaW5jbHVkZSAiUGFnZUlkZW50
aWZpZXIuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUV2ZW50LmgiCiAjaW5jbHVkZSAiUGxheWJhY2tU
YXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllci5oIgotI2luY2x1ZGUgIlJUQ05ldHdvcmtNYW5h
Z2VyLmgiCiAjaW5jbHVkZSAiUmVmZXJyZXJQb2xpY3kuaCIKLSNpbmNsdWRlICJSZWdpb24uaCIK
ICNpbmNsdWRlICJSZWdpc3RyYWJsZURvbWFpbi5oIgogI2luY2x1ZGUgIlJlbmRlclB0ci5oIgog
I2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKLSNpbmNsdWRlICJTZWN1cml0eVBv
bGljeVZpb2xhdGlvbkV2ZW50LmgiCiAjaW5jbHVkZSAiU3RyaW5nV2l0aERpcmVjdGlvbi5oIgot
I2luY2x1ZGUgIlN0eWxlQ29sb3IuaCIKLSNpbmNsdWRlICJTdHlsZVVwZGF0ZS5oIgogI2luY2x1
ZGUgIlN1cHBsZW1lbnRhYmxlLmgiCi0jaW5jbHVkZSAiVGV4dFJlc291cmNlRGVjb2Rlci5oIgog
I2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSAiVHJlZVNjb3BlLmgiCiAjaW5jbHVkZSAiVXNl
ckFjdGlvbkVsZW1lbnRTZXQuaCIKICNpbmNsdWRlICJWaWV3cG9ydEFyZ3VtZW50cy5oIgogI2lu
Y2x1ZGUgIlZpc2liaWxpdHlTdGF0ZS5oIgotI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KICNp
bmNsdWRlIDx3dGYvRGVxdWUuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUg
PHd0Zi9IYXNoQ291bnRlZFNldC5oPgpAQCAtOTYsMTEgKzg2LDE2IEBAIG5hbWVzcGFjZSBXVEYg
ewogY2xhc3MgVGV4dFN0cmVhbTsKIH0KIAorbmFtZXNwYWNlIFBBTCB7CitjbGFzcyBTZXNzaW9u
SUQ7Cit9CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQVhPYmplY3RDYWNoZTsKIGNs
YXNzIEFwcEhpZ2hsaWdodFN0b3JhZ2U7CiBjbGFzcyBBdHRyOworY2xhc3MgQ2FudmFzQmFzZTsK
IGNsYXNzIENEQVRBU2VjdGlvbjsKIGNsYXNzIENTU0N1c3RvbVByb3BlcnR5VmFsdWU7CiBjbGFz
cyBDU1NGb250U2VsZWN0b3I7CkBAIC0xMzIsNiArMTI3LDcgQEAgY2xhc3MgRG9jdW1lbnRNYXJr
ZXJDb250cm9sbGVyOwogY2xhc3MgRG9jdW1lbnRQYXJzZXI7CiBjbGFzcyBEb2N1bWVudFNoYXJl
ZE9iamVjdFBvb2w7CiBjbGFzcyBEb2N1bWVudFRpbWVsaW5lOworY2xhc3MgRG9jdW1lbnRUaW1l
bGluZXNDb250cm9sbGVyOwogY2xhc3MgRG9jdW1lbnRUeXBlOwogY2xhc3MgRWRpdGluZ0JlaGF2
aW9yOwogY2xhc3MgRWRpdG9yOwpAQCAtMTgzLDYgKzE3OSw3IEBAIGNsYXNzIExvY2F0aW9uOwog
Y2xhc3MgTWVkaWFDYW5TdGFydExpc3RlbmVyOwogY2xhc3MgTWVkaWFQbGF5YmFja1RhcmdldDsK
IGNsYXNzIE1lZGlhUGxheWJhY2tUYXJnZXRDbGllbnQ7CitjbGFzcyBNZWRpYVByb2R1Y2VyOwog
Y2xhc3MgTWVkaWFRdWVyeUxpc3Q7CiBjbGFzcyBNZWRpYVF1ZXJ5TWF0Y2hlcjsKIGNsYXNzIE1l
c3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOwpAQCAtMTk2LDcgKzE5Myw5IEBAIGNsYXNzIFBsYXRm
b3JtTW91c2VFdmVudDsKIGNsYXNzIFByb2Nlc3NpbmdJbnN0cnVjdGlvbjsKIGNsYXNzIFF1YWxp
ZmllZE5hbWU7CiBjbGFzcyBRdWlya3M7CitjbGFzcyBSVENOZXR3b3JrTWFuYWdlcjsKIGNsYXNz
IFJhbmdlOworY2xhc3MgUmVnaW9uOwogY2xhc3MgUmVuZGVyVHJlZUJ1aWxkZXI7CiBjbGFzcyBS
ZW5kZXJWaWV3OwogY2xhc3MgUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2s7CkBAIC0yMjMs
NiArMjIyLDcgQEAgY2xhc3MgU3R5bGVTaGVldENvbnRlbnRzOwogY2xhc3MgU3R5bGVTaGVldExp
c3Q7CiBjbGFzcyBUZXh0OwogY2xhc3MgVGV4dEF1dG9TaXppbmc7CitjbGFzcyBUZXh0RW5jb2Rp
bmc7CiBjbGFzcyBUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcjsKIGNsYXNzIFRleHRSZXNvdXJj
ZURlY29kZXI7CiBjbGFzcyBUcmFuc2Zvcm1Tb3VyY2U7CkBAIC0yNTAsMjAgKzI1MCwyOSBAQCBz
dHJ1Y3QgQXBwbGljYXRpb25NYW5pZmVzdDsKIHN0cnVjdCBCb3VuZGFyeVBvaW50Owogc3RydWN0
IEhpZ2hsaWdodFJhbmdlRGF0YTsKIHN0cnVjdCBJbnRlcnNlY3Rpb25PYnNlcnZlckRhdGE7Citz
dHJ1Y3QgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQ7CiAKIHRlbXBsYXRlPHR5cGVu
YW1lPiBjbGFzcyBFeGNlcHRpb25PcjsKIAogZW51bSBDb2xsZWN0aW9uVHlwZTsKIAorZW51bSBj
bGFzcyBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZSA6IHVpbnQzMl90OworZW51bSBjbGFzcyBNZWRp
YVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZCA6IHVpbnQ4X3Q7CitlbnVtIGNsYXNzIE1lZGlhUHJv
ZHVjZXJNdXRlZFN0YXRlIDogdWludDhfdDsKIGVudW0gY2xhc3MgUm91dGVTaGFyaW5nUG9saWN5
IDogdWludDhfdDsKIGVudW0gY2xhc3MgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSA6IHVp
bnQ4X3Q7CiBlbnVtIGNsYXNzIFJlbmRlcmluZ1VwZGF0ZVN0ZXAgOiB1aW50MTZfdDsKK2VudW0g
Y2xhc3MgU3R5bGVDb2xvck9wdGlvbnMgOiB1aW50OF90OworZW51bSBjbGFzcyBNdXRhdGlvbk9i
c2VydmVyT3B0aW9uVHlwZSA6IHVpbnQ4X3Q7CiAKK3VzaW5nIE1lZGlhUHJvZHVjZXJNZWRpYVN0
YXRlRmxhZ3MgPSBPcHRpb25TZXQ8TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU+OwordXNpbmcgTWVk
aWFQcm9kdWNlck11dGVkU3RhdGVGbGFncyA9IE9wdGlvblNldDxNZWRpYVByb2R1Y2VyTXV0ZWRT
dGF0ZT47CiB1c2luZyBQbGF0Zm9ybURpc3BsYXlJRCA9IHVpbnQzMl90OwogCiBuYW1lc3BhY2Ug
U3R5bGUgewogY2xhc3MgUmVzb2x2ZXI7CiBjbGFzcyBTY29wZTsKK2NsYXNzIFVwZGF0ZTsKIH0K
IAogZW51bSBQYWdlc2hvd0V2ZW50UGVyc2lzdGVuY2UgeyBQYWdlc2hvd0V2ZW50Tm90UGVyc2lz
dGVkLCBQYWdlc2hvd0V2ZW50UGVyc2lzdGVkIH07CkBAIC0zNTQsNyArMzYzLDcgQEAgcHVibGlj
OgogICAgIHVzaW5nIFdlYWtWYWx1ZVR5cGUgPSBFdmVudFRhcmdldDo6V2Vha1ZhbHVlVHlwZTsK
ICAgICB1c2luZyBFdmVudFRhcmdldDo6d2Vha1B0ckZhY3Rvcnk7CiAKLSAgICBzdGF0aWMgUmVm
PERvY3VtZW50PiBjcmVhdGUoY29uc3QgU2V0dGluZ3MmLCBjb25zdCBVUkwmKTsKKyAgICBpbmxp
bmUgc3RhdGljIFJlZjxEb2N1bWVudD4gY3JlYXRlKGNvbnN0IFNldHRpbmdzJiwgY29uc3QgVVJM
Jik7CiAgICAgc3RhdGljIFJlZjxEb2N1bWVudD4gY3JlYXRlTm9uUmVuZGVyZWRQbGFjZWhvbGRl
cihGcmFtZSYsIGNvbnN0IFVSTCYpOwogICAgIHN0YXRpYyBSZWY8RG9jdW1lbnQ+IGNyZWF0ZShE
b2N1bWVudCYpOwogCkBAIC00NjAsMTEgKzQ2OSwxMSBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JF
X0VYUE9SVCBTdHJpbmcgZGVmYXVsdENoYXJzZXRGb3JMZWdhY3lCaW5kaW5ncygpIGNvbnN0Owog
Ci0gICAgU3RyaW5nIGNoYXJzZXQoKSBjb25zdCB7IHJldHVybiBEb2N1bWVudDo6ZW5jb2Rpbmco
KTsgfQorICAgIGlubGluZSBTdHJpbmcgY2hhcnNldCgpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQ
T1JUIFN0cmluZyBjaGFyYWN0ZXJTZXRXaXRoVVRGOEZhbGxiYWNrKCkgY29uc3Q7Ci0gICAgVGV4
dEVuY29kaW5nIHRleHRFbmNvZGluZygpIGNvbnN0OworICAgIGlubGluZSBUZXh0RW5jb2Rpbmcg
dGV4dEVuY29kaW5nKCkgY29uc3Q7CiAKLSAgICBBdG9tU3RyaW5nIGVuY29kaW5nKCkgY29uc3Qg
eyByZXR1cm4gdGV4dEVuY29kaW5nKCkuZG9tTmFtZSgpOyB9CisgICAgaW5saW5lIEF0b21TdHJp
bmcgZW5jb2RpbmcoKSBjb25zdDsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q2hhcnNl
dChjb25zdCBTdHJpbmcmKTsgLy8gVXNlZCBieSBPYmpDIC8gR09CamVjdCBiaW5kaW5ncyBvbmx5
LgogCkBAIC01NzksNyArNTg4LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wg
dXNlRWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWwoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9S
VCBib29sIHVzZURhcmtBcHBlYXJhbmNlKGNvbnN0IFJlbmRlclN0eWxlKikgY29uc3Q7CiAKLSAg
ICBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gc3R5bGVDb2xvck9wdGlvbnMoY29uc3Qg
UmVuZGVyU3R5bGUqKSBjb25zdDsKKyAgICBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IHN0
eWxlQ29sb3JPcHRpb25zKGNvbnN0IFJlbmRlclN0eWxlKikgY29uc3Q7CiAgICAgQ29tcG9zaXRl
T3BlcmF0b3IgY29tcG9zaXRlT3BlcmF0b3JGb3JCYWNrZ3JvdW5kQ29sb3IoY29uc3QgQ29sb3Im
LCBjb25zdCBSZW5kZXJPYmplY3QmKSBjb25zdDsKIAogICAgIFdFQkNPUkVfRVhQT1JUIFJlZjxS
YW5nZT4gY3JlYXRlUmFuZ2UoKTsKQEAgLTY0NSw3ICs2NTQsNyBAQCBwdWJsaWM6CiAgICAgCiAg
ICAgYm9vbCB1cGRhdGVMYXlvdXRJZkRpbWVuc2lvbnNPdXRPZkRhdGUoRWxlbWVudCYsIERpbWVu
c2lvbnNDaGVjayA9IEFsbERpbWVuc2lvbnNDaGVjayk7CiAgICAgCi0gICAgQVhPYmplY3RDYWNo
ZSogZXhpc3RpbmdBWE9iamVjdENhY2hlKCkgY29uc3Q7CisgICAgaW5saW5lIEFYT2JqZWN0Q2Fj
aGUqIGV4aXN0aW5nQVhPYmplY3RDYWNoZSgpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIEFY
T2JqZWN0Q2FjaGUqIGF4T2JqZWN0Q2FjaGUoKSBjb25zdDsKICAgICB2b2lkIGNsZWFyQVhPYmpl
Y3RDYWNoZSgpOwogCkBAIC03MTMsNyArNzIyLDcgQEAgcHVibGljOgogCiAjaWYgRU5BQkxFKFdF
Ql9SVEMpCiAgICAgUlRDTmV0d29ya01hbmFnZXIqIHJ0Y05ldHdvcmtNYW5hZ2VyKCkgeyByZXR1
cm4gbV9ydGNOZXR3b3JrTWFuYWdlci5nZXQoKTsgfQotICAgIHZvaWQgc2V0UlRDTmV0d29ya01h
bmFnZXIoUmVmPFJUQ05ldHdvcmtNYW5hZ2VyPiYmIHJ0Y05ldHdvcmtNYW5hZ2VyKSB7IG1fcnRj
TmV0d29ya01hbmFnZXIgPSBXVEZNb3ZlKHJ0Y05ldHdvcmtNYW5hZ2VyKTsgfQorICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2V0UlRDTmV0d29ya01hbmFnZXIoUmVmPFJUQ05ldHdvcmtNYW5hZ2Vy
PiYmKTsKICNlbmRpZgogCiAgICAgYm9vbCBjYW5OYXZpZ2F0ZShGcmFtZSogdGFyZ2V0RnJhbWUs
IGNvbnN0IFVSTCYgZGVzdGluYXRpb25VUkwgPSBVUkwoKSk7CkBAIC04OTEsMTIgKzkwMCw5IEBA
IHB1YmxpYzoKICAgICBib29sIGhhc0xpc3RlbmVyVHlwZUZvckV2ZW50VHlwZShQbGF0Zm9ybUV2
ZW50OjpUeXBlKSBjb25zdDsKICAgICB2b2lkIGFkZExpc3RlbmVyVHlwZUlmTmVlZGVkKGNvbnN0
IEF0b21TdHJpbmcmIGV2ZW50VHlwZSk7CiAKLSAgICBib29sIGhhc011dGF0aW9uT2JzZXJ2ZXJz
T2ZUeXBlKE11dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0aW9uVHlwZSB0eXBlKSBjb25zdAotICAgIHsK
LSAgICAgICAgcmV0dXJuIG1fbXV0YXRpb25PYnNlcnZlclR5cGVzICYgdHlwZTsKLSAgICB9Ci0g
ICAgYm9vbCBoYXNNdXRhdGlvbk9ic2VydmVycygpIGNvbnN0IHsgcmV0dXJuIG1fbXV0YXRpb25P
YnNlcnZlclR5cGVzOyB9Ci0gICAgdm9pZCBhZGRNdXRhdGlvbk9ic2VydmVyVHlwZXMoTXV0YXRp
b25PYnNlcnZlck9wdGlvbnMgdHlwZXMpIHsgbV9tdXRhdGlvbk9ic2VydmVyVHlwZXMgfD0gdHlw
ZXM7IH0KKyAgICBpbmxpbmUgYm9vbCBoYXNNdXRhdGlvbk9ic2VydmVyc09mVHlwZShNdXRhdGlv
bk9ic2VydmVyT3B0aW9uVHlwZSkgY29uc3Q7CisgICAgYm9vbCBoYXNNdXRhdGlvbk9ic2VydmVy
cygpIGNvbnN0IHsgcmV0dXJuICFtX211dGF0aW9uT2JzZXJ2ZXJUeXBlcy5pc0VtcHR5KCk7IH0K
KyAgICB2b2lkIGFkZE11dGF0aW9uT2JzZXJ2ZXJUeXBlcyhNdXRhdGlvbk9ic2VydmVyT3B0aW9u
cyB0eXBlcykgeyBtX211dGF0aW9uT2JzZXJ2ZXJUeXBlcy5hZGQodHlwZXMpOyB9CiAKICAgICBD
U1NTdHlsZURlY2xhcmF0aW9uKiBnZXRPdmVycmlkZVN0eWxlKEVsZW1lbnQqLCBjb25zdCBTdHJp
bmcmKSB7IHJldHVybiBudWxscHRyOyB9CiAKQEAgLTExODAsNyArMTE4Niw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHF1ZXVlVGFza1RvRGlzcGF0Y2hFdmVudE9uV2luZG93KFRhc2tTb3VyY2UsIFJl
ZjxFdmVudD4mJik7CiAgICAgdm9pZCBlbnF1ZXVlT3ZlcmZsb3dFdmVudChSZWY8RXZlbnQ+JiYp
OwogICAgIHZvaWQgZGlzcGF0Y2hQYWdlc2hvd0V2ZW50KFBhZ2VzaG93RXZlbnRQZXJzaXN0ZW5j
ZSk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBlbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRp
b25FdmVudChTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJbml0JiYpOworICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQoU2VjdXJp
dHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQmJik7CiAgICAgdm9pZCBlbnF1ZXVlSGFzaGNoYW5n
ZUV2ZW50KGNvbnN0IFN0cmluZyYgb2xkVVJMLCBjb25zdCBTdHJpbmcmIG5ld1VSTCk7CiAgICAg
dm9pZCBkaXNwYXRjaFBvcHN0YXRlRXZlbnQoUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4m
JiBzdGF0ZU9iamVjdCk7CiAKQEAgLTEzNjUsNyArMTM3MSw3IEBAIHB1YmxpYzoKICAgICBTZWN1
cml0eU9yaWdpbiYgc2VjdXJpdHlPcmlnaW4oKSBjb25zdCB7IHJldHVybiAqU2VjdXJpdHlDb250
ZXh0OjpzZWN1cml0eU9yaWdpbigpOyB9CiAgICAgU2VjdXJpdHlPcmlnaW4mIHRvcE9yaWdpbigp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRvcERvY3VtZW50KCkuc2VjdXJpdHlPcmlnaW4oKTsgfQog
Ci0gICAgYm9vbCBpc1NhbWVPcmlnaW5Bc1RvcERvY3VtZW50KCkgY29uc3QgeyByZXR1cm4gc2Vj
dXJpdHlPcmlnaW4oKS5pc1NhbWVPcmlnaW5Bcyh0b3BPcmlnaW4oKSk7IH0KKyAgICBpbmxpbmUg
Ym9vbCBpc1NhbWVPcmlnaW5Bc1RvcERvY3VtZW50KCkgY29uc3Q7CiAgICAgYm9vbCBzaG91bGRG
b3JjZU5vT3BlbmVyQmFzZWRPbkNPT1AoKSBjb25zdDsKIAogICAgIFdFQkNPUkVfRVhQT1JUIGNv
bnN0IENyb3NzT3JpZ2luT3BlbmVyUG9saWN5JiBjcm9zc09yaWdpbk9wZW5lclBvbGljeSgpIGNv
bnN0IGZpbmFsOwpAQCAtMTQwMiw5ICsxNDA4LDkgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgYWRkQXVkaW9Qcm9kdWNlcihNZWRpYVByb2R1Y2VyJik7CiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCByZW1vdmVBdWRpb1Byb2R1Y2VyKE1lZGlhUHJvZHVjZXImKTsKICAgICB2b2lk
IHNldEFjdGl2ZVNwZWVjaFJlY29nbml0aW9uKFNwZWVjaFJlY29nbml0aW9uKik7Ci0gICAgTWVk
aWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1lZGlhU3RhdGUoKSBjb25zdCB7IHJldHVybiBt
X21lZGlhU3RhdGU7IH0KKyAgICBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIG1lZGlhU3Rh
dGUoKSBjb25zdCB7IHJldHVybiBtX21lZGlhU3RhdGU7IH0KICAgICB2b2lkIG5vdGVVc2VySW50
ZXJhY3Rpb25XaXRoTWVkaWFFbGVtZW50KCk7Ci0gICAgYm9vbCBpc0NhcHR1cmluZygpIGNvbnN0
IHsgcmV0dXJuIE1lZGlhUHJvZHVjZXI6OmlzQ2FwdHVyaW5nKG1fbWVkaWFTdGF0ZSk7IH0KKyAg
ICBpbmxpbmUgYm9vbCBpc0NhcHR1cmluZygpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgdXBkYXRlSXNQbGF5aW5nTWVkaWEoKTsKICAgICB2b2lkIHBhZ2VNdXRlZFN0YXRlRGlkQ2hh
bmdlKCk7CiAKQEAgLTE0MTIsNyArMTQxOCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZFBsYXli
YWNrVGFyZ2V0UGlja2VyQ2xpZW50KE1lZGlhUGxheWJhY2tUYXJnZXRDbGllbnQmKTsKICAgICB2
b2lkIHJlbW92ZVBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KE1lZGlhUGxheWJhY2tUYXJnZXRD
bGllbnQmKTsKICAgICB2b2lkIHNob3dQbGF5YmFja1RhcmdldFBpY2tlcihNZWRpYVBsYXliYWNr
VGFyZ2V0Q2xpZW50JiwgYm9vbCwgUm91dGVTaGFyaW5nUG9saWN5LCBjb25zdCBTdHJpbmcmKTsK
LSAgICB2b2lkIHBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UoTWVkaWFQ
bGF5YmFja1RhcmdldENsaWVudCYsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyk7Cisg
ICAgdm9pZCBwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKE1lZGlhUGxh
eWJhY2tUYXJnZXRDbGllbnQmLCBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzKTsKIAogICAg
IHZvaWQgc2V0UGxheWJhY2tUYXJnZXQoUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRp
ZmllciwgUmVmPE1lZGlhUGxheWJhY2tUYXJnZXQ+JiYpOwogICAgIHZvaWQgcGxheWJhY2tUYXJn
ZXRBdmFpbGFiaWxpdHlEaWRDaGFuZ2UoUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRp
ZmllciwgYm9vbCk7CkBAIC0xNDUxLDcgKzE0NTcsNyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKICAgICB2b2lkIHNldEhhc0NhcHR1cmVNZWRpYVN0cmVhbVRyYWNrKCkgeyBt
X2hhc0hhZENhcHR1cmVNZWRpYVN0cmVhbVRyYWNrID0gdHJ1ZTsgfQogICAgIGJvb2wgaGFzSGFk
Q2FwdHVyZU1lZGlhU3RyZWFtVHJhY2soKSBjb25zdCB7IHJldHVybiBtX2hhc0hhZENhcHR1cmVN
ZWRpYVN0cmVhbVRyYWNrOyB9Ci0gICAgdm9pZCBzdG9wTWVkaWFDYXB0dXJlKE1lZGlhUHJvZHVj
ZXI6Ok1lZGlhQ2FwdHVyZUtpbmQpOworICAgIHZvaWQgc3RvcE1lZGlhQ2FwdHVyZShNZWRpYVBy
b2R1Y2VyTWVkaWFDYXB0dXJlS2luZCk7CiAgICAgdm9pZCBtZWRpYVN0cmVhbUNhcHR1cmVTdGF0
ZUNoYW5nZWQoKTsKICNlbmRpZgogCkBAIC0yMDYyLDE0ICsyMDY4LDE0IEBAIHByaXZhdGU6CiAg
ICAgdW5zaWduZWQgbV93cml0ZVJlY3Vyc2lvbkRlcHRoIHsgMCB9OwogCiAgICAgSW5oZXJpdGVk
Qm9vbCBtX2Rlc2lnbk1vZGUgeyBpbmhlcml0IH07Ci0gICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFT
dGF0ZUZsYWdzIG1fbWVkaWFTdGF0ZTsKKyAgICBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdz
IG1fbWVkaWFTdGF0ZTsKICAgICBib29sIG1fdXNlckhhc0ludGVyYWN0ZWRXaXRoTWVkaWFFbGVt
ZW50IHsgZmFsc2UgfTsKICAgICBCYWNrRm9yd2FyZENhY2hlU3RhdGUgbV9iYWNrRm9yd2FyZENh
Y2hlU3RhdGUgeyBOb3RJbkJhY2tGb3J3YXJkQ2FjaGUgfTsKICAgICBzdGQ6Om9wdGlvbmFsPFJl
ZmVycmVyUG9saWN5PiBtX3JlZmVycmVyUG9saWN5OwogICAgIFJlYWR5U3RhdGUgbV9yZWFkeVN0
YXRlIHsgQ29tcGxldGUgfTsKICAgICBDcm9zc09yaWdpbk9wZW5lclBvbGljeSBtX2Nyb3NzT3Jp
Z2luT3BlbmVyUG9saWN5OwogCi0gICAgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgbV9tdXRhdGlv
bk9ic2VydmVyVHlwZXMgeyAwIH07CisgICAgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgbV9tdXRh
dGlvbk9ic2VydmVyVHlwZXM7CiAKICAgICBib29sIG1fYWN0aXZlUGFyc2VyV2FzQWJvcnRlZCB7
IGZhbHNlIH07CiAgICAgYm9vbCBtX3dyaXRlUmVjdXJzaW9uSXNUb29EZWVwIHsgZmFsc2UgfTsK
QEAgLTIyMjksNDMgKzIyMzUsNiBAQCBwcml2YXRlOgogCiBFbGVtZW50KiBldmVudFRhcmdldEVs
ZW1lbnRGb3JEb2N1bWVudChEb2N1bWVudCopOwogCi1pbmxpbmUgVGV4dEVuY29kaW5nIERvY3Vt
ZW50Ojp0ZXh0RW5jb2RpbmcoKSBjb25zdAotewotICAgIGlmIChhdXRvKiBkZWNvZGVyID0gdGhp
cy0+ZGVjb2RlcigpKQotICAgICAgICByZXR1cm4gZGVjb2Rlci0+ZW5jb2RpbmcoKTsKLSAgICBy
ZXR1cm4gVGV4dEVuY29kaW5nKCk7Ci19Ci0KLWlubGluZSBjb25zdCBEb2N1bWVudCogRG9jdW1l
bnQ6OnRlbXBsYXRlRG9jdW1lbnQoKSBjb25zdAotewotICAgIHJldHVybiBtX3RlbXBsYXRlRG9j
dW1lbnRIb3N0ID8gdGhpcyA6IG1fdGVtcGxhdGVEb2N1bWVudC5nZXQoKTsKLX0KLQotaW5saW5l
IEFYT2JqZWN0Q2FjaGUqIERvY3VtZW50OjpleGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSBjb25zdAot
ewotICAgIGlmICghaGFzRXZlckNyZWF0ZWRBbkFYT2JqZWN0Q2FjaGUpCi0gICAgICAgIHJldHVy
biBudWxscHRyOwotICAgIHJldHVybiBleGlzdGluZ0FYT2JqZWN0Q2FjaGVTbG93KCk7Ci19Ci0K
LWlubGluZSBSZWY8RG9jdW1lbnQ+IERvY3VtZW50OjpjcmVhdGUoY29uc3QgU2V0dGluZ3MmIHNl
dHRpbmdzLCBjb25zdCBVUkwmIHVybCkKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEb2N1
bWVudChudWxscHRyLCBzZXR0aW5ncywgdXJsKSk7Ci19Ci0KLWlubGluZSB2b2lkIERvY3VtZW50
OjppbnZhbGlkYXRlQWNjZXNzS2V5Q2FjaGUoKQotewotICAgIGlmIChVTkxJS0VMWShtX2FjY2Vz
c0tleUNhY2hlKSkKLSAgICAgICAgaW52YWxpZGF0ZUFjY2Vzc0tleUNhY2hlU2xvd0Nhc2UoKTsK
LX0KLQotLy8gVGhlc2UgZnVuY3Rpb25zIGFyZSBoZXJlIGJlY2F1c2UgdGhleSByZXF1aXJlIHRo
ZSBEb2N1bWVudCBjbGFzcyBkZWZpbml0aW9uIGFuZCB3ZSB3YW50IHRvIGlubGluZSB0aGVtLgot
Ci1pbmxpbmUgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogTm9kZTo6c2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuICZkb2N1bWVudCgpLmNvbnRleHREb2N1bWVudCgp
OwotfQotCiBXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgY29u
c3QgRG9jdW1lbnQmKTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50SW5saW5lcy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50SW5saW5lcy5oCmluZGV4IDQwYWRkMDRlNmEwZmE2YWQyZTM0NGYwZDdlYTdhNGIxMzg3
MThmM2UuLmRkMjUwYWUyYzg4OWRlYjJiNjIwN2MwZDI0OThiNTZjMTE2Y2ZlMWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudElubGluZXMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnRJbmxpbmVzLmgKQEAgLTI2LDYgKzI2LDkgQEAKICNwcmFnbWEgb25j
ZQogCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJNZWRpYVByb2R1Y2VyLmgiCisj
aW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRlICJUZXh0UmVzb3VyY2VEZWNvZGVy
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzYsNiArMzksMTAgQEAgaW5saW5lIFRl
eHRFbmNvZGluZyBEb2N1bWVudDo6dGV4dEVuY29kaW5nKCkgY29uc3QKICAgICByZXR1cm4gVGV4
dEVuY29kaW5nKCk7CiB9CiAKK2lubGluZSBBdG9tU3RyaW5nIERvY3VtZW50OjplbmNvZGluZygp
IGNvbnN0IHsgcmV0dXJuIHRleHRFbmNvZGluZygpLmRvbU5hbWUoKTsgfQorCitpbmxpbmUgU3Ry
aW5nIERvY3VtZW50OjpjaGFyc2V0KCkgY29uc3QgeyByZXR1cm4gRG9jdW1lbnQ6OmVuY29kaW5n
KCk7IH0KKwogaW5saW5lIGNvbnN0IERvY3VtZW50KiBEb2N1bWVudDo6dGVtcGxhdGVEb2N1bWVu
dCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fdGVtcGxhdGVEb2N1bWVudEhvc3QgPyB0aGlzIDog
bV90ZW1wbGF0ZURvY3VtZW50LmdldCgpOwpAQCAtNTksNiArNjYsMTkgQEAgaW5saW5lIHZvaWQg
RG9jdW1lbnQ6OmludmFsaWRhdGVBY2Nlc3NLZXlDYWNoZSgpCiAgICAgICAgIGludmFsaWRhdGVB
Y2Nlc3NLZXlDYWNoZVNsb3dDYXNlKCk7CiB9CiAKK2lubGluZSBib29sIERvY3VtZW50Ojppc0Nh
cHR1cmluZygpIGNvbnN0Cit7CisgICAgcmV0dXJuIE1lZGlhUHJvZHVjZXI6OmlzQ2FwdHVyaW5n
KG1fbWVkaWFTdGF0ZSk7Cit9CisKK2lubGluZSBib29sIERvY3VtZW50OjpoYXNNdXRhdGlvbk9i
c2VydmVyc09mVHlwZShNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZSB0eXBlKSBjb25zdAorewor
ICAgIHJldHVybiBtX211dGF0aW9uT2JzZXJ2ZXJUeXBlcy5jb250YWluc0FueSh0eXBlKTsKK30K
KworaW5saW5lIGJvb2wgRG9jdW1lbnQ6OmlzU2FtZU9yaWdpbkFzVG9wRG9jdW1lbnQoKSBjb25z
dCB7IHJldHVybiBzZWN1cml0eU9yaWdpbigpLmlzU2FtZU9yaWdpbkFzKHRvcE9yaWdpbigpKTsg
fQorCisKIC8vIFRoZXNlIGZ1bmN0aW9ucyBhcmUgaGVyZSBiZWNhdXNlIHRoZXkgcmVxdWlyZSB0
aGUgRG9jdW1lbnQgY2xhc3MgZGVmaW5pdGlvbiBhbmQgd2Ugd2FudCB0byBpbmxpbmUgdGhlbS4K
IAogaW5saW5lIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIE5vZGU6OnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDRjMGVmZmM1YmNkNDJiZjI5
NTJiMTkyZTQxMjQwNTZhMDM4NTMyZTAuLjdiMzdkMGQ4YmMxMDBiZTIyZGM4Zjk1YjUzN2NhYTBh
MjI2MDkxNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNs
dWRlICJET01SZWN0TGlzdC5oIgogI2luY2x1ZGUgIkRPTVRva2VuTGlzdC5oIgogI2luY2x1ZGUg
IkRPTVdpbmRvdy5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkRv
Y3VtZW50U2hhcmVkT2JqZWN0UG9vbC5oIgogI2luY2x1ZGUgIkRvY3VtZW50VGltZWxpbmUuaCIK
ICNpbmNsdWRlICJFZGl0aW5nLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0
YXRpb25PYnNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5j
cHAKaW5kZXggNDc2ZjhkYWI5YjY1MTYxODg5ZWY5ZTgwYmI0NThjYjY2ZGVmNGRiNS4uNjUwNWRj
OWFiMmVmYjZiNjRmNDMxOGRlYzk5NzZhZTg4NjAwMTI3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9N
dXRhdGlvbk9ic2VydmVyLmNwcApAQCAtNzEsMzcgKzcxLDM3IEBAIE11dGF0aW9uT2JzZXJ2ZXI6
On5NdXRhdGlvbk9ic2VydmVyKCkKIAogYm9vbCBNdXRhdGlvbk9ic2VydmVyOjp2YWxpZGF0ZU9w
dGlvbnMoTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgb3B0aW9ucykKIHsKLSAgICByZXR1cm4gKG9w
dGlvbnMgJiAoQXR0cmlidXRlcyB8IENoYXJhY3RlckRhdGEgfCBDaGlsZExpc3QpKQotICAgICAg
ICAmJiAoKG9wdGlvbnMgJiBBdHRyaWJ1dGVzKSB8fCAhKG9wdGlvbnMgJiBBdHRyaWJ1dGVPbGRW
YWx1ZSkpCi0gICAgICAgICYmICgob3B0aW9ucyAmIEF0dHJpYnV0ZXMpIHx8ICEob3B0aW9ucyAm
IEF0dHJpYnV0ZUZpbHRlcikpCi0gICAgICAgICYmICgob3B0aW9ucyAmIENoYXJhY3RlckRhdGEp
IHx8ICEob3B0aW9ucyAmIENoYXJhY3RlckRhdGFPbGRWYWx1ZSkpOworICAgIHJldHVybiBvcHRp
b25zLmNvbnRhaW5zQW55KEFsbE11dGF0aW9uVHlwZXMpCisgICAgICAgICYmIChvcHRpb25zLmNv
bnRhaW5zKE9wdGlvblR5cGU6OkF0dHJpYnV0ZXMpIHx8ICFvcHRpb25zLmNvbnRhaW5zKE9wdGlv
blR5cGU6OkF0dHJpYnV0ZU9sZFZhbHVlKSkKKyAgICAgICAgJiYgKG9wdGlvbnMuY29udGFpbnMo
T3B0aW9uVHlwZTo6QXR0cmlidXRlcykgfHwgIW9wdGlvbnMuY29udGFpbnMoT3B0aW9uVHlwZTo6
QXR0cmlidXRlRmlsdGVyKSkKKyAgICAgICAgJiYgKG9wdGlvbnMuY29udGFpbnMoT3B0aW9uVHlw
ZTo6Q2hhcmFjdGVyRGF0YSkgfHwgIW9wdGlvbnMuY29udGFpbnMoT3B0aW9uVHlwZTo6Q2hhcmFj
dGVyRGF0YU9sZFZhbHVlKSk7CiB9CiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IE11dGF0aW9uT2JzZXJ2
ZXI6Om9ic2VydmUoTm9kZSYgbm9kZSwgY29uc3QgSW5pdCYgaW5pdCkKIHsKLSAgICBNdXRhdGlv
bk9ic2VydmVyT3B0aW9ucyBvcHRpb25zID0gMDsKKyAgICBNdXRhdGlvbk9ic2VydmVyT3B0aW9u
cyBvcHRpb25zOwogCiAgICAgaWYgKGluaXQuY2hpbGRMaXN0KQotICAgICAgICBvcHRpb25zIHw9
IENoaWxkTGlzdDsKKyAgICAgICAgb3B0aW9ucy5hZGQoT3B0aW9uVHlwZTo6Q2hpbGRMaXN0KTsK
ICAgICBpZiAoaW5pdC5zdWJ0cmVlKQotICAgICAgICBvcHRpb25zIHw9IFN1YnRyZWU7CisgICAg
ICAgIG9wdGlvbnMuYWRkKE9wdGlvblR5cGU6OlN1YnRyZWUpOwogICAgIGlmIChpbml0LmF0dHJp
YnV0ZU9sZFZhbHVlLnZhbHVlX29yKGZhbHNlKSkKLSAgICAgICAgb3B0aW9ucyB8PSBBdHRyaWJ1
dGVPbGRWYWx1ZTsKKyAgICAgICAgb3B0aW9ucy5hZGQoT3B0aW9uVHlwZTo6QXR0cmlidXRlT2xk
VmFsdWUpOwogICAgIGlmIChpbml0LmNoYXJhY3RlckRhdGFPbGRWYWx1ZS52YWx1ZV9vcihmYWxz
ZSkpCi0gICAgICAgIG9wdGlvbnMgfD0gQ2hhcmFjdGVyRGF0YU9sZFZhbHVlOworICAgICAgICBv
cHRpb25zLmFkZChPcHRpb25UeXBlOjpDaGFyYWN0ZXJEYXRhT2xkVmFsdWUpOwogCiAgICAgSGFz
aFNldDxBdG9tU3RyaW5nPiBhdHRyaWJ1dGVGaWx0ZXI7CiAgICAgaWYgKGluaXQuYXR0cmlidXRl
RmlsdGVyKSB7CiAgICAgICAgIGZvciAoYXV0byYgdmFsdWUgOiBpbml0LmF0dHJpYnV0ZUZpbHRl
ci52YWx1ZSgpKQogICAgICAgICAgICAgYXR0cmlidXRlRmlsdGVyLmFkZCh2YWx1ZSk7Ci0gICAg
ICAgIG9wdGlvbnMgfD0gQXR0cmlidXRlRmlsdGVyOworICAgICAgICBvcHRpb25zLmFkZChPcHRp
b25UeXBlOjpBdHRyaWJ1dGVGaWx0ZXIpOwogICAgIH0KIAotICAgIGlmIChpbml0LmF0dHJpYnV0
ZXMgPyBpbml0LmF0dHJpYnV0ZXMudmFsdWUoKSA6IChvcHRpb25zICYgKEF0dHJpYnV0ZUZpbHRl
ciB8IEF0dHJpYnV0ZU9sZFZhbHVlKSkpCi0gICAgICAgIG9wdGlvbnMgfD0gQXR0cmlidXRlczsK
KyAgICBpZiAoaW5pdC5hdHRyaWJ1dGVzID8gaW5pdC5hdHRyaWJ1dGVzLnZhbHVlKCkgOiBvcHRp
b25zLmNvbnRhaW5zQW55KHsgT3B0aW9uVHlwZTo6QXR0cmlidXRlRmlsdGVyLCBPcHRpb25UeXBl
OjpBdHRyaWJ1dGVPbGRWYWx1ZSB9KSkKKyAgICAgICAgb3B0aW9ucy5hZGQoT3B0aW9uVHlwZTo6
QXR0cmlidXRlcyk7CiAKLSAgICBpZiAoaW5pdC5jaGFyYWN0ZXJEYXRhID8gaW5pdC5jaGFyYWN0
ZXJEYXRhLnZhbHVlKCkgOiAob3B0aW9ucyAmIENoYXJhY3RlckRhdGFPbGRWYWx1ZSkpCi0gICAg
ICAgIG9wdGlvbnMgfD0gQ2hhcmFjdGVyRGF0YTsKKyAgICBpZiAoaW5pdC5jaGFyYWN0ZXJEYXRh
ID8gaW5pdC5jaGFyYWN0ZXJEYXRhLnZhbHVlKCkgOiBvcHRpb25zLmNvbnRhaW5zKE9wdGlvblR5
cGU6OkNoYXJhY3RlckRhdGFPbGRWYWx1ZSkpCisgICAgICAgIG9wdGlvbnMuYWRkKE9wdGlvblR5
cGU6OkNoYXJhY3RlckRhdGEpOwogCiAgICAgaWYgKCF2YWxpZGF0ZU9wdGlvbnMob3B0aW9ucykp
CiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IgfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
TXV0YXRpb25PYnNlcnZlci5oCmluZGV4IDJhZjI2M2JkNGE3MjU0YTIwYTNiOTM1MzE3Yjc5Njkx
YWY0Y2M3ZGEuLjA0YWYwMDRhOWUwOTVlZmVlZWMxZjYxMGU1MjhiNDZlNjBmNWU3ZjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuaApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1
ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3
dGYvSXNvTWFsbG9jLmg+CisjaW5jbHVkZSA8d3RmL09wdGlvblNldC5oPgogI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvV2Vha0hhc2hTZXQuaD4KIApAQCAtNTMsMzAgKzU0
LDI3IEBAIGNsYXNzIE11dGF0aW9uUmVjb3JkOwogY2xhc3MgTm9kZTsKIGNsYXNzIFdpbmRvd0V2
ZW50TG9vcDsKIAotdXNpbmcgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgPSB1bnNpZ25lZCBjaGFy
OwotdXNpbmcgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnMgPSB1bnNpZ25lZCBjaGFyOwor
ZW51bSBjbGFzcyBNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZSA6IHVpbnQ4X3QgeworICAgIC8v
IE11dGF0aW9uVHlwZQorICAgIENoaWxkTGlzdCA9IDEgPDwgMCwKKyAgICBBdHRyaWJ1dGVzID0g
MSA8PCAxLAorICAgIENoYXJhY3RlckRhdGEgPSAxIDw8IDIsCiAKLWNsYXNzIE11dGF0aW9uT2Jz
ZXJ2ZXIgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxNdXRhdGlvbk9ic2VydmVyPiB7Ci0gICAg
V1RGX01BS0VfSVNPX0FMTE9DQVRFRChNdXRhdGlvbk9ic2VydmVyKTsKLXB1YmxpYzoKLSAgICBl
bnVtIE11dGF0aW9uVHlwZSB7Ci0gICAgICAgIENoaWxkTGlzdCA9IDEgPDwgMCwKLSAgICAgICAg
QXR0cmlidXRlcyA9IDEgPDwgMSwKLSAgICAgICAgQ2hhcmFjdGVyRGF0YSA9IDEgPDwgMiwKKyAg
ICAvLyBPYnNlcnZhdGlvbkZsYWdzCisgICAgU3VidHJlZSA9IDEgPDwgMywKKyAgICBBdHRyaWJ1
dGVGaWx0ZXIgPSAxIDw8IDQsCiAKLSAgICAgICAgQWxsTXV0YXRpb25UeXBlcyA9IENoaWxkTGlz
dCB8IEF0dHJpYnV0ZXMgfCBDaGFyYWN0ZXJEYXRhCi0gICAgfTsKKyAgICAvLyBEZWxpdmVyeUZs
YWdzCisgICAgQXR0cmlidXRlT2xkVmFsdWUgPSAxIDw8IDUsCisgICAgQ2hhcmFjdGVyRGF0YU9s
ZFZhbHVlID0gMSA8PCA2LAorfTsKIAotICAgIGVudW0gT2JzZXJ2YXRpb25GbGFncyAgewotICAg
ICAgICBTdWJ0cmVlID0gMSA8PCAzLAotICAgICAgICBBdHRyaWJ1dGVGaWx0ZXIgPSAxIDw8IDQK
LSAgICB9OwotCi0gICAgZW51bSBEZWxpdmVyeUZsYWdzIHsKLSAgICAgICAgQXR0cmlidXRlT2xk
VmFsdWUgPSAxIDw8IDUsCi0gICAgICAgIENoYXJhY3RlckRhdGFPbGRWYWx1ZSA9IDEgPDwgNiwK
LSAgICB9OwordXNpbmcgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgPSBPcHRpb25TZXQ8TXV0YXRp
b25PYnNlcnZlck9wdGlvblR5cGU+OwordXNpbmcgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlv
bnMgPSBPcHRpb25TZXQ8TXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGU+OwogCitjbGFzcyBNdXRh
dGlvbk9ic2VydmVyIGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8TXV0YXRpb25PYnNlcnZlcj4g
eworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoTXV0YXRpb25PYnNlcnZlcik7CitwdWJsaWM6
CiAgICAgc3RhdGljIFJlZjxNdXRhdGlvbk9ic2VydmVyPiBjcmVhdGUoUmVmPE11dGF0aW9uQ2Fs
bGJhY2s+JiYpOwogCiAgICAgfk11dGF0aW9uT2JzZXJ2ZXIoKTsKQEAgLTExNCw2ICsxMTIsMTEg
QEAgcHVibGljOgogCiAgICAgc3RhdGljIHZvaWQgbm90aWZ5TXV0YXRpb25PYnNlcnZlcnMoV2lu
ZG93RXZlbnRMb29wJik7CiAKKyAgICB1c2luZyBPcHRpb25UeXBlID0gTXV0YXRpb25PYnNlcnZl
ck9wdGlvblR5cGU7CisKKyAgICBzdGF0aWMgY29uc3RleHByIE11dGF0aW9uT2JzZXJ2ZXJPcHRp
b25zIEFsbE11dGF0aW9uVHlwZXMgeyBPcHRpb25UeXBlOjpDaGlsZExpc3QsIE9wdGlvblR5cGU6
OkF0dHJpYnV0ZXMsIE9wdGlvblR5cGU6OkNoYXJhY3RlckRhdGEgfTsKKyAgICBzdGF0aWMgY29u
c3RleHByIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zIEFsbERlbGl2ZXJ5RmxhZ3MgeyBPcHRpb25U
eXBlOjpBdHRyaWJ1dGVPbGRWYWx1ZSwgT3B0aW9uVHlwZTo6Q2hhcmFjdGVyRGF0YU9sZFZhbHVl
IH07CisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgTXV0YXRpb25PYnNlcnZlcihSZWY8TXV0YXRp
b25DYWxsYmFjaz4mJik7CiAgICAgdm9pZCBkZWxpdmVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXAuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmNwcAppbmRleCAwMjc2ZTQy
YmU1YmQ4M2ZmNDJhNzkzNTZiZGU5Y2U3MzYwOTljYmRlLi4yYWVjNjUyOTBjMzg0NzcyMjZhMGYw
ODgyMmZmYTM3YzVkZjdiMGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRp
b25PYnNlcnZlckludGVyZXN0R3JvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRh
dGlvbk9ic2VydmVySW50ZXJlc3RHcm91cC5jcHAKQEAgLTQ0LDkgKzQ0LDkgQEAgaW5saW5lIE11
dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwOjpNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91
cChIYXNoTWFwPFJlZjwKICAgICBBU1NFUlQoIW1fb2JzZXJ2ZXJzLmlzRW1wdHkoKSk7CiB9CiAK
LXN0ZDo6dW5pcXVlX3B0cjxNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cD4gTXV0YXRpb25P
YnNlcnZlckludGVyZXN0R3JvdXA6OmNyZWF0ZUlmTmVlZGVkKE5vZGUmIHRhcmdldCwgTXV0YXRp
b25PYnNlcnZlcjo6TXV0YXRpb25UeXBlIHR5cGUsIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRp
b25zIG9sZFZhbHVlRmxhZywgY29uc3QgUXVhbGlmaWVkTmFtZSogYXR0cmlidXRlTmFtZSkKK3N0
ZDo6dW5pcXVlX3B0cjxNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cD4gTXV0YXRpb25PYnNl
cnZlckludGVyZXN0R3JvdXA6OmNyZWF0ZUlmTmVlZGVkKE5vZGUmIHRhcmdldCwgTXV0YXRpb25P
YnNlcnZlck9wdGlvblR5cGUgdHlwZSwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnMgb2xk
VmFsdWVGbGFnLCBjb25zdCBRdWFsaWZpZWROYW1lKiBhdHRyaWJ1dGVOYW1lKQogewotICAgIEFT
U0VSVCgodHlwZSA9PSBNdXRhdGlvbk9ic2VydmVyOjpBdHRyaWJ1dGVzICYmIGF0dHJpYnV0ZU5h
bWUpIHx8ICFhdHRyaWJ1dGVOYW1lKTsKKyAgICBBU1NFUlQoKHR5cGUgPT0gTXV0YXRpb25PYnNl
cnZlck9wdGlvblR5cGU6OkF0dHJpYnV0ZXMgJiYgYXR0cmlidXRlTmFtZSkgfHwgIWF0dHJpYnV0
ZU5hbWUpOwogICAgIGF1dG8gb2JzZXJ2ZXJzID0gdGFyZ2V0LnJlZ2lzdGVyZWRNdXRhdGlvbk9i
c2VydmVycyh0eXBlLCBhdHRyaWJ1dGVOYW1lKTsKICAgICBpZiAob2JzZXJ2ZXJzLmlzRW1wdHko
KSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXAuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9N
dXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cC5oCmluZGV4IDNjMGFlNTIzN2Q0YjJlMmVmZjcw
ZGRlNjYyZTVmNGUxZTU2OTI2YWQuLjJmNDZjODFlOGU1ZTg5MzBmZmNjYzFkYjg0ZGE4MGJjYTkw
NDFiOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVySW50
ZXJlc3RHcm91cC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVySW50
ZXJlc3RHcm91cC5oCkBAIC0zMCw3ICszMCw3IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVk
ZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJN
dXRhdGlvbk9ic2VydmVyLmgiCiAjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHd0Zi9IYXNo
TWFwLmg+CkBAIC00NiwzNiArNDYsMzYgQEAgcHVibGljOgogCiAgICAgc3RhdGljIHN0ZDo6dW5p
cXVlX3B0cjxNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cD4gY3JlYXRlRm9yQ2hpbGRMaXN0
TXV0YXRpb24oTm9kZSYgdGFyZ2V0KQogICAgIHsKLSAgICAgICAgaWYgKCF0YXJnZXQuZG9jdW1l
bnQoKS5oYXNNdXRhdGlvbk9ic2VydmVyc09mVHlwZShNdXRhdGlvbk9ic2VydmVyOjpDaGlsZExp
c3QpKQorICAgICAgICBpZiAoIXRhcmdldC5kb2N1bWVudCgpLmhhc011dGF0aW9uT2JzZXJ2ZXJz
T2ZUeXBlKE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlOjpDaGlsZExpc3QpKQogICAgICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICAgICAgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlv
bnMgb2xkVmFsdWVGbGFnID0gMDsKLSAgICAgICAgcmV0dXJuIGNyZWF0ZUlmTmVlZGVkKHRhcmdl
dCwgTXV0YXRpb25PYnNlcnZlcjo6Q2hpbGRMaXN0LCBvbGRWYWx1ZUZsYWcpOworICAgICAgICBN
dXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucyBvbGRWYWx1ZUZsYWc7CisgICAgICAgIHJldHVy
biBjcmVhdGVJZk5lZWRlZCh0YXJnZXQsIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlOjpDaGls
ZExpc3QsIG9sZFZhbHVlRmxhZyk7CiAgICAgfQogCiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0
cjxNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cD4gY3JlYXRlRm9yQ2hhcmFjdGVyRGF0YU11
dGF0aW9uKE5vZGUmIHRhcmdldCkKICAgICB7Ci0gICAgICAgIGlmICghdGFyZ2V0LmRvY3VtZW50
KCkuaGFzTXV0YXRpb25PYnNlcnZlcnNPZlR5cGUoTXV0YXRpb25PYnNlcnZlcjo6Q2hhcmFjdGVy
RGF0YSkpCisgICAgICAgIGlmICghdGFyZ2V0LmRvY3VtZW50KCkuaGFzTXV0YXRpb25PYnNlcnZl
cnNPZlR5cGUoTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGU6OkNoYXJhY3RlckRhdGEpKQogICAg
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICAgICAgcmV0dXJuIGNyZWF0ZUlmTmVlZGVk
KHRhcmdldCwgTXV0YXRpb25PYnNlcnZlcjo6Q2hhcmFjdGVyRGF0YSwgTXV0YXRpb25PYnNlcnZl
cjo6Q2hhcmFjdGVyRGF0YU9sZFZhbHVlKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZUlmTmVlZGVk
KHRhcmdldCwgTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGU6OkNoYXJhY3RlckRhdGEsIE11dGF0
aW9uT2JzZXJ2ZXJPcHRpb25UeXBlOjpDaGFyYWN0ZXJEYXRhT2xkVmFsdWUpOwogICAgIH0KIAog
ICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXA+
IGNyZWF0ZUZvckF0dHJpYnV0ZXNNdXRhdGlvbihOb2RlJiB0YXJnZXQsIGNvbnN0IFF1YWxpZmll
ZE5hbWUmIGF0dHJpYnV0ZU5hbWUpCiAgICAgewotICAgICAgICBpZiAoIXRhcmdldC5kb2N1bWVu
dCgpLmhhc011dGF0aW9uT2JzZXJ2ZXJzT2ZUeXBlKE11dGF0aW9uT2JzZXJ2ZXI6OkF0dHJpYnV0
ZXMpKQorICAgICAgICBpZiAoIXRhcmdldC5kb2N1bWVudCgpLmhhc011dGF0aW9uT2JzZXJ2ZXJz
T2ZUeXBlKE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlOjpBdHRyaWJ1dGVzKSkKICAgICAgICAg
ICAgIHJldHVybiBudWxscHRyOwogCi0gICAgICAgIHJldHVybiBjcmVhdGVJZk5lZWRlZCh0YXJn
ZXQsIE11dGF0aW9uT2JzZXJ2ZXI6OkF0dHJpYnV0ZXMsIE11dGF0aW9uT2JzZXJ2ZXI6OkF0dHJp
YnV0ZU9sZFZhbHVlLCAmYXR0cmlidXRlTmFtZSk7CisgICAgICAgIHJldHVybiBjcmVhdGVJZk5l
ZWRlZCh0YXJnZXQsIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlOjpBdHRyaWJ1dGVzLCBNdXRh
dGlvbk9ic2VydmVyT3B0aW9uVHlwZTo6QXR0cmlidXRlT2xkVmFsdWUsICZhdHRyaWJ1dGVOYW1l
KTsKICAgICB9CiAKICAgICBib29sIGlzT2xkVmFsdWVSZXF1ZXN0ZWQoKSBjb25zdDsKICAgICB2
b2lkIGVucXVldWVNdXRhdGlvblJlY29yZChSZWY8TXV0YXRpb25SZWNvcmQ+JiYpOwogCiBwcml2
YXRlOgotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TXV0YXRpb25PYnNlcnZlckludGVyZXN0
R3JvdXA+IGNyZWF0ZUlmTmVlZGVkKE5vZGUmIHRhcmdldCwgTXV0YXRpb25PYnNlcnZlcjo6TXV0
YXRpb25UeXBlLCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucyBvbGRWYWx1ZUZsYWcsIGNv
bnN0IFF1YWxpZmllZE5hbWUqIGF0dHJpYnV0ZU5hbWUgPSBudWxscHRyKTsKKyAgICBzdGF0aWMg
c3RkOjp1bmlxdWVfcHRyPE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwPiBjcmVhdGVJZk5l
ZWRlZChOb2RlJiB0YXJnZXQsIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlLCBNdXRhdGlvblJl
Y29yZERlbGl2ZXJ5T3B0aW9ucyBvbGRWYWx1ZUZsYWcsIGNvbnN0IFF1YWxpZmllZE5hbWUqIGF0
dHJpYnV0ZU5hbWUgPSBudWxscHRyKTsKIAotICAgIGJvb2wgaGFzT2xkVmFsdWUoTXV0YXRpb25S
ZWNvcmREZWxpdmVyeU9wdGlvbnMgb3B0aW9ucykgY29uc3QgeyByZXR1cm4gb3B0aW9ucyAmIG1f
b2xkVmFsdWVGbGFnOyB9CisgICAgYm9vbCBoYXNPbGRWYWx1ZShNdXRhdGlvblJlY29yZERlbGl2
ZXJ5T3B0aW9ucyBvcHRpb25zKSBjb25zdCB7IHJldHVybiBvcHRpb25zLmNvbnRhaW5zQW55KG1f
b2xkVmFsdWVGbGFnKTsgfQogCiAgICAgSGFzaE1hcDxSZWY8TXV0YXRpb25PYnNlcnZlcj4sIE11
dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zPiBtX29ic2VydmVyczsKICAgICBNdXRhdGlvblJl
Y29yZERlbGl2ZXJ5T3B0aW9ucyBtX29sZFZhbHVlRmxhZzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmNwcAppbmRleCBjNmYxZmIxNWRm
ZjhkNWViZmYyZjVjNWI3YjdlZGUzYWUzZDBlYjc5Li5kM2MxZmE2NmVkMmY1NTQ3ZjBiODA5YzY5
MDdiYjQ1YzRmOWY1NGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25P
YnNlcnZlclJlZ2lzdHJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9u
T2JzZXJ2ZXJSZWdpc3RyYXRpb24uY3BwCkBAIC05NSwxNiArOTUsMTYgQEAgc3RkOjp1bmlxdWVf
cHRyPEhhc2hTZXQ8R0NSZWFjaGFibGVSZWY8Tm9kZT4+PiBNdXRhdGlvbk9ic2VydmVyUmVnaXN0
cmF0aW9uOjp0YWsKICAgICByZXR1cm4gcmV0dXJuVmFsdWU7CiB9CiAKLWJvb2wgTXV0YXRpb25P
YnNlcnZlclJlZ2lzdHJhdGlvbjo6c2hvdWxkUmVjZWl2ZU11dGF0aW9uRnJvbShOb2RlJiBub2Rl
LCBNdXRhdGlvbk9ic2VydmVyOjpNdXRhdGlvblR5cGUgdHlwZSwgY29uc3QgUXVhbGlmaWVkTmFt
ZSogYXR0cmlidXRlTmFtZSkgY29uc3QKK2Jvb2wgTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlv
bjo6c2hvdWxkUmVjZWl2ZU11dGF0aW9uRnJvbShOb2RlJiBub2RlLCBNdXRhdGlvbk9ic2VydmVy
T3B0aW9uVHlwZSB0eXBlLCBjb25zdCBRdWFsaWZpZWROYW1lKiBhdHRyaWJ1dGVOYW1lKSBjb25z
dAogewotICAgIEFTU0VSVCgodHlwZSA9PSBNdXRhdGlvbk9ic2VydmVyOjpBdHRyaWJ1dGVzICYm
IGF0dHJpYnV0ZU5hbWUpIHx8ICFhdHRyaWJ1dGVOYW1lKTsKLSAgICBpZiAoIShtX29wdGlvbnMg
JiB0eXBlKSkKKyAgICBBU1NFUlQoKHR5cGUgPT0gTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGU6
OkF0dHJpYnV0ZXMgJiYgYXR0cmlidXRlTmFtZSkgfHwgIWF0dHJpYnV0ZU5hbWUpOworICAgIGlm
ICghbV9vcHRpb25zLmNvbnRhaW5zKHR5cGUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAg
ICBpZiAoJm1fbm9kZSAhPSAmbm9kZSAmJiAhaXNTdWJ0cmVlKCkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAotICAgIGlmICh0eXBlICE9IE11dGF0aW9uT2JzZXJ2ZXI6OkF0dHJpYnV0ZXMgfHwg
IShtX29wdGlvbnMgJiBNdXRhdGlvbk9ic2VydmVyOjpBdHRyaWJ1dGVGaWx0ZXIpKQorICAgIGlm
ICh0eXBlICE9IE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlOjpBdHRyaWJ1dGVzIHx8ICFtX29w
dGlvbnMuY29udGFpbnMoTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGU6OkF0dHJpYnV0ZUZpbHRl
cikpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgaWYgKCFhdHRyaWJ1dGVOYW1lLT5uYW1l
c3BhY2VVUkkoKS5pc051bGwoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRh
dGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25P
YnNlcnZlclJlZ2lzdHJhdGlvbi5oCmluZGV4IDMxMTA4NDE4ZjFlZDU2NGZhYjk1Yjk2ZmM4YTBj
ZmRhNTM1M2YzZWIuLjc1YmIyN2MzNTE0MDJmNThmNGU3ODQ5NjU2MzBhYmI4ZTI5YjUxYjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9u
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24u
aApAQCAtNTYsMTIgKzU2LDEyIEBAIHB1YmxpYzoKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SGFzaFNl
dDxHQ1JlYWNoYWJsZVJlZjxOb2RlPj4+IHRha2VUcmFuc2llbnRSZWdpc3RyYXRpb25zKCk7CiAg
ICAgYm9vbCBoYXNUcmFuc2llbnRSZWdpc3RyYXRpb25zKCkgY29uc3QgeyByZXR1cm4gbV90cmFu
c2llbnRSZWdpc3RyYXRpb25Ob2RlcyAmJiAhbV90cmFuc2llbnRSZWdpc3RyYXRpb25Ob2Rlcy0+
aXNFbXB0eSgpOyB9CiAKLSAgICBib29sIHNob3VsZFJlY2VpdmVNdXRhdGlvbkZyb20oTm9kZSYs
IE11dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0aW9uVHlwZSwgY29uc3QgUXVhbGlmaWVkTmFtZSogYXR0
cmlidXRlTmFtZSkgY29uc3Q7Ci0gICAgYm9vbCBpc1N1YnRyZWUoKSBjb25zdCB7IHJldHVybiBt
X29wdGlvbnMgJiBNdXRhdGlvbk9ic2VydmVyOjpTdWJ0cmVlOyB9CisgICAgYm9vbCBzaG91bGRS
ZWNlaXZlTXV0YXRpb25Gcm9tKE5vZGUmLCBNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZSwgY29u
c3QgUXVhbGlmaWVkTmFtZSogYXR0cmlidXRlTmFtZSkgY29uc3Q7CisgICAgYm9vbCBpc1N1YnRy
ZWUoKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnMuY29udGFpbnMoTXV0YXRpb25PYnNlcnZlck9w
dGlvblR5cGU6OlN1YnRyZWUpOyB9CiAKICAgICBNdXRhdGlvbk9ic2VydmVyJiBvYnNlcnZlcigp
IHsgcmV0dXJuIG1fb2JzZXJ2ZXIuZ2V0KCk7IH0KICAgICBOb2RlJiBub2RlKCkgeyByZXR1cm4g
bV9ub2RlOyB9Ci0gICAgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnMgZGVsaXZlcnlPcHRp
b25zKCkgY29uc3QgeyByZXR1cm4gbV9vcHRpb25zICYgKE11dGF0aW9uT2JzZXJ2ZXI6OkF0dHJp
YnV0ZU9sZFZhbHVlIHwgTXV0YXRpb25PYnNlcnZlcjo6Q2hhcmFjdGVyRGF0YU9sZFZhbHVlKTsg
fQorICAgIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zIGRlbGl2ZXJ5T3B0aW9ucygpIGNv
bnN0IHsgcmV0dXJuIG1fb3B0aW9ucyAmIE11dGF0aW9uT2JzZXJ2ZXI6OkFsbERlbGl2ZXJ5Rmxh
Z3M7IH0KICAgICBNdXRhdGlvbk9ic2VydmVyT3B0aW9ucyBtdXRhdGlvblR5cGVzKCkgY29uc3Qg
eyByZXR1cm4gbV9vcHRpb25zICYgTXV0YXRpb25PYnNlcnZlcjo6QWxsTXV0YXRpb25UeXBlczsg
fQogCiAgICAgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkFic3RyYWN0U2xv
dFZpc2l0b3ImKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRleCBhNmYxOTgzNmE5YmRkNTE2NmY4
ODBjZTYwNjQzMmRjMDYxZWM0M2FmLi5lNTM1MTQ3MTA4ZmNmYWUzNGUzNzc0ZjdkN2JmOTM0MjQ1
MTA5MzRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiQ29u
dGV4dE1lbnVDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCiAjaW5jbHVkZSAi
RGF0YVRyYW5zZmVyLmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAi
RG9jdW1lbnRUeXBlLmgiCiAjaW5jbHVkZSAiRWxlbWVudEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAi
RWxlbWVudFJhcmVEYXRhLmgiCkBAIC0yMjgyLDcgKzIyODMsNyBAQCBIYXNoU2V0PE11dGF0aW9u
T2JzZXJ2ZXJSZWdpc3RyYXRpb24qPiogTm9kZTo6dHJhbnNpZW50TXV0YXRpb25PYnNlcnZlclJl
Z2lzdHJ5KAogICAgIHJldHVybiAmZGF0YS0+dHJhbnNpZW50UmVnaXN0cnk7CiB9CiAKLXRlbXBs
YXRlPHR5cGVuYW1lIFJlZ2lzdHJ5PiBzdGF0aWMgaW5saW5lIHZvaWQgY29sbGVjdE1hdGNoaW5n
T2JzZXJ2ZXJzRm9yTXV0YXRpb24oSGFzaE1hcDxSZWY8TXV0YXRpb25PYnNlcnZlcj4sIE11dGF0
aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zPiYgb2JzZXJ2ZXJzLCBSZWdpc3RyeSogcmVnaXN0cnks
IE5vZGUmIHRhcmdldCwgTXV0YXRpb25PYnNlcnZlcjo6TXV0YXRpb25UeXBlIHR5cGUsIGNvbnN0
IFF1YWxpZmllZE5hbWUqIGF0dHJpYnV0ZU5hbWUpCit0ZW1wbGF0ZTx0eXBlbmFtZSBSZWdpc3Ry
eT4gc3RhdGljIGlubGluZSB2b2lkIGNvbGxlY3RNYXRjaGluZ09ic2VydmVyc0Zvck11dGF0aW9u
KEhhc2hNYXA8UmVmPE11dGF0aW9uT2JzZXJ2ZXI+LCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0
aW9ucz4mIG9ic2VydmVycywgUmVnaXN0cnkqIHJlZ2lzdHJ5LCBOb2RlJiB0YXJnZXQsIE11dGF0
aW9uT2JzZXJ2ZXJPcHRpb25UeXBlIHR5cGUsIGNvbnN0IFF1YWxpZmllZE5hbWUqIGF0dHJpYnV0
ZU5hbWUpCiB7CiAgICAgaWYgKCFyZWdpc3RyeSkKICAgICAgICAgcmV0dXJuOwpAQCAtMjI5Miwx
NSArMjI5MywxNSBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBSZWdpc3RyeT4gc3RhdGljIGlubGluZSB2
b2lkIGNvbGxlY3RNYXRjaGluZ09ic2VydmVyc0Zvck11dGF0aQogICAgICAgICAgICAgYXV0byBk
ZWxpdmVyeU9wdGlvbnMgPSByZWdpc3RyYXRpb24tPmRlbGl2ZXJ5T3B0aW9ucygpOwogICAgICAg
ICAgICAgYXV0byByZXN1bHQgPSBvYnNlcnZlcnMuYWRkKHJlZ2lzdHJhdGlvbi0+b2JzZXJ2ZXIo
KSwgZGVsaXZlcnlPcHRpb25zKTsKICAgICAgICAgICAgIGlmICghcmVzdWx0LmlzTmV3RW50cnkp
Ci0gICAgICAgICAgICAgICAgcmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSB8PSBkZWxpdmVyeU9wdGlv
bnM7CisgICAgICAgICAgICAgICAgcmVzdWx0Lml0ZXJhdG9yLT52YWx1ZS5hZGQoZGVsaXZlcnlP
cHRpb25zKTsKICAgICAgICAgfQogICAgIH0KIH0KIAotSGFzaE1hcDxSZWY8TXV0YXRpb25PYnNl
cnZlcj4sIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zPiBOb2RlOjpyZWdpc3RlcmVkTXV0
YXRpb25PYnNlcnZlcnMoTXV0YXRpb25PYnNlcnZlcjo6TXV0YXRpb25UeXBlIHR5cGUsIGNvbnN0
IFF1YWxpZmllZE5hbWUqIGF0dHJpYnV0ZU5hbWUpCitIYXNoTWFwPFJlZjxNdXRhdGlvbk9ic2Vy
dmVyPiwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnM+IE5vZGU6OnJlZ2lzdGVyZWRNdXRh
dGlvbk9ic2VydmVycyhNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZSB0eXBlLCBjb25zdCBRdWFs
aWZpZWROYW1lKiBhdHRyaWJ1dGVOYW1lKQogewogICAgIEhhc2hNYXA8UmVmPE11dGF0aW9uT2Jz
ZXJ2ZXI+LCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucz4gcmVzdWx0OwotICAgIEFTU0VS
VCgodHlwZSA9PSBNdXRhdGlvbk9ic2VydmVyOjpBdHRyaWJ1dGVzICYmIGF0dHJpYnV0ZU5hbWUp
IHx8ICFhdHRyaWJ1dGVOYW1lKTsKKyAgICBBU1NFUlQoKHR5cGUgPT0gTXV0YXRpb25PYnNlcnZl
ck9wdGlvblR5cGU6OkF0dHJpYnV0ZXMgJiYgYXR0cmlidXRlTmFtZSkgfHwgIWF0dHJpYnV0ZU5h
bWUpOwogICAgIGNvbGxlY3RNYXRjaGluZ09ic2VydmVyc0Zvck11dGF0aW9uKHJlc3VsdCwgbXV0
YXRpb25PYnNlcnZlclJlZ2lzdHJ5KCksICp0aGlzLCB0eXBlLCBhdHRyaWJ1dGVOYW1lKTsKICAg
ICBjb2xsZWN0TWF0Y2hpbmdPYnNlcnZlcnNGb3JNdXRhdGlvbihyZXN1bHQsIHRyYW5zaWVudE11
dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyeSgpLCAqdGhpcywgdHlwZSwgYXR0cmlidXRlTmFtZSk7CiAg
ICAgZm9yIChOb2RlKiBub2RlID0gcGFyZW50Tm9kZSgpOyBub2RlOyBub2RlID0gbm9kZS0+cGFy
ZW50Tm9kZSgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oIGIvU291
cmNlL1dlYkNvcmUvZG9tL05vZGUuaAppbmRleCBiZGI4NDI3MDUzOWUxMzE2NjE0MTY5ZTBjN2Yw
NjY5Mjc3MjQ2YmE2Li41ZDY5M2ZjMjViNDZjZjQ5OWU3NTMzMzYwOTdmZDkxNjc1NTA4ZGE1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlLmgKQEAgLTI3LDcgKzI3LDYgQEAKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgog
I2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCiAjaW5jbHVkZSAiTGF5b3V0UmVjdC5oIgotI2luY2x1
ZGUgIk11dGF0aW9uT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZUNvbnN0YW50cy5o
IgogI2luY2x1ZGUgIlN0eWxlVmFsaWRpdHkuaCIKICNpbmNsdWRlICJUcmVlU2NvcGUuaCIKQEAg
LTU0LDYgKzUzLDggQEAgY2xhc3MgRmxvYXRQb2ludDsKIGNsYXNzIEhUTUxRdWFsaWZpZWROYW1l
OwogY2xhc3MgSFRNTFNsb3RFbGVtZW50OwogY2xhc3MgTWF0aE1MUXVhbGlmaWVkTmFtZTsKK2Ns
YXNzIE11dGF0aW9uT2JzZXJ2ZXI7CitjbGFzcyBNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9u
OwogY2xhc3MgTmFtZWROb2RlTWFwOwogY2xhc3MgTm9kZUxpc3Q7CiBjbGFzcyBOb2RlTGlzdHNO
b2RlRGF0YTsKQEAgLTY3LDYgKzY4LDEwIEBAIGNsYXNzIFNWR1F1YWxpZmllZE5hbWU7CiBjbGFz
cyBTaGFkb3dSb290OwogY2xhc3MgVG91Y2hFdmVudDsKIAorZW51bSBjbGFzcyBNdXRhdGlvbk9i
c2VydmVyT3B0aW9uVHlwZSA6IHVpbnQ4X3Q7Cit1c2luZyBNdXRhdGlvbk9ic2VydmVyT3B0aW9u
cyA9IE9wdGlvblNldDxNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZT47Cit1c2luZyBNdXRhdGlv
blJlY29yZERlbGl2ZXJ5T3B0aW9ucyA9IE9wdGlvblNldDxNdXRhdGlvbk9ic2VydmVyT3B0aW9u
VHlwZT47CisKIHVzaW5nIE5vZGVPclN0cmluZyA9IFZhcmlhbnQ8UmVmUHRyPE5vZGU+LCBTdHJp
bmc+OwogCiBjbGFzcyBOb2RlIDogcHVibGljIEV2ZW50VGFyZ2V0IHsKQEAgLTQ5NCw3ICs0OTks
NyBAQCBwdWJsaWM6CiAgICAgRXZlbnRUYXJnZXREYXRhKiBldmVudFRhcmdldERhdGFDb25jdXJy
ZW50bHkoKSBmaW5hbDsKICAgICBFdmVudFRhcmdldERhdGEmIGVuc3VyZUV2ZW50VGFyZ2V0RGF0
YSgpIGZpbmFsOwogCi0gICAgSGFzaE1hcDxSZWY8TXV0YXRpb25PYnNlcnZlcj4sIE11dGF0aW9u
UmVjb3JkRGVsaXZlcnlPcHRpb25zPiByZWdpc3RlcmVkTXV0YXRpb25PYnNlcnZlcnMoTXV0YXRp
b25PYnNlcnZlcjo6TXV0YXRpb25UeXBlLCBjb25zdCBRdWFsaWZpZWROYW1lKiBhdHRyaWJ1dGVO
YW1lKTsKKyAgICBIYXNoTWFwPFJlZjxNdXRhdGlvbk9ic2VydmVyPiwgTXV0YXRpb25SZWNvcmRE
ZWxpdmVyeU9wdGlvbnM+IHJlZ2lzdGVyZWRNdXRhdGlvbk9ic2VydmVycyhNdXRhdGlvbk9ic2Vy
dmVyT3B0aW9uVHlwZSwgY29uc3QgUXVhbGlmaWVkTmFtZSogYXR0cmlidXRlTmFtZSk7CiAgICAg
dm9pZCByZWdpc3Rlck11dGF0aW9uT2JzZXJ2ZXIoTXV0YXRpb25PYnNlcnZlciYsIE11dGF0aW9u
T2JzZXJ2ZXJPcHRpb25zLCBjb25zdCBIYXNoU2V0PEF0b21TdHJpbmc+JiBhdHRyaWJ1dGVGaWx0
ZXIpOwogICAgIHZvaWQgdW5yZWdpc3Rlck11dGF0aW9uT2JzZXJ2ZXIoTXV0YXRpb25PYnNlcnZl
clJlZ2lzdHJhdGlvbiYpOwogICAgIHZvaWQgcmVnaXN0ZXJUcmFuc2llbnRNdXRhdGlvbk9ic2Vy
dmVyKE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAKaW5kZXggMTc2YmMzYjQ4OTIwZmVkMDhhMmFhOTVh
YTJiYWU2NjdhZWRmNDJmZC4uM2UwZjdlNTQzNWVhMzdmYzZiOWRjZmI0MWZlMzYxODUyNWYyZGYx
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAKQEAg
LTI3LDcgKzI3LDcgQEAKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1
ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkNhY2hlZFhTTFN0eWxlU2hl
ZXQuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5o
IgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKICNpbmNsdWRl
ICJNZWRpYUxpc3QuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAppbmRleCBmMDQ5
YmQ4NGIxMmFhZDBjZGEzZWU3MTU4MjYwOTQzODFmMDkxMjUzLi5jNGYyOTU5OTkzOWVjMTY4MzJj
NmRmNmMwY2VjMDIwYmNkNDI1MGI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2Ny
aXB0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3Bw
CkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiQ29udGVudFNlY3VyaXR5UG9saWN5LmgiCiAj
aW5jbHVkZSAiQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmgiCiAjaW5jbHVkZSAiQ3VycmVudFNj
cmlwdEluY3JlbWVudGVyLmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVk
ZSAiRWxlbWVudElubGluZXMuaCIKICNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUgIkV2ZW50
TmFtZXMuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TZWN1cml0eVBvbGljeVZp
b2xhdGlvbkV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2VjdXJpdHlQb2xpY3lWaW9sYXRp
b25FdmVudC5oCmluZGV4IGIxMDc2NjU5OTMxMGRmNDU0NjE3MzFmMzRiYjNjOWU5YzI4Y2UzM2Mu
LmFiMjc4MzdiOTg4Mzc5NjRlOGI2OGQzNmQxMGY3MTg5NWQ2YTYwZjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL1NlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQuaApAQCAtMjksMzAg
KzI5LDMzIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorZW51bSBjbGFzcyBTZWN1cml0eVBv
bGljeVZpb2xhdGlvbkV2ZW50RGlzcG9zaXRpb24gOiBib29sIHsgRW5mb3JjZSwgUmVwb3J0IH07
CisKK3N0cnVjdCBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50SW5pdCA6IEV2ZW50SW5pdCB7
CisgICAgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQoKSB7IH0KKworICAgIFN0cmlu
ZyBkb2N1bWVudFVSSTsKKyAgICBTdHJpbmcgcmVmZXJyZXI7CisgICAgU3RyaW5nIGJsb2NrZWRV
Ukk7CisgICAgU3RyaW5nIHZpb2xhdGVkRGlyZWN0aXZlOworICAgIFN0cmluZyBlZmZlY3RpdmVE
aXJlY3RpdmU7CisgICAgU3RyaW5nIG9yaWdpbmFsUG9saWN5OworICAgIFN0cmluZyBzb3VyY2VG
aWxlOworICAgIFN0cmluZyBzYW1wbGU7CisgICAgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVu
dERpc3Bvc2l0aW9uIGRpc3Bvc2l0aW9uIHsgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudERp
c3Bvc2l0aW9uOjpFbmZvcmNlIH07CisgICAgdW5zaWduZWQgc2hvcnQgc3RhdHVzQ29kZSB7IDAg
fTsKKyAgICB1bnNpZ25lZCBsaW5lTnVtYmVyIHsgMCB9OworICAgIHVuc2lnbmVkIGNvbHVtbk51
bWJlciB7IDAgfTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVu
Y29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgV0FSTl9V
TlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBTZWN1cml0eVBvbGljeVZpb2xhdGlv
bkV2ZW50SW5pdCYpOworfTsKKwogY2xhc3MgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudCBm
aW5hbCA6IHB1YmxpYyBFdmVudCB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChTZWN1cml0
eVBvbGljeVZpb2xhdGlvbkV2ZW50KTsKIHB1YmxpYzoKLSAgICBlbnVtIGNsYXNzIERpc3Bvc2l0
aW9uIDogYm9vbCB7IEVuZm9yY2UsIFJlcG9ydCB9OwotCi0gICAgc3RydWN0IEluaXQgOiBFdmVu
dEluaXQgewotICAgICAgICBJbml0KCkgeyB9Ci0KLSAgICAgICAgU3RyaW5nIGRvY3VtZW50VVJJ
OwotICAgICAgICBTdHJpbmcgcmVmZXJyZXI7Ci0gICAgICAgIFN0cmluZyBibG9ja2VkVVJJOwot
ICAgICAgICBTdHJpbmcgdmlvbGF0ZWREaXJlY3RpdmU7Ci0gICAgICAgIFN0cmluZyBlZmZlY3Rp
dmVEaXJlY3RpdmU7Ci0gICAgICAgIFN0cmluZyBvcmlnaW5hbFBvbGljeTsKLSAgICAgICAgU3Ry
aW5nIHNvdXJjZUZpbGU7Ci0gICAgICAgIFN0cmluZyBzYW1wbGU7Ci0gICAgICAgIERpc3Bvc2l0
aW9uIGRpc3Bvc2l0aW9uIHsgRGlzcG9zaXRpb246OkVuZm9yY2UgfTsKLSAgICAgICAgdW5zaWdu
ZWQgc2hvcnQgc3RhdHVzQ29kZSB7IDAgfTsKLSAgICAgICAgdW5zaWduZWQgbGluZU51bWJlciB7
IDAgfTsKLSAgICAgICAgdW5zaWduZWQgY29sdW1uTnVtYmVyIHsgMCB9OwotCi0gICAgICAgIHRl
bXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKLSAgICAg
ICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29s
IGRlY29kZShEZWNvZGVyJiwgSW5pdCYpOwotICAgIH07CisgICAgdXNpbmcgRGlzcG9zaXRpb24g
PSBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50RGlzcG9zaXRpb247CisgICAgdXNpbmcgSW5p
dCA9IFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnRJbml0OwogCiAgICAgc3RhdGljIFJlZjxT
ZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbVN0cmluZyYgdHlw
ZSwgY29uc3QgSW5pdCYgaW5pdGlhbGl6ZXIgPSB7IH0sIElzVHJ1c3RlZCBpc1RydXN0ZWQgPSBJ
c1RydXN0ZWQ6Ok5vKQogICAgIHsKQEAgLTExMSw3ICsxMTQsNyBAQCBwcml2YXRlOgogfTsKIAog
dGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KLXZvaWQgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVu
dDo6SW5pdDo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit2b2lkIFNlY3VyaXR5UG9s
aWN5VmlvbGF0aW9uRXZlbnRJbml0OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsK
ICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PGNvbnN0IEV2ZW50SW5pdCY+KCp0aGlzKTsKICAg
ICBlbmNvZGVyIDw8IGRvY3VtZW50VVJJOwpAQCAtMTI5LDcgKzEzMiw3IEBAIHZvaWQgU2VjdXJp
dHlQb2xpY3lWaW9sYXRpb25FdmVudDo6SW5pdDo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNv
bnN0CiB9CiAKIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+Ci1ib29sIFNlY3VyaXR5UG9saWN5Vmlv
bGF0aW9uRXZlbnQ6OkluaXQ6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBTZWN1cml0eVBvbGlj
eVZpb2xhdGlvbkV2ZW50OjpJbml0JiBldmVudEluaXQpCitib29sIFNlY3VyaXR5UG9saWN5Vmlv
bGF0aW9uRXZlbnRJbml0OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgU2VjdXJpdHlQb2xpY3lW
aW9sYXRpb25FdmVudEluaXQmIGV2ZW50SW5pdCkKIHsKICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHN0YXRpY19jYXN0PEV2ZW50SW5pdCY+KGV2ZW50SW5pdCkpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CkBAIC0xNjQsMTEgKzE2NywxMSBAQCBib29sIFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZl
bnQ6OkluaXQ6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBTZWN1cml0eVBvbGljeQogCiBuYW1l
c3BhY2UgV1RGIHsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpTZWN1
cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpEaXNwb3NpdGlvbj4gewordGVtcGxhdGU8PiBzdHJ1
Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50RGlzcG9z
aXRpb24+IHsKICAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAotICAgIFdlYkNvcmU6OlNl
Y3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6OkRpc3Bvc2l0aW9uLAotICAgIFdlYkNvcmU6OlNl
Y3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6OkRpc3Bvc2l0aW9uOjpFbmZvcmNlLAotICAgIFdl
YkNvcmU6OlNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6OkRpc3Bvc2l0aW9uOjpSZXBvcnQK
KyAgICBXZWJDb3JlOjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50RGlzcG9zaXRpb24sCisg
ICAgV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudERpc3Bvc2l0aW9uOjpFbmZv
cmNlLAorICAgIFdlYkNvcmU6OlNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnREaXNwb3NpdGlv
bjo6UmVwb3J0CiAgICAgPjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21w
b3NpdGVFZGl0Q29tbWFuZC5jcHAKaW5kZXggNThkNzUzYjIzZDYzYjg3Mjk1OTAwN2M1YTcwOTY3
Mzk3Yzg4Nzg0YS4uOTgwNDQ2MGNkYjJiYzVhYjUxNzE0YjQwNGFiODVjMGNhZmUyMmEyMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKQEAg
LTMzLDggKzMzLDggQEAKICNpbmNsdWRlICJEYXRhVHJhbnNmZXIuaCIKICNpbmNsdWRlICJEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiRGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZC5oIgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5o
IgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkRvY3VtZW50TWFya2Vy
Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIkVkaXRpbmcuaCIKICNpbmNsdWRlICJFZGl0b3IuaCIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuY3BwIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5jcHAKaW5kZXggZjk1YTMxYzUzOTEyZDAz
YmFmZjRjYzg1NzAwMmI1YzFjZDM1OTkzMi4uZjM0MDE0MzU5ZmY3Y2RiZDg1N2NmZGNkYmJhOWIy
NGYyOTEwMWE2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFu
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5jcHAKQEAgLTI4
LDcgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJDb21w
b3NpdGVFZGl0Q29tbWFuZC5oIgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9j
dW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRWRpdGluZy5oIgogI2luY2x1ZGUgIkVkaXRvci5o
IgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRWRpdGluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmcuY3BwCmluZGV4
IDg0NjY0YzNiNzQ4MzY1M2FmMDlmNzllYmI1MzNlNzU0YmE2Mzg0YTEuLjkyOTQ2ZjM3MzEzM2Ux
MTBkZGIxMTFmNThhOTNjMWIyYzdmMGI0OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdGluZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nLmNw
cApAQCAtMjgsNyArMjgsNyBAQAogCiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1
ZGUgIkNhY2hlZEltYWdlLmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1
bWVudElubGluZXMuaCIKICNpbmNsdWRlICJFZGl0b3IuaCIKICNpbmNsdWRlICJFbGVtZW50SW5s
aW5lcy5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5k
ZXggNTY1NzgyN2Q5YTY2YmIzYjczZWZiNTVmOTMxNjFlZTgzOGI0NWEzMC4uMWI3MDc2NWJhYmM0
ZDQ2ODExYzFhZmQ3OTQ2NTEwN2I4YTIyMDgzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNw
cApAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1ZGUgIkRpY3RhdGlvbkFsdGVybmF0aXZlLmgiCiAj
aW5jbHVkZSAiRGljdGF0aW9uQ29tbWFuZC5oIgogI2luY2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQu
aCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJEb2N1bWVudE1hcmtl
ckNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJFZGl0aW5nLmgiCiAjaW5jbHVkZSAiRWRpdG9yQ2xp
ZW50LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCmluZGV4IGMy
ZWI4YTdiYzQxMzIyY2E4ZDIwODQ0MzNhMjM1ZmZlOTdiNWViYmQuLjcxMzY5OTU0OTA1ZjlmMmYx
ZDhlMWNkZTA2MGU0MWRjYWVjYTE0MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRnJhbWVTZWxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVT
ZWxlY3Rpb24uY3BwCkBAIC0zMCw3ICszMCw3IEBACiAjaW5jbHVkZSAiQ2hhcmFjdGVyRGF0YS5o
IgogI2luY2x1ZGUgIkNvbG9yQmxlbmRpbmcuaCIKICNpbmNsdWRlICJEZWxldGVTZWxlY3Rpb25D
b21tYW5kLmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGlu
ZXMuaCIKICNpbmNsdWRlICJFZGl0aW5nLmgiCiAjaW5jbHVkZSAiRWRpdG9yLmgiCiAjaW5jbHVk
ZSAiRWRpdG9yQ2xpZW50LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5
cGluZ0NvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNw
cAppbmRleCA4NzkxNDIxNmNhYTJhZTcwNWE1YzQ4OTliZGZhMDE0NGMzNjYwOGRkLi4yMjcyZWJi
MzBkZTc5MjE2MzY2ZmIxMTkzNjU4MWI5MjU4YmRjYTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvVHlwaW5nQ29tbWFuZC5jcHAKQEAgLTMwLDcgKzMwLDcgQEAKICNpbmNsdWRlICJCcmVha0Js
b2NrcXVvdGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiRGF0YVRyYW5zZmVyLmgiCiAjaW5jbHVkZSAi
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVk
ZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRWRpdGluZy5oIgogI2luY2x1ZGUgIkVk
aXRvci5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9tYWMvRnJhbWVTZWxlY3Rpb25NYWMubW0KaW5kZXggZjM4M2FkZGQxOWIwY2YwMDQ2YmE1Mzdj
YjJkNThiZDRhNzEwMGU5NC4uNDYyMzdhZDZjMWU5MzcxYmRjYWQ3MGZjYWZiMGY3ZmU1ZGY4ZDUw
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rpb25N
YWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rpb25NYWMu
bW0KQEAgLTI5LDYgKzI5LDcgQEAKICNpbXBvcnQgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbXBvcnQg
IkNocm9tZS5oIgogI2ltcG9ydCAiQ2hyb21lQ2xpZW50LmgiCisjaW1wb3J0ICJEb2N1bWVudElu
bGluZXMuaCIKICNpbXBvcnQgIkZyYW1lLmgiCiAjaW1wb3J0ICJSZW5kZXJWaWV3LmgiCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcAppbmRleCA1ZTQxYjQ5MjQx
NmEzOTQwZWQ2ZGUxMzEyYTMxNTMzZWRkODE3OTM5Li5iZjU0MzJhZjMxNmU1YTc0YWYyYWQyNzNm
MTE1MjZlNGRiNDViMmNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRh
aWxzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1l
bnQuY3BwCkBAIC0yMyw5ICsyMywxMSBAQAogI2luY2x1ZGUgIkhUTUxEZXRhaWxzRWxlbWVudC5o
IgogCiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5l
cy5oIgogI2luY2x1ZGUgIkVsZW1lbnRJdGVyYXRvci5oIgogI2luY2x1ZGUgIkV2ZW50TG9vcC5o
IgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKKyNpbmNsdWRlICJHQ1JlYWNoYWJsZVJlZi5oIgog
I2luY2x1ZGUgIkhUTUxTbG90RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxTdW1tYXJ5RWxlbWVu
dC5oIgogI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxJbnB1dEVsZW1lbnQuY3BwCmluZGV4IDA2OWNjNDE3NzBjYzlmYzUxYjk1ODIyMzUzMjQ2MzIz
MzMyNmI3YTMuLjI0MzhlOTE3NmIyMzlhZGU4ZWEwOWJiY2VmODFkZDVkYmM1MDUwMzcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcApAQCAtMzgsNyArMzgsNyBAQAog
I2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgogI2luY2x1ZGUgIkRhdGVDb21wb25lbnRzLmgiCiAj
aW5jbHVkZSAiRGF0ZVRpbWVDaG9vc2VyLmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNs
dWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJFZGl0b3IuaCIKICNpbmNsdWRlICJF
dmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRmlsZUlucHV0VHlwZS5oIgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTGlua0VsZW1lbnQuY3BwCmluZGV4IDU2ZjBjNzlkNDVkOTI3Njk2OTY3MjEzODAwNTNk
ZjBiNDllMWM3ZjEuLjc0ZmQ0NWU2ZGJiYjQ1NmI1NDUzYjFkNDBmMzhjZjA0NjQwZDc3YTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKQEAgLTM0LDcgKzM0LDcgQEAK
ICNpbmNsdWRlICJDcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaCIKICNpbmNsdWRlICJET01Ub2tl
bkxpc3QuaCIKICNpbmNsdWRlICJEZWZhdWx0UmVzb3VyY2VMb2FkUHJpb3JpdHkuaCIKLSNpbmNs
dWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUg
IkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRWxlbWVudElubGluZXMuaCIKICNpbmNsdWRl
ICJFdmVudC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXgg
MjkzNzliMjBmNTkxZmZlZjBiZDU1N2M4MDhkOGI0OTQwYWFhNWE3MC4uNjVlYmZhN2E1NGQ4ZmFk
MzRhN2FlMDljNTViYTMzMDVlNzM2YzEwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuY3BwCkBAIC04NSw4ICs4NSw4IEBACiAjaW5jbHVkZSAiTmF2aWdhdG9yTWVkaWFE
ZXZpY2VzLmgiCiAjaW5jbHVkZSAiTmV0d29ya2luZ0NvbnRleHQuaCIKICNpbmNsdWRlICJQT0RJ
bnRlcnZhbFRyZWUuaCIKLSNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgi
CisjaW5jbHVkZSAiUGFnZUlubGluZXMuaCIKICNpbmNsdWRlICJQaWN0dXJlSW5QaWN0dXJlU3Vw
cG9ydC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oIgogI2luY2x1
ZGUgIlBsYXRmb3JtVGV4dFRyYWNrLmgiCkBAIC03OTczLDcgKzc5NzMsNyBAQCBib29sIEhUTUxN
ZWRpYUVsZW1lbnQ6OnNob3VsZE92ZXJyaWRlQmFja2dyb3VuZFBsYXliYWNrUmVzdHJpY3Rpb24o
UGxhdGZvcm1NZWRpYQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAjZW5kaWYKICNpZiBFTkFC
TEUoTUVESUFfU1RSRUFNKQotICAgICAgICBpZiAoaGFzTWVkaWFTdHJlYW1TcmNPYmplY3QoKSAm
JiBtZWRpYVN0YXRlKCkuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQ
bGF5aW5nQXVkaW8pICYmIGRvY3VtZW50KCkubWVkaWFTdGF0ZSgpLmNvbnRhaW5zQW55KE1lZGlh
UHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSkpIHsKKyAg
ICAgICAgaWYgKGhhc01lZGlhU3RyZWFtU3JjT2JqZWN0KCkgJiYgbWVkaWFTdGF0ZSgpLmNvbnRh
aW5zQW55KE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbykgJiYgZG9jdW1l
bnQoKS5tZWRpYVN0YXRlKCkuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhh
c0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSkpIHsKICAgICAgICAgICAgIElORk9fTE9HKExPR0lE
RU5USUZJRVIsICJyZXR1cm5pbmcgdHJ1ZSBiZWNhdXNlIHBsYXlpbmcgYW4gYXVkaW8gTWVkaWFT
dHJlYW1UcmFjayIpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KQEAgLTc5
ODgsNyArNzk4OCw3IEBAIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6c2hvdWxkT3ZlcnJpZGVCYWNr
Z3JvdW5kUGxheWJhY2tSZXN0cmljdGlvbihQbGF0Zm9ybU1lZGlhCiAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICAgICAgfQogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0gICAgICAgIGlm
IChoYXNNZWRpYVN0cmVhbVNyY09iamVjdCgpICYmIG1lZGlhU3RhdGUoKS5jb250YWluc0FueShN
ZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbykgJiYgZG9jdW1lbnQoKS5t
ZWRpYVN0YXRlKCkuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0
aXZlQXVkaW9DYXB0dXJlRGV2aWNlKSkgeworICAgICAgICBpZiAoaGFzTWVkaWFTdHJlYW1TcmNP
YmplY3QoKSAmJiBtZWRpYVN0YXRlKCkuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlck1lZGlhU3Rh
dGU6OklzUGxheWluZ0F1ZGlvKSAmJiBkb2N1bWVudCgpLm1lZGlhU3RhdGUoKS5jb250YWluc0Fu
eShNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlKSkg
ewogICAgICAgICAgICAgSU5GT19MT0coTE9HSURFTlRJRklFUiwgInJldHVybmluZyB0cnVlIGJl
Y2F1c2UgcGxheWluZyBhbiBhdWRpbyBNZWRpYVN0cmVhbVRyYWNrIik7CiAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICAgICAgfQpAQCAtODA0OCw3ICs4MDQ4LDcgQEAgdm9pZCBIVE1MTWVk
aWFFbGVtZW50OjpzY2hlZHVsZVVwZGF0ZU1lZGlhU3RhdGUoKQogCiB2b2lkIEhUTUxNZWRpYUVs
ZW1lbnQ6OnVwZGF0ZU1lZGlhU3RhdGUoKQogewotICAgIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGVGbGFncyBzdGF0ZSA9IG1lZGlhU3RhdGUoKTsKKyAgICBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0
ZUZsYWdzIHN0YXRlID0gbWVkaWFTdGF0ZSgpOwogICAgIGlmIChtX21lZGlhU3RhdGUgPT0gc3Rh
dGUpCiAgICAgICAgIHJldHVybjsKIApAQCAtODA1OSwzMSArODA1OSwzMSBAQCB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6OnVwZGF0ZU1lZGlhU3RhdGUoKQogfQogI2VuZGlmCiAKLU1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGVGbGFncyBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVN0YXRlKCkgY29uc3QK
K01lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFTdGF0
ZSgpIGNvbnN0CiB7CiAgICAgTWVkaWFTdGF0ZUZsYWdzIHN0YXRlOwogCiAgICAgYm9vbCBoYXNB
Y3RpdmVWaWRlbyA9IGlzVmlkZW8oKSAmJiBoYXNWaWRlbygpOwogICAgIGJvb2wgaGFzQXVkaW8g
PSB0aGlzLT5oYXNBdWRpbygpOwogICAgIGlmIChpc1BsYXlpbmdUb0V4dGVybmFsVGFyZ2V0KCkp
Ci0gICAgICAgIHN0YXRlLmFkZChNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdU
b0V4dGVybmFsRGV2aWNlKTsKKyAgICAgICAgc3RhdGUuYWRkKE1lZGlhUHJvZHVjZXJNZWRpYVN0
YXRlOjpJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlKTsKIAogI2lmIEVOQUJMRShXSVJFTEVTU19Q
TEFZQkFDS19UQVJHRVQpCiAgICAgaWYgKG1faGFzUGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlM
aXN0ZW5lcnMpIHsKLSAgICAgICAgc3RhdGUuYWRkKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6
Okhhc1BsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5TGlzdGVuZXIpOworICAgICAgICBzdGF0ZS5h
ZGQoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc1BsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5
TGlzdGVuZXIpOwogICAgICAgICBpZiAoIW1lZGlhU2Vzc2lvbigpLndpcmVsZXNzVmlkZW9QbGF5
YmFja0Rpc2FibGVkKCkpCi0gICAgICAgICAgICBzdGF0ZS5hZGQoTWVkaWFQcm9kdWNlcjo6TWVk
aWFTdGF0ZTo6UmVxdWlyZXNQbGF5YmFja1RhcmdldE1vbml0b3JpbmcpOworICAgICAgICAgICAg
c3RhdGUuYWRkKE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpSZXF1aXJlc1BsYXliYWNrVGFyZ2V0
TW9uaXRvcmluZyk7CiAgICAgfQogCiAgICAgYm9vbCByZXF1aXJlVXNlckdlc3R1cmUgPSBtX21l
ZGlhU2Vzc2lvbiAmJiBtZWRpYVNlc3Npb24oKS5oYXNCZWhhdmlvclJlc3RyaWN0aW9uKE1lZGlh
RWxlbWVudFNlc3Npb246OlJlcXVpcmVVc2VyR2VzdHVyZVRvQXV0b3BsYXlUb0V4dGVybmFsRGV2
aWNlKTsKICAgICBpZiAobV9yZWFkeVN0YXRlID49IEhBVkVfTUVUQURBVEEgJiYgIXJlcXVpcmVV
c2VyR2VzdHVyZSAmJiAhbV9mYWlsZWRUb1BsYXlUb1dpcmVsZXNzVGFyZ2V0KQotICAgICAgICBz
dGF0ZS5hZGQoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6RXh0ZXJuYWxEZXZpY2VBdXRvUGxh
eUNhbmRpZGF0ZSk7CisgICAgICAgIHN0YXRlLmFkZChNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6
RXh0ZXJuYWxEZXZpY2VBdXRvUGxheUNhbmRpZGF0ZSk7CiAKICAgICBpZiAoaGFzQWN0aXZlVmlk
ZW8gfHwgaGFzQXVkaW8pCi0gICAgICAgIHN0YXRlLmFkZChNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlOjpIYXNBdWRpb09yVmlkZW8pOworICAgICAgICBzdGF0ZS5hZGQoTWVkaWFQcm9kdWNlck1l
ZGlhU3RhdGU6Okhhc0F1ZGlvT3JWaWRlbyk7CiAKICAgICBpZiAoaGFzQWN0aXZlVmlkZW8gJiYg
ZW5kZWRQbGF5YmFjaygpKQotICAgICAgICBzdGF0ZS5hZGQoTWVkaWFQcm9kdWNlcjo6TWVkaWFT
dGF0ZTo6RGlkUGxheVRvRW5kKTsKKyAgICAgICAgc3RhdGUuYWRkKE1lZGlhUHJvZHVjZXJNZWRp
YVN0YXRlOjpEaWRQbGF5VG9FbmQpOwogI2VuZGlmCiAKICAgICBpZiAoIWlzUGxheWluZygpKQpA
QCAtODA5NywxMCArODA5NywxMCBAQCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgSFRN
TE1lZGlhRWxlbWVudDo6bWVkaWFTdGF0ZSgpIGNvbnN0CiAgICAgaXNQbGF5aW5nQXVkaW8gPSBp
c1BsYXlpbmdBdWRpbyAmJiAhbXV0ZWQoKTsKICNlbmRpZgogICAgIGlmIChpc1BsYXlpbmdBdWRp
bykKLSAgICAgICAgc3RhdGUuYWRkKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWlu
Z0F1ZGlvKTsKKyAgICAgICAgc3RhdGUuYWRkKE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1Bs
YXlpbmdBdWRpbyk7CiAKICAgICBpZiAoaGFzQWN0aXZlVmlkZW8pCi0gICAgICAgIHN0YXRlLmFk
ZChNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbyk7CisgICAgICAgIHN0
YXRlLmFkZChNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nVmlkZW8pOwogCiAgICAg
cmV0dXJuIHN0YXRlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAppbmRl
eCBjZmQxOWQzYzE3M2YxMGNlNGVmZTBjMjBhZWIyYWJlNTkxOWQyNTk2Li4wMmQ0ODgwMTE0NzQ2
MmM5MTNlY2Y5OWI2YjAzYjgwMTFkMGQxZWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuaApAQCAtNTI3LDcgKzUyNyw3IEBAIHB1YmxpYzoKIAogICAgIGRvdWJsZSBtYXhC
dWZmZXJlZFRpbWUoKSBjb25zdDsKIAotICAgIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFn
cyBtZWRpYVN0YXRlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgTWVkaWFQcm9kdWNlck1lZGlhU3Rh
dGVGbGFncyBtZWRpYVN0YXRlKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGxheW91dFNp
emVDaGFuZ2VkKCk7CiAgICAgdm9pZCB2aXNpYmlsaXR5RGlkQ2hhbmdlKCk7CkBAIC0xMjE0LDcg
KzEyMTQsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJB
Q0tfVEFSR0VUKQotICAgIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBtX21lZGlhU3Rh
dGU7CisgICAgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBtX21lZGlhU3RhdGU7CiAgICAg
TW9ub3RvbmljVGltZSBtX2N1cnJlbnRQbGF5YmFja1RhcmdldElzV2lyZWxlc3NFdmVudEZpcmVk
VGltZTsKICAgICBib29sIG1faGFzUGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlMaXN0ZW5lcnMg
eyBmYWxzZSB9OwogICAgIGJvb2wgbV9mYWlsZWRUb1BsYXlUb1dpcmVsZXNzVGFyZ2V0IHsgZmFs
c2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKaW5kZXggZTJm
OGE0YmY1ZDhiODUxYmI5YzE0MjMxYjgxMjhlYzI0ODg2YjdjMC4uNzlhZDRlMjIwNmRhODA5NDhi
MmEwYjU1ZmViYjFiYjg0YzgxNjdhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MU2VsZWN0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0
RWxlbWVudC5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUu
aCIKICNpbmNsdWRlICJET01Gb3JtRGF0YS5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5o
IgogI2luY2x1ZGUgIkVsZW1lbnRUcmF2ZXJzYWwuaCIKICNpbmNsdWRlICJFdmVudEhhbmRsZXIu
aCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCmluZGV4IDk5YTRiYjJlZjdhNjE0Njc0YWNm
NGY3OWZhN2MzZDdjZmFmOTk2MjAuLjBlMzQ4NmQ0ZjcxMDZjYzU3MTY3Y2FmYTY3NDgwZDk3MjE3
Zjg5NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJv
bEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJv
bEVsZW1lbnQuY3BwCkBAIC0yOCw3ICsyOCw3IEBACiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5o
IgogI2luY2x1ZGUgIkNTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaCIKICNpbmNsdWRlICJDaHJv
bWVDbGllbnQuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5s
aW5lcy5oIgogI2luY2x1ZGUgIkVkaXRpbmcuaCIKICNpbmNsdWRlICJFbGVtZW50QW5jZXN0b3JJ
dGVyYXRvci5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0lucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAK
aW5kZXggZWEyOTdmYTIzMTliZmI4NTdmNWZjYmYyNDU2NjZiMDk4MzVmMTA5Mi4uYjVmZjAyYmRh
NTU0YTAxZGE5M2I5MGFmYzA4MWM2ZWIwODgwY2NiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9JbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBl
LmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIkRhdGVJbnB1dFR5cGUuaCIKICNpbmNs
dWRlICJEYXRlVGltZUxvY2FsSW5wdXRUeXBlLmgiCiAjaW5jbHVkZSAiRGVjaW1hbC5oIgorI2lu
Y2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkVsZW1lbnRJbmxpbmVzLmgiCiAj
aW5jbHVkZSAiRW1haWxJbnB1dFR5cGUuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmNwcAppbmRleCA3ZjZkMzlmM2Vj
ZTBjZmY3NTc5NGJlZDRhYzM0ZmVkMzE2NDdmNTE3Li4yOTFlZjlhMDI4MTAyZjMyYWVjMzZjODlj
ODZhZGI0ZWM3MGZlNTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxl
bWVudFNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vz
c2lvbi5jcHAKQEAgLTMxLDcgKzMxLDcgQEAKIAogI2luY2x1ZGUgIkNocm9tZS5oIgogI2luY2x1
ZGUgIkNocm9tZUNsaWVudC5oIgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9j
dW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJF
bGVtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCkBAIC0zODUsNyArMzg1LDcgQEAg
RXhwZWN0ZWQ8dm9pZCwgTWVkaWFQbGF5YmFja0RlbmlhbFJlYXNvbj4gTWVkaWFFbGVtZW50U2Vz
c2lvbjo6cGxheWJhY2tTdGF0ZUNoYW4KICAgICBpZiAobV9lbGVtZW50Lmhhc01lZGlhU3RyZWFt
U3JjT2JqZWN0KCkpIHsKICAgICAgICAgaWYgKGRvY3VtZW50LmlzQ2FwdHVyaW5nKCkpCiAgICAg
ICAgICAgICByZXR1cm4geyB9OwotICAgICAgICBpZiAoZG9jdW1lbnQubWVkaWFTdGF0ZSgpICYg
TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8pCisgICAgICAgIGlmIChk
b2N1bWVudC5tZWRpYVN0YXRlKCkgJiBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5n
QXVkaW8pCiAgICAgICAgICAgICByZXR1cm4geyB9OwogICAgIH0KICNlbmRpZgpAQCAtNDAwLDcg
KzQwMCw3IEBAIEV4cGVjdGVkPHZvaWQsIE1lZGlhUGxheWJhY2tEZW5pYWxSZWFzb24+IE1lZGlh
RWxlbWVudFNlc3Npb246OnBsYXliYWNrU3RhdGVDaGFuCiAgICAgICAgIHJldHVybiBtYWtlVW5l
eHBlY3RlZChNZWRpYVBsYXliYWNrRGVuaWFsUmVhc29uOjpVc2VyR2VzdHVyZVJlcXVpcmVkKTsK
ICAgICB9CiAKLSAgICBpZiAodG9wRG9jdW1lbnQubWVkaWFTdGF0ZSgpICYgTWVkaWFQcm9kdWNl
cjo6TWVkaWFTdGF0ZTo6SGFzVXNlckludGVyYWN0ZWRXaXRoTWVkaWFFbGVtZW50ICYmIHRvcERv
Y3VtZW50LnF1aXJrcygpLm5lZWRzUGVyRG9jdW1lbnRBdXRvcGxheUJlaGF2aW9yKCkpCisgICAg
aWYgKHRvcERvY3VtZW50Lm1lZGlhU3RhdGUoKSAmIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpI
YXNVc2VySW50ZXJhY3RlZFdpdGhNZWRpYUVsZW1lbnQgJiYgdG9wRG9jdW1lbnQucXVpcmtzKCku
bmVlZHNQZXJEb2N1bWVudEF1dG9wbGF5QmVoYXZpb3IoKSkKICAgICAgICAgcmV0dXJuIHsgfTsK
IAogICAgIGlmICh0b3BEb2N1bWVudC5oYXNIYWRVc2VySW50ZXJhY3Rpb24oKSAmJiBkb2N1bWVu
dC5xdWlya3MoKS5zaG91bGRBdXRvcGxheUZvckFyYml0cmFyeVVzZXJHZXN0dXJlKCkpCkBAIC04
MDksNyArODA5LDcgQEAgdm9pZCBNZWRpYUVsZW1lbnRTZXNzaW9uOjpwbGF5YmFja1RhcmdldFBp
Y2tlcldhc0Rpc21pc3NlZCgpCiAgICAgY2xpZW50KCkucGxheWJhY2tUYXJnZXRQaWNrZXJXYXNE
aXNtaXNzZWQoKTsKIH0KIAotdm9pZCBNZWRpYUVsZW1lbnRTZXNzaW9uOjptZWRpYVN0YXRlRGlk
Q2hhbmdlKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0ZSkKK3ZvaWQgTWVkaWFF
bGVtZW50U2Vzc2lvbjo6bWVkaWFTdGF0ZURpZENoYW5nZShNZWRpYVByb2R1Y2VyTWVkaWFTdGF0
ZUZsYWdzIHN0YXRlKQogewogICAgIG1fZWxlbWVudC5kb2N1bWVudCgpLnBsYXliYWNrVGFyZ2V0
UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UoKnRoaXMsIHN0YXRlKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmgKaW5kZXggZGY2MTUxMGNlYzY1MDEwYzJkNmJl
NWU0YTBiMzA5ZjcwMjUyMzQ1NS4uZjViZWJkMjhkZWY4ODlhZTAyYTAwNmFiZGU2OTAwNzVjNDE1
MDVkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9u
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmgKQEAgLTk1
LDcgKzk1LDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBpc1BsYXlpbmdUb1dpcmVsZXNzUGxheWJh
Y2tUYXJnZXQoKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHZvaWQgbWVkaWFTdGF0ZURpZENoYW5n
ZShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpOworICAgIHZvaWQgbWVkaWFTdGF0ZURp
ZENoYW5nZShNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzKTsKICNlbmRpZgogCiAgICAgYm9v
bCByZXF1aXJlc0Z1bGxzY3JlZW5Gb3JWaWRlb1BsYXliYWNrKCkgY29uc3Q7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCmluZGV4IDRiMWUzYTI5YzBhNDM2ZTQ2ZWI1NmMxOWU4
YWMxOTdiMDliZTRjNDguLjhmNmI4Y2UwOGZkYjVkNzRiNjZlNTNjMTIyMGNlMWJiYjVjZDc2OGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCkBAIC0zNCw2ICszNCw3IEBA
CiAKICNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRGVjaW1hbC5oIgorI2lu
Y2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkVsZW1lbnRDaGlsZEl0ZXJhdG9y
LmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxDb2xsZWN0aW9uLmgi
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uLmgKaW5kZXggMjkyMDJhMTE1Njk4MGE0ODZhYWI5NjUzMGI1NWI1NWE0NTA1MzE4Ny4uOGU2
NWM0ZWIxMDIzMzUyMWY0OGM3ZjRiMTIwYWQyYzg5MDlhMDdiYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaApAQCAtMzgsNiAr
MzgsNyBAQAogI2luY2x1ZGUgIkRlY2xhcmF0aXZlQW5pbWF0aW9uLmgiCiAjaW5jbHVkZSAiRG9j
dW1lbnRUaHJlYWRhYmxlTG9hZGVyLmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1ZGUg
IkV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKICNpbmNsdWRlICJGb3JtRGF0YS5o
IgogI2luY2x1ZGUgIkZyYW1lLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCmluZGV4IDllOGRmMmVjYjAxMDQ4MzYxYjI0
NGY4NTBmOWJjZWM5OWE1MTllMTkuLjZkMzFjODFmZGUxMjgwZDI0NTM5YjljOWZiMmUwMjg5N2Nh
YjM5NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVj
dG9yRE9NQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yRE9NQWdlbnQuY3BwCkBAIC01NSw3ICs1NSw3IEBACiAjaW5jbHVkZSAiRE9NRXhjZXB0
aW9uLmgiCiAjaW5jbHVkZSAiRE9NUGF0Y2hTdXBwb3J0LmgiCiAjaW5jbHVkZSAiRE9NV2luZG93
LmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIK
ICNpbmNsdWRlICJEb2N1bWVudFR5cGUuaCIKICNpbmNsdWRlICJFZGl0aW5nLmgiCiAjaW5jbHVk
ZSAiRWxlbWVudC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50
cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwCmluZGV4IDM3NDY4NDMyNTc3ZjY0ZTNkMThi
YzM2NjdjYTI5OGY0M2EzYmY1MDMuLjg0YjE2MzcwMTRlZjU2ZGFlOGJjZWYwZDcyNDk1NjJkMjBk
MGRkZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVj
dG9yTmV0d29ya0FnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRz
L0luc3BlY3Rvck5ldHdvcmtBZ2VudC5jcHAKQEAgLTQwLDcgKzQwLDcgQEAKICNpbmNsdWRlICJD
YWNoZWRTY3JpcHQuaCIKICNpbmNsdWRlICJDZXJ0aWZpY2F0ZUluZm8uaCIKICNpbmNsdWRlICJD
ZXJ0aWZpY2F0ZVN1bW1hcnkuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRv
Y3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAi
RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmgiCiAjaW5jbHVkZSAiRm9ybURhdGEuaCIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbk9wZW5lclBvbGljeS5oIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luT3BlbmVyUG9saWN5LmgKaW5kZXggOTQ2
NDc0YjU4NTgxOTNiMGIzMDZjOTJlMWY1YjJlOGJjMWZhYzliYy4uNThjN2JiNzkzODhhYzZmMDNm
MmM4MjBkODk2OGZhNGEzNTIxZmY0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0Nyb3NzT3JpZ2luT3BlbmVyUG9saWN5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Ny
b3NzT3JpZ2luT3BlbmVyUG9saWN5LmgKQEAgLTI1LDE1ICsyNSwxNiBAQAogCiAjcHJhZ21hIG9u
Y2UKIAotI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSA8d3RmL1VSTC5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIENvbnRlbnRTZWN1cml0eVBvbGljeTsKK2NsYXNzIEZyYW1lOwogY2xhc3MgUmVzb3Vy
Y2VSZXNwb25zZTsKIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CitjbGFzcyBTZWN1cml0
eU9yaWdpbjsKIAogc3RydWN0IE5hdmlnYXRpb25SZXF1ZXN0ZXI7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmluZGV4IGY5ZjM5MmNiODRkODIwMmIyYjllY2VmMGRl
MTY0NTE4MDNmMzdiNjMuLjk5Yzk3OGRjYjNjNjRjZGU2OTY1MzliZGY5YWI1YzViNGRmMjc4NTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcApAQCAtMjQwMCw3ICsy
NDAwLDcgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6c2VuZENTUFZpb2xhdGlvblJlcG9ydChVUkwm
JiByZXBvcnRVUkwsIFJlZjxGb3JtRGF0YT4mJiByZXAKICAgICBQaW5nTG9hZGVyOjpzZW5kVmlv
bGF0aW9uUmVwb3J0KCptX2ZyYW1lLCBXVEZNb3ZlKHJlcG9ydFVSTCksIFdURk1vdmUocmVwb3J0
KSwgVmlvbGF0aW9uUmVwb3J0VHlwZTo6Q29udGVudFNlY3VyaXR5UG9saWN5KTsKIH0KIAotdm9p
ZCBEb2N1bWVudExvYWRlcjo6ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQoU2Vj
dXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6SW5pdCYmIGV2ZW50SW5pdCkKK3ZvaWQgRG9jdW1l
bnRMb2FkZXI6OmVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50KFNlY3VyaXR5UG9s
aWN5VmlvbGF0aW9uRXZlbnRJbml0JiYgZXZlbnRJbml0KQogewogICAgIG1fZnJhbWUtPmRvY3Vt
ZW50KCktPmVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50KFdURk1vdmUoZXZlbnRJ
bml0KSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2Fk
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5oCmluZGV4IDlmYzQx
MzdhNjkwMGUyNGExYTgyY2VjN2NjNzU3OTNkMzQ3ZTk4MTIuLjRmYmZkNzEyMDE5OWQyN2NmYTg3
YmRkNTk2NzM3MTA2YmNlMDhkYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9E
b2N1bWVudExvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRl
ci5oCkBAIC01MjIsNyArNTIyLDcgQEAgcHJpdmF0ZToKICAgICAvLyBDb250ZW50U2VjdXJpdHlQ
b2xpY3lDbGllbnQKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFkZENvbnNvbGVNZXNzYWdlKE1l
c3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiwgdW5zaWduZWQgbG9uZyBy
ZXF1ZXN0SWRlbnRpZmllcikgZmluYWw7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZW5kQ1NQ
VmlvbGF0aW9uUmVwb3J0KFVSTCYmLCBSZWY8Rm9ybURhdGE+JiYpIGZpbmFsOwotICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQoU2VjdXJp
dHlQb2xpY3lWaW9sYXRpb25FdmVudDo6SW5pdCYmKSBmaW5hbDsKKyAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIGVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50KFNlY3VyaXR5UG9saWN5
VmlvbGF0aW9uRXZlbnRJbml0JiYpIGZpbmFsOwogCiAgICAgYm9vbCBkaXNhbGxvd1dlYkFyY2hp
dmUoKSBjb25zdDsKICAgICBib29sIGRpc2FsbG93RGF0YVJlcXVlc3QoKSBjb25zdDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFdyaXRlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRXcml0ZXIuY3BwCmluZGV4IDg5MDk1ZmUzZGU3MzI4OGUy
NzMxYzEyYWYzZDI2MTY4ZjdjYzM1MzAuLjQzMmJkMTJiMzJjZThjMGY3NGIyMGYxMWYzZjI4OWU4
ZGU3YzcxYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFdyaXRl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50V3JpdGVyLmNwcApAQCAt
MzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeS5oIgogI2luY2x1
ZGUgIkRPTUltcGxlbWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCisjaW5jbHVk
ZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNs
dWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRm9ybVN1Ym1pc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0Zvcm1TdWJtaXNzaW9uLmNwcAppbmRleCA2ODNmODRjMjU0MTVkM2VjMzQ2N2UwODEwOGI4
MTNmNWE3MWE4MjM5Li5hZTkyYWRkODc1NjA1MWQwNTZhMjMwMmRkY2JjNDg5YjEwZTc0ODQyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRm9ybVN1Ym1pc3Npb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Gb3JtU3VibWlzc2lvbi5jcHAKQEAgLTM0LDcgKzM0LDcg
QEAKIAogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeS5oIgogI2luY2x1ZGUgIkRPTUZv
cm1EYXRhLmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGlu
ZXMuaCIKICNpbmNsdWRlICJFbGVtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAj
aW5jbHVkZSAiRm9ybURhdGEuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmlu
ZGV4IGZjYjIyMDJmODI4MTBhZjJhNGY4ZDllNDUxY2I1NzRmYTBhN2ZkNDMuLmMzYmIzNDZhMzk0
N2M1ODk4M2VlOWQ5ZjhlYjA0Yzk5MjgwMzYxNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyLmNwcApAQCAtNTUsNyArNTUsNyBAQAogI2luY2x1ZGUgIkRhdGFiYXNlTWFuYWdlci5o
IgogI2luY2x1ZGUgIkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgiCiAjaW5jbHVkZSAiRGlhZ25v
c3RpY0xvZ2dpbmdLZXlzLmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1
bWVudElubGluZXMuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkVk
aXRvci5oIgogI2luY2x1ZGUgIkVkaXRvckNsaWVudC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggMTA3ZjMyNDY0
Y2QxZDNiYjkyM2MyYTlmNzUzMGRhZmViNWIxNzhlOS4uMzZlZTMyNzVkNjkyMDdlNDUwMjE2MmYw
YWJhZWI4OGU1OGViYzc1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC01MCw3ICs1MCw3IEBACiAjaW5jbHVkZSAi
RGF0ZUNvbXBvbmVudHMuaCIKICNpbmNsdWRlICJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIgog
I2luY2x1ZGUgIkRpYWdub3N0aWNMb2dnaW5nS2V5cy5oIgotI2luY2x1ZGUgIkRvY3VtZW50Lmgi
CisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIu
aCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCA0Y2ZjYjE2ODFmMTczMDlhYzRhN2ZjMGIyMTlhY2Vm
OTU5NTdiNzlkLi5jY2JkZmE0OTYzZTQwMzk2Yzc5ZWE5NjM5Y2I1YTA3OWI0ZjNlZDI2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTUwMyw3ICs1MDMsNyBAQCBwdWJsaWM6CiAK
ICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVXNlVGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3KGNvbnN0
IEZyYW1lVmlldyYpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQg
aXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzKSB7
IH0KKyAgICB2aXJ0dWFsIHZvaWQgaXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoTWVkaWFQcm9kdWNl
ck1lZGlhU3RhdGVGbGFncykgeyB9CiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZUF1dG9wbGF5RXZl
bnQoQXV0b3BsYXlFdmVudCwgT3B0aW9uU2V0PEF1dG9wbGF5RXZlbnRGbGFncz4pIHsgfQogCiAj
aWYgRU5BQkxFKFdFQl9DUllQVE8pCkBAIC01MzQsNyArNTM0LDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBhZGRQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudChQbGF5YmFja1RhcmdldENs
aWVudENvbnRleHRJZGVudGlmaWVyKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlUGxheWJh
Y2tUYXJnZXRQaWNrZXJDbGllbnQoUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmll
cikgeyB9CiAgICAgdmlydHVhbCB2b2lkIHNob3dQbGF5YmFja1RhcmdldFBpY2tlcihQbGF5YmFj
a1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyLCBjb25zdCBJbnRQb2ludCYsIGJvb2wgLypp
c1ZpZGVvKi8pIHsgfQotICAgIHZpcnR1YWwgdm9pZCBwbGF5YmFja1RhcmdldFBpY2tlckNsaWVu
dFN0YXRlRGlkQ2hhbmdlKFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIsIE1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncykgeyB9CisgICAgdmlydHVhbCB2b2lkIHBsYXli
YWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UoUGxheWJhY2tUYXJnZXRDbGllbnRD
b250ZXh0SWRlbnRpZmllciwgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncykgeyB9CiAgICAg
dmlydHVhbCB2b2lkIHNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyRW5hYmxlZChib29s
KSAgeyB9CiAgICAgdmlydHVhbCB2b2lkIHNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2Vy
U3RhdGUoY29uc3QgU3RyaW5nJiwgTWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ6Ok1vY2tTdGF0
ZSkgeyB9CiAgICAgdmlydHVhbCB2b2lkIG1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyRGlz
bWlzc1BvcHVwKCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFu
ZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggZTAw
NWNlZGZmY2RlYzFkYWQ5MWFmZmU4NmVlYWIyMmQzODM1ZDk5MC4uN2Y5ZDhlYzQ1NGMwMzVmMjAy
NTljZTg5ODI0YzY1N2Y1YWYxZTJmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9F
dmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNw
cApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkNvbXBvc2VkVHJlZUFuY2VzdG9ySXRlcmF0
b3IuaCIKICNpbmNsdWRlICJDb21wb3NlZFRyZWVJdGVyYXRvci5oIgogI2luY2x1ZGUgIkN1cnNv
ckxpc3QuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJEb2N1bWVu
dE1hcmtlckNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJEcmFnQ29udHJvbGxlci5oIgogI2luY2x1
ZGUgIkRyYWdFdmVudC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0Nv
bnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCmlu
ZGV4IGJlNzZlMWJkMjc3NTUxMzFkMDgzMTZmMmQzYmU5OWJjY2E2OGRjMWYuLmExMWEzYjM0OGFi
YTM5OWY2NDg3NmRlNDk2OTIxZGZlOGYwZDY0M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3Vz
Q29udHJvbGxlci5jcHAKQEAgLTMwLDcgKzMwLDcgQEAKICNpbmNsdWRlICJBWE9iamVjdENhY2hl
LmgiCiAjaW5jbHVkZSAiQ2hyb21lLmgiCiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCi0jaW5j
bHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRl
ICJFZGl0aW5nLmgiCiAjaW5jbHVkZSAiRWRpdG9yLmgiCiAjaW5jbHVkZSAiRWRpdG9yQ2xpZW50
LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCmluZGV4IDhjNDM3N2NiOTU0YTBiMWEwODllNTJlZmFkOGE0
MWQ5MTA1OGE4ZjcuLmZkMzMzNjhhZDIxZGM1NTk2NzRiM2E3YTY4ZDIzMzRjZTRmMTMzOWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWUuY3BwCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAiQ2hyb21lQ2xp
ZW50LmgiCiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRUaW1lbGlu
ZS5oIgorI2luY2x1ZGUgIkRvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlci5oIgogI2luY2x1ZGUg
IkRvY3VtZW50VHlwZS5oIgogI2luY2x1ZGUgIkVkaXRpbmcuaCIKICNpbmNsdWRlICJFZGl0b3Iu
aCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCA1NGE1YWMwMDBlMjdjOTJkYTk0MGU5
ZjNhNzMxMmM3YjljZWU2ZjZjLi5kNWViM2FlZmQxNzZiMTAxYmVlMjNjMDEzYWY0NzFjZjlhNDQ4
OWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0zOCw2ICszOCw3IEBACiAjaW5j
bHVkZSAiRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiRGVidWdQYWdlT3ZlcmxheXMuaCIKICNpbmNs
dWRlICJEZXByZWNhdGVkR2xvYmFsU2V0dGluZ3MuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGlu
ZXMuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50TWFy
a2VyQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50U1ZHLmgiCkBAIC0yMDgyLDcgKzIw
ODMsNyBAQCBib29sIEZyYW1lVmlldzo6dXNlRGFya0FwcGVhcmFuY2UoKSBjb25zdAogICAgIHJl
dHVybiBmYWxzZTsKIH0KIAotT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IEZyYW1lVmll
dzo6c3R5bGVDb2xvck9wdGlvbnMoKSBjb25zdAorT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25z
PiBGcmFtZVZpZXc6OnN0eWxlQ29sb3JPcHRpb25zKCkgY29uc3QKIHsKICNpZiBFTkFCTEUoREFS
S19NT0RFX0NTUykKICAgICBpZiAoYXV0byogcmVuZGVyZXIgPSByZW5kZXJlckZvckNvbG9yU2No
ZW1lKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAppbmRleCBkOWQ0OGFmNWY3ZDE0OTc3ZjNhNTBk
ZTU2NTk5M2VkZTNkNTJhMzE4Li45N2FkZWIxMDA2ZmM1NTZiOTlmZTU4YWY3MDA4MmM3YjJlYWRj
ODUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKQEAgLTUzOCw3ICs1MzgsNyBAQCBwdWJsaWM6
CiAgICAgYm9vbCBzaG91bGRTZXRDdXJzb3IoKSBjb25zdDsKIAogICAgIFdFQkNPUkVfRVhQT1JU
IGJvb2wgdXNlRGFya0FwcGVhcmFuY2UoKSBjb25zdCBmaW5hbDsKLSAgICBPcHRpb25TZXQ8U3R5
bGVDb2xvcjo6T3B0aW9ucz4gc3R5bGVDb2xvck9wdGlvbnMoKSBjb25zdDsKKyAgICBPcHRpb25T
ZXQ8U3R5bGVDb2xvck9wdGlvbnM+IHN0eWxlQ29sb3JPcHRpb25zKCkgY29uc3Q7CiAKICAgICAv
LyBGSVhNRTogUmVtb3ZlIHRoaXMgbWV0aG9kIG9uY2UgcGx1Z2luIGxvYWRpbmcgaXMgZGVjb3Vw
bGVkIGZyb20gbGF5b3V0LgogICAgIHZvaWQgZmx1c2hBbnlQZW5kaW5nUG9zdExheW91dFRhc2tz
KCk7CkBAIC05NTUsNyArOTU1LDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgbV9pc1RyYW5zcGFy
ZW50IHsgZmFsc2UgfTsKICNpZiBFTkFCTEUoREFSS19NT0RFX0NTUykKLSAgICBPcHRpb25TZXQ8
U3R5bGVDb2xvcjo6T3B0aW9ucz4gbV9zdHlsZUNvbG9yT3B0aW9uczsKKyAgICBPcHRpb25TZXQ8
U3R5bGVDb2xvck9wdGlvbnM+IG1fc3R5bGVDb2xvck9wdGlvbnM7CiAjZW5kaWYKIAogICAgIGJv
b2wgbV9pc1RyYWNraW5nUmVwYWludHMgeyBmYWxzZSB9OyAvLyBVc2VkIGZvciB0ZXN0aW5nLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9NZWRpYVByb2R1Y2VyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL01lZGlhUHJvZHVjZXIuaAppbmRleCA4MGFkNWFlZWZhZGY5ZWNiODM2Yjkx
MjNjMzhjNTQwZTZmNGMxNTE3Li40ZTE5ZThjZDcxYTY1MjlmOThhZjY0ODJlNmNhNWEwNTJiMWY3
MzkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL01lZGlhUHJvZHVjZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL01lZGlhUHJvZHVjZXIuaApAQCAtMzEsMzIgKzMxLDUyIEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorZW51bSBjbGFzcyBNZWRpYVByb2R1Y2VyTWVkaWFT
dGF0ZSA6IHVpbnQzMl90IHsKKyAgICBJc1BsYXlpbmdBdWRpbyA9IDEgPDwgMCwKKyAgICBJc1Bs
YXlpbmdWaWRlbyA9IDEgPDwgMSwKKyAgICBJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlID0gMSA8
PCAyLAorICAgIFJlcXVpcmVzUGxheWJhY2tUYXJnZXRNb25pdG9yaW5nID0gMSA8PCAzLAorICAg
IEV4dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUgPSAxIDw8IDQsCisgICAgRGlkUGxheVRv
RW5kID0gMSA8PCA1LAorICAgIElzU291cmNlRWxlbWVudFBsYXlpbmcgPSAxIDw8IDYsCisgICAg
SXNOZXh0VHJhY2tDb250cm9sRW5hYmxlZCA9IDEgPDwgNywKKyAgICBJc1ByZXZpb3VzVHJhY2tD
b250cm9sRW5hYmxlZCA9IDEgPDwgOCwKKyAgICBIYXNQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0
eUxpc3RlbmVyID0gMSA8PCA5LAorICAgIEhhc0F1ZGlvT3JWaWRlbyA9IDEgPDwgMTAsCisgICAg
SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlID0gMSA8PCAxMSwKKyAgICBIYXNBY3RpdmVWaWRl
b0NhcHR1cmVEZXZpY2UgPSAxIDw8IDEyLAorICAgIEhhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNl
ID0gMSA8PCAxMywKKyAgICBIYXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZSA9IDEgPDwgMTQsCisg
ICAgSGFzSW50ZXJydXB0ZWRBdWRpb0NhcHR1cmVEZXZpY2UgPSAxIDw8IDE1LAorICAgIEhhc0lu
dGVycnVwdGVkVmlkZW9DYXB0dXJlRGV2aWNlID0gMSA8PCAxNiwKKyAgICBIYXNVc2VySW50ZXJh
Y3RlZFdpdGhNZWRpYUVsZW1lbnQgPSAxIDw8IDE3LAorICAgIEhhc0FjdGl2ZURpc3BsYXlDYXB0
dXJlRGV2aWNlID0gMSA8PCAxOCwKKyAgICBIYXNNdXRlZERpc3BsYXlDYXB0dXJlRGV2aWNlID0g
MSA8PCAxOSwKKyAgICBIYXNJbnRlcnJ1cHRlZERpc3BsYXlDYXB0dXJlRGV2aWNlID0gMSA8PCAy
MCwKK307Cit1c2luZyBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzID0gT3B0aW9uU2V0PE1l
ZGlhUHJvZHVjZXJNZWRpYVN0YXRlPjsKKworZW51bSBjbGFzcyBNZWRpYVByb2R1Y2VyTWVkaWFD
YXB0dXJlS2luZCA6IHVpbnQ4X3QgeworICAgIEF1ZGlvLAorICAgIFZpZGVvLAorICAgIEF1ZGlv
VmlkZW8KK307CisKK2VudW0gY2xhc3MgTWVkaWFQcm9kdWNlck11dGVkU3RhdGUgOiB1aW50OF90
IHsKKyAgICBBdWRpb0lzTXV0ZWQgPSAxIDw8IDAsCisgICAgQXVkaW9DYXB0dXJlSXNNdXRlZCA9
IDEgPDwgMSwKKyAgICBWaWRlb0NhcHR1cmVJc011dGVkID0gMSA8PCAyLAorICAgIFNjcmVlbkNh
cHR1cmVJc011dGVkID0gMSA8PCAzLAorfTsKK3VzaW5nIE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRl
RmxhZ3MgPSBPcHRpb25TZXQ8TWVkaWFQcm9kdWNlck11dGVkU3RhdGU+OworCiBjbGFzcyBNZWRp
YVByb2R1Y2VyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPE1lZGlhUHJvZHVjZXI+IHsKIHB1Ymxp
YzoKLSAgICBlbnVtIGNsYXNzIE1lZGlhU3RhdGUgewotICAgICAgICBJc1BsYXlpbmdBdWRpbyA9
IDEgPDwgMCwKLSAgICAgICAgSXNQbGF5aW5nVmlkZW8gPSAxIDw8IDEsCi0gICAgICAgIElzUGxh
eWluZ1RvRXh0ZXJuYWxEZXZpY2UgPSAxIDw8IDIsCi0gICAgICAgIFJlcXVpcmVzUGxheWJhY2tU
YXJnZXRNb25pdG9yaW5nID0gMSA8PCAzLAotICAgICAgICBFeHRlcm5hbERldmljZUF1dG9QbGF5
Q2FuZGlkYXRlID0gMSA8PCA0LAotICAgICAgICBEaWRQbGF5VG9FbmQgPSAxIDw8IDUsCi0gICAg
ICAgIElzU291cmNlRWxlbWVudFBsYXlpbmcgPSAxIDw8IDYsCi0gICAgICAgIElzTmV4dFRyYWNr
Q29udHJvbEVuYWJsZWQgPSAxIDw8IDcsCi0gICAgICAgIElzUHJldmlvdXNUcmFja0NvbnRyb2xF
bmFibGVkID0gMSA8PCA4LAotICAgICAgICBIYXNQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUxp
c3RlbmVyID0gMSA8PCA5LAotICAgICAgICBIYXNBdWRpb09yVmlkZW8gPSAxIDw8IDEwLAotICAg
ICAgICBIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UgPSAxIDw8IDExLAotICAgICAgICBIYXNB
Y3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UgPSAxIDw8IDEyLAotICAgICAgICBIYXNNdXRlZEF1ZGlv
Q2FwdHVyZURldmljZSA9IDEgPDwgMTMsCi0gICAgICAgIEhhc011dGVkVmlkZW9DYXB0dXJlRGV2
aWNlID0gMSA8PCAxNCwKLSAgICAgICAgSGFzSW50ZXJydXB0ZWRBdWRpb0NhcHR1cmVEZXZpY2Ug
PSAxIDw8IDE1LAotICAgICAgICBIYXNJbnRlcnJ1cHRlZFZpZGVvQ2FwdHVyZURldmljZSA9IDEg
PDwgMTYsCi0gICAgICAgIEhhc1VzZXJJbnRlcmFjdGVkV2l0aE1lZGlhRWxlbWVudCA9IDEgPDwg
MTcsCi0gICAgICAgIEhhc0FjdGl2ZURpc3BsYXlDYXB0dXJlRGV2aWNlID0gMSA8PCAxOCwKLSAg
ICAgICAgSGFzTXV0ZWREaXNwbGF5Q2FwdHVyZURldmljZSA9IDEgPDwgMTksCi0gICAgICAgIEhh
c0ludGVycnVwdGVkRGlzcGxheUNhcHR1cmVEZXZpY2UgPSAxIDw8IDIwLAotICAgIH07Ci0gICAg
dXNpbmcgTWVkaWFTdGF0ZUZsYWdzID0gT3B0aW9uU2V0PE1lZGlhU3RhdGU+OworICAgIHVzaW5n
IE1lZGlhU3RhdGUgPSBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTsKKyAgICB1c2luZyBNdXRlZFN0
YXRlID0gTWVkaWFQcm9kdWNlck11dGVkU3RhdGU7CisgICAgdXNpbmcgTWVkaWFTdGF0ZUZsYWdz
ID0gTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFnczsKKyAgICB1c2luZyBNdXRlZFN0YXRlRmxh
Z3MgPSBNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZUZsYWdzOworCiAgICAgc3RhdGljIGNvbnN0ZXhw
ciBNZWRpYVN0YXRlRmxhZ3MgSXNOb3RQbGF5aW5nID0geyB9OwogICAgIHN0YXRpYyBjb25zdGV4
cHIgTWVkaWFTdGF0ZUZsYWdzIEF1ZGlvQ2FwdHVyZU1hc2sgPSB7IE1lZGlhU3RhdGU6Okhhc0Fj
dGl2ZUF1ZGlvQ2FwdHVyZURldmljZSwgTWVkaWFTdGF0ZTo6SGFzTXV0ZWRBdWRpb0NhcHR1cmVE
ZXZpY2UsIE1lZGlhU3RhdGU6Okhhc0ludGVycnVwdGVkQXVkaW9DYXB0dXJlRGV2aWNlIH07CiAg
ICAgc3RhdGljIGNvbnN0ZXhwciBNZWRpYVN0YXRlRmxhZ3MgVmlkZW9DYXB0dXJlTWFzayA9IHsg
TWVkaWFTdGF0ZTo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlLCBNZWRpYVN0YXRlOjpIYXNN
dXRlZFZpZGVvQ2FwdHVyZURldmljZSwgTWVkaWFTdGF0ZTo6SGFzSW50ZXJydXB0ZWRWaWRlb0Nh
cHR1cmVEZXZpY2UgfTsKQEAgLTY5LDIwICs4OSw2IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwg
TWVkaWFTdGF0ZUZsYWdzIG1lZGlhU3RhdGUoKSBjb25zdCA9IDA7CiAKLSAgICBlbnVtIGNsYXNz
IE1lZGlhQ2FwdHVyZUtpbmQgewotICAgICAgICBBdWRpbywKLSAgICAgICAgVmlkZW8sCi0gICAg
ICAgIEF1ZGlvVmlkZW8KLSAgICB9OwotCi0gICAgZW51bSBjbGFzcyBNdXRlZFN0YXRlIHsKLSAg
ICAgICAgQXVkaW9Jc011dGVkID0gMSA8PCAwLAotICAgICAgICBBdWRpb0NhcHR1cmVJc011dGVk
ID0gMSA8PCAxLAotICAgICAgICBWaWRlb0NhcHR1cmVJc011dGVkID0gMSA8PCAyLAotICAgICAg
ICBTY3JlZW5DYXB0dXJlSXNNdXRlZCA9IDEgPDwgMywKLSAgICB9OwotCi0gICAgdXNpbmcgTXV0
ZWRTdGF0ZUZsYWdzID0gT3B0aW9uU2V0PE11dGVkU3RhdGU+OwogICAgIHN0YXRpYyBjb25zdGV4
cHIgTXV0ZWRTdGF0ZUZsYWdzIEF1ZGlvQW5kVmlkZW9DYXB0dXJlSXNNdXRlZCA9IHsgTXV0ZWRT
dGF0ZTo6QXVkaW9DYXB0dXJlSXNNdXRlZCwgTXV0ZWRTdGF0ZTo6VmlkZW9DYXB0dXJlSXNNdXRl
ZCB9OwogICAgIHN0YXRpYyBjb25zdGV4cHIgTXV0ZWRTdGF0ZUZsYWdzIE1lZGlhU3RyZWFtQ2Fw
dHVyZUlzTXV0ZWQgPSB7IE11dGVkU3RhdGU6OkF1ZGlvQ2FwdHVyZUlzTXV0ZWQsIE11dGVkU3Rh
dGU6OlZpZGVvQ2FwdHVyZUlzTXV0ZWQsIE11dGVkU3RhdGU6OlNjcmVlbkNhcHR1cmVJc011dGVk
IH07CiAKQEAgLTk2LDQ5ICsxMDIsNDkgQEAgcHJvdGVjdGVkOgogCiBuYW1lc3BhY2UgV1RGIHsK
IAotdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpN
ZWRpYUNhcHR1cmVLaW5kPiB7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kPiB7CiAgICAgdXNpbmcgdmFsdWVzID0gRW51
bVZhbHVlczwKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2lu
ZCwKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZDo6QXVk
aW8sCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQ6OlZp
ZGVvLAotICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpB
dWRpb1ZpZGVvCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5k
LAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZDo6QXVkaW8s
CisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kOjpWaWRlbywK
KyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvVmlk
ZW8KICAgICA+OwogfTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlPiB7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRz
PFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlPiB7CiAgICAgdXNpbmcgdmFsdWVzID0g
RW51bVZhbHVlczwKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZSwK
LSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVk
aW8sCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWlu
Z1ZpZGVvLAotICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1Bs
YXlpbmdUb0V4dGVybmFsRGV2aWNlLAotICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpN
ZWRpYVN0YXRlOjpSZXF1aXJlc1BsYXliYWNrVGFyZ2V0TW9uaXRvcmluZywKLSAgICAgICAgV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6RXh0ZXJuYWxEZXZpY2VBdXRvUGxheUNh
bmRpZGF0ZSwKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6RGlk
UGxheVRvRW5kLAotICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJ
c1NvdXJjZUVsZW1lbnRQbGF5aW5nLAotICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpN
ZWRpYVN0YXRlOjpJc05leHRUcmFja0NvbnRyb2xFbmFibGVkLAotICAgICAgICBXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1ByZXZpb3VzVHJhY2tDb250cm9sRW5hYmxlZCwK
LSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzUGxheWJhY2tU
YXJnZXRBdmFpbGFiaWxpdHlMaXN0ZW5lciwKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNl
cjo6TWVkaWFTdGF0ZTo6SGFzQXVkaW9PclZpZGVvLAotICAgICAgICBXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UsCi0gICAgICAg
IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZVZpZGVvQ2FwdHVy
ZURldmljZSwKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFz
TXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2UsCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6
Ok1lZGlhU3RhdGU6Okhhc011dGVkVmlkZW9DYXB0dXJlRGV2aWNlLAotICAgICAgICBXZWJDb3Jl
OjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNJbnRlcnJ1cHRlZEF1ZGlvQ2FwdHVyZURl
dmljZSwKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzSW50
ZXJydXB0ZWRWaWRlb0NhcHR1cmVEZXZpY2UsCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGU6Okhhc1VzZXJJbnRlcmFjdGVkV2l0aE1lZGlhRWxlbWVudCwKLSAgICAg
ICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZlRGlzcGxheUNh
cHR1cmVEZXZpY2UsCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6
Okhhc011dGVkRGlzcGxheUNhcHR1cmVEZXZpY2UsCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0ludGVycnVwdGVkRGlzcGxheUNhcHR1cmVEZXZpY2UKKyAg
ICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGUsCisgICAgICAgIFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbywKKyAgICAgICAgV2ViQ29y
ZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvLAorICAgICAgICBXZWJD
b3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nVG9FeHRlcm5hbERldmljZSwK
KyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OlJlcXVpcmVzUGxheWJh
Y2tUYXJnZXRNb25pdG9yaW5nLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFT
dGF0ZTo6RXh0ZXJuYWxEZXZpY2VBdXRvUGxheUNhbmRpZGF0ZSwKKyAgICAgICAgV2ViQ29yZTo6
TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OkRpZFBsYXlUb0VuZCwKKyAgICAgICAgV2ViQ29yZTo6
TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzU291cmNlRWxlbWVudFBsYXlpbmcsCisgICAgICAg
IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc05leHRUcmFja0NvbnRyb2xFbmFi
bGVkLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQcmV2aW91
c1RyYWNrQ29udHJvbEVuYWJsZWQsCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRp
YVN0YXRlOjpIYXNQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVyLAorICAgICAgICBX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQXVkaW9PclZpZGVvLAorICAgICAg
ICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJl
RGV2aWNlLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQWN0
aXZlVmlkZW9DYXB0dXJlRGV2aWNlLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVk
aWFTdGF0ZTo6SGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2UsCisgICAgICAgIFdlYkNvcmU6Ok1l
ZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZSwKKyAgICAg
ICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0ludGVycnVwdGVkQXVkaW9D
YXB0dXJlRGV2aWNlLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6
SGFzSW50ZXJydXB0ZWRWaWRlb0NhcHR1cmVEZXZpY2UsCisgICAgICAgIFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNVc2VySW50ZXJhY3RlZFdpdGhNZWRpYUVsZW1lbnQsCisg
ICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBY3RpdmVEaXNwbGF5
Q2FwdHVyZURldmljZSwKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6
Okhhc011dGVkRGlzcGxheUNhcHR1cmVEZXZpY2UsCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXJNZWRpYVN0YXRlOjpIYXNJbnRlcnJ1cHRlZERpc3BsYXlDYXB0dXJlRGV2aWNlCiAgICAg
PjsKIH07CiAKLXRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6TWVkaWFQcm9k
dWNlcjo6TXV0ZWRTdGF0ZT4gewordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3Jl
OjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZT4gewogICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1
ZXM8Ci0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGUsCi0gICAgICAg
IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGU6OkF1ZGlvSXNNdXRlZCwKLSAgICAg
ICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6QXVkaW9DYXB0dXJlSXNNdXRl
ZCwKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6VmlkZW9DYXB0
dXJlSXNNdXRlZCwKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6
U2NyZWVuQ2FwdHVyZUlzTXV0ZWQKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVk
U3RhdGUsCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlOjpBdWRpb0lz
TXV0ZWQsCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlOjpBdWRpb0Nh
cHR1cmVJc011dGVkLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZTo6
VmlkZW9DYXB0dXJlSXNNdXRlZCwKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVk
U3RhdGU6OlNjcmVlbkNhcHR1cmVJc011dGVkCiAgICAgPjsKIH07CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3Bw
CmluZGV4IDg4NTMzYjNkMmIzNzE4MmUxNjA1MmZlZDEyOTM2OGE0NmU0MjI5YWYuLmNmMTcwMTNl
NWQ2ODZmMDFkNTIyZDZkNjc3OTY0ODJmNTllZTRjZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAt
NTAsNiArNTAsNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRG9j
dW1lbnRNYXJrZXJDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRUaW1lbGluZS5oIgor
I2luY2x1ZGUgIkRvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkRyYWdD
b250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRWRpdGluZy5oIgogI2luY2x1ZGUgIkVkaXRvci5oIgpA
QCAtMjE3MCw3ICsyMTcxLDcgQEAgdm9pZCBQYWdlOjpzdG9yYWdlQmxvY2tpbmdTdGF0ZUNoYW5n
ZWQoKQogCiB2b2lkIFBhZ2U6OnVwZGF0ZUlzUGxheWluZ01lZGlhKCkKIHsKLSAgICBNZWRpYVBy
b2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGU7CisgICAgTWVkaWFQcm9kdWNlck1lZGlhU3Rh
dGVGbGFncyBzdGF0ZTsKICAgICBmb3JFYWNoRG9jdW1lbnQoWyZdKGF1dG8mIGRvY3VtZW50KSB7
CiAgICAgICAgIHN0YXRlLmFkZChkb2N1bWVudC5tZWRpYVN0YXRlKCkpOwogICAgIH0pOwpAQCAt
MjIwOCw3ICsyMjA5LDcgQEAgdm9pZCBQYWdlOjpwbGF5YmFja0NvbnRyb2xzTWVkaWFFbmdpbmVD
aGFuZ2VkKCkKIAogI2VuZGlmCiAKLXZvaWQgUGFnZTo6c2V0TXV0ZWQoTWVkaWFQcm9kdWNlcjo6
TXV0ZWRTdGF0ZUZsYWdzIG11dGVkKQordm9pZCBQYWdlOjpzZXRNdXRlZChNZWRpYVByb2R1Y2Vy
TXV0ZWRTdGF0ZUZsYWdzIG11dGVkKQogewogICAgIG1fbXV0ZWRTdGF0ZSA9IG11dGVkOwogCkBA
IC0yMjE3LDcgKzIyMTgsNyBAQCB2b2lkIFBhZ2U6OnNldE11dGVkKE1lZGlhUHJvZHVjZXI6Ok11
dGVkU3RhdGVGbGFncyBtdXRlZCkKICAgICB9KTsKIH0KIAotdm9pZCBQYWdlOjpzdG9wTWVkaWFD
YXB0dXJlKE1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQga2luZCkKK3ZvaWQgUGFnZTo6
c3RvcE1lZGlhQ2FwdHVyZShNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZCBraW5kKQogewog
ICAgIFVOVVNFRF9QQVJBTShraW5kKTsKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQpAQCAtMzAx
OCw3ICszMDE5LDcgQEAgdm9pZCBQYWdlOjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoUGxheWJh
Y2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciBjb250ZXgKICNlbmRpZgogfQogCi12b2lk
IFBhZ2U6OnBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UoUGxheWJhY2tU
YXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIE1lZGlhUHJvZHVjZXI6Ok1l
ZGlhU3RhdGVGbGFncyBzdGF0ZSkKK3ZvaWQgUGFnZTo6cGxheWJhY2tUYXJnZXRQaWNrZXJDbGll
bnRTdGF0ZURpZENoYW5nZShQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyIGNv
bnRleHRJZCwgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBzdGF0ZSkKIHsKICAgICBjaHJv
bWUoKS5jbGllbnQoKS5wbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKGNv
bnRleHRJZCwgc3RhdGUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCA5NGY4YjhkYTkyMDY5NjM3ODhj
NTE2MTY1M2U1MDVjY2MwMDUzODM5Li5mYTg4OWY0YzRjZmRiMmRkYzNjODQzMzdjNmFjOTE3Y2Uw
YjkyODQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtMTc3LDYgKzE3NywxMiBAQCBlbnVtIGNsYXNzIENh
bldyYXAgOiBib29sOwogZW51bSBjbGFzcyBEaWRXcmFwIDogYm9vbDsKIGVudW0gY2xhc3MgUm91
dGVTaGFyaW5nUG9saWN5IDogdWludDhfdDsKIGVudW0gY2xhc3MgU2hvdWxkVHJlYXRBc0NvbnRp
bnVpbmdMb2FkIDogdWludDhfdDsKK2VudW0gY2xhc3MgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGUg
OiB1aW50MzJfdDsKK2VudW0gY2xhc3MgTWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQgOiB1
aW50OF90OworZW51bSBjbGFzcyBNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZSA6IHVpbnQ4X3Q7CisK
K3VzaW5nIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgPSBPcHRpb25TZXQ8TWVkaWFQcm9k
dWNlck1lZGlhU3RhdGU+OwordXNpbmcgTWVkaWFQcm9kdWNlck11dGVkU3RhdGVGbGFncyA9IE9w
dGlvblNldDxNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZT47CiAKIGVudW0gY2xhc3MgRXZlbnRUaHJv
dHRsaW5nQmVoYXZpb3IgOiBib29sIHsgUmVzcG9uc2l2ZSwgVW5yZXNwb25zaXZlIH07CiBlbnVt
IGNsYXNzIE1haW5GcmFtZU1haW5SZXNvdXJjZSA6IGJvb2wgeyBObywgWWVzIH07CkBAIC03Mjks
MTggKzczNSwxOCBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTZXNzaW9u
SUQoUEFMOjpTZXNzaW9uSUQpOwogICAgIGJvb2wgdXNlc0VwaGVtZXJhbFNlc3Npb24oKSBjb25z
dCB7IHJldHVybiBtX3Nlc3Npb25JRC5pc0VwaGVtZXJhbCgpOyB9CiAKLSAgICBNZWRpYVByb2R1
Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbWVkaWFTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFT
dGF0ZTsgfQorICAgIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgbWVkaWFTdGF0ZSgpIGNv
bnN0IHsgcmV0dXJuIG1fbWVkaWFTdGF0ZTsgfQogICAgIHZvaWQgdXBkYXRlSXNQbGF5aW5nTWVk
aWEoKTsKLSAgICBNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3MgbXV0ZWRTdGF0ZSgpIGNv
bnN0IHsgcmV0dXJuIG1fbXV0ZWRTdGF0ZTsgfQotICAgIGJvb2wgaXNBdWRpb011dGVkKCkgY29u
c3QgeyByZXR1cm4gbV9tdXRlZFN0YXRlLmNvbnRhaW5zKE1lZGlhUHJvZHVjZXI6Ok11dGVkU3Rh
dGU6OkF1ZGlvSXNNdXRlZCk7IH0KLSAgICBib29sIGlzTWVkaWFDYXB0dXJlTXV0ZWQoKSBjb25z
dCB7IHJldHVybiBtX211dGVkU3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlcjo6TWVkaWFT
dHJlYW1DYXB0dXJlSXNNdXRlZCk7IH07CisgICAgTWVkaWFQcm9kdWNlck11dGVkU3RhdGVGbGFn
cyBtdXRlZFN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9tdXRlZFN0YXRlOyB9CisgICAgaW5saW5l
IGJvb2wgaXNBdWRpb011dGVkKCkgY29uc3Q7CisgICAgaW5saW5lIGJvb2wgaXNNZWRpYUNhcHR1
cmVNdXRlZCgpIGNvbnN0OwogICAgIHZvaWQgc2NoZWR1bGVQbGF5YmFja0NvbnRyb2xzTWFuYWdl
clVwZGF0ZSgpOwogI2lmIEVOQUJMRShWSURFTykKICAgICB2b2lkIHBsYXliYWNrQ29udHJvbHNN
ZWRpYUVuZ2luZUNoYW5nZWQoKTsKICNlbmRpZgotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0
TXV0ZWQoTWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZUZsYWdzKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHNldE11dGVkKE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlRmxhZ3MpOwogCi0gICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBzdG9wTWVkaWFDYXB0dXJlKE1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2Fw
dHVyZUtpbmQpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc3RvcE1lZGlhQ2FwdHVyZShNZWRp
YVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZCk7CiAKICAgICBNZWRpYVNlc3Npb25Hcm91cElkZW50
aWZpZXIgbWVkaWFTZXNzaW9uR3JvdXBJZGVudGlmaWVyKCkgY29uc3Q7CiAgICAgV0VCQ09SRV9F
WFBPUlQgYm9vbCBtZWRpYVBsYXliYWNrRXhpc3RzKCk7CkBAIC03NjMsNyArNzY5LDcgQEAgcHVi
bGljOgogICAgIHZvaWQgYWRkUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnQoUGxheWJhY2tUYXJn
ZXRDbGllbnRDb250ZXh0SWRlbnRpZmllcik7CiAgICAgdm9pZCByZW1vdmVQbGF5YmFja1Rhcmdl
dFBpY2tlckNsaWVudChQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyKTsKICAg
ICB2b2lkIHNob3dQbGF5YmFja1RhcmdldFBpY2tlcihQbGF5YmFja1RhcmdldENsaWVudENvbnRl
eHRJZGVudGlmaWVyLCBjb25zdCBJbnRQb2ludCYsIGJvb2wsIFJvdXRlU2hhcmluZ1BvbGljeSwg
Y29uc3QgU3RyaW5nJik7Ci0gICAgdm9pZCBwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRl
RGlkQ2hhbmdlKFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIsIE1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyk7CisgICAgdm9pZCBwbGF5YmFja1RhcmdldFBpY2tlckNs
aWVudFN0YXRlRGlkQ2hhbmdlKFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIs
IE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
c2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJFbmFibGVkKGJvb2wpOwogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJTdGF0ZShjb25z
dCBTdHJpbmcmLCBNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6TW9ja1N0YXRlKTsKICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIG1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyRGlzbWlzc1Bv
cHVwKCk7CkBAIC05OTYsNyArMTAwMiw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2luTG93UXVh
bGl0eUludGVycG9sYXRpb25Nb2RlIHsgZmFsc2UgfTsKICAgICBib29sIG1fYXJlTWVtb3J5Q2Fj
aGVDbGllbnRDYWxsc0VuYWJsZWQgeyB0cnVlIH07CiAgICAgZmxvYXQgbV9tZWRpYVZvbHVtZSB7
IDEgfTsKLSAgICBNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3MgbV9tdXRlZFN0YXRlOwor
ICAgIE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlRmxhZ3MgbV9tdXRlZFN0YXRlOwogCiAgICAgZmxv
YXQgbV9wYWdlU2NhbGVGYWN0b3IgeyAxIH07CiAgICAgZmxvYXQgbV96b29tZWRPdXRQYWdlU2Nh
bGVGYWN0b3IgeyAwIH07CkBAIC0xMTIwLDcgKzExMjYsNyBAQCBwcml2YXRlOgogICAgIGJvb2wg
bV9pc0Nsb3NpbmcgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9pc1Jlc3RvcmluZ0NhY2hlZFBhZ2Ug
eyBmYWxzZSB9OwogCi0gICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1fbWVkaWFT
dGF0ZTsKKyAgICBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIG1fbWVkaWFTdGF0ZTsKIAog
I2lmIEVOQUJMRShWSURFTykKICAgICBUaW1lciBtX3BsYXliYWNrQ29udHJvbHNNYW5hZ2VyVXBk
YXRlVGltZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VJbmxpbmVzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VJbmxpbmVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGRhOTIyNjNh
NzIzMjgzNjU3ZGVmMzlhMzg1MWUyMGQ2NTZkMDcxYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZUlubGluZXMuaApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJNZWRpYVByb2R1Y2VyLmgiCisjaW5jbHVkZSAi
UGFnZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2lubGluZSBib29sIFBhZ2U6OmlzQXVk
aW9NdXRlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fbXV0ZWRTdGF0ZS5jb250YWlucyhNZWRp
YVByb2R1Y2VyTXV0ZWRTdGF0ZTo6QXVkaW9Jc011dGVkKTsKK30KKworaW5saW5lIGJvb2wgUGFn
ZTo6aXNNZWRpYUNhcHR1cmVNdXRlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fbXV0ZWRTdGF0
ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0cmVhbUNhcHR1cmVJc011dGVkKTsK
K30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFsaXplci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmNwcAppbmRleCA3NjNmZjY0
YmY0ZTdlOWUwZmU0NmUxM2Y4ZDgxMzE2ZDhlM2ZhYTZjLi4xYTEyMTBmYTgzMzdjZDk1MjBmNGUw
MTFhOTA3MzY3NTRkZTUxOGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VT
ZXJpYWxpemVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmNw
cApAQCAtMzYsNyArMzYsNyBAQAogI2luY2x1ZGUgIkNTU0ltcG9ydFJ1bGUuaCIKICNpbmNsdWRl
ICJDU1NTdHlsZVJ1bGUuaCIKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgotI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRWxlbWVu
dElubGluZXMuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkhUTUxGcmFtZU93bmVy
RWxlbWVudC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNl
Y3VyaXR5UG9saWN5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0
eVBvbGljeS5jcHAKaW5kZXggMWRiZDE1M2I5NjBlYzJjZDMyNWQ3OTgyMDMzMmQyOGVlYzU2NGMx
My4uMjkwOTE2MDBjYjE5NzdmOWQzMzVjMWVmYWZlYjE5MjhkZWY5MWRjNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCkBAIC0zNiw3
ICszNiw3IEBACiAjaW5jbHVkZSAiQ29udGVudFNlY3VyaXR5UG9saWN5U291cmNlLmgiCiAjaW5j
bHVkZSAiQ29udGVudFNlY3VyaXR5UG9saWN5U291cmNlTGlzdC5oIgogI2luY2x1ZGUgIkRPTVN0
cmluZ0xpc3QuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5s
aW5lcy5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRXZlbnROYW1l
cy5oIgogI2luY2x1ZGUgIkZvcm1EYXRhLmgiCkBAIC03NzUsNyArNzc1LDcgQEAgdm9pZCBDb250
ZW50U2VjdXJpdHlQb2xpY3k6OnJlcG9ydFZpb2xhdGlvbihjb25zdCBTdHJpbmcmIGVmZmVjdGl2
ZVZpb2xhdGVkRGlyZWMKICAgICB1bnNpZ25lZCBzaG9ydCBodHRwU3RhdHVzQ29kZSA9IG1fc2Vs
ZlNvdXJjZVByb3RvY29sID09ICJodHRwIiA/IG1faHR0cFN0YXR1c0NvZGUgOiAwOwogCiAgICAg
Ly8gMS4gRGlzcGF0Y2ggdmlvbGF0aW9uIGV2ZW50LgotICAgIFNlY3VyaXR5UG9saWN5VmlvbGF0
aW9uRXZlbnQ6OkluaXQgdmlvbGF0aW9uRXZlbnRJbml0OworICAgIFNlY3VyaXR5UG9saWN5Vmlv
bGF0aW9uRXZlbnRJbml0IHZpb2xhdGlvbkV2ZW50SW5pdDsKICAgICB2aW9sYXRpb25FdmVudElu
aXQuZG9jdW1lbnRVUkkgPSBpbmZvLmRvY3VtZW50VVJJOwogICAgIHZpb2xhdGlvbkV2ZW50SW5p
dC5yZWZlcnJlciA9IG1fcmVmZXJyZXI7CiAgICAgdmlvbGF0aW9uRXZlbnRJbml0LmJsb2NrZWRV
UkkgPSBibG9ja2VkVVJJOwpAQCAtNzgzLDcgKzc4Myw3IEBAIHZvaWQgQ29udGVudFNlY3VyaXR5
UG9saWN5OjpyZXBvcnRWaW9sYXRpb24oY29uc3QgU3RyaW5nJiBlZmZlY3RpdmVWaW9sYXRlZERp
cmVjCiAgICAgdmlvbGF0aW9uRXZlbnRJbml0LmVmZmVjdGl2ZURpcmVjdGl2ZSA9IGVmZmVjdGl2
ZVZpb2xhdGVkRGlyZWN0aXZlOwogICAgIHZpb2xhdGlvbkV2ZW50SW5pdC5vcmlnaW5hbFBvbGlj
eSA9IHZpb2xhdGVkRGlyZWN0aXZlTGlzdC5oZWFkZXIoKTsKICAgICB2aW9sYXRpb25FdmVudElu
aXQuc291cmNlRmlsZSA9IGluZm8uc291cmNlRmlsZTsKLSAgICB2aW9sYXRpb25FdmVudEluaXQu
ZGlzcG9zaXRpb24gPSB2aW9sYXRlZERpcmVjdGl2ZUxpc3QuaXNSZXBvcnRPbmx5KCkgPyBTZWN1
cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpEaXNwb3NpdGlvbjo6UmVwb3J0IDogU2VjdXJpdHlQ
b2xpY3lWaW9sYXRpb25FdmVudDo6RGlzcG9zaXRpb246OkVuZm9yY2U7CisgICAgdmlvbGF0aW9u
RXZlbnRJbml0LmRpc3Bvc2l0aW9uID0gdmlvbGF0ZWREaXJlY3RpdmVMaXN0LmlzUmVwb3J0T25s
eSgpID8gU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudERpc3Bvc2l0aW9uOjpSZXBvcnQgOiBT
ZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50RGlzcG9zaXRpb246OkVuZm9yY2U7CiAgICAgdmlv
bGF0aW9uRXZlbnRJbml0LnN0YXR1c0NvZGUgPSBodHRwU3RhdHVzQ29kZTsKICAgICB2aW9sYXRp
b25FdmVudEluaXQubGluZU51bWJlciA9ICBpbmZvLmxpbmVOdW1iZXI7CiAgICAgdmlvbGF0aW9u
RXZlbnRJbml0LmNvbHVtbk51bWJlciA9IGluZm8uY29sdW1uTnVtYmVyOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5Q2xpZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3lDbGllbnQuaAppbmRl
eCA4ZTA1MTgyNjQxNDA2ZjJjYzhjYWEyZGM1NmFlMzM2MDYzNGU2YjFlLi5mMmZlNjM4OTQ2NDk2
ZWRiYjMwMzg0NTM5OGZmOWU3Mzk3YzM0YmQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3lDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3lDbGllbnQuaApAQCAtNTEsNyArNTEsNyBA
QCBzdHJ1Y3QgV0VCQ09SRV9FWFBPUlQgQ29udGVudFNlY3VyaXR5UG9saWN5Q2xpZW50IHsKIAog
ICAgIHZpcnR1YWwgdm9pZCBhZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdl
TGV2ZWwsIGNvbnN0IFN0cmluZyYsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAw
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNlbmRDU1BWaW9sYXRpb25SZXBvcnQoVVJMJiYsIFJl
ZjxGb3JtRGF0YT4mJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBlbnF1ZXVlU2VjdXJpdHlQb2xp
Y3lWaW9sYXRpb25FdmVudChTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJbml0JiYpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQo
U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQmJikgPSAwOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVk
aWFQbGF5ZXIuY3BwCmluZGV4IDcyZTRmNjkxYjRmOTUyNTc1ZDkzMTFlNGQwYTdkZTE3Y2ZmMDIz
NjguLmQwYTRmZTRhMjBlMGFlOGQyN2RlM2Q0YjllZTY5ZTUwN2E1YTBlZmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKQEAgLTMwLDcg
KzMwLDYgQEAKIAogI2luY2x1ZGUgIkNvbnRlbnRUeXBlLmgiCiAjaW5jbHVkZSAiRGVwcmVjYXRl
ZEdsb2JhbFNldHRpbmdzLmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJHcmFw
aGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAiTGVnYWN5Q0RN
U2Vzc2lvbi5oIgpAQCAtNDEsNiArNDAsNyBAQAogI2luY2x1ZGUgIlBsYXRmb3JtU2NyZWVuLmgi
CiAjaW5jbHVkZSAiUGxhdGZvcm1UZXh0VHJhY2suaCIKICNpbmNsdWRlICJQbGF0Zm9ybVRpbWVS
YW5nZXMuaCIKKyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0FycmF5QnVmZmVyLmg+CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3
dGYvTmV2ZXJEZXN0cm95ZWQuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJl
YW1lci5jcHAKaW5kZXggNTAwZmRiMGZkY2NjM2UzMTliY2Q2MWFlMjNiNGRlZWUwNWRhOWE1Zi4u
YTE0ODg3ZmM3NzVlMmI5N2I2OWY5YzU5NWFlODI3MGFhZDcxMWM4NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdT
dHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNs
dWRlICJSZXNvdXJjZUVycm9yLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5j
bHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgorI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAj
aW5jbHVkZSA8Y3N0ZGludD4KICNpbmNsdWRlIDx3dGYvQ29uZGl0aW9uLmg+CiAjaW5jbHVkZSA8
d3RmL0RhdGFNdXRleC5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xl
Z2FjeUxpbmVMYXlvdXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xlZ2FjeUxpbmVM
YXlvdXQuY3BwCmluZGV4IDEzYmExNWQ3YTJjZWExNzk5ODVhYTFmN2EwZDUzM2U5Y2Q0NzhmNGMu
LjcxZmIyMjM1YWRlYTdhN2YyNDUxNmY0MjE4YmRhODk1MjdhZDUyYTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lMaW5lTGF5b3V0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5TGluZUxheW91dC5jcHAKQEAgLTI4LDYgKzI4LDcgQEAK
ICNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiQmlkaVJlc29sdmVyLmgiCiAj
aW5jbHVkZSAiQnJlYWtpbmdDb250ZXh0LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgi
CiAjaW5jbHVkZSAiRmxvYXRpbmdPYmplY3RzLmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9t
cy5oIgogI2luY2x1ZGUgIklubGluZUl0ZXJhdG9yQm94LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJsb2NrLmNwcAppbmRleCBkNGQ5ZjJjNzE5ZWJjNDlhZGRiMmJiZWJmZWVjNDFh
ZTFiY2RjZWVlLi5mMTQ0OTgxNDU2ZmZmODg0MWNkYjE0ODVjYmU2NWZjNDhiMjY5NmY2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKQEAgLTI1LDcgKzI1LDcgQEAK
ICNpbmNsdWRlICJSZW5kZXJCbG9jay5oIgogCiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgot
I2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5j
bHVkZSAiRWRpdG9yLmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgogI2luY2x1ZGUgIkV2ZW50UmVn
aW9uLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKaW5kZXgg
ODNhMGVjMzliNDliZTM1OTQ2ZmRkOTE5NGY3ZWFiNDI3NzgzNzNkOS4uMjdmOWQ0ZTMzODY5Mzhm
YTNhZjhiMGE4YTZhMDE5M2JjNGEwZDQ1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJFbGVtZW50LmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkNhY2hlZFJlc291
cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiQ29udGVudERhdGEuaCIKICNpbmNsdWRlICJDdXJzb3JM
aXN0LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRU
aW1lbGluZS5oIgogI2luY2x1ZGUgIkVsZW1lbnRDaGlsZEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAi
RXZlbnRIYW5kbGVyLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVySW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcApp
bmRleCBiNGU1MzNhNjc5MGM1MzM2MjE0YTRmNTI0M2I1YmZlYjdiOWI4ODA1Li43NzdkODQwNjYx
ZGNiZjRlMDE4ODRhOTE5YmVhZDRkMTQzMWY4MjJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJJbWFnZS5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJBWE9iamVjdENh
Y2hlLmgiCiAjaW5jbHVkZSAiQml0bWFwSW1hZ2UuaCIKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5o
IgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkZvY3VzQ29udHJvbGxl
ci5oIgogI2luY2x1ZGUgIkZvbnRDYWNoZS5oIgogI2luY2x1ZGUgIkZvbnRDYXNjYWRlLmgiCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKaW5kZXggNjdkZjYxODQy
M2JlMWM1ODZjMzI4Y2Q2NDMxM2RiNTZlZDdjZTM4Yi4uY2FiNjNmNWIxNGNlNWViODdlZTRkODdh
ODBiMzg2NWRmYjZlOWIxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxpc3RCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0
Qm94LmNwcApAQCAtMzMsNyArMzMsNyBAQAogI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNp
bmNsdWRlICJDU1NGb250U2VsZWN0b3IuaCIKICNpbmNsdWRlICJEZXByZWNhdGVkR2xvYmFsU2V0
dGluZ3MuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5l
cy5oIgogI2luY2x1ZGUgIkV2ZW50SGFuZGxlci5oIgogI2luY2x1ZGUgIkZvY3VzQ29udHJvbGxl
ci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck1lbnVMaXN0LmNwcAppbmRleCAxN2RmOTRlYzQwY2MyZTE5NjRkMDVjYTI4MzMwZDkwMTI5MGUy
MDkxLi4xMDJjNGVlMTZjMGQxYWQ0ZDgxNTdmODFiZTQ2NjZiZjQzZDE2ODNiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKQEAgLTMwLDYgKzMwLDcgQEAK
ICNpbmNsdWRlICJDU1NGb250U2VsZWN0b3IuaCIKICNpbmNsdWRlICJDaHJvbWUuaCIKICNpbmNs
dWRlICJDb2xvckJsZW5kaW5nLmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5j
bHVkZSAiRWxlbWVudElubGluZXMuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZy
YW1lVmlldy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9i
amVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAppbmRl
eCBmNTI3ODNhZThhZjdkNWQ2M2M1YmM4ZWFiNmMzNjljNmQ0YWU4YWVjLi5iMGQzNzE0YjFiYzRj
YzZiYmQ0OGFkYjdmMjkzNjc3MzE0YWEwODg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyT2JqZWN0LmNwcApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIlJlbmRlck9iamVj
dC5oIgogCiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5s
aW5lcy5oIgogI2luY2x1ZGUgIkVkaXRpbmcuaCIKICNpbmNsdWRlICJFbGVtZW50QW5jZXN0b3JJ
dGVyYXRvci5oIgogI2luY2x1ZGUgIkZsb2F0UXVhZC5oIgpAQCAtMTc5Myw3ICsxNzk0LDcgQEAg
Ym9vbCBSZW5kZXJPYmplY3Q6OnVzZURhcmtBcHBlYXJhbmNlKCkgY29uc3QKICAgICByZXR1cm4g
ZG9jdW1lbnQoKS51c2VEYXJrQXBwZWFyYW5jZSgmc3R5bGUoKSk7CiB9CiAKLU9wdGlvblNldDxT
dHlsZUNvbG9yOjpPcHRpb25zPiBSZW5kZXJPYmplY3Q6OnN0eWxlQ29sb3JPcHRpb25zKCkgY29u
c3QKK09wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gUmVuZGVyT2JqZWN0OjpzdHlsZUNvbG9y
T3B0aW9ucygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGRvY3VtZW50KCkuc3R5bGVDb2xvck9wdGlv
bnMoJnN0eWxlKCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCmlu
ZGV4IDEyNjAwMDRmNWMyZjdlMWRkMDJiMjQwODU1ZDIxNTg1NWJmNmIzM2IuLmM1MzRjOWZkZDA1
ZDU4NDcwZmE3ZTY2MTQ4NmE2YWVhY2NkNjY4ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyT2JqZWN0LmgKQEAgLTE2NCw3ICsxNjQsNyBAQCBwdWJsaWM6CiAgICAgUmVuZGVyRnJh
Z21lbnRlZEZsb3cqIGVuY2xvc2luZ0ZyYWdtZW50ZWRGbG93KCkgY29uc3Q7CiAKICAgICBXRUJD
T1JFX0VYUE9SVCBib29sIHVzZURhcmtBcHBlYXJhbmNlKCkgY29uc3Q7Ci0gICAgT3B0aW9uU2V0
PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IHN0eWxlQ29sb3JPcHRpb25zKCkgY29uc3Q7CisgICAgT3B0
aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBzdHlsZUNvbG9yT3B0aW9ucygpIGNvbnN0OwogCiAj
aWYgQVNTRVJUX0VOQUJMRUQKICAgICB2b2lkIHNldEhhc0FYT2JqZWN0KGJvb2wgZmxhZykgeyBt
X2hhc0FYT2JqZWN0ID0gZmxhZzsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclJlcGxhY2VkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJS
ZXBsYWNlZC5jcHAKaW5kZXggN2VlOTQ0MjZjYzUyYmFkYjQwZmZjNGNiN2NmYmQxMjc3NGJjZTcz
YS4uMWZlNjNiMTU3OTY5ZGU4MDllOGZiM2E4ZTQ4MDIyZmJiODI5ODY2OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCkBAIC0xNTksNyArMTU5LDcgQEAg
Q29sb3IgUmVuZGVyUmVwbGFjZWQ6OmNhbGN1bGF0ZUhpZ2hsaWdodENvbG9yKCkgY29uc3QKICAg
ICAgICAgICAgICAgICAgICAgaWYgKCFpc0hpZ2hsaWdodGVkKHN0YXRlLCBoaWdobGlnaHREYXRh
KSkKICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgICAgICAgICAg
ICAgIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBzdHlsZUNvbG9yT3B0aW9ucyA9IHsg
U3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlU3lzdGVtQXBwZWFyYW5jZSB9OworICAgICAgICAgICAg
ICAgICAgICBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IHN0eWxlQ29sb3JPcHRpb25zID0g
eyBTdHlsZUNvbG9yT3B0aW9uczo6VXNlU3lzdGVtQXBwZWFyYW5jZSB9OwogICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gdGhlbWUoKS5hcHBIaWdobGlnaHRDb2xvcihzdHlsZUNvbG9yT3B0aW9u
cyk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRleHQuY3BwCmluZGV4IDQ4ZGNmYjNjOGZhMDZjMzcyMTViYTQ3MDRjMjUyNjA0
OWJkYjYxMGYuLjM0MzdjYWM0ZWQ3ODg5NTRjYTg0NWU3MjJiZTk0OGFhNTRhOTZiZTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNp
bmNsdWRlICJCcmVha0xpbmVzLmgiCiAjaW5jbHVkZSAiQnJlYWtpbmdDb250ZXh0LmgiCiAjaW5j
bHVkZSAiQ2hhcmFjdGVyUHJvcGVydGllcy5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5o
IgogI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkZsb2F0
UXVhZC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lLmNwcAppbmRleCBiOTA4MmI1Njc3OTVmMmNkNWU0ZDZhNzRkNzAzM2E4NWU4NzFjMDVj
Li44Y2JlYmZlYmNiYmYzOGYyODJhYmNjYzRmNmQ1MDE1ZGY5NmM4NjQ0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKQEAgLTYwMyw3ICs2MDMsNyBAQCBMYXlvdXRQ
b2ludCBSZW5kZXJUaGVtZTo6dm9sdW1lU2xpZGVyT2Zmc2V0RnJvbU11dGVCdXR0b24oY29uc3Qg
UmVuZGVyQm94JiBtdXRlQgogCiAjZW5kaWYKIAotQ29sb3IgUmVuZGVyVGhlbWU6OmFjdGl2ZVNl
bGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0
aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lOjphY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5k
Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewogICAg
IGF1dG8mIGNhY2hlID0gY29sb3JDYWNoZShvcHRpb25zKTsKICAgICBpZiAoIWNhY2hlLmFjdGl2
ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvci5pc1ZhbGlkKCkpCkBAIC02MTEsNyArNjExLDcgQEAg
Q29sb3IgUmVuZGVyVGhlbWU6OmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25T
ZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4KICAgICByZXR1cm4gY2FjaGUuYWN0aXZlU2VsZWN0aW9u
QmFja2dyb3VuZENvbG9yOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZTo6aW5hY3RpdmVTZWxlY3Rp
b25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMp
IGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZTo6aW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29s
b3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewogICAgIGF1
dG8mIGNhY2hlID0gY29sb3JDYWNoZShvcHRpb25zKTsKICAgICBpZiAoIWNhY2hlLmluYWN0aXZl
U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yLmlzVmFsaWQoKSkKQEAgLTYxOSwxMiArNjE5LDEyIEBA
IENvbG9yIFJlbmRlclRoZW1lOjppbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRp
b25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9uCiAgICAgcmV0dXJuIGNhY2hlLmluYWN0aXZlU2VsZWN0
aW9uQmFja2dyb3VuZENvbG9yOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZTo6dHJhbnNmb3JtU2Vs
ZWN0aW9uQmFja2dyb3VuZENvbG9yKGNvbnN0IENvbG9yJiBjb2xvciwgT3B0aW9uU2V0PFN0eWxl
Q29sb3I6Ok9wdGlvbnM+KSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWU6OnRyYW5zZm9ybVNlbGVj
dGlvbkJhY2tncm91bmRDb2xvcihjb25zdCBDb2xvciYgY29sb3IsIE9wdGlvblNldDxTdHlsZUNv
bG9yT3B0aW9ucz4pIGNvbnN0CiB7CiAgICAgcmV0dXJuIGJsZW5kV2l0aFdoaXRlKGNvbG9yKTsK
IH0KIAotQ29sb3IgUmVuZGVyVGhlbWU6OmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihP
cHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRl
clRoZW1lOjphY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29s
b3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewogICAgIGF1dG8mIGNhY2hlID0gY29sb3JDYWNo
ZShvcHRpb25zKTsKICAgICBpZiAoIWNhY2hlLmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xv
ci5pc1ZhbGlkKCkgJiYgc3VwcG9ydHNTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3JzKG9wdGlvbnMp
KQpAQCAtNjMyLDcgKzYzMiw3IEBAIENvbG9yIFJlbmRlclRoZW1lOjphY3RpdmVTZWxlY3Rpb25G
b3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+CiAgICAgcmV0dXJu
IGNhY2hlLmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcjsKIH0KIAotQ29sb3IgUmVuZGVy
VGhlbWU6OmluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNv
bG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWU6OmluYWN0aXZl
U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0
aW9ucykgY29uc3QKIHsKICAgICBhdXRvJiBjYWNoZSA9IGNvbG9yQ2FjaGUob3B0aW9ucyk7CiAg
ICAgaWYgKCFjYWNoZS5pbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvci5pc1ZhbGlkKCkg
JiYgc3VwcG9ydHNTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3JzKG9wdGlvbnMpKQpAQCAtNjQwLDcg
KzY0MCw3IEBAIENvbG9yIFJlbmRlclRoZW1lOjppbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRD
b2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9uCiAgICAgcmV0dXJuIGNhY2hlLmluYWN0
aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZTo6YWN0
aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6
T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lOjphY3RpdmVMaXN0Qm94
U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0
aW9ucykgY29uc3QKIHsKICAgICBhdXRvJiBjYWNoZSA9IGNvbG9yQ2FjaGUob3B0aW9ucyk7CiAg
ICAgaWYgKCFjYWNoZS5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yLmlzVmFs
aWQoKSkKQEAgLTY0OCw3ICs2NDgsNyBAQCBDb2xvciBSZW5kZXJUaGVtZTo6YWN0aXZlTGlzdEJv
eFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6TwogICAgIHJl
dHVybiBjYWNoZS5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yOwogfQogCi1D
b2xvciBSZW5kZXJUaGVtZTo6aW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9y
KE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVu
ZGVyVGhlbWU6OmluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25T
ZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7CiAgICAgYXV0byYgY2FjaGUg
PSBjb2xvckNhY2hlKG9wdGlvbnMpOwogICAgIGlmICghY2FjaGUuaW5hY3RpdmVMaXN0Qm94U2Vs
ZWN0aW9uQmFja2dyb3VuZENvbG9yLmlzVmFsaWQoKSkKQEAgLTY1Niw3ICs2NTYsNyBAQCBDb2xv
ciBSZW5kZXJUaGVtZTo6aW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9w
dGlvblNldDxTdHlsZUNvbG9yOgogICAgIHJldHVybiBjYWNoZS5pbmFjdGl2ZUxpc3RCb3hTZWxl
Y3Rpb25CYWNrZ3JvdW5kQ29sb3I7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lOjphY3RpdmVMaXN0
Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25z
PiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWU6OmFjdGl2ZUxpc3RCb3hTZWxlY3Rp
b25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBj
b25zdAogewogICAgIGF1dG8mIGNhY2hlID0gY29sb3JDYWNoZShvcHRpb25zKTsKICAgICBpZiAo
IWNhY2hlLmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IuaXNWYWxpZCgpICYm
IHN1cHBvcnRzTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcnMob3B0aW9ucykpCkBAIC02
NjQsNyArNjY0LDcgQEAgQ29sb3IgUmVuZGVyVGhlbWU6OmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25G
b3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok8KICAgICByZXR1cm4gY2FjaGUu
YWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcjsKIH0KIAotQ29sb3IgUmVuZGVy
VGhlbWU6OmluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8
U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lOjpp
bmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29s
b3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewogICAgIGF1dG8mIGNhY2hlID0gY29sb3JDYWNo
ZShvcHRpb25zKTsKICAgICBpZiAoIWNhY2hlLmluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVn
cm91bmRDb2xvci5pc1ZhbGlkKCkgJiYgc3VwcG9ydHNMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3Vu
ZENvbG9ycyhvcHRpb25zKSkKQEAgLTY3Miw0NyArNjcyLDQ3IEBAIENvbG9yIFJlbmRlclRoZW1l
OjppbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxl
Q29sb3I6CiAgICAgcmV0dXJuIGNhY2hlLmluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91
bmRDb2xvcjsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9u
QmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QKK0Nv
bG9yIFJlbmRlclRoZW1lOjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihP
cHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdAogewogICAgIC8vIFVzZSBhIGJsdWUg
Y29sb3IgYnkgZGVmYXVsdCBpZiB0aGUgcGxhdGZvcm0gdGhlbWUgZG9lc24ndCBkZWZpbmUgYW55
dGhpbmcuCiAgICAgcmV0dXJuIENvbG9yOjpibHVlOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZTo6
cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29s
b3I6Ok9wdGlvbnM+KSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtQWN0aXZlU2Vs
ZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0
CiB7CiAgICAgLy8gVXNlIGEgd2hpdGUgY29sb3IgYnkgZGVmYXVsdCBpZiB0aGUgcGxhdGZvcm0g
dGhlbWUgZG9lc24ndCBkZWZpbmUgYW55dGhpbmcuCiAgICAgcmV0dXJuIENvbG9yOjp3aGl0ZTsK
IH0KIAotQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3Jv
dW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdAorQ29sb3IgUmVu
ZGVyVGhlbWU6OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9u
U2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QKIHsKICAgICAvLyBVc2UgYSBncmV5IGNvbG9y
IGJ5IGRlZmF1bHQgaWYgdGhlIHBsYXRmb3JtIHRoZW1lIGRvZXNuJ3QgZGVmaW5lIGFueXRoaW5n
LgogICAgIC8vIFRoaXMgY29sb3IgbWF0Y2hlcyBGaXJlZm94J3MgaW5hY3RpdmUgY29sb3IuCiAg
ICAgcmV0dXJuIFNSR0JBPHVpbnQ4X3Q+IHsgMTc2LCAxNzYsIDE3NiB9OwogfQogCi1Db2xvciBS
ZW5kZXJUaGVtZTo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRp
b25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZTo6cGxh
dGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xv
ck9wdGlvbnM+KSBjb25zdAogewogICAgIC8vIFVzZSBhIGJsYWNrIGNvbG9yIGJ5IGRlZmF1bHQu
CiAgICAgcmV0dXJuIENvbG9yOjpibGFjazsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRm
b3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVD
b2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lOjpwbGF0Zm9y
bUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29s
b3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewogICAgIHJldHVybiBwbGF0Zm9ybUFjdGl2ZVNl
bGVjdGlvbkJhY2tncm91bmRDb2xvcihvcHRpb25zKTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWU6
OnBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8
U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lOjpw
bGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0
eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewogICAgIHJldHVybiBwbGF0Zm9ybUFj
dGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihvcHRpb25zKTsKIH0KIAotQ29sb3IgUmVuZGVy
VGhlbWU6OnBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9w
dGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVy
VGhlbWU6OnBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9w
dGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICAgICByZXR1cm4g
cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihvcHRpb25zKTsKIH0KIAot
Q29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdy
b3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAor
Q29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdy
b3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsK
ICAgICByZXR1cm4gcGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihvcHRp
b25zKTsKIH0KQEAgLTEyMzQsMTAgKzEyMzQsMTAgQEAgdm9pZCBSZW5kZXJUaGVtZTo6cGxhdGZv
cm1Db2xvcnNEaWRDaGFuZ2UoKQogICAgIFBhZ2U6OnVwZGF0ZVN0eWxlRm9yQWxsUGFnZXNBZnRl
ckdsb2JhbENoYW5nZUluRW52aXJvbm1lbnQoKTsKIH0KIAotYXV0byBSZW5kZXJUaGVtZTo6Y29s
b3JDYWNoZShPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QgLT4g
Q29sb3JDYWNoZSYKK2F1dG8gUmVuZGVyVGhlbWU6OmNvbG9yQ2FjaGUoT3B0aW9uU2V0PFN0eWxl
Q29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdCAtPiBDb2xvckNhY2hlJgogewogICAgIGF1dG8g
b3B0aW9uc0lnbm9yaW5nVmlzaXRlZExpbmsgPSBvcHRpb25zOwotICAgIG9wdGlvbnNJZ25vcmlu
Z1Zpc2l0ZWRMaW5rLnJlbW92ZShTdHlsZUNvbG9yOjpPcHRpb25zOjpGb3JWaXNpdGVkTGluayk7
CisgICAgb3B0aW9uc0lnbm9yaW5nVmlzaXRlZExpbmsucmVtb3ZlKFN0eWxlQ29sb3JPcHRpb25z
OjpGb3JWaXNpdGVkTGluayk7CiAKICAgICByZXR1cm4gbV9jb2xvckNhY2hlTWFwLmVuc3VyZShv
cHRpb25zSWdub3JpbmdWaXNpdGVkTGluay50b1JhdygpLCBbXSB7CiAgICAgICAgIHJldHVybiBD
b2xvckNhY2hlKCk7CkBAIC0xMjg0LDExICsxMjg0LDExIEBAIHZvaWQgUmVuZGVyVGhlbWU6OnN5
c3RlbUZvbnQoQ1NTVmFsdWVJRCBzeXN0ZW1Gb250SUQsIEZvbnRDYXNjYWRlRGVzY3JpcHRpb24m
IGZvCiAgICAgdXBkYXRlQ2FjaGVkU3lzdGVtRm9udERlc2NyaXB0aW9uKHN5c3RlbUZvbnRJRCwg
Zm9udERlc2NyaXB0aW9uKTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWU6OnN5c3RlbUNvbG9yKENT
U1ZhbHVlSUQgY3NzVmFsdWVJZCwgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlv
bnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZTo6c3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCBjc3NW
YWx1ZUlkLCBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7CiAg
ICAgc3dpdGNoIChjc3NWYWx1ZUlkKSB7CiAgICAgY2FzZSBDU1NWYWx1ZVdlYmtpdExpbms6Ci0g
ICAgICAgIHJldHVybiBvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OkZvclZp
c2l0ZWRMaW5rKSA/IFNSR0JBPHVpbnQ4X3Q+IHsgODUsIDI2LCAxMzkgfSA6IFNSR0JBPHVpbnQ4
X3Q+IHsgMCwgMCwgMjM4IH07CisgICAgICAgIHJldHVybiBvcHRpb25zLmNvbnRhaW5zKFN0eWxl
Q29sb3JPcHRpb25zOjpGb3JWaXNpdGVkTGluaykgPyBTUkdCQTx1aW50OF90PiB7IDg1LCAyNiwg
MTM5IH0gOiBTUkdCQTx1aW50OF90PiB7IDAsIDAsIDIzOCB9OwogICAgIGNhc2UgQ1NTVmFsdWVX
ZWJraXRBY3RpdmVsaW5rOgogICAgIGNhc2UgQ1NTVmFsdWVBY3RpdmV0ZXh0OgogICAgICAgICBy
ZXR1cm4gQ29sb3I6OnJlZDsKQEAgLTEzNjksNyArMTM2OSw3IEBAIENvbG9yIFJlbmRlclRoZW1l
OjpzeXN0ZW1Db2xvcihDU1NWYWx1ZUlEIGNzc1ZhbHVlSWQsIE9wdGlvblNldDxTdHlsZUNvbG9y
OjpPcHRpCiAgICAgfQogfQogCi1Db2xvciBSZW5kZXJUaGVtZTo6dGV4dFNlYXJjaEhpZ2hsaWdo
dENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29s
b3IgUmVuZGVyVGhlbWU6OnRleHRTZWFyY2hIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVD
b2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7CiAgICAgYXV0byYgY2FjaGUgPSBjb2xvckNh
Y2hlKG9wdGlvbnMpOwogICAgIGlmICghY2FjaGUudGV4dFNlYXJjaEhpZ2hsaWdodENvbG9yLmlz
VmFsaWQoKSkKQEAgLTEzNzcsMTMgKzEzNzcsMTMgQEAgQ29sb3IgUmVuZGVyVGhlbWU6OnRleHRT
ZWFyY2hIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW8K
ICAgICByZXR1cm4gY2FjaGUudGV4dFNlYXJjaEhpZ2hsaWdodENvbG9yOwogfQogCi1Db2xvciBS
ZW5kZXJUaGVtZTo6cGxhdGZvcm1UZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0
eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtVGV4
dFNlYXJjaEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0
CiB7CiAgICAgcmV0dXJuIENvbG9yOjp5ZWxsb3c7CiB9CiAKICNpZiBFTkFCTEUoQVBQX0hJR0hM
SUdIVFMpCi1Db2xvciBSZW5kZXJUaGVtZTo6YXBwSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0
eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZTo6YXBw
SGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25z
dAogewogICAgIGF1dG8mIGNhY2hlID0gY29sb3JDYWNoZShvcHRpb25zKTsKICAgICBpZiAoIWNh
Y2hlLmFwcEhpZ2hsaWdodENvbG9yLmlzVmFsaWQoKSkKQEAgLTEzOTEsMTMgKzEzOTEsMTMgQEAg
Q29sb3IgUmVuZGVyVGhlbWU6OmFwcEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9y
OjpPcHRpb25zPiBvcHRpb25zKSBjb24KICAgICByZXR1cm4gY2FjaGUuYXBwSGlnaGxpZ2h0Q29s
b3I7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lOjpwbGF0Zm9ybUFwcEhpZ2hsaWdodENvbG9yKE9w
dGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lOjpw
bGF0Zm9ybUFwcEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNv
bnN0CiB7CiAgICAgcmV0dXJuIENvbG9yOjp5ZWxsb3c7CiB9CiAjZW5kaWYKIAotQ29sb3IgUmVu
ZGVyVGhlbWU6OmRlZmF1bHRCdXR0b25UZXh0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9w
dGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZTo6ZGVmYXVsdEJ1dHRvblRl
eHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7CiAg
ICAgYXV0byYgY2FjaGUgPSBjb2xvckNhY2hlKG9wdGlvbnMpOwogICAgIGlmICghY2FjaGUuZGVm
YXVsdEJ1dHRvblRleHRDb2xvci5pc1ZhbGlkKCkpCkBAIC0xNDA1LDcgKzE0MDUsNyBAQCBDb2xv
ciBSZW5kZXJUaGVtZTo6ZGVmYXVsdEJ1dHRvblRleHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xv
cjo6T3B0aW9ucz4gb3B0aW9ucwogICAgIHJldHVybiBjYWNoZS5kZWZhdWx0QnV0dG9uVGV4dENv
bG9yOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZTo6cGxhdGZvcm1EZWZhdWx0QnV0dG9uVGV4dENv
bG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3Ig
UmVuZGVyVGhlbWU6OnBsYXRmb3JtRGVmYXVsdEJ1dHRvblRleHRDb2xvcihPcHRpb25TZXQ8U3R5
bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHN5c3RlbUNvbG9y
KENTU1ZhbHVlQWN0aXZlYnV0dG9udGV4dCwgb3B0aW9ucyk7CiB9CkBAIC0xNDY1LDcgKzE0NjUs
NyBAQCB2b2lkIFJlbmRlclRoZW1lOjpzZXRDdXN0b21Gb2N1c1JpbmdDb2xvcihjb25zdCBDb2xv
ciYgY29sb3IpCiAgICAgY3VzdG9tRm9jdXNSaW5nQ29sb3IoKSA9IGNvbG9yOwogfQogCi1Db2xv
ciBSZW5kZXJUaGVtZTo6Zm9jdXNSaW5nQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlv
bnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZTo6Zm9jdXNSaW5nQ29sb3IoT3B0
aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewogICAgIGlmIChjdXN0
b21Gb2N1c1JpbmdDb2xvcigpLmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIGN1c3RvbUZvY3Vz
UmluZ0NvbG9yKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGhlbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oCmluZGV4IGU3
ZTZlYmIxYjlkMWViYjE4ODA3ZmIwYWE4OTE2ZjljODAxZjc4MzEuLjg2ZjllN2Q1OGUyMWQwNmNh
MGQyMjIzYTFlMDQ0NjQzNzQ0MzI1ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZS5oCkBAIC0xNDYsMzQgKzE0NiwzNCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHN1
cHBvcnRzQm94U2hhZG93KGNvbnN0IFJlbmRlclN0eWxlJikgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KIAogICAgIC8vIFRleHQgc2VsZWN0aW9uIGNvbG9ycy4KLSAgICBDb2xvciBhY3RpdmVTZWxl
Y3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25z
dDsKLSAgICBDb2xvciBpbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8
U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0OwotICAgIHZpcnR1YWwgQ29sb3IgdHJhbnNmb3Jt
U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKGNvbnN0IENvbG9yJiwgT3B0aW9uU2V0PFN0eWxlQ29s
b3I6Ok9wdGlvbnM+KSBjb25zdDsKLSAgICBDb2xvciBhY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5k
Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKLSAgICBDb2xvciBp
bmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0
aW9ucz4pIGNvbnN0OworICAgIENvbG9yIGFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihP
cHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdDsKKyAgICBDb2xvciBpbmFjdGl2ZVNl
bGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25z
dDsKKyAgICB2aXJ0dWFsIENvbG9yIHRyYW5zZm9ybVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihj
b25zdCBDb2xvciYsIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0OworICAgIENv
bG9yIGFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9w
dGlvbnM+KSBjb25zdDsKKyAgICBDb2xvciBpbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xv
cihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdDsKIAogICAgIC8vIExpc3QgYm94
IHNlbGVjdGlvbiBjb2xvcnMKLSAgICBDb2xvciBhY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dy
b3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7Ci0gICAgQ29s
b3IgYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVD
b2xvcjo6T3B0aW9ucz4pIGNvbnN0OwotICAgIENvbG9yIGluYWN0aXZlTGlzdEJveFNlbGVjdGlv
bkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0Owot
ICAgIENvbG9yIGluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25T
ZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0OworICAgIENvbG9yIGFjdGl2ZUxpc3RCb3hT
ZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29u
c3Q7CisgICAgQ29sb3IgYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRp
b25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdDsKKyAgICBDb2xvciBpbmFjdGl2ZUxpc3RC
b3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikg
Y29uc3Q7CisgICAgQ29sb3IgaW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9y
KE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0OwogCiAgICAgLy8gSGlnaGxpZ2h0
aW5nIGNvbG9yIGZvciBzZWFyY2ggbWF0Y2hlcy4KLSAgICBDb2xvciB0ZXh0U2VhcmNoSGlnaGxp
Z2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKKyAgICBDb2xv
ciB0ZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikg
Y29uc3Q7CiAKICNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCiAgICAgLy8gRGVmYXVsdCBoaWdo
bGlnaHRpbmcgY29sb3IgZm9yIGFwcCBoaWdobGlnaHRzLgotICAgIENvbG9yIGFwcEhpZ2hsaWdo
dENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7CisgICAgQ29sb3Ig
YXBwSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Q7CiAj
ZW5kaWYKIAotICAgIENvbG9yIGRlZmF1bHRCdXR0b25UZXh0Q29sb3IoT3B0aW9uU2V0PFN0eWxl
Q29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKKyAgICBDb2xvciBkZWZhdWx0QnV0dG9uVGV4dENvbG9y
KE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0OwogCiAgICAgQ29sb3IgZGF0ZVBs
YWNlaG9sZGVyVGV4dENvbG9yKGNvbnN0IENvbG9yJiB0ZXh0Q29sb3IsIGNvbnN0IENvbG9yJiBi
YWNrZ3JvdW5kQ29sb3IpIGNvbnN0OwogCiAgICAgdmlydHVhbCBDb2xvciBkaXNhYmxlZFRleHRD
b2xvcihjb25zdCBDb2xvciYgdGV4dENvbG9yLCBjb25zdCBDb2xvciYgYmFja2dyb3VuZENvbG9y
KSBjb25zdDsKIAotICAgIFdFQkNPUkVfRVhQT1JUIENvbG9yIGZvY3VzUmluZ0NvbG9yKE9wdGlv
blNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7Ci0gICAgdmlydHVhbCBDb2xvciBwbGF0
Zm9ybUZvY3VzUmluZ0NvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Qg
eyByZXR1cm4gQ29sb3I6OmJsYWNrOyB9CisgICAgV0VCQ09SRV9FWFBPUlQgQ29sb3IgZm9jdXNS
aW5nQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Q7CisgICAgdmlydHVh
bCBDb2xvciBwbGF0Zm9ybUZvY3VzUmluZ0NvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9u
cz4pIGNvbnN0IHsgcmV0dXJuIENvbG9yOjpibGFjazsgfQogICAgIHN0YXRpYyB2b2lkIHNldEN1
c3RvbUZvY3VzUmluZ0NvbG9yKGNvbnN0IENvbG9yJik7CiAgICAgc3RhdGljIGZsb2F0IHBsYXRm
b3JtRm9jdXNSaW5nV2lkdGgoKSB7IHJldHVybiAzOyB9CiAgICAgc3RhdGljIGZsb2F0IHBsYXRm
b3JtRm9jdXNSaW5nT2Zmc2V0KGZsb2F0IG91dGxpbmVXaWR0aCkgeyByZXR1cm4gc3RkOjptYXg8
ZmxvYXQ+KG91dGxpbmVXaWR0aCAtIHBsYXRmb3JtRm9jdXNSaW5nV2lkdGgoKSwgMCk7IH0KQEAg
LTE4Nyw3ICsxODcsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBTeXN0ZW0gZm9udHMgYW5kIGNvbG9y
cyBmb3IgQ1NTLgogICAgIHZvaWQgc3lzdGVtRm9udChDU1NWYWx1ZUlELCBGb250Q2FzY2FkZURl
c2NyaXB0aW9uJikgY29uc3Q7Ci0gICAgdmlydHVhbCBDb2xvciBzeXN0ZW1Db2xvcihDU1NWYWx1
ZUlELCBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0OworICAgIHZpcnR1YWwg
Q29sb3Igc3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCwgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25z
PikgY29uc3Q7CiAKICAgICB2aXJ0dWFsIGludCBtaW5pbXVtTWVudUxpc3RTaXplKGNvbnN0IFJl
bmRlclN0eWxlJikgY29uc3QgeyByZXR1cm4gMDsgfQogCkBAIC0yNzIsMjUgKzI3MiwyNSBAQCBw
cm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUNhY2hlZFN5c3RlbUZvbnREZXNjcmlw
dGlvbihDU1NWYWx1ZUlEIHN5c3RlbUZvbnRJRCwgRm9udENhc2NhZGVEZXNjcmlwdGlvbiYpIGNv
bnN0ID0gMDsKIAogICAgIC8vIFRoZSBwbGF0Zm9ybSBzZWxlY3Rpb24gY29sb3IuCi0gICAgdmly
dHVhbCBDb2xvciBwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25T
ZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0OwotICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZv
cm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6
T3B0aW9ucz4pIGNvbnN0OwotICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1BY3RpdmVTZWxlY3Rp
b25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsK
LSAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29s
b3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKKyAgICB2aXJ0dWFsIENv
bG9yIHBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHls
ZUNvbG9yT3B0aW9ucz4pIGNvbnN0OworICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1JbmFjdGl2
ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBj
b25zdDsKKyAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uRm9yZWdyb3Vu
ZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0OworICAgIHZpcnR1YWwg
Q29sb3IgcGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8
U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdDsKIAotICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1B
Y3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9y
OjpPcHRpb25zPikgY29uc3Q7Ci0gICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUluYWN0aXZlTGlz
dEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9u
cz4pIGNvbnN0OwotICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0
aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7
Ci0gICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVn
cm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0OworICAgIHZp
cnR1YWwgQ29sb3IgcGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9y
KE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0OworICAgIHZpcnR1YWwgQ29sb3Ig
cGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0
PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Q7CisgICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUFj
dGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JP
cHRpb25zPikgY29uc3Q7CisgICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUluYWN0aXZlTGlzdEJv
eFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBj
b25zdDsKIAotICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1UZXh0U2VhcmNoSGlnaGxpZ2h0Q29s
b3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKKyAgICB2aXJ0dWFsIENv
bG9yIHBsYXRmb3JtVGV4dFNlYXJjaEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9y
T3B0aW9ucz4pIGNvbnN0OwogI2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykKLSAgICB2aXJ0dWFs
IENvbG9yIHBsYXRmb3JtQXBwSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9w
dGlvbnM+KSBjb25zdDsKKyAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtQXBwSGlnaGxpZ2h0Q29s
b3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Q7CiAjZW5kaWYKIAotICAgIHZp
cnR1YWwgQ29sb3IgcGxhdGZvcm1EZWZhdWx0QnV0dG9uVGV4dENvbG9yKE9wdGlvblNldDxTdHls
ZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7CisgICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybURlZmF1
bHRCdXR0b25UZXh0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Q7CiAK
LSAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3JzKE9wdGlv
blNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZp
cnR1YWwgYm9vbCBzdXBwb3J0c0xpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3JzKE9wdGlv
blNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZp
cnR1YWwgYm9vbCBzdXBwb3J0c1NlbGVjdGlvbkZvcmVncm91bmRDb2xvcnMoT3B0aW9uU2V0PFN0
eWxlQ29sb3JPcHRpb25zPikgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9v
bCBzdXBwb3J0c0xpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3JzKE9wdGlvblNldDxTdHls
ZUNvbG9yT3B0aW9ucz4pIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAogI2lmICFVU0UoTkVXX1RI
RU1FKQogICAgIC8vIE1ldGhvZHMgZm9yIGVhY2ggYXBwZWFyYW5jZSB2YWx1ZS4KQEAgLTQ1MSw3
ICs0NTEsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIENvbG9yIGRlZmF1bHRCdXR0b25UZXh0Q29s
b3I7CiAgICAgfTsKIAotICAgIHZpcnR1YWwgQ29sb3JDYWNoZSYgY29sb3JDYWNoZShPcHRpb25T
ZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0OworICAgIHZpcnR1YWwgQ29sb3JDYWNoZSYg
Y29sb3JDYWNoZShPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdDsKIAogcHJpdmF0
ZToKICAgICB2b2lkIGFkanVzdFNlYXJjaEZpZWxkRGVjb3JhdGlvblN0eWxlKFJlbmRlclN0eWxl
JiwgY29uc3QgRWxlbWVudCopIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lQWR3YWl0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWVBZHdhaXRhLmNwcAppbmRleCAzMmFiNWMyYzk4NjIzNDQyM2VhNDlmZjg0MWMz
NTdhM2E4ZGRjNmI2Li5kMWQ2MjNlNjczMGYyYzJjNWY0ZDdhNWYzMmZhMDA4ZWIyMWMyMjk2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVBZHdhaXRhLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVBZHdhaXRhLmNwcApA
QCAtMTM1LDQ5ICsxMzUsNDkgQEAgYm9vbCBSZW5kZXJUaGVtZUFkd2FpdGE6OnNob3VsZEhhdmVD
YXBzTG9ja0luZGljYXRvcihjb25zdCBIVE1MSW5wdXRFbGVtZW50JiBlbGUKICAgICByZXR1cm4g
ZWxlbWVudC5pc1Bhc3N3b3JkRmllbGQoKTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVBZHdhaXRh
OjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVD
b2xvcjo6T3B0aW9ucz4pIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZUFkd2FpdGE6OnBsYXRmb3Jt
QWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9u
cz4pIGNvbnN0CiB7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFRoZW1lQWR3YWl0YSY+KFRoZW1l
OjpzaW5nbGV0b24oKSkuYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCk7CiB9CiAKLUNv
bG9yIFJlbmRlclRoZW1lQWR3YWl0YTo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91
bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0CitDb2xvciBSZW5k
ZXJUaGVtZUFkd2FpdGE6OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3Io
T3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QKIHsKICAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8VGhlbWVBZHdhaXRhJj4oVGhlbWU6OnNpbmdsZXRvbigpKS5pbmFjdGl2ZVNlbGVjdGlv
bkJhY2tncm91bmRDb2xvcigpOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZUFkd2FpdGE6OnBsYXRm
b3JtQWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpP
cHRpb25zPikgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lQWR3YWl0YTo6cGxhdGZvcm1BY3RpdmVT
ZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29u
c3QKIHsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VGhlbWVBZHdhaXRhJj4oVGhlbWU6OnNpbmds
ZXRvbigpKS5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKTsKIH0KIAotQ29sb3IgUmVu
ZGVyVGhlbWVBZHdhaXRhOjpwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9y
KE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1l
QWR3YWl0YTo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25T
ZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdAogewogICAgIHJldHVybiBzdGF0aWNfY2FzdDxU
aGVtZUFkd2FpdGEmPihUaGVtZTo6c2luZ2xldG9uKCkpLmluYWN0aXZlU2VsZWN0aW9uRm9yZWdy
b3VuZENvbG9yKCk7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lQWR3YWl0YTo6cGxhdGZvcm1BY3Rp
dmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpP
cHRpb25zPikgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lQWR3YWl0YTo6cGxhdGZvcm1BY3RpdmVM
aXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9u
cz4pIGNvbnN0CiB7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFRoZW1lQWR3YWl0YSY+KFRoZW1l
OjpzaW5nbGV0b24oKSkuYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCk7CiB9CiAKLUNv
bG9yIFJlbmRlclRoZW1lQWR3YWl0YTo6cGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25C
YWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdAorQ29s
b3IgUmVuZGVyVGhlbWVBZHdhaXRhOjpwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJh
Y2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdAogewogICAg
IHJldHVybiBzdGF0aWNfY2FzdDxUaGVtZUFkd2FpdGEmPihUaGVtZTo6c2luZ2xldG9uKCkpLmlu
YWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCk7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1l
QWR3YWl0YTo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9w
dGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lQWR3
YWl0YTo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlv
blNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0CiB7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0
PFRoZW1lQWR3YWl0YSY+KFRoZW1lOjpzaW5nbGV0b24oKSkuYWN0aXZlU2VsZWN0aW9uRm9yZWdy
b3VuZENvbG9yKCk7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lQWR3YWl0YTo6cGxhdGZvcm1JbmFj
dGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6
Ok9wdGlvbnM+KSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVBZHdhaXRhOjpwbGF0Zm9ybUluYWN0
aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9w
dGlvbnM+KSBjb25zdAogewogICAgIHJldHVybiBzdGF0aWNfY2FzdDxUaGVtZUFkd2FpdGEmPihU
aGVtZTo6c2luZ2xldG9uKCkpLmluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKCk7CiB9
CiAKLUNvbG9yIFJlbmRlclRoZW1lQWR3YWl0YTo6cGxhdGZvcm1Gb2N1c1JpbmdDb2xvcihPcHRp
b25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRo
ZW1lQWR3YWl0YTo6cGxhdGZvcm1Gb2N1c1JpbmdDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9w
dGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFRoZW1lQWR3YWl0YTo6Zm9jdXND
b2xvcihvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZURhcmtBcHBlYXJh
bmNlKSk7CisgICAgcmV0dXJuIFRoZW1lQWR3YWl0YTo6Zm9jdXNDb2xvcihvcHRpb25zLmNvbnRh
aW5zKFN0eWxlQ29sb3JPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOwogfQogCiB2b2lkIFJl
bmRlclRoZW1lQWR3YWl0YTo6cGxhdGZvcm1Db2xvcnNEaWRDaGFuZ2UoKQpAQCAtMjAzLDkgKzIw
Myw5IEBAIFZlY3RvcjxTdHJpbmcsIDI+IFJlbmRlclRoZW1lQWR3YWl0YTo6bWVkaWFDb250cm9s
c1NjcmlwdHMoKQogfQogI2VuZGlmCiAKLUNvbG9yIFJlbmRlclRoZW1lQWR3YWl0YTo6c3lzdGVt
Q29sb3IoQ1NTVmFsdWVJRCBjc3NWYWx1ZUlELCBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9u
cz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lQWR3YWl0YTo6c3lzdGVtQ29sb3Io
Q1NTVmFsdWVJRCBjc3NWYWx1ZUlELCBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlv
bnMpIGNvbnN0CiB7Ci0gICAgY29uc3QgYm9vbCB1c2VEYXJrQXBwZWFyYW5jZSA9IG9wdGlvbnMu
Y29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpOworICAgIGNv
bnN0IGJvb2wgdXNlRGFya0FwcGVhcmFuY2UgPSBvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3JP
cHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSk7CiAKICAgICBzd2l0Y2ggKGNzc1ZhbHVlSUQpIHsK
ICAgICBjYXNlIENTU1ZhbHVlQWN0aXZlY2FwdGlvbjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUFkd2FpdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZUFkd2FpdGEuaAppbmRleCA2Yzc5OTMyM2I3ZGRiYmQxNTk5MDE3ZDYw
Y2ZlY2YwOTEyNDQwMmViLi45OTMzMjVjNDE2NjVlZGRiMzQ4OTdmY2M3ZTUzMzg3NTg1OGMyYjkz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVBZHdhaXRh
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQWR3YWl0YS5oCkBA
IC00NiwxNSArNDYsMTUgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgdXBkYXRlQ2FjaGVkU3lzdGVt
Rm9udERlc2NyaXB0aW9uKENTU1ZhbHVlSUQsIEZvbnRDYXNjYWRlRGVzY3JpcHRpb24mKSBjb25z
dCBvdmVycmlkZSB7IH07CiAKLSAgICBDb2xvciBwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tn
cm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFsOwot
ICAgIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9u
U2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKLSAgICBDb2xvciBwbGF0Zm9y
bUFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0
aW9ucz4pIGNvbnN0IGZpbmFsOwotICAgIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25G
b3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5h
bDsKLSAgICBDb2xvciBwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29s
b3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKLSAgICBDb2xv
ciBwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0
PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKLSAgICBDb2xvciBwbGF0Zm9ybUlu
YWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xv
cjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFsOwotICAgIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVMaXN0
Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25z
PikgY29uc3QgZmluYWw7Ci0gICAgQ29sb3IgcGxhdGZvcm1Gb2N1c1JpbmdDb2xvcihPcHRpb25T
ZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFsOworICAgIENvbG9yIHBsYXRmb3Jt
QWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9u
cz4pIGNvbnN0IGZpbmFsOworICAgIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNr
Z3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QgZmluYWw7Cisg
ICAgQ29sb3IgcGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0
PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QgZmluYWw7CisgICAgQ29sb3IgcGxhdGZvcm1JbmFj
dGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+
KSBjb25zdCBmaW5hbDsKKyAgICBDb2xvciBwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25C
YWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QgZmluYWw7
CisgICAgQ29sb3IgcGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9y
KE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFsOworICAgIENvbG9yIHBs
YXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxT
dHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFsOworICAgIENvbG9yIHBsYXRmb3JtSW5hY3Rp
dmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0
aW9ucz4pIGNvbnN0IGZpbmFsOworICAgIENvbG9yIHBsYXRmb3JtRm9jdXNSaW5nQ29sb3IoT3B0
aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QgZmluYWw7CiAgICAgdm9pZCBwbGF0Zm9y
bUNvbG9yc0RpZENoYW5nZSgpIGZpbmFsOwogCiAgICAgYm9vbCBwYWludFRleHRGaWVsZChjb25z
dCBSZW5kZXJPYmplY3QmLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBGbG9hdFJlY3QmKSBmaW5h
bDsKQEAgLTg3LDcgKzg3LDcgQEAgcHJpdmF0ZToKICAgICBib29sIHBhaW50TWVkaWFWb2x1bWVT
bGlkZXJUcmFjayhjb25zdCBSZW5kZXJPYmplY3QmLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJ
bnRSZWN0JikgZmluYWw7CiAjZW5kaWYKIAotICAgIENvbG9yIHN5c3RlbUNvbG9yKENTU1ZhbHVl
SUQsIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7CisgICAgQ29s
b3Igc3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCwgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikg
Y29uc3QgZmluYWw7CiAKICNpZiBFTkFCTEUoREFUQUxJU1RfRUxFTUVOVCkKICAgICBJbnRTaXpl
IHNsaWRlclRpY2tTaXplKCkgY29uc3QgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUaGVtZUlPUy5oCmluZGV4IDRiMTAxYjM4YjVjOGUxNGQwYTY3N2Y1MDc0M2QxZDY3YjQ1
MTMxNGYuLmNiNWU4ZDhkYThjMjliYWUzMGE1YWMwYjVhMmRiNmZhOGQ3YWU3OGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5oCkBAIC0xMTUsMTAgKzExNSwxMCBA
QCBwcml2YXRlOgogICAgIHZvaWQgcGFpbnRTZWFyY2hGaWVsZERlY29yYXRpb25zKGNvbnN0IFJl
bmRlck9iamVjdCYsIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKSBvdmVycmlkZTsK
IAogI2lmIEVOQUJMRShJT1NfRk9STV9DT05UUk9MX1JFRlJFU0gpCi0gICAgQ29sb3IgY2hlY2ti
b3hSYWRpb0JvcmRlckNvbG9yKE9wdGlvblNldDxDb250cm9sU3RhdGVzOjpTdGF0ZXM+LCBPcHRp
b25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pOwotICAgIENvbG9yIGNoZWNrYm94UmFkaW9CYWNr
Z3JvdW5kQ29sb3IoYm9vbCB1c2VBbHRlcm5hdGVEZXNpZ24sIE9wdGlvblNldDxDb250cm9sU3Rh
dGVzOjpTdGF0ZXM+LCBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pOworICAgIENvbG9y
IGNoZWNrYm94UmFkaW9Cb3JkZXJDb2xvcihPcHRpb25TZXQ8Q29udHJvbFN0YXRlczo6U3RhdGVz
PiwgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPik7CisgICAgQ29sb3IgY2hlY2tib3hSYWRp
b0JhY2tncm91bmRDb2xvcihib29sIHVzZUFsdGVybmF0ZURlc2lnbiwgT3B0aW9uU2V0PENvbnRy
b2xTdGF0ZXM6OlN0YXRlcz4sIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pOwogICAgIFJl
ZlB0cjxHcmFkaWVudD4gY2hlY2tib3hSYWRpb0JhY2tncm91bmRHcmFkaWVudChjb25zdCBGbG9h
dFJlY3QmLCBPcHRpb25TZXQ8Q29udHJvbFN0YXRlczo6U3RhdGVzPik7Ci0gICAgQ29sb3IgY2hl
Y2tib3hSYWRpb0luZGljYXRvckNvbG9yKE9wdGlvblNldDxDb250cm9sU3RhdGVzOjpTdGF0ZXM+
LCBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pOworICAgIENvbG9yIGNoZWNrYm94UmFk
aW9JbmRpY2F0b3JDb2xvcihPcHRpb25TZXQ8Q29udHJvbFN0YXRlczo6U3RhdGVzPiwgT3B0aW9u
U2V0PFN0eWxlQ29sb3JPcHRpb25zPik7CiAKICAgICBib29sIHBhaW50Q2hlY2tib3goY29uc3Qg
UmVuZGVyT2JqZWN0JiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgRmxvYXRSZWN0Jikgb3ZlcnJp
ZGU7CiAgICAgYm9vbCBwYWludFJhZGlvKGNvbnN0IFJlbmRlck9iamVjdCYsIGNvbnN0IFBhaW50
SW5mbyYsIGNvbnN0IEZsb2F0UmVjdCYpIG92ZXJyaWRlOwpAQCAtMTU2LDEyICsxNTYsMTIgQEAg
cHJpdmF0ZToKIAogICAgIGJvb2wgc3VwcG9ydHNCb3hTaGFkb3coY29uc3QgUmVuZGVyU3R5bGUm
KSBjb25zdCBmaW5hbDsKIAotICAgIENvbG9yIHBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dy
b3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Qgb3ZlcnJpZGU7
Ci0gICAgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRp
b25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IG92ZXJyaWRlOwotICAgIENvbG9yIHBs
YXRmb3JtRm9jdXNSaW5nQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25z
dCBmaW5hbDsKKyAgICBDb2xvciBwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xv
cihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCBvdmVycmlkZTsKKyAgICBDb2xv
ciBwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHls
ZUNvbG9yT3B0aW9ucz4pIGNvbnN0IG92ZXJyaWRlOworICAgIENvbG9yIHBsYXRmb3JtRm9jdXNS
aW5nQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QgZmluYWw7CiAKICNp
ZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCi0gICAgQ29sb3IgcGxhdGZvcm1BcHBIaWdobGlnaHRD
b2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFsOworICAgIENv
bG9yIHBsYXRmb3JtQXBwSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25z
PikgY29uc3QgZmluYWw7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCkBAIC0x
OTgsNyArMTk4LDcgQEAgcHJpdmF0ZToKIAogICAgIEZsb2F0UmVjdCBhZGRSb3VuZGVkQm9yZGVy
Q2xpcChjb25zdCBSZW5kZXJPYmplY3QmIGJveCwgR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgSW50
UmVjdCYpOwogCi0gICAgQ29sb3Igc3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCwgT3B0aW9uU2V0PFN0
eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBvdmVycmlkZTsKKyAgICBDb2xvciBzeXN0ZW1Db2xv
cihDU1NWYWx1ZUlELCBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCBvdmVycmlk
ZTsKIAogI2lmIFVTRShTWVNURU1fUFJFVklFVykKICAgICBSZXRhaW5QdHI8Q0lDb250ZXh0PiBt
X2NpQ29udGV4dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbQpp
bmRleCA2OWVlNDk2MzM2MGU4YzYwNjVjMWZmNzExZjFmYjE2NmRlM2I0ZjVlLi4zMjE3ZDkxZWY5
ODQ1YzczMzI0NjY4ZTM4ZTMwZjhkNzFkMjg5MTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lSU9TLm1tCkBAIC0xMjM3LDEyICsxMjM3LDEyIEBAIHZvaWQgUmVuZGVy
VGhlbWVJT1M6OnBhaW50RmlsZVVwbG9hZEljb25EZWNvcmF0aW9ucyhjb25zdCBSZW5kZXJPYmpl
Y3QmLCBjb25zdCBSCiAgICAgaWNvbi0+cGFpbnQocGFpbnRJbmZvLmNvbnRleHQoKSwgdGh1bWJu
YWlsUmVjdCk7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lSU9TOjpwbGF0Zm9ybUFjdGl2ZVNlbGVj
dGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0
CitDb2xvciBSZW5kZXJUaGVtZUlPUzo6cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5k
Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QKIHsKICAgICByZXR1cm4g
Q29sb3I6OnRyYW5zcGFyZW50QmxhY2s7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lSU9TOjpwbGF0
Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9y
OjpPcHRpb25zPikgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lSU9TOjpwbGF0Zm9ybUluYWN0aXZl
U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNv
bnN0CiB7CiAgICAgcmV0dXJuIENvbG9yOjp0cmFuc3BhcmVudEJsYWNrOwogfQpAQCAtMTI2Miwx
MyArMTI2MiwxMyBAQCBDb2xvciBSZW5kZXJUaGVtZUlPUzo6c3lzdGVtRm9jdXNSaW5nQ29sb3Io
KQogICAgIHJldHVybiAqY2FjaGVkRm9jdXNSaW5nQ29sb3IoKTsKIH0KIAotQ29sb3IgUmVuZGVy
VGhlbWVJT1M6OnBsYXRmb3JtRm9jdXNSaW5nQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9w
dGlvbnM+KSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVJT1M6OnBsYXRmb3JtRm9jdXNSaW5nQ29s
b3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QKIHsKICAgICByZXR1cm4gc3lz
dGVtRm9jdXNSaW5nQ29sb3IoKTsKIH0KIAogI2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykKLUNv
bG9yIFJlbmRlclRoZW1lSU9TOjpwbGF0Zm9ybUFwcEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxT
dHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lSU9TOjpwbGF0Zm9y
bUFwcEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0CiB7
CiAgICAgLy8gRklYTUU6IGV4cG9zZSB0aGUgcmVhbCB2YWx1ZSBmcm9tIFVJS2l0LgogICAgIHJl
dHVybiBTUkdCQTx1aW50OF90PiB7IDI1NSwgMjM4LCAxOTAgfTsKQEAgLTE0MjMsOSArMTQyMyw5
IEBAIHZvaWQgUmVuZGVyVGhlbWVJT1M6OnNldEZvY3VzUmluZ0NvbG9yKGNvbnN0IENvbG9yJiBj
b2xvcikKICAgICBjYWNoZWRGb2N1c1JpbmdDb2xvcigpID0gY29sb3I7CiB9CiAKLUNvbG9yIFJl
bmRlclRoZW1lSU9TOjpzeXN0ZW1Db2xvcihDU1NWYWx1ZUlEIGNzc1ZhbHVlSUQsIE9wdGlvblNl
dDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVJ
T1M6OnN5c3RlbUNvbG9yKENTU1ZhbHVlSUQgY3NzVmFsdWVJRCwgT3B0aW9uU2V0PFN0eWxlQ29s
b3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewotICAgIGNvbnN0IGJvb2wgZm9yVmlzaXRlZExp
bmsgPSBvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OkZvclZpc2l0ZWRMaW5r
KTsKKyAgICBjb25zdCBib29sIGZvclZpc2l0ZWRMaW5rID0gb3B0aW9ucy5jb250YWlucyhTdHls
ZUNvbG9yT3B0aW9uczo6Rm9yVmlzaXRlZExpbmspOwogCiAgICAgLy8gVGhlIHN5c3RlbSBjb2xv
ciBjYWNoZSBiZWxvdyBjYW4ndCBoYW5kbGUgdmlzaXRlZCBsaW5rcy4gVGhlIG9ubHkgY29sb3Ig
dmFsdWUKICAgICAvLyB0aGF0IGNhcmVzIGFib3V0IHZpc2l0ZWQgbGlua3MgaXMgQ1NTVmFsdWVX
ZWJraXRMaW5rLCBzbyBoYW5kbGUgaXQgaGVyZSBieQpAQCAtMTQzNyw4ICsxNDM3LDggQEAgQ29s
b3IgUmVuZGVyVGhlbWVJT1M6OnN5c3RlbUNvbG9yKENTU1ZhbHVlSUQgY3NzVmFsdWVJRCwgT3B0
aW9uU2V0PFN0eWxlQ29sb3I6Ok8KIAogICAgIGF1dG8mIGNhY2hlID0gY29sb3JDYWNoZShvcHRp
b25zKTsKICAgICByZXR1cm4gY2FjaGUuc3lzdGVtU3R5bGVDb2xvcnMuZW5zdXJlKGNzc1ZhbHVl
SUQsIFt0aGlzLCBjc3NWYWx1ZUlELCBvcHRpb25zXSAoKSAtPiBDb2xvciB7Ci0gICAgICAgIGNv
bnN0IGJvb2wgdXNlRGFya0FwcGVhcmFuY2UgPSBvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6
Ok9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKTsKLSAgICAgICAgY29uc3QgYm9vbCB1c2VFbGV2
YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCA9IG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0
aW9uczo6VXNlRWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWwpOworICAgICAgICBjb25zdCBib29s
IHVzZURhcmtBcHBlYXJhbmNlID0gb3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yT3B0aW9uczo6
VXNlRGFya0FwcGVhcmFuY2UpOworICAgICAgICBjb25zdCBib29sIHVzZUVsZXZhdGVkVXNlcklu
dGVyZmFjZUxldmVsID0gb3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yT3B0aW9uczo6VXNlRWxl
dmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWwpOwogICAgICAgICBpZiAoIWdsb2JhbENTU1ZhbHVlVG9T
eXN0ZW1Db2xvck1hcCgpLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgYXV0byBpdCA9IGdsb2Jh
bENTU1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCgpLmZpbmQoQ1NTVmFsdWVLZXkgeyBjc3NWYWx1ZUlE
LCB1c2VEYXJrQXBwZWFyYW5jZSwgdXNlRWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWwgfSk7CiAg
ICAgICAgICAgICBpZiAoaXQgPT0gZ2xvYmFsQ1NTVmFsdWVUb1N5c3RlbUNvbG9yTWFwKCkuZW5k
KCkpCkBAIC0yMDQ3LDcgKzIwNDcsNyBAQCBjb25zdGV4cHIgYXV0byBuYXRpdmVDb250cm9sQm9y
ZGVyV2lkdGggPSAxLjBmOwogY29uc3RleHByIGF1dG8gY2hlY2tib3hSYWRpb0JvcmRlcldpZHRo
ID0gMS41ZjsKIGNvbnN0ZXhwciBhdXRvIGNoZWNrYm94UmFkaW9Cb3JkZXJEaXNhYmxlZE9wYWNp
dHkgPSAwLjNmOwogCi1Db2xvciBSZW5kZXJUaGVtZUlPUzo6Y2hlY2tib3hSYWRpb0JvcmRlckNv
bG9yKE9wdGlvblNldDxDb250cm9sU3RhdGVzOjpTdGF0ZXM+IHN0YXRlcywgT3B0aW9uU2V0PFN0
eWxlQ29sb3I6Ok9wdGlvbnM+IHN0eWxlQ29sb3JPcHRpb25zKQorQ29sb3IgUmVuZGVyVGhlbWVJ
T1M6OmNoZWNrYm94UmFkaW9Cb3JkZXJDb2xvcihPcHRpb25TZXQ8Q29udHJvbFN0YXRlczo6U3Rh
dGVzPiBzdGF0ZXMsIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gc3R5bGVDb2xvck9wdGlv
bnMpCiB7CiAgICAgYXV0byBkZWZhdWx0Qm9yZGVyQ29sb3IgPSBzeXN0ZW1Db2xvcihDU1NWYWx1
ZUFwcGxlU3lzdGVtU2Vjb25kYXJ5TGFiZWwsIHN0eWxlQ29sb3JPcHRpb25zKTsKIApAQCAtMjA2
MCw3ICsyMDYwLDcgQEAgQ29sb3IgUmVuZGVyVGhlbWVJT1M6OmNoZWNrYm94UmFkaW9Cb3JkZXJD
b2xvcihPcHRpb25TZXQ8Q29udHJvbFN0YXRlczo6U3RhdGVzPgogICAgIHJldHVybiBkZWZhdWx0
Qm9yZGVyQ29sb3I7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lSU9TOjpjaGVja2JveFJhZGlvQmFj
a2dyb3VuZENvbG9yKGJvb2wgdXNlQWx0ZXJuYXRlRGVzaWduLCBPcHRpb25TZXQ8Q29udHJvbFN0
YXRlczo6U3RhdGVzPiBzdGF0ZXMsIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBzdHls
ZUNvbG9yT3B0aW9ucykKK0NvbG9yIFJlbmRlclRoZW1lSU9TOjpjaGVja2JveFJhZGlvQmFja2dy
b3VuZENvbG9yKGJvb2wgdXNlQWx0ZXJuYXRlRGVzaWduLCBPcHRpb25TZXQ8Q29udHJvbFN0YXRl
czo6U3RhdGVzPiBzdGF0ZXMsIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gc3R5bGVDb2xv
ck9wdGlvbnMpCiB7CiAgICAgYm9vbCBpc0VtcHR5ID0gIXN0YXRlcy5jb250YWluc0FueSh7IENv
bnRyb2xTdGF0ZXM6OlN0YXRlczo6Q2hlY2tlZCwgQ29udHJvbFN0YXRlczo6U3RhdGVzOjpJbmRl
dGVybWluYXRlIH0pOwogICAgIGJvb2wgaXNFbmFibGVkID0gc3RhdGVzLmNvbnRhaW5zKENvbnRy
b2xTdGF0ZXM6OlN0YXRlczo6RW5hYmxlZCk7CkBAIC0yMTAwLDEyICsyMTAwLDEyIEBAIFJlZlB0
cjxHcmFkaWVudD4gUmVuZGVyVGhlbWVJT1M6OmNoZWNrYm94UmFkaW9CYWNrZ3JvdW5kR3JhZGll
bnQoY29uc3QgRmxvYXRSZWN0CiAgICAgcmV0dXJuIGdyYWRpZW50OwogfQogCi1Db2xvciBSZW5k
ZXJUaGVtZUlPUzo6Y2hlY2tib3hSYWRpb0luZGljYXRvckNvbG9yKE9wdGlvblNldDxDb250cm9s
U3RhdGVzOjpTdGF0ZXM+IHN0YXRlcywgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IHN0
eWxlQ29sb3JPcHRpb25zKQorQ29sb3IgUmVuZGVyVGhlbWVJT1M6OmNoZWNrYm94UmFkaW9JbmRp
Y2F0b3JDb2xvcihPcHRpb25TZXQ8Q29udHJvbFN0YXRlczo6U3RhdGVzPiBzdGF0ZXMsIE9wdGlv
blNldDxTdHlsZUNvbG9yT3B0aW9ucz4gc3R5bGVDb2xvck9wdGlvbnMpCiB7CiAgICAgaWYgKCFz
dGF0ZXMuY29udGFpbnMoQ29udHJvbFN0YXRlczo6U3RhdGVzOjpFbmFibGVkKSkKICAgICAgICAg
cmV0dXJuIHN5c3RlbUNvbG9yKENTU1ZhbHVlQXBwbGVTeXN0ZW1UZXJ0aWFyeUxhYmVsLCBzdHls
ZUNvbG9yT3B0aW9ucyk7CiAKLSAgICBDb2xvciBlbmFibGVkSW5kaWNhdG9yQ29sb3IgPSBzeXN0
ZW1Db2xvcihDU1NWYWx1ZUFwcGxlU3lzdGVtTGFiZWwsIHN0eWxlQ29sb3JPcHRpb25zIHwgU3R5
bGVDb2xvcjo6T3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpOworICAgIENvbG9yIGVuYWJsZWRJ
bmRpY2F0b3JDb2xvciA9IHN5c3RlbUNvbG9yKENTU1ZhbHVlQXBwbGVTeXN0ZW1MYWJlbCwgc3R5
bGVDb2xvck9wdGlvbnMgfCBTdHlsZUNvbG9yT3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpOwog
ICAgIGlmIChzdGF0ZXMuY29udGFpbnMoQ29udHJvbFN0YXRlczo6U3RhdGVzOjpQcmVzc2VkKSkK
ICAgICAgICAgcmV0dXJuIGVuYWJsZWRJbmRpY2F0b3JDb2xvci5jb2xvcldpdGhBbHBoYU11bHRp
cGxpZWRCeShwcmVzc2VkU3RhdGVPcGFjaXR5KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWVNYWMuaAppbmRleCAxZTYxNjg3NjBmMTE3NDc3NjFhOGEzYzNlNWIyZThkNmQy
ZDFiODhkLi5jNDFmNzQ5MDA5MjVlZmExNjVlZWVlODlkNjhiOGU2NjYxMDUzNTU1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaApAQCAtNTMsMjMgKzUzLDIzIEBA
IHB1YmxpYzoKIAogICAgIGJvb2wgaXNDb250cm9sU3R5bGVkKGNvbnN0IFJlbmRlclN0eWxlJiwg
Y29uc3QgUmVuZGVyU3R5bGUmIHVzZXJBZ2VudFN0eWxlKSBjb25zdCBmaW5hbDsKIAotICAgIGJv
b2wgc3VwcG9ydHNTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3JzKE9wdGlvblNldDxTdHlsZUNvbG9y
OjpPcHRpb25zPikgY29uc3QgZmluYWw7Ci0KLSAgICBDb2xvciBwbGF0Zm9ybUFjdGl2ZVNlbGVj
dGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0
IGZpbmFsOwotICAgIENvbG9yIHBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9y
KE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7Ci0gICAgQ29sb3Ig
dHJhbnNmb3JtU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKGNvbnN0IENvbG9yJiwgT3B0aW9uU2V0
PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKLSAgICBDb2xvciBwbGF0Zm9ybUlu
YWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRp
b25zPikgY29uc3QgZmluYWw7Ci0gICAgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZv
cmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFs
OwotICAgIENvbG9yIHBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xv
cihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFsOwotICAgIENvbG9y
IHBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8
U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFsOwotICAgIENvbG9yIHBsYXRmb3JtSW5h
Y3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9y
OjpPcHRpb25zPikgY29uc3QgZmluYWw7Ci0gICAgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZUxpc3RC
b3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+
KSBjb25zdCBmaW5hbDsKLSAgICBDb2xvciBwbGF0Zm9ybUZvY3VzUmluZ0NvbG9yKE9wdGlvblNl
dDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7Ci0gICAgQ29sb3IgcGxhdGZvcm1U
ZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBj
b25zdCBmaW5hbDsKKyAgICBib29sIHN1cHBvcnRzU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9ycyhP
cHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCBmaW5hbDsKKworICAgIENvbG9yIHBs
YXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9y
T3B0aW9ucz4pIGNvbnN0IGZpbmFsOworICAgIENvbG9yIHBsYXRmb3JtQWN0aXZlU2VsZWN0aW9u
Rm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFs
OworICAgIENvbG9yIHRyYW5zZm9ybVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihjb25zdCBDb2xv
ciYsIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFsOworICAgIENvbG9y
IHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxl
Q29sb3JPcHRpb25zPikgY29uc3QgZmluYWw7CisgICAgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZVNl
bGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25z
dCBmaW5hbDsKKyAgICBDb2xvciBwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3Jv
dW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QgZmluYWw7CisgICAg
Q29sb3IgcGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlv
blNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFsOworICAgIENvbG9yIHBsYXRmb3Jt
SW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNv
bG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFsOworICAgIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVMaXN0
Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4p
IGNvbnN0IGZpbmFsOworICAgIENvbG9yIHBsYXRmb3JtRm9jdXNSaW5nQ29sb3IoT3B0aW9uU2V0
PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QgZmluYWw7CisgICAgQ29sb3IgcGxhdGZvcm1UZXh0
U2VhcmNoSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Qg
ZmluYWw7CiAjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQotICAgIENvbG9yIHBsYXRmb3JtQXBw
SGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5h
bDsKKyAgICBDb2xvciBwbGF0Zm9ybUFwcEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNv
bG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFsOwogI2VuZGlmCi0gICAgQ29sb3IgcGxhdGZvcm1EZWZh
dWx0QnV0dG9uVGV4dENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Qg
ZmluYWw7CisgICAgQ29sb3IgcGxhdGZvcm1EZWZhdWx0QnV0dG9uVGV4dENvbG9yKE9wdGlvblNl
dDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFsOwogCiAgICAgU2Nyb2xsYmFyQ29udHJv
bFNpemUgc2Nyb2xsYmFyQ29udHJvbFNpemVGb3JQYXJ0KENvbnRyb2xQYXJ0KSBmaW5hbCB7IHJl
dHVybiBTY3JvbGxiYXJDb250cm9sU2l6ZTo6U21hbGw7IH0KIApAQCAtMTU5LDcgKzE1OSw3IEBA
IHByaXZhdGU6CiBwcml2YXRlOgogICAgIFN0cmluZyBmaWxlTGlzdE5hbWVGb3JXaWR0aChjb25z
dCBGaWxlTGlzdCosIGNvbnN0IEZvbnRDYXNjYWRlJiwgaW50IHdpZHRoLCBib29sIG11bHRpcGxl
RmlsZXNBbGxvd2VkKSBjb25zdCBmaW5hbDsKIAotICAgIENvbG9yIHN5c3RlbUNvbG9yKENTU1Zh
bHVlSUQsIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7CisgICAg
Q29sb3Igc3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCwgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25z
PikgY29uc3QgZmluYWw7CiAKICAgICAvLyBHZXQgdGhlIGNvbnRyb2wgc2l6ZSBiYXNlZCBvZmYg
dGhlIGZvbnQuIFVzZWQgYnkgc29tZSBvZiB0aGUgY29udHJvbHMgKGxpa2UgYnV0dG9ucykuCiAg
ICAgTlNDb250cm9sU2l6ZSBjb250cm9sU2l6ZUZvckZvbnQoY29uc3QgUmVuZGVyU3R5bGUmKSBj
b25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1h
Yy5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQppbmRleCBh
MTRmZWNjY2ViYmY3YzE1YWFiOTlhZDQwMmFhZDcyMjY4NTIwYzYwLi5kNDM3ZjQ4MjY2NWMzMzNj
YTIzNmUwYjM3NTgyNmEzZjJhYTY0YzQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRoZW1lTWFjLm1tCkBAIC0yODQsMTYgKzI4NCwxNiBAQCBOU1ZpZXcgKlJlbmRlclRoZW1l
TWFjOjpkb2N1bWVudFZpZXdGb3IoY29uc3QgUmVuZGVyT2JqZWN0JiBvKSBjb25zdAogICAgIHJl
dHVybiBUaGVtZU1hYzo6ZW5zdXJlZFZpZXcoJm8udmlldygpLmZyYW1lVmlldygpLCBzdGF0ZXMp
OwogfQogCi1Db2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25CYWNr
Z3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0
CitDb2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5k
Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewotICAg
IExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMuY29u
dGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpKTsKKyAgICBMb2Nh
bERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvcHRpb25zLmNvbnRhaW5z
KFN0eWxlQ29sb3JPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOwogICAgIHJldHVybiBjb2xv
ckZyb21OU0NvbG9yKFtOU0NvbG9yIHNlbGVjdGVkVGV4dEJhY2tncm91bmRDb2xvcl0pOwogfQog
Ci1Db2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91
bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0Nv
bG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENv
bG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICNpZiBI
QVZFKE9TX0RBUktfTU9ERV9TVVBQT1JUKQotICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFu
Y2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6
VXNlRGFya0FwcGVhcmFuY2UpKTsKKyAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxv
Y2FsQXBwZWFyYW5jZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3JPcHRpb25zOjpVc2VEYXJr
QXBwZWFyYW5jZSkpOwogICAgIHJldHVybiBjb2xvckZyb21OU0NvbG9yKFtOU0NvbG9yIHVuZW1w
aGFzaXplZFNlbGVjdGVkVGV4dEJhY2tncm91bmRDb2xvcl0pOwogI2Vsc2UKICAgICBVTlVTRURf
UEFSQU0ob3B0aW9ucyk7CkBAIC0zMDEsOSArMzAxLDkgQEAgQ29sb3IgUmVuZGVyVGhlbWVNYWM6
OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxl
Q28KICNlbmRpZgogfQogCi1Db2xvciBSZW5kZXJUaGVtZU1hYzo6dHJhbnNmb3JtU2VsZWN0aW9u
QmFja2dyb3VuZENvbG9yKGNvbnN0IENvbG9yJiBjb2xvciwgT3B0aW9uU2V0PFN0eWxlQ29sb3I6
Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZU1hYzo6dHJhbnNmb3Jt
U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKGNvbnN0IENvbG9yJiBjb2xvciwgT3B0aW9uU2V0PFN0
eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewotICAgIExvY2FsRGVmYXVsdFN5c3Rl
bUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6
T3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpKTsKKyAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBl
YXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3JPcHRpb25z
OjpVc2VEYXJrQXBwZWFyYW5jZSkpOwogICAgIGlmIChsb2NhbEFwcGVhcmFuY2UudXNpbmdEYXJr
QXBwZWFyYW5jZSgpKSB7CiAgICAgICAgIC8vIFVzZSBhbiBhbHBoYSB2YWx1ZSB0aGF0IGlzIHNp
bWlsYXIgdG8gcmVzdWx0cyBmcm9tIGJsZW5kV2l0aFdoaXRlKCkgb24gbGlnaHQgY29sb3JzLgog
ICAgICAgICBzdGF0aWMgY29uc3QgZmxvYXQgZGFya0FwcGVhcmFuY2VBbHBoYSA9IDAuODsKQEAg
LTMxMywyNCArMzEzLDI0IEBAIENvbG9yIFJlbmRlclRoZW1lTWFjOjp0cmFuc2Zvcm1TZWxlY3Rp
b25CYWNrZ3JvdW5kQ29sb3IoY29uc3QgQ29sb3ImIGNvbG9yLCBPcHRpCiAgICAgcmV0dXJuIFJl
bmRlclRoZW1lOjp0cmFuc2Zvcm1TZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoY29sb3IsIG9wdGlv
bnMpOwogfQogCi1ib29sIFJlbmRlclRoZW1lTWFjOjpzdXBwb3J0c1NlbGVjdGlvbkZvcmVncm91
bmRDb2xvcnMoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0Citi
b29sIFJlbmRlclRoZW1lTWFjOjpzdXBwb3J0c1NlbGVjdGlvbkZvcmVncm91bmRDb2xvcnMoT3B0
aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewotICAgIExvY2FsRGVm
YXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMuY29udGFpbnMoU3R5
bGVDb2xvcjo6T3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpKTsKKyAgICBMb2NhbERlZmF1bHRT
eXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29s
b3JPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOwogICAgIHJldHVybiBsb2NhbEFwcGVhcmFu
Y2UudXNpbmdEYXJrQXBwZWFyYW5jZSgpOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZU1hYzo6cGxh
dGZvcm1BY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6
Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1B
Y3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25z
PiBvcHRpb25zKSBjb25zdAogewotICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9j
YWxBcHBlYXJhbmNlKG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRGFy
a0FwcGVhcmFuY2UpKTsKKyAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBw
ZWFyYW5jZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3JPcHRpb25zOjpVc2VEYXJrQXBwZWFy
YW5jZSkpOwogICAgIGlmIChsb2NhbEFwcGVhcmFuY2UudXNpbmdEYXJrQXBwZWFyYW5jZSgpKQog
ICAgICAgICByZXR1cm4gY29sb3JGcm9tTlNDb2xvcihbTlNDb2xvciBzZWxlY3RlZFRleHRDb2xv
cl0pOwogICAgIHJldHVybiB7IH07CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9y
bUluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpP
cHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtSW5h
Y3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25z
PiBvcHRpb25zKSBjb25zdAogewogI2lmIEhBVkUoT1NfREFSS19NT0RFX1NVUFBPUlQpCi0gICAg
TG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0aW9ucy5jb250
YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOworICAgIExvY2Fs
RGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMuY29udGFpbnMo
U3R5bGVDb2xvck9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKSk7CiAgICAgaWYgKGxvY2FsQXBw
ZWFyYW5jZS51c2luZ0RhcmtBcHBlYXJhbmNlKCkpCiAgICAgICAgIHJldHVybiBjb2xvckZyb21O
U0NvbG9yKFtOU0NvbG9yIHVuZW1waGFzaXplZFNlbGVjdGVkVGV4dENvbG9yXSk7CiAgICAgcmV0
dXJuIHsgfTsKQEAgLTM0MCwxMCArMzQwLDEwIEBAIENvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0
Zm9ybUluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvCiAj
ZW5kaWYKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtQWN0aXZlTGlzdEJveFNl
bGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0
aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hT
ZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRp
b25zKSBjb25zdAogewogI2lmIEhBVkUoT1NfREFSS19NT0RFX1NVUFBPUlQpCi0gICAgTG9jYWxE
ZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0aW9ucy5jb250YWlucyhT
dHlsZUNvbG9yOjpPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOworICAgIExvY2FsRGVmYXVs
dFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMuY29udGFpbnMoU3R5bGVD
b2xvck9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKSk7CiAgICAgcmV0dXJuIGNvbG9yRnJvbU5T
Q29sb3IoW05TQ29sb3Igc2VsZWN0ZWRDb250ZW50QmFja2dyb3VuZENvbG9yXSk7CiAjZWxzZQog
ICAgIFVOVVNFRF9QQVJBTShvcHRpb25zKTsKQEAgLTM1MywxMCArMzUzLDEwIEBAIENvbG9yIFJl
bmRlclRoZW1lTWFjOjpwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29s
b3IoT3B0aW9uU2V0PFN0CiAjZW5kaWYKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRm
b3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHls
ZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBs
YXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxT
dHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICNpZiBIQVZFKE9TX0RBUktfTU9E
RV9TVVBQT1JUKQotICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJh
bmNlKG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRGFya0FwcGVhcmFu
Y2UpKTsKKyAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShv
cHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3JPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOwog
I2Vsc2UKICAgICBVTlVTRURfUEFSQU0ob3B0aW9ucyk7CiAjZW5kaWYKQEAgLTM2NCwxNiArMzY0
LDE2IEBAIENvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVj
dGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8CiAKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVN
YWM6OnBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25T
ZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1l
TWFjOjpwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9u
U2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewotICAgIExvY2FsRGVmYXVs
dFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMuY29udGFpbnMoU3R5bGVD
b2xvcjo6T3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpKTsKKyAgICBMb2NhbERlZmF1bHRTeXN0
ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3JP
cHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOwogICAgIHJldHVybiBjb2xvckZyb21OU0NvbG9y
KFtOU0NvbG9yIGFsdGVybmF0ZVNlbGVjdGVkQ29udHJvbFRleHRDb2xvcl0pOwogfQogCi1Db2xv
ciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3Jv
dW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitD
b2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3Jl
Z3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAog
ewogI2lmIEhBVkUoT1NfREFSS19NT0RFX1NVUFBPUlQpCi0gICAgTG9jYWxEZWZhdWx0U3lzdGVt
QXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpP
cHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOworICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVh
cmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvck9wdGlvbnM6
OlVzZURhcmtBcHBlYXJhbmNlKSk7CiAgICAgcmV0dXJuIGNvbG9yRnJvbU5TQ29sb3IoW05TQ29s
b3IgdW5lbXBoYXNpemVkU2VsZWN0ZWRUZXh0Q29sb3JdKTsKICNlbHNlCiAgICAgVU5VU0VEX1BB
UkFNKG9wdGlvbnMpOwpAQCAtMzgxLDMyICszODEsMzIgQEAgQ29sb3IgUmVuZGVyVGhlbWVNYWM6
OnBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNl
dDwKICNlbmRpZgogfQogCi1Db2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1Gb2N1c1JpbmdD
b2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9y
IFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUZvY3VzUmluZ0NvbG9yKE9wdGlvblNldDxTdHlsZUNv
bG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICAgICBpZiAodXNlc1Rlc3RNb2RlRm9jdXNS
aW5nQ29sb3IoKSkKICAgICAgICAgcmV0dXJuIG9sZEFxdWFGb2N1c1JpbmdDb2xvcigpOwotICAg
IExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMuY29u
dGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpKTsKKyAgICBMb2Nh
bERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvcHRpb25zLmNvbnRhaW5z
KFN0eWxlQ29sb3JPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOwogICAgIC8vIFRoZSBjb2xv
ciBpcyBleHBlY3RlZCB0byBiZSBvcGFxdWUsIHNpbmNlIENvcmVHcmFwaGljcyB3aWxsIGFwcGx5
IG9wYWNpdHkgd2hlbiBkcmF3aW5nIChiZWNhdXNlIG9wYWNpdHkgaXMgbm9ybWFsbHkgYW5pbWF0
ZWQpLgogICAgIHJldHVybiBjb2xvckZyb21OU0NvbG9yKFtOU0NvbG9yIGtleWJvYXJkRm9jdXNJ
bmRpY2F0b3JDb2xvcl0pLm9wYXF1ZUNvbG9yKCk7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lTWFj
OjpwbGF0Zm9ybVRleHRTZWFyY2hIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6
T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybVRl
eHRTZWFyY2hIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlv
bnMpIGNvbnN0CiB7Ci0gICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVh
cmFuY2Uob3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VEYXJrQXBwZWFy
YW5jZSkpOworICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNl
KG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvck9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKSk7
CiAgICAgcmV0dXJuIGNvbG9yRnJvbU5TQ29sb3IoW05TQ29sb3IgZmluZEhpZ2hsaWdodENvbG9y
XSk7CiB9CiAKICNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCi1Db2xvciBSZW5kZXJUaGVtZU1h
Yzo6cGxhdGZvcm1BcHBIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9u
cz4pIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1BcHBIaWdobGlnaHRDb2xv
cihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdAogewogICAgIC8vIEZJWE1FOiBl
eHBvc2UgdGhlIHJlYWwgdmFsdWUgZnJvbSBBcHBLaXQuCiAgICAgcmV0dXJuIFNSR0JBPHVpbnQ4
X3Q+IHsgMjU1LCAyMzgsIDE5MCB9OwogfQogI2VuZGlmCiAKLUNvbG9yIFJlbmRlclRoZW1lTWFj
OjpwbGF0Zm9ybURlZmF1bHRCdXR0b25UZXh0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9w
dGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1EZWZh
dWx0QnV0dG9uVGV4dENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykg
Y29uc3QKIHsKLSAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5j
ZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNl
KSk7CisgICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0
aW9ucy5jb250YWlucyhTdHlsZUNvbG9yT3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpKTsKICAg
ICByZXR1cm4gY29sb3JGcm9tTlNDb2xvcihbTlNDb2xvciBhbHRlcm5hdGVTZWxlY3RlZENvbnRy
b2xUZXh0Q29sb3JdKTsKIH0KIApAQCAtNDQ5LDExICs0NDksMTEgQEAgc3RhdGljIFNSR0JBPHVp
bnQ4X3Q+IG1lbnVCYWNrZ3JvdW5kQ29sb3IoKQogICAgIHJldHVybiBtYWtlRnJvbUNvbXBvbmVu
dHNDbGFtcGluZzxTUkdCQTx1aW50OF90Pj4ocGl4ZWxbMF0sIHBpeGVsWzFdLCBwaXhlbFsyXSwg
cGl4ZWxbM10pOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZU1hYzo6c3lzdGVtQ29sb3IoQ1NTVmFs
dWVJRCBjc3NWYWx1ZUlELCBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykg
Y29uc3QKK0NvbG9yIFJlbmRlclRoZW1lTWFjOjpzeXN0ZW1Db2xvcihDU1NWYWx1ZUlEIGNzc1Zh
bHVlSUQsIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKLSAg
ICBjb25zdCBib29sIHVzZVN5c3RlbUFwcGVhcmFuY2UgPSBvcHRpb25zLmNvbnRhaW5zKFN0eWxl
Q29sb3I6Ok9wdGlvbnM6OlVzZVN5c3RlbUFwcGVhcmFuY2UpOwotICAgIGNvbnN0IGJvb2wgdXNl
RGFya0FwcGVhcmFuY2UgPSBvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVz
ZURhcmtBcHBlYXJhbmNlKTsKLSAgICBjb25zdCBib29sIGZvclZpc2l0ZWRMaW5rID0gb3B0aW9u
cy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpGb3JWaXNpdGVkTGluayk7CisgICAgY29u
c3QgYm9vbCB1c2VTeXN0ZW1BcHBlYXJhbmNlID0gb3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9y
T3B0aW9uczo6VXNlU3lzdGVtQXBwZWFyYW5jZSk7CisgICAgY29uc3QgYm9vbCB1c2VEYXJrQXBw
ZWFyYW5jZSA9IG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvck9wdGlvbnM6OlVzZURhcmtBcHBl
YXJhbmNlKTsKKyAgICBjb25zdCBib29sIGZvclZpc2l0ZWRMaW5rID0gb3B0aW9ucy5jb250YWlu
cyhTdHlsZUNvbG9yT3B0aW9uczo6Rm9yVmlzaXRlZExpbmspOwogCiAgICAgYXV0byYgY2FjaGUg
PSBjb2xvckNhY2hlKG9wdGlvbnMpOwogCkBAIC0xNTcxLDcgKzE1NzEsNyBAQCB2b2lkIFJlbmRl
clRoZW1lTWFjOjphZGp1c3RNZW51TGlzdFN0eWxlKFJlbmRlclN0eWxlJiBzdHlsZSwgY29uc3Qg
RWxlbWVudCogZSkgYwogICAgIC8vIFNldCB0aGUgZm9yZWdyb3VuZCBjb2xvciB0byBibGFjayBv
ciBncmF5IHdoZW4gd2UgaGF2ZSB0aGUgYXF1YSBsb29rLgogICAgIENvbG9yIGMgPSBDb2xvcjo6
ZGFya0dyYXk7CiAgICAgaWYgKGUpIHsKLSAgICAgICAgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9w
dGlvbnM+IG9wdGlvbnMgPSBlLT5kb2N1bWVudCgpLnN0eWxlQ29sb3JPcHRpb25zKCZzdHlsZSk7
CisgICAgICAgIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucyA9IGUtPmRvY3Vt
ZW50KCkuc3R5bGVDb2xvck9wdGlvbnMoJnN0eWxlKTsKICAgICAgICAgYyA9ICFlLT5pc0Rpc2Fi
bGVkRm9ybUNvbnRyb2woKSA/IHN5c3RlbUNvbG9yKENTU1ZhbHVlQnV0dG9udGV4dCwgb3B0aW9u
cykgOiBzeXN0ZW1Db2xvcihDU1NWYWx1ZUdyYXl0ZXh0LCBvcHRpb25zKTsKICAgICB9CiAgICAg
c3R5bGUuc2V0Q29sb3IoYyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWVXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
V2luLmNwcAppbmRleCA4NWRhYWQ4NTc3YmQ4ZTc2YzdhZDk3OGUyYzJkZDBjODA0ZTFjYjhjLi4w
ZDQ1YWQ1ZTkyMzBmZDI1OTczNWZjNjFkZTg1ZDA4ZWUzMmFjYTBjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVdpbi5jcHAKQEAgLTI4NSwyNSArMjg1LDI1IEBAIGJv
b2wgUmVuZGVyVGhlbWVXaW46OnN1cHBvcnRzSG92ZXIoY29uc3QgUmVuZGVyU3R5bGUmKSBjb25z
dAogICAgIHJldHVybiBoYXZlVGhlbWU7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lV2luOjpwbGF0
Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6
T3B0aW9ucz4pIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZVdpbjo6cGxhdGZvcm1BY3RpdmVTZWxl
Y3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QK
IHsKICAgICBDT0xPUlJFRiBjb2xvciA9IEdldFN5c0NvbG9yKENPTE9SX0hJR0hMSUdIVCk7CiAg
ICAgcmV0dXJuIFNSR0JBPHVpbnQ4X3Q+IHsgR2V0UlZhbHVlKGNvbG9yKSwgR2V0R1ZhbHVlKGNv
bG9yKSwgR2V0QlZhbHVlKGNvbG9yKSB9OwogfQogCi1Db2xvciBSZW5kZXJUaGVtZVdpbjo6cGxh
dGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xv
cjo6T3B0aW9ucz4pIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZVdpbjo6cGxhdGZvcm1JbmFjdGl2
ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBj
b25zdAogewogICAgIC8vIFRoaXMgY29sb3IgbWF0Y2hlcyBGaXJlZm94LgogICAgIHJldHVybiBT
UkdCQTx1aW50OF90PiB7IDE3NiwgMTc2LCAxNzYgfTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVX
aW46OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHls
ZUNvbG9yOjpPcHRpb25zPikgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lV2luOjpwbGF0Zm9ybUFj
dGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+
KSBjb25zdAogewogICAgIENPTE9SUkVGIGNvbG9yID0gR2V0U3lzQ29sb3IoQ09MT1JfSElHSExJ
R0hUVEVYVCk7CiAgICAgcmV0dXJuIFNSR0JBPHVpbnQ4X3Q+IHsgR2V0UlZhbHVlKGNvbG9yKSwg
R2V0R1ZhbHVlKGNvbG9yKSwgR2V0QlZhbHVlKGNvbG9yKSB9OwogfQogCi1Db2xvciBSZW5kZXJU
aGVtZVdpbjo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25T
ZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1l
V2luOjpwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxT
dHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICAgICByZXR1cm4gcGxhdGZvcm1B
Y3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3Iob3B0aW9ucyk7CiB9CkBAIC0xMDAyLDcgKzEw
MDIsNyBAQCBzdGF0aWMgaW50IGNzc1ZhbHVlSWRUb1N5c0NvbG9ySW5kZXgoQ1NTVmFsdWVJRCBj
c3NWYWx1ZUlkKQogICAgIH0KIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVXaW46OnN5c3RlbUNvbG9y
KENTU1ZhbHVlSUQgY3NzVmFsdWVJZCwgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9w
dGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZVdpbjo6c3lzdGVtQ29sb3IoQ1NTVmFsdWVJ
RCBjc3NWYWx1ZUlkLCBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0
CiB7CiAjaWYgSEFWRShPU19EQVJLX01PREVfU1VQUE9SVCkKICAgICBzd2l0Y2ggKGNzc1ZhbHVl
SWQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVdp
bi5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lV2luLmgKaW5kZXggYzgx
YjUwYTMyYTI5M2ViNjdiMGIyNjI3MDNlMTBlNTAzZTg2ZDgyNS4uNmIwMGNmMDc4NGMyZjA3ZGFl
YzZjMzhmNjJjZmQ0NDZiZDJjN2ZiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lV2luLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lV2luLmgKQEAgLTU0LDEyICs1NCwxMiBAQCBwdWJsaWM6CiAgICAgLy8gQSBtZXRob2Qg
YXNraW5nIGlmIHRoZSB0aGVtZSdzIGNvbnRyb2xzIGFjdHVhbGx5IGNhcmUgYWJvdXQgcmVkcmF3
aW5nIHdoZW4gaG92ZXJlZC4KICAgICBib29sIHN1cHBvcnRzSG92ZXIoY29uc3QgUmVuZGVyU3R5
bGUmKSBjb25zdCBvdmVycmlkZTsKIAotICAgIENvbG9yIHBsYXRmb3JtQWN0aXZlU2VsZWN0aW9u
QmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Qgb3Zl
cnJpZGU7Ci0gICAgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xv
cihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IG92ZXJyaWRlOwotICAgIENv
bG9yIHBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHls
ZUNvbG9yOjpPcHRpb25zPikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgQ29sb3IgcGxhdGZvcm1JbmFj
dGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9u
cz4pIGNvbnN0IG92ZXJyaWRlOworICAgIENvbG9yIHBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFj
a2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IG92ZXJyaWRl
OworICAgIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0
aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Qgb3ZlcnJpZGU7CisgICAgQ29sb3IgcGxh
dGZvcm1BY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JP
cHRpb25zPikgY29uc3Qgb3ZlcnJpZGU7CisgICAgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZVNlbGVj
dGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCBv
dmVycmlkZTsKIAotICAgIENvbG9yIHN5c3RlbUNvbG9yKENTU1ZhbHVlSUQsIE9wdGlvblNldDxT
dHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Qgb3ZlcnJpZGU7CisgICAgQ29sb3Igc3lzdGVtQ29s
b3IoQ1NTVmFsdWVJRCwgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Qgb3ZlcnJp
ZGU7CiAKICAgICBib29sIHBhaW50Q2hlY2tib3goY29uc3QgUmVuZGVyT2JqZWN0JiBvLCBjb25z
dCBQYWludEluZm8mIGksIGNvbnN0IEZsb2F0UmVjdCYgcikgb3ZlcnJpZGUKICAgICB7IHJldHVy
biBwYWludEJ1dHRvbihvLCBpLCBJbnRSZWN0KHIpKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyV2lkZ2V0LmNwcAppbmRleCBhZjA0MTljZjZjNDkyNWQxYzk0NDcyNzNhNzEwNWQx
YzRiOTg1YTE3Li5kNmNjOWI3MWE4YWNiMzE5YWU0NWIxYzBlN2UwNDFiNGViYWU2ODQyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcApAQCAtMjQsNiArMjQsNyBA
QAogI2luY2x1ZGUgIlJlbmRlcldpZGdldC5oIgogCiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5o
IgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkZsb2F0Um91bmRlZFJl
Y3QuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkhUTUxGcmFtZU93bmVyRWxlbWVu
dC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1N0eWxlZE1hcmtlZFRl
eHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1N0eWxlZE1hcmtlZFRleHQuY3BwCmlu
ZGV4IGM5Y2ZjN2ZmNWRiMTAwYTQxZWU2MTE0Mzg4NjlkNGExYzdiZGVjZWYuLjA0N2YwMmExNzlm
YTU2MTNiZDgzYTZmNTc5NzliZjZiMTQwNDI2ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9TdHlsZWRNYXJrZWRUZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvU3R5bGVkTWFya2VkVGV4dC5jcHAKQEAgLTczLDcgKzczLDcgQEAgc3RhdGljIFN0eWxl
ZE1hcmtlZFRleHQgcmVzb2x2ZVN0eWxlRm9yTWFya2VkVGV4dChjb25zdCBNYXJrZWRUZXh0JiBt
YXJrZWRUZXh0LAogICAgICAgICBicmVhazsKICNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCiAg
ICAgY2FzZSBNYXJrZWRUZXh0OjpBcHBIaWdobGlnaHQ6IHsKLSAgICAgICAgT3B0aW9uU2V0PFN0
eWxlQ29sb3I6Ok9wdGlvbnM+IHN0eWxlQ29sb3JPcHRpb25zID0geyBTdHlsZUNvbG9yOjpPcHRp
b25zOjpVc2VTeXN0ZW1BcHBlYXJhbmNlIH07CisgICAgICAgIE9wdGlvblNldDxTdHlsZUNvbG9y
T3B0aW9ucz4gc3R5bGVDb2xvck9wdGlvbnMgPSB7IFN0eWxlQ29sb3JPcHRpb25zOjpVc2VTeXN0
ZW1BcHBlYXJhbmNlIH07CiAgICAgICAgIHN0eWxlLmJhY2tncm91bmRDb2xvciA9IHJlbmRlcmVy
LnRoZW1lKCkuYXBwSGlnaGxpZ2h0Q29sb3Ioc3R5bGVDb2xvck9wdGlvbnMpOwogICAgICAgICBi
cmVhazsKICAgICB9CkBAIC05Miw3ICs5Miw3IEBAIHN0YXRpYyBTdHlsZWRNYXJrZWRUZXh0IHJl
c29sdmVTdHlsZUZvck1hcmtlZFRleHQoY29uc3QgTWFya2VkVGV4dCYgbWFya2VkVGV4dCwKICAg
ICB9CiAgICAgY2FzZSBNYXJrZWRUZXh0OjpUZXh0TWF0Y2g6IHsKICAgICAgICAgLy8gVGV4dCBt
YXRjaGVzIGFsd2F5cyB1c2UgdGhlIGxpZ2h0IHN5c3RlbSBhcHBlYXJhbmNlLgotICAgICAgICBP
cHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gc3R5bGVDb2xvck9wdGlvbnMgPSB7IFN0eWxl
Q29sb3I6Ok9wdGlvbnM6OlVzZVN5c3RlbUFwcGVhcmFuY2UgfTsKKyAgICAgICAgT3B0aW9uU2V0
PFN0eWxlQ29sb3JPcHRpb25zPiBzdHlsZUNvbG9yT3B0aW9ucyA9IHsgU3R5bGVDb2xvck9wdGlv
bnM6OlVzZVN5c3RlbUFwcGVhcmFuY2UgfTsKICNpZiBQTEFURk9STShNQUMpCiAgICAgICAgIHN0
eWxlLnRleHRTdHlsZXMuZmlsbENvbG9yID0gcmVuZGVyZXIudGhlbWUoKS5zeXN0ZW1Db2xvcihD
U1NWYWx1ZUFwcGxlU3lzdGVtTGFiZWwsIHN0eWxlQ29sb3JPcHRpb25zKTsKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRQYWludFN0eWxlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0UGFpbnRTdHlsZS5jcHAKaW5kZXggYmZmMjE3ZTk0
MDEyZTIxZDZjMTJjMDRlODhiODcwOWNmOWU1NzdkYi4uZmM2OGY0M2VmZGUzNmM0Y2Y4YmUxNTEx
ZWRlODY0ZmQwZmE0YTdhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Rl
eHRQYWludFN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dFBhaW50
U3R5bGUuY3BwCkBAIC05OCw5ICs5OCw5IEBAIFRleHRQYWludFN0eWxlIGNvbXB1dGVUZXh0UGFp
bnRTdHlsZShjb25zdCBGcmFtZSYgZnJhbWUsIGNvbnN0IFJlbmRlclN0eWxlJiBsaW5lCiAgICAg
aWYgKGxpbmVTdHlsZS5pbnNpZGVEZWZhdWx0QnV0dG9uKCkpIHsKICAgICAgICAgUGFnZSogcGFn
ZSA9IGZyYW1lLnBhZ2UoKTsKICAgICAgICAgaWYgKHBhZ2UgJiYgcGFnZS0+Zm9jdXNDb250cm9s
bGVyKCkuaXNBY3RpdmUoKSkgewotICAgICAgICAgICAgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9w
dGlvbnM+IG9wdGlvbnM7CisgICAgICAgICAgICBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+
IG9wdGlvbnM7CiAgICAgICAgICAgICBpZiAocGFnZS0+dXNlU3lzdGVtQXBwZWFyYW5jZSgpKQot
ICAgICAgICAgICAgICAgIG9wdGlvbnMuYWRkKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZVN5c3Rl
bUFwcGVhcmFuY2UpOworICAgICAgICAgICAgICAgIG9wdGlvbnMuYWRkKFN0eWxlQ29sb3JPcHRp
b25zOjpVc2VTeXN0ZW1BcHBlYXJhbmNlKTsKICAgICAgICAgICAgIHBhaW50U3R5bGUuZmlsbENv
bG9yID0gUmVuZGVyVGhlbWU6OnNpbmdsZXRvbigpLmRlZmF1bHRCdXR0b25UZXh0Q29sb3Iob3B0
aW9ucyk7CiAgICAgICAgICAgICByZXR1cm4gcGFpbnRTdHlsZTsKICAgICAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRl
ci5jcHAKaW5kZXggNDMwYTM0MmY2M2I5Mzg0NGY0MWI3NTdiMGRmYWQ5YWFiYjI3Y2NjNC4uOWNl
NTE2Yjg2NzNmMzc3NDc0NDExYWYyYjA4NDMwYmFlNWRkMTQ3NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXIuY3BwCkBA
IC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiUmVuZGVyVHJlZUJ1aWxkZXIuaCIKIAogI2luY2x1
ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNs
dWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCiAjaW5jbHVkZSAiUmVu
ZGVyQnV0dG9uLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggNDZkYmY1
YmIzM2Q1ZTg1ZTE1MjFhYmU3ODhiOTE3ZmUyODEzYzdhOS4uNDNjNDljOTUwZTNiOTk1YzY1YjE1
MDJjNTViMjM2NjgyMTRhMTM1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApA
QCAtNjksNiArNjksNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAi
RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRUaW1lbGluZS5o
IgorI2luY2x1ZGUgIkRvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkVk
aXRvci5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIK
QEAgLTQ2MzMsMTQgKzQ2MzQsMTQgQEAgdm9pZCBJbnRlcm5hbHM6OnNldFBhZ2VNdXRlZChTdHJp
bmdWaWV3IHN0YXRlc1N0cmluZykKICAgICBpZiAoIWRvY3VtZW50KQogICAgICAgICByZXR1cm47
CiAKLSAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3Mgc3RhdGU7Cisg
ICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVkU3RhdGVGbGFncyBzdGF0ZTsKICAgICBmb3Ig
KFN0cmluZ1ZpZXcgc3RhdGVTdHJpbmcgOiBzdGF0ZXNTdHJpbmcuc3BsaXQoJywnKSkgewogICAg
ICAgICBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uoc3RhdGVTdHJpbmcsICJhdWRp
byIpKQotICAgICAgICAgICAgc3RhdGUuYWRkKE1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGU6OkF1
ZGlvSXNNdXRlZCk7CisgICAgICAgICAgICBzdGF0ZS5hZGQoTWVkaWFQcm9kdWNlck11dGVkU3Rh
dGU6OkF1ZGlvSXNNdXRlZCk7CiAgICAgICAgIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJ
Q2FzZShzdGF0ZVN0cmluZywgImNhcHR1cmVkZXZpY2VzIikpCiAgICAgICAgICAgICBzdGF0ZS5h
ZGQoTWVkaWFQcm9kdWNlcjo6QXVkaW9BbmRWaWRlb0NhcHR1cmVJc011dGVkKTsKICAgICAgICAg
aWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHN0YXRlU3RyaW5nLCAic2NyZWVuY2Fw
dHVyZSIpKQotICAgICAgICAgICAgc3RhdGUuYWRkKE1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGU6
OlNjcmVlbkNhcHR1cmVJc011dGVkKTsKKyAgICAgICAgICAgIHN0YXRlLmFkZChNZWRpYVByb2R1
Y2VyTXV0ZWRTdGF0ZTo6U2NyZWVuQ2FwdHVyZUlzTXV0ZWQpOwogICAgIH0KIAogICAgIGlmIChQ
YWdlKiBwYWdlID0gZG9jdW1lbnQtPnBhZ2UoKSkKQEAgLTQ2NTUsNDMgKzQ2NTYsNDMgQEAgU3Ry
aW5nIEludGVybmFsczo6cGFnZU1lZGlhU3RhdGUoKQogCiAgICAgYXV0byBzdGF0ZSA9IGRvY3Vt
ZW50LT5wYWdlKCktPm1lZGlhU3RhdGUoKTsKICAgICBTdHJpbmdCdWlsZGVyIHN0cmluZzsKLSAg
ICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5
aW5nQXVkaW8pKQorICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyTWVkaWFT
dGF0ZTo6SXNQbGF5aW5nQXVkaW8pKQogICAgICAgICBzdHJpbmcuYXBwZW5kKCJJc1BsYXlpbmdB
dWRpbywiKTsKLSAgICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlcjo6TWVkaWFT
dGF0ZTo6SXNQbGF5aW5nVmlkZW8pKQorICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVBy
b2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nVmlkZW8pKQogICAgICAgICBzdHJpbmcuYXBwZW5k
KCJJc1BsYXlpbmdWaWRlbywiKTsKLSAgICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9k
dWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nVG9FeHRlcm5hbERldmljZSkpCisgICAgaWYgKHN0
YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdUb0V4dGVy
bmFsRGV2aWNlKSkKICAgICAgICAgc3RyaW5nLmFwcGVuZCgiSXNQbGF5aW5nVG9FeHRlcm5hbERl
dmljZSwiKTsKLSAgICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlcjo6TWVkaWFT
dGF0ZTo6UmVxdWlyZXNQbGF5YmFja1RhcmdldE1vbml0b3JpbmcpKQorICAgIGlmIChzdGF0ZS5j
b250YWluc0FueShNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6UmVxdWlyZXNQbGF5YmFja1Rhcmdl
dE1vbml0b3JpbmcpKQogICAgICAgICBzdHJpbmcuYXBwZW5kKCJSZXF1aXJlc1BsYXliYWNrVGFy
Z2V0TW9uaXRvcmluZywiKTsKLSAgICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNl
cjo6TWVkaWFTdGF0ZTo6RXh0ZXJuYWxEZXZpY2VBdXRvUGxheUNhbmRpZGF0ZSkpCisgICAgaWYg
KHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpFeHRlcm5hbERldmlj
ZUF1dG9QbGF5Q2FuZGlkYXRlKSkKICAgICAgICAgc3RyaW5nLmFwcGVuZCgiRXh0ZXJuYWxEZXZp
Y2VBdXRvUGxheUNhbmRpZGF0ZSwiKTsKLSAgICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZTo6RGlkUGxheVRvRW5kKSkKKyAgICBpZiAoc3RhdGUuY29udGFp
bnNBbnkoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OkRpZFBsYXlUb0VuZCkpCiAgICAgICAgIHN0
cmluZy5hcHBlbmQoIkRpZFBsYXlUb0VuZCwiKTsKLSAgICBpZiAoc3RhdGUuY29udGFpbnNBbnko
TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNTb3VyY2VFbGVtZW50UGxheWluZykpCisgICAg
aWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1NvdXJjZUVs
ZW1lbnRQbGF5aW5nKSkKICAgICAgICAgc3RyaW5nLmFwcGVuZCgiSXNTb3VyY2VFbGVtZW50UGxh
eWluZywiKTsKIAotICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRp
YVN0YXRlOjpJc05leHRUcmFja0NvbnRyb2xFbmFibGVkKSkKKyAgICBpZiAoc3RhdGUuY29udGFp
bnNBbnkoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzTmV4dFRyYWNrQ29udHJvbEVuYWJsZWQp
KQogICAgICAgICBzdHJpbmcuYXBwZW5kKCJJc05leHRUcmFja0NvbnRyb2xFbmFibGVkLCIpOwot
ICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1By
ZXZpb3VzVHJhY2tDb250cm9sRW5hYmxlZCkpCisgICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1l
ZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1ByZXZpb3VzVHJhY2tDb250cm9sRW5hYmxlZCkpCiAg
ICAgICAgIHN0cmluZy5hcHBlbmQoIklzUHJldmlvdXNUcmFja0NvbnRyb2xFbmFibGVkLCIpOwog
Ci0gICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhh
c1BsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5TGlzdGVuZXIpKQorICAgIGlmIChzdGF0ZS5jb250
YWluc0FueShNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzUGxheWJhY2tUYXJnZXRBdmFpbGFi
aWxpdHlMaXN0ZW5lcikpCiAgICAgICAgIHN0cmluZy5hcHBlbmQoIkhhc1BsYXliYWNrVGFyZ2V0
QXZhaWxhYmlsaXR5TGlzdGVuZXIsIik7Ci0gICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlh
UHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0F1ZGlvT3JWaWRlbykpCisgICAgaWYgKHN0YXRlLmNv
bnRhaW5zQW55KE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBdWRpb09yVmlkZW8pKQogICAg
ICAgICBzdHJpbmcuYXBwZW5kKCJIYXNBdWRpb09yVmlkZW8sIik7Ci0gICAgaWYgKHN0YXRlLmNv
bnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVy
ZURldmljZSkpCisgICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXJNZWRpYVN0
YXRlOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UpKQogICAgICAgICBzdHJpbmcuYXBwZW5k
KCJIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UsIik7Ci0gICAgaWYgKHN0YXRlLmNvbnRhaW5z
QW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmlj
ZSkpCisgICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpI
YXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UpKQogICAgICAgICBzdHJpbmcuYXBwZW5kKCJIYXNB
Y3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UsIik7Ci0gICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNlKSkKKyAg
ICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc011dGVk
QXVkaW9DYXB0dXJlRGV2aWNlKSkKICAgICAgICAgc3RyaW5nLmFwcGVuZCgiSGFzTXV0ZWRBdWRp
b0NhcHR1cmVEZXZpY2UsIik7Ci0gICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGU6Okhhc011dGVkVmlkZW9DYXB0dXJlRGV2aWNlKSkKKyAgICBpZiAoc3Rh
dGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc011dGVkVmlkZW9DYXB0
dXJlRGV2aWNlKSkKICAgICAgICAgc3RyaW5nLmFwcGVuZCgiSGFzTXV0ZWRWaWRlb0NhcHR1cmVE
ZXZpY2UsIik7Ci0gICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlh
U3RhdGU6Okhhc1VzZXJJbnRlcmFjdGVkV2l0aE1lZGlhRWxlbWVudCkpCisgICAgaWYgKHN0YXRl
LmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNVc2VySW50ZXJhY3RlZFdp
dGhNZWRpYUVsZW1lbnQpKQogICAgICAgICBzdHJpbmcuYXBwZW5kKCJIYXNVc2VySW50ZXJhY3Rl
ZFdpdGhNZWRpYUVsZW1lbnQsIik7Ci0gICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZURpc3BsYXlDYXB0dXJlRGV2aWNlKSkKKyAgICBp
ZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0FjdGl2ZURp
c3BsYXlDYXB0dXJlRGV2aWNlKSkKICAgICAgICAgc3RyaW5nLmFwcGVuZCgiSGFzQWN0aXZlRGlz
cGxheUNhcHR1cmVEZXZpY2UsIik7Ci0gICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc011dGVkRGlzcGxheUNhcHR1cmVEZXZpY2UpKQorICAgIGlm
IChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzTXV0ZWREaXNw
bGF5Q2FwdHVyZURldmljZSkpCiAgICAgICAgIHN0cmluZy5hcHBlbmQoIkhhc011dGVkRGlzcGxh
eUNhcHR1cmVEZXZpY2UsIik7CiAKICAgICBpZiAoc3RyaW5nLmlzRW1wdHkoKSkKQEAgLTYxMjQs
MTEgKzYxMjUsMTEgQEAgU3RyaW5nIEludGVybmFsczo6c3lzdGVtQ29sb3JGb3JDU1NWYWx1ZShj
b25zdCBTdHJpbmcmIGNzc1ZhbHVlLCBib29sIHVzZURhcmtNb2QKICAgICBDU1NWYWx1ZUlEIGlk
ID0gY3NzVmFsdWVLZXl3b3JkSUQoY3NzVmFsdWUpOwogICAgIFJFTEVBU0VfQVNTRVJUKFN0eWxl
Q29sb3I6OmlzU3lzdGVtQ29sb3JLZXl3b3JkKGlkKSk7CiAKLSAgICBPcHRpb25TZXQ8U3R5bGVD
b2xvcjo6T3B0aW9ucz4gb3B0aW9uczsKKyAgICBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+
IG9wdGlvbnM7CiAgICAgaWYgKHVzZURhcmtNb2RlQXBwZWFyYW5jZSkKLSAgICAgICAgb3B0aW9u
cy5hZGQoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpOworICAgICAgICBv
cHRpb25zLmFkZChTdHlsZUNvbG9yT3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpOwogICAgIGlm
ICh1c2VFbGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCkKLSAgICAgICAgb3B0aW9ucy5hZGQoU3R5
bGVDb2xvcjo6T3B0aW9uczo6VXNlRWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWwpOworICAgICAg
ICBvcHRpb25zLmFkZChTdHlsZUNvbG9yT3B0aW9uczo6VXNlRWxldmF0ZWRVc2VySW50ZXJmYWNl
TGV2ZWwpOwogICAgIAogICAgIHJldHVybiBzZXJpYWxpemF0aW9uRm9yQ1NTKFJlbmRlclRoZW1l
OjpzaW5nbGV0b24oKS5zeXN0ZW1Db2xvcihpZCwgb3B0aW9ucykpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwIGIv
U291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwCmlu
ZGV4IGFmNzY5NzYyM2NjOWNmNDQ2Y2U4ZGNlM2NkZDRjMmJhMjc0Mjc3NTMuLmE4YzNlMThlNDdh
ZWNhZDBhMDIyYTA4NGM0OWEyMWY2YzcxNGMzOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHAKQEAgLTU1LDYgKzU1
LDcgQEAKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgog
I2luY2x1ZGUgIlN0eWxlU2NvcGUuaCIKKyNpbmNsdWRlICJUZXh0UmVzb3VyY2VEZWNvZGVyLmgi
CiAjaW5jbHVkZSAiVHJhbnNmb3JtU291cmNlLmgiCiAjaW5jbHVkZSAiWE1MTlNOYW1lcy5oIgog
I2luY2x1ZGUgIlhNTERvY3VtZW50UGFyc2VyU2NvcGUuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcAppbmRl
eCAxNTM5OTI4YmFmNGMwNTcxZDM1NTI5NjhhMWZiY2YxZjJjNzRiYmRmLi44YjAzYzgxZDA3NWJi
OWMzMzM0NDU3NjYzMzYzYzEyMzNlMmFjMzllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwCkBAIC01Myw2
ICs1Myw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXllci5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvTWVkaWFQbGF5ZXJQcml2YXRlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1l
bnRlZC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KIAogI2lmIEVOQUJM
RShFTkNSWVBURURfTUVESUEpCiAjaW5jbHVkZSAiUmVtb3RlQ0RNRmFjdG9yeVByb3h5LmgiCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxv
YWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxv
YWRlci5jcHAKaW5kZXggNzZmMTI5M2U0ODQ4ZTRlZjRlMjkwNGU1ODU3NTFjNGNmNmU0YzhhOS4u
OTAyMzZhY2IxZjA0Mjc3YTc4MmY1NTNmOTZlMzZhYTRhZDFiNmQxZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcApA
QCAtMTYxNSw3ICsxNjE1LDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnNlbmRDU1BW
aW9sYXRpb25SZXBvcnQoVVJMJiYgcmVwb3J0VVJMLCBSZWY8Rm9ybURhdGEKICAgICBzZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlOjpTZW5kQ1NQVmlvbGF0aW9uUmVwb3J0IHsgbV9wYXJhbWV0ZXJzLndl
YkZyYW1lSUQsIFdURk1vdmUocmVwb3J0VVJMKSwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSB7IFdU
Rk1vdmUocmVwb3J0KSB9IH0sIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQpOwogfQogCi12b2lkIE5l
dHdvcmtSZXNvdXJjZUxvYWRlcjo6ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQo
V2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6SW5pdCYmIGV2ZW50SW5pdCkK
K3ZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjplbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRp
b25FdmVudChXZWJDb3JlOjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50SW5pdCYmIGV2ZW50
SW5pdCkKIHsKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpFbnF1ZXVlU2VjdXJpdHlQb2xp
Y3lWaW9sYXRpb25FdmVudCB7IG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBXVEZNb3ZlKGV2ZW50
SW5pdCkgfSwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaAppbmRleCBiMmQxZGNi
N2M3NjgxNTc5YTFjZjZmZmJkNDI0ZDQxZjEwOWQwNTgyLi5kMTc3NmU4MWY5Yzc2ZjgyNGQ5ZjRh
MzI2NDIzZTE5MGRmODk1YTUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmgKQEAgLTIwOCw3ICsyMDgsNyBAQCBwcml2YXRl
OgogICAgIC8vIENvbnRlbnRTZWN1cml0eVBvbGljeUNsaWVudAogICAgIHZvaWQgYWRkQ29uc29s
ZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmLCB1bnNp
Z25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyID0gMCkgZmluYWw7CiAgICAgdm9pZCBzZW5kQ1NQ
VmlvbGF0aW9uUmVwb3J0KFVSTCYmLCBSZWY8V2ViQ29yZTo6Rm9ybURhdGE+JiYpIGZpbmFsOwot
ICAgIHZvaWQgZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQoV2ViQ29yZTo6U2Vj
dXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6SW5pdCYmKSBmaW5hbDsKKyAgICB2b2lkIGVucXVl
dWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50KFdlYkNvcmU6OlNlY3VyaXR5UG9saWN5Vmlv
bGF0aW9uRXZlbnRJbml0JiYpIGZpbmFsOwogCiAgICAgdm9pZCBsb2dTbG93Q2FjaGVSZXRyaWV2
ZUlmTmVlZGVkKGNvbnN0IE5ldHdvcmtDYWNoZTo6Q2FjaGU6OlJldHJpZXZlSW5mbyYpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291
cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCAyNzgxZDEwZTljNjhl
ZWNjYjU2Yjc2OGIyNDUxOGQ5YWM1NDE3Yjg5Li45MTZjYTBlMzE5NDI2ZDE2NmFkZGMzNjQ5YTY0
MjVlNjJiNGUwOGMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21l
c3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkK
QEAgLTcyNiw2ICs3MjYsOSBAQCBkZWYgaGVhZGVyc19mb3JfdHlwZSh0eXBlKToKICAgICAgICAg
J1dlYkNvcmU6OkxlZ2FjeUNETVNlc3Npb25DbGllbnQ6Ok1lZGlhS2V5RXJyb3JDb2RlJzogWyc8
V2ViQ29yZS9MZWdhY3lDRE1TZXNzaW9uLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpMb2NrQmFj
a0ZvcndhcmRMaXN0JzogWyc8V2ViQ29yZS9GcmFtZUxvYWRlclR5cGVzLmg+J10sCiAgICAgICAg
ICdXZWJDb3JlOjpNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJzogWyc8V2ViQ29yZS9NZWRp
YVBsYXllci5oPiddLAorICAgICAgICAnV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGUn
OiBbJzxXZWJDb3JlL01lZGlhUHJvZHVjZXIuaD4nXSwKKyAgICAgICAgJ1dlYkNvcmU6Ok1lZGlh
UHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kJzogWyc8V2ViQ29yZS9NZWRpYVByb2R1Y2VyLmg+J10s
CisgICAgICAgICdXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZSc6IFsnPFdlYkNvcmUv
TWVkaWFQcm9kdWNlci5oPiddLAogICAgICAgICAnV2ViQ29yZTo6TWVzc2FnZVBvcnRDaGFubmVs
UHJvdmlkZXI6Okhhc0FjdGl2aXR5JzogWyc8V2ViQ29yZS9NZXNzYWdlUG9ydENoYW5uZWxQcm92
aWRlci5oPiddLAogICAgICAgICAnV2ViQ29yZTo6TW91c2VFdmVudFBvbGljeSc6IFsnPFdlYkNv
cmUvRG9jdW1lbnRMb2FkZXIuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6Ok5ldHdvcmtUcmFuc2Fj
dGlvbkluZm9ybWF0aW9uJzogWyc8V2ViQ29yZS9OZXR3b3JrTG9hZEluZm9ybWF0aW9uLmg+J10s
CkBAIC03NDgsNiArNzUxLDcgQEAgZGVmIGhlYWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAgICAg
ICdXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3knOiBbJzxXZWJDb3JlL0F1ZGlvU2Vzc2lvbi5o
PiddLAogICAgICAgICAnV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcic6IFsn
PFdlYkNvcmUvU2VydmljZVdvcmtlclR5cGVzLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpTYW1l
U2l0ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZCc6IFsnPFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uLmg+J10sCisgICAgICAgICdXZWJDb3JlOjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2
ZW50SW5pdCc6IFsnPFdlYkNvcmUvU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudC5oPiddLAog
ICAgICAgICAnV2ViQ29yZTo6U2VsZWN0aW9uRGlyZWN0aW9uJzogWyc8V2ViQ29yZS9WaXNpYmxl
U2VsZWN0aW9uLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpTZWxlY3Rpb25HZW9tZXRyeSc6IFsn
IkVkaXRvclN0YXRlLmgiJ10sCiAgICAgICAgICdXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9iSWRl
bnRpZmllcic6IFsnPFdlYkNvcmUvU2VydmljZVdvcmtlclR5cGVzLmg+J10sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IGFk
NDExYjgwNjI5OGE0Yjg1ZTg3ODViYmY0NzVmZjJkOTNjZjE3ZWYuLmNiY2E5MDhlMzgzNjBkMWQ5
Yzk5NDQyZTA5M2ZhMDg5MTUxZTk2ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC0yODQsNyArMjg0LDcgQEAgc3RkOjpv
cHRpb25hbDxXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzPiBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0
ZXJzOjpkZWNvZGUoSVBDOjoKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMubWVk
aWFWb2x1bWUpKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCi0gICAgc3RkOjpvcHRp
b25hbDxXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3M+IG11dGVkU3RhdGVG
bGFnczsKKyAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRl
RmxhZ3M+IG11dGVkU3RhdGVGbGFnczsKICAgICBkZWNvZGVyID4+IG11dGVkU3RhdGVGbGFnczsK
ICAgICBpZiAoIW11dGVkU3RhdGVGbGFncykKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRl
cnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaApp
bmRleCA0YTA1ZDYwYjJhY2UxMjI0MDEzNDhiYmE5YWExZGExNzQ2Yjg5MjQwLi5lYjFlZTA5NTlh
NTEzZGI4MjU3ZDY0YWRkY2VlYTUwOWI3YTNlODZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC0xMTksNyArMTE5LDcgQEAgc3Ry
dWN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgewogICAgIGZsb2F0IHRvcENvbnRlbnRJbnNl
dDsKICAgICAKICAgICBmbG9hdCBtZWRpYVZvbHVtZTsKLSAgICBXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyOjpNdXRlZFN0YXRlRmxhZ3MgbXV0ZWQ7CisgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck11
dGVkU3RhdGVGbGFncyBtdXRlZDsKICAgICBib29sIG1heVN0YXJ0TWVkaWFXaGVuSW5XaW5kb3c7
CiAgICAgYm9vbCBtZWRpYVBsYXliYWNrSXNTdXNwZW5kZWQgeyBmYWxzZSB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCmluZGV4IDJkYjBmNTY5Y2IyMjUwNTg5
ZTdlYzE2MDU4ZGFmYjVhNmE0ZTdiZjAuLjU0OTEwMmViNWZlZWFiMDA5YmY5NDc3NTMyZDRmOWQ1
MDFlYThlNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCkBA
IC0xNTUsNyArMTU1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBwaW5uZWRTdGF0ZURp
ZENoYW5nZShXZWJLaXQ6OldlYlBhZ2VQcm94eSYpIHsgfQogCiAgICAgdmlydHVhbCB2b2lkIGlz
UGxheWluZ01lZGlhRGlkQ2hhbmdlKFdlYktpdDo6V2ViUGFnZVByb3h5JikgeyB9Ci0gICAgdmly
dHVhbCB2b2lkIG1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGVGbGFncykgeyB9CisgICAgdmlydHVhbCB2b2lkIG1lZGlhQ2FwdHVyZVN0
YXRlRGlkQ2hhbmdlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MpIHsgfQog
ICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVBdXRvcGxheUV2ZW50KFdlYktpdDo6V2ViUGFnZVByb3h5
JiwgV2ViQ29yZTo6QXV0b3BsYXlFdmVudCwgT3B0aW9uU2V0PFdlYkNvcmU6OkF1dG9wbGF5RXZl
bnRGbGFncz4pIHsgfQogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCmluZGV4IDcwMWYxYTI5MDg4ZDg0MjAxNjBjNzNlMGNk
OWVmZDMyZGNjNmYyM2QuLjFmYjJmMjdhZDJiOTIxYTg4ZWFjYWQ4Yzc5Njg0YjY4NTIxZTY3ZWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApAQCAtMjgxNiwxNCAr
MjgxNiwxNCBAQCB2b2lkIFdLUGFnZVNldE1lZGlhVm9sdW1lKFdLUGFnZVJlZiBwYWdlUmVmLCBm
bG9hdCB2b2x1bWUpCiB2b2lkIFdLUGFnZVNldE11dGVkKFdLUGFnZVJlZiBwYWdlUmVmLCBXS01l
ZGlhTXV0ZWRTdGF0ZSBtdXRlZFN0YXRlKQogewogICAgIENSQVNIX0lGX1NVU1BFTkRFRDsKLSAg
ICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3MgY29yZVN0YXRlOworICAg
IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlRmxhZ3MgY29yZVN0YXRlOwogCiAgICAg
aWYgKG11dGVkU3RhdGUgJiBrV0tNZWRpYUF1ZGlvTXV0ZWQpCi0gICAgICAgIGNvcmVTdGF0ZS5h
ZGQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6QXVkaW9Jc011dGVkKTsKKyAg
ICAgICAgY29yZVN0YXRlLmFkZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZTo6QXVk
aW9Jc011dGVkKTsKICAgICBpZiAobXV0ZWRTdGF0ZSAmIGtXS01lZGlhQ2FwdHVyZURldmljZXNN
dXRlZCkKICAgICAgICAgY29yZVN0YXRlLmFkZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpBdWRp
b0FuZFZpZGVvQ2FwdHVyZUlzTXV0ZWQpOwogICAgIGlmIChtdXRlZFN0YXRlICYga1dLTWVkaWFT
Y3JlZW5DYXB0dXJlTXV0ZWQpCi0gICAgICAgIGNvcmVTdGF0ZS5hZGQoV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlcjo6TXV0ZWRTdGF0ZTo6U2NyZWVuQ2FwdHVyZUlzTXV0ZWQpOworICAgICAgICBjb3Jl
U3RhdGUuYWRkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlOjpTY3JlZW5DYXB0dXJl
SXNNdXRlZCk7CiAKICAgICB0b0ltcGwocGFnZVJlZiktPnNldE11dGVkKGNvcmVTdGF0ZSk7CiB9
CkBAIC0yOTcxLDI0ICsyOTcxLDI0IEBAIGJvb2wgV0tQYWdlSXNQbGF5aW5nQXVkaW8oV0tQYWdl
UmVmIHBhZ2UpCiAKIFdLTWVkaWFTdGF0ZSBXS1BhZ2VHZXRNZWRpYVN0YXRlKFdLUGFnZVJlZiBw
YWdlKQogewotICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBjb3Jl
U3RhdGUgPSB0b0ltcGwocGFnZSktPnJlcG9ydGVkTWVkaWFTdGF0ZSgpOworICAgIFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgY29yZVN0YXRlID0gdG9JbXBsKHBhZ2UpLT5y
ZXBvcnRlZE1lZGlhU3RhdGUoKTsKICAgICBXS01lZGlhU3RhdGUgc3RhdGUgPSBrV0tNZWRpYUlz
Tm90UGxheWluZzsKIAotICAgIGlmIChjb3JlU3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
OjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbykKKyAgICBpZiAoY29yZVN0YXRlICYgV2ViQ29y
ZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvKQogICAgICAgICBzdGF0
ZSB8PSBrV0tNZWRpYUlzUGxheWluZ0F1ZGlvOwotICAgIGlmIChjb3JlU3RhdGUgJiBXZWJDb3Jl
OjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbykKKyAgICBpZiAoY29y
ZVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVv
KQogICAgICAgICBzdGF0ZSB8PSBrV0tNZWRpYUlzUGxheWluZ1ZpZGVvOwotICAgIGlmIChjb3Jl
U3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBY3RpdmVBdWRp
b0NhcHR1cmVEZXZpY2UpCisgICAgaWYgKGNvcmVTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXJNZWRpYVN0YXRlOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UpCiAgICAgICAgIHN0YXRl
IHw9IGtXS01lZGlhSGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlOwotICAgIGlmIChjb3JlU3Rh
dGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBY3RpdmVWaWRlb0Nh
cHR1cmVEZXZpY2UpCisgICAgaWYgKGNvcmVTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJN
ZWRpYVN0YXRlOjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UpCiAgICAgICAgIHN0YXRlIHw9
IGtXS01lZGlhSGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlOwotICAgIGlmIChjb3JlU3RhdGUg
JiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNNdXRlZEF1ZGlvQ2FwdHVy
ZURldmljZSkKKyAgICBpZiAoY29yZVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlh
U3RhdGU6Okhhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNlKQogICAgICAgICBzdGF0ZSB8PSBrV0tN
ZWRpYUhhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNlOwotICAgIGlmIChjb3JlU3RhdGUgJiBXZWJD
b3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNNdXRlZFZpZGVvQ2FwdHVyZURldmlj
ZSkKKyAgICBpZiAoY29yZVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6
Okhhc011dGVkVmlkZW9DYXB0dXJlRGV2aWNlKQogICAgICAgICBzdGF0ZSB8PSBrV0tNZWRpYUhh
c011dGVkVmlkZW9DYXB0dXJlRGV2aWNlOwotICAgIGlmIChjb3JlU3RhdGUgJiBXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBY3RpdmVEaXNwbGF5Q2FwdHVyZURldmljZSkK
KyAgICBpZiAoY29yZVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhh
c0FjdGl2ZURpc3BsYXlDYXB0dXJlRGV2aWNlKQogICAgICAgICBzdGF0ZSB8PSBrV0tNZWRpYUhh
c0FjdGl2ZURpc3BsYXlDYXB0dXJlRGV2aWNlOwotICAgIGlmIChjb3JlU3RhdGUgJiBXZWJDb3Jl
OjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNNdXRlZERpc3BsYXlDYXB0dXJlRGV2aWNl
KQorICAgIGlmIChjb3JlU3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6
SGFzTXV0ZWREaXNwbGF5Q2FwdHVyZURldmljZSkKICAgICAgICAgc3RhdGUgfD0ga1dLTWVkaWFI
YXNNdXRlZERpc3BsYXlDYXB0dXJlRGV2aWNlOwogCiAgICAgcmV0dXJuIHN0YXRlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggMDA0NGE4
MWEyN2E5YmE1MGM5NzhkNjcyNWQwNjkzZGExZmIxMDc5Yy4uNTcyZWM5NmRjYTdjNzVmNGIxN2I0
ODJlMjdhYWU1MmQyNDQ3MWFlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Lm1tCkBAIC0xMDM3LDkgKzEwMzcsOSBAQCAtICh2b2lkKXJlcXVlc3RN
ZWRpYVBsYXliYWNrU3RhdGVXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKFdLTWVkaWFQ
bGF5YmFjawogLSAoV0tNZWRpYUNhcHR1cmVTdGF0ZSljYW1lcmFDYXB0dXJlU3RhdGUKIHsKICAg
ICBhdXRvIHN0YXRlID0gX3BhZ2UtPnJlcG9ydGVkTWVkaWFTdGF0ZSgpOwotICAgIGlmIChzdGF0
ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZVZpZGVvQ2Fw
dHVyZURldmljZSkKKyAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFT
dGF0ZTo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlKQogICAgICAgICByZXR1cm4gV0tNZWRp
YUNhcHR1cmVTdGF0ZUFjdGl2ZTsKLSAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyOjpNZWRpYVN0YXRlOjpIYXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZSkKKyAgICBpZiAoc3Rh
dGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzTXV0ZWRWaWRlb0NhcHR1
cmVEZXZpY2UpCiAgICAgICAgIHJldHVybiBXS01lZGlhQ2FwdHVyZVN0YXRlTXV0ZWQ7CiAgICAg
cmV0dXJuIFdLTWVkaWFDYXB0dXJlU3RhdGVOb25lOwogfQpAQCAtMTA0Nyw5ICsxMDQ3LDkgQEAg
LSAoV0tNZWRpYUNhcHR1cmVTdGF0ZSljYW1lcmFDYXB0dXJlU3RhdGUKIC0gKFdLTWVkaWFDYXB0
dXJlU3RhdGUpbWljcm9waG9uZUNhcHR1cmVTdGF0ZQogewogICAgIGF1dG8gc3RhdGUgPSBfcGFn
ZS0+cmVwb3J0ZWRNZWRpYVN0YXRlKCk7Ci0gICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlKQorICAgIGlm
IChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBY3RpdmVBdWRp
b0NhcHR1cmVEZXZpY2UpCiAgICAgICAgIHJldHVybiBXS01lZGlhQ2FwdHVyZVN0YXRlQWN0aXZl
OwotICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhh
c011dGVkQXVkaW9DYXB0dXJlRGV2aWNlKQorICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNNdXRlZEF1ZGlvQ2FwdHVyZURldmljZSkKICAgICAgICAg
cmV0dXJuIFdLTWVkaWFDYXB0dXJlU3RhdGVNdXRlZDsKICAgICByZXR1cm4gV0tNZWRpYUNhcHR1
cmVTdGF0ZU5vbmU7CiB9CkBAIC0xMDYxLDE2ICsxMDYxLDE2IEBAIC0gKHZvaWQpc2V0TWljcm9w
aG9uZUNhcHR1cmVTdGF0ZTooV0tNZWRpYUNhcHR1cmVTdGF0ZSlzdGF0ZSBjb21wbGV0aW9uSGFu
ZGxlcjooCiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyID0gW10geyB9OwogCiAgICAgaWYgKHN0
YXRlID09IFdLTWVkaWFDYXB0dXJlU3RhdGVOb25lKSB7Ci0gICAgICAgIF9wYWdlLT5zdG9wTWVk
aWFDYXB0dXJlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlv
LCBbY29tcGxldGlvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpXSB7
CisgICAgICAgIF9wYWdlLT5zdG9wTWVkaWFDYXB0dXJlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJN
ZWRpYUNhcHR1cmVLaW5kOjpBdWRpbywgW2NvbXBsZXRpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRy
KGNvbXBsZXRpb25IYW5kbGVyKV0gewogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsK
ICAgICAgICAgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgYXV0byBtdXRlZFN0YXRl
ID0gX3BhZ2UtPm11dGVkU3RhdGVGbGFncygpOwogICAgIGlmIChzdGF0ZSA9PSBXS01lZGlhQ2Fw
dHVyZVN0YXRlQWN0aXZlKQotICAgICAgICBtdXRlZFN0YXRlLnJlbW92ZShXZWJDb3JlOjpNZWRp
YVByb2R1Y2VyOjpNdXRlZFN0YXRlOjpBdWRpb0NhcHR1cmVJc011dGVkKTsKKyAgICAgICAgbXV0
ZWRTdGF0ZS5yZW1vdmUoV2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVkU3RhdGU6OkF1ZGlvQ2Fw
dHVyZUlzTXV0ZWQpOwogICAgIGVsc2UgaWYgKHN0YXRlID09IFdLTWVkaWFDYXB0dXJlU3RhdGVN
dXRlZCkKLSAgICAgICAgbXV0ZWRTdGF0ZS5hZGQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0
ZWRTdGF0ZTo6QXVkaW9DYXB0dXJlSXNNdXRlZCk7CisgICAgICAgIG11dGVkU3RhdGUuYWRkKFdl
YkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlOjpBdWRpb0NhcHR1cmVJc011dGVkKTsKICAg
ICBfcGFnZS0+c2V0TXV0ZWQobXV0ZWRTdGF0ZSwgW2NvbXBsZXRpb25IYW5kbGVyID0gbWFrZUJs
b2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKV0gewogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigp
OwogICAgIH0pOwpAQCAtMTA4MywxNiArMTA4MywxNiBAQCAtICh2b2lkKXNldENhbWVyYUNhcHR1
cmVTdGF0ZTooV0tNZWRpYUNhcHR1cmVTdGF0ZSlzdGF0ZSBjb21wbGV0aW9uSGFuZGxlcjoodm9p
ZAogICAgICAgICBjb21wbGV0aW9uSGFuZGxlciA9IFtdIHsgfTsKIAogICAgIGlmIChzdGF0ZSA9
PSBXS01lZGlhQ2FwdHVyZVN0YXRlTm9uZSkgewotICAgICAgICBfcGFnZS0+c3RvcE1lZGlhQ2Fw
dHVyZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpWaWRlbywgW2Nv
bXBsZXRpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKV0geworICAg
ICAgICBfcGFnZS0+c3RvcE1lZGlhQ2FwdHVyZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFD
YXB0dXJlS2luZDo6VmlkZW8sIFtjb21wbGV0aW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21w
bGV0aW9uSGFuZGxlcildIHsKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiAgICAg
ICAgIH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGF1dG8gbXV0ZWRTdGF0ZSA9IF9w
YWdlLT5tdXRlZFN0YXRlRmxhZ3MoKTsKICAgICBpZiAoc3RhdGUgPT0gV0tNZWRpYUNhcHR1cmVT
dGF0ZUFjdGl2ZSkKLSAgICAgICAgbXV0ZWRTdGF0ZS5yZW1vdmUoV2ViQ29yZTo6TWVkaWFQcm9k
dWNlcjo6TXV0ZWRTdGF0ZTo6VmlkZW9DYXB0dXJlSXNNdXRlZCk7CisgICAgICAgIG11dGVkU3Rh
dGUucmVtb3ZlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlOjpWaWRlb0NhcHR1cmVJ
c011dGVkKTsKICAgICBlbHNlIGlmIChzdGF0ZSA9PSBXS01lZGlhQ2FwdHVyZVN0YXRlTXV0ZWQp
Ci0gICAgICAgIG11dGVkU3RhdGUuYWRkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3Rh
dGU6OlZpZGVvQ2FwdHVyZUlzTXV0ZWQpOworICAgICAgICBtdXRlZFN0YXRlLmFkZChXZWJDb3Jl
OjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZTo6VmlkZW9DYXB0dXJlSXNNdXRlZCk7CiAgICAgX3Bh
Z2UtPnNldE11dGVkKG11dGVkU3RhdGUsIFtjb21wbGV0aW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0
cihjb21wbGV0aW9uSGFuZGxlcildIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKICAg
ICB9KTsKQEAgLTIyNzEsNyArMjI3MSw3IEBAIC0gKHZvaWQpX2Nsb3NlQWxsTWVkaWFQcmVzZW50
YXRpb25zCiAtICh2b2lkKV9zdG9wTWVkaWFDYXB0dXJlCiB7CiAgICAgVEhST1dfSUZfU1VTUEVO
REVEOwotICAgIF9wYWdlLT5zdG9wTWVkaWFDYXB0dXJlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6
Ok1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvVmlkZW8pOworICAgIF9wYWdlLT5zdG9wTWVkaWFDYXB0
dXJlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kOjpBdWRpb1ZpZGVvKTsK
IH0KIAogLSAodm9pZClfc3RvcEFsbE1lZGlhUGxheWJhY2sKQEAgLTM1OTQsMTQgKzM1OTQsMTQg
QEAgLSAoQk9PTClfbWVkaWFDYXB0dXJlRW5hYmxlZAogLSAodm9pZClfc2V0UGFnZU11dGVkOihf
V0tNZWRpYU11dGVkU3RhdGUpbXV0ZWRTdGF0ZQogewogICAgIFRIUk9XX0lGX1NVU1BFTkRFRDsK
LSAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3MgY29yZVN0YXRlOwor
ICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlRmxhZ3MgY29yZVN0YXRlOwogCiAg
ICAgaWYgKG11dGVkU3RhdGUgJiBfV0tNZWRpYUF1ZGlvTXV0ZWQpCi0gICAgICAgIGNvcmVTdGF0
ZS5hZGQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6QXVkaW9Jc011dGVkKTsK
KyAgICAgICAgY29yZVN0YXRlLmFkZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZTo6
QXVkaW9Jc011dGVkKTsKICAgICBpZiAobXV0ZWRTdGF0ZSAmIF9XS01lZGlhQ2FwdHVyZURldmlj
ZXNNdXRlZCkKICAgICAgICAgY29yZVN0YXRlLmFkZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpB
dWRpb0FuZFZpZGVvQ2FwdHVyZUlzTXV0ZWQpOwogICAgIGlmIChtdXRlZFN0YXRlICYgX1dLTWVk
aWFTY3JlZW5DYXB0dXJlTXV0ZWQpCi0gICAgICAgIGNvcmVTdGF0ZS5hZGQoV2ViQ29yZTo6TWVk
aWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6U2NyZWVuQ2FwdHVyZUlzTXV0ZWQpOworICAgICAgICBj
b3JlU3RhdGUuYWRkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlOjpTY3JlZW5DYXB0
dXJlSXNNdXRlZCk7CiAKICAgICBfcGFnZS0+c2V0TXV0ZWQoY29yZVN0YXRlKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5jcHAKaW5k
ZXggZjA5NGY1Mzg5Mzk0NDk1NWY3OTgzOWMyNWQ5ZGVlOTI1ZGY0NzAwZS4uNGU1ZDczMjU3MTQ0
YjUxZGQ0MmE0ZWZhY2M3MGVlZmNjZTg1M2U5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5jcHAKQEAgLTQ4NjgsNyArNDg2OCw3IEBA
IHZvaWQgd2Via2l0X3dlYl92aWV3X3NldF9jb3JzX2FsbG93bGlzdChXZWJLaXRXZWJWaWV3KiB3
ZWJWaWV3LCBjb25zdCBnY2hhciogY29uCiAgICAgZ2V0UGFnZSh3ZWJWaWV3KS5zZXRDT1JTRGlz
YWJsaW5nUGF0dGVybnMoV1RGTW92ZShhbGxvd0xpc3RWZWN0b3IpKTsKIH0KIAotc3RhdGljIHZv
aWQgd2Via2l0V2ViVmlld0NvbmZpZ3VyZU1lZGlhQ2FwdHVyZShXZWJLaXRXZWJWaWV3KiB3ZWJW
aWV3LCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kIGNhcHR1cmVLaW5k
LCBXZWJLaXRNZWRpYUNhcHR1cmVTdGF0ZSBjYXB0dXJlU3RhdGUsIGJvb2wgaXNGcm9tRGlzcGxh
eUNhcHR1cmUgPSBmYWxzZSkKK3N0YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdDb25maWd1cmVNZWRp
YUNhcHR1cmUoV2ViS2l0V2ViVmlldyogd2ViVmlldywgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1l
ZGlhQ2FwdHVyZUtpbmQgY2FwdHVyZUtpbmQsIFdlYktpdE1lZGlhQ2FwdHVyZVN0YXRlIGNhcHR1
cmVTdGF0ZSwgYm9vbCBpc0Zyb21EaXNwbGF5Q2FwdHVyZSA9IGZhbHNlKQogewogICAgIGF1dG8m
IHBhZ2UgPSBnZXRQYWdlKHdlYlZpZXcpOwogICAgIGF1dG8gbXV0ZWRTdGF0ZSA9IHBhZ2UubXV0
ZWRTdGF0ZUZsYWdzKCk7CkBAIC00ODc3LDEzICs0ODc3LDEzIEBAIHN0YXRpYyB2b2lkIHdlYmtp
dFdlYlZpZXdDb25maWd1cmVNZWRpYUNhcHR1cmUoV2ViS2l0V2ViVmlldyogd2ViVmlldywgV2Vi
Q29yZTo6CiAgICAgY2FzZSBXRUJLSVRfTUVESUFfQ0FQVFVSRV9TVEFURV9OT05FOgogICAgICAg
ICBwYWdlLnN0b3BNZWRpYUNhcHR1cmUoY2FwdHVyZUtpbmQsIFt3ZWJWaWV3LCBjYXB0dXJlS2lu
ZF0gewogICAgICAgICAgICAgc3dpdGNoIChjYXB0dXJlS2luZCkgewotICAgICAgICAgICAgY2Fz
ZSBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpBdWRpbzoKKyAgICAg
ICAgICAgIGNhc2UgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlv
OgogICAgICAgICAgICAgICAgIGdfb2JqZWN0X25vdGlmeV9ieV9wc3BlYyhHX09CSkVDVCh3ZWJW
aWV3KSwgc09ialByb3BlcnRpZXNbUFJPUF9NSUNST1BIT05FX0NBUFRVUkVfU1RBVEVdKTsKICAg
ICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgV2ViQ29yZTo6TWVkaWFQcm9k
dWNlcjo6TWVkaWFDYXB0dXJlS2luZDo6VmlkZW86CisgICAgICAgICAgICBjYXNlIFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kOjpWaWRlbzoKICAgICAgICAgICAgICAgICBn
X29iamVjdF9ub3RpZnlfYnlfcHNwZWMoR19PQkpFQ1Qod2ViVmlldyksIHNPYmpQcm9wZXJ0aWVz
W1BST1BfQ0FNRVJBX0NBUFRVUkVfU1RBVEVdKTsKICAgICAgICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgICAgIGNhc2UgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZDo6
QXVkaW9WaWRlbzoKKyAgICAgICAgICAgIGNhc2UgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlh
Q2FwdHVyZUtpbmQ6OkF1ZGlvVmlkZW86CiAgICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQpAQCAtNDg5MSwx
NiArNDg5MSwxNiBAQCBzdGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3Q29uZmlndXJlTWVkaWFDYXB0
dXJlKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIFdlYkNvcmU6OgogICAgICAgICBicmVhazsKICAg
ICBjYXNlIFdFQktJVF9NRURJQV9DQVBUVVJFX1NUQVRFX0FDVElWRToKICAgICAgICAgc3dpdGNo
IChjYXB0dXJlS2luZCkgewotICAgICAgICBjYXNlIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1l
ZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvOgorICAgICAgICBjYXNlIFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXJNZWRpYUNhcHR1cmVLaW5kOjpBdWRpbzoKICAgICAgICAgICAgIG11dGVkU3RhdGUucmVtb3Zl
KFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGU6OkF1ZGlvQ2FwdHVyZUlzTXV0ZWQp
OwogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6TWVkaWFQcm9kdWNl
cjo6TWVkaWFDYXB0dXJlS2luZDo6VmlkZW86CisgICAgICAgIGNhc2UgV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQ6OlZpZGVvOgogICAgICAgICAgICAgaWYgKGlzRnJvbURp
c3BsYXlDYXB0dXJlKQogICAgICAgICAgICAgICAgIG11dGVkU3RhdGUucmVtb3ZlKFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGU6OlNjcmVlbkNhcHR1cmVJc011dGVkKTsKICAgICAg
ICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBtdXRlZFN0YXRlLnJlbW92ZShXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlOjpWaWRlb0NhcHR1cmVJc011dGVkKTsKICAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICBjYXNlIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2Fw
dHVyZUtpbmQ6OkF1ZGlvVmlkZW86CisgICAgICAgIGNhc2UgV2ViQ29yZTo6TWVkaWFQcm9kdWNl
ck1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvVmlkZW86CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtNDkwOCwxNiArNDkw
OCwxNiBAQCBzdGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3Q29uZmlndXJlTWVkaWFDYXB0dXJlKFdl
YktpdFdlYlZpZXcqIHdlYlZpZXcsIFdlYkNvcmU6OgogICAgICAgICBicmVhazsKICAgICBjYXNl
IFdFQktJVF9NRURJQV9DQVBUVVJFX1NUQVRFX01VVEVEOgogICAgICAgICBzd2l0Y2ggKGNhcHR1
cmVLaW5kKSB7Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0
dXJlS2luZDo6QXVkaW86CisgICAgICAgIGNhc2UgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlh
Q2FwdHVyZUtpbmQ6OkF1ZGlvOgogICAgICAgICAgICAgbXV0ZWRTdGF0ZS5hZGQoV2ViQ29yZTo6
TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6QXVkaW9DYXB0dXJlSXNNdXRlZCk7CiAgICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNh
cHR1cmVLaW5kOjpWaWRlbzoKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVk
aWFDYXB0dXJlS2luZDo6VmlkZW86CiAgICAgICAgICAgICBpZiAoaXNGcm9tRGlzcGxheUNhcHR1
cmUpCiAgICAgICAgICAgICAgICAgbXV0ZWRTdGF0ZS5hZGQoV2ViQ29yZTo6TWVkaWFQcm9kdWNl
cjo6TXV0ZWRTdGF0ZTo6U2NyZWVuQ2FwdHVyZUlzTXV0ZWQpOwogICAgICAgICAgICAgZWxzZQog
ICAgICAgICAgICAgICAgIG11dGVkU3RhdGUuYWRkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11
dGVkU3RhdGU6OlZpZGVvQ2FwdHVyZUlzTXV0ZWQpOwogICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIGNhc2UgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZDo6QXVkaW9W
aWRlbzoKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2lu
ZDo6QXVkaW9WaWRlbzoKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC00OTY1LDcgKzQ5NjUsNyBAQCB2b2lkIHdlYmtp
dF93ZWJfdmlld19zZXRfY2FtZXJhX2NhcHR1cmVfc3RhdGUoV2ViS2l0V2ViVmlldyogd2ViVmll
dywgV2ViS2l0TWVkaQogICAgIGlmICh3ZWJraXRfd2ViX3ZpZXdfZ2V0X2NhbWVyYV9jYXB0dXJl
X3N0YXRlKHdlYlZpZXcpID09IFdFQktJVF9NRURJQV9DQVBUVVJFX1NUQVRFX05PTkUpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIHdlYmtpdFdlYlZpZXdDb25maWd1cmVNZWRpYUNhcHR1cmUod2Vi
VmlldywgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZDo6VmlkZW8sIHN0
YXRlKTsKKyAgICB3ZWJraXRXZWJWaWV3Q29uZmlndXJlTWVkaWFDYXB0dXJlKHdlYlZpZXcsIFdl
YkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kOjpWaWRlbywgc3RhdGUpOwogfQog
CiAvKioKQEAgLTUwMDcsNyArNTAwNyw3IEBAIHZvaWQgd2Via2l0X3dlYl92aWV3X3NldF9taWNy
b3Bob25lX2NhcHR1cmVfc3RhdGUoV2ViS2l0V2ViVmlldyogd2ViVmlldywgV2ViS2l0CiAgICAg
aWYgKHdlYmtpdF93ZWJfdmlld19nZXRfbWljcm9waG9uZV9jYXB0dXJlX3N0YXRlKHdlYlZpZXcp
ID09IFdFQktJVF9NRURJQV9DQVBUVVJFX1NUQVRFX05PTkUpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIHdlYmtpdFdlYlZpZXdDb25maWd1cmVNZWRpYUNhcHR1cmUod2ViVmlldywgV2ViQ29yZTo6
TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZDo6QXVkaW8sIHN0YXRlKTsKKyAgICB3ZWJr
aXRXZWJWaWV3Q29uZmlndXJlTWVkaWFDYXB0dXJlKHdlYlZpZXcsIFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXJNZWRpYUNhcHR1cmVLaW5kOjpBdWRpbywgc3RhdGUpOwogfQogCiAvKioKQEAgLTUwNDks
NSArNTA0OSw1IEBAIHZvaWQgd2Via2l0X3dlYl92aWV3X3NldF9kaXNwbGF5X2NhcHR1cmVfc3Rh
dGUoV2ViS2l0V2ViVmlldyogd2ViVmlldywgV2ViS2l0TWVkCiAgICAgaWYgKHdlYmtpdF93ZWJf
dmlld19nZXRfZGlzcGxheV9jYXB0dXJlX3N0YXRlKHdlYlZpZXcpID09IFdFQktJVF9NRURJQV9D
QVBUVVJFX1NUQVRFX05PTkUpCiAgICAgICAgIHJldHVybjsKIAotICAgIHdlYmtpdFdlYlZpZXdD
b25maWd1cmVNZWRpYUNhcHR1cmUod2ViVmlldywgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVk
aWFDYXB0dXJlS2luZDo6VmlkZW8sIHN0YXRlLCB0cnVlKTsKKyAgICB3ZWJraXRXZWJWaWV3Q29u
ZmlndXJlTWVkaWFDYXB0dXJlKHdlYlZpZXcsIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYUNh
cHR1cmVLaW5kOjpWaWRlbywgc3RhdGUsIHRydWUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvTWVkaWFVdGlsaXRpZXMuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL01lZGlhVXRpbGl0aWVzLmgKaW5kZXggZTFkYTQ2ZjI2YjE4Yzc3ZjJhMTg5
ZWQ4NjU0MGJhNjEzMjI5YmNmYi4uOGExNjIwNzc4ZWRkOWNiZmYxMjA5OWIxNTJhZDUwYjQ3OWVk
ZjE5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTWVkaWFVdGls
aXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9NZWRpYVV0aWxpdGll
cy5oCkBAIC0zMiw3ICszMiw3IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1fV0tNZWRpYUNh
cHR1cmVTdGF0ZURlcHJlY2F0ZWQgdG9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZChXZWJD
b3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpOwotX1dLTWVkaWFNdXRlZFN0YXRl
IHRvV0tNZWRpYU11dGVkU3RhdGUoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZUZs
YWdzKTsKK19XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZCB0b1dLTWVkaWFDYXB0dXJlU3Rh
dGVEZXByZWNhdGVkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MpOworX1dL
TWVkaWFNdXRlZFN0YXRlIHRvV0tNZWRpYU11dGVkU3RhdGUoV2ViQ29yZTo6TWVkaWFQcm9kdWNl
ck11dGVkU3RhdGVGbGFncyk7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTWVkaWFVdGlsaXRpZXMubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9NZWRpYVV0aWxpdGllcy5tbQppbmRleCA1M2JiZjQyMDE0
NzFkOWQ4YTRmNjZlNzAxZjY0Mzg4ZWVlZDVkMTVhLi45ODUwYThmY2E2NzBkYzc4NTVmNDEwMDY3
YjA1YzEyZjgwODgwNmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9NZWRpYVV0aWxpdGllcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9N
ZWRpYVV0aWxpdGllcy5tbQpAQCAtMjgsMjkgKzI4LDI5IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQg
ewogCi1fV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWQgdG9XS01lZGlhQ2FwdHVyZVN0YXRl
RGVwcmVjYXRlZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUp
CitfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWQgdG9XS01lZGlhQ2FwdHVyZVN0YXRlRGVw
cmVjYXRlZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIHN0YXRlKQogewog
ICAgIF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZCBtZWRpYUNhcHR1cmVTdGF0ZSA9IF9X
S01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZE5vbmU7Ci0gICAgaWYgKHN0YXRlICYgV2ViQ29y
ZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNl
KQorICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNB
Y3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UpCiAgICAgICAgIG1lZGlhQ2FwdHVyZVN0YXRlIHw9IF9X
S01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZEFjdGl2ZU1pY3JvcGhvbmU7Ci0gICAgaWYgKHN0
YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZlVmlkZW9D
YXB0dXJlRGV2aWNlKQorICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRp
YVN0YXRlOjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UpCiAgICAgICAgIG1lZGlhQ2FwdHVy
ZVN0YXRlIHw9IF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZEFjdGl2ZUNhbWVyYTsKLSAg
ICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNNdXRl
ZEF1ZGlvQ2FwdHVyZURldmljZSkKKyAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyTWVkaWFTdGF0ZTo6SGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2UpCiAgICAgICAgIG1lZGlh
Q2FwdHVyZVN0YXRlIHw9IF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZE11dGVkTWljcm9w
aG9uZTsKLSAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
OjpIYXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZSkKKyAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzTXV0ZWRWaWRlb0NhcHR1cmVEZXZpY2UpCiAgICAg
ICAgIG1lZGlhQ2FwdHVyZVN0YXRlIHw9IF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZE11
dGVkQ2FtZXJhOwogCiAgICAgcmV0dXJuIG1lZGlhQ2FwdHVyZVN0YXRlOwogfQogCi1fV0tNZWRp
YU11dGVkU3RhdGUgdG9XS01lZGlhTXV0ZWRTdGF0ZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpN
dXRlZFN0YXRlRmxhZ3Mgc3RhdGUpCitfV0tNZWRpYU11dGVkU3RhdGUgdG9XS01lZGlhTXV0ZWRT
dGF0ZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZUZsYWdzIHN0YXRlKQogewogICAg
IF9XS01lZGlhTXV0ZWRTdGF0ZSBtZWRpYU11dGVkU3RhdGUgPSBfV0tNZWRpYU5vbmVNdXRlZDsK
LSAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlOjpBdWRp
b0lzTXV0ZWQpCisgICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVkU3Rh
dGU6OkF1ZGlvSXNNdXRlZCkKICAgICAgICAgbWVkaWFNdXRlZFN0YXRlIHw9IF9XS01lZGlhQXVk
aW9NdXRlZDsKICAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpBdWRpb0Fu
ZFZpZGVvQ2FwdHVyZUlzTXV0ZWQpCiAgICAgICAgIG1lZGlhTXV0ZWRTdGF0ZSB8PSBfV0tNZWRp
YUNhcHR1cmVEZXZpY2VzTXV0ZWQ7Ci0gICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9k
dWNlcjo6TXV0ZWRTdGF0ZTo6U2NyZWVuQ2FwdHVyZUlzTXV0ZWQpCisgICAgaWYgKHN0YXRlICYg
V2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVkU3RhdGU6OlNjcmVlbkNhcHR1cmVJc011dGVkKQog
ICAgICAgICBtZWRpYU11dGVkU3RhdGUgfD0gX1dLTWVkaWFTY3JlZW5DYXB0dXJlTXV0ZWQ7CiAg
ICAgcmV0dXJuIG1lZGlhTXV0ZWRTdGF0ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1VJRGVsZWdhdGUuaAppbmRleCAzMjlkYjc5MWNmNDMyNzI0NjM2MzQyODAwNTA0YjA4ZWE4
OWRiMGUzLi5lNjc5Njk1YTNmZTFhMGFlZjI4ZGQ1YWYwMjQ4ZDY5MDZmMzQxOTg3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCkBAIC0xNDEsNyArMTQxLDcg
QEAgcHJpdmF0ZToKICAgICAgICAgdm9pZCBkaWRDaGFuZ2VGb250QXR0cmlidXRlcyhjb25zdCBX
ZWJDb3JlOjpGb250QXR0cmlidXRlcyYpIGZpbmFsOwogICAgICAgICB2b2lkIGRlY2lkZVBvbGlj
eUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSYsIFdlYkZyYW1lUHJv
eHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgQVBJOjpTZWN1cml0eU9yaWdpbiYsIFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmKSBmaW5hbDsKICAgICAgICAgdm9pZCBjaGVja1VzZXJN
ZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4oV2ViUGFnZVByb3h5JiwgV2ViRnJhbWVQcm94eSYsIEFQ
STo6U2VjdXJpdHlPcmlnaW4mLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgVXNlck1lZGlhUGVybWlz
c2lvbkNoZWNrUHJveHkmKSBmaW5hbDsKLSAgICAgICAgdm9pZCBtZWRpYUNhcHR1cmVTdGF0ZURp
ZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpIGZpbmFsOwor
ICAgICAgICB2b2lkIG1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXJNZWRpYVN0YXRlRmxhZ3MpIGZpbmFsOwogICAgICAgICB2b2lkIHByaW50RnJhbWUoV2Vi
UGFnZVByb3h5JiwgV2ViRnJhbWVQcm94eSYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgcGRm
Rmlyc3RQYWdlU2l6ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBmaW5hbDsKICNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQogI2lmIEhBVkUoQVBQX0xJTktTKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KaW5kZXggMTFiN2E0MDU4YTViNjQxYWI4ODRh
OTc2NTc3Y2YyMTAzYmNiNmJkZC4uZDc4ZjRjYzBkNTY1NTk0YzBlODgxYTQ1OGJmZDIzODI3NTEy
MjQ1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0
ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCkBA
IC0xMjI3LDcgKzEyMjcsNyBAQCB2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpjaGVja1VzZXJN
ZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4oV2ViUGFnZVByb3h5JiBwYWdlLAogICAgIFsoaWQgPFdL
VUlEZWxlZ2F0ZVByaXZhdGU+KWRlbGVnYXRlIF93ZWJWaWV3Om1fdWlEZWxlZ2F0ZS0+bV93ZWJW
aWV3LmdldCgpLmdldCgpIGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDpyZXF1ZXN0RnJh
bWVVUkwgbWFpbkZyYW1lVVJMOm1haW5GcmFtZVVSTCBmcmFtZUlkZW50aWZpZXI6ZnJhbWUuZnJh
bWVJRCgpLnRvVUludDY0KCkgZGVjaXNpb25IYW5kbGVyOmRlY2lzaW9uSGFuZGxlci5nZXQoKV07
CiB9CiAKLXZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6Om1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hh
bmdlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0ZSkKK3ZvaWQg
VUlEZWxlZ2F0ZTo6VUlDbGllbnQ6Om1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCiB7CiAgICAgaWYgKCFtX3VpRGVs
ZWdhdGUpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNw
cAppbmRleCBiMzkzN2FjMDQzNzczOTJkMzBiMTgzM2RlZTBjMDFlNmNhMTY4OWYzLi4yYjcyNDU4
NjkxNmJmNWUxY2JiNjUzYmUxZTZhMjRiMWFkOTkxZDBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkuY3BwCkBAIC00OSw3ICs0OSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotc3RhdGlj
IGNvbnN0IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBhY3RpdmVDYXB0dXJlTWFzayB7
IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSwg
TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlIH07
CitzdGF0aWMgY29uc3QgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBhY3RpdmVDYXB0dXJl
TWFzayB7IE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZp
Y2UsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2Ug
fTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKQEAgLTk1LDcgKzk1LDcgQEAg
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OlVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5KFcKIAogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHk6On5Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSgpCiB7Ci0g
ICAgbV9wYWdlLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZTo6U3RvcE1lZGlh
Q2FwdHVyZSB7IE1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvVmlkZW8gfSwg
W10geyB9KTsKKyAgICBtX3BhZ2Uuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdl
OjpTdG9wTWVkaWFDYXB0dXJlIHsgTWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlv
VmlkZW8gfSwgW10geyB9KTsKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIFVzZXJNZWRp
YVByb2Nlc3NNYW5hZ2VyOjpzaW5nbGV0b24oKS5yZXZva2VTYW5kYm94RXh0ZW5zaW9uc0lmTmVl
ZGVkKHBhZ2UoKS5wcm9jZXNzKCkpOwogICAgIHByb3hpZXMoKS5yZW1vdmUodGhpcyk7CkBAIC0x
MjksNyArMTI5LDcgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eTo6c3RvcENhcHR1cmUoKQogewogICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CiAgICAg
aW52YWxpZGF0ZVBlbmRpbmdSZXF1ZXN0cygpOwotICAgIG1fcGFnZS5zdG9wTWVkaWFDYXB0dXJl
KE1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvVmlkZW8pOworICAgIG1fcGFn
ZS5zdG9wTWVkaWFDYXB0dXJlKE1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kOjpBdWRpb1Zp
ZGVvKTsKIH0KIAogdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6
Y2FwdHVyZURldmljZXNDaGFuZ2VkKCkKQEAgLTg2Myw3ICs4NjMsNyBAQCB2b2lkIFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpzeW5jV2l0aFdlYkNvcmVQcmVmcygpIGNv
bnN0CiAjZW5kaWYKIH0KIAotdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eTo6Y2FwdHVyZVN0YXRlQ2hhbmdlZChNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mg
b2xkU3RhdGUsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBuZXdTdGF0ZSkKK3ZvaWQg
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmNhcHR1cmVTdGF0ZUNoYW5n
ZWQoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBvbGRTdGF0ZSwgTWVkaWFQcm9kdWNlck1l
ZGlhU3RhdGVGbGFncyBuZXdTdGF0ZSkKIHsKICAgICBpZiAoIW1fcGFnZS5oYXNSdW5uaW5nUHJv
Y2VzcygpKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaApp
bmRleCA2NGViZmE1ZTQ1OWExNmU0Y2QzN2U0OTM2OWE5MDRhZTYyZGViNzYwLi42NzRiYWI0ZGI3
YzljNjRkZWQ4NTc4NzQxZGJkMmFiOTk2ZGM0MDY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5LmgKQEAgLTg4LDcgKzg4LDcgQEAgcHVibGljOgogICAgIHZvaWQgY2xlYXJDYWNoZWRT
dGF0ZSgpOwogICAgIHZvaWQgY2FwdHVyZURldmljZXNDaGFuZ2VkKCk7CiAKLSAgICB2b2lkIGNh
cHR1cmVTdGF0ZUNoYW5nZWQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdz
IG9sZFN0YXRlLCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbmV3U3Rh
dGUpOworICAgIHZvaWQgY2FwdHVyZVN0YXRlQ2hhbmdlZChXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
TWVkaWFTdGF0ZUZsYWdzIG9sZFN0YXRlLCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0
ZUZsYWdzIG5ld1N0YXRlKTsKICAgICB2b2lkIHN5bmNXaXRoV2ViQ29yZVByZWZzKCkgY29uc3Q7
CiAKICAgICBlbnVtIGNsYXNzIFJlcXVlc3RBY3Rpb24gewpAQCAtMTY3LDcgKzE2Nyw3IEBAIHBy
aXZhdGU6CiAKICAgICBWZWN0b3I8RGVuaWVkUmVxdWVzdD4gbV9kZW5pZWRSZXF1ZXN0czsKIAot
ICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBtX2NhcHR1cmVTdGF0
ZTsKKyAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIG1fY2FwdHVyZVN0
YXRlOwogICAgIFJ1bkxvb3A6OlRpbWVyPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5PiBtX3dhdGNoZG9nVGltZXI7CiAgICAgU2Vjb25kcyBtX2N1cnJlbnRXYXRjaGRvZ0lu
dGVydmFsOwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggNjFjMDdmNmRmYjliNDYzNjVkNzY3ZTQxMzNjYmQ2OGRh
MGQzMmE3Yy4uZDMzMWYyY2E3ZDAzYTcwM2I1Y2I2ZGQwYzhmZDhiNTkxMjg0ZmYzMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0yMTEzLDExICsyMTEzLDEx
IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp1cGRhdGVBY3Rpdml0eVN0YXRlKE9wdGlvblNldDxBY3Rp
dml0eVN0YXRlOjpGbGFnPiBmbGFnc1RvVXBkCiAgICAgICAgIG1fYWN0aXZpdHlTdGF0ZS5hZGQo
QWN0aXZpdHlTdGF0ZTo6SXNJbldpbmRvdyk7CiAgICAgaWYgKGZsYWdzVG9VcGRhdGUgJiBBY3Rp
dml0eVN0YXRlOjpJc1Zpc3VhbGx5SWRsZSAmJiBwYWdlQ2xpZW50KCkuaXNWaXN1YWxseUlkbGUo
KSkKICAgICAgICAgbV9hY3Rpdml0eVN0YXRlLmFkZChBY3Rpdml0eVN0YXRlOjpJc1Zpc3VhbGx5
SWRsZSk7Ci0gICAgaWYgKGZsYWdzVG9VcGRhdGUgJiBBY3Rpdml0eVN0YXRlOjpJc0F1ZGlibGUg
JiYgbV9tZWRpYVN0YXRlLmNvbnRhaW5zKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxh
eWluZ0F1ZGlvKSAmJiAhKG1fbXV0ZWRTdGF0ZS5jb250YWlucyhNZWRpYVByb2R1Y2VyOjpNdXRl
ZFN0YXRlOjpBdWRpb0lzTXV0ZWQpKSkKKyAgICBpZiAoZmxhZ3NUb1VwZGF0ZSAmIEFjdGl2aXR5
U3RhdGU6OklzQXVkaWJsZSAmJiBtX21lZGlhU3RhdGUuY29udGFpbnMoTWVkaWFQcm9kdWNlck1l
ZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvKSAmJiAhKG1fbXV0ZWRTdGF0ZS5jb250YWlucyhNZWRp
YVByb2R1Y2VyTXV0ZWRTdGF0ZTo6QXVkaW9Jc011dGVkKSkpCiAgICAgICAgIG1fYWN0aXZpdHlT
dGF0ZS5hZGQoQWN0aXZpdHlTdGF0ZTo6SXNBdWRpYmxlKTsKICAgICBpZiAoZmxhZ3NUb1VwZGF0
ZSAmIEFjdGl2aXR5U3RhdGU6OklzTG9hZGluZyAmJiBtX3BhZ2VMb2FkU3RhdGUuaXNMb2FkaW5n
KCkpCiAgICAgICAgIG1fYWN0aXZpdHlTdGF0ZS5hZGQoQWN0aXZpdHlTdGF0ZTo6SXNMb2FkaW5n
KTsKLSAgICBpZiAoZmxhZ3NUb1VwZGF0ZSAmIEFjdGl2aXR5U3RhdGU6OklzQ2FwdHVyaW5nTWVk
aWEgJiYgbV9tZWRpYVN0YXRlLmNvbnRhaW5zQW55KHsgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0
ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlLCAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0
ZTo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlIH0pKQorICAgIGlmIChmbGFnc1RvVXBkYXRl
ICYgQWN0aXZpdHlTdGF0ZTo6SXNDYXB0dXJpbmdNZWRpYSAmJiBtX21lZGlhU3RhdGUuY29udGFp
bnNBbnkoeyBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2
aWNlLCAgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmlj
ZSB9KSkKICAgICAgICAgbV9hY3Rpdml0eVN0YXRlLmFkZChBY3Rpdml0eVN0YXRlOjpJc0NhcHR1
cmluZ01lZGlhKTsKIH0KIApAQCAtNjIzNiw3ICs2MjM2LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6
OnNldE1lZGlhVm9sdW1lKGZsb2F0IHZvbHVtZSkKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdl
OjpTZXRNZWRpYVZvbHVtZSh2b2x1bWUpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnNldE11
dGVkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncyBzdGF0ZSwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJQYWdlUHJv
eHk6OnNldE11dGVkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlRmxhZ3Mgc3RhdGUs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBt
X211dGVkU3RhdGUgPSBzdGF0ZTsKIApAQCAtNjI2Nyw3ICs2MjY3LDcgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OnNldE1lZGlhQ2FwdHVyZUVuYWJsZWQoYm9vbCBlbmFibGVkKQogI2VuZGlmCiB9CiAK
LXZvaWQgV2ViUGFnZVByb3h5OjpzdG9wTWVkaWFDYXB0dXJlKE1lZGlhUHJvZHVjZXI6Ok1lZGlh
Q2FwdHVyZUtpbmQga2luZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQordm9pZCBXZWJQYWdlUHJveHk6OnN0b3BNZWRpYUNhcHR1cmUoTWVkaWFQcm9kdWNl
ck1lZGlhQ2FwdHVyZUtpbmQga2luZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQogewogICAgIGlmICghaGFzUnVubmluZ1Byb2Nlc3MoKSkKICAgICAgICAg
cmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKCk7CkBAIC05NDQ2LDcgKzk0NDYsNyBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6bmF2aWdhdGlvbkdlc3R1cmVTbmFwc2hvdFdhc1JlbW92ZWQoKQogICAgIG1f
bmF2aWdhdGlvbkNsaWVudC0+ZGlkUmVtb3ZlTmF2aWdhdGlvbkdlc3R1cmVTbmFwc2hvdCgqdGhp
cyk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojppc1BsYXlpbmdNZWRpYURpZENoYW5nZShNZWRp
YVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbmV3U3RhdGUpCit2b2lkIFdlYlBhZ2VQcm94eTo6
aXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBuZXdT
dGF0ZSkKIHsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIGlmICghbV9wcm9jZXNzLT50
aHJvdHRsZXIoKS5zaG91bGRCZVJ1bm5hYmxlKCkpCkBAIC05NDU3LDcgKzk0NTcsNyBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6aXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoTWVkaWFQcm9kdWNlcjo6TWVk
aWFTdGF0ZUZsYWdzIG5ld1N0YQogICAgICAgICB1cGRhdGVQbGF5aW5nTWVkaWFEaWRDaGFuZ2Uo
bmV3U3RhdGUsIENhbkRlbGF5Tm90aWZpY2F0aW9uOjpZZXMpOwogfQogCi12b2lkIFdlYlBhZ2VQ
cm94eTo6dXBkYXRlUGxheWluZ01lZGlhRGlkQ2hhbmdlKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGVGbGFncyBuZXdTdGF0ZSwgQ2FuRGVsYXlOb3RpZmljYXRpb24gY2FuRGVsYXlOb3RpZmljYXRp
b24pCit2b2lkIFdlYlBhZ2VQcm94eTo6dXBkYXRlUGxheWluZ01lZGlhRGlkQ2hhbmdlKE1lZGlh
UHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgbmV3U3RhdGUsIENhbkRlbGF5Tm90aWZpY2F0aW9uIGNh
bkRlbGF5Tm90aWZpY2F0aW9uKQogewogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgYXV0
byB1cGRhdGVNZWRpYUNhcHR1cmVTdGF0ZUltbWVkaWF0ZWx5SWZOZWVkZWQgPSBbJl0gewpAQCAt
OTQ4NiwxNCArOTQ4NiwxNCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6dXBkYXRlUGxheWluZ01lZGlh
RGlkQ2hhbmdlKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBuZQogI2VuZGlmCiAKICNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlh
U3RhdGVGbGFncyBvbGRNZWRpYUNhcHR1cmVTdGF0ZSA9IG1fbWVkaWFTdGF0ZSAmIFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZU1hc2s7Ci0gICAgV2ViQ29yZTo6TWVkaWFQcm9k
dWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG5ld01lZGlhQ2FwdHVyZVN0YXRlID0gbmV3U3RhdGUgJiBX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVNYXNrOworICAgIFdlYkNvcmU6Ok1l
ZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3Mgb2xkTWVkaWFDYXB0dXJlU3RhdGUgPSBtX21lZGlh
U3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVNYXNrOworICAgIFdl
YkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgbmV3TWVkaWFDYXB0dXJlU3RhdGUg
PSBuZXdTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZU1hc2s7CiAj
ZW5kaWYKIAotICAgIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBwbGF5aW5nTWVkaWFN
YXNrIHsgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8sIE1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvIH07Ci0gICAgTWVkaWFQcm9kdWNlcjo6
TWVkaWFTdGF0ZUZsYWdzIG9sZFN0YXRlID0gbV9tZWRpYVN0YXRlOworICAgIE1lZGlhUHJvZHVj
ZXJNZWRpYVN0YXRlRmxhZ3MgcGxheWluZ01lZGlhTWFzayB7IE1lZGlhUHJvZHVjZXJNZWRpYVN0
YXRlOjpJc1BsYXlpbmdBdWRpbywgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ1Zp
ZGVvIH07CisgICAgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBvbGRTdGF0ZSA9IG1fbWVk
aWFTdGF0ZTsKIAotICAgIGJvb2wgcGxheWluZ0F1ZGlvQ2hhbmdlcyA9IChvbGRTdGF0ZS5jb250
YWlucyhNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbykpICE9IChuZXdT
dGF0ZS5jb250YWlucyhNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbykp
OworICAgIGJvb2wgcGxheWluZ0F1ZGlvQ2hhbmdlcyA9IChvbGRTdGF0ZS5jb250YWlucyhNZWRp
YVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8pKSAhPSAobmV3U3RhdGUuY29udGFp
bnMoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvKSk7CiAgICAgaWYgKHBs
YXlpbmdBdWRpb0NoYW5nZXMpCiAgICAgICAgIHBhZ2VDbGllbnQoKS5pc1BsYXlpbmdBdWRpb1dp
bGxDaGFuZ2UoKTsKICAgICBtX21lZGlhU3RhdGUgPSBuZXdTdGF0ZTsKQEAgLTk1MTcsNyArOTUx
Nyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp1cGRhdGVQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoTWVk
aWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG5lCiAgICAgaWYgKChvbGRTdGF0ZSAmIHBsYXlp
bmdNZWRpYU1hc2spICE9IChtX21lZGlhU3RhdGUgJiBwbGF5aW5nTWVkaWFNYXNrKSkKICAgICAg
ICAgbV91aUNsaWVudC0+aXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoKnRoaXMpOwogCi0gICAgaWYg
KChvbGRTdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBdWRp
b09yVmlkZW8pKSAhPSAobV9tZWRpYVN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1l
ZGlhU3RhdGU6Okhhc0F1ZGlvT3JWaWRlbykpKQorICAgIGlmICgob2xkU3RhdGUuY29udGFpbnNB
bnkoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0F1ZGlvT3JWaWRlbykpICE9IChtX21lZGlh
U3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0F1ZGlvT3JWaWRl
bykpKQogICAgICAgICB2aWRlb0NvbnRyb2xzTWFuYWdlckRpZENoYW5nZSgpOwogCiAgICAgbV9w
cm9jZXNzLT51cGRhdGVBdWRpYmxlTWVkaWFBc3NlcnRpb25zKCk7CkBAIC05NzE3LDcgKzk3MTcs
NyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKFBsYXliYWNr
VGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZQogICAgIHBhZ2VDbGllbnQoKS5tZWRpYVNlc3Np
b25NYW5hZ2VyKCkuc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKCp0aGlzLCBjb250ZXh0SWQsIHBh
Z2VDbGllbnQoKS5yb290Vmlld1RvU2NyZWVuKEludFJlY3QocmVjdCkpLCBoYXNWaWRlbywgdXNl
RGFya0FwcGVhcmFuY2UoKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpwbGF5YmFja1Rhcmdl
dFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElk
ZW50aWZpZXIgY29udGV4dElkLCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxh
Z3Mgc3RhdGUpCit2b2lkIFdlYlBhZ2VQcm94eTo6cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRT
dGF0ZURpZENoYW5nZShQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyIGNvbnRl
eHRJZCwgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBzdGF0ZSkKIHsKICAg
ICBwYWdlQ2xpZW50KCkubWVkaWFTZXNzaW9uTWFuYWdlcigpLmNsaWVudFN0YXRlRGlkQ2hhbmdl
KCp0aGlzLCBjb250ZXh0SWQsIHN0YXRlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmgKaW5kZXggNzUxY2M0NzllYzlmZDY5Y2QzNzMwNzczNzI4MDE3NTBlNzliMmMyZC4u
ZGY3ZGM5ZGM3NGU2ZmUzZGQyZjQ5YTg3MDk4YjVlOTU4OTc0ZDQ0ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTEzOTYsMTMgKzEzOTYsMTMgQEAgcHVibGljOgog
ICAgIHVpbnQ2NF90IHJlbmRlclRyZWVTaXplKCkgY29uc3QgeyByZXR1cm4gbV9yZW5kZXJUcmVl
U2l6ZTsgfQogCiAgICAgdm9pZCBzZXRNZWRpYVZvbHVtZShmbG9hdCk7Ci0gICAgdm9pZCBzZXRN
dXRlZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3MsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJiA9IFtdIHsgfSk7Ci0gICAgYm9vbCBpc0F1ZGlvTXV0ZWQoKSBjb25z
dCB7IHJldHVybiBtX211dGVkU3RhdGUuY29udGFpbnMoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6
TXV0ZWRTdGF0ZTo6QXVkaW9Jc011dGVkKTsgfTsKKyAgICB2b2lkIHNldE11dGVkKFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlRmxhZ3MsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
JiA9IFtdIHsgfSk7CisgICAgYm9vbCBpc0F1ZGlvTXV0ZWQoKSBjb25zdCB7IHJldHVybiBtX211
dGVkU3RhdGUuY29udGFpbnMoV2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVkU3RhdGU6OkF1ZGlv
SXNNdXRlZCk7IH07CiAgICAgdm9pZCBzZXRNYXlTdGFydE1lZGlhV2hlbkluV2luZG93KGJvb2wp
OwogICAgIGJvb2wgbWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdygpIGNvbnN0IHsgcmV0dXJuIG1f
bWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdzsgfQogICAgIHZvaWQgc2V0TWVkaWFDYXB0dXJlRW5h
YmxlZChib29sKTsKICAgICBib29sIG1lZGlhQ2FwdHVyZUVuYWJsZWQoKSBjb25zdCB7IHJldHVy
biBtX21lZGlhQ2FwdHVyZUVuYWJsZWQ7IH0KLSAgICB2b2lkIHN0b3BNZWRpYUNhcHR1cmUoV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZCwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmID0gW10geyB9KTsKKyAgICB2b2lkIHN0b3BNZWRpYUNhcHR1cmUoV2ViQ29yZTo6
TWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
JiA9IFtdIHsgfSk7CiAKICAgICB2b2lkIHBhdXNlQWxsTWVkaWFQbGF5YmFjayhDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc3VzcGVuZEFsbE1lZGlhUGxheWJhY2soQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKQEAgLTE1MDgsMTggKzE1MDgsMTggQEAgcHVibGlj
OgogCiAgICAgYm9vbCBpc1Nob3dpbmdOYXZpZ2F0aW9uR2VzdHVyZVNuYXBzaG90KCkgY29uc3Qg
eyByZXR1cm4gbV9pc1Nob3dpbmdOYXZpZ2F0aW9uR2VzdHVyZVNuYXBzaG90OyB9CiAKLSAgICBi
b29sIGlzUGxheWluZ0F1ZGlvKCkgY29uc3QgeyByZXR1cm4gISEobV9tZWRpYVN0YXRlICYgV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8pOyB9Ci0gICAg
dm9pZCBpc1BsYXlpbmdNZWRpYURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRp
YVN0YXRlRmxhZ3MpOworICAgIGJvb2wgaXNQbGF5aW5nQXVkaW8oKSBjb25zdCB7IHJldHVybiAh
IShtX21lZGlhU3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5
aW5nQXVkaW8pOyB9CisgICAgdm9pZCBpc1BsYXlpbmdNZWRpYURpZENoYW5nZShXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzKTsKICAgICB2b2lkIHVwZGF0ZVJlcG9ydGVkTWVk
aWFDYXB0dXJlU3RhdGUoKTsKIAogICAgIGVudW0gY2xhc3MgQ2FuRGVsYXlOb3RpZmljYXRpb24g
eyBObywgWWVzIH07Ci0gICAgdm9pZCB1cGRhdGVQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoV2ViQ29y
ZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzLCBDYW5EZWxheU5vdGlmaWNhdGlvbiA9
IENhbkRlbGF5Tm90aWZpY2F0aW9uOjpObyk7CisgICAgdm9pZCB1cGRhdGVQbGF5aW5nTWVkaWFE
aWRDaGFuZ2UoV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncywgQ2FuRGVsYXlO
b3RpZmljYXRpb24gPSBDYW5EZWxheU5vdGlmaWNhdGlvbjo6Tm8pOwogICAgIGJvb2wgaXNDYXB0
dXJpbmdBdWRpbygpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFTdGF0ZS5jb250YWluc0FueShXZWJD
b3JlOjpNZWRpYVByb2R1Y2VyOjpBdWRpb0NhcHR1cmVNYXNrKTsgfQogICAgIGJvb2wgaXNDYXB0
dXJpbmdWaWRlbygpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFTdGF0ZS5jb250YWluc0FueShXZWJD
b3JlOjpNZWRpYVByb2R1Y2VyOjpWaWRlb0NhcHR1cmVNYXNrKTsgfQotICAgIGJvb2wgaGFzQWN0
aXZlQXVkaW9TdHJlYW0oKSBjb25zdCB7IHJldHVybiBtX21lZGlhU3RhdGUuY29udGFpbnNBbnko
V2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJl
RGV2aWNlKTsgfQotICAgIGJvb2wgaGFzQWN0aXZlVmlkZW9TdHJlYW0oKSBjb25zdCB7IHJldHVy
biBtX21lZGlhU3RhdGUuY29udGFpbnNBbnkoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFT
dGF0ZTo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlKTsgfQotICAgIFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyByZXBvcnRlZE1lZGlhU3RhdGUoKSBjb25zdCB7IHJl
dHVybiBtX3JlcG9ydGVkTWVkaWFDYXB0dXJlU3RhdGUgfCAobV9tZWRpYVN0YXRlIC0gV2ViQ29y
ZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlTWFzayk7IH0KLSAgICBXZWJDb3JlOjpNZWRp
YVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3MgbXV0ZWRTdGF0ZUZsYWdzKCkgY29uc3QgeyByZXR1
cm4gbV9tdXRlZFN0YXRlOyB9CisgICAgYm9vbCBoYXNBY3RpdmVBdWRpb1N0cmVhbSgpIGNvbnN0
IHsgcmV0dXJuIG1fbWVkaWFTdGF0ZS5jb250YWluc0FueShXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
TWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlKTsgfQorICAgIGJvb2wgaGFz
QWN0aXZlVmlkZW9TdHJlYW0oKSBjb25zdCB7IHJldHVybiBtX21lZGlhU3RhdGUuY29udGFpbnNB
bnkoV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0FjdGl2ZVZpZGVvQ2FwdHVy
ZURldmljZSk7IH0KKyAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIHJl
cG9ydGVkTWVkaWFTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVwb3J0ZWRNZWRpYUNhcHR1cmVT
dGF0ZSB8IChtX21lZGlhU3RhdGUgLSBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1
cmVNYXNrKTsgfQorICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlRmxhZ3MgbXV0
ZWRTdGF0ZUZsYWdzKCkgY29uc3QgeyByZXR1cm4gbV9tdXRlZFN0YXRlOyB9CiAKICAgICB2b2lk
IGhhbmRsZUF1dG9wbGF5RXZlbnQoV2ViQ29yZTo6QXV0b3BsYXlFdmVudCwgT3B0aW9uU2V0PFdl
YkNvcmU6OkF1dG9wbGF5RXZlbnRGbGFncz4pOwogCkBAIC0xNjAzLDcgKzE2MDMsNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCBhZGRQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudChXZWJDb3JlOjpQbGF5
YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyKTsKICAgICB2b2lkIHJlbW92ZVBsYXli
YWNrVGFyZ2V0UGlja2VyQ2xpZW50KFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4
dElkZW50aWZpZXIpOwogICAgIHZvaWQgc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKFdlYkNvcmU6
OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkZs
b2F0UmVjdCYsIGJvb2wgaGFzVmlkZW8pOwotICAgIHZvaWQgcGxheWJhY2tUYXJnZXRQaWNrZXJD
bGllbnRTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpOworICAg
IHZvaWQgcGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpQ
bGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyLCBXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyTWVkaWFTdGF0ZUZsYWdzKTsKICAgICB2b2lkIHNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0
UGlja2VyRW5hYmxlZChib29sKTsKICAgICB2b2lkIHNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0
UGlja2VyU3RhdGUoY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldENv
bnRleHQ6Ok1vY2tTdGF0ZSk7CiAgICAgdm9pZCBtb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tl
ckRpc21pc3NQb3B1cCgpOwpAQCAtMjkwNCw3ICsyOTA0LDcgQEAgcHJpdmF0ZToKICAgICBXZWJD
b3JlOjpMYXlvdXRQb2ludCBtX21heFN0YWJsZUxheW91dFZpZXdwb3J0T3JpZ2luOwogCiAgICAg
ZmxvYXQgbV9tZWRpYVZvbHVtZSB7IDEgfTsKLSAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpN
dXRlZFN0YXRlRmxhZ3MgbV9tdXRlZFN0YXRlOworICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJN
dXRlZFN0YXRlRmxhZ3MgbV9tdXRlZFN0YXRlOwogICAgIGJvb2wgbV9tYXlTdGFydE1lZGlhV2hl
bkluV2luZG93IHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9tZWRpYVBsYXliYWNrSXNTdXNwZW5kZWQg
eyBmYWxzZSB9OwogICAgIGJvb2wgbV9tZWRpYUNhcHR1cmVFbmFibGVkIHsgdHJ1ZSB9OwpAQCAt
Mjk0MCwxMCArMjk0MCwxMCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9hY3Rpdml0eVN0YXRlQ2hh
bmdlV2FudHNTeW5jaHJvbm91c1JlcGx5IHsgZmFsc2UgfTsKICAgICBWZWN0b3I8Q29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPj4gbV9uZXh0QWN0aXZpdHlTdGF0ZUNoYW5nZUNhbGxiYWNrczsKIAot
ICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBtX21lZGlhU3RhdGU7
CisgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBtX21lZGlhU3RhdGU7
CiAKICAgICAvLyBUbyBtYWtlIHN1cmUgY2FwdHVyZSBpbmRpY2F0b3JzIGFyZSB2aXNpYmxlIGxv
bmcgZW5vdWdoLCBtX3JlcG9ydGVkTWVkaWFDYXB0dXJlU3RhdGUgaXMgdGhlIHNhbWUgYXMgbV9t
ZWRpYVN0YXRlIGV4Y2VwdCB0aGF0IHdlIG1pZ2h0IGRlbGF5IGEgYml0IHRyYW5zaXRpb24gZnJv
bSBjYXB0dXJpbmcgdG8gbm90LWNhcHR1cmluZy4KLSAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
OjpNZWRpYVN0YXRlRmxhZ3MgbV9yZXBvcnRlZE1lZGlhQ2FwdHVyZVN0YXRlOworICAgIFdlYkNv
cmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgbV9yZXBvcnRlZE1lZGlhQ2FwdHVyZVN0
YXRlOwogICAgIFJ1bkxvb3A6OlRpbWVyPFdlYlBhZ2VQcm94eT4gbV91cGRhdGVSZXBvcnRlZE1l
ZGlhQ2FwdHVyZVN0YXRlVGltZXI7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBTZWNvbmRzIERlZmF1
bHRNZWRpYUNhcHR1cmVSZXBvcnRpbmdEZWxheSB7IDNfcyB9OwogICAgIFNlY29uZHMgbV9tZWRp
YUNhcHR1cmVSZXBvcnRpbmdEZWxheSB7IERlZmF1bHRNZWRpYUNhcHR1cmVSZXBvcnRpbmdEZWxh
eSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1l
c3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2Vz
LmluCmluZGV4IDcyZTU2ZGZmZTZlNWY0MGIzZWE1MzJlYWRlM2ZkMTk4ZDhkZWYwZTUuLjExOGE3
MWE5Nzk1NmM5MWI1NmU2MjgwYzQyMWNmOGEzMjYzMjhkOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTQ2Miw3ICs0NjIsNyBA
QCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIENvbnRlbnRGaWx0ZXJEaWRCbG9ja0xv
YWRGb3JGcmFtZShXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXIgdW5ibG9ja0hh
bmRsZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogI2VuZGlmCiAKLSAgICBJ
c1BsYXlpbmdNZWRpYURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
RmxhZ3Mgc3RhdGUpCisgICAgSXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoT3B0aW9uU2V0PFdlYkNv
cmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlPiBzdGF0ZSkKICAgICBIYW5kbGVBdXRvcGxheUV2
ZW50KGVudW06dWludDhfdCBXZWJDb3JlOjpBdXRvcGxheUV2ZW50IGV2ZW50LCBPcHRpb25TZXQ8
V2ViQ29yZTo6QXV0b3BsYXlFdmVudEZsYWdzPiBmbGFncykKIAogI2lmIFBMQVRGT1JNKE1BQykK
QEAgLTQ4MSw3ICs0ODEsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIEFkZFBs
YXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29u
dGV4dElkZW50aWZpZXIgY29udGV4dElkKQogICAgIFJlbW92ZVBsYXliYWNrVGFyZ2V0UGlja2Vy
Q2xpZW50KFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIgY29u
dGV4dElkKQogICAgIFNob3dQbGF5YmFja1RhcmdldFBpY2tlcihXZWJDb3JlOjpQbGF5YmFja1Rh
cmdldENsaWVudENvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgV2ViQ29yZTo6RmxvYXRSZWN0
IHBpY2tlckxvY2F0aW9uLCBib29sIGhhc1ZpZGVvKQotICAgIFBsYXliYWNrVGFyZ2V0UGlja2Vy
Q2xpZW50U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0
SWRlbnRpZmllciBjb250ZXh0SWQsIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVG
bGFncyBtZWRpYVN0YXRlKQorICAgIFBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRD
aGFuZ2UoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciBjb250
ZXh0SWQsIE9wdGlvblNldDxXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZT4gbWVkaWFT
dGF0ZSkKICAgICBTZXRNb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlckVuYWJsZWQoYm9vbCBl
bmFibGVkKQogICAgIFNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyU3RhdGUoU3RyaW5n
IG5hbWUsIGVudW06dWludDhfdCBXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6
TW9ja1N0YXRlIHBpY2tlclN0YXRlKQogICAgIE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2Vy
RGlzbWlzc1BvcHVwKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
Y3BwCmluZGV4IDhkNDdhNjNmNmNhNzZiNDFlYzg2ZWE3YzQ0MTcyZDczMGEwNDJiYTkuLmFmNDA5
NjFkYTBmOWE4ZWM0ODc1MDhiZjIxNDEzMjA3ZmEwN2RmNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtMTg0Nyw3ICsxODQ3LDcgQEAgdm9pZCBX
ZWJQcm9jZXNzUHJveHk6Om11dGVDYXB0dXJlSW5QYWdlc0V4Y2VwdChXZWJDb3JlOjpQYWdlSWRl
bnRpZmllciBwYWdlSUQpCiAKICNlbmRpZgogCi12b2lkIFdlYlByb2Nlc3NQcm94eTo6cGFnZU11
dGVkU3RhdGVDaGFuZ2VkKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNv
cmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncyBmbGFncykKK3ZvaWQgV2ViUHJvY2Vz
c1Byb3h5OjpwYWdlTXV0ZWRTdGF0ZUNoYW5nZWQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgaWRl
bnRpZmllciwgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVkU3RhdGVGbGFncyBmbGFncykKIHsK
ICAgICBib29sIG11dGVkRm9yQ2FwdHVyZSA9IGZsYWdzLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVj
ZXI6OkF1ZGlvQW5kVmlkZW9DYXB0dXJlSXNNdXRlZCk7CiAgICAgaWYgKCFtdXRlZEZvckNhcHR1
cmUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IDljZjIz
YWQ4OTI5ZGJlOWE4MDNjMGFjMDA0YWEzM2RjMmYyYzY3MWUuLjg3MmYwMmUxNTQ3MDgxNmJjMmVj
YWFjNjRmMWFmYTEyZTU4ZWVkNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5oCkBAIC00MDYsNyArNDA2LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIG11
dGVDYXB0dXJlSW5QYWdlc0V4Y2VwdChXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7CiAgICAgU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYgZW5zdXJlU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigpOwogI2VuZGlm
Ci0gICAgdm9pZCBwYWdlTXV0ZWRTdGF0ZUNoYW5nZWQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIs
IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncyk7CisgICAgdm9pZCBwYWdl
TXV0ZWRTdGF0ZUNoYW5nZWQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXJNdXRlZFN0YXRlRmxhZ3MpOwogICAgIHZvaWQgcGFnZUlzQmVjb21pbmdJbnZpc2li
bGUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOwogCiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVO
QUJMRShSRU1PVEVfSU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCmluZGV4
IGZmZGQ0MzM0NTdlY2VmY2Q2YWRkOGQ5YTQyMTRiYWI0NWRkNWU2NTAuLjFmMTc2ZWJkOTg4Y2Uw
MmZlZTZkODIwODQyNjJlODRmMWU1NmFlOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5j
cHAKQEAgLTUwLDYgKzUwLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtVGltZVJhbmdl
cy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlP
cmlnaW4uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1RleHRUcmFja1JlcHJlc2VudGF0aW9uLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9WaWRlb0xheWVyTWFuYWdlci5oPgogI2luY2x1ZGUgPHd0Zi9IYXNo
TWFwLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRG9jdW1lbnRHdGsuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURvY3VtZW50R3Rr
LmNwcAppbmRleCBkMDdmNmU3MmE0YjQ5NWNkOTQzNTA5MmNmNzZlMGI3YTU5YjgyMGM5Li5kZGFm
ODYzZmU3NWI3NTliOWJlODA0NTcyOWVhYjQ1MWVjMTEwYzNhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRG9j
dW1lbnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Eb2N1bWVudEd0ay5jcHAKQEAgLTU0LDcgKzU0LDcgQEAK
ICNpbmNsdWRlICJXZWJLaXRET01YUGF0aFJlc3VsdFByaXZhdGUuaCIKICNpbmNsdWRlIDxXZWJD
b3JlL0NTU0ltcG9ydFJ1bGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RPTUV4Y2VwdGlvbi5oPgot
I2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50
SW5saW5lcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnVsbHNjcmVlbk1hbmFnZXIuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0pTRXhlY1N0YXRlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9y
aWdpbi5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3
LmNwcAppbmRleCBhM2Q2Y2MzMmY2NTQ5ZmEwZmFiNGEyNDUwOGZlMjJmMDQ3ZjlkMzM1Li5kM2Fh
ZDZlYTI2MTY4YTIxYjgzZDUzMGU3YWI2ZGQ0N2EyNjdmMjFhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcApAQCAtNTksNyArNTksNyBAQAog
I2luY2x1ZGUgPFdlYkNvcmUvTW91c2VFdmVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0c2Nh
cGVQbHVnSW5TdHJlYW1Mb2FkZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtTdG9yYWdl
U2Vzc2lvbi5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
UGFnZUlubGluZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtTW91c2VFdmVudC5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvUHJvdGVjdGlvblNwYWNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Q
cm94eVNlcnZlci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luVmlldy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
Vmlldy5oCmluZGV4IGFhOWQzZWNlM2Q2MjU4OWQ2YmJhZWM5MTRiNjM1NmQ1MDRhNGU5YmEuLjVh
YmM0ODZlMGM1OTEwYWRlOGI4YzZmYzhkOGY5MGE5Zjk2ZWI1OGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmgKQEAgLTE4Niw3ICsxODYsNyBAQCBw
cml2YXRlOgogICAgIHZvaWQgbWVkaWFDYW5TdGFydChXZWJDb3JlOjpEb2N1bWVudCYpIG92ZXJy
aWRlOwogCiAgICAgLy8gV2ViQ29yZTo6TWVkaWFQcm9kdWNlcgotICAgIFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBtZWRpYVN0YXRlKCkgY29uc3Qgb3ZlcnJpZGU7Cisg
ICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBtZWRpYVN0YXRlKCkgY29u
c3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBwYWdlTXV0ZWRTdGF0ZURpZENoYW5nZSgpIG92ZXJyaWRl
OwogCiAgICAgLy8gUGx1Z2luQ29udHJvbGxlcgpAQCAtMjc2LDExICsyNzYsMTEgQEAgcHJpdmF0
ZToKICAgICBib29sIG1fcGx1Z2luSXNQbGF5aW5nQXVkaW8geyBmYWxzZSB9OwogfTsKIAotaW5s
aW5lIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBQbHVnaW5WaWV3Ojpt
ZWRpYVN0YXRlKCkgY29uc3QKK2lubGluZSBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0
ZUZsYWdzIFBsdWdpblZpZXc6Om1lZGlhU3RhdGUoKSBjb25zdAogewotICAgIFdlYkNvcmU6Ok1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBtZWRpYVN0YXRlOworICAgIFdlYkNvcmU6Ok1l
ZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgbWVkaWFTdGF0ZTsKICAgICBpZiAobV9wbHVnaW5J
c1BsYXlpbmdBdWRpbykKLSAgICAgICAgbWVkaWFTdGF0ZS5hZGQoTWVkaWFQcm9kdWNlcjo6TWVk
aWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8pOworICAgICAgICBtZWRpYVN0YXRlLmFkZChXZWJDb3Jl
OjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8pOwogICAgIHJldHVybiBt
ZWRpYVN0YXRlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDEyMGEwNGQzNmYwMzhh
YzczMTkxNTUyZWNmNDVlMzIxNGUxNWI3ZWUuLmEyMzk2Y2UyYzI5NGU4MjZlZTg2ZDNmNzZkOWY1
YTcxM2I5OTYzOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC0xMjUyLDcgKzEyNTIsNyBA
QCBib29sIFdlYkNocm9tZUNsaWVudDo6c2hvdWxkVXNlVGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3
KGNvbnN0IEZyYW1lVmlldyYgZnJhbWVWaQogICAgIHJldHVybiBtX3BhZ2UuZHJhd2luZ0FyZWEo
KS0+c2hvdWxkVXNlVGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3KGZyYW1lVmlldyk7CiB9CiAKLXZv
aWQgV2ViQ2hyb21lQ2xpZW50Ojppc1BsYXlpbmdNZWRpYURpZENoYW5nZShNZWRpYVByb2R1Y2Vy
OjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6aXNQbGF5aW5n
TWVkaWFEaWRDaGFuZ2UoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBzdGF0ZSkKIHsKICAg
ICBtX3BhZ2UuaXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2Uoc3RhdGUpOwogfQpAQCAtMTM4NCw3ICsx
Mzg0LDcgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNob3dQbGF5YmFja1RhcmdldFBpY2tlcihQ
bGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGkKICAgICBtX3BhZ2Uuc2VuZChNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpTaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoY29udGV4dElkLCByZWN0
LCBpc1ZpZGVvKSk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpwbGF5YmFja1RhcmdldFBp
Y2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50
aWZpZXIgY29udGV4dElkLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCit2
b2lkIFdlYkNocm9tZUNsaWVudDo6cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENo
YW5nZShQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgTWVk
aWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBzdGF0ZSkKIHsKICAgICBtX3BhZ2Uuc2VuZChNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hh
bmdlKGNvbnRleHRJZCwgc3RhdGUpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCA2NDQ4MmE0
MmU0ZWM3MmQ1MmFhODQ2YTU3ODQ1YTE0Njg0NjZjNzEwLi5iOTkzOGYyYmZhNjEwMGIyOTYyM2Nk
MDMwNWNlMGIxNGM0MzIyMTU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0zNTIsNyArMzUyLDcg
QEAgcHJpdmF0ZToKIAogICAgIGJvb2wgc2hvdWxkVXNlVGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3
KGNvbnN0IFdlYkNvcmU6OkZyYW1lVmlldyYpIGNvbnN0IGZpbmFsOwogCi0gICAgdm9pZCBpc1Bs
YXlpbmdNZWRpYURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxh
Z3MpIGZpbmFsOworICAgIHZvaWQgaXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoV2ViQ29yZTo6TWVk
aWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncykgZmluYWw7CiAgICAgdm9pZCBoYW5kbGVBdXRvcGxh
eUV2ZW50KFdlYkNvcmU6OkF1dG9wbGF5RXZlbnQsIE9wdGlvblNldDxXZWJDb3JlOjpBdXRvcGxh
eUV2ZW50RmxhZ3M+KSBmaW5hbDsKIAogI2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykKQEAgLTM5
MSw3ICszOTEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgYWRkUGxheWJhY2tUYXJnZXRQaWNrZXJD
bGllbnQoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllcikgZmlu
YWw7CiAgICAgdm9pZCByZW1vdmVQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudChXZWJDb3JlOjpQ
bGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyKSBmaW5hbDsKICAgICB2b2lkIHNo
b3dQbGF5YmFja1RhcmdldFBpY2tlcihXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRl
eHRJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIGJvb2wpIGZpbmFsOwotICAg
IHZvaWQgcGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpQ
bGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyLCBXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpIGZpbmFsOworICAgIHZvaWQgcGxheWJhY2tUYXJnZXRQaWNr
ZXJDbGllbnRTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRl
eHRJZGVudGlmaWVyLCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzKSBmaW5h
bDsKICAgICB2b2lkIHNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyRW5hYmxlZChib29s
KSBmaW5hbDsKICAgICB2b2lkIHNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyU3RhdGUo
Y29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ6Ok1vY2tT
dGF0ZSkgZmluYWw7CiAgICAgdm9pZCBtb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlckRpc21p
c3NQb3B1cCgpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcAppbmRleCBlNmVlNDIwZjQ1YTQyNzU5ZTA2MTRjYjUwMGNhNmVmNmI1MjRjOTA0Li5k
ZThjNWYzN2IwMmQxMTIxNjA4ZDI5Nzk0YzVmNWI4MDZkYzhmZWY2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNDM3NSw3ICs0Mzc1LDcgQEAg
dm9pZCBXZWJQYWdlOjpzZW5kVmlvbGF0aW9uUmVwb3J0V2hlbk5hdmlnYXRpbmdBd2F5RnJvbUNP
T1BSZXNwb25zZShGcmFtZUlkZW50aWYKICAgICAgICAgV2ViQ29yZTo6c2VuZFZpb2xhdGlvblJl
cG9ydFdoZW5OYXZpZ2F0aW5nQXdheUZyb21DT09QUmVzcG9uc2UoKmZyYW1lLT5jb3JlRnJhbWUo
KSwgY29vcCwgZGlzcG9zaXRpb24sIGNvb3BVUkwsIG5leHRSZXNwb25zZVVSTCwgY29vcE9yaWdp
bi5zZWN1cml0eU9yaWdpbigpLCBuZXh0UmVzcG9uc2VPcmlnaW4uc2VjdXJpdHlPcmlnaW4oKSwg
aXNDT09QUmVzcG9uc2VOYXZpZ2F0aW9uU291cmNlLCB1c2VyQWdlbnQpOwogfQogCi12b2lkIFdl
YlBhZ2U6OmVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50KEZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJbml0JiYgZXZlbnRJbml0
KQordm9pZCBXZWJQYWdlOjplbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudChGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQmJiBl
dmVudEluaXQpCiB7CiAgICAgYXV0byogZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53
ZWJGcmFtZShmcmFtZUlEKTsKICAgICBpZiAoIWZyYW1lKQpAQCAtNTU3NSwxMyArNTU3NSwxMyBA
QCB2b2lkIFdlYlBhZ2U6OnNldE1lZGlhVm9sdW1lKGZsb2F0IHZvbHVtZSkKICAgICBtX3BhZ2Ut
PnNldE1lZGlhVm9sdW1lKHZvbHVtZSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6c2V0TXV0ZWQoTWVk
aWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZUZsYWdzIHN0YXRlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlBhZ2U6OnNldE11dGVkKE1lZGlhUHJv
ZHVjZXJNdXRlZFN0YXRlRmxhZ3Mgc3RhdGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBtX3BhZ2UtPnNldE11dGVkKHN0YXRlKTsKICAgICBj
b21wbGV0aW9uSGFuZGxlcigpOwogfQogCi12b2lkIFdlYlBhZ2U6OnN0b3BNZWRpYUNhcHR1cmUo
TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZCBraW5kLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlBhZ2U6OnN0b3BNZWRpYUNhcHR1
cmUoTWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQga2luZCwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
CiAgICAgbV9wYWdlLT5zdG9wTWVkaWFDYXB0dXJlKGtpbmQpOwpAQCAtNzQ1MSw3ICs3NDUxLDcg
QEAgdm9pZCBXZWJQYWdlOjpzeW5jaHJvbml6ZUNPUlNEaXNhYmxpbmdQYXR0ZXJuc1dpdGhOZXR3
b3JrUHJvY2VzcygpCiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpTZXRDT1JTRGlzYWJsaW5nUGF0dGVybnMobV9pZGVudGlmaWVy
LCBtX2NvcnNEaXNhYmxpbmdQYXR0ZXJucyksIDApOwogfQogCi12b2lkIFdlYlBhZ2U6OmlzUGxh
eWluZ01lZGlhRGlkQ2hhbmdlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFn
cyBzdGF0ZSkKK3ZvaWQgV2ViUGFnZTo6aXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoV2ViQ29yZTo6
TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBzdGF0ZSkKIHsKICAgICBzZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OklzUGxheWluZ01lZGlhRGlkQ2hhbmdlKHN0YXRlKSk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggYzEzODU1NzNiMGJl
NWZlYzgwMTUwYTk1ZmIzOTUxOTQzYTUwNDY2Ni4uYzI3ZDQwMGI2NmQzN2RiZTBhOWU1NGQyN2Fi
ZjQ0MGM0OWQ0MTE3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaApAQCAtNDQ4LDcgKzQ0OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNlbmRDT0VQQ09SUFZp
b2xhdGlvbihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSYgZW1iZWRkZXJPcmlnaW4sIGNvbnN0IFN0cmluZyYgZW5kcG9pbnQsIFdlYkNv
cmU6OkNPRVBEaXNwb3NpdGlvbiwgV2ViQ29yZTo6RmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbiwg
Y29uc3QgVVJMJiBibG9ja2VkVVJMKTsKICAgICB2b2lkIHNlbmRWaW9sYXRpb25SZXBvcnRXaGVu
TmF2aWdhdGluZ1RvQ09PUFJlc3BvbnNlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3Qg
V2ViQ29yZTo6Q3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3kmLCBXZWJDb3JlOjpDT09QRGlzcG9zaXRp
b24sIGNvbnN0IFVSTCYgY29vcFVSTCwgY29uc3QgVVJMJiBwcmV2aW91c1Jlc3BvbnNlVVJMLCBj
b25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGNvb3BPcmlnaW4sIGNvbnN0IFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgcHJldmlvdXNSZXNwb25zZU9yaWdpbiwgY29uc3QgU3Ry
aW5nJiByZWZlcnJlciwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgcmVw
b3J0VG9IZWFkZXJWYWx1ZSk7CiAgICAgdm9pZCBzZW5kVmlvbGF0aW9uUmVwb3J0V2hlbk5hdmln
YXRpbmdBd2F5RnJvbUNPT1BSZXNwb25zZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0
IFdlYkNvcmU6OkNyb3NzT3JpZ2luT3BlbmVyUG9saWN5JiwgV2ViQ29yZTo6Q09PUERpc3Bvc2l0
aW9uLCBjb25zdCBVUkwmIGNvb3BVUkwsIGNvbnN0IFVSTCYgbmV4dFJlc3BvbnNlVVJMLCBjb25z
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGNvb3BPcmlnaW4sIGNvbnN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSYgbmV4dFJlc3BvbnNlT3JpZ2luLCBib29sIGlzQ09PUFJlc3Bv
bnNlTmF2aWdhdGlvblNvdXJjZSwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQpOwotICAgIHZvaWQg
ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyLCBXZWJDb3JlOjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJbml0JiYpOworICAg
IHZvaWQgZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQoV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50SW5pdCYmKTsK
IAogICAgIC8vIC0tIENhbGxlZCBieSB0aGUgRHJhd2luZ0FyZWEuCiAgICAgLy8gRklYTUU6IFdl
IGNvdWxkIGdlbmVyaWNpemUgdGhlc2UgaW50byBhIERyYXdpbmdBcmVhIGNsaWVudCBpbnRlcmZh
Y2UuIFdvdWxkIHRoYXQgYmUgYmVuZWZpY2lhbD8KQEAgLTEwMjcsOSArMTAyNyw5IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHJlbW92ZVJlc291cmNlUmVxdWVzdChXZWJDb3JlOjpSZXNvdXJjZUxvYWRl
cklkZW50aWZpZXIpOwogCiAgICAgdm9pZCBzZXRNZWRpYVZvbHVtZShmbG9hdCk7Ci0gICAgdm9p
ZCBzZXRNdXRlZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3MsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBzZXRNdXRlZChXZWJDb3JlOjpNZWRp
YVByb2R1Y2VyTXV0ZWRTdGF0ZUZsYWdzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwog
ICAgIHZvaWQgc2V0TWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdyhib29sKTsKLSAgICB2b2lkIHN0
b3BNZWRpYUNhcHR1cmUoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIHN0b3BNZWRpYUNhcHR1cmUo
V2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJik7CiAKICAgICB2b2lkIHVwZGF0ZU1haW5GcmFtZVNjcm9sbE9mZnNldFBpbm5p
bmcoKTsKIApAQCAtMTQyMSw3ICsxNDIxLDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlTWVk
aWFVc2FnZU1hbmFnZXJTZXNzaW9uKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbklkZW50aWZpZXIpOwog
I2VuZGlmCiAKLSAgICB2b2lkIGlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyk7CisgICAgdm9pZCBpc1BsYXlpbmdNZWRpYURpZENo
YW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzKTsKIAogI2lmIEVOQUJM
RShJTUFHRV9BTkFMWVNJUykKICAgICB2b2lkIHJlcXVlc3RUZXh0UmVjb2duaXRpb24oV2ViQ29y
ZTo6RWxlbWVudCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmUHRyPFdlYkNvcmU6OkVsZW1l
bnQ+JiYpPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDhhZmM0ZWE1ZTNjZDAxYzJhYzNhNGEzNDFmMzE2YTlh
MjExMzMyZTEuLjc4MmZmMjgyYmFhM2RkOGEzOGIwYThhY2EzMTkzMzJhOWEzYzgxMzkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMu
aW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdl
cy5pbgpAQCAtMzMsNyArMzMsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVy
IHsKICAgICBTZW5kQ09FUENPUlBWaW9sYXRpb24oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZW1iZWRkZXJPcmlnaW4s
IFN0cmluZyBlbmRwb2ludCwgZW51bTpib29sIFdlYkNvcmU6OkNPRVBEaXNwb3NpdGlvbiBkaXNw
b3NpdGlvbiwgZW51bTp1aW50OF90IFdlYkNvcmU6OkZldGNoT3B0aW9uczo6RGVzdGluYXRpb24g
ZGVzdGluYXRpb24sIFVSTCBibG9ja2VkVVJMKQogICAgIFNlbmRWaW9sYXRpb25SZXBvcnRXaGVu
TmF2aWdhdGluZ1RvQ09PUFJlc3BvbnNlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCBzdHJ1Y3QgV2ViQ29yZTo6Q3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3kgY29vcCwgZW51bTpib29s
IFdlYkNvcmU6OkNPT1BEaXNwb3NpdGlvbiBkaXNwb3NpdGlvbiwgVVJMIGNvb3BVUkwsIFVSTCBw
cmV2aW91c1Jlc3BvbnNlVVJMLCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGNv
b3BPcmlnaW4sIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgcHJldmlvdXNSZXNw
b25zZU9yaWdpbiwgU3RyaW5nIHJlZmVycmVyLCBTdHJpbmcgdXNlckFnZW50LCBTdHJpbmcgcmVw
b3J0VG9IZWFkZXJWYWx1ZSkKICAgICBTZW5kVmlvbGF0aW9uUmVwb3J0V2hlbk5hdmlnYXRpbmdB
d2F5RnJvbUNPT1BSZXNwb25zZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3Ry
dWN0IFdlYkNvcmU6OkNyb3NzT3JpZ2luT3BlbmVyUG9saWN5IGNvb3AsIGVudW06Ym9vbCBXZWJD
b3JlOjpDT09QRGlzcG9zaXRpb24gZGlzcG9zaXRpb24sIFVSTCBjb29wVVJMLCBVUkwgbmV4dFJl
c3BvbnNlVVJMLCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGNvb3BPcmlnaW4s
IHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgbmV4dFJlc3BvbnNlT3JpZ2luLCBi
b29sIGlzQ09PUFJlc3BvbnNlTmF2aWdhdGlvblNvdXJjZSwgU3RyaW5nIHVzZXJBZ2VudCkKLSAg
ICBFbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudChXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6SW5p
dCBldmVudEluaXQpCisgICAgRW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQoV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eVBv
bGljeVZpb2xhdGlvbkV2ZW50SW5pdCBldmVudEluaXQpCiAKICAgICBUZXN0UHJvY2Vzc0luY29t
aW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkoKSAtPiAoYm9vbCBoYW5kbGVk
KSBTeW5jaHJvbm91cwogCkBAIC00MTcsOSArNDE3LDkgQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0
aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5
cGUKIAogICAgICMgTWVkaWEKICAgICBTZXRNZWRpYVZvbHVtZShmbG9hdCB2b2x1bWUpCi0gICAg
U2V0TXV0ZWQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZUZsYWdzIG11dGVkKSAt
PiAoKSBBc3luYworICAgIFNldE11dGVkKE9wdGlvblNldDxXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
TXV0ZWRTdGF0ZT4gbXV0ZWQpIC0+ICgpIEFzeW5jCiAgICAgU2V0TWF5U3RhcnRNZWRpYVdoZW5J
bldpbmRvdyhib29sIG1heVN0YXJ0TWVkaWEpCi0gICAgU3RvcE1lZGlhQ2FwdHVyZShXZWJDb3Jl
OjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kIGtpbmQpIC0+ICgpIEFzeW5jCisgICAg
U3RvcE1lZGlhQ2FwdHVyZShlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlh
Q2FwdHVyZUtpbmQga2luZCkgLT4gKCkgQXN5bmMKIAogICAgIFNldENhblJ1bkJlZm9yZVVubG9h
ZENvbmZpcm1QYW5lbChib29sIGNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCkKICAgICBT
ZXRDYW5SdW5Nb2RhbChib29sIGNhblJ1bk1vZGFsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvRE9NL0RPTURvY3VtZW50Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
RE9NL0RPTURvY3VtZW50Lm1tCmluZGV4IDhlYTQwNDNlMTYxNWUzMTk2NTc5YjA2MDBiNjAwZDU2
ODZjNjZhNGUuLjYyZmE2MjIwMjg2NWRmYWRjNTFjMjU4NTI3NjY3YjNmYmZhNzNhNGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RPTS9ET01Eb2N1bWVudC5tbQorKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NRG9jdW1lbnQubW0KQEAgLTYwLDkgKzYwLDkg
QEAKICNpbXBvcnQgPFdlYkNvcmUvQ1NTU3R5bGVEZWNsYXJhdGlvbi5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9Db21tZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RPTVdpbmRvdy5oPgotI2ltcG9ydCA8
V2ViQ29yZS9Eb2N1bWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9Eb2N1bWVudEZyYWdtZW50Lmg+
CiAjaW1wb3J0IDxXZWJDb3JlL0RvY3VtZW50RnVsbHNjcmVlbi5oPgorI2ltcG9ydCA8V2ViQ29y
ZS9Eb2N1bWVudElubGluZXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvRG9jdW1lbnRUeXBlLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL0V2ZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0hUTUxDb2xsZWN0aW9u
Lmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDFjNTc2NzkzN2M2NTQ5ZmExY2U0OWM5Mzg1MmNhNGVl
M2I3YWRlNmMuLjM1NTVkNTQ0Y2E3NGI3MTE5ZDZiMDY3NjI2NjdlMmM0MTc1MWQwM2YgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5oCkBAIC0yNDMsNyArMjQzLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGFkZFBs
YXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29u
dGV4dElkZW50aWZpZXIpIGZpbmFsOwogICAgIHZvaWQgcmVtb3ZlUGxheWJhY2tUYXJnZXRQaWNr
ZXJDbGllbnQoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllcikg
ZmluYWw7CiAgICAgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoV2ViQ29yZTo6UGxheWJh
Y2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQm
LCBib29sIC8qIGhhc1ZpZGVvICovKSBmaW5hbDsKLSAgICB2b2lkIHBsYXliYWNrVGFyZ2V0UGlj
a2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250
ZXh0SWRlbnRpZmllciwgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzKSBm
aW5hbDsKKyAgICB2b2lkIHBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2Uo
V2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciwgV2ViQ29yZTo6
TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncykgZmluYWw7CiAgICAgdm9pZCBzZXRNb2NrTWVk
aWFQbGF5YmFja1RhcmdldFBpY2tlckVuYWJsZWQoYm9vbCkgZmluYWw7CiAgICAgdm9pZCBzZXRN
b2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlclN0YXRlKGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6
Ok1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0OjpNb2NrU3RhdGUpIGZpbmFsOwogICAgIHZvaWQg
bW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJEaXNtaXNzUG9wdXAoKSBvdmVycmlkZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5tbQppbmRleCBhNDZiMWFkYTYwNDk3ZGE3ZjVlZWUyN2Y4MTFlMzJlN2MwODI2
ZTExLi4xNjkzZDg3NWZlMDA4NTRmOTJkNWJhMzE2ZDVmNzMxMWQ4N2Q4YWIyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
bW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50Lm1tCkBAIC0xMTI5LDcgKzExMjksNyBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6c2hv
d1BsYXliYWNrVGFyZ2V0UGlja2VyKFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aQog
ICAgIFttX3dlYlZpZXcgX3Nob3dQbGF5YmFja1RhcmdldFBpY2tlcjpjb250ZXh0SWQgbG9jYXRp
b246bG9jYXRpb24gaGFzVmlkZW86aGFzVmlkZW9dOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVu
dDo6cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShQbGF5YmFja1Rhcmdl
dENsaWVudENvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgTWVkaWFQcm9kdWNlcjo6TWVkaWFT
dGF0ZUZsYWdzIHN0YXRlKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnBsYXliYWNrVGFyZ2V0UGlj
a2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UoUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRp
ZmllciBjb250ZXh0SWQsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCiB7CiAg
ICAgW21fd2ViVmlldyBfcGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZTpj
b250ZXh0SWQgc3RhdGU6c3RhdGVdOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyLmggYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIuaAppbmRl
eCA4Y2EzMjk0N2E1YjQ2ZTA2N2I4ZThiYWU0NDYzOTNlYmI5MGU4NmVmLi4zOTY1NTVjZDFmOThi
NmJjMTM0NDUwNTdlZGNhNTc2ZmZkNGViNjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIu
aApAQCAtNTEsNyArNTEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBhZGRQbGF5YmFja1RhcmdldFBp
Y2tlckNsaWVudChXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVy
KTsKICAgICB2b2lkIHJlbW92ZVBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KFdlYkNvcmU6OlBs
YXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIpOwogICAgIHZvaWQgc2hvd1BsYXli
YWNrVGFyZ2V0UGlja2VyKFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50
aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGJvb2wgaGFzVmlkZW8pOwotICAgIHZv
aWQgcGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpQbGF5
YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyLCBXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
OjpNZWRpYVN0YXRlRmxhZ3MpOworICAgIHZvaWQgcGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRT
dGF0ZURpZENoYW5nZShXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlm
aWVyLCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzKTsKICAgICB2b2lkIHNl
dE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyRW5hYmxlZChib29sKTsKICAgICB2b2lkIHNl
dE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyU3RhdGUoY29uc3QgU3RyaW5nJiwgV2ViQ29y
ZTo6TWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ6Ok1vY2tTdGF0ZSk7CiAgICAgdm9pZCBtb2Nr
TWVkaWFQbGF5YmFja1RhcmdldFBpY2tlckRpc21pc3NQb3B1cCgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2Vy
Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJNZWRpYVBsYXliYWNrVGFy
Z2V0UGlja2VyLm1tCmluZGV4IDdkYmQ1ODk0NzU0MDVhMTZlYmRkMGZhOWJjZmE2MmMzMzdlNzQx
NTIuLjVjZmZiY2ZjM2Y1ZWFjNmU1ZWI4MmVlYTAzZWM4YjBjNWE5OGU3NmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViTWVkaWFQbGF5YmFja1RhcmdldFBp
Y2tlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYk1lZGlhUGxh
eWJhY2tUYXJnZXRQaWNrZXIubW0KQEAgLTU4LDcgKzU4LDcgQEAgdm9pZCBXZWJNZWRpYVBsYXli
YWNrVGFyZ2V0UGlja2VyOjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoV2ViQ29yZTo6UGxheWJh
Y2tUYXIKICAgICBXZWJDb3JlOjpXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFyZWQoKS5zaG93
UGxheWJhY2tUYXJnZXRQaWNrZXIoKnRoaXMsIGNvbnRleHRJZCwgV2ViQ29yZTo6SW50UmVjdChy
ZWN0KSwgaGFzVmlkZW8sIG1fcGFnZSA/IG1fcGFnZS0+dXNlRGFya0FwcGVhcmFuY2UoKSA6IGZh
bHNlKTsKIH0KIAotdm9pZCBXZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyOjpwbGF5YmFja1Rh
cmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xp
ZW50Q29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpN
ZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCit2b2lkIFdlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXI6
OnBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6UGxheWJh
Y2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCiB7CiAgICAgV2ViQ29yZTo6V2ViTWVkaWFT
ZXNzaW9uTWFuYWdlcjo6c2hhcmVkKCkuY2xpZW50U3RhdGVEaWRDaGFuZ2UoKnRoaXMsIGNvbnRl
eHRJZCwgc3RhdGUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Vmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3
Lm1tCmluZGV4IGMyNjRhZmE4NjJmZTg5Y2ZkODgwNTc5MWZhYTIyZmU0MzM1MDk5NTcuLjZkNjk3
ZGQ4N2JkNzA2YmE5ZGE3NDM5ZjJkYjJkNWMxNWE0NGRkMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTkyNDEsNyArOTI0MSw3IEBAIC0gKHZvaWQp
X3Nob3dQbGF5YmFja1RhcmdldFBpY2tlcjooV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRD
b250ZXh0SWRlbnRpZmllCiAgICAgW3NlbGYgX2RldmljZVBpY2tlcl0tPnNob3dQbGF5YmFja1Rh
cmdldFBpY2tlcihjb250ZXh0SWQsIHJlY3RJblNjcmVlbkNvb3JkaW5hdGVzLCBoYXNWaWRlbyk7
CiB9CiAKLS0gKHZvaWQpX3BsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2U6
KFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIpY29udGV4dElk
IHN0YXRlOihXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mpc3RhdGUKKy0g
KHZvaWQpX3BsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2U6KFdlYkNvcmU6
OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIpY29udGV4dElkIHN0YXRlOihX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzKXN0YXRlCiB7CiAgICAgW3NlbGYg
X2RldmljZVBpY2tlcl0tPnBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2Uo
Y29udGV4dElkLCBzdGF0ZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYlZpZXdJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Vmlldy9XZWJWaWV3SW50ZXJuYWwuaAppbmRleCBhNDdkYTJjZjRkNzQ5NDk2MGY1YzUwOGYyMmI3
ZjE1MGEyN2Q4ZGE3Li5jY2Q4Y2Q3M2E0MWUzOWExYTczZWYxOTQxNTRmMTkyOTRkMjFlOTc5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXdJbnRlcm5h
bC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlld0ludGVybmFs
LmgKQEAgLTMzNiw3ICszMzYsNyBAQCBXZWJMYXlvdXRNaWxlc3RvbmVzIGtpdExheW91dE1pbGVz
dG9uZXMoT3B0aW9uU2V0PFdlYkNvcmU6OkxheW91dE1pbGVzdG9uZT4pOwogLSAodm9pZClfYWRk
UGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnQ6KFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50
Q29udGV4dElkZW50aWZpZXIpY29udGV4dElkOwogLSAodm9pZClfcmVtb3ZlUGxheWJhY2tUYXJn
ZXRQaWNrZXJDbGllbnQ6KFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50
aWZpZXIpY29udGV4dElkOwogLSAodm9pZClfc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyOihXZWJD
b3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyKWNvbnRleHRJZCBsb2Nh
dGlvbjooY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKWxvY2F0aW9uIGhhc1ZpZGVvOihCT09MKWhh
c1ZpZGVvOwotLSAodm9pZClfcGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5n
ZTooV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciljb250ZXh0
SWQgc3RhdGU6KFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncylzdGF0ZTsK
Ky0gKHZvaWQpX3BsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2U6KFdlYkNv
cmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIpY29udGV4dElkIHN0YXRl
OihXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzKXN0YXRlOwogLSAodm9pZClf
c2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJFbmFibGVkOihib29sKWVuYWJsZWQ7CiAt
ICh2b2lkKV9zZXRNb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck5hbWU6KE5TU3RyaW5nICop
bmFtZSBzdGF0ZTooV2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ6Ok1vY2tTdGF0
ZSlzdGF0ZTsKIC0gKHZvaWQpX21vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyRGlzbWlzc1Bv
cHVwOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0RvY3Vt
ZW50T3JkZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0RvY3VtZW50
T3JkZXIuY3BwCmluZGV4IDZhNDNmOTI2NDgwZGZmNDZlOWE2Mjk3M2JkYzA1ZjYyNjhjNWJhMGUu
LmYzNzYyOGNmNTgwNmMwNGVhZTA0YzIyMDc4M2RiZTM5ODBjNDgxYTIgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Eb2N1bWVudE9yZGVyLmNwcAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRG9jdW1lbnRPcmRlci5jcHAKQEAgLTI1
LDcgKzI1LDcgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogCi0jaW5jbHVkZSA8V2ViQ29yZS9E
b2N1bWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnRJbmxpbmVzLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9IVE1MQm9keUVsZW1lbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0hUTUxEaXZF
bGVtZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9IVE1MSHRtbEVsZW1lbnQuaD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441107</attachid>
            <date>2021-10-13 10:53:47 -0700</date>
            <delta_ts>2021-10-14 10:52:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231634-20211013105346.patch</filename>
            <type>text/plain</type>
            <size>156316</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MDc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGRhY2I4ZjRmOTkxNzAx
MDNmOWUyNzdkNzIyNDI0YzU0ZGRjNGQ0Yy4uNWM2NzljOWRiNDdiM2U3YjNkMDFmMGY2MDUwODA4
NDFkMWIxZjkyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2MyBAQAorMjAyMS0xMC0xMiAgSmVy
IE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBbQnVpbGQtdGltZSBwZXJm
XSBGb3J3YXJkLWRlY2xhcmUgbW9yZSB0aGluZ3MgaW4gU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5o
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE2MzQK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIHRo
ZSBTZXR0aW5nczo6VmFsdWVzIHN0cnVjdCBvdXRzaWRlIG9mIFNldHRpbmdzIHNvIHRoYXQgaXQg
Y2FuIGJlIGZvcndhcmQgZGVjbGFyZWQuCisKKyAgICAgICAgQWRkIHRoZSBmb2xsb3dpbmcgaGVh
ZGVycyB0byBjb250YWluIGlubGluZWQgZGVmaW5pdGlvbnMgb2YgY2xhc3MgbWV0aG9kczoKKyAg
ICAgICAgLSBTY3JpcHRFeGVjdXRpb25Db250ZXh0SW5saW5lcy5oCisgICAgICAgIC0gSURCQWN0
aXZlRE9NT2JqZWN0SW5saW5lcy5oCisKKyAgICAgICAgTW92ZSBpbmxpbmVkIG1ldGhvZHMgaW50
byB0aGUgbmV3bHkgY3JlYXRlZCBJbmxpbmVzLmggaGVhZGVycyBhbmQgZGVjb3JhdGUgdGhlIGRl
Y2xhcmF0aW9ucworICAgICAgICBvZiB0aG9zZSBtZXRob2RzIHdpdGggYGlubGluZWAuCisKKyAg
ICAgICAgRm9yd2FyZCBkZWNsYXJlIGFsbCB0eXBlcyB1c2VkIGJ5IG1ldGhvZHMgaW4gU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCBhbmQgcmVtb3ZlIHRob3NlIGhlYWRlcnMsCisgICAgICAgIGFuZCBy
ZS1hZGQgdGhvc2UgaGVhZGVycyBkaXJlY3RseSB0byB0aGUgc291cmNlIGZpbGVzIHdoaWNoIHJl
cXVpcmUgdGhlbS4KKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICogTW9kdWxl
cy9iZWFjb24vTmF2aWdhdG9yQmVhY29uLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL2NhY2hlL0RP
TUNhY2hlRW5naW5lLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL2NhY2hlL0RPTUNhY2hlU3RvcmFn
ZS5jcHA6CisgICAgICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuY3BwOgorICAgICAg
ICAqIE1vZHVsZXMvZ2FtZXBhZC9OYXZpZ2F0b3JHYW1lcGFkLmNwcDoKKyAgICAgICAgKiBNb2R1
bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4
ZWRkYi9JREJBY3RpdmVET01PYmplY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkFjdGl2ZURP
TU9iamVjdDo6b3JpZ2luVGhyZWFkIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OklEQkFjdGl2ZURPTU9iamVjdDo6cGVyZm9ybUNhbGxiYWNrT25PcmlnaW5UaHJlYWQpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6SURCQWN0aXZlRE9NT2JqZWN0OjpjYWxsRnVuY3Rpb25P
bk9yaWdpblRocmVhZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpJREJBY3RpdmVET01P
YmplY3Q6OklEQkFjdGl2ZURPTU9iamVjdCk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy9p
bmRleGVkZGIvY2xpZW50L1RyYW5zYWN0aW9uT3BlcmF0aW9uLmg6CisgICAgICAgICogTW9kdWxl
cy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
c291cmNlL01lZGlhU291cmNlLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtVHJhY2suY3BwOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0
YUNoYW5uZWwuY3BwOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVx
dWVzdC5jcHA6CisgICAgICAgICogTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5j
cHA6CisgICAgICAgICogTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHA6
CisgICAgICAgICogTW9kdWxlcy9waWN0dXJlaW5waWN0dXJlL0hUTUxWaWRlb0VsZW1lbnRQaWN0
dXJlSW5QaWN0dXJlLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL3JlbW90ZXBsYXliYWNrL1JlbW90
ZVBsYXliYWNrLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRl
eHQuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0lJUkZpbHRlck5vZGUuY3BwOgorICAg
ICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4dC5jcHA6CisgICAgICAg
ICogTW9kdWxlcy93ZWJkYXRhYmFzZS9ET01XaW5kb3dXZWJEYXRhYmFzZS5jcHA6CisgICAgICAg
ICogTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHA6CisgICAgICAgICogTW9kdWxlcy93
ZWJkYXRhYmFzZS9EYXRhYmFzZU1hbmFnZXIuY3BwOgorICAgICAgICAqIE1vZHVsZXMvd2Vic29j
a2V0cy9XZWJTb2NrZXQuY3BwOgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2Nr
ZXRDaGFubmVsLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSU3lzdGVtLmNwcDoK
KyAgICAgICAgKiBTY3JpcHRzL1NldHRpbmdzVGVtcGxhdGVzL1NldHRpbmdzLmNwcC5lcmI6Cisg
ICAgICAgICogU2NyaXB0cy9TZXR0aW5nc1RlbXBsYXRlcy9TZXR0aW5ncy5oLmVyYjoKKyAgICAg
ICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChHZW5lcmF0ZVJ1bnRpbWVFbmFibGVDb25k
aXRpb25hbFN0cmluZyk6CisgICAgICAgICogY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVu
c2lvbnNCYWNrZW5kLmNwcDoKKyAgICAgICAgKiBjcnlwdG8vU3VidGxlQ3J5cHRvLmNwcDoKKyAg
ICAgICAgKiBjc3MvQ1NTRm9udEZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udEZh
Y2U6OkNTU0ZvbnRGYWNlKToKKyAgICAgICAgKiBjc3MvQ1NTRm9udEZhY2UuaDoKKyAgICAgICAg
KiBjc3MvQ1NTRm9udFNlbGVjdG9yLmg6CisgICAgICAgICogY3NzL0NTU0tleWZyYW1lc1J1bGUu
Y3BwOgorICAgICAgICAqIGNzcy9NZWRpYUxpc3QuY3BwOgorICAgICAgICAqIGNzcy9TdHlsZVNo
ZWV0Q29udGVudHMuY3BwOgorICAgICAgICAqIGRvbS9BY3RpdmVET01PYmplY3QuaDoKKyAgICAg
ICAgKiBkb20vRGV2aWNlTW90aW9uRXZlbnQuY3BwOgorICAgICAgICAqIGRvbS9EZXZpY2VPcmll
bnRhdGlvbkV2ZW50LmNwcDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RG9jdW1lbnQ6OnNldHRpbmdzVmFsdWVzIGNvbnN0KToKKyAgICAgICAgKiBkb20v
RG9jdW1lbnQuaDoKKyAgICAgICAgKiBkb20vRW1wdHlTY3JpcHRFeGVjdXRpb25Db250ZXh0Lmg6
CisgICAgICAgICogZG9tL0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcDoKKyAgICAgICAgKiBkb20vTG9h
ZGFibGVDbGFzc2ljU2NyaXB0LmNwcDoKKyAgICAgICAgKiBkb20vTW91c2VFdmVudC5jcHA6Cisg
ICAgICAgICogZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uaDoKKyAgICAgICAgKFdl
YkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb246OmRlbGl2ZXJ5T3B0aW9ucyBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uOjptdXRh
dGlvblR5cGVzIGNvbnN0KToKKyAgICAgICAgKiBkb20vU2NyaXB0RWxlbWVudC5jcHA6CisgICAg
ICAgICogZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwOgorICAgICAgICAqIGRvbS9TY3Jp
cHRFeGVjdXRpb25Db250ZXh0Lmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25D
b250ZXh0Ojpwb3N0Q3Jvc3NUaHJlYWRUYXNrKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmFkZFRpbWVvdXQpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6cmVtb3ZlVGltZW91dCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpmaW5kVGltZW91dCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpBZGRD
b25zb2xlTWVzc2FnZVRhc2s6OkFkZENvbnNvbGVNZXNzYWdlVGFzayk6IERlbGV0ZWQuCisgICAg
ICAgICogZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmNwcDoKKyAgICAgICAgKiBmaWxlYXBpL0Jsb2Iu
aDoKKyAgICAgICAgKiBodG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcDoKKyAgICAgICAgKiBodG1s
L0hUTUxDYW52YXNFbGVtZW50LmNwcDoKKyAgICAgICAgKiBodG1sL0hUTUxFbGVtZW50LmNwcDoK
KyAgICAgICAgKiBodG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwOgorICAgICAgICAqIGh0
bWwvSFRNTEZvcm1FbGVtZW50LmNwcDoKKyAgICAgICAgKiBodG1sL0hUTUxIdG1sRWxlbWVudC5j
cHA6CisgICAgICAgICogaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5jcHA6CisgICAgICAgICogaHRt
bC9IVE1MTGlua0VsZW1lbnQuY3BwOgorICAgICAgICAqIGh0bWwvSFRNTFBsdWdJbkVsZW1lbnQu
Y3BwOgorICAgICAgICAqIGh0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwOgorICAgICAgICAqIGh0
bWwvSFRNTFNvdXJjZUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL1RleHRGaWVsZElucHV0VHlw
ZS5jcHA6CisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFz
ZS5jcHA6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHA6
CisgICAgICAgICogaHRtbC90cmFjay9UcmFja0Jhc2UuY3BwOgorICAgICAgICAqIGluc3BlY3Rv
ci9hZ2VudHMvcGFnZS9QYWdlRGVidWdnZXJBZ2VudC5jcHA6CisgICAgICAgICogbG9hZGVyL0Ny
b3NzT3JpZ2luRW1iZWRkZXJQb2xpY3kuY3BwOgorICAgICAgICAqIGxvYWRlci9Dcm9zc09yaWdp
blByZWZsaWdodENoZWNrZXIuY3BwOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5j
cHA6CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHA6CisgICAg
ICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKiBsb2FkZXIvSW1hZ2VMb2Fk
ZXIuY3BwOgorICAgICAgICAqIGxvYWRlci9MaW5rTG9hZGVyLmNwcDoKKyAgICAgICAgKiBsb2Fk
ZXIvTWVkaWFSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgICogbG9hZGVyL01peGVkQ29udGVu
dENoZWNrZXIuY3BwOgorICAgICAgICAqIGxvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcDoK
KyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAqIGxvYWRlci9T
dWJyZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgICogbG9hZGVyL1RleHRUcmFja0xvYWRlci5j
cHA6CisgICAgICAgICogbG9hZGVyL1RocmVhZGFibGVMb2FkZXIuY3BwOgorICAgICAgICAqIGxv
YWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwOgorICAgICAgICAqIGxvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgICogcGFnZS9ET01UaW1l
ci5jcHA6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAqIHBhZ2UvRHJh
Z0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAqIHBhZ2UvRXZlbnRTb3VyY2UuY3BwOgorICAgICAg
ICAqIHBhZ2UvRnJhbWUuY3BwOgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAg
ICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAqIHBhZ2UvUG9pbnRlckxvY2tDb250cm9sbGVy
LmNwcDoKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLnlhbWw6CisgICAgICAgICogcGFnZS9jc3Av
Q29udGVudFNlY3VyaXR5UG9saWN5LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9WaWRl
b0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5tbToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5jcHA6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxp
c3RCb3guY3BwOgorICAgICAgICAqIHJlbmRlcmluZy9zaGFwZXMvU2hhcGVPdXRzaWRlSW5mby5j
cHA6CisgICAgICAgICogc3R5bGUvU3R5bGVGb250U2l6ZUZ1bmN0aW9ucy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZTo6Y29tcHV0ZWRGb250U2l6ZUZyb21TcGVjaWZpZWRTaXplKToKKyAg
ICAgICAgKFdlYkNvcmU6OlN0eWxlOjpmb250U2l6ZUZvcktleXdvcmQpOgorICAgICAgICAqIHN0
eWxlL1N0eWxlRm9udFNpemVGdW5jdGlvbnMuaDoKKyAgICAgICAgKiBzdHlsZS9TdHlsZVNjb3Bl
UnVsZVNldHMuY3BwOgorICAgICAgICAqIHN2Zy9TVkdEb2N1bWVudEV4dGVuc2lvbnMuY3BwOgor
ICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKiB0ZXN0aW5nL01vY2tQ
YWdlT3ZlcmxheUNsaWVudC5jcHA6CisgICAgICAgICogdGVzdGluZy9XZWJGYWtlWFJEZXZpY2Uu
aDoKKyAgICAgICAgKiB0ZXN0aW5nL1dlYlhSVGVzdC5oOgorICAgICAgICAqIHdvcmtlcnMvV29y
a2VyR2xvYmFsU2NvcGUuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlw
dENvbnRyb2xsZXIuY3BwOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyVGhyZWFkLmg6CisgICAg
ICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpnZW5lcmF0ZVdvcmtlclBhcmFtZXRlcnMpOgorICAgICAgICAoV2Vi
Q29yZTo6U2VydmljZVdvcmtlclRocmVhZDo6U2VydmljZVdvcmtlclRocmVhZCk6CisgICAgICAg
ICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5oOgorICAgICAg
ICAqIHdvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5oOgorICAgICAgICAqIHdvcmtsZXRzL1dv
cmtsZXRQYXJhbWV0ZXJzLmg6CisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDoKKyAg
ICAgICAgKiB4bWwvWFNMVFByb2Nlc3NvckxpYnhzbHQuY3BwOgorICAgICAgICAqIHhtbC9wYXJz
ZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcDoKKwogMjAyMS0xMC0xMCAgSmVyIE5vYmxl
ICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBbQnVpbGQtdGltZSBwZXJmXSBGb3J3
YXJkLWRlY2xhcmUgbW9yZSB0aGluZ3MgaW4gRG9jdW1lbnQuaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5k
ZXggZGQwOTMzOWFiY2IwZTZhZmFlNzJhYzRmM2MxODY4MDg5ZjU2NDBiMi4uZDAxNzVhYTcyNGM4
YTlmMTBjY2NkODA4ZjIxYmFiYWVkZTM2NDRlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
SGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC02Niw2
ICs2Niw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBNb2R1
bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRWaXNpYmlsaXR5LmgKIAogICAgIE1vZHVsZXMvaW5kZXhl
ZGRiL0lEQkFjdGl2ZURPTU9iamVjdC5oCisgICAgTW9kdWxlcy9pbmRleGVkZGIvSURCQWN0aXZl
RE9NT2JqZWN0SW5saW5lcy5oCiAgICAgTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VJZGVu
dGlmaWVyLmgKICAgICBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9u
UmVxdWVzdC5oCiAgICAgTW9kdWxlcy9pbmRleGVkZGIvSURCR2V0QWxsUmVzdWx0LmgKQEAgLTU1
MCw2ICs1NTEsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAg
ZG9tL1NjcmlwdEVsZW1lbnQuaAogICAgIGRvbS9TY3JpcHRFbGVtZW50Q2FjaGVkU2NyaXB0RmV0
Y2hlci5oCiAgICAgZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaAorICAgIGRvbS9TY3JpcHRF
eGVjdXRpb25Db250ZXh0SW5saW5lcy5oCiAgICAgZG9tL1NlY3VyaXR5Q29udGV4dC5oCiAgICAg
ZG9tL1NlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQuaAogICAgIGRvbS9TZWxlY3Rpb25SZXN0
b3JhdGlvbk1vZGUuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9iZWFjb24v
TmF2aWdhdG9yQmVhY29uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYmVhY29uL05hdmln
YXRvckJlYWNvbi5jcHAKaW5kZXggNjlkZWM1Y2I2ZmJjNWJmOWQ4YjcxOGNjZTIxMDE3YTNkYmI3
ZDk0Zi4uYjliNzQ4MTZkYmYyOThiNTRhNTVmN2M0NzhmZjk0YTllZmM0NjBhZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9iZWFjb24vTmF2aWdhdG9yQmVhY29uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2JlYWNvbi9OYXZpZ2F0b3JCZWFjb24uY3BwCkBAIC0z
Myw2ICszMyw3IEBACiAjaW5jbHVkZSAiSFRUUFBhcnNlcnMuaCIKICNpbmNsdWRlICJOYXZpZ2F0
b3IuaCIKICNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29s
ZVR5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL1VSTC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlRW5naW5lLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvRE9NQ2FjaGVFbmdpbmUuY3BwCmluZGV4
IDI1OTE0YjQwYmIyMzgzYTA3ODgwNGY4OWIxMWI0MGQ4OTcwYjQzMDYuLmJlOTcyYWFiNTJhNjlj
YTNjZjAzNzAyMTA3NGI5MDMyOTM2MTcxMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvY2FjaGUvRE9NQ2FjaGVFbmdpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvY2FjaGUvRE9NQ2FjaGVFbmdpbmUuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAi
RXhjZXB0aW9uLmgiCiAjaW5jbHVkZSAiSFRUUFBhcnNlcnMuaCIKICNpbmNsdWRlICJTY3JpcHRF
eGVjdXRpb25Db250ZXh0LmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVz
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9jYWNoZS9ET01DYWNoZVN0b3JhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9jYWNoZS9ET01DYWNoZVN0b3JhZ2UuY3BwCmluZGV4IDhhOWNiMWZjODc1ZjIzNTc3OTNhNTg2
NTBlMTFkOWUxYWY5YTI4ZDguLjlhMjQ1MDMyNjk0MDc0YmExYjU0ODdlNzZiZWNkNDliYTA4ZmJh
MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvRE9NQ2FjaGVTdG9y
YWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlU3RvcmFn
ZS5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJKU0ZldGNoUmVzcG9uc2UuaCIKICNp
bmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmln
aW4uaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNo
L0ZldGNoUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVx
dWVzdC5jcHAKaW5kZXggMDExMTA3ZGZiNmEwZGVkNmFlMjdjZGY1NzUyZTljMjEwYWQxNTVhMi4u
NzM3MDk4OGVjN2UzNGY1ZmMyNmE5MmE5NmNiMjNiY2U2N2Y3NThjNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXF1ZXN0LmNwcApAQCAtMzcsNiArMzcsNyBAQAog
I2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJTZWN1cml0eU9y
aWdpbi5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
Q29uc29sZVR5cGVzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9nYW1lcGFkL05hdmlnYXRvckdhbWVwYWQuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9nYW1lcGFkL05hdmlnYXRvckdhbWVwYWQuY3BwCmluZGV4IDc4MWYx
NmY2ODAyNjBlMzAyZWE5NjgwYTU5Y2QzYWZlZDk0MTg1NzAuLmViMDY4N2EwNTExZWE2Y2Y0Y2E2
MTAyMmRmNGJkZmJlNTg3OTgyODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Z2FtZXBhZC9OYXZpZ2F0b3JHYW1lcGFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2dhbWVwYWQvTmF2aWdhdG9yR2FtZXBhZC5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRl
ICJHYW1lcGFkUHJvdmlkZXIuaCIKICNpbmNsdWRlICJOYXZpZ2F0b3IuaCIKICNpbmNsdWRlICJQ
bGF0Zm9ybUdhbWVwYWQuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uY3BwCmluZGV4IGUyNzJlY2RlZjJhN2QwNjZhMTIx
ZWMzNjZhOTkwNmQ0YjhkYjE0YzcuLjMzMGUzZDdmNjliMzgxYzNjNTcxMzc3OWI0NTdmZjY1MDFm
NWExNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2Vv
bG9jYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2Vv
bG9jYXRpb24uY3BwCkBAIC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1
ZGUgIlJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2lu
LmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8
d3RmL0lzb01hbGxvY0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCQWN0aXZlRE9NT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJBY3RpdmVET01PYmplY3QuaAppbmRleCBlYjY4NDA4ZGM0MWI1ZmFk
MzI3YTI3Y2Q1YjAzYTUzMjIzYTlkN2UwLi41ODNiNzJmODlhNjgxY2JjYjgxNTVkMzFiZjdhNTNm
YjhjOGQ3NDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJBY3RpdmVET01PYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJBY3RpdmVET01PYmplY3QuaApAQCAtMjYsNjYgKzI2LDMwIEBACiAjcHJhZ21hIG9uY2UK
IAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgotI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQuaCIKLSNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CisKK25hbWVzcGFjZSBXVEYg
eworY2xhc3MgVGhyZWFkOworfQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIElEQkFj
dGl2ZURPTU9iamVjdCA6IHB1YmxpYyBBY3RpdmVET01PYmplY3QgeworY2xhc3MgV0VCQ09SRV9F
WFBPUlQgSURCQWN0aXZlRE9NT2JqZWN0IDogcHVibGljIEFjdGl2ZURPTU9iamVjdCB7CiBwdWJs
aWM6Ci0gICAgVGhyZWFkJiBvcmlnaW5UaHJlYWQoKSBjb25zdCB7IHJldHVybiBtX29yaWdpblRo
cmVhZC5nZXQoKTsgfQotCi0gICAgdm9pZCBjb250ZXh0RGVzdHJveWVkKCkgZmluYWwgewotICAg
ICAgICBBU1NFUlQoY2FuQ3VycmVudFRocmVhZEFjY2Vzc1RocmVhZExvY2FsRGF0YShvcmlnaW5U
aHJlYWQoKSkpOworICAgIHZpcnR1YWwgfklEQkFjdGl2ZURPTU9iamVjdCgpOworICAgIFdURjo6
VGhyZWFkJiBvcmlnaW5UaHJlYWQoKSBjb25zdCB7IHJldHVybiBtX29yaWdpblRocmVhZC5nZXQo
KTsgfQogCi0gICAgICAgIExvY2tlcjxMb2NrPiBsb2NrKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4
dExvY2spOwotICAgICAgICBBY3RpdmVET01PYmplY3Q6OmNvbnRleHREZXN0cm95ZWQoKTsKLSAg
ICB9CisgICAgdm9pZCBjb250ZXh0RGVzdHJveWVkKCkgZmluYWw7CiAKICAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBULCB0eXBlbmFtZS4uLiBQYXJhbWV0ZXJzLCB0eXBlbmFtZS4uLiBBcmd1bWVudHM+
Ci0gICAgdm9pZCBwZXJmb3JtQ2FsbGJhY2tPbk9yaWdpblRocmVhZChUJiBvYmplY3QsIHZvaWQg
KFQ6OiptZXRob2QpKFBhcmFtZXRlcnMuLi4pLCBBcmd1bWVudHMmJi4uLiBhcmd1bWVudHMpCi0g
ICAgewotICAgICAgICBBU1NFUlQoJm9yaWdpblRocmVhZCgpID09ICZvYmplY3Qub3JpZ2luVGhy
ZWFkKCkpOwotCi0gICAgICAgIGlmIChjYW5DdXJyZW50VGhyZWFkQWNjZXNzVGhyZWFkTG9jYWxE
YXRhKG9iamVjdC5vcmlnaW5UaHJlYWQoKSkpIHsKLSAgICAgICAgICAgIChvYmplY3QuKm1ldGhv
ZCkoc3RkOjpmb3J3YXJkPEFyZ3VtZW50cz4oYXJndW1lbnRzKS4uLik7Ci0gICAgICAgICAgICBy
ZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBMb2NrZXI8TG9jaz4gbG9jayhtX3NjcmlwdEV4
ZWN1dGlvbkNvbnRleHRMb2NrKTsKLQotICAgICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0ID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwotICAgICAgICBpZiAoIWNvbnRleHQp
Ci0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgY29udGV4dC0+cG9zdENyb3NzVGhyZWFk
VGFzayhvYmplY3QsIG1ldGhvZCwgYXJndW1lbnRzLi4uKTsKLSAgICB9Ci0KLSAgICB2b2lkIGNh
bGxGdW5jdGlvbk9uT3JpZ2luVGhyZWFkKFdURjo6RnVuY3Rpb248dm9pZCAoKT4mJiBmdW5jdGlv
bikKLSAgICB7Ci0gICAgICAgIGlmIChjYW5DdXJyZW50VGhyZWFkQWNjZXNzVGhyZWFkTG9jYWxE
YXRhKG9yaWdpblRocmVhZCgpKSkgewotICAgICAgICAgICAgZnVuY3Rpb24oKTsKLSAgICAgICAg
ICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIExvY2tlcjxMb2NrPiBsb2NrKG1fc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dExvY2spOwotCi0gICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIGNvbnRleHQgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7Ci0gICAgICAgIGlmICghY29u
dGV4dCkKLSAgICAgICAgICAgIHJldHVybjsKKyAgICBpbmxpbmUgdm9pZCBwZXJmb3JtQ2FsbGJh
Y2tPbk9yaWdpblRocmVhZChUJiwgdm9pZCAoVDo6Km1ldGhvZCkoUGFyYW1ldGVycy4uLiksIEFy
Z3VtZW50cyYmLi4uKTsKIAotICAgICAgICBjb250ZXh0LT5wb3N0VGFzayhXVEZNb3ZlKGZ1bmN0
aW9uKSk7Ci0gICAgfQorICAgIGlubGluZSB2b2lkIGNhbGxGdW5jdGlvbk9uT3JpZ2luVGhyZWFk
KFdURjo6RnVuY3Rpb248dm9pZCgpPiYmKTsKIAogcHJvdGVjdGVkOgotICAgIElEQkFjdGl2ZURP
TU9iamVjdChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQotICAgICAgICA6IEFjdGl2
ZURPTU9iamVjdChjb250ZXh0KQotICAgIHsKLSAgICAgICAgQVNTRVJUKGNvbnRleHQpOwotICAg
IH0KKyAgICBJREJBY3RpdmVET01PYmplY3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwogCiBw
cml2YXRlOgotICAgIFJlZjxUaHJlYWQ+IG1fb3JpZ2luVGhyZWFkIHsgVGhyZWFkOjpjdXJyZW50
KCkgfTsKKyAgICBSZWY8VGhyZWFkPiBtX29yaWdpblRocmVhZDsKICAgICBMb2NrIG1fc2NyaXB0
RXhlY3V0aW9uQ29udGV4dExvY2s7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvVHJhbnNhY3Rpb25PcGVyYXRpb24uaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9UcmFuc2FjdGlvbk9wZXJhdGlvbi5oCmlu
ZGV4IGI4Mjg0ODZjMGY0YWQzMjlhODMxYzJjZmYxYmQyYTIzNzZkYTdlMDkuLjg3NTlmNmM1YTli
NDk3YTc1OTllMGZkMDhkMTg2ZDIzZTE3YWFkNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9UcmFuc2FjdGlvbk9wZXJhdGlvbi5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9UcmFuc2FjdGlvbk9wZXJhdGlv
bi5oCkBAIC0yNSw2ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiSURCQWN0
aXZlRE9NT2JqZWN0SW5saW5lcy5oIgogI2luY2x1ZGUgIklEQlJlcXVlc3QuaCIKICNpbmNsdWRl
ICJJREJSZXF1ZXN0RGF0YS5oIgogI2luY2x1ZGUgIklEQlJlc291cmNlSWRlbnRpZmllci5oIgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNz
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lv
bi5jcHAKaW5kZXggZmFlOGUzMzBjNWJhZGJmNjExODgyNDhiNWE4ZDRiZGI5ZDU0OGRjMC4uYWZl
N2NhMGI3ZDc0YjVlMGRjOTA0NTlmZDE0NjlmOWQyMGRjOGE4NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24uY3BwCkBAIC00MSw2
ICs0MSw3IEBACiAjaW5jbHVkZSAiTmF2aWdhdG9yLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2lu
Y2x1ZGUgIlBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oIgorI2luY2x1ZGUgIlVzZXJHZXN0
dXJlSW5kaWNhdG9yLmgiCiAjaW5jbHVkZSA8d3RmL0pTT05WYWx1ZXMuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJj
ZS9NZWRpYVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01l
ZGlhU291cmNlLmNwcAppbmRleCA1OTVlNDI1NDI3ZThlYmFjOWY1YWI2YWYxMGE1NzNjMDU0NWJi
NGFiLi43ZmZkMmNkMjkwMmU4ZmEwNjgzY2I0MzRlNTQ2M2U1NjIxOWU1NTM1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcApAQCAt
NTIsNiArNTIsNyBAQAogI2luY2x1ZGUgIlRpbWVSYW5nZXMuaCIKICNpbmNsdWRlICJWaWRlb1Ry
YWNrLmgiCiAjaW5jbHVkZSAiVmlkZW9UcmFja0xpc3QuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9Db25zb2xlVHlwZXMuaD4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcAppbmRleCAxMzE3MTE5YzNhNzY3YmM2
ZmQ5Mzc4NTIwYzM4MWZjYzcxYjc1ZTM5Li5lOTNiOGU3YzVjYmJkNGZmZDU4N2RjYjdlODk2MWQz
Yzk2MWU4ZWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtVHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKQEAgLTUxLDYgKzUxLDcgQEAKICNpbmNsdWRlICJT
Y3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRl
ICJXZWJBdWRpb1NvdXJjZVByb3ZpZGVyLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29u
c29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVk
ZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQu
aD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0
YUNoYW5uZWwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRh
Q2hhbm5lbC5jcHAKaW5kZXggMmIyZDc5ZjczZjE3MmMwNTkxYmQ1ZTlhOThkY2UyODE4NGU3ZTAw
Mi4uMmU3MGFjNmM5MjA1OWM0ZTVmOWFhYzBjNGZjMTc4YjgzYzZiNmNjMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5jcHAK
QEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAj
aW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQXJyYXlC
dWZmZXJWaWV3Lmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAj
aW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvTG9jay5oPgog
I2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAKaW5kZXggODUyNWU3
ZDg4YzdjZTU1Y2M5MDExNzBmMWQ4NGJjMjA2Y2I0MWQyMi4uYjRiNDZlZmMwNGYxMWU5NTRlZTNk
ZThmN2I1M2ZiNmQxZDUzZDE4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwCkBAIC00OCw2ICs0OCw3IEBACiAj
aW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJVc2VyTWVkaWFDb250cm9sbGVyLmgiCiAj
aW5jbHVkZSAiV2luZG93RXZlbnRMb29wLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29u
c29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL1Njb3BlLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3Rp
ZmljYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlm
aWNhdGlvbi5jcHAKaW5kZXggYjYzZmQwODA1YTFiMjZjNWY3ODk0Njc1NDZjN2ExYWJhNDlkYTBh
Ny4uODg4OTA4YThhMjc5NzlhOTU0MDVkNDJkNTRmNDYyNjllNDk1Mzk1YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHAK
QEAgLTQ0LDYgKzQ0LDcgQEAKICNpbmNsdWRlICJOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJh
Y2suaCIKICNpbmNsdWRlICJXaW5kb3dFdmVudExvb3AuaCIKICNpbmNsdWRlICJXaW5kb3dGb2N1
c0FsbG93ZWRJbmRpY2F0b3IuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlw
ZXMuaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYv
SXNvTWFsbG9jSW5saW5lcy5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuY3BwCmluZGV4IGU0NGIzMWMxZTRiMDc4
YjAzMzE4YzgyMTk2YjNlZWY4NzAzMThlZDUuLjVhNmQ4NWU5OTg0YWI4Y2NkMDIyNTM4OWU3NGVi
M2JjYmM0MzQ5MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJl
cXVlc3QvUGF5bWVudFJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5
bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuY3BwCkBAIC00OCw2ICs0OCw3IEBACiAjaW5jbHVk
ZSAiUGF5bWVudFJlcXVlc3RVdGlsaXRpZXMuaCIKICNpbmNsdWRlICJQYXltZW50VmFsaWRhdGlv
bkVycm9ycy5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKKyNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9Db25zb2xlVHlwZXMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU09O
T2JqZWN0Lmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvVGhyb3dTY29wZS5oPgogI2luY2x1
ZGUgPHd0Zi9BU0NJSUNUeXBlLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3BpY3R1cmVpbnBpY3R1cmUvSFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmUuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9waWN0dXJlaW5waWN0dXJlL0hUTUxWaWRlb0VsZW1lbnRQ
aWN0dXJlSW5QaWN0dXJlLmNwcAppbmRleCBiMDA5MGZjNGU1MzQxYjg1MTQzMDE1M2RkYWM5ZjY0
NjhkNTY3M2UyLi42NWNiNmY0NGI2ZGQ1OWE3ODk0YjVjNTJjMjU2ODY2MGNmYmYyMTIzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BpY3R1cmVpbnBpY3R1cmUvSFRNTFZpZGVv
RWxlbWVudFBpY3R1cmVJblBpY3R1cmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
cGljdHVyZWlucGljdHVyZS9IVE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZS5jcHAKQEAg
LTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiUGljdHVyZUlu
UGljdHVyZVN1cHBvcnQuaCIKICNpbmNsdWRlICJQaWN0dXJlSW5QaWN0dXJlV2luZG93LmgiCisj
aW5jbHVkZSAiVXNlckdlc3R1cmVJbmRpY2F0b3IuaCIKICNpbmNsdWRlICJWaWRlb1RyYWNrTGlz
dC5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvcmVtb3RlcGxheWJhY2svUmVtb3RlUGxheWJhY2suY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9yZW1vdGVwbGF5YmFjay9SZW1vdGVQbGF5YmFjay5jcHAK
aW5kZXggNGExNTViMGE0NWFhMmQ1NjE2MTAzYTI5M2FlZTc0MjI3ZTIwY2NmNC4uM2ViMTlmNjhk
MzY1ZjA5YmY3ZmU4NThlZTI0YmY1ZmUyNmRjMzI0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9yZW1vdGVwbGF5YmFjay9SZW1vdGVQbGF5YmFjay5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9yZW1vdGVwbGF5YmFjay9SZW1vdGVQbGF5YmFjay5jcHAKQEAgLTM3
LDYgKzM3LDcgQEAKICNpbmNsdWRlICJNZWRpYUVsZW1lbnRTZXNzaW9uLmgiCiAjaW5jbHVkZSAi
TWVkaWFQbGF5YmFja1RhcmdldC5oIgogI2luY2x1ZGUgIlJlbW90ZVBsYXliYWNrQXZhaWxhYmls
aXR5Q2FsbGJhY2suaCIKKyNpbmNsdWRlICJVc2VyR2VzdHVyZUluZGljYXRvci5oIgogI2luY2x1
ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmgKaW5k
ZXggNGFmZmFjMzNlMzQyNGMzZmFiNWFhNWIyYmVkMGQ3NDQ3NjcyMmZkNS4uMjkwMDY3YWE0NTZi
NDk2ZTBkY2Q4MGFlZDFiZWRjMWMyOGM5MDVjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmgKQEAgLTIxNCw3ICsyMTQsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBwb3N0VGFzayhGdW5jdGlvbjx2b2lkKCk+JiYpOwogICAgIGJvb2wg
aXNTdG9wcGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc1N0b3BTY2hlZHVsZWQ7IH0KICAgICBjb25z
dCBTZWN1cml0eU9yaWdpbiogb3JpZ2luKCkgY29uc3Q7Ci0gICAgdm9pZCBhZGRDb25zb2xlTWVz
c2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7
CisgICAgdm9pZCBhZGRDb25zb2xlTWVzc2FnZShKU0M6Ok1lc3NhZ2VTb3VyY2UsIEpTQzo6TWVz
c2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOwogCiAgICAgdmlydHVhbCB2b2lkIGxh
enlJbml0aWFsaXplKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vSUlSRmlsdGVyTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0lJUkZpbHRlck5vZGUuY3BwCmluZGV4IDBlZDZlNjE3OWMwNGJhOTAzNDYxODM2ZDk0ZmU5NmFk
YjAwYjdlYjMuLjNlNjliNmYyZDMyMTgxZjAzNmNiMmY3ZTIyMDQ0NDkwNzlhYTA1ZDIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vSUlSRmlsdGVyTm9kZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9JSVJGaWx0ZXJOb2RlLmNwcApA
QCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkJhc2VBdWRpb0NvbnRleHQuaCIKICNpbmNsdWRl
ICJJSVJGaWx0ZXIuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL0lzb01h
bGxvY0lubGluZXMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9Db250ZXh0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4dC5jcHAKaW5kZXgg
ZGU1MjRkMmY0ZjQ5MDgxMzg2ZDFlYzNmOGVjZDIyZjdmNmVkOGUwMy4uYmZhZDZiN2U1MDA3MjY5
MTU4NjkwMzYzY2I3Njk2ZWRmZjI1ZTY4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9Db250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQuY3BwCkBAIC0zNSw2ICszNSw3
IEBACiAjaW5jbHVkZSAiSlNBdWRpb0J1ZmZlci5oIgogI2luY2x1ZGUgIk9mZmxpbmVBdWRpb0Nv
bXBsZXRpb25FdmVudC5oIgogI2luY2x1ZGUgIk9mZmxpbmVBdWRpb0NvbnRleHRPcHRpb25zLmgi
CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8d3Rm
L0lzb01hbGxvY0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvU2NvcGUuaD4KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9ET01XaW5kb3dXZWJEYXRhYmFz
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RPTVdpbmRvd1dlYkRh
dGFiYXNlLmNwcAppbmRleCA4YWMyYWQ2YWY1ZTRhM2JmZjg0YzI2NzZjMGUyNGU2YmJjMmYzYjVj
Li4wYmVlYmNhMmNkYjljMmRhOTZlY2JlYjcyYzc0M2EzYmMyMDc3ODM3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RPTVdpbmRvd1dlYkRhdGFiYXNlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RPTVdpbmRvd1dlYkRh
dGFiYXNlLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkRhdGFiYXNlTWFuYWdlci5o
IgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKKyNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0Rh
dGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2Uu
Y3BwCmluZGV4IDc3ZmZkOTMxOTdkNmUyM2JlMjAxMTBhM2UzYjkyNWU3OTdjYTJlZmYuLjJkODVi
ZDM5ZGE2NWI0MThjOGZkYWIzY2M1NmZlMjE1YWNiY2EwNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwCkBAIC01Myw2ICs1Myw3IEBACiAj
aW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJWb2lkQ2FsbGJhY2suaCIKICNp
bmNsdWRlICJXaW5kb3dFdmVudExvb3AuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25z
b2xlVHlwZXMuaD4KICNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRl
c3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VNYW5hZ2VyLmNwcAppbmRleCA5YWYw
MjNhMjBkMjNiMDViN2M4ZWU0OTQ2NTU3YWI1NmMyMjIyMzM4Li4zNzM5NTlmY2JkN2JhMzU1ODM2
OWFhNGY1ZmU5MWMyNGMyZjU0YTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmRhdGFiYXNlL0RhdGFiYXNlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZU1hbmFnZXIuY3BwCkBAIC0zOSw2ICszOSw3IEBACiAj
aW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbkRhdGEu
aCIKICNpbmNsdWRlICJXaW5kb3dFdmVudExvb3AuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9Db25zb2xlVHlwZXMuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJz
b2NrZXRzL1dlYlNvY2tldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMv
V2ViU29ja2V0LmNwcAppbmRleCA2OTQwMWEzMjgwODEzNDdhZTZjYTIzZGE2MjBiODhiODc4ZGYx
NGVlLi42ODhlNzE3NjQ3YTI0MTdiNjc2ODZkMDZhY2ZlM2ZhYjViODAwNjIyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcApAQCAtNTgsNiAr
NTgsNyBAQAogI2luY2x1ZGUgIldvcmtlclRocmVhZC5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL0FycmF5QnVmZmVyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQXJyYXlCdWZmZXJW
aWV3Lmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVk
ZSA8SmF2YVNjcmlwdENvcmUvU2NyaXB0Q2FsbFN0YWNrLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hT
ZXQuaD4KICNpbmNsdWRlIDx3dGYvSGV4TnVtYmVyLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKaW5kZXggZjVkYzZl
NzdhYWE0ZjBkZWY2NzY4YWYyN2NjM2NjNDkwMzY4MGU0My4uM2Y2YTczZjc4MzFlNWI0ZTdjN2Zi
YzUxNTQxMWE5MWYyZWFiM2JjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcApAQCAtNTQsNiArNTQsNyBAQAogI2lu
Y2x1ZGUgIldlYlNvY2tldENoYW5uZWxDbGllbnQuaCIKICNpbmNsdWRlICJXZWJTb2NrZXRIYW5k
c2hha2UuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9BcnJheUJ1ZmZlci5oPgorI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9GYXN0TWFs
bG9jLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU3lzdGVtLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2VieHIvV2ViWFJTeXN0ZW0uY3BwCmluZGV4IDY3NTkzMmQzOTM0YjIzN2FkYjQx
ZjU4YjE4NzE4Y2NmMzM5NjliOWIuLjVmY2UwZDkxOWZmOTQxZjQyMDNjNzhiNGYxMzY3MzJjZTE5
YTgxOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJTeXN0
ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJTeXN0ZW0uY3Bw
CkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAiUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJh
Y2suaCIKICNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiU2Vj
dXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlVzZXJHZXN0
dXJlSW5kaWNhdG9yLmgiCiAjaW5jbHVkZSAiV2ViWFJTZXNzaW9uLmgiCiAjaW5jbHVkZSAiWFJS
ZWZlcmVuY2VTcGFjZVR5cGUuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NjcmlwdHMv
U2V0dGluZ3NUZW1wbGF0ZXMvU2V0dGluZ3MuY3BwLmVyYiBiL1NvdXJjZS9XZWJDb3JlL1Njcmlw
dHMvU2V0dGluZ3NUZW1wbGF0ZXMvU2V0dGluZ3MuY3BwLmVyYgppbmRleCA3ZTkxZDM1YzM5YmU0
NjIwYjczNGRjNjc0ZjJiMWFmNjE3YmY4MzVkLi4xMGY0NjIxYWNlMTIzNzVmMjBiODNmZWVjMzMy
NjM5MGJiOWMxMjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9TY3JpcHRzL1NldHRpbmdz
VGVtcGxhdGVzL1NldHRpbmdzLmNwcC5lcmIKKysrIGIvU291cmNlL1dlYkNvcmUvU2NyaXB0cy9T
ZXR0aW5nc1RlbXBsYXRlcy9TZXR0aW5ncy5jcHAuZXJiCkBAIC03NCw3ICs3NCw3IEBAIFNldHRp
bmdzOjpTZXR0aW5ncyhQYWdlKiBwYWdlKQogICAgIG1fcGFnZSA9IHBhZ2U7CiB9CiAKLXZvaWQg
U2V0dGluZ3M6OlZhbHVlczo6aW5pdGlhbGl6ZSgpCit2b2lkIFNldHRpbmdzVmFsdWVzOjppbml0
aWFsaXplKCkKIHsKIDwlLSBmb3IgQGNvbmRpdGlvbiBpbiBAYWxsU2V0dGluZ3NTZXQuY29uZGl0
aW9ucyBkbyAtJT4KIDwlLSBpZiBAY29uZGl0aW9uLm5vbkJvb2xTZXR0aW5nc05lZWRpbmdJbXBs
ZW1lbnRhdGlvbi5sZW5ndGggIT0gMCAtJT4KQEAgLTEwNCw3ICsxMDQsNyBAQCB2b2lkIFNldHRp
bmdzOjpWYWx1ZXM6OmluaXRpYWxpemUoKQogPCUtIGVuZCAtJT4KIH0KIAotU2V0dGluZ3M6OlZh
bHVlcyBTZXR0aW5nczo6VmFsdWVzOjppc29sYXRlZENvcHkoKSBjb25zdAorU2V0dGluZ3NWYWx1
ZXMgU2V0dGluZ3NWYWx1ZXM6Omlzb2xhdGVkQ29weSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHsK
IDwlLSBmb3IgQHNldHRpbmcgaW4gQGFsbFNldHRpbmdzU2V0Lmluc3BlY3Rvck92ZXJyaWRlU2V0
dGluZ3MgZG8gLSU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9TY3JpcHRzL1NldHRpbmdz
VGVtcGxhdGVzL1NldHRpbmdzLmguZXJiIGIvU291cmNlL1dlYkNvcmUvU2NyaXB0cy9TZXR0aW5n
c1RlbXBsYXRlcy9TZXR0aW5ncy5oLmVyYgppbmRleCA2ODJhZGY3Mjg5MjA2NzAyN2RiMzFhMTJk
ZTIwNzU1ZTZkZTFhMWNhLi4yOTU2MWQxOGMyOTIyOTM1ZmE2Yzc0YTZkZDZjOGE1ODJkMzViYTNm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9TY3JpcHRzL1NldHRpbmdzVGVtcGxhdGVzL1Nl
dHRpbmdzLmguZXJiCisrKyBiL1NvdXJjZS9XZWJDb3JlL1NjcmlwdHMvU2V0dGluZ3NUZW1wbGF0
ZXMvU2V0dGluZ3MuaC5lcmIKQEAgLTM0LDYgKzM0LDQ0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgUGFnZTsKIAorc3RydWN0IFNldHRpbmdzVmFsdWVzIHsKKyAgICB2b2lkIGluaXRp
YWxpemUoKTsKKyAgICBTZXR0aW5nc1ZhbHVlcyBpc29sYXRlZENvcHkoKSBjb25zdDsKKworPCUt
IGZvciBAc2V0dGluZyBpbiBAYWxsU2V0dGluZ3NTZXQuaW5zcGVjdG9yT3ZlcnJpZGVTZXR0aW5n
cyBkbyAtJT4KKyAgICBzdGQ6Om9wdGlvbmFsPDwlPSBAc2V0dGluZy50eXBlICU+PiA8JT0gQHNl
dHRpbmcubmFtZSAlPkluc3BlY3Rvck92ZXJyaWRlOworPCUtIGVuZCAtJT4KKworICAgIEZvbnRH
ZW5lcmljRmFtaWxpZXMgZm9udEdlbmVyaWNGYW1pbGllczsKKzwlLSBmb3IgQGNvbmRpdGlvbiBp
biBAYWxsU2V0dGluZ3NTZXQuY29uZGl0aW9ucyBkbyAtJT4KKzwlLSBpZiBAY29uZGl0aW9uLm5v
bkJvb2xTZXR0aW5nc05lZWRpbmdJbXBsZW1lbnRhdGlvbi5sZW5ndGggIT0gMCAtJT4KKzwlLSBp
ZiBAY29uZGl0aW9uLmNvbmRpdGlvbiAtJT4KKyNpZiA8JT0gQGNvbmRpdGlvbi5jb25kaXRpb24g
JT4KKzwlLSBlbmQgLSU+Cis8JS0gZm9yIEBzZXR0aW5nIGluIEBjb25kaXRpb24ubm9uQm9vbFNl
dHRpbmdzTmVlZGluZ0ltcGxlbWVudGF0aW9uIC0lPgorICAgIDwlPSBAc2V0dGluZy50eXBlICU+
IDwlPSBAc2V0dGluZy5uYW1lICU+OworPCUtIGVuZCAtJT4KKzwlLSBpZiBAY29uZGl0aW9uLmNv
bmRpdGlvbiAtJT4KKyNlbmRpZgorPCUtIGVuZCAtJT4KKzwlLSBlbmQgLSU+Cis8JS0gZW5kIC0l
PgorPCUtIGZvciBAY29uZGl0aW9uIGluIEBhbGxTZXR0aW5nc1NldC5jb25kaXRpb25zIGRvIC0l
PgorPCUtIGlmIEBjb25kaXRpb24uc2V0dGluZ3NOZWVkaW5nSW1wbGVtZW50YXRpb24ubGVuZ3Ro
ICE9IDAgLSU+CisgICAgPCUtIGlmIEBjb25kaXRpb24uY29uZGl0aW9uIC0lPgorI2lmIDwlPSBA
Y29uZGl0aW9uLmNvbmRpdGlvbiAlPgorICAgIDwlLSBlbmQgLSU+CisgICAgPCUtIGZvciBAc2V0
dGluZyBpbiBAY29uZGl0aW9uLmJvb2xTZXR0aW5nc05lZWRpbmdJbXBsZW1lbnRhdGlvbiAtJT4K
KyAgICA8JT0gQHNldHRpbmcudHlwZSAlPiA8JT0gQHNldHRpbmcubmFtZSAlPiA6IDE7CisgICAg
PCUtIGVuZCAtJT4KKyAgICA8JS0gaWYgQGNvbmRpdGlvbi5jb25kaXRpb24gLSU+CisjZW5kaWYK
KyAgICA8JS0gZW5kIC0lPgorPCUtIGVuZCAtJT4KKzwlLSBlbmQgLSU+Cit9OworCisKIGNsYXNz
IFNldHRpbmdzIDogcHVibGljIFNldHRpbmdzQmFzZSwgcHVibGljIFJlZkNvdW50ZWQ8U2V0dGlu
Z3M+IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShTZXR0aW5ncyk7IFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOwogcHVibGljOgpAQCAtNzEsNDggKzEwOSwxMiBAQCBwdWJsaWM6CiAgICAgRm9u
dEdlbmVyaWNGYW1pbGllcyYgZm9udEdlbmVyaWNGYW1pbGllcygpIGZpbmFsIHsgcmV0dXJuIG1f
dmFsdWVzLmZvbnRHZW5lcmljRmFtaWxpZXM7IH0KICAgICBjb25zdCBGb250R2VuZXJpY0ZhbWls
aWVzJiBmb250R2VuZXJpY0ZhbWlsaWVzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV92YWx1ZXMu
Zm9udEdlbmVyaWNGYW1pbGllczsgfQogCi0gICAgc3RydWN0IFZhbHVlcyB7Ci0gICAgICAgIHZv
aWQgaW5pdGlhbGl6ZSgpOwotICAgICAgICBWYWx1ZXMgaXNvbGF0ZWRDb3B5KCkgY29uc3Q7Ci0K
LTwlLSBmb3IgQHNldHRpbmcgaW4gQGFsbFNldHRpbmdzU2V0Lmluc3BlY3Rvck92ZXJyaWRlU2V0
dGluZ3MgZG8gLSU+Ci0gICAgICAgIHN0ZDo6b3B0aW9uYWw8PCU9IEBzZXR0aW5nLnR5cGUgJT4+
IDwlPSBAc2V0dGluZy5uYW1lICU+SW5zcGVjdG9yT3ZlcnJpZGU7Ci08JS0gZW5kIC0lPgotCi0g
ICAgICAgIEZvbnRHZW5lcmljRmFtaWxpZXMgZm9udEdlbmVyaWNGYW1pbGllczsKLTwlLSBmb3Ig
QGNvbmRpdGlvbiBpbiBAYWxsU2V0dGluZ3NTZXQuY29uZGl0aW9ucyBkbyAtJT4KLTwlLSBpZiBA
Y29uZGl0aW9uLm5vbkJvb2xTZXR0aW5nc05lZWRpbmdJbXBsZW1lbnRhdGlvbi5sZW5ndGggIT0g
MCAtJT4KLTwlLSBpZiBAY29uZGl0aW9uLmNvbmRpdGlvbiAtJT4KLSNpZiA8JT0gQGNvbmRpdGlv
bi5jb25kaXRpb24gJT4KLTwlLSBlbmQgLSU+Ci08JS0gZm9yIEBzZXR0aW5nIGluIEBjb25kaXRp
b24ubm9uQm9vbFNldHRpbmdzTmVlZGluZ0ltcGxlbWVudGF0aW9uIC0lPgotICAgICAgICA8JT0g
QHNldHRpbmcudHlwZSAlPiA8JT0gQHNldHRpbmcubmFtZSAlPjsKLTwlLSBlbmQgLSU+Ci08JS0g
aWYgQGNvbmRpdGlvbi5jb25kaXRpb24gLSU+Ci0jZW5kaWYKLTwlLSBlbmQgLSU+Ci08JS0gZW5k
IC0lPgotPCUtIGVuZCAtJT4KLTwlLSBmb3IgQGNvbmRpdGlvbiBpbiBAYWxsU2V0dGluZ3NTZXQu
Y29uZGl0aW9ucyBkbyAtJT4KLSAgICA8JS0gaWYgQGNvbmRpdGlvbi5zZXR0aW5nc05lZWRpbmdJ
bXBsZW1lbnRhdGlvbi5sZW5ndGggIT0gMCAtJT4KLSAgICAgICAgPCUtIGlmIEBjb25kaXRpb24u
Y29uZGl0aW9uIC0lPgotI2lmIDwlPSBAY29uZGl0aW9uLmNvbmRpdGlvbiAlPgotICAgICAgICA8
JS0gZW5kIC0lPgotICAgICAgICA8JS0gZm9yIEBzZXR0aW5nIGluIEBjb25kaXRpb24uYm9vbFNl
dHRpbmdzTmVlZGluZ0ltcGxlbWVudGF0aW9uIC0lPgotICAgICAgICA8JT0gQHNldHRpbmcudHlw
ZSAlPiA8JT0gQHNldHRpbmcubmFtZSAlPiA6IDE7Ci0gICAgICAgIDwlLSBlbmQgLSU+Ci0gICAg
ICAgIDwlLSBpZiBAY29uZGl0aW9uLmNvbmRpdGlvbiAtJT4KLSNlbmRpZgotICAgICAgICA8JS0g
ZW5kIC0lPgotICAgIDwlLSBlbmQgLSU+Ci08JS0gZW5kIC0lPgotICAgIH07Ci0gICAgY29uc3Qg
VmFsdWVzJiB2YWx1ZXMoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlczsgfQorICAgIGNvbnN0IFNl
dHRpbmdzVmFsdWVzJiB2YWx1ZXMoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlczsgfQogCiBwcml2
YXRlOgogICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IFNldHRpbmdzKFBhZ2UqKTsKIAotICAg
IFZhbHVlcyBtX3ZhbHVlczsKKyAgICBTZXR0aW5nc1ZhbHVlcyBtX3ZhbHVlczsKIH07CiAKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUv
U291cmNlcy50eHQKaW5kZXggNTI4ZWNlYjFkMzkyM2EwMTRkN2YxNTE1OWM2YjdmMzUzZmIzNDlm
Yi4uMmRjMWQyYWE2MmVlNTdhMjJjMDlmZmZjMmU0YWQ2YzQ3NzM1MDgzMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50
eHQKQEAgLTcyLDYgKzcyLDcgQEAgTW9kdWxlcy9oaWdobGlnaHQvQXBwSGlnaGxpZ2h0UmFuZ2VE
YXRhLmNwcAogTW9kdWxlcy9oaWdobGlnaHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKIE1vZHVs
ZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJlZ2lzdGVyLmNwcAogTW9kdWxlcy9oaWdobGlnaHQvSGln
aGxpZ2h0LmNwcAorTW9kdWxlcy9pbmRleGVkZGIvSURCQWN0aXZlRE9NT2JqZWN0LmNwcAogTW9k
dWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcAogTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29y
V2l0aFZhbHVlLmNwcAogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3BwCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYjVh
NGI0ZDZiNzAyNDczMDc1ZjI5OGYzOWFjMzk2NDU4YjI3Y2NlYS4uYjEzMjU2ZTI3NGM3YTM2OTY0
N2Q2ZjljNWQ3OTU3Nzc5Y2NmMWY4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDU0NCw2ICs0NTQ0LDggQEAKIAkJQ0RFQTdD
ODQxMjc2MjMwNDAwQjg0NkREIC8qIFJlbmRlckZ1bGxTY3JlZW4uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERUE3QzgyMTI3NjIzMDQwMEI4NDZERCAv
KiBSZW5kZXJGdWxsU2NyZWVuLmggKi87IH07CiAJCUNERUNBODlCMUVERjQ0N0QwMERDQjA4QiAv
KiBBVkFzc2V0VHJhY2tVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IENERUNBODk5MUVERjQ0N0QwMERDQjA4QiAvKiBBVkFzc2V0VHJhY2tV
dGlsaXRpZXMuaCAqLzsgfTsKIAkJQ0RFRDFDM0MyNENEMzA1NzAwOTM0RTEyIC8qIFZQOVV0aWxp
dGllc0NvY29hLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0Q2RkU1QjgyNEJDRTY0NTAwOUZDREE0IC8qIFZQOVV0aWxpdGllc0NvY29hLm1tICovOyB9
OworCQlDREVEOUNDNDI3MTRDQUVFMDBFODhDQzMgLyogU2NyaXB0RXhlY3V0aW9uQ29udGV4dElu
bGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENE
RUQ5Q0MzMjcxNENBRUUwMEU4OENDMyAvKiBTY3JpcHRFeGVjdXRpb25Db250ZXh0SW5saW5lcy5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUNERUQ5
Q0NBMjcxNTYzMjMwMEU4OENDMyAvKiBJREJBY3RpdmVET01PYmplY3RJbmxpbmVzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREVEOUNDOTI3MTU2MzIz
MDBFODhDQzMgLyogSURCQWN0aXZlRE9NT2JqZWN0SW5saW5lcy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNERUY0RkQ3MTdFODVDOEYwMEFFRTI0
QiAvKiBHcmlkTGVuZ3RoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDREVGNEZENjE3RTg1QzhGMDBBRUUyNEIgLyogR3JpZExlbmd0aC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNERUZBMjI4MUU3NjY5
RTgwMDBBRTk5QyAvKiBQbGF0Zm9ybUF1ZGlvRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFNjY3QTExRTRCQkE0RDAwRTgxNTRBIC8qIFBsYXRm
b3JtQXVkaW9EYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJQ0RFRkRBMEIyNzEyMjYzODAwNTU1OUE3IC8qIERvY3VtZW50SW5saW5lcy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFRkRBMDkyNzEy
MjYzODAwNTU1OUE3IC8qIERvY3VtZW50SW5saW5lcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xNTQzOCw2ICsxNTQ0MCw5IEBACiAJCUNERUIz
RDczMjRDNDFBNkUwMDFGQkVFRiAvKiBTb3VyY2VCdWZmZXJQYXJzZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU291cmNlQnVmZmVyUGFyc2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNE
RUNBODk4MUVERjQ0N0QwMERDQjA4QiAvKiBBVkFzc2V0VHJhY2tVdGlsaXRpZXMubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBBVkFzc2V0VHJhY2tVdGlsaXRpZXMubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUNERUNBODk5MUVERjQ0N0QwMERDQjA4QiAvKiBBVkFzc2V0VHJhY2tV
dGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVZBc3NldFRyYWNrVXRpbGl0aWVzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNERUQ5Q0MzMjcxNENBRUUwMEU4OENDMyAvKiBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0SW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHRFeGVjdXRp
b25Db250ZXh0SW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREVEOUND
OTI3MTU2MzIzMDBFODhDQzMgLyogSURCQWN0aXZlRE9NT2JqZWN0SW5saW5lcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBJREJBY3RpdmVET01PYmplY3RJbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUNERUQ5Q0NDMjcxNTYzQUQwMEU4OENDMyAvKiBJREJBY3RpdmVET01PYmplY3Qu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSURCQWN0aXZlRE9NT2JqZWN0LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RFRTM5MzYxNzk3NDI1OTAwMUQ3NTgwIC8qIFB1YmxpY1VS
TE1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHVibGlj
VVJMTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERUUzOTM4MTc5
NzQyNzQwMDFENzU4MCAvKiBVUkxSZWdpc3RyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVUkxSZWdpc3Ry
eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREVGNEZENjE3RTg1QzhGMDBBRUUy
NEIgLyogR3JpZExlbmd0aC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHcmlk
TGVuZ3RoLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNDQ3MCw3ICsyNDQ3NSw5
IEBACiAJCQkJNTEwMzEwNDIxQkE4QzY0QzAwMzMyOUMwIC8qIGNsaWVudCAqLywKIAkJCQk1MTBB
NThFRTFCQUI3MUUwMDBDMTkyODIgLyogc2VydmVyICovLAogCQkJCTUxMEE1OEUxMUJBQTQwOTgw
MEMxOTI4MiAvKiBzaGFyZWQgKi8sCisJCQkJQ0RFRDlDQ0MyNzE1NjNBRDAwRTg4Q0MzIC8qIElE
QkFjdGl2ZURPTU9iamVjdC5jcHAgKi8sCiAJCQkJNTE3MTRFQTcxQ0Y0REU4NzAwNDcyM0M0IC8q
IElEQkFjdGl2ZURPTU9iamVjdC5oICovLAorCQkJCUNERUQ5Q0M5MjcxNTYzMjMwMEU4OENDMyAv
KiBJREJBY3RpdmVET01PYmplY3RJbmxpbmVzLmggKi8sCiAJCQkJNTE2NDVCNTQxQjlGODhFODAw
Rjc4OUNFIC8qIElEQkN1cnNvci5jcHAgKi8sCiAJCQkJNTE2NDVCNDExQjlGODg5QjAwRjc4OUNF
IC8qIElEQkN1cnNvci5oICovLAogCQkJCTUxRDcxOTc3MTgxMTA2REYwMDE2REM1MSAvKiBJREJD
dXJzb3IuaWRsICovLApAQCAtMzA4NjMsNiArMzA4NzAsNyBAQAogCQkJCUUzRTRFMkE2MUUzQjE2
RkMwMDIzQkI4QSAvKiBTY3JpcHRFbGVtZW50Q2FjaGVkU2NyaXB0RmV0Y2hlci5oICovLAogCQkJ
CUUxMUM5REFGMEVCMzY5OTUwMEU0MDlEQiAvKiBTY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcCAq
LywKIAkJCQlFMTFDOUQ5QTBFQjM2ODEyMDBFNDA5REIgLyogU2NyaXB0RXhlY3V0aW9uQ29udGV4
dC5oICovLAorCQkJCUNERUQ5Q0MzMjcxNENBRUUwMEU4OENDMyAvKiBTY3JpcHRFeGVjdXRpb25D
b250ZXh0SW5saW5lcy5oICovLAogCQkJCThBNDEzQURGMTIwN0JCQTUwMDgyMDE2RSAvKiBTY3Jp
cHRSdW5uZXIuY3BwICovLAogCQkJCThBNDEzQURFMTIwN0JCQTUwMDgyMDE2RSAvKiBTY3JpcHRS
dW5uZXIuaCAqLywKIAkJCQk5NzZGMzZFODE0Njg2MjI1MDA1RTkzQjQgLyogU2VjdXJpdHlDb250
ZXh0LmNwcCAqLywKQEAgLTMzMDQ4LDYgKzMzMDU2LDcgQEAKIAkJCQlCMjc1MzU2RTBCMDUzODE0
MDAyQ0U2NEYgLyogSWNvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEzRjE0NTQwQUI2MzRDNDAw
MDk0RERGIC8qIEljb25Mb2FkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNzE0RUE4MUNGNEU0
QjEwMDQ3MjNDNCAvKiBJREJBY3RpdmVET01PYmplY3QuaCBpbiBIZWFkZXJzICovLAorCQkJCUNE
RUQ5Q0NBMjcxNTYzMjMwMEU4OENDMyAvKiBJREJBY3RpdmVET01PYmplY3RJbmxpbmVzLmggaW4g
SGVhZGVycyAqLywKIAkJCQk1MUJBNEFDQzFCQkM1QkREMDBERjNENkQgLyogSURCQmFja2luZ1N0
b3JlLmggaW4gSGVhZGVycyAqLywKIAkJCQlDNTg1QTY2MzExRDRGQUM1MDA0QzNFNEIgLyogSURC
QmluZGluZ1V0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE3QjI1QUExQ0M4MkIyQTAw
NjFDMDExIC8qIElEQkNvbm5lY3Rpb25Qcm94eS5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNTIyMyw2
ICszNTIzMiw3IEBACiAJCQkJRTNFNEUyQTgxRTNCMTcxMDAwMjNCQjhBIC8qIFNjcmlwdEVsZW1l
bnRDYWNoZWRTY3JpcHRGZXRjaGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTFDOUQ5QjBFQjM2
ODEyMDBFNDA5REIgLyogU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNDExMjIzQkEyNjAyNDRGRTAwQjBBMEI2IC8qIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVu
dGlmaWVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlDREVEOUNDNDI3MTRDQUVFMDBFODhDQzMgLyog
U2NyaXB0RXhlY3V0aW9uQ29udGV4dElubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3MkQz
RTU1MjE2NTc4QUUwMEM1RTAyMSAvKiBTY3JpcHRNb2R1bGVMb2FkZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCUZEMzE2MDM2MTJCMDI2NzYwMEMxQTM1OSAvKiBTY3JpcHRQcm9jZXNzb3JOb2RlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk4QTQxM0FFMDEyMDdCQkE1MDA4MjAxNkUgLyogU2NyaXB0UnVu
bmVyLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NV2luZG93Q3VzdG9tLmNwcAppbmRleCA4NTkyNGE0ZjRjMTI2NDFmZmE2ZjMyNjkwZmZhMDM0
NTg5ODc4NTVhLi4xMmNmNTgwZDRlYWFlYzNjNGFlNjFkYjNjNWQwM2Q3N2MwYzE2ZTQwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCkBA
IC00Nyw2ICs0Nyw3IEBACiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJXZWJDb3Jl
SlNDbGllbnREYXRhLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQnVpbHRpbk5hbWVzLmg+
CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvSGVhcEFuYWx5emVyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW50
ZXJuYWxGdW5jdGlvbi5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lubGluZXMuaD4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKaW5k
ZXggYTQzYWVlMDQ4ZjRiYzg1MDQ4Njg5ZWNmMTcxMDhjYmQ4NTE5YjZiYS4uOWRmMzI4MmJiYTkw
ZWE0YWFmODhhMGQzMTVlOTNiYjBjNjJhOGRkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKQEAgLTYxLDYgKzYxLDcgQEAKICNpbmNsdWRl
ICJXZWJDb3JlSlNDbGllbnREYXRhLmgiCiAjaW5jbHVkZSAibnBydW50aW1lX2ltcGwuaCIKICNp
bmNsdWRlICJydW50aW1lX3Jvb3QuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xl
VHlwZXMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9EZWJ1Z2dlci5oPgogI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL0hlYXAuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Jbml0aWFs
aXplVGhyZWFkaW5nLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9T
Y3JpcHRNb2R1bGVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0
TW9kdWxlTG9hZGVyLmNwcAppbmRleCBlODkxYmVhZTI1NDRkYzE1NzVmYTIzODk5ZDE4N2E4YTE1
ZTRhNTU3Li45Y2M1ZGU0NzZhMzc5NGUxMmQzZTE4NmZmNWIxZGYzOTNlZDkwMDNhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHAKQEAg
LTQ3LDYgKzQ3LDcgQEAKICNpbmNsdWRlICJXb3JrZXJTY3JpcHRMb2FkZXIuaCIKICNpbmNsdWRl
ICJXb3JrbGV0R2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db21wbGV0
aW9uLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVk
ZSA8SmF2YVNjcmlwdENvcmUvSlNJbnRlcm5hbFByb21pc2UuaD4KICNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9KU01vZHVsZVJlY29yZC5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTU2Ny
aXB0RmV0Y2hQYXJhbWV0ZXJzLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IGJmYTRhOTNhZWEwOTFmYjUxZGNmNzA2NDcz
NDdhMzg3YWNjOTY1MTIuLjhjMzg4NDI4OGUyOTgxYzMzMWE2ZmUxMmJmZGJmMzUwMWU5OTNjOTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckpTLnBtCkBAIC00MDAyLDYgKzQwMDIsNyBAQCBzdWIgR2VuZXJhdGVSdW50aW1lRW5hYmxlQ29u
ZGl0aW9uYWxTdHJpbmcKICAgICAgICAgYXNzZXJ0KCJNdXN0IHNwZWNpZnkgdmFsdWUgZm9yIEVu
YWJsZWRCeVNldHRpbmcuIikgaWYgJGNvbnRleHQtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0VuYWJs
ZWRCeVNldHRpbmd9IGVxICJWQUxVRV9JU19NSVNTSU5HIjsKIAogICAgICAgICBBZGRUb0ltcGxJ
bmNsdWRlcygiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIik7CisgICAgICAgIEFkZFRvSW1wbElu
Y2x1ZGVzKCJTZXR0aW5ncy5oIik7CiAKICAgICAgICAgbXkgQGZsYWdzID0gc3BsaXQoLyYvLCAk
Y29udGV4dC0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57RW5hYmxlZEJ5U2V0dGluZ30pOwogICAgICAg
ICBmb3JlYWNoIG15ICRmbGFnIChAZmxhZ3MpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25zQmFja2VuZC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uc0JhY2tlbmQuY3BwCmlu
ZGV4IDBiNDAyNzI3MDVmMTEyZDU4NWRkNWY4MjIwZGYwYjVmOGIzMTIyNDQuLmMyMGQ0MTgxNWI5
MWY0MmE4NmYzZjY4NDE1YzgxMWJkMjcxODAxMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25zQmFja2VuZC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbnNCYWNrZW5kLmNw
cApAQCAtNDUsOSArNDUsMTAgQEAKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5j
bHVkZSAiU2NyaXB0U291cmNlQ29kZS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCi0jaW5jbHVk
ZSA8d3RmL1VSTC5oPgogI2luY2x1ZGUgIlVzZXJDb250ZW50Q29udHJvbGxlci5oIgorI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRl
c3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi9VUkwuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3Ry
aW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9TdWJ0bGVDcnlwdG8uY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL1N1YnRsZUNy
eXB0by5jcHAKaW5kZXggMmZkMmYwZmQ3N2IyMTczNzZhZTZhMGE1YWI4MWVmMGViM2Y0MWEyMy4u
MWQ1OWU2NmU2ZTY1NTBkYjIwZDAwYmQ2NzcwZWUyMzgwY2MzMjM4ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3J5cHRvL1N1YnRsZUNyeXB0by5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3J5cHRvL1N1YnRsZUNyeXB0by5jcHAKQEAgLTUxLDYgKzUxLDcgQEAKICNpbmNsdWRlICJKU1Jz
YUtleUdlblBhcmFtcy5oIgogI2luY2x1ZGUgIkpTUnNhT2FlcFBhcmFtcy5oIgogI2luY2x1ZGUg
IkpTUnNhUHNzUGFyYW1zLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVz
Lmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNPTk9iamVjdC5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlLmNwcAppbmRleCAxMzQ5NDhjYmZkYjc3
ZDZjMjUyNzc2NDE0OTFlNzlmYTEzZWM4MTVkLi4yMDQxODViNWIwZjA5Y2I3ZThmYjc5ZThkZjU4
N2RiMWQ0ZDMzYmIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZS5jcHAKQEAgLTEwMCw3ICsx
MDAsNyBAQCBSZWY8Q1NTRm9udEZhY2U+IENTU0ZvbnRGYWNlOjpjcmVhdGUoQ1NTRm9udFNlbGVj
dG9yJiBmb250U2VsZWN0b3IsIFN0eWxlUnVsZUZvbgogICAgIHJldHVybiByZXN1bHQ7CiB9CiAK
LUNTU0ZvbnRGYWNlOjpDU1NGb250RmFjZShjb25zdCBTZXR0aW5nczo6VmFsdWVzKiBzZXR0aW5n
cywgU3R5bGVSdWxlRm9udEZhY2UqIGNzc0Nvbm5lY3Rpb24sIEZvbnRGYWNlKiB3cmFwcGVyLCBi
b29sIGlzTG9jYWxGYWxsYmFjaykKK0NTU0ZvbnRGYWNlOjpDU1NGb250RmFjZShjb25zdCBTZXR0
aW5nc1ZhbHVlcyogc2V0dGluZ3MsIFN0eWxlUnVsZUZvbnRGYWNlKiBjc3NDb25uZWN0aW9uLCBG
b250RmFjZSogd3JhcHBlciwgYm9vbCBpc0xvY2FsRmFsbGJhY2spCiAgICAgOiBtX2Nzc0Nvbm5l
Y3Rpb24oY3NzQ29ubmVjdGlvbikKICAgICAsIG1fd3JhcHBlcih3cmFwcGVyKQogICAgICwgbV9p
c0xvY2FsRmFsbGJhY2soaXNMb2NhbEZhbGxiYWNrKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0ZvbnRGYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2UuaApp
bmRleCA3ODk5M2VmZWY1N2I1ZTY3OTk2YWQxYmRhZWY4NzcxN2ZhMTYwZGU4Li4yODFhOGVhYzYy
MDA3Nzk4NmE2ZTBjMzlkZjkzNzA3YWY3ZGQ3NmJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTRm9udEZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2Uu
aApAQCAtMjUsMTEgKzI1LDEyIEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiRm9udExv
YWRUaW1pbmdPdmVycmlkZS5oIgogI2luY2x1ZGUgIkZvbnRTZWxlY3Rpb25WYWx1ZUlubGluZXMu
aCIKICNpbmNsdWRlICJGb250VGFnZ2VkU2V0dGluZ3MuaCIKLSNpbmNsdWRlICJTZXR0aW5ncy5o
IgogI2luY2x1ZGUgIlN0eWxlUnVsZS5oIgogI2luY2x1ZGUgIlRleHRGbGFncy5oIgorI2luY2x1
ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+
CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KQEAgLTU0LDYgKzU1LDggQEAgY2xhc3MgRm9udEZh
Y2U7CiBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogZW51bSBjbGFzcyBFeHRlcm5hbFJl
c291cmNlRG93bmxvYWRQb2xpY3k7CiAKK3N0cnVjdCBTZXR0aW5nc1ZhbHVlczsKKwogREVDTEFS
RV9BTExPQ0FUT1JfV0lUSF9IRUFQX0lERU5USUZJRVIoQ1NTRm9udEZhY2UpOwogY2xhc3MgQ1NT
Rm9udEZhY2UgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxDU1NGb250RmFjZT4gewogICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEX1dJVEhfSEVBUF9JREVOVElGSUVSKENTU0ZvbnRGYWNlKTsK
QEAgLTE2Miw3ICsxNjUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRFcnJvclN0YXRlKCk7CiAK
IHByaXZhdGU6Ci0gICAgQ1NTRm9udEZhY2UoY29uc3QgU2V0dGluZ3M6OlZhbHVlcyosIFN0eWxl
UnVsZUZvbnRGYWNlKiwgRm9udEZhY2UqLCBib29sIGlzTG9jYWxGYWxsYmFjayk7CisgICAgQ1NT
Rm9udEZhY2UoY29uc3QgU2V0dGluZ3NWYWx1ZXMqLCBTdHlsZVJ1bGVGb250RmFjZSosIEZvbnRG
YWNlKiwgYm9vbCBpc0xvY2FsRmFsbGJhY2spOwogCiAgICAgc2l6ZV90IHB1bXAoRXh0ZXJuYWxS
ZXNvdXJjZURvd25sb2FkUG9saWN5KTsKICAgICB2b2lkIHNldFN0YXR1cyhTdGF0dXMpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRTZWxlY3Rvci5oIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0ZvbnRTZWxlY3Rvci5oCmluZGV4IGY5NzhhMTRlNDU1MWIyMGZiOTc4MWJm
MWY2ODAxYmU0ZmUyMzlhMDUuLmI3MzVkNWNiMjljZGViYmQyZjcwOGUxYzRhY2U5ZGI2ZDMyNTkx
NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250U2VsZWN0b3IuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFNlbGVjdG9yLmgKQEAgLTM3LDYgKzM3LDcgQEAK
ICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5j
bHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21TdHJpbmdIYXNoLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTS2V5ZnJhbWVzUnVsZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTS2V5ZnJhbWVzUnVsZS5jcHAKaW5kZXggMzY1MWVlYjNjOGU1
OGE2ZGZiZmZmYTkxZTJlMGM5NDM3NWU1NmI0NS4uN2FlNjkwY2U2N2Q3MzFhYzY4ZjJlNzY5ZmVl
Y2Q5Yjg5YmFhZWJmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0tleWZyYW1l
c1J1bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NLZXlmcmFtZXNSdWxlLmNwcApA
QCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkNTU1J1bGVMaXN0LmgiCiAjaW5jbHVkZSAiQ1NT
U3R5bGVTaGVldC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
TWVkaWFMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUxpc3QuY3BwCmluZGV4IDNm
MWE2NDQwZDYxMDI3YWQ1Zjc1NTA4YmVmOGRjOGIzOGZlYjVmMzYuLmJiYmViMmZiZjBlMjEzOGZk
ODllNDBjODEzZmEyZjkxM2ViYTczNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9N
ZWRpYUxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUxpc3QuY3BwCkBAIC0y
OCw2ICsyOCw4IEBACiAjaW5jbHVkZSAiTWVkaWFGZWF0dXJlTmFtZXMuaCIKICNpbmNsdWRlICJN
ZWRpYVF1ZXJ5LmgiCiAjaW5jbHVkZSAiTWVkaWFRdWVyeVBhcnNlci5oIgorI2luY2x1ZGUgIlNl
dHRpbmdzLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5j
bHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVp
bGRlci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0Q29udGVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL1N0eWxlU2hlZXRDb250ZW50cy5jcHAKaW5kZXggYmE0MzY1M2EwYTE2YmNhOTYwMjE2Nzky
Nzk1MDEyYzNhN2MyZTE4MS4uYTk0YWQ1OGQ0MWQxYmFmYWE1MDllMGYzZWMxMTRjYWUwMzJmZmYx
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5jcHAKQEAgLTM5LDYg
KzM5LDcgQEAKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlN0eWxlUnVs
ZS5oIgogI2luY2x1ZGUgIlN0eWxlUnVsZUltcG9ydC5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL0NvbnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgogI2luY2x1ZGUgPHd0
Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9BY3RpdmVET01PYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9B
Y3RpdmVET01PYmplY3QuaAppbmRleCAwZTc5NGEyYTA2MDllYjJlYmUzMWUzZTYzOTA1MjY1ZDJj
ODNhNGNmLi5lN2FjZTRiMzU3MWFkMzE2MzRlNzkxMTY0MWUwMjIyNjNhZGMyYmY3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQWN0aXZlRE9NT2JqZWN0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0FjdGl2ZURPTU9iamVjdC5oCkBAIC00Miw3ICs0Miw3IEBAIGNsYXNzIEV2ZW50
OwogY2xhc3MgRXZlbnRMb29wVGFza0dyb3VwOwogY2xhc3MgRXZlbnRUYXJnZXQ7CiAKLWVudW0g
Y2xhc3MgUmVhc29uRm9yU3VzcGVuc2lvbiB7CitlbnVtIGNsYXNzIFJlYXNvbkZvclN1c3BlbnNp
b24gOiB1aW50OF90IHsKICAgICBKYXZhU2NyaXB0RGVidWdnZXJQYXVzZWQsCiAgICAgV2lsbERl
ZmVyTG9hZGluZywKICAgICBCYWNrRm9yd2FyZENhY2hlLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0RldmljZU1vdGlvbkV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZp
Y2VNb3Rpb25FdmVudC5jcHAKaW5kZXggNGVhOGE4Y2MzYjQwY2ZmMjg3OTcyNDg0ODVhMGFmMjA1
NDc4NzI5ZC4uZWJhNjAwODY3OWE1NmQ2NTM1MjE3NmU0MjViZTRhYjUwYjEyNDQ3MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkV2ZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uRXZlbnQuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAj
aW5jbHVkZSAiRGV2aWNlTW90aW9uRGF0YS5oIgogI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9u
QW5kTW90aW9uQWNjZXNzQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVy
cmVkLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVk
ZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuY3BwCmluZGV4IDlhODEwNTJm
NjM3Yzg4YjZjYWU3ZGE0YWYwOGVmOGZjZjk1YThjZmQuLjMyNWExMTM5NjhkODgxZGVkMDMzNjg1
ZWViOTM2YWRjMWI5ODk4ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VP
cmllbnRhdGlvbkV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50
YXRpb25FdmVudC5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJEZXZpY2VPcmllbnRh
dGlvbkRhdGEuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkpTRE9NUHJvbWlz
ZURlZmVycmVkLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAj
aW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggNDZmNGQ4YWIxZjRmMjAwYjA2YWM2ZTcwYzQzYWQ0
YmFlOTQ4NmU2MS4uODY5MjA3ZjIxNGJkMWE4NWRmMDhjM2MzMTVmZGU3NGZkZDFjZGNkOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0yNzg4LDYgKzI3ODgsMTEgQEAgdm9pZCBEb2N1bWVu
dDo6c3RvcEFjdGl2ZURPTU9iamVjdHMoKQogICAgIHBsYXRmb3JtU3VzcGVuZE9yU3RvcEFjdGl2
ZURPTU9iamVjdHMoKTsKIH0KIAorY29uc3QgU2V0dGluZ3NWYWx1ZXMmIERvY3VtZW50OjpzZXR0
aW5nc1ZhbHVlcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIHNldHRpbmdzKCkudmFsdWVzKCk7Cit9
CisKIHZvaWQgRG9jdW1lbnQ6OmNsZWFyQVhPYmplY3RDYWNoZSgpCiB7CiAgICAgQVNTRVJUKCZ0
b3BEb2N1bWVudCgpID09IHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCA2NGRhODdiZGNk
OTU5NDYwN2Y1NjAxNzgwMWE0OGJhNWZiYzczZGZmLi41N2Y3YjJlZTBkZWJjZDQ5MDdjMDUzYjc1
YzM5YzBmYjQ5ODc0NDVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMjUxLDYgKzI1MSw3IEBA
IHN0cnVjdCBCb3VuZGFyeVBvaW50Owogc3RydWN0IEhpZ2hsaWdodFJhbmdlRGF0YTsKIHN0cnVj
dCBJbnRlcnNlY3Rpb25PYnNlcnZlckRhdGE7CiBzdHJ1Y3QgU2VjdXJpdHlQb2xpY3lWaW9sYXRp
b25FdmVudEluaXQ7CitzdHJ1Y3QgU2V0dGluZ3NWYWx1ZXM7CiAKIHRlbXBsYXRlPHR5cGVuYW1l
PiBjbGFzcyBFeGNlcHRpb25PcjsKIApAQCAtNjM5LDcgKzY0MCw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIHJlc3VtZUFjdGl2ZURPTU9iamVjdHMoUmVhc29uRm9yU3VzcGVuc2lvbikgZmluYWw7CiAg
ICAgdm9pZCBzdG9wQWN0aXZlRE9NT2JqZWN0cygpIGZpbmFsOwogCi0gICAgY29uc3QgU2V0dGlu
Z3M6OlZhbHVlcyYgc2V0dGluZ3NWYWx1ZXMoKSBjb25zdCBmaW5hbCB7IHJldHVybiBzZXR0aW5n
cygpLnZhbHVlcygpOyB9CisgICAgY29uc3QgU2V0dGluZ3NWYWx1ZXMmIHNldHRpbmdzVmFsdWVz
KCkgY29uc3QgZmluYWw7CiAKICAgICB2b2lkIHN1c3BlbmREZXZpY2VNb3Rpb25BbmRPcmllbnRh
dGlvblVwZGF0ZXMoKTsKICAgICB2b2lkIHJlc3VtZURldmljZU1vdGlvbkFuZE9yaWVudGF0aW9u
VXBkYXRlcygpOwpAQCAtMTM2NywxMSArMTM2OCwxMSBAQCBwdWJsaWM6CiAKICAgICAvLyBUaGUg
Zm9sbG93aW5nIGFkZENvbnNvbGVNZXNzYWdlIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQuCiAgICAg
Ly8gQ2FsbGVycyBzaG91bGQgdHJ5IHRvIGNyZWF0ZSB0aGUgQ29uc29sZU1lc3NhZ2UgdGhlbXNl
bHZlcy4KLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VT
b3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsb25n
IHJlcXVlc3RJZGVudGlmaWVyID0gMCkgZmluYWw7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBh
ZGRDb25zb2xlTWVzc2FnZShKU0M6Ok1lc3NhZ2VTb3VyY2UsIEpTQzo6TWVzc2FnZUxldmVsLCBj
b25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAw
KSBmaW5hbDsKIAogICAgIC8vIFRoZSBmb2xsb3dpbmcgYWRkTWVzc2FnZSBmdW5jdGlvbiBpcyBk
ZXByZWNhdGVkLgogICAgIC8vIENhbGxlcnMgc2hvdWxkIHRyeSB0byBjcmVhdGUgdGhlIENvbnNv
bGVNZXNzYWdlIHRoZW1zZWx2ZXMuCi0gICAgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Us
IE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJj
ZVVSTCwgdW5zaWduZWQgbGluZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBSZWZQdHI8
SW5zcGVjdG9yOjpTY3JpcHRDYWxsU3RhY2s+JiYsIEpTQzo6SlNHbG9iYWxPYmplY3QqID0gbnVs
bHB0ciwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApIGZpbmFsOworICAgIHZv
aWQgYWRkTWVzc2FnZShKU0M6Ok1lc3NhZ2VTb3VyY2UsIEpTQzo6TWVzc2FnZUxldmVsLCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCB1bnNpZ25lZCBsaW5l
TnVtYmVyLCB1bnNpZ25lZCBjb2x1bW5OdW1iZXIsIFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdENh
bGxTdGFjaz4mJiwgSlNDOjpKU0dsb2JhbE9iamVjdCogPSBudWxscHRyLCB1bnNpZ25lZCBsb25n
IHJlcXVlc3RJZGVudGlmaWVyID0gMCkgZmluYWw7CiAKICAgICBTZWN1cml0eU9yaWdpbiYgc2Vj
dXJpdHlPcmlnaW4oKSBjb25zdCB7IHJldHVybiAqU2VjdXJpdHlDb250ZXh0OjpzZWN1cml0eU9y
aWdpbigpOyB9CiAgICAgU2VjdXJpdHlPcmlnaW4mIHRvcE9yaWdpbigpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIHRvcERvY3VtZW50KCkuc2VjdXJpdHlPcmlnaW4oKTsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0VtcHR5U2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIGIvU291cmNlL1dl
YkNvcmUvZG9tL0VtcHR5U2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCmluZGV4IDIzMWIzYmYxY2E5
ODFjMjJlOTgwMzAyOWViMjAxNmFmNzNiMjJhODEuLjNlMzFlMGZlOWJkOGQzYWY5ZDE3MDlhMGMy
MjA1MTQ4MDY2Yzk2ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbXB0eVNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRW1wdHlTY3JpcHRF
eGVjdXRpb25Db250ZXh0LmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJSZWZlcnJlclBv
bGljeS5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJT
ZWN1cml0eU9yaWdpbi5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAKICNpbmNsdWRlIDx3dGYv
SXNvTWFsbG9jLmg+CiAKQEAgLTkyLDcgKzkzLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlZlNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBmaW5hbCB7IHJlZigpOyB9OwogICAgIHZvaWQgZGVyZWZT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCkgZmluYWwgeyBkZXJlZigpOyB9OwogCi0gICAgY29uc3Qg
U2V0dGluZ3M6OlZhbHVlcyYgc2V0dGluZ3NWYWx1ZXMoKSBjb25zdCBmaW5hbCB7IHJldHVybiBt
X3NldHRpbmdzVmFsdWVzOyB9CisgICAgY29uc3QgU2V0dGluZ3NWYWx1ZXMmIHNldHRpbmdzVmFs
dWVzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9zZXR0aW5nc1ZhbHVlczsgfQogCiAgICAgY2xh
c3MgRW1wdHlFdmVudExvb3AgZmluYWwgOiBwdWJsaWMgRXZlbnRMb29wIHsKICAgICBwdWJsaWM6
CkBAIC0xMjAsNyArMTIxLDcgQEAgcHJpdmF0ZToKICAgICBVUkwgbV91cmw7CiAgICAgUmVmPEVt
cHR5RXZlbnRMb29wPiBtX2V2ZW50TG9vcDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RXZlbnRMb29w
VGFza0dyb3VwPiBtX2V2ZW50TG9vcFRhc2tHcm91cDsKLSAgICBTZXR0aW5nczo6VmFsdWVzIG1f
c2V0dGluZ3NWYWx1ZXM7CisgICAgU2V0dGluZ3NWYWx1ZXMgbV9zZXR0aW5nc1ZhbHVlczsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9GdWxsc2NyZWVuTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRnVsbHNjcmVlbk1h
bmFnZXIuY3BwCmluZGV4IGY4M2UyODUyOWQ4MThmNjZhM2EzZjFkN2E5OGQxMmYxM2JiZjNkZWEu
LjI3YmM2ZjA4YmUwMWM5NGI0ODYwMzE3YzYwNWUxOWJmZDkwYmYyOGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9GdWxsc2NyZWVuTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcApAQCAtNDIsNiArNDIsOCBAQAogI2luY2x1ZGUg
IlJlbmRlckZ1bGxTY3JlZW4uaCIKICNpbmNsdWRlICJSZW5kZXJUcmVlQnVpbGRlci5oIgogI2lu
Y2x1ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSAiVXNlckdlc3R1cmVJbmRpY2F0b3IuaCIKKyNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMuaD4KICNpbmNsdWRlIDx3dGYvTG9n
Z2VySGVscGVyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Mb2FkYWJsZUNsYXNzaWNTY3JpcHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L0xvYWRhYmxlQ2xhc3NpY1NjcmlwdC5jcHAKaW5kZXggOGY0NmVkODY4YzM4MWJhMGFmNzVlYzYx
MDU3NGE1NWNkMjA0ZmQ4NC4uZjdmOWUxOWU1NmQ2NmQxY2IyMDQ4YWFmNGE5MWE1YzFjOTQ4YzI3
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0xvYWRhYmxlQ2xhc3NpY1NjcmlwdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0xvYWRhYmxlQ2xhc3NpY1NjcmlwdC5jcHAKQEAg
LTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJTY3JpcHRFbGVtZW50LmgiCiAjaW5jbHVkZSAiU2Ny
aXB0U291cmNlQ29kZS5oIgogI2luY2x1ZGUgIlN1YnJlc291cmNlSW50ZWdyaXR5LmgiCisjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVy
RGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSW1wbC5oPgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vTW91c2VFdmVudC5jcHAKaW5kZXggZGFjM2UwODhkOWE1ZDNiNzY4N2Q0ZGIxY2VmYjJkNWVi
OGIwZTBmMi4uMmEwOTc2YjIzZDNjYTY3ZDQ2MzJiYmNmNDMyMzNkOTc2ZTcyN2ZiMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Nb3VzZUV2ZW50LmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIlBsYXRm
b3JtTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIlJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oIgog
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NhbGxGcmFtZS5oPgorI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0NvbnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTR2xvYmFs
T2JqZWN0SW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAppbmRleCBjNGYyOTU5OTkzOWVjMTY4MzJjNmRm
NmMwY2VjMDIwYmNkNDI1MGI0Li5lMzI2YjQ4Yjc2NzRmYjkxZjc5NTg3YmZlMGU5OTA1NTc4NDVh
OTFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCkBAIC01Niw2ICs1Niw3IEBA
CiAjaW5jbHVkZSAiU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyLmgiCiAjaW5jbHVkZSAiU2V0dGlu
Z3MuaCIKICNpbmNsdWRlICJUZXh0Tm9kZVRyYXZlcnNhbC5oIgorI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0NvbnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9Tb3J0ZWRBcnJheU1hcC5oPgog
I2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvU3lzdGVtVHJhY2lu
Zy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwCmlu
ZGV4IGQyNGIwMWI3NzM2YzVjYjU4ZjY5YTdkOThkNmM0YjcwYjY0OThiYzMuLmMzMGJjNmQ0ZTQ0
ODI5YTc1NjFkZjE4YjY3MjQ2NWJhZjk2MmQ4OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
U2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJj
b25maWcuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAKKyNpbmNsdWRl
ICJBY3RpdmVET01PYmplY3QuaCIKICNpbmNsdWRlICJDU1NWYWx1ZVBvb2wuaCIKICNpbmNsdWRl
ICJDYWNoZWRTY3JpcHQuaCIKICNpbmNsdWRlICJDb21tb25WTS5oIgpAQCAtNzEsNiArNzIsNyBA
QAogI2luY2x1ZGUgIldvcmtlclRocmVhZC5oIgogI2luY2x1ZGUgIldvcmtsZXRHbG9iYWxTY29w
ZS5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NhdGNoU2NvcGUuaD4KKyNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9E
ZWZlcnJlZFdvcmtUaW1lci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0V4Y2VwdGlvbi5o
PgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTUHJvbWlzZS5oPgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKaW5kZXggMTZjODY2ZjM5NDg2YWRkMWVkYTNk
YTMyMGI1MTA0NmQyNWMzMDQ1ZS4uOGMyNDY0ZWJlNGYzZGJkMmU0MDI3YTE1OWJjNWI2MjI3YWQw
NGQ2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCkBA
IC0yNywxNiArMjcsMTAgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJBY3RpdmVET01P
YmplY3QuaCIKICNpbmNsdWRlICJDcm9zc09yaWdpbk1vZGUuaCIKLSNpbmNsdWRlICJET01UaW1l
ci5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLmgiCiAjaW5j
bHVkZSAiU2VjdXJpdHlDb250ZXh0LmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlcklkZW50aWZp
ZXIuaCIKLSNpbmNsdWRlICJTZXR0aW5ncy5oIgotI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Nv
bnNvbGVUeXBlcy5oPgotI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hhbmRsZVR5cGVzLmg+Ci0j
aW5jbHVkZSA8d3RmL0Nyb3NzVGhyZWFkVGFzay5oPgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5o
PgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZp
ZXIuaD4KQEAgLTQ2LDkgKzQwLDEyIEBACiBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIENhbGxGcmFt
ZTsKIGNsYXNzIEV4Y2VwdGlvbjsKK2NsYXNzIEpTR2xvYmFsT2JqZWN0OwogY2xhc3MgSlNQcm9t
aXNlOwogY2xhc3MgVk07CiBlbnVtIGNsYXNzIFNjcmlwdEV4ZWN1dGlvblN0YXR1czsKK2VudW0g
Y2xhc3MgTWVzc2FnZVNvdXJjZSA6IHVpbnQ4X3Q7CitlbnVtIGNsYXNzIE1lc3NhZ2VMZXZlbCA6
IHVpbnQ4X3Q7CiB9CiAKIG5hbWVzcGFjZSBJbnNwZWN0b3IgewpAQCAtNTcsMTEgKzU0LDE1IEBA
IGNsYXNzIFNjcmlwdENhbGxTdGFjazsKIH0KIAogbmFtZXNwYWNlIFdlYkNvcmUgeworc3RydWN0
IFNldHRpbmdzVmFsdWVzOwogCitjbGFzcyBBY3RpdmVET01PYmplY3Q7CiBjbGFzcyBFdmVudExv
b3A7CiBjbGFzcyBDYWNoZWRTY3JpcHQ7CiBjbGFzcyBDU1NGb250U2VsZWN0b3I7CiBjbGFzcyBD
U1NWYWx1ZVBvb2w7CitjbGFzcyBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcjsKK2NsYXNzIERP
TVRpbWVyOwogY2xhc3MgRGF0YWJhc2VDb250ZXh0OwogY2xhc3MgRXZlbnRRdWV1ZTsKIGNsYXNz
IEV2ZW50TG9vcFRhc2tHcm91cDsKQEAgLTc1LDkgKzc2LDExIEBAIGNsYXNzIFJlamVjdGVkUHJv
bWlzZVRyYWNrZXI7CiBjbGFzcyBSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9u
OwogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogY2xhc3MgU29ja2V0UHJvdmlkZXI7CisKIGVudW0g
Y2xhc3MgTG9hZGVkRnJvbU9wYXF1ZVNvdXJjZSA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFJlZmVy
cmVyUG9saWN5IDogdWludDhfdDsKIGVudW0gY2xhc3MgVGFza1NvdXJjZSA6IHVpbnQ4X3Q7Citl
bnVtIGNsYXNzIFJlYXNvbkZvclN1c3BlbnNpb24gOiB1aW50OF90OwogCiAjaWYgRU5BQkxFKFNF
UlZJQ0VfV09SS0VSKQogY2xhc3MgU2VydmljZVdvcmtlcjsKQEAgLTExMCw3ICsxMTMsNyBAQCBw
dWJsaWM6CiAKICAgICB2aXJ0dWFsIFJlZmVycmVyUG9saWN5IHJlZmVycmVyUG9saWN5KCkgY29u
c3QgPSAwOwogCi0gICAgdmlydHVhbCBjb25zdCBTZXR0aW5nczo6VmFsdWVzJiBzZXR0aW5nc1Zh
bHVlcygpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGNvbnN0IFNldHRpbmdzVmFsdWVzJiBzZXR0
aW5nc1ZhbHVlcygpIGNvbnN0ID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlRXZhbChj
b25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxl
V2ViQXNzZW1ibHkoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpID0gMDsKQEAgLTEzMiw4ICsx
MzUsOCBAQCBwdWJsaWM6CiAKICAgICAvLyBUaGUgZm9sbG93aW5nIGFkZENvbnNvbGVNZXNzYWdl
IGZ1bmN0aW9ucyBhcmUgZGVwcmVjYXRlZC4KICAgICAvLyBDYWxsZXJzIHNob3VsZCB0cnkgdG8g
Y3JlYXRlIHRoZSBDb25zb2xlTWVzc2FnZSB0aGVtc2VsdmVzLgotICAgIHZvaWQgYWRkQ29uc29s
ZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25l
ZCBjb2x1bW5OdW1iZXIsIEpTQzo6SlNHbG9iYWxPYmplY3QqID0gbnVsbHB0ciwgdW5zaWduZWQg
bG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApOwotICAgIHZpcnR1YWwgdm9pZCBhZGRDb25zb2xl
TWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApID0gMDsKKyAgICB2b2lkIGFk
ZENvbnNvbGVNZXNzYWdlKEpTQzo6TWVzc2FnZVNvdXJjZSwgSlNDOjpNZXNzYWdlTGV2ZWwsIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIHVuc2lnbmVkIGxp
bmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlciwgSlNDOjpKU0dsb2JhbE9iamVjdCogPSBu
dWxscHRyLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyID0gMCk7CisgICAgdmlydHVh
bCB2b2lkIGFkZENvbnNvbGVNZXNzYWdlKEpTQzo6TWVzc2FnZVNvdXJjZSwgSlNDOjpNZXNzYWdl
TGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRp
ZmllciA9IDApID0gMDsKIAogICAgIHZpcnR1YWwgU2VjdXJpdHlPcmlnaW4mIHRvcE9yaWdpbigp
IGNvbnN0ID0gMDsKIApAQCAtMjE2LDE5ICsyMTksMTQgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
dm9pZCBwb3N0VGFzayhUYXNrJiYpID0gMDsgLy8gRXhlY3V0ZXMgdGhlIHRhc2sgb24gY29udGV4
dCdzIHRocmVhZCBhc3luY2hyb25vdXNseS4KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFy
Z3VtZW50cz4KLSAgICB2b2lkIHBvc3RDcm9zc1RocmVhZFRhc2soQXJndW1lbnRzJiYuLi4gYXJn
dW1lbnRzKQotICAgIHsKLSAgICAgICAgcG9zdFRhc2soW2Nyb3NzVGhyZWFkVGFzayA9IGNyZWF0
ZUNyb3NzVGhyZWFkVGFzayhhcmd1bWVudHMuLi4pXShTY3JpcHRFeGVjdXRpb25Db250ZXh0Jikg
bXV0YWJsZSB7Ci0gICAgICAgICAgICBjcm9zc1RocmVhZFRhc2sucGVyZm9ybVRhc2soKTsKLSAg
ICAgICAgfSk7Ci0gICAgfQorICAgIGlubGluZSB2b2lkIHBvc3RDcm9zc1RocmVhZFRhc2soQXJn
dW1lbnRzJiYuLi4pOwogCiAgICAgLy8gR2V0cyB0aGUgbmV4dCBpZCBpbiBhIGNpcmN1bGFyIHNl
cXVlbmNlIGZyb20gMSB0byAyXjMxLTEuCiAgICAgaW50IGNpcmN1bGFyU2VxdWVudGlhbElEKCk7
CiAKLSAgICBib29sIGFkZFRpbWVvdXQoaW50IHRpbWVvdXRJZCwgRE9NVGltZXImIHRpbWVyKSB7
IHJldHVybiBtX3RpbWVvdXRzLmFkZCh0aW1lb3V0SWQsIHRpbWVyKS5pc05ld0VudHJ5OyB9Ci0g
ICAgdm9pZCByZW1vdmVUaW1lb3V0KGludCB0aW1lb3V0SWQpIHsgbV90aW1lb3V0cy5yZW1vdmUo
dGltZW91dElkKTsgfQotICAgIERPTVRpbWVyKiBmaW5kVGltZW91dChpbnQgdGltZW91dElkKSB7
IHJldHVybiBtX3RpbWVvdXRzLmdldCh0aW1lb3V0SWQpOyB9CisgICAgaW5saW5lIGJvb2wgYWRk
VGltZW91dChpbnQgdGltZW91dElkLCBET01UaW1lciYpOworICAgIGlubGluZSB2b2lkIHJlbW92
ZVRpbWVvdXQoaW50IHRpbWVvdXRJZCk7CisgICAgaW5saW5lIERPTVRpbWVyKiBmaW5kVGltZW91
dChpbnQgdGltZW91dElkKTsKIAogICAgIHZpcnR1YWwgSlNDOjpWTSYgdm0oKSA9IDA7CiAKQEAg
LTI4NCwyMiArMjgyLDcgQEAgcHVibGljOgogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVu
dGlmaWVyIGNvbnRleHRJZGVudGlmaWVyKCkgY29uc3Q7CiAKIHByb3RlY3RlZDoKLSAgICBjbGFz
cyBBZGRDb25zb2xlTWVzc2FnZVRhc2sgOiBwdWJsaWMgVGFzayB7Ci0gICAgcHVibGljOgotICAg
ICAgICBBZGRDb25zb2xlTWVzc2FnZVRhc2soc3RkOjp1bmlxdWVfcHRyPEluc3BlY3Rvcjo6Q29u
c29sZU1lc3NhZ2U+JiYgY29uc29sZU1lc3NhZ2UpCi0gICAgICAgICAgICA6IFRhc2soWyZjb25z
b2xlTWVzc2FnZV0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkgewotICAgICAgICAg
ICAgICAgIGNvbnRleHQuYWRkQ29uc29sZU1lc3NhZ2UoV1RGTW92ZShjb25zb2xlTWVzc2FnZSkp
OwotICAgICAgICAgICAgfSkKLSAgICAgICAgewotICAgICAgICB9Ci0KLSAgICAgICAgQWRkQ29u
c29sZU1lc3NhZ2VUYXNrKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWws
IGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKLSAgICAgICAgICAgIDogVGFzayhbc291cmNlLCBsZXZl
bCwgbWVzc2FnZSA9IG1lc3NhZ2UuaXNvbGF0ZWRDb3B5KCldKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmIGNvbnRleHQpIHsKLSAgICAgICAgICAgICAgICBjb250ZXh0LmFkZENvbnNvbGVNZXNzYWdl
KHNvdXJjZSwgbGV2ZWwsIG1lc3NhZ2UpOwotICAgICAgICAgICAgfSkKLSAgICAgICAgewotICAg
ICAgICB9Ci0gICAgfTsKKyAgICBjbGFzcyBBZGRDb25zb2xlTWVzc2FnZVRhc2s7CiAKICAgICBS
ZWFzb25Gb3JTdXNwZW5zaW9uIHJlYXNvbkZvclN1c3BlbmRpbmdBY3RpdmVET01PYmplY3RzKCkg
Y29uc3QgeyByZXR1cm4gbV9yZWFzb25Gb3JTdXNwZW5kaW5nQWN0aXZlRE9NT2JqZWN0czsgfQog
CkBAIC0zMTAsNyArMjkzLDcgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICAvLyBUaGUgZm9s
bG93aW5nIGFkZE1lc3NhZ2UgZnVuY3Rpb24gaXMgZGVwcmVjYXRlZC4KICAgICAvLyBDYWxsZXJz
IHNob3VsZCB0cnkgdG8gY3JlYXRlIHRoZSBDb25zb2xlTWVzc2FnZSB0aGVtc2VsdmVzLgotICAg
IHZpcnR1YWwgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgdW5zaWduZWQgbGlu
ZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRD
YWxsU3RhY2s+JiYsIEpTQzo6SlNHbG9iYWxPYmplY3QqID0gbnVsbHB0ciwgdW5zaWduZWQgbG9u
ZyByZXF1ZXN0SWRlbnRpZmllciA9IDApID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkTWVzc2Fn
ZShKU0M6Ok1lc3NhZ2VTb3VyY2UsIEpTQzo6TWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1l
c3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNp
Z25lZCBjb2x1bW5OdW1iZXIsIFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdENhbGxTdGFjaz4mJiwg
SlNDOjpKU0dsb2JhbE9iamVjdCogPSBudWxscHRyLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVu
dGlmaWVyID0gMCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBsb2dFeGNlcHRpb25Ub0NvbnNvbGUo
Y29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCBpbnQg
bGluZU51bWJlciwgaW50IGNvbHVtbk51bWJlciwgUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0Q2Fs
bFN0YWNrPiYmKSA9IDA7CiAgICAgYm9vbCBkaXNwYXRjaEVycm9yRXZlbnQoY29uc3QgU3RyaW5n
JiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBpbnQgY29sdW1uTnVtYmVyLCBjb25zdCBT
dHJpbmcmIHNvdXJjZVVSTCwgSlNDOjpFeGNlcHRpb24qLCBDYWNoZWRTY3JpcHQqKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9WaWV3cG9ydEFyZ3VtZW50cy5jcHAKaW5kZXggNzNkZjk0YzQ2NGY5ZWU0
Y2NiZjM1OTEyNjg1YzllMGMwNzliMGE2Yi4uNDM4NzViZDBjZTdlOTQyMTJhYmFmMjZiYjFmNDlj
ZTE3MjgxNGUyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1ZpZXdwb3J0QXJndW1l
bnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVmlld3BvcnRBcmd1bWVudHMuY3BwCkBA
IC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiSW50U2l6ZS5oIgogI2luY2x1ZGUgIlNjcmlwdGFi
bGVEb2N1bWVudFBhcnNlci5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0cmVh
bS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9m
aWxlYXBpL0Jsb2IuaCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvQmxvYi5oCmluZGV4IDI2OGYy
YzZkNGFlOTE0YWVhNDNmNDRmNzgyMTI0YmQzYjE4ZTM5ZTUuLjY5NWNhZThmMjEyZTA5YWY1ZThh
MWU3YmEzNzM3Zjk1NGVlZjBlMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkv
QmxvYi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvQmxvYi5oCkBAIC0zMSw2ICszMSw3
IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCiAjaW5j
bHVkZSAiQmxvYlByb3BlcnR5QmFnLmgiCiAjaW5jbHVkZSAiQmxvYlVSTC5oIgogI2luY2x1ZGUg
IkZpbGVSZWFkZXJMb2FkZXIuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEFuY2hvckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVu
dC5jcHAKaW5kZXggMjFkZGRkNWEwYjU3ZWJlY2E0MTY5MDE3OWJhNjdmNGY4MzYxYWE5Yy4uMDQw
MWIzNjFlZWM2NWIxMjUwZmViMzkxYTYzY2FhZmU3ZTFiMzllMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKQEAgLTU1LDYgKzU1LDcgQEAKICNpbmNsdWRlICJT
ZWN1cml0eVBvbGljeS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiVXNlckdl
c3R1cmVJbmRpY2F0b3IuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMu
aD4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9XZWFr
SGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKaW5kZXggODkxMGU3NTE5MTI1MTEyMjVj
NThlZGJmMjZjZDIxNzMyZTYxZjdhZS4uNmYwYTUyZGM0MGNjMzZiMTA4YjBmYzgwMjM4MzAyNWI4
ZWEyNDBlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKQEAg
LTYyLDYgKzYyLDcgQEAKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAi
U2V0dGluZ3MuaCIKICNpbmNsdWRlICJTdHJpbmdBZGFwdG9ycy5oIgorI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lu
bGluZXMuaD4KICNpbmNsdWRlIDxtYXRoLmg+CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGlu
ZXMuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKaW5kZXggYzkzNWVlMWQ3MjcyYzY3
NGU3MTVlZmJmNmVmNTBmYTBjYTllY2YwOS4uMzg1NzI5YzI5ZjBmODQwNzhhZjg0MTkzZDM5ZTA3
ZDhiM2I0NDE2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKQEAgLTY2LDYgKzY2
LDcgQEAKICNpbmNsdWRlICJSZW5kZXJJbWFnZS5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xs
ZXIuaCIKICNpbmNsdWRlICJTY3JpcHREaXNhbGxvd2VkU2NvcGUuaCIKKyNpbmNsdWRlICJTZXR0
aW5ncy5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKICNpbmNsdWRlICJTaW11bGF0ZWRDbGlj
ay5oIgogI2luY2x1ZGUgIlN0eWxlUHJvcGVydGllcy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAKaW5kZXggNzgwMDBjZDVmYzlmZjk5NTE0NWQz
NmJiYWNkNzNjYjIzOTdiYzdkMy4uYWUzNGNiZTk4NDQ4Y2ZkZTlkMTAwODhlYmY0YzA1NzM1Yzc5
YWNmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQu
Y3BwCkBAIC00OCw2ICs0OCw3IEBACiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJT
dHlsZVRyZWVSZXNvbHZlci5oIgogI2luY2x1ZGUgIlZhbGlkYXRpb25NZXNzYWdlLmgiCisjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL0lzb01h
bGxvY0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1NldEZv
clNjb3BlLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5jcHAKaW5kZXggZDU3
YmM1Zjk0OTc1OWViZmNjMDAwYTcyYjE3OTczOGZmZTFiMDJhZS4uMjY5NDU1YTJkYzA5YmM0NzNk
MTU2MDdkNGY2YTkwOWE4NTkxMDE2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRm9ybUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVt
ZW50LmNwcApAQCAtNTgsNiArNTgsNyBAQAogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVk
ZSAiU3VibWl0RXZlbnQuaCIKICNpbmNsdWRlICJVc2VyR2VzdHVyZUluZGljYXRvci5oIgorI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPGxpbWl0cz4K
ICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEh0bWxFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEh0bWxFbGVtZW50LmNwcAppbmRleCAwOWU3YWU2NmE5NjE0
ODQxNWIxMDNmMjNlMDU2Yjg4ZDVmYWFhMjk5Li5hN2YwOWZkMGVkYzYxZjAwODYzNjI1MzlmNDRj
OWQ2MWNlMDhlNjgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxIdG1sRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSHRtbEVsZW1lbnQuY3BwCkBA
IC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRl
ci5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Nv
bnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFt
ZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5jcHAK
aW5kZXggMWU4MWY1NDI1YjA3ZTI0ZDlhOWMxMjA3ZWIzNTU5MjE3MjQ2NWM4NC4uNmE1YjFiZTgx
NzMyMGE1ZWIwZjBlMjU0NTE1NTAzMjBiNzM5MzYzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MSUZyYW1lRWxlbWVudC5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJTY3JpcHRD
b250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyLmgiCiAjaW5j
bHVkZSAiU2V0dGluZ3MuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMu
aD4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKaW5kZXggNzRmZDQ1ZTZk
YmJiNDU2YjU0NTNiMWQ0MGYzOGNmMDQ2NDBkNzdhNC4uZmM5NWI2YjEyMjY4MjI1ODhlNzE3NTU1
MTZlY2MwNjA2YjA3NTJkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlu
a0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNw
cApAQCAtNjIsNiArNjIsNyBAQAogI2luY2x1ZGUgIlN0eWxlU2NvcGUuaCIKICNpbmNsdWRlICJT
dHlsZVNoZWV0Q29udGVudHMuaCIKICNpbmNsdWRlICJTdWJyZXNvdXJjZUludGVncml0eS5oIgor
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9J
c29NYWxsb2NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogI2luY2x1ZGUgPHd0Zi9T
Y29wZS5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmNwcAppbmRleCA5
NjUxZDg0ZWEwMmI1Zjk3ZjI2Yjc3NGUwZjM2ODVkZTI5ODc0NzlhLi41MzU0OGQ0YjViOWIwODA5
ZGRiNjFhMzVlYjA0YTkxOGIzYTAzY2NhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxQbHVnSW5FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVn
SW5FbGVtZW50LmNwcApAQCAtNDgsNiArNDgsNyBAQAogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIK
ICNpbmNsdWRlICJTdWJmcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIldpZGdldC5oIgorI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxs
b2NJbmxpbmVzLmg+CiAKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKaW5kZXggNzlhZDRlMjIwNmRhODA5NDhi
MmEwYjU1ZmViYjFiYjg0YzgxNjdhMC4uMzRiNmJjYWQ0MGE5MzZmM2MwYzY5Mjc4ZmE3YzM0ZmE5
NzczZTIwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKQEAg
LTU1LDYgKzU1LDcgQEAKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgogI2luY2x1ZGUgIlNldHRp
bmdzLmgiCiAjaW5jbHVkZSAiU3BhdGlhbE5hdmlnYXRpb24uaCIKKyNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9Db25zb2xlVHlwZXMuaD4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlTnVtYmVycy5oPgogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTb3VyY2VFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxTb3VyY2VFbGVtZW50LmgKaW5kZXggNTMwODMwN2FjNTUyODU1NzUy
MDA3YTA3NTQ3ZmZhYjRjN2FiODE0Ni4uNTUwMGExMGQyNzEwNmU0MGE4MjdhYmY5OWY0YTM2ZjAz
MzU0NDM0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU291cmNlRWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1lbnQuaApAQCAtMjUs
NiArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5o
IgogI2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwCmluZGV4IDc4N2ZjMzQyY2FkMTA0
YzE4NzMyYjgyMjcxYWQ0ODI2NzY0MWQxZTAuLjEzYjEyOGJlMTk3NTZiMzE4NGQyNzVmNTc2MWRj
MDUwNjExZDFiOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5w
dXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5j
cHAKQEAgLTYyLDYgKzYyLDcgQEAKICNpbmNsdWRlICJUZXh0RXZlbnQuaCIKICNpbmNsdWRlICJU
ZXh0SXRlcmF0b3IuaCIKICNpbmNsdWRlICJUZXh0Tm9kZVRyYXZlcnNhbC5oIgorI2luY2x1ZGUg
IlVzZXJHZXN0dXJlSW5kaWNhdG9yLmgiCiAjaW5jbHVkZSAiVXNlclR5cGluZ0dlc3R1cmVJbmRp
Y2F0b3IuaCIKICNpbmNsdWRlICJXaGVlbEV2ZW50LmgiCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5jcHAK
aW5kZXggY2E0ZTc3NzVlNzQ2Y2NjOTliMDc3ZjIwYzY5NzE2Y2U4MjU4OTlkZi4uNDUzZWY1MDgx
MDdhMTZkZWJmNzhlOWZmMTdkY2E2Y2M1ZmRjNmJmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5jcHAK
QEAgLTY5LDYgKzY5LDcgQEAKICNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgiCiAjaW5jbHVkZSAi
VGV4dE1ldHJpY3MuaCIKICNpbmNsdWRlICJUZXh0UnVuLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL0NoZWNrZWRBcml0aG1ldGljLmg+
CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4
dHJhcy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVu
ZGVyaW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5k
ZXJpbmdDb250ZXh0LmNwcAppbmRleCA1YTM4Nzk1N2MyNjA2NjIyZGI0NmY0YmY2MDg4YmUzMzEw
NjFhYmJiLi41YjNmZGZjMjZhMTc1M2QwOWI4MDE5MTA4N2Y2OWUyMGNhZmUyODdhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0
LmNwcApAQCAtNDcsNiArNDcsNyBAQAogI2luY2x1ZGUgIk9FU1RleHR1cmVGbG9hdExpbmVhci5o
IgogI2luY2x1ZGUgIlJlbmRlckJveC5oIgogI2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVy
ZXMuaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIldlYkdMQWN0aXZlSW5mby5o
IgogI2luY2x1ZGUgIldlYkdMQnVmZmVyLmgiCiAjaW5jbHVkZSAiV2ViR0xDb21wcmVzc2VkVGV4
dHVyZUFTVEMuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tC
YXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tCYXNlLmNwcAppbmRleCBi
ZGM4OGFiNTA0NmU5MWNmZGMxMzE0NDE5NzM5MDQ1ZDA2ODBkMjYwLi45ZjliMTY5NzYyMzg4MThl
NmM3ZTcyMjA4ZjBjYzc4OThkODQ0YWI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL1RyYWNrQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UcmFj
a0Jhc2UuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1
ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJUcmFja0xpc3RCYXNlLmgi
CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8d3Rm
L0xhbmd1YWdlLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZURlYnVnZ2Vy
QWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VEZWJ1
Z2dlckFnZW50LmNwcAppbmRleCA1NWQ5NTE4NDk0MTk1Yjk2ZGYxNjVhOTRjMWMyOTYzYWRjZWI4
Mzk1Li41OWQxNTJmZTY3ZTM1ZjFlMWU3NGIzNWM4NDRiZTM4Mzc4MjIwYjhjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZURlYnVnZ2VyQWdlbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlRGVidWdn
ZXJBZ2VudC5jcHAKQEAgLTQ0LDYgKzQ0LDcgQEAKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25D
b250ZXh0LmgiCiAjaW5jbHVkZSAiU2NyaXB0U3RhdGUuaCIKICNpbmNsdWRlICJVc2VyR2VzdHVy
ZUVtdWxhdGlvblNjb3BlLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVz
Lmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5qZWN0ZWRTY3JpcHQuaD4KICNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9JbmplY3RlZFNjcmlwdE1hbmFnZXIuaD4KICNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9TY3JpcHRDYWxsU3RhY2suaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9Dcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9Dcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5LmNwcAppbmRleCA3MTM1YThjZmFlMGY2Njhh
YWY3MmE0YTc3MjgwNTNhNGZjZjM1ZTBkLi4wNmFhYWIxYzU1M2E5M2E4YzY1MWNmMzllNzc5Nzkx
NmVmMDI3NWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5F
bWJlZGRlclBvbGljeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2lu
RW1iZWRkZXJQb2xpY3kuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiUmVzb3VyY2VS
ZXNwb25zZS5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRl
ICJTZWN1cml0eU9yaWdpbi5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2lu
UHJlZmxpZ2h0Q2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5Q
cmVmbGlnaHRDaGVja2VyLmNwcAppbmRleCA4YjMxZTE3MzkyYTk3YmI5NmQzNDk3YjkyOGVkZGEy
ZTY3Y2NkNmQ1Li5lZjU0MTZiMWQ0YjllMTEyMTcyNGJiY2YyY2JiZWIxNjNhYTQ2MTZiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5QcmVmbGlnaHRDaGVja2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5QcmVmbGlnaHRDaGVj
a2VyLmNwcApAQCAtNDMsNiArNDMsNyBAQAogI2luY2x1ZGUgIk5ldHdvcmtMb2FkTWV0cmljcy5o
IgogI2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKICNpbmNsdWRlICJTaGFyZWRC
dWZmZXIuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9j
dW1lbnRMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNw
cAppbmRleCA4Yjk5ODZhN2Q4OTVjNDIyYzU3YWJjMGI4NDljNzgzODE4MjEwZDFlLi4yNmZhMTRm
MDRhNjE1MzQ2YWM2MWQxZWZhMTA3NWI3ZTdhMTU0M2UzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Eb2N1bWVudExvYWRlci5jcHAKQEAgLTk0LDYgKzk0LDcgQEAKICNpbmNsdWRlICJTdWJyZXNv
dXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIlRleHRSZXNvdXJjZURlY29kZXIuaCIKICNpbmNsdWRl
ICJVc2VyQ29udGVudFByb3ZpZGVyLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29s
ZVR5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvQ29t
cGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKaW5k
ZXggZTA0YjM3ZjgyYmI2Y2MwODViODc5MjBmOWQxNmVjMTQwYWFhMWU4Zi4uZmEzYWZhNGVjNDY1
YjNiN2NhMjRlMjVjYjk4OTJkOWI5Nzk0YmY0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKQEAgLTYxLDYgKzYxLDcgQEAKICNp
bmNsdWRlICJTdWJyZXNvdXJjZUludGVncml0eS5oIgogI2luY2x1ZGUgIlN1YnJlc291cmNlTG9h
ZGVyLmgiCiAjaW5jbHVkZSAiVGhyZWFkYWJsZUxvYWRlckNsaWVudC5oIgorI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+
CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNw
cAppbmRleCAwZDdlMmY1ZWY3ZmYwYjUzZTk5Y2JjMjg5ZTAwNGVjNTk5ZTc2MWViLi5iYzM5OTA0
ZDgzNGM4MDhlYTgzNmZkMWIzM2E2NDkwNGE1NmMwNDg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlci5jcHAKQEAgLTEyOCw2ICsxMjgsNyBAQAogI2luY2x1ZGUgIlVzZXJHZXN0dXJl
SW5kaWNhdG9yLmgiCiAjaW5jbHVkZSAiV2luZG93RmVhdHVyZXMuaCIKICNpbmNsdWRlICJYTUxE
b2N1bWVudFBhcnNlci5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5o
PgogI2luY2x1ZGUgPGRvbS9TY3JpcHREaXNhbGxvd2VkU2NvcGUuaD4KICNpbmNsdWRlIDx3dGYv
Q29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvVVJMLmg+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0ltYWdlTG9hZGVyLmNwcAppbmRleCBkNTA2ZjQ0NzkzYWIxMjc0NGU2ZWZmNjkxNGUwOWY3
ODJkNDgxYWZkLi5mMjEyNmUzNmQ1NmVjMWY2YzNkMzkzOWVkYjU5NTVmN2ZhZDZhOWQxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5jcHAKQEAgLTQ1LDYgKzQ1LDcgQEAKICNpbmNs
dWRlICJSZW5kZXJJbWFnZS5oIgogI2luY2x1ZGUgIlJlbmRlclNWR0ltYWdlLmgiCiAjaW5jbHVk
ZSAiU2V0dGluZ3MuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMuaD4K
ICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIAogI2lmIEVOQUJMRShWSURFTykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVyLmNwcAppbmRleCBmZGRiMDdiZWU1ZjAzNjIzOThlOGVj
MTQxYjZiOTZmOWI3MzQ1YmFkLi44OWE5YmY5Mjc3N2U5MjhiZTA0NzI5NTUzZjg0NWJlZDMwNzVi
YTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuY3BwCkBAIC01OSw2ICs1OSw3IEBA
CiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTaXplc0F0dHJpYnV0ZVBhcnNlci5o
IgogI2luY2x1ZGUgIlN0eWxlUmVzb2x2ZXIuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9D
b25zb2xlVHlwZXMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvTWVkaWFSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvTWVkaWFSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggMTQ5YmE4YTMyNjhiOWI2MGFk
YTlmZWNjNGQ2NjNhMGY1NmE0MTY4Yi4uZDBjZWE3YzEzMzRjOGEzZjg0YWIwYzRiN2M0MDZmYTU4
MDM5ZjcyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL01lZGlhUmVzb3VyY2VM
b2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NZWRpYVJlc291cmNlTG9hZGVy
LmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCiAj
aW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlP
cmlnaW4uaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMuaD4KICNpbmNs
dWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL01peGVkQ29udGVudENoZWNrZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL01peGVkQ29udGVudENoZWNrZXIuY3BwCmluZGV4IDIxOTBkOTdi
OGQ4YTFkZGUyMWIzN2FiMjg0MjExYWJiNTE1Yzk0ZjAuLmM1ZThlOGQ1YmVmMGQwZGNmOTAzYTRi
NjVkNGViMjUyYjBiNjczMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NaXhl
ZENvbnRlbnRDaGVja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWl4ZWRDb250
ZW50Q2hlY2tlci5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJGcmFtZUxvYWRlckNs
aWVudC5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3Mu
aCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcAppbmRleCAyZjll
ZTI1ZWJkNTI0NWMxYmJjM2UxYjY1MzJjODQwZDkzMDU4OWUwLi41OThkMDQ1OGIyMWY2YWFmMjZm
ZDU1YTI5ZGIxMmNhMTRiNDc0YTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
TmF2aWdhdGlvblNjaGVkdWxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmln
YXRpb25TY2hlZHVsZXIuY3BwCkBAIC01Myw2ICs1Myw3IEBACiAjaW5jbHVkZSAiUG9saWN5Q2hl
Y2tlci5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJVc2VyR2Vz
dHVyZUluZGljYXRvci5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5o
PgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggYWE4NWJiNGQzY2E4NzE0NWJiN2E4
NmY2NDY2OGU0OTUxNzZhYzIzNS4uY2EyMTFkODkwOTA2ZDg4ZDg2OWVmODZhMmQ1MjM4NjFlZjVl
NmIyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC01Miw2
ICs1Miw3IEBACiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJTaGFyZWRC
dWZmZXIuaCIKICNpbmNsdWRlICJTdWJyZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxl
ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJy
ZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggN2Q3ODIyZTI0OTI4MTZjNmU4NjZiN2U1Yjc4ODMxMTA2
MzdiMWRkZi4uZmZmNGJhZGJiNjNiMmU2NjhiOWY3M2JkZjBjYWVhODQxNDRhMDBhNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwCkBAIC00Nyw2ICs0Nyw3
IEBACiAjaW5jbHVkZSAiUmVzb3VyY2VUaW1pbmcuaCIKICNpbmNsdWRlICJSdW50aW1lRW5hYmxl
ZEZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9Db25zb2xlVHlwZXMuaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4K
ICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWRMZWFrQ291bnRl
ci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RleHRUcmFja0xvYWRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGV4dFRyYWNrTG9hZGVyLmNwcAppbmRleCA4Y2Mz
YzU2OGM0Mzc5NmFjNjFiMzA5NzU0N2E4OWVmODEyZDk4ZDRkLi4zZTAyNjA3NzM1NzZiMGE4M2Ri
YTg4MTY1YWZkY2Q0Njg2MTkzYTUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
VGV4dFRyYWNrTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGV4dFRyYWNr
TG9hZGVyLmNwcApAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgog
I2luY2x1ZGUgIlZUVEN1ZS5oIgogI2luY2x1ZGUgIldlYlZUVFBhcnNlci5oIgorI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ry
b3llZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvVGhyZWFkYWJsZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGhy
ZWFkYWJsZUxvYWRlci5jcHAKaW5kZXggMWI2NTMyYzNiMGVhYTgwZDliZDQ2YzZkNDMyMTM2OTYy
MWMwMTliYi4uOGExZjdiZmIwOWU0MTBhYTc2YjMyMGE5Yzg2OGI2NTRjZTI0Yjc0NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RocmVhZGFibGVMb2FkZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9UaHJlYWRhYmxlTG9hZGVyLmNwcApAQCAtNDAsNiArNDAsNyBA
QAogI2luY2x1ZGUgIldvcmtlclJ1bkxvb3AuaCIKICNpbmNsdWRlICJXb3JrZXJUaHJlYWRhYmxl
TG9hZGVyLmgiCiAjaW5jbHVkZSAiV29ya2xldEdsb2JhbFNjb3BlLmgiCisjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVH
cm91cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNo
ZUdyb3VwLmNwcAppbmRleCA0YmMyYjA5Mjc1ZjEzODIwMzY5YTk0YmUwOGZmY2I4ZDEyZmI4Yjk4
Li41NTdjNzRiMWIxNzQ2ZWQ2MDJkOTgzM2MxZjk1MmM3N2RhNzlmM2UwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3Vw
LmNwcApAQCAtNDksNiArNDksNyBAQAogI2luY2x1ZGUgIlByb2dyZXNzVHJhY2tlci5oIgogI2lu
Y2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKyNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMuaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlv
bkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAppbmRleCAz
NmVlMzI3NWQ2OTIwN2U0NTAyMTYyZjBhYmFlYjg4ZTU4ZWJjNzViLi5lODUyMWVmMWZjMTQ4NTA3
NjNiNWI1NWEyZjExODIwYTFhNWM3MjFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTgzLDYgKzgzLDcgQEAKICNp
bmNsdWRlICJTdWJyZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIlVzZXJDb250ZW50Q29udHJv
bGxlci5oIgogI2luY2x1ZGUgIlVzZXJTdHlsZVNoZWV0LmgiCisjaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9ET01UaW1lci5jcHAKaW5kZXggODg5MDUyZTNhNDUyZTI1NmUzODc4MjM4Njdl
M2JiNzhkNTA1NzQ2ZC4uZDIxMDA2OTQzMzM3NzFhM2MwNDgzYzE5OGVkZjkxM2UwNWNiM2UwNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1lci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9ET01UaW1lci5jcHAKQEAgLTMzLDcgKzMzLDcgQEAKICNpbmNsdWRlICJQ
YWdlLmgiCiAjaW5jbHVkZSAiUGx1Z2luVmlld0Jhc2UuaCIKICNpbmNsdWRlICJTY2hlZHVsZWRB
Y3Rpb24uaCIKLSNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisjaW5jbHVkZSAi
U2NyaXB0RXhlY3V0aW9uQ29udGV4dElubGluZXMuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgog
I2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCBiOTA2NGY3NzgwOTRhYzFjYWU3OThjNmNjOTg4
ZjZlOWFjOTFkN2E2Li5mZmM5MTc4MzMyYjk2NDZkNGM3ZWQwNDc0Njc3NmYyMDYwMTQyMWVkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC0xMTcsNiArMTE3LDcgQEAKICNpbmNsdWRl
ICJXaW5kb3dGZWF0dXJlcy5oIgogI2luY2x1ZGUgIldpbmRvd0ZvY3VzQWxsb3dlZEluZGljYXRv
ci5oIgogI2luY2x1ZGUgIldpbmRvd1Byb3h5LmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
Q29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU2NyaXB0Q2FsbFN0YWNr
Lmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5oPgog
I2luY2x1ZGUgPGFsZ29yaXRobT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJh
Z0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAK
aW5kZXggYTFjMGU1ZjU2OWVkYTA3NGIzMTY5YjJlY2M1M2JkODAxYjJjYzRmMC4uY2Q4NjJhYmEy
YjAzN2I0ZThjZGZhZDVjNTVlM2E4ZjMzNzlhMWZhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFn
Q29udHJvbGxlci5jcHAKQEAgLTkyLDYgKzkyLDcgQEAKICNpbmNsdWRlICJWaXNpYmxlUG9zaXRp
b24uaCIKICNpbmNsdWRlICJXZWJDb250ZW50UmVhZGVyLmgiCiAjaW5jbHVkZSAibWFya3VwLmgi
CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8d3Rm
L1NldEZvclNjb3BlLmg+CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9FdmVudFNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50U291cmNlLmNwcApp
bmRleCA2MDI2MzFiYjdjZDEwODYwYjFhMzEyMTA0M2M5N2Q4ZWZlNDQ3NjFkLi5hNThhNGZmNTNj
YjE2ZmVlZTkzOGM0MThkOTMwODQxMjdlNTc5MDZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0V2ZW50U291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50U291
cmNlLmNwcApAQCAtNDQsNiArNDQsNyBAQAogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAj
aW5jbHVkZSAiVGV4dFJlc291cmNlRGVjb2Rlci5oIgogI2luY2x1ZGUgIlRocmVhZGFibGVMb2Fk
ZXIuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMuaD4KICNpbmNsdWRl
IDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ1RvSW50ZWdlckNvbnZlcnNpb24uaD4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZS5jcHAKaW5kZXggZmQzMzM2OGFkMjFkYzU1OTY3NGIzYTdhNjhkMjMzNGNlNGYxMzM5Yy4u
MjA1ZTU0NzJkMmQ2MmMwYTUzNWY5MDJlZjFhMzRjNDU5NTc3MzNjMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZS5jcHAKQEAgLTEwNSw2ICsxMDUsNyBAQAogI2luY2x1ZGUgIm5wcnVudGltZV9pbXBsLmgiCiAj
aW5jbHVkZSAicnVudGltZV9yb290LmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQVBJQ2Fz
dC5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPgogI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL1JlZ3VsYXJFeHByZXNzaW9uLmg+CiAjaW5jbHVkZSA8d3RmL0hleE51
bWJlci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkTGVha0NvdW50ZXIuaD4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3LmNwcAppbmRleCAxYTE4OTc3NGM3MDBhOWY5MmVkZjM3MmIxNWVmNzkyMDE3
NzJlZjBhLi5hNTk3YjFiN2I5NWNhNmU3ZTIwMDJjMjVlNmQ4M2E1ODFhMmI0OGM1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0xMTEsNiArMTExLDcgQEAKICNpbmNsdWRlICJWZWxv
Y2l0eURhdGEuaCIKICNpbmNsdWRlICJWaXN1YWxWaWV3cG9ydC5oIgogI2luY2x1ZGUgIldoZWVs
RXZlbnRUZXN0TW9uaXRvci5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBl
cy5oPgogI2luY2x1ZGUgPHd0Zi9IZXhOdW1iZXIuaD4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9j
SW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuaD4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuY3BwCmluZGV4IDFkZTkxZGM3ZThmNWViOGVkMGQ2YjY2Y2I0MDY4NTNmMjhlNDg0ZGUu
LmU5NTcwMzNmZWVjZjZlYmM0MGNkYjFlNzQ5MWUwYzgzM2FhOTZkYTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmNwcApAQCAtMTYwLDYgKzE2MCw3IEBACiAjaW5jbHVkZSAiV2hlZWxFdmVudFRlc3RNb25pdG9y
LmgiCiAjaW5jbHVkZSAiV2lkZ2V0LmgiCiAjaW5jbHVkZSAiV29ya2VyT3JXb3JrbGV0U2NyaXB0
Q29udHJvbGxlci5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPgog
I2luY2x1ZGUgPHd0Zi9GaWxlU3lzdGVtLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWRMZWFr
Q291bnRlci5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUG9pbnRlckxvY2tDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUG9pbnRlckxvY2tDb250cm9sbGVyLmNwcAppbmRleCAwZmQ5ODI1ZmFjNmU2Y2I0
NmUwZWVlNWIyNjdiMmQ4YmRkNzJmOGMzLi4xZGExNjI0ZjRlZjM5MzFlYTQ0YTJjZDJhYzVmYTQ2
MTEyNjc5Y2Y3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BvaW50ZXJMb2NrQ29u
dHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Qb2ludGVyTG9ja0NvbnRyb2xs
ZXIuY3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiUG9pbnRlckNhcHR1cmVDb250cm9s
bGVyLmgiCiAjaW5jbHVkZSAiVXNlckdlc3R1cmVJbmRpY2F0b3IuaCIKICNpbmNsdWRlICJWb2lk
Q2FsbGJhY2suaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Nl
dHRpbmdzLnlhbWwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwKaW5kZXggNjJj
Y2MzYjM2MTJhZjdkZjNjYThhZmExMTJiZDFjNmNjYzY4ODllMS4uODI4ZDU3ZjJhNjI3ZmE2YWI0
YWUxNTQzMjQzODQ2MGNjNTg4ZmRjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9T
ZXR0aW5ncy55YW1sCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbApAQCAt
MzQ0LDcgKzM0NCw3IEBAIE1heGltdW1IVE1MUGFyc2VyRE9NVHJlZURlcHRoOgogICB0eXBlOiB1
aW50MzJfdAogICBkZWZhdWx0VmFsdWU6CiAgICAgV2ViQ29yZToKLSAgICAgIGRlZmF1bHQ6IGRl
ZmF1bHRNYXhpbXVtSFRNTFBhcnNlckRPTVRyZWVEZXB0aAorICAgICAgZGVmYXVsdDogU2V0dGlu
Z3M6OmRlZmF1bHRNYXhpbXVtSFRNTFBhcnNlckRPTVRyZWVEZXB0aAogCiBNYXhpbXVtU291cmNl
QnVmZmVyU2l6ZToKICAgY29tbWVudDogPi0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2Nz
cC9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCmluZGV4IGQ4ODUxNjc0N2E0NGQ2YWRhNGVhZDBj
Njk5MGU3M2I5MTQyYjFhMWMuLjg2ZGExYjgwZWNlYTE3M2FmZjYwNzAwNmU5Y2Y3YzhkZTMxNmNk
M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBv
bGljeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9s
aWN5LmNwcApAQCAtNTMsNiArNTMsNyBAQAogI2luY2x1ZGUgIlNlY3VyaXR5UG9saWN5VmlvbGF0
aW9uRXZlbnQuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlRleHRFbmNvZGlu
Zy5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPgogI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL1NjcmlwdENhbGxTdGFjay5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuaD4KICNpbmNsdWRlIDxwYWwvY3J5cHRvL0NyeXB0
b0RpZ2VzdC5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVmlk
ZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5tbQppbmRleCAxYTUyNmM4
MzNmMzhhM2MyMDYzNjlkYzk3YmNjNzc2ZWUzNWEwNWUwLi41MjhiYzU4YWMwMDAwYjgwOThmZmU4
OTE4NmQwODFmOTMyMTVkOTRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
b2NvYS9WaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5tbQpA
QCAtNDIsNiArNDIsNyBAQAogI2ltcG9ydCAiUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1l
bnQuaCIKICNpbXBvcnQgIlRleHRUcmFja0xpc3QuaCIKICNpbXBvcnQgIlRpbWVSYW5nZXMuaCIK
KyNpbXBvcnQgIlVzZXJHZXN0dXJlSW5kaWNhdG9yLmgiCiAjaW1wb3J0IDxRdWFydHpDb3JlL0Nv
cmVBbmltYXRpb24uaD4KICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2ltcG9ydCA8
d3RmL1NvZnRMaW5raW5nLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5jcHAKaW5kZXggNGNjZjJiODFjYTY2MjRjZTQ2MGY0
YTQxZjUyMjU1NTRkYmU3NTcwMy4uMTlkNmRhMTk1OTlkNWQxZGNkZTM0YmM0YWI2MmZmNGM0YzMx
ZjI5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyU2Ny
b2xsYWJsZUFyZWEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
clNjcm9sbGFibGVBcmVhLmNwcApAQCAtNjgsNiArNjgsNyBAQAogI2luY2x1ZGUgIlNjcm9sbGJh
clRoZW1lLmgiCiAjaW5jbHVkZSAiU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCIKICNpbmNsdWRlICJT
aGFkb3dSb290LmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAj
aW5jbHVkZSA8d3RmL1NldEZvclNjb3BlLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcAppbmRleCBjYWI2M2Y1YjE0Y2U1
ZWI4N2VlNGQ4N2E4MGIzODY1ZGZiNmU5YjFmLi5hMThjMmVjYjNkNzJlOWFhYjA3NGJlMmFkZjA2
ZjI3NGNlMTEyZmY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGlzdEJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3gu
Y3BwCkBAIC02Myw2ICs2Myw3IEBACiAjaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5oIgogI2luY2x1
ZGUgIlN0eWxlVHJlZVJlc29sdmVyLmgiCiAjaW5jbHVkZSAiV2hlZWxFdmVudFRlc3RNb25pdG9y
LmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8
bWF0aC5oPgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3Rm
L1N0YWNrU3RhdHMuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJPYmplY3RJbmxpbmVzLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0
SW5saW5lcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYxNmM3OTRiNjhjNWIzYTZlNjA2NTA4NjgyYmNkOGZjMmUy
ZmRhOWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
T2JqZWN0SW5saW5lcy5oCkBAIC0wLDAgKzEsMTE1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworLy8gQmFzZSBjbGFzcyBmb3IgYWxsIHJlbmRlcmluZyB0cmVlIG9iamVjdHMuCitjbGFzcyBS
ZW5kZXJPYmplY3QgOiBwdWJsaWMgQ2FjaGVkSW1hZ2VDbGllbnQsIHB1YmxpYyBDYW5NYWtlV2Vh
a1B0cjxSZW5kZXJPYmplY3Q+IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFJlbmRlck9i
amVjdCk7CisgICAgZnJpZW5kIGNsYXNzIFJlbmRlckJsb2NrOworICAgIGZyaWVuZCBjbGFzcyBS
ZW5kZXJCbG9ja0Zsb3c7CisgICAgZnJpZW5kIGNsYXNzIFJlbmRlckVsZW1lbnQ7CisgICAgZnJp
ZW5kIGNsYXNzIFJlbmRlckxheWVyOworICAgIGZyaWVuZCBjbGFzcyBSZW5kZXJMYXllclNjcm9s
bGFibGVBcmVhOworcHVibGljOgorICAgIC8vIEFub255bW91cyBvYmplY3RzIHNob3VsZCBwYXNz
IHRoZSBkb2N1bWVudCBhcyB0aGVpciBub2RlLCBhbmQgdGhleSB3aWxsIHRoZW4gYXV0b21hdGlj
YWxseSBiZQorICAgIC8vIG1hcmtlZCBhcyBhbm9ueW1vdXMgaW4gdGhlIGNvbnN0cnVjdG9yLgor
ICAgIGV4cGxpY2l0IFJlbmRlck9iamVjdChOb2RlJik7CisgICAgdmlydHVhbCB+UmVuZGVyT2Jq
ZWN0KCk7CisKKyAgICBSZW5kZXJUaGVtZSYgdGhlbWUoKSBjb25zdDsKKworICAgIHZpcnR1YWwg
Y29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0ID0gMDsKKworICAgIFJlbmRlckVsZW1lbnQq
IHBhcmVudCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyZW50OyB9CisgICAgYm9vbCBpc0Rlc2NlbmRh
bnRPZihjb25zdCBSZW5kZXJPYmplY3QqKSBjb25zdDsKKworICAgIFJlbmRlck9iamVjdCogcHJl
dmlvdXNTaWJsaW5nKCkgY29uc3QgeyByZXR1cm4gbV9wcmV2aW91czsgfQorICAgIFJlbmRlck9i
amVjdCogbmV4dFNpYmxpbmcoKSBjb25zdCB7IHJldHVybiBtX25leHQ7IH0KKyAgICBSZW5kZXJP
YmplY3QqIHByZXZpb3VzSW5GbG93U2libGluZygpIGNvbnN0OworICAgIFJlbmRlck9iamVjdCog
bmV4dEluRmxvd1NpYmxpbmcoKSBjb25zdDsKKworICAgIC8vIFVzZSBSZW5kZXJFbGVtZW50IHZl
cnNpb25zIGluc3RlYWQuCisgICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGZpcnN0Q2hpbGRTbG93
KCkgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQorICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBs
YXN0Q2hpbGRTbG93KCkgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQorCisgICAgUmVuZGVyT2Jq
ZWN0KiBuZXh0SW5QcmVPcmRlcigpIGNvbnN0OworICAgIFJlbmRlck9iamVjdCogbmV4dEluUHJl
T3JkZXIoY29uc3QgUmVuZGVyT2JqZWN0KiBzdGF5V2l0aGluKSBjb25zdDsKKyAgICBSZW5kZXJP
YmplY3QqIG5leHRJblByZU9yZGVyQWZ0ZXJDaGlsZHJlbigpIGNvbnN0OworICAgIFJlbmRlck9i
amVjdCogbmV4dEluUHJlT3JkZXJBZnRlckNoaWxkcmVuKGNvbnN0IFJlbmRlck9iamVjdCogc3Rh
eVdpdGhpbikgY29uc3Q7CisgICAgUmVuZGVyT2JqZWN0KiBwcmV2aW91c0luUHJlT3JkZXIoKSBj
b25zdDsKKyAgICBSZW5kZXJPYmplY3QqIHByZXZpb3VzSW5QcmVPcmRlcihjb25zdCBSZW5kZXJP
YmplY3QqIHN0YXlXaXRoaW4pIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIFJlbmRlck9iamVj
dCogY2hpbGRBdCh1bnNpZ25lZCkgY29uc3Q7CisKKyAgICBSZW5kZXJPYmplY3QqIGZpcnN0TGVh
ZkNoaWxkKCkgY29uc3Q7CisgICAgUmVuZGVyT2JqZWN0KiBsYXN0TGVhZkNoaWxkKCkgY29uc3Q7
CisKKyNpZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQorICAgIC8vIE1pbmltYWwgZGlzdGFuY2Ug
YmV0d2VlbiB0aGUgYmxvY2sgd2l0aCBmaXhlZCBoZWlnaHQgYW5kIG92ZXJmbG93aW5nIGNvbnRl
bnQgYW5kIHRoZSB0ZXh0IGJsb2NrIHRvIGFwcGx5IHRleHQgYXV0b3NpemluZy4KKyAgICAvLyBU
aGUgZ3JlYXRlciB0aGlzIGNvbnN0YW50IGlzIHRoZSBtb3JlIHBvdGVudGlhbCBwbGFjZXMgd2Ug
aGF2ZSB3aGVyZSBhdXRvc2l6aW5nIGlzIHR1cm5lZCBvZmYuCisgICAgLy8gU28gaXQgc2hvdWxk
IGJlIGFzIGxvdyBhcyBwb3NzaWJsZS4gVGhlcmUgYXJlIHNpdGVzIHRoYXQgYnJlYWsgYXQgMi4K
KyAgICBzdGF0aWMgY29uc3QgaW50IFRleHRBdXRvU2l6aW5nRml4ZWRIZWlnaHREZXB0aCA9IDM7
CisKKyAgICBlbnVtIEJsb2NrQ29udGVudEhlaWdodFR5cGUgeworICAgICAgICBGaXhlZEhlaWdo
dCwKKyAgICAgICAgRmxleGlibGVIZWlnaHQsCisgICAgICAgIE92ZXJmbG93SGVpZ2h0CisgICAg
fTsKKworICAgIHR5cGVkZWYgQmxvY2tDb250ZW50SGVpZ2h0VHlwZSAoKkhlaWdodFR5cGVUcmF2
ZXJzZU5leHRJbmNsdXNpb25GdW5jdGlvbikoY29uc3QgUmVuZGVyT2JqZWN0Jik7CisgICAgUmVu
ZGVyT2JqZWN0KiB0cmF2ZXJzZU5leHQoY29uc3QgUmVuZGVyT2JqZWN0KiBzdGF5V2l0aGluLCBI
ZWlnaHRUeXBlVHJhdmVyc2VOZXh0SW5jbHVzaW9uRnVuY3Rpb24sIGludCYgY3VycmVudERlcHRo
LCBpbnQmIG5ld0ZpeGVkRGVwdGgpIGNvbnN0OworI2VuZGlmCisKKyAgICBXRUJDT1JFX0VYUE9S
VCBSZW5kZXJMYXllciogZW5jbG9zaW5nTGF5ZXIoKSBjb25zdDsKKworICAgIC8vIFNjcm9sbGlu
ZyBpcyBhIFJlbmRlckJveCBjb25jZXB0LCBob3dldmVyIHNvbWUgY29kZSBqdXN0IGNhcmVzIGFi
b3V0IHJlY3Vyc2l2ZWx5IHNjcm9sbGluZyBvdXIgZW5jbG9zaW5nIFNjcm9sbGFibGVBcmVhKHMp
LgorICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2Nyb2xsUmVjdFRvVmlzaWJsZShjb25zdCBMYXlv
dXRSZWN0JiBhYnNvbHV0ZVJlY3QsIGJvb2wgaW5zaWRlRml4ZWQsIGNvbnN0IFNjcm9sbFJlY3RU
b1Zpc2libGVPcHRpb25zJik7CisKKyAgICBXRUJDT1JFX0VYUE9SVCBSZW5kZXJCb3gmIGVuY2xv
c2luZ0JveCgpIGNvbnN0OworICAgIFJlbmRlckJveE1vZGVsT2JqZWN0JiBlbmNsb3NpbmdCb3hN
b2RlbE9iamVjdCgpIGNvbnN0OworICAgIFJlbmRlckJveCogZW5jbG9zaW5nU2Nyb2xsYWJsZUNv
bnRhaW5lckZvclNuYXBwaW5nKCkgY29uc3Q7CisKKyAgICAvLyBSZXR1cm4gb3VyIGVuY2xvc2lu
ZyBmbG93IHRocmVhZCBpZiB3ZSBhcmUgY29udGFpbmVkIGluc2lkZSBvbmUuIEZvbGxvd3MgdGhl
IGNvbnRhaW5pbmcgYmxvY2sgY2hhaW4uCisgICAgUmVuZGVyRnJhZ21lbnRlZEZsb3cqIGVuY2xv
c2luZ0ZyYWdtZW50ZWRGbG93KCkgY29uc3Q7CisKKyAgICBXRUJDT1JFX0VYUE9SVCBib29sIHVz
ZURhcmtBcHBlYXJhbmNlKCkgY29uc3Q7CisgICAgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25z
PiBzdHlsZUNvbG9yT3B0aW9ucygpIGNvbnN0OworCisjaWYgQVNTRVJUX0VOQUJMRUQKKyAgICB2
b2lkIHNldEhhc0FYT2JqZWN0KGJvb2wgZmxhZykgeyBtX2hhc0FYT2JqZWN0ID0gZmxhZzsgfQor
ICAgIGJvb2wgaGFzQVhPYmplY3QoKSBjb25zdCB7IHJldHVybiBtX2hhc0FYT2JqZWN0OyB9Cisj
ZW5kaWYKKworICAgIC8vIENyZWF0ZXMgYSBzY29wZSB3aGVyZSB0aGlzIG9iamVjdCB3aWxsIGFz
c2VydCBvbiBjYWxscyB0byBzZXROZWVkc0xheW91dCgpLgorICAgIGNsYXNzIFNldExheW91dE5l
ZWRlZEZvcmJpZGRlblNjb3BlOworCisgICAgLy8gT2J0YWlucyB0aGUgbmVhcmVzdCBlbmNsb3Np
bmcgYmxvY2sgKGluY2x1ZGluZyB0aGlzIGJsb2NrKSB0aGF0IGNvbnRyaWJ1dGVzIGEgZmlyc3Qt
bGluZSBzdHlsZSB0byBvdXIgaW5saW5lIGNoaWxkcmVuLgorICAgIHZpcnR1YWwgUmVuZGVyQmxv
Y2sqIGZpcnN0TGluZUJsb2NrKCkgY29uc3Q7CisKKyAgICAvLyBSZW5kZXJPYmplY3QgdHJlZSBt
YW5pcHVsYXRpb24KKyAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8KKyAgICB2aXJ0dWFsIGJvb2wgY2FuSGF2ZUNoaWxkcmVuKCkgY29uc3QgPSAwOworICAgIHZp
cnR1YWwgYm9vbCBjYW5IYXZlR2VuZXJhdGVkQ2hpbGRyZW4oKSBjb25zdDsKKyAgICB2aXJ0dWFs
IGJvb2wgY3JlYXRlc0Fub255bW91c1dyYXBwZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQor
ICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisjaWYgRU5B
QkxFKFRSRUVfREVCVUdHSU5HKQorICAgIHZvaWQgc2hvd05vZGVUcmVlRm9yVGhpcygpIGNvbnN0
OworICAgIHZvaWQgc2hvd1JlbmRlclRyZWVGb3JUaGlzKCkgY29uc3Q7CisgICAgdm9pZCBzaG93
TGluZVRyZWVGb3JUaGlzKCkgY29uc3Q7CisKKyAgICB2b2lkIG91dHB1dFJlbmRlck9iamVjdChX
VEY6OlRleHRTdHJlYW0mLCBib29sIG1hcmssIGludCBkZXB0aCkgY29uc3Q7CisgICAgdm9pZCBv
dXRwdXRSZW5kZXJTdWJUcmVlQW5kTWFyayhXVEY6OlRleHRTdHJlYW0mLCBjb25zdCBSZW5kZXJP
YmplY3QqIG1hcmtlZE9iamVjdCwgaW50IGRlcHRoKSBjb25zdDsKKyAgICB2b2lkIG91dHB1dFJl
Z2lvbnNJbmZvcm1hdGlvbihXVEY6OlRleHRTdHJlYW0mKSBjb25zdDsKKyNlbmRpZgorCisgICAg
Ym9vbCBpc1BzZXVkb0VsZW1lbnQoKSBjb25zdCB7IHJldHVybiBub2RlKCkgJiYgbm9kZSgpLT5p
c1BzZXVkb0VsZW1lbnQoKTsgfQorCisgICAgYm9vbCBpc1JlbmRlckVsZW1lbnQoKSBjb25zdCB7
IHJldHVybiAhaXNUZXh0KCk7IH0KKyAgICBib29sIGlzUmVuZGVyUmVwbGFjZWQoKSBjb25zdDsK
KyAgICBib29sIGlzQm94TW9kZWxPYmplY3QoKSBjb25zdDsKKyAgICBib29sIGlzUmVuZGVyQmxv
Y2soKSBjb25zdDsKKyAgICBib29sIGlzUmVuZGVyQmxvY2tGbG93KCkgY29uc3Q7CisgICAgYm9v
bCBpc1JlbmRlcklubGluZSgpIGNvbnN0OworICAgIGJvb2wgaXNSZW5kZXJMYXllck1vZGVsT2Jq
ZWN0KCkgY29uc3Q7CisKKyAgICBib29sIGlzQXRvbWljSW5saW5lTGV2ZWxCb3goKSBjb25zdDsK
KworICAgIHZpcnR1YWwgYm9vbCBpc0NvdW50ZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQor
ICAgIHZpcnR1YWwgYm9vbCBpc1F1b3RlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKworICAg
IHZpcnR1YWwgYm9vbCBpc0RldGFpbHNNYXJrZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQor
ICAgIHZpcnR1YWwgYm9vbCBpc0VtYmVkZGVkT2JqZWN0KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KKyAgICBib29sIGlzRmllbGRzZXQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgaXNGaWxl
VXBsb2FkQ29udHJvbCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29s
IGlzRnJhbWUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc0Zy
YW1lU2V0KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNJbWFn
ZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGlzSW5saW5lQmxv
Y2tPcklubGluZVRhYmxlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJv
b2wgaXNMaXN0Qm94KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wg
aXNMaXN0SXRlbSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGlz
TGlzdE1hcmtlcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGlz
TWVkaWEoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc01lbnVM
aXN0KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNNZXRlcigp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGlzUHJvZ3Jlc3MoKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRlckJ1dHRvbigp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGlzUmVuZGVySUZyYW1l
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJJbWFn
ZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisjaWYgRU5BQkxFKE1PREVMX0VMRU1FTlQpCisg
ICAgdmlydHVhbCBib29sIGlzUmVuZGVyTW9kZWwoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQor
I2VuZGlmCisgICAgdmlydHVhbCBib29sIGlzUmVuZGVyRnJhZ21lbnRDb250YWluZXIoKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1JlcGxpY2EoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQorCisgICAgdmlydHVhbCBib29sIGlzUnVieUlubGluZSgpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGlzUnVieUJsb2NrKCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNSdWJ5QmFzZSgpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGlzUnVieVJ1bigpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGlzUnVieVRleHQoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQorCisgICAgdmlydHVhbCBib29sIGlzU2xpZGVyKCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNTbGlkZXJUaHVtYigpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGlzVGFibGUoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1RhYmxlQ2VsbCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CisgICAgdmlydHVhbCBib29sIGlzUmVuZGVyVGFibGVDb2woKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1RhYmxlQ2FwdGlvbigpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGlzVGFibGVTZWN0aW9uKCkgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNUZXh0Q29udHJvbCgpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGlzVGV4dEFyZWEoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1RleHRGaWVsZCgpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGlzU2VhcmNoRmllbGQoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1RleHRDb250cm9sSW5uZXJCbG9jaygpIGNv
bnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGlzVmlkZW8oKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1dpZGdldCgpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGlzQ2FudmFzKCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KKyNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQorICAgIHZpcnR1YWwgYm9v
bCBpc0F0dGFjaG1lbnQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorI2VuZGlmCisjaWYgRU5B
QkxFKEZVTExTQ1JFRU5fQVBJKQorICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRlckZ1bGxTY3JlZW4o
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRlckZ1bGxT
Y3JlZW5QbGFjZWhvbGRlcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisjZW5kaWYKKyAgICB2
aXJ0dWFsIGJvb2wgaXNSZW5kZXJHcmlkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKworICAg
IHZpcnR1YWwgYm9vbCBpc011bHRpQ29sdW1uQmxvY2tGbG93KCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJNdWx0aUNvbHVtblNldCgpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGlzUmVuZGVyTXVsdGlDb2x1bW5GbG93
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJNdWx0
aUNvbHVtblNwYW5uZXJQbGFjZWhvbGRlcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisKKyAg
ICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJTY3JvbGxiYXJQYXJ0KCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KKworICAgIGJvb2wgaXNEb2N1bWVudEVsZW1lbnRSZW5kZXJlcigpIGNvbnN0IHsgcmV0
dXJuIGRvY3VtZW50KCkuZG9jdW1lbnRFbGVtZW50KCkgPT0gJm1fbm9kZTsgfQorICAgIGJvb2wg
aXNCb2R5KCkgY29uc3QgeyByZXR1cm4gbm9kZSgpICYmIG5vZGUoKS0+aGFzVGFnTmFtZShIVE1M
TmFtZXM6OmJvZHlUYWcpOyB9CisgICAgYm9vbCBpc0hSKCkgY29uc3QgeyByZXR1cm4gbm9kZSgp
ICYmIG5vZGUoKS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OmhyVGFnKTsgfQorICAgIGJvb2wgaXNM
ZWdlbmQoKSBjb25zdDsKKworICAgIGJvb2wgaXNIVE1MTWFycXVlZSgpIGNvbnN0OworCisgICAg
Ym9vbCBpc1RhYmxlUGFydCgpIGNvbnN0IHsgcmV0dXJuIGlzVGFibGVDZWxsKCkgfHwgaXNSZW5k
ZXJUYWJsZUNvbCgpIHx8IGlzVGFibGVDYXB0aW9uKCkgfHwgaXNUYWJsZVJvdygpIHx8IGlzVGFi
bGVTZWN0aW9uKCk7IH0KKworICAgIGlubGluZSBib29sIGlzQmVmb3JlQ29udGVudCgpIGNvbnN0
OworICAgIGlubGluZSBib29sIGlzQWZ0ZXJDb250ZW50KCkgY29uc3Q7CisgICAgaW5saW5lIGJv
b2wgaXNCZWZvcmVPckFmdGVyQ29udGVudCgpIGNvbnN0OworICAgIHN0YXRpYyBpbmxpbmUgYm9v
bCBpc0JlZm9yZUNvbnRlbnQoY29uc3QgUmVuZGVyT2JqZWN0KiBvYmopIHsgcmV0dXJuIG9iaiAm
JiBvYmotPmlzQmVmb3JlQ29udGVudCgpOyB9CisgICAgc3RhdGljIGlubGluZSBib29sIGlzQWZ0
ZXJDb250ZW50KGNvbnN0IFJlbmRlck9iamVjdCogb2JqKSB7IHJldHVybiBvYmogJiYgb2JqLT5p
c0FmdGVyQ29udGVudCgpOyB9CisgICAgc3RhdGljIGlubGluZSBib29sIGlzQmVmb3JlT3JBZnRl
ckNvbnRlbnQoY29uc3QgUmVuZGVyT2JqZWN0KiBvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmotPmlz
QmVmb3JlT3JBZnRlckNvbnRlbnQoKTsgfQorCisgICAgYm9vbCBiZWluZ0Rlc3Ryb3llZCgpIGNv
bnN0IHsgcmV0dXJuIG1fYml0ZmllbGRzLmJlaW5nRGVzdHJveWVkKCk7IH0KKworICAgIGJvb2wg
ZXZlckhhZExheW91dCgpIGNvbnN0IHsgcmV0dXJuIG1fYml0ZmllbGRzLmV2ZXJIYWRMYXlvdXQo
KTsgfQorCisgICAgYm9vbCBjaGlsZHJlbklubGluZSgpIGNvbnN0IHsgcmV0dXJuIG1fYml0Zmll
bGRzLmNoaWxkcmVuSW5saW5lKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q2hpbGRyZW5Jbmxp
bmUoYm9vbCBiKSB7IG1fYml0ZmllbGRzLnNldENoaWxkcmVuSW5saW5lKGIpOyB9CisKKyAgICBl
bnVtIEZyYWdtZW50ZWRGbG93U3RhdGUgeworICAgICAgICBOb3RJbnNpZGVGcmFnbWVudGVkRmxv
dyA9IDAsCisgICAgICAgIEluc2lkZUluRnJhZ21lbnRlZEZsb3cgPSAxLAorICAgIH07CisKKyAg
ICB2b2lkIHNldEZyYWdtZW50ZWRGbG93U3RhdGVJbmNsdWRpbmdEZXNjZW5kYW50cyhGcmFnbWVu
dGVkRmxvd1N0YXRlLCBjb25zdCBSZW5kZXJFbGVtZW50KiBmcmFnbWVudGVkRmxvd1Jvb3QpOwor
CisgICAgRnJhZ21lbnRlZEZsb3dTdGF0ZSBmcmFnbWVudGVkRmxvd1N0YXRlKCkgY29uc3QgeyBy
ZXR1cm4gbV9iaXRmaWVsZHMuZnJhZ21lbnRlZEZsb3dTdGF0ZSgpOyB9CisgICAgdm9pZCBzZXRG
cmFnbWVudGVkRmxvd1N0YXRlKEZyYWdtZW50ZWRGbG93U3RhdGUgc3RhdGUpIHsgbV9iaXRmaWVs
ZHMuc2V0RnJhZ21lbnRlZEZsb3dTdGF0ZShzdGF0ZSk7IH0KKworI2lmIEVOQUJMRShNQVRITUwp
CisgICAgdmlydHVhbCBib29sIGlzUmVuZGVyTWF0aE1MQmxvY2soKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRlck1hdGhNTFRhYmxlKCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJNYXRoTUxPcGVyYXRvcigp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGlzUmVuZGVyTWF0aE1M
Um93KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJN
YXRoTUxNYXRoKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNS
ZW5kZXJNYXRoTUxNZW5jbG9zZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVh
bCBib29sIGlzUmVuZGVyTWF0aE1MRmVuY2VkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAg
ICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJNYXRoTUxGZW5jZWRPcGVyYXRvcigpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGlzUmVuZGVyTWF0aE1MRnJhY3Rpb24oKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRlck1hdGhNTFBh
ZGRlZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGlzUmVuZGVy
TWF0aE1MUm9vdCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGlz
UmVuZGVyTWF0aE1MU3BhY2UoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwg
Ym9vbCBpc1JlbmRlck1hdGhNTFNxdWFyZVJvb3QoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQor
ICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRlck1hdGhNTFNjcmlwdHMoKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRlck1hdGhNTFRva2VuKCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJNYXRoTUxVbmRlck92ZXIo
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorI2VuZGlmIC8vIEVOQUJMRShNQVRITUwpCisKKyAg
ICAvLyBGSVhNRTogVW50aWwgYWxsIFNWRyByZW5kZXJzIGNhbiBiZSBzdWJjbGFzc2VzIG9mIFJl
bmRlclNWR01vZGVsT2JqZWN0IHdlIGhhdmUKKyAgICAvLyB0byBhZGQgU1ZHIHJlbmRlcmVyIG1l
dGhvZHMgdG8gUmVuZGVyT2JqZWN0IHdpdGggYW4gQVNTRVJUX05PVF9SRUFDSEVEKCkgZGVmYXVs
dCBpbXBsZW1lbnRhdGlvbi4KKyAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJTVkdNb2RlbE9iamVj
dCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGlzUmVuZGVyU1ZH
QmxvY2soKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNTVkdS
b290KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNTVkdDb250
YWluZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1NWR1Ry
YW5zZm9ybWFibGVDb250YWluZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1
YWwgYm9vbCBpc1NWR1ZpZXdwb3J0Q29udGFpbmVyKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
KyAgICB2aXJ0dWFsIGJvb2wgaXNTVkdHcmFkaWVudFN0b3AoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1NWR0hpZGRlbkNvbnRhaW5lcigpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGlzU1ZHUGF0aCgpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGlzU1ZHU2hhcGUoKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1NWR1RleHQoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1NWR1RleHRQYXRoKCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNTVkdUU3BhbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CisgICAgdmlydHVhbCBib29sIGlzU1ZHSW5saW5lKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNTVkdJbmxpbmVUZXh0KCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNTVkdJbWFnZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CisgICAgdmlydHVhbCBib29sIGlzU1ZHRm9yZWlnbk9iamVjdCgpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGlzU1ZHUmVzb3VyY2VDb250YWluZXIoKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1NWR1Jlc291cmNlRmlsdGVy
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNTVkdSZXNvdXJj
ZUNsaXBwZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1NW
R1Jlc291cmNlRmlsdGVyUHJpbWl0aXZlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKworICAg
IC8vIEZJWE1FOiBUaG9zZSBiZWxvbmcgaW50byBhIFNWRyBzcGVjaWZpYyBiYXNlLWNsYXNzIGZv
ciBhbGwgcmVuZGVyZXJzIChzZWUgYWJvdmUpCisgICAgLy8gVW5mb3J0dW5hdGVseSB3ZSBkb24n
dCBoYXZlIHN1Y2ggYSBjbGFzcyB5ZXQsIGJlY2F1c2UgaXQncyBub3QgcG9zc2libGUgZm9yIGFs
bCByZW5kZXJlcnMKKyAgICAvLyB0byBpbmhlcml0IGZyb20gUmVuZGVyU1ZHT2JqZWN0IC0+IFJl
bmRlck9iamVjdCAoc29tZSBuZWVkIFJlbmRlckJsb2NrIGluaGVyaXRhbmNlIGZvciBpbnN0YW5j
ZSkKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNUcmFuc2Zvcm1VcGRhdGUoKSB7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgc2V0TmVlZHNCb3VuZGFyaWVzVXBkYXRlKCk7CisgICAgdmlydHVhbCBib29s
IG5lZWRzQm91bmRhcmllc1VwZGF0ZSgpIHsgcmV0dXJuIGZhbHNlOyB9CisKKyAgICAvLyBQZXIg
U1ZHIDEuMSBvYmplY3RCb3VuZGluZ0JveCBpZ25vcmVzIGNsaXBwaW5nLCBtYXNraW5nLCBmaWx0
ZXIgZWZmZWN0cywgb3BhY2l0eSBhbmQgc3Ryb2tlLXdpZHRoLgorICAgIC8vIFRoaXMgaXMgdXNl
ZCBmb3IgYWxsIGNvbXB1dGF0aW9uIG9mIG9iamVjdEJvdW5kaW5nQm94IHJlbGF0aXZlIHVuaXRz
IGFuZCBieSBTVkdMb2NhdGFibGU6OmdldEJCb3goKS4KKyAgICAvLyBOT1RFOiBNYXJrZXJzIGFy
ZSBub3Qgc3BlY2lmaWNhbGx5IGlnbm9yZWQgaGVyZSBieSBTVkcgMS4xIHNwZWMsIGJ1dCB3ZSBp
Z25vcmUgdGhlbQorICAgIC8vIHNpbmNlIHN0cm9rZS13aWR0aCBpcyBpZ25vcmVkIChhbmQgbWFy
a2VyIHNpemUgY2FuIGRlcGVuZCBvbiBzdHJva2Utd2lkdGgpLgorICAgIC8vIG9iamVjdEJvdW5k
aW5nQm94IGlzIHJldHVybmVkIGxvY2FsIGNvb3JkaW5hdGVzLgorICAgIC8vIFRoZSBuYW1lIG9i
amVjdEJvdW5kaW5nQm94IGlzIHRha2VuIGZyb20gdGhlIFNWRyAxLjEgc3BlYy4KKyAgICB2aXJ0
dWFsIEZsb2F0UmVjdCBvYmplY3RCb3VuZGluZ0JveCgpIGNvbnN0OworICAgIHZpcnR1YWwgRmxv
YXRSZWN0IHN0cm9rZUJvdW5kaW5nQm94KCkgY29uc3Q7CisKKyAgICAvLyBSZXR1cm5zIHRoZSBz
bWFsbGVzdCByZWN0YW5nbGUgZW5jbG9zaW5nIGFsbCBvZiB0aGUgcGFpbnRlZCBjb250ZW50Cisg
ICAgLy8gcmVzcGVjdGluZyBjbGlwcGluZywgbWFza2luZywgZmlsdGVycywgb3BhY2l0eSwgc3Ry
b2tlLXdpZHRoIGFuZCBtYXJrZXJzCisgICAgdmlydHVhbCBGbG9hdFJlY3QgcmVwYWludFJlY3RJ
bkxvY2FsQ29vcmRpbmF0ZXMoKSBjb25zdDsKKworICAgIC8vIFRoaXMgb25seSByZXR1cm5zIHRo
ZSB0cmFuc2Zvcm09IiIgdmFsdWUgZnJvbSB0aGUgZWxlbWVudAorICAgIC8vIG1vc3QgY2FsbHNp
dGVzIHdhbnQgbG9jYWxUb1BhcmVudFRyYW5zZm9ybSgpIGluc3RlYWQuCisgICAgdmlydHVhbCBB
ZmZpbmVUcmFuc2Zvcm0gbG9jYWxUcmFuc2Zvcm0oKSBjb25zdDsKKworICAgIC8vIFJldHVybnMg
dGhlIGZ1bGwgdHJhbnNmb3JtIG1hcHBpbmcgZnJvbSBsb2NhbCBjb29yZGluYXRlcyB0byBsb2Nh
bCBjb29yZHMgZm9yIHRoZSBwYXJlbnQgU1ZHIHJlbmRlcmVyCisgICAgLy8gVGhpcyBpbmNsdWRl
cyBhbnkgdmlld3BvcnQgdHJhbnNmb3JtcyBhbmQgeC95IG9mZnNldHMgYXMgd2VsbCBhcyB0aGUg
dHJhbnNmb3JtPSIiIHZhbHVlIG9mZiB0aGUgZWxlbWVudC4KKyAgICB2aXJ0dWFsIGNvbnN0IEFm
ZmluZVRyYW5zZm9ybSYgbG9jYWxUb1BhcmVudFRyYW5zZm9ybSgpIGNvbnN0OworCisgICAgLy8g
U1ZHIHVzZXMgRmxvYXRQb2ludCBwcmVjaXNlIGhpdCB0ZXN0aW5nLCBhbmQgcGFzc2VzIHRoZSBw
b2ludCBpbiBwYXJlbnQKKyAgICAvLyBjb29yZGluYXRlcyBpbnN0ZWFkIG9mIGluIHJlcGFpbnQg
Y29udGFpbmVyIGNvb3JkaW5hdGVzLiAgRXZlbnR1YWxseSB0aGUKKyAgICAvLyByZXN0IG9mIHRo
ZSByZW5kZXJpbmcgdHJlZSB3aWxsIG1vdmUgdG8gYSBzaW1pbGFyIG1vZGVsLgorICAgIHZpcnR1
YWwgYm9vbCBub2RlQXRGbG9hdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0VGVzdFJl
c3VsdCYsIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50SW5QYXJlbnQsIEhpdFRlc3RBY3Rpb24pOwor
CisgICAgYm9vbCBoYXNJbnRyaW5zaWNBc3BlY3RSYXRpbygpIGNvbnN0IHsgcmV0dXJuIGlzUmVw
bGFjZWQoKSAmJiAoaXNJbWFnZSgpIHx8IGlzVmlkZW8oKSB8fCBpc0NhbnZhcygpKTsgfQorICAg
IGJvb2wgaXNBbm9ueW1vdXMoKSBjb25zdCB7IHJldHVybiBtX2JpdGZpZWxkcy5pc0Fub255bW91
cygpOyB9CisgICAgYm9vbCBpc0Fub255bW91c0Jsb2NrKCkgY29uc3Q7CisKKyAgICBib29sIGlz
RmxvYXRpbmcoKSBjb25zdCB7IHJldHVybiBtX2JpdGZpZWxkcy5mbG9hdGluZygpOyB9CisKKyAg
ICBib29sIGlzUG9zaXRpb25lZCgpIGNvbnN0IHsgcmV0dXJuIG1fYml0ZmllbGRzLmlzUG9zaXRp
b25lZCgpOyB9CisgICAgYm9vbCBpc0luRmxvd1Bvc2l0aW9uZWQoKSBjb25zdCB7IHJldHVybiBt
X2JpdGZpZWxkcy5pc1JlbGF0aXZlbHlQb3NpdGlvbmVkKCkgfHwgbV9iaXRmaWVsZHMuaXNTdGlj
a2lseVBvc2l0aW9uZWQoKTsgfQorICAgIGJvb2wgaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkgY29u
c3QgeyByZXR1cm4gbV9iaXRmaWVsZHMuaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCk7IH0gLy8gYWJz
b2x1dGUgb3IgZml4ZWQgcG9zaXRpb25pbmcKKyAgICBib29sIGlzRml4ZWRQb3NpdGlvbmVkKCkg
Y29uc3QgeyByZXR1cm4gaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkgJiYgc3R5bGUoKS5wb3NpdGlv
bigpID09IFBvc2l0aW9uVHlwZTo6Rml4ZWQ7IH0KKyAgICBib29sIGlzQWJzb2x1dGVseVBvc2l0
aW9uZWQoKSBjb25zdCB7IHJldHVybiBpc091dE9mRmxvd1Bvc2l0aW9uZWQoKSAmJiBzdHlsZSgp
LnBvc2l0aW9uKCkgPT0gUG9zaXRpb25UeXBlOjpBYnNvbHV0ZTsgfQorICAgIGJvb2wgaXNSZWxh
dGl2ZWx5UG9zaXRpb25lZCgpIGNvbnN0IHsgcmV0dXJuIG1fYml0ZmllbGRzLmlzUmVsYXRpdmVs
eVBvc2l0aW9uZWQoKTsgfQorICAgIGJvb2wgaXNTdGlja2lseVBvc2l0aW9uZWQoKSBjb25zdCB7
IHJldHVybiBtX2JpdGZpZWxkcy5pc1N0aWNraWx5UG9zaXRpb25lZCgpOyB9CisKKyAgICBib29s
IGlzVGV4dCgpIGNvbnN0ICB7IHJldHVybiAhbV9iaXRmaWVsZHMuaXNCb3goKSAmJiBtX2JpdGZp
ZWxkcy5pc1RleHRPclJlbmRlclZpZXcoKTsgfQorICAgIGJvb2wgaXNMaW5lQnJlYWsoKSBjb25z
dCB7IHJldHVybiBtX2JpdGZpZWxkcy5pc0xpbmVCcmVhaygpOyB9CisgICAgYm9vbCBpc0JSKCkg
Y29uc3QgeyByZXR1cm4gaXNMaW5lQnJlYWsoKSAmJiAhaXNXQlIoKTsgfQorICAgIGJvb2wgaXNM
aW5lQnJlYWtPcHBvcnR1bml0eSgpIGNvbnN0IHsgcmV0dXJuIGlzTGluZUJyZWFrKCkgJiYgaXNX
QlIoKTsgfQorICAgIGJvb2wgaXNUZXh0T3JMaW5lQnJlYWsoKSBjb25zdCB7IHJldHVybiBpc1Rl
eHQoKSB8fCBpc0xpbmVCcmVhaygpOyB9CisgICAgYm9vbCBpc0JveCgpIGNvbnN0IHsgcmV0dXJu
IG1fYml0ZmllbGRzLmlzQm94KCk7IH0KKyAgICBib29sIGlzVGFibGVSb3coKSBjb25zdCB7IHJl
dHVybiBtX2JpdGZpZWxkcy5pc1RhYmxlUm93KCk7IH0KKyAgICBib29sIGlzUmVuZGVyVmlldygp
IGNvbnN0ICB7IHJldHVybiBtX2JpdGZpZWxkcy5pc0JveCgpICYmIG1fYml0ZmllbGRzLmlzVGV4
dE9yUmVuZGVyVmlldygpOyB9CisgICAgYm9vbCBpc0lubGluZSgpIGNvbnN0IHsgcmV0dXJuIG1f
Yml0ZmllbGRzLmlzSW5saW5lKCk7IH0gLy8gaW5saW5lIG9iamVjdAorICAgIGJvb2wgaXNSZXBs
YWNlZCgpIGNvbnN0IHsgcmV0dXJuIG1fYml0ZmllbGRzLmlzUmVwbGFjZWQoKTsgfSAvLyBhICJy
ZXBsYWNlZCIgZWxlbWVudCAoc2VlIENTUykKKyAgICBib29sIGlzSG9yaXpvbnRhbFdyaXRpbmdN
b2RlKCkgY29uc3QgeyByZXR1cm4gbV9iaXRmaWVsZHMuaG9yaXpvbnRhbFdyaXRpbmdNb2RlKCk7
IH0KKworICAgIGJvb2wgaGFzUmVmbGVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fYml0ZmllbGRz
Lmhhc1JhcmVEYXRhKCkgJiYgcmFyZURhdGEoKS5oYXNSZWZsZWN0aW9uKCk7IH0KKyAgICBib29s
IGlzUmVuZGVyRnJhZ21lbnRlZEZsb3coKSBjb25zdCB7IHJldHVybiBtX2JpdGZpZWxkcy5oYXNS
YXJlRGF0YSgpICYmIHJhcmVEYXRhKCkuaXNSZW5kZXJGcmFnbWVudGVkRmxvdygpOyB9CisgICAg
Ym9vbCBoYXNPdXRsaW5lQXV0b0FuY2VzdG9yKCkgY29uc3QgeyByZXR1cm4gbV9iaXRmaWVsZHMu
aGFzUmFyZURhdGEoKSAmJiByYXJlRGF0YSgpLmhhc091dGxpbmVBdXRvQW5jZXN0b3IoKTsgfQor
CisgICAgYm9vbCBpc0V4Y2x1ZGVkRnJvbU5vcm1hbExheW91dCgpIGNvbnN0IHsgcmV0dXJuIG1f
Yml0ZmllbGRzLmlzRXhjbHVkZWRGcm9tTm9ybWFsTGF5b3V0KCk7IH0KKyAgICB2b2lkIHNldElz
RXhjbHVkZWRGcm9tTm9ybWFsTGF5b3V0KGJvb2wgZXhjbHVkZWQpIHsgbV9iaXRmaWVsZHMuc2V0
SXNFeGNsdWRlZEZyb21Ob3JtYWxMYXlvdXQoZXhjbHVkZWQpOyB9CisgICAgYm9vbCBpc0V4Y2x1
ZGVkQW5kUGxhY2VkSW5Cb3JkZXIoKSBjb25zdCB7IHJldHVybiBpc0V4Y2x1ZGVkRnJvbU5vcm1h
bExheW91dCgpICYmIGlzTGVnZW5kKCk7IH0KKworICAgIGJvb2wgaGFzTGF5ZXIoKSBjb25zdCB7
IHJldHVybiBtX2JpdGZpZWxkcy5oYXNMYXllcigpOyB9CisKKyAgICBlbnVtIEJveERlY29yYXRp
b25TdGF0ZSB7CisgICAgICAgIE5vQm94RGVjb3JhdGlvbnMsCisgICAgICAgIEhhc0JveERlY29y
YXRpb25zQW5kQmFja2dyb3VuZE9ic2N1cmF0aW9uU3RhdHVzSW52YWxpZCwKKyAgICAgICAgSGFz
Qm94RGVjb3JhdGlvbnNBbmRCYWNrZ3JvdW5kSXNLbm93blRvQmVPYnNjdXJlZCwKKyAgICAgICAg
SGFzQm94RGVjb3JhdGlvbnNBbmRCYWNrZ3JvdW5kTWF5QmVWaXNpYmxlLAorICAgIH07CisgICAg
Ym9vbCBoYXNWaXNpYmxlQm94RGVjb3JhdGlvbnMoKSBjb25zdCB7IHJldHVybiBtX2JpdGZpZWxk
cy5ib3hEZWNvcmF0aW9uU3RhdGUoKSAhPSBOb0JveERlY29yYXRpb25zOyB9CisgICAgYm9vbCBi
YWNrZ3JvdW5kSXNLbm93blRvQmVPYnNjdXJlZChjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZz
ZXQpOworCisgICAgYm9vbCBuZWVkc0xheW91dCgpIGNvbnN0OworICAgIGJvb2wgc2VsZk5lZWRz
TGF5b3V0KCkgY29uc3QgeyByZXR1cm4gbV9iaXRmaWVsZHMubmVlZHNMYXlvdXQoKTsgfQorICAg
IGJvb2wgbmVlZHNQb3NpdGlvbmVkTW92ZW1lbnRMYXlvdXQoKSBjb25zdCB7IHJldHVybiBtX2Jp
dGZpZWxkcy5uZWVkc1Bvc2l0aW9uZWRNb3ZlbWVudExheW91dCgpOyB9CisgICAgYm9vbCBuZWVk
c1Bvc2l0aW9uZWRNb3ZlbWVudExheW91dE9ubHkoKSBjb25zdDsKKworICAgIGJvb2wgcG9zQ2hp
bGROZWVkc0xheW91dCgpIGNvbnN0IHsgcmV0dXJuIG1fYml0ZmllbGRzLnBvc0NoaWxkTmVlZHNM
YXlvdXQoKTsgfQorICAgIGJvb2wgbmVlZHNTaW1wbGlmaWVkTm9ybWFsRmxvd0xheW91dCgpIGNv
bnN0IHsgcmV0dXJuIG1fYml0ZmllbGRzLm5lZWRzU2ltcGxpZmllZE5vcm1hbEZsb3dMYXlvdXQo
KTsgfQorICAgIGJvb2wgbmVlZHNTaW1wbGlmaWVkTm9ybWFsRmxvd0xheW91dE9ubHkoKSBjb25z
dDsKKyAgICBib29sIG5vcm1hbENoaWxkTmVlZHNMYXlvdXQoKSBjb25zdCB7IHJldHVybiBtX2Jp
dGZpZWxkcy5ub3JtYWxDaGlsZE5lZWRzTGF5b3V0KCk7IH0KKworICAgIGJvb2wgcHJlZmVycmVk
TG9naWNhbFdpZHRoc0RpcnR5KCkgY29uc3QgeyByZXR1cm4gbV9iaXRmaWVsZHMucHJlZmVycmVk
TG9naWNhbFdpZHRoc0RpcnR5KCk7IH0KKworICAgIGJvb2wgaXNTZWxlY3Rpb25Cb3JkZXIoKSBj
b25zdDsKKworICAgIGJvb2wgaGFzTm9uVmlzaWJsZU92ZXJmbG93KCkgY29uc3QgeyByZXR1cm4g
bV9iaXRmaWVsZHMuaGFzTm9uVmlzaWJsZU92ZXJmbG93KCk7IH0KKworICAgIGJvb2wgaGFzUG90
ZW50aWFsbHlTY3JvbGxhYmxlT3ZlcmZsb3coKSBjb25zdDsKKworICAgIGJvb2wgaGFzVHJhbnNm
b3JtUmVsYXRlZFByb3BlcnR5KCkgY29uc3QgeyByZXR1cm4gbV9iaXRmaWVsZHMuaGFzVHJhbnNm
b3JtUmVsYXRlZFByb3BlcnR5KCk7IH0gLy8gVHJhbnNmb3JtLCBwZXJzcGVjdGl2ZSBvciB0cmFu
c2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkLgorICAgIGJvb2wgaGFzVHJhbnNmb3JtKCkgY29uc3Qg
eyByZXR1cm4gaGFzVHJhbnNmb3JtUmVsYXRlZFByb3BlcnR5KCkgJiYgKHN0eWxlKCkuaGFzVHJh
bnNmb3JtKCkgfHwgc3R5bGUoKS50cmFuc2xhdGUoKSB8fCBzdHlsZSgpLnNjYWxlKCkgfHwgc3R5
bGUoKS5yb3RhdGUoKSk7IH0KKworICAgIGlubGluZSBib29sIHByZXNlcnZlc05ld2xpbmUoKSBj
b25zdDsKKworICAgIFJlbmRlclZpZXcmIHZpZXcoKSBjb25zdCB7IHJldHVybiAqZG9jdW1lbnQo
KS5yZW5kZXJWaWV3KCk7IH07CisKKyAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhpcyByZW5kZXJl
ciBpcyByb290ZWQuCisgICAgYm9vbCBpc1Jvb3RlZCgpIGNvbnN0OworCisgICAgTm9kZSogbm9k
ZSgpIGNvbnN0IHsgcmV0dXJuIGlzQW5vbnltb3VzKCkgPyBudWxscHRyIDogJm1fbm9kZTsgfQor
ICAgIE5vZGUqIG5vblBzZXVkb05vZGUoKSBjb25zdCB7IHJldHVybiBpc1BzZXVkb0VsZW1lbnQo
KSA/IG51bGxwdHIgOiBub2RlKCk7IH0KKworICAgIC8vIFJldHVybnMgdGhlIHN0eWxlZCBub2Rl
IHRoYXQgY2F1c2VkIHRoZSBnZW5lcmF0aW9uIG9mIHRoaXMgcmVuZGVyZXIuCisgICAgLy8gVGhp
cyBpcyB0aGUgc2FtZSBhcyBub2RlKCkgZXhjZXB0IGZvciByZW5kZXJlcnMgb2YgOmJlZm9yZSBh
bmQgOmFmdGVyCisgICAgLy8gcHNldWRvIGVsZW1lbnRzIGZvciB3aGljaCB0aGVpciBwYXJlbnQg
bm9kZSBpcyByZXR1cm5lZC4KKyAgICBOb2RlKiBnZW5lcmF0aW5nTm9kZSgpIGNvbnN0IHsgcmV0
dXJuIGlzUHNldWRvRWxlbWVudCgpID8gZ2VuZXJhdGluZ1BzZXVkb0hvc3RFbGVtZW50KCkgOiBu
b2RlKCk7IH0KKworICAgIERvY3VtZW50JiBkb2N1bWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fbm9k
ZS5kb2N1bWVudCgpOyB9CisgICAgRnJhbWUmIGZyYW1lKCkgY29uc3Q7CisgICAgUGFnZSYgcGFn
ZSgpIGNvbnN0OworICAgIFNldHRpbmdzJiBzZXR0aW5ncygpIGNvbnN0IHsgcmV0dXJuIHBhZ2Uo
KS5zZXR0aW5ncygpOyB9CisKKyAgICAvLyBSZXR1cm5zIHRoZSBvYmplY3QgY29udGFpbmluZyB0
aGlzIG9uZS4gQ2FuIGJlIGRpZmZlcmVudCBmcm9tIHBhcmVudCBmb3IgcG9zaXRpb25lZCBlbGVt
ZW50cy4KKyAgICAvLyBJZiByZXBhaW50Q29udGFpbmVyIGFuZCByZXBhaW50Q29udGFpbmVyU2tp
cHBlZCBhcmUgbm90IG51bGwsIG9uIHJldHVybiAqcmVwYWludENvbnRhaW5lclNraXBwZWQKKyAg
ICAvLyBpcyB0cnVlIGlmIHRoZSByZW5kZXJlciByZXR1cm5lZCBpcyBhbiBhbmNlc3RvciBvZiBy
ZXBhaW50Q29udGFpbmVyLgorICAgIFJlbmRlckVsZW1lbnQqIGNvbnRhaW5lcigpIGNvbnN0Owor
ICAgIFJlbmRlckVsZW1lbnQqIGNvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0
KiByZXBhaW50Q29udGFpbmVyLCBib29sJiByZXBhaW50Q29udGFpbmVyU2tpcHBlZCkgY29uc3Q7
CisKKyAgICBSZW5kZXJCb3hNb2RlbE9iamVjdCogb2Zmc2V0UGFyZW50KCkgY29uc3Q7CisKKyAg
ICB2b2lkIG1hcmtDb250YWluaW5nQmxvY2tzRm9yTGF5b3V0KFNjaGVkdWxlUmVsYXlvdXQgPSBT
Y2hlZHVsZVJlbGF5b3V0OjpZZXMsIFJlbmRlckVsZW1lbnQqIG5ld1Jvb3QgPSBudWxscHRyKTsK
KyAgICB2b2lkIHNldE5lZWRzTGF5b3V0KE1hcmtpbmdCZWhhdmlvciA9IE1hcmtDb250YWluaW5n
QmxvY2tDaGFpbik7CisgICAgdm9pZCBjbGVhck5lZWRzTGF5b3V0KCk7CisgICAgdm9pZCBzZXRQ
cmVmZXJyZWRMb2dpY2FsV2lkdGhzRGlydHkoYm9vbCwgTWFya2luZ0JlaGF2aW9yID0gTWFya0Nv
bnRhaW5pbmdCbG9ja0NoYWluKTsKKyAgICB2b2lkIGludmFsaWRhdGVDb250YWluZXJQcmVmZXJy
ZWRMb2dpY2FsV2lkdGhzKCk7CisKKyAgICB2b2lkIHNldE5lZWRzTGF5b3V0QW5kUHJlZldpZHRo
c1JlY2FsYygpOworCisgICAgdm9pZCBzZXRQb3NpdGlvblN0YXRlKFBvc2l0aW9uVHlwZSk7Cisg
ICAgdm9pZCBjbGVhclBvc2l0aW9uZWRTdGF0ZSgpIHsgbV9iaXRmaWVsZHMuY2xlYXJQb3NpdGlv
bmVkU3RhdGUoKTsgfQorCisgICAgdm9pZCBzZXRGbG9hdGluZyhib29sIGIgPSB0cnVlKSB7IG1f
Yml0ZmllbGRzLnNldEZsb2F0aW5nKGIpOyB9CisgICAgdm9pZCBzZXRJbmxpbmUoYm9vbCBiID0g
dHJ1ZSkgeyBtX2JpdGZpZWxkcy5zZXRJc0lubGluZShiKTsgfQorCisgICAgdm9pZCBzZXRIYXNW
aXNpYmxlQm94RGVjb3JhdGlvbnMoYm9vbCA9IHRydWUpOworICAgIHZvaWQgaW52YWxpZGF0ZUJh
Y2tncm91bmRPYnNjdXJhdGlvblN0YXR1cygpOworICAgIHZpcnR1YWwgYm9vbCBjb21wdXRlQmFj
a2dyb3VuZElzS25vd25Ub0JlT2JzY3VyZWQoY29uc3QgTGF5b3V0UG9pbnQmKSB7IHJldHVybiBm
YWxzZTsgfQorCisgICAgdm9pZCBzZXRJc1RleHQoKSB7IEFTU0VSVCghaXNCb3goKSk7IG1fYml0
ZmllbGRzLnNldElzVGV4dE9yUmVuZGVyVmlldyh0cnVlKTsgfQorICAgIHZvaWQgc2V0SXNMaW5l
QnJlYWsoKSB7IG1fYml0ZmllbGRzLnNldElzTGluZUJyZWFrKHRydWUpOyB9CisgICAgdm9pZCBz
ZXRJc0JveCgpIHsgbV9iaXRmaWVsZHMuc2V0SXNCb3godHJ1ZSk7IH0KKyAgICB2b2lkIHNldElz
VGFibGVSb3coKSB7IG1fYml0ZmllbGRzLnNldElzVGFibGVSb3codHJ1ZSk7IH0KKyAgICB2b2lk
IHNldElzUmVuZGVyVmlldygpIHsgQVNTRVJUKGlzQm94KCkpOyBtX2JpdGZpZWxkcy5zZXRJc1Rl
eHRPclJlbmRlclZpZXcodHJ1ZSk7IH0KKyAgICB2b2lkIHNldFJlcGxhY2VkKGJvb2wgYiA9IHRy
dWUpIHsgbV9iaXRmaWVsZHMuc2V0SXNSZXBsYWNlZChiKTsgfQorICAgIHZvaWQgc2V0SG9yaXpv
bnRhbFdyaXRpbmdNb2RlKGJvb2wgYiA9IHRydWUpIHsgbV9iaXRmaWVsZHMuc2V0SG9yaXpvbnRh
bFdyaXRpbmdNb2RlKGIpOyB9CisgICAgdm9pZCBzZXRIYXNOb25WaXNpYmxlT3ZlcmZsb3coYm9v
bCBiID0gdHJ1ZSkgeyBtX2JpdGZpZWxkcy5zZXRIYXNOb25WaXNpYmxlT3ZlcmZsb3coYik7IH0K
KyAgICB2b2lkIHNldEhhc0xheWVyKGJvb2wgYiA9IHRydWUpIHsgbV9iaXRmaWVsZHMuc2V0SGFz
TGF5ZXIoYik7IH0KKyAgICB2b2lkIHNldEhhc1RyYW5zZm9ybVJlbGF0ZWRQcm9wZXJ0eShib29s
IGIgPSB0cnVlKSB7IG1fYml0ZmllbGRzLnNldEhhc1RyYW5zZm9ybVJlbGF0ZWRQcm9wZXJ0eShi
KTsgfQorCisgICAgdm9pZCBzZXRIYXNSZWZsZWN0aW9uKGJvb2wgPSB0cnVlKTsKKyAgICB2b2lk
IHNldElzUmVuZGVyRnJhZ21lbnRlZEZsb3coYm9vbCA9IHRydWUpOworICAgIHZvaWQgc2V0SGFz
T3V0bGluZUF1dG9BbmNlc3Rvcihib29sID0gdHJ1ZSk7CisKKyAgICAvLyBIb29rIHNvIHRoYXQg
UmVuZGVyVGV4dENvbnRyb2wgY2FuIHJldHVybiB0aGUgbGluZSBoZWlnaHQgb2YgaXRzIGlubmVy
IHJlbmRlcmVyLgorICAgIC8vIEZvciBvdGhlciByZW5kZXJlcnMsIHRoZSB2YWx1ZSBpcyB0aGUg
c2FtZSBhcyBsaW5lSGVpZ2h0KGZhbHNlKS4KKyAgICB2aXJ0dWFsIGludCBpbm5lckxpbmVIZWln
aHQoKSBjb25zdDsKKworICAgIC8vIHVzZWQgZm9yIGVsZW1lbnQgc3RhdGUgdXBkYXRlcyB0aGF0
IGNhbm5vdCBiZSBmaXhlZCB3aXRoIGEKKyAgICAvLyByZXBhaW50IGFuZCBkbyBub3QgbmVlZCBh
IHJlbGF5b3V0CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUZyb21FbGVtZW50KCkgeyB9CisKKyAg
ICBib29sIGlzQ29tcG9zaXRlZCgpIGNvbnN0OworCisgICAgYm9vbCBoaXRUZXN0KGNvbnN0IEhp
dFRlc3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYgbG9j
YXRpb25JbkNvbnRhaW5lciwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0LCBI
aXRUZXN0RmlsdGVyID0gSGl0VGVzdEFsbCk7CisgICAgdmlydHVhbCBOb2RlKiBub2RlRm9ySGl0
VGVzdCgpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVIaXRUZXN0UmVzdWx0KEhpdFRl
c3RSZXN1bHQmLCBjb25zdCBMYXlvdXRQb2ludCYpOworCisgICAgdmlydHVhbCBib29sIG5vZGVB
dFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IEhpdFRl
c3RMb2NhdGlvbiYgbG9jYXRpb25JbkNvbnRhaW5lciwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3Vt
dWxhdGVkT2Zmc2V0LCBIaXRUZXN0QWN0aW9uKTsKKworICAgIHZpcnR1YWwgUG9zaXRpb24gcG9z
aXRpb25Gb3JQb2ludChjb25zdCBMYXlvdXRQb2ludCYpOworICAgIHZpcnR1YWwgVmlzaWJsZVBv
c2l0aW9uIHBvc2l0aW9uRm9yUG9pbnQoY29uc3QgTGF5b3V0UG9pbnQmLCBjb25zdCBSZW5kZXJG
cmFnbWVudENvbnRhaW5lciopOworICAgIFZpc2libGVQb3NpdGlvbiBjcmVhdGVWaXNpYmxlUG9z
aXRpb24oaW50IG9mZnNldCwgQWZmaW5pdHkpIGNvbnN0OworICAgIFZpc2libGVQb3NpdGlvbiBj
cmVhdGVWaXNpYmxlUG9zaXRpb24oY29uc3QgUG9zaXRpb24mKSBjb25zdDsKKworICAgIC8vIFJl
dHVybnMgdGhlIGNvbnRhaW5pbmcgYmxvY2sgbGV2ZWwgZWxlbWVudCBmb3IgdGhpcyBlbGVtZW50
LgorICAgIFdFQkNPUkVfRVhQT1JUIFJlbmRlckJsb2NrKiBjb250YWluaW5nQmxvY2soKSBjb25z
dDsKKyAgICBSZW5kZXJCbG9jayogY29udGFpbmluZ0Jsb2NrRm9yT2JqZWN0SW5GbG93KCkgY29u
c3Q7CisKKyAgICAvLyBDb252ZXJ0IHRoZSBnaXZlbiBsb2NhbCBwb2ludCB0byBhYnNvbHV0ZSBj
b29yZGluYXRlcy4gSWYgT3B0aW9uU2V0PE1hcENvb3JkaW5hdGVzTW9kZT4gaW5jbHVkZXMgVXNl
VHJhbnNmb3JtcywgdGFrZSB0cmFuc2Zvcm1zIGludG8gYWNjb3VudC4KKyAgICBXRUJDT1JFX0VY
UE9SVCBGbG9hdFBvaW50IGxvY2FsVG9BYnNvbHV0ZShjb25zdCBGbG9hdFBvaW50JiBsb2NhbFBv
aW50ID0gRmxvYXRQb2ludCgpLCBPcHRpb25TZXQ8TWFwQ29vcmRpbmF0ZXNNb2RlPiA9IHsgfSwg
Ym9vbCogd2FzRml4ZWQgPSBudWxscHRyKSBjb25zdDsKKyAgICBGbG9hdFBvaW50IGFic29sdXRl
VG9Mb2NhbChjb25zdCBGbG9hdFBvaW50JiwgT3B0aW9uU2V0PE1hcENvb3JkaW5hdGVzTW9kZT4g
PSB7IH0pIGNvbnN0OworCisgICAgLy8gQ29udmVydCBhIGxvY2FsIHF1YWQgdG8gYWJzb2x1dGUg
Y29vcmRpbmF0ZXMsIHRha2luZyB0cmFuc2Zvcm1zIGludG8gYWNjb3VudC4KKyAgICBGbG9hdFF1
YWQgbG9jYWxUb0Fic29sdXRlUXVhZChjb25zdCBGbG9hdFF1YWQmLCBPcHRpb25TZXQ8TWFwQ29v
cmRpbmF0ZXNNb2RlPiA9IFVzZVRyYW5zZm9ybXMsIGJvb2wqIHdhc0ZpeGVkID0gbnVsbHB0cikg
Y29uc3Q7CisgICAgLy8gQ29udmVydCBhbiBhYnNvbHV0ZSBxdWFkIHRvIGxvY2FsIGNvb3JkaW5h
dGVzLgorICAgIEZsb2F0UXVhZCBhYnNvbHV0ZVRvTG9jYWxRdWFkKGNvbnN0IEZsb2F0UXVhZCYs
IE9wdGlvblNldDxNYXBDb29yZGluYXRlc01vZGU+ID0gVXNlVHJhbnNmb3JtcykgY29uc3Q7CisK
KyAgICAvLyBDb252ZXJ0IGEgbG9jYWwgcXVhZCBpbnRvIHRoZSBjb29yZGluYXRlIHN5c3RlbSBv
ZiBjb250YWluZXIsIHRha2luZyB0cmFuc2Zvcm1zIGludG8gYWNjb3VudC4KKyAgICBXRUJDT1JF
X0VYUE9SVCBGbG9hdFF1YWQgbG9jYWxUb0NvbnRhaW5lclF1YWQoY29uc3QgRmxvYXRRdWFkJiwg
Y29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogY29udGFpbmVyLCBPcHRpb25TZXQ8TWFwQ29v
cmRpbmF0ZXNNb2RlPiA9IFVzZVRyYW5zZm9ybXMsIGJvb2wqIHdhc0ZpeGVkID0gbnVsbHB0cikg
Y29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgRmxvYXRQb2ludCBsb2NhbFRvQ29udGFpbmVyUG9p
bnQoY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGNvbnRh
aW5lciwgT3B0aW9uU2V0PE1hcENvb3JkaW5hdGVzTW9kZT4gPSBVc2VUcmFuc2Zvcm1zLCBib29s
KiB3YXNGaXhlZCA9IG51bGxwdHIpIGNvbnN0OworCisgICAgLy8gUmV0dXJuIHRoZSBvZmZzZXQg
ZnJvbSB0aGUgY29udGFpbmVyKCkgcmVuZGVyZXIgKGV4Y2x1ZGluZyB0cmFuc2Zvcm1zKS4gSW4g
bXVsdGktY29sdW1uIGxheW91dCwKKyAgICAvLyBkaWZmZXJlbnQgb2Zmc2V0cyBhcHBseSBhdCBk
aWZmZXJlbnQgcG9pbnRzLCBzbyByZXR1cm4gdGhlIG9mZnNldCB0aGF0IGFwcGxpZXMgdG8gdGhl
IGdpdmVuIHBvaW50LgorICAgIHZpcnR1YWwgTGF5b3V0U2l6ZSBvZmZzZXRGcm9tQ29udGFpbmVy
KFJlbmRlckVsZW1lbnQmLCBjb25zdCBMYXlvdXRQb2ludCYsIGJvb2wqIG9mZnNldERlcGVuZHNP
blBvaW50ID0gbnVsbHB0cikgY29uc3Q7CisgICAgLy8gUmV0dXJuIHRoZSBvZmZzZXQgZnJvbSBh
biBvYmplY3QgdXAgdGhlIGNvbnRhaW5lcigpIGNoYWluLiBBc3NlcnRzIHRoYXQgbm9uZSBvZiB0
aGUgaW50ZXJtZWRpYXRlIG9iamVjdHMgaGF2ZSB0cmFuc2Zvcm1zLgorICAgIExheW91dFNpemUg
b2Zmc2V0RnJvbUFuY2VzdG9yQ29udGFpbmVyKFJlbmRlckVsZW1lbnQmKSBjb25zdDsKKworI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgdmlydHVhbCB2b2lkIGNvbGxlY3RTZWxlY3Rpb25H
ZW9tZXRyaWVzKFZlY3RvcjxTZWxlY3Rpb25HZW9tZXRyeT4mLCB1bnNpZ25lZCBzdGFydE9mZnNl
dCA9IDAsIHVuc2lnbmVkIGVuZE9mZnNldCA9IHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+
OjptYXgoKSk7CisgICAgdmlydHVhbCB2b2lkIGFic29sdXRlUXVhZHNGb3JTZWxlY3Rpb24oVmVj
dG9yPEZsb2F0UXVhZD4mIHF1YWRzKSBjb25zdCB7IGFic29sdXRlUXVhZHMocXVhZHMpOyB9Cisg
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFZlY3RvcjxTZWxlY3Rpb25HZW9tZXRyeT4gY29sbGVj
dFNlbGVjdGlvbkdlb21ldHJpZXMoY29uc3QgU2ltcGxlUmFuZ2UmKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCBzdGF0aWMgVmVjdG9yPFNlbGVjdGlvbkdlb21ldHJ5PiBjb2xsZWN0U2VsZWN0aW9uR2Vv
bWV0cmllc1dpdGhvdXRVbmlvbkludGVyaW9yTGluZXMoY29uc3QgU2ltcGxlUmFuZ2UmKTsKKyNl
bmRpZgorCisgICAgdmlydHVhbCB2b2lkIGFic29sdXRlUmVjdHMoVmVjdG9yPEludFJlY3Q+Jiwg
Y29uc3QgTGF5b3V0UG9pbnQmKSBjb25zdCB7IH0KKworICAgIFdFQkNPUkVfRVhQT1JUIEludFJl
Y3QgYWJzb2x1dGVCb3VuZGluZ0JveFJlY3QoYm9vbCB1c2VUcmFuc2Zvcm0gPSB0cnVlLCBib29s
KiB3YXNGaXhlZCA9IG51bGxwdHIpIGNvbnN0OworICAgIEludFJlY3QgYWJzb2x1dGVCb3VuZGlu
Z0JveFJlY3RJZ25vcmluZ1RyYW5zZm9ybXMoKSBjb25zdCB7IHJldHVybiBhYnNvbHV0ZUJvdW5k
aW5nQm94UmVjdChmYWxzZSk7IH0KKworICAgIC8vIEJ1aWxkIGFuIGFycmF5IG9mIHF1YWRzIGlu
IGFic29sdXRlIGNvb3JkcyBmb3IgbGluZSBib3hlcworICAgIHZpcnR1YWwgdm9pZCBhYnNvbHV0
ZVF1YWRzKFZlY3RvcjxGbG9hdFF1YWQ+JiwgYm9vbCogLyp3YXNGaXhlZCovID0gbnVsbHB0cikg
Y29uc3QgeyB9CisgICAgdmlydHVhbCB2b2lkIGFic29sdXRlRm9jdXNSaW5nUXVhZHMoVmVjdG9y
PEZsb2F0UXVhZD4mKTsKKworICAgIGVudW0gY2xhc3MgQm91bmRpbmdSZWN0QmVoYXZpb3IgOiB1
aW50OF90IHsKKyAgICAgICAgUmVzcGVjdENsaXBwaW5nID0gMSA8PCAwLAorICAgICAgICBVc2VW
aXNpYmxlQm91bmRzID0gMSA8PCAxLAorICAgICAgICBJZ25vcmVUaW55UmVjdHMgPSAxIDw8IDIs
CisgICAgICAgIElnbm9yZUVtcHR5VGV4dFNlbGVjdGlvbnMgPSAxIDw8IDMsCisgICAgICAgIFVz
ZVNlbGVjdGlvbkhlaWdodCA9IDEgPDwgNCwKKyAgICB9OworICAgIFdFQkNPUkVfRVhQT1JUIHN0
YXRpYyBWZWN0b3I8RmxvYXRRdWFkPiBhYnNvbHV0ZVRleHRRdWFkcyhjb25zdCBTaW1wbGVSYW5n
ZSYsIE9wdGlvblNldDxCb3VuZGluZ1JlY3RCZWhhdmlvcj4gPSB7IH0pOworICAgIFdFQkNPUkVf
RVhQT1JUIHN0YXRpYyBWZWN0b3I8SW50UmVjdD4gYWJzb2x1dGVUZXh0UmVjdHMoY29uc3QgU2lt
cGxlUmFuZ2UmLCBPcHRpb25TZXQ8Qm91bmRpbmdSZWN0QmVoYXZpb3I+ID0geyB9KTsKKyAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgVmVjdG9yPEZsb2F0UmVjdD4gYWJzb2x1dGVCb3JkZXJBbmRU
ZXh0UmVjdHMoY29uc3QgU2ltcGxlUmFuZ2UmLCBPcHRpb25TZXQ8Qm91bmRpbmdSZWN0QmVoYXZp
b3I+ID0geyB9KTsKKyAgICBzdGF0aWMgVmVjdG9yPEZsb2F0UmVjdD4gY2xpZW50Qm9yZGVyQW5k
VGV4dFJlY3RzKGNvbnN0IFNpbXBsZVJhbmdlJik7CisKKyAgICAvLyB0aGUgcmVjdCB0aGF0IHdp
bGwgYmUgcGFpbnRlZCBpZiB0aGlzIG9iamVjdCBpcyBwYXNzZWQgYXMgdGhlIHBhaW50aW5nUm9v
dAorICAgIFdFQkNPUkVfRVhQT1JUIExheW91dFJlY3QgcGFpbnRpbmdSb290UmVjdChMYXlvdXRS
ZWN0JiB0b3BMZXZlbFJlY3QpOworCisgICAgdmlydHVhbCBMYXlvdXRVbml0IG1pblByZWZlcnJl
ZExvZ2ljYWxXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KKyAgICB2aXJ0dWFsIExheW91dFVu
aXQgbWF4UHJlZmVycmVkTG9naWNhbFdpZHRoKCkgY29uc3QgeyByZXR1cm4gMDsgfQorCisgICAg
Y29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKCkgY29uc3Q7CisgICAgY29uc3QgUmVuZGVyU3R5bGUm
IGZpcnN0TGluZVN0eWxlKCkgY29uc3Q7CisKKyAgICAvLyBBbm9ueW1vdXMgYmxvY2tzIHRoYXQg
YXJlIHBhcnQgb2Ygb2YgYSBjb250aW51YXRpb24gY2hhaW4gd2lsbCByZXR1cm4gdGhlaXIgaW5s
aW5lIGNvbnRpbnVhdGlvbidzIG91dGxpbmUgc3R5bGUgaW5zdGVhZC4KKyAgICAvLyBUaGlzIGlz
IHR5cGljYWxseSBvbmx5IHJlbGV2YW50IHdoZW4gcmVwYWludGluZy4KKyAgICB2aXJ0dWFsIGNv
bnN0IFJlbmRlclN0eWxlJiBvdXRsaW5lU3R5bGVGb3JSZXBhaW50KCkgY29uc3QgeyByZXR1cm4g
c3R5bGUoKTsgfQorCisgICAgdmlydHVhbCBDdXJzb3JEaXJlY3RpdmUgZ2V0Q3Vyc29yKGNvbnN0
IExheW91dFBvaW50JiwgQ3Vyc29yJikgY29uc3Q7CisKKyAgICAvLyBSZXR1cm4gdGhlIFJlbmRl
ckxheWVyTW9kZWxPYmplY3QgaW4gdGhlIGNvbnRhaW5lciBjaGFpbiB3aGljaCBpcyByZXNwb25z
aWJsZSBmb3IgcGFpbnRpbmcgdGhpcyBvYmplY3QsIG9yIG51bGxwdHIKKyAgICAvLyBpZiBwYWlu
dGluZyBpcyByb290LXJlbGF0aXZlLiBUaGlzIGlzIHRoZSBjb250YWluZXIgdGhhdCBzaG91bGQg
YmUgcGFzc2VkIHRvIHRoZSAnZm9yUmVwYWludCcgZnVuY3Rpb25zLgorICAgIFJlbmRlckxheWVy
TW9kZWxPYmplY3QqIGNvbnRhaW5lckZvclJlcGFpbnQoKSBjb25zdDsKKyAgICAvLyBBY3R1YWxs
eSBkbyB0aGUgcmVwYWludCBvZiByZWN0IHIgZm9yIHRoaXMgb2JqZWN0IHdoaWNoIGhhcyBiZWVu
IGNvbXB1dGVkIGluIHRoZSBjb29yZGluYXRlIHNwYWNlCisgICAgLy8gb2YgcmVwYWludENvbnRh
aW5lci4gSWYgcmVwYWludENvbnRhaW5lciBpcyBudWxscHRyLCByZXBhaW50IHZpYSB0aGUgdmll
dy4KKyAgICB2b2lkIHJlcGFpbnRVc2luZ0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVs
T2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBjb25zdCBMYXlvdXRSZWN0JiwgYm9vbCBzaG91bGRD
bGlwVG9MYXllciA9IHRydWUpIGNvbnN0OworCisgICAgLy8gUmVwYWludCB0aGUgZW50aXJlIG9i
amVjdC4gIENhbGxlZCB3aGVuLCBlLmcuLCB0aGUgY29sb3Igb2YgYSBib3JkZXIgY2hhbmdlcywg
b3Igd2hlbiBhIGJvcmRlcgorICAgIC8vIHN0eWxlIGNoYW5nZXMuCisgICAgdm9pZCByZXBhaW50
KCkgY29uc3Q7CisKKyAgICAvLyBSZXBhaW50IGEgc3BlY2lmaWMgc3VicmVjdGFuZ2xlIHdpdGhp
biBhIGdpdmVuIG9iamVjdC4gIFRoZSByZWN0IHxyfCBpcyBpbiB0aGUgb2JqZWN0J3MgY29vcmRp
bmF0ZSBzcGFjZS4KKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlcGFpbnRSZWN0YW5nbGUoY29u
c3QgTGF5b3V0UmVjdCYsIGJvb2wgc2hvdWxkQ2xpcFRvTGF5ZXIgPSB0cnVlKSBjb25zdDsKKwor
ICAgIC8vIFJlcGFpbnQgYSBzbG93IHJlcGFpbnQgb2JqZWN0LCB3aGljaCwgYXQgdGhpcyB0aW1l
LCBtZWFucyB3ZSBhcmUgcmVwYWludGluZyBhbiBvYmplY3Qgd2l0aCBiYWNrZ3JvdW5kLWF0dGFj
aG1lbnQ6Zml4ZWQuCisgICAgdm9pZCByZXBhaW50U2xvd1JlcGFpbnRPYmplY3QoKSBjb25zdDsK
KworICAgIGVudW0gY2xhc3MgVmlzaWJsZVJlY3RDb250ZXh0T3B0aW9uIHsKKyAgICAgICAgVXNl
RWRnZUluY2x1c2l2ZUludGVyc2VjdGlvbiA9IDEgPDwgMCwKKyAgICAgICAgQXBwbHlDb21wb3Np
dGVkQ2xpcHMgPSAxIDw8IDEsCisgICAgICAgIEFwcGx5Q29tcG9zaXRlZENvbnRhaW5lclNjcm9s
bHMgID0gMSA8PCAyLAorICAgICAgICBBcHBseUNvbnRhaW5lckNsaXAgPSAxIDw8IDMsCisgICAg
fTsKKyAgICBzdHJ1Y3QgVmlzaWJsZVJlY3RDb250ZXh0IHsKKyAgICAgICAgVmlzaWJsZVJlY3RD
b250ZXh0KGJvb2wgaGFzUG9zaXRpb25GaXhlZERlc2NlbmRhbnQgPSBmYWxzZSwgYm9vbCBkaXJ0
eVJlY3RJc0ZsaXBwZWQgPSBmYWxzZSwgT3B0aW9uU2V0PFZpc2libGVSZWN0Q29udGV4dE9wdGlv
bj4gb3B0aW9ucyA9IHsgfSkKKyAgICAgICAgICAgIDogaGFzUG9zaXRpb25GaXhlZERlc2NlbmRh
bnQoaGFzUG9zaXRpb25GaXhlZERlc2NlbmRhbnQpCisgICAgICAgICAgICAsIGRpcnR5UmVjdElz
RmxpcHBlZChkaXJ0eVJlY3RJc0ZsaXBwZWQpCisgICAgICAgICAgICAsIG9wdGlvbnMob3B0aW9u
cykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgIH0KKyAgICAgICAgYm9vbCBoYXNQb3NpdGlv
bkZpeGVkRGVzY2VuZGFudCB7IGZhbHNlIH07CisgICAgICAgIGJvb2wgZGlydHlSZWN0SXNGbGlw
cGVkIHsgZmFsc2UgfTsKKyAgICAgICAgYm9vbCBkZXNjZW5kYW50TmVlZHNFbmNsb3NpbmdJbnRS
ZWN0IHsgZmFsc2UgfTsKKyAgICAgICAgT3B0aW9uU2V0PFZpc2libGVSZWN0Q29udGV4dE9wdGlv
bj4gb3B0aW9uczsKKyAgICB9OworCisgICAgLy8gUmV0dXJucyB0aGUgcmVjdCB0aGF0IHNob3Vs
ZCBiZSByZXBhaW50ZWQgd2hlbmV2ZXIgdGhpcyBvYmplY3QgY2hhbmdlcy4gVGhlIHJlY3QgaXMg
aW4gdGhlIHZpZXcncworICAgIC8vIGNvb3JkaW5hdGUgc3BhY2UuIFRoaXMgbWV0aG9kIGRlYWxz
IHdpdGggb3V0bGluZXMgYW5kIG92ZXJmbG93LgorICAgIExheW91dFJlY3QgYWJzb2x1dGVDbGlw
cGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludCgpIGNvbnN0IHsgcmV0dXJuIGNsaXBwZWRPdmVyZmxv
d1JlY3QobnVsbHB0ciwgdmlzaWJsZVJlY3RDb250ZXh0Rm9yUmVwYWludCgpKTsgfQorICAgIExh
eW91dFJlY3QgYWJzb2x1dGVDbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yU3BhdGlhbE5hdmlnYXRpb24o
KSBjb25zdCB7IHJldHVybiBjbGlwcGVkT3ZlcmZsb3dSZWN0KG51bGxwdHIsIHZpc2libGVSZWN0
Q29udGV4dEZvclNwYXRpYWxOYXZpZ2F0aW9uKCkpOyB9CisgICAgV0VCQ09SRV9FWFBPUlQgSW50
UmVjdCBwaXhlbFNuYXBwZWRBYnNvbHV0ZUNsaXBwZWRPdmVyZmxvd1JlY3QoKSBjb25zdDsKKyAg
ICB2aXJ0dWFsIExheW91dFJlY3QgY2xpcHBlZE92ZXJmbG93UmVjdChjb25zdCBSZW5kZXJMYXll
ck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBWaXNpYmxlUmVjdENvbnRleHQpIGNvbnN0
OworICAgIExheW91dFJlY3QgY2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoY29uc3QgUmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lcikgY29uc3QgeyByZXR1cm4gY2xp
cHBlZE92ZXJmbG93UmVjdChyZXBhaW50Q29udGFpbmVyLCB2aXNpYmxlUmVjdENvbnRleHRGb3JS
ZXBhaW50KCkpOyB9CisgICAgdmlydHVhbCBMYXlvdXRSZWN0IHJlY3RXaXRoT3V0bGluZUZvclJl
cGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgTGF5
b3V0VW5pdCBvdXRsaW5lV2lkdGgpIGNvbnN0OworICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBvdXRs
aW5lQm91bmRzRm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiAvKnJlcGFp
bnRDb250YWluZXIqLywgY29uc3QgUmVuZGVyR2VvbWV0cnlNYXAqID0gbnVsbHB0cikgY29uc3Qg
eyByZXR1cm4gTGF5b3V0UmVjdCgpOyB9CisKKyAgICAvLyBHaXZlbiBhIHJlY3QgaW4gdGhlIG9i
amVjdCdzIGNvb3JkaW5hdGUgc3BhY2UsIGNvbXB1dGUgYSByZWN0IHN1aXRhYmxlIGZvciByZXBh
aW50aW5nCisgICAgLy8gdGhhdCByZWN0IGluIHZpZXcgY29vcmRpbmF0ZXMuCisgICAgTGF5b3V0
UmVjdCBjb21wdXRlQWJzb2x1dGVSZXBhaW50UmVjdChjb25zdCBMYXlvdXRSZWN0JiByZWN0KSBj
b25zdCB7IHJldHVybiBjb21wdXRlUmVjdChyZWN0LCBudWxscHRyLCB2aXNpYmxlUmVjdENvbnRl
eHRGb3JSZXBhaW50KCkpOyB9CisgICAgLy8gR2l2ZW4gYSByZWN0IGluIHRoZSBvYmplY3QncyBj
b29yZGluYXRlIHNwYWNlLCBjb21wdXRlIGEgcmVjdCAgaW4gdGhlIGNvb3JkaW5hdGUgc3BhY2UK
KyAgICAvLyBvZiByZXBhaW50Q29udGFpbmVyIHN1aXRhYmxlIGZvciB0aGUgZ2l2ZW4gVmlzaWJs
ZVJlY3RDb250ZXh0LgorICAgIExheW91dFJlY3QgY29tcHV0ZVJlY3QoY29uc3QgTGF5b3V0UmVj
dCYsIGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFZpc2li
bGVSZWN0Q29udGV4dCkgY29uc3Q7CisgICAgTGF5b3V0UmVjdCBjb21wdXRlUmVjdEZvclJlcGFp
bnQoY29uc3QgTGF5b3V0UmVjdCYgcmVjdCwgY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCog
cmVwYWludENvbnRhaW5lcikgY29uc3QgeyByZXR1cm4gY29tcHV0ZVJlY3QocmVjdCwgcmVwYWlu
dENvbnRhaW5lciwgdmlzaWJsZVJlY3RDb250ZXh0Rm9yUmVwYWludCgpKTsgfQorICAgIEZsb2F0
UmVjdCBjb21wdXRlRmxvYXRSZWN0Rm9yUmVwYWludChjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBS
ZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyKSBjb25zdDsKKworICAgIC8v
IEdpdmVuIGEgcmVjdCBpbiB0aGUgb2JqZWN0J3MgY29vcmRpbmF0ZSBzcGFjZSwgY29tcHV0ZSB0
aGUgbG9jYXRpb24gaW4gY29udGFpbmVyIHNwYWNlIHdoZXJlIHRoaXMgcmVjdCBpcyB2aXNpYmxl
LAorICAgIC8vIHdoZW4gY2xpcHBpbmcgYW5kIHNjcm9sbGluZyBhcyBzcGVjaWZpZWQgYnkgdGhl
IGNvbnRleHQuIFdoZW4gdXNpbmcgZWRnZS1pbmNsdXNpdmUgaW50ZXJzZWN0aW9uLCByZXR1cm4g
c3RkOjpudWxsb3B0CisgICAgLy8gcmF0aGVyIHRoYW4gYW4gZW1wdHkgcmVjdCBpZiB0aGUgcmVj
dCBpcyBjb21wbGV0ZWx5IGNsaXBwZWQgb3V0IGluIGNvbnRhaW5lciBzcGFjZS4KKyAgICB2aXJ0
dWFsIHN0ZDo6b3B0aW9uYWw8TGF5b3V0UmVjdD4gY29tcHV0ZVZpc2libGVSZWN0SW5Db250YWlu
ZXIoY29uc3QgTGF5b3V0UmVjdCYsIGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFp
bnRDb250YWluZXIsIFZpc2libGVSZWN0Q29udGV4dCkgY29uc3Q7CisgICAgdmlydHVhbCBzdGQ6
Om9wdGlvbmFsPEZsb2F0UmVjdD4gY29tcHV0ZUZsb2F0VmlzaWJsZVJlY3RJbkNvbnRhaW5lcihj
b25zdCBGbG9hdFJlY3QmLCBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29u
dGFpbmVyLCBWaXNpYmxlUmVjdENvbnRleHQpIGNvbnN0OworCisgICAgV0VCQ09SRV9FWFBPUlQg
Ym9vbCBoYXNOb25FbXB0eVZpc2libGVSZWN0UmVzcGVjdGluZ1BhcmVudEZyYW1lcygpIGNvbnN0
OworCisgICAgdmlydHVhbCB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdCB7IHJldHVybiAxOyB9CisK
KyAgICBib29sIGlzRmxvYXRpbmdPck91dE9mRmxvd1Bvc2l0aW9uZWQoKSBjb25zdCB7IHJldHVy
biAoaXNGbG9hdGluZygpIHx8IGlzT3V0T2ZGbG93UG9zaXRpb25lZCgpKTsgfQorICAgIGJvb2wg
aXNJbkZsb3coKSBjb25zdCB7IHJldHVybiAhaXNGbG9hdGluZ09yT3V0T2ZGbG93UG9zaXRpb25l
ZCgpOyB9CisKKyAgICBlbnVtIEhpZ2hsaWdodFN0YXRlIHsKKyAgICAgICAgTm9uZSwgLy8gVGhl
IG9iamVjdCBpcyBub3Qgc2VsZWN0ZWQuCisgICAgICAgIFN0YXJ0LCAvLyBUaGUgb2JqZWN0IGVp
dGhlciBjb250YWlucyB0aGUgc3RhcnQgb2YgYSBzZWxlY3Rpb24gcnVuIG9yIGlzIHRoZSBzdGFy
dCBvZiBhIHJ1bgorICAgICAgICBJbnNpZGUsIC8vIFRoZSBvYmplY3QgaXMgZnVsbHkgZW5jb21w
YXNzZWQgYnkgYSBzZWxlY3Rpb24gcnVuCisgICAgICAgIEVuZCwgLy8gVGhlIG9iamVjdCBlaXRo
ZXIgY29udGFpbnMgdGhlIGVuZCBvZiBhIHNlbGVjdGlvbiBydW4gb3IgaXMgdGhlIGVuZCBvZiBh
IHJ1bgorICAgICAgICBCb3RoIC8vIFRoZSBvYmplY3QgY29udGFpbnMgYW4gZW50aXJlIHJ1biBv
ciBpcyB0aGUgc29sZSBzZWxlY3RlZCBvYmplY3QgaW4gdGhhdCBydW4KKyAgICB9OworCisgICAg
Ly8gVGhlIGN1cnJlbnQgc2VsZWN0aW9uIHN0YXRlIGZvciBhbiBvYmplY3QuICBGb3IgYmxvY2tz
LCB0aGUgc3RhdGUgcmVmZXJzIHRvIHRoZSBzdGF0ZSBvZiB0aGUgbGVhZgorICAgIC8vIGRlc2Nl
bmRhbnRzIChhcyBkZXNjcmliZWQgYWJvdmUgaW4gdGhlIEhpZ2hsaWdodFN0YXRlIGVudW0gZGVj
bGFyYXRpb24pLgorICAgIEhpZ2hsaWdodFN0YXRlIHNlbGVjdGlvblN0YXRlKCkgY29uc3QgeyBy
ZXR1cm4gbV9iaXRmaWVsZHMuc2VsZWN0aW9uU3RhdGUoKTsgfQorICAgIHZpcnR1YWwgdm9pZCBz
ZXRTZWxlY3Rpb25TdGF0ZShIaWdobGlnaHRTdGF0ZSk7CisgICAgaW5saW5lIHZvaWQgc2V0U2Vs
ZWN0aW9uU3RhdGVJZk5lZWRlZChIaWdobGlnaHRTdGF0ZSk7CisgICAgYm9vbCBjYW5VcGRhdGVT
ZWxlY3Rpb25PblJvb3RMaW5lQm94ZXMoKTsKKworICAgIC8vIEEgc2luZ2xlIHJlY3RhbmdsZSB0
aGF0IGVuY29tcGFzc2VzIGFsbCBvZiB0aGUgc2VsZWN0ZWQgb2JqZWN0cyB3aXRoaW4gdGhpcyBv
YmplY3QuICBVc2VkIHRvIGRldGVybWluZSB0aGUgdGlnaHRlc3QKKyAgICAvLyBwb3NzaWJsZSBi
b3VuZGluZyBib3ggZm9yIHRoZSBzZWxlY3Rpb24uCisgICAgTGF5b3V0UmVjdCBzZWxlY3Rpb25S
ZWN0KGJvb2wgY2xpcFRvVmlzaWJsZUNvbnRlbnQgPSB0cnVlKSB7IHJldHVybiBzZWxlY3Rpb25S
ZWN0Rm9yUmVwYWludChudWxscHRyLCBjbGlwVG9WaXNpYmxlQ29udGVudCk7IH0KKyAgICB2aXJ0
dWFsIExheW91dFJlY3Qgc2VsZWN0aW9uUmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJN
b2RlbE9iamVjdCogLypyZXBhaW50Q29udGFpbmVyKi8sIGJvb2wgLypjbGlwVG9WaXNpYmxlQ29u
dGVudCovID0gdHJ1ZSkgeyByZXR1cm4gTGF5b3V0UmVjdCgpOyB9CisKKyAgICB2aXJ0dWFsIGJv
b2wgY2FuQmVTZWxlY3Rpb25MZWFmKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKworICAgIC8v
IFdoZXRoZXIgb3Igbm90IGEgZ2l2ZW4gYmxvY2sgbmVlZHMgdG8gcGFpbnQgc2VsZWN0aW9uIGdh
cHMuCisgICAgdmlydHVhbCBib29sIHNob3VsZFBhaW50U2VsZWN0aW9uR2FwcygpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CisKKyAgICAvLyBXaGVuIHBlcmZvcm1pbmcgYSBnbG9iYWwgZG9jdW1l
bnQgdGVhci1kb3duLCBvciB3aGVuIGdvaW5nIGludG8gdGhlIGJhY2svZm9yd2FyZCBjYWNoZSwg
dGhlIHJlbmRlcmVyIG9mIHRoZSBkb2N1bWVudCBpcyBjbGVhcmVkLgorICAgIGJvb2wgcmVuZGVy
VHJlZUJlaW5nRGVzdHJveWVkKCkgY29uc3Q7CisKKyAgICB2b2lkIGRlc3Ryb3koKTsKKworICAg
IC8vIFZpcnR1YWwgZnVuY3Rpb24gaGVscGVycyBmb3IgdGhlIGRlcHJlY2F0ZWQgRmxleGlibGUg
Qm94IExheW91dCAoZGlzcGxheTogLXdlYmtpdC1ib3gpLgorICAgIHZpcnR1YWwgYm9vbCBpc0Rl
cHJlY2F0ZWRGbGV4aWJsZUJveCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgLy8gVmly
dHVhbCBmdW5jdGlvbiBoZWxwZXIgZm9yIHRoZSBuZXcgRmxleGlibGVCb3ggTGF5b3V0IChkaXNw
bGF5OiAtd2Via2l0LWZsZXgpLgorICAgIHZpcnR1YWwgYm9vbCBpc0ZsZXhpYmxlQm94KCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBib29sIGlzRmxleGlibGVCb3hJbmNsdWRpbmdEZXBy
ZWNhdGVkKCkgY29uc3QgeyByZXR1cm4gaXNGbGV4aWJsZUJveCgpIHx8IGlzRGVwcmVjYXRlZEZs
ZXhpYmxlQm94KCk7IH0KKworICAgIHZpcnR1YWwgYm9vbCBpc0NvbWJpbmVUZXh0KCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KKworICAgIHZpcnR1YWwgaW50IGNhcmV0TWluT2Zmc2V0KCkgY29u
c3Q7CisgICAgdmlydHVhbCBpbnQgY2FyZXRNYXhPZmZzZXQoKSBjb25zdDsKKworICAgIHZpcnR1
YWwgaW50IHByZXZpb3VzT2Zmc2V0KGludCBjdXJyZW50KSBjb25zdDsKKyAgICB2aXJ0dWFsIGlu
dCBwcmV2aW91c09mZnNldEZvckJhY2t3YXJkRGVsZXRpb24oaW50IGN1cnJlbnQpIGNvbnN0Owor
ICAgIHZpcnR1YWwgaW50IG5leHRPZmZzZXQoaW50IGN1cnJlbnQpIGNvbnN0OworCisgICAgdm9p
ZCBpbWFnZUNoYW5nZWQoQ2FjaGVkSW1hZ2UqLCBjb25zdCBJbnRSZWN0KiA9IG51bGxwdHIpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBpbWFnZUNoYW5nZWQoV3JhcHBlZEltYWdlUHRyLCBj
b25zdCBJbnRSZWN0KiA9IG51bGxwdHIpIHsgfQorCisgICAgRG9jdW1lbnRUaW1lbGluZSogZG9j
dW1lbnRUaW1lbGluZSgpIGNvbnN0OworCisgICAgLy8gTWFwIHBvaW50cyBhbmQgcXVhZHMgdGhy
b3VnaCBlbGVtZW50cywgcG90ZW50aWFsbHkgdmlhIDNkIHRyYW5zZm9ybXMuIFlvdSBzaG91bGQg
bmV2ZXIgbmVlZCB0byBjYWxsIHRoZXNlIGRpcmVjdGx5OyB1c2UKKyAgICAvLyBsb2NhbFRvQWJz
b2x1dGUvYWJzb2x1dGVUb0xvY2FsIG1ldGhvZHMgaW5zdGVhZC4KKyAgICB2aXJ0dWFsIHZvaWQg
bWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50
Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE9wdGlvblNldDxNYXBDb29yZGluYXRlc01vZGU+
LCBib29sKiB3YXNGaXhlZCA9IG51bGxwdHIpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBtYXBB
YnNvbHV0ZVRvTG9jYWxQb2ludChPcHRpb25TZXQ8TWFwQ29vcmRpbmF0ZXNNb2RlPiwgVHJhbnNm
b3JtU3RhdGUmKSBjb25zdDsKKworICAgIC8vIFB1c2hlcyBzdGF0ZSBvbnRvIFJlbmRlckdlb21l
dHJ5TWFwIGFib3V0IGhvdyB0byBtYXAgY29vcmRpbmF0ZXMgZnJvbSB0aGlzIHJlbmRlcmVyIHRv
IGl0cyBjb250YWluZXIsIG9yIGFuY2VzdG9yVG9TdG9wQXQgKHdoaWNoZXZlciBpcyBlbmNvdW50
ZXJlZCBmaXJzdCkuCisgICAgLy8gUmV0dXJucyB0aGUgcmVuZGVyZXIgd2hpY2ggd2FzIG1hcHBl
ZCB0byAoY29udGFpbmVyIG9yIGFuY2VzdG9yVG9TdG9wQXQpLgorICAgIHZpcnR1YWwgY29uc3Qg
UmVuZGVyT2JqZWN0KiBwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9k
ZWxPYmplY3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJikgY29uc3Q7CisK
KyAgICBib29sIHNob3VsZFVzZVRyYW5zZm9ybUZyb21Db250YWluZXIoY29uc3QgUmVuZGVyT2Jq
ZWN0KiBjb250YWluZXIpIGNvbnN0OworICAgIHZvaWQgZ2V0VHJhbnNmb3JtRnJvbUNvbnRhaW5l
cihjb25zdCBSZW5kZXJPYmplY3QqIGNvbnRhaW5lciwgY29uc3QgTGF5b3V0U2l6ZSYgb2Zmc2V0
SW5Db250YWluZXIsIFRyYW5zZm9ybWF0aW9uTWF0cml4JikgY29uc3Q7CisKKyAgICB2aXJ0dWFs
IHZvaWQgYWRkRm9jdXNSaW5nUmVjdHMoVmVjdG9yPExheW91dFJlY3Q+JiwgY29uc3QgTGF5b3V0
UG9pbnQmIC8qIGFkZGl0aW9uYWxPZmZzZXQgKi8sIGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmpl
Y3QqIC8qIHBhaW50Q29udGFpbmVyICovID0gbnVsbHB0cikgeyB9OworCisgICAgTGF5b3V0UmVj
dCBhYnNvbHV0ZU91dGxpbmVCb3VuZHMoKSBjb25zdCB7IHJldHVybiBvdXRsaW5lQm91bmRzRm9y
UmVwYWludChudWxscHRyKTsgfQorCisgICAgLy8gRklYTUU6IFJlbmRlcmVycyBzaG91bGQgbm90
IG5lZWQgdG8gYmUgbm90aWZpZWQgYWJvdXQgaW50ZXJuYWwgcmVwYXJlbnRpbmcgKHdlYmtpdC5v
cmcvYi8yMjQxNDMpLgorICAgIGVudW0gY2xhc3MgSXNJbnRlcm5hbE1vdmUgeyBObywgWWVzIH07
CisgICAgdmlydHVhbCB2b2lkIGluc2VydGVkSW50b1RyZWUoSXNJbnRlcm5hbE1vdmUgPSBJc0lu
dGVybmFsTW92ZTo6Tm8pOworICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVSZW1vdmVkRnJvbVRyZWUo
SXNJbnRlcm5hbE1vdmUgPSBJc0ludGVybmFsTW92ZTo6Tm8pOworCisgICAgdm9pZCByZXNldEZy
YWdtZW50ZWRGbG93U3RhdGVPblJlbW92YWwoKTsKKyAgICB2b2lkIGluaXRpYWxpemVGcmFnbWVu
dGVkRmxvd1N0YXRlT25JbnNlcnRpb24oKTsKKworICAgIHZpcnR1YWwgU3RyaW5nIGRlc2NyaXB0
aW9uKCkgY29uc3Q7CisgICAgdmlydHVhbCBTdHJpbmcgZGVidWdEZXNjcmlwdGlvbigpIGNvbnN0
OworCitwcm90ZWN0ZWQ6CisgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vCisgICAgLy8gSGVscGVyIGZ1bmN0aW9ucy4gRGFuZ2Vyb3VzIHRvIHVzZSEKKyAgICB2
b2lkIHNldFByZXZpb3VzU2libGluZyhSZW5kZXJPYmplY3QqIHByZXZpb3VzKSB7IG1fcHJldmlv
dXMgPSBwcmV2aW91czsgfQorICAgIHZvaWQgc2V0TmV4dFNpYmxpbmcoUmVuZGVyT2JqZWN0KiBu
ZXh0KSB7IG1fbmV4dCA9IG5leHQ7IH0KKyAgICB2b2lkIHNldFBhcmVudChSZW5kZXJFbGVtZW50
Kik7CisgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisgICAg
dm9pZCBhZGRQREZVUkxSZWN0KFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50Jik7CisgICAg
Tm9kZSYgbm9kZUZvck5vbkFub255bW91cygpIGNvbnN0IHsgQVNTRVJUKCFpc0Fub255bW91cygp
KTsgcmV0dXJuIG1fbm9kZTsgfQorCisgICAgUmVuZGVyRWxlbWVudCogZmlyc3ROb25Bbm9ueW1v
dXNBbmNlc3RvcigpIGNvbnN0OworCisgICAgdm9pZCBhZGp1c3RSZWN0Rm9yT3V0bGluZUFuZFNo
YWRvdyhMYXlvdXRSZWN0JikgY29uc3Q7CisKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbEJlRGVzdHJv
eWVkKCk7CisKKyAgICB2b2lkIHNldE5lZWRzUG9zaXRpb25lZE1vdmVtZW50TGF5b3V0Qml0KGJv
b2wgYikgeyBtX2JpdGZpZWxkcy5zZXROZWVkc1Bvc2l0aW9uZWRNb3ZlbWVudExheW91dChiKTsg
fQorICAgIHZvaWQgc2V0Tm9ybWFsQ2hpbGROZWVkc0xheW91dEJpdChib29sIGIpIHsgbV9iaXRm
aWVsZHMuc2V0Tm9ybWFsQ2hpbGROZWVkc0xheW91dChiKTsgfQorICAgIHZvaWQgc2V0UG9zQ2hp
bGROZWVkc0xheW91dEJpdChib29sIGIpIHsgbV9iaXRmaWVsZHMuc2V0UG9zQ2hpbGROZWVkc0xh
eW91dChiKTsgfQorICAgIHZvaWQgc2V0TmVlZHNTaW1wbGlmaWVkTm9ybWFsRmxvd0xheW91dEJp
dChib29sIGIpIHsgbV9iaXRmaWVsZHMuc2V0TmVlZHNTaW1wbGlmaWVkTm9ybWFsRmxvd0xheW91
dChiKTsgfQorCisgICAgdmlydHVhbCBSZW5kZXJGcmFnbWVudGVkRmxvdyogbG9jYXRlRW5jbG9z
aW5nRnJhZ21lbnRlZEZsb3coKSBjb25zdDsKKyAgICBzdGF0aWMgdm9pZCBjYWxjdWxhdGVCb3Jk
ZXJTdHlsZUNvbG9yKGNvbnN0IEJvcmRlclN0eWxlJiwgY29uc3QgQm94U2lkZSYsIENvbG9yJik7
CisKKyAgICBzdGF0aWMgRnJhZ21lbnRlZEZsb3dTdGF0ZSBjb21wdXRlZEZyYWdtZW50ZWRGbG93
U3RhdGUoY29uc3QgUmVuZGVyT2JqZWN0Jik7CisKKyAgICBzdGF0aWMgVmlzaWJsZVJlY3RDb250
ZXh0IHZpc2libGVSZWN0Q29udGV4dEZvclJlcGFpbnQoKTsKKyAgICBzdGF0aWMgVmlzaWJsZVJl
Y3RDb250ZXh0IHZpc2libGVSZWN0Q29udGV4dEZvclNwYXRpYWxOYXZpZ2F0aW9uKCk7CisKKyAg
ICBib29sIGlzU2V0TmVlZHNMYXlvdXRGb3JiaWRkZW4oKSBjb25zdDsKKworcHJpdmF0ZToKKyAg
ICB2b2lkIGFkZEFic29sdXRlUmVjdEZvckxheWVyKExheW91dFJlY3QmIHJlc3VsdCk7CisgICAg
dm9pZCBzZXRMYXllck5lZWRzRnVsbFJlcGFpbnQoKTsKKyAgICB2b2lkIHNldExheWVyTmVlZHNG
dWxsUmVwYWludEZvclBvc2l0aW9uZWRNb3ZlbWVudExheW91dCgpOworCisjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKKyAgICBzdHJ1Y3QgU2VsZWN0aW9uR2VvbWV0cmllcyB7CisgICAgICAgIFZl
Y3RvcjxTZWxlY3Rpb25HZW9tZXRyeT4gZ2VvbWV0cmllczsKKyAgICAgICAgaW50IG1heExpbmVO
dW1iZXI7CisgICAgfTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgU2VsZWN0aW9uR2VvbWV0
cmllcyBjb2xsZWN0U2VsZWN0aW9uR2VvbWV0cmllc0ludGVybmFsKGNvbnN0IFNpbXBsZVJhbmdl
Jik7CisjZW5kaWYKKworICAgIE5vZGUqIGdlbmVyYXRpbmdQc2V1ZG9Ib3N0RWxlbWVudCgpIGNv
bnN0OworCisgICAgdm9pZCBwcm9wYWdhdGVSZXBhaW50VG9QYXJlbnRXaXRoT3V0bGluZUF1dG9J
Zk5lZWRlZChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0JiByZXBhaW50Q29udGFpbmVyLCBj
b25zdCBMYXlvdXRSZWN0JiByZXBhaW50UmVjdCkgY29uc3Q7CisKKyAgICB2aXJ0dWFsIGJvb2wg
aXNXQlIoKSBjb25zdCB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyByZXR1cm4gZmFsc2U7IH0KKwor
ICAgIHZvaWQgc2V0RXZlckhhZExheW91dChib29sIGIpIHsgbV9iaXRmaWVsZHMuc2V0RXZlckhh
ZExheW91dChiKTsgfQorCisgICAgYm9vbCBoYXNSYXJlRGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1f
Yml0ZmllbGRzLmhhc1JhcmVEYXRhKCk7IH0KKyAgICB2b2lkIHNldEhhc1JhcmVEYXRhKGJvb2wg
YikgeyBtX2JpdGZpZWxkcy5zZXRIYXNSYXJlRGF0YShiKTsgfQorCisjaWYgQVNTRVJUX0VOQUJM
RUQKKyAgICB2b2lkIHNldE5lZWRzTGF5b3V0SXNGb3JiaWRkZW4oYm9vbCBmbGFnKSBjb25zdCB7
IG1fc2V0TmVlZHNMYXlvdXRGb3JiaWRkZW4gPSBmbGFnOyB9CisgICAgdm9pZCBjaGVja0Jsb2Nr
UG9zaXRpb25lZE9iamVjdHNOZWVkTGF5b3V0KCk7CisjZW5kaWYKKworICAgIE5vZGUmIG1fbm9k
ZTsKKworICAgIFJlbmRlckVsZW1lbnQqIG1fcGFyZW50OworICAgIFJlbmRlck9iamVjdCogbV9w
cmV2aW91czsKKyAgICBSZW5kZXJPYmplY3QqIG1fbmV4dDsKKworI2lmIEFTU0VSVF9FTkFCTEVE
CisgICAgYm9vbCBtX2hhc0FYT2JqZWN0IDogMTsKKyAgICBtdXRhYmxlIGJvb2wgbV9zZXROZWVk
c0xheW91dEZvcmJpZGRlbiA6IDE7CisjZW5kaWYKKworI2RlZmluZSBBRERfQk9PTEVBTl9CSVRG
SUVMRChuYW1lLCBOYW1lKSBcCisgICAgcHJpdmF0ZTpcCisgICAgICAgIHVuc2lnbmVkIG1fIyNu
YW1lIDogMTtcCisgICAgcHVibGljOlwKKyAgICAgICAgYm9vbCBuYW1lKCkgY29uc3QgeyByZXR1
cm4gbV8jI25hbWU7IH1cCisgICAgICAgIHZvaWQgc2V0IyNOYW1lKGJvb2wgbmFtZSkgeyBtXyMj
bmFtZSA9IG5hbWU7IH1cCisKKyNkZWZpbmUgQUREX0VOVU1fQklURklFTEQobmFtZSwgTmFtZSwg
VHlwZSwgd2lkdGgpIFwKKyAgICBwcml2YXRlOlwKKyAgICAgICAgdW5zaWduZWQgbV8jI25hbWUg
OiB3aWR0aDtcCisgICAgcHVibGljOlwKKyAgICAgICAgVHlwZSBuYW1lKCkgY29uc3QgeyByZXR1
cm4gc3RhdGljX2Nhc3Q8VHlwZT4obV8jI25hbWUpOyB9XAorICAgICAgICB2b2lkIHNldCMjTmFt
ZShUeXBlIG5hbWUpIHsgbV8jI25hbWUgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obmFtZSk7IH1c
CisKKyAgICBjbGFzcyBSZW5kZXJPYmplY3RCaXRmaWVsZHMgeworICAgICAgICBlbnVtIFBvc2l0
aW9uZWRTdGF0ZSB7CisgICAgICAgICAgICBJc1N0YXRpY2FsbHlQb3NpdGlvbmVkID0gMCwKKyAg
ICAgICAgICAgIElzUmVsYXRpdmVseVBvc2l0aW9uZWQgPSAxLAorICAgICAgICAgICAgSXNPdXRP
ZkZsb3dQb3NpdGlvbmVkID0gMiwKKyAgICAgICAgICAgIElzU3RpY2tpbHlQb3NpdGlvbmVkID0g
MworICAgICAgICB9OworCisgICAgcHVibGljOgorICAgICAgICBSZW5kZXJPYmplY3RCaXRmaWVs
ZHMoY29uc3QgTm9kZSYgbm9kZSkKKyAgICAgICAgICAgIDogbV9oYXNSYXJlRGF0YShmYWxzZSkK
KyAgICAgICAgICAgICwgbV9iZWluZ0Rlc3Ryb3llZChmYWxzZSkKKyAgICAgICAgICAgICwgbV9u
ZWVkc0xheW91dChmYWxzZSkKKyAgICAgICAgICAgICwgbV9uZWVkc1Bvc2l0aW9uZWRNb3ZlbWVu
dExheW91dChmYWxzZSkKKyAgICAgICAgICAgICwgbV9ub3JtYWxDaGlsZE5lZWRzTGF5b3V0KGZh
bHNlKQorICAgICAgICAgICAgLCBtX3Bvc0NoaWxkTmVlZHNMYXlvdXQoZmFsc2UpCisgICAgICAg
ICAgICAsIG1fbmVlZHNTaW1wbGlmaWVkTm9ybWFsRmxvd0xheW91dChmYWxzZSkKKyAgICAgICAg
ICAgICwgbV9wcmVmZXJyZWRMb2dpY2FsV2lkdGhzRGlydHkoZmFsc2UpCisgICAgICAgICAgICAs
IG1fZmxvYXRpbmcoZmFsc2UpCisgICAgICAgICAgICAsIG1faXNBbm9ueW1vdXMobm9kZS5pc0Rv
Y3VtZW50Tm9kZSgpKQorICAgICAgICAgICAgLCBtX2lzVGV4dE9yUmVuZGVyVmlldyhmYWxzZSkK
KyAgICAgICAgICAgICwgbV9pc0JveChmYWxzZSkKKyAgICAgICAgICAgICwgbV9pc1RhYmxlUm93
KGZhbHNlKQorICAgICAgICAgICAgLCBtX2lzSW5saW5lKHRydWUpCisgICAgICAgICAgICAsIG1f
aXNSZXBsYWNlZChmYWxzZSkKKyAgICAgICAgICAgICwgbV9pc0xpbmVCcmVhayhmYWxzZSkKKyAg
ICAgICAgICAgICwgbV9ob3Jpem9udGFsV3JpdGluZ01vZGUodHJ1ZSkKKyAgICAgICAgICAgICwg
bV9oYXNMYXllcihmYWxzZSkKKyAgICAgICAgICAgICwgbV9oYXNOb25WaXNpYmxlT3ZlcmZsb3co
ZmFsc2UpCisgICAgICAgICAgICAsIG1faGFzVHJhbnNmb3JtUmVsYXRlZFByb3BlcnR5KGZhbHNl
KQorICAgICAgICAgICAgLCBtX2V2ZXJIYWRMYXlvdXQoZmFsc2UpCisgICAgICAgICAgICAsIG1f
Y2hpbGRyZW5JbmxpbmUoZmFsc2UpCisgICAgICAgICAgICAsIG1faXNFeGNsdWRlZEZyb21Ob3Jt
YWxMYXlvdXQoZmFsc2UpCisgICAgICAgICAgICAsIG1fcG9zaXRpb25lZFN0YXRlKElzU3RhdGlj
YWxseVBvc2l0aW9uZWQpCisgICAgICAgICAgICAsIG1fc2VsZWN0aW9uU3RhdGUoSGlnaGxpZ2h0
U3RhdGU6Ok5vbmUpCisgICAgICAgICAgICAsIG1fZnJhZ21lbnRlZEZsb3dTdGF0ZShOb3RJbnNp
ZGVGcmFnbWVudGVkRmxvdykKKyAgICAgICAgICAgICwgbV9ib3hEZWNvcmF0aW9uU3RhdGUoTm9C
b3hEZWNvcmF0aW9ucykKKyAgICAgICAgeworICAgICAgICB9CisKKyAgICAgICAgQUREX0JPT0xF
QU5fQklURklFTEQoaGFzUmFyZURhdGEsIEhhc1JhcmVEYXRhKTsKKworICAgICAgICBBRERfQk9P
TEVBTl9CSVRGSUVMRChiZWluZ0Rlc3Ryb3llZCwgQmVpbmdEZXN0cm95ZWQpOworICAgICAgICBB
RERfQk9PTEVBTl9CSVRGSUVMRChuZWVkc0xheW91dCwgTmVlZHNMYXlvdXQpOworICAgICAgICBB
RERfQk9PTEVBTl9CSVRGSUVMRChuZWVkc1Bvc2l0aW9uZWRNb3ZlbWVudExheW91dCwgTmVlZHNQ
b3NpdGlvbmVkTW92ZW1lbnRMYXlvdXQpOworICAgICAgICBBRERfQk9PTEVBTl9CSVRGSUVMRChu
b3JtYWxDaGlsZE5lZWRzTGF5b3V0LCBOb3JtYWxDaGlsZE5lZWRzTGF5b3V0KTsKKyAgICAgICAg
QUREX0JPT0xFQU5fQklURklFTEQocG9zQ2hpbGROZWVkc0xheW91dCwgUG9zQ2hpbGROZWVkc0xh
eW91dCk7CisgICAgICAgIEFERF9CT09MRUFOX0JJVEZJRUxEKG5lZWRzU2ltcGxpZmllZE5vcm1h
bEZsb3dMYXlvdXQsIE5lZWRzU2ltcGxpZmllZE5vcm1hbEZsb3dMYXlvdXQpOworICAgICAgICBB
RERfQk9PTEVBTl9CSVRGSUVMRChwcmVmZXJyZWRMb2dpY2FsV2lkdGhzRGlydHksIFByZWZlcnJl
ZExvZ2ljYWxXaWR0aHNEaXJ0eSk7CisgICAgICAgIEFERF9CT09MRUFOX0JJVEZJRUxEKGZsb2F0
aW5nLCBGbG9hdGluZyk7CisKKyAgICAgICAgQUREX0JPT0xFQU5fQklURklFTEQoaXNBbm9ueW1v
dXMsIElzQW5vbnltb3VzKTsKKyAgICAgICAgQUREX0JPT0xFQU5fQklURklFTEQoaXNUZXh0T3JS
ZW5kZXJWaWV3LCBJc1RleHRPclJlbmRlclZpZXcpOworICAgICAgICBBRERfQk9PTEVBTl9CSVRG
SUVMRChpc0JveCwgSXNCb3gpOworICAgICAgICBBRERfQk9PTEVBTl9CSVRGSUVMRChpc1RhYmxl
Um93LCBJc1RhYmxlUm93KTsKKyAgICAgICAgQUREX0JPT0xFQU5fQklURklFTEQoaXNJbmxpbmUs
IElzSW5saW5lKTsKKyAgICAgICAgQUREX0JPT0xFQU5fQklURklFTEQoaXNSZXBsYWNlZCwgSXNS
ZXBsYWNlZCk7CisgICAgICAgIEFERF9CT09MRUFOX0JJVEZJRUxEKGlzTGluZUJyZWFrLCBJc0xp
bmVCcmVhayk7CisgICAgICAgIEFERF9CT09MRUFOX0JJVEZJRUxEKGhvcml6b250YWxXcml0aW5n
TW9kZSwgSG9yaXpvbnRhbFdyaXRpbmdNb2RlKTsKKworICAgICAgICBBRERfQk9PTEVBTl9CSVRG
SUVMRChoYXNMYXllciwgSGFzTGF5ZXIpOworICAgICAgICBBRERfQk9PTEVBTl9CSVRGSUVMRCho
YXNOb25WaXNpYmxlT3ZlcmZsb3csIEhhc05vblZpc2libGVPdmVyZmxvdyk7IC8vIFNldCBpbiB0
aGUgY2FzZSBvZiBvdmVyZmxvdzphdXRvL3Njcm9sbC9oaWRkZW4KKyAgICAgICAgQUREX0JPT0xF
QU5fQklURklFTEQoaGFzVHJhbnNmb3JtUmVsYXRlZFByb3BlcnR5LCBIYXNUcmFuc2Zvcm1SZWxh
dGVkUHJvcGVydHkpOworCisgICAgICAgIEFERF9CT09MRUFOX0JJVEZJRUxEKGV2ZXJIYWRMYXlv
dXQsIEV2ZXJIYWRMYXlvdXQpOworCisgICAgICAgIC8vIGZyb20gUmVuZGVyQmxvY2sKKyAgICAg
ICAgQUREX0JPT0xFQU5fQklURklFTEQoY2hpbGRyZW5JbmxpbmUsIENoaWxkcmVuSW5saW5lKTsK
KworICAgICAgICBBRERfQk9PTEVBTl9CSVRGSUVMRChpc0V4Y2x1ZGVkRnJvbU5vcm1hbExheW91
dCwgSXNFeGNsdWRlZEZyb21Ob3JtYWxMYXlvdXQpOworCisgICAgcHJpdmF0ZToKKyAgICAgICAg
dW5zaWduZWQgbV9wb3NpdGlvbmVkU3RhdGUgOiAyOyAvLyBQb3NpdGlvbmVkU3RhdGUKKyAgICAg
ICAgdW5zaWduZWQgbV9zZWxlY3Rpb25TdGF0ZSA6IDM7IC8vIFNlbGVjdGlvblN0YXRlCisgICAg
ICAgIHVuc2lnbmVkIG1fZnJhZ21lbnRlZEZsb3dTdGF0ZSA6IDI7IC8vIEZyYWdtZW50ZWRGbG93
U3RhdGUKKyAgICAgICAgdW5zaWduZWQgbV9ib3hEZWNvcmF0aW9uU3RhdGUgOiAyOyAvLyBCb3hE
ZWNvcmF0aW9uU3RhdGUKKworICAgIHB1YmxpYzoKKyAgICAgICAgYm9vbCBpc091dE9mRmxvd1Bv
c2l0aW9uZWQoKSBjb25zdCB7IHJldHVybiBtX3Bvc2l0aW9uZWRTdGF0ZSA9PSBJc091dE9mRmxv
d1Bvc2l0aW9uZWQ7IH0KKyAgICAgICAgYm9vbCBpc1JlbGF0aXZlbHlQb3NpdGlvbmVkKCkgY29u
c3QgeyByZXR1cm4gbV9wb3NpdGlvbmVkU3RhdGUgPT0gSXNSZWxhdGl2ZWx5UG9zaXRpb25lZDsg
fQorICAgICAgICBib29sIGlzU3RpY2tpbHlQb3NpdGlvbmVkKCkgY29uc3QgeyByZXR1cm4gbV9w
b3NpdGlvbmVkU3RhdGUgPT0gSXNTdGlja2lseVBvc2l0aW9uZWQ7IH0KKyAgICAgICAgYm9vbCBp
c1Bvc2l0aW9uZWQoKSBjb25zdCB7IHJldHVybiBtX3Bvc2l0aW9uZWRTdGF0ZSAhPSBJc1N0YXRp
Y2FsbHlQb3NpdGlvbmVkOyB9CisKKyAgICAgICAgdm9pZCBzZXRQb3NpdGlvbmVkU3RhdGUoaW50
IHBvc2l0aW9uU3RhdGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIFRoaXMgbWFzayBtYXBz
IFBvc2l0aW9uVHlwZTo6Rml4ZWQgYW5kIFBvc2l0aW9uVHlwZTo6QWJzb2x1dGUgdG8gSXNPdXRP
ZkZsb3dQb3NpdGlvbmVkLCBzYXZpbmcgb25lIGJpdC4KKyAgICAgICAgICAgIG1fcG9zaXRpb25l
ZFN0YXRlID0gc3RhdGljX2Nhc3Q8UG9zaXRpb25lZFN0YXRlPihwb3NpdGlvblN0YXRlICYgMHgz
KTsKKyAgICAgICAgfQorICAgICAgICB2b2lkIGNsZWFyUG9zaXRpb25lZFN0YXRlKCkgeyBtX3Bv
c2l0aW9uZWRTdGF0ZSA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihQb3NpdGlvblR5cGU6OlN0YXRp
Yyk7IH0KKworICAgICAgICBBTFdBWVNfSU5MSU5FIEhpZ2hsaWdodFN0YXRlIHNlbGVjdGlvblN0
YXRlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8SGlnaGxpZ2h0U3RhdGU+KG1fc2VsZWN0
aW9uU3RhdGUpOyB9CisgICAgICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzZXRTZWxlY3Rpb25TdGF0
ZShIaWdobGlnaHRTdGF0ZSBzZWxlY3Rpb25TdGF0ZSkgeyBtX3NlbGVjdGlvblN0YXRlID0gc2Vs
ZWN0aW9uU3RhdGU7IH0KKworICAgICAgICBBTFdBWVNfSU5MSU5FIEZyYWdtZW50ZWRGbG93U3Rh
dGUgZnJhZ21lbnRlZEZsb3dTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEZyYWdt
ZW50ZWRGbG93U3RhdGU+KG1fZnJhZ21lbnRlZEZsb3dTdGF0ZSk7IH0KKyAgICAgICAgQUxXQVlT
X0lOTElORSB2b2lkIHNldEZyYWdtZW50ZWRGbG93U3RhdGUoRnJhZ21lbnRlZEZsb3dTdGF0ZSBm
cmFnbWVudGVkRmxvd1N0YXRlKSB7IG1fZnJhZ21lbnRlZEZsb3dTdGF0ZSA9IGZyYWdtZW50ZWRG
bG93U3RhdGU7IH0KKworICAgICAgICBBTFdBWVNfSU5MSU5FIEJveERlY29yYXRpb25TdGF0ZSBi
b3hEZWNvcmF0aW9uU3RhdGUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxCb3hEZWNvcmF0
aW9uU3RhdGU+KG1fYm94RGVjb3JhdGlvblN0YXRlKTsgfQorICAgICAgICBBTFdBWVNfSU5MSU5F
IHZvaWQgc2V0Qm94RGVjb3JhdGlvblN0YXRlKEJveERlY29yYXRpb25TdGF0ZSBib3hEZWNvcmF0
aW9uU3RhdGUpIHsgbV9ib3hEZWNvcmF0aW9uU3RhdGUgPSBib3hEZWNvcmF0aW9uU3RhdGU7IH0K
KyAgICB9OworCisgICAgUmVuZGVyT2JqZWN0Qml0ZmllbGRzIG1fYml0ZmllbGRzOworCisgICAg
Ly8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIFJlbmRlckVsZW1lbnRSYXJlRGF0YS4KKyAgICBjbGFz
cyBSZW5kZXJPYmplY3RSYXJlRGF0YSB7CisgICAgICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OworICAgIHB1YmxpYzoKKyAgICAgICAgUmVuZGVyT2JqZWN0UmFyZURhdGEoKTsKKyAgICAgICAg
flJlbmRlck9iamVjdFJhcmVEYXRhKCk7CisKKyAgICAgICAgQUREX0JPT0xFQU5fQklURklFTEQo
aGFzUmVmbGVjdGlvbiwgSGFzUmVmbGVjdGlvbik7CisgICAgICAgIEFERF9CT09MRUFOX0JJVEZJ
RUxEKGlzUmVuZGVyRnJhZ21lbnRlZEZsb3csIElzUmVuZGVyRnJhZ21lbnRlZEZsb3cpOworICAg
ICAgICBBRERfQk9PTEVBTl9CSVRGSUVMRChoYXNPdXRsaW5lQXV0b0FuY2VzdG9yLCBIYXNPdXRs
aW5lQXV0b0FuY2VzdG9yKTsKKworICAgICAgICAvLyBGcm9tIFJlbmRlckVsZW1lbnQKKyAgICAg
ICAgc3RkOjp1bmlxdWVfcHRyPFJlbmRlclN0eWxlPiBjYWNoZWRGaXJzdExpbmVTdHlsZTsKKyAg
ICAgICAgc3RkOjp1bmlxdWVfcHRyPFJlZmVyZW5jZWRTVkdSZXNvdXJjZXM+IHJlZmVyZW5jZWRT
VkdSZXNvdXJjZXM7CisgICAgICAgIFdlYWtQdHI8UmVuZGVyQmxvY2tGbG93PiBiYWNrZHJvcFJl
bmRlcmVyOworICAgIH07CisKKyAgICBjb25zdCBSZW5kZXJPYmplY3Q6OlJlbmRlck9iamVjdFJh
cmVEYXRhJiByYXJlRGF0YSgpIGNvbnN0OworICAgIFJlbmRlck9iamVjdFJhcmVEYXRhJiBlbnN1
cmVSYXJlRGF0YSgpOworICAgIHZvaWQgcmVtb3ZlUmFyZURhdGEoKTsKKworICAgIHR5cGVkZWYg
SGFzaE1hcDxjb25zdCBSZW5kZXJPYmplY3QqLCBzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVyT2JqZWN0
UmFyZURhdGE+PiBSYXJlRGF0YU1hcDsKKworICAgIHN0YXRpYyBSYXJlRGF0YU1hcCYgcmFyZURh
dGFNYXAoKTsKKworI3VuZGVmIEFERF9CT09MRUFOX0JJVEZJRUxECit9OworCitjbGFzcyBSZW5k
ZXJPYmplY3Q6OlNldExheW91dE5lZWRlZEZvcmJpZGRlblNjb3BlIHsKK3B1YmxpYzoKKyAgICBl
eHBsaWNpdCBTZXRMYXlvdXROZWVkZWRGb3JiaWRkZW5TY29wZShjb25zdCBSZW5kZXJPYmplY3Qm
LCBib29sIGlzRm9yYmlkZGVuID0gdHJ1ZSk7CisjaWYgQVNTRVJUX0VOQUJMRUQKKyAgICB+U2V0
TGF5b3V0TmVlZGVkRm9yYmlkZGVuU2NvcGUoKTsKK3ByaXZhdGU6CisgICAgY29uc3QgUmVuZGVy
T2JqZWN0JiBtX3JlbmRlck9iamVjdDsKKyAgICBib29sIG1fcHJlZXhpc3RpbmdGb3JiaWRkZW47
CisjZW5kaWYKK307CisKK2lubGluZSBGcmFtZSYgUmVuZGVyT2JqZWN0OjpmcmFtZSgpIGNvbnN0
Cit7CisgICAgcmV0dXJuICpkb2N1bWVudCgpLmZyYW1lKCk7Cit9CisKK2lubGluZSBQYWdlJiBS
ZW5kZXJPYmplY3Q6OnBhZ2UoKSBjb25zdAoreworICAgIC8vIFRoZSByZW5kZXIgdHJlZSB3aWxs
IGFsd2F5cyBiZSB0b3JuIGRvd24gYmVmb3JlIEZyYW1lIGlzIGRpc2Nvbm5lY3RlZCBmcm9tIFBh
Z2UsCisgICAgLy8gc28gaXQncyBzYWZlIHRvIGFzc3VtZSBGcmFtZTo6cGFnZSgpIGlzIG5vbi1u
dWxsIGFzIGxvbmcgYXMgdGhlcmUgYXJlIGxpdmUgUmVuZGVyT2JqZWN0cy4KKyAgICBBU1NFUlQo
ZnJhbWUoKS5wYWdlKCkpOworICAgIHJldHVybiAqZnJhbWUoKS5wYWdlKCk7Cit9CisKK2lubGlu
ZSBEb2N1bWVudFRpbWVsaW5lKiBSZW5kZXJPYmplY3Q6OmRvY3VtZW50VGltZWxpbmUoKSBjb25z
dAoreworICAgIHJldHVybiBkb2N1bWVudCgpLmV4aXN0aW5nVGltZWxpbmUoKTsKK30KKworaW5s
aW5lIGJvb2wgUmVuZGVyT2JqZWN0OjpyZW5kZXJUcmVlQmVpbmdEZXN0cm95ZWQoKSBjb25zdAor
eworICAgIHJldHVybiBkb2N1bWVudCgpLnJlbmRlclRyZWVCZWluZ0Rlc3Ryb3llZCgpOworfQor
CitpbmxpbmUgYm9vbCBSZW5kZXJPYmplY3Q6OmlzQmVmb3JlQ29udGVudCgpIGNvbnN0Cit7Cisg
ICAgLy8gVGV4dCBub2RlcyBkb24ndCBoYXZlIHRoZWlyIG93biBzdHlsZXMsIHNvIGlnbm9yZSB0
aGUgc3R5bGUgb24gYSB0ZXh0IG5vZGUuCisgICAgaWYgKGlzVGV4dCgpKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgaWYgKHN0eWxlKCkuc3R5bGVUeXBlKCkgIT0gUHNldWRvSWQ6OkJlZm9y
ZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiB0cnVlOworfQorCitpbmxpbmUg
Ym9vbCBSZW5kZXJPYmplY3Q6OmlzQWZ0ZXJDb250ZW50KCkgY29uc3QKK3sKKyAgICAvLyBUZXh0
IG5vZGVzIGRvbid0IGhhdmUgdGhlaXIgb3duIHN0eWxlcywgc28gaWdub3JlIHRoZSBzdHlsZSBv
biBhIHRleHQgbm9kZS4KKyAgICBpZiAoaXNUZXh0KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICBpZiAoc3R5bGUoKS5zdHlsZVR5cGUoKSAhPSBQc2V1ZG9JZDo6QWZ0ZXIpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworaW5saW5lIGJvb2wgUmVuZGVy
T2JqZWN0Ojppc0JlZm9yZU9yQWZ0ZXJDb250ZW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4gaXNC
ZWZvcmVDb250ZW50KCkgfHwgaXNBZnRlckNvbnRlbnQoKTsKK30KKworaW5saW5lIHZvaWQgUmVu
ZGVyT2JqZWN0OjpzZXROZWVkc0xheW91dChNYXJraW5nQmVoYXZpb3IgbWFya1BhcmVudHMpCit7
CisgICAgQVNTRVJUKCFpc1NldE5lZWRzTGF5b3V0Rm9yYmlkZGVuKCkpOworICAgIGlmIChtX2Jp
dGZpZWxkcy5uZWVkc0xheW91dCgpKQorICAgICAgICByZXR1cm47CisgICAgbV9iaXRmaWVsZHMu
c2V0TmVlZHNMYXlvdXQodHJ1ZSk7CisgICAgaWYgKG1hcmtQYXJlbnRzID09IE1hcmtDb250YWlu
aW5nQmxvY2tDaGFpbikKKyAgICAgICAgbWFya0NvbnRhaW5pbmdCbG9ja3NGb3JMYXlvdXQoKTsK
KyAgICBpZiAoaGFzTGF5ZXIoKSkKKyAgICAgICAgc2V0TGF5ZXJOZWVkc0Z1bGxSZXBhaW50KCk7
Cit9CisKK2lubGluZSBib29sIFJlbmRlck9iamVjdDo6cHJlc2VydmVzTmV3bGluZSgpIGNvbnN0
Cit7CisgICAgaWYgKGlzU1ZHSW5saW5lVGV4dCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICByZXR1cm4gc3R5bGUoKS5wcmVzZXJ2ZU5ld2xpbmUoKTsKK30KKworaW5saW5lIHZvaWQg
UmVuZGVyT2JqZWN0OjpzZXRTZWxlY3Rpb25TdGF0ZUlmTmVlZGVkKEhpZ2hsaWdodFN0YXRlIHN0
YXRlKQoreworICAgIGlmIChzZWxlY3Rpb25TdGF0ZSgpID09IHN0YXRlKQorICAgICAgICByZXR1
cm47CisKKyAgICBzZXRTZWxlY3Rpb25TdGF0ZShzdGF0ZSk7Cit9CisKK2lubGluZSB2b2lkIFJl
bmRlck9iamVjdDo6c2V0SGFzVmlzaWJsZUJveERlY29yYXRpb25zKGJvb2wgYikKK3sKKyAgICBp
ZiAoIWIpIHsKKyAgICAgICAgbV9iaXRmaWVsZHMuc2V0Qm94RGVjb3JhdGlvblN0YXRlKE5vQm94
RGVjb3JhdGlvbnMpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChoYXNWaXNpYmxl
Qm94RGVjb3JhdGlvbnMoKSkKKyAgICAgICAgcmV0dXJuOworICAgIG1fYml0ZmllbGRzLnNldEJv
eERlY29yYXRpb25TdGF0ZShIYXNCb3hEZWNvcmF0aW9uc0FuZEJhY2tncm91bmRPYnNjdXJhdGlv
blN0YXR1c0ludmFsaWQpOworfQorCitpbmxpbmUgdm9pZCBSZW5kZXJPYmplY3Q6OmludmFsaWRh
dGVCYWNrZ3JvdW5kT2JzY3VyYXRpb25TdGF0dXMoKQoreworICAgIGlmICghaGFzVmlzaWJsZUJv
eERlY29yYXRpb25zKCkpCisgICAgICAgIHJldHVybjsKKyAgICBtX2JpdGZpZWxkcy5zZXRCb3hE
ZWNvcmF0aW9uU3RhdGUoSGFzQm94RGVjb3JhdGlvbnNBbmRCYWNrZ3JvdW5kT2JzY3VyYXRpb25T
dGF0dXNJbnZhbGlkKTsKK30KKworaW5saW5lIGJvb2wgUmVuZGVyT2JqZWN0OjpiYWNrZ3JvdW5k
SXNLbm93blRvQmVPYnNjdXJlZChjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQpCit7Cisg
ICAgaWYgKG1fYml0ZmllbGRzLmJveERlY29yYXRpb25TdGF0ZSgpID09IEhhc0JveERlY29yYXRp
b25zQW5kQmFja2dyb3VuZE9ic2N1cmF0aW9uU3RhdHVzSW52YWxpZCkgeworICAgICAgICBCb3hE
ZWNvcmF0aW9uU3RhdGUgYm94RGVjb3JhdGlvblN0YXRlID0gY29tcHV0ZUJhY2tncm91bmRJc0tu
b3duVG9CZU9ic2N1cmVkKHBhaW50T2Zmc2V0KSA/IEhhc0JveERlY29yYXRpb25zQW5kQmFja2dy
b3VuZElzS25vd25Ub0JlT2JzY3VyZWQgOiBIYXNCb3hEZWNvcmF0aW9uc0FuZEJhY2tncm91bmRN
YXlCZVZpc2libGU7CisgICAgICAgIG1fYml0ZmllbGRzLnNldEJveERlY29yYXRpb25TdGF0ZShi
b3hEZWNvcmF0aW9uU3RhdGUpOworICAgIH0KKyAgICByZXR1cm4gbV9iaXRmaWVsZHMuYm94RGVj
b3JhdGlvblN0YXRlKCkgPT0gSGFzQm94RGVjb3JhdGlvbnNBbmRCYWNrZ3JvdW5kSXNLbm93blRv
QmVPYnNjdXJlZDsKK30KKworaW5saW5lIGJvb2wgUmVuZGVyT2JqZWN0OjpuZWVkc1NpbXBsaWZp
ZWROb3JtYWxGbG93TGF5b3V0T25seSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fYml0ZmllbGRz
Lm5lZWRzU2ltcGxpZmllZE5vcm1hbEZsb3dMYXlvdXQoKSAmJiAhbV9iaXRmaWVsZHMubmVlZHNM
YXlvdXQoKSAmJiAhbV9iaXRmaWVsZHMubm9ybWFsQ2hpbGROZWVkc0xheW91dCgpCisgICAgICAg
ICYmICFtX2JpdGZpZWxkcy5wb3NDaGlsZE5lZWRzTGF5b3V0KCkgJiYgIW1fYml0ZmllbGRzLm5l
ZWRzUG9zaXRpb25lZE1vdmVtZW50TGF5b3V0KCk7Cit9CisKK2lubGluZSBSZW5kZXJGcmFnbWVu
dGVkRmxvdyogUmVuZGVyT2JqZWN0OjplbmNsb3NpbmdGcmFnbWVudGVkRmxvdygpIGNvbnN0Cit7
CisgICAgaWYgKGZyYWdtZW50ZWRGbG93U3RhdGUoKSA9PSBOb3RJbnNpZGVGcmFnbWVudGVkRmxv
dykKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICByZXR1cm4gbG9jYXRlRW5jbG9zaW5n
RnJhZ21lbnRlZEZsb3coKTsKK30KKworaW5saW5lIGJvb2wgUmVuZGVyT2JqZWN0Ojppc0Fub255
bW91c0Jsb2NrKCkgY29uc3QKK3sKKyAgICAvLyBUaGlzIGZ1bmN0aW9uIG11c3QgYmUga2VwdCBp
biBzeW5jIHdpdGggYW5vbnltb3VzIGJsb2NrIGNyZWF0aW9uIGNvbmRpdGlvbnMgaW4gUmVuZGVy
QmxvY2s6OmNyZWF0ZUFub255bW91c0Jsb2NrKCkuCisgICAgLy8gRklYTUU6IFRoYXQgc2VlbXMg
ZGlmZmljdWx0LiBDYW4gd2UgY29tZSB1cCB3aXRoIGEgc2ltcGxlciB3YXkgdG8gbWFrZSBiZWhh
dmlvciBjb3JyZWN0PworICAgIC8vIEZJWE1FOiBEb2VzIHRoaXMgcmVsYXRpdmVseSBsb25nIGZ1
bmN0aW9uIGJlbmVmaXQgZnJvbSBiZWluZyBpbmxpbmVkPworICAgIHJldHVybiBpc0Fub255bW91
cygpCisgICAgICAgICYmIChzdHlsZSgpLmRpc3BsYXkoKSA9PSBEaXNwbGF5VHlwZTo6QmxvY2sg
fHwgc3R5bGUoKS5kaXNwbGF5KCkgPT0gRGlzcGxheVR5cGU6OkJveCkKKyAgICAgICAgJiYgc3R5
bGUoKS5zdHlsZVR5cGUoKSA9PSBQc2V1ZG9JZDo6Tm9uZQorICAgICAgICAmJiBpc1JlbmRlckJs
b2NrKCkKKyNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCisgICAgICAgICYmICFpc1JlbmRlckZ1
bGxTY3JlZW4oKQorICAgICAgICAmJiAhaXNSZW5kZXJGdWxsU2NyZWVuUGxhY2Vob2xkZXIoKQor
I2VuZGlmCisjaWYgRU5BQkxFKE1BVEhNTCkKKyAgICAgICAgJiYgIWlzUmVuZGVyTWF0aE1MQmxv
Y2soKQorI2VuZGlmCisgICAgICAgICYmICFpc0xpc3RNYXJrZXIoKQorICAgICAgICAmJiAhaXNS
ZW5kZXJGcmFnbWVudGVkRmxvdygpCisgICAgICAgICYmICFpc1JlbmRlck11bHRpQ29sdW1uU2V0
KCkKKyAgICAgICAgJiYgIWlzUmVuZGVyVmlldygpOworfQorCitpbmxpbmUgYm9vbCBSZW5kZXJP
YmplY3Q6Om5lZWRzTGF5b3V0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9iaXRmaWVsZHMubmVl
ZHNMYXlvdXQoKQorICAgICAgICB8fCBtX2JpdGZpZWxkcy5ub3JtYWxDaGlsZE5lZWRzTGF5b3V0
KCkKKyAgICAgICAgfHwgbV9iaXRmaWVsZHMucG9zQ2hpbGROZWVkc0xheW91dCgpCisgICAgICAg
IHx8IG1fYml0ZmllbGRzLm5lZWRzU2ltcGxpZmllZE5vcm1hbEZsb3dMYXlvdXQoKQorICAgICAg
ICB8fCBtX2JpdGZpZWxkcy5uZWVkc1Bvc2l0aW9uZWRNb3ZlbWVudExheW91dCgpOworfQorCitp
bmxpbmUgYm9vbCBSZW5kZXJPYmplY3Q6Om5lZWRzUG9zaXRpb25lZE1vdmVtZW50TGF5b3V0T25s
eSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fYml0ZmllbGRzLm5lZWRzUG9zaXRpb25lZE1vdmVt
ZW50TGF5b3V0KCkKKyAgICAgICAgJiYgIW1fYml0ZmllbGRzLm5lZWRzTGF5b3V0KCkKKyAgICAg
ICAgJiYgIW1fYml0ZmllbGRzLm5vcm1hbENoaWxkTmVlZHNMYXlvdXQoKQorICAgICAgICAmJiAh
bV9iaXRmaWVsZHMucG9zQ2hpbGROZWVkc0xheW91dCgpCisgICAgICAgICYmICFtX2JpdGZpZWxk
cy5uZWVkc1NpbXBsaWZpZWROb3JtYWxGbG93TGF5b3V0KCk7Cit9CisKK2lubGluZSB2b2lkIFJl
bmRlck9iamVjdDo6c2V0TmVlZHNMYXlvdXRBbmRQcmVmV2lkdGhzUmVjYWxjKCkKK3sKKyAgICBz
ZXROZWVkc0xheW91dCgpOworICAgIHNldFByZWZlcnJlZExvZ2ljYWxXaWR0aHNEaXJ0eSh0cnVl
KTsKK30KKworaW5saW5lIHZvaWQgUmVuZGVyT2JqZWN0OjpzZXRQb3NpdGlvblN0YXRlKFBvc2l0
aW9uVHlwZSBwb3NpdGlvbikKK3sKKyAgICBBU1NFUlQoKHBvc2l0aW9uICE9IFBvc2l0aW9uVHlw
ZTo6QWJzb2x1dGUgJiYgcG9zaXRpb24gIT0gUG9zaXRpb25UeXBlOjpGaXhlZCkgfHwgaXNCb3go
KSk7CisgICAgbV9iaXRmaWVsZHMuc2V0UG9zaXRpb25lZFN0YXRlKHN0YXRpY19jYXN0PGludD4o
cG9zaXRpb24pKTsKK30KKworaW5saW5lIEZsb2F0UXVhZCBSZW5kZXJPYmplY3Q6OmxvY2FsVG9B
YnNvbHV0ZVF1YWQoY29uc3QgRmxvYXRRdWFkJiBxdWFkLCBPcHRpb25TZXQ8TWFwQ29vcmRpbmF0
ZXNNb2RlPiBtb2RlLCBib29sKiB3YXNGaXhlZCkgY29uc3QKK3sKKyAgICByZXR1cm4gbG9jYWxU
b0NvbnRhaW5lclF1YWQocXVhZCwgbnVsbHB0ciwgbW9kZSwgd2FzRml4ZWQpOworfQorCitpbmxp
bmUgYXV0byBSZW5kZXJPYmplY3Q6OnZpc2libGVSZWN0Q29udGV4dEZvclJlcGFpbnQoKSAtPiBW
aXNpYmxlUmVjdENvbnRleHQKK3sKKyAgICByZXR1cm4geyBmYWxzZSwgZmFsc2UsIHsgVmlzaWJs
ZVJlY3RDb250ZXh0T3B0aW9uOjpBcHBseUNvbnRhaW5lckNsaXAsIFZpc2libGVSZWN0Q29udGV4
dE9wdGlvbjo6QXBwbHlDb21wb3NpdGVkQ29udGFpbmVyU2Nyb2xscyB9IH07Cit9CisKK2lubGlu
ZSBhdXRvIFJlbmRlck9iamVjdDo6dmlzaWJsZVJlY3RDb250ZXh0Rm9yU3BhdGlhbE5hdmlnYXRp
b24oKSAtPiBWaXNpYmxlUmVjdENvbnRleHQKK3sKKyAgICByZXR1cm4geyBmYWxzZSwgZmFsc2Us
IHsgVmlzaWJsZVJlY3RDb250ZXh0T3B0aW9uOjpBcHBseUNvbnRhaW5lckNsaXAsIFZpc2libGVS
ZWN0Q29udGV4dE9wdGlvbjo6QXBwbHlDb21wb3NpdGVkQ29udGFpbmVyU2Nyb2xscywgVmlzaWJs
ZVJlY3RDb250ZXh0T3B0aW9uOjpBcHBseUNvbXBvc2l0ZWRDbGlwcyB9IH07Cit9CisKK2lubGlu
ZSBib29sIFJlbmRlck9iamVjdDo6aXNTZXROZWVkc0xheW91dEZvcmJpZGRlbigpIGNvbnN0Cit7
CisjaWYgQVNTRVJUX0VOQUJMRUQKKyAgICByZXR1cm4gbV9zZXROZWVkc0xheW91dEZvcmJpZGRl
bjsKKyNlbHNlCisgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCit9CisKKyNpZiAhQVNTRVJUX0VO
QUJMRUQKKworaW5saW5lIFJlbmRlck9iamVjdDo6U2V0TGF5b3V0TmVlZGVkRm9yYmlkZGVuU2Nv
cGU6OlNldExheW91dE5lZWRlZEZvcmJpZGRlblNjb3BlKGNvbnN0IFJlbmRlck9iamVjdCYsIGJv
b2wpCit7Cit9CisKKyNlbmRpZgorCitpbmxpbmUgdm9pZCBOb2RlOjpzZXRSZW5kZXJlcihSZW5k
ZXJPYmplY3QqIHJlbmRlcmVyKQoreworICAgIG1fcmVuZGVyZXJXaXRoU3R5bGVGbGFncy5zZXRQ
b2ludGVyKHJlbmRlcmVyKTsKK30KKworaW5saW5lIFJlbmRlck9iamVjdCogUmVuZGVyT2JqZWN0
OjpwcmV2aW91c0luRmxvd1NpYmxpbmcoKSBjb25zdAoreworICAgIGF1dG8qIHByZXZpb3VzU2li
bGluZyA9IHRoaXMtPnByZXZpb3VzU2libGluZygpOworICAgIHdoaWxlIChwcmV2aW91c1NpYmxp
bmcgJiYgIXByZXZpb3VzU2libGluZy0+aXNJbkZsb3coKSkKKyAgICAgICAgcHJldmlvdXNTaWJs
aW5nID0gcHJldmlvdXNTaWJsaW5nLT5wcmV2aW91c1NpYmxpbmcoKTsKKyAgICByZXR1cm4gcHJl
dmlvdXNTaWJsaW5nOworfQorCitpbmxpbmUgUmVuZGVyT2JqZWN0KiBSZW5kZXJPYmplY3Q6Om5l
eHRJbkZsb3dTaWJsaW5nKCkgY29uc3QKK3sKKyAgICBhdXRvKiBuZXh0U2libGluZyA9IHRoaXMt
Pm5leHRTaWJsaW5nKCk7CisgICAgd2hpbGUgKG5leHRTaWJsaW5nICYmICFuZXh0U2libGluZy0+
aXNJbkZsb3coKSkKKyAgICAgICAgbmV4dFNpYmxpbmcgPSBuZXh0U2libGluZy0+bmV4dFNpYmxp
bmcoKTsKKyAgICByZXR1cm4gbmV4dFNpYmxpbmc7Cit9CisKK2lubGluZSBib29sIFJlbmRlck9i
amVjdDo6aXNBdG9taWNJbmxpbmVMZXZlbEJveCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHN0eWxl
KCkuaXNEaXNwbGF5SW5saW5lVHlwZSgpICYmICEoc3R5bGUoKS5kaXNwbGF5KCkgPT0gRGlzcGxh
eVR5cGU6OklubGluZSAmJiAhaXNSZXBsYWNlZCgpKTsKK30KKworaW5saW5lIGJvb2wgUmVuZGVy
T2JqZWN0OjpoYXNQb3RlbnRpYWxseVNjcm9sbGFibGVPdmVyZmxvdygpIGNvbnN0Cit7CisgICAg
Ly8gV2Ugb25seSBuZWVkIHRvIHRlc3Qgb25lIG92ZXJmbG93IGRpbWVuc2lvbiBzaW5jZSAndmlz
aWJsZScgYW5kICdjbGlwJyBhbHdheXMgZ2V0IGFjY29tcGFuaWVkCisgICAgLy8gd2l0aCAnY2xp
cCcgb3IgJ3Zpc2libGUnIGluIHRoZSBvdGhlciBkaW1lbnNpb24gKHNlZSBTdHlsZTo6QWRqdXN0
ZXI6OmFkanVzdCkuCisgICAgcmV0dXJuIGhhc05vblZpc2libGVPdmVyZmxvdygpICYmIHN0eWxl
KCkub3ZlcmZsb3dYKCkgIT0gT3ZlcmZsb3c6OkNsaXAgJiYgc3R5bGUoKS5vdmVyZmxvd1goKSAh
PSBPdmVyZmxvdzo6VmlzaWJsZTsKK30KKworV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdU
Rjo6VGV4dFN0cmVhbSYsIGNvbnN0IFJlbmRlck9iamVjdCYpOworCisjaWYgRU5BQkxFKFRSRUVf
REVCVUdHSU5HKQordm9pZCBwcmludFJlbmRlclRyZWVGb3JMaXZlRG9jdW1lbnRzKCk7Cit2b2lk
IHByaW50TGF5ZXJUcmVlRm9yTGl2ZURvY3VtZW50cygpOwordm9pZCBwcmludEdyYXBoaWNzTGF5
ZXJUcmVlRm9yTGl2ZURvY3VtZW50cygpOworI2VuZGlmCisKK2Jvb2wgc2hvdWxkQXBwbHlMYXlv
dXRDb250YWlubWVudChjb25zdCBSZW5kZXJPYmplY3QmKTsKK2Jvb2wgc2hvdWxkQXBwbHlTaXpl
Q29udGFpbm1lbnQoY29uc3QgUmVuZGVyT2JqZWN0Jik7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2RlZmluZSBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX1JFTkRFUl9PQkpFQ1QoVG9WYWx1
ZVR5cGVOYW1lLCBwcmVkaWNhdGUpIFwKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQkVHSU4oV2Vi
Q29yZTo6VG9WYWx1ZVR5cGVOYW1lKSBcCisgICAgc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdl
YkNvcmU6OlJlbmRlck9iamVjdCYgcmVuZGVyZXIpIHsgcmV0dXJuIHJlbmRlcmVyLnByZWRpY2F0
ZTsgfSBcCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCisKKyNpZiBFTkFCTEUoVFJFRV9E
RUJVR0dJTkcpCisvLyBPdXRzaWRlIHRoZSBXZWJDb3JlIG5hbWVzcGFjZSBmb3IgZWFzZSBvZiBp
bnZvY2F0aW9uIGZyb20gdGhlIGRlYnVnZ2VyLgordm9pZCBzaG93Tm9kZVRyZWUoY29uc3QgV2Vi
Q29yZTo6UmVuZGVyT2JqZWN0Kik7Cit2b2lkIHNob3dMaW5lVHJlZShjb25zdCBXZWJDb3JlOjpS
ZW5kZXJPYmplY3QqKTsKK3ZvaWQgc2hvd1JlbmRlclRyZWUoY29uc3QgV2ViQ29yZTo6UmVuZGVy
T2JqZWN0Kik7CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
aGFwZXMvU2hhcGVPdXRzaWRlSW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hh
cGVzL1NoYXBlT3V0c2lkZUluZm8uY3BwCmluZGV4IGMxYjhjNGEzMzJiOTJlZjY4OTBjZmZlNmQy
Njc2NmZiOWFmMmQ4NmUuLjI5NWQ0YmM4Nzc4YTNlZjk0OTFlMzEyNmI3NGMyZjE3N2FmMGNkNmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGVPdXRzaWRl
SW5mby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZU91dHNp
ZGVJbmZvLmNwcApAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgIlJlbmRlckZyYWdtZW50Q29u
dGFpbmVyLmgiCiAjaW5jbHVkZSAiUmVuZGVySW1hZ2UuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3
LmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVGb250
U2l6ZUZ1bmN0aW9ucy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUZvbnRTaXplRnVu
Y3Rpb25zLmNwcAppbmRleCBkNTRmZDUxYzA4MDhjM2Q1YWY0MDIzOTE1MzVjY2FhMWZkOGFkZDkx
Li45MmE3NjU2NmEyYmY5MzFkOTRhMzEwMjUzZDRjNDBiYWI3ODY4ZmYxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUZvbnRTaXplRnVuY3Rpb25zLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdHlsZS9TdHlsZUZvbnRTaXplRnVuY3Rpb25zLmNwcApAQCAtMzksNyArMzks
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIG5hbWVzcGFjZSBTdHlsZSB7CiAKLWZsb2F0IGNv
bXB1dGVkRm9udFNpemVGcm9tU3BlY2lmaWVkU2l6ZShmbG9hdCBzcGVjaWZpZWRTaXplLCBib29s
IGlzQWJzb2x1dGVTaXplLCBmbG9hdCB6b29tRmFjdG9yLCBNaW5pbXVtRm9udFNpemVSdWxlIG1p
bmltdW1TaXplUnVsZSwgY29uc3QgU2V0dGluZ3M6OlZhbHVlcyYgc2V0dGluZ3MpCitmbG9hdCBj
b21wdXRlZEZvbnRTaXplRnJvbVNwZWNpZmllZFNpemUoZmxvYXQgc3BlY2lmaWVkU2l6ZSwgYm9v
bCBpc0Fic29sdXRlU2l6ZSwgZmxvYXQgem9vbUZhY3RvciwgTWluaW11bUZvbnRTaXplUnVsZSBt
aW5pbXVtU2l6ZVJ1bGUsIGNvbnN0IFNldHRpbmdzVmFsdWVzJiBzZXR0aW5ncykKIHsKICAgICAv
LyBUZXh0IHdpdGggYSAwcHggZm9udCBzaXplIHNob3VsZCBub3QgYmUgdmlzaWJsZSBhbmQgdGhl
cmVmb3JlIG5lZWRzIHRvIGJlCiAgICAgLy8gZXhlbXB0IGZyb20gbWluaW11bSBmb250IHNpemUg
cnVsZXMuIEFjaWQzIHJlbGllcyBvbiB0aGlzIGZvciBwaXhlbC1wZXJmZWN0CkBAIC0xMzksNyAr
MTM5LDcgQEAgc3RhdGljIGNvbnN0IGludCBzdHJpY3RGb250U2l6ZVRhYmxlW2ZvbnRTaXplVGFi
bGVNYXggLSBmb250U2l6ZVRhYmxlTWluICsgMV1bdG8KIC8vIGZhY3RvcnMgZm9yIGVhY2gga2V5
d29yZCB2YWx1ZS4KIHN0YXRpYyBjb25zdCBmbG9hdCBmb250U2l6ZUZhY3RvcnNbdG90YWxLZXl3
b3Jkc10gPSB7IDAuNjBmLCAwLjc1ZiwgMC44OWYsIDEuMGYsIDEuMmYsIDEuNWYsIDIuMGYsIDMu
MGYgfTsKIAotZmxvYXQgZm9udFNpemVGb3JLZXl3b3JkKHVuc2lnbmVkIGtleXdvcmRJRCwgYm9v
bCBzaG91bGRVc2VGaXhlZERlZmF1bHRTaXplLCBjb25zdCBTZXR0aW5nczo6VmFsdWVzJiBzZXR0
aW5ncywgYm9vbCBpblF1aXJrc01vZGUpCitmbG9hdCBmb250U2l6ZUZvcktleXdvcmQodW5zaWdu
ZWQga2V5d29yZElELCBib29sIHNob3VsZFVzZUZpeGVkRGVmYXVsdFNpemUsIGNvbnN0IFNldHRp
bmdzVmFsdWVzJiBzZXR0aW5ncywgYm9vbCBpblF1aXJrc01vZGUpCiB7CiAgICAgaW50IG1lZGl1
bVNpemUgPSBzaG91bGRVc2VGaXhlZERlZmF1bHRTaXplID8gc2V0dGluZ3MuZGVmYXVsdEZpeGVk
Rm9udFNpemUgOiBzZXR0aW5ncy5kZWZhdWx0Rm9udFNpemU7CiAgICAgaWYgKG1lZGl1bVNpemUg
Pj0gZm9udFNpemVUYWJsZU1pbiAmJiBtZWRpdW1TaXplIDw9IGZvbnRTaXplVGFibGVNYXgpIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlRm9udFNpemVGdW5jdGlvbnMu
aCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlRm9udFNpemVGdW5jdGlvbnMuaAppbmRleCBh
OGYyMzcyZWE5YzFkMWVjOTk5ZDUxYmM2OTc3M2ViZGI2MmQxZDQ5Li45NWNiMGIzNGViMDVlYWE3
YmVmNjhjMjBmYmEzZWNlZmE4MGM1ODdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHls
ZS9TdHlsZUZvbnRTaXplRnVuY3Rpb25zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5
bGVGb250U2l6ZUZ1bmN0aW9ucy5oCkBAIC0yNSwyNCArMjUsMjQgQEAKIAogI3ByYWdtYSBvbmNl
CiAKLSNpbmNsdWRlICJTZXR0aW5ncy5oIgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IERvY3VtZW50OwogY2xhc3MgUmVuZGVyU3R5bGU7CiAKK3N0cnVjdCBTZXR0aW5nc1ZhbHVlczsK
KwogbmFtZXNwYWNlIFN0eWxlIHsKIAogZW51bSBjbGFzcyBNaW5pbXVtRm9udFNpemVSdWxlIDog
dWludDhfdCB7IE5vbmUsIEFic29sdXRlLCBBYnNvbHV0ZUFuZFJlbGF0aXZlIH07CiAKLWZsb2F0
IGNvbXB1dGVkRm9udFNpemVGcm9tU3BlY2lmaWVkU2l6ZShmbG9hdCBzcGVjaWZpZWRTaXplLCBi
b29sIGlzQWJzb2x1dGVTaXplLCBmbG9hdCB6b29tRmFjdG9yLCBNaW5pbXVtRm9udFNpemVSdWxl
LCBjb25zdCBTZXR0aW5nczo6VmFsdWVzJik7CitmbG9hdCBjb21wdXRlZEZvbnRTaXplRnJvbVNw
ZWNpZmllZFNpemUoZmxvYXQgc3BlY2lmaWVkU2l6ZSwgYm9vbCBpc0Fic29sdXRlU2l6ZSwgZmxv
YXQgem9vbUZhY3RvciwgTWluaW11bUZvbnRTaXplUnVsZSwgY29uc3QgU2V0dGluZ3NWYWx1ZXMm
KTsKIGZsb2F0IGNvbXB1dGVkRm9udFNpemVGcm9tU3BlY2lmaWVkU2l6ZShmbG9hdCBzcGVjaWZp
ZWRTaXplLCBib29sIGlzQWJzb2x1dGVTaXplLCBib29sIHVzZVNWR1pvb21SdWxlcywgY29uc3Qg
UmVuZGVyU3R5bGUqLCBjb25zdCBEb2N1bWVudCYpOwogZmxvYXQgY29tcHV0ZWRGb250U2l6ZUZy
b21TcGVjaWZpZWRTaXplRm9yU1ZHSW5saW5lVGV4dChmbG9hdCBzcGVjaWZpZWRTaXplLCBib29s
IGlzQWJzb2x1dGVTaXplLCBmbG9hdCB6b29tRmFjdG9yLCBjb25zdCBEb2N1bWVudCYpOwogCiAv
LyBHaXZlbiBhIENTUyBrZXl3b3JkIGlkIGluIHRoZSByYW5nZSAoQ1NTVmFsdWVYeFNtYWxsIHRv
IENTU1ZhbHVlV2Via2l0WHh4TGFyZ2UpLCB0aGlzIGZ1bmN0aW9uIHdpbGwgcmV0dXJuCiAvLyB0
aGUgY29ycmVjdCBmb250IHNpemUgc2NhbGVkIHJlbGF0aXZlIHRvIHRoZSB1c2VyJ3MgZGVmYXVs
dCAobWVkaXVtKS4KLWZsb2F0IGZvbnRTaXplRm9yS2V5d29yZCh1bnNpZ25lZCBrZXl3b3JkSUQs
IGJvb2wgc2hvdWxkVXNlRml4ZWREZWZhdWx0U2l6ZSwgY29uc3QgU2V0dGluZ3M6OlZhbHVlcyYs
IGJvb2wgaW5RdWlya3NNb2RlID0gZmFsc2UpOworZmxvYXQgZm9udFNpemVGb3JLZXl3b3JkKHVu
c2lnbmVkIGtleXdvcmRJRCwgYm9vbCBzaG91bGRVc2VGaXhlZERlZmF1bHRTaXplLCBjb25zdCBT
ZXR0aW5nc1ZhbHVlcyYsIGJvb2wgaW5RdWlya3NNb2RlID0gZmFsc2UpOwogZmxvYXQgZm9udFNp
emVGb3JLZXl3b3JkKHVuc2lnbmVkIGtleXdvcmRJRCwgYm9vbCBzaG91bGRVc2VGaXhlZERlZmF1
bHRTaXplLCBjb25zdCBEb2N1bWVudCYpOwogCiAvLyBHaXZlbiBhIGZvbnQgc2l6ZSBpbiBwaXhl
bCwgdGhpcyBmdW5jdGlvbiB3aWxsIHJldHVybiBsZWdhY3kgZm9udCBzaXplIGJldHdlZW4gMSBh
bmQgNy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGVSdWxlU2V0
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlUnVsZVNldHMuY3BwCmluZGV4
IGE4NmU2YWExZTZkMTJjZWY5YWUxNWFhMDY2YTAxZDIxZDM4ODAxOWQuLjA0MDVlMmI1ZDJiOTA1
MTdlMjExODEyNThkMTBhNzg0MTFjMTNjMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0
eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5
bGVTY29wZVJ1bGVTZXRzLmNwcApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgIlN0eWxlUmVz
b2x2ZXIuaCIKICNpbmNsdWRlICJTdHlsZVNjb3BlLmgiCiAjaW5jbHVkZSAiU3R5bGVTaGVldENv
bnRlbnRzLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIG5hbWVzcGFjZSBTdHlsZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRG9jdW1lbnRFeHRlbnNpb25zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdEb2N1bWVudEV4dGVuc2lvbnMuY3BwCmluZGV4IDg2MzJmMDJmNGJmNmJkNWMyMDE3NWYz
MTM2MzM1NjEzMmNhYWY0ZWIuLjQ3YmYzYmIwNjgzZDU0OGRjZWQ2NThkNGFjODFkZDQ5ZmQ1MDFm
MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdEb2N1bWVudEV4dGVuc2lvbnMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdEb2N1bWVudEV4dGVuc2lvbnMuY3BwCkBA
IC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiU1ZHVXNlRWxlbWVudC5oIgogI2luY2x1ZGUgIlNj
cmlwdGFibGVEb2N1bWVudFBhcnNlci5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKKyNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9B
dG9tU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmNwcAppbmRleCA0NDM5YWYzODQ2OGZlNzJlNGZhMTM5ODEzYTcyOGE5YTFiZDM1Y2I5
Li40OWZmOTcxODBmMjY2NWE0MzhkYjBjMGI1OTZhNDNmMzZhZjJkYzBjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC01OSw2ICs1OSw3IEBACiAjaW5jbHVkZSAiRE9NUmVj
dC5oIgogI2luY2x1ZGUgIkRPTVJlY3RMaXN0LmgiCiAjaW5jbHVkZSAiRE9NU3RyaW5nTGlzdC5o
IgorI2luY2x1ZGUgIkRPTVRpbWVyLmgiCiAjaW5jbHVkZSAiRE9NVVJMLmgiCiAjaW5jbHVkZSAi
RE9NV2luZG93LmgiCiAjaW5jbHVkZSAiRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzLmgiCkBAIC0x
ODYsNiArMTg3LDcgQEAKICNpbmNsdWRlICJTVkdTVkdFbGVtZW50LmgiCiAjaW5jbHVkZSAiU1dD
bGllbnRDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgorI2luY2x1
ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiU2NyaXB0ZWRB
bmltYXRpb25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCIK
ICNpbmNsdWRlICJTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3IuaCIKQEAgLTIyNCw2ICsyMjYs
NyBAQAogI2luY2x1ZGUgIldyaXRpbmdEaXJlY3Rpb24uaCIKICNpbmNsdWRlICJYTUxIdHRwUmVx
dWVzdC5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvZGVCbG9jay5oPgorI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L0luc3BlY3RvckFnZW50QmFzZS5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0luc3BlY3Rv
ckZyb250ZW5kQ2hhbm5lbC5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lubGluZXMu
aD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1BhZ2VPdmVybGF5Q2xp
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1BhZ2VPdmVybGF5Q2xpZW50LmNw
cAppbmRleCBkOTc1ZjNiNDI4NGYzYjY2YThkNzc5MmYwOGI2M2Q3ZDNkMTU0M2ZhLi45ZTM3OTgz
NjRmMzE0ZmQwOTYyZTNmOGM4YzUyZTIyOGRkZjcyMGEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL01vY2tQYWdlT3ZlcmxheUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9Nb2NrUGFnZU92ZXJsYXlDbGllbnQuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAj
aW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBhZ2VPdmVybGF5Q29udHJvbGxlci5oIgogI2lu
Y2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Nv
bnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9XZWJGYWtlWFJEZXZpY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvV2ViRmFr
ZVhSRGV2aWNlLmgKaW5kZXggYzA4NmQ5Y2ZkYzczN2IxZDJjMTk0NWIxMWE2ZTYwY2Y4YTVjOTRm
MS4uNzkxOGE5MTM1MDY0N2QwZTNmZmU3ZTJkM2UxZjcxZjBkMmFkZTgxMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9XZWJGYWtlWFJEZXZpY2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL1dlYkZha2VYUkRldmljZS5oCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVk
ZSAiRmFrZVhSVmlld0luaXQuaCIKICNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgog
I2luY2x1ZGUgIlBsYXRmb3JtWFIuaCIKKyNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgIldl
YkZha2VYUklucHV0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIlhSVmlzaWJpbGl0eVN0YXRlLmgi
CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvV2ViWFJUZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1dlYlhSVGVzdC5o
CmluZGV4IGIxY2MzZGIzYWU0ZjMwOWQxOGU4MDhmZDc3MTJiYTFiMjJiNzA3NTEuLmFkYWRlMGU0
YzlhYjI5NWZmMWRiMjFmOTYxZTI5NWY0NzM1M2ZmYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvV2ViWFJUZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9XZWJY
UlRlc3QuaApAQCAtMzYsNiArMzYsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNz
IERvY3VtZW50OwogY2xhc3MgV2ViWFJTeXN0ZW07CiAKIGNsYXNzIFdlYlhSVGVzdCBmaW5hbCA6
IHB1YmxpYyBSZWZDb3VudGVkPFdlYlhSVGVzdD4gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJHbG9iYWxTY29wZS5oCmluZGV4IGQ1ODgwZWYyNzA3N2EzNjQ1ZDhmMzM1MTFiZmQ0NGI1
OWM1YjkxNDEuLjVjMDFkYjQ4NmRlZDQ4NzgyMGQ3ZjAzM2IxNzE5MmEzZjVhYmQ0OGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmgKQEAgLTMxLDEyICszMSwx
MyBAQAogI2luY2x1ZGUgIkltYWdlQml0bWFwLmgiCiAjaW5jbHVkZSAiU2NyaXB0QnVmZmVyU291
cmNlUHJvdmlkZXIuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisjaW5j
bHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTdXBwbGVtZW50YWJsZS5oIgogI2luY2x1ZGUg
IldpbmRvd09yV29ya2VyR2xvYmFsU2NvcGUuaCIKLSNpbmNsdWRlICJXb3JrZXJPcldvcmtsZXRH
bG9iYWxTY29wZS5oIgotI2luY2x1ZGUgIldvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIu
aCIKICNpbmNsdWRlICJXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAi
V29ya2VyTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuaCIKKyNpbmNsdWRlICJXb3JrZXJPcldv
cmtsZXRHbG9iYWxTY29wZS5oIgorI2luY2x1ZGUgIldvcmtlck9yV29ya2xldFNjcmlwdENvbnRy
b2xsZXIuaCIKICNpbmNsdWRlICJXb3JrZXJUaHJlYWQuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9Db25zb2xlTWVzc2FnZS5oPgogI2luY2x1ZGUgPG1lbW9yeT4KQEAgLTE0Myw3ICsxNDQs
NyBAQCBwdWJsaWM6CiAKICAgICBSZWZlcnJlclBvbGljeSByZWZlcnJlclBvbGljeSgpIGNvbnN0
IGZpbmFsOwogCi0gICAgY29uc3QgU2V0dGluZ3M6OlZhbHVlcyYgc2V0dGluZ3NWYWx1ZXMoKSBj
b25zdCBmaW5hbCB7IHJldHVybiBtX3NldHRpbmdzVmFsdWVzOyB9CisgICAgY29uc3QgU2V0dGlu
Z3NWYWx1ZXMmIHNldHRpbmdzVmFsdWVzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9zZXR0aW5n
c1ZhbHVlczsgfQogCiAgICAgRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFscyBjcmVkZW50aWFscygp
IGNvbnN0IHsgcmV0dXJuIG1fY3JlZGVudGlhbHM7IH0KIApAQCAtMjIwLDcgKzIyMSw3IEBAIHBy
aXZhdGU6CiAgICAgUmVmUHRyPENTU0ZvbnRTZWxlY3Rvcj4gbV9jc3NGb250U2VsZWN0b3I7CiAg
ICAgUmVmUHRyPEZvbnRDYWNoZT4gbV9mb250Q2FjaGU7CiAgICAgUmVmZXJyZXJQb2xpY3kgbV9y
ZWZlcnJlclBvbGljeTsKLSAgICBTZXR0aW5nczo6VmFsdWVzIG1fc2V0dGluZ3NWYWx1ZXM7Cisg
ICAgU2V0dGluZ3NWYWx1ZXMgbV9zZXR0aW5nc1ZhbHVlczsKICAgICBXb3JrZXJUeXBlIG1fd29y
a2VyVHlwZTsKICAgICBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzIG1fY3JlZGVudGlhbHM7CiAg
ICAgUmVmUHRyPFdvcmtlclN0b3JhZ2VDb25uZWN0aW9uPiBtX3N0b3JhZ2VDb25uZWN0aW9uOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRTY3JpcHRD
b250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2Ny
aXB0Q29udHJvbGxlci5jcHAKaW5kZXggZmYyN2I2YTZlYjQ0N2Q2ZGE5YWY2NTUyM2YxOWI3OGE1
YTA2YmNlOS4uYWE5NTdkMjI1YzFlNTI3MTc2NjRlNmZhODEyYjVmYjRiYWJiZWVmZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9s
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlw
dENvbnRyb2xsZXIuY3BwCkBAIC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSAiV29ya2VyTW9kdWxl
U2NyaXB0TG9hZGVyLmgiCiAjaW5jbHVkZSAiV29ya2VyU2NyaXB0RmV0Y2hlci5oIgogI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL0NvbXBsZXRpb24uaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9Db25zb2xlVHlwZXMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9EZWZlclRlcm1pbmF0
aW9uLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRGVmZXJyZWRXb3JrVGltZXIuaD4KICNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9FeGNlcHRpb24uaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlclRocmVhZC5oCmluZGV4IDExOGE1MTk4ZmU3ZTU1MDhjNjRjOWZkZGM5OWVmMGIxODc1MzA1
YTYuLjU3YWZhZThkZDU2MWY2MTBlYTQwNmNjNzI1Yjg1YWYyZmVjMWU5NzggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuaApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIkNv
bnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycy5oIgogI2luY2x1ZGUgIkNyb3NzT3Jp
Z2luRW1iZWRkZXJQb2xpY3kuaCIKICNpbmNsdWRlICJGZXRjaFJlcXVlc3RDcmVkZW50aWFscy5o
IgorI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiV29ya2VyT3JXb3JrbGV0VGhyZWFk
LmgiCiAjaW5jbHVkZSAiV29ya2VyUnVuTG9vcC5oIgogI2luY2x1ZGUgIldvcmtlclR5cGUuaCIK
QEAgLTcxLDcgKzcyLDcgQEAgcHVibGljOgogICAgIFJlZmVycmVyUG9saWN5IHJlZmVycmVyUG9s
aWN5OwogICAgIFdvcmtlclR5cGUgd29ya2VyVHlwZTsKICAgICBGZXRjaFJlcXVlc3RDcmVkZW50
aWFscyBjcmVkZW50aWFsczsKLSAgICBTZXR0aW5nczo6VmFsdWVzIHNldHRpbmdzVmFsdWVzOwor
ICAgIFNldHRpbmdzVmFsdWVzIHNldHRpbmdzVmFsdWVzOwogICAgIFdvcmtlclRocmVhZE1vZGUg
d29ya2VyVGhyZWFkTW9kZSB7IFdvcmtlclRocmVhZE1vZGU6OkNyZWF0ZU5ld1RocmVhZCB9Owog
CiAgICAgV29ya2VyUGFyYW1ldGVycyBpc29sYXRlZENvcHkoKSBjb25zdDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJl
YWQuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdv
cmtlclRocmVhZC5jcHAKaW5kZXggY2ZiYmUwZGJhNTdiOWExY2IyYzM5NDdiZDMwNjRlYzg2ZDlk
ODkwZi4uNWRkMTMzYWFhYmRlZjI5NGNjNWQyYjUyNzFlNjY1YmIxNTBlYjY2NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRo
cmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2Vy
dmljZVdvcmtlclRocmVhZC5jcHAKQEAgLTc0LDcgKzc0LDcgQEAgcHJpdmF0ZToKIC8vIEZJWE1F
OiBVc2UgYSB2YWxpZCBXb3JrZXJPYmplY3RQcm94eQogLy8gRklYTUU6IFVzZSB2YWxpZCBydW50
aW1lIGZsYWdzCiAKLXN0YXRpYyBXb3JrZXJQYXJhbWV0ZXJzIGdlbmVyYXRlV29ya2VyUGFyYW1l
dGVycyhjb25zdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmIGNvbnRleHREYXRhLCBTdHJpbmcm
JiB1c2VyQWdlbnQsIFdvcmtlclRocmVhZE1vZGUgd29ya2VyVGhyZWFkTW9kZSwgY29uc3QgU2V0
dGluZ3M6OlZhbHVlcyYgc2V0dGluZ3NWYWx1ZXMpCitzdGF0aWMgV29ya2VyUGFyYW1ldGVycyBn
ZW5lcmF0ZVdvcmtlclBhcmFtZXRlcnMoY29uc3QgU2VydmljZVdvcmtlckNvbnRleHREYXRhJiBj
b250ZXh0RGF0YSwgU3RyaW5nJiYgdXNlckFnZW50LCBXb3JrZXJUaHJlYWRNb2RlIHdvcmtlclRo
cmVhZE1vZGUsIGNvbnN0IFNldHRpbmdzVmFsdWVzJiBzZXR0aW5nc1ZhbHVlcykKIHsKICAgICBy
ZXR1cm4gewogICAgICAgICBjb250ZXh0RGF0YS5zY3JpcHRVUkwsCkBAIC05NCw3ICs5NCw3IEBA
IHN0YXRpYyBXb3JrZXJQYXJhbWV0ZXJzIGdlbmVyYXRlV29ya2VyUGFyYW1ldGVycyhjb25zdCBT
ZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmCiAgICAgfTsKIH0KIAotU2VydmljZVdvcmtlclRocmVh
ZDo6U2VydmljZVdvcmtlclRocmVhZChTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmJiBjb250ZXh0
RGF0YSwgU2VydmljZVdvcmtlckRhdGEmJiB3b3JrZXJEYXRhLCBTdHJpbmcmJiB1c2VyQWdlbnQs
IFdvcmtlclRocmVhZE1vZGUgd29ya2VyVGhyZWFkTW9kZSwgY29uc3QgU2V0dGluZ3M6OlZhbHVl
cyYgc2V0dGluZ3NWYWx1ZXMsIFdvcmtlckxvYWRlclByb3h5JiBsb2FkZXJQcm94eSwgV29ya2Vy
RGVidWdnZXJQcm94eSYgZGVidWdnZXJQcm94eSwgSURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJv
eHkqIGlkYkNvbm5lY3Rpb25Qcm94eSwgU29ja2V0UHJvdmlkZXIqIHNvY2tldFByb3ZpZGVyKQor
U2VydmljZVdvcmtlclRocmVhZDo6U2VydmljZVdvcmtlclRocmVhZChTZXJ2aWNlV29ya2VyQ29u
dGV4dERhdGEmJiBjb250ZXh0RGF0YSwgU2VydmljZVdvcmtlckRhdGEmJiB3b3JrZXJEYXRhLCBT
dHJpbmcmJiB1c2VyQWdlbnQsIFdvcmtlclRocmVhZE1vZGUgd29ya2VyVGhyZWFkTW9kZSwgY29u
c3QgU2V0dGluZ3NWYWx1ZXMmIHNldHRpbmdzVmFsdWVzLCBXb3JrZXJMb2FkZXJQcm94eSYgbG9h
ZGVyUHJveHksIFdvcmtlckRlYnVnZ2VyUHJveHkmIGRlYnVnZ2VyUHJveHksIElEQkNsaWVudDo6
SURCQ29ubmVjdGlvblByb3h5KiBpZGJDb25uZWN0aW9uUHJveHksIFNvY2tldFByb3ZpZGVyKiBz
b2NrZXRQcm92aWRlcikKICAgICA6IFdvcmtlclRocmVhZChnZW5lcmF0ZVdvcmtlclBhcmFtZXRl
cnMoY29udGV4dERhdGEsIFdURk1vdmUodXNlckFnZW50KSwgd29ya2VyVGhyZWFkTW9kZSwgc2V0
dGluZ3NWYWx1ZXMpLCBjb250ZXh0RGF0YS5zY3JpcHQsIGxvYWRlclByb3h5LCBkZWJ1Z2dlclBy
b3h5LCBEdW1teVNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6c2hhcmVkKCksIFdvcmtlclRocmVh
ZFN0YXJ0TW9kZTo6Tm9ybWFsLCBjb250ZXh0RGF0YS5yZWdpc3RyYXRpb24ua2V5LnRvcE9yaWdp
bigpLnNlY3VyaXR5T3JpZ2luKCkuZ2V0KCksIGlkYkNvbm5lY3Rpb25Qcm94eSwgc29ja2V0UHJv
dmlkZXIsIEpTQzo6UnVudGltZUZsYWdzOjpjcmVhdGVBbGxFbmFibGVkKCkpCiAgICAgLCBtX3Nl
cnZpY2VXb3JrZXJJZGVudGlmaWVyKGNvbnRleHREYXRhLnNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
KQogICAgICwgbV9qb2JEYXRhSWRlbnRpZmllcihjb250ZXh0RGF0YS5qb2JEYXRhSWRlbnRpZmll
cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1Nl
cnZpY2VXb3JrZXJUaHJlYWQuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250
ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuaAppbmRleCAwNjgxYjMzY2ZjY2FiZjM5MDBhNzQ3Zjcw
ZTExNTg3MjEwOGMwMGJjLi5jNjE2ZjVkOThkMTZjNTI5ZDlhY2U5Y2U3NWIzM2E1YjZiNTkxMjYz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2
aWNlV29ya2VyVGhyZWFkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2Nv
bnRleHQvU2VydmljZVdvcmtlclRocmVhZC5oCkBAIC0zMCw3ICszMCw2IEBACiAjaW5jbHVkZSAi
U2VydmljZVdvcmtlckNvbnRleHREYXRhLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckZldGNo
LmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlcklkZW50aWZpZXIuaCIKLSNpbmNsdWRlICJTZXR0
aW5ncy5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSAiV29ya2VyVGhyZWFkLmgiCiAj
aW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KQEAgLTQ1LDYgKzQ0LDcgQEAgY2xhc3MgU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlOwogY2xhc3MgV29ya2VyT2JqZWN0UHJveHk7CiBzdHJ1Y3QgTWVzc2FnZVdp
dGhNZXNzYWdlUG9ydHM7CiBzdHJ1Y3QgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXI7Citz
dHJ1Y3QgU2V0dGluZ3NWYWx1ZXM7CiAKIGNsYXNzIFNlcnZpY2VXb3JrZXJUaHJlYWQgOiBwdWJs
aWMgV29ya2VyVGhyZWFkLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8U2VydmljZVdvcmtlclRocmVh
ZCwgV2Vha1B0ckZhY3RvcnlJbml0aWFsaXphdGlvbjo6RWFnZXI+IHsKIHB1YmxpYzoKQEAgLTgy
LDcgKzgyLDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgcnVuRXZlbnRMb29wKCkgb3ZlcnJpZGU7
CiAKIHByaXZhdGU6Ci0gICAgV0VCQ09SRV9FWFBPUlQgU2VydmljZVdvcmtlclRocmVhZChTZXJ2
aWNlV29ya2VyQ29udGV4dERhdGEmJiwgU2VydmljZVdvcmtlckRhdGEmJiwgU3RyaW5nJiYgdXNl
ckFnZW50LCBXb3JrZXJUaHJlYWRNb2RlLCBjb25zdCBTZXR0aW5nczo6VmFsdWVzJiwgV29ya2Vy
TG9hZGVyUHJveHkmLCBXb3JrZXJEZWJ1Z2dlclByb3h5JiwgSURCQ2xpZW50OjpJREJDb25uZWN0
aW9uUHJveHkqLCBTb2NrZXRQcm92aWRlciopOworICAgIFdFQkNPUkVfRVhQT1JUIFNlcnZpY2VX
b3JrZXJUaHJlYWQoU2VydmljZVdvcmtlckNvbnRleHREYXRhJiYsIFNlcnZpY2VXb3JrZXJEYXRh
JiYsIFN0cmluZyYmIHVzZXJBZ2VudCwgV29ya2VyVGhyZWFkTW9kZSwgY29uc3QgU2V0dGluZ3NW
YWx1ZXMmLCBXb3JrZXJMb2FkZXJQcm94eSYsIFdvcmtlckRlYnVnZ2VyUHJveHkmLCBJREJDbGll
bnQ6OklEQkNvbm5lY3Rpb25Qcm94eSosIFNvY2tldFByb3ZpZGVyKik7CiAKICAgICBib29sIGlz
U2VydmljZVdvcmtlclRocmVhZCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KICAgICB2
b2lkIGZpbmlzaGVkRXZhbHVhdGluZ1NjcmlwdCgpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS93
b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuaAppbmRleCBkZjcwZDVlOGNkNGE4NTU4NThmMzZk
ZWZmOGM4NTkxZmE3NDgwYzUwLi42ODQyMDNkNmYwYjllOWUxZjE5OTNmMTVlMDRjYWYzZDA0NGJi
OTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2Nv
cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuaApA
QCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkZldGNoUmVxdWVzdENyZWRlbnRpYWxzLmgiCiAj
aW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlNjcmlwdFNvdXJj
ZUNvZGUuaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIldvcmtlck9yV29ya2xl
dEdsb2JhbFNjb3BlLmgiCiAjaW5jbHVkZSAiV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxl
ci5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVNZXNzYWdlLmg+CkBAIC0xMTUs
NyArMTE2LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogICAgIFVSTCBjb21wbGV0ZVVSTChjb25zdCBT
dHJpbmcmLCBGb3JjZVVURjggPSBGb3JjZVVURjg6Ok5vKSBjb25zdCBmaW5hbDsKICAgICBTdHJp
bmcgdXNlckFnZW50KGNvbnN0IFVSTCYpIGNvbnN0IGZpbmFsOwotICAgIGNvbnN0IFNldHRpbmdz
OjpWYWx1ZXMmIHNldHRpbmdzVmFsdWVzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9zZXR0aW5n
c1ZhbHVlczsgfQorICAgIGNvbnN0IFNldHRpbmdzVmFsdWVzJiBzZXR0aW5nc1ZhbHVlcygpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIG1fc2V0dGluZ3NWYWx1ZXM7IH0KIAogICAgIFdlYWtQdHI8RG9j
dW1lbnQ+IG1fZG9jdW1lbnQ7CiAKQEAgLTEyNyw3ICsxMjgsNyBAQCBwcml2YXRlOgogCiAgICAg
c3RkOjp1bmlxdWVfcHRyPFdvcmtlck1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyPiBtX21lc3Nh
Z2VQb3J0Q2hhbm5lbFByb3ZpZGVyOwogCi0gICAgU2V0dGluZ3M6OlZhbHVlcyBtX3NldHRpbmdz
VmFsdWVzOworICAgIFNldHRpbmdzVmFsdWVzIG1fc2V0dGluZ3NWYWx1ZXM7CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9X
b3JrbGV0UGFyYW1ldGVycy5oIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldFBhcmFt
ZXRlcnMuaAppbmRleCBlYTVjYTZkYjM0NmE2MjE3ODIwNzI2MzFhMzRmMjAxNzI2Yzc3NTY4Li5m
ZjYxMjFlMTgxM2ZjNTc5MmRlMGQ0ZTE3NDdkYTM4OWFkOGIzZDdiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0UGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtsZXRzL1dvcmtsZXRQYXJhbWV0ZXJzLmgKQEAgLTM2LDcgKzM2LDcgQEAgc3RydWN0
IFdvcmtsZXRQYXJhbWV0ZXJzIHsKICAgICBKU0M6OlJ1bnRpbWVGbGFncyBqc1J1bnRpbWVGbGFn
czsKICAgICBmbG9hdCBzYW1wbGVSYXRlOwogICAgIFN0cmluZyBpZGVudGlmaWVyOwotICAgIFNl
dHRpbmdzOjpWYWx1ZXMgc2V0dGluZ3NWYWx1ZXM7CisgICAgU2V0dGluZ3NWYWx1ZXMgc2V0dGlu
Z3NWYWx1ZXM7CiAgICAgYm9vbCBpc0F1ZGlvQ29udGV4dFJlYWxUaW1lOwogCiAgICAgV29ya2xl
dFBhcmFtZXRlcnMgaXNvbGF0ZWRDb3B5KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJl
cXVlc3QuY3BwCmluZGV4IGFiOTk2MDNlYTUzZTI0NmI2MzMyMWZiZDQxNDFjYzVlMjljZTk2YjQu
LmM3ZjVhYWY5ODdjYTZkMTRlODE5YzJmNDljZWNkYjBlODE5NjUzM2YgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
eG1sL1hNTEh0dHBSZXF1ZXN0LmNwcApAQCAtNTksNiArNTksNyBAQAogI2luY2x1ZGUgIm1hcmt1
cC5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0FycmF5QnVmZmVyLmg+CiAjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvQXJyYXlCdWZmZXJWaWV3Lmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5o
PgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9Jc29N
YWxsb2NJbmxpbmVzLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMVFByb2Nl
c3NvckxpYnhzbHQuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3JMaWJ4c2x0
LmNwcAppbmRleCBkZjhhYmU0MjZlMDY3MTcxYWZmZjkwZTAzMzM4NTA1OWYzMzEwMzY0Li4zNDRi
ZDRlOTcyYzczOWYwNmU2MTFhZDkxYmM1MTFhYjBlOGRmYjhhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS94bWwvWFNMVFByb2Nlc3NvckxpYnhzbHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3htbC9YU0xUUHJvY2Vzc29yTGlieHNsdC5jcHAKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRl
ICJYU0xURXh0ZW5zaW9ucy5oIgogI2luY2x1ZGUgIlhTTFRVbmljb2RlU29ydC5oIgogI2luY2x1
ZGUgIm1hcmt1cC5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPgog
I2luY2x1ZGUgPGxpYnhzbHQvaW1wb3J0cy5oPgogI2luY2x1ZGUgPGxpYnhzbHQvc2VjdXJpdHku
aD4KICNpbmNsdWRlIDxsaWJ4c2x0L3ZhcmlhYmxlcy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwIGIvU291cmNlL1dl
YkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwCmluZGV4IGE4YzNl
MThlNDdhZWNhZDBhMDIyYTA4NGM0OWEyMWY2YzcxNGMzOTIuLjNjZDczZjA4ZjI3NjEwODJhYmU4
MGEyZGNjMjQ1MmYzZmY5NDgzZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJz
ZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwv
cGFyc2VyL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHAKQEAgLTU5LDYgKzU5LDcgQEAKICNp
bmNsdWRlICJUcmFuc2Zvcm1Tb3VyY2UuaCIKICNpbmNsdWRlICJYTUxOU05hbWVzLmgiCiAjaW5j
bHVkZSAiWE1MRG9jdW1lbnRQYXJzZXJTY29wZS5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L0NvbnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPGxpYnhtbC9wYXJzZXJJbnRlcm5hbHMuaD4KICNp
bmNsdWRlIDx3dGYvdW5pY29kZS9DaGFyYWN0ZXJOYW1lcy5oPgogI2luY2x1ZGUgPHd0Zi91bmlj
b2RlL1VURjhDb252ZXJzaW9uLmg+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441238</attachid>
            <date>2021-10-14 10:52:22 -0700</date>
            <delta_ts>2021-10-14 11:23:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231634-20211014105222.patch</filename>
            <type>text/plain</type>
            <size>110050</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MTQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDQ0YmRhZmQ2Njg3YzE3
Yjk5OGYyYjc0MzU4NmYyOTUzM2Q5OGYwYi4uNDJjZDNiNTI0NzFlMGU0OTEyOWNlYjUzM2EzNDIx
Y2ZkOTE1NGY2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2MyBAQAorMjAyMS0xMC0xMiAgSmVy
IE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBbQnVpbGQtdGltZSBwZXJm
XSBGb3J3YXJkLWRlY2xhcmUgbW9yZSB0aGluZ3MgaW4gU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5o
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE2MzQK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIHRo
ZSBTZXR0aW5nczo6VmFsdWVzIHN0cnVjdCBvdXRzaWRlIG9mIFNldHRpbmdzIHNvIHRoYXQgaXQg
Y2FuIGJlIGZvcndhcmQgZGVjbGFyZWQuCisKKyAgICAgICAgQWRkIHRoZSBmb2xsb3dpbmcgaGVh
ZGVycyB0byBjb250YWluIGlubGluZWQgZGVmaW5pdGlvbnMgb2YgY2xhc3MgbWV0aG9kczoKKyAg
ICAgICAgLSBTY3JpcHRFeGVjdXRpb25Db250ZXh0SW5saW5lcy5oCisgICAgICAgIC0gSURCQWN0
aXZlRE9NT2JqZWN0SW5saW5lcy5oCisKKyAgICAgICAgTW92ZSBpbmxpbmVkIG1ldGhvZHMgaW50
byB0aGUgbmV3bHkgY3JlYXRlZCBJbmxpbmVzLmggaGVhZGVycyBhbmQgZGVjb3JhdGUgdGhlIGRl
Y2xhcmF0aW9ucworICAgICAgICBvZiB0aG9zZSBtZXRob2RzIHdpdGggYGlubGluZWAuCisKKyAg
ICAgICAgRm9yd2FyZCBkZWNsYXJlIGFsbCB0eXBlcyB1c2VkIGJ5IG1ldGhvZHMgaW4gU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCBhbmQgcmVtb3ZlIHRob3NlIGhlYWRlcnMsCisgICAgICAgIGFuZCBy
ZS1hZGQgdGhvc2UgaGVhZGVycyBkaXJlY3RseSB0byB0aGUgc291cmNlIGZpbGVzIHdoaWNoIHJl
cXVpcmUgdGhlbS4KKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICogTW9kdWxl
cy9iZWFjb24vTmF2aWdhdG9yQmVhY29uLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL2NhY2hlL0RP
TUNhY2hlRW5naW5lLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL2NhY2hlL0RPTUNhY2hlU3RvcmFn
ZS5jcHA6CisgICAgICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuY3BwOgorICAgICAg
ICAqIE1vZHVsZXMvZ2FtZXBhZC9OYXZpZ2F0b3JHYW1lcGFkLmNwcDoKKyAgICAgICAgKiBNb2R1
bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4
ZWRkYi9JREJBY3RpdmVET01PYmplY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkFjdGl2ZURP
TU9iamVjdDo6b3JpZ2luVGhyZWFkIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OklEQkFjdGl2ZURPTU9iamVjdDo6cGVyZm9ybUNhbGxiYWNrT25PcmlnaW5UaHJlYWQpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6SURCQWN0aXZlRE9NT2JqZWN0OjpjYWxsRnVuY3Rpb25P
bk9yaWdpblRocmVhZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpJREJBY3RpdmVET01P
YmplY3Q6OklEQkFjdGl2ZURPTU9iamVjdCk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy9p
bmRleGVkZGIvY2xpZW50L1RyYW5zYWN0aW9uT3BlcmF0aW9uLmg6CisgICAgICAgICogTW9kdWxl
cy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
c291cmNlL01lZGlhU291cmNlLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtVHJhY2suY3BwOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0
YUNoYW5uZWwuY3BwOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVx
dWVzdC5jcHA6CisgICAgICAgICogTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5j
cHA6CisgICAgICAgICogTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHA6
CisgICAgICAgICogTW9kdWxlcy9waWN0dXJlaW5waWN0dXJlL0hUTUxWaWRlb0VsZW1lbnRQaWN0
dXJlSW5QaWN0dXJlLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL3JlbW90ZXBsYXliYWNrL1JlbW90
ZVBsYXliYWNrLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRl
eHQuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0lJUkZpbHRlck5vZGUuY3BwOgorICAg
ICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4dC5jcHA6CisgICAgICAg
ICogTW9kdWxlcy93ZWJkYXRhYmFzZS9ET01XaW5kb3dXZWJEYXRhYmFzZS5jcHA6CisgICAgICAg
ICogTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHA6CisgICAgICAgICogTW9kdWxlcy93
ZWJkYXRhYmFzZS9EYXRhYmFzZU1hbmFnZXIuY3BwOgorICAgICAgICAqIE1vZHVsZXMvd2Vic29j
a2V0cy9XZWJTb2NrZXQuY3BwOgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2Nr
ZXRDaGFubmVsLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSU3lzdGVtLmNwcDoK
KyAgICAgICAgKiBTY3JpcHRzL1NldHRpbmdzVGVtcGxhdGVzL1NldHRpbmdzLmNwcC5lcmI6Cisg
ICAgICAgICogU2NyaXB0cy9TZXR0aW5nc1RlbXBsYXRlcy9TZXR0aW5ncy5oLmVyYjoKKyAgICAg
ICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChHZW5lcmF0ZVJ1bnRpbWVFbmFibGVDb25k
aXRpb25hbFN0cmluZyk6CisgICAgICAgICogY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVu
c2lvbnNCYWNrZW5kLmNwcDoKKyAgICAgICAgKiBjcnlwdG8vU3VidGxlQ3J5cHRvLmNwcDoKKyAg
ICAgICAgKiBjc3MvQ1NTRm9udEZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udEZh
Y2U6OkNTU0ZvbnRGYWNlKToKKyAgICAgICAgKiBjc3MvQ1NTRm9udEZhY2UuaDoKKyAgICAgICAg
KiBjc3MvQ1NTRm9udFNlbGVjdG9yLmg6CisgICAgICAgICogY3NzL0NTU0tleWZyYW1lc1J1bGUu
Y3BwOgorICAgICAgICAqIGNzcy9NZWRpYUxpc3QuY3BwOgorICAgICAgICAqIGNzcy9TdHlsZVNo
ZWV0Q29udGVudHMuY3BwOgorICAgICAgICAqIGRvbS9BY3RpdmVET01PYmplY3QuaDoKKyAgICAg
ICAgKiBkb20vRGV2aWNlTW90aW9uRXZlbnQuY3BwOgorICAgICAgICAqIGRvbS9EZXZpY2VPcmll
bnRhdGlvbkV2ZW50LmNwcDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RG9jdW1lbnQ6OnNldHRpbmdzVmFsdWVzIGNvbnN0KToKKyAgICAgICAgKiBkb20v
RG9jdW1lbnQuaDoKKyAgICAgICAgKiBkb20vRW1wdHlTY3JpcHRFeGVjdXRpb25Db250ZXh0Lmg6
CisgICAgICAgICogZG9tL0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcDoKKyAgICAgICAgKiBkb20vTG9h
ZGFibGVDbGFzc2ljU2NyaXB0LmNwcDoKKyAgICAgICAgKiBkb20vTW91c2VFdmVudC5jcHA6Cisg
ICAgICAgICogZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uaDoKKyAgICAgICAgKFdl
YkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb246OmRlbGl2ZXJ5T3B0aW9ucyBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uOjptdXRh
dGlvblR5cGVzIGNvbnN0KToKKyAgICAgICAgKiBkb20vU2NyaXB0RWxlbWVudC5jcHA6CisgICAg
ICAgICogZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwOgorICAgICAgICAqIGRvbS9TY3Jp
cHRFeGVjdXRpb25Db250ZXh0Lmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25D
b250ZXh0Ojpwb3N0Q3Jvc3NUaHJlYWRUYXNrKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmFkZFRpbWVvdXQpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6cmVtb3ZlVGltZW91dCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpmaW5kVGltZW91dCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpBZGRD
b25zb2xlTWVzc2FnZVRhc2s6OkFkZENvbnNvbGVNZXNzYWdlVGFzayk6IERlbGV0ZWQuCisgICAg
ICAgICogZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmNwcDoKKyAgICAgICAgKiBmaWxlYXBpL0Jsb2Iu
aDoKKyAgICAgICAgKiBodG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcDoKKyAgICAgICAgKiBodG1s
L0hUTUxDYW52YXNFbGVtZW50LmNwcDoKKyAgICAgICAgKiBodG1sL0hUTUxFbGVtZW50LmNwcDoK
KyAgICAgICAgKiBodG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwOgorICAgICAgICAqIGh0
bWwvSFRNTEZvcm1FbGVtZW50LmNwcDoKKyAgICAgICAgKiBodG1sL0hUTUxIdG1sRWxlbWVudC5j
cHA6CisgICAgICAgICogaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5jcHA6CisgICAgICAgICogaHRt
bC9IVE1MTGlua0VsZW1lbnQuY3BwOgorICAgICAgICAqIGh0bWwvSFRNTFBsdWdJbkVsZW1lbnQu
Y3BwOgorICAgICAgICAqIGh0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwOgorICAgICAgICAqIGh0
bWwvSFRNTFNvdXJjZUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL1RleHRGaWVsZElucHV0VHlw
ZS5jcHA6CisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFz
ZS5jcHA6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHA6
CisgICAgICAgICogaHRtbC90cmFjay9UcmFja0Jhc2UuY3BwOgorICAgICAgICAqIGluc3BlY3Rv
ci9hZ2VudHMvcGFnZS9QYWdlRGVidWdnZXJBZ2VudC5jcHA6CisgICAgICAgICogbG9hZGVyL0Ny
b3NzT3JpZ2luRW1iZWRkZXJQb2xpY3kuY3BwOgorICAgICAgICAqIGxvYWRlci9Dcm9zc09yaWdp
blByZWZsaWdodENoZWNrZXIuY3BwOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5j
cHA6CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHA6CisgICAg
ICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKiBsb2FkZXIvSW1hZ2VMb2Fk
ZXIuY3BwOgorICAgICAgICAqIGxvYWRlci9MaW5rTG9hZGVyLmNwcDoKKyAgICAgICAgKiBsb2Fk
ZXIvTWVkaWFSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgICogbG9hZGVyL01peGVkQ29udGVu
dENoZWNrZXIuY3BwOgorICAgICAgICAqIGxvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcDoK
KyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAqIGxvYWRlci9T
dWJyZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgICogbG9hZGVyL1RleHRUcmFja0xvYWRlci5j
cHA6CisgICAgICAgICogbG9hZGVyL1RocmVhZGFibGVMb2FkZXIuY3BwOgorICAgICAgICAqIGxv
YWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwOgorICAgICAgICAqIGxvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgICogcGFnZS9ET01UaW1l
ci5jcHA6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAqIHBhZ2UvRHJh
Z0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAqIHBhZ2UvRXZlbnRTb3VyY2UuY3BwOgorICAgICAg
ICAqIHBhZ2UvRnJhbWUuY3BwOgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAg
ICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAqIHBhZ2UvUG9pbnRlckxvY2tDb250cm9sbGVy
LmNwcDoKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLnlhbWw6CisgICAgICAgICogcGFnZS9jc3Av
Q29udGVudFNlY3VyaXR5UG9saWN5LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9WaWRl
b0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5tbToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5jcHA6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxp
c3RCb3guY3BwOgorICAgICAgICAqIHJlbmRlcmluZy9zaGFwZXMvU2hhcGVPdXRzaWRlSW5mby5j
cHA6CisgICAgICAgICogc3R5bGUvU3R5bGVGb250U2l6ZUZ1bmN0aW9ucy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZTo6Y29tcHV0ZWRGb250U2l6ZUZyb21TcGVjaWZpZWRTaXplKToKKyAg
ICAgICAgKFdlYkNvcmU6OlN0eWxlOjpmb250U2l6ZUZvcktleXdvcmQpOgorICAgICAgICAqIHN0
eWxlL1N0eWxlRm9udFNpemVGdW5jdGlvbnMuaDoKKyAgICAgICAgKiBzdHlsZS9TdHlsZVNjb3Bl
UnVsZVNldHMuY3BwOgorICAgICAgICAqIHN2Zy9TVkdEb2N1bWVudEV4dGVuc2lvbnMuY3BwOgor
ICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKiB0ZXN0aW5nL01vY2tQ
YWdlT3ZlcmxheUNsaWVudC5jcHA6CisgICAgICAgICogdGVzdGluZy9XZWJGYWtlWFJEZXZpY2Uu
aDoKKyAgICAgICAgKiB0ZXN0aW5nL1dlYlhSVGVzdC5oOgorICAgICAgICAqIHdvcmtlcnMvV29y
a2VyR2xvYmFsU2NvcGUuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlw
dENvbnRyb2xsZXIuY3BwOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyVGhyZWFkLmg6CisgICAg
ICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpnZW5lcmF0ZVdvcmtlclBhcmFtZXRlcnMpOgorICAgICAgICAoV2Vi
Q29yZTo6U2VydmljZVdvcmtlclRocmVhZDo6U2VydmljZVdvcmtlclRocmVhZCk6CisgICAgICAg
ICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5oOgorICAgICAg
ICAqIHdvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5oOgorICAgICAgICAqIHdvcmtsZXRzL1dv
cmtsZXRQYXJhbWV0ZXJzLmg6CisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDoKKyAg
ICAgICAgKiB4bWwvWFNMVFByb2Nlc3NvckxpYnhzbHQuY3BwOgorICAgICAgICAqIHhtbC9wYXJz
ZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcDoKKwogMjAyMS0xMC0xMCAgSmVyIE5vYmxl
ICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBbQnVpbGQtdGltZSBwZXJmXSBGb3J3
YXJkLWRlY2xhcmUgbW9yZSB0aGluZ3MgaW4gRG9jdW1lbnQuaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBlNjNmZDE4
Y2M5NzA4MzZiY2VkYWJhZjhiNGRlMDVhNTYwZjJiYzUwLi4xYWMyMjAzM2ZmOWU4OWEyY2U3OGM2
NWIwMDc5MDJjNDYxMTMwOTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIxLTEwLTE0
ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtCdWlsZC10aW1l
IHBlcmZdIEZvcndhcmQtZGVjbGFyZSBtb3JlIHRoaW5ncyBpbiBTY3JpcHRFeGVjdXRpb25Db250
ZXh0LmgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
MTYzNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZv
cndhcmQtZGVjbGFyZSBEYXRhRGV0ZWN0b3JUeXBlLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaDoKKwogMjAyMS0xMC0xMCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFw
cGxlLmNvbT4KIAogICAgICAgICBbQnVpbGQtdGltZSBwZXJmXSBGb3J3YXJkLWRlY2xhcmUgbW9y
ZSB0aGluZ3MgaW4gRG9jdW1lbnQuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVy
cy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggOWI3OTAwOTA2MjQy
YmNiMTY2Y2M2ODk2OTY0MjQ5ZDQwNWMzNGU0Mi4uYTBmYWFlOTA5N2I4YjgzMzkzYTY2MjQ5NWFm
N2VlM2YzNjBiNDRiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC02Niw2ICs2Niw3IEBAIHNldChX
ZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBNb2R1bGVzL2hpZ2hsaWdodC9I
aWdobGlnaHRWaXNpYmlsaXR5LmgKIAogICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkFjdGl2ZURP
TU9iamVjdC5oCisgICAgTW9kdWxlcy9pbmRleGVkZGIvSURCQWN0aXZlRE9NT2JqZWN0SW5saW5l
cy5oCiAgICAgTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VJZGVudGlmaWVyLmgKICAgICBN
b2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdC5oCiAgICAg
TW9kdWxlcy9pbmRleGVkZGIvSURCR2V0QWxsUmVzdWx0LmgKQEAgLTU1MCw2ICs1NTEsNyBAQCBz
ZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgZG9tL1NjcmlwdEVsZW1l
bnQuaAogICAgIGRvbS9TY3JpcHRFbGVtZW50Q2FjaGVkU2NyaXB0RmV0Y2hlci5oCiAgICAgZG9t
L1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaAorICAgIGRvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0
SW5saW5lcy5oCiAgICAgZG9tL1NlY3VyaXR5Q29udGV4dC5oCiAgICAgZG9tL1NlY3VyaXR5UG9s
aWN5VmlvbGF0aW9uRXZlbnQuaAogICAgIGRvbS9TZWxlY3Rpb25SZXN0b3JhdGlvbk1vZGUuaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9iZWFjb24vTmF2aWdhdG9yQmVhY29u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYmVhY29uL05hdmlnYXRvckJlYWNvbi5jcHAK
aW5kZXggNjlkZWM1Y2I2ZmJjNWJmOWQ4YjcxOGNjZTIxMDE3YTNkYmI3ZDk0Zi4uYjliNzQ4MTZk
YmYyOThiNTRhNTVmN2M0NzhmZjk0YTllZmM0NjBhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9iZWFjb24vTmF2aWdhdG9yQmVhY29uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2JlYWNvbi9OYXZpZ2F0b3JCZWFjb24uY3BwCkBAIC0zMyw2ICszMyw3IEBACiAj
aW5jbHVkZSAiSFRUUFBhcnNlcnMuaCIKICNpbmNsdWRlICJOYXZpZ2F0b3IuaCIKICNpbmNsdWRl
ICJQYWdlLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5j
bHVkZSA8d3RmL1VSTC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlRW5naW5lLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvY2FjaGUvRE9NQ2FjaGVFbmdpbmUuY3BwCmluZGV4IDI1OTE0YjQwYmIyMzgz
YTA3ODgwNGY4OWIxMWI0MGQ4OTcwYjQzMDYuLmJlOTcyYWFiNTJhNjljYTNjZjAzNzAyMTA3NGI5
MDMyOTM2MTcxMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvRE9N
Q2FjaGVFbmdpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvRE9NQ2Fj
aGVFbmdpbmUuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiRXhjZXB0aW9uLmgiCiAj
aW5jbHVkZSAiSFRUUFBhcnNlcnMuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0
LmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9E
T01DYWNoZVN0b3JhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNo
ZVN0b3JhZ2UuY3BwCmluZGV4IDhhOWNiMWZjODc1ZjIzNTc3OTNhNTg2NTBlMTFkOWUxYWY5YTI4
ZDguLjlhMjQ1MDMyNjk0MDc0YmExYjU0ODdlNzZiZWNkNDliYTA4ZmJhMmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvRE9NQ2FjaGVTdG9yYWdlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlU3RvcmFnZS5jcHAKQEAgLTMzLDYg
KzMzLDcgQEAKICNpbmNsdWRlICJKU0ZldGNoUmVzcG9uc2UuaCIKICNpbmNsdWRlICJTY3JpcHRF
eGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVzdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVzdC5jcHAKaW5kZXgg
YTk1NDc0MGQzZTQzY2RlMzEyMGMxMzM1YjYyZDcxNGI3NmQxMWFmZS4uOTk4NDBjYmM2MWQzN2Y4
YWY2MWYxOTVlY2ViYjQwNmU2YWIwNWNjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmV0Y2gvRmV0Y2hSZXF1ZXN0LmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIlNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1
ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9nYW1lcGFkL05hdmlnYXRvckdhbWVwYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9nYW1lcGFkL05hdmlnYXRvckdhbWVwYWQuY3BwCmluZGV4IDc4MWYxNmY2ODAyNjBlMzAyZWE5
NjgwYTU5Y2QzYWZlZDk0MTg1NzAuLmViMDY4N2EwNTExZWE2Y2Y0Y2E2MTAyMmRmNGJkZmJlNTg3
OTgyODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2FtZXBhZC9OYXZpZ2F0
b3JHYW1lcGFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dhbWVwYWQvTmF2aWdh
dG9yR2FtZXBhZC5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJHYW1lcGFkUHJvdmlk
ZXIuaCIKICNpbmNsdWRlICJOYXZpZ2F0b3IuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUdhbWVwYWQu
aCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0
aW9uL0dlb2xvY2F0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24v
R2VvbG9jYXRpb24uY3BwCmluZGV4IGUyNzJlY2RlZjJhN2QwNjZhMTIxZWMzNjZhOTkwNmQ0Yjhk
YjE0YzcuLjMzMGUzZDdmNjliMzgxYzNjNTcxMzc3OWI0NTdmZjY1MDFmNWExNjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uY3BwCkBA
IC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlJ1bnRpbWVBcHBs
aWNhdGlvbkNoZWNrcy5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCisjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lu
bGluZXMuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5n
QnVpbGRlci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCQWN0aXZlRE9NT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkFjdGl2ZURPTU9iamVjdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODMxNDQ1YjliZDRjYWU4MGM3MWZj
YmZkOWE0NDk5MjkxMjIwYTRkMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkFjdGl2ZURPTU9iamVjdC5jcHAKQEAgLTAsMCArMSw1MCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJREJBY3RpdmVET01P
YmplY3QuaCIKKworI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitJREJBY3RpdmVET01PYmplY3Q6OklEQkFjdGl2ZURPTU9iamVjdChTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBjb250ZXh0KQorICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQpCisg
ICAgLCBtX29yaWdpblRocmVhZChUaHJlYWQ6OmN1cnJlbnQoKSkKK3sKKyAgICBBU1NFUlQoY29u
dGV4dCk7Cit9CisKK0lEQkFjdGl2ZURPTU9iamVjdDo6fklEQkFjdGl2ZURPTU9iamVjdCgpID0g
ZGVmYXVsdDsKKwordm9pZCBJREJBY3RpdmVET01PYmplY3Q6OmNvbnRleHREZXN0cm95ZWQoKQor
eworICAgIEFTU0VSVChjYW5DdXJyZW50VGhyZWFkQWNjZXNzVGhyZWFkTG9jYWxEYXRhKG9yaWdp
blRocmVhZCgpKSk7CisKKyAgICBMb2NrZXI8TG9jaz4gbG9jayhtX3NjcmlwdEV4ZWN1dGlvbkNv
bnRleHRMb2NrKTsKKyAgICBBY3RpdmVET01PYmplY3Q6OmNvbnRleHREZXN0cm95ZWQoKTsKK30K
KworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQWN0
aXZlRE9NT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJBY3Rp
dmVET01PYmplY3QuaAppbmRleCBlYjY4NDA4ZGM0MWI1ZmFkMzI3YTI3Y2Q1YjAzYTUzMjIzYTlk
N2UwLi41ODNiNzJmODlhNjgxY2JjYjgxNTVkMzFiZjdhNTNmYjhjOGQ3NDVhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJBY3RpdmVET01PYmplY3QuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJBY3RpdmVET01PYmplY3Qu
aApAQCAtMjYsNjYgKzI2LDMwIEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkFjdGl2ZURP
TU9iamVjdC5oIgotI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKLSNpbmNsdWRl
IDx3dGYvVGhyZWFkaW5nLmg+CisKK25hbWVzcGFjZSBXVEYgeworY2xhc3MgVGhyZWFkOworfQog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIElEQkFjdGl2ZURPTU9iamVjdCA6IHB1Ymxp
YyBBY3RpdmVET01PYmplY3QgeworY2xhc3MgV0VCQ09SRV9FWFBPUlQgSURCQWN0aXZlRE9NT2Jq
ZWN0IDogcHVibGljIEFjdGl2ZURPTU9iamVjdCB7CiBwdWJsaWM6Ci0gICAgVGhyZWFkJiBvcmln
aW5UaHJlYWQoKSBjb25zdCB7IHJldHVybiBtX29yaWdpblRocmVhZC5nZXQoKTsgfQotCi0gICAg
dm9pZCBjb250ZXh0RGVzdHJveWVkKCkgZmluYWwgewotICAgICAgICBBU1NFUlQoY2FuQ3VycmVu
dFRocmVhZEFjY2Vzc1RocmVhZExvY2FsRGF0YShvcmlnaW5UaHJlYWQoKSkpOworICAgIHZpcnR1
YWwgfklEQkFjdGl2ZURPTU9iamVjdCgpOworICAgIFdURjo6VGhyZWFkJiBvcmlnaW5UaHJlYWQo
KSBjb25zdCB7IHJldHVybiBtX29yaWdpblRocmVhZC5nZXQoKTsgfQogCi0gICAgICAgIExvY2tl
cjxMb2NrPiBsb2NrKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dExvY2spOwotICAgICAgICBBY3Rp
dmVET01PYmplY3Q6OmNvbnRleHREZXN0cm95ZWQoKTsKLSAgICB9CisgICAgdm9pZCBjb250ZXh0
RGVzdHJveWVkKCkgZmluYWw7CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZS4u
LiBQYXJhbWV0ZXJzLCB0eXBlbmFtZS4uLiBBcmd1bWVudHM+Ci0gICAgdm9pZCBwZXJmb3JtQ2Fs
bGJhY2tPbk9yaWdpblRocmVhZChUJiBvYmplY3QsIHZvaWQgKFQ6OiptZXRob2QpKFBhcmFtZXRl
cnMuLi4pLCBBcmd1bWVudHMmJi4uLiBhcmd1bWVudHMpCi0gICAgewotICAgICAgICBBU1NFUlQo
Jm9yaWdpblRocmVhZCgpID09ICZvYmplY3Qub3JpZ2luVGhyZWFkKCkpOwotCi0gICAgICAgIGlm
IChjYW5DdXJyZW50VGhyZWFkQWNjZXNzVGhyZWFkTG9jYWxEYXRhKG9iamVjdC5vcmlnaW5UaHJl
YWQoKSkpIHsKLSAgICAgICAgICAgIChvYmplY3QuKm1ldGhvZCkoc3RkOjpmb3J3YXJkPEFyZ3Vt
ZW50cz4oYXJndW1lbnRzKS4uLik7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQot
ICAgICAgICBMb2NrZXI8TG9jaz4gbG9jayhtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHRMb2NrKTsK
LQotICAgICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0ID0gc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpOwotICAgICAgICBpZiAoIWNvbnRleHQpCi0gICAgICAgICAgICByZXR1cm47
Ci0KLSAgICAgICAgY29udGV4dC0+cG9zdENyb3NzVGhyZWFkVGFzayhvYmplY3QsIG1ldGhvZCwg
YXJndW1lbnRzLi4uKTsKLSAgICB9Ci0KLSAgICB2b2lkIGNhbGxGdW5jdGlvbk9uT3JpZ2luVGhy
ZWFkKFdURjo6RnVuY3Rpb248dm9pZCAoKT4mJiBmdW5jdGlvbikKLSAgICB7Ci0gICAgICAgIGlm
IChjYW5DdXJyZW50VGhyZWFkQWNjZXNzVGhyZWFkTG9jYWxEYXRhKG9yaWdpblRocmVhZCgpKSkg
ewotICAgICAgICAgICAgZnVuY3Rpb24oKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
fQotCi0gICAgICAgIExvY2tlcjxMb2NrPiBsb2NrKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dExv
Y2spOwotCi0gICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQgPSBzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCk7Ci0gICAgICAgIGlmICghY29udGV4dCkKLSAgICAgICAgICAgIHJl
dHVybjsKKyAgICBpbmxpbmUgdm9pZCBwZXJmb3JtQ2FsbGJhY2tPbk9yaWdpblRocmVhZChUJiwg
dm9pZCAoVDo6Km1ldGhvZCkoUGFyYW1ldGVycy4uLiksIEFyZ3VtZW50cyYmLi4uKTsKIAotICAg
ICAgICBjb250ZXh0LT5wb3N0VGFzayhXVEZNb3ZlKGZ1bmN0aW9uKSk7Ci0gICAgfQorICAgIGlu
bGluZSB2b2lkIGNhbGxGdW5jdGlvbk9uT3JpZ2luVGhyZWFkKFdURjo6RnVuY3Rpb248dm9pZCgp
PiYmKTsKIAogcHJvdGVjdGVkOgotICAgIElEQkFjdGl2ZURPTU9iamVjdChTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBjb250ZXh0KQotICAgICAgICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0KQot
ICAgIHsKLSAgICAgICAgQVNTRVJUKGNvbnRleHQpOwotICAgIH0KKyAgICBJREJBY3RpdmVET01P
YmplY3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwogCiBwcml2YXRlOgotICAgIFJlZjxUaHJl
YWQ+IG1fb3JpZ2luVGhyZWFkIHsgVGhyZWFkOjpjdXJyZW50KCkgfTsKKyAgICBSZWY8VGhyZWFk
PiBtX29yaWdpblRocmVhZDsKICAgICBMb2NrIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dExvY2s7
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJB
Y3RpdmVET01PYmplY3RJbmxpbmVzLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJBY3RpdmVET01PYmplY3RJbmxpbmVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjQ1NDNmOTlmYTZiYmY3
OTI4YWM1NjgyYjc5YjIxYzM2NzM0YTNjOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkFjdGl2ZURPTU9iamVjdElubGluZXMuaApAQCAtMCww
ICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJJREJBY3Rp
dmVET01PYmplY3QuaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0SW5saW5lcy5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1l
Li4uIFBhcmFtZXRlcnMsIHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4KK3ZvaWQgSURCQWN0aXZlRE9N
T2JqZWN0OjpwZXJmb3JtQ2FsbGJhY2tPbk9yaWdpblRocmVhZChUJiBvYmplY3QsIHZvaWQgKFQ6
OiptZXRob2QpKFBhcmFtZXRlcnMuLi4pLCBBcmd1bWVudHMmJi4uLiBhcmd1bWVudHMpCit7Cisg
ICAgQVNTRVJUKCZvcmlnaW5UaHJlYWQoKSA9PSAmb2JqZWN0Lm9yaWdpblRocmVhZCgpKTsKKwor
ICAgIGlmIChjYW5DdXJyZW50VGhyZWFkQWNjZXNzVGhyZWFkTG9jYWxEYXRhKG9iamVjdC5vcmln
aW5UaHJlYWQoKSkpIHsKKyAgICAgICAgKG9iamVjdC4qbWV0aG9kKShzdGQ6OmZvcndhcmQ8QXJn
dW1lbnRzPihhcmd1bWVudHMpLi4uKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIExv
Y2tlcjxMb2NrPiBsb2NrKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dExvY2spOworCisgICAgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsK
KyAgICBpZiAoIWNvbnRleHQpCisgICAgICAgIHJldHVybjsKKworICAgIGNvbnRleHQtPnBvc3RD
cm9zc1RocmVhZFRhc2sob2JqZWN0LCBtZXRob2QsIGFyZ3VtZW50cy4uLik7Cit9CisKK3ZvaWQg
SURCQWN0aXZlRE9NT2JqZWN0OjpjYWxsRnVuY3Rpb25Pbk9yaWdpblRocmVhZChXVEY6OkZ1bmN0
aW9uPHZvaWQoKT4mJiBmdW5jdGlvbikKK3sKKyAgICBpZiAoY2FuQ3VycmVudFRocmVhZEFjY2Vz
c1RocmVhZExvY2FsRGF0YShvcmlnaW5UaHJlYWQoKSkpIHsKKyAgICAgICAgZnVuY3Rpb24oKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIExvY2tlcjxMb2NrPiBsb2NrKG1fc2NyaXB0
RXhlY3V0aW9uQ29udGV4dExvY2spOworCisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKKyAgICBpZiAoIWNvbnRleHQpCisgICAg
ICAgIHJldHVybjsKKworICAgIGNvbnRleHQtPnBvc3RUYXNrKFdURk1vdmUoZnVuY3Rpb24pKTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L1RyYW5zYWN0aW9uT3BlcmF0aW9uLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvVHJhbnNhY3Rpb25PcGVyYXRpb24uaApp
bmRleCBiODI4NDg2YzBmNGFkMzI5YTgzMWMyY2ZmMWJkMmEyMzc2ZGE3ZTA5Li44NzU5ZjZjNWE5
YjQ5N2E3NTk5ZTBmZDA4ZDE4NmQyM2UxN2FhZDc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvVHJhbnNhY3Rpb25PcGVyYXRpb24uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvVHJhbnNhY3Rpb25PcGVyYXRp
b24uaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIklEQkFj
dGl2ZURPTU9iamVjdElubGluZXMuaCIKICNpbmNsdWRlICJJREJSZXF1ZXN0LmgiCiAjaW5jbHVk
ZSAiSURCUmVxdWVzdERhdGEuaCIKICNpbmNsdWRlICJJREJSZXNvdXJjZUlkZW50aWZpZXIuaCIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vz
c2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Np
b24uY3BwCmluZGV4IGZhZThlMzMwYzViYWRiZjYxMTg4MjQ4YjVhOGQ0YmRiOWQ1NDhkYzAuLmFm
ZTdjYTBiN2Q3NGI1ZTBkYzkwNDU5ZmQxNDY5ZjlkMjBkYzhhODUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmNwcApAQCAtNDEs
NiArNDEsNyBAQAogI2luY2x1ZGUgIk5hdmlnYXRvci5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNp
bmNsdWRlICJQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaCIKKyNpbmNsdWRlICJVc2VyR2Vz
dHVyZUluZGljYXRvci5oIgogI2luY2x1ZGUgPHd0Zi9KU09OVmFsdWVzLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3Vy
Y2UvTWVkaWFTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9N
ZWRpYVNvdXJjZS5jcHAKaW5kZXggMTAxZTIzM2RlYjg4OTgyMDJkYTJiNjJkZjUzMWU1OWQ0MmQx
M2E4YS4uMTZjOWQwMDRkMzI3ZDhmMmY0MzVhZTJmNzBkZDY1NWVlMzRkMmJhNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAKQEAg
LTUyLDYgKzUyLDcgQEAKICNpbmNsdWRlICJUaW1lUmFuZ2VzLmgiCiAjaW5jbHVkZSAiVmlkZW9U
cmFjay5oIgogI2luY2x1ZGUgIlZpZGVvVHJhY2tMaXN0LmgiCisjaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKaW5kZXggMTMxNzExOWMzYTc2N2Jj
NmZkOTM3ODUyMGMzODFmY2M3MWI3NWUzOS4uZTkzYjhlN2M1Y2JiZDRmZmQ1ODdkY2I3ZTg5NjFk
M2M5NjFlOGVhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbVRyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCkBAIC01MSw2ICs1MSw3IEBACiAjaW5jbHVkZSAi
U2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVk
ZSAiV2ViQXVkaW9Tb3VyY2VQcm92aWRlci5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Nv
bnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1
ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVk
Lmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0Rh
dGFDaGFubmVsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0
YUNoYW5uZWwuY3BwCmluZGV4IDJiMmQ3OWY3M2YxNzJjMDU5MWJkNWU5YTk4ZGNlMjgxODRlN2Uw
MDIuLjJlNzBhYzZjOTIwNTljNGU1ZjlhYWMwYzRmYzE3OGI4M2M2YjZjYzIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWwuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWwuY3Bw
CkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgog
I2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0FycmF5
QnVmZmVyVmlldy5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPgog
I2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4K
ICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwCmluZGV4IDg1MjVl
N2Q4OGM3Y2U1NWNjOTAxMTcwZjFkODRiYzIwNmNiNDFkMjIuLmI0YjQ2ZWZjMDRmMTFlOTU0ZWUz
ZGU4ZjdiNTNmYjZkMWQ1M2QxODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcApAQCAtNDgsNiArNDgsNyBAQAog
I2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiVXNlck1lZGlhQ29udHJvbGxlci5oIgog
I2luY2x1ZGUgIldpbmRvd0V2ZW50TG9vcC5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Nv
bnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9TY29wZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90
aWZpY2F0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3Rp
ZmljYXRpb24uY3BwCmluZGV4IGI2M2ZkMDgwNWExYjI2YzVmNzg5NDY3NTQ2YzdhMWFiYTQ5ZGEw
YTcuLjg4ODkwOGE4YTI3OTc5YTk1NDA1ZDQyZDU0ZjQ2MjY5ZTQ5NTM5NWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3Bw
CkBAIC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSAiTm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxi
YWNrLmgiCiAjaW5jbHVkZSAiV2luZG93RXZlbnRMb29wLmgiCiAjaW5jbHVkZSAiV2luZG93Rm9j
dXNBbGxvd2VkSW5kaWNhdG9yLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5
cGVzLmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3Rm
L0lzb01hbGxvY0lubGluZXMuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0LmNwcAppbmRleCBlNDRiMzFjMWU0YjA3
OGIwMzMxOGM4MjE5NmIzZWVmODcwMzE4ZWQ1Li41YTZkODVlOTk4NGFiOGNjZDAyMjUzODllNzRl
YjNiY2JjNDM0OTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRy
ZXF1ZXN0L1BheW1lbnRSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Bh
eW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0LmNwcApAQCAtNDgsNiArNDgsNyBAQAogI2luY2x1
ZGUgIlBheW1lbnRSZXF1ZXN0VXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiUGF5bWVudFZhbGlkYXRp
b25FcnJvcnMuaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCisjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNP
Tk9iamVjdC5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1Rocm93U2NvcGUuaD4KICNpbmNs
dWRlIDx3dGYvQVNDSUlDVHlwZS5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9waWN0dXJlaW5waWN0dXJlL0hUTUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGljdHVyZWlucGljdHVyZS9IVE1MVmlkZW9FbGVtZW50
UGljdHVyZUluUGljdHVyZS5jcHAKaW5kZXggYjAwOTBmYzRlNTM0MWI4NTE0MzAxNTNkZGFjOWY2
NDY4ZDU2NzNlMi4uNjVjYjZmNDRiNmRkNTlhNzg5NGI1YzUyYzI1Njg2NjBjZmJmMjEyMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9waWN0dXJlaW5waWN0dXJlL0hUTUxWaWRl
b0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3BpY3R1cmVpbnBpY3R1cmUvSFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmUuY3BwCkBA
IC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlBpY3R1cmVJ
blBpY3R1cmVTdXBwb3J0LmgiCiAjaW5jbHVkZSAiUGljdHVyZUluUGljdHVyZVdpbmRvdy5oIgor
I2luY2x1ZGUgIlVzZXJHZXN0dXJlSW5kaWNhdG9yLmgiCiAjaW5jbHVkZSAiVmlkZW9UcmFja0xp
c3QuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3JlbW90ZXBsYXliYWNrL1JlbW90ZVBsYXliYWNrLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcmVtb3RlcGxheWJhY2svUmVtb3RlUGxheWJhY2suY3Bw
CmluZGV4IDRhMTU1YjBhNDVhYTJkNTYxNjEwM2EyOTNhZWU3NDIyN2UyMGNjZjQuLjNlYjE5ZjY4
ZDM2NWYwOWJmN2ZlODU4ZWUyNGJmNWZlMjZkYzMyNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvcmVtb3RlcGxheWJhY2svUmVtb3RlUGxheWJhY2suY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvcmVtb3RlcGxheWJhY2svUmVtb3RlUGxheWJhY2suY3BwCkBAIC0z
Nyw2ICszNyw3IEBACiAjaW5jbHVkZSAiTWVkaWFFbGVtZW50U2Vzc2lvbi5oIgogI2luY2x1ZGUg
Ik1lZGlhUGxheWJhY2tUYXJnZXQuaCIKICNpbmNsdWRlICJSZW1vdGVQbGF5YmFja0F2YWlsYWJp
bGl0eUNhbGxiYWNrLmgiCisjaW5jbHVkZSAiVXNlckdlc3R1cmVJbmRpY2F0b3IuaCIKICNpbmNs
dWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmNw
cAppbmRleCA2NGUzZDE2NjgwYTNlMTI4ZDBmYjEzMzQxYzBhZTJlNTU3ZGJiYWI0Li43NjVmOWUx
YjMwNzhlY2JmOWMzYTFlN2MxN2FjMjkyMTcxNzI4OTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5jcHAKQEAgLTg3MSw3ICs4
NzEsNyBAQCBjb25zdCBTZWN1cml0eU9yaWdpbiogQmFzZUF1ZGlvQ29udGV4dDo6b3JpZ2luKCkg
Y29uc3QKICAgICByZXR1cm4gbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0ID8gbV9zY3JpcHRFeGVj
dXRpb25Db250ZXh0LT5zZWN1cml0eU9yaWdpbigpIDogbnVsbHB0cjsKIH0KIAotdm9pZCBCYXNl
QXVkaW9Db250ZXh0OjphZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVz
c2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCit2b2lkIEJhc2VBdWRpb0Nv
bnRleHQ6OmFkZENvbnNvbGVNZXNzYWdlKEpTQzo6TWVzc2FnZVNvdXJjZSBzb3VyY2UsIEpTQzo6
TWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7CiAgICAgaWYgKG1f
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCkKICAgICAgICAgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0
LT5hZGRDb25zb2xlTWVzc2FnZShzb3VyY2UsIGxldmVsLCBtZXNzYWdlKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmgKaW5kZXggNGFm
ZmFjMzNlMzQyNGMzZmFiNWFhNWIyYmVkMGQ3NDQ3NjcyMmZkNS4uMjkwMDY3YWE0NTZiNDk2ZTBk
Y2Q4MGFlZDFiZWRjMWMyOGM5MDVjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmgKQEAgLTIxNCw3ICsyMTQsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBwb3N0VGFzayhGdW5jdGlvbjx2b2lkKCk+JiYpOwogICAgIGJvb2wgaXNTdG9w
cGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc1N0b3BTY2hlZHVsZWQ7IH0KICAgICBjb25zdCBTZWN1
cml0eU9yaWdpbiogb3JpZ2luKCkgY29uc3Q7Ci0gICAgdm9pZCBhZGRDb25zb2xlTWVzc2FnZShN
ZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7CisgICAg
dm9pZCBhZGRDb25zb2xlTWVzc2FnZShKU0M6Ok1lc3NhZ2VTb3VyY2UsIEpTQzo6TWVzc2FnZUxl
dmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOwogCiAgICAgdmlydHVhbCB2b2lkIGxhenlJbml0
aWFsaXplKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
SUlSRmlsdGVyTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0lJUkZp
bHRlck5vZGUuY3BwCmluZGV4IDBlZDZlNjE3OWMwNGJhOTAzNDYxODM2ZDk0ZmU5NmFkYjAwYjdl
YjMuLjNlNjliNmYyZDMyMTgxZjAzNmNiMmY3ZTIyMDQ0NDkwNzlhYTA1ZDIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vSUlSRmlsdGVyTm9kZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9JSVJGaWx0ZXJOb2RlLmNwcApAQCAtMzEs
NiArMzEsNyBAQAogI2luY2x1ZGUgIkJhc2VBdWRpb0NvbnRleHQuaCIKICNpbmNsdWRlICJJSVJG
aWx0ZXIuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lu
bGluZXMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9Db250ZXh0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4dC5jcHAKaW5kZXggZGU1MjRk
MmY0ZjQ5MDgxMzg2ZDFlYzNmOGVjZDIyZjdmNmVkOGUwMy4uYmZhZDZiN2U1MDA3MjY5MTU4Njkw
MzYzY2I3Njk2ZWRmZjI1ZTY4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9PZmZsaW5lQXVkaW9Db250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAj
aW5jbHVkZSAiSlNBdWRpb0J1ZmZlci5oIgogI2luY2x1ZGUgIk9mZmxpbmVBdWRpb0NvbXBsZXRp
b25FdmVudC5oIgogI2luY2x1ZGUgIk9mZmxpbmVBdWRpb0NvbnRleHRPcHRpb25zLmgiCisjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL0lzb01h
bGxvY0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvU2NvcGUuaD4KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9ET01XaW5kb3dXZWJEYXRhYmFzZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RPTVdpbmRvd1dlYkRhdGFiYXNl
LmNwcAppbmRleCA4YWMyYWQ2YWY1ZTRhM2JmZjg0YzI2NzZjMGUyNGU2YmJjMmYzYjVjLi4wYmVl
YmNhMmNkYjljMmRhOTZlY2JlYjcyYzc0M2EzYmMyMDc3ODM3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RPTVdpbmRvd1dlYkRhdGFiYXNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RPTVdpbmRvd1dlYkRhdGFiYXNl
LmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkRhdGFiYXNlTWFuYWdlci5oIgogI2lu
Y2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwCmlu
ZGV4IDc3ZmZkOTMxOTdkNmUyM2JlMjAxMTBhM2UzYjkyNWU3OTdjYTJlZmYuLjJkODViZDM5ZGE2
NWI0MThjOGZkYWIzY2M1NmZlMjE1YWNiY2EwNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwCkBAIC01Myw2ICs1Myw3IEBACiAjaW5jbHVk
ZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJWb2lkQ2FsbGJhY2suaCIKICNpbmNsdWRl
ICJXaW5kb3dFdmVudExvb3AuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlw
ZXMuaD4KICNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3ll
ZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VNYW5hZ2VyLmNwcAppbmRleCA5YWYwMjNhMjBk
MjNiMDViN2M4ZWU0OTQ2NTU3YWI1NmMyMjIyMzM4Li4zNzM5NTlmY2JkN2JhMzU1ODM2OWFhNGY1
ZmU5MWMyNGMyZjU0YTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRh
dGFiYXNlL0RhdGFiYXNlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJkYXRhYmFzZS9EYXRhYmFzZU1hbmFnZXIuY3BwCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVk
ZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbkRhdGEuaCIKICNp
bmNsdWRlICJXaW5kb3dFdmVudExvb3AuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25z
b2xlVHlwZXMuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRz
L1dlYlNvY2tldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29j
a2V0LmNwcAppbmRleCA2OTQwMWEzMjgwODEzNDdhZTZjYTIzZGE2MjBiODhiODc4ZGYxNGVlLi42
ODhlNzE3NjQ3YTI0MTdiNjc2ODZkMDZhY2ZlM2ZhYjViODAwNjIyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcApAQCAtNTgsNiArNTgsNyBA
QAogI2luY2x1ZGUgIldvcmtlclRocmVhZC5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Fy
cmF5QnVmZmVyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQXJyYXlCdWZmZXJWaWV3Lmg+
CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvU2NyaXB0Q2FsbFN0YWNrLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4K
ICNpbmNsdWRlIDx3dGYvSGV4TnVtYmVyLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKaW5kZXggZjVkYzZlNzdhYWE0
ZjBkZWY2NzY4YWYyN2NjM2NjNDkwMzY4MGU0My4uM2Y2YTczZjc4MzFlNWI0ZTdjN2ZiYzUxNTQx
MWE5MWYyZWFiM2JjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2Nr
ZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
c29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcApAQCAtNTQsNiArNTQsNyBAQAogI2luY2x1ZGUg
IldlYlNvY2tldENoYW5uZWxDbGllbnQuaCIKICNpbmNsdWRlICJXZWJTb2NrZXRIYW5kc2hha2Uu
aCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9BcnJheUJ1ZmZlci5oPgorI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9GYXN0TWFsbG9jLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU3lzdGVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvV2ViWFJTeXN0ZW0uY3BwCmluZGV4IDY3NTkzMmQzOTM0YjIzN2FkYjQxZjU4YjE4
NzE4Y2NmMzM5NjliOWIuLjVmY2UwZDkxOWZmOTQxZjQyMDNjNzhiNGYxMzY3MzJjZTE5YTgxOWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJTeXN0ZW0uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJTeXN0ZW0uY3BwCkBAIC00
Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAiUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2suaCIK
ICNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlP
cmlnaW4uaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlVzZXJHZXN0dXJlSW5k
aWNhdG9yLmgiCiAjaW5jbHVkZSAiV2ViWFJTZXNzaW9uLmgiCiAjaW5jbHVkZSAiWFJSZWZlcmVu
Y2VTcGFjZVR5cGUuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NjcmlwdHMvU2V0dGlu
Z3NUZW1wbGF0ZXMvU2V0dGluZ3MuY3BwLmVyYiBiL1NvdXJjZS9XZWJDb3JlL1NjcmlwdHMvU2V0
dGluZ3NUZW1wbGF0ZXMvU2V0dGluZ3MuY3BwLmVyYgppbmRleCA3ZTkxZDM1YzM5YmU0NjIwYjcz
NGRjNjc0ZjJiMWFmNjE3YmY4MzVkLi4xMGY0NjIxYWNlMTIzNzVmMjBiODNmZWVjMzMyNjM5MGJi
OWMxMjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9TY3JpcHRzL1NldHRpbmdzVGVtcGxh
dGVzL1NldHRpbmdzLmNwcC5lcmIKKysrIGIvU291cmNlL1dlYkNvcmUvU2NyaXB0cy9TZXR0aW5n
c1RlbXBsYXRlcy9TZXR0aW5ncy5jcHAuZXJiCkBAIC03NCw3ICs3NCw3IEBAIFNldHRpbmdzOjpT
ZXR0aW5ncyhQYWdlKiBwYWdlKQogICAgIG1fcGFnZSA9IHBhZ2U7CiB9CiAKLXZvaWQgU2V0dGlu
Z3M6OlZhbHVlczo6aW5pdGlhbGl6ZSgpCit2b2lkIFNldHRpbmdzVmFsdWVzOjppbml0aWFsaXpl
KCkKIHsKIDwlLSBmb3IgQGNvbmRpdGlvbiBpbiBAYWxsU2V0dGluZ3NTZXQuY29uZGl0aW9ucyBk
byAtJT4KIDwlLSBpZiBAY29uZGl0aW9uLm5vbkJvb2xTZXR0aW5nc05lZWRpbmdJbXBsZW1lbnRh
dGlvbi5sZW5ndGggIT0gMCAtJT4KQEAgLTEwNCw3ICsxMDQsNyBAQCB2b2lkIFNldHRpbmdzOjpW
YWx1ZXM6OmluaXRpYWxpemUoKQogPCUtIGVuZCAtJT4KIH0KIAotU2V0dGluZ3M6OlZhbHVlcyBT
ZXR0aW5nczo6VmFsdWVzOjppc29sYXRlZENvcHkoKSBjb25zdAorU2V0dGluZ3NWYWx1ZXMgU2V0
dGluZ3NWYWx1ZXM6Omlzb2xhdGVkQ29weSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHsKIDwlLSBm
b3IgQHNldHRpbmcgaW4gQGFsbFNldHRpbmdzU2V0Lmluc3BlY3Rvck92ZXJyaWRlU2V0dGluZ3Mg
ZG8gLSU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9TY3JpcHRzL1NldHRpbmdzVGVtcGxh
dGVzL1NldHRpbmdzLmguZXJiIGIvU291cmNlL1dlYkNvcmUvU2NyaXB0cy9TZXR0aW5nc1RlbXBs
YXRlcy9TZXR0aW5ncy5oLmVyYgppbmRleCA2ODJhZGY3Mjg5MjA2NzAyN2RiMzFhMTJkZTIwNzU1
ZTZkZTFhMWNhLi4yOTU2MWQxOGMyOTIyOTM1ZmE2Yzc0YTZkZDZjOGE1ODJkMzViYTNmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9TY3JpcHRzL1NldHRpbmdzVGVtcGxhdGVzL1NldHRpbmdz
LmguZXJiCisrKyBiL1NvdXJjZS9XZWJDb3JlL1NjcmlwdHMvU2V0dGluZ3NUZW1wbGF0ZXMvU2V0
dGluZ3MuaC5lcmIKQEAgLTM0LDYgKzM0LDQ0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgUGFnZTsKIAorc3RydWN0IFNldHRpbmdzVmFsdWVzIHsKKyAgICB2b2lkIGluaXRpYWxpemUo
KTsKKyAgICBTZXR0aW5nc1ZhbHVlcyBpc29sYXRlZENvcHkoKSBjb25zdDsKKworPCUtIGZvciBA
c2V0dGluZyBpbiBAYWxsU2V0dGluZ3NTZXQuaW5zcGVjdG9yT3ZlcnJpZGVTZXR0aW5ncyBkbyAt
JT4KKyAgICBzdGQ6Om9wdGlvbmFsPDwlPSBAc2V0dGluZy50eXBlICU+PiA8JT0gQHNldHRpbmcu
bmFtZSAlPkluc3BlY3Rvck92ZXJyaWRlOworPCUtIGVuZCAtJT4KKworICAgIEZvbnRHZW5lcmlj
RmFtaWxpZXMgZm9udEdlbmVyaWNGYW1pbGllczsKKzwlLSBmb3IgQGNvbmRpdGlvbiBpbiBAYWxs
U2V0dGluZ3NTZXQuY29uZGl0aW9ucyBkbyAtJT4KKzwlLSBpZiBAY29uZGl0aW9uLm5vbkJvb2xT
ZXR0aW5nc05lZWRpbmdJbXBsZW1lbnRhdGlvbi5sZW5ndGggIT0gMCAtJT4KKzwlLSBpZiBAY29u
ZGl0aW9uLmNvbmRpdGlvbiAtJT4KKyNpZiA8JT0gQGNvbmRpdGlvbi5jb25kaXRpb24gJT4KKzwl
LSBlbmQgLSU+Cis8JS0gZm9yIEBzZXR0aW5nIGluIEBjb25kaXRpb24ubm9uQm9vbFNldHRpbmdz
TmVlZGluZ0ltcGxlbWVudGF0aW9uIC0lPgorICAgIDwlPSBAc2V0dGluZy50eXBlICU+IDwlPSBA
c2V0dGluZy5uYW1lICU+OworPCUtIGVuZCAtJT4KKzwlLSBpZiBAY29uZGl0aW9uLmNvbmRpdGlv
biAtJT4KKyNlbmRpZgorPCUtIGVuZCAtJT4KKzwlLSBlbmQgLSU+Cis8JS0gZW5kIC0lPgorPCUt
IGZvciBAY29uZGl0aW9uIGluIEBhbGxTZXR0aW5nc1NldC5jb25kaXRpb25zIGRvIC0lPgorPCUt
IGlmIEBjb25kaXRpb24uc2V0dGluZ3NOZWVkaW5nSW1wbGVtZW50YXRpb24ubGVuZ3RoICE9IDAg
LSU+CisgICAgPCUtIGlmIEBjb25kaXRpb24uY29uZGl0aW9uIC0lPgorI2lmIDwlPSBAY29uZGl0
aW9uLmNvbmRpdGlvbiAlPgorICAgIDwlLSBlbmQgLSU+CisgICAgPCUtIGZvciBAc2V0dGluZyBp
biBAY29uZGl0aW9uLmJvb2xTZXR0aW5nc05lZWRpbmdJbXBsZW1lbnRhdGlvbiAtJT4KKyAgICA8
JT0gQHNldHRpbmcudHlwZSAlPiA8JT0gQHNldHRpbmcubmFtZSAlPiA6IDE7CisgICAgPCUtIGVu
ZCAtJT4KKyAgICA8JS0gaWYgQGNvbmRpdGlvbi5jb25kaXRpb24gLSU+CisjZW5kaWYKKyAgICA8
JS0gZW5kIC0lPgorPCUtIGVuZCAtJT4KKzwlLSBlbmQgLSU+Cit9OworCisKIGNsYXNzIFNldHRp
bmdzIDogcHVibGljIFNldHRpbmdzQmFzZSwgcHVibGljIFJlZkNvdW50ZWQ8U2V0dGluZ3M+IHsK
ICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShTZXR0aW5ncyk7IFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwogcHVibGljOgpAQCAtNzEsNDggKzEwOSwxMiBAQCBwdWJsaWM6CiAgICAgRm9udEdlbmVy
aWNGYW1pbGllcyYgZm9udEdlbmVyaWNGYW1pbGllcygpIGZpbmFsIHsgcmV0dXJuIG1fdmFsdWVz
LmZvbnRHZW5lcmljRmFtaWxpZXM7IH0KICAgICBjb25zdCBGb250R2VuZXJpY0ZhbWlsaWVzJiBm
b250R2VuZXJpY0ZhbWlsaWVzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV92YWx1ZXMuZm9udEdl
bmVyaWNGYW1pbGllczsgfQogCi0gICAgc3RydWN0IFZhbHVlcyB7Ci0gICAgICAgIHZvaWQgaW5p
dGlhbGl6ZSgpOwotICAgICAgICBWYWx1ZXMgaXNvbGF0ZWRDb3B5KCkgY29uc3Q7Ci0KLTwlLSBm
b3IgQHNldHRpbmcgaW4gQGFsbFNldHRpbmdzU2V0Lmluc3BlY3Rvck92ZXJyaWRlU2V0dGluZ3Mg
ZG8gLSU+Ci0gICAgICAgIHN0ZDo6b3B0aW9uYWw8PCU9IEBzZXR0aW5nLnR5cGUgJT4+IDwlPSBA
c2V0dGluZy5uYW1lICU+SW5zcGVjdG9yT3ZlcnJpZGU7Ci08JS0gZW5kIC0lPgotCi0gICAgICAg
IEZvbnRHZW5lcmljRmFtaWxpZXMgZm9udEdlbmVyaWNGYW1pbGllczsKLTwlLSBmb3IgQGNvbmRp
dGlvbiBpbiBAYWxsU2V0dGluZ3NTZXQuY29uZGl0aW9ucyBkbyAtJT4KLTwlLSBpZiBAY29uZGl0
aW9uLm5vbkJvb2xTZXR0aW5nc05lZWRpbmdJbXBsZW1lbnRhdGlvbi5sZW5ndGggIT0gMCAtJT4K
LTwlLSBpZiBAY29uZGl0aW9uLmNvbmRpdGlvbiAtJT4KLSNpZiA8JT0gQGNvbmRpdGlvbi5jb25k
aXRpb24gJT4KLTwlLSBlbmQgLSU+Ci08JS0gZm9yIEBzZXR0aW5nIGluIEBjb25kaXRpb24ubm9u
Qm9vbFNldHRpbmdzTmVlZGluZ0ltcGxlbWVudGF0aW9uIC0lPgotICAgICAgICA8JT0gQHNldHRp
bmcudHlwZSAlPiA8JT0gQHNldHRpbmcubmFtZSAlPjsKLTwlLSBlbmQgLSU+Ci08JS0gaWYgQGNv
bmRpdGlvbi5jb25kaXRpb24gLSU+Ci0jZW5kaWYKLTwlLSBlbmQgLSU+Ci08JS0gZW5kIC0lPgot
PCUtIGVuZCAtJT4KLTwlLSBmb3IgQGNvbmRpdGlvbiBpbiBAYWxsU2V0dGluZ3NTZXQuY29uZGl0
aW9ucyBkbyAtJT4KLSAgICA8JS0gaWYgQGNvbmRpdGlvbi5zZXR0aW5nc05lZWRpbmdJbXBsZW1l
bnRhdGlvbi5sZW5ndGggIT0gMCAtJT4KLSAgICAgICAgPCUtIGlmIEBjb25kaXRpb24uY29uZGl0
aW9uIC0lPgotI2lmIDwlPSBAY29uZGl0aW9uLmNvbmRpdGlvbiAlPgotICAgICAgICA8JS0gZW5k
IC0lPgotICAgICAgICA8JS0gZm9yIEBzZXR0aW5nIGluIEBjb25kaXRpb24uYm9vbFNldHRpbmdz
TmVlZGluZ0ltcGxlbWVudGF0aW9uIC0lPgotICAgICAgICA8JT0gQHNldHRpbmcudHlwZSAlPiA8
JT0gQHNldHRpbmcubmFtZSAlPiA6IDE7Ci0gICAgICAgIDwlLSBlbmQgLSU+Ci0gICAgICAgIDwl
LSBpZiBAY29uZGl0aW9uLmNvbmRpdGlvbiAtJT4KLSNlbmRpZgotICAgICAgICA8JS0gZW5kIC0l
PgotICAgIDwlLSBlbmQgLSU+Ci08JS0gZW5kIC0lPgotICAgIH07Ci0gICAgY29uc3QgVmFsdWVz
JiB2YWx1ZXMoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlczsgfQorICAgIGNvbnN0IFNldHRpbmdz
VmFsdWVzJiB2YWx1ZXMoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlczsgfQogCiBwcml2YXRlOgog
ICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IFNldHRpbmdzKFBhZ2UqKTsKIAotICAgIFZhbHVl
cyBtX3ZhbHVlczsKKyAgICBTZXR0aW5nc1ZhbHVlcyBtX3ZhbHVlczsKIH07CiAKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQKaW5kZXggNDY4NTk5MzRmNjIzODJhYzY1MjVhYWNjYzQ2M2RiM2EyYWRjNDcwMi4uMzMx
YTVhYWJlZDczMTk1MjMzNjQ5ZTI1MTBkOThlODJiMTE1NmE2NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAg
LTcyLDYgKzcyLDcgQEAgTW9kdWxlcy9oaWdobGlnaHQvQXBwSGlnaGxpZ2h0UmFuZ2VEYXRhLmNw
cAogTW9kdWxlcy9oaWdobGlnaHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKIE1vZHVsZXMvaGln
aGxpZ2h0L0hpZ2hsaWdodFJlZ2lzdGVyLmNwcAogTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0
LmNwcAorTW9kdWxlcy9pbmRleGVkZGIvSURCQWN0aXZlRE9NT2JqZWN0LmNwcAogTW9kdWxlcy9p
bmRleGVkZGIvSURCQ3Vyc29yLmNwcAogTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yV2l0aFZh
bHVlLmNwcAogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3BwCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZDZjZmFmMWNk
ODM0ODY1ODAyZjMyMTBkNGU1NjY3YTg5YTM4ZDhjZC4uMWVhYjc4NDdhYjE5MGQxYjFiZGZiNjQx
NTJjNTg0NDhjNDY4N2M0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDU0NSw2ICs0NTQ1LDggQEAKIAkJQ0RFQTdDODQxMjc2
MjMwNDAwQjg0NkREIC8qIFJlbmRlckZ1bGxTY3JlZW4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERUE3QzgyMTI3NjIzMDQwMEI4NDZERCAvKiBSZW5k
ZXJGdWxsU2NyZWVuLmggKi87IH07CiAJCUNERUNBODlCMUVERjQ0N0QwMERDQjA4QiAvKiBBVkFz
c2V0VHJhY2tVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENERUNBODk5MUVERjQ0N0QwMERDQjA4QiAvKiBBVkFzc2V0VHJhY2tVdGlsaXRp
ZXMuaCAqLzsgfTsKIAkJQ0RFRDFDM0MyNENEMzA1NzAwOTM0RTEyIC8qIFZQOVV0aWxpdGllc0Nv
Y29hLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q2
RkU1QjgyNEJDRTY0NTAwOUZDREE0IC8qIFZQOVV0aWxpdGllc0NvY29hLm1tICovOyB9OworCQlD
REVEOUNDNDI3MTRDQUVFMDBFODhDQzMgLyogU2NyaXB0RXhlY3V0aW9uQ29udGV4dElubGluZXMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERUQ5Q0Mz
MjcxNENBRUUwMEU4OENDMyAvKiBTY3JpcHRFeGVjdXRpb25Db250ZXh0SW5saW5lcy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUNERUQ5Q0NBMjcx
NTYzMjMwMEU4OENDMyAvKiBJREJBY3RpdmVET01PYmplY3RJbmxpbmVzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREVEOUNDOTI3MTU2MzIzMDBFODhD
QzMgLyogSURCQWN0aXZlRE9NT2JqZWN0SW5saW5lcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNERUY0RkQ3MTdFODVDOEYwMEFFRTI0QiAvKiBH
cmlkTGVuZ3RoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDREVGNEZENjE3RTg1QzhGMDBBRUUyNEIgLyogR3JpZExlbmd0aC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNERUZBMjI4MUU3NjY5RTgwMDBB
RTk5QyAvKiBQbGF0Zm9ybUF1ZGlvRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0RFNjY3QTExRTRCQkE0RDAwRTgxNTRBIC8qIFBsYXRmb3JtQXVk
aW9EYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJQ0RFRkRBMEIyNzEyMjYzODAwNTU1OUE3IC8qIERvY3VtZW50SW5saW5lcy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFRkRBMDkyNzEyMjYzODAw
NTU1OUE3IC8qIERvY3VtZW50SW5saW5lcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CkBAIC0xNTQ0Myw2ICsxNTQ0NSw5IEBACiAJCUNERUIzRDczMjRD
NDFBNkUwMDFGQkVFRiAvKiBTb3VyY2VCdWZmZXJQYXJzZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU291
cmNlQnVmZmVyUGFyc2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERUNBODk4
MUVERjQ0N0QwMERDQjA4QiAvKiBBVkFzc2V0VHJhY2tVdGlsaXRpZXMubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBBVkFzc2V0VHJhY2tVdGlsaXRpZXMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUNERUNBODk5MUVERjQ0N0QwMERDQjA4QiAvKiBBVkFzc2V0VHJhY2tVdGlsaXRp
ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQVZBc3NldFRyYWNrVXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUNERUQ5Q0MzMjcxNENBRUUwMEU4OENDMyAvKiBTY3JpcHRFeGVj
dXRpb25Db250ZXh0SW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHRFeGVjdXRpb25Db250
ZXh0SW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREVEOUNDOTI3MTU2
MzIzMDBFODhDQzMgLyogSURCQWN0aXZlRE9NT2JqZWN0SW5saW5lcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBJREJBY3RpdmVET01PYmplY3RJbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUNERUQ5Q0NDMjcxNTYzQUQwMEU4OENDMyAvKiBJREJBY3RpdmVET01PYmplY3QuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSURCQWN0aXZlRE9NT2JqZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQ0RFRTM5MzYxNzk3NDI1OTAwMUQ3NTgwIC8qIFB1YmxpY1VSTE1hbmFn
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHVibGljVVJMTWFu
YWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERUUzOTM4MTc5NzQyNzQw
MDFENzU4MCAvKiBVUkxSZWdpc3RyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVUkxSZWdpc3RyeS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREVGNEZENjE3RTg1QzhGMDBBRUUyNEIgLyog
R3JpZExlbmd0aC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHcmlkTGVuZ3Ro
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNDQ3Nyw3ICsyNDQ4Miw5IEBACiAJ
CQkJNTEwMzEwNDIxQkE4QzY0QzAwMzMyOUMwIC8qIGNsaWVudCAqLywKIAkJCQk1MTBBNThFRTFC
QUI3MUUwMDBDMTkyODIgLyogc2VydmVyICovLAogCQkJCTUxMEE1OEUxMUJBQTQwOTgwMEMxOTI4
MiAvKiBzaGFyZWQgKi8sCisJCQkJQ0RFRDlDQ0MyNzE1NjNBRDAwRTg4Q0MzIC8qIElEQkFjdGl2
ZURPTU9iamVjdC5jcHAgKi8sCiAJCQkJNTE3MTRFQTcxQ0Y0REU4NzAwNDcyM0M0IC8qIElEQkFj
dGl2ZURPTU9iamVjdC5oICovLAorCQkJCUNERUQ5Q0M5MjcxNTYzMjMwMEU4OENDMyAvKiBJREJB
Y3RpdmVET01PYmplY3RJbmxpbmVzLmggKi8sCiAJCQkJNTE2NDVCNTQxQjlGODhFODAwRjc4OUNF
IC8qIElEQkN1cnNvci5jcHAgKi8sCiAJCQkJNTE2NDVCNDExQjlGODg5QjAwRjc4OUNFIC8qIElE
QkN1cnNvci5oICovLAogCQkJCTUxRDcxOTc3MTgxMTA2REYwMDE2REM1MSAvKiBJREJDdXJzb3Iu
aWRsICovLApAQCAtMzA4NzIsNiArMzA4NzksNyBAQAogCQkJCUUzRTRFMkE2MUUzQjE2RkMwMDIz
QkI4QSAvKiBTY3JpcHRFbGVtZW50Q2FjaGVkU2NyaXB0RmV0Y2hlci5oICovLAogCQkJCUUxMUM5
REFGMEVCMzY5OTUwMEU0MDlEQiAvKiBTY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcCAqLywKIAkJ
CQlFMTFDOUQ5QTBFQjM2ODEyMDBFNDA5REIgLyogU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oICov
LAorCQkJCUNERUQ5Q0MzMjcxNENBRUUwMEU4OENDMyAvKiBTY3JpcHRFeGVjdXRpb25Db250ZXh0
SW5saW5lcy5oICovLAogCQkJCThBNDEzQURGMTIwN0JCQTUwMDgyMDE2RSAvKiBTY3JpcHRSdW5u
ZXIuY3BwICovLAogCQkJCThBNDEzQURFMTIwN0JCQTUwMDgyMDE2RSAvKiBTY3JpcHRSdW5uZXIu
aCAqLywKIAkJCQk5NzZGMzZFODE0Njg2MjI1MDA1RTkzQjQgLyogU2VjdXJpdHlDb250ZXh0LmNw
cCAqLywKQEAgLTMzMDU3LDYgKzMzMDY1LDcgQEAKIAkJCQlCMjc1MzU2RTBCMDUzODE0MDAyQ0U2
NEYgLyogSWNvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEzRjE0NTQwQUI2MzRDNDAwMDk0RERG
IC8qIEljb25Mb2FkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNzE0RUE4MUNGNEU0QjEwMDQ3
MjNDNCAvKiBJREJBY3RpdmVET01PYmplY3QuaCBpbiBIZWFkZXJzICovLAorCQkJCUNERUQ5Q0NB
MjcxNTYzMjMwMEU4OENDMyAvKiBJREJBY3RpdmVET01PYmplY3RJbmxpbmVzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1MUJBNEFDQzFCQkM1QkREMDBERjNENkQgLyogSURCQmFja2luZ1N0b3JlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlDNTg1QTY2MzExRDRGQUM1MDA0QzNFNEIgLyogSURCQmluZGlu
Z1V0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE3QjI1QUExQ0M4MkIyQTAwNjFDMDEx
IC8qIElEQkNvbm5lY3Rpb25Qcm94eS5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNTIzMyw2ICszNTI0
Miw3IEBACiAJCQkJRTNFNEUyQTgxRTNCMTcxMDAwMjNCQjhBIC8qIFNjcmlwdEVsZW1lbnRDYWNo
ZWRTY3JpcHRGZXRjaGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTFDOUQ5QjBFQjM2ODEyMDBF
NDA5REIgLyogU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEx
MjIzQkEyNjAyNDRGRTAwQjBBMEI2IC8qIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVy
LmggaW4gSGVhZGVycyAqLywKKwkJCQlDREVEOUNDNDI3MTRDQUVFMDBFODhDQzMgLyogU2NyaXB0
RXhlY3V0aW9uQ29udGV4dElubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3MkQzRTU1MjE2
NTc4QUUwMEM1RTAyMSAvKiBTY3JpcHRNb2R1bGVMb2FkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUZEMzE2MDM2MTJCMDI2NzYwMEMxQTM1OSAvKiBTY3JpcHRQcm9jZXNzb3JOb2RlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk4QTQxM0FFMDEyMDdCQkE1MDA4MjAxNkUgLyogU2NyaXB0UnVubmVyLmgg
aW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NV2luZG93Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2lu
ZG93Q3VzdG9tLmNwcAppbmRleCA4NTkyNGE0ZjRjMTI2NDFmZmE2ZjMyNjkwZmZhMDM0NTg5ODc4
NTVhLi4xMmNmNTgwZDRlYWFlYzNjNGFlNjFkYjNjNWQwM2Q3N2MwYzE2ZTQwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCkBAIC00Nyw2
ICs0Nyw3IEBACiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJXZWJDb3JlSlNDbGll
bnREYXRhLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQnVpbHRpbk5hbWVzLmg+CisjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvSGVhcEFuYWx5emVyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW50ZXJuYWxG
dW5jdGlvbi5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lubGluZXMuaD4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKaW5kZXggYTQz
YWVlMDQ4ZjRiYzg1MDQ4Njg5ZWNmMTcxMDhjYmQ4NTE5YjZiYS4uOWRmMzI4MmJiYTkwZWE0YWFm
ODhhMGQzMTVlOTNiYjBjNjJhOGRkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvU2NyaXB0Q29udHJvbGxlci5jcHAKQEAgLTYxLDYgKzYxLDcgQEAKICNpbmNsdWRlICJXZWJD
b3JlSlNDbGllbnREYXRhLmgiCiAjaW5jbHVkZSAibnBydW50aW1lX2ltcGwuaCIKICNpbmNsdWRl
ICJydW50aW1lX3Jvb3QuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMu
aD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9EZWJ1Z2dlci5oPgogI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL0hlYXAuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Jbml0aWFsaXplVGhy
ZWFkaW5nLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRN
b2R1bGVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxl
TG9hZGVyLmNwcAppbmRleCBlODkxYmVhZTI1NDRkYzE1NzVmYTIzODk5ZDE4N2E4YTE1ZTRhNTU3
Li45Y2M1ZGU0NzZhMzc5NGUxMmQzZTE4NmZmNWIxZGYzOTNlZDkwMDNhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHAKQEAgLTQ3LDYg
KzQ3LDcgQEAKICNpbmNsdWRlICJXb3JrZXJTY3JpcHRMb2FkZXIuaCIKICNpbmNsdWRlICJXb3Jr
bGV0R2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db21wbGV0aW9uLmg+
CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvSlNJbnRlcm5hbFByb21pc2UuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9KU01vZHVsZVJlY29yZC5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTU2NyaXB0RmV0
Y2hQYXJhbWV0ZXJzLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvckpTLnBtCmluZGV4IGY4YjRhMWNlMmNjZGM4MmU2ODlmMGYzNzk2NzAzOThm
YmNkZDk1NTYuLjAyNTM2OWQ3ZTYxMGEzYTcwZWY5MjA2MDJmMmNmMzgxNDRiNmY0YjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBt
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBt
CkBAIC00MDAzLDYgKzQwMDMsNyBAQCBzdWIgR2VuZXJhdGVSdW50aW1lRW5hYmxlQ29uZGl0aW9u
YWxTdHJpbmcKICAgICAgICAgYXNzZXJ0KCJNdXN0IHNwZWNpZnkgdmFsdWUgZm9yIEVuYWJsZWRC
eVNldHRpbmcuIikgaWYgJGNvbnRleHQtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0VuYWJsZWRCeVNl
dHRpbmd9IGVxICJWQUxVRV9JU19NSVNTSU5HIjsKIAogICAgICAgICBBZGRUb0ltcGxJbmNsdWRl
cygiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIik7CisgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVz
KCJTZXR0aW5ncy5oIik7CiAKICAgICAgICAgbXkgQGZsYWdzID0gc3BsaXQoLyYvLCAkY29udGV4
dC0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57RW5hYmxlZEJ5U2V0dGluZ30pOwogICAgICAgICBmb3Jl
YWNoIG15ICRmbGFnIChAZmxhZ3MpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NvbnRl
bnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25zQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uc0JhY2tlbmQuY3BwCmluZGV4IDBi
NDAyNzI3MDVmMTEyZDU4NWRkNWY4MjIwZGYwYjVmOGIzMTIyNDQuLmMyMGQ0MTgxNWI5MWY0MmE4
NmYzZjY4NDE1YzgxMWJkMjcxODAxMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NvbnRl
bnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25zQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbnNCYWNrZW5kLmNwcApAQCAt
NDUsOSArNDUsMTAgQEAKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAi
U2NyaXB0U291cmNlQ29kZS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCi0jaW5jbHVkZSA8d3Rm
L1VSTC5oPgogI2luY2x1ZGUgIlVzZXJDb250ZW50Q29udHJvbGxlci5oIgorI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3ll
ZC5oPgorI2luY2x1ZGUgPHd0Zi9VUkwuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0
by9TdWJ0bGVDcnlwdG8uY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL1N1YnRsZUNyeXB0by5j
cHAKaW5kZXggNGZiYmU3MmUzZDlkYjI1YzU5MjE2YjU5NzkyYmY1NDc3NzQzZjk1NS4uM2VjMmNj
YzM0Yzc4NzIxNzU1OGVkZDczMTMyNDBiZGE3YjNkNzdmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3J5cHRvL1N1YnRsZUNyeXB0by5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRv
L1N1YnRsZUNyeXB0by5jcHAKQEAgLTUxLDYgKzUxLDcgQEAKICNpbmNsdWRlICJKU1JzYUtleUdl
blBhcmFtcy5oIgogI2luY2x1ZGUgIkpTUnNhT2FlcFBhcmFtcy5oIgogI2luY2x1ZGUgIkpTUnNh
UHNzUGFyYW1zLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNPTk9iamVjdC5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlLmNwcAppbmRleCAxMzQ5NDhjYmZkYjc3ZDZjMjUy
Nzc2NDE0OTFlNzlmYTEzZWM4MTVkLi4yMDQxODViNWIwZjA5Y2I3ZThmYjc5ZThkZjU4N2RiMWQ0
ZDMzYmIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZS5jcHAKQEAgLTEwMCw3ICsxMDAsNyBA
QCBSZWY8Q1NTRm9udEZhY2U+IENTU0ZvbnRGYWNlOjpjcmVhdGUoQ1NTRm9udFNlbGVjdG9yJiBm
b250U2VsZWN0b3IsIFN0eWxlUnVsZUZvbgogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLUNTU0Zv
bnRGYWNlOjpDU1NGb250RmFjZShjb25zdCBTZXR0aW5nczo6VmFsdWVzKiBzZXR0aW5ncywgU3R5
bGVSdWxlRm9udEZhY2UqIGNzc0Nvbm5lY3Rpb24sIEZvbnRGYWNlKiB3cmFwcGVyLCBib29sIGlz
TG9jYWxGYWxsYmFjaykKK0NTU0ZvbnRGYWNlOjpDU1NGb250RmFjZShjb25zdCBTZXR0aW5nc1Zh
bHVlcyogc2V0dGluZ3MsIFN0eWxlUnVsZUZvbnRGYWNlKiBjc3NDb25uZWN0aW9uLCBGb250RmFj
ZSogd3JhcHBlciwgYm9vbCBpc0xvY2FsRmFsbGJhY2spCiAgICAgOiBtX2Nzc0Nvbm5lY3Rpb24o
Y3NzQ29ubmVjdGlvbikKICAgICAsIG1fd3JhcHBlcih3cmFwcGVyKQogICAgICwgbV9pc0xvY2Fs
RmFsbGJhY2soaXNMb2NhbEZhbGxiYWNrKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0ZvbnRGYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2UuaAppbmRleCA3
ODk5M2VmZWY1N2I1ZTY3OTk2YWQxYmRhZWY4NzcxN2ZhMTYwZGU4Li4yODFhOGVhYzYyMDA3Nzk4
NmE2ZTBjMzlkZjkzNzA3YWY3ZGQ3NmJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTRm9udEZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2UuaApAQCAt
MjUsMTEgKzI1LDEyIEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiRm9udExvYWRUaW1p
bmdPdmVycmlkZS5oIgogI2luY2x1ZGUgIkZvbnRTZWxlY3Rpb25WYWx1ZUlubGluZXMuaCIKICNp
bmNsdWRlICJGb250VGFnZ2VkU2V0dGluZ3MuaCIKLSNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2lu
Y2x1ZGUgIlN0eWxlUnVsZS5oIgogI2luY2x1ZGUgIlRleHRGbGFncy5oIgorI2luY2x1ZGUgIlRp
bWVyLmgiCiAjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5j
bHVkZSA8d3RmL0hhc2hTZXQuaD4KQEAgLTU0LDYgKzU1LDggQEAgY2xhc3MgRm9udEZhY2U7CiBj
bGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogZW51bSBjbGFzcyBFeHRlcm5hbFJlc291cmNl
RG93bmxvYWRQb2xpY3k7CiAKK3N0cnVjdCBTZXR0aW5nc1ZhbHVlczsKKwogREVDTEFSRV9BTExP
Q0FUT1JfV0lUSF9IRUFQX0lERU5USUZJRVIoQ1NTRm9udEZhY2UpOwogY2xhc3MgQ1NTRm9udEZh
Y2UgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxDU1NGb250RmFjZT4gewogICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEX1dJVEhfSEVBUF9JREVOVElGSUVSKENTU0ZvbnRGYWNlKTsKQEAgLTE2
Miw3ICsxNjUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRFcnJvclN0YXRlKCk7CiAKIHByaXZh
dGU6Ci0gICAgQ1NTRm9udEZhY2UoY29uc3QgU2V0dGluZ3M6OlZhbHVlcyosIFN0eWxlUnVsZUZv
bnRGYWNlKiwgRm9udEZhY2UqLCBib29sIGlzTG9jYWxGYWxsYmFjayk7CisgICAgQ1NTRm9udEZh
Y2UoY29uc3QgU2V0dGluZ3NWYWx1ZXMqLCBTdHlsZVJ1bGVGb250RmFjZSosIEZvbnRGYWNlKiwg
Ym9vbCBpc0xvY2FsRmFsbGJhY2spOwogCiAgICAgc2l6ZV90IHB1bXAoRXh0ZXJuYWxSZXNvdXJj
ZURvd25sb2FkUG9saWN5KTsKICAgICB2b2lkIHNldFN0YXR1cyhTdGF0dXMpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRTZWxlY3Rvci5oIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0ZvbnRTZWxlY3Rvci5oCmluZGV4IGY5NzhhMTRlNDU1MWIyMGZiOTc4MWJmMWY2ODAx
YmU0ZmUyMzlhMDUuLmI3MzVkNWNiMjljZGViYmQyZjcwOGUxYzRhY2U5ZGI2ZDMyNTkxNGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250U2VsZWN0b3IuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTRm9udFNlbGVjdG9yLmgKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNs
dWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8
d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21TdHJpbmdIYXNoLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTS2V5ZnJhbWVzUnVsZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTS2V5ZnJhbWVzUnVsZS5jcHAKaW5kZXggMzY1MWVlYjNjOGU1OGE2ZGZi
ZmZmYTkxZTJlMGM5NDM3NWU1NmI0NS4uN2FlNjkwY2U2N2Q3MzFhYzY4ZjJlNzY5ZmVlY2Q5Yjg5
YmFhZWJmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0tleWZyYW1lc1J1bGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NLZXlmcmFtZXNSdWxlLmNwcApAQCAtMzIs
NiArMzIsNyBAQAogI2luY2x1ZGUgIkNTU1J1bGVMaXN0LmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVT
aGVldC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
Q29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFM
aXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUxpc3QuY3BwCmluZGV4IDNmMWE2NDQw
ZDYxMDI3YWQ1Zjc1NTA4YmVmOGRjOGIzOGZlYjVmMzYuLmJiYmViMmZiZjBlMjEzOGZkODllNDBj
ODEzZmEyZjkxM2ViYTczNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUxp
c3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUxpc3QuY3BwCkBAIC0yOCw2ICsy
OCw4IEBACiAjaW5jbHVkZSAiTWVkaWFGZWF0dXJlTmFtZXMuaCIKICNpbmNsdWRlICJNZWRpYVF1
ZXJ5LmgiCiAjaW5jbHVkZSAiTWVkaWFRdWVyeVBhcnNlci5oIgorI2luY2x1ZGUgIlNldHRpbmdz
LmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8
d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9TdHlsZVNoZWV0Q29udGVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0
eWxlU2hlZXRDb250ZW50cy5jcHAKaW5kZXggYmE0MzY1M2EwYTE2YmNhOTYwMjE2NzkyNzk1MDEy
YzNhN2MyZTE4MS4uYTk0YWQ1OGQ0MWQxYmFmYWE1MDllMGYzZWMxMTRjYWUwMzJmZmYxNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5jcHAKQEAgLTM5LDYgKzM5LDcg
QEAKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlN0eWxlUnVsZS5oIgog
I2luY2x1ZGUgIlN0eWxlUnVsZUltcG9ydC5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Nv
bnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgogI2luY2x1ZGUgPHd0Zi9OZXZl
ckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9BY3RpdmVET01PYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9BY3RpdmVE
T01PYmplY3QuaAppbmRleCAwZTc5NGEyYTA2MDllYjJlYmUzMWUzZTYzOTA1MjY1ZDJjODNhNGNm
Li5lN2FjZTRiMzU3MWFkMzE2MzRlNzkxMTY0MWUwMjIyNjNhZGMyYmY3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vQWN0aXZlRE9NT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0FjdGl2ZURPTU9iamVjdC5oCkBAIC00Miw3ICs0Miw3IEBAIGNsYXNzIEV2ZW50OwogY2xh
c3MgRXZlbnRMb29wVGFza0dyb3VwOwogY2xhc3MgRXZlbnRUYXJnZXQ7CiAKLWVudW0gY2xhc3Mg
UmVhc29uRm9yU3VzcGVuc2lvbiB7CitlbnVtIGNsYXNzIFJlYXNvbkZvclN1c3BlbnNpb24gOiB1
aW50OF90IHsKICAgICBKYXZhU2NyaXB0RGVidWdnZXJQYXVzZWQsCiAgICAgV2lsbERlZmVyTG9h
ZGluZywKICAgICBCYWNrRm9yd2FyZENhY2hlLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RldmljZU1vdGlvbkV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rp
b25FdmVudC5jcHAKaW5kZXggNGVhOGE4Y2MzYjQwY2ZmMjg3OTcyNDg0ODVhMGFmMjA1NDc4NzI5
ZC4uZWJhNjAwODY3OWE1NmQ2NTM1MjE3NmU0MjViZTRhYjUwYjEyNDQ3MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRGV2aWNlTW90aW9uRXZlbnQuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVk
ZSAiRGV2aWNlTW90aW9uRGF0YS5oIgogI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uQW5kTW90
aW9uQWNjZXNzQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgi
CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8d3Rm
L0lzb01hbGxvY0lubGluZXMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuY3BwCmluZGV4IDlhODEwNTJmNjM3Yzg4
YjZjYWU3ZGE0YWYwOGVmOGZjZjk1YThjZmQuLjMyNWExMTM5NjhkODgxZGVkMDMzNjg1ZWViOTM2
YWRjMWI5ODk4ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRh
dGlvbkV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25F
dmVudC5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkRh
dGEuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVy
cmVkLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVk
ZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAKaW5kZXggNzI0MmJjMjNkMjc1YWRkYWRmNTBkOWM2Mjk2MzdhNzFlOTYx
MjQwMi4uYjk4MWU3ODhlOWEwZjNlZmM3MjZkMjFkYjJlYzQ2ZmI2MmY5OTVlNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCkBAIC0yNzg4LDYgKzI3ODgsMTEgQEAgdm9pZCBEb2N1bWVudDo6c3Rv
cEFjdGl2ZURPTU9iamVjdHMoKQogICAgIHBsYXRmb3JtU3VzcGVuZE9yU3RvcEFjdGl2ZURPTU9i
amVjdHMoKTsKIH0KIAorY29uc3QgU2V0dGluZ3NWYWx1ZXMmIERvY3VtZW50OjpzZXR0aW5nc1Zh
bHVlcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIHNldHRpbmdzKCkudmFsdWVzKCk7Cit9CisKIHZv
aWQgRG9jdW1lbnQ6OmNsZWFyQVhPYmplY3RDYWNoZSgpCiB7CiAgICAgQVNTRVJUKCZ0b3BEb2N1
bWVudCgpID09IHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCA1NDU3NjQzNWMyMzY1Yjc4
MDIwOWZlZTE4YTEwMmYyNmI5ZTAxZjE5Li44YTkxY2UxMTNhOWQ1ZGQyYThjNzRiYzM1Y2UwMTdl
NzFhZGM3ZGJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMjUxLDYgKzI1MSw3IEBAIHN0cnVj
dCBCb3VuZGFyeVBvaW50Owogc3RydWN0IEhpZ2hsaWdodFJhbmdlRGF0YTsKIHN0cnVjdCBJbnRl
cnNlY3Rpb25PYnNlcnZlckRhdGE7CiBzdHJ1Y3QgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVu
dEluaXQ7CitzdHJ1Y3QgU2V0dGluZ3NWYWx1ZXM7CiAKIHRlbXBsYXRlPHR5cGVuYW1lPiBjbGFz
cyBFeGNlcHRpb25PcjsKIApAQCAtNjM5LDcgKzY0MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJl
c3VtZUFjdGl2ZURPTU9iamVjdHMoUmVhc29uRm9yU3VzcGVuc2lvbikgZmluYWw7CiAgICAgdm9p
ZCBzdG9wQWN0aXZlRE9NT2JqZWN0cygpIGZpbmFsOwogCi0gICAgY29uc3QgU2V0dGluZ3M6OlZh
bHVlcyYgc2V0dGluZ3NWYWx1ZXMoKSBjb25zdCBmaW5hbCB7IHJldHVybiBzZXR0aW5ncygpLnZh
bHVlcygpOyB9CisgICAgY29uc3QgU2V0dGluZ3NWYWx1ZXMmIHNldHRpbmdzVmFsdWVzKCkgY29u
c3QgZmluYWw7CiAKICAgICB2b2lkIHN1c3BlbmREZXZpY2VNb3Rpb25BbmRPcmllbnRhdGlvblVw
ZGF0ZXMoKTsKICAgICB2b2lkIHJlc3VtZURldmljZU1vdGlvbkFuZE9yaWVudGF0aW9uVXBkYXRl
cygpOwpAQCAtMTM2OSwxMSArMTM3MCwxMSBAQCBwdWJsaWM6CiAKICAgICAvLyBUaGUgZm9sbG93
aW5nIGFkZENvbnNvbGVNZXNzYWdlIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQuCiAgICAgLy8gQ2Fs
bGVycyBzaG91bGQgdHJ5IHRvIGNyZWF0ZSB0aGUgQ29uc29sZU1lc3NhZ2UgdGhlbXNlbHZlcy4K
LSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2Us
IE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsb25nIHJlcXVl
c3RJZGVudGlmaWVyID0gMCkgZmluYWw7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhZGRDb25z
b2xlTWVzc2FnZShKU0M6Ok1lc3NhZ2VTb3VyY2UsIEpTQzo6TWVzc2FnZUxldmVsLCBjb25zdCBT
dHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAwKSBmaW5h
bDsKIAogICAgIC8vIFRoZSBmb2xsb3dpbmcgYWRkTWVzc2FnZSBmdW5jdGlvbiBpcyBkZXByZWNh
dGVkLgogICAgIC8vIENhbGxlcnMgc2hvdWxkIHRyeSB0byBjcmVhdGUgdGhlIENvbnNvbGVNZXNz
YWdlIHRoZW1zZWx2ZXMuCi0gICAgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3Nh
Z2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwg
dW5zaWduZWQgbGluZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBSZWZQdHI8SW5zcGVj
dG9yOjpTY3JpcHRDYWxsU3RhY2s+JiYsIEpTQzo6SlNHbG9iYWxPYmplY3QqID0gbnVsbHB0ciwg
dW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApIGZpbmFsOworICAgIHZvaWQgYWRk
TWVzc2FnZShKU0M6Ok1lc3NhZ2VTb3VyY2UsIEpTQzo6TWVzc2FnZUxldmVsLCBjb25zdCBTdHJp
bmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCB1bnNpZ25lZCBsaW5lTnVtYmVy
LCB1bnNpZ25lZCBjb2x1bW5OdW1iZXIsIFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdENhbGxTdGFj
az4mJiwgSlNDOjpKU0dsb2JhbE9iamVjdCogPSBudWxscHRyLCB1bnNpZ25lZCBsb25nIHJlcXVl
c3RJZGVudGlmaWVyID0gMCkgZmluYWw7CiAKICAgICBTZWN1cml0eU9yaWdpbiYgc2VjdXJpdHlP
cmlnaW4oKSBjb25zdCB7IHJldHVybiAqU2VjdXJpdHlDb250ZXh0OjpzZWN1cml0eU9yaWdpbigp
OyB9CiAgICAgU2VjdXJpdHlPcmlnaW4mIHRvcE9yaWdpbigpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IHRvcERvY3VtZW50KCkuc2VjdXJpdHlPcmlnaW4oKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0VtcHR5U2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0VtcHR5U2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCmluZGV4IDIzMWIzYmYxY2E5ODFjMjJl
OTgwMzAyOWViMjAxNmFmNzNiMjJhODEuLjNlMzFlMGZlOWJkOGQzYWY5ZDE3MDlhMGMyMjA1MTQ4
MDY2Yzk2ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbXB0eVNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRW1wdHlTY3JpcHRFeGVjdXRp
b25Db250ZXh0LmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJSZWZlcnJlclBvbGljeS5o
IgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJTZWN1cml0
eU9yaWdpbi5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAKICNpbmNsdWRlIDx3dGYvSXNvTWFs
bG9jLmg+CiAKQEAgLTkyLDcgKzkzLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlZlNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSBmaW5hbCB7IHJlZigpOyB9OwogICAgIHZvaWQgZGVyZWZTY3JpcHRF
eGVjdXRpb25Db250ZXh0KCkgZmluYWwgeyBkZXJlZigpOyB9OwogCi0gICAgY29uc3QgU2V0dGlu
Z3M6OlZhbHVlcyYgc2V0dGluZ3NWYWx1ZXMoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3NldHRp
bmdzVmFsdWVzOyB9CisgICAgY29uc3QgU2V0dGluZ3NWYWx1ZXMmIHNldHRpbmdzVmFsdWVzKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gbV9zZXR0aW5nc1ZhbHVlczsgfQogCiAgICAgY2xhc3MgRW1w
dHlFdmVudExvb3AgZmluYWwgOiBwdWJsaWMgRXZlbnRMb29wIHsKICAgICBwdWJsaWM6CkBAIC0x
MjAsNyArMTIxLDcgQEAgcHJpdmF0ZToKICAgICBVUkwgbV91cmw7CiAgICAgUmVmPEVtcHR5RXZl
bnRMb29wPiBtX2V2ZW50TG9vcDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RXZlbnRMb29wVGFza0dy
b3VwPiBtX2V2ZW50TG9vcFRhc2tHcm91cDsKLSAgICBTZXR0aW5nczo6VmFsdWVzIG1fc2V0dGlu
Z3NWYWx1ZXM7CisgICAgU2V0dGluZ3NWYWx1ZXMgbV9zZXR0aW5nc1ZhbHVlczsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9GdWxs
c2NyZWVuTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRnVsbHNjcmVlbk1hbmFnZXIu
Y3BwCmluZGV4IGI1NDFmYTdjZGExM2IzOTM4YTRjMjdhN2U3NTk0MDQ3ZmE1ZGNiMmYuLmMwNzAw
NjM3OGU5YmE2MzZjNDBmY2FmNjE4MWQwZGY2YzVlY2EwNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9GdWxsc2NyZWVuTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcApAQCAtNDIsNiArNDIsOCBAQAogI2luY2x1ZGUgIlJlbmRl
ckZ1bGxTY3JlZW4uaCIKICNpbmNsdWRlICJSZW5kZXJUcmVlQnVpbGRlci5oIgogI2luY2x1ZGUg
IlNldHRpbmdzLmgiCisjaW5jbHVkZSAiVXNlckdlc3R1cmVJbmRpY2F0b3IuaCIKKyNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMuaD4KICNpbmNsdWRlIDx3dGYvTG9nZ2VySGVs
cGVyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Mb2FkYWJsZUNsYXNzaWNTY3JpcHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0xvYWRh
YmxlQ2xhc3NpY1NjcmlwdC5jcHAKaW5kZXggOGY0NmVkODY4YzM4MWJhMGFmNzVlYzYxMDU3NGE1
NWNkMjA0ZmQ4NC4uZjdmOWUxOWU1NmQ2NmQxY2IyMDQ4YWFmNGE5MWE1YzFjOTQ4YzI3ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0xvYWRhYmxlQ2xhc3NpY1NjcmlwdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0xvYWRhYmxlQ2xhc3NpY1NjcmlwdC5jcHAKQEAgLTMxLDYg
KzMxLDcgQEAKICNpbmNsdWRlICJTY3JpcHRFbGVtZW50LmgiCiAjaW5jbHVkZSAiU2NyaXB0U291
cmNlQ29kZS5oIgogI2luY2x1ZGUgIlN1YnJlc291cmNlSW50ZWdyaXR5LmgiCisjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJv
eWVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSW1wbC5oPgogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW91
c2VFdmVudC5jcHAKaW5kZXggZGFjM2UwODhkOWE1ZDNiNzY4N2Q0ZGIxY2VmYjJkNWViOGIwZTBm
Mi4uMmEwOTc2YjIzZDNjYTY3ZDQ2MzJiYmNmNDMyMzNkOTc2ZTcyN2ZiMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Nb3VzZUV2ZW50LmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIlBsYXRmb3JtTW91
c2VFdmVudC5oIgogI2luY2x1ZGUgIlJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oIgogI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL0NhbGxGcmFtZS5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L0NvbnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTR2xvYmFsT2JqZWN0
SW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TY3JpcHRFbGVtZW50LmNwcAppbmRleCBjNGYyOTU5OTkzOWVjMTY4MzJjNmRmNmMwY2Vj
MDIwYmNkNDI1MGI0Li5lMzI2YjQ4Yjc2NzRmYjkxZjc5NTg3YmZlMGU5OTA1NTc4NDVhOTFjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCkBAIC01Niw2ICs1Niw3IEBACiAjaW5j
bHVkZSAiU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIK
ICNpbmNsdWRlICJUZXh0Tm9kZVRyYXZlcnNhbC5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L0NvbnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9Tb3J0ZWRBcnJheU1hcC5oPgogI2luY2x1
ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvU3lzdGVtVHJhY2luZy5oPgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwCmluZGV4IGQy
NGIwMWI3NzM2YzVjYjU4ZjY5YTdkOThkNmM0YjcwYjY0OThiYzMuLmMzMGJjNmQ0ZTQ0ODI5YTc1
NjFkZjE4YjY3MjQ2NWJhZjk2MmQ4OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9T
Y3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0
RXhlY3V0aW9uQ29udGV4dC5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAKKyNpbmNsdWRlICJBY3Rp
dmVET01PYmplY3QuaCIKICNpbmNsdWRlICJDU1NWYWx1ZVBvb2wuaCIKICNpbmNsdWRlICJDYWNo
ZWRTY3JpcHQuaCIKICNpbmNsdWRlICJDb21tb25WTS5oIgpAQCAtNzEsNiArNzIsNyBAQAogI2lu
Y2x1ZGUgIldvcmtlclRocmVhZC5oIgogI2luY2x1ZGUgIldvcmtsZXRHbG9iYWxTY29wZS5oIgog
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NhdGNoU2NvcGUuaD4KKyNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9Db25zb2xlVHlwZXMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9EZWZlcnJl
ZFdvcmtUaW1lci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0V4Y2VwdGlvbi5oPgogI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTUHJvbWlzZS5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9T
Y3JpcHRFeGVjdXRpb25Db250ZXh0LmgKaW5kZXggMTZjODY2ZjM5NDg2YWRkMWVkYTNkYTMyMGI1
MTA0NmQyNWMzMDQ1ZS4uOGMyNDY0ZWJlNGYzZGJkMmU0MDI3YTE1OWJjNWI2MjI3YWQwNGQ2YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCkBAIC0yNywx
NiArMjcsMTAgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJBY3RpdmVET01PYmplY3Qu
aCIKICNpbmNsdWRlICJDcm9zc09yaWdpbk1vZGUuaCIKLSNpbmNsdWRlICJET01UaW1lci5oIgog
I2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAi
U2VjdXJpdHlDb250ZXh0LmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlcklkZW50aWZpZXIuaCIK
LSNpbmNsdWRlICJTZXR0aW5ncy5oIgotI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVU
eXBlcy5oPgotI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hhbmRsZVR5cGVzLmg+Ci0jaW5jbHVk
ZSA8d3RmL0Nyb3NzVGhyZWFkVGFzay5oPgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogI2lu
Y2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZpZXIuaD4K
QEAgLTQ2LDkgKzQwLDEyIEBACiBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIENhbGxGcmFtZTsKIGNs
YXNzIEV4Y2VwdGlvbjsKK2NsYXNzIEpTR2xvYmFsT2JqZWN0OwogY2xhc3MgSlNQcm9taXNlOwog
Y2xhc3MgVk07CiBlbnVtIGNsYXNzIFNjcmlwdEV4ZWN1dGlvblN0YXR1czsKK2VudW0gY2xhc3Mg
TWVzc2FnZVNvdXJjZSA6IHVpbnQ4X3Q7CitlbnVtIGNsYXNzIE1lc3NhZ2VMZXZlbCA6IHVpbnQ4
X3Q7CiB9CiAKIG5hbWVzcGFjZSBJbnNwZWN0b3IgewpAQCAtNTcsMTEgKzU0LDE1IEBAIGNsYXNz
IFNjcmlwdENhbGxTdGFjazsKIH0KIAogbmFtZXNwYWNlIFdlYkNvcmUgeworc3RydWN0IFNldHRp
bmdzVmFsdWVzOwogCitjbGFzcyBBY3RpdmVET01PYmplY3Q7CiBjbGFzcyBFdmVudExvb3A7CiBj
bGFzcyBDYWNoZWRTY3JpcHQ7CiBjbGFzcyBDU1NGb250U2VsZWN0b3I7CiBjbGFzcyBDU1NWYWx1
ZVBvb2w7CitjbGFzcyBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcjsKK2NsYXNzIERPTVRpbWVy
OwogY2xhc3MgRGF0YWJhc2VDb250ZXh0OwogY2xhc3MgRXZlbnRRdWV1ZTsKIGNsYXNzIEV2ZW50
TG9vcFRhc2tHcm91cDsKQEAgLTc1LDkgKzc2LDExIEBAIGNsYXNzIFJlamVjdGVkUHJvbWlzZVRy
YWNrZXI7CiBjbGFzcyBSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uOwogY2xh
c3MgUmVzb3VyY2VSZXF1ZXN0OwogY2xhc3MgU29ja2V0UHJvdmlkZXI7CisKIGVudW0gY2xhc3Mg
TG9hZGVkRnJvbU9wYXF1ZVNvdXJjZSA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFJlZmVycmVyUG9s
aWN5IDogdWludDhfdDsKIGVudW0gY2xhc3MgVGFza1NvdXJjZSA6IHVpbnQ4X3Q7CitlbnVtIGNs
YXNzIFJlYXNvbkZvclN1c3BlbnNpb24gOiB1aW50OF90OwogCiAjaWYgRU5BQkxFKFNFUlZJQ0Vf
V09SS0VSKQogY2xhc3MgU2VydmljZVdvcmtlcjsKQEAgLTExMCw3ICsxMTMsNyBAQCBwdWJsaWM6
CiAKICAgICB2aXJ0dWFsIFJlZmVycmVyUG9saWN5IHJlZmVycmVyUG9saWN5KCkgY29uc3QgPSAw
OwogCi0gICAgdmlydHVhbCBjb25zdCBTZXR0aW5nczo6VmFsdWVzJiBzZXR0aW5nc1ZhbHVlcygp
IGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGNvbnN0IFNldHRpbmdzVmFsdWVzJiBzZXR0aW5nc1Zh
bHVlcygpIGNvbnN0ID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlRXZhbChjb25zdCBT
dHJpbmcmIGVycm9yTWVzc2FnZSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlV2ViQXNz
ZW1ibHkoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpID0gMDsKQEAgLTEzMiw4ICsxMzUsOCBA
QCBwdWJsaWM6CiAKICAgICAvLyBUaGUgZm9sbG93aW5nIGFkZENvbnNvbGVNZXNzYWdlIGZ1bmN0
aW9ucyBhcmUgZGVwcmVjYXRlZC4KICAgICAvLyBDYWxsZXJzIHNob3VsZCB0cnkgdG8gY3JlYXRl
IHRoZSBDb25zb2xlTWVzc2FnZSB0aGVtc2VsdmVzLgotICAgIHZvaWQgYWRkQ29uc29sZU1lc3Nh
Z2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNv
bnN0IFN0cmluZyYgc291cmNlVVJMLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBjb2x1
bW5OdW1iZXIsIEpTQzo6SlNHbG9iYWxPYmplY3QqID0gbnVsbHB0ciwgdW5zaWduZWQgbG9uZyBy
ZXF1ZXN0SWRlbnRpZmllciA9IDApOwotICAgIHZpcnR1YWwgdm9pZCBhZGRDb25zb2xlTWVzc2Fn
ZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5z
aWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApID0gMDsKKyAgICB2b2lkIGFkZENvbnNv
bGVNZXNzYWdlKEpTQzo6TWVzc2FnZVNvdXJjZSwgSlNDOjpNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0
cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIHVuc2lnbmVkIGxpbmVOdW1i
ZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlciwgSlNDOjpKU0dsb2JhbE9iamVjdCogPSBudWxscHRy
LCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyID0gMCk7CisgICAgdmlydHVhbCB2b2lk
IGFkZENvbnNvbGVNZXNzYWdlKEpTQzo6TWVzc2FnZVNvdXJjZSwgSlNDOjpNZXNzYWdlTGV2ZWws
IGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9
IDApID0gMDsKIAogICAgIHZpcnR1YWwgU2VjdXJpdHlPcmlnaW4mIHRvcE9yaWdpbigpIGNvbnN0
ID0gMDsKIApAQCAtMjE2LDE5ICsyMTksMTQgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBw
b3N0VGFzayhUYXNrJiYpID0gMDsgLy8gRXhlY3V0ZXMgdGhlIHRhc2sgb24gY29udGV4dCdzIHRo
cmVhZCBhc3luY2hyb25vdXNseS4KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3VtZW50
cz4KLSAgICB2b2lkIHBvc3RDcm9zc1RocmVhZFRhc2soQXJndW1lbnRzJiYuLi4gYXJndW1lbnRz
KQotICAgIHsKLSAgICAgICAgcG9zdFRhc2soW2Nyb3NzVGhyZWFkVGFzayA9IGNyZWF0ZUNyb3Nz
VGhyZWFkVGFzayhhcmd1bWVudHMuLi4pXShTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgbXV0YWJs
ZSB7Ci0gICAgICAgICAgICBjcm9zc1RocmVhZFRhc2sucGVyZm9ybVRhc2soKTsKLSAgICAgICAg
fSk7Ci0gICAgfQorICAgIGlubGluZSB2b2lkIHBvc3RDcm9zc1RocmVhZFRhc2soQXJndW1lbnRz
JiYuLi4pOwogCiAgICAgLy8gR2V0cyB0aGUgbmV4dCBpZCBpbiBhIGNpcmN1bGFyIHNlcXVlbmNl
IGZyb20gMSB0byAyXjMxLTEuCiAgICAgaW50IGNpcmN1bGFyU2VxdWVudGlhbElEKCk7CiAKLSAg
ICBib29sIGFkZFRpbWVvdXQoaW50IHRpbWVvdXRJZCwgRE9NVGltZXImIHRpbWVyKSB7IHJldHVy
biBtX3RpbWVvdXRzLmFkZCh0aW1lb3V0SWQsIHRpbWVyKS5pc05ld0VudHJ5OyB9Ci0gICAgdm9p
ZCByZW1vdmVUaW1lb3V0KGludCB0aW1lb3V0SWQpIHsgbV90aW1lb3V0cy5yZW1vdmUodGltZW91
dElkKTsgfQotICAgIERPTVRpbWVyKiBmaW5kVGltZW91dChpbnQgdGltZW91dElkKSB7IHJldHVy
biBtX3RpbWVvdXRzLmdldCh0aW1lb3V0SWQpOyB9CisgICAgaW5saW5lIGJvb2wgYWRkVGltZW91
dChpbnQgdGltZW91dElkLCBET01UaW1lciYpOworICAgIGlubGluZSB2b2lkIHJlbW92ZVRpbWVv
dXQoaW50IHRpbWVvdXRJZCk7CisgICAgaW5saW5lIERPTVRpbWVyKiBmaW5kVGltZW91dChpbnQg
dGltZW91dElkKTsKIAogICAgIHZpcnR1YWwgSlNDOjpWTSYgdm0oKSA9IDA7CiAKQEAgLTI4NCwy
MiArMjgyLDcgQEAgcHVibGljOgogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVy
IGNvbnRleHRJZGVudGlmaWVyKCkgY29uc3Q7CiAKIHByb3RlY3RlZDoKLSAgICBjbGFzcyBBZGRD
b25zb2xlTWVzc2FnZVRhc2sgOiBwdWJsaWMgVGFzayB7Ci0gICAgcHVibGljOgotICAgICAgICBB
ZGRDb25zb2xlTWVzc2FnZVRhc2soc3RkOjp1bmlxdWVfcHRyPEluc3BlY3Rvcjo6Q29uc29sZU1l
c3NhZ2U+JiYgY29uc29sZU1lc3NhZ2UpCi0gICAgICAgICAgICA6IFRhc2soWyZjb25zb2xlTWVz
c2FnZV0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkgewotICAgICAgICAgICAgICAg
IGNvbnRleHQuYWRkQ29uc29sZU1lc3NhZ2UoV1RGTW92ZShjb25zb2xlTWVzc2FnZSkpOwotICAg
ICAgICAgICAgfSkKLSAgICAgICAgewotICAgICAgICB9Ci0KLSAgICAgICAgQWRkQ29uc29sZU1l
c3NhZ2VUYXNrKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0
IFN0cmluZyYgbWVzc2FnZSkKLSAgICAgICAgICAgIDogVGFzayhbc291cmNlLCBsZXZlbCwgbWVz
c2FnZSA9IG1lc3NhZ2UuaXNvbGF0ZWRDb3B5KCldKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNv
bnRleHQpIHsKLSAgICAgICAgICAgICAgICBjb250ZXh0LmFkZENvbnNvbGVNZXNzYWdlKHNvdXJj
ZSwgbGV2ZWwsIG1lc3NhZ2UpOwotICAgICAgICAgICAgfSkKLSAgICAgICAgewotICAgICAgICB9
Ci0gICAgfTsKKyAgICBjbGFzcyBBZGRDb25zb2xlTWVzc2FnZVRhc2s7CiAKICAgICBSZWFzb25G
b3JTdXNwZW5zaW9uIHJlYXNvbkZvclN1c3BlbmRpbmdBY3RpdmVET01PYmplY3RzKCkgY29uc3Qg
eyByZXR1cm4gbV9yZWFzb25Gb3JTdXNwZW5kaW5nQWN0aXZlRE9NT2JqZWN0czsgfQogCkBAIC0z
MTAsNyArMjkzLDcgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICAvLyBUaGUgZm9sbG93aW5n
IGFkZE1lc3NhZ2UgZnVuY3Rpb24gaXMgZGVwcmVjYXRlZC4KICAgICAvLyBDYWxsZXJzIHNob3Vs
ZCB0cnkgdG8gY3JlYXRlIHRoZSBDb25zb2xlTWVzc2FnZSB0aGVtc2VsdmVzLgotICAgIHZpcnR1
YWwgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgdW5zaWduZWQgbGluZU51bWJl
ciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRDYWxsU3Rh
Y2s+JiYsIEpTQzo6SlNHbG9iYWxPYmplY3QqID0gbnVsbHB0ciwgdW5zaWduZWQgbG9uZyByZXF1
ZXN0SWRlbnRpZmllciA9IDApID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkTWVzc2FnZShKU0M6
Ok1lc3NhZ2VTb3VyY2UsIEpTQzo6TWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2Us
IGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBj
b2x1bW5OdW1iZXIsIFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdENhbGxTdGFjaz4mJiwgSlNDOjpK
U0dsb2JhbE9iamVjdCogPSBudWxscHRyLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVy
ID0gMCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBsb2dFeGNlcHRpb25Ub0NvbnNvbGUoY29uc3Qg
U3RyaW5nJiBlcnJvck1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCBpbnQgbGluZU51
bWJlciwgaW50IGNvbHVtbk51bWJlciwgUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0Q2FsbFN0YWNr
PiYmKSA9IDA7CiAgICAgYm9vbCBkaXNwYXRjaEVycm9yRXZlbnQoY29uc3QgU3RyaW5nJiBlcnJv
ck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBpbnQgY29sdW1uTnVtYmVyLCBjb25zdCBTdHJpbmcm
IHNvdXJjZVVSTCwgSlNDOjpFeGNlcHRpb24qLCBDYWNoZWRTY3JpcHQqKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHRJbmxpbmVzLmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dElubGluZXMuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5lODE0ZmYzN2NiODkzZDljYmExMjI2MTUxMDNkMDI0OGUyOWFiMDgyCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHRJbmxpbmVz
LmgKQEAgLTAsMCArMSw3NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVk
ZSAiRE9NVGltZXIuaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CisjaW5jbHVkZSA8d3RmL0Nyb3Nz
VGhyZWFkVGFzay5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2lubGluZSBib29sIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQ6OmFkZFRpbWVvdXQoaW50IHRpbWVvdXRJZCwgRE9NVGltZXImIHRp
bWVyKQoreworICAgIHJldHVybiBtX3RpbWVvdXRzLmFkZCh0aW1lb3V0SWQsIHRpbWVyKS5pc05l
d0VudHJ5OworfQorCitpbmxpbmUgdm9pZCBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpyZW1vdmVU
aW1lb3V0KGludCB0aW1lb3V0SWQpCit7CisgICAgbV90aW1lb3V0cy5yZW1vdmUodGltZW91dElk
KTsKK30KKworaW5saW5lIERPTVRpbWVyKiBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpmaW5kVGlt
ZW91dChpbnQgdGltZW91dElkKQoreworICAgIHJldHVybiBtX3RpbWVvdXRzLmdldCh0aW1lb3V0
SWQpOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmd1bWVudHM+CitpbmxpbmUgdm9pZCBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0Ojpwb3N0Q3Jvc3NUaHJlYWRUYXNrKEFyZ3VtZW50cyYmLi4u
IGFyZ3VtZW50cykKK3sKKyAgICBwb3N0VGFzayhbY3Jvc3NUaHJlYWRUYXNrID0gY3JlYXRlQ3Jv
c3NUaHJlYWRUYXNrKGFyZ3VtZW50cy4uLildKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSBtdXRh
YmxlIHsKKyAgICAgICAgY3Jvc3NUaHJlYWRUYXNrLnBlcmZvcm1UYXNrKCk7CisgICAgfSk7Cit9
CisKK2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OkFkZENvbnNvbGVNZXNzYWdlVGFzayA6
IHB1YmxpYyBUYXNrIHsKK3B1YmxpYzoKKyAgICBBZGRDb25zb2xlTWVzc2FnZVRhc2soc3RkOjp1
bmlxdWVfcHRyPEluc3BlY3Rvcjo6Q29uc29sZU1lc3NhZ2U+JiYgY29uc29sZU1lc3NhZ2UpCisg
ICAgICAgIDogVGFzayhbJmNvbnNvbGVNZXNzYWdlXShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBj
b250ZXh0KSB7CisgICAgICAgICAgICBjb250ZXh0LmFkZENvbnNvbGVNZXNzYWdlKFdURk1vdmUo
Y29uc29sZU1lc3NhZ2UpKTsKKyAgICAgICAgfSkKKyAgICB7CisgICAgfQorCisgICAgQWRkQ29u
c29sZU1lc3NhZ2VUYXNrKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWws
IGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKKyAgICAgICAgOiBUYXNrKFtzb3VyY2UsIGxldmVsLCBt
ZXNzYWdlID0gbWVzc2FnZS5pc29sYXRlZENvcHkoKV0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYg
Y29udGV4dCkgeworICAgICAgICAgICAgY29udGV4dC5hZGRDb25zb2xlTWVzc2FnZShzb3VyY2Us
IGxldmVsLCBtZXNzYWdlKTsKKyAgICAgICAgfSkKKyAgICB7CisgICAgfQorfTsKKworfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9WaWV3cG9ydEFyZ3VtZW50cy5jcHAKaW5kZXggNzNkZjk0YzQ2NGY5ZWU0
Y2NiZjM1OTEyNjg1YzllMGMwNzliMGE2Yi4uNDM4NzViZDBjZTdlOTQyMTJhYmFmMjZiYjFmNDlj
ZTE3MjgxNGUyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1ZpZXdwb3J0QXJndW1l
bnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVmlld3BvcnRBcmd1bWVudHMuY3BwCkBA
IC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiSW50U2l6ZS5oIgogI2luY2x1ZGUgIlNjcmlwdGFi
bGVEb2N1bWVudFBhcnNlci5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0cmVh
bS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9m
aWxlYXBpL0Jsb2IuaCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvQmxvYi5oCmluZGV4IDI2OGYy
YzZkNGFlOTE0YWVhNDNmNDRmNzgyMTI0YmQzYjE4ZTM5ZTUuLjY5NWNhZThmMjEyZTA5YWY1ZThh
MWU3YmEzNzM3Zjk1NGVlZjBlMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkv
QmxvYi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvQmxvYi5oCkBAIC0zMSw2ICszMSw3
IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCiAjaW5j
bHVkZSAiQmxvYlByb3BlcnR5QmFnLmgiCiAjaW5jbHVkZSAiQmxvYlVSTC5oIgogI2luY2x1ZGUg
IkZpbGVSZWFkZXJMb2FkZXIuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEFuY2hvckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVu
dC5jcHAKaW5kZXggN2QzNjBkOTkxN2Q3YWE3ZjUzMzczMDQzMDNjMDBlMTE3ODZmYWFmNi4uY2Vl
YmFiZGUzYmRlNjMyMGZmMTBmMzY0OWU4NDk2M2FmYzExMTZiZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKQEAgLTU1LDYgKzU1LDcgQEAKICNpbmNsdWRlICJT
ZWN1cml0eVBvbGljeS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiVXNlckdl
c3R1cmVJbmRpY2F0b3IuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMu
aD4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9XZWFr
SGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKaW5kZXggODkxMGU3NTE5MTI1MTEyMjVj
NThlZGJmMjZjZDIxNzMyZTYxZjdhZS4uNmYwYTUyZGM0MGNjMzZiMTA4YjBmYzgwMjM4MzAyNWI4
ZWEyNDBlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKQEAg
LTYyLDYgKzYyLDcgQEAKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAi
U2V0dGluZ3MuaCIKICNpbmNsdWRlICJTdHJpbmdBZGFwdG9ycy5oIgorI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lu
bGluZXMuaD4KICNpbmNsdWRlIDxtYXRoLmg+CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGlu
ZXMuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaAppbmRleCA0YjNkODYw
MWI0NDk2NjZiNWRhYzBjYWQ0MGM5OGI4MTBlOGMxNGE3Li5lY2IzNTZmOGE5NTJmNDlkMDUyMTRm
NTUyODNiNGFmNGQ3NzVjOGM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxD
YW52YXNFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVu
dC5oCkBAIC0zOSw2ICszOSwxMSBAQAogI2luY2x1ZGUgIldlYkdMQ29udGV4dEF0dHJpYnV0ZXMu
aCIKICNlbmRpZgogCituYW1lc3BhY2UgSlNDIHsKK2NsYXNzIEpTVmFsdWU7CitlbnVtIGNsYXNz
IFVua25vd247Cit9CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQmxvYkNhbGxiYWNr
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAppbmRleCBjOTM1ZWUxZDcyNzJjNjc0ZTcx
NWVmYmY2ZWY1MGZhMGNhOWVjZjA5Li4zODU3MjljMjlmMGY4NDA3OGFmODQxOTNkMzllMDdkOGIz
YjQ0MTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcApAQCAtNjYsNiArNjYsNyBA
QAogI2luY2x1ZGUgIlJlbmRlckltYWdlLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5o
IgogI2luY2x1ZGUgIlNjcmlwdERpc2FsbG93ZWRTY29wZS5oIgorI2luY2x1ZGUgIlNldHRpbmdz
LmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgogI2luY2x1ZGUgIlNpbXVsYXRlZENsaWNrLmgi
CiAjaW5jbHVkZSAiU3R5bGVQcm9wZXJ0aWVzLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRleCA3ODAwMGNkNWZjOWZmOTk1MTQ1ZDM2YmJh
Y2Q3M2NiMjM5N2JjN2QzLi5hZTM0Y2JlOTg0NDhjZmRlOWQxMDA4OGViZjRjMDU3MzVjNzlhY2Y2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAK
QEAgLTQ4LDYgKzQ4LDcgQEAKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlN0eWxl
VHJlZVJlc29sdmVyLmgiCiAjaW5jbHVkZSAiVmFsaWRhdGlvbk1lc3NhZ2UuaCIKKyNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMuaD4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9j
SW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvU2V0Rm9yU2Nv
cGUuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNwcAppbmRleCAyM2U0OWFh
M2QxOTQ5MTQ2ZGVlYWY3YTJkNmNmY2Q0Y2EyMThhYjU2Li5lNzVhYWIyZmRlYzY2NGE4NzJjOTU3
NjU2MzRmYzU2M2IxZDhlZTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxG
b3JtRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQu
Y3BwCkBAIC01OCw2ICs1OCw3IEBACiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJT
dWJtaXRFdmVudC5oIgogI2luY2x1ZGUgIlVzZXJHZXN0dXJlSW5kaWNhdG9yLmgiCisjaW5jbHVk
ZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8bGltaXRzPgogI2lu
Y2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSHRtbEVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MSHRtbEVsZW1lbnQuY3BwCmluZGV4IDA5ZTdhZTY2YTk2MTQ4NDE1
YjEwM2YyM2UwNTZiODhkNWZhYWEyOTkuLmE3ZjA5ZmQwZWRjNjFmMDA4NjM2MjUzOWY0NGM5ZDYx
Y2UwOGU2ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEh0bWxFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxIdG1sRWxlbWVudC5jcHAKQEAgLTMy
LDYgKzMyLDcgQEAKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgi
CiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29s
ZVR5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmNwcAppbmRl
eCAxZTgxZjU0MjViMDdlMjRkOWE5YzEyMDdlYjM1NTkyMTcyNDY1Yzg0Li42YTViMWJlODE3MzIw
YTVlYjBmMGUyNTQ1MTU1MDMyMGI3MzkzNjMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxJRnJhbWVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJ
RnJhbWVFbGVtZW50LmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIlNjcmlwdENvbnRy
b2xsZXIuaCIKICNpbmNsdWRlICJTY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIuaCIKICNpbmNsdWRl
ICJTZXR0aW5ncy5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPgog
I2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAppbmRleCA3NGZkNDVlNmRiYmI0
NTZiNTQ1M2IxZDQwZjM4Y2YwNDY0MGQ3N2E0Li5mYzk1YjZiMTIyNjgyMjU4OGU3MTc1NTUxNmVj
YzA2MDZiMDc1MmQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCkBA
IC02Miw2ICs2Miw3IEBACiAjaW5jbHVkZSAiU3R5bGVTY29wZS5oIgogI2luY2x1ZGUgIlN0eWxl
U2hlZXRDb250ZW50cy5oIgogI2luY2x1ZGUgIlN1YnJlc291cmNlSW50ZWdyaXR5LmgiCisjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL0lzb01h
bGxvY0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1Njb3Bl
Lmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwCmluZGV4IDk2NTFk
ODRlYTAyYjVmOTdmMjZiNzc0ZTBmMzY4NWRlMjk4NzQ3OWEuLjUzNTQ4ZDRiNWI5YjA4MDlkZGI2
MWEzNWViMDRhOTE4YjNhMDNjY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFBsdWdJbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVs
ZW1lbnQuY3BwCkBAIC00OCw2ICs0OCw3IEBACiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgogI2lu
Y2x1ZGUgIlN1YmZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiV2lkZ2V0LmgiCisjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lu
bGluZXMuaD4KIAogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcAppbmRleCA3OWFkNGUyMjA2ZGE4MDk0OGIyYTBi
NTVmZWJiMWJiODRjODE2N2EwLi4zNGI2YmNhZDQwYTkzNmYzYzBjNjkyNzhmYTdjMzRmYTk3NzNl
MjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcApAQCAtNTUs
NiArNTUsNyBAQAogI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3Mu
aCIKICNpbmNsdWRlICJTcGF0aWFsTmF2aWdhdGlvbi5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL0NvbnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5hdGVOdW1iZXJzLmg+CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcAppbmRleCA3ODdmYzM0MmNhZDEwNGMx
ODczMmI4MjI3MWFkNDgyNjc2NDFkMWUwLi4xM2IxMjhiZTE5NzU2YjMxODRkMjc1ZjU3NjFkYzA1
MDYxMWQxYjliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0
VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3Bw
CkBAIC02Miw2ICs2Miw3IEBACiAjaW5jbHVkZSAiVGV4dEV2ZW50LmgiCiAjaW5jbHVkZSAiVGV4
dEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiVGV4dE5vZGVUcmF2ZXJzYWwuaCIKKyNpbmNsdWRlICJV
c2VyR2VzdHVyZUluZGljYXRvci5oIgogI2luY2x1ZGUgIlVzZXJUeXBpbmdHZXN0dXJlSW5kaWNh
dG9yLmgiCiAjaW5jbHVkZSAiV2hlZWxFdmVudC5oIgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuY3BwCmlu
ZGV4IGNhNGU3Nzc1ZTc0NmNjYzk5YjA3N2YyMGM2OTcxNmNlODI1ODk5ZGYuLjQ1M2VmNTA4MTA3
YTE2ZGViZjc4ZTlmZjE3ZGNhNmNjNWZkYzZiZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuY3BwCkBA
IC02OSw2ICs2OSw3IEBACiAjaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5oIgogI2luY2x1ZGUgIlRl
eHRNZXRyaWNzLmgiCiAjaW5jbHVkZSAiVGV4dFJ1bi5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL0NvbnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9DaGVja2VkQXJpdGhtZXRpYy5oPgog
I2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRy
YXMuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRl
cmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVy
aW5nQ29udGV4dC5jcHAKaW5kZXggNWEzODc5NTdjMjYwNjYyMmRiNDZmNGJmNjA4OGJlMzMxMDYx
YWJiYi4uNWIzZmRmYzI2YTE3NTNkMDliODAxOTEwODdmNjllMjBjYWZlMjg3YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5j
cHAKQEAgLTQ3LDYgKzQ3LDcgQEAKICNpbmNsdWRlICJPRVNUZXh0dXJlRmxvYXRMaW5lYXIuaCIK
ICNpbmNsdWRlICJSZW5kZXJCb3guaCIKICNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVz
LmgiCisjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJXZWJHTEFjdGl2ZUluZm8uaCIK
ICNpbmNsdWRlICJXZWJHTEJ1ZmZlci5oIgogI2luY2x1ZGUgIldlYkdMQ29tcHJlc3NlZFRleHR1
cmVBU1RDLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RyYWNrQmFz
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RyYWNrQmFzZS5jcHAKaW5kZXggYmFm
YTQ5ZWU2MGQ4ODZjZjVkNzFlNmVkYzNmY2U2MTMwYTZlMTRmYS4uOTRlOGM3NDc0YjFkYjJlYTk5
ZDU3N2M2OGVhMzQyYjU4YWJiY2ZkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9UcmFja0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tC
YXNlLmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRl
ICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiVHJhY2tMaXN0QmFzZS5oIgor
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9M
YW5ndWFnZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VEZWJ1Z2dlckFn
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlRGVidWdn
ZXJBZ2VudC5jcHAKaW5kZXggNTVkOTUxODQ5NDE5NWI5NmRmMTY1YTk0YzFjMjk2M2FkY2ViODM5
NS4uNTlkMTUyZmU2N2UzNWYxZTFlNzRiMzVjODQ0YmUzODM3ODIyMGI4YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VEZWJ1Z2dlckFnZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZURlYnVnZ2Vy
QWdlbnQuY3BwCkBAIC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dC5oIgogI2luY2x1ZGUgIlNjcmlwdFN0YXRlLmgiCiAjaW5jbHVkZSAiVXNlckdlc3R1cmVF
bXVsYXRpb25TY29wZS5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5o
PgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0luamVjdGVkU2NyaXB0Lmg+CiAjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmg+CiAjaW5jbHVkZSA8SmF2YVNj
cmlwdENvcmUvU2NyaXB0Q2FsbFN0YWNrLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvQ3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvQ3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeS5jcHAKaW5kZXggNzEzNWE4Y2ZhZTBmNjY4YWFm
NzJhNGE3NzI4MDUzYTRmY2YzNWUwZC4uMDZhYWFiMWM1NTNhOTNhOGM2NTFjZjM5ZTc3OTc5MTZl
ZjAyNzVhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luRW1i
ZWRkZXJQb2xpY3kuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbkVt
YmVkZGVyUG9saWN5LmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIlJlc291cmNlUmVz
cG9uc2UuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAi
U2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpblBy
ZWZsaWdodENoZWNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luUHJl
ZmxpZ2h0Q2hlY2tlci5jcHAKaW5kZXggOGIzMWUxNzM5MmE5N2JiOTZkMzQ5N2I5MjhlZGRhMmU2
N2NjZDZkNS4uZWY1NDE2YjFkNGI5ZTExMjE3MjRiYmNmMmNiYmViMTYzYWE0NjE2YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luUHJlZmxpZ2h0Q2hlY2tlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luUHJlZmxpZ2h0Q2hlY2tl
ci5jcHAKQEAgLTQzLDYgKzQzLDcgQEAKICNpbmNsdWRlICJOZXR3b3JrTG9hZE1ldHJpY3MuaCIK
ICNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVm
ZmVyLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3Vt
ZW50TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAK
aW5kZXggNDYwMDYwYzE4OTdlZTE2OTdiOGRjN2ViYzMyZGY4ODU2YmNmYThlMS4uMzM3MjkxNTEz
NmRkNzlmY2M5NDdiMmIyY2U4MDlhYjI3YmRkYzNjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RG9jdW1lbnRMb2FkZXIuY3BwCkBAIC05NCw2ICs5NCw3IEBACiAjaW5jbHVkZSAiU3VicmVzb3Vy
Y2VMb2FkZXIuaCIKICNpbmNsdWRlICJUZXh0UmVzb3VyY2VEZWNvZGVyLmgiCiAjaW5jbHVkZSAi
VXNlckNvbnRlbnRQcm92aWRlci5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVU
eXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBs
ZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwCmluZGV4
IGUwNGIzN2Y4MmJiNmNjMDg1Yjg3OTIwZjlkMTZlYzE0MGFhYTFlOGYuLmZhM2FmYTRlYzQ2NWIz
YjdjYTI0ZTI1Y2I5ODkyZDliOTc5NGJmNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwCkBAIC02MSw2ICs2MSw3IEBACiAjaW5j
bHVkZSAiU3VicmVzb3VyY2VJbnRlZ3JpdHkuaCIKICNpbmNsdWRlICJTdWJyZXNvdXJjZUxvYWRl
ci5oIgogI2luY2x1ZGUgIlRocmVhZGFibGVMb2FkZXJDbGllbnQuaCIKKyNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9Db25zb2xlVHlwZXMuaD4KICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgog
I2luY2x1ZGUgPHd0Zi9SZWYuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAK
aW5kZXggYjkyNzM2Y2NkYzRlM2Q2NTc0Y2ZiZDZkMTA2NGMxYTQwYWJiZmRjOC4uMGNkMjFjZTAz
ZDM1OWEzMTljZjc0ZjQ5YWNmNDRiMjQ5YmFmMWRkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXIuY3BwCkBAIC0xMjgsNiArMTI4LDcgQEAKICNpbmNsdWRlICJVc2VyR2VzdHVyZUlu
ZGljYXRvci5oIgogI2luY2x1ZGUgIldpbmRvd0ZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiWE1MRG9j
dW1lbnRQYXJzZXIuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMuaD4K
ICNpbmNsdWRlIDxkb20vU2NyaXB0RGlzYWxsb3dlZFNjb3BlLmg+CiAjaW5jbHVkZSA8d3RmL0Nv
bXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL1VSTC5oPgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9JbWFnZUxvYWRlci5jcHAKaW5kZXggZDUwNmY0NDc5M2FiMTI3NDRlNmVmZjY5MTRlMDlmNzgy
ZDQ4MWFmZC4uZjIxMjZlMzZkNTZlYzFmNmMzZDM5MzllZGI1OTU1ZjdmYWQ2YTlkMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIuY3BwCkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVk
ZSAiUmVuZGVySW1hZ2UuaCIKICNpbmNsdWRlICJSZW5kZXJTVkdJbWFnZS5oIgogI2luY2x1ZGUg
IlNldHRpbmdzLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAj
aW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKICNpZiBFTkFCTEUoVklERU8pCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvTGlua0xvYWRlci5jcHAKaW5kZXggOGZiOTE3Yjk1MWMyZmRhNGI5OWNlMWJl
NzVlNjFiMWQxNDBhYmIyNC4uM2RmZjY1ZjhlYzFmNzdiZDYzMTFkMjNhYWExMTczNzk5YWFmMmVh
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVyLmNwcApAQCAtNTksNiArNTksNyBAQAog
I2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU2l6ZXNBdHRyaWJ1dGVQYXJzZXIuaCIK
ICNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29u
c29sZVR5cGVzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL01lZGlhUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL01lZGlhUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IDVkMTIwZTI0N2FjMjYyNzExNjFk
ZTBkYzUyMzAyNGRjOGRlMzRkNjkuLmEwNTA5ZTE3N2E5NWE0Y2Y0NGM5YjlmMzEzMWZmNzJmNTVk
YTZkMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NZWRpYVJlc291cmNlTG9h
ZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWVkaWFSZXNvdXJjZUxvYWRlci5j
cHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgogI2lu
Y2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3Jp
Z2luLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVk
ZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NaXhlZENvbnRlbnRDaGVja2VyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9NaXhlZENvbnRlbnRDaGVja2VyLmNwcAppbmRleCAyMTkwZDk3Yjhk
OGExZGRlMjFiMzdhYjI4NDIxMWFiYjUxNWM5NGYwLi5jNWU4ZThkNWJlZjBkMGRjZjkwM2E0YjY1
ZDRlYjI1MmIwYjY3MzBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWl4ZWRD
b250ZW50Q2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL01peGVkQ29udGVu
dENoZWNrZXIuY3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGll
bnQuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgi
CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvblNjaGVkdWxlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvblNjaGVkdWxlci5jcHAKaW5kZXggMmY5ZWUy
NWViZDUyNDVjMWJiYzNlMWI2NTMyYzg0MGQ5MzA1ODllMC4uNTk4ZDA0NThiMjFmNmFhZjI2ZmQ1
NWEyOWRiMTJjYTE0YjQ3NGE1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL05h
dmlnYXRpb25TY2hlZHVsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0
aW9uU2NoZWR1bGVyLmNwcApAQCAtNTMsNiArNTMsNyBAQAogI2luY2x1ZGUgIlBvbGljeUNoZWNr
ZXIuaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiVXNlckdlc3R1
cmVJbmRpY2F0b3IuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMuaD4K
ICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IGFhODViYjRkM2NhODcxNDViYjdhODZm
NjQ2NjhlNDk1MTc2YWMyMzUuLmNhMjExZDg5MDkwNmQ4OGQ4NjllZjg2YTJkNTIzODYxZWY1ZTZi
MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcApAQCAtNTIsNiAr
NTIsNyBAQAogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVm
ZmVyLmgiCiAjaW5jbHVkZSAiU3VicmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9Db25zb2xlVHlwZXMuaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIu
aD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVz
b3VyY2VMb2FkZXIuY3BwCmluZGV4IDdkNzgyMmUyNDkyODE2YzZlODY2YjdlNWI3ODgzMTEwNjM3
YjFkZGYuLmZmZjRiYWRiYjYzYjJlNjY4YjlmNzNiZGYwY2FlYTg0MTQ0YTAwYTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcApAQCAtNDcsNiArNDcsNyBA
QAogI2luY2x1ZGUgIlJlc291cmNlVGltaW5nLmgiCiAjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRG
ZWF0dXJlcy5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAj
aW5jbHVkZSA8d3RmL1JlZi5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkTGVha0NvdW50ZXIu
aD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UZXh0VHJhY2tMb2FkZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RleHRUcmFja0xvYWRlci5jcHAKaW5kZXggOGNjM2M1
NjhjNDM3OTZhYzYxYjMwOTc1NDdhODllZjgxMmQ5OGQ0ZC4uM2UwMjYwNzczNTc2YjBhODNkYmE4
ODE2NWFmZGNkNDY4NjE5M2E1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Rl
eHRUcmFja0xvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RleHRUcmFja0xv
YWRlci5jcHAKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNp
bmNsdWRlICJWVFRDdWUuaCIKICNpbmNsdWRlICJXZWJWVFRQYXJzZXIuaCIKKyNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95
ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL1RocmVhZGFibGVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RocmVh
ZGFibGVMb2FkZXIuY3BwCmluZGV4IDFiNjUzMmMzYjBlYWE4MGQ5YmQ0NmM2ZDQzMjEzNjk2MjFj
MDE5YmIuLjhhMWY3YmZiMDllNDEwYWE3NmIzMjBhOWM4NjhiNjU0Y2UyNGI3NDUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UaHJlYWRhYmxlTG9hZGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvVGhyZWFkYWJsZUxvYWRlci5jcHAKQEAgLTQwLDYgKzQwLDcgQEAK
ICNpbmNsdWRlICJXb3JrZXJSdW5Mb29wLmgiCiAjaW5jbHVkZSAiV29ya2VyVGhyZWFkYWJsZUxv
YWRlci5oIgogI2luY2x1ZGUgIldvcmtsZXRHbG9iYWxTY29wZS5oIgorI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3Jv
dXAuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVH
cm91cC5jcHAKaW5kZXggODlmM2IwZjFkYzM5ZDQwYTU2Mzg3OGFlNTVmNzZjNjcwYTcxNTA5MS4u
NDMxOWM1YmE4NjlkMjQ1ZWUzMTIxODljMmI0N2M4NWI3YjFiZDEzYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5j
cHAKQEAgLTQ5LDYgKzQ5LDcgQEAKICNpbmNsdWRlICJQcm9ncmVzc1RyYWNrZXIuaCIKICNpbmNs
dWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25I
YW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggMzZl
ZTMyNzVkNjkyMDdlNDUwMjE2MmYwYWJhZWI4OGU1OGViYzc1Yi4uZTg1MjFlZjFmYzE0ODUwNzYz
YjViNTVhMmYxMTgyMGExYTVjNzIxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC04Myw2ICs4Myw3IEBACiAjaW5j
bHVkZSAiU3VicmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJVc2VyQ29udGVudENvbnRyb2xs
ZXIuaCIKICNpbmNsdWRlICJVc2VyU3R5bGVTaGVldC5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL0NvbnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRE9NVGltZXIuY3BwCmluZGV4IDg4OTA1MmUzYTQ1MmUyNTZlMzg3ODIzODY3ZTNi
Yjc4ZDUwNTc0NmQuLmQyMTAwNjk0MzMzNzcxYTNjMDQ4M2MxOThlZGY5MTNlMDVjYjNlMDYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRE9NVGltZXIuY3BwCkBAIC0zMyw3ICszMyw3IEBACiAjaW5jbHVkZSAiUGFn
ZS5oIgogI2luY2x1ZGUgIlBsdWdpblZpZXdCYXNlLmgiCiAjaW5jbHVkZSAiU2NoZWR1bGVkQWN0
aW9uLmgiCi0jaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorI2luY2x1ZGUgIlNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNp
bmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXggYjkwNjRmNzc4MDk0YWMxY2FlNzk4YzZjYzk4OGY2
ZTlhYzkxZDdhNi4uZmZjOTE3ODMzMmI5NjQ2ZDRjN2VkMDQ3NDY3NzZmMjA2MDE0MjFlZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApAQCAtMTE3LDYgKzExNyw3IEBACiAjaW5jbHVkZSAi
V2luZG93RmVhdHVyZXMuaCIKICNpbmNsdWRlICJXaW5kb3dGb2N1c0FsbG93ZWRJbmRpY2F0b3Iu
aCIKICNpbmNsdWRlICJXaW5kb3dQcm94eS5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Nv
bnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1NjcmlwdENhbGxTdGFjay5o
PgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuaD4KICNp
bmNsdWRlIDxhbGdvcml0aG0+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdD
b250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCmlu
ZGV4IGExYzBlNWY1NjllZGEwNzRiMzE2OWIyZWNjNTNiZDgwMWIyY2M0ZjAuLmNkODYyYWJhMmIw
MzdiNGU4Y2RmYWQ1YzU1ZTNhOGYzMzc5YTFmYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0Nv
bnRyb2xsZXIuY3BwCkBAIC05Miw2ICs5Miw3IEBACiAjaW5jbHVkZSAiVmlzaWJsZVBvc2l0aW9u
LmgiCiAjaW5jbHVkZSAiV2ViQ29udGVudFJlYWRlci5oIgogI2luY2x1ZGUgIm1hcmt1cC5oIgor
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9T
ZXRGb3JTY29wZS5oPgogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RXZlbnRTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudFNvdXJjZS5jcHAKaW5k
ZXggNjAyNjMxYmI3Y2QxMDg2MGIxYTMxMjEwNDNjOTdkOGVmZTQ0NzYxZC4uYTU4YTRmZjUzY2Ix
NmZlZWU5MzhjNDE4ZDkzMDg0MTI3ZTU3OTA2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9FdmVudFNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudFNvdXJj
ZS5jcHAKQEAgLTQ0LDYgKzQ0LDcgQEAKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2lu
Y2x1ZGUgIlRleHRSZXNvdXJjZURlY29kZXIuaCIKICNpbmNsdWRlICJUaHJlYWRhYmxlTG9hZGVy
LmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8
d3RmL0lzb01hbGxvY0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvU2V0Rm9yU2NvcGUuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdUb0ludGVnZXJDb252ZXJzaW9uLmg+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWUuY3BwCmluZGV4IDhlMGExOWE2NjRlNjJiN2MzZWU0ZGNmODhiZTc3YWI1YmEyNzM3ZWQuLjgx
ZjM1MTNjMWMzNjRmNjI1YTNhNWY1MjEzY2UwNTJiMDM4ZDZjZDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUu
Y3BwCkBAIC0xMDUsNiArMTA1LDcgQEAKICNpbmNsdWRlICJucHJ1bnRpbWVfaW1wbC5oIgogI2lu
Y2x1ZGUgInJ1bnRpbWVfcm9vdC5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0FQSUNhc3Qu
aD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMuaD4KICNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9SZWd1bGFyRXhwcmVzc2lvbi5oPgogI2luY2x1ZGUgPHd0Zi9IZXhOdW1i
ZXIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZExlYWtDb3VudGVyLmg+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAKaW5kZXggMWRlOGQwMzJhZGE2ZTQwM2Y3YWFkMzc5ODY0NjJlYWMzYmEz
M2U2My4uMzUxNzc1N2Q1YTdkYmM5ZTIxNGVmZTM0ZmM5MzdlM2I5ZGJhMTI1OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtMTEyLDYgKzExMiw3IEBACiAjaW5jbHVkZSAiVmVsb2Np
dHlEYXRhLmgiCiAjaW5jbHVkZSAiVmlzdWFsVmlld3BvcnQuaCIKICNpbmNsdWRlICJXaGVlbEV2
ZW50VGVzdE1vbml0b3IuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMu
aD4KICNpbmNsdWRlIDx3dGYvSGV4TnVtYmVyLmg+CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lu
bGluZXMuaD4KICNpbmNsdWRlIDx3dGYvTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmg+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlLmNwcAppbmRleCAwMDYxM2ZhNjg3NmE2YmU2YTkyNjEzMzIxNjFlNDk2ODIyYWY0MTgyLi44
MTk5YTc0MzIyMWNjZDQ1ZTU1NTgwZWEwNWZmNWJlN2U2ZTQ4ZGQ1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5j
cHAKQEAgLTE2MCw2ICsxNjAsNyBAQAogI2luY2x1ZGUgIldoZWVsRXZlbnRUZXN0TW9uaXRvci5o
IgogI2luY2x1ZGUgIldpZGdldC5oIgogI2luY2x1ZGUgIldvcmtlck9yV29ya2xldFNjcmlwdENv
bnRyb2xsZXIuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMuaD4KICNp
bmNsdWRlIDx3dGYvRmlsZVN5c3RlbS5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkTGVha0Nv
dW50ZXIuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BvaW50ZXJMb2NrQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BvaW50ZXJMb2NrQ29udHJvbGxlci5jcHAKaW5kZXggYmZhMWI4NzhlYjgwNWNmYWIw
NmQyMjk3YTlmYmQ1Nzc4ZTMwZTRlOC4uMWFjZWViMjc4NzkzOWU4NTc1ZThiNWExOThhNGQ1Y2E1
OTBkZTk0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Qb2ludGVyTG9ja0NvbnRy
b2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUG9pbnRlckxvY2tDb250cm9sbGVy
LmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIlBvaW50ZXJDYXB0dXJlQ29udHJvbGxl
ci5oIgogI2luY2x1ZGUgIlVzZXJHZXN0dXJlSW5kaWNhdG9yLmgiCiAjaW5jbHVkZSAiVm9pZENh
bGxiYWNrLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0
aW5ncy55YW1sIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCmluZGV4IDYyY2Nj
M2IzNjEyYWY3ZGYzY2E4YWZhMTEyYmQxYzZjY2M2ODg5ZTEuLjgyOGQ1N2YyYTYyN2ZhNmFiNGFl
MTU0MzI0Mzg0NjBjYzU4OGZkY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0
dGluZ3MueWFtbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwKQEAgLTM0
NCw3ICszNDQsNyBAQCBNYXhpbXVtSFRNTFBhcnNlckRPTVRyZWVEZXB0aDoKICAgdHlwZTogdWlu
dDMyX3QKICAgZGVmYXVsdFZhbHVlOgogICAgIFdlYkNvcmU6Ci0gICAgICBkZWZhdWx0OiBkZWZh
dWx0TWF4aW11bUhUTUxQYXJzZXJET01UcmVlRGVwdGgKKyAgICAgIGRlZmF1bHQ6IFNldHRpbmdz
OjpkZWZhdWx0TWF4aW11bUhUTUxQYXJzZXJET01UcmVlRGVwdGgKIAogTWF4aW11bVNvdXJjZUJ1
ZmZlclNpemU6CiAgIGNvbW1lbnQ6ID4tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9jc3Av
Q29udGVudFNlY3VyaXR5UG9saWN5LmNwcAppbmRleCBkODg1MTY3NDdhNDRkNmFkYTRlYWQwYzY5
OTBlNzNiOTE0MmIxYTFjLi44NmRhMWI4MGVjZWExNzNhZmY2MDcwMDZlOWNmN2M4ZGUzMTZjZDNl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xp
Y3kuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGlj
eS5jcHAKQEAgLTUzLDYgKzUzLDcgQEAKICNpbmNsdWRlICJTZWN1cml0eVBvbGljeVZpb2xhdGlv
bkV2ZW50LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJUZXh0RW5jb2Rpbmcu
aCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMuaD4KICNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9TY3JpcHRDYWxsU3RhY2suaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5Lmg+CiAjaW5jbHVkZSA8cGFsL2NyeXB0by9DcnlwdG9E
aWdlc3QuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1ZpZGVv
RnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y29jb2EvVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQubW0KaW5kZXggMWE1MjZjODMz
ZjM4YTNjMjA2MzY5ZGM5N2JjYzc3NmVlMzVhMDVlMC4uNTI4YmM1OGFjMDAwMGI4MDk4ZmZlODkx
ODZkMDgxZjkzMjE1ZDk0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29j
b2EvVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vY29jb2EvVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQubW0KQEAg
LTQyLDYgKzQyLDcgQEAKICNpbXBvcnQgIlBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50
LmgiCiAjaW1wb3J0ICJUZXh0VHJhY2tMaXN0LmgiCiAjaW1wb3J0ICJUaW1lUmFuZ2VzLmgiCisj
aW1wb3J0ICJVc2VyR2VzdHVyZUluZGljYXRvci5oIgogI2ltcG9ydCA8UXVhcnR6Q29yZS9Db3Jl
QW5pbWF0aW9uLmg+CiAjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbXBvcnQgPHd0
Zi9Tb2Z0TGlua2luZy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuY3BwCmluZGV4IDdhNGRjMmM2MmY1ZTFkYWQwNzA5MDI1
NjhkMWE2YzI4ODkxNWE1NzkuLjQxYjM0NjllZTkyMDNlOWNhOWRjNjliZjM3Mzk3MTQwYzQ1YmVj
NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllclNjcm9s
bGFibGVBcmVhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJT
Y3JvbGxhYmxlQXJlYS5jcHAKQEAgLTY4LDYgKzY4LDcgQEAKICNpbmNsdWRlICJTY3JvbGxiYXJU
aGVtZS5oIgogI2luY2x1ZGUgIlNjcm9sbGluZ0Nvb3JkaW5hdG9yLmgiCiAjaW5jbHVkZSAiU2hh
ZG93Um9vdC5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPgogI2lu
Y2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKaW5kZXggY2FiNjNmNWIxNGNlNWVi
ODdlZTRkODdhODBiMzg2NWRmYjZlOWIxZi4uYTE4YzJlY2IzZDcyZTlhYWIwNzRiZTJhZGYwNmYy
NzRjZTExMmZmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxp
c3RCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNw
cApAQCAtNjMsNiArNjMsNyBAQAogI2luY2x1ZGUgIlN0eWxlUmVzb2x2ZXIuaCIKICNpbmNsdWRl
ICJTdHlsZVRyZWVSZXNvbHZlci5oIgogI2luY2x1ZGUgIldoZWVsRXZlbnRUZXN0TW9uaXRvci5o
IgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPG1h
dGguaD4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9T
dGFja1N0YXRzLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVz
L1NoYXBlT3V0c2lkZUluZm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9T
aGFwZU91dHNpZGVJbmZvLmNwcAppbmRleCBjMWI4YzRhMzMyYjkyZWY2ODkwY2ZmZTZkMjY3NjZm
YjlhZjJkODZlLi4yOTVkNGJjODc3OGEzZWY5NDkxZTMxMjZiNzRjMmYxNzdhZjBjZDZkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlT3V0c2lkZUluZm8u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGVPdXRzaWRlSW5m
by5jcHAKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJSZW5kZXJGcmFnbWVudENvbnRhaW5l
ci5oIgogI2luY2x1ZGUgIlJlbmRlckltYWdlLmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgor
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlRm9udFNpemVG
dW5jdGlvbnMuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVGb250U2l6ZUZ1bmN0aW9u
cy5jcHAKaW5kZXggZDU0ZmQ1MWMwODA4YzNkNWFmNDAyMzkxNTM1Y2NhYTFmZDhhZGQ5MS4uOTJh
NzY1NjZhMmJmOTMxZDk0YTMxMDI1M2Q0YzQwYmFiNzg2OGZmMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3R5bGUvU3R5bGVGb250U2l6ZUZ1bmN0aW9ucy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvc3R5bGUvU3R5bGVGb250U2l6ZUZ1bmN0aW9ucy5jcHAKQEAgLTM5LDcgKzM5LDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBuYW1lc3BhY2UgU3R5bGUgewogCi1mbG9hdCBjb21wdXRl
ZEZvbnRTaXplRnJvbVNwZWNpZmllZFNpemUoZmxvYXQgc3BlY2lmaWVkU2l6ZSwgYm9vbCBpc0Fi
c29sdXRlU2l6ZSwgZmxvYXQgem9vbUZhY3RvciwgTWluaW11bUZvbnRTaXplUnVsZSBtaW5pbXVt
U2l6ZVJ1bGUsIGNvbnN0IFNldHRpbmdzOjpWYWx1ZXMmIHNldHRpbmdzKQorZmxvYXQgY29tcHV0
ZWRGb250U2l6ZUZyb21TcGVjaWZpZWRTaXplKGZsb2F0IHNwZWNpZmllZFNpemUsIGJvb2wgaXNB
YnNvbHV0ZVNpemUsIGZsb2F0IHpvb21GYWN0b3IsIE1pbmltdW1Gb250U2l6ZVJ1bGUgbWluaW11
bVNpemVSdWxlLCBjb25zdCBTZXR0aW5nc1ZhbHVlcyYgc2V0dGluZ3MpCiB7CiAgICAgLy8gVGV4
dCB3aXRoIGEgMHB4IGZvbnQgc2l6ZSBzaG91bGQgbm90IGJlIHZpc2libGUgYW5kIHRoZXJlZm9y
ZSBuZWVkcyB0byBiZQogICAgIC8vIGV4ZW1wdCBmcm9tIG1pbmltdW0gZm9udCBzaXplIHJ1bGVz
LiBBY2lkMyByZWxpZXMgb24gdGhpcyBmb3IgcGl4ZWwtcGVyZmVjdApAQCAtMTM5LDcgKzEzOSw3
IEBAIHN0YXRpYyBjb25zdCBpbnQgc3RyaWN0Rm9udFNpemVUYWJsZVtmb250U2l6ZVRhYmxlTWF4
IC0gZm9udFNpemVUYWJsZU1pbiArIDFdW3RvCiAvLyBmYWN0b3JzIGZvciBlYWNoIGtleXdvcmQg
dmFsdWUuCiBzdGF0aWMgY29uc3QgZmxvYXQgZm9udFNpemVGYWN0b3JzW3RvdGFsS2V5d29yZHNd
ID0geyAwLjYwZiwgMC43NWYsIDAuODlmLCAxLjBmLCAxLjJmLCAxLjVmLCAyLjBmLCAzLjBmIH07
CiAKLWZsb2F0IGZvbnRTaXplRm9yS2V5d29yZCh1bnNpZ25lZCBrZXl3b3JkSUQsIGJvb2wgc2hv
dWxkVXNlRml4ZWREZWZhdWx0U2l6ZSwgY29uc3QgU2V0dGluZ3M6OlZhbHVlcyYgc2V0dGluZ3Ms
IGJvb2wgaW5RdWlya3NNb2RlKQorZmxvYXQgZm9udFNpemVGb3JLZXl3b3JkKHVuc2lnbmVkIGtl
eXdvcmRJRCwgYm9vbCBzaG91bGRVc2VGaXhlZERlZmF1bHRTaXplLCBjb25zdCBTZXR0aW5nc1Zh
bHVlcyYgc2V0dGluZ3MsIGJvb2wgaW5RdWlya3NNb2RlKQogewogICAgIGludCBtZWRpdW1TaXpl
ID0gc2hvdWxkVXNlRml4ZWREZWZhdWx0U2l6ZSA/IHNldHRpbmdzLmRlZmF1bHRGaXhlZEZvbnRT
aXplIDogc2V0dGluZ3MuZGVmYXVsdEZvbnRTaXplOwogICAgIGlmIChtZWRpdW1TaXplID49IGZv
bnRTaXplVGFibGVNaW4gJiYgbWVkaXVtU2l6ZSA8PSBmb250U2l6ZVRhYmxlTWF4KSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUZvbnRTaXplRnVuY3Rpb25zLmggYi9T
b3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUZvbnRTaXplRnVuY3Rpb25zLmgKaW5kZXggYThmMjM3
MmVhOWMxZDFlYzk5OWQ1MWJjNjk3NzNlYmRiNjJkMWQ0OS4uOTVjYjBiMzRlYjA1ZWFhN2JlZjY4
YzIwZmJhM2VjZWZhODBjNTg3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5
bGVGb250U2l6ZUZ1bmN0aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlRm9u
dFNpemVGdW5jdGlvbnMuaApAQCAtMjUsMjQgKzI1LDI0IEBACiAKICNwcmFnbWEgb25jZQogCi0j
aW5jbHVkZSAiU2V0dGluZ3MuaCIKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEb2N1
bWVudDsKIGNsYXNzIFJlbmRlclN0eWxlOwogCitzdHJ1Y3QgU2V0dGluZ3NWYWx1ZXM7CisKIG5h
bWVzcGFjZSBTdHlsZSB7CiAKIGVudW0gY2xhc3MgTWluaW11bUZvbnRTaXplUnVsZSA6IHVpbnQ4
X3QgeyBOb25lLCBBYnNvbHV0ZSwgQWJzb2x1dGVBbmRSZWxhdGl2ZSB9OwogCi1mbG9hdCBjb21w
dXRlZEZvbnRTaXplRnJvbVNwZWNpZmllZFNpemUoZmxvYXQgc3BlY2lmaWVkU2l6ZSwgYm9vbCBp
c0Fic29sdXRlU2l6ZSwgZmxvYXQgem9vbUZhY3RvciwgTWluaW11bUZvbnRTaXplUnVsZSwgY29u
c3QgU2V0dGluZ3M6OlZhbHVlcyYpOworZmxvYXQgY29tcHV0ZWRGb250U2l6ZUZyb21TcGVjaWZp
ZWRTaXplKGZsb2F0IHNwZWNpZmllZFNpemUsIGJvb2wgaXNBYnNvbHV0ZVNpemUsIGZsb2F0IHpv
b21GYWN0b3IsIE1pbmltdW1Gb250U2l6ZVJ1bGUsIGNvbnN0IFNldHRpbmdzVmFsdWVzJik7CiBm
bG9hdCBjb21wdXRlZEZvbnRTaXplRnJvbVNwZWNpZmllZFNpemUoZmxvYXQgc3BlY2lmaWVkU2l6
ZSwgYm9vbCBpc0Fic29sdXRlU2l6ZSwgYm9vbCB1c2VTVkdab29tUnVsZXMsIGNvbnN0IFJlbmRl
clN0eWxlKiwgY29uc3QgRG9jdW1lbnQmKTsKIGZsb2F0IGNvbXB1dGVkRm9udFNpemVGcm9tU3Bl
Y2lmaWVkU2l6ZUZvclNWR0lubGluZVRleHQoZmxvYXQgc3BlY2lmaWVkU2l6ZSwgYm9vbCBpc0Fi
c29sdXRlU2l6ZSwgZmxvYXQgem9vbUZhY3RvciwgY29uc3QgRG9jdW1lbnQmKTsKIAogLy8gR2l2
ZW4gYSBDU1Mga2V5d29yZCBpZCBpbiB0aGUgcmFuZ2UgKENTU1ZhbHVlWHhTbWFsbCB0byBDU1NW
YWx1ZVdlYmtpdFh4eExhcmdlKSwgdGhpcyBmdW5jdGlvbiB3aWxsIHJldHVybgogLy8gdGhlIGNv
cnJlY3QgZm9udCBzaXplIHNjYWxlZCByZWxhdGl2ZSB0byB0aGUgdXNlcidzIGRlZmF1bHQgKG1l
ZGl1bSkuCi1mbG9hdCBmb250U2l6ZUZvcktleXdvcmQodW5zaWduZWQga2V5d29yZElELCBib29s
IHNob3VsZFVzZUZpeGVkRGVmYXVsdFNpemUsIGNvbnN0IFNldHRpbmdzOjpWYWx1ZXMmLCBib29s
IGluUXVpcmtzTW9kZSA9IGZhbHNlKTsKK2Zsb2F0IGZvbnRTaXplRm9yS2V5d29yZCh1bnNpZ25l
ZCBrZXl3b3JkSUQsIGJvb2wgc2hvdWxkVXNlRml4ZWREZWZhdWx0U2l6ZSwgY29uc3QgU2V0dGlu
Z3NWYWx1ZXMmLCBib29sIGluUXVpcmtzTW9kZSA9IGZhbHNlKTsKIGZsb2F0IGZvbnRTaXplRm9y
S2V5d29yZCh1bnNpZ25lZCBrZXl3b3JkSUQsIGJvb2wgc2hvdWxkVXNlRml4ZWREZWZhdWx0U2l6
ZSwgY29uc3QgRG9jdW1lbnQmKTsKIAogLy8gR2l2ZW4gYSBmb250IHNpemUgaW4gcGl4ZWwsIHRo
aXMgZnVuY3Rpb24gd2lsbCByZXR1cm4gbGVnYWN5IGZvbnQgc2l6ZSBiZXR3ZWVuIDEgYW5kIDcu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlUnVsZVNldHMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZVJ1bGVTZXRzLmNwcAppbmRleCAzYmY2
NDdhNjc1ZTBjNDU3NjU3MWE0ZDY3NWY3MGJhNzU2ZWFmOWJiLi41MmM1NmM5NWY3OWM3YmZiM2Vh
NzQwNjk4OTFmZTVkN2JiODBkNmE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9T
dHlsZVNjb3BlUnVsZVNldHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2Nv
cGVSdWxlU2V0cy5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlICJTdHlsZVJlc29sdmVy
LmgiCiAjaW5jbHVkZSAiU3R5bGVTY29wZS5oIgogI2luY2x1ZGUgIlN0eWxlU2hlZXRDb250ZW50
cy5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgU3R5bGUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0RvY3VtZW50RXh0ZW5zaW9ucy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RG9jdW1lbnRFeHRlbnNpb25zLmNwcAppbmRleCA4NjMyZjAyZjRiZjZiZDVjMjAxNzVmMzEzNjMz
NTYxMzJjYWFmNGViLi40N2JmM2JiMDY4M2Q1NDhkY2VkNjU4ZDRhYzgxZGQ0OWZkNTAxZjMxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRG9jdW1lbnRFeHRlbnNpb25zLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRG9jdW1lbnRFeHRlbnNpb25zLmNwcApAQCAtMzcs
NiArMzcsNyBAQAogI2luY2x1ZGUgIlNWR1VzZUVsZW1lbnQuaCIKICNpbmNsdWRlICJTY3JpcHRh
YmxlRG9jdW1lbnRQYXJzZXIuaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCisjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbVN0
cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5jcHAKaW5kZXggNWE3ZDA0Y2I0NDFhYjYwNTBkZTQ4OTllM2U3ZDUwZTMyYmFlZjcyMS4uOThl
MWE1ZTAyZDYwYTQzYmY1NmJiODY2YWEyMzE2MWQ4ZDNmODJiYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmNwcApAQCAtNTksNiArNTksNyBAQAogI2luY2x1ZGUgIkRPTVJlY3QuaCIK
ICNpbmNsdWRlICJET01SZWN0TGlzdC5oIgogI2luY2x1ZGUgIkRPTVN0cmluZ0xpc3QuaCIKKyNp
bmNsdWRlICJET01UaW1lci5oIgogI2luY2x1ZGUgIkRPTVVSTC5oIgogI2luY2x1ZGUgIkRPTVdp
bmRvdy5oIgogI2luY2x1ZGUgIkRlcHJlY2F0ZWRHbG9iYWxTZXR0aW5ncy5oIgpAQCAtMTg2LDYg
KzE4Nyw3IEBACiAjaW5jbHVkZSAiU1ZHU1ZHRWxlbWVudC5oIgogI2luY2x1ZGUgIlNXQ2xpZW50
Q29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJT
Y3JpcHRFeGVjdXRpb25Db250ZXh0SW5saW5lcy5oIgogI2luY2x1ZGUgIlNjcmlwdGVkQW5pbWF0
aW9uQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIlNjcm9sbGluZ0Nvb3JkaW5hdG9yLmgiCiAjaW5j
bHVkZSAiU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yLmgiCkBAIC0yMjQsNiArMjI2LDcgQEAK
ICNpbmNsdWRlICJXcml0aW5nRGlyZWN0aW9uLmgiCiAjaW5jbHVkZSAiWE1MSHR0cFJlcXVlc3Qu
aCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db2RlQmxvY2suaD4KKyNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9Db25zb2xlVHlwZXMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNw
ZWN0b3JBZ2VudEJhc2UuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JGcm9u
dGVuZENoYW5uZWwuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQYWdlT3ZlcmxheUNsaWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQYWdlT3ZlcmxheUNsaWVudC5jcHAKaW5k
ZXggZDk3NWYzYjQyODRmM2I2NmE4ZDc3OTJmMDhiNjNkN2QzZDE1NDNmYS4uOWUzNzk4MzY0ZjMx
NGZkMDk2MmUzZjhjOGM1MmUyMjhkZGY3MjBhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9Nb2NrUGFnZU92ZXJsYXlDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvTW9ja1BhZ2VPdmVybGF5Q2xpZW50LmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1
ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQYWdlT3ZlcmxheUNvbnRyb2xsZXIuaCIKICNpbmNsdWRl
ICJQbGF0Zm9ybU1vdXNlRXZlbnQuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xl
VHlwZXMuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvV2ViRmFrZVhSRGV2aWNlLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1dlYkZha2VYUkRl
dmljZS5oCmluZGV4IGMwODZkOWNmZGM3MzdiMWQyYzE5NDViMTFhNmU2MGNmOGE1Yzk0ZjEuLjc5
MThhOTEzNTA2NDdkMGUzZmZlN2UyZDNlMWY3MWYwZDJhZGU4MTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvV2ViRmFrZVhSRGV2aWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9XZWJGYWtlWFJEZXZpY2UuaApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkZh
a2VYUlZpZXdJbml0LmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKICNpbmNs
dWRlICJQbGF0Zm9ybVhSLmgiCisjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlICJXZWJGYWtl
WFJJbnB1dENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJYUlZpc2liaWxpdHlTdGF0ZS5oIgogI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL1dlYlhSVGVzdC5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9XZWJYUlRlc3QuaAppbmRl
eCBiMWNjM2RiM2FlNGYzMDlkMThlODA4ZmQ3NzEyYmExYjIyYjcwNzUxLi5hZGFkZTBlNGM5YWIy
OTVmZjFkYjIxZjk2MWUyOTVmNDczNTNmZmI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL1dlYlhSVGVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvV2ViWFJUZXN0
LmgKQEAgLTM2LDYgKzM2LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBEb2N1
bWVudDsKIGNsYXNzIFdlYlhSU3lzdGVtOwogCiBjbGFzcyBXZWJYUlRlc3QgZmluYWwgOiBwdWJs
aWMgUmVmQ291bnRlZDxXZWJYUlRlc3Q+IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
R2xvYmFsU2NvcGUuaAppbmRleCBkNTg4MGVmMjcwNzdhMzY0NWQ4ZjMzNTExYmZkNDRiNTljNWI5
MTQxLi41YzAxZGI0ODZkZWQ0ODc4MjBkN2YwMzNiMTcxOTJhM2Y1YWJkNDhkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oCkBAIC0zMSwxMiArMzEsMTMgQEAK
ICNpbmNsdWRlICJJbWFnZUJpdG1hcC5oIgogI2luY2x1ZGUgIlNjcmlwdEJ1ZmZlclNvdXJjZVBy
b3ZpZGVyLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorI2luY2x1ZGUg
IlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU3VwcGxlbWVudGFibGUuaCIKICNpbmNsdWRlICJXaW5k
b3dPcldvcmtlckdsb2JhbFNjb3BlLmgiCi0jaW5jbHVkZSAiV29ya2VyT3JXb3JrbGV0R2xvYmFs
U2NvcGUuaCIKLSNpbmNsdWRlICJXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmgiCiAj
aW5jbHVkZSAiV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIldvcmtl
ck1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmgiCisjaW5jbHVkZSAiV29ya2VyT3JXb3JrbGV0
R2xvYmFsU2NvcGUuaCIKKyNpbmNsdWRlICJXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVy
LmgiCiAjaW5jbHVkZSAiV29ya2VyVGhyZWFkLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
Q29uc29sZU1lc3NhZ2UuaD4KICNpbmNsdWRlIDxtZW1vcnk+CkBAIC0xNDMsNyArMTQ0LDcgQEAg
cHVibGljOgogCiAgICAgUmVmZXJyZXJQb2xpY3kgcmVmZXJyZXJQb2xpY3koKSBjb25zdCBmaW5h
bDsKIAotICAgIGNvbnN0IFNldHRpbmdzOjpWYWx1ZXMmIHNldHRpbmdzVmFsdWVzKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gbV9zZXR0aW5nc1ZhbHVlczsgfQorICAgIGNvbnN0IFNldHRpbmdzVmFs
dWVzJiBzZXR0aW5nc1ZhbHVlcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc2V0dGluZ3NWYWx1
ZXM7IH0KIAogICAgIEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHMgY3JlZGVudGlhbHMoKSBjb25z
dCB7IHJldHVybiBtX2NyZWRlbnRpYWxzOyB9CiAKQEAgLTIyMCw3ICsyMjEsNyBAQCBwcml2YXRl
OgogICAgIFJlZlB0cjxDU1NGb250U2VsZWN0b3I+IG1fY3NzRm9udFNlbGVjdG9yOwogICAgIFJl
ZlB0cjxGb250Q2FjaGU+IG1fZm9udENhY2hlOwogICAgIFJlZmVycmVyUG9saWN5IG1fcmVmZXJy
ZXJQb2xpY3k7Ci0gICAgU2V0dGluZ3M6OlZhbHVlcyBtX3NldHRpbmdzVmFsdWVzOworICAgIFNl
dHRpbmdzVmFsdWVzIG1fc2V0dGluZ3NWYWx1ZXM7CiAgICAgV29ya2VyVHlwZSBtX3dvcmtlclR5
cGU7CiAgICAgRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFscyBtX2NyZWRlbnRpYWxzOwogICAgIFJl
ZlB0cjxXb3JrZXJTdG9yYWdlQ29ubmVjdGlvbj4gbV9zdG9yYWdlQ29ubmVjdGlvbjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJv
bGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENv
bnRyb2xsZXIuY3BwCmluZGV4IGFlNmMxODZjYjI4NGM0MWZiM2UyMjdiNjNhYmE3NmYzZTdiNGRm
MDkuLjYzMDc5NGFlMDc2MTA4MzE4NjhiODQwYjE5MTJiM2VmYzdiYWJkYzIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRTY3JpcHRDb250
cm9sbGVyLmNwcApAQCAtNDQsNiArNDQsNyBAQAogI2luY2x1ZGUgIldvcmtlck1vZHVsZVNjcmlw
dExvYWRlci5oIgogI2luY2x1ZGUgIldvcmtlclNjcmlwdEZldGNoZXIuaCIKICNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9Db21wbGV0aW9uLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29u
c29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRGVmZXJUZXJtaW5hdGlvbi5o
PgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0RlZmVycmVkV29ya1RpbWVyLmg+CiAjaW5jbHVk
ZSA8SmF2YVNjcmlwdENvcmUvRXhjZXB0aW9uLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlclRocmVhZC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJU
aHJlYWQuaAppbmRleCAxMThhNTE5OGZlN2U1NTA4YzY0YzlmZGRjOTllZjBiMTg3NTMwNWE2Li41
N2FmYWU4ZGQ1NjFmNjEwZWE0MDZjYzcyNWI4NWFmMmZlYzFlOTc4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyVGhyZWFkLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJDb250ZW50
U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMuaCIKICNpbmNsdWRlICJDcm9zc09yaWdpbkVt
YmVkZGVyUG9saWN5LmgiCiAjaW5jbHVkZSAiRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHMuaCIKKyNp
bmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIldvcmtlck9yV29ya2xldFRocmVhZC5oIgog
I2luY2x1ZGUgIldvcmtlclJ1bkxvb3AuaCIKICNpbmNsdWRlICJXb3JrZXJUeXBlLmgiCkBAIC03
MSw3ICs3Miw3IEBAIHB1YmxpYzoKICAgICBSZWZlcnJlclBvbGljeSByZWZlcnJlclBvbGljeTsK
ICAgICBXb3JrZXJUeXBlIHdvcmtlclR5cGU7CiAgICAgRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHMg
Y3JlZGVudGlhbHM7Ci0gICAgU2V0dGluZ3M6OlZhbHVlcyBzZXR0aW5nc1ZhbHVlczsKKyAgICBT
ZXR0aW5nc1ZhbHVlcyBzZXR0aW5nc1ZhbHVlczsKICAgICBXb3JrZXJUaHJlYWRNb2RlIHdvcmtl
clRocmVhZE1vZGUgeyBXb3JrZXJUaHJlYWRNb2RlOjpDcmVhdGVOZXdUaHJlYWQgfTsKIAogICAg
IFdvcmtlclBhcmFtZXRlcnMgaXNvbGF0ZWRDb3B5KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJU
aHJlYWQuY3BwCmluZGV4IGY2ZGRmODhiYzMyMzRjNDU4OWUzNDJhZWY3MjE1MjcyYTg4OGY1MDIu
LmMwNjQzZDgwNTg4NzFlODkxMDJhYTZlZTUzZDY1MWVjMDkyODQ1MDUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VX
b3JrZXJUaHJlYWQuY3BwCkBAIC03NCw3ICs3NCw3IEBAIHByaXZhdGU6CiAvLyBGSVhNRTogVXNl
IGEgdmFsaWQgV29ya2VyT2JqZWN0UHJveHkKIC8vIEZJWE1FOiBVc2UgdmFsaWQgcnVudGltZSBm
bGFncwogCi1zdGF0aWMgV29ya2VyUGFyYW1ldGVycyBnZW5lcmF0ZVdvcmtlclBhcmFtZXRlcnMo
Y29uc3QgU2VydmljZVdvcmtlckNvbnRleHREYXRhJiBjb250ZXh0RGF0YSwgU3RyaW5nJiYgdXNl
ckFnZW50LCBXb3JrZXJUaHJlYWRNb2RlIHdvcmtlclRocmVhZE1vZGUsIGNvbnN0IFNldHRpbmdz
OjpWYWx1ZXMmIHNldHRpbmdzVmFsdWVzKQorc3RhdGljIFdvcmtlclBhcmFtZXRlcnMgZ2VuZXJh
dGVXb3JrZXJQYXJhbWV0ZXJzKGNvbnN0IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYgY29udGV4
dERhdGEsIFN0cmluZyYmIHVzZXJBZ2VudCwgV29ya2VyVGhyZWFkTW9kZSB3b3JrZXJUaHJlYWRN
b2RlLCBjb25zdCBTZXR0aW5nc1ZhbHVlcyYgc2V0dGluZ3NWYWx1ZXMpCiB7CiAgICAgcmV0dXJu
IHsKICAgICAgICAgY29udGV4dERhdGEuc2NyaXB0VVJMLApAQCAtOTQsNyArOTQsNyBAQCBzdGF0
aWMgV29ya2VyUGFyYW1ldGVycyBnZW5lcmF0ZVdvcmtlclBhcmFtZXRlcnMoY29uc3QgU2Vydmlj
ZVdvcmtlckNvbnRleHREYXRhJgogICAgIH07CiB9CiAKLVNlcnZpY2VXb3JrZXJUaHJlYWQ6OlNl
cnZpY2VXb3JrZXJUaHJlYWQoU2VydmljZVdvcmtlckNvbnRleHREYXRhJiYgY29udGV4dERhdGEs
IFNlcnZpY2VXb3JrZXJEYXRhJiYgd29ya2VyRGF0YSwgU3RyaW5nJiYgdXNlckFnZW50LCBXb3Jr
ZXJUaHJlYWRNb2RlIHdvcmtlclRocmVhZE1vZGUsIGNvbnN0IFNldHRpbmdzOjpWYWx1ZXMmIHNl
dHRpbmdzVmFsdWVzLCBXb3JrZXJMb2FkZXJQcm94eSYgbG9hZGVyUHJveHksIFdvcmtlckRlYnVn
Z2VyUHJveHkmIGRlYnVnZ2VyUHJveHksIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5KiBp
ZGJDb25uZWN0aW9uUHJveHksIFNvY2tldFByb3ZpZGVyKiBzb2NrZXRQcm92aWRlcikKK1NlcnZp
Y2VXb3JrZXJUaHJlYWQ6OlNlcnZpY2VXb3JrZXJUaHJlYWQoU2VydmljZVdvcmtlckNvbnRleHRE
YXRhJiYgY29udGV4dERhdGEsIFNlcnZpY2VXb3JrZXJEYXRhJiYgd29ya2VyRGF0YSwgU3RyaW5n
JiYgdXNlckFnZW50LCBXb3JrZXJUaHJlYWRNb2RlIHdvcmtlclRocmVhZE1vZGUsIGNvbnN0IFNl
dHRpbmdzVmFsdWVzJiBzZXR0aW5nc1ZhbHVlcywgV29ya2VyTG9hZGVyUHJveHkmIGxvYWRlclBy
b3h5LCBXb3JrZXJEZWJ1Z2dlclByb3h5JiBkZWJ1Z2dlclByb3h5LCBJREJDbGllbnQ6OklEQkNv
bm5lY3Rpb25Qcm94eSogaWRiQ29ubmVjdGlvblByb3h5LCBTb2NrZXRQcm92aWRlciogc29ja2V0
UHJvdmlkZXIpCiAgICAgOiBXb3JrZXJUaHJlYWQoZ2VuZXJhdGVXb3JrZXJQYXJhbWV0ZXJzKGNv
bnRleHREYXRhLCBXVEZNb3ZlKHVzZXJBZ2VudCksIHdvcmtlclRocmVhZE1vZGUsIHNldHRpbmdz
VmFsdWVzKSwgY29udGV4dERhdGEuc2NyaXB0LCBsb2FkZXJQcm94eSwgZGVidWdnZXJQcm94eSwg
RHVtbXlTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OnNoYXJlZCgpLCBXb3JrZXJUaHJlYWRTdGFy
dE1vZGU6Ok5vcm1hbCwgY29udGV4dERhdGEucmVnaXN0cmF0aW9uLmtleS50b3BPcmlnaW4oKS5z
ZWN1cml0eU9yaWdpbigpLmdldCgpLCBpZGJDb25uZWN0aW9uUHJveHksIHNvY2tldFByb3ZpZGVy
LCBKU0M6OlJ1bnRpbWVGbGFnczo6Y3JlYXRlQWxsRW5hYmxlZCgpKQogICAgICwgbV9zZXJ2aWNl
V29ya2VySWRlbnRpZmllcihjb250ZXh0RGF0YS5zZXJ2aWNlV29ya2VySWRlbnRpZmllcikKICAg
ICAsIG1fam9iRGF0YUlkZW50aWZpZXIoY29udGV4dERhdGEuam9iRGF0YUlkZW50aWZpZXIpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNl
V29ya2VyVGhyZWFkLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9T
ZXJ2aWNlV29ya2VyVGhyZWFkLmgKaW5kZXggMDY4MWIzM2NmY2NhYmYzOTAwYTc0N2Y3MGUxMTU4
NzIxMDhjMDBiYy4uYzYxNmY1ZDk4ZDE2YzUyOWQ5YWNlOWNlNzViMzNhNWI2YjU5MTI2MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdv
cmtlclRocmVhZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0
L1NlcnZpY2VXb3JrZXJUaHJlYWQuaApAQCAtMzAsNyArMzAsNiBAQAogI2luY2x1ZGUgIlNlcnZp
Y2VXb3JrZXJDb250ZXh0RGF0YS5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJGZXRjaC5oIgog
I2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLmgiCi0jaW5jbHVkZSAiU2V0dGluZ3Mu
aCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgIldvcmtlclRocmVhZC5oIgogI2luY2x1
ZGUgPHd0Zi9XZWFrUHRyLmg+CkBAIC00NSw2ICs0NCw3IEBAIGNsYXNzIFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZTsKIGNsYXNzIFdvcmtlck9iamVjdFByb3h5Owogc3RydWN0IE1lc3NhZ2VXaXRoTWVz
c2FnZVBvcnRzOwogc3RydWN0IFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyOworc3RydWN0
IFNldHRpbmdzVmFsdWVzOwogCiBjbGFzcyBTZXJ2aWNlV29ya2VyVGhyZWFkIDogcHVibGljIFdv
cmtlclRocmVhZCwgcHVibGljIENhbk1ha2VXZWFrUHRyPFNlcnZpY2VXb3JrZXJUaHJlYWQsIFdl
YWtQdHJGYWN0b3J5SW5pdGlhbGl6YXRpb246OkVhZ2VyPiB7CiBwdWJsaWM6CkBAIC04Miw3ICs4
Miw3IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHJ1bkV2ZW50TG9vcCgpIG92ZXJyaWRlOwogCiBw
cml2YXRlOgotICAgIFdFQkNPUkVfRVhQT1JUIFNlcnZpY2VXb3JrZXJUaHJlYWQoU2VydmljZVdv
cmtlckNvbnRleHREYXRhJiYsIFNlcnZpY2VXb3JrZXJEYXRhJiYsIFN0cmluZyYmIHVzZXJBZ2Vu
dCwgV29ya2VyVGhyZWFkTW9kZSwgY29uc3QgU2V0dGluZ3M6OlZhbHVlcyYsIFdvcmtlckxvYWRl
clByb3h5JiwgV29ya2VyRGVidWdnZXJQcm94eSYsIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblBy
b3h5KiwgU29ja2V0UHJvdmlkZXIqKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBTZXJ2aWNlV29ya2Vy
VGhyZWFkKFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYmLCBTZXJ2aWNlV29ya2VyRGF0YSYmLCBT
dHJpbmcmJiB1c2VyQWdlbnQsIFdvcmtlclRocmVhZE1vZGUsIGNvbnN0IFNldHRpbmdzVmFsdWVz
JiwgV29ya2VyTG9hZGVyUHJveHkmLCBXb3JrZXJEZWJ1Z2dlclByb3h5JiwgSURCQ2xpZW50OjpJ
REJDb25uZWN0aW9uUHJveHkqLCBTb2NrZXRQcm92aWRlciopOwogCiAgICAgYm9vbCBpc1NlcnZp
Y2VXb3JrZXJUaHJlYWQoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAgICAgdm9pZCBm
aW5pc2hlZEV2YWx1YXRpbmdTY3JpcHQoKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2xl
dHMvV29ya2xldEdsb2JhbFNjb3BlLmgKaW5kZXggZGY3MGQ1ZThjZDRhODU1ODU4ZjM2ZGVmZjhj
ODU5MWZhNzQ4MGM1MC4uNjg0MjAzZDZmMGI5ZTllMWYxOTkzZjE1ZTA0Y2FmM2QwNDRiYjk2ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmgKQEAgLTMx
LDYgKzMxLDcgQEAKICNpbmNsdWRlICJGZXRjaFJlcXVlc3RDcmVkZW50aWFscy5oIgogI2luY2x1
ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJTY3JpcHRTb3VyY2VDb2Rl
LmgiCisjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJXb3JrZXJPcldvcmtsZXRHbG9i
YWxTY29wZS5oIgogI2luY2x1ZGUgIldvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaCIK
ICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlTWVzc2FnZS5oPgpAQCAtMTE1LDcgKzEx
Niw3IEBAIHByaXZhdGU6CiAjZW5kaWYKICAgICBVUkwgY29tcGxldGVVUkwoY29uc3QgU3RyaW5n
JiwgRm9yY2VVVEY4ID0gRm9yY2VVVEY4OjpObykgY29uc3QgZmluYWw7CiAgICAgU3RyaW5nIHVz
ZXJBZ2VudChjb25zdCBVUkwmKSBjb25zdCBmaW5hbDsKLSAgICBjb25zdCBTZXR0aW5nczo6VmFs
dWVzJiBzZXR0aW5nc1ZhbHVlcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc2V0dGluZ3NWYWx1
ZXM7IH0KKyAgICBjb25zdCBTZXR0aW5nc1ZhbHVlcyYgc2V0dGluZ3NWYWx1ZXMoKSBjb25zdCBm
aW5hbCB7IHJldHVybiBtX3NldHRpbmdzVmFsdWVzOyB9CiAKICAgICBXZWFrUHRyPERvY3VtZW50
PiBtX2RvY3VtZW50OwogCkBAIC0xMjcsNyArMTI4LDcgQEAgcHJpdmF0ZToKIAogICAgIHN0ZDo6
dW5pcXVlX3B0cjxXb3JrZXJNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcj4gbV9tZXNzYWdlUG9y
dENoYW5uZWxQcm92aWRlcjsKIAotICAgIFNldHRpbmdzOjpWYWx1ZXMgbV9zZXR0aW5nc1ZhbHVl
czsKKyAgICBTZXR0aW5nc1ZhbHVlcyBtX3NldHRpbmdzVmFsdWVzOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xl
dFBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRQYXJhbWV0ZXJz
LmgKaW5kZXggZWE1Y2E2ZGIzNDZhNjIxNzgyMDcyNjMxYTM0ZjIwMTcyNmM3NzU2OC4uZmY2MTIx
ZTE4MTNmYzU3OTJkZTBkNGUxNzQ3ZGEzODlhZDhiM2Q3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd29ya2xldHMvV29ya2xldFBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrbGV0cy9Xb3JrbGV0UGFyYW1ldGVycy5oCkBAIC0zNiw3ICszNiw3IEBAIHN0cnVjdCBXb3Jr
bGV0UGFyYW1ldGVycyB7CiAgICAgSlNDOjpSdW50aW1lRmxhZ3MganNSdW50aW1lRmxhZ3M7CiAg
ICAgZmxvYXQgc2FtcGxlUmF0ZTsKICAgICBTdHJpbmcgaWRlbnRpZmllcjsKLSAgICBTZXR0aW5n
czo6VmFsdWVzIHNldHRpbmdzVmFsdWVzOworICAgIFNldHRpbmdzVmFsdWVzIHNldHRpbmdzVmFs
dWVzOwogICAgIGJvb2wgaXNBdWRpb0NvbnRleHRSZWFsVGltZTsKIAogICAgIFdvcmtsZXRQYXJh
bWV0ZXJzIGlzb2xhdGVkQ29weSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94
bWwvWE1MSHR0cFJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0
LmNwcAppbmRleCBhYjk5NjAzZWE1M2UyNDZiNjMzMjFmYmQ0MTQxY2M1ZTI5Y2U5NmI0Li5jN2Y1
YWFmOTg3Y2E2ZDE0ZTgxOWMyZjQ5Y2VjZGIwZTgxOTY1MzNmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9Y
TUxIdHRwUmVxdWVzdC5jcHAKQEAgLTU5LDYgKzU5LDcgQEAKICNpbmNsdWRlICJtYXJrdXAuaCIK
ICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9BcnJheUJ1ZmZlci5oPgogI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL0FycmF5QnVmZmVyVmlldy5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Nv
bnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lubGluZXMuaD4KICNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0xvY2suaD4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9j
SW5saW5lcy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3JM
aWJ4c2x0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xUUHJvY2Vzc29yTGlieHNsdC5jcHAK
aW5kZXggZGY4YWJlNDI2ZTA2NzE3MWFmZmY5MGUwMzMzODUwNTlmMzMxMDM2NC4uMzQ0YmQ0ZTk3
MmM3MzlmMDZlNjExYWQ5MWJjNTExYWIwZThkZmI4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUveG1sL1hTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwv
WFNMVFByb2Nlc3NvckxpYnhzbHQuY3BwCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAiWFNM
VEV4dGVuc2lvbnMuaCIKICNpbmNsdWRlICJYU0xUVW5pY29kZVNvcnQuaCIKICNpbmNsdWRlICJt
YXJrdXAuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMuaD4KICNpbmNs
dWRlIDxsaWJ4c2x0L2ltcG9ydHMuaD4KICNpbmNsdWRlIDxsaWJ4c2x0L3NlY3VyaXR5Lmg+CiAj
aW5jbHVkZSA8bGlieHNsdC92YXJpYWJsZXMuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcAppbmRleCBhOGMzZTE4ZTQ3
YWVjYWQwYTAyMmEwODRjNDlhMjFmNmM3MTRjMzkyLi4zY2Q3M2YwOGYyNzYxMDgyYWJlODBhMmRj
YzI0NTJmM2ZmOTQ4M2Y5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hN
TERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL3BhcnNl
ci9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwCkBAIC01OSw2ICs1OSw3IEBACiAjaW5jbHVk
ZSAiVHJhbnNmb3JtU291cmNlLmgiCiAjaW5jbHVkZSAiWE1MTlNOYW1lcy5oIgogI2luY2x1ZGUg
IlhNTERvY3VtZW50UGFyc2VyU2NvcGUuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25z
b2xlVHlwZXMuaD4KICNpbmNsdWRlIDxsaWJ4bWwvcGFyc2VySW50ZXJuYWxzLmg+CiAjaW5jbHVk
ZSA8d3RmL3VuaWNvZGUvQ2hhcmFjdGVyTmFtZXMuaD4KICNpbmNsdWRlIDx3dGYvdW5pY29kZS9V
VEY4Q29udmVyc2lvbi5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oCmluZGV4IDUzOTYxYTAzYTUyYzM4MTliY2EyOWUwYjcxN2RiYzUwMDhmOWZlNWMuLmNiZWU5
MTQzNmE2MTMwYTFhMTJiNDFhODliMDc1NDY0YjJhNTQzNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTIyOCw2ICsyMjgsNyBAQCBlbnVtIFN5bnRo
ZXRpY0NsaWNrVHlwZSA6IGludDhfdDsKIGVudW0gY2xhc3MgQ09FUERpc3Bvc2l0aW9uIDogYm9v
bDsKIGVudW0gY2xhc3MgQ3JlYXRlTmV3R3JvdXBGb3JIaWdobGlnaHQgOiBib29sOwogZW51bSBj
bGFzcyBET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlIDogdWludDhfdDsKK2VudW0gY2xhc3MgRGF0YURl
dGVjdG9yVHlwZSA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIERyYWdBcHBsaWNhdGlvbkZsYWdzIDog
dWludDhfdDsKIGVudW0gY2xhc3MgRHJhZ0hhbmRsaW5nTWV0aG9kIDogdWludDhfdDsKIGVudW0g
Y2xhc3MgRXZlbnRNYWtlc0dhbWVwYWRzVmlzaWJsZSA6IGJvb2w7Cg==
</data>
<flag name="commit-queue"
          id="465431"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441242</attachid>
            <date>2021-10-14 11:17:51 -0700</date>
            <delta_ts>2021-10-14 15:55:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231634-20211014111750.patch</filename>
            <type>text/plain</type>
            <size>111150</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MTQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDQ0YmRhZmQ2Njg3YzE3
Yjk5OGYyYjc0MzU4NmYyOTUzM2Q5OGYwYi4uNDJjZDNiNTI0NzFlMGU0OTEyOWNlYjUzM2EzNDIx
Y2ZkOTE1NGY2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2MyBAQAorMjAyMS0xMC0xMiAgSmVy
IE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBbQnVpbGQtdGltZSBwZXJm
XSBGb3J3YXJkLWRlY2xhcmUgbW9yZSB0aGluZ3MgaW4gU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5o
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE2MzQK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIHRo
ZSBTZXR0aW5nczo6VmFsdWVzIHN0cnVjdCBvdXRzaWRlIG9mIFNldHRpbmdzIHNvIHRoYXQgaXQg
Y2FuIGJlIGZvcndhcmQgZGVjbGFyZWQuCisKKyAgICAgICAgQWRkIHRoZSBmb2xsb3dpbmcgaGVh
ZGVycyB0byBjb250YWluIGlubGluZWQgZGVmaW5pdGlvbnMgb2YgY2xhc3MgbWV0aG9kczoKKyAg
ICAgICAgLSBTY3JpcHRFeGVjdXRpb25Db250ZXh0SW5saW5lcy5oCisgICAgICAgIC0gSURCQWN0
aXZlRE9NT2JqZWN0SW5saW5lcy5oCisKKyAgICAgICAgTW92ZSBpbmxpbmVkIG1ldGhvZHMgaW50
byB0aGUgbmV3bHkgY3JlYXRlZCBJbmxpbmVzLmggaGVhZGVycyBhbmQgZGVjb3JhdGUgdGhlIGRl
Y2xhcmF0aW9ucworICAgICAgICBvZiB0aG9zZSBtZXRob2RzIHdpdGggYGlubGluZWAuCisKKyAg
ICAgICAgRm9yd2FyZCBkZWNsYXJlIGFsbCB0eXBlcyB1c2VkIGJ5IG1ldGhvZHMgaW4gU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCBhbmQgcmVtb3ZlIHRob3NlIGhlYWRlcnMsCisgICAgICAgIGFuZCBy
ZS1hZGQgdGhvc2UgaGVhZGVycyBkaXJlY3RseSB0byB0aGUgc291cmNlIGZpbGVzIHdoaWNoIHJl
cXVpcmUgdGhlbS4KKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICogTW9kdWxl
cy9iZWFjb24vTmF2aWdhdG9yQmVhY29uLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL2NhY2hlL0RP
TUNhY2hlRW5naW5lLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL2NhY2hlL0RPTUNhY2hlU3RvcmFn
ZS5jcHA6CisgICAgICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuY3BwOgorICAgICAg
ICAqIE1vZHVsZXMvZ2FtZXBhZC9OYXZpZ2F0b3JHYW1lcGFkLmNwcDoKKyAgICAgICAgKiBNb2R1
bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4
ZWRkYi9JREJBY3RpdmVET01PYmplY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkFjdGl2ZURP
TU9iamVjdDo6b3JpZ2luVGhyZWFkIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OklEQkFjdGl2ZURPTU9iamVjdDo6cGVyZm9ybUNhbGxiYWNrT25PcmlnaW5UaHJlYWQpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6SURCQWN0aXZlRE9NT2JqZWN0OjpjYWxsRnVuY3Rpb25P
bk9yaWdpblRocmVhZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpJREJBY3RpdmVET01P
YmplY3Q6OklEQkFjdGl2ZURPTU9iamVjdCk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy9p
bmRleGVkZGIvY2xpZW50L1RyYW5zYWN0aW9uT3BlcmF0aW9uLmg6CisgICAgICAgICogTW9kdWxl
cy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
c291cmNlL01lZGlhU291cmNlLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtVHJhY2suY3BwOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0
YUNoYW5uZWwuY3BwOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVx
dWVzdC5jcHA6CisgICAgICAgICogTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5j
cHA6CisgICAgICAgICogTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHA6
CisgICAgICAgICogTW9kdWxlcy9waWN0dXJlaW5waWN0dXJlL0hUTUxWaWRlb0VsZW1lbnRQaWN0
dXJlSW5QaWN0dXJlLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL3JlbW90ZXBsYXliYWNrL1JlbW90
ZVBsYXliYWNrLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRl
eHQuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0lJUkZpbHRlck5vZGUuY3BwOgorICAg
ICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4dC5jcHA6CisgICAgICAg
ICogTW9kdWxlcy93ZWJkYXRhYmFzZS9ET01XaW5kb3dXZWJEYXRhYmFzZS5jcHA6CisgICAgICAg
ICogTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHA6CisgICAgICAgICogTW9kdWxlcy93
ZWJkYXRhYmFzZS9EYXRhYmFzZU1hbmFnZXIuY3BwOgorICAgICAgICAqIE1vZHVsZXMvd2Vic29j
a2V0cy9XZWJTb2NrZXQuY3BwOgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2Nr
ZXRDaGFubmVsLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSU3lzdGVtLmNwcDoK
KyAgICAgICAgKiBTY3JpcHRzL1NldHRpbmdzVGVtcGxhdGVzL1NldHRpbmdzLmNwcC5lcmI6Cisg
ICAgICAgICogU2NyaXB0cy9TZXR0aW5nc1RlbXBsYXRlcy9TZXR0aW5ncy5oLmVyYjoKKyAgICAg
ICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChHZW5lcmF0ZVJ1bnRpbWVFbmFibGVDb25k
aXRpb25hbFN0cmluZyk6CisgICAgICAgICogY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVu
c2lvbnNCYWNrZW5kLmNwcDoKKyAgICAgICAgKiBjcnlwdG8vU3VidGxlQ3J5cHRvLmNwcDoKKyAg
ICAgICAgKiBjc3MvQ1NTRm9udEZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udEZh
Y2U6OkNTU0ZvbnRGYWNlKToKKyAgICAgICAgKiBjc3MvQ1NTRm9udEZhY2UuaDoKKyAgICAgICAg
KiBjc3MvQ1NTRm9udFNlbGVjdG9yLmg6CisgICAgICAgICogY3NzL0NTU0tleWZyYW1lc1J1bGUu
Y3BwOgorICAgICAgICAqIGNzcy9NZWRpYUxpc3QuY3BwOgorICAgICAgICAqIGNzcy9TdHlsZVNo
ZWV0Q29udGVudHMuY3BwOgorICAgICAgICAqIGRvbS9BY3RpdmVET01PYmplY3QuaDoKKyAgICAg
ICAgKiBkb20vRGV2aWNlTW90aW9uRXZlbnQuY3BwOgorICAgICAgICAqIGRvbS9EZXZpY2VPcmll
bnRhdGlvbkV2ZW50LmNwcDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RG9jdW1lbnQ6OnNldHRpbmdzVmFsdWVzIGNvbnN0KToKKyAgICAgICAgKiBkb20v
RG9jdW1lbnQuaDoKKyAgICAgICAgKiBkb20vRW1wdHlTY3JpcHRFeGVjdXRpb25Db250ZXh0Lmg6
CisgICAgICAgICogZG9tL0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcDoKKyAgICAgICAgKiBkb20vTG9h
ZGFibGVDbGFzc2ljU2NyaXB0LmNwcDoKKyAgICAgICAgKiBkb20vTW91c2VFdmVudC5jcHA6Cisg
ICAgICAgICogZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uaDoKKyAgICAgICAgKFdl
YkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb246OmRlbGl2ZXJ5T3B0aW9ucyBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uOjptdXRh
dGlvblR5cGVzIGNvbnN0KToKKyAgICAgICAgKiBkb20vU2NyaXB0RWxlbWVudC5jcHA6CisgICAg
ICAgICogZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwOgorICAgICAgICAqIGRvbS9TY3Jp
cHRFeGVjdXRpb25Db250ZXh0Lmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25D
b250ZXh0Ojpwb3N0Q3Jvc3NUaHJlYWRUYXNrKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmFkZFRpbWVvdXQpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6cmVtb3ZlVGltZW91dCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpmaW5kVGltZW91dCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpBZGRD
b25zb2xlTWVzc2FnZVRhc2s6OkFkZENvbnNvbGVNZXNzYWdlVGFzayk6IERlbGV0ZWQuCisgICAg
ICAgICogZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmNwcDoKKyAgICAgICAgKiBmaWxlYXBpL0Jsb2Iu
aDoKKyAgICAgICAgKiBodG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcDoKKyAgICAgICAgKiBodG1s
L0hUTUxDYW52YXNFbGVtZW50LmNwcDoKKyAgICAgICAgKiBodG1sL0hUTUxFbGVtZW50LmNwcDoK
KyAgICAgICAgKiBodG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwOgorICAgICAgICAqIGh0
bWwvSFRNTEZvcm1FbGVtZW50LmNwcDoKKyAgICAgICAgKiBodG1sL0hUTUxIdG1sRWxlbWVudC5j
cHA6CisgICAgICAgICogaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5jcHA6CisgICAgICAgICogaHRt
bC9IVE1MTGlua0VsZW1lbnQuY3BwOgorICAgICAgICAqIGh0bWwvSFRNTFBsdWdJbkVsZW1lbnQu
Y3BwOgorICAgICAgICAqIGh0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwOgorICAgICAgICAqIGh0
bWwvSFRNTFNvdXJjZUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL1RleHRGaWVsZElucHV0VHlw
ZS5jcHA6CisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFz
ZS5jcHA6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHA6
CisgICAgICAgICogaHRtbC90cmFjay9UcmFja0Jhc2UuY3BwOgorICAgICAgICAqIGluc3BlY3Rv
ci9hZ2VudHMvcGFnZS9QYWdlRGVidWdnZXJBZ2VudC5jcHA6CisgICAgICAgICogbG9hZGVyL0Ny
b3NzT3JpZ2luRW1iZWRkZXJQb2xpY3kuY3BwOgorICAgICAgICAqIGxvYWRlci9Dcm9zc09yaWdp
blByZWZsaWdodENoZWNrZXIuY3BwOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5j
cHA6CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHA6CisgICAg
ICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKiBsb2FkZXIvSW1hZ2VMb2Fk
ZXIuY3BwOgorICAgICAgICAqIGxvYWRlci9MaW5rTG9hZGVyLmNwcDoKKyAgICAgICAgKiBsb2Fk
ZXIvTWVkaWFSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgICogbG9hZGVyL01peGVkQ29udGVu
dENoZWNrZXIuY3BwOgorICAgICAgICAqIGxvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcDoK
KyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAqIGxvYWRlci9T
dWJyZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgICogbG9hZGVyL1RleHRUcmFja0xvYWRlci5j
cHA6CisgICAgICAgICogbG9hZGVyL1RocmVhZGFibGVMb2FkZXIuY3BwOgorICAgICAgICAqIGxv
YWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwOgorICAgICAgICAqIGxvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgICogcGFnZS9ET01UaW1l
ci5jcHA6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAqIHBhZ2UvRHJh
Z0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAqIHBhZ2UvRXZlbnRTb3VyY2UuY3BwOgorICAgICAg
ICAqIHBhZ2UvRnJhbWUuY3BwOgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAg
ICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAqIHBhZ2UvUG9pbnRlckxvY2tDb250cm9sbGVy
LmNwcDoKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLnlhbWw6CisgICAgICAgICogcGFnZS9jc3Av
Q29udGVudFNlY3VyaXR5UG9saWN5LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9WaWRl
b0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5tbToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5jcHA6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxp
c3RCb3guY3BwOgorICAgICAgICAqIHJlbmRlcmluZy9zaGFwZXMvU2hhcGVPdXRzaWRlSW5mby5j
cHA6CisgICAgICAgICogc3R5bGUvU3R5bGVGb250U2l6ZUZ1bmN0aW9ucy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZTo6Y29tcHV0ZWRGb250U2l6ZUZyb21TcGVjaWZpZWRTaXplKToKKyAg
ICAgICAgKFdlYkNvcmU6OlN0eWxlOjpmb250U2l6ZUZvcktleXdvcmQpOgorICAgICAgICAqIHN0
eWxlL1N0eWxlRm9udFNpemVGdW5jdGlvbnMuaDoKKyAgICAgICAgKiBzdHlsZS9TdHlsZVNjb3Bl
UnVsZVNldHMuY3BwOgorICAgICAgICAqIHN2Zy9TVkdEb2N1bWVudEV4dGVuc2lvbnMuY3BwOgor
ICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKiB0ZXN0aW5nL01vY2tQ
YWdlT3ZlcmxheUNsaWVudC5jcHA6CisgICAgICAgICogdGVzdGluZy9XZWJGYWtlWFJEZXZpY2Uu
aDoKKyAgICAgICAgKiB0ZXN0aW5nL1dlYlhSVGVzdC5oOgorICAgICAgICAqIHdvcmtlcnMvV29y
a2VyR2xvYmFsU2NvcGUuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlw
dENvbnRyb2xsZXIuY3BwOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyVGhyZWFkLmg6CisgICAg
ICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpnZW5lcmF0ZVdvcmtlclBhcmFtZXRlcnMpOgorICAgICAgICAoV2Vi
Q29yZTo6U2VydmljZVdvcmtlclRocmVhZDo6U2VydmljZVdvcmtlclRocmVhZCk6CisgICAgICAg
ICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5oOgorICAgICAg
ICAqIHdvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5oOgorICAgICAgICAqIHdvcmtsZXRzL1dv
cmtsZXRQYXJhbWV0ZXJzLmg6CisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDoKKyAg
ICAgICAgKiB4bWwvWFNMVFByb2Nlc3NvckxpYnhzbHQuY3BwOgorICAgICAgICAqIHhtbC9wYXJz
ZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcDoKKwogMjAyMS0xMC0xMCAgSmVyIE5vYmxl
ICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBbQnVpbGQtdGltZSBwZXJmXSBGb3J3
YXJkLWRlY2xhcmUgbW9yZSB0aGluZ3MgaW4gRG9jdW1lbnQuaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBlNjNmZDE4
Y2M5NzA4MzZiY2VkYWJhZjhiNGRlMDVhNTYwZjJiYzUwLi4xYWMyMjAzM2ZmOWU4OWEyY2U3OGM2
NWIwMDc5MDJjNDYxMTMwOTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIxLTEwLTE0
ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtCdWlsZC10aW1l
IHBlcmZdIEZvcndhcmQtZGVjbGFyZSBtb3JlIHRoaW5ncyBpbiBTY3JpcHRFeGVjdXRpb25Db250
ZXh0LmgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
MTYzNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZv
cndhcmQtZGVjbGFyZSBEYXRhRGV0ZWN0b3JUeXBlLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaDoKKwogMjAyMS0xMC0xMCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFw
cGxlLmNvbT4KIAogICAgICAgICBbQnVpbGQtdGltZSBwZXJmXSBGb3J3YXJkLWRlY2xhcmUgbW9y
ZSB0aGluZ3MgaW4gRG9jdW1lbnQuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVy
cy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggOWI3OTAwOTA2MjQy
YmNiMTY2Y2M2ODk2OTY0MjQ5ZDQwNWMzNGU0Mi4uYTBmYWFlOTA5N2I4YjgzMzkzYTY2MjQ5NWFm
N2VlM2YzNjBiNDRiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC02Niw2ICs2Niw3IEBAIHNldChX
ZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBNb2R1bGVzL2hpZ2hsaWdodC9I
aWdobGlnaHRWaXNpYmlsaXR5LmgKIAogICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkFjdGl2ZURP
TU9iamVjdC5oCisgICAgTW9kdWxlcy9pbmRleGVkZGIvSURCQWN0aXZlRE9NT2JqZWN0SW5saW5l
cy5oCiAgICAgTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VJZGVudGlmaWVyLmgKICAgICBN
b2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdC5oCiAgICAg
TW9kdWxlcy9pbmRleGVkZGIvSURCR2V0QWxsUmVzdWx0LmgKQEAgLTU1MCw2ICs1NTEsNyBAQCBz
ZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgZG9tL1NjcmlwdEVsZW1l
bnQuaAogICAgIGRvbS9TY3JpcHRFbGVtZW50Q2FjaGVkU2NyaXB0RmV0Y2hlci5oCiAgICAgZG9t
L1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaAorICAgIGRvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0
SW5saW5lcy5oCiAgICAgZG9tL1NlY3VyaXR5Q29udGV4dC5oCiAgICAgZG9tL1NlY3VyaXR5UG9s
aWN5VmlvbGF0aW9uRXZlbnQuaAogICAgIGRvbS9TZWxlY3Rpb25SZXN0b3JhdGlvbk1vZGUuaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9iZWFjb24vTmF2aWdhdG9yQmVhY29u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYmVhY29uL05hdmlnYXRvckJlYWNvbi5jcHAK
aW5kZXggNjlkZWM1Y2I2ZmJjNWJmOWQ4YjcxOGNjZTIxMDE3YTNkYmI3ZDk0Zi4uYjliNzQ4MTZk
YmYyOThiNTRhNTVmN2M0NzhmZjk0YTllZmM0NjBhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9iZWFjb24vTmF2aWdhdG9yQmVhY29uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2JlYWNvbi9OYXZpZ2F0b3JCZWFjb24uY3BwCkBAIC0zMyw2ICszMyw3IEBACiAj
aW5jbHVkZSAiSFRUUFBhcnNlcnMuaCIKICNpbmNsdWRlICJOYXZpZ2F0b3IuaCIKICNpbmNsdWRl
ICJQYWdlLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5j
bHVkZSA8d3RmL1VSTC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlRW5naW5lLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvY2FjaGUvRE9NQ2FjaGVFbmdpbmUuY3BwCmluZGV4IDI1OTE0YjQwYmIyMzgz
YTA3ODgwNGY4OWIxMWI0MGQ4OTcwYjQzMDYuLmJlOTcyYWFiNTJhNjljYTNjZjAzNzAyMTA3NGI5
MDMyOTM2MTcxMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvRE9N
Q2FjaGVFbmdpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvRE9NQ2Fj
aGVFbmdpbmUuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiRXhjZXB0aW9uLmgiCiAj
aW5jbHVkZSAiSFRUUFBhcnNlcnMuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0
LmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9E
T01DYWNoZVN0b3JhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNo
ZVN0b3JhZ2UuY3BwCmluZGV4IDhhOWNiMWZjODc1ZjIzNTc3OTNhNTg2NTBlMTFkOWUxYWY5YTI4
ZDguLjlhMjQ1MDMyNjk0MDc0YmExYjU0ODdlNzZiZWNkNDliYTA4ZmJhMmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvRE9NQ2FjaGVTdG9yYWdlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlU3RvcmFnZS5jcHAKQEAgLTMzLDYg
KzMzLDcgQEAKICNpbmNsdWRlICJKU0ZldGNoUmVzcG9uc2UuaCIKICNpbmNsdWRlICJTY3JpcHRF
eGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVzdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVzdC5jcHAKaW5kZXgg
YTk1NDc0MGQzZTQzY2RlMzEyMGMxMzM1YjYyZDcxNGI3NmQxMWFmZS4uOTk4NDBjYmM2MWQzN2Y4
YWY2MWYxOTVlY2ViYjQwNmU2YWIwNWNjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmV0Y2gvRmV0Y2hSZXF1ZXN0LmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIlNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1
ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9nYW1lcGFkL05hdmlnYXRvckdhbWVwYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9nYW1lcGFkL05hdmlnYXRvckdhbWVwYWQuY3BwCmluZGV4IDc4MWYxNmY2ODAyNjBlMzAyZWE5
NjgwYTU5Y2QzYWZlZDk0MTg1NzAuLmViMDY4N2EwNTExZWE2Y2Y0Y2E2MTAyMmRmNGJkZmJlNTg3
OTgyODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2FtZXBhZC9OYXZpZ2F0
b3JHYW1lcGFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dhbWVwYWQvTmF2aWdh
dG9yR2FtZXBhZC5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJHYW1lcGFkUHJvdmlk
ZXIuaCIKICNpbmNsdWRlICJOYXZpZ2F0b3IuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUdhbWVwYWQu
aCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0
aW9uL0dlb2xvY2F0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24v
R2VvbG9jYXRpb24uY3BwCmluZGV4IGUyNzJlY2RlZjJhN2QwNjZhMTIxZWMzNjZhOTkwNmQ0Yjhk
YjE0YzcuLjMzMGUzZDdmNjliMzgxYzNjNTcxMzc3OWI0NTdmZjY1MDFmNWExNjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uY3BwCkBA
IC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlJ1bnRpbWVBcHBs
aWNhdGlvbkNoZWNrcy5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCisjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lu
bGluZXMuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5n
QnVpbGRlci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCQWN0aXZlRE9NT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkFjdGl2ZURPTU9iamVjdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODMxNDQ1YjliZDRjYWU4MGM3MWZj
YmZkOWE0NDk5MjkxMjIwYTRkMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkFjdGl2ZURPTU9iamVjdC5jcHAKQEAgLTAsMCArMSw1MCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJREJBY3RpdmVET01P
YmplY3QuaCIKKworI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitJREJBY3RpdmVET01PYmplY3Q6OklEQkFjdGl2ZURPTU9iamVjdChTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBjb250ZXh0KQorICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQpCisg
ICAgLCBtX29yaWdpblRocmVhZChUaHJlYWQ6OmN1cnJlbnQoKSkKK3sKKyAgICBBU1NFUlQoY29u
dGV4dCk7Cit9CisKK0lEQkFjdGl2ZURPTU9iamVjdDo6fklEQkFjdGl2ZURPTU9iamVjdCgpID0g
ZGVmYXVsdDsKKwordm9pZCBJREJBY3RpdmVET01PYmplY3Q6OmNvbnRleHREZXN0cm95ZWQoKQor
eworICAgIEFTU0VSVChjYW5DdXJyZW50VGhyZWFkQWNjZXNzVGhyZWFkTG9jYWxEYXRhKG9yaWdp
blRocmVhZCgpKSk7CisKKyAgICBMb2NrZXI8TG9jaz4gbG9jayhtX3NjcmlwdEV4ZWN1dGlvbkNv
bnRleHRMb2NrKTsKKyAgICBBY3RpdmVET01PYmplY3Q6OmNvbnRleHREZXN0cm95ZWQoKTsKK30K
KworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQWN0
aXZlRE9NT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJBY3Rp
dmVET01PYmplY3QuaAppbmRleCBlYjY4NDA4ZGM0MWI1ZmFkMzI3YTI3Y2Q1YjAzYTUzMjIzYTlk
N2UwLi41ODNiNzJmODlhNjgxY2JjYjgxNTVkMzFiZjdhNTNmYjhjOGQ3NDVhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJBY3RpdmVET01PYmplY3QuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJBY3RpdmVET01PYmplY3Qu
aApAQCAtMjYsNjYgKzI2LDMwIEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkFjdGl2ZURP
TU9iamVjdC5oIgotI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKLSNpbmNsdWRl
IDx3dGYvVGhyZWFkaW5nLmg+CisKK25hbWVzcGFjZSBXVEYgeworY2xhc3MgVGhyZWFkOworfQog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIElEQkFjdGl2ZURPTU9iamVjdCA6IHB1Ymxp
YyBBY3RpdmVET01PYmplY3QgeworY2xhc3MgV0VCQ09SRV9FWFBPUlQgSURCQWN0aXZlRE9NT2Jq
ZWN0IDogcHVibGljIEFjdGl2ZURPTU9iamVjdCB7CiBwdWJsaWM6Ci0gICAgVGhyZWFkJiBvcmln
aW5UaHJlYWQoKSBjb25zdCB7IHJldHVybiBtX29yaWdpblRocmVhZC5nZXQoKTsgfQotCi0gICAg
dm9pZCBjb250ZXh0RGVzdHJveWVkKCkgZmluYWwgewotICAgICAgICBBU1NFUlQoY2FuQ3VycmVu
dFRocmVhZEFjY2Vzc1RocmVhZExvY2FsRGF0YShvcmlnaW5UaHJlYWQoKSkpOworICAgIHZpcnR1
YWwgfklEQkFjdGl2ZURPTU9iamVjdCgpOworICAgIFdURjo6VGhyZWFkJiBvcmlnaW5UaHJlYWQo
KSBjb25zdCB7IHJldHVybiBtX29yaWdpblRocmVhZC5nZXQoKTsgfQogCi0gICAgICAgIExvY2tl
cjxMb2NrPiBsb2NrKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dExvY2spOwotICAgICAgICBBY3Rp
dmVET01PYmplY3Q6OmNvbnRleHREZXN0cm95ZWQoKTsKLSAgICB9CisgICAgdm9pZCBjb250ZXh0
RGVzdHJveWVkKCkgZmluYWw7CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZS4u
LiBQYXJhbWV0ZXJzLCB0eXBlbmFtZS4uLiBBcmd1bWVudHM+Ci0gICAgdm9pZCBwZXJmb3JtQ2Fs
bGJhY2tPbk9yaWdpblRocmVhZChUJiBvYmplY3QsIHZvaWQgKFQ6OiptZXRob2QpKFBhcmFtZXRl
cnMuLi4pLCBBcmd1bWVudHMmJi4uLiBhcmd1bWVudHMpCi0gICAgewotICAgICAgICBBU1NFUlQo
Jm9yaWdpblRocmVhZCgpID09ICZvYmplY3Qub3JpZ2luVGhyZWFkKCkpOwotCi0gICAgICAgIGlm
IChjYW5DdXJyZW50VGhyZWFkQWNjZXNzVGhyZWFkTG9jYWxEYXRhKG9iamVjdC5vcmlnaW5UaHJl
YWQoKSkpIHsKLSAgICAgICAgICAgIChvYmplY3QuKm1ldGhvZCkoc3RkOjpmb3J3YXJkPEFyZ3Vt
ZW50cz4oYXJndW1lbnRzKS4uLik7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQot
ICAgICAgICBMb2NrZXI8TG9jaz4gbG9jayhtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHRMb2NrKTsK
LQotICAgICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0ID0gc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpOwotICAgICAgICBpZiAoIWNvbnRleHQpCi0gICAgICAgICAgICByZXR1cm47
Ci0KLSAgICAgICAgY29udGV4dC0+cG9zdENyb3NzVGhyZWFkVGFzayhvYmplY3QsIG1ldGhvZCwg
YXJndW1lbnRzLi4uKTsKLSAgICB9Ci0KLSAgICB2b2lkIGNhbGxGdW5jdGlvbk9uT3JpZ2luVGhy
ZWFkKFdURjo6RnVuY3Rpb248dm9pZCAoKT4mJiBmdW5jdGlvbikKLSAgICB7Ci0gICAgICAgIGlm
IChjYW5DdXJyZW50VGhyZWFkQWNjZXNzVGhyZWFkTG9jYWxEYXRhKG9yaWdpblRocmVhZCgpKSkg
ewotICAgICAgICAgICAgZnVuY3Rpb24oKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
fQotCi0gICAgICAgIExvY2tlcjxMb2NrPiBsb2NrKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dExv
Y2spOwotCi0gICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQgPSBzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCk7Ci0gICAgICAgIGlmICghY29udGV4dCkKLSAgICAgICAgICAgIHJl
dHVybjsKKyAgICBpbmxpbmUgdm9pZCBwZXJmb3JtQ2FsbGJhY2tPbk9yaWdpblRocmVhZChUJiwg
dm9pZCAoVDo6Km1ldGhvZCkoUGFyYW1ldGVycy4uLiksIEFyZ3VtZW50cyYmLi4uKTsKIAotICAg
ICAgICBjb250ZXh0LT5wb3N0VGFzayhXVEZNb3ZlKGZ1bmN0aW9uKSk7Ci0gICAgfQorICAgIGlu
bGluZSB2b2lkIGNhbGxGdW5jdGlvbk9uT3JpZ2luVGhyZWFkKFdURjo6RnVuY3Rpb248dm9pZCgp
PiYmKTsKIAogcHJvdGVjdGVkOgotICAgIElEQkFjdGl2ZURPTU9iamVjdChTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBjb250ZXh0KQotICAgICAgICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0KQot
ICAgIHsKLSAgICAgICAgQVNTRVJUKGNvbnRleHQpOwotICAgIH0KKyAgICBJREJBY3RpdmVET01P
YmplY3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwogCiBwcml2YXRlOgotICAgIFJlZjxUaHJl
YWQ+IG1fb3JpZ2luVGhyZWFkIHsgVGhyZWFkOjpjdXJyZW50KCkgfTsKKyAgICBSZWY8VGhyZWFk
PiBtX29yaWdpblRocmVhZDsKICAgICBMb2NrIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dExvY2s7
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJB
Y3RpdmVET01PYmplY3RJbmxpbmVzLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJBY3RpdmVET01PYmplY3RJbmxpbmVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjQ1NDNmOTlmYTZiYmY3
OTI4YWM1NjgyYjc5YjIxYzM2NzM0YTNjOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkFjdGl2ZURPTU9iamVjdElubGluZXMuaApAQCAtMCww
ICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJJREJBY3Rp
dmVET01PYmplY3QuaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0SW5saW5lcy5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1l
Li4uIFBhcmFtZXRlcnMsIHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4KK3ZvaWQgSURCQWN0aXZlRE9N
T2JqZWN0OjpwZXJmb3JtQ2FsbGJhY2tPbk9yaWdpblRocmVhZChUJiBvYmplY3QsIHZvaWQgKFQ6
OiptZXRob2QpKFBhcmFtZXRlcnMuLi4pLCBBcmd1bWVudHMmJi4uLiBhcmd1bWVudHMpCit7Cisg
ICAgQVNTRVJUKCZvcmlnaW5UaHJlYWQoKSA9PSAmb2JqZWN0Lm9yaWdpblRocmVhZCgpKTsKKwor
ICAgIGlmIChjYW5DdXJyZW50VGhyZWFkQWNjZXNzVGhyZWFkTG9jYWxEYXRhKG9iamVjdC5vcmln
aW5UaHJlYWQoKSkpIHsKKyAgICAgICAgKG9iamVjdC4qbWV0aG9kKShzdGQ6OmZvcndhcmQ8QXJn
dW1lbnRzPihhcmd1bWVudHMpLi4uKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIExv
Y2tlcjxMb2NrPiBsb2NrKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dExvY2spOworCisgICAgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsK
KyAgICBpZiAoIWNvbnRleHQpCisgICAgICAgIHJldHVybjsKKworICAgIGNvbnRleHQtPnBvc3RD
cm9zc1RocmVhZFRhc2sob2JqZWN0LCBtZXRob2QsIGFyZ3VtZW50cy4uLik7Cit9CisKK3ZvaWQg
SURCQWN0aXZlRE9NT2JqZWN0OjpjYWxsRnVuY3Rpb25Pbk9yaWdpblRocmVhZChXVEY6OkZ1bmN0
aW9uPHZvaWQoKT4mJiBmdW5jdGlvbikKK3sKKyAgICBpZiAoY2FuQ3VycmVudFRocmVhZEFjY2Vz
c1RocmVhZExvY2FsRGF0YShvcmlnaW5UaHJlYWQoKSkpIHsKKyAgICAgICAgZnVuY3Rpb24oKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIExvY2tlcjxMb2NrPiBsb2NrKG1fc2NyaXB0
RXhlY3V0aW9uQ29udGV4dExvY2spOworCisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKKyAgICBpZiAoIWNvbnRleHQpCisgICAg
ICAgIHJldHVybjsKKworICAgIGNvbnRleHQtPnBvc3RUYXNrKFdURk1vdmUoZnVuY3Rpb24pKTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L1RyYW5zYWN0aW9uT3BlcmF0aW9uLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvVHJhbnNhY3Rpb25PcGVyYXRpb24uaApp
bmRleCBiODI4NDg2YzBmNGFkMzI5YTgzMWMyY2ZmMWJkMmEyMzc2ZGE3ZTA5Li44NzU5ZjZjNWE5
YjQ5N2E3NTk5ZTBmZDA4ZDE4NmQyM2UxN2FhZDc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvVHJhbnNhY3Rpb25PcGVyYXRpb24uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvVHJhbnNhY3Rpb25PcGVyYXRp
b24uaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIklEQkFj
dGl2ZURPTU9iamVjdElubGluZXMuaCIKICNpbmNsdWRlICJJREJSZXF1ZXN0LmgiCiAjaW5jbHVk
ZSAiSURCUmVxdWVzdERhdGEuaCIKICNpbmNsdWRlICJJREJSZXNvdXJjZUlkZW50aWZpZXIuaCIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vz
c2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Np
b24uY3BwCmluZGV4IGZhZThlMzMwYzViYWRiZjYxMTg4MjQ4YjVhOGQ0YmRiOWQ1NDhkYzAuLmFm
ZTdjYTBiN2Q3NGI1ZTBkYzkwNDU5ZmQxNDY5ZjlkMjBkYzhhODUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmNwcApAQCAtNDEs
NiArNDEsNyBAQAogI2luY2x1ZGUgIk5hdmlnYXRvci5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNp
bmNsdWRlICJQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaCIKKyNpbmNsdWRlICJVc2VyR2Vz
dHVyZUluZGljYXRvci5oIgogI2luY2x1ZGUgPHd0Zi9KU09OVmFsdWVzLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3Vy
Y2UvTWVkaWFTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9N
ZWRpYVNvdXJjZS5jcHAKaW5kZXggMTAxZTIzM2RlYjg4OTgyMDJkYTJiNjJkZjUzMWU1OWQ0MmQx
M2E4YS4uMTZjOWQwMDRkMzI3ZDhmMmY0MzVhZTJmNzBkZDY1NWVlMzRkMmJhNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAKQEAg
LTUyLDYgKzUyLDcgQEAKICNpbmNsdWRlICJUaW1lUmFuZ2VzLmgiCiAjaW5jbHVkZSAiVmlkZW9U
cmFjay5oIgogI2luY2x1ZGUgIlZpZGVvVHJhY2tMaXN0LmgiCisjaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKaW5kZXggMTMxNzExOWMzYTc2N2Jj
NmZkOTM3ODUyMGMzODFmY2M3MWI3NWUzOS4uZTkzYjhlN2M1Y2JiZDRmZmQ1ODdkY2I3ZTg5NjFk
M2M5NjFlOGVhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbVRyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCkBAIC01MSw2ICs1MSw3IEBACiAjaW5jbHVkZSAi
U2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVk
ZSAiV2ViQXVkaW9Tb3VyY2VQcm92aWRlci5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Nv
bnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1
ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVk
Lmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0Rh
dGFDaGFubmVsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0
YUNoYW5uZWwuY3BwCmluZGV4IDJiMmQ3OWY3M2YxNzJjMDU5MWJkNWU5YTk4ZGNlMjgxODRlN2Uw
MDIuLjJlNzBhYzZjOTIwNTljNGU1ZjlhYWMwYzRmYzE3OGI4M2M2YjZjYzIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWwuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWwuY3Bw
CkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgog
I2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0FycmF5
QnVmZmVyVmlldy5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPgog
I2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4K
ICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwCmluZGV4IDg1MjVl
N2Q4OGM3Y2U1NWNjOTAxMTcwZjFkODRiYzIwNmNiNDFkMjIuLmI0YjQ2ZWZjMDRmMTFlOTU0ZWUz
ZGU4ZjdiNTNmYjZkMWQ1M2QxODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcApAQCAtNDgsNiArNDgsNyBAQAog
I2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiVXNlck1lZGlhQ29udHJvbGxlci5oIgog
I2luY2x1ZGUgIldpbmRvd0V2ZW50TG9vcC5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Nv
bnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9TY29wZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90
aWZpY2F0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3Rp
ZmljYXRpb24uY3BwCmluZGV4IGI2M2ZkMDgwNWExYjI2YzVmNzg5NDY3NTQ2YzdhMWFiYTQ5ZGEw
YTcuLjg4ODkwOGE4YTI3OTc5YTk1NDA1ZDQyZDU0ZjQ2MjY5ZTQ5NTM5NWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3Bw
CkBAIC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSAiTm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxi
YWNrLmgiCiAjaW5jbHVkZSAiV2luZG93RXZlbnRMb29wLmgiCiAjaW5jbHVkZSAiV2luZG93Rm9j
dXNBbGxvd2VkSW5kaWNhdG9yLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5
cGVzLmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3Rm
L0lzb01hbGxvY0lubGluZXMuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0LmNwcAppbmRleCBlNDRiMzFjMWU0YjA3
OGIwMzMxOGM4MjE5NmIzZWVmODcwMzE4ZWQ1Li41YTZkODVlOTk4NGFiOGNjZDAyMjUzODllNzRl
YjNiY2JjNDM0OTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRy
ZXF1ZXN0L1BheW1lbnRSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Bh
eW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0LmNwcApAQCAtNDgsNiArNDgsNyBAQAogI2luY2x1
ZGUgIlBheW1lbnRSZXF1ZXN0VXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiUGF5bWVudFZhbGlkYXRp
b25FcnJvcnMuaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCisjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNP
Tk9iamVjdC5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1Rocm93U2NvcGUuaD4KICNpbmNs
dWRlIDx3dGYvQVNDSUlDVHlwZS5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9waWN0dXJlaW5waWN0dXJlL0hUTUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGljdHVyZWlucGljdHVyZS9IVE1MVmlkZW9FbGVtZW50
UGljdHVyZUluUGljdHVyZS5jcHAKaW5kZXggYjAwOTBmYzRlNTM0MWI4NTE0MzAxNTNkZGFjOWY2
NDY4ZDU2NzNlMi4uNjVjYjZmNDRiNmRkNTlhNzg5NGI1YzUyYzI1Njg2NjBjZmJmMjEyMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9waWN0dXJlaW5waWN0dXJlL0hUTUxWaWRl
b0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3BpY3R1cmVpbnBpY3R1cmUvSFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmUuY3BwCkBA
IC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlBpY3R1cmVJ
blBpY3R1cmVTdXBwb3J0LmgiCiAjaW5jbHVkZSAiUGljdHVyZUluUGljdHVyZVdpbmRvdy5oIgor
I2luY2x1ZGUgIlVzZXJHZXN0dXJlSW5kaWNhdG9yLmgiCiAjaW5jbHVkZSAiVmlkZW9UcmFja0xp
c3QuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3JlbW90ZXBsYXliYWNrL1JlbW90ZVBsYXliYWNrLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcmVtb3RlcGxheWJhY2svUmVtb3RlUGxheWJhY2suY3Bw
CmluZGV4IDRhMTU1YjBhNDVhYTJkNTYxNjEwM2EyOTNhZWU3NDIyN2UyMGNjZjQuLjNlYjE5ZjY4
ZDM2NWYwOWJmN2ZlODU4ZWUyNGJmNWZlMjZkYzMyNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvcmVtb3RlcGxheWJhY2svUmVtb3RlUGxheWJhY2suY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvcmVtb3RlcGxheWJhY2svUmVtb3RlUGxheWJhY2suY3BwCkBAIC0z
Nyw2ICszNyw3IEBACiAjaW5jbHVkZSAiTWVkaWFFbGVtZW50U2Vzc2lvbi5oIgogI2luY2x1ZGUg
Ik1lZGlhUGxheWJhY2tUYXJnZXQuaCIKICNpbmNsdWRlICJSZW1vdGVQbGF5YmFja0F2YWlsYWJp
bGl0eUNhbGxiYWNrLmgiCisjaW5jbHVkZSAiVXNlckdlc3R1cmVJbmRpY2F0b3IuaCIKICNpbmNs
dWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmNw
cAppbmRleCA2NGUzZDE2NjgwYTNlMTI4ZDBmYjEzMzQxYzBhZTJlNTU3ZGJiYWI0Li43NjVmOWUx
YjMwNzhlY2JmOWMzYTFlN2MxN2FjMjkyMTcxNzI4OTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5jcHAKQEAgLTg3MSw3ICs4
NzEsNyBAQCBjb25zdCBTZWN1cml0eU9yaWdpbiogQmFzZUF1ZGlvQ29udGV4dDo6b3JpZ2luKCkg
Y29uc3QKICAgICByZXR1cm4gbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0ID8gbV9zY3JpcHRFeGVj
dXRpb25Db250ZXh0LT5zZWN1cml0eU9yaWdpbigpIDogbnVsbHB0cjsKIH0KIAotdm9pZCBCYXNl
QXVkaW9Db250ZXh0OjphZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVz
c2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCit2b2lkIEJhc2VBdWRpb0Nv
bnRleHQ6OmFkZENvbnNvbGVNZXNzYWdlKEpTQzo6TWVzc2FnZVNvdXJjZSBzb3VyY2UsIEpTQzo6
TWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7CiAgICAgaWYgKG1f
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCkKICAgICAgICAgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0
LT5hZGRDb25zb2xlTWVzc2FnZShzb3VyY2UsIGxldmVsLCBtZXNzYWdlKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmgKaW5kZXggNGFm
ZmFjMzNlMzQyNGMzZmFiNWFhNWIyYmVkMGQ3NDQ3NjcyMmZkNS4uMjkwMDY3YWE0NTZiNDk2ZTBk
Y2Q4MGFlZDFiZWRjMWMyOGM5MDVjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmgKQEAgLTIxNCw3ICsyMTQsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBwb3N0VGFzayhGdW5jdGlvbjx2b2lkKCk+JiYpOwogICAgIGJvb2wgaXNTdG9w
cGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc1N0b3BTY2hlZHVsZWQ7IH0KICAgICBjb25zdCBTZWN1
cml0eU9yaWdpbiogb3JpZ2luKCkgY29uc3Q7Ci0gICAgdm9pZCBhZGRDb25zb2xlTWVzc2FnZShN
ZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7CisgICAg
dm9pZCBhZGRDb25zb2xlTWVzc2FnZShKU0M6Ok1lc3NhZ2VTb3VyY2UsIEpTQzo6TWVzc2FnZUxl
dmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOwogCiAgICAgdmlydHVhbCB2b2lkIGxhenlJbml0
aWFsaXplKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
SUlSRmlsdGVyTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0lJUkZp
bHRlck5vZGUuY3BwCmluZGV4IDBlZDZlNjE3OWMwNGJhOTAzNDYxODM2ZDk0ZmU5NmFkYjAwYjdl
YjMuLjNlNjliNmYyZDMyMTgxZjAzNmNiMmY3ZTIyMDQ0NDkwNzlhYTA1ZDIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vSUlSRmlsdGVyTm9kZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9JSVJGaWx0ZXJOb2RlLmNwcApAQCAtMzEs
NiArMzEsNyBAQAogI2luY2x1ZGUgIkJhc2VBdWRpb0NvbnRleHQuaCIKICNpbmNsdWRlICJJSVJG
aWx0ZXIuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lu
bGluZXMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9Db250ZXh0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4dC5jcHAKaW5kZXggZGU1MjRk
MmY0ZjQ5MDgxMzg2ZDFlYzNmOGVjZDIyZjdmNmVkOGUwMy4uYmZhZDZiN2U1MDA3MjY5MTU4Njkw
MzYzY2I3Njk2ZWRmZjI1ZTY4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9PZmZsaW5lQXVkaW9Db250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAj
aW5jbHVkZSAiSlNBdWRpb0J1ZmZlci5oIgogI2luY2x1ZGUgIk9mZmxpbmVBdWRpb0NvbXBsZXRp
b25FdmVudC5oIgogI2luY2x1ZGUgIk9mZmxpbmVBdWRpb0NvbnRleHRPcHRpb25zLmgiCisjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL0lzb01h
bGxvY0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvU2NvcGUuaD4KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9ET01XaW5kb3dXZWJEYXRhYmFzZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RPTVdpbmRvd1dlYkRhdGFiYXNl
LmNwcAppbmRleCA4YWMyYWQ2YWY1ZTRhM2JmZjg0YzI2NzZjMGUyNGU2YmJjMmYzYjVjLi4wYmVl
YmNhMmNkYjljMmRhOTZlY2JlYjcyYzc0M2EzYmMyMDc3ODM3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RPTVdpbmRvd1dlYkRhdGFiYXNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RPTVdpbmRvd1dlYkRhdGFiYXNl
LmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkRhdGFiYXNlTWFuYWdlci5oIgogI2lu
Y2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwCmlu
ZGV4IDc3ZmZkOTMxOTdkNmUyM2JlMjAxMTBhM2UzYjkyNWU3OTdjYTJlZmYuLjJkODViZDM5ZGE2
NWI0MThjOGZkYWIzY2M1NmZlMjE1YWNiY2EwNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwCkBAIC01Myw2ICs1Myw3IEBACiAjaW5jbHVk
ZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJWb2lkQ2FsbGJhY2suaCIKICNpbmNsdWRl
ICJXaW5kb3dFdmVudExvb3AuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlw
ZXMuaD4KICNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3ll
ZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VNYW5hZ2VyLmNwcAppbmRleCA5YWYwMjNhMjBk
MjNiMDViN2M4ZWU0OTQ2NTU3YWI1NmMyMjIyMzM4Li4zNzM5NTlmY2JkN2JhMzU1ODM2OWFhNGY1
ZmU5MWMyNGMyZjU0YTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRh
dGFiYXNlL0RhdGFiYXNlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJkYXRhYmFzZS9EYXRhYmFzZU1hbmFnZXIuY3BwCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVk
ZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbkRhdGEuaCIKICNp
bmNsdWRlICJXaW5kb3dFdmVudExvb3AuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25z
b2xlVHlwZXMuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRz
L1dlYlNvY2tldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29j
a2V0LmNwcAppbmRleCA2OTQwMWEzMjgwODEzNDdhZTZjYTIzZGE2MjBiODhiODc4ZGYxNGVlLi42
ODhlNzE3NjQ3YTI0MTdiNjc2ODZkMDZhY2ZlM2ZhYjViODAwNjIyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcApAQCAtNTgsNiArNTgsNyBA
QAogI2luY2x1ZGUgIldvcmtlclRocmVhZC5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Fy
cmF5QnVmZmVyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQXJyYXlCdWZmZXJWaWV3Lmg+
CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvU2NyaXB0Q2FsbFN0YWNrLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4K
ICNpbmNsdWRlIDx3dGYvSGV4TnVtYmVyLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKaW5kZXggZjVkYzZlNzdhYWE0
ZjBkZWY2NzY4YWYyN2NjM2NjNDkwMzY4MGU0My4uM2Y2YTczZjc4MzFlNWI0ZTdjN2ZiYzUxNTQx
MWE5MWYyZWFiM2JjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2Nr
ZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
c29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcApAQCAtNTQsNiArNTQsNyBAQAogI2luY2x1ZGUg
IldlYlNvY2tldENoYW5uZWxDbGllbnQuaCIKICNpbmNsdWRlICJXZWJTb2NrZXRIYW5kc2hha2Uu
aCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9BcnJheUJ1ZmZlci5oPgorI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9GYXN0TWFsbG9jLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU3lzdGVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvV2ViWFJTeXN0ZW0uY3BwCmluZGV4IDY3NTkzMmQzOTM0YjIzN2FkYjQxZjU4YjE4
NzE4Y2NmMzM5NjliOWIuLjVmY2UwZDkxOWZmOTQxZjQyMDNjNzhiNGYxMzY3MzJjZTE5YTgxOWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJTeXN0ZW0uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJTeXN0ZW0uY3BwCkBAIC00
Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAiUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2suaCIK
ICNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlP
cmlnaW4uaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlVzZXJHZXN0dXJlSW5k
aWNhdG9yLmgiCiAjaW5jbHVkZSAiV2ViWFJTZXNzaW9uLmgiCiAjaW5jbHVkZSAiWFJSZWZlcmVu
Y2VTcGFjZVR5cGUuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NjcmlwdHMvU2V0dGlu
Z3NUZW1wbGF0ZXMvU2V0dGluZ3MuY3BwLmVyYiBiL1NvdXJjZS9XZWJDb3JlL1NjcmlwdHMvU2V0
dGluZ3NUZW1wbGF0ZXMvU2V0dGluZ3MuY3BwLmVyYgppbmRleCA3ZTkxZDM1YzM5YmU0NjIwYjcz
NGRjNjc0ZjJiMWFmNjE3YmY4MzVkLi4xMGY0NjIxYWNlMTIzNzVmMjBiODNmZWVjMzMyNjM5MGJi
OWMxMjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9TY3JpcHRzL1NldHRpbmdzVGVtcGxh
dGVzL1NldHRpbmdzLmNwcC5lcmIKKysrIGIvU291cmNlL1dlYkNvcmUvU2NyaXB0cy9TZXR0aW5n
c1RlbXBsYXRlcy9TZXR0aW5ncy5jcHAuZXJiCkBAIC03NCw3ICs3NCw3IEBAIFNldHRpbmdzOjpT
ZXR0aW5ncyhQYWdlKiBwYWdlKQogICAgIG1fcGFnZSA9IHBhZ2U7CiB9CiAKLXZvaWQgU2V0dGlu
Z3M6OlZhbHVlczo6aW5pdGlhbGl6ZSgpCit2b2lkIFNldHRpbmdzVmFsdWVzOjppbml0aWFsaXpl
KCkKIHsKIDwlLSBmb3IgQGNvbmRpdGlvbiBpbiBAYWxsU2V0dGluZ3NTZXQuY29uZGl0aW9ucyBk
byAtJT4KIDwlLSBpZiBAY29uZGl0aW9uLm5vbkJvb2xTZXR0aW5nc05lZWRpbmdJbXBsZW1lbnRh
dGlvbi5sZW5ndGggIT0gMCAtJT4KQEAgLTEwNCw3ICsxMDQsNyBAQCB2b2lkIFNldHRpbmdzOjpW
YWx1ZXM6OmluaXRpYWxpemUoKQogPCUtIGVuZCAtJT4KIH0KIAotU2V0dGluZ3M6OlZhbHVlcyBT
ZXR0aW5nczo6VmFsdWVzOjppc29sYXRlZENvcHkoKSBjb25zdAorU2V0dGluZ3NWYWx1ZXMgU2V0
dGluZ3NWYWx1ZXM6Omlzb2xhdGVkQ29weSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHsKIDwlLSBm
b3IgQHNldHRpbmcgaW4gQGFsbFNldHRpbmdzU2V0Lmluc3BlY3Rvck92ZXJyaWRlU2V0dGluZ3Mg
ZG8gLSU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9TY3JpcHRzL1NldHRpbmdzVGVtcGxh
dGVzL1NldHRpbmdzLmguZXJiIGIvU291cmNlL1dlYkNvcmUvU2NyaXB0cy9TZXR0aW5nc1RlbXBs
YXRlcy9TZXR0aW5ncy5oLmVyYgppbmRleCA2ODJhZGY3Mjg5MjA2NzAyN2RiMzFhMTJkZTIwNzU1
ZTZkZTFhMWNhLi4yOTU2MWQxOGMyOTIyOTM1ZmE2Yzc0YTZkZDZjOGE1ODJkMzViYTNmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9TY3JpcHRzL1NldHRpbmdzVGVtcGxhdGVzL1NldHRpbmdz
LmguZXJiCisrKyBiL1NvdXJjZS9XZWJDb3JlL1NjcmlwdHMvU2V0dGluZ3NUZW1wbGF0ZXMvU2V0
dGluZ3MuaC5lcmIKQEAgLTM0LDYgKzM0LDQ0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgUGFnZTsKIAorc3RydWN0IFNldHRpbmdzVmFsdWVzIHsKKyAgICB2b2lkIGluaXRpYWxpemUo
KTsKKyAgICBTZXR0aW5nc1ZhbHVlcyBpc29sYXRlZENvcHkoKSBjb25zdDsKKworPCUtIGZvciBA
c2V0dGluZyBpbiBAYWxsU2V0dGluZ3NTZXQuaW5zcGVjdG9yT3ZlcnJpZGVTZXR0aW5ncyBkbyAt
JT4KKyAgICBzdGQ6Om9wdGlvbmFsPDwlPSBAc2V0dGluZy50eXBlICU+PiA8JT0gQHNldHRpbmcu
bmFtZSAlPkluc3BlY3Rvck92ZXJyaWRlOworPCUtIGVuZCAtJT4KKworICAgIEZvbnRHZW5lcmlj
RmFtaWxpZXMgZm9udEdlbmVyaWNGYW1pbGllczsKKzwlLSBmb3IgQGNvbmRpdGlvbiBpbiBAYWxs
U2V0dGluZ3NTZXQuY29uZGl0aW9ucyBkbyAtJT4KKzwlLSBpZiBAY29uZGl0aW9uLm5vbkJvb2xT
ZXR0aW5nc05lZWRpbmdJbXBsZW1lbnRhdGlvbi5sZW5ndGggIT0gMCAtJT4KKzwlLSBpZiBAY29u
ZGl0aW9uLmNvbmRpdGlvbiAtJT4KKyNpZiA8JT0gQGNvbmRpdGlvbi5jb25kaXRpb24gJT4KKzwl
LSBlbmQgLSU+Cis8JS0gZm9yIEBzZXR0aW5nIGluIEBjb25kaXRpb24ubm9uQm9vbFNldHRpbmdz
TmVlZGluZ0ltcGxlbWVudGF0aW9uIC0lPgorICAgIDwlPSBAc2V0dGluZy50eXBlICU+IDwlPSBA
c2V0dGluZy5uYW1lICU+OworPCUtIGVuZCAtJT4KKzwlLSBpZiBAY29uZGl0aW9uLmNvbmRpdGlv
biAtJT4KKyNlbmRpZgorPCUtIGVuZCAtJT4KKzwlLSBlbmQgLSU+Cis8JS0gZW5kIC0lPgorPCUt
IGZvciBAY29uZGl0aW9uIGluIEBhbGxTZXR0aW5nc1NldC5jb25kaXRpb25zIGRvIC0lPgorPCUt
IGlmIEBjb25kaXRpb24uc2V0dGluZ3NOZWVkaW5nSW1wbGVtZW50YXRpb24ubGVuZ3RoICE9IDAg
LSU+CisgICAgPCUtIGlmIEBjb25kaXRpb24uY29uZGl0aW9uIC0lPgorI2lmIDwlPSBAY29uZGl0
aW9uLmNvbmRpdGlvbiAlPgorICAgIDwlLSBlbmQgLSU+CisgICAgPCUtIGZvciBAc2V0dGluZyBp
biBAY29uZGl0aW9uLmJvb2xTZXR0aW5nc05lZWRpbmdJbXBsZW1lbnRhdGlvbiAtJT4KKyAgICA8
JT0gQHNldHRpbmcudHlwZSAlPiA8JT0gQHNldHRpbmcubmFtZSAlPiA6IDE7CisgICAgPCUtIGVu
ZCAtJT4KKyAgICA8JS0gaWYgQGNvbmRpdGlvbi5jb25kaXRpb24gLSU+CisjZW5kaWYKKyAgICA8
JS0gZW5kIC0lPgorPCUtIGVuZCAtJT4KKzwlLSBlbmQgLSU+Cit9OworCisKIGNsYXNzIFNldHRp
bmdzIDogcHVibGljIFNldHRpbmdzQmFzZSwgcHVibGljIFJlZkNvdW50ZWQ8U2V0dGluZ3M+IHsK
ICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShTZXR0aW5ncyk7IFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwogcHVibGljOgpAQCAtNzEsNDggKzEwOSwxMiBAQCBwdWJsaWM6CiAgICAgRm9udEdlbmVy
aWNGYW1pbGllcyYgZm9udEdlbmVyaWNGYW1pbGllcygpIGZpbmFsIHsgcmV0dXJuIG1fdmFsdWVz
LmZvbnRHZW5lcmljRmFtaWxpZXM7IH0KICAgICBjb25zdCBGb250R2VuZXJpY0ZhbWlsaWVzJiBm
b250R2VuZXJpY0ZhbWlsaWVzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV92YWx1ZXMuZm9udEdl
bmVyaWNGYW1pbGllczsgfQogCi0gICAgc3RydWN0IFZhbHVlcyB7Ci0gICAgICAgIHZvaWQgaW5p
dGlhbGl6ZSgpOwotICAgICAgICBWYWx1ZXMgaXNvbGF0ZWRDb3B5KCkgY29uc3Q7Ci0KLTwlLSBm
b3IgQHNldHRpbmcgaW4gQGFsbFNldHRpbmdzU2V0Lmluc3BlY3Rvck92ZXJyaWRlU2V0dGluZ3Mg
ZG8gLSU+Ci0gICAgICAgIHN0ZDo6b3B0aW9uYWw8PCU9IEBzZXR0aW5nLnR5cGUgJT4+IDwlPSBA
c2V0dGluZy5uYW1lICU+SW5zcGVjdG9yT3ZlcnJpZGU7Ci08JS0gZW5kIC0lPgotCi0gICAgICAg
IEZvbnRHZW5lcmljRmFtaWxpZXMgZm9udEdlbmVyaWNGYW1pbGllczsKLTwlLSBmb3IgQGNvbmRp
dGlvbiBpbiBAYWxsU2V0dGluZ3NTZXQuY29uZGl0aW9ucyBkbyAtJT4KLTwlLSBpZiBAY29uZGl0
aW9uLm5vbkJvb2xTZXR0aW5nc05lZWRpbmdJbXBsZW1lbnRhdGlvbi5sZW5ndGggIT0gMCAtJT4K
LTwlLSBpZiBAY29uZGl0aW9uLmNvbmRpdGlvbiAtJT4KLSNpZiA8JT0gQGNvbmRpdGlvbi5jb25k
aXRpb24gJT4KLTwlLSBlbmQgLSU+Ci08JS0gZm9yIEBzZXR0aW5nIGluIEBjb25kaXRpb24ubm9u
Qm9vbFNldHRpbmdzTmVlZGluZ0ltcGxlbWVudGF0aW9uIC0lPgotICAgICAgICA8JT0gQHNldHRp
bmcudHlwZSAlPiA8JT0gQHNldHRpbmcubmFtZSAlPjsKLTwlLSBlbmQgLSU+Ci08JS0gaWYgQGNv
bmRpdGlvbi5jb25kaXRpb24gLSU+Ci0jZW5kaWYKLTwlLSBlbmQgLSU+Ci08JS0gZW5kIC0lPgot
PCUtIGVuZCAtJT4KLTwlLSBmb3IgQGNvbmRpdGlvbiBpbiBAYWxsU2V0dGluZ3NTZXQuY29uZGl0
aW9ucyBkbyAtJT4KLSAgICA8JS0gaWYgQGNvbmRpdGlvbi5zZXR0aW5nc05lZWRpbmdJbXBsZW1l
bnRhdGlvbi5sZW5ndGggIT0gMCAtJT4KLSAgICAgICAgPCUtIGlmIEBjb25kaXRpb24uY29uZGl0
aW9uIC0lPgotI2lmIDwlPSBAY29uZGl0aW9uLmNvbmRpdGlvbiAlPgotICAgICAgICA8JS0gZW5k
IC0lPgotICAgICAgICA8JS0gZm9yIEBzZXR0aW5nIGluIEBjb25kaXRpb24uYm9vbFNldHRpbmdz
TmVlZGluZ0ltcGxlbWVudGF0aW9uIC0lPgotICAgICAgICA8JT0gQHNldHRpbmcudHlwZSAlPiA8
JT0gQHNldHRpbmcubmFtZSAlPiA6IDE7Ci0gICAgICAgIDwlLSBlbmQgLSU+Ci0gICAgICAgIDwl
LSBpZiBAY29uZGl0aW9uLmNvbmRpdGlvbiAtJT4KLSNlbmRpZgotICAgICAgICA8JS0gZW5kIC0l
PgotICAgIDwlLSBlbmQgLSU+Ci08JS0gZW5kIC0lPgotICAgIH07Ci0gICAgY29uc3QgVmFsdWVz
JiB2YWx1ZXMoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlczsgfQorICAgIGNvbnN0IFNldHRpbmdz
VmFsdWVzJiB2YWx1ZXMoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlczsgfQogCiBwcml2YXRlOgog
ICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IFNldHRpbmdzKFBhZ2UqKTsKIAotICAgIFZhbHVl
cyBtX3ZhbHVlczsKKyAgICBTZXR0aW5nc1ZhbHVlcyBtX3ZhbHVlczsKIH07CiAKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQKaW5kZXggNDY4NTk5MzRmNjIzODJhYzY1MjVhYWNjYzQ2M2RiM2EyYWRjNDcwMi4uMzMx
YTVhYWJlZDczMTk1MjMzNjQ5ZTI1MTBkOThlODJiMTE1NmE2NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAg
LTcyLDYgKzcyLDcgQEAgTW9kdWxlcy9oaWdobGlnaHQvQXBwSGlnaGxpZ2h0UmFuZ2VEYXRhLmNw
cAogTW9kdWxlcy9oaWdobGlnaHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKIE1vZHVsZXMvaGln
aGxpZ2h0L0hpZ2hsaWdodFJlZ2lzdGVyLmNwcAogTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0
LmNwcAorTW9kdWxlcy9pbmRleGVkZGIvSURCQWN0aXZlRE9NT2JqZWN0LmNwcAogTW9kdWxlcy9p
bmRleGVkZGIvSURCQ3Vyc29yLmNwcAogTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yV2l0aFZh
bHVlLmNwcAogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3BwCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZDZjZmFmMWNk
ODM0ODY1ODAyZjMyMTBkNGU1NjY3YTg5YTM4ZDhjZC4uMWVhYjc4NDdhYjE5MGQxYjFiZGZiNjQx
NTJjNTg0NDhjNDY4N2M0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDU0NSw2ICs0NTQ1LDggQEAKIAkJQ0RFQTdDODQxMjc2
MjMwNDAwQjg0NkREIC8qIFJlbmRlckZ1bGxTY3JlZW4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERUE3QzgyMTI3NjIzMDQwMEI4NDZERCAvKiBSZW5k
ZXJGdWxsU2NyZWVuLmggKi87IH07CiAJCUNERUNBODlCMUVERjQ0N0QwMERDQjA4QiAvKiBBVkFz
c2V0VHJhY2tVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENERUNBODk5MUVERjQ0N0QwMERDQjA4QiAvKiBBVkFzc2V0VHJhY2tVdGlsaXRp
ZXMuaCAqLzsgfTsKIAkJQ0RFRDFDM0MyNENEMzA1NzAwOTM0RTEyIC8qIFZQOVV0aWxpdGllc0Nv
Y29hLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q2
RkU1QjgyNEJDRTY0NTAwOUZDREE0IC8qIFZQOVV0aWxpdGllc0NvY29hLm1tICovOyB9OworCQlD
REVEOUNDNDI3MTRDQUVFMDBFODhDQzMgLyogU2NyaXB0RXhlY3V0aW9uQ29udGV4dElubGluZXMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERUQ5Q0Mz
MjcxNENBRUUwMEU4OENDMyAvKiBTY3JpcHRFeGVjdXRpb25Db250ZXh0SW5saW5lcy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUNERUQ5Q0NBMjcx
NTYzMjMwMEU4OENDMyAvKiBJREJBY3RpdmVET01PYmplY3RJbmxpbmVzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREVEOUNDOTI3MTU2MzIzMDBFODhD
QzMgLyogSURCQWN0aXZlRE9NT2JqZWN0SW5saW5lcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNERUY0RkQ3MTdFODVDOEYwMEFFRTI0QiAvKiBH
cmlkTGVuZ3RoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDREVGNEZENjE3RTg1QzhGMDBBRUUyNEIgLyogR3JpZExlbmd0aC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNERUZBMjI4MUU3NjY5RTgwMDBB
RTk5QyAvKiBQbGF0Zm9ybUF1ZGlvRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0RFNjY3QTExRTRCQkE0RDAwRTgxNTRBIC8qIFBsYXRmb3JtQXVk
aW9EYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJQ0RFRkRBMEIyNzEyMjYzODAwNTU1OUE3IC8qIERvY3VtZW50SW5saW5lcy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFRkRBMDkyNzEyMjYzODAw
NTU1OUE3IC8qIERvY3VtZW50SW5saW5lcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CkBAIC0xNTQ0Myw2ICsxNTQ0NSw5IEBACiAJCUNERUIzRDczMjRD
NDFBNkUwMDFGQkVFRiAvKiBTb3VyY2VCdWZmZXJQYXJzZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU291
cmNlQnVmZmVyUGFyc2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERUNBODk4
MUVERjQ0N0QwMERDQjA4QiAvKiBBVkFzc2V0VHJhY2tVdGlsaXRpZXMubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBBVkFzc2V0VHJhY2tVdGlsaXRpZXMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUNERUNBODk5MUVERjQ0N0QwMERDQjA4QiAvKiBBVkFzc2V0VHJhY2tVdGlsaXRp
ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQVZBc3NldFRyYWNrVXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUNERUQ5Q0MzMjcxNENBRUUwMEU4OENDMyAvKiBTY3JpcHRFeGVj
dXRpb25Db250ZXh0SW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHRFeGVjdXRpb25Db250
ZXh0SW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREVEOUNDOTI3MTU2
MzIzMDBFODhDQzMgLyogSURCQWN0aXZlRE9NT2JqZWN0SW5saW5lcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBJREJBY3RpdmVET01PYmplY3RJbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUNERUQ5Q0NDMjcxNTYzQUQwMEU4OENDMyAvKiBJREJBY3RpdmVET01PYmplY3QuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSURCQWN0aXZlRE9NT2JqZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQ0RFRTM5MzYxNzk3NDI1OTAwMUQ3NTgwIC8qIFB1YmxpY1VSTE1hbmFn
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHVibGljVVJMTWFu
YWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERUUzOTM4MTc5NzQyNzQw
MDFENzU4MCAvKiBVUkxSZWdpc3RyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVUkxSZWdpc3RyeS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREVGNEZENjE3RTg1QzhGMDBBRUUyNEIgLyog
R3JpZExlbmd0aC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHcmlkTGVuZ3Ro
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNDQ3Nyw3ICsyNDQ4Miw5IEBACiAJ
CQkJNTEwMzEwNDIxQkE4QzY0QzAwMzMyOUMwIC8qIGNsaWVudCAqLywKIAkJCQk1MTBBNThFRTFC
QUI3MUUwMDBDMTkyODIgLyogc2VydmVyICovLAogCQkJCTUxMEE1OEUxMUJBQTQwOTgwMEMxOTI4
MiAvKiBzaGFyZWQgKi8sCisJCQkJQ0RFRDlDQ0MyNzE1NjNBRDAwRTg4Q0MzIC8qIElEQkFjdGl2
ZURPTU9iamVjdC5jcHAgKi8sCiAJCQkJNTE3MTRFQTcxQ0Y0REU4NzAwNDcyM0M0IC8qIElEQkFj
dGl2ZURPTU9iamVjdC5oICovLAorCQkJCUNERUQ5Q0M5MjcxNTYzMjMwMEU4OENDMyAvKiBJREJB
Y3RpdmVET01PYmplY3RJbmxpbmVzLmggKi8sCiAJCQkJNTE2NDVCNTQxQjlGODhFODAwRjc4OUNF
IC8qIElEQkN1cnNvci5jcHAgKi8sCiAJCQkJNTE2NDVCNDExQjlGODg5QjAwRjc4OUNFIC8qIElE
QkN1cnNvci5oICovLAogCQkJCTUxRDcxOTc3MTgxMTA2REYwMDE2REM1MSAvKiBJREJDdXJzb3Iu
aWRsICovLApAQCAtMzA4NzIsNiArMzA4NzksNyBAQAogCQkJCUUzRTRFMkE2MUUzQjE2RkMwMDIz
QkI4QSAvKiBTY3JpcHRFbGVtZW50Q2FjaGVkU2NyaXB0RmV0Y2hlci5oICovLAogCQkJCUUxMUM5
REFGMEVCMzY5OTUwMEU0MDlEQiAvKiBTY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcCAqLywKIAkJ
CQlFMTFDOUQ5QTBFQjM2ODEyMDBFNDA5REIgLyogU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oICov
LAorCQkJCUNERUQ5Q0MzMjcxNENBRUUwMEU4OENDMyAvKiBTY3JpcHRFeGVjdXRpb25Db250ZXh0
SW5saW5lcy5oICovLAogCQkJCThBNDEzQURGMTIwN0JCQTUwMDgyMDE2RSAvKiBTY3JpcHRSdW5u
ZXIuY3BwICovLAogCQkJCThBNDEzQURFMTIwN0JCQTUwMDgyMDE2RSAvKiBTY3JpcHRSdW5uZXIu
aCAqLywKIAkJCQk5NzZGMzZFODE0Njg2MjI1MDA1RTkzQjQgLyogU2VjdXJpdHlDb250ZXh0LmNw
cCAqLywKQEAgLTMzMDU3LDYgKzMzMDY1LDcgQEAKIAkJCQlCMjc1MzU2RTBCMDUzODE0MDAyQ0U2
NEYgLyogSWNvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEzRjE0NTQwQUI2MzRDNDAwMDk0RERG
IC8qIEljb25Mb2FkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNzE0RUE4MUNGNEU0QjEwMDQ3
MjNDNCAvKiBJREJBY3RpdmVET01PYmplY3QuaCBpbiBIZWFkZXJzICovLAorCQkJCUNERUQ5Q0NB
MjcxNTYzMjMwMEU4OENDMyAvKiBJREJBY3RpdmVET01PYmplY3RJbmxpbmVzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1MUJBNEFDQzFCQkM1QkREMDBERjNENkQgLyogSURCQmFja2luZ1N0b3JlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlDNTg1QTY2MzExRDRGQUM1MDA0QzNFNEIgLyogSURCQmluZGlu
Z1V0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE3QjI1QUExQ0M4MkIyQTAwNjFDMDEx
IC8qIElEQkNvbm5lY3Rpb25Qcm94eS5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNTIzMyw2ICszNTI0
Miw3IEBACiAJCQkJRTNFNEUyQTgxRTNCMTcxMDAwMjNCQjhBIC8qIFNjcmlwdEVsZW1lbnRDYWNo
ZWRTY3JpcHRGZXRjaGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTFDOUQ5QjBFQjM2ODEyMDBF
NDA5REIgLyogU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEx
MjIzQkEyNjAyNDRGRTAwQjBBMEI2IC8qIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVy
LmggaW4gSGVhZGVycyAqLywKKwkJCQlDREVEOUNDNDI3MTRDQUVFMDBFODhDQzMgLyogU2NyaXB0
RXhlY3V0aW9uQ29udGV4dElubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3MkQzRTU1MjE2
NTc4QUUwMEM1RTAyMSAvKiBTY3JpcHRNb2R1bGVMb2FkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUZEMzE2MDM2MTJCMDI2NzYwMEMxQTM1OSAvKiBTY3JpcHRQcm9jZXNzb3JOb2RlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk4QTQxM0FFMDEyMDdCQkE1MDA4MjAxNkUgLyogU2NyaXB0UnVubmVyLmgg
aW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NV2luZG93Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2lu
ZG93Q3VzdG9tLmNwcAppbmRleCA4NTkyNGE0ZjRjMTI2NDFmZmE2ZjMyNjkwZmZhMDM0NTg5ODc4
NTVhLi4xMmNmNTgwZDRlYWFlYzNjNGFlNjFkYjNjNWQwM2Q3N2MwYzE2ZTQwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCkBAIC00Nyw2
ICs0Nyw3IEBACiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJXZWJDb3JlSlNDbGll
bnREYXRhLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQnVpbHRpbk5hbWVzLmg+CisjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvSGVhcEFuYWx5emVyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW50ZXJuYWxG
dW5jdGlvbi5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lubGluZXMuaD4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKaW5kZXggYTQz
YWVlMDQ4ZjRiYzg1MDQ4Njg5ZWNmMTcxMDhjYmQ4NTE5YjZiYS4uOWRmMzI4MmJiYTkwZWE0YWFm
ODhhMGQzMTVlOTNiYjBjNjJhOGRkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvU2NyaXB0Q29udHJvbGxlci5jcHAKQEAgLTYxLDYgKzYxLDcgQEAKICNpbmNsdWRlICJXZWJD
b3JlSlNDbGllbnREYXRhLmgiCiAjaW5jbHVkZSAibnBydW50aW1lX2ltcGwuaCIKICNpbmNsdWRl
ICJydW50aW1lX3Jvb3QuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMu
aD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9EZWJ1Z2dlci5oPgogI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL0hlYXAuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Jbml0aWFsaXplVGhy
ZWFkaW5nLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRN
b2R1bGVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxl
TG9hZGVyLmNwcAppbmRleCBlODkxYmVhZTI1NDRkYzE1NzVmYTIzODk5ZDE4N2E4YTE1ZTRhNTU3
Li45Y2M1ZGU0NzZhMzc5NGUxMmQzZTE4NmZmNWIxZGYzOTNlZDkwMDNhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHAKQEAgLTQ3LDYg
KzQ3LDcgQEAKICNpbmNsdWRlICJXb3JrZXJTY3JpcHRMb2FkZXIuaCIKICNpbmNsdWRlICJXb3Jr
bGV0R2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db21wbGV0aW9uLmg+
CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvSlNJbnRlcm5hbFByb21pc2UuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9KU01vZHVsZVJlY29yZC5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTU2NyaXB0RmV0
Y2hQYXJhbWV0ZXJzLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvckpTLnBtCmluZGV4IGY4YjRhMWNlMmNjZGM4MmU2ODlmMGYzNzk2NzAzOThm
YmNkZDk1NTYuLjAyNTM2OWQ3ZTYxMGEzYTcwZWY5MjA2MDJmMmNmMzgxNDRiNmY0YjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBt
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBt
CkBAIC00MDAzLDYgKzQwMDMsNyBAQCBzdWIgR2VuZXJhdGVSdW50aW1lRW5hYmxlQ29uZGl0aW9u
YWxTdHJpbmcKICAgICAgICAgYXNzZXJ0KCJNdXN0IHNwZWNpZnkgdmFsdWUgZm9yIEVuYWJsZWRC
eVNldHRpbmcuIikgaWYgJGNvbnRleHQtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0VuYWJsZWRCeVNl
dHRpbmd9IGVxICJWQUxVRV9JU19NSVNTSU5HIjsKIAogICAgICAgICBBZGRUb0ltcGxJbmNsdWRl
cygiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIik7CisgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVz
KCJTZXR0aW5ncy5oIik7CiAKICAgICAgICAgbXkgQGZsYWdzID0gc3BsaXQoLyYvLCAkY29udGV4
dC0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57RW5hYmxlZEJ5U2V0dGluZ30pOwogICAgICAgICBmb3Jl
YWNoIG15ICRmbGFnIChAZmxhZ3MpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NvbnRl
bnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25zQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uc0JhY2tlbmQuY3BwCmluZGV4IDBi
NDAyNzI3MDVmMTEyZDU4NWRkNWY4MjIwZGYwYjVmOGIzMTIyNDQuLmMyMGQ0MTgxNWI5MWY0MmE4
NmYzZjY4NDE1YzgxMWJkMjcxODAxMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NvbnRl
bnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25zQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbnNCYWNrZW5kLmNwcApAQCAt
NDUsOSArNDUsMTAgQEAKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAi
U2NyaXB0U291cmNlQ29kZS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCi0jaW5jbHVkZSA8d3Rm
L1VSTC5oPgogI2luY2x1ZGUgIlVzZXJDb250ZW50Q29udHJvbGxlci5oIgorI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3ll
ZC5oPgorI2luY2x1ZGUgPHd0Zi9VUkwuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0
by9TdWJ0bGVDcnlwdG8uY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL1N1YnRsZUNyeXB0by5j
cHAKaW5kZXggNGZiYmU3MmUzZDlkYjI1YzU5MjE2YjU5NzkyYmY1NDc3NzQzZjk1NS4uM2VjMmNj
YzM0Yzc4NzIxNzU1OGVkZDczMTMyNDBiZGE3YjNkNzdmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3J5cHRvL1N1YnRsZUNyeXB0by5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRv
L1N1YnRsZUNyeXB0by5jcHAKQEAgLTUxLDYgKzUxLDcgQEAKICNpbmNsdWRlICJKU1JzYUtleUdl
blBhcmFtcy5oIgogI2luY2x1ZGUgIkpTUnNhT2FlcFBhcmFtcy5oIgogI2luY2x1ZGUgIkpTUnNh
UHNzUGFyYW1zLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNPTk9iamVjdC5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlLmNwcAppbmRleCAxMzQ5NDhjYmZkYjc3ZDZjMjUy
Nzc2NDE0OTFlNzlmYTEzZWM4MTVkLi4yMDQxODViNWIwZjA5Y2I3ZThmYjc5ZThkZjU4N2RiMWQ0
ZDMzYmIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZS5jcHAKQEAgLTEwMCw3ICsxMDAsNyBA
QCBSZWY8Q1NTRm9udEZhY2U+IENTU0ZvbnRGYWNlOjpjcmVhdGUoQ1NTRm9udFNlbGVjdG9yJiBm
b250U2VsZWN0b3IsIFN0eWxlUnVsZUZvbgogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLUNTU0Zv
bnRGYWNlOjpDU1NGb250RmFjZShjb25zdCBTZXR0aW5nczo6VmFsdWVzKiBzZXR0aW5ncywgU3R5
bGVSdWxlRm9udEZhY2UqIGNzc0Nvbm5lY3Rpb24sIEZvbnRGYWNlKiB3cmFwcGVyLCBib29sIGlz
TG9jYWxGYWxsYmFjaykKK0NTU0ZvbnRGYWNlOjpDU1NGb250RmFjZShjb25zdCBTZXR0aW5nc1Zh
bHVlcyogc2V0dGluZ3MsIFN0eWxlUnVsZUZvbnRGYWNlKiBjc3NDb25uZWN0aW9uLCBGb250RmFj
ZSogd3JhcHBlciwgYm9vbCBpc0xvY2FsRmFsbGJhY2spCiAgICAgOiBtX2Nzc0Nvbm5lY3Rpb24o
Y3NzQ29ubmVjdGlvbikKICAgICAsIG1fd3JhcHBlcih3cmFwcGVyKQogICAgICwgbV9pc0xvY2Fs
RmFsbGJhY2soaXNMb2NhbEZhbGxiYWNrKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0ZvbnRGYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2UuaAppbmRleCA3
ODk5M2VmZWY1N2I1ZTY3OTk2YWQxYmRhZWY4NzcxN2ZhMTYwZGU4Li4yODFhOGVhYzYyMDA3Nzk4
NmE2ZTBjMzlkZjkzNzA3YWY3ZGQ3NmJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTRm9udEZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2UuaApAQCAt
MjUsMTEgKzI1LDEyIEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiRm9udExvYWRUaW1p
bmdPdmVycmlkZS5oIgogI2luY2x1ZGUgIkZvbnRTZWxlY3Rpb25WYWx1ZUlubGluZXMuaCIKICNp
bmNsdWRlICJGb250VGFnZ2VkU2V0dGluZ3MuaCIKLSNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2lu
Y2x1ZGUgIlN0eWxlUnVsZS5oIgogI2luY2x1ZGUgIlRleHRGbGFncy5oIgorI2luY2x1ZGUgIlRp
bWVyLmgiCiAjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5j
bHVkZSA8d3RmL0hhc2hTZXQuaD4KQEAgLTU0LDYgKzU1LDggQEAgY2xhc3MgRm9udEZhY2U7CiBj
bGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogZW51bSBjbGFzcyBFeHRlcm5hbFJlc291cmNl
RG93bmxvYWRQb2xpY3k7CiAKK3N0cnVjdCBTZXR0aW5nc1ZhbHVlczsKKwogREVDTEFSRV9BTExP
Q0FUT1JfV0lUSF9IRUFQX0lERU5USUZJRVIoQ1NTRm9udEZhY2UpOwogY2xhc3MgQ1NTRm9udEZh
Y2UgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxDU1NGb250RmFjZT4gewogICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEX1dJVEhfSEVBUF9JREVOVElGSUVSKENTU0ZvbnRGYWNlKTsKQEAgLTE2
Miw3ICsxNjUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRFcnJvclN0YXRlKCk7CiAKIHByaXZh
dGU6Ci0gICAgQ1NTRm9udEZhY2UoY29uc3QgU2V0dGluZ3M6OlZhbHVlcyosIFN0eWxlUnVsZUZv
bnRGYWNlKiwgRm9udEZhY2UqLCBib29sIGlzTG9jYWxGYWxsYmFjayk7CisgICAgQ1NTRm9udEZh
Y2UoY29uc3QgU2V0dGluZ3NWYWx1ZXMqLCBTdHlsZVJ1bGVGb250RmFjZSosIEZvbnRGYWNlKiwg
Ym9vbCBpc0xvY2FsRmFsbGJhY2spOwogCiAgICAgc2l6ZV90IHB1bXAoRXh0ZXJuYWxSZXNvdXJj
ZURvd25sb2FkUG9saWN5KTsKICAgICB2b2lkIHNldFN0YXR1cyhTdGF0dXMpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRTZWxlY3Rvci5oIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0ZvbnRTZWxlY3Rvci5oCmluZGV4IGY5NzhhMTRlNDU1MWIyMGZiOTc4MWJmMWY2ODAx
YmU0ZmUyMzlhMDUuLmI3MzVkNWNiMjljZGViYmQyZjcwOGUxYzRhY2U5ZGI2ZDMyNTkxNGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250U2VsZWN0b3IuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTRm9udFNlbGVjdG9yLmgKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNs
dWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8
d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21TdHJpbmdIYXNoLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTS2V5ZnJhbWVzUnVsZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTS2V5ZnJhbWVzUnVsZS5jcHAKaW5kZXggMzY1MWVlYjNjOGU1OGE2ZGZi
ZmZmYTkxZTJlMGM5NDM3NWU1NmI0NS4uN2FlNjkwY2U2N2Q3MzFhYzY4ZjJlNzY5ZmVlY2Q5Yjg5
YmFhZWJmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0tleWZyYW1lc1J1bGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NLZXlmcmFtZXNSdWxlLmNwcApAQCAtMzIs
NiArMzIsNyBAQAogI2luY2x1ZGUgIkNTU1J1bGVMaXN0LmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVT
aGVldC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
Q29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFM
aXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUxpc3QuY3BwCmluZGV4IDNmMWE2NDQw
ZDYxMDI3YWQ1Zjc1NTA4YmVmOGRjOGIzOGZlYjVmMzYuLmJiYmViMmZiZjBlMjEzOGZkODllNDBj
ODEzZmEyZjkxM2ViYTczNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUxp
c3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUxpc3QuY3BwCkBAIC0yOCw2ICsy
OCw4IEBACiAjaW5jbHVkZSAiTWVkaWFGZWF0dXJlTmFtZXMuaCIKICNpbmNsdWRlICJNZWRpYVF1
ZXJ5LmgiCiAjaW5jbHVkZSAiTWVkaWFRdWVyeVBhcnNlci5oIgorI2luY2x1ZGUgIlNldHRpbmdz
LmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8
d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9TdHlsZVNoZWV0Q29udGVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0
eWxlU2hlZXRDb250ZW50cy5jcHAKaW5kZXggYmE0MzY1M2EwYTE2YmNhOTYwMjE2NzkyNzk1MDEy
YzNhN2MyZTE4MS4uYTk0YWQ1OGQ0MWQxYmFmYWE1MDllMGYzZWMxMTRjYWUwMzJmZmYxNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5jcHAKQEAgLTM5LDYgKzM5LDcg
QEAKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlN0eWxlUnVsZS5oIgog
I2luY2x1ZGUgIlN0eWxlUnVsZUltcG9ydC5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Nv
bnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgogI2luY2x1ZGUgPHd0Zi9OZXZl
ckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9BY3RpdmVET01PYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9BY3RpdmVE
T01PYmplY3QuaAppbmRleCAwZTc5NGEyYTA2MDllYjJlYmUzMWUzZTYzOTA1MjY1ZDJjODNhNGNm
Li5lN2FjZTRiMzU3MWFkMzE2MzRlNzkxMTY0MWUwMjIyNjNhZGMyYmY3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vQWN0aXZlRE9NT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0FjdGl2ZURPTU9iamVjdC5oCkBAIC00Miw3ICs0Miw3IEBAIGNsYXNzIEV2ZW50OwogY2xh
c3MgRXZlbnRMb29wVGFza0dyb3VwOwogY2xhc3MgRXZlbnRUYXJnZXQ7CiAKLWVudW0gY2xhc3Mg
UmVhc29uRm9yU3VzcGVuc2lvbiB7CitlbnVtIGNsYXNzIFJlYXNvbkZvclN1c3BlbnNpb24gOiB1
aW50OF90IHsKICAgICBKYXZhU2NyaXB0RGVidWdnZXJQYXVzZWQsCiAgICAgV2lsbERlZmVyTG9h
ZGluZywKICAgICBCYWNrRm9yd2FyZENhY2hlLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RldmljZU1vdGlvbkV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rp
b25FdmVudC5jcHAKaW5kZXggNGVhOGE4Y2MzYjQwY2ZmMjg3OTcyNDg0ODVhMGFmMjA1NDc4NzI5
ZC4uZWJhNjAwODY3OWE1NmQ2NTM1MjE3NmU0MjViZTRhYjUwYjEyNDQ3MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRGV2aWNlTW90aW9uRXZlbnQuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVk
ZSAiRGV2aWNlTW90aW9uRGF0YS5oIgogI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uQW5kTW90
aW9uQWNjZXNzQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgi
CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8d3Rm
L0lzb01hbGxvY0lubGluZXMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuY3BwCmluZGV4IDlhODEwNTJmNjM3Yzg4
YjZjYWU3ZGE0YWYwOGVmOGZjZjk1YThjZmQuLjMyNWExMTM5NjhkODgxZGVkMDMzNjg1ZWViOTM2
YWRjMWI5ODk4ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRh
dGlvbkV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25F
dmVudC5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkRh
dGEuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVy
cmVkLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVk
ZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAKaW5kZXggNzI0MmJjMjNkMjc1YWRkYWRmNTBkOWM2Mjk2MzdhNzFlOTYx
MjQwMi4uYjk4MWU3ODhlOWEwZjNlZmM3MjZkMjFkYjJlYzQ2ZmI2MmY5OTVlNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCkBAIC0yNzg4LDYgKzI3ODgsMTEgQEAgdm9pZCBEb2N1bWVudDo6c3Rv
cEFjdGl2ZURPTU9iamVjdHMoKQogICAgIHBsYXRmb3JtU3VzcGVuZE9yU3RvcEFjdGl2ZURPTU9i
amVjdHMoKTsKIH0KIAorY29uc3QgU2V0dGluZ3NWYWx1ZXMmIERvY3VtZW50OjpzZXR0aW5nc1Zh
bHVlcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIHNldHRpbmdzKCkudmFsdWVzKCk7Cit9CisKIHZv
aWQgRG9jdW1lbnQ6OmNsZWFyQVhPYmplY3RDYWNoZSgpCiB7CiAgICAgQVNTRVJUKCZ0b3BEb2N1
bWVudCgpID09IHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCA1NDU3NjQzNWMyMzY1Yjc4
MDIwOWZlZTE4YTEwMmYyNmI5ZTAxZjE5Li44YTkxY2UxMTNhOWQ1ZGQyYThjNzRiYzM1Y2UwMTdl
NzFhZGM3ZGJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMjUxLDYgKzI1MSw3IEBAIHN0cnVj
dCBCb3VuZGFyeVBvaW50Owogc3RydWN0IEhpZ2hsaWdodFJhbmdlRGF0YTsKIHN0cnVjdCBJbnRl
cnNlY3Rpb25PYnNlcnZlckRhdGE7CiBzdHJ1Y3QgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVu
dEluaXQ7CitzdHJ1Y3QgU2V0dGluZ3NWYWx1ZXM7CiAKIHRlbXBsYXRlPHR5cGVuYW1lPiBjbGFz
cyBFeGNlcHRpb25PcjsKIApAQCAtNjM5LDcgKzY0MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJl
c3VtZUFjdGl2ZURPTU9iamVjdHMoUmVhc29uRm9yU3VzcGVuc2lvbikgZmluYWw7CiAgICAgdm9p
ZCBzdG9wQWN0aXZlRE9NT2JqZWN0cygpIGZpbmFsOwogCi0gICAgY29uc3QgU2V0dGluZ3M6OlZh
bHVlcyYgc2V0dGluZ3NWYWx1ZXMoKSBjb25zdCBmaW5hbCB7IHJldHVybiBzZXR0aW5ncygpLnZh
bHVlcygpOyB9CisgICAgY29uc3QgU2V0dGluZ3NWYWx1ZXMmIHNldHRpbmdzVmFsdWVzKCkgY29u
c3QgZmluYWw7CiAKICAgICB2b2lkIHN1c3BlbmREZXZpY2VNb3Rpb25BbmRPcmllbnRhdGlvblVw
ZGF0ZXMoKTsKICAgICB2b2lkIHJlc3VtZURldmljZU1vdGlvbkFuZE9yaWVudGF0aW9uVXBkYXRl
cygpOwpAQCAtMTM2OSwxMSArMTM3MCwxMSBAQCBwdWJsaWM6CiAKICAgICAvLyBUaGUgZm9sbG93
aW5nIGFkZENvbnNvbGVNZXNzYWdlIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQuCiAgICAgLy8gQ2Fs
bGVycyBzaG91bGQgdHJ5IHRvIGNyZWF0ZSB0aGUgQ29uc29sZU1lc3NhZ2UgdGhlbXNlbHZlcy4K
LSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2Us
IE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsb25nIHJlcXVl
c3RJZGVudGlmaWVyID0gMCkgZmluYWw7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhZGRDb25z
b2xlTWVzc2FnZShKU0M6Ok1lc3NhZ2VTb3VyY2UsIEpTQzo6TWVzc2FnZUxldmVsLCBjb25zdCBT
dHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAwKSBmaW5h
bDsKIAogICAgIC8vIFRoZSBmb2xsb3dpbmcgYWRkTWVzc2FnZSBmdW5jdGlvbiBpcyBkZXByZWNh
dGVkLgogICAgIC8vIENhbGxlcnMgc2hvdWxkIHRyeSB0byBjcmVhdGUgdGhlIENvbnNvbGVNZXNz
YWdlIHRoZW1zZWx2ZXMuCi0gICAgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3Nh
Z2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwg
dW5zaWduZWQgbGluZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBSZWZQdHI8SW5zcGVj
dG9yOjpTY3JpcHRDYWxsU3RhY2s+JiYsIEpTQzo6SlNHbG9iYWxPYmplY3QqID0gbnVsbHB0ciwg
dW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApIGZpbmFsOworICAgIHZvaWQgYWRk
TWVzc2FnZShKU0M6Ok1lc3NhZ2VTb3VyY2UsIEpTQzo6TWVzc2FnZUxldmVsLCBjb25zdCBTdHJp
bmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCB1bnNpZ25lZCBsaW5lTnVtYmVy
LCB1bnNpZ25lZCBjb2x1bW5OdW1iZXIsIFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdENhbGxTdGFj
az4mJiwgSlNDOjpKU0dsb2JhbE9iamVjdCogPSBudWxscHRyLCB1bnNpZ25lZCBsb25nIHJlcXVl
c3RJZGVudGlmaWVyID0gMCkgZmluYWw7CiAKICAgICBTZWN1cml0eU9yaWdpbiYgc2VjdXJpdHlP
cmlnaW4oKSBjb25zdCB7IHJldHVybiAqU2VjdXJpdHlDb250ZXh0OjpzZWN1cml0eU9yaWdpbigp
OyB9CiAgICAgU2VjdXJpdHlPcmlnaW4mIHRvcE9yaWdpbigpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IHRvcERvY3VtZW50KCkuc2VjdXJpdHlPcmlnaW4oKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0VtcHR5U2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0VtcHR5U2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCmluZGV4IDIzMWIzYmYxY2E5ODFjMjJl
OTgwMzAyOWViMjAxNmFmNzNiMjJhODEuLjNlMzFlMGZlOWJkOGQzYWY5ZDE3MDlhMGMyMjA1MTQ4
MDY2Yzk2ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbXB0eVNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRW1wdHlTY3JpcHRFeGVjdXRp
b25Db250ZXh0LmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJSZWZlcnJlclBvbGljeS5o
IgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJTZWN1cml0
eU9yaWdpbi5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAKICNpbmNsdWRlIDx3dGYvSXNvTWFs
bG9jLmg+CiAKQEAgLTkyLDcgKzkzLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlZlNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSBmaW5hbCB7IHJlZigpOyB9OwogICAgIHZvaWQgZGVyZWZTY3JpcHRF
eGVjdXRpb25Db250ZXh0KCkgZmluYWwgeyBkZXJlZigpOyB9OwogCi0gICAgY29uc3QgU2V0dGlu
Z3M6OlZhbHVlcyYgc2V0dGluZ3NWYWx1ZXMoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3NldHRp
bmdzVmFsdWVzOyB9CisgICAgY29uc3QgU2V0dGluZ3NWYWx1ZXMmIHNldHRpbmdzVmFsdWVzKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gbV9zZXR0aW5nc1ZhbHVlczsgfQogCiAgICAgY2xhc3MgRW1w
dHlFdmVudExvb3AgZmluYWwgOiBwdWJsaWMgRXZlbnRMb29wIHsKICAgICBwdWJsaWM6CkBAIC0x
MjAsNyArMTIxLDcgQEAgcHJpdmF0ZToKICAgICBVUkwgbV91cmw7CiAgICAgUmVmPEVtcHR5RXZl
bnRMb29wPiBtX2V2ZW50TG9vcDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RXZlbnRMb29wVGFza0dy
b3VwPiBtX2V2ZW50TG9vcFRhc2tHcm91cDsKLSAgICBTZXR0aW5nczo6VmFsdWVzIG1fc2V0dGlu
Z3NWYWx1ZXM7CisgICAgU2V0dGluZ3NWYWx1ZXMgbV9zZXR0aW5nc1ZhbHVlczsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9GdWxs
c2NyZWVuTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRnVsbHNjcmVlbk1hbmFnZXIu
Y3BwCmluZGV4IGI1NDFmYTdjZGExM2IzOTM4YTRjMjdhN2U3NTk0MDQ3ZmE1ZGNiMmYuLmMwNzAw
NjM3OGU5YmE2MzZjNDBmY2FmNjE4MWQwZGY2YzVlY2EwNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9GdWxsc2NyZWVuTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcApAQCAtNDIsNiArNDIsOCBAQAogI2luY2x1ZGUgIlJlbmRl
ckZ1bGxTY3JlZW4uaCIKICNpbmNsdWRlICJSZW5kZXJUcmVlQnVpbGRlci5oIgogI2luY2x1ZGUg
IlNldHRpbmdzLmgiCisjaW5jbHVkZSAiVXNlckdlc3R1cmVJbmRpY2F0b3IuaCIKKyNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMuaD4KICNpbmNsdWRlIDx3dGYvTG9nZ2VySGVs
cGVyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Mb2FkYWJsZUNsYXNzaWNTY3JpcHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0xvYWRh
YmxlQ2xhc3NpY1NjcmlwdC5jcHAKaW5kZXggOGY0NmVkODY4YzM4MWJhMGFmNzVlYzYxMDU3NGE1
NWNkMjA0ZmQ4NC4uZjdmOWUxOWU1NmQ2NmQxY2IyMDQ4YWFmNGE5MWE1YzFjOTQ4YzI3ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0xvYWRhYmxlQ2xhc3NpY1NjcmlwdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0xvYWRhYmxlQ2xhc3NpY1NjcmlwdC5jcHAKQEAgLTMxLDYg
KzMxLDcgQEAKICNpbmNsdWRlICJTY3JpcHRFbGVtZW50LmgiCiAjaW5jbHVkZSAiU2NyaXB0U291
cmNlQ29kZS5oIgogI2luY2x1ZGUgIlN1YnJlc291cmNlSW50ZWdyaXR5LmgiCisjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJv
eWVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSW1wbC5oPgogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW91
c2VFdmVudC5jcHAKaW5kZXggZGFjM2UwODhkOWE1ZDNiNzY4N2Q0ZGIxY2VmYjJkNWViOGIwZTBm
Mi4uMmEwOTc2YjIzZDNjYTY3ZDQ2MzJiYmNmNDMyMzNkOTc2ZTcyN2ZiMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Nb3VzZUV2ZW50LmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIlBsYXRmb3JtTW91
c2VFdmVudC5oIgogI2luY2x1ZGUgIlJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oIgogI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL0NhbGxGcmFtZS5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L0NvbnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTR2xvYmFsT2JqZWN0
SW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TY3JpcHRFbGVtZW50LmNwcAppbmRleCBjNGYyOTU5OTkzOWVjMTY4MzJjNmRmNmMwY2Vj
MDIwYmNkNDI1MGI0Li5lMzI2YjQ4Yjc2NzRmYjkxZjc5NTg3YmZlMGU5OTA1NTc4NDVhOTFjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCkBAIC01Niw2ICs1Niw3IEBACiAjaW5j
bHVkZSAiU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIK
ICNpbmNsdWRlICJUZXh0Tm9kZVRyYXZlcnNhbC5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L0NvbnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9Tb3J0ZWRBcnJheU1hcC5oPgogI2luY2x1
ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvU3lzdGVtVHJhY2luZy5oPgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwCmluZGV4IGQy
NGIwMWI3NzM2YzVjYjU4ZjY5YTdkOThkNmM0YjcwYjY0OThiYzMuLmMzMGJjNmQ0ZTQ0ODI5YTc1
NjFkZjE4YjY3MjQ2NWJhZjk2MmQ4OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9T
Y3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0
RXhlY3V0aW9uQ29udGV4dC5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAKKyNpbmNsdWRlICJBY3Rp
dmVET01PYmplY3QuaCIKICNpbmNsdWRlICJDU1NWYWx1ZVBvb2wuaCIKICNpbmNsdWRlICJDYWNo
ZWRTY3JpcHQuaCIKICNpbmNsdWRlICJDb21tb25WTS5oIgpAQCAtNzEsNiArNzIsNyBAQAogI2lu
Y2x1ZGUgIldvcmtlclRocmVhZC5oIgogI2luY2x1ZGUgIldvcmtsZXRHbG9iYWxTY29wZS5oIgog
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NhdGNoU2NvcGUuaD4KKyNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9Db25zb2xlVHlwZXMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9EZWZlcnJl
ZFdvcmtUaW1lci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0V4Y2VwdGlvbi5oPgogI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTUHJvbWlzZS5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9T
Y3JpcHRFeGVjdXRpb25Db250ZXh0LmgKaW5kZXggMTZjODY2ZjM5NDg2YWRkMWVkYTNkYTMyMGI1
MTA0NmQyNWMzMDQ1ZS4uOGMyNDY0ZWJlNGYzZGJkMmU0MDI3YTE1OWJjNWI2MjI3YWQwNGQ2YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCkBAIC0yNywx
NiArMjcsMTAgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJBY3RpdmVET01PYmplY3Qu
aCIKICNpbmNsdWRlICJDcm9zc09yaWdpbk1vZGUuaCIKLSNpbmNsdWRlICJET01UaW1lci5oIgog
I2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAi
U2VjdXJpdHlDb250ZXh0LmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlcklkZW50aWZpZXIuaCIK
LSNpbmNsdWRlICJTZXR0aW5ncy5oIgotI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVU
eXBlcy5oPgotI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hhbmRsZVR5cGVzLmg+Ci0jaW5jbHVk
ZSA8d3RmL0Nyb3NzVGhyZWFkVGFzay5oPgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogI2lu
Y2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZpZXIuaD4K
QEAgLTQ2LDkgKzQwLDEyIEBACiBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIENhbGxGcmFtZTsKIGNs
YXNzIEV4Y2VwdGlvbjsKK2NsYXNzIEpTR2xvYmFsT2JqZWN0OwogY2xhc3MgSlNQcm9taXNlOwog
Y2xhc3MgVk07CiBlbnVtIGNsYXNzIFNjcmlwdEV4ZWN1dGlvblN0YXR1czsKK2VudW0gY2xhc3Mg
TWVzc2FnZVNvdXJjZSA6IHVpbnQ4X3Q7CitlbnVtIGNsYXNzIE1lc3NhZ2VMZXZlbCA6IHVpbnQ4
X3Q7CiB9CiAKIG5hbWVzcGFjZSBJbnNwZWN0b3IgewpAQCAtNTcsMTEgKzU0LDE1IEBAIGNsYXNz
IFNjcmlwdENhbGxTdGFjazsKIH0KIAogbmFtZXNwYWNlIFdlYkNvcmUgeworc3RydWN0IFNldHRp
bmdzVmFsdWVzOwogCitjbGFzcyBBY3RpdmVET01PYmplY3Q7CiBjbGFzcyBFdmVudExvb3A7CiBj
bGFzcyBDYWNoZWRTY3JpcHQ7CiBjbGFzcyBDU1NGb250U2VsZWN0b3I7CiBjbGFzcyBDU1NWYWx1
ZVBvb2w7CitjbGFzcyBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcjsKK2NsYXNzIERPTVRpbWVy
OwogY2xhc3MgRGF0YWJhc2VDb250ZXh0OwogY2xhc3MgRXZlbnRRdWV1ZTsKIGNsYXNzIEV2ZW50
TG9vcFRhc2tHcm91cDsKQEAgLTc1LDkgKzc2LDExIEBAIGNsYXNzIFJlamVjdGVkUHJvbWlzZVRy
YWNrZXI7CiBjbGFzcyBSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uOwogY2xh
c3MgUmVzb3VyY2VSZXF1ZXN0OwogY2xhc3MgU29ja2V0UHJvdmlkZXI7CisKIGVudW0gY2xhc3Mg
TG9hZGVkRnJvbU9wYXF1ZVNvdXJjZSA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFJlZmVycmVyUG9s
aWN5IDogdWludDhfdDsKIGVudW0gY2xhc3MgVGFza1NvdXJjZSA6IHVpbnQ4X3Q7CitlbnVtIGNs
YXNzIFJlYXNvbkZvclN1c3BlbnNpb24gOiB1aW50OF90OwogCiAjaWYgRU5BQkxFKFNFUlZJQ0Vf
V09SS0VSKQogY2xhc3MgU2VydmljZVdvcmtlcjsKQEAgLTExMCw3ICsxMTMsNyBAQCBwdWJsaWM6
CiAKICAgICB2aXJ0dWFsIFJlZmVycmVyUG9saWN5IHJlZmVycmVyUG9saWN5KCkgY29uc3QgPSAw
OwogCi0gICAgdmlydHVhbCBjb25zdCBTZXR0aW5nczo6VmFsdWVzJiBzZXR0aW5nc1ZhbHVlcygp
IGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGNvbnN0IFNldHRpbmdzVmFsdWVzJiBzZXR0aW5nc1Zh
bHVlcygpIGNvbnN0ID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlRXZhbChjb25zdCBT
dHJpbmcmIGVycm9yTWVzc2FnZSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlV2ViQXNz
ZW1ibHkoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpID0gMDsKQEAgLTEzMiw4ICsxMzUsOCBA
QCBwdWJsaWM6CiAKICAgICAvLyBUaGUgZm9sbG93aW5nIGFkZENvbnNvbGVNZXNzYWdlIGZ1bmN0
aW9ucyBhcmUgZGVwcmVjYXRlZC4KICAgICAvLyBDYWxsZXJzIHNob3VsZCB0cnkgdG8gY3JlYXRl
IHRoZSBDb25zb2xlTWVzc2FnZSB0aGVtc2VsdmVzLgotICAgIHZvaWQgYWRkQ29uc29sZU1lc3Nh
Z2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNv
bnN0IFN0cmluZyYgc291cmNlVVJMLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBjb2x1
bW5OdW1iZXIsIEpTQzo6SlNHbG9iYWxPYmplY3QqID0gbnVsbHB0ciwgdW5zaWduZWQgbG9uZyBy
ZXF1ZXN0SWRlbnRpZmllciA9IDApOwotICAgIHZpcnR1YWwgdm9pZCBhZGRDb25zb2xlTWVzc2Fn
ZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5z
aWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApID0gMDsKKyAgICB2b2lkIGFkZENvbnNv
bGVNZXNzYWdlKEpTQzo6TWVzc2FnZVNvdXJjZSwgSlNDOjpNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0
cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIHVuc2lnbmVkIGxpbmVOdW1i
ZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlciwgSlNDOjpKU0dsb2JhbE9iamVjdCogPSBudWxscHRy
LCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyID0gMCk7CisgICAgdmlydHVhbCB2b2lk
IGFkZENvbnNvbGVNZXNzYWdlKEpTQzo6TWVzc2FnZVNvdXJjZSwgSlNDOjpNZXNzYWdlTGV2ZWws
IGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9
IDApID0gMDsKIAogICAgIHZpcnR1YWwgU2VjdXJpdHlPcmlnaW4mIHRvcE9yaWdpbigpIGNvbnN0
ID0gMDsKIApAQCAtMjE2LDE5ICsyMTksMTQgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBw
b3N0VGFzayhUYXNrJiYpID0gMDsgLy8gRXhlY3V0ZXMgdGhlIHRhc2sgb24gY29udGV4dCdzIHRo
cmVhZCBhc3luY2hyb25vdXNseS4KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3VtZW50
cz4KLSAgICB2b2lkIHBvc3RDcm9zc1RocmVhZFRhc2soQXJndW1lbnRzJiYuLi4gYXJndW1lbnRz
KQotICAgIHsKLSAgICAgICAgcG9zdFRhc2soW2Nyb3NzVGhyZWFkVGFzayA9IGNyZWF0ZUNyb3Nz
VGhyZWFkVGFzayhhcmd1bWVudHMuLi4pXShTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgbXV0YWJs
ZSB7Ci0gICAgICAgICAgICBjcm9zc1RocmVhZFRhc2sucGVyZm9ybVRhc2soKTsKLSAgICAgICAg
fSk7Ci0gICAgfQorICAgIGlubGluZSB2b2lkIHBvc3RDcm9zc1RocmVhZFRhc2soQXJndW1lbnRz
JiYuLi4pOwogCiAgICAgLy8gR2V0cyB0aGUgbmV4dCBpZCBpbiBhIGNpcmN1bGFyIHNlcXVlbmNl
IGZyb20gMSB0byAyXjMxLTEuCiAgICAgaW50IGNpcmN1bGFyU2VxdWVudGlhbElEKCk7CiAKLSAg
ICBib29sIGFkZFRpbWVvdXQoaW50IHRpbWVvdXRJZCwgRE9NVGltZXImIHRpbWVyKSB7IHJldHVy
biBtX3RpbWVvdXRzLmFkZCh0aW1lb3V0SWQsIHRpbWVyKS5pc05ld0VudHJ5OyB9Ci0gICAgdm9p
ZCByZW1vdmVUaW1lb3V0KGludCB0aW1lb3V0SWQpIHsgbV90aW1lb3V0cy5yZW1vdmUodGltZW91
dElkKTsgfQotICAgIERPTVRpbWVyKiBmaW5kVGltZW91dChpbnQgdGltZW91dElkKSB7IHJldHVy
biBtX3RpbWVvdXRzLmdldCh0aW1lb3V0SWQpOyB9CisgICAgaW5saW5lIGJvb2wgYWRkVGltZW91
dChpbnQgdGltZW91dElkLCBET01UaW1lciYpOworICAgIGlubGluZSB2b2lkIHJlbW92ZVRpbWVv
dXQoaW50IHRpbWVvdXRJZCk7CisgICAgaW5saW5lIERPTVRpbWVyKiBmaW5kVGltZW91dChpbnQg
dGltZW91dElkKTsKIAogICAgIHZpcnR1YWwgSlNDOjpWTSYgdm0oKSA9IDA7CiAKQEAgLTI4NCwy
MiArMjgyLDcgQEAgcHVibGljOgogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVy
IGNvbnRleHRJZGVudGlmaWVyKCkgY29uc3Q7CiAKIHByb3RlY3RlZDoKLSAgICBjbGFzcyBBZGRD
b25zb2xlTWVzc2FnZVRhc2sgOiBwdWJsaWMgVGFzayB7Ci0gICAgcHVibGljOgotICAgICAgICBB
ZGRDb25zb2xlTWVzc2FnZVRhc2soc3RkOjp1bmlxdWVfcHRyPEluc3BlY3Rvcjo6Q29uc29sZU1l
c3NhZ2U+JiYgY29uc29sZU1lc3NhZ2UpCi0gICAgICAgICAgICA6IFRhc2soWyZjb25zb2xlTWVz
c2FnZV0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkgewotICAgICAgICAgICAgICAg
IGNvbnRleHQuYWRkQ29uc29sZU1lc3NhZ2UoV1RGTW92ZShjb25zb2xlTWVzc2FnZSkpOwotICAg
ICAgICAgICAgfSkKLSAgICAgICAgewotICAgICAgICB9Ci0KLSAgICAgICAgQWRkQ29uc29sZU1l
c3NhZ2VUYXNrKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0
IFN0cmluZyYgbWVzc2FnZSkKLSAgICAgICAgICAgIDogVGFzayhbc291cmNlLCBsZXZlbCwgbWVz
c2FnZSA9IG1lc3NhZ2UuaXNvbGF0ZWRDb3B5KCldKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNv
bnRleHQpIHsKLSAgICAgICAgICAgICAgICBjb250ZXh0LmFkZENvbnNvbGVNZXNzYWdlKHNvdXJj
ZSwgbGV2ZWwsIG1lc3NhZ2UpOwotICAgICAgICAgICAgfSkKLSAgICAgICAgewotICAgICAgICB9
Ci0gICAgfTsKKyAgICBjbGFzcyBBZGRDb25zb2xlTWVzc2FnZVRhc2s7CiAKICAgICBSZWFzb25G
b3JTdXNwZW5zaW9uIHJlYXNvbkZvclN1c3BlbmRpbmdBY3RpdmVET01PYmplY3RzKCkgY29uc3Qg
eyByZXR1cm4gbV9yZWFzb25Gb3JTdXNwZW5kaW5nQWN0aXZlRE9NT2JqZWN0czsgfQogCkBAIC0z
MTAsNyArMjkzLDcgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICAvLyBUaGUgZm9sbG93aW5n
IGFkZE1lc3NhZ2UgZnVuY3Rpb24gaXMgZGVwcmVjYXRlZC4KICAgICAvLyBDYWxsZXJzIHNob3Vs
ZCB0cnkgdG8gY3JlYXRlIHRoZSBDb25zb2xlTWVzc2FnZSB0aGVtc2VsdmVzLgotICAgIHZpcnR1
YWwgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgdW5zaWduZWQgbGluZU51bWJl
ciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRDYWxsU3Rh
Y2s+JiYsIEpTQzo6SlNHbG9iYWxPYmplY3QqID0gbnVsbHB0ciwgdW5zaWduZWQgbG9uZyByZXF1
ZXN0SWRlbnRpZmllciA9IDApID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkTWVzc2FnZShKU0M6
Ok1lc3NhZ2VTb3VyY2UsIEpTQzo6TWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2Us
IGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBj
b2x1bW5OdW1iZXIsIFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdENhbGxTdGFjaz4mJiwgSlNDOjpK
U0dsb2JhbE9iamVjdCogPSBudWxscHRyLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVy
ID0gMCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBsb2dFeGNlcHRpb25Ub0NvbnNvbGUoY29uc3Qg
U3RyaW5nJiBlcnJvck1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCBpbnQgbGluZU51
bWJlciwgaW50IGNvbHVtbk51bWJlciwgUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0Q2FsbFN0YWNr
PiYmKSA9IDA7CiAgICAgYm9vbCBkaXNwYXRjaEVycm9yRXZlbnQoY29uc3QgU3RyaW5nJiBlcnJv
ck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBpbnQgY29sdW1uTnVtYmVyLCBjb25zdCBTdHJpbmcm
IHNvdXJjZVVSTCwgSlNDOjpFeGNlcHRpb24qLCBDYWNoZWRTY3JpcHQqKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHRJbmxpbmVzLmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dElubGluZXMuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5lODE0ZmYzN2NiODkzZDljYmExMjI2MTUxMDNkMDI0OGUyOWFiMDgyCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHRJbmxpbmVz
LmgKQEAgLTAsMCArMSw3NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVk
ZSAiRE9NVGltZXIuaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CisjaW5jbHVkZSA8d3RmL0Nyb3Nz
VGhyZWFkVGFzay5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2lubGluZSBib29sIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQ6OmFkZFRpbWVvdXQoaW50IHRpbWVvdXRJZCwgRE9NVGltZXImIHRp
bWVyKQoreworICAgIHJldHVybiBtX3RpbWVvdXRzLmFkZCh0aW1lb3V0SWQsIHRpbWVyKS5pc05l
d0VudHJ5OworfQorCitpbmxpbmUgdm9pZCBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpyZW1vdmVU
aW1lb3V0KGludCB0aW1lb3V0SWQpCit7CisgICAgbV90aW1lb3V0cy5yZW1vdmUodGltZW91dElk
KTsKK30KKworaW5saW5lIERPTVRpbWVyKiBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpmaW5kVGlt
ZW91dChpbnQgdGltZW91dElkKQoreworICAgIHJldHVybiBtX3RpbWVvdXRzLmdldCh0aW1lb3V0
SWQpOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmd1bWVudHM+CitpbmxpbmUgdm9pZCBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0Ojpwb3N0Q3Jvc3NUaHJlYWRUYXNrKEFyZ3VtZW50cyYmLi4u
IGFyZ3VtZW50cykKK3sKKyAgICBwb3N0VGFzayhbY3Jvc3NUaHJlYWRUYXNrID0gY3JlYXRlQ3Jv
c3NUaHJlYWRUYXNrKGFyZ3VtZW50cy4uLildKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSBtdXRh
YmxlIHsKKyAgICAgICAgY3Jvc3NUaHJlYWRUYXNrLnBlcmZvcm1UYXNrKCk7CisgICAgfSk7Cit9
CisKK2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OkFkZENvbnNvbGVNZXNzYWdlVGFzayA6
IHB1YmxpYyBUYXNrIHsKK3B1YmxpYzoKKyAgICBBZGRDb25zb2xlTWVzc2FnZVRhc2soc3RkOjp1
bmlxdWVfcHRyPEluc3BlY3Rvcjo6Q29uc29sZU1lc3NhZ2U+JiYgY29uc29sZU1lc3NhZ2UpCisg
ICAgICAgIDogVGFzayhbJmNvbnNvbGVNZXNzYWdlXShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBj
b250ZXh0KSB7CisgICAgICAgICAgICBjb250ZXh0LmFkZENvbnNvbGVNZXNzYWdlKFdURk1vdmUo
Y29uc29sZU1lc3NhZ2UpKTsKKyAgICAgICAgfSkKKyAgICB7CisgICAgfQorCisgICAgQWRkQ29u
c29sZU1lc3NhZ2VUYXNrKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWws
IGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKKyAgICAgICAgOiBUYXNrKFtzb3VyY2UsIGxldmVsLCBt
ZXNzYWdlID0gbWVzc2FnZS5pc29sYXRlZENvcHkoKV0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYg
Y29udGV4dCkgeworICAgICAgICAgICAgY29udGV4dC5hZGRDb25zb2xlTWVzc2FnZShzb3VyY2Us
IGxldmVsLCBtZXNzYWdlKTsKKyAgICAgICAgfSkKKyAgICB7CisgICAgfQorfTsKKworfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9WaWV3cG9ydEFyZ3VtZW50cy5jcHAKaW5kZXggNzNkZjk0YzQ2NGY5ZWU0
Y2NiZjM1OTEyNjg1YzllMGMwNzliMGE2Yi4uNDM4NzViZDBjZTdlOTQyMTJhYmFmMjZiYjFmNDlj
ZTE3MjgxNGUyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1ZpZXdwb3J0QXJndW1l
bnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVmlld3BvcnRBcmd1bWVudHMuY3BwCkBA
IC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiSW50U2l6ZS5oIgogI2luY2x1ZGUgIlNjcmlwdGFi
bGVEb2N1bWVudFBhcnNlci5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0cmVh
bS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9m
aWxlYXBpL0Jsb2IuaCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvQmxvYi5oCmluZGV4IDI2OGYy
YzZkNGFlOTE0YWVhNDNmNDRmNzgyMTI0YmQzYjE4ZTM5ZTUuLjY5NWNhZThmMjEyZTA5YWY1ZThh
MWU3YmEzNzM3Zjk1NGVlZjBlMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkv
QmxvYi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvQmxvYi5oCkBAIC0zMSw2ICszMSw3
IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCiAjaW5j
bHVkZSAiQmxvYlByb3BlcnR5QmFnLmgiCiAjaW5jbHVkZSAiQmxvYlVSTC5oIgogI2luY2x1ZGUg
IkZpbGVSZWFkZXJMb2FkZXIuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEFuY2hvckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVu
dC5jcHAKaW5kZXggN2QzNjBkOTkxN2Q3YWE3ZjUzMzczMDQzMDNjMDBlMTE3ODZmYWFmNi4uY2Vl
YmFiZGUzYmRlNjMyMGZmMTBmMzY0OWU4NDk2M2FmYzExMTZiZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKQEAgLTU1LDYgKzU1LDcgQEAKICNpbmNsdWRlICJT
ZWN1cml0eVBvbGljeS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiVXNlckdl
c3R1cmVJbmRpY2F0b3IuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMu
aD4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9XZWFr
SGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKaW5kZXggODkxMGU3NTE5MTI1MTEyMjVj
NThlZGJmMjZjZDIxNzMyZTYxZjdhZS4uNmYwYTUyZGM0MGNjMzZiMTA4YjBmYzgwMjM4MzAyNWI4
ZWEyNDBlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKQEAg
LTYyLDYgKzYyLDcgQEAKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAi
U2V0dGluZ3MuaCIKICNpbmNsdWRlICJTdHJpbmdBZGFwdG9ycy5oIgorI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lu
bGluZXMuaD4KICNpbmNsdWRlIDxtYXRoLmg+CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGlu
ZXMuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaAppbmRleCA0YjNkODYw
MWI0NDk2NjZiNWRhYzBjYWQ0MGM5OGI4MTBlOGMxNGE3Li5lY2IzNTZmOGE5NTJmNDlkMDUyMTRm
NTUyODNiNGFmNGQ3NzVjOGM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxD
YW52YXNFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVu
dC5oCkBAIC0zOSw2ICszOSwxMSBAQAogI2luY2x1ZGUgIldlYkdMQ29udGV4dEF0dHJpYnV0ZXMu
aCIKICNlbmRpZgogCituYW1lc3BhY2UgSlNDIHsKK2NsYXNzIEpTVmFsdWU7CitlbnVtIGNsYXNz
IFVua25vd247Cit9CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQmxvYkNhbGxiYWNr
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAppbmRleCBjOTM1ZWUxZDcyNzJjNjc0ZTcx
NWVmYmY2ZWY1MGZhMGNhOWVjZjA5Li4zODU3MjljMjlmMGY4NDA3OGFmODQxOTNkMzllMDdkOGIz
YjQ0MTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcApAQCAtNjYsNiArNjYsNyBA
QAogI2luY2x1ZGUgIlJlbmRlckltYWdlLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5o
IgogI2luY2x1ZGUgIlNjcmlwdERpc2FsbG93ZWRTY29wZS5oIgorI2luY2x1ZGUgIlNldHRpbmdz
LmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgogI2luY2x1ZGUgIlNpbXVsYXRlZENsaWNrLmgi
CiAjaW5jbHVkZSAiU3R5bGVQcm9wZXJ0aWVzLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRleCA3ODAwMGNkNWZjOWZmOTk1MTQ1ZDM2YmJh
Y2Q3M2NiMjM5N2JjN2QzLi5hZTM0Y2JlOTg0NDhjZmRlOWQxMDA4OGViZjRjMDU3MzVjNzlhY2Y2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAK
QEAgLTQ4LDYgKzQ4LDcgQEAKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlN0eWxl
VHJlZVJlc29sdmVyLmgiCiAjaW5jbHVkZSAiVmFsaWRhdGlvbk1lc3NhZ2UuaCIKKyNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMuaD4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9j
SW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvU2V0Rm9yU2Nv
cGUuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNwcAppbmRleCAyM2U0OWFh
M2QxOTQ5MTQ2ZGVlYWY3YTJkNmNmY2Q0Y2EyMThhYjU2Li5lNzVhYWIyZmRlYzY2NGE4NzJjOTU3
NjU2MzRmYzU2M2IxZDhlZTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxG
b3JtRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQu
Y3BwCkBAIC01OCw2ICs1OCw3IEBACiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJT
dWJtaXRFdmVudC5oIgogI2luY2x1ZGUgIlVzZXJHZXN0dXJlSW5kaWNhdG9yLmgiCisjaW5jbHVk
ZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8bGltaXRzPgogI2lu
Y2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSHRtbEVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MSHRtbEVsZW1lbnQuY3BwCmluZGV4IDA5ZTdhZTY2YTk2MTQ4NDE1
YjEwM2YyM2UwNTZiODhkNWZhYWEyOTkuLmE3ZjA5ZmQwZWRjNjFmMDA4NjM2MjUzOWY0NGM5ZDYx
Y2UwOGU2ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEh0bWxFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxIdG1sRWxlbWVudC5jcHAKQEAgLTMy
LDYgKzMyLDcgQEAKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgi
CiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29s
ZVR5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmNwcAppbmRl
eCAxZTgxZjU0MjViMDdlMjRkOWE5YzEyMDdlYjM1NTkyMTcyNDY1Yzg0Li42YTViMWJlODE3MzIw
YTVlYjBmMGUyNTQ1MTU1MDMyMGI3MzkzNjMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxJRnJhbWVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJ
RnJhbWVFbGVtZW50LmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIlNjcmlwdENvbnRy
b2xsZXIuaCIKICNpbmNsdWRlICJTY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIuaCIKICNpbmNsdWRl
ICJTZXR0aW5ncy5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPgog
I2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAppbmRleCA3NGZkNDVlNmRiYmI0
NTZiNTQ1M2IxZDQwZjM4Y2YwNDY0MGQ3N2E0Li5mYzk1YjZiMTIyNjgyMjU4OGU3MTc1NTUxNmVj
YzA2MDZiMDc1MmQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCkBA
IC02Miw2ICs2Miw3IEBACiAjaW5jbHVkZSAiU3R5bGVTY29wZS5oIgogI2luY2x1ZGUgIlN0eWxl
U2hlZXRDb250ZW50cy5oIgogI2luY2x1ZGUgIlN1YnJlc291cmNlSW50ZWdyaXR5LmgiCisjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL0lzb01h
bGxvY0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1Njb3Bl
Lmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwCmluZGV4IDk2NTFk
ODRlYTAyYjVmOTdmMjZiNzc0ZTBmMzY4NWRlMjk4NzQ3OWEuLjUzNTQ4ZDRiNWI5YjA4MDlkZGI2
MWEzNWViMDRhOTE4YjNhMDNjY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFBsdWdJbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVs
ZW1lbnQuY3BwCkBAIC00OCw2ICs0OCw3IEBACiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgogI2lu
Y2x1ZGUgIlN1YmZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiV2lkZ2V0LmgiCisjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lu
bGluZXMuaD4KIAogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcAppbmRleCA3OWFkNGUyMjA2ZGE4MDk0OGIyYTBi
NTVmZWJiMWJiODRjODE2N2EwLi4zNGI2YmNhZDQwYTkzNmYzYzBjNjkyNzhmYTdjMzRmYTk3NzNl
MjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcApAQCAtNTUs
NiArNTUsNyBAQAogI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3Mu
aCIKICNpbmNsdWRlICJTcGF0aWFsTmF2aWdhdGlvbi5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL0NvbnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5hdGVOdW1iZXJzLmg+CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcAppbmRleCA3ODdmYzM0MmNhZDEwNGMx
ODczMmI4MjI3MWFkNDgyNjc2NDFkMWUwLi4xM2IxMjhiZTE5NzU2YjMxODRkMjc1ZjU3NjFkYzA1
MDYxMWQxYjliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0
VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3Bw
CkBAIC02Miw2ICs2Miw3IEBACiAjaW5jbHVkZSAiVGV4dEV2ZW50LmgiCiAjaW5jbHVkZSAiVGV4
dEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiVGV4dE5vZGVUcmF2ZXJzYWwuaCIKKyNpbmNsdWRlICJV
c2VyR2VzdHVyZUluZGljYXRvci5oIgogI2luY2x1ZGUgIlVzZXJUeXBpbmdHZXN0dXJlSW5kaWNh
dG9yLmgiCiAjaW5jbHVkZSAiV2hlZWxFdmVudC5oIgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuY3BwCmlu
ZGV4IGNhNGU3Nzc1ZTc0NmNjYzk5YjA3N2YyMGM2OTcxNmNlODI1ODk5ZGYuLjQ1M2VmNTA4MTA3
YTE2ZGViZjc4ZTlmZjE3ZGNhNmNjNWZkYzZiZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuY3BwCkBA
IC02OSw2ICs2OSw3IEBACiAjaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5oIgogI2luY2x1ZGUgIlRl
eHRNZXRyaWNzLmgiCiAjaW5jbHVkZSAiVGV4dFJ1bi5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL0NvbnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9DaGVja2VkQXJpdGhtZXRpYy5oPgog
I2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRy
YXMuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRl
cmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVy
aW5nQ29udGV4dC5jcHAKaW5kZXggNWEzODc5NTdjMjYwNjYyMmRiNDZmNGJmNjA4OGJlMzMxMDYx
YWJiYi4uNWIzZmRmYzI2YTE3NTNkMDliODAxOTEwODdmNjllMjBjYWZlMjg3YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5j
cHAKQEAgLTQ3LDYgKzQ3LDcgQEAKICNpbmNsdWRlICJPRVNUZXh0dXJlRmxvYXRMaW5lYXIuaCIK
ICNpbmNsdWRlICJSZW5kZXJCb3guaCIKICNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVz
LmgiCisjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJXZWJHTEFjdGl2ZUluZm8uaCIK
ICNpbmNsdWRlICJXZWJHTEJ1ZmZlci5oIgogI2luY2x1ZGUgIldlYkdMQ29tcHJlc3NlZFRleHR1
cmVBU1RDLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RyYWNrQmFz
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RyYWNrQmFzZS5jcHAKaW5kZXggYmFm
YTQ5ZWU2MGQ4ODZjZjVkNzFlNmVkYzNmY2U2MTMwYTZlMTRmYS4uOTRlOGM3NDc0YjFkYjJlYTk5
ZDU3N2M2OGVhMzQyYjU4YWJiY2ZkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9UcmFja0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tC
YXNlLmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRl
ICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiVHJhY2tMaXN0QmFzZS5oIgor
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9M
YW5ndWFnZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VEZWJ1Z2dlckFn
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlRGVidWdn
ZXJBZ2VudC5jcHAKaW5kZXggNTVkOTUxODQ5NDE5NWI5NmRmMTY1YTk0YzFjMjk2M2FkY2ViODM5
NS4uNTlkMTUyZmU2N2UzNWYxZTFlNzRiMzVjODQ0YmUzODM3ODIyMGI4YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VEZWJ1Z2dlckFnZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZURlYnVnZ2Vy
QWdlbnQuY3BwCkBAIC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dC5oIgogI2luY2x1ZGUgIlNjcmlwdFN0YXRlLmgiCiAjaW5jbHVkZSAiVXNlckdlc3R1cmVF
bXVsYXRpb25TY29wZS5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5o
PgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0luamVjdGVkU2NyaXB0Lmg+CiAjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmg+CiAjaW5jbHVkZSA8SmF2YVNj
cmlwdENvcmUvU2NyaXB0Q2FsbFN0YWNrLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvQ3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvQ3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeS5jcHAKaW5kZXggNzEzNWE4Y2ZhZTBmNjY4YWFm
NzJhNGE3NzI4MDUzYTRmY2YzNWUwZC4uMDZhYWFiMWM1NTNhOTNhOGM2NTFjZjM5ZTc3OTc5MTZl
ZjAyNzVhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luRW1i
ZWRkZXJQb2xpY3kuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbkVt
YmVkZGVyUG9saWN5LmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIlJlc291cmNlUmVz
cG9uc2UuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAi
U2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpblBy
ZWZsaWdodENoZWNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luUHJl
ZmxpZ2h0Q2hlY2tlci5jcHAKaW5kZXggOGIzMWUxNzM5MmE5N2JiOTZkMzQ5N2I5MjhlZGRhMmU2
N2NjZDZkNS4uZWY1NDE2YjFkNGI5ZTExMjE3MjRiYmNmMmNiYmViMTYzYWE0NjE2YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luUHJlZmxpZ2h0Q2hlY2tlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luUHJlZmxpZ2h0Q2hlY2tl
ci5jcHAKQEAgLTQzLDYgKzQzLDcgQEAKICNpbmNsdWRlICJOZXR3b3JrTG9hZE1ldHJpY3MuaCIK
ICNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVm
ZmVyLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3Vt
ZW50TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAK
aW5kZXggNDYwMDYwYzE4OTdlZTE2OTdiOGRjN2ViYzMyZGY4ODU2YmNmYThlMS4uMzM3MjkxNTEz
NmRkNzlmY2M5NDdiMmIyY2U4MDlhYjI3YmRkYzNjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RG9jdW1lbnRMb2FkZXIuY3BwCkBAIC05NCw2ICs5NCw3IEBACiAjaW5jbHVkZSAiU3VicmVzb3Vy
Y2VMb2FkZXIuaCIKICNpbmNsdWRlICJUZXh0UmVzb3VyY2VEZWNvZGVyLmgiCiAjaW5jbHVkZSAi
VXNlckNvbnRlbnRQcm92aWRlci5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVU
eXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBs
ZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwCmluZGV4
IGUwNGIzN2Y4MmJiNmNjMDg1Yjg3OTIwZjlkMTZlYzE0MGFhYTFlOGYuLmZhM2FmYTRlYzQ2NWIz
YjdjYTI0ZTI1Y2I5ODkyZDliOTc5NGJmNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwCkBAIC02MSw2ICs2MSw3IEBACiAjaW5j
bHVkZSAiU3VicmVzb3VyY2VJbnRlZ3JpdHkuaCIKICNpbmNsdWRlICJTdWJyZXNvdXJjZUxvYWRl
ci5oIgogI2luY2x1ZGUgIlRocmVhZGFibGVMb2FkZXJDbGllbnQuaCIKKyNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9Db25zb2xlVHlwZXMuaD4KICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgog
I2luY2x1ZGUgPHd0Zi9SZWYuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAK
aW5kZXggYjkyNzM2Y2NkYzRlM2Q2NTc0Y2ZiZDZkMTA2NGMxYTQwYWJiZmRjOC4uMGNkMjFjZTAz
ZDM1OWEzMTljZjc0ZjQ5YWNmNDRiMjQ5YmFmMWRkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXIuY3BwCkBAIC0xMjgsNiArMTI4LDcgQEAKICNpbmNsdWRlICJVc2VyR2VzdHVyZUlu
ZGljYXRvci5oIgogI2luY2x1ZGUgIldpbmRvd0ZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiWE1MRG9j
dW1lbnRQYXJzZXIuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMuaD4K
ICNpbmNsdWRlIDxkb20vU2NyaXB0RGlzYWxsb3dlZFNjb3BlLmg+CiAjaW5jbHVkZSA8d3RmL0Nv
bXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL1VSTC5oPgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9JbWFnZUxvYWRlci5jcHAKaW5kZXggZDUwNmY0NDc5M2FiMTI3NDRlNmVmZjY5MTRlMDlmNzgy
ZDQ4MWFmZC4uZjIxMjZlMzZkNTZlYzFmNmMzZDM5MzllZGI1OTU1ZjdmYWQ2YTlkMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIuY3BwCkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVk
ZSAiUmVuZGVySW1hZ2UuaCIKICNpbmNsdWRlICJSZW5kZXJTVkdJbWFnZS5oIgogI2luY2x1ZGUg
IlNldHRpbmdzLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAj
aW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKICNpZiBFTkFCTEUoVklERU8pCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvTGlua0xvYWRlci5jcHAKaW5kZXggOGZiOTE3Yjk1MWMyZmRhNGI5OWNlMWJl
NzVlNjFiMWQxNDBhYmIyNC4uM2RmZjY1ZjhlYzFmNzdiZDYzMTFkMjNhYWExMTczNzk5YWFmMmVh
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVyLmNwcApAQCAtNTksNiArNTksNyBAQAog
I2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU2l6ZXNBdHRyaWJ1dGVQYXJzZXIuaCIK
ICNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29u
c29sZVR5cGVzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL01lZGlhUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL01lZGlhUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IDVkMTIwZTI0N2FjMjYyNzExNjFk
ZTBkYzUyMzAyNGRjOGRlMzRkNjkuLmEwNTA5ZTE3N2E5NWE0Y2Y0NGM5YjlmMzEzMWZmNzJmNTVk
YTZkMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NZWRpYVJlc291cmNlTG9h
ZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWVkaWFSZXNvdXJjZUxvYWRlci5j
cHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgogI2lu
Y2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3Jp
Z2luLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVk
ZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NaXhlZENvbnRlbnRDaGVja2VyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9NaXhlZENvbnRlbnRDaGVja2VyLmNwcAppbmRleCAyMTkwZDk3Yjhk
OGExZGRlMjFiMzdhYjI4NDIxMWFiYjUxNWM5NGYwLi5jNWU4ZThkNWJlZjBkMGRjZjkwM2E0YjY1
ZDRlYjI1MmIwYjY3MzBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWl4ZWRD
b250ZW50Q2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL01peGVkQ29udGVu
dENoZWNrZXIuY3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGll
bnQuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgi
CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvblNjaGVkdWxlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvblNjaGVkdWxlci5jcHAKaW5kZXggMmY5ZWUy
NWViZDUyNDVjMWJiYzNlMWI2NTMyYzg0MGQ5MzA1ODllMC4uNTk4ZDA0NThiMjFmNmFhZjI2ZmQ1
NWEyOWRiMTJjYTE0YjQ3NGE1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL05h
dmlnYXRpb25TY2hlZHVsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0
aW9uU2NoZWR1bGVyLmNwcApAQCAtNTMsNiArNTMsNyBAQAogI2luY2x1ZGUgIlBvbGljeUNoZWNr
ZXIuaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiVXNlckdlc3R1
cmVJbmRpY2F0b3IuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMuaD4K
ICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IGFhODViYjRkM2NhODcxNDViYjdhODZm
NjQ2NjhlNDk1MTc2YWMyMzUuLmNhMjExZDg5MDkwNmQ4OGQ4NjllZjg2YTJkNTIzODYxZWY1ZTZi
MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcApAQCAtNTIsNiAr
NTIsNyBAQAogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVm
ZmVyLmgiCiAjaW5jbHVkZSAiU3VicmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9Db25zb2xlVHlwZXMuaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIu
aD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVz
b3VyY2VMb2FkZXIuY3BwCmluZGV4IDdkNzgyMmUyNDkyODE2YzZlODY2YjdlNWI3ODgzMTEwNjM3
YjFkZGYuLmZmZjRiYWRiYjYzYjJlNjY4YjlmNzNiZGYwY2FlYTg0MTQ0YTAwYTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcApAQCAtNDcsNiArNDcsNyBA
QAogI2luY2x1ZGUgIlJlc291cmNlVGltaW5nLmgiCiAjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRG
ZWF0dXJlcy5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAj
aW5jbHVkZSA8d3RmL1JlZi5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkTGVha0NvdW50ZXIu
aD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UZXh0VHJhY2tMb2FkZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RleHRUcmFja0xvYWRlci5jcHAKaW5kZXggOGNjM2M1
NjhjNDM3OTZhYzYxYjMwOTc1NDdhODllZjgxMmQ5OGQ0ZC4uM2UwMjYwNzczNTc2YjBhODNkYmE4
ODE2NWFmZGNkNDY4NjE5M2E1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Rl
eHRUcmFja0xvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RleHRUcmFja0xv
YWRlci5jcHAKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNp
bmNsdWRlICJWVFRDdWUuaCIKICNpbmNsdWRlICJXZWJWVFRQYXJzZXIuaCIKKyNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95
ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL1RocmVhZGFibGVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RocmVh
ZGFibGVMb2FkZXIuY3BwCmluZGV4IDFiNjUzMmMzYjBlYWE4MGQ5YmQ0NmM2ZDQzMjEzNjk2MjFj
MDE5YmIuLjhhMWY3YmZiMDllNDEwYWE3NmIzMjBhOWM4NjhiNjU0Y2UyNGI3NDUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UaHJlYWRhYmxlTG9hZGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvVGhyZWFkYWJsZUxvYWRlci5jcHAKQEAgLTQwLDYgKzQwLDcgQEAK
ICNpbmNsdWRlICJXb3JrZXJSdW5Mb29wLmgiCiAjaW5jbHVkZSAiV29ya2VyVGhyZWFkYWJsZUxv
YWRlci5oIgogI2luY2x1ZGUgIldvcmtsZXRHbG9iYWxTY29wZS5oIgorI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3Jv
dXAuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVH
cm91cC5jcHAKaW5kZXggODlmM2IwZjFkYzM5ZDQwYTU2Mzg3OGFlNTVmNzZjNjcwYTcxNTA5MS4u
NDMxOWM1YmE4NjlkMjQ1ZWUzMTIxODljMmI0N2M4NWI3YjFiZDEzYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5j
cHAKQEAgLTQ5LDYgKzQ5LDcgQEAKICNpbmNsdWRlICJQcm9ncmVzc1RyYWNrZXIuaCIKICNpbmNs
dWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25I
YW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggMzZl
ZTMyNzVkNjkyMDdlNDUwMjE2MmYwYWJhZWI4OGU1OGViYzc1Yi4uZTg1MjFlZjFmYzE0ODUwNzYz
YjViNTVhMmYxMTgyMGExYTVjNzIxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC04Myw2ICs4Myw3IEBACiAjaW5j
bHVkZSAiU3VicmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJVc2VyQ29udGVudENvbnRyb2xs
ZXIuaCIKICNpbmNsdWRlICJVc2VyU3R5bGVTaGVldC5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL0NvbnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRE9NVGltZXIuY3BwCmluZGV4IDg4OTA1MmUzYTQ1MmUyNTZlMzg3ODIzODY3ZTNi
Yjc4ZDUwNTc0NmQuLmQyMTAwNjk0MzMzNzcxYTNjMDQ4M2MxOThlZGY5MTNlMDVjYjNlMDYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRE9NVGltZXIuY3BwCkBAIC0zMyw3ICszMyw3IEBACiAjaW5jbHVkZSAiUGFn
ZS5oIgogI2luY2x1ZGUgIlBsdWdpblZpZXdCYXNlLmgiCiAjaW5jbHVkZSAiU2NoZWR1bGVkQWN0
aW9uLmgiCi0jaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorI2luY2x1ZGUgIlNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNp
bmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXggYjkwNjRmNzc4MDk0YWMxY2FlNzk4YzZjYzk4OGY2
ZTlhYzkxZDdhNi4uZmZjOTE3ODMzMmI5NjQ2ZDRjN2VkMDQ3NDY3NzZmMjA2MDE0MjFlZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApAQCAtMTE3LDYgKzExNyw3IEBACiAjaW5jbHVkZSAi
V2luZG93RmVhdHVyZXMuaCIKICNpbmNsdWRlICJXaW5kb3dGb2N1c0FsbG93ZWRJbmRpY2F0b3Iu
aCIKICNpbmNsdWRlICJXaW5kb3dQcm94eS5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Nv
bnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1NjcmlwdENhbGxTdGFjay5o
PgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuaD4KICNp
bmNsdWRlIDxhbGdvcml0aG0+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdD
b250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCmlu
ZGV4IGExYzBlNWY1NjllZGEwNzRiMzE2OWIyZWNjNTNiZDgwMWIyY2M0ZjAuLmNkODYyYWJhMmIw
MzdiNGU4Y2RmYWQ1YzU1ZTNhOGYzMzc5YTFmYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0Nv
bnRyb2xsZXIuY3BwCkBAIC05Miw2ICs5Miw3IEBACiAjaW5jbHVkZSAiVmlzaWJsZVBvc2l0aW9u
LmgiCiAjaW5jbHVkZSAiV2ViQ29udGVudFJlYWRlci5oIgogI2luY2x1ZGUgIm1hcmt1cC5oIgor
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9T
ZXRGb3JTY29wZS5oPgogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RXZlbnRTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudFNvdXJjZS5jcHAKaW5k
ZXggNjAyNjMxYmI3Y2QxMDg2MGIxYTMxMjEwNDNjOTdkOGVmZTQ0NzYxZC4uYTU4YTRmZjUzY2Ix
NmZlZWU5MzhjNDE4ZDkzMDg0MTI3ZTU3OTA2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9FdmVudFNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudFNvdXJj
ZS5jcHAKQEAgLTQ0LDYgKzQ0LDcgQEAKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2lu
Y2x1ZGUgIlRleHRSZXNvdXJjZURlY29kZXIuaCIKICNpbmNsdWRlICJUaHJlYWRhYmxlTG9hZGVy
LmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8
d3RmL0lzb01hbGxvY0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvU2V0Rm9yU2NvcGUuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdUb0ludGVnZXJDb252ZXJzaW9uLmg+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWUuY3BwCmluZGV4IDhlMGExOWE2NjRlNjJiN2MzZWU0ZGNmODhiZTc3YWI1YmEyNzM3ZWQuLjgx
ZjM1MTNjMWMzNjRmNjI1YTNhNWY1MjEzY2UwNTJiMDM4ZDZjZDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUu
Y3BwCkBAIC0xMDUsNiArMTA1LDcgQEAKICNpbmNsdWRlICJucHJ1bnRpbWVfaW1wbC5oIgogI2lu
Y2x1ZGUgInJ1bnRpbWVfcm9vdC5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0FQSUNhc3Qu
aD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMuaD4KICNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9SZWd1bGFyRXhwcmVzc2lvbi5oPgogI2luY2x1ZGUgPHd0Zi9IZXhOdW1i
ZXIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZExlYWtDb3VudGVyLmg+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAKaW5kZXggMWRlOGQwMzJhZGE2ZTQwM2Y3YWFkMzc5ODY0NjJlYWMzYmEz
M2U2My4uMzUxNzc1N2Q1YTdkYmM5ZTIxNGVmZTM0ZmM5MzdlM2I5ZGJhMTI1OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtMTEyLDYgKzExMiw3IEBACiAjaW5jbHVkZSAiVmVsb2Np
dHlEYXRhLmgiCiAjaW5jbHVkZSAiVmlzdWFsVmlld3BvcnQuaCIKICNpbmNsdWRlICJXaGVlbEV2
ZW50VGVzdE1vbml0b3IuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMu
aD4KICNpbmNsdWRlIDx3dGYvSGV4TnVtYmVyLmg+CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lu
bGluZXMuaD4KICNpbmNsdWRlIDx3dGYvTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmg+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlLmNwcAppbmRleCAwMDYxM2ZhNjg3NmE2YmU2YTkyNjEzMzIxNjFlNDk2ODIyYWY0MTgyLi44
MTk5YTc0MzIyMWNjZDQ1ZTU1NTgwZWEwNWZmNWJlN2U2ZTQ4ZGQ1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5j
cHAKQEAgLTE2MCw2ICsxNjAsNyBAQAogI2luY2x1ZGUgIldoZWVsRXZlbnRUZXN0TW9uaXRvci5o
IgogI2luY2x1ZGUgIldpZGdldC5oIgogI2luY2x1ZGUgIldvcmtlck9yV29ya2xldFNjcmlwdENv
bnRyb2xsZXIuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMuaD4KICNp
bmNsdWRlIDx3dGYvRmlsZVN5c3RlbS5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkTGVha0Nv
dW50ZXIuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BvaW50ZXJMb2NrQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BvaW50ZXJMb2NrQ29udHJvbGxlci5jcHAKaW5kZXggYmZhMWI4NzhlYjgwNWNmYWIw
NmQyMjk3YTlmYmQ1Nzc4ZTMwZTRlOC4uMWFjZWViMjc4NzkzOWU4NTc1ZThiNWExOThhNGQ1Y2E1
OTBkZTk0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Qb2ludGVyTG9ja0NvbnRy
b2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUG9pbnRlckxvY2tDb250cm9sbGVy
LmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIlBvaW50ZXJDYXB0dXJlQ29udHJvbGxl
ci5oIgogI2luY2x1ZGUgIlVzZXJHZXN0dXJlSW5kaWNhdG9yLmgiCiAjaW5jbHVkZSAiVm9pZENh
bGxiYWNrLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0
aW5ncy55YW1sIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCmluZGV4IDYyY2Nj
M2IzNjEyYWY3ZGYzY2E4YWZhMTEyYmQxYzZjY2M2ODg5ZTEuLjgyOGQ1N2YyYTYyN2ZhNmFiNGFl
MTU0MzI0Mzg0NjBjYzU4OGZkY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0
dGluZ3MueWFtbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwKQEAgLTM0
NCw3ICszNDQsNyBAQCBNYXhpbXVtSFRNTFBhcnNlckRPTVRyZWVEZXB0aDoKICAgdHlwZTogdWlu
dDMyX3QKICAgZGVmYXVsdFZhbHVlOgogICAgIFdlYkNvcmU6Ci0gICAgICBkZWZhdWx0OiBkZWZh
dWx0TWF4aW11bUhUTUxQYXJzZXJET01UcmVlRGVwdGgKKyAgICAgIGRlZmF1bHQ6IFNldHRpbmdz
OjpkZWZhdWx0TWF4aW11bUhUTUxQYXJzZXJET01UcmVlRGVwdGgKIAogTWF4aW11bVNvdXJjZUJ1
ZmZlclNpemU6CiAgIGNvbW1lbnQ6ID4tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9jc3Av
Q29udGVudFNlY3VyaXR5UG9saWN5LmNwcAppbmRleCBkODg1MTY3NDdhNDRkNmFkYTRlYWQwYzY5
OTBlNzNiOTE0MmIxYTFjLi44NmRhMWI4MGVjZWExNzNhZmY2MDcwMDZlOWNmN2M4ZGUzMTZjZDNl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xp
Y3kuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGlj
eS5jcHAKQEAgLTUzLDYgKzUzLDcgQEAKICNpbmNsdWRlICJTZWN1cml0eVBvbGljeVZpb2xhdGlv
bkV2ZW50LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJUZXh0RW5jb2Rpbmcu
aCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMuaD4KICNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9TY3JpcHRDYWxsU3RhY2suaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5Lmg+CiAjaW5jbHVkZSA8cGFsL2NyeXB0by9DcnlwdG9E
aWdlc3QuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1ZpZGVv
RnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y29jb2EvVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQubW0KaW5kZXggMWE1MjZjODMz
ZjM4YTNjMjA2MzY5ZGM5N2JjYzc3NmVlMzVhMDVlMC4uNTI4YmM1OGFjMDAwMGI4MDk4ZmZlODkx
ODZkMDgxZjkzMjE1ZDk0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29j
b2EvVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vY29jb2EvVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQubW0KQEAg
LTQyLDYgKzQyLDcgQEAKICNpbXBvcnQgIlBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50
LmgiCiAjaW1wb3J0ICJUZXh0VHJhY2tMaXN0LmgiCiAjaW1wb3J0ICJUaW1lUmFuZ2VzLmgiCisj
aW1wb3J0ICJVc2VyR2VzdHVyZUluZGljYXRvci5oIgogI2ltcG9ydCA8UXVhcnR6Q29yZS9Db3Jl
QW5pbWF0aW9uLmg+CiAjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbXBvcnQgPHd0
Zi9Tb2Z0TGlua2luZy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuY3BwCmluZGV4IDdhNGRjMmM2MmY1ZTFkYWQwNzA5MDI1
NjhkMWE2YzI4ODkxNWE1NzkuLjQxYjM0NjllZTkyMDNlOWNhOWRjNjliZjM3Mzk3MTQwYzQ1YmVj
NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllclNjcm9s
bGFibGVBcmVhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJT
Y3JvbGxhYmxlQXJlYS5jcHAKQEAgLTY4LDYgKzY4LDcgQEAKICNpbmNsdWRlICJTY3JvbGxiYXJU
aGVtZS5oIgogI2luY2x1ZGUgIlNjcm9sbGluZ0Nvb3JkaW5hdG9yLmgiCiAjaW5jbHVkZSAiU2hh
ZG93Um9vdC5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPgogI2lu
Y2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKaW5kZXggY2FiNjNmNWIxNGNlNWVi
ODdlZTRkODdhODBiMzg2NWRmYjZlOWIxZi4uYTE4YzJlY2IzZDcyZTlhYWIwNzRiZTJhZGYwNmYy
NzRjZTExMmZmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxp
c3RCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNw
cApAQCAtNjMsNiArNjMsNyBAQAogI2luY2x1ZGUgIlN0eWxlUmVzb2x2ZXIuaCIKICNpbmNsdWRl
ICJTdHlsZVRyZWVSZXNvbHZlci5oIgogI2luY2x1ZGUgIldoZWVsRXZlbnRUZXN0TW9uaXRvci5o
IgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPG1h
dGguaD4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9T
dGFja1N0YXRzLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVz
L1NoYXBlT3V0c2lkZUluZm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9T
aGFwZU91dHNpZGVJbmZvLmNwcAppbmRleCBjMWI4YzRhMzMyYjkyZWY2ODkwY2ZmZTZkMjY3NjZm
YjlhZjJkODZlLi4yOTVkNGJjODc3OGEzZWY5NDkxZTMxMjZiNzRjMmYxNzdhZjBjZDZkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlT3V0c2lkZUluZm8u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGVPdXRzaWRlSW5m
by5jcHAKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJSZW5kZXJGcmFnbWVudENvbnRhaW5l
ci5oIgogI2luY2x1ZGUgIlJlbmRlckltYWdlLmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgor
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlRm9udFNpemVG
dW5jdGlvbnMuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVGb250U2l6ZUZ1bmN0aW9u
cy5jcHAKaW5kZXggZDU0ZmQ1MWMwODA4YzNkNWFmNDAyMzkxNTM1Y2NhYTFmZDhhZGQ5MS4uOTJh
NzY1NjZhMmJmOTMxZDk0YTMxMDI1M2Q0YzQwYmFiNzg2OGZmMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3R5bGUvU3R5bGVGb250U2l6ZUZ1bmN0aW9ucy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvc3R5bGUvU3R5bGVGb250U2l6ZUZ1bmN0aW9ucy5jcHAKQEAgLTM5LDcgKzM5LDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBuYW1lc3BhY2UgU3R5bGUgewogCi1mbG9hdCBjb21wdXRl
ZEZvbnRTaXplRnJvbVNwZWNpZmllZFNpemUoZmxvYXQgc3BlY2lmaWVkU2l6ZSwgYm9vbCBpc0Fi
c29sdXRlU2l6ZSwgZmxvYXQgem9vbUZhY3RvciwgTWluaW11bUZvbnRTaXplUnVsZSBtaW5pbXVt
U2l6ZVJ1bGUsIGNvbnN0IFNldHRpbmdzOjpWYWx1ZXMmIHNldHRpbmdzKQorZmxvYXQgY29tcHV0
ZWRGb250U2l6ZUZyb21TcGVjaWZpZWRTaXplKGZsb2F0IHNwZWNpZmllZFNpemUsIGJvb2wgaXNB
YnNvbHV0ZVNpemUsIGZsb2F0IHpvb21GYWN0b3IsIE1pbmltdW1Gb250U2l6ZVJ1bGUgbWluaW11
bVNpemVSdWxlLCBjb25zdCBTZXR0aW5nc1ZhbHVlcyYgc2V0dGluZ3MpCiB7CiAgICAgLy8gVGV4
dCB3aXRoIGEgMHB4IGZvbnQgc2l6ZSBzaG91bGQgbm90IGJlIHZpc2libGUgYW5kIHRoZXJlZm9y
ZSBuZWVkcyB0byBiZQogICAgIC8vIGV4ZW1wdCBmcm9tIG1pbmltdW0gZm9udCBzaXplIHJ1bGVz
LiBBY2lkMyByZWxpZXMgb24gdGhpcyBmb3IgcGl4ZWwtcGVyZmVjdApAQCAtMTM5LDcgKzEzOSw3
IEBAIHN0YXRpYyBjb25zdCBpbnQgc3RyaWN0Rm9udFNpemVUYWJsZVtmb250U2l6ZVRhYmxlTWF4
IC0gZm9udFNpemVUYWJsZU1pbiArIDFdW3RvCiAvLyBmYWN0b3JzIGZvciBlYWNoIGtleXdvcmQg
dmFsdWUuCiBzdGF0aWMgY29uc3QgZmxvYXQgZm9udFNpemVGYWN0b3JzW3RvdGFsS2V5d29yZHNd
ID0geyAwLjYwZiwgMC43NWYsIDAuODlmLCAxLjBmLCAxLjJmLCAxLjVmLCAyLjBmLCAzLjBmIH07
CiAKLWZsb2F0IGZvbnRTaXplRm9yS2V5d29yZCh1bnNpZ25lZCBrZXl3b3JkSUQsIGJvb2wgc2hv
dWxkVXNlRml4ZWREZWZhdWx0U2l6ZSwgY29uc3QgU2V0dGluZ3M6OlZhbHVlcyYgc2V0dGluZ3Ms
IGJvb2wgaW5RdWlya3NNb2RlKQorZmxvYXQgZm9udFNpemVGb3JLZXl3b3JkKHVuc2lnbmVkIGtl
eXdvcmRJRCwgYm9vbCBzaG91bGRVc2VGaXhlZERlZmF1bHRTaXplLCBjb25zdCBTZXR0aW5nc1Zh
bHVlcyYgc2V0dGluZ3MsIGJvb2wgaW5RdWlya3NNb2RlKQogewogICAgIGludCBtZWRpdW1TaXpl
ID0gc2hvdWxkVXNlRml4ZWREZWZhdWx0U2l6ZSA/IHNldHRpbmdzLmRlZmF1bHRGaXhlZEZvbnRT
aXplIDogc2V0dGluZ3MuZGVmYXVsdEZvbnRTaXplOwogICAgIGlmIChtZWRpdW1TaXplID49IGZv
bnRTaXplVGFibGVNaW4gJiYgbWVkaXVtU2l6ZSA8PSBmb250U2l6ZVRhYmxlTWF4KSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUZvbnRTaXplRnVuY3Rpb25zLmggYi9T
b3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUZvbnRTaXplRnVuY3Rpb25zLmgKaW5kZXggYThmMjM3
MmVhOWMxZDFlYzk5OWQ1MWJjNjk3NzNlYmRiNjJkMWQ0OS4uOTVjYjBiMzRlYjA1ZWFhN2JlZjY4
YzIwZmJhM2VjZWZhODBjNTg3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5
bGVGb250U2l6ZUZ1bmN0aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlRm9u
dFNpemVGdW5jdGlvbnMuaApAQCAtMjUsMjQgKzI1LDI0IEBACiAKICNwcmFnbWEgb25jZQogCi0j
aW5jbHVkZSAiU2V0dGluZ3MuaCIKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEb2N1
bWVudDsKIGNsYXNzIFJlbmRlclN0eWxlOwogCitzdHJ1Y3QgU2V0dGluZ3NWYWx1ZXM7CisKIG5h
bWVzcGFjZSBTdHlsZSB7CiAKIGVudW0gY2xhc3MgTWluaW11bUZvbnRTaXplUnVsZSA6IHVpbnQ4
X3QgeyBOb25lLCBBYnNvbHV0ZSwgQWJzb2x1dGVBbmRSZWxhdGl2ZSB9OwogCi1mbG9hdCBjb21w
dXRlZEZvbnRTaXplRnJvbVNwZWNpZmllZFNpemUoZmxvYXQgc3BlY2lmaWVkU2l6ZSwgYm9vbCBp
c0Fic29sdXRlU2l6ZSwgZmxvYXQgem9vbUZhY3RvciwgTWluaW11bUZvbnRTaXplUnVsZSwgY29u
c3QgU2V0dGluZ3M6OlZhbHVlcyYpOworZmxvYXQgY29tcHV0ZWRGb250U2l6ZUZyb21TcGVjaWZp
ZWRTaXplKGZsb2F0IHNwZWNpZmllZFNpemUsIGJvb2wgaXNBYnNvbHV0ZVNpemUsIGZsb2F0IHpv
b21GYWN0b3IsIE1pbmltdW1Gb250U2l6ZVJ1bGUsIGNvbnN0IFNldHRpbmdzVmFsdWVzJik7CiBm
bG9hdCBjb21wdXRlZEZvbnRTaXplRnJvbVNwZWNpZmllZFNpemUoZmxvYXQgc3BlY2lmaWVkU2l6
ZSwgYm9vbCBpc0Fic29sdXRlU2l6ZSwgYm9vbCB1c2VTVkdab29tUnVsZXMsIGNvbnN0IFJlbmRl
clN0eWxlKiwgY29uc3QgRG9jdW1lbnQmKTsKIGZsb2F0IGNvbXB1dGVkRm9udFNpemVGcm9tU3Bl
Y2lmaWVkU2l6ZUZvclNWR0lubGluZVRleHQoZmxvYXQgc3BlY2lmaWVkU2l6ZSwgYm9vbCBpc0Fi
c29sdXRlU2l6ZSwgZmxvYXQgem9vbUZhY3RvciwgY29uc3QgRG9jdW1lbnQmKTsKIAogLy8gR2l2
ZW4gYSBDU1Mga2V5d29yZCBpZCBpbiB0aGUgcmFuZ2UgKENTU1ZhbHVlWHhTbWFsbCB0byBDU1NW
YWx1ZVdlYmtpdFh4eExhcmdlKSwgdGhpcyBmdW5jdGlvbiB3aWxsIHJldHVybgogLy8gdGhlIGNv
cnJlY3QgZm9udCBzaXplIHNjYWxlZCByZWxhdGl2ZSB0byB0aGUgdXNlcidzIGRlZmF1bHQgKG1l
ZGl1bSkuCi1mbG9hdCBmb250U2l6ZUZvcktleXdvcmQodW5zaWduZWQga2V5d29yZElELCBib29s
IHNob3VsZFVzZUZpeGVkRGVmYXVsdFNpemUsIGNvbnN0IFNldHRpbmdzOjpWYWx1ZXMmLCBib29s
IGluUXVpcmtzTW9kZSA9IGZhbHNlKTsKK2Zsb2F0IGZvbnRTaXplRm9yS2V5d29yZCh1bnNpZ25l
ZCBrZXl3b3JkSUQsIGJvb2wgc2hvdWxkVXNlRml4ZWREZWZhdWx0U2l6ZSwgY29uc3QgU2V0dGlu
Z3NWYWx1ZXMmLCBib29sIGluUXVpcmtzTW9kZSA9IGZhbHNlKTsKIGZsb2F0IGZvbnRTaXplRm9y
S2V5d29yZCh1bnNpZ25lZCBrZXl3b3JkSUQsIGJvb2wgc2hvdWxkVXNlRml4ZWREZWZhdWx0U2l6
ZSwgY29uc3QgRG9jdW1lbnQmKTsKIAogLy8gR2l2ZW4gYSBmb250IHNpemUgaW4gcGl4ZWwsIHRo
aXMgZnVuY3Rpb24gd2lsbCByZXR1cm4gbGVnYWN5IGZvbnQgc2l6ZSBiZXR3ZWVuIDEgYW5kIDcu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlUnVsZVNldHMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZVJ1bGVTZXRzLmNwcAppbmRleCAzYmY2
NDdhNjc1ZTBjNDU3NjU3MWE0ZDY3NWY3MGJhNzU2ZWFmOWJiLi41MmM1NmM5NWY3OWM3YmZiM2Vh
NzQwNjk4OTFmZTVkN2JiODBkNmE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9T
dHlsZVNjb3BlUnVsZVNldHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2Nv
cGVSdWxlU2V0cy5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlICJTdHlsZVJlc29sdmVy
LmgiCiAjaW5jbHVkZSAiU3R5bGVTY29wZS5oIgogI2luY2x1ZGUgIlN0eWxlU2hlZXRDb250ZW50
cy5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgU3R5bGUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0RvY3VtZW50RXh0ZW5zaW9ucy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RG9jdW1lbnRFeHRlbnNpb25zLmNwcAppbmRleCA4NjMyZjAyZjRiZjZiZDVjMjAxNzVmMzEzNjMz
NTYxMzJjYWFmNGViLi40N2JmM2JiMDY4M2Q1NDhkY2VkNjU4ZDRhYzgxZGQ0OWZkNTAxZjMxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRG9jdW1lbnRFeHRlbnNpb25zLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRG9jdW1lbnRFeHRlbnNpb25zLmNwcApAQCAtMzcs
NiArMzcsNyBAQAogI2luY2x1ZGUgIlNWR1VzZUVsZW1lbnQuaCIKICNpbmNsdWRlICJTY3JpcHRh
YmxlRG9jdW1lbnRQYXJzZXIuaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCisjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbVN0
cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5jcHAKaW5kZXggNWE3ZDA0Y2I0NDFhYjYwNTBkZTQ4OTllM2U3ZDUwZTMyYmFlZjcyMS4uOThl
MWE1ZTAyZDYwYTQzYmY1NmJiODY2YWEyMzE2MWQ4ZDNmODJiYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmNwcApAQCAtNTksNiArNTksNyBAQAogI2luY2x1ZGUgIkRPTVJlY3QuaCIK
ICNpbmNsdWRlICJET01SZWN0TGlzdC5oIgogI2luY2x1ZGUgIkRPTVN0cmluZ0xpc3QuaCIKKyNp
bmNsdWRlICJET01UaW1lci5oIgogI2luY2x1ZGUgIkRPTVVSTC5oIgogI2luY2x1ZGUgIkRPTVdp
bmRvdy5oIgogI2luY2x1ZGUgIkRlcHJlY2F0ZWRHbG9iYWxTZXR0aW5ncy5oIgpAQCAtMTg2LDYg
KzE4Nyw3IEBACiAjaW5jbHVkZSAiU1ZHU1ZHRWxlbWVudC5oIgogI2luY2x1ZGUgIlNXQ2xpZW50
Q29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJT
Y3JpcHRFeGVjdXRpb25Db250ZXh0SW5saW5lcy5oIgogI2luY2x1ZGUgIlNjcmlwdGVkQW5pbWF0
aW9uQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIlNjcm9sbGluZ0Nvb3JkaW5hdG9yLmgiCiAjaW5j
bHVkZSAiU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yLmgiCkBAIC0yMjQsNiArMjI2LDcgQEAK
ICNpbmNsdWRlICJXcml0aW5nRGlyZWN0aW9uLmgiCiAjaW5jbHVkZSAiWE1MSHR0cFJlcXVlc3Qu
aCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db2RlQmxvY2suaD4KKyNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9Db25zb2xlVHlwZXMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNw
ZWN0b3JBZ2VudEJhc2UuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JGcm9u
dGVuZENoYW5uZWwuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQYWdlT3ZlcmxheUNsaWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQYWdlT3ZlcmxheUNsaWVudC5jcHAKaW5k
ZXggZDk3NWYzYjQyODRmM2I2NmE4ZDc3OTJmMDhiNjNkN2QzZDE1NDNmYS4uOWUzNzk4MzY0ZjMx
NGZkMDk2MmUzZjhjOGM1MmUyMjhkZGY3MjBhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9Nb2NrUGFnZU92ZXJsYXlDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvTW9ja1BhZ2VPdmVybGF5Q2xpZW50LmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1
ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQYWdlT3ZlcmxheUNvbnRyb2xsZXIuaCIKICNpbmNsdWRl
ICJQbGF0Zm9ybU1vdXNlRXZlbnQuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xl
VHlwZXMuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvV2ViRmFrZVhSRGV2aWNlLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1dlYkZha2VYUkRl
dmljZS5oCmluZGV4IGMwODZkOWNmZGM3MzdiMWQyYzE5NDViMTFhNmU2MGNmOGE1Yzk0ZjEuLjc5
MThhOTEzNTA2NDdkMGUzZmZlN2UyZDNlMWY3MWYwZDJhZGU4MTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvV2ViRmFrZVhSRGV2aWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9XZWJGYWtlWFJEZXZpY2UuaApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkZh
a2VYUlZpZXdJbml0LmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKICNpbmNs
dWRlICJQbGF0Zm9ybVhSLmgiCisjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlICJXZWJGYWtl
WFJJbnB1dENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJYUlZpc2liaWxpdHlTdGF0ZS5oIgogI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL1dlYlhSVGVzdC5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9XZWJYUlRlc3QuaAppbmRl
eCBiMWNjM2RiM2FlNGYzMDlkMThlODA4ZmQ3NzEyYmExYjIyYjcwNzUxLi5hZGFkZTBlNGM5YWIy
OTVmZjFkYjIxZjk2MWUyOTVmNDczNTNmZmI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL1dlYlhSVGVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvV2ViWFJUZXN0
LmgKQEAgLTM2LDYgKzM2LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBEb2N1
bWVudDsKIGNsYXNzIFdlYlhSU3lzdGVtOwogCiBjbGFzcyBXZWJYUlRlc3QgZmluYWwgOiBwdWJs
aWMgUmVmQ291bnRlZDxXZWJYUlRlc3Q+IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
R2xvYmFsU2NvcGUuaAppbmRleCBkNTg4MGVmMjcwNzdhMzY0NWQ4ZjMzNTExYmZkNDRiNTljNWI5
MTQxLi41YzAxZGI0ODZkZWQ0ODc4MjBkN2YwMzNiMTcxOTJhM2Y1YWJkNDhkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oCkBAIC0zMSwxMiArMzEsMTMgQEAK
ICNpbmNsdWRlICJJbWFnZUJpdG1hcC5oIgogI2luY2x1ZGUgIlNjcmlwdEJ1ZmZlclNvdXJjZVBy
b3ZpZGVyLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorI2luY2x1ZGUg
IlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU3VwcGxlbWVudGFibGUuaCIKICNpbmNsdWRlICJXaW5k
b3dPcldvcmtlckdsb2JhbFNjb3BlLmgiCi0jaW5jbHVkZSAiV29ya2VyT3JXb3JrbGV0R2xvYmFs
U2NvcGUuaCIKLSNpbmNsdWRlICJXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmgiCiAj
aW5jbHVkZSAiV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIldvcmtl
ck1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmgiCisjaW5jbHVkZSAiV29ya2VyT3JXb3JrbGV0
R2xvYmFsU2NvcGUuaCIKKyNpbmNsdWRlICJXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVy
LmgiCiAjaW5jbHVkZSAiV29ya2VyVGhyZWFkLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
Q29uc29sZU1lc3NhZ2UuaD4KICNpbmNsdWRlIDxtZW1vcnk+CkBAIC0xNDMsNyArMTQ0LDcgQEAg
cHVibGljOgogCiAgICAgUmVmZXJyZXJQb2xpY3kgcmVmZXJyZXJQb2xpY3koKSBjb25zdCBmaW5h
bDsKIAotICAgIGNvbnN0IFNldHRpbmdzOjpWYWx1ZXMmIHNldHRpbmdzVmFsdWVzKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gbV9zZXR0aW5nc1ZhbHVlczsgfQorICAgIGNvbnN0IFNldHRpbmdzVmFs
dWVzJiBzZXR0aW5nc1ZhbHVlcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc2V0dGluZ3NWYWx1
ZXM7IH0KIAogICAgIEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHMgY3JlZGVudGlhbHMoKSBjb25z
dCB7IHJldHVybiBtX2NyZWRlbnRpYWxzOyB9CiAKQEAgLTIyMCw3ICsyMjEsNyBAQCBwcml2YXRl
OgogICAgIFJlZlB0cjxDU1NGb250U2VsZWN0b3I+IG1fY3NzRm9udFNlbGVjdG9yOwogICAgIFJl
ZlB0cjxGb250Q2FjaGU+IG1fZm9udENhY2hlOwogICAgIFJlZmVycmVyUG9saWN5IG1fcmVmZXJy
ZXJQb2xpY3k7Ci0gICAgU2V0dGluZ3M6OlZhbHVlcyBtX3NldHRpbmdzVmFsdWVzOworICAgIFNl
dHRpbmdzVmFsdWVzIG1fc2V0dGluZ3NWYWx1ZXM7CiAgICAgV29ya2VyVHlwZSBtX3dvcmtlclR5
cGU7CiAgICAgRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFscyBtX2NyZWRlbnRpYWxzOwogICAgIFJl
ZlB0cjxXb3JrZXJTdG9yYWdlQ29ubmVjdGlvbj4gbV9zdG9yYWdlQ29ubmVjdGlvbjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJv
bGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENv
bnRyb2xsZXIuY3BwCmluZGV4IGFlNmMxODZjYjI4NGM0MWZiM2UyMjdiNjNhYmE3NmYzZTdiNGRm
MDkuLjYzMDc5NGFlMDc2MTA4MzE4NjhiODQwYjE5MTJiM2VmYzdiYWJkYzIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRTY3JpcHRDb250
cm9sbGVyLmNwcApAQCAtNDQsNiArNDQsNyBAQAogI2luY2x1ZGUgIldvcmtlck1vZHVsZVNjcmlw
dExvYWRlci5oIgogI2luY2x1ZGUgIldvcmtlclNjcmlwdEZldGNoZXIuaCIKICNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9Db21wbGV0aW9uLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29u
c29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRGVmZXJUZXJtaW5hdGlvbi5o
PgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0RlZmVycmVkV29ya1RpbWVyLmg+CiAjaW5jbHVk
ZSA8SmF2YVNjcmlwdENvcmUvRXhjZXB0aW9uLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlck9yV29ya2xldFRocmVhZC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJPcldvcmtsZXRUaHJlYWQuaAppbmRleCBiYjNiYjc1MmRiNGJhMjBkYWUyZWNmZGRh
YThiZTU0OTlkMDI5M2RmLi41ZTVhNDFkZjAyNmE3YWU5MTU4ODc0ODcxMzliMWJkZDQwYmQxMzc1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldFRocmVh
ZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0VGhyZWFkLmgK
QEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KICNpbmNsdWRlIDx3
dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgorI2luY2x1
ZGUgPHd0Zi9VbmlxdWVSZWYuaD4KICNpbmNsdWRlIDx3dGYvdGhyZWFkcy9CaW5hcnlTZW1hcGhv
cmUuaD4KIAogbmFtZXNwYWNlIFdURiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlclRocmVhZC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQu
aAppbmRleCAxMThhNTE5OGZlN2U1NTA4YzY0YzlmZGRjOTllZjBiMTg3NTMwNWE2Li41N2FmYWU4
ZGQ1NjFmNjEwZWE0MDZjYzcyNWI4NWFmMmZlYzFlOTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyVGhyZWFkLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJDb250ZW50U2VjdXJp
dHlQb2xpY3lSZXNwb25zZUhlYWRlcnMuaCIKICNpbmNsdWRlICJDcm9zc09yaWdpbkVtYmVkZGVy
UG9saWN5LmgiCiAjaW5jbHVkZSAiRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHMuaCIKKyNpbmNsdWRl
ICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIldvcmtlck9yV29ya2xldFRocmVhZC5oIgogI2luY2x1
ZGUgIldvcmtlclJ1bkxvb3AuaCIKICNpbmNsdWRlICJXb3JrZXJUeXBlLmgiCkBAIC03MSw3ICs3
Miw3IEBAIHB1YmxpYzoKICAgICBSZWZlcnJlclBvbGljeSByZWZlcnJlclBvbGljeTsKICAgICBX
b3JrZXJUeXBlIHdvcmtlclR5cGU7CiAgICAgRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHMgY3JlZGVu
dGlhbHM7Ci0gICAgU2V0dGluZ3M6OlZhbHVlcyBzZXR0aW5nc1ZhbHVlczsKKyAgICBTZXR0aW5n
c1ZhbHVlcyBzZXR0aW5nc1ZhbHVlczsKICAgICBXb3JrZXJUaHJlYWRNb2RlIHdvcmtlclRocmVh
ZE1vZGUgeyBXb3JrZXJUaHJlYWRNb2RlOjpDcmVhdGVOZXdUaHJlYWQgfTsKIAogICAgIFdvcmtl
clBhcmFtZXRlcnMgaXNvbGF0ZWRDb3B5KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQu
Y3BwCmluZGV4IGY2ZGRmODhiYzMyMzRjNDU4OWUzNDJhZWY3MjE1MjcyYTg4OGY1MDIuLmMwNjQz
ZDgwNTg4NzFlODkxMDJhYTZlZTUzZDY1MWVjMDkyODQ1MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJU
aHJlYWQuY3BwCkBAIC03NCw3ICs3NCw3IEBAIHByaXZhdGU6CiAvLyBGSVhNRTogVXNlIGEgdmFs
aWQgV29ya2VyT2JqZWN0UHJveHkKIC8vIEZJWE1FOiBVc2UgdmFsaWQgcnVudGltZSBmbGFncwog
Ci1zdGF0aWMgV29ya2VyUGFyYW1ldGVycyBnZW5lcmF0ZVdvcmtlclBhcmFtZXRlcnMoY29uc3Qg
U2VydmljZVdvcmtlckNvbnRleHREYXRhJiBjb250ZXh0RGF0YSwgU3RyaW5nJiYgdXNlckFnZW50
LCBXb3JrZXJUaHJlYWRNb2RlIHdvcmtlclRocmVhZE1vZGUsIGNvbnN0IFNldHRpbmdzOjpWYWx1
ZXMmIHNldHRpbmdzVmFsdWVzKQorc3RhdGljIFdvcmtlclBhcmFtZXRlcnMgZ2VuZXJhdGVXb3Jr
ZXJQYXJhbWV0ZXJzKGNvbnN0IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYgY29udGV4dERhdGEs
IFN0cmluZyYmIHVzZXJBZ2VudCwgV29ya2VyVGhyZWFkTW9kZSB3b3JrZXJUaHJlYWRNb2RlLCBj
b25zdCBTZXR0aW5nc1ZhbHVlcyYgc2V0dGluZ3NWYWx1ZXMpCiB7CiAgICAgcmV0dXJuIHsKICAg
ICAgICAgY29udGV4dERhdGEuc2NyaXB0VVJMLApAQCAtOTQsNyArOTQsNyBAQCBzdGF0aWMgV29y
a2VyUGFyYW1ldGVycyBnZW5lcmF0ZVdvcmtlclBhcmFtZXRlcnMoY29uc3QgU2VydmljZVdvcmtl
ckNvbnRleHREYXRhJgogICAgIH07CiB9CiAKLVNlcnZpY2VXb3JrZXJUaHJlYWQ6OlNlcnZpY2VX
b3JrZXJUaHJlYWQoU2VydmljZVdvcmtlckNvbnRleHREYXRhJiYgY29udGV4dERhdGEsIFNlcnZp
Y2VXb3JrZXJEYXRhJiYgd29ya2VyRGF0YSwgU3RyaW5nJiYgdXNlckFnZW50LCBXb3JrZXJUaHJl
YWRNb2RlIHdvcmtlclRocmVhZE1vZGUsIGNvbnN0IFNldHRpbmdzOjpWYWx1ZXMmIHNldHRpbmdz
VmFsdWVzLCBXb3JrZXJMb2FkZXJQcm94eSYgbG9hZGVyUHJveHksIFdvcmtlckRlYnVnZ2VyUHJv
eHkmIGRlYnVnZ2VyUHJveHksIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5KiBpZGJDb25u
ZWN0aW9uUHJveHksIFNvY2tldFByb3ZpZGVyKiBzb2NrZXRQcm92aWRlcikKK1NlcnZpY2VXb3Jr
ZXJUaHJlYWQ6OlNlcnZpY2VXb3JrZXJUaHJlYWQoU2VydmljZVdvcmtlckNvbnRleHREYXRhJiYg
Y29udGV4dERhdGEsIFNlcnZpY2VXb3JrZXJEYXRhJiYgd29ya2VyRGF0YSwgU3RyaW5nJiYgdXNl
ckFnZW50LCBXb3JrZXJUaHJlYWRNb2RlIHdvcmtlclRocmVhZE1vZGUsIGNvbnN0IFNldHRpbmdz
VmFsdWVzJiBzZXR0aW5nc1ZhbHVlcywgV29ya2VyTG9hZGVyUHJveHkmIGxvYWRlclByb3h5LCBX
b3JrZXJEZWJ1Z2dlclByb3h5JiBkZWJ1Z2dlclByb3h5LCBJREJDbGllbnQ6OklEQkNvbm5lY3Rp
b25Qcm94eSogaWRiQ29ubmVjdGlvblByb3h5LCBTb2NrZXRQcm92aWRlciogc29ja2V0UHJvdmlk
ZXIpCiAgICAgOiBXb3JrZXJUaHJlYWQoZ2VuZXJhdGVXb3JrZXJQYXJhbWV0ZXJzKGNvbnRleHRE
YXRhLCBXVEZNb3ZlKHVzZXJBZ2VudCksIHdvcmtlclRocmVhZE1vZGUsIHNldHRpbmdzVmFsdWVz
KSwgY29udGV4dERhdGEuc2NyaXB0LCBsb2FkZXJQcm94eSwgZGVidWdnZXJQcm94eSwgRHVtbXlT
ZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OnNoYXJlZCgpLCBXb3JrZXJUaHJlYWRTdGFydE1vZGU6
Ok5vcm1hbCwgY29udGV4dERhdGEucmVnaXN0cmF0aW9uLmtleS50b3BPcmlnaW4oKS5zZWN1cml0
eU9yaWdpbigpLmdldCgpLCBpZGJDb25uZWN0aW9uUHJveHksIHNvY2tldFByb3ZpZGVyLCBKU0M6
OlJ1bnRpbWVGbGFnczo6Y3JlYXRlQWxsRW5hYmxlZCgpKQogICAgICwgbV9zZXJ2aWNlV29ya2Vy
SWRlbnRpZmllcihjb250ZXh0RGF0YS5zZXJ2aWNlV29ya2VySWRlbnRpZmllcikKICAgICAsIG1f
am9iRGF0YUlkZW50aWZpZXIoY29udGV4dERhdGEuam9iRGF0YUlkZW50aWZpZXIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2Vy
VGhyZWFkLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNl
V29ya2VyVGhyZWFkLmgKaW5kZXggMDY4MWIzM2NmY2NhYmYzOTAwYTc0N2Y3MGUxMTU4NzIxMDhj
MDBiYy4uYzYxNmY1ZDk4ZDE2YzUyOWQ5YWNlOWNlNzViMzNhNWI2YjU5MTI2MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRo
cmVhZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZp
Y2VXb3JrZXJUaHJlYWQuaApAQCAtMzAsNyArMzAsNiBAQAogI2luY2x1ZGUgIlNlcnZpY2VXb3Jr
ZXJDb250ZXh0RGF0YS5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJGZXRjaC5oIgogI2luY2x1
ZGUgIlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLmgiCi0jaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNp
bmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgIldvcmtlclRocmVhZC5oIgogI2luY2x1ZGUgPHd0
Zi9XZWFrUHRyLmg+CkBAIC00NSw2ICs0NCw3IEBAIGNsYXNzIFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZTsKIGNsYXNzIFdvcmtlck9iamVjdFByb3h5Owogc3RydWN0IE1lc3NhZ2VXaXRoTWVzc2FnZVBv
cnRzOwogc3RydWN0IFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyOworc3RydWN0IFNldHRp
bmdzVmFsdWVzOwogCiBjbGFzcyBTZXJ2aWNlV29ya2VyVGhyZWFkIDogcHVibGljIFdvcmtlclRo
cmVhZCwgcHVibGljIENhbk1ha2VXZWFrUHRyPFNlcnZpY2VXb3JrZXJUaHJlYWQsIFdlYWtQdHJG
YWN0b3J5SW5pdGlhbGl6YXRpb246OkVhZ2VyPiB7CiBwdWJsaWM6CkBAIC04Miw3ICs4Miw3IEBA
IHByb3RlY3RlZDoKICAgICB2b2lkIHJ1bkV2ZW50TG9vcCgpIG92ZXJyaWRlOwogCiBwcml2YXRl
OgotICAgIFdFQkNPUkVfRVhQT1JUIFNlcnZpY2VXb3JrZXJUaHJlYWQoU2VydmljZVdvcmtlckNv
bnRleHREYXRhJiYsIFNlcnZpY2VXb3JrZXJEYXRhJiYsIFN0cmluZyYmIHVzZXJBZ2VudCwgV29y
a2VyVGhyZWFkTW9kZSwgY29uc3QgU2V0dGluZ3M6OlZhbHVlcyYsIFdvcmtlckxvYWRlclByb3h5
JiwgV29ya2VyRGVidWdnZXJQcm94eSYsIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5Kiwg
U29ja2V0UHJvdmlkZXIqKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBTZXJ2aWNlV29ya2VyVGhyZWFk
KFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYmLCBTZXJ2aWNlV29ya2VyRGF0YSYmLCBTdHJpbmcm
JiB1c2VyQWdlbnQsIFdvcmtlclRocmVhZE1vZGUsIGNvbnN0IFNldHRpbmdzVmFsdWVzJiwgV29y
a2VyTG9hZGVyUHJveHkmLCBXb3JrZXJEZWJ1Z2dlclByb3h5JiwgSURCQ2xpZW50OjpJREJDb25u
ZWN0aW9uUHJveHkqLCBTb2NrZXRQcm92aWRlciopOwogCiAgICAgYm9vbCBpc1NlcnZpY2VXb3Jr
ZXJUaHJlYWQoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAgICAgdm9pZCBmaW5pc2hl
ZEV2YWx1YXRpbmdTY3JpcHQoKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29y
a2xldEdsb2JhbFNjb3BlLmgKaW5kZXggZGY3MGQ1ZThjZDRhODU1ODU4ZjM2ZGVmZjhjODU5MWZh
NzQ4MGM1MC4uNjg0MjAzZDZmMGI5ZTllMWYxOTkzZjE1ZTA0Y2FmM2QwNDRiYjk2ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmgKQEAgLTMxLDYgKzMx
LDcgQEAKICNpbmNsdWRlICJGZXRjaFJlcXVlc3RDcmVkZW50aWFscy5oIgogI2luY2x1ZGUgIlNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJTY3JpcHRTb3VyY2VDb2RlLmgiCisj
aW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29w
ZS5oIgogI2luY2x1ZGUgIldvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlTWVzc2FnZS5oPgpAQCAtMTE1LDcgKzExNiw3IEBA
IHByaXZhdGU6CiAjZW5kaWYKICAgICBVUkwgY29tcGxldGVVUkwoY29uc3QgU3RyaW5nJiwgRm9y
Y2VVVEY4ID0gRm9yY2VVVEY4OjpObykgY29uc3QgZmluYWw7CiAgICAgU3RyaW5nIHVzZXJBZ2Vu
dChjb25zdCBVUkwmKSBjb25zdCBmaW5hbDsKLSAgICBjb25zdCBTZXR0aW5nczo6VmFsdWVzJiBz
ZXR0aW5nc1ZhbHVlcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc2V0dGluZ3NWYWx1ZXM7IH0K
KyAgICBjb25zdCBTZXR0aW5nc1ZhbHVlcyYgc2V0dGluZ3NWYWx1ZXMoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBtX3NldHRpbmdzVmFsdWVzOyB9CiAKICAgICBXZWFrUHRyPERvY3VtZW50PiBtX2Rv
Y3VtZW50OwogCkBAIC0xMjcsNyArMTI4LDcgQEAgcHJpdmF0ZToKIAogICAgIHN0ZDo6dW5pcXVl
X3B0cjxXb3JrZXJNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcj4gbV9tZXNzYWdlUG9ydENoYW5u
ZWxQcm92aWRlcjsKIAotICAgIFNldHRpbmdzOjpWYWx1ZXMgbV9zZXR0aW5nc1ZhbHVlczsKKyAg
ICBTZXR0aW5nc1ZhbHVlcyBtX3NldHRpbmdzVmFsdWVzOwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldFBhcmFt
ZXRlcnMuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRQYXJhbWV0ZXJzLmgKaW5k
ZXggZWE1Y2E2ZGIzNDZhNjIxNzgyMDcyNjMxYTM0ZjIwMTcyNmM3NzU2OC4uZmY2MTIxZTE4MTNm
YzU3OTJkZTBkNGUxNzQ3ZGEzODlhZDhiM2Q3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
d29ya2xldHMvV29ya2xldFBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0
cy9Xb3JrbGV0UGFyYW1ldGVycy5oCkBAIC0zNiw3ICszNiw3IEBAIHN0cnVjdCBXb3JrbGV0UGFy
YW1ldGVycyB7CiAgICAgSlNDOjpSdW50aW1lRmxhZ3MganNSdW50aW1lRmxhZ3M7CiAgICAgZmxv
YXQgc2FtcGxlUmF0ZTsKICAgICBTdHJpbmcgaWRlbnRpZmllcjsKLSAgICBTZXR0aW5nczo6VmFs
dWVzIHNldHRpbmdzVmFsdWVzOworICAgIFNldHRpbmdzVmFsdWVzIHNldHRpbmdzVmFsdWVzOwog
ICAgIGJvb2wgaXNBdWRpb0NvbnRleHRSZWFsVGltZTsKIAogICAgIFdvcmtsZXRQYXJhbWV0ZXJz
IGlzb2xhdGVkQ29weSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1M
SHR0cFJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcApp
bmRleCBhYjk5NjAzZWE1M2UyNDZiNjMzMjFmYmQ0MTQxY2M1ZTI5Y2U5NmI0Li5jN2Y1YWFmOTg3
Y2E2ZDE0ZTgxOWMyZjQ5Y2VjZGIwZTgxOTY1MzNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRw
UmVxdWVzdC5jcHAKQEAgLTU5LDYgKzU5LDcgQEAKICNpbmNsdWRlICJtYXJrdXAuaCIKICNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9BcnJheUJ1ZmZlci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL0FycmF5QnVmZmVyVmlldy5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVU
eXBlcy5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lubGluZXMuaD4KICNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9KU0xvY2suaD4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5l
cy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3JMaWJ4c2x0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xUUHJvY2Vzc29yTGlieHNsdC5jcHAKaW5kZXgg
ZGY4YWJlNDI2ZTA2NzE3MWFmZmY5MGUwMzMzODUwNTlmMzMxMDM2NC4uMzQ0YmQ0ZTk3MmM3Mzlm
MDZlNjExYWQ5MWJjNTExYWIwZThkZmI4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1s
L1hTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMVFBy
b2Nlc3NvckxpYnhzbHQuY3BwCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAiWFNMVEV4dGVu
c2lvbnMuaCIKICNpbmNsdWRlICJYU0xUVW5pY29kZVNvcnQuaCIKICNpbmNsdWRlICJtYXJrdXAu
aCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMuaD4KICNpbmNsdWRlIDxs
aWJ4c2x0L2ltcG9ydHMuaD4KICNpbmNsdWRlIDxsaWJ4c2x0L3NlY3VyaXR5Lmg+CiAjaW5jbHVk
ZSA8bGlieHNsdC92YXJpYWJsZXMuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9w
YXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9w
YXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcAppbmRleCBhOGMzZTE4ZTQ3YWVjYWQw
YTAyMmEwODRjNDlhMjFmNmM3MTRjMzkyLi4zY2Q3M2YwOGYyNzYxMDgyYWJlODBhMmRjYzI0NTJm
M2ZmOTQ4M2Y5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3Vt
ZW50UGFyc2VyTGlieG1sMi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxE
b2N1bWVudFBhcnNlckxpYnhtbDIuY3BwCkBAIC01OSw2ICs1OSw3IEBACiAjaW5jbHVkZSAiVHJh
bnNmb3JtU291cmNlLmgiCiAjaW5jbHVkZSAiWE1MTlNOYW1lcy5oIgogI2luY2x1ZGUgIlhNTERv
Y3VtZW50UGFyc2VyU2NvcGUuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlw
ZXMuaD4KICNpbmNsdWRlIDxsaWJ4bWwvcGFyc2VySW50ZXJuYWxzLmg+CiAjaW5jbHVkZSA8d3Rm
L3VuaWNvZGUvQ2hhcmFjdGVyTmFtZXMuaD4KICNpbmNsdWRlIDx3dGYvdW5pY29kZS9VVEY4Q29u
dmVyc2lvbi5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmlu
ZGV4IDUzOTYxYTAzYTUyYzM4MTliY2EyOWUwYjcxN2RiYzUwMDhmOWZlNWMuLmNiZWU5MTQzNmE2
MTMwYTFhMTJiNDFhODliMDc1NDY0YjJhNTQzNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTIyOCw2ICsyMjgsNyBAQCBlbnVtIFN5bnRoZXRpY0Ns
aWNrVHlwZSA6IGludDhfdDsKIGVudW0gY2xhc3MgQ09FUERpc3Bvc2l0aW9uIDogYm9vbDsKIGVu
dW0gY2xhc3MgQ3JlYXRlTmV3R3JvdXBGb3JIaWdobGlnaHQgOiBib29sOwogZW51bSBjbGFzcyBE
T01QYXN0ZUFjY2Vzc1Jlc3BvbnNlIDogdWludDhfdDsKK2VudW0gY2xhc3MgRGF0YURldGVjdG9y
VHlwZSA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIERyYWdBcHBsaWNhdGlvbkZsYWdzIDogdWludDhf
dDsKIGVudW0gY2xhc3MgRHJhZ0hhbmRsaW5nTWV0aG9kIDogdWludDhfdDsKIGVudW0gY2xhc3Mg
RXZlbnRNYWtlc0dhbWVwYWRzVmlzaWJsZSA6IGJvb2w7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCmluZGV4IGIzYzQ4YmJiNGEyOGI4
MGNkY2MxYjg5ODAwNzgwYTdkYjkwYTI1MTYuLmRmODEwMmIwYjgzMjliNDVjNjFiN2QzMWFjOWY2
NDIwZTVkZmYxMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9XZWJQYWdlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9XZWJQYWdlTWFjLm1tCkBAIC04OCw2ICs4OCw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1Jl
bmRlclZpZXcuaD4KICNpbXBvcnQgPFdlYkNvcmUvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL1Njcm9sbFZpZXcuaD4KKyNpbXBvcnQgPFdlYkNvcmUvU2V0dGlu
Z3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvU3R5bGVJbmhlcml0ZWREYXRhLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL1RleHRJdGVyYXRvci5oPgogI2ltcG9ydCA8V2ViQ29yZS9WaXNpYmxlVW5pdHMuaD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441297</attachid>
            <date>2021-10-14 15:55:42 -0700</date>
            <delta_ts>2021-10-14 16:07:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231634-20211014155541.patch</filename>
            <type>text/plain</type>
            <size>112989</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MTg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWYyMDY1MzFhN2E0YmUw
YjdjN2QxM2JlZTY3NjY4ZmY4MjEzMGY4Mi4uZWY5NzFkNTBiMDc1NTM2NTgwZWQ5NWVkMjQzYzVh
YmRjYzM0MmNlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2MyBAQAorMjAyMS0xMC0xMiAgSmVy
IE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBbQnVpbGQtdGltZSBwZXJm
XSBGb3J3YXJkLWRlY2xhcmUgbW9yZSB0aGluZ3MgaW4gU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5o
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE2MzQK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIHRo
ZSBTZXR0aW5nczo6VmFsdWVzIHN0cnVjdCBvdXRzaWRlIG9mIFNldHRpbmdzIHNvIHRoYXQgaXQg
Y2FuIGJlIGZvcndhcmQgZGVjbGFyZWQuCisKKyAgICAgICAgQWRkIHRoZSBmb2xsb3dpbmcgaGVh
ZGVycyB0byBjb250YWluIGlubGluZWQgZGVmaW5pdGlvbnMgb2YgY2xhc3MgbWV0aG9kczoKKyAg
ICAgICAgLSBTY3JpcHRFeGVjdXRpb25Db250ZXh0SW5saW5lcy5oCisgICAgICAgIC0gSURCQWN0
aXZlRE9NT2JqZWN0SW5saW5lcy5oCisKKyAgICAgICAgTW92ZSBpbmxpbmVkIG1ldGhvZHMgaW50
byB0aGUgbmV3bHkgY3JlYXRlZCBJbmxpbmVzLmggaGVhZGVycyBhbmQgZGVjb3JhdGUgdGhlIGRl
Y2xhcmF0aW9ucworICAgICAgICBvZiB0aG9zZSBtZXRob2RzIHdpdGggYGlubGluZWAuCisKKyAg
ICAgICAgRm9yd2FyZCBkZWNsYXJlIGFsbCB0eXBlcyB1c2VkIGJ5IG1ldGhvZHMgaW4gU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCBhbmQgcmVtb3ZlIHRob3NlIGhlYWRlcnMsCisgICAgICAgIGFuZCBy
ZS1hZGQgdGhvc2UgaGVhZGVycyBkaXJlY3RseSB0byB0aGUgc291cmNlIGZpbGVzIHdoaWNoIHJl
cXVpcmUgdGhlbS4KKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICogTW9kdWxl
cy9iZWFjb24vTmF2aWdhdG9yQmVhY29uLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL2NhY2hlL0RP
TUNhY2hlRW5naW5lLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL2NhY2hlL0RPTUNhY2hlU3RvcmFn
ZS5jcHA6CisgICAgICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuY3BwOgorICAgICAg
ICAqIE1vZHVsZXMvZ2FtZXBhZC9OYXZpZ2F0b3JHYW1lcGFkLmNwcDoKKyAgICAgICAgKiBNb2R1
bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4
ZWRkYi9JREJBY3RpdmVET01PYmplY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkFjdGl2ZURP
TU9iamVjdDo6b3JpZ2luVGhyZWFkIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OklEQkFjdGl2ZURPTU9iamVjdDo6cGVyZm9ybUNhbGxiYWNrT25PcmlnaW5UaHJlYWQpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6SURCQWN0aXZlRE9NT2JqZWN0OjpjYWxsRnVuY3Rpb25P
bk9yaWdpblRocmVhZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpJREJBY3RpdmVET01P
YmplY3Q6OklEQkFjdGl2ZURPTU9iamVjdCk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy9p
bmRleGVkZGIvY2xpZW50L1RyYW5zYWN0aW9uT3BlcmF0aW9uLmg6CisgICAgICAgICogTW9kdWxl
cy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
c291cmNlL01lZGlhU291cmNlLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtVHJhY2suY3BwOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0
YUNoYW5uZWwuY3BwOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVx
dWVzdC5jcHA6CisgICAgICAgICogTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5j
cHA6CisgICAgICAgICogTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHA6
CisgICAgICAgICogTW9kdWxlcy9waWN0dXJlaW5waWN0dXJlL0hUTUxWaWRlb0VsZW1lbnRQaWN0
dXJlSW5QaWN0dXJlLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL3JlbW90ZXBsYXliYWNrL1JlbW90
ZVBsYXliYWNrLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRl
eHQuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0lJUkZpbHRlck5vZGUuY3BwOgorICAg
ICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4dC5jcHA6CisgICAgICAg
ICogTW9kdWxlcy93ZWJkYXRhYmFzZS9ET01XaW5kb3dXZWJEYXRhYmFzZS5jcHA6CisgICAgICAg
ICogTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHA6CisgICAgICAgICogTW9kdWxlcy93
ZWJkYXRhYmFzZS9EYXRhYmFzZU1hbmFnZXIuY3BwOgorICAgICAgICAqIE1vZHVsZXMvd2Vic29j
a2V0cy9XZWJTb2NrZXQuY3BwOgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2Nr
ZXRDaGFubmVsLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSU3lzdGVtLmNwcDoK
KyAgICAgICAgKiBTY3JpcHRzL1NldHRpbmdzVGVtcGxhdGVzL1NldHRpbmdzLmNwcC5lcmI6Cisg
ICAgICAgICogU2NyaXB0cy9TZXR0aW5nc1RlbXBsYXRlcy9TZXR0aW5ncy5oLmVyYjoKKyAgICAg
ICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChHZW5lcmF0ZVJ1bnRpbWVFbmFibGVDb25k
aXRpb25hbFN0cmluZyk6CisgICAgICAgICogY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVu
c2lvbnNCYWNrZW5kLmNwcDoKKyAgICAgICAgKiBjcnlwdG8vU3VidGxlQ3J5cHRvLmNwcDoKKyAg
ICAgICAgKiBjc3MvQ1NTRm9udEZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udEZh
Y2U6OkNTU0ZvbnRGYWNlKToKKyAgICAgICAgKiBjc3MvQ1NTRm9udEZhY2UuaDoKKyAgICAgICAg
KiBjc3MvQ1NTRm9udFNlbGVjdG9yLmg6CisgICAgICAgICogY3NzL0NTU0tleWZyYW1lc1J1bGUu
Y3BwOgorICAgICAgICAqIGNzcy9NZWRpYUxpc3QuY3BwOgorICAgICAgICAqIGNzcy9TdHlsZVNo
ZWV0Q29udGVudHMuY3BwOgorICAgICAgICAqIGRvbS9BY3RpdmVET01PYmplY3QuaDoKKyAgICAg
ICAgKiBkb20vRGV2aWNlTW90aW9uRXZlbnQuY3BwOgorICAgICAgICAqIGRvbS9EZXZpY2VPcmll
bnRhdGlvbkV2ZW50LmNwcDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RG9jdW1lbnQ6OnNldHRpbmdzVmFsdWVzIGNvbnN0KToKKyAgICAgICAgKiBkb20v
RG9jdW1lbnQuaDoKKyAgICAgICAgKiBkb20vRW1wdHlTY3JpcHRFeGVjdXRpb25Db250ZXh0Lmg6
CisgICAgICAgICogZG9tL0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcDoKKyAgICAgICAgKiBkb20vTG9h
ZGFibGVDbGFzc2ljU2NyaXB0LmNwcDoKKyAgICAgICAgKiBkb20vTW91c2VFdmVudC5jcHA6Cisg
ICAgICAgICogZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uaDoKKyAgICAgICAgKFdl
YkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb246OmRlbGl2ZXJ5T3B0aW9ucyBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uOjptdXRh
dGlvblR5cGVzIGNvbnN0KToKKyAgICAgICAgKiBkb20vU2NyaXB0RWxlbWVudC5jcHA6CisgICAg
ICAgICogZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwOgorICAgICAgICAqIGRvbS9TY3Jp
cHRFeGVjdXRpb25Db250ZXh0Lmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25D
b250ZXh0Ojpwb3N0Q3Jvc3NUaHJlYWRUYXNrKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmFkZFRpbWVvdXQpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6cmVtb3ZlVGltZW91dCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpmaW5kVGltZW91dCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpBZGRD
b25zb2xlTWVzc2FnZVRhc2s6OkFkZENvbnNvbGVNZXNzYWdlVGFzayk6IERlbGV0ZWQuCisgICAg
ICAgICogZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmNwcDoKKyAgICAgICAgKiBmaWxlYXBpL0Jsb2Iu
aDoKKyAgICAgICAgKiBodG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcDoKKyAgICAgICAgKiBodG1s
L0hUTUxDYW52YXNFbGVtZW50LmNwcDoKKyAgICAgICAgKiBodG1sL0hUTUxFbGVtZW50LmNwcDoK
KyAgICAgICAgKiBodG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwOgorICAgICAgICAqIGh0
bWwvSFRNTEZvcm1FbGVtZW50LmNwcDoKKyAgICAgICAgKiBodG1sL0hUTUxIdG1sRWxlbWVudC5j
cHA6CisgICAgICAgICogaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5jcHA6CisgICAgICAgICogaHRt
bC9IVE1MTGlua0VsZW1lbnQuY3BwOgorICAgICAgICAqIGh0bWwvSFRNTFBsdWdJbkVsZW1lbnQu
Y3BwOgorICAgICAgICAqIGh0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwOgorICAgICAgICAqIGh0
bWwvSFRNTFNvdXJjZUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL1RleHRGaWVsZElucHV0VHlw
ZS5jcHA6CisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFz
ZS5jcHA6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHA6
CisgICAgICAgICogaHRtbC90cmFjay9UcmFja0Jhc2UuY3BwOgorICAgICAgICAqIGluc3BlY3Rv
ci9hZ2VudHMvcGFnZS9QYWdlRGVidWdnZXJBZ2VudC5jcHA6CisgICAgICAgICogbG9hZGVyL0Ny
b3NzT3JpZ2luRW1iZWRkZXJQb2xpY3kuY3BwOgorICAgICAgICAqIGxvYWRlci9Dcm9zc09yaWdp
blByZWZsaWdodENoZWNrZXIuY3BwOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5j
cHA6CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHA6CisgICAg
ICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKiBsb2FkZXIvSW1hZ2VMb2Fk
ZXIuY3BwOgorICAgICAgICAqIGxvYWRlci9MaW5rTG9hZGVyLmNwcDoKKyAgICAgICAgKiBsb2Fk
ZXIvTWVkaWFSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgICogbG9hZGVyL01peGVkQ29udGVu
dENoZWNrZXIuY3BwOgorICAgICAgICAqIGxvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcDoK
KyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAqIGxvYWRlci9T
dWJyZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgICogbG9hZGVyL1RleHRUcmFja0xvYWRlci5j
cHA6CisgICAgICAgICogbG9hZGVyL1RocmVhZGFibGVMb2FkZXIuY3BwOgorICAgICAgICAqIGxv
YWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwOgorICAgICAgICAqIGxvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgICogcGFnZS9ET01UaW1l
ci5jcHA6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAqIHBhZ2UvRHJh
Z0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAqIHBhZ2UvRXZlbnRTb3VyY2UuY3BwOgorICAgICAg
ICAqIHBhZ2UvRnJhbWUuY3BwOgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAg
ICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAqIHBhZ2UvUG9pbnRlckxvY2tDb250cm9sbGVy
LmNwcDoKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLnlhbWw6CisgICAgICAgICogcGFnZS9jc3Av
Q29udGVudFNlY3VyaXR5UG9saWN5LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9WaWRl
b0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5tbToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5jcHA6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxp
c3RCb3guY3BwOgorICAgICAgICAqIHJlbmRlcmluZy9zaGFwZXMvU2hhcGVPdXRzaWRlSW5mby5j
cHA6CisgICAgICAgICogc3R5bGUvU3R5bGVGb250U2l6ZUZ1bmN0aW9ucy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZTo6Y29tcHV0ZWRGb250U2l6ZUZyb21TcGVjaWZpZWRTaXplKToKKyAg
ICAgICAgKFdlYkNvcmU6OlN0eWxlOjpmb250U2l6ZUZvcktleXdvcmQpOgorICAgICAgICAqIHN0
eWxlL1N0eWxlRm9udFNpemVGdW5jdGlvbnMuaDoKKyAgICAgICAgKiBzdHlsZS9TdHlsZVNjb3Bl
UnVsZVNldHMuY3BwOgorICAgICAgICAqIHN2Zy9TVkdEb2N1bWVudEV4dGVuc2lvbnMuY3BwOgor
ICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKiB0ZXN0aW5nL01vY2tQ
YWdlT3ZlcmxheUNsaWVudC5jcHA6CisgICAgICAgICogdGVzdGluZy9XZWJGYWtlWFJEZXZpY2Uu
aDoKKyAgICAgICAgKiB0ZXN0aW5nL1dlYlhSVGVzdC5oOgorICAgICAgICAqIHdvcmtlcnMvV29y
a2VyR2xvYmFsU2NvcGUuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlw
dENvbnRyb2xsZXIuY3BwOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyVGhyZWFkLmg6CisgICAg
ICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpnZW5lcmF0ZVdvcmtlclBhcmFtZXRlcnMpOgorICAgICAgICAoV2Vi
Q29yZTo6U2VydmljZVdvcmtlclRocmVhZDo6U2VydmljZVdvcmtlclRocmVhZCk6CisgICAgICAg
ICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5oOgorICAgICAg
ICAqIHdvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5oOgorICAgICAgICAqIHdvcmtsZXRzL1dv
cmtsZXRQYXJhbWV0ZXJzLmg6CisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDoKKyAg
ICAgICAgKiB4bWwvWFNMVFByb2Nlc3NvckxpYnhzbHQuY3BwOgorICAgICAgICAqIHhtbC9wYXJz
ZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcDoKKwogMjAyMS0xMC0xNCAgQWxhbiBCdWp0
YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bSUZDXSB0cnlCcmVha2luZ1Rl
eHRSdW4gc2hvdWxkIG5vdCB0YWtlIHN0ZDo6bnVsbG9wdCAiYXZhaWxhYmxlIHdpZHRoIiB0byBp
bmRpY2F0ZSB0aGF0IHRoZSBydW4gaXMgbm90IG92ZXJmbG93aW5nCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDFiMjEx
NmVlYTkwYWFiYjEwNzM1ZjNlYjA3ZjgxNDZlMDQyMTNkZTMuLjcyNzA5NTBhMWFiZDBhYTRkNTFl
MzQ2YTUyZjE1MTIzOGI3YjZmOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMTAt
MTQgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgW0J1aWxkLXRp
bWUgcGVyZl0gRm9yd2FyZC1kZWNsYXJlIG1vcmUgdGhpbmdzIGluIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQuaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjMxNjM0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Rm9yd2FyZC1kZWNsYXJlIERhdGFEZXRlY3RvclR5cGUuCisKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oOgorCiAyMDIxLTEwLTE0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CiAKICAgICAgICAgW1dLV2ViVmlldyBfbG9hZFNlcnZpY2VXb3JrZXJVUkxdIGVu
ZHMgdXAgbG93ZXJjYXNpbmcgVVJMIGhvc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hl
YWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IGIwNjU3ZTFj
YzlkZTU5YjA5Mjk4NTlkNDkxNzJlZjE5Y2ZkOGU2MzEuLjk3MjQxZjI2OTVmZTA1NzdiNTNlNTU4
YWNmMmQ3MmQ1ZDA1MjE0ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21h
a2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtNjYsNiArNjYsNyBAQCBz
ZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgTW9kdWxlcy9oaWdobGln
aHQvSGlnaGxpZ2h0VmlzaWJpbGl0eS5oCiAKICAgICBNb2R1bGVzL2luZGV4ZWRkYi9JREJBY3Rp
dmVET01PYmplY3QuaAorICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkFjdGl2ZURPTU9iamVjdElu
bGluZXMuaAogICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlSWRlbnRpZmllci5oCiAg
ICAgTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3QuaAog
ICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkdldEFsbFJlc3VsdC5oCkBAIC01NTAsNiArNTUxLDcg
QEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIGRvbS9TY3JpcHRF
bGVtZW50LmgKICAgICBkb20vU2NyaXB0RWxlbWVudENhY2hlZFNjcmlwdEZldGNoZXIuaAogICAg
IGRvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKKyAgICBkb20vU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dElubGluZXMuaAogICAgIGRvbS9TZWN1cml0eUNvbnRleHQuaAogICAgIGRvbS9TZWN1cml0
eVBvbGljeVZpb2xhdGlvbkV2ZW50LmgKICAgICBkb20vU2VsZWN0aW9uUmVzdG9yYXRpb25Nb2Rl
LmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYmVhY29uL05hdmlnYXRvckJl
YWNvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2JlYWNvbi9OYXZpZ2F0b3JCZWFjb24u
Y3BwCmluZGV4IDY5ZGVjNWNiNmZiYzViZjlkOGI3MThjY2UyMTAxN2EzZGJiN2Q5NGYuLmI5Yjc0
ODE2ZGJmMjk4YjU0YTU1ZjdjNDc4ZmY5NGE5ZWZjNDYwYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvYmVhY29uL05hdmlnYXRvckJlYWNvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9iZWFjb24vTmF2aWdhdG9yQmVhY29uLmNwcApAQCAtMzMsNiArMzMsNyBA
QAogI2luY2x1ZGUgIkhUVFBQYXJzZXJzLmgiCiAjaW5jbHVkZSAiTmF2aWdhdG9yLmgiCiAjaW5j
bHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPgog
I2luY2x1ZGUgPHd0Zi9VUkwuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZUVuZ2luZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlRW5naW5lLmNwcAppbmRleCAyNTkxNGI0MGJi
MjM4M2EwNzg4MDRmODliMTFiNDBkODk3MGI0MzA2Li5iZTk3MmFhYjUyYTY5Y2EzY2YwMzcwMjEw
NzRiOTAzMjkzNjE3MTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hl
L0RPTUNhY2hlRW5naW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RP
TUNhY2hlRW5naW5lLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkV4Y2VwdGlvbi5o
IgogI2luY2x1ZGUgIkhUVFBQYXJzZXJzLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dC5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2Fj
aGUvRE9NQ2FjaGVTdG9yYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvRE9N
Q2FjaGVTdG9yYWdlLmNwcAppbmRleCA4YTljYjFmYzg3NWYyMzU3NzkzYTU4NjUwZTExZDllMWFm
OWEyOGQ4Li45YTI0NTAzMjY5NDA3NGJhMWI1NDg3ZTc2YmVjZDQ5YmEwOGZiYTJjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlU3RvcmFnZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZVN0b3JhZ2UuY3BwCkBAIC0z
Myw2ICszMyw3IEBACiAjaW5jbHVkZSAiSlNGZXRjaFJlc3BvbnNlLmgiCiAjaW5jbHVkZSAiU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCisjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVl
c3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuY3BwCmlu
ZGV4IGE5NTQ3NDBkM2U0M2NkZTMxMjBjMTMzNWI2MmQ3MTRiNzZkMTFhZmUuLjk5ODQwY2JjNjFk
MzdmOGFmNjFmMTk1ZWNlYmI0MDZlNmFiMDVjYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2ZldGNoL0ZldGNoUmVxdWVzdC5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJT
Y3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNp
bmNsdWRlICJTZXR0aW5ncy5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBl
cy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZ2FtZXBhZC9OYXZpZ2F0b3JHYW1lcGFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZ2FtZXBhZC9OYXZpZ2F0b3JHYW1lcGFkLmNwcAppbmRleCA3ODFmMTZmNjgwMjYwZTMw
MmVhOTY4MGE1OWNkM2FmZWQ5NDE4NTcwLi5lYjA2ODdhMDUxMWVhNmNmNGNhNjEwMjJkZjRiZGZi
ZTU4Nzk4Mjg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dhbWVwYWQvTmF2
aWdhdG9yR2FtZXBhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nYW1lcGFkL05h
dmlnYXRvckdhbWVwYWQuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiR2FtZXBhZFBy
b3ZpZGVyLmgiCiAjaW5jbHVkZSAiTmF2aWdhdG9yLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1HYW1l
cGFkLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9s
b2NhdGlvbi9HZW9sb2NhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0
aW9uL0dlb2xvY2F0aW9uLmNwcAppbmRleCBlMjcyZWNkZWYyYTdkMDY2YTEyMWVjMzY2YTk5MDZk
NGI4ZGIxNGM3Li4zMzBlM2Q3ZjY5YjM4MWMzYzU3MTM3NzliNDU3ZmY2NTAxZjVhMTY2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNw
cApAQCAtNDQsNiArNDQsNyBAQAogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJSdW50aW1l
QXBwbGljYXRpb25DaGVja3MuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgorI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxs
b2NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0
cmluZ0J1aWxkZXIuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQkFjdGl2ZURPTU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJBY3RpdmVET01PYmplY3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgzMTQ0NWI5YmQ0Y2FlODBj
NzFmY2JmZDlhNDQ5OTI5MTIyMGE0ZDAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJBY3RpdmVET01PYmplY3QuY3BwCkBAIC0wLDAgKzEsNTAg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSURCQWN0aXZl
RE9NT2JqZWN0LmgiCisKKyNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworSURCQWN0aXZlRE9NT2JqZWN0OjpJREJBY3RpdmVET01PYmplY3QoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKKyAgICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0
KQorICAgICwgbV9vcmlnaW5UaHJlYWQoVGhyZWFkOjpjdXJyZW50KCkpCit7CisgICAgQVNTRVJU
KGNvbnRleHQpOworfQorCitJREJBY3RpdmVET01PYmplY3Q6On5JREJBY3RpdmVET01PYmplY3Qo
KSA9IGRlZmF1bHQ7CisKK3ZvaWQgSURCQWN0aXZlRE9NT2JqZWN0Ojpjb250ZXh0RGVzdHJveWVk
KCkKK3sKKyAgICBBU1NFUlQoY2FuQ3VycmVudFRocmVhZEFjY2Vzc1RocmVhZExvY2FsRGF0YShv
cmlnaW5UaHJlYWQoKSkpOworCisgICAgTG9ja2VyPExvY2s+IGxvY2sobV9zY3JpcHRFeGVjdXRp
b25Db250ZXh0TG9jayk7CisgICAgQWN0aXZlRE9NT2JqZWN0Ojpjb250ZXh0RGVzdHJveWVkKCk7
Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QkFjdGl2ZURPTU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
QWN0aXZlRE9NT2JqZWN0LmgKaW5kZXggZWI2ODQwOGRjNDFiNWZhZDMyN2EyN2NkNWIwM2E1MzIy
M2E5ZDdlMC4uNTgzYjcyZjg5YTY4MWNiY2I4MTU1ZDMxYmY3YTUzZmI4YzhkNzQ1YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQWN0aXZlRE9NT2JqZWN0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQWN0aXZlRE9NT2Jq
ZWN0LmgKQEAgLTI2LDY2ICsyNiwzMCBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJBY3Rp
dmVET01PYmplY3QuaCIKLSNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCi0jaW5j
bHVkZSA8d3RmL1RocmVhZGluZy5oPgorCituYW1lc3BhY2UgV1RGIHsKK2NsYXNzIFRocmVhZDsK
K30KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBJREJBY3RpdmVET01PYmplY3QgOiBw
dWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKK2NsYXNzIFdFQkNPUkVfRVhQT1JUIElEQkFjdGl2ZURP
TU9iamVjdCA6IHB1YmxpYyBBY3RpdmVET01PYmplY3QgewogcHVibGljOgotICAgIFRocmVhZCYg
b3JpZ2luVGhyZWFkKCkgY29uc3QgeyByZXR1cm4gbV9vcmlnaW5UaHJlYWQuZ2V0KCk7IH0KLQot
ICAgIHZvaWQgY29udGV4dERlc3Ryb3llZCgpIGZpbmFsIHsKLSAgICAgICAgQVNTRVJUKGNhbkN1
cnJlbnRUaHJlYWRBY2Nlc3NUaHJlYWRMb2NhbERhdGEob3JpZ2luVGhyZWFkKCkpKTsKKyAgICB2
aXJ0dWFsIH5JREJBY3RpdmVET01PYmplY3QoKTsKKyAgICBXVEY6OlRocmVhZCYgb3JpZ2luVGhy
ZWFkKCkgY29uc3QgeyByZXR1cm4gbV9vcmlnaW5UaHJlYWQuZ2V0KCk7IH0KIAotICAgICAgICBM
b2NrZXI8TG9jaz4gbG9jayhtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHRMb2NrKTsKLSAgICAgICAg
QWN0aXZlRE9NT2JqZWN0Ojpjb250ZXh0RGVzdHJveWVkKCk7Ci0gICAgfQorICAgIHZvaWQgY29u
dGV4dERlc3Ryb3llZCgpIGZpbmFsOwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5h
bWUuLi4gUGFyYW1ldGVycywgdHlwZW5hbWUuLi4gQXJndW1lbnRzPgotICAgIHZvaWQgcGVyZm9y
bUNhbGxiYWNrT25PcmlnaW5UaHJlYWQoVCYgb2JqZWN0LCB2b2lkIChUOjoqbWV0aG9kKShQYXJh
bWV0ZXJzLi4uKSwgQXJndW1lbnRzJiYuLi4gYXJndW1lbnRzKQotICAgIHsKLSAgICAgICAgQVNT
RVJUKCZvcmlnaW5UaHJlYWQoKSA9PSAmb2JqZWN0Lm9yaWdpblRocmVhZCgpKTsKLQotICAgICAg
ICBpZiAoY2FuQ3VycmVudFRocmVhZEFjY2Vzc1RocmVhZExvY2FsRGF0YShvYmplY3Qub3JpZ2lu
VGhyZWFkKCkpKSB7Ci0gICAgICAgICAgICAob2JqZWN0LiptZXRob2QpKHN0ZDo6Zm9yd2FyZDxB
cmd1bWVudHM+KGFyZ3VtZW50cykuLi4pOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9
Ci0KLSAgICAgICAgTG9ja2VyPExvY2s+IGxvY2sobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0TG9j
ayk7Ci0KLSAgICAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCA9IHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKTsKLSAgICAgICAgaWYgKCFjb250ZXh0KQotICAgICAgICAgICAgcmV0
dXJuOwotCi0gICAgICAgIGNvbnRleHQtPnBvc3RDcm9zc1RocmVhZFRhc2sob2JqZWN0LCBtZXRo
b2QsIGFyZ3VtZW50cy4uLik7Ci0gICAgfQotCi0gICAgdm9pZCBjYWxsRnVuY3Rpb25Pbk9yaWdp
blRocmVhZChXVEY6OkZ1bmN0aW9uPHZvaWQgKCk+JiYgZnVuY3Rpb24pCi0gICAgewotICAgICAg
ICBpZiAoY2FuQ3VycmVudFRocmVhZEFjY2Vzc1RocmVhZExvY2FsRGF0YShvcmlnaW5UaHJlYWQo
KSkpIHsKLSAgICAgICAgICAgIGZ1bmN0aW9uKCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgIH0KLQotICAgICAgICBMb2NrZXI8TG9jaz4gbG9jayhtX3NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRMb2NrKTsKLQotICAgICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0ID0gc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpOwotICAgICAgICBpZiAoIWNvbnRleHQpCi0gICAgICAgICAg
ICByZXR1cm47CisgICAgaW5saW5lIHZvaWQgcGVyZm9ybUNhbGxiYWNrT25PcmlnaW5UaHJlYWQo
VCYsIHZvaWQgKFQ6OiptZXRob2QpKFBhcmFtZXRlcnMuLi4pLCBBcmd1bWVudHMmJi4uLik7CiAK
LSAgICAgICAgY29udGV4dC0+cG9zdFRhc2soV1RGTW92ZShmdW5jdGlvbikpOwotICAgIH0KKyAg
ICBpbmxpbmUgdm9pZCBjYWxsRnVuY3Rpb25Pbk9yaWdpblRocmVhZChXVEY6OkZ1bmN0aW9uPHZv
aWQoKT4mJik7CiAKIHByb3RlY3RlZDoKLSAgICBJREJBY3RpdmVET01PYmplY3QoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogY29udGV4dCkKLSAgICAgICAgOiBBY3RpdmVET01PYmplY3QoY29udGV4
dCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChjb250ZXh0KTsKLSAgICB9CisgICAgSURCQWN0aXZl
RE9NT2JqZWN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKIAogcHJpdmF0ZToKLSAgICBSZWY8
VGhyZWFkPiBtX29yaWdpblRocmVhZCB7IFRocmVhZDo6Y3VycmVudCgpIH07CisgICAgUmVmPFRo
cmVhZD4gbV9vcmlnaW5UaHJlYWQ7CiAgICAgTG9jayBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHRM
b2NrOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCQWN0aXZlRE9NT2JqZWN0SW5saW5lcy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCQWN0aXZlRE9NT2JqZWN0SW5saW5lcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY0NTQzZjk5ZmE2
YmJmNzkyOGFjNTY4MmI3OWIyMWMzNjczNGEzYzkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJBY3RpdmVET01PYmplY3RJbmxpbmVzLmgKQEAg
LTAsMCArMSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiSURC
QWN0aXZlRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dElubGlu
ZXMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBl
bmFtZS4uLiBQYXJhbWV0ZXJzLCB0eXBlbmFtZS4uLiBBcmd1bWVudHM+Cit2b2lkIElEQkFjdGl2
ZURPTU9iamVjdDo6cGVyZm9ybUNhbGxiYWNrT25PcmlnaW5UaHJlYWQoVCYgb2JqZWN0LCB2b2lk
IChUOjoqbWV0aG9kKShQYXJhbWV0ZXJzLi4uKSwgQXJndW1lbnRzJiYuLi4gYXJndW1lbnRzKQor
eworICAgIEFTU0VSVCgmb3JpZ2luVGhyZWFkKCkgPT0gJm9iamVjdC5vcmlnaW5UaHJlYWQoKSk7
CisKKyAgICBpZiAoY2FuQ3VycmVudFRocmVhZEFjY2Vzc1RocmVhZExvY2FsRGF0YShvYmplY3Qu
b3JpZ2luVGhyZWFkKCkpKSB7CisgICAgICAgIChvYmplY3QuKm1ldGhvZCkoc3RkOjpmb3J3YXJk
PEFyZ3VtZW50cz4oYXJndW1lbnRzKS4uLik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBMb2NrZXI8TG9jaz4gbG9jayhtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHRMb2NrKTsKKworICAg
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0
KCk7CisgICAgaWYgKCFjb250ZXh0KQorICAgICAgICByZXR1cm47CisKKyAgICBjb250ZXh0LT5w
b3N0Q3Jvc3NUaHJlYWRUYXNrKG9iamVjdCwgbWV0aG9kLCBhcmd1bWVudHMuLi4pOworfQorCit2
b2lkIElEQkFjdGl2ZURPTU9iamVjdDo6Y2FsbEZ1bmN0aW9uT25PcmlnaW5UaHJlYWQoV1RGOjpG
dW5jdGlvbjx2b2lkKCk+JiYgZnVuY3Rpb24pCit7CisgICAgaWYgKGNhbkN1cnJlbnRUaHJlYWRB
Y2Nlc3NUaHJlYWRMb2NhbERhdGEob3JpZ2luVGhyZWFkKCkpKSB7CisgICAgICAgIGZ1bmN0aW9u
KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBMb2NrZXI8TG9jaz4gbG9jayhtX3Nj
cmlwdEV4ZWN1dGlvbkNvbnRleHRMb2NrKTsKKworICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IGNvbnRleHQgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CisgICAgaWYgKCFjb250ZXh0KQor
ICAgICAgICByZXR1cm47CisKKyAgICBjb250ZXh0LT5wb3N0VGFzayhXVEZNb3ZlKGZ1bmN0aW9u
KSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9UcmFuc2FjdGlvbk9wZXJhdGlvbi5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L1RyYW5zYWN0aW9uT3BlcmF0aW9u
LmgKaW5kZXggYjgyODQ4NmMwZjRhZDMyOWE4MzFjMmNmZjFiZDJhMjM3NmRhN2UwOS4uODc1OWY2
YzVhOWI0OTdhNzU5OWUwZmQwOGQxODZkMjNlMTdhYWQ3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L1RyYW5zYWN0aW9uT3BlcmF0aW9uLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L1RyYW5zYWN0aW9uT3Bl
cmF0aW9uLmgKQEAgLTI1LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJJ
REJBY3RpdmVET01PYmplY3RJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSURCUmVxdWVzdC5oIgogI2lu
Y2x1ZGUgIklEQlJlcXVlc3REYXRhLmgiCiAjaW5jbHVkZSAiSURCUmVzb3VyY2VJZGVudGlmaWVy
LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRp
YVNlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFT
ZXNzaW9uLmNwcAppbmRleCBmYWU4ZTMzMGM1YmFkYmY2MTE4ODI0OGI1YThkNGJkYjlkNTQ4ZGMw
Li5hZmU3Y2EwYjdkNzRiNWUwZGM5MDQ1OWZkMTQ2OWY5ZDIwZGM4YTg1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5jcHAKQEAg
LTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlICJOYXZpZ2F0b3IuaCIKICNpbmNsdWRlICJQYWdlLmgi
CiAjaW5jbHVkZSAiUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmgiCisjaW5jbHVkZSAiVXNl
ckdlc3R1cmVJbmRpY2F0b3IuaCIKICNpbmNsdWRlIDx3dGYvSlNPTlZhbHVlcy5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAKaW5kZXggYWI1OWM2
OTJhNDU2ODU0MDE3MmNhNzBjOWZlYTQyZDVhMDBiYTJmNi4uM2E5MDliNGZjNTdiOTM2MmJiNzVh
Nzc2MzVlOGVkYWFlYmNmZmM3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcApAQCAt
MzMsOSArMzMsMTEgQEAKICNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgogI2luY2x1
ZGUgIkpTTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcu
aCIKKyNpbmNsdWRlICJNZWRpYU1ldGFkYXRhLmgiCiAjaW5jbHVkZSAiTWVkaWFTZXNzaW9uLmgi
CiAjaW5jbHVkZSAiTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlLmgiCi0jaW5jbHVkZSA8
d3RmL0xvZ2dlci5oPgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorI2luY2x1
ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIuaD4KICNpbmNsdWRlIDx3dGYvU2Vjb25kcy5oPgogCiBzdGF0
aWMgY29uc3QgU2Vjb25kcyBDb21tYW5kVGltZVRvbGVyYW5jZSA9IDUwX21zOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcAppbmRleCAx
MDFlMjMzZGViODg5ODIwMmRhMmI2MmRmNTMxZTU5ZDQyZDEzYThhLi4xNmM5ZDAwNGQzMjdkOGYy
ZjQzNWFlMmY3MGRkNjU1ZWUzNGQyYmE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcApAQCAtNTIsNiArNTIsNyBAQAogI2luY2x1
ZGUgIlRpbWVSYW5nZXMuaCIKICNpbmNsdWRlICJWaWRlb1RyYWNrLmgiCiAjaW5jbHVkZSAiVmlk
ZW9UcmFja0xpc3QuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMuaD4K
ICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtVHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbVRyYWNrLmNwcAppbmRleCAxMzE3MTE5YzNhNzY3YmM2ZmQ5Mzc4NTIwYzM4MWZjYzcxYjc1
ZTM5Li5lOTNiOGU3YzVjYmJkNGZmZDU4N2RjYjdlODk2MWQzYzk2MWU4ZWE4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFj
ay5jcHAKQEAgLTUxLDYgKzUxLDcgQEAKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0
LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJXZWJBdWRpb1NvdXJjZVByb3Zp
ZGVyLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVk
ZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGlu
ZXMuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWwuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5jcHAKaW5kZXggMmIy
ZDc5ZjczZjE3MmMwNTkxYmQ1ZTlhOThkY2UyODE4NGU3ZTAwMi4uMmU3MGFjNmM5MjA1OWM0ZTVm
OWFhYzBjNGZjMTc4YjgzYzZiNmNjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNp
bmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVy
LmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQXJyYXlCdWZmZXJWaWV3Lmg+CisjaW5jbHVk
ZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxv
Y0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRl
c3Ryb3llZC5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vVXNlck1lZGlhUmVxdWVzdC5jcHAKaW5kZXggODUyNWU3ZDg4YzdjZTU1Y2M5MDExNzBmMWQ4
NGJjMjA2Y2I0MWQyMi4uYjRiNDZlZmMwNGYxMWU5NTRlZTNkZThmN2I1M2ZiNmQxZDUzZDE4NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFS
ZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJN
ZWRpYVJlcXVlc3QuY3BwCkBAIC00OCw2ICs0OCw3IEBACiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIK
ICNpbmNsdWRlICJVc2VyTWVkaWFDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiV2luZG93RXZlbnRM
b29wLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVk
ZSA8d3RmL1Njb3BlLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHAKaW5kZXggYjYz
ZmQwODA1YTFiMjZjNWY3ODk0Njc1NDZjN2ExYWJhNDlkYTBhNy4uODg4OTA4YThhMjc5NzlhOTU0
MDVkNDJkNTRmNDYyNjllNDk1Mzk1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHAKQEAgLTQ0LDYgKzQ0LDcgQEAKICNp
bmNsdWRlICJOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2suaCIKICNpbmNsdWRlICJXaW5k
b3dFdmVudExvb3AuaCIKICNpbmNsdWRlICJXaW5kb3dGb2N1c0FsbG93ZWRJbmRpY2F0b3IuaCIK
KyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMuaD4KICNpbmNsdWRlIDx3dGYv
Q29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1l
bnRSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5
bWVudFJlcXVlc3QuY3BwCmluZGV4IGU0NGIzMWMxZTRiMDc4YjAzMzE4YzgyMTk2YjNlZWY4NzAz
MThlZDUuLjVhNmQ4NWU5OTg0YWI4Y2NkMDIyNTM4OWU3NGViM2JjYmM0MzQ5MjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJl
cXVlc3QuY3BwCkBAIC00OCw2ICs0OCw3IEBACiAjaW5jbHVkZSAiUGF5bWVudFJlcXVlc3RVdGls
aXRpZXMuaCIKICNpbmNsdWRlICJQYXltZW50VmFsaWRhdGlvbkVycm9ycy5oIgogI2luY2x1ZGUg
IlNjcmlwdENvbnRyb2xsZXIuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlw
ZXMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU09OT2JqZWN0Lmg+CiAjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvVGhyb3dTY29wZS5oPgogI2luY2x1ZGUgPHd0Zi9BU0NJSUNUeXBlLmg+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BpY3R1cmVpbnBpY3R1cmUvSFRN
TFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9waWN0dXJlaW5waWN0dXJlL0hUTUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlLmNwcApp
bmRleCBiMDA5MGZjNGU1MzQxYjg1MTQzMDE1M2RkYWM5ZjY0NjhkNTY3M2UyLi42NWNiNmY0NGI2
ZGQ1OWE3ODk0YjVjNTJjMjU2ODY2MGNmYmYyMTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3BpY3R1cmVpbnBpY3R1cmUvSFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1
cmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGljdHVyZWlucGljdHVyZS9IVE1M
VmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZS5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNs
dWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiUGljdHVyZUluUGljdHVyZVN1cHBvcnQuaCIKICNp
bmNsdWRlICJQaWN0dXJlSW5QaWN0dXJlV2luZG93LmgiCisjaW5jbHVkZSAiVXNlckdlc3R1cmVJ
bmRpY2F0b3IuaCIKICNpbmNsdWRlICJWaWRlb1RyYWNrTGlzdC5oIgogI2luY2x1ZGUgPHd0Zi9J
c29NYWxsb2NJbmxpbmVzLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
cmVtb3RlcGxheWJhY2svUmVtb3RlUGxheWJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9yZW1vdGVwbGF5YmFjay9SZW1vdGVQbGF5YmFjay5jcHAKaW5kZXggNGExNTViMGE0NWFhMmQ1
NjE2MTAzYTI5M2FlZTc0MjI3ZTIwY2NmNC4uM2ViMTlmNjhkMzY1ZjA5YmY3ZmU4NThlZTI0YmY1
ZmUyNmRjMzI0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9yZW1vdGVwbGF5
YmFjay9SZW1vdGVQbGF5YmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9yZW1v
dGVwbGF5YmFjay9SZW1vdGVQbGF5YmFjay5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRl
ICJNZWRpYUVsZW1lbnRTZXNzaW9uLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5YmFja1RhcmdldC5o
IgogI2luY2x1ZGUgIlJlbW90ZVBsYXliYWNrQXZhaWxhYmlsaXR5Q2FsbGJhY2suaCIKKyNpbmNs
dWRlICJVc2VyR2VzdHVyZUluZGljYXRvci5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxp
bmVzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuY3BwCmluZGV4IDY0ZTNkMTY2ODBhM2Ux
MjhkMGZiMTMzNDFjMGFlMmU1NTdkYmJhYjQuLjc2NWY5ZTFiMzA3OGVjYmY5YzNhMWU3YzE3YWMy
OTIxNzE3Mjg5MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QmFzZUF1ZGlvQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9CYXNlQXVkaW9Db250ZXh0LmNwcApAQCAtODcxLDcgKzg3MSw3IEBAIGNvbnN0IFNlY3VyaXR5
T3JpZ2luKiBCYXNlQXVkaW9Db250ZXh0OjpvcmlnaW4oKSBjb25zdAogICAgIHJldHVybiBtX3Nj
cmlwdEV4ZWN1dGlvbkNvbnRleHQgPyBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPnNlY3VyaXR5
T3JpZ2luKCkgOiBudWxscHRyOwogfQogCi12b2lkIEJhc2VBdWRpb0NvbnRleHQ6OmFkZENvbnNv
bGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0
IFN0cmluZyYgbWVzc2FnZSkKK3ZvaWQgQmFzZUF1ZGlvQ29udGV4dDo6YWRkQ29uc29sZU1lc3Nh
Z2UoSlNDOjpNZXNzYWdlU291cmNlIHNvdXJjZSwgSlNDOjpNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSkKIHsKICAgICBpZiAobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0
KQogICAgICAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmFkZENvbnNvbGVNZXNzYWdlKHNv
dXJjZSwgbGV2ZWwsIG1lc3NhZ2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuaAppbmRleCA0YWZmYWMzM2UzNDI0YzNmYWI1YWE1YjJi
ZWQwZDc0NDc2NzIyZmQ1Li4yOTAwNjdhYTQ1NmI0OTZlMGRjZDgwYWVkMWJlZGMxYzI4YzkwNWM3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0Nv
bnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0Nv
bnRleHQuaApAQCAtMjE0LDcgKzIxNCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHBvc3RUYXNrKEZ1
bmN0aW9uPHZvaWQoKT4mJik7CiAgICAgYm9vbCBpc1N0b3BwZWQoKSBjb25zdCB7IHJldHVybiBt
X2lzU3RvcFNjaGVkdWxlZDsgfQogICAgIGNvbnN0IFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4oKSBj
b25zdDsKLSAgICB2b2lkIGFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VM
ZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKKyAgICB2b2lkIGFkZENvbnNvbGVNZXNzYWdl
KEpTQzo6TWVzc2FnZVNvdXJjZSwgSlNDOjpNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVz
c2FnZSk7CiAKICAgICB2aXJ0dWFsIHZvaWQgbGF6eUluaXRpYWxpemUoKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9JSVJGaWx0ZXJOb2RlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vSUlSRmlsdGVyTm9kZS5jcHAKaW5kZXggMGVk
NmU2MTc5YzA0YmE5MDM0NjE4MzZkOTRmZTk2YWRiMDBiN2ViMy4uM2U2OWI2ZjJkMzIxODFmMDM2
Y2IyZjdlMjIwNDQ0OTA3OWFhMDVkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9JSVJGaWx0ZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0lJUkZpbHRlck5vZGUuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAi
QmFzZUF1ZGlvQ29udGV4dC5oIgogI2luY2x1ZGUgIklJUkZpbHRlci5oIgogI2luY2x1ZGUgIlNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xl
VHlwZXMuaD4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09m
ZmxpbmVBdWRpb0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9P
ZmZsaW5lQXVkaW9Db250ZXh0LmNwcAppbmRleCBkZTUyNGQyZjRmNDkwODEzODZkMWVjM2Y4ZWNk
MjJmN2Y2ZWQ4ZTAzLi5iZmFkNmI3ZTUwMDcyNjkxNTg2OTAzNjNjYjc2OTZlZGZmMjVlNjg2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Nv
bnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1
ZGlvQ29udGV4dC5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJKU0F1ZGlvQnVmZmVy
LmgiCiAjaW5jbHVkZSAiT2ZmbGluZUF1ZGlvQ29tcGxldGlvbkV2ZW50LmgiCiAjaW5jbHVkZSAi
T2ZmbGluZUF1ZGlvQ29udGV4dE9wdGlvbnMuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9D
b25zb2xlVHlwZXMuaD4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogI2luY2x1
ZGUgPHd0Zi9TY29wZS5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmRhdGFiYXNlL0RPTVdpbmRvd1dlYkRhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZGF0YWJhc2UvRE9NV2luZG93V2ViRGF0YWJhc2UuY3BwCmluZGV4IDhhYzJhZDZhZjVl
NGEzYmZmODRjMjY3NmMwZTI0ZTZiYmMyZjNiNWMuLjBiZWViY2EyY2RiOWMyZGE5NmVjYmViNzJj
NzQzYTNiYzIwNzc4MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0
YWJhc2UvRE9NV2luZG93V2ViRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZGF0YWJhc2UvRE9NV2luZG93V2ViRGF0YWJhc2UuY3BwCkBAIC0zMiw2ICszMiw3IEBA
CiAjaW5jbHVkZSAiRGF0YWJhc2VNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNp
bmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNv
bGVUeXBlcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHAKaW5kZXggNzdmZmQ5MzE5N2Q2ZTIzYmUy
MDExMGEzZTNiOTI1ZTc5N2NhMmVmZi4uMmQ4NWJkMzlkYTY1YjQxOGM4ZmRhYjNjYzU2ZmUyMTVh
Y2JjYTA2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9E
YXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRh
YmFzZS5jcHAKQEAgLTUzLDYgKzUzLDcgQEAKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgog
I2luY2x1ZGUgIlZvaWRDYWxsYmFjay5oIgogI2luY2x1ZGUgIldpbmRvd0V2ZW50TG9vcC5oIgor
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9M
b2NrLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL1Jl
ZlB0ci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9E
YXRhYmFzZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9E
YXRhYmFzZU1hbmFnZXIuY3BwCmluZGV4IDlhZjAyM2EyMGQyM2IwNWI3YzhlZTQ5NDY1NTdhYjU2
YzIyMjIzMzguLjM3Mzk1OWZjYmQ3YmEzNTU4MzY5YWE0ZjVmZTkxYzI0YzJmNTRhMTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VNYW5hZ2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlTWFu
YWdlci5jcHAKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgog
I2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luRGF0YS5oIgogI2luY2x1ZGUgIldpbmRvd0V2ZW50TG9v
cC5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPgogI2luY2x1ZGUg
PHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCmluZGV4IDY5NDAxYTMy
ODA4MTM0N2FlNmNhMjNkYTYyMGI4OGI4NzhkZjE0ZWUuLjY4OGU3MTc2NDdhMjQxN2I2NzY4NmQw
NmFjZmUzZmFiNWI4MDA2MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
c29ja2V0cy9XZWJTb2NrZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29j
a2V0cy9XZWJTb2NrZXQuY3BwCkBAIC01OCw2ICs1OCw3IEBACiAjaW5jbHVkZSAiV29ya2VyVGhy
ZWFkLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQXJyYXlCdWZmZXIuaD4KICNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9BcnJheUJ1ZmZlclZpZXcuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9Db25zb2xlVHlwZXMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TY3JpcHRDYWxs
U3RhY2suaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9IZXhOdW1i
ZXIuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJT
b2NrZXRDaGFubmVsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJT
b2NrZXRDaGFubmVsLmNwcAppbmRleCBmNWRjNmU3N2FhYTRmMGRlZjY3NjhhZjI3Y2MzY2M0OTAz
NjgwZTQzLi4zZjZhNzNmNzgzMWU1YjRlN2M3ZmJjNTE1NDExYTkxZjJlYWIzYmMxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5u
ZWwuY3BwCkBAIC01NCw2ICs1NCw3IEBACiAjaW5jbHVkZSAiV2ViU29ja2V0Q2hhbm5lbENsaWVu
dC5oIgogI2luY2x1ZGUgIldlYlNvY2tldEhhbmRzaGFrZS5oIgogI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0FycmF5QnVmZmVyLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5
cGVzLmg+CiAjaW5jbHVkZSA8d3RmL0Zhc3RNYWxsb2MuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9D
U3RyaW5nLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2Vi
WFJTeXN0ZW0uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlN5c3RlbS5j
cHAKaW5kZXggNjc1OTMyZDM5MzRiMjM3YWRiNDFmNThiMTg3MThjY2YzMzk2OWI5Yi4uNWZjZTBk
OTE5ZmY5NDFmNDIwM2M3OGI0ZjEzNjczMmNlMTlhODE5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlN5c3RlbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ4ci9XZWJYUlN5c3RlbS5jcHAKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRl
ICJSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjay5oIgogI2luY2x1ZGUgIlJ1bnRpbWVFbmFi
bGVkRmVhdHVyZXMuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgorI2luY2x1ZGUgIlNl
dHRpbmdzLmgiCiAjaW5jbHVkZSAiVXNlckdlc3R1cmVJbmRpY2F0b3IuaCIKICNpbmNsdWRlICJX
ZWJYUlNlc3Npb24uaCIKICNpbmNsdWRlICJYUlJlZmVyZW5jZVNwYWNlVHlwZS5oIgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvU2NyaXB0cy9TZXR0aW5nc1RlbXBsYXRlcy9TZXR0aW5ncy5j
cHAuZXJiIGIvU291cmNlL1dlYkNvcmUvU2NyaXB0cy9TZXR0aW5nc1RlbXBsYXRlcy9TZXR0aW5n
cy5jcHAuZXJiCmluZGV4IDdlOTFkMzVjMzliZTQ2MjBiNzM0ZGM2NzRmMmIxYWY2MTdiZjgzNWQu
LjEwZjQ2MjFhY2UxMjM3NWYyMGI4M2ZlZWMzMzI2MzkwYmI5YzEyMDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1NjcmlwdHMvU2V0dGluZ3NUZW1wbGF0ZXMvU2V0dGluZ3MuY3BwLmVyYgor
KysgYi9Tb3VyY2UvV2ViQ29yZS9TY3JpcHRzL1NldHRpbmdzVGVtcGxhdGVzL1NldHRpbmdzLmNw
cC5lcmIKQEAgLTc0LDcgKzc0LDcgQEAgU2V0dGluZ3M6OlNldHRpbmdzKFBhZ2UqIHBhZ2UpCiAg
ICAgbV9wYWdlID0gcGFnZTsKIH0KIAotdm9pZCBTZXR0aW5nczo6VmFsdWVzOjppbml0aWFsaXpl
KCkKK3ZvaWQgU2V0dGluZ3NWYWx1ZXM6OmluaXRpYWxpemUoKQogewogPCUtIGZvciBAY29uZGl0
aW9uIGluIEBhbGxTZXR0aW5nc1NldC5jb25kaXRpb25zIGRvIC0lPgogPCUtIGlmIEBjb25kaXRp
b24ubm9uQm9vbFNldHRpbmdzTmVlZGluZ0ltcGxlbWVudGF0aW9uLmxlbmd0aCAhPSAwIC0lPgpA
QCAtMTA0LDcgKzEwNCw3IEBAIHZvaWQgU2V0dGluZ3M6OlZhbHVlczo6aW5pdGlhbGl6ZSgpCiA8
JS0gZW5kIC0lPgogfQogCi1TZXR0aW5nczo6VmFsdWVzIFNldHRpbmdzOjpWYWx1ZXM6Omlzb2xh
dGVkQ29weSgpIGNvbnN0CitTZXR0aW5nc1ZhbHVlcyBTZXR0aW5nc1ZhbHVlczo6aXNvbGF0ZWRD
b3B5KCkgY29uc3QKIHsKICAgICByZXR1cm4gewogPCUtIGZvciBAc2V0dGluZyBpbiBAYWxsU2V0
dGluZ3NTZXQuaW5zcGVjdG9yT3ZlcnJpZGVTZXR0aW5ncyBkbyAtJT4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1NjcmlwdHMvU2V0dGluZ3NUZW1wbGF0ZXMvU2V0dGluZ3MuaC5lcmIgYi9T
b3VyY2UvV2ViQ29yZS9TY3JpcHRzL1NldHRpbmdzVGVtcGxhdGVzL1NldHRpbmdzLmguZXJiCmlu
ZGV4IDY4MmFkZjcyODkyMDY3MDI3ZGIzMWExMmRlMjA3NTVlNmRlMWExY2EuLjI5NTYxZDE4YzI5
MjI5MzVmYTZjNzRhNmRkNmM4YTU4MmQzNWJhM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1NjcmlwdHMvU2V0dGluZ3NUZW1wbGF0ZXMvU2V0dGluZ3MuaC5lcmIKKysrIGIvU291cmNlL1dl
YkNvcmUvU2NyaXB0cy9TZXR0aW5nc1RlbXBsYXRlcy9TZXR0aW5ncy5oLmVyYgpAQCAtMzQsNiAr
MzQsNDQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBQYWdlOwogCitzdHJ1Y3QgU2V0
dGluZ3NWYWx1ZXMgeworICAgIHZvaWQgaW5pdGlhbGl6ZSgpOworICAgIFNldHRpbmdzVmFsdWVz
IGlzb2xhdGVkQ29weSgpIGNvbnN0OworCis8JS0gZm9yIEBzZXR0aW5nIGluIEBhbGxTZXR0aW5n
c1NldC5pbnNwZWN0b3JPdmVycmlkZVNldHRpbmdzIGRvIC0lPgorICAgIHN0ZDo6b3B0aW9uYWw8
PCU9IEBzZXR0aW5nLnR5cGUgJT4+IDwlPSBAc2V0dGluZy5uYW1lICU+SW5zcGVjdG9yT3ZlcnJp
ZGU7Cis8JS0gZW5kIC0lPgorCisgICAgRm9udEdlbmVyaWNGYW1pbGllcyBmb250R2VuZXJpY0Zh
bWlsaWVzOworPCUtIGZvciBAY29uZGl0aW9uIGluIEBhbGxTZXR0aW5nc1NldC5jb25kaXRpb25z
IGRvIC0lPgorPCUtIGlmIEBjb25kaXRpb24ubm9uQm9vbFNldHRpbmdzTmVlZGluZ0ltcGxlbWVu
dGF0aW9uLmxlbmd0aCAhPSAwIC0lPgorPCUtIGlmIEBjb25kaXRpb24uY29uZGl0aW9uIC0lPgor
I2lmIDwlPSBAY29uZGl0aW9uLmNvbmRpdGlvbiAlPgorPCUtIGVuZCAtJT4KKzwlLSBmb3IgQHNl
dHRpbmcgaW4gQGNvbmRpdGlvbi5ub25Cb29sU2V0dGluZ3NOZWVkaW5nSW1wbGVtZW50YXRpb24g
LSU+CisgICAgPCU9IEBzZXR0aW5nLnR5cGUgJT4gPCU9IEBzZXR0aW5nLm5hbWUgJT47Cis8JS0g
ZW5kIC0lPgorPCUtIGlmIEBjb25kaXRpb24uY29uZGl0aW9uIC0lPgorI2VuZGlmCis8JS0gZW5k
IC0lPgorPCUtIGVuZCAtJT4KKzwlLSBlbmQgLSU+Cis8JS0gZm9yIEBjb25kaXRpb24gaW4gQGFs
bFNldHRpbmdzU2V0LmNvbmRpdGlvbnMgZG8gLSU+Cis8JS0gaWYgQGNvbmRpdGlvbi5zZXR0aW5n
c05lZWRpbmdJbXBsZW1lbnRhdGlvbi5sZW5ndGggIT0gMCAtJT4KKyAgICA8JS0gaWYgQGNvbmRp
dGlvbi5jb25kaXRpb24gLSU+CisjaWYgPCU9IEBjb25kaXRpb24uY29uZGl0aW9uICU+CisgICAg
PCUtIGVuZCAtJT4KKyAgICA8JS0gZm9yIEBzZXR0aW5nIGluIEBjb25kaXRpb24uYm9vbFNldHRp
bmdzTmVlZGluZ0ltcGxlbWVudGF0aW9uIC0lPgorICAgIDwlPSBAc2V0dGluZy50eXBlICU+IDwl
PSBAc2V0dGluZy5uYW1lICU+IDogMTsKKyAgICA8JS0gZW5kIC0lPgorICAgIDwlLSBpZiBAY29u
ZGl0aW9uLmNvbmRpdGlvbiAtJT4KKyNlbmRpZgorICAgIDwlLSBlbmQgLSU+Cis8JS0gZW5kIC0l
PgorPCUtIGVuZCAtJT4KK307CisKKwogY2xhc3MgU2V0dGluZ3MgOiBwdWJsaWMgU2V0dGluZ3NC
YXNlLCBwdWJsaWMgUmVmQ291bnRlZDxTZXR0aW5ncz4gewogICAgIFdURl9NQUtFX05PTkNPUFlB
QkxFKFNldHRpbmdzKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CkBAIC03MSw0
OCArMTA5LDEyIEBAIHB1YmxpYzoKICAgICBGb250R2VuZXJpY0ZhbWlsaWVzJiBmb250R2VuZXJp
Y0ZhbWlsaWVzKCkgZmluYWwgeyByZXR1cm4gbV92YWx1ZXMuZm9udEdlbmVyaWNGYW1pbGllczsg
fQogICAgIGNvbnN0IEZvbnRHZW5lcmljRmFtaWxpZXMmIGZvbnRHZW5lcmljRmFtaWxpZXMoKSBj
b25zdCBmaW5hbCB7IHJldHVybiBtX3ZhbHVlcy5mb250R2VuZXJpY0ZhbWlsaWVzOyB9CiAKLSAg
ICBzdHJ1Y3QgVmFsdWVzIHsKLSAgICAgICAgdm9pZCBpbml0aWFsaXplKCk7Ci0gICAgICAgIFZh
bHVlcyBpc29sYXRlZENvcHkoKSBjb25zdDsKLQotPCUtIGZvciBAc2V0dGluZyBpbiBAYWxsU2V0
dGluZ3NTZXQuaW5zcGVjdG9yT3ZlcnJpZGVTZXR0aW5ncyBkbyAtJT4KLSAgICAgICAgc3RkOjpv
cHRpb25hbDw8JT0gQHNldHRpbmcudHlwZSAlPj4gPCU9IEBzZXR0aW5nLm5hbWUgJT5JbnNwZWN0
b3JPdmVycmlkZTsKLTwlLSBlbmQgLSU+Ci0KLSAgICAgICAgRm9udEdlbmVyaWNGYW1pbGllcyBm
b250R2VuZXJpY0ZhbWlsaWVzOwotPCUtIGZvciBAY29uZGl0aW9uIGluIEBhbGxTZXR0aW5nc1Nl
dC5jb25kaXRpb25zIGRvIC0lPgotPCUtIGlmIEBjb25kaXRpb24ubm9uQm9vbFNldHRpbmdzTmVl
ZGluZ0ltcGxlbWVudGF0aW9uLmxlbmd0aCAhPSAwIC0lPgotPCUtIGlmIEBjb25kaXRpb24uY29u
ZGl0aW9uIC0lPgotI2lmIDwlPSBAY29uZGl0aW9uLmNvbmRpdGlvbiAlPgotPCUtIGVuZCAtJT4K
LTwlLSBmb3IgQHNldHRpbmcgaW4gQGNvbmRpdGlvbi5ub25Cb29sU2V0dGluZ3NOZWVkaW5nSW1w
bGVtZW50YXRpb24gLSU+Ci0gICAgICAgIDwlPSBAc2V0dGluZy50eXBlICU+IDwlPSBAc2V0dGlu
Zy5uYW1lICU+OwotPCUtIGVuZCAtJT4KLTwlLSBpZiBAY29uZGl0aW9uLmNvbmRpdGlvbiAtJT4K
LSNlbmRpZgotPCUtIGVuZCAtJT4KLTwlLSBlbmQgLSU+Ci08JS0gZW5kIC0lPgotPCUtIGZvciBA
Y29uZGl0aW9uIGluIEBhbGxTZXR0aW5nc1NldC5jb25kaXRpb25zIGRvIC0lPgotICAgIDwlLSBp
ZiBAY29uZGl0aW9uLnNldHRpbmdzTmVlZGluZ0ltcGxlbWVudGF0aW9uLmxlbmd0aCAhPSAwIC0l
PgotICAgICAgICA8JS0gaWYgQGNvbmRpdGlvbi5jb25kaXRpb24gLSU+Ci0jaWYgPCU9IEBjb25k
aXRpb24uY29uZGl0aW9uICU+Ci0gICAgICAgIDwlLSBlbmQgLSU+Ci0gICAgICAgIDwlLSBmb3Ig
QHNldHRpbmcgaW4gQGNvbmRpdGlvbi5ib29sU2V0dGluZ3NOZWVkaW5nSW1wbGVtZW50YXRpb24g
LSU+Ci0gICAgICAgIDwlPSBAc2V0dGluZy50eXBlICU+IDwlPSBAc2V0dGluZy5uYW1lICU+IDog
MTsKLSAgICAgICAgPCUtIGVuZCAtJT4KLSAgICAgICAgPCUtIGlmIEBjb25kaXRpb24uY29uZGl0
aW9uIC0lPgotI2VuZGlmCi0gICAgICAgIDwlLSBlbmQgLSU+Ci0gICAgPCUtIGVuZCAtJT4KLTwl
LSBlbmQgLSU+Ci0gICAgfTsKLSAgICBjb25zdCBWYWx1ZXMmIHZhbHVlcygpIGNvbnN0IHsgcmV0
dXJuIG1fdmFsdWVzOyB9CisgICAgY29uc3QgU2V0dGluZ3NWYWx1ZXMmIHZhbHVlcygpIGNvbnN0
IHsgcmV0dXJuIG1fdmFsdWVzOyB9CiAKIHByaXZhdGU6CiAgICAgV0VCQ09SRV9FWFBPUlQgZXhw
bGljaXQgU2V0dGluZ3MoUGFnZSopOwogCi0gICAgVmFsdWVzIG1fdmFsdWVzOworICAgIFNldHRp
bmdzVmFsdWVzIG1fdmFsdWVzOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
U291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCBkZjlhYjYwZDg1
NTZiY2M2NjllMWE5MjhmZmI1YmM0NTNiZDc3MzM3Li5jMDM1MzdjMmJhMTUwZjQxY2RlOTAxZTkw
YzQxYTYyYmRjYjA1YTE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtNzIsNiArNzIsNyBAQCBNb2R1bGVz
L2hpZ2hsaWdodC9BcHBIaWdobGlnaHRSYW5nZURhdGEuY3BwCiBNb2R1bGVzL2hpZ2hsaWdodC9B
cHBIaWdobGlnaHRTdG9yYWdlLmNwcAogTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmVnaXN0
ZXIuY3BwCiBNb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHQuY3BwCitNb2R1bGVzL2luZGV4ZWRk
Yi9JREJBY3RpdmVET01PYmplY3QuY3BwCiBNb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuY3Bw
CiBNb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JXaXRoVmFsdWUuY3BwCiBNb2R1bGVzL2luZGV4
ZWRkYi9JREJEYXRhYmFzZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA0ODU4NWRkODVhMGViNmNhMTU0ZDQ4Yzk2Y2Q0YTky
OWQ2YThiNjM4Li5lNGYxMTZjMDcyNDQ3NTAzNjcyMDBmOWNmMjRlNmU3OGNlNmM2NzA2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC00NTQ1LDYgKzQ1NDUsOCBAQAogCQlDREVBN0M4NDEyNzYyMzA0MDBCODQ2REQgLyogUmVuZGVy
RnVsbFNjcmVlbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0RFQTdDODIxMjc2MjMwNDAwQjg0NkREIC8qIFJlbmRlckZ1bGxTY3JlZW4uaCAqLzsgfTsK
IAkJQ0RFQ0E4OUIxRURGNDQ3RDAwRENCMDhCIC8qIEFWQXNzZXRUcmFja1V0aWxpdGllcy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFQ0E4OTkxRURG
NDQ3RDAwRENCMDhCIC8qIEFWQXNzZXRUcmFja1V0aWxpdGllcy5oICovOyB9OwogCQlDREVEMUMz
QzI0Q0QzMDU3MDA5MzRFMTIgLyogVlA5VXRpbGl0aWVzQ29jb2EubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDZGRTVCODI0QkNFNjQ1MDA5RkNEQTQg
LyogVlA5VXRpbGl0aWVzQ29jb2EubW0gKi87IH07CisJCUNERUQ5Q0M0MjcxNENBRUUwMEU4OEND
MyAvKiBTY3JpcHRFeGVjdXRpb25Db250ZXh0SW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFRDlDQzMyNzE0Q0FFRTAwRTg4Q0MzIC8qIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRJbmxpbmVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQ0RFRDlDQ0EyNzE1NjMyMzAwRTg4Q0MzIC8qIElEQkFj
dGl2ZURPTU9iamVjdElubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IENERUQ5Q0M5MjcxNTYzMjMwMEU4OENDMyAvKiBJREJBY3RpdmVET01PYmpl
Y3RJbmxpbmVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJQ0RFRjRGRDcxN0U4NUM4RjAwQUVFMjRCIC8qIEdyaWRMZW5ndGguaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERUY0RkQ2MTdFODVDOEYwMEFF
RTI0QiAvKiBHcmlkTGVuZ3RoLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJQ0RFRkEyMjgxRTc2NjlFODAwMEFFOTlDIC8qIFBsYXRmb3JtQXVkaW9E
YXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREU2
NjdBMTFFNEJCQTREMDBFODE1NEEgLyogUGxhdGZvcm1BdWRpb0RhdGEuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDREVGREEwQjI3MTIyNjM4MDA1
NTU5QTcgLyogRG9jdW1lbnRJbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDREVGREEwOTI3MTIyNjM4MDA1NTU5QTcgLyogRG9jdW1lbnRJbmxp
bmVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAg
LTE1NDQ0LDYgKzE1NDQ2LDkgQEAKIAkJQ0RFQjNENzMyNEM0MUE2RTAwMUZCRUVGIC8qIFNvdXJj
ZUJ1ZmZlclBhcnNlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTb3VyY2VCdWZmZXJQYXJzZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RFQ0E4OTgxRURGNDQ3RDAwRENCMDhCIC8qIEFW
QXNzZXRUcmFja1V0aWxpdGllcy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEFWQXNzZXRUcmFj
a1V0aWxpdGllcy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RFQ0E4OTkxRURG
NDQ3RDAwRENCMDhCIC8qIEFWQXNzZXRUcmFja1V0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBB
VkFzc2V0VHJhY2tVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RF
RDlDQzMyNzE0Q0FFRTAwRTg4Q0MzIC8qIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJbmxpbmVzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJbmxpbmVzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUNERUQ5Q0M5MjcxNTYzMjMwMEU4OENDMyAvKiBJREJBY3Rp
dmVET01PYmplY3RJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElEQkFjdGl2ZURPTU9iamVjdElu
bGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RFRDlDQ0MyNzE1NjNBRDAw
RTg4Q0MzIC8qIElEQkFjdGl2ZURPTU9iamVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJREJB
Y3RpdmVET01PYmplY3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREVFMzkz
NjE3OTc0MjU5MDAxRDc1ODAgLyogUHVibGljVVJMTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQdWJsaWNVUkxNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQ0RFRTM5MzgxNzk3NDI3NDAwMUQ3NTgwIC8qIFVSTFJlZ2lzdHJ5
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFVSTFJlZ2lzdHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUNERUY0RkQ2MTdFODVDOEYwMEFFRTI0QiAvKiBHcmlkTGVuZ3RoLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyaWRMZW5ndGguaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTI0NDc3LDcgKzI0NDgyLDkgQEAKIAkJCQk1MTAzMTA0MjFCQThDNjRDMDAz
MzI5QzAgLyogY2xpZW50ICovLAogCQkJCTUxMEE1OEVFMUJBQjcxRTAwMEMxOTI4MiAvKiBzZXJ2
ZXIgKi8sCiAJCQkJNTEwQTU4RTExQkFBNDA5ODAwQzE5MjgyIC8qIHNoYXJlZCAqLywKKwkJCQlD
REVEOUNDQzI3MTU2M0FEMDBFODhDQzMgLyogSURCQWN0aXZlRE9NT2JqZWN0LmNwcCAqLywKIAkJ
CQk1MTcxNEVBNzFDRjRERTg3MDA0NzIzQzQgLyogSURCQWN0aXZlRE9NT2JqZWN0LmggKi8sCisJ
CQkJQ0RFRDlDQzkyNzE1NjMyMzAwRTg4Q0MzIC8qIElEQkFjdGl2ZURPTU9iamVjdElubGluZXMu
aCAqLywKIAkJCQk1MTY0NUI1NDFCOUY4OEU4MDBGNzg5Q0UgLyogSURCQ3Vyc29yLmNwcCAqLywK
IAkJCQk1MTY0NUI0MTFCOUY4ODlCMDBGNzg5Q0UgLyogSURCQ3Vyc29yLmggKi8sCiAJCQkJNTFE
NzE5NzcxODExMDZERjAwMTZEQzUxIC8qIElEQkN1cnNvci5pZGwgKi8sCkBAIC0zMDg3NCw2ICsz
MDg4MSw3IEBACiAJCQkJRTNFNEUyQTYxRTNCMTZGQzAwMjNCQjhBIC8qIFNjcmlwdEVsZW1lbnRD
YWNoZWRTY3JpcHRGZXRjaGVyLmggKi8sCiAJCQkJRTExQzlEQUYwRUIzNjk5NTAwRTQwOURCIC8q
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwICovLAogCQkJCUUxMUM5RDlBMEVCMzY4MTIwMEU0
MDlEQiAvKiBTY3JpcHRFeGVjdXRpb25Db250ZXh0LmggKi8sCisJCQkJQ0RFRDlDQzMyNzE0Q0FF
RTAwRTg4Q0MzIC8qIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJbmxpbmVzLmggKi8sCiAJCQkJOEE0
MTNBREYxMjA3QkJBNTAwODIwMTZFIC8qIFNjcmlwdFJ1bm5lci5jcHAgKi8sCiAJCQkJOEE0MTNB
REUxMjA3QkJBNTAwODIwMTZFIC8qIFNjcmlwdFJ1bm5lci5oICovLAogCQkJCTk3NkYzNkU4MTQ2
ODYyMjUwMDVFOTNCNCAvKiBTZWN1cml0eUNvbnRleHQuY3BwICovLApAQCAtMzMwNTksNiArMzMw
NjcsNyBAQAogCQkJCUIyNzUzNTZFMEIwNTM4MTQwMDJDRTY0RiAvKiBJY29uLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1MTNGMTQ1NDBBQjYzNEM0MDAwOTREREYgLyogSWNvbkxvYWRlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNTE3MTRFQTgxQ0Y0RTRCMTAwNDcyM0M0IC8qIElEQkFjdGl2ZURPTU9i
amVjdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0RFRDlDQ0EyNzE1NjMyMzAwRTg4Q0MzIC8qIElE
QkFjdGl2ZURPTU9iamVjdElubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxQkE0QUNDMUJC
QzVCREQwMERGM0Q2RCAvKiBJREJCYWNraW5nU3RvcmUuaCBpbiBIZWFkZXJzICovLAogCQkJCUM1
ODVBNjYzMTFENEZBQzUwMDRDM0U0QiAvKiBJREJCaW5kaW5nVXRpbGl0aWVzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1MTdCMjVBQTFDQzgyQjJBMDA2MUMwMTEgLyogSURCQ29ubmVjdGlvblByb3h5
LmggaW4gSGVhZGVycyAqLywKQEAgLTM1MjM1LDYgKzM1MjQ0LDcgQEAKIAkJCQlFM0U0RTJBODFF
M0IxNzEwMDAyM0JCOEEgLyogU2NyaXB0RWxlbWVudENhY2hlZFNjcmlwdEZldGNoZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUUxMUM5RDlCMEVCMzY4MTIwMEU0MDlEQiAvKiBTY3JpcHRFeGVjdXRp
b25Db250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTEyMjNCQTI2MDI0NEZFMDBCMEEwQjYg
LyogU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAorCQkJ
CUNERUQ5Q0M0MjcxNENBRUUwMEU4OENDMyAvKiBTY3JpcHRFeGVjdXRpb25Db250ZXh0SW5saW5l
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzcyRDNFNTUyMTY1NzhBRTAwQzVFMDIxIC8qIFNjcmlw
dE1vZHVsZUxvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQzMTYwMzYxMkIwMjY3NjAwQzFB
MzU5IC8qIFNjcmlwdFByb2Nlc3Nvck5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCThBNDEzQUUw
MTIwN0JCQTUwMDgyMDE2RSAvKiBTY3JpcHRSdW5uZXIuaCBpbiBIZWFkZXJzICovLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCmluZGV4IDg1
OTI0YTRmNGMxMjY0MWZmYTZmMzI2OTBmZmEwMzQ1ODk4Nzg1NWEuLjEyY2Y1ODBkNGVhYWVjM2M0
YWU2MWRiM2M1ZDAzZDc3YzBjMTZlNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKQEAgLTQ3LDYgKzQ3LDcgQEAKICNpbmNsdWRlICJT
ZXR0aW5ncy5oIgogI2luY2x1ZGUgIldlYkNvcmVKU0NsaWVudERhdGEuaCIKICNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9CdWlsdGluTmFtZXMuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9D
b25zb2xlVHlwZXMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9IZWFwQW5hbHl6ZXIuaD4K
ICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnRlcm5hbEZ1bmN0aW9uLmg+CiAjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCBhNDNhZWUwNDhmNGJjODUwNDg2ODllY2Yx
NzEwOGNiZDg1MTliNmJhLi45ZGYzMjgyYmJhOTBlYTRhYWY4OGEwZDMxNWU5M2JiMGM2MmE4ZGQz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNw
cApAQCAtNjEsNiArNjEsNyBAQAogI2luY2x1ZGUgIldlYkNvcmVKU0NsaWVudERhdGEuaCIKICNp
bmNsdWRlICJucHJ1bnRpbWVfaW1wbC5oIgogI2luY2x1ZGUgInJ1bnRpbWVfcm9vdC5oIgorI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0RlYnVnZ2VyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSGVhcC5oPgogI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwCmluZGV4IGU4OTFi
ZWFlMjU0NGRjMTU3NWZhMjM4OTlkMTg3YThhMTVlNGE1NTcuLjljYzVkZTQ3NmEzNzk0ZTEyZDNl
MTg2ZmY1YjFkZjM5M2VkOTAwM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvU2NyaXB0TW9kdWxlTG9hZGVyLmNwcApAQCAtNDcsNiArNDcsNyBAQAogI2luY2x1ZGUgIldv
cmtlclNjcmlwdExvYWRlci5oIgogI2luY2x1ZGUgIldvcmtsZXRHbG9iYWxTY29wZS5oIgogI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbXBsZXRpb24uaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9Db25zb2xlVHlwZXMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0ludGVybmFs
UHJvbWlzZS5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTTW9kdWxlUmVjb3JkLmg+CiAj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNTY3JpcHRGZXRjaFBhcmFtZXRlcnMuaD4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBt
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5k
ZXggZjhiNGExY2UyY2NkYzgyZTY4OWYwZjM3OTY3MDM5OGZiY2RkOTU1Ni4uMDI1MzY5ZDdlNjEw
YTNhNzBlZjkyMDYwMmYyY2YzODE0NGI2ZjRiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTQwMDMsNiArNDAwMyw3IEBA
IHN1YiBHZW5lcmF0ZVJ1bnRpbWVFbmFibGVDb25kaXRpb25hbFN0cmluZwogICAgICAgICBhc3Nl
cnQoIk11c3Qgc3BlY2lmeSB2YWx1ZSBmb3IgRW5hYmxlZEJ5U2V0dGluZy4iKSBpZiAkY29udGV4
dC0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57RW5hYmxlZEJ5U2V0dGluZ30gZXEgIlZBTFVFX0lTX01J
U1NJTkciOwogCiAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJTY3JpcHRFeGVjdXRpb25Db250
ZXh0LmgiKTsKKyAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIlNldHRpbmdzLmgiKTsKIAogICAg
ICAgICBteSBAZmxhZ3MgPSBzcGxpdCgvJi8sICRjb250ZXh0LT5leHRlbmRlZEF0dHJpYnV0ZXMt
PntFbmFibGVkQnlTZXR0aW5nfSk7CiAgICAgICAgIGZvcmVhY2ggbXkgJGZsYWcgKEBmbGFncykg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4
dGVuc2lvbnNCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0Nv
bnRlbnRFeHRlbnNpb25zQmFja2VuZC5jcHAKaW5kZXggMGI0MDI3MjcwNWYxMTJkNTg1ZGQ1Zjgy
MjBkZjBiNWY4YjMxMjI0NC4uYzIwZDQxODE1YjkxZjQyYTg2ZjNmNjg0MTVjODExYmQyNzE4MDEz
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4
dGVuc2lvbnNCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9u
cy9Db250ZW50RXh0ZW5zaW9uc0JhY2tlbmQuY3BwCkBAIC00NSw5ICs0NSwxMCBAQAogI2luY2x1
ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJTY3JpcHRTb3VyY2VDb2RlLmgiCiAj
aW5jbHVkZSAiU2V0dGluZ3MuaCIKLSNpbmNsdWRlIDx3dGYvVVJMLmg+CiAjaW5jbHVkZSAiVXNl
ckNvbnRlbnRDb250cm9sbGVyLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5
cGVzLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW5jbHVkZSA8d3RmL1VS
TC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL1N1YnRsZUNyeXB0by5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jcnlwdG8vU3VidGxlQ3J5cHRvLmNwcAppbmRleCA0ZmJiZTcyZTNkOWRi
MjVjNTkyMTZiNTk3OTJiZjU0Nzc3NDNmOTU1Li4zZWMyY2NjMzRjNzg3MjE3NTU4ZWRkNzMxMzI0
MGJkYTdiM2Q3N2YyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vU3VidGxlQ3J5
cHRvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vU3VidGxlQ3J5cHRvLmNwcApAQCAt
NTEsNiArNTEsNyBAQAogI2luY2x1ZGUgIkpTUnNhS2V5R2VuUGFyYW1zLmgiCiAjaW5jbHVkZSAi
SlNSc2FPYWVwUGFyYW1zLmgiCiAjaW5jbHVkZSAiSlNSc2FQc3NQYXJhbXMuaCIKKyNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9KU09OT2JqZWN0Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9u
dEZhY2UuY3BwCmluZGV4IDEzNDk0OGNiZmRiNzdkNmMyNTI3NzY0MTQ5MWU3OWZhMTNlYzgxNWQu
LjIwNDE4NWI1YjBmMDljYjdlOGZiNzllOGRmNTg3ZGIxZDRkMzNiYjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0ZvbnRGYWNlLmNwcApAQCAtMTAwLDcgKzEwMCw3IEBAIFJlZjxDU1NGb250RmFjZT4gQ1NT
Rm9udEZhY2U6OmNyZWF0ZShDU1NGb250U2VsZWN0b3ImIGZvbnRTZWxlY3RvciwgU3R5bGVSdWxl
Rm9uCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotQ1NTRm9udEZhY2U6OkNTU0ZvbnRGYWNlKGNv
bnN0IFNldHRpbmdzOjpWYWx1ZXMqIHNldHRpbmdzLCBTdHlsZVJ1bGVGb250RmFjZSogY3NzQ29u
bmVjdGlvbiwgRm9udEZhY2UqIHdyYXBwZXIsIGJvb2wgaXNMb2NhbEZhbGxiYWNrKQorQ1NTRm9u
dEZhY2U6OkNTU0ZvbnRGYWNlKGNvbnN0IFNldHRpbmdzVmFsdWVzKiBzZXR0aW5ncywgU3R5bGVS
dWxlRm9udEZhY2UqIGNzc0Nvbm5lY3Rpb24sIEZvbnRGYWNlKiB3cmFwcGVyLCBib29sIGlzTG9j
YWxGYWxsYmFjaykKICAgICA6IG1fY3NzQ29ubmVjdGlvbihjc3NDb25uZWN0aW9uKQogICAgICwg
bV93cmFwcGVyKHdyYXBwZXIpCiAgICAgLCBtX2lzTG9jYWxGYWxsYmFjayhpc0xvY2FsRmFsbGJh
Y2spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZS5oCmluZGV4IDc4OTkzZWZlZjU3YjVlNjc5OTZhZDFi
ZGFlZjg3NzE3ZmExNjBkZTguLjI4MWE4ZWFjNjIwMDc3OTg2YTZlMGMzOWRmOTM3MDdhZjdkZDc2
YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZS5oCkBAIC0yNSwxMSArMjUsMTIgQEAKIAogI3By
YWdtYSBvbmNlCiAKKyNpbmNsdWRlICJGb250TG9hZFRpbWluZ092ZXJyaWRlLmgiCiAjaW5jbHVk
ZSAiRm9udFNlbGVjdGlvblZhbHVlSW5saW5lcy5oIgogI2luY2x1ZGUgIkZvbnRUYWdnZWRTZXR0
aW5ncy5oIgotI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU3R5bGVSdWxlLmgiCiAj
aW5jbHVkZSAiVGV4dEZsYWdzLmgiCisjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlIDxtZW1v
cnk+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgpA
QCAtNTQsNiArNTUsOCBAQCBjbGFzcyBGb250RmFjZTsKIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQ7CiBlbnVtIGNsYXNzIEV4dGVybmFsUmVzb3VyY2VEb3dubG9hZFBvbGljeTsKIAorc3Ry
dWN0IFNldHRpbmdzVmFsdWVzOworCiBERUNMQVJFX0FMTE9DQVRPUl9XSVRIX0hFQVBfSURFTlRJ
RklFUihDU1NGb250RmFjZSk7CiBjbGFzcyBDU1NGb250RmFjZSBmaW5hbCA6IHB1YmxpYyBSZWZD
b3VudGVkPENTU0ZvbnRGYWNlPiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURURfV0lUSF9I
RUFQX0lERU5USUZJRVIoQ1NTRm9udEZhY2UpOwpAQCAtMTYyLDcgKzE2NSw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldEVycm9yU3RhdGUoKTsKIAogcHJpdmF0ZToKLSAgICBDU1NGb250RmFjZShj
b25zdCBTZXR0aW5nczo6VmFsdWVzKiwgU3R5bGVSdWxlRm9udEZhY2UqLCBGb250RmFjZSosIGJv
b2wgaXNMb2NhbEZhbGxiYWNrKTsKKyAgICBDU1NGb250RmFjZShjb25zdCBTZXR0aW5nc1ZhbHVl
cyosIFN0eWxlUnVsZUZvbnRGYWNlKiwgRm9udEZhY2UqLCBib29sIGlzTG9jYWxGYWxsYmFjayk7
CiAKICAgICBzaXplX3QgcHVtcChFeHRlcm5hbFJlc291cmNlRG93bmxvYWRQb2xpY3kpOwogICAg
IHZvaWQgc2V0U3RhdHVzKFN0YXR1cyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTRm9udFNlbGVjdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFNlbGVjdG9yLmgK
aW5kZXggZjk3OGExNGU0NTUxYjIwZmI5NzgxYmYxZjY4MDFiZTRmZTIzOWEwNS4uYjczNWQ1Y2Iy
OWNkZWJiZDJmNzA4ZTFjNGFjZTlkYjZkMzI1OTE0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0ZvbnRTZWxlY3Rvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250
U2VsZWN0b3IuaApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAj
aW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVk
ZSA8d3RmL3RleHQvQXRvbVN0cmluZ0hhc2guaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdI
YXNoLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NLZXlmcmFtZXNSdWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NLZXlmcmFt
ZXNSdWxlLmNwcAppbmRleCAzNjUxZWViM2M4ZTU4YTZkZmJmZmZhOTFlMmUwYzk0Mzc1ZTU2YjQ1
Li43YWU2OTBjZTY3ZDczMWFjNjhmMmU3NjlmZWVjZDliODliYWFlYmY5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTS2V5ZnJhbWVzUnVsZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0tleWZyYW1lc1J1bGUuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAi
Q1NTUnVsZUxpc3QuaCIKICNpbmNsdWRlICJDU1NTdHlsZVNoZWV0LmgiCiAjaW5jbHVkZSAiRG9j
dW1lbnQuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUxpc3QuY3BwIGIvU291cmNlL1dlYkNv
cmUvY3NzL01lZGlhTGlzdC5jcHAKaW5kZXggM2YxYTY0NDBkNjEwMjdhZDVmNzU1MDhiZWY4ZGM4
YjM4ZmViNWYzNi4uYmJiZWIyZmJmMGUyMTM4ZmQ4OWU0MGM4MTNmYTJmOTEzZWJhNzM1NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhTGlzdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL01lZGlhTGlzdC5jcHAKQEAgLTI4LDYgKzI4LDggQEAKICNpbmNsdWRlICJNZWRp
YUZlYXR1cmVOYW1lcy5oIgogI2luY2x1ZGUgIk1lZGlhUXVlcnkuaCIKICNpbmNsdWRlICJNZWRp
YVF1ZXJ5UGFyc2VyLmgiCisjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKyNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9Db25zb2xlVHlwZXMuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
VGV4dFN0cmVhbS5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRD
b250ZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVTaGVldENvbnRlbnRzLmNwcApp
bmRleCBiYTQzNjUzYTBhMTZiY2E5NjAyMTY3OTI3OTUwMTJjM2E3YzJlMTgxLi5hOTRhZDU4ZDQx
ZDFiYWZhYTUwOWUwZjNlYzExNGNhZTAzMmZmZjE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU3R5bGVTaGVldENvbnRlbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVTaGVldENvbnRlbnRzLmNwcApAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgIlNlY3VyaXR5
T3JpZ2luLmgiCiAjaW5jbHVkZSAiU3R5bGVSdWxlLmgiCiAjaW5jbHVkZSAiU3R5bGVSdWxlSW1w
b3J0LmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVk
ZSA8d3RmL0RlcXVlLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVk
ZSA8d3RmL1JlZi5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0FjdGl2ZURPTU9i
amVjdC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0FjdGl2ZURPTU9iamVjdC5oCmluZGV4IDBlNzk0
YTJhMDYwOWViMmViZTMxZTNlNjM5MDUyNjVkMmM4M2E0Y2YuLmU3YWNlNGIzNTcxYWQzMTYzNGU3
OTExNjQxZTAyMjI2M2FkYzJiZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9BY3Rp
dmVET01PYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQWN0aXZlRE9NT2JqZWN0LmgK
QEAgLTQyLDcgKzQyLDcgQEAgY2xhc3MgRXZlbnQ7CiBjbGFzcyBFdmVudExvb3BUYXNrR3JvdXA7
CiBjbGFzcyBFdmVudFRhcmdldDsKIAotZW51bSBjbGFzcyBSZWFzb25Gb3JTdXNwZW5zaW9uIHsK
K2VudW0gY2xhc3MgUmVhc29uRm9yU3VzcGVuc2lvbiA6IHVpbnQ4X3QgewogICAgIEphdmFTY3Jp
cHREZWJ1Z2dlclBhdXNlZCwKICAgICBXaWxsRGVmZXJMb2FkaW5nLAogICAgIEJhY2tGb3J3YXJk
Q2FjaGUsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uRXZlbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkV2ZW50LmNwcAppbmRleCA0ZWE4
YThjYzNiNDBjZmYyODc5NzI0ODQ4NWEwYWYyMDU0Nzg3MjlkLi5lYmE2MDA4Njc5YTU2ZDY1MzUy
MTc2ZTQyNWJlNGFiNTBiMTI0NDcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2
aWNlTW90aW9uRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25F
dmVudC5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJEZXZpY2VNb3Rpb25EYXRhLmgi
CiAjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyLmgi
CiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9Db25zb2xlVHlwZXMuaD4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2
aWNlT3JpZW50YXRpb25FdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50
YXRpb25FdmVudC5jcHAKaW5kZXggOWE4MTA1MmY2MzdjODhiNmNhZTdkYTRhZjA4ZWY4ZmNmOTVh
OGNmZC4uMzI1YTExMzk2OGQ4ODFkZWQwMzM2ODVlZWI5MzZhZGMxYjk4OThkOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50LmNwcApAQCAtMzEsNiArMzEs
NyBAQAogI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uRGF0YS5oIgogI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKKyNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9Db25zb2xlVHlwZXMuaD4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5l
cy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCA3
MjQyYmMyM2QyNzVhZGRhZGY1MGQ5YzYyOTYzN2E3MWU5NjEyNDAyLi5iOTgxZTc4OGU5YTBmM2Vm
YzcyNmQyMWRiMmVjNDZmYjYyZjk5NWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTI3
ODgsNiArMjc4OCwxMSBAQCB2b2lkIERvY3VtZW50OjpzdG9wQWN0aXZlRE9NT2JqZWN0cygpCiAg
ICAgcGxhdGZvcm1TdXNwZW5kT3JTdG9wQWN0aXZlRE9NT2JqZWN0cygpOwogfQogCitjb25zdCBT
ZXR0aW5nc1ZhbHVlcyYgRG9jdW1lbnQ6OnNldHRpbmdzVmFsdWVzKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gc2V0dGluZ3MoKS52YWx1ZXMoKTsKK30KKwogdm9pZCBEb2N1bWVudDo6Y2xlYXJBWE9i
amVjdENhY2hlKCkKIHsKICAgICBBU1NFUlQoJnRvcERvY3VtZW50KCkgPT0gdGhpcyk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oCmluZGV4IDU0NTc2NDM1YzIzNjViNzgwMjA5ZmVlMThhMTAyZjI2YjllMDFm
MTkuLjhhOTFjZTExM2E5ZDVkZDJhOGM3NGJjMzVjZTAxN2U3MWFkYzdkYmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5oCkBAIC0yNTEsNiArMjUxLDcgQEAgc3RydWN0IEJvdW5kYXJ5UG9pbnQ7CiBzdHJ1
Y3QgSGlnaGxpZ2h0UmFuZ2VEYXRhOwogc3RydWN0IEludGVyc2VjdGlvbk9ic2VydmVyRGF0YTsK
IHN0cnVjdCBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50SW5pdDsKK3N0cnVjdCBTZXR0aW5n
c1ZhbHVlczsKIAogdGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIEV4Y2VwdGlvbk9yOwogCkBAIC02
MzksNyArNjQwLDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVzdW1lQWN0aXZlRE9NT2JqZWN0cyhS
ZWFzb25Gb3JTdXNwZW5zaW9uKSBmaW5hbDsKICAgICB2b2lkIHN0b3BBY3RpdmVET01PYmplY3Rz
KCkgZmluYWw7CiAKLSAgICBjb25zdCBTZXR0aW5nczo6VmFsdWVzJiBzZXR0aW5nc1ZhbHVlcygp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIHNldHRpbmdzKCkudmFsdWVzKCk7IH0KKyAgICBjb25zdCBT
ZXR0aW5nc1ZhbHVlcyYgc2V0dGluZ3NWYWx1ZXMoKSBjb25zdCBmaW5hbDsKIAogICAgIHZvaWQg
c3VzcGVuZERldmljZU1vdGlvbkFuZE9yaWVudGF0aW9uVXBkYXRlcygpOwogICAgIHZvaWQgcmVz
dW1lRGV2aWNlTW90aW9uQW5kT3JpZW50YXRpb25VcGRhdGVzKCk7CkBAIC0xMzY5LDExICsxMzcw
LDExIEBAIHB1YmxpYzoKIAogICAgIC8vIFRoZSBmb2xsb3dpbmcgYWRkQ29uc29sZU1lc3NhZ2Ug
ZnVuY3Rpb24gaXMgZGVwcmVjYXRlZC4KICAgICAvLyBDYWxsZXJzIHNob3VsZCB0cnkgdG8gY3Jl
YXRlIHRoZSBDb25zb2xlTWVzc2FnZSB0aGVtc2VsdmVzLgotICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBT
dHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAwKSBmaW5h
bDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFkZENvbnNvbGVNZXNzYWdlKEpTQzo6TWVzc2Fn
ZVNvdXJjZSwgSlNDOjpNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWdu
ZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApIGZpbmFsOwogCiAgICAgLy8gVGhlIGZvbGxv
d2luZyBhZGRNZXNzYWdlIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQuCiAgICAgLy8gQ2FsbGVycyBz
aG91bGQgdHJ5IHRvIGNyZWF0ZSB0aGUgQ29uc29sZU1lc3NhZ2UgdGhlbXNlbHZlcy4KLSAgICB2
b2lkIGFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcm
IG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1
bnNpZ25lZCBjb2x1bW5OdW1iZXIsIFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdENhbGxTdGFjaz4m
JiwgSlNDOjpKU0dsb2JhbE9iamVjdCogPSBudWxscHRyLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJ
ZGVudGlmaWVyID0gMCkgZmluYWw7CisgICAgdm9pZCBhZGRNZXNzYWdlKEpTQzo6TWVzc2FnZVNv
dXJjZSwgSlNDOjpNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3Ry
aW5nJiBzb3VyY2VVUkwsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJl
ciwgUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0Q2FsbFN0YWNrPiYmLCBKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiA9IG51bGxwdHIsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAwKSBmaW5h
bDsKIAogICAgIFNlY3VyaXR5T3JpZ2luJiBzZWN1cml0eU9yaWdpbigpIGNvbnN0IHsgcmV0dXJu
ICpTZWN1cml0eUNvbnRleHQ6OnNlY3VyaXR5T3JpZ2luKCk7IH0KICAgICBTZWN1cml0eU9yaWdp
biYgdG9wT3JpZ2luKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdG9wRG9jdW1lbnQoKS5zZWN1cml0
eU9yaWdpbigpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRW1wdHlTY3JpcHRF
eGVjdXRpb25Db250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRW1wdHlTY3JpcHRFeGVjdXRp
b25Db250ZXh0LmgKaW5kZXggMjMxYjNiZjFjYTk4MWMyMmU5ODAzMDI5ZWIyMDE2YWY3M2IyMmE4
MS4uODNlMWI1NmE5ZTVjOGViNGJlNTJlNzc3YzdmOGJlZjg5MzgzNmVjZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0VtcHR5U2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbXB0eVNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaApAQCAtMzAsNiAr
MzAsNyBAQAogI2luY2x1ZGUgIlJlZmVycmVyUG9saWN5LmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCisjaW5jbHVkZSAi
U2V0dGluZ3MuaCIKIAogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KIApAQCAtNjEsNyArNjIs
NyBAQCBwdWJsaWM6CiAgICAgU29ja2V0UHJvdmlkZXIqIHNvY2tldFByb3ZpZGVyKCkgZmluYWwg
eyByZXR1cm4gbnVsbHB0cjsgfQogCiAgICAgdm9pZCBhZGRDb25zb2xlTWVzc2FnZShzdGQ6OnVu
aXF1ZV9wdHI8SW5zcGVjdG9yOjpDb25zb2xlTWVzc2FnZT4mJikgZmluYWwgeyB9Ci0gICAgdm9p
ZCBhZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0
cmluZyYsIHVuc2lnbmVkIGxvbmcpIGZpbmFsIHsgfTsKKyAgICB2b2lkIGFkZENvbnNvbGVNZXNz
YWdlKEpTQzo6TWVzc2FnZVNvdXJjZSwgSlNDOjpNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYs
IHVuc2lnbmVkIGxvbmcpIGZpbmFsIHsgfTsKIAogICAgIFNlY3VyaXR5T3JpZ2luJiB0b3BPcmln
aW4oKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX29yaWdpbi5nZXQoKTsgfTsKIApAQCAtODcsMTIg
Kzg4LDEyIEBAIHByaXZhdGU6CiAgICAgewogICAgIH0KIAotICAgIHZvaWQgYWRkTWVzc2FnZShN
ZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYs
IHVuc2lnbmVkLCB1bnNpZ25lZCwgUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0Q2FsbFN0YWNrPiYm
LCBKU0M6OkpTR2xvYmFsT2JqZWN0KiA9IG51bGxwdHIsIHVuc2lnbmVkIGxvbmcgPSAwKSBmaW5h
bCB7IH0KKyAgICB2b2lkIGFkZE1lc3NhZ2UoSlNDOjpNZXNzYWdlU291cmNlLCBKU0M6Ok1lc3Nh
Z2VMZXZlbCwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgdW5zaWduZWQsIHVuc2lnbmVk
LCBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRDYWxsU3RhY2s+JiYsIEpTQzo6SlNHbG9iYWxPYmpl
Y3QqID0gbnVsbHB0ciwgdW5zaWduZWQgbG9uZyA9IDApIGZpbmFsIHsgfQogICAgIHZvaWQgbG9n
RXhjZXB0aW9uVG9Db25zb2xlKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGludCwgaW50
LCBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRDYWxsU3RhY2s+JiYpIGZpbmFsIHsgfTsKICAgICB2
b2lkIHJlZlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBmaW5hbCB7IHJlZigpOyB9OwogICAgIHZv
aWQgZGVyZWZTY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgZmluYWwgeyBkZXJlZigpOyB9OwogCi0g
ICAgY29uc3QgU2V0dGluZ3M6OlZhbHVlcyYgc2V0dGluZ3NWYWx1ZXMoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBtX3NldHRpbmdzVmFsdWVzOyB9CisgICAgY29uc3QgU2V0dGluZ3NWYWx1ZXMmIHNl
dHRpbmdzVmFsdWVzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9zZXR0aW5nc1ZhbHVlczsgfQog
CiAgICAgY2xhc3MgRW1wdHlFdmVudExvb3AgZmluYWwgOiBwdWJsaWMgRXZlbnRMb29wIHsKICAg
ICBwdWJsaWM6CkBAIC0xMjAsNyArMTIxLDcgQEAgcHJpdmF0ZToKICAgICBVUkwgbV91cmw7CiAg
ICAgUmVmPEVtcHR5RXZlbnRMb29wPiBtX2V2ZW50TG9vcDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
RXZlbnRMb29wVGFza0dyb3VwPiBtX2V2ZW50TG9vcFRhc2tHcm91cDsKLSAgICBTZXR0aW5nczo6
VmFsdWVzIG1fc2V0dGluZ3NWYWx1ZXM7CisgICAgU2V0dGluZ3NWYWx1ZXMgbV9zZXR0aW5nc1Zh
bHVlczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9GdWxsc2NyZWVuTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRnVs
bHNjcmVlbk1hbmFnZXIuY3BwCmluZGV4IGI1NDFmYTdjZGExM2IzOTM4YTRjMjdhN2U3NTk0MDQ3
ZmE1ZGNiMmYuLmMwNzAwNjM3OGU5YmE2MzZjNDBmY2FmNjE4MWQwZGY2YzVlY2EwNzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9GdWxsc2NyZWVuTWFuYWdlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcApAQCAtNDIsNiArNDIsOCBAQAog
I2luY2x1ZGUgIlJlbmRlckZ1bGxTY3JlZW4uaCIKICNpbmNsdWRlICJSZW5kZXJUcmVlQnVpbGRl
ci5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSAiVXNlckdlc3R1cmVJbmRpY2F0
b3IuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMuaD4KICNpbmNsdWRl
IDx3dGYvTG9nZ2VySGVscGVyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Mb2FkYWJsZUNsYXNzaWNTY3JpcHQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL0xvYWRhYmxlQ2xhc3NpY1NjcmlwdC5jcHAKaW5kZXggOGY0NmVkODY4YzM4MWJh
MGFmNzVlYzYxMDU3NGE1NWNkMjA0ZmQ4NC4uZjdmOWUxOWU1NmQ2NmQxY2IyMDQ4YWFmNGE5MWE1
YzFjOTQ4YzI3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0xvYWRhYmxlQ2xhc3Np
Y1NjcmlwdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0xvYWRhYmxlQ2xhc3NpY1Njcmlw
dC5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJTY3JpcHRFbGVtZW50LmgiCiAjaW5j
bHVkZSAiU2NyaXB0U291cmNlQ29kZS5oIgogI2luY2x1ZGUgIlN1YnJlc291cmNlSW50ZWdyaXR5
LmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8
d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSW1wbC5oPgog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTW91c2VFdmVudC5jcHAKaW5kZXggZGFjM2UwODhkOWE1ZDNiNzY4N2Q0ZGIx
Y2VmYjJkNWViOGIwZTBmMi4uMmEwOTc2YjIzZDNjYTY3ZDQ2MzJiYmNmNDMyMzNkOTc2ZTcyN2Zi
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2ZW50LmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1
ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIlJ1bnRpbWVBcHBsaWNhdGlvbkNo
ZWNrcy5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NhbGxGcmFtZS5oPgorI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L0pTR2xvYmFsT2JqZWN0SW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVz
Lmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAppbmRleCBjNGYyOTU5OTkzOWVj
MTY4MzJjNmRmNmMwY2VjMDIwYmNkNDI1MGI0Li5lMzI2YjQ4Yjc2NzRmYjkxZjc5NTg3YmZlMGU5
OTA1NTc4NDVhOTFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCkBAIC01Niw2
ICs1Niw3IEBACiAjaW5jbHVkZSAiU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyLmgiCiAjaW5jbHVk
ZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJUZXh0Tm9kZVRyYXZlcnNhbC5oIgorI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9Tb3J0ZWRBcnJh
eU1hcC5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvU3lz
dGVtVHJhY2luZy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1
dGlvbkNvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQuY3BwCmluZGV4IGQyNGIwMWI3NzM2YzVjYjU4ZjY5YTdkOThkNmM0YjcwYjY0OThiYzMuLmMz
MGJjNmQ0ZTQ0ODI5YTc1NjFkZjE4YjY3MjQ2NWJhZjk2MmQ4OTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAK
KyNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKICNpbmNsdWRlICJDU1NWYWx1ZVBvb2wuaCIK
ICNpbmNsdWRlICJDYWNoZWRTY3JpcHQuaCIKICNpbmNsdWRlICJDb21tb25WTS5oIgpAQCAtNzEs
NiArNzIsNyBAQAogI2luY2x1ZGUgIldvcmtlclRocmVhZC5oIgogI2luY2x1ZGUgIldvcmtsZXRH
bG9iYWxTY29wZS5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NhdGNoU2NvcGUuaD4KKyNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMuaD4KICNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9EZWZlcnJlZFdvcmtUaW1lci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0V4
Y2VwdGlvbi5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTUHJvbWlzZS5oPgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKaW5kZXggMTZjODY2ZjM5NDg2
YWRkMWVkYTNkYTMyMGI1MTA0NmQyNWMzMDQ1ZS4uOGMyNDY0ZWJlNGYzZGJkMmU0MDI3YTE1OWJj
NWI2MjI3YWQwNGQ2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1
dGlvbkNvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dC5oCkBAIC0yNywxNiArMjcsMTAgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJB
Y3RpdmVET01PYmplY3QuaCIKICNpbmNsdWRlICJDcm9zc09yaWdpbk1vZGUuaCIKLSNpbmNsdWRl
ICJET01UaW1lci5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVy
LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlDb250ZXh0LmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtl
cklkZW50aWZpZXIuaCIKLSNpbmNsdWRlICJTZXR0aW5ncy5oIgotI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0NvbnNvbGVUeXBlcy5oPgotI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hhbmRsZVR5
cGVzLmg+Ci0jaW5jbHVkZSA8d3RmL0Nyb3NzVGhyZWFkVGFzay5oPgogI2luY2x1ZGUgPHd0Zi9G
dW5jdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL09iamVj
dElkZW50aWZpZXIuaD4KQEAgLTQ2LDkgKzQwLDEyIEBACiBuYW1lc3BhY2UgSlNDIHsKIGNsYXNz
IENhbGxGcmFtZTsKIGNsYXNzIEV4Y2VwdGlvbjsKK2NsYXNzIEpTR2xvYmFsT2JqZWN0OwogY2xh
c3MgSlNQcm9taXNlOwogY2xhc3MgVk07CiBlbnVtIGNsYXNzIFNjcmlwdEV4ZWN1dGlvblN0YXR1
czsKK2VudW0gY2xhc3MgTWVzc2FnZVNvdXJjZSA6IHVpbnQ4X3Q7CitlbnVtIGNsYXNzIE1lc3Nh
Z2VMZXZlbCA6IHVpbnQ4X3Q7CiB9CiAKIG5hbWVzcGFjZSBJbnNwZWN0b3IgewpAQCAtNTcsMTEg
KzU0LDE1IEBAIGNsYXNzIFNjcmlwdENhbGxTdGFjazsKIH0KIAogbmFtZXNwYWNlIFdlYkNvcmUg
eworc3RydWN0IFNldHRpbmdzVmFsdWVzOwogCitjbGFzcyBBY3RpdmVET01PYmplY3Q7CiBjbGFz
cyBFdmVudExvb3A7CiBjbGFzcyBDYWNoZWRTY3JpcHQ7CiBjbGFzcyBDU1NGb250U2VsZWN0b3I7
CiBjbGFzcyBDU1NWYWx1ZVBvb2w7CitjbGFzcyBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcjsK
K2NsYXNzIERPTVRpbWVyOwogY2xhc3MgRGF0YWJhc2VDb250ZXh0OwogY2xhc3MgRXZlbnRRdWV1
ZTsKIGNsYXNzIEV2ZW50TG9vcFRhc2tHcm91cDsKQEAgLTc1LDkgKzc2LDExIEBAIGNsYXNzIFJl
amVjdGVkUHJvbWlzZVRyYWNrZXI7CiBjbGFzcyBSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJD
b25uZWN0aW9uOwogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogY2xhc3MgU29ja2V0UHJvdmlkZXI7
CisKIGVudW0gY2xhc3MgTG9hZGVkRnJvbU9wYXF1ZVNvdXJjZSA6IHVpbnQ4X3Q7CiBlbnVtIGNs
YXNzIFJlZmVycmVyUG9saWN5IDogdWludDhfdDsKIGVudW0gY2xhc3MgVGFza1NvdXJjZSA6IHVp
bnQ4X3Q7CitlbnVtIGNsYXNzIFJlYXNvbkZvclN1c3BlbnNpb24gOiB1aW50OF90OwogCiAjaWYg
RU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogY2xhc3MgU2VydmljZVdvcmtlcjsKQEAgLTExMCw3ICsx
MTMsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIFJlZmVycmVyUG9saWN5IHJlZmVycmVyUG9s
aWN5KCkgY29uc3QgPSAwOwogCi0gICAgdmlydHVhbCBjb25zdCBTZXR0aW5nczo6VmFsdWVzJiBz
ZXR0aW5nc1ZhbHVlcygpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGNvbnN0IFNldHRpbmdzVmFs
dWVzJiBzZXR0aW5nc1ZhbHVlcygpIGNvbnN0ID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBkaXNh
YmxlRXZhbChjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSkgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBkaXNhYmxlV2ViQXNzZW1ibHkoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpID0gMDsKQEAg
LTEzMiw4ICsxMzUsOCBAQCBwdWJsaWM6CiAKICAgICAvLyBUaGUgZm9sbG93aW5nIGFkZENvbnNv
bGVNZXNzYWdlIGZ1bmN0aW9ucyBhcmUgZGVwcmVjYXRlZC4KICAgICAvLyBDYWxsZXJzIHNob3Vs
ZCB0cnkgdG8gY3JlYXRlIHRoZSBDb25zb2xlTWVzc2FnZSB0aGVtc2VsdmVzLgotICAgIHZvaWQg
YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJp
bmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCB1bnNpZ25lZCBsaW5lTnVtYmVy
LCB1bnNpZ25lZCBjb2x1bW5OdW1iZXIsIEpTQzo6SlNHbG9iYWxPYmplY3QqID0gbnVsbHB0ciwg
dW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApOwotICAgIHZpcnR1YWwgdm9pZCBh
ZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApID0gMDsKKyAg
ICB2b2lkIGFkZENvbnNvbGVNZXNzYWdlKEpTQzo6TWVzc2FnZVNvdXJjZSwgSlNDOjpNZXNzYWdl
TGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIHVu
c2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlciwgSlNDOjpKU0dsb2JhbE9i
amVjdCogPSBudWxscHRyLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyID0gMCk7Cisg
ICAgdmlydHVhbCB2b2lkIGFkZENvbnNvbGVNZXNzYWdlKEpTQzo6TWVzc2FnZVNvdXJjZSwgSlND
OjpNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbG9uZyByZXF1
ZXN0SWRlbnRpZmllciA9IDApID0gMDsKIAogICAgIHZpcnR1YWwgU2VjdXJpdHlPcmlnaW4mIHRv
cE9yaWdpbigpIGNvbnN0ID0gMDsKIApAQCAtMjE2LDE5ICsyMTksMTQgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBwb3N0VGFzayhUYXNrJiYpID0gMDsgLy8gRXhlY3V0ZXMgdGhlIHRhc2sg
b24gY29udGV4dCdzIHRocmVhZCBhc3luY2hyb25vdXNseS4KIAogICAgIHRlbXBsYXRlPHR5cGVu
YW1lLi4uIEFyZ3VtZW50cz4KLSAgICB2b2lkIHBvc3RDcm9zc1RocmVhZFRhc2soQXJndW1lbnRz
JiYuLi4gYXJndW1lbnRzKQotICAgIHsKLSAgICAgICAgcG9zdFRhc2soW2Nyb3NzVGhyZWFkVGFz
ayA9IGNyZWF0ZUNyb3NzVGhyZWFkVGFzayhhcmd1bWVudHMuLi4pXShTY3JpcHRFeGVjdXRpb25D
b250ZXh0JikgbXV0YWJsZSB7Ci0gICAgICAgICAgICBjcm9zc1RocmVhZFRhc2sucGVyZm9ybVRh
c2soKTsKLSAgICAgICAgfSk7Ci0gICAgfQorICAgIGlubGluZSB2b2lkIHBvc3RDcm9zc1RocmVh
ZFRhc2soQXJndW1lbnRzJiYuLi4pOwogCiAgICAgLy8gR2V0cyB0aGUgbmV4dCBpZCBpbiBhIGNp
cmN1bGFyIHNlcXVlbmNlIGZyb20gMSB0byAyXjMxLTEuCiAgICAgaW50IGNpcmN1bGFyU2VxdWVu
dGlhbElEKCk7CiAKLSAgICBib29sIGFkZFRpbWVvdXQoaW50IHRpbWVvdXRJZCwgRE9NVGltZXIm
IHRpbWVyKSB7IHJldHVybiBtX3RpbWVvdXRzLmFkZCh0aW1lb3V0SWQsIHRpbWVyKS5pc05ld0Vu
dHJ5OyB9Ci0gICAgdm9pZCByZW1vdmVUaW1lb3V0KGludCB0aW1lb3V0SWQpIHsgbV90aW1lb3V0
cy5yZW1vdmUodGltZW91dElkKTsgfQotICAgIERPTVRpbWVyKiBmaW5kVGltZW91dChpbnQgdGlt
ZW91dElkKSB7IHJldHVybiBtX3RpbWVvdXRzLmdldCh0aW1lb3V0SWQpOyB9CisgICAgaW5saW5l
IGJvb2wgYWRkVGltZW91dChpbnQgdGltZW91dElkLCBET01UaW1lciYpOworICAgIGlubGluZSB2
b2lkIHJlbW92ZVRpbWVvdXQoaW50IHRpbWVvdXRJZCk7CisgICAgaW5saW5lIERPTVRpbWVyKiBm
aW5kVGltZW91dChpbnQgdGltZW91dElkKTsKIAogICAgIHZpcnR1YWwgSlNDOjpWTSYgdm0oKSA9
IDA7CiAKQEAgLTI4NCwyMiArMjgyLDcgQEAgcHVibGljOgogICAgIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRJZGVudGlmaWVyIGNvbnRleHRJZGVudGlmaWVyKCkgY29uc3Q7CiAKIHByb3RlY3RlZDoK
LSAgICBjbGFzcyBBZGRDb25zb2xlTWVzc2FnZVRhc2sgOiBwdWJsaWMgVGFzayB7Ci0gICAgcHVi
bGljOgotICAgICAgICBBZGRDb25zb2xlTWVzc2FnZVRhc2soc3RkOjp1bmlxdWVfcHRyPEluc3Bl
Y3Rvcjo6Q29uc29sZU1lc3NhZ2U+JiYgY29uc29sZU1lc3NhZ2UpCi0gICAgICAgICAgICA6IFRh
c2soWyZjb25zb2xlTWVzc2FnZV0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkgewot
ICAgICAgICAgICAgICAgIGNvbnRleHQuYWRkQ29uc29sZU1lc3NhZ2UoV1RGTW92ZShjb25zb2xl
TWVzc2FnZSkpOwotICAgICAgICAgICAgfSkKLSAgICAgICAgewotICAgICAgICB9Ci0KLSAgICAg
ICAgQWRkQ29uc29sZU1lc3NhZ2VUYXNrKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2
ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKLSAgICAgICAgICAgIDogVGFzayhbc291
cmNlLCBsZXZlbCwgbWVzc2FnZSA9IG1lc3NhZ2UuaXNvbGF0ZWRDb3B5KCldKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmIGNvbnRleHQpIHsKLSAgICAgICAgICAgICAgICBjb250ZXh0LmFkZENvbnNv
bGVNZXNzYWdlKHNvdXJjZSwgbGV2ZWwsIG1lc3NhZ2UpOwotICAgICAgICAgICAgfSkKLSAgICAg
ICAgewotICAgICAgICB9Ci0gICAgfTsKKyAgICBjbGFzcyBBZGRDb25zb2xlTWVzc2FnZVRhc2s7
CiAKICAgICBSZWFzb25Gb3JTdXNwZW5zaW9uIHJlYXNvbkZvclN1c3BlbmRpbmdBY3RpdmVET01P
YmplY3RzKCkgY29uc3QgeyByZXR1cm4gbV9yZWFzb25Gb3JTdXNwZW5kaW5nQWN0aXZlRE9NT2Jq
ZWN0czsgfQogCkBAIC0zMTAsNyArMjkzLDcgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICAv
LyBUaGUgZm9sbG93aW5nIGFkZE1lc3NhZ2UgZnVuY3Rpb24gaXMgZGVwcmVjYXRlZC4KICAgICAv
LyBDYWxsZXJzIHNob3VsZCB0cnkgdG8gY3JlYXRlIHRoZSBDb25zb2xlTWVzc2FnZSB0aGVtc2Vs
dmVzLgotICAgIHZpcnR1YWwgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VM
ZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgdW5z
aWduZWQgbGluZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBSZWZQdHI8SW5zcGVjdG9y
OjpTY3JpcHRDYWxsU3RhY2s+JiYsIEpTQzo6SlNHbG9iYWxPYmplY3QqID0gbnVsbHB0ciwgdW5z
aWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
YWRkTWVzc2FnZShKU0M6Ok1lc3NhZ2VTb3VyY2UsIEpTQzo6TWVzc2FnZUxldmVsLCBjb25zdCBT
dHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCB1bnNpZ25lZCBsaW5lTnVt
YmVyLCB1bnNpZ25lZCBjb2x1bW5OdW1iZXIsIFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdENhbGxT
dGFjaz4mJiwgSlNDOjpKU0dsb2JhbE9iamVjdCogPSBudWxscHRyLCB1bnNpZ25lZCBsb25nIHJl
cXVlc3RJZGVudGlmaWVyID0gMCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBsb2dFeGNlcHRpb25U
b0NvbnNvbGUoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNl
VVJMLCBpbnQgbGluZU51bWJlciwgaW50IGNvbHVtbk51bWJlciwgUmVmUHRyPEluc3BlY3Rvcjo6
U2NyaXB0Q2FsbFN0YWNrPiYmKSA9IDA7CiAgICAgYm9vbCBkaXNwYXRjaEVycm9yRXZlbnQoY29u
c3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBpbnQgY29sdW1uTnVtYmVy
LCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgSlNDOjpFeGNlcHRpb24qLCBDYWNoZWRTY3JpcHQq
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRJbmxpbmVzLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dElu
bGluZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5lODE0ZmYzN2NiODkzZDljYmExMjI2MTUxMDNkMDI0OGUyOWFi
MDgyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlv
bkNvbnRleHRJbmxpbmVzLmgKQEAgLTAsMCArMSw3NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaW5jbHVkZSAiRE9NVGltZXIuaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25D
b250ZXh0LmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CisjaW5j
bHVkZSA8d3RmL0Nyb3NzVGhyZWFkVGFzay5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2lu
bGluZSBib29sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmFkZFRpbWVvdXQoaW50IHRpbWVvdXRJ
ZCwgRE9NVGltZXImIHRpbWVyKQoreworICAgIHJldHVybiBtX3RpbWVvdXRzLmFkZCh0aW1lb3V0
SWQsIHRpbWVyKS5pc05ld0VudHJ5OworfQorCitpbmxpbmUgdm9pZCBTY3JpcHRFeGVjdXRpb25D
b250ZXh0OjpyZW1vdmVUaW1lb3V0KGludCB0aW1lb3V0SWQpCit7CisgICAgbV90aW1lb3V0cy5y
ZW1vdmUodGltZW91dElkKTsKK30KKworaW5saW5lIERPTVRpbWVyKiBTY3JpcHRFeGVjdXRpb25D
b250ZXh0OjpmaW5kVGltZW91dChpbnQgdGltZW91dElkKQoreworICAgIHJldHVybiBtX3RpbWVv
dXRzLmdldCh0aW1lb3V0SWQpOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmd1bWVudHM+
CitpbmxpbmUgdm9pZCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojpwb3N0Q3Jvc3NUaHJlYWRUYXNr
KEFyZ3VtZW50cyYmLi4uIGFyZ3VtZW50cykKK3sKKyAgICBwb3N0VGFzayhbY3Jvc3NUaHJlYWRU
YXNrID0gY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKGFyZ3VtZW50cy4uLildKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmKSBtdXRhYmxlIHsKKyAgICAgICAgY3Jvc3NUaHJlYWRUYXNrLnBlcmZvcm1UYXNr
KCk7CisgICAgfSk7Cit9CisKK2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OkFkZENvbnNv
bGVNZXNzYWdlVGFzayA6IHB1YmxpYyBUYXNrIHsKK3B1YmxpYzoKKyAgICBBZGRDb25zb2xlTWVz
c2FnZVRhc2soc3RkOjp1bmlxdWVfcHRyPEluc3BlY3Rvcjo6Q29uc29sZU1lc3NhZ2U+JiYgY29u
c29sZU1lc3NhZ2UpCisgICAgICAgIDogVGFzayhbJmNvbnNvbGVNZXNzYWdlXShTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiBjb250ZXh0KSB7CisgICAgICAgICAgICBjb250ZXh0LmFkZENvbnNvbGVN
ZXNzYWdlKFdURk1vdmUoY29uc29sZU1lc3NhZ2UpKTsKKyAgICAgICAgfSkKKyAgICB7CisgICAg
fQorCisgICAgQWRkQ29uc29sZU1lc3NhZ2VUYXNrKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNz
YWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKKyAgICAgICAgOiBUYXNrKFtz
b3VyY2UsIGxldmVsLCBtZXNzYWdlID0gbWVzc2FnZS5pc29sYXRlZENvcHkoKV0oU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYgY29udGV4dCkgeworICAgICAgICAgICAgY29udGV4dC5hZGRDb25zb2xl
TWVzc2FnZShzb3VyY2UsIGxldmVsLCBtZXNzYWdlKTsKKyAgICAgICAgfSkKKyAgICB7CisgICAg
fQorfTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1ZpZXdwb3J0QXJndW1l
bnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9WaWV3cG9ydEFyZ3VtZW50cy5jcHAKaW5kZXgg
NzNkZjk0YzQ2NGY5ZWU0Y2NiZjM1OTEyNjg1YzllMGMwNzliMGE2Yi4uNDM4NzViZDBjZTdlOTQy
MTJhYmFmMjZiYjFmNDljZTE3MjgxNGUyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L1ZpZXdwb3J0QXJndW1lbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVmlld3BvcnRB
cmd1bWVudHMuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiSW50U2l6ZS5oIgogI2lu
Y2x1ZGUgIlNjcmlwdGFibGVEb2N1bWVudFBhcnNlci5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgi
CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvVGV4dFN0cmVhbS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9maWxlYXBpL0Jsb2IuaCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvQmxv
Yi5oCmluZGV4IDI2OGYyYzZkNGFlOTE0YWVhNDNmNDRmNzgyMTI0YmQzYjE4ZTM5ZTUuLjY5NWNh
ZThmMjEyZTA5YWY1ZThhMWU3YmEzNzM3Zjk1NGVlZjBlMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2ZpbGVhcGkvQmxvYi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvQmxvYi5o
CkBAIC0zMSw2ICszMSw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiQWN0aXZlRE9N
T2JqZWN0LmgiCiAjaW5jbHVkZSAiQmxvYlByb3BlcnR5QmFnLmgiCiAjaW5jbHVkZSAiQmxvYlVS
TC5oIgogI2luY2x1ZGUgIkZpbGVSZWFkZXJMb2FkZXIuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQW5jaG9yRWxlbWVudC5jcHAKaW5kZXggN2QzNjBkOTkxN2Q3YWE3ZjUzMzczMDQzMDNjMDBl
MTE3ODZmYWFmNi4uY2VlYmFiZGUzYmRlNjMyMGZmMTBmMzY0OWU4NDk2M2FmYzExMTZiZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKQEAgLTU1LDYgKzU1LDcg
QEAKICNpbmNsdWRlICJTZWN1cml0eVBvbGljeS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAj
aW5jbHVkZSAiVXNlckdlc3R1cmVJbmRpY2F0b3IuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9Db25zb2xlVHlwZXMuaD4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogI2lu
Y2x1ZGUgPHd0Zi9XZWFrSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxk
ZXIuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKaW5kZXggODkx
MGU3NTE5MTI1MTEyMjVjNThlZGJmMjZjZDIxNzMyZTYxZjdhZS4uNmYwYTUyZGM0MGNjMzZiMTA4
YjBmYzgwMjM4MzAyNWI4ZWEyNDBlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQ2FudmFzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFz
RWxlbWVudC5jcHAKQEAgLTYyLDYgKzYyLDcgQEAKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVy
LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTdHJpbmdBZGFwdG9ycy5oIgor
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDxtYXRoLmg+CiAjaW5jbHVkZSA8d3Rm
L0lzb01hbGxvY0lubGluZXMuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TENhbnZhc0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQu
aAppbmRleCA0YjNkODYwMWI0NDk2NjZiNWRhYzBjYWQ0MGM5OGI4MTBlOGMxNGE3Li5lY2IzNTZm
OGE5NTJmNDlkMDUyMTRmNTUyODNiNGFmNGQ3NzVjOGM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQ2FudmFzRWxlbWVudC5oCkBAIC0zOSw2ICszOSwxMSBAQAogI2luY2x1ZGUgIldlYkdMQ29u
dGV4dEF0dHJpYnV0ZXMuaCIKICNlbmRpZgogCituYW1lc3BhY2UgSlNDIHsKK2NsYXNzIEpTVmFs
dWU7CitlbnVtIGNsYXNzIFVua25vd247Cit9CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgQmxvYkNhbGxiYWNrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAppbmRleCBjOTM1
ZWUxZDcyNzJjNjc0ZTcxNWVmYmY2ZWY1MGZhMGNhOWVjZjA5Li4zODU3MjljMjlmMGY4NDA3OGFm
ODQxOTNkMzllMDdkOGIzYjQ0MTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcApA
QCAtNjYsNiArNjYsNyBAQAogI2luY2x1ZGUgIlJlbmRlckltYWdlLmgiCiAjaW5jbHVkZSAiU2Ny
aXB0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIlNjcmlwdERpc2FsbG93ZWRTY29wZS5oIgorI2lu
Y2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgogI2luY2x1ZGUgIlNp
bXVsYXRlZENsaWNrLmgiCiAjaW5jbHVkZSAiU3R5bGVQcm9wZXJ0aWVzLmgiCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRleCA3ODAwMGNkNWZj
OWZmOTk1MTQ1ZDM2YmJhY2Q3M2NiMjM5N2JjN2QzLi5hZTM0Y2JlOTg0NDhjZmRlOWQxMDA4OGVi
ZjRjMDU3MzVjNzlhY2Y2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3Jt
Q29udHJvbEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250
cm9sRWxlbWVudC5jcHAKQEAgLTQ4LDYgKzQ4LDcgQEAKICNpbmNsdWRlICJTZXR0aW5ncy5oIgog
I2luY2x1ZGUgIlN0eWxlVHJlZVJlc29sdmVyLmgiCiAjaW5jbHVkZSAiVmFsaWRhdGlvbk1lc3Nh
Z2UuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMuaD4KICNpbmNsdWRl
IDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRl
IDx3dGYvU2V0Rm9yU2NvcGUuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEZvcm1FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNw
cAppbmRleCAyM2U0OWFhM2QxOTQ5MTQ2ZGVlYWY3YTJkNmNmY2Q0Y2EyMThhYjU2Li5lNzVhYWIy
ZmRlYzY2NGE4NzJjOTU3NjU2MzRmYzU2M2IxZDhlZTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRm9ybUVsZW1lbnQuY3BwCkBAIC01OCw2ICs1OCw3IEBACiAjaW5jbHVkZSAiU2V0dGluZ3Mu
aCIKICNpbmNsdWRlICJTdWJtaXRFdmVudC5oIgogI2luY2x1ZGUgIlVzZXJHZXN0dXJlSW5kaWNh
dG9yLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVk
ZSA8bGltaXRzPgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8
d3RmL1JlZi5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSHRtbEVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSHRtbEVsZW1lbnQuY3BwCmluZGV4IDA5
ZTdhZTY2YTk2MTQ4NDE1YjEwM2YyM2UwNTZiODhkNWZhYWEyOTkuLmE3ZjA5ZmQwZWRjNjFmMDA4
NjM2MjUzOWY0NGM5ZDYxY2UwOGU2ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEh0bWxFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxIdG1sRWxl
bWVudC5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUg
IkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSA8SmF2YVNj
cmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MSUZyYW1lRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVF
bGVtZW50LmNwcAppbmRleCAxZTgxZjU0MjViMDdlMjRkOWE5YzEyMDdlYjM1NTkyMTcyNDY1Yzg0
Li42YTViMWJlODE3MzIwYTVlYjBmMGUyNTQ1MTU1MDMyMGI3MzkzNjMxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1
ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJTY3JpcHRhYmxlRG9jdW1lbnRQYXJz
ZXIuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Nv
bnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAppbmRl
eCA3NGZkNDVlNmRiYmI0NTZiNTQ1M2IxZDQwZjM4Y2YwNDY0MGQ3N2E0Li5mYzk1YjZiMTIyNjgy
MjU4OGU3MTc1NTUxNmVjYzA2MDZiMDc1MmQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlu
a0VsZW1lbnQuY3BwCkBAIC02Miw2ICs2Miw3IEBACiAjaW5jbHVkZSAiU3R5bGVTY29wZS5oIgog
I2luY2x1ZGUgIlN0eWxlU2hlZXRDb250ZW50cy5oIgogI2luY2x1ZGUgIlN1YnJlc291cmNlSW50
ZWdyaXR5LmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5j
bHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5j
bHVkZSA8d3RmL1Njb3BlLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQ
bHVnSW5FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQu
Y3BwCmluZGV4IDk2NTFkODRlYTAyYjVmOTdmMjZiNzc0ZTBmMzY4NWRlMjk4NzQ3OWEuLjUzNTQ4
ZDRiNWI5YjA4MDlkZGI2MWEzNWViMDRhOTE4YjNhMDNjY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwCkBAIC00OCw2ICs0OCw3IEBACiAjaW5jbHVkZSAiU2hh
ZG93Um9vdC5oIgogI2luY2x1ZGUgIlN1YmZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiV2lkZ2V0
LmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8
d3RmL0lzb01hbGxvY0lubGluZXMuaD4KIAogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJ
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcAppbmRleCA3OWFkNGUy
MjA2ZGE4MDk0OGIyYTBiNTVmZWJiMWJiODRjODE2N2EwLi4zNGI2YmNhZDQwYTkzNmYzYzBjNjky
NzhmYTdjMzRmYTk3NzNlMjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxT
ZWxlY3RFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVt
ZW50LmNwcApAQCAtNTUsNiArNTUsNyBAQAogI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCiAjaW5j
bHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTcGF0aWFsTmF2aWdhdGlvbi5oIgorI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxs
b2NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5hdGVOdW1iZXJz
Lmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcAppbmRleCA3
ODdmYzM0MmNhZDEwNGMxODczMmI4MjI3MWFkNDgyNjc2NDFkMWUwLi4xM2IxMjhiZTE5NzU2YjMx
ODRkMjc1ZjU3NjFkYzA1MDYxMWQxYjliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L1RleHRGaWVsZElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0Rmll
bGRJbnB1dFR5cGUuY3BwCkBAIC02Miw2ICs2Miw3IEBACiAjaW5jbHVkZSAiVGV4dEV2ZW50Lmgi
CiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiVGV4dE5vZGVUcmF2ZXJzYWwu
aCIKKyNpbmNsdWRlICJVc2VyR2VzdHVyZUluZGljYXRvci5oIgogI2luY2x1ZGUgIlVzZXJUeXBp
bmdHZXN0dXJlSW5kaWNhdG9yLmgiCiAjaW5jbHVkZSAiV2hlZWxFdmVudC5oIgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRC
YXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyREJhc2UuY3BwCmluZGV4IGNhNGU3Nzc1ZTc0NmNjYzk5YjA3N2YyMGM2OTcxNmNlODI1ODk5
ZGYuLjQ1M2VmNTA4MTA3YTE2ZGViZjc4ZTlmZjE3ZGNhNmNjNWZkYzZiZjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyREJhc2UuY3BwCkBAIC02OSw2ICs2OSw3IEBACiAjaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5o
IgogI2luY2x1ZGUgIlRleHRNZXRyaWNzLmgiCiAjaW5jbHVkZSAiVGV4dFJ1bi5oIgorI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9DaGVja2Vk
QXJpdGhtZXRpYy5oPgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAjaW5jbHVk
ZSA8d3RmL01hdGhFeHRyYXMuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHAKaW5kZXggNWEzODc5NTdjMjYwNjYyMmRiNDZm
NGJmNjA4OGJlMzMxMDYxYWJiYi4uNWIzZmRmYzI2YTE3NTNkMDliODAxOTEwODdmNjllMjBjYWZl
Mjg3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVy
aW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVu
ZGVyaW5nQ29udGV4dC5jcHAKQEAgLTQ3LDYgKzQ3LDcgQEAKICNpbmNsdWRlICJPRVNUZXh0dXJl
RmxvYXRMaW5lYXIuaCIKICNpbmNsdWRlICJSZW5kZXJCb3guaCIKICNpbmNsdWRlICJSdW50aW1l
RW5hYmxlZEZlYXR1cmVzLmgiCisjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJXZWJH
TEFjdGl2ZUluZm8uaCIKICNpbmNsdWRlICJXZWJHTEJ1ZmZlci5oIgogI2luY2x1ZGUgIldlYkdM
Q29tcHJlc3NlZFRleHR1cmVBU1RDLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL1RyYWNrQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RyYWNrQmFz
ZS5jcHAKaW5kZXggYmFmYTQ5ZWU2MGQ4ODZjZjVkNzFlNmVkYzNmY2U2MTMwYTZlMTRmYS4uOTRl
OGM3NDc0YjFkYjJlYTk5ZDU3N2M2OGVhMzQyYjU4YWJiY2ZkNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9UcmFja0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svVHJhY2tCYXNlLmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkxvZ2dp
bmcuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiVHJh
Y2tMaXN0QmFzZS5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPgog
I2luY2x1ZGUgPHd0Zi9MYW5ndWFnZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxk
ZXIuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdl
L1BhZ2VEZWJ1Z2dlckFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMv
cGFnZS9QYWdlRGVidWdnZXJBZ2VudC5jcHAKaW5kZXggNTVkOTUxODQ5NDE5NWI5NmRmMTY1YTk0
YzFjMjk2M2FkY2ViODM5NS4uNTlkMTUyZmU2N2UzNWYxZTFlNzRiMzVjODQ0YmUzODM3ODIyMGI4
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VE
ZWJ1Z2dlckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3Bh
Z2UvUGFnZURlYnVnZ2VyQWdlbnQuY3BwCkBAIC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSAiU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlNjcmlwdFN0YXRlLmgiCiAjaW5jbHVk
ZSAiVXNlckdlc3R1cmVFbXVsYXRpb25TY29wZS5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L0NvbnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0luamVjdGVkU2NyaXB0
Lmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmg+CiAj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU2NyaXB0Q2FsbFN0YWNrLmg+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeS5jcHAKaW5kZXggNzEz
NWE4Y2ZhZTBmNjY4YWFmNzJhNGE3NzI4MDUzYTRmY2YzNWUwZC4uMDZhYWFiMWM1NTNhOTNhOGM2
NTFjZjM5ZTc3OTc5MTZlZjAyNzVhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0Nyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3kuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Dcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5LmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1
ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0
LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Dcm9zc09yaWdpblByZWZsaWdodENoZWNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0Nyb3NzT3JpZ2luUHJlZmxpZ2h0Q2hlY2tlci5jcHAKaW5kZXggOGIzMWUxNzM5MmE5N2JiOTZk
MzQ5N2I5MjhlZGRhMmU2N2NjZDZkNS4uZWY1NDE2YjFkNGI5ZTExMjE3MjRiYmNmMmNiYmViMTYz
YWE0NjE2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luUHJl
ZmxpZ2h0Q2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2lu
UHJlZmxpZ2h0Q2hlY2tlci5jcHAKQEAgLTQzLDYgKzQzLDcgQEAKICNpbmNsdWRlICJOZXR3b3Jr
TG9hZE1ldHJpY3MuaCIKICNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCiAjaW5j
bHVkZSAiU2hhcmVkQnVmZmVyLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5
cGVzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1
bWVudExvYWRlci5jcHAKaW5kZXggNDYwMDYwYzE4OTdlZTE2OTdiOGRjN2ViYzMyZGY4ODU2YmNm
YThlMS4uMzM3MjkxNTEzNmRkNzlmY2M5NDdiMmIyY2U4MDlhYjI3YmRkYzNjNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCkBAIC05NCw2ICs5NCw3IEBACiAjaW5j
bHVkZSAiU3VicmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJUZXh0UmVzb3VyY2VEZWNvZGVy
LmgiCiAjaW5jbHVkZSAiVXNlckNvbnRlbnRQcm92aWRlci5oIgorI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0NvbnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW5j
bHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJv
eWVkLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRh
YmxlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVM
b2FkZXIuY3BwCmluZGV4IGUwNGIzN2Y4MmJiNmNjMDg1Yjg3OTIwZjlkMTZlYzE0MGFhYTFlOGYu
LmZhM2FmYTRlYzQ2NWIzYjdjYTI0ZTI1Y2I5ODkyZDliOTc5NGJmNGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwCkBAIC02MSw2
ICs2MSw3IEBACiAjaW5jbHVkZSAiU3VicmVzb3VyY2VJbnRlZ3JpdHkuaCIKICNpbmNsdWRlICJT
dWJyZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIlRocmVhZGFibGVMb2FkZXJDbGllbnQuaCIK
KyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMuaD4KICNpbmNsdWRlIDx3dGYv
QXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlci5jcHAKaW5kZXggYjkyNzM2Y2NkYzRlM2Q2NTc0Y2ZiZDZkMTA2NGMxYTQwYWJi
ZmRjOC4uMGNkMjFjZTAzZDM1OWEzMTljZjc0ZjQ5YWNmNDRiMjQ5YmFmMWRkZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0xMjgsNiArMTI4LDcgQEAKICNpbmNsdWRl
ICJVc2VyR2VzdHVyZUluZGljYXRvci5oIgogI2luY2x1ZGUgIldpbmRvd0ZlYXR1cmVzLmgiCiAj
aW5jbHVkZSAiWE1MRG9jdW1lbnRQYXJzZXIuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9D
b25zb2xlVHlwZXMuaD4KICNpbmNsdWRlIDxkb20vU2NyaXB0RGlzYWxsb3dlZFNjb3BlLmg+CiAj
aW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL1VSTC5oPgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5jcHAKaW5kZXggZDUwNmY0NDc5M2FiMTI3NDRl
NmVmZjY5MTRlMDlmNzgyZDQ4MWFmZC4uZjIxMjZlMzZkNTZlYzFmNmMzZDM5MzllZGI1OTU1Zjdm
YWQ2YTlkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIuY3BwCkBAIC00NSw2ICs0
NSw3IEBACiAjaW5jbHVkZSAiUmVuZGVySW1hZ2UuaCIKICNpbmNsdWRlICJSZW5kZXJTVkdJbWFn
ZS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29u
c29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKICNpZiBFTkFC
TEUoVklERU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5jcHAKaW5kZXggOGZiOTE3Yjk1
MWMyZmRhNGI5OWNlMWJlNzVlNjFiMWQxNDBhYmIyNC4uM2RmZjY1ZjhlYzFmNzdiZDYzMTFkMjNh
YWExMTczNzk5YWFmMmVhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtM
b2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVyLmNwcApAQCAt
NTksNiArNTksNyBAQAogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU2l6ZXNBdHRy
aWJ1dGVQYXJzZXIuaCIKICNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgiCisjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL01lZGlhUmVzb3VyY2VMb2FkZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL01lZGlhUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IDVkMTIw
ZTI0N2FjMjYyNzExNjFkZTBkYzUyMzAyNGRjOGRlMzRkNjkuLmEwNTA5ZTE3N2E5NWE0Y2Y0NGM5
YjlmMzEzMWZmNzJmNTVkYTZkMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9N
ZWRpYVJlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWVkaWFS
ZXNvdXJjZUxvYWRlci5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJGcmFtZUxvYWRl
ckNsaWVudC5oIgogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1
ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5
cGVzLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NaXhlZENvbnRlbnRDaGVj
a2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NaXhlZENvbnRlbnRDaGVja2VyLmNwcApp
bmRleCAyMTkwZDk3YjhkOGExZGRlMjFiMzdhYjI4NDIxMWFiYjUxNWM5NGYwLi5jNWU4ZThkNWJl
ZjBkMGRjZjkwM2E0YjY1ZDRlYjI1MmIwYjY3MzBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvTWl4ZWRDb250ZW50Q2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL01peGVkQ29udGVudENoZWNrZXIuY3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAi
RnJhbWVMb2FkZXJDbGllbnQuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1
ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvblNj
aGVkdWxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvblNjaGVkdWxlci5j
cHAKaW5kZXggMmY5ZWUyNWViZDUyNDVjMWJiYzNlMWI2NTMyYzg0MGQ5MzA1ODllMC4uNTk4ZDA0
NThiMjFmNmFhZjI2ZmQ1NWEyOWRiMTJjYTE0YjQ3NGE1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL05hdmlnYXRpb25TY2hlZHVsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcApAQCAtNTMsNiArNTMsNyBAQAogI2luY2x1
ZGUgIlBvbGljeUNoZWNrZXIuaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5j
bHVkZSAiVXNlckdlc3R1cmVJbmRpY2F0b3IuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9D
b25zb2xlVHlwZXMuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IGFhODViYjRk
M2NhODcxNDViYjdhODZmNjQ2NjhlNDk1MTc2YWMyMzUuLmNhMjExZDg5MDkwNmQ4OGQ4NjllZjg2
YTJkNTIzODYxZWY1ZTZiMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNv
dXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVy
LmNwcApAQCAtNTIsNiArNTIsNyBAQAogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5j
bHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSAiU3VicmVzb3VyY2VMb2FkZXIuaCIKKyNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMuaD4KICNpbmNsdWRlIDx3dGYvQ29t
cGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IDdkNzgyMmUyNDkyODE2YzZlODY2
YjdlNWI3ODgzMTEwNjM3YjFkZGYuLmZmZjRiYWRiYjYzYjJlNjY4YjlmNzNiZGYwY2FlYTg0MTQ0
YTAwYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcApA
QCAtNDcsNiArNDcsNyBAQAogI2luY2x1ZGUgIlJlc291cmNlVGltaW5nLmgiCiAjaW5jbHVkZSAi
UnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVk
ZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRp
b25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkTGVha0NvdW50ZXIuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UZXh0
VHJhY2tMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RleHRUcmFja0xvYWRlci5j
cHAKaW5kZXggOGNjM2M1NjhjNDM3OTZhYzYxYjMwOTc1NDdhODllZjgxMmQ5OGQ0ZC4uM2UwMjYw
NzczNTc2YjBhODNkYmE4ODE2NWFmZGNkNDY4NjE5M2E1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL1RleHRUcmFja0xvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1RleHRUcmFja0xvYWRlci5jcHAKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlICJTaGFy
ZWRCdWZmZXIuaCIKICNpbmNsdWRlICJWVFRDdWUuaCIKICNpbmNsdWRlICJXZWJWVFRQYXJzZXIu
aCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMuaD4KICNpbmNsdWRlIDx3
dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL1RocmVhZGFibGVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1RocmVhZGFibGVMb2FkZXIuY3BwCmluZGV4IDFiNjUzMmMzYjBlYWE4MGQ5YmQ0
NmM2ZDQzMjEzNjk2MjFjMDE5YmIuLjhhMWY3YmZiMDllNDEwYWE3NmIzMjBhOWM4NjhiNjU0Y2Uy
NGI3NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UaHJlYWRhYmxlTG9hZGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGhyZWFkYWJsZUxvYWRlci5jcHAKQEAg
LTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJXb3JrZXJSdW5Mb29wLmgiCiAjaW5jbHVkZSAiV29y
a2VyVGhyZWFkYWJsZUxvYWRlci5oIgogI2luY2x1ZGUgIldvcmtsZXRHbG9iYWxTY29wZS5oIgor
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBs
aWNhdGlvbkNhY2hlR3JvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0Fw
cGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAKaW5kZXggODlmM2IwZjFkYzM5ZDQwYTU2Mzg3OGFlNTVm
NzZjNjcwYTcxNTA5MS4uNDMxOWM1YmE4NjlkMjQ1ZWUzMTIxODljMmI0N2M4NWI3YjFiZDEzYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2Fj
aGVHcm91cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0
aW9uQ2FjaGVHcm91cC5jcHAKQEAgLTQ5LDYgKzQ5LDcgQEAKICNpbmNsdWRlICJQcm9ncmVzc1Ry
YWNrZXIuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNldHRpbmdz
LmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8
d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9h
ZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRl
ci5jcHAKaW5kZXggMzZlZTMyNzVkNjkyMDdlNDUwMjE2MmYwYWJhZWI4OGU1OGViYzc1Yi4uZTg1
MjFlZjFmYzE0ODUwNzYzYjViNTVhMmYxMTgyMGExYTVjNzIxYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC04Myw2
ICs4Myw3IEBACiAjaW5jbHVkZSAiU3VicmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJVc2Vy
Q29udGVudENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJVc2VyU3R5bGVTaGVldC5oIgorI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPHBhbC9TZXNzaW9u
SUQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuY3BwCmluZGV4IDg4OTA1MmUzYTQ1MmUy
NTZlMzg3ODIzODY3ZTNiYjc4ZDUwNTc0NmQuLmQyMTAwNjk0MzMzNzcxYTNjMDQ4M2MxOThlZGY5
MTNlMDVjYjNlMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuY3BwCkBAIC0zMyw3ICszMyw3IEBA
CiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBsdWdpblZpZXdCYXNlLmgiCiAjaW5jbHVk
ZSAiU2NoZWR1bGVkQWN0aW9uLmgiCi0jaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5o
IgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJbmxpbmVzLmgiCiAjaW5jbHVkZSAi
U2V0dGluZ3MuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9NYXRo
RXh0cmFzLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXggYjkwNjRmNzc4MDk0YWMx
Y2FlNzk4YzZjYzk4OGY2ZTlhYzkxZDdhNi4uZmZjOTE3ODMzMmI5NjQ2ZDRjN2VkMDQ3NDY3NzZm
MjA2MDE0MjFlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApAQCAtMTE3LDYgKzExNyw3
IEBACiAjaW5jbHVkZSAiV2luZG93RmVhdHVyZXMuaCIKICNpbmNsdWRlICJXaW5kb3dGb2N1c0Fs
bG93ZWRJbmRpY2F0b3IuaCIKICNpbmNsdWRlICJXaW5kb3dQcm94eS5oIgorI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1Nj
cmlwdENhbGxTdGFjay5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1NjcmlwdENhbGxTdGFj
a0ZhY3RvcnkuaD4KICNpbmNsdWRlIDxhbGdvcml0aG0+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0Nv
bnRyb2xsZXIuY3BwCmluZGV4IGExYzBlNWY1NjllZGEwNzRiMzE2OWIyZWNjNTNiZDgwMWIyY2M0
ZjAuLmNkODYyYWJhMmIwMzdiNGU4Y2RmYWQ1YzU1ZTNhOGYzMzc5YTFmYWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCkBAIC05Miw2ICs5Miw3IEBACiAjaW5jbHVkZSAi
VmlzaWJsZVBvc2l0aW9uLmgiCiAjaW5jbHVkZSAiV2ViQ29udGVudFJlYWRlci5oIgogI2luY2x1
ZGUgIm1hcmt1cC5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPgog
I2luY2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5oPgogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVu
dFNvdXJjZS5jcHAKaW5kZXggNjAyNjMxYmI3Y2QxMDg2MGIxYTMxMjEwNDNjOTdkOGVmZTQ0NzYx
ZC4uYTU4YTRmZjUzY2IxNmZlZWU5MzhjNDE4ZDkzMDg0MTI3ZTU3OTA2ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9FdmVudFNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9FdmVudFNvdXJjZS5jcHAKQEAgLTQ0LDYgKzQ0LDcgQEAKICNpbmNsdWRlICJTZWN1cml0
eU9yaWdpbi5oIgogI2luY2x1ZGUgIlRleHRSZXNvdXJjZURlY29kZXIuaCIKICNpbmNsdWRlICJU
aHJlYWRhYmxlTG9hZGVyLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVz
Lmg+CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvU2V0
Rm9yU2NvcGUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdUb0ludGVnZXJDb252ZXJzaW9u
Lmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCmluZGV4IDhlMGExOWE2NjRlNjJiN2MzZWU0ZGNmODhiZTc3
YWI1YmEyNzM3ZWQuLjgxZjM1MTNjMWMzNjRmNjI1YTNhNWY1MjEzY2UwNTJiMDM4ZDZjZDkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWUuY3BwCkBAIC0xMDUsNiArMTA1LDcgQEAKICNpbmNsdWRlICJucHJ1bnRp
bWVfaW1wbC5oIgogI2luY2x1ZGUgInJ1bnRpbWVfcm9vdC5oIgogI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0FQSUNhc3QuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMu
aD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9SZWd1bGFyRXhwcmVzc2lvbi5oPgogI2luY2x1
ZGUgPHd0Zi9IZXhOdW1iZXIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZExlYWtDb3VudGVy
Lmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggMWRlOGQwMzJhZGE2ZTQwM2Y3YWFk
Mzc5ODY0NjJlYWMzYmEzM2U2My4uMzUxNzc1N2Q1YTdkYmM5ZTIxNGVmZTM0ZmM5MzdlM2I5ZGJh
MTI1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtMTEyLDYgKzExMiw3IEBACiAj
aW5jbHVkZSAiVmVsb2NpdHlEYXRhLmgiCiAjaW5jbHVkZSAiVmlzdWFsVmlld3BvcnQuaCIKICNp
bmNsdWRlICJXaGVlbEV2ZW50VGVzdE1vbml0b3IuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9Db25zb2xlVHlwZXMuaD4KICNpbmNsdWRlIDx3dGYvSGV4TnVtYmVyLmg+CiAjaW5jbHVkZSA8
d3RmL0lzb01hbGxvY0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvTWVtb3J5UHJlc3N1cmVIYW5k
bGVyLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCAwMDYxM2ZhNjg3NmE2YmU2YTkyNjEzMzIxNjFl
NDk2ODIyYWY0MTgyLi44MTk5YTc0MzIyMWNjZDQ1ZTU1NTgwZWEwNWZmNWJlN2U2ZTQ4ZGQ1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTE2MCw2ICsxNjAsNyBAQAogI2luY2x1ZGUgIldoZWVsRXZl
bnRUZXN0TW9uaXRvci5oIgogI2luY2x1ZGUgIldpZGdldC5oIgogI2luY2x1ZGUgIldvcmtlck9y
V29ya2xldFNjcmlwdENvbnRyb2xsZXIuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25z
b2xlVHlwZXMuaD4KICNpbmNsdWRlIDx3dGYvRmlsZVN5c3RlbS5oPgogI2luY2x1ZGUgPHd0Zi9S
ZWZDb3VudGVkTGVha0NvdW50ZXIuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BvaW50ZXJMb2NrQ29udHJvbGxlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BvaW50ZXJMb2NrQ29udHJvbGxlci5jcHAKaW5kZXggYmZh
MWI4NzhlYjgwNWNmYWIwNmQyMjk3YTlmYmQ1Nzc4ZTMwZTRlOC4uMWFjZWViMjc4NzkzOWU4NTc1
ZThiNWExOThhNGQ1Y2E1OTBkZTk0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Q
b2ludGVyTG9ja0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUG9pbnRl
ckxvY2tDb250cm9sbGVyLmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIlBvaW50ZXJD
YXB0dXJlQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIlVzZXJHZXN0dXJlSW5kaWNhdG9yLmgiCiAj
aW5jbHVkZSAiVm9pZENhbGxiYWNrLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29s
ZVR5cGVzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55
YW1sCmluZGV4IDYyY2NjM2IzNjEyYWY3ZGYzY2E4YWZhMTEyYmQxYzZjY2M2ODg5ZTEuLjgyOGQ1
N2YyYTYyN2ZhNmFiNGFlMTU0MzI0Mzg0NjBjYzU4OGZkY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRp
bmdzLnlhbWwKQEAgLTM0NCw3ICszNDQsNyBAQCBNYXhpbXVtSFRNTFBhcnNlckRPTVRyZWVEZXB0
aDoKICAgdHlwZTogdWludDMyX3QKICAgZGVmYXVsdFZhbHVlOgogICAgIFdlYkNvcmU6Ci0gICAg
ICBkZWZhdWx0OiBkZWZhdWx0TWF4aW11bUhUTUxQYXJzZXJET01UcmVlRGVwdGgKKyAgICAgIGRl
ZmF1bHQ6IFNldHRpbmdzOjpkZWZhdWx0TWF4aW11bUhUTUxQYXJzZXJET01UcmVlRGVwdGgKIAog
TWF4aW11bVNvdXJjZUJ1ZmZlclNpemU6CiAgIGNvbW1lbnQ6ID4tCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcAppbmRleCBkODg1MTY3NDdh
NDRkNmFkYTRlYWQwYzY5OTBlNzNiOTE0MmIxYTFjLi44NmRhMWI4MGVjZWExNzNhZmY2MDcwMDZl
OWNmN2M4ZGUzMTZjZDNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250
ZW50U2VjdXJpdHlQb2xpY3kuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRl
bnRTZWN1cml0eVBvbGljeS5jcHAKQEAgLTUzLDYgKzUzLDcgQEAKICNpbmNsdWRlICJTZWN1cml0
eVBvbGljeVZpb2xhdGlvbkV2ZW50LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRl
ICJUZXh0RW5jb2RpbmcuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMu
aD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TY3JpcHRDYWxsU3RhY2suaD4KICNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5Lmg+CiAjaW5jbHVkZSA8cGFs
L2NyeXB0by9DcnlwdG9EaWdlc3QuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Lm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY29jb2EvVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQubW0K
aW5kZXggMWE1MjZjODMzZjM4YTNjMjA2MzY5ZGM5N2JjYzc3NmVlMzVhMDVlMC4uNTI4YmM1OGFj
MDAwMGI4MDk4ZmZlODkxODZkMDgxZjkzMjE1ZDk0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vY29jb2EvVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRl
b0VsZW1lbnQubW0KQEAgLTQyLDYgKzQyLDcgQEAKICNpbXBvcnQgIlBsYXliYWNrU2Vzc2lvbk1v
ZGVsTWVkaWFFbGVtZW50LmgiCiAjaW1wb3J0ICJUZXh0VHJhY2tMaXN0LmgiCiAjaW1wb3J0ICJU
aW1lUmFuZ2VzLmgiCisjaW1wb3J0ICJVc2VyR2VzdHVyZUluZGljYXRvci5oIgogI2ltcG9ydCA8
UXVhcnR6Q29yZS9Db3JlQW5pbWF0aW9uLmg+CiAjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQu
aD4KICNpbXBvcnQgPHd0Zi9Tb2Z0TGlua2luZy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuY3BwCmluZGV4IDdhNGRjMmM2
MmY1ZTFkYWQwNzA5MDI1NjhkMWE2YzI4ODkxNWE1NzkuLjQxYjM0NjllZTkyMDNlOWNhOWRjNjli
ZjM3Mzk3MTQwYzQ1YmVjNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5jcHAKQEAgLTY4LDYgKzY4LDcgQEAKICNpbmNs
dWRlICJTY3JvbGxiYXJUaGVtZS5oIgogI2luY2x1ZGUgIlNjcm9sbGluZ0Nvb3JkaW5hdG9yLmgi
CiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNv
bGVUeXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJv
eC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKaW5kZXgg
Y2FiNjNmNWIxNGNlNWViODdlZTRkODdhODBiMzg2NWRmYjZlOWIxZi4uYTE4YzJlY2IzZDcyZTlh
YWIwNzRiZTJhZGYwNmYyNzRjZTExMmZmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMaXN0Qm94LmNwcApAQCAtNjMsNiArNjMsNyBAQAogI2luY2x1ZGUgIlN0eWxlUmVzb2x2
ZXIuaCIKICNpbmNsdWRlICJTdHlsZVRyZWVSZXNvbHZlci5oIgogI2luY2x1ZGUgIldoZWVsRXZl
bnRUZXN0TW9uaXRvci5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5o
PgogI2luY2x1ZGUgPG1hdGguaD4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgog
I2luY2x1ZGUgPHd0Zi9TdGFja1N0YXRzLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc2hhcGVzL1NoYXBlT3V0c2lkZUluZm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3NoYXBlcy9TaGFwZU91dHNpZGVJbmZvLmNwcAppbmRleCBjMWI4YzRhMzMyYjkyZWY2
ODkwY2ZmZTZkMjY3NjZmYjlhZjJkODZlLi4yOTVkNGJjODc3OGEzZWY5NDkxZTMxMjZiNzRjMmYx
NzdhZjBjZDZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1No
YXBlT3V0c2lkZUluZm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMv
U2hhcGVPdXRzaWRlSW5mby5jcHAKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJSZW5kZXJG
cmFnbWVudENvbnRhaW5lci5oIgogI2luY2x1ZGUgIlJlbmRlckltYWdlLmgiCiAjaW5jbHVkZSAi
UmVuZGVyVmlldy5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxl
L1N0eWxlRm9udFNpemVGdW5jdGlvbnMuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVG
b250U2l6ZUZ1bmN0aW9ucy5jcHAKaW5kZXggZDU0ZmQ1MWMwODA4YzNkNWFmNDAyMzkxNTM1Y2Nh
YTFmZDhhZGQ5MS4uOTJhNzY1NjZhMmJmOTMxZDk0YTMxMDI1M2Q0YzQwYmFiNzg2OGZmMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVGb250U2l6ZUZ1bmN0aW9ucy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVGb250U2l6ZUZ1bmN0aW9ucy5jcHAKQEAg
LTM5LDcgKzM5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBuYW1lc3BhY2UgU3R5bGUgewog
Ci1mbG9hdCBjb21wdXRlZEZvbnRTaXplRnJvbVNwZWNpZmllZFNpemUoZmxvYXQgc3BlY2lmaWVk
U2l6ZSwgYm9vbCBpc0Fic29sdXRlU2l6ZSwgZmxvYXQgem9vbUZhY3RvciwgTWluaW11bUZvbnRT
aXplUnVsZSBtaW5pbXVtU2l6ZVJ1bGUsIGNvbnN0IFNldHRpbmdzOjpWYWx1ZXMmIHNldHRpbmdz
KQorZmxvYXQgY29tcHV0ZWRGb250U2l6ZUZyb21TcGVjaWZpZWRTaXplKGZsb2F0IHNwZWNpZmll
ZFNpemUsIGJvb2wgaXNBYnNvbHV0ZVNpemUsIGZsb2F0IHpvb21GYWN0b3IsIE1pbmltdW1Gb250
U2l6ZVJ1bGUgbWluaW11bVNpemVSdWxlLCBjb25zdCBTZXR0aW5nc1ZhbHVlcyYgc2V0dGluZ3Mp
CiB7CiAgICAgLy8gVGV4dCB3aXRoIGEgMHB4IGZvbnQgc2l6ZSBzaG91bGQgbm90IGJlIHZpc2li
bGUgYW5kIHRoZXJlZm9yZSBuZWVkcyB0byBiZQogICAgIC8vIGV4ZW1wdCBmcm9tIG1pbmltdW0g
Zm9udCBzaXplIHJ1bGVzLiBBY2lkMyByZWxpZXMgb24gdGhpcyBmb3IgcGl4ZWwtcGVyZmVjdApA
QCAtMTM5LDcgKzEzOSw3IEBAIHN0YXRpYyBjb25zdCBpbnQgc3RyaWN0Rm9udFNpemVUYWJsZVtm
b250U2l6ZVRhYmxlTWF4IC0gZm9udFNpemVUYWJsZU1pbiArIDFdW3RvCiAvLyBmYWN0b3JzIGZv
ciBlYWNoIGtleXdvcmQgdmFsdWUuCiBzdGF0aWMgY29uc3QgZmxvYXQgZm9udFNpemVGYWN0b3Jz
W3RvdGFsS2V5d29yZHNdID0geyAwLjYwZiwgMC43NWYsIDAuODlmLCAxLjBmLCAxLjJmLCAxLjVm
LCAyLjBmLCAzLjBmIH07CiAKLWZsb2F0IGZvbnRTaXplRm9yS2V5d29yZCh1bnNpZ25lZCBrZXl3
b3JkSUQsIGJvb2wgc2hvdWxkVXNlRml4ZWREZWZhdWx0U2l6ZSwgY29uc3QgU2V0dGluZ3M6OlZh
bHVlcyYgc2V0dGluZ3MsIGJvb2wgaW5RdWlya3NNb2RlKQorZmxvYXQgZm9udFNpemVGb3JLZXl3
b3JkKHVuc2lnbmVkIGtleXdvcmRJRCwgYm9vbCBzaG91bGRVc2VGaXhlZERlZmF1bHRTaXplLCBj
b25zdCBTZXR0aW5nc1ZhbHVlcyYgc2V0dGluZ3MsIGJvb2wgaW5RdWlya3NNb2RlKQogewogICAg
IGludCBtZWRpdW1TaXplID0gc2hvdWxkVXNlRml4ZWREZWZhdWx0U2l6ZSA/IHNldHRpbmdzLmRl
ZmF1bHRGaXhlZEZvbnRTaXplIDogc2V0dGluZ3MuZGVmYXVsdEZvbnRTaXplOwogICAgIGlmICht
ZWRpdW1TaXplID49IGZvbnRTaXplVGFibGVNaW4gJiYgbWVkaXVtU2l6ZSA8PSBmb250U2l6ZVRh
YmxlTWF4KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUZvbnRTaXpl
RnVuY3Rpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUZvbnRTaXplRnVuY3Rpb25z
LmgKaW5kZXggYThmMjM3MmVhOWMxZDFlYzk5OWQ1MWJjNjk3NzNlYmRiNjJkMWQ0OS4uOTVjYjBi
MzRlYjA1ZWFhN2JlZjY4YzIwZmJhM2VjZWZhODBjNTg3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3R5bGUvU3R5bGVGb250U2l6ZUZ1bmN0aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N0eWxlL1N0eWxlRm9udFNpemVGdW5jdGlvbnMuaApAQCAtMjUsMjQgKzI1LDI0IEBACiAKICNw
cmFnbWEgb25jZQogCi0jaW5jbHVkZSAiU2V0dGluZ3MuaCIKLQogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIFJlbmRlclN0eWxlOwogCitzdHJ1Y3QgU2V0dGlu
Z3NWYWx1ZXM7CisKIG5hbWVzcGFjZSBTdHlsZSB7CiAKIGVudW0gY2xhc3MgTWluaW11bUZvbnRT
aXplUnVsZSA6IHVpbnQ4X3QgeyBOb25lLCBBYnNvbHV0ZSwgQWJzb2x1dGVBbmRSZWxhdGl2ZSB9
OwogCi1mbG9hdCBjb21wdXRlZEZvbnRTaXplRnJvbVNwZWNpZmllZFNpemUoZmxvYXQgc3BlY2lm
aWVkU2l6ZSwgYm9vbCBpc0Fic29sdXRlU2l6ZSwgZmxvYXQgem9vbUZhY3RvciwgTWluaW11bUZv
bnRTaXplUnVsZSwgY29uc3QgU2V0dGluZ3M6OlZhbHVlcyYpOworZmxvYXQgY29tcHV0ZWRGb250
U2l6ZUZyb21TcGVjaWZpZWRTaXplKGZsb2F0IHNwZWNpZmllZFNpemUsIGJvb2wgaXNBYnNvbHV0
ZVNpemUsIGZsb2F0IHpvb21GYWN0b3IsIE1pbmltdW1Gb250U2l6ZVJ1bGUsIGNvbnN0IFNldHRp
bmdzVmFsdWVzJik7CiBmbG9hdCBjb21wdXRlZEZvbnRTaXplRnJvbVNwZWNpZmllZFNpemUoZmxv
YXQgc3BlY2lmaWVkU2l6ZSwgYm9vbCBpc0Fic29sdXRlU2l6ZSwgYm9vbCB1c2VTVkdab29tUnVs
ZXMsIGNvbnN0IFJlbmRlclN0eWxlKiwgY29uc3QgRG9jdW1lbnQmKTsKIGZsb2F0IGNvbXB1dGVk
Rm9udFNpemVGcm9tU3BlY2lmaWVkU2l6ZUZvclNWR0lubGluZVRleHQoZmxvYXQgc3BlY2lmaWVk
U2l6ZSwgYm9vbCBpc0Fic29sdXRlU2l6ZSwgZmxvYXQgem9vbUZhY3RvciwgY29uc3QgRG9jdW1l
bnQmKTsKIAogLy8gR2l2ZW4gYSBDU1Mga2V5d29yZCBpZCBpbiB0aGUgcmFuZ2UgKENTU1ZhbHVl
WHhTbWFsbCB0byBDU1NWYWx1ZVdlYmtpdFh4eExhcmdlKSwgdGhpcyBmdW5jdGlvbiB3aWxsIHJl
dHVybgogLy8gdGhlIGNvcnJlY3QgZm9udCBzaXplIHNjYWxlZCByZWxhdGl2ZSB0byB0aGUgdXNl
cidzIGRlZmF1bHQgKG1lZGl1bSkuCi1mbG9hdCBmb250U2l6ZUZvcktleXdvcmQodW5zaWduZWQg
a2V5d29yZElELCBib29sIHNob3VsZFVzZUZpeGVkRGVmYXVsdFNpemUsIGNvbnN0IFNldHRpbmdz
OjpWYWx1ZXMmLCBib29sIGluUXVpcmtzTW9kZSA9IGZhbHNlKTsKK2Zsb2F0IGZvbnRTaXplRm9y
S2V5d29yZCh1bnNpZ25lZCBrZXl3b3JkSUQsIGJvb2wgc2hvdWxkVXNlRml4ZWREZWZhdWx0U2l6
ZSwgY29uc3QgU2V0dGluZ3NWYWx1ZXMmLCBib29sIGluUXVpcmtzTW9kZSA9IGZhbHNlKTsKIGZs
b2F0IGZvbnRTaXplRm9yS2V5d29yZCh1bnNpZ25lZCBrZXl3b3JkSUQsIGJvb2wgc2hvdWxkVXNl
Rml4ZWREZWZhdWx0U2l6ZSwgY29uc3QgRG9jdW1lbnQmKTsKIAogLy8gR2l2ZW4gYSBmb250IHNp
emUgaW4gcGl4ZWwsIHRoaXMgZnVuY3Rpb24gd2lsbCByZXR1cm4gbGVnYWN5IGZvbnQgc2l6ZSBi
ZXR3ZWVuIDEgYW5kIDcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNj
b3BlUnVsZVNldHMuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZVJ1bGVTZXRz
LmNwcAppbmRleCAzYmY2NDdhNjc1ZTBjNDU3NjU3MWE0ZDY3NWY3MGJhNzU2ZWFmOWJiLi41MmM1
NmM5NWY3OWM3YmZiM2VhNzQwNjk4OTFmZTVkN2JiODBkNmE1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlUnVsZVNldHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N0eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRl
ICJTdHlsZVJlc29sdmVyLmgiCiAjaW5jbHVkZSAiU3R5bGVTY29wZS5oIgogI2luY2x1ZGUgIlN0
eWxlU2hlZXRDb250ZW50cy5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBl
cy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgU3R5bGUgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0RvY3VtZW50RXh0ZW5zaW9ucy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRG9jdW1lbnRFeHRlbnNpb25zLmNwcAppbmRleCA4NjMyZjAyZjRiZjZi
ZDVjMjAxNzVmMzEzNjMzNTYxMzJjYWFmNGViLi40N2JmM2JiMDY4M2Q1NDhkY2VkNjU4ZDRhYzgx
ZGQ0OWZkNTAxZjMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRG9jdW1lbnRF
eHRlbnNpb25zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRG9jdW1lbnRFeHRlbnNp
b25zLmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIlNWR1VzZUVsZW1lbnQuaCIKICNp
bmNsdWRlICJTY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIuaCIKICNpbmNsdWRlICJTaGFkb3dSb290
LmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvQXRvbVN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggMTIwZjI0ODVmMTFjODU4NjAxNDQxMTBmNmIxZDMz
YTBjZDNiNDBiNC4uYmI4ZTlhODgxNWRjMjU2MTk5MzQ2NzNmNTFlYTRlN2NiNTM5NjkwZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtNTksNiArNTksNyBAQAogI2luY2x1
ZGUgIkRPTVJlY3QuaCIKICNpbmNsdWRlICJET01SZWN0TGlzdC5oIgogI2luY2x1ZGUgIkRPTVN0
cmluZ0xpc3QuaCIKKyNpbmNsdWRlICJET01UaW1lci5oIgogI2luY2x1ZGUgIkRPTVVSTC5oIgog
I2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkRlcHJlY2F0ZWRHbG9iYWxTZXR0aW5n
cy5oIgpAQCAtMTg2LDYgKzE4Nyw3IEBACiAjaW5jbHVkZSAiU1ZHU1ZHRWxlbWVudC5oIgogI2lu
Y2x1ZGUgIlNXQ2xpZW50Q29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIu
aCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0SW5saW5lcy5oIgogI2luY2x1ZGUg
IlNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIlNjcm9sbGluZ0Nvb3Jk
aW5hdG9yLmgiCiAjaW5jbHVkZSAiU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yLmgiCkBAIC0y
MjQsNiArMjI2LDcgQEAKICNpbmNsdWRlICJXcml0aW5nRGlyZWN0aW9uLmgiCiAjaW5jbHVkZSAi
WE1MSHR0cFJlcXVlc3QuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db2RlQmxvY2suaD4K
KyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMuaD4KICNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9JbnNwZWN0b3JBZ2VudEJhc2UuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9JbnNwZWN0b3JGcm9udGVuZENoYW5uZWwuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9K
U0NJbmxpbmVzLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQYWdl
T3ZlcmxheUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQYWdlT3Zlcmxh
eUNsaWVudC5jcHAKaW5kZXggZDk3NWYzYjQyODRmM2I2NmE4ZDc3OTJmMDhiNjNkN2QzZDE1NDNm
YS4uOWUzNzk4MzY0ZjMxNGZkMDk2MmUzZjhjOGM1MmUyMjhkZGY3MjBhMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrUGFnZU92ZXJsYXlDbGllbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1BhZ2VPdmVybGF5Q2xpZW50LmNwcApAQCAtMzMsNiAr
MzMsNyBAQAogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQYWdlT3ZlcmxheUNvbnRyb2xs
ZXIuaCIKICNpbmNsdWRlICJQbGF0Zm9ybU1vdXNlRXZlbnQuaCIKKyNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9Db25zb2xlVHlwZXMuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvV2ViRmFrZVhSRGV2aWNlLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL1dlYkZha2VYUkRldmljZS5oCmluZGV4IGMwODZkOWNmZGM3MzdiMWQyYzE5NDViMTFhNmU2
MGNmOGE1Yzk0ZjEuLjc5MThhOTEzNTA2NDdkMGUzZmZlN2UyZDNlMWY3MWYwZDJhZGU4MTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvV2ViRmFrZVhSRGV2aWNlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9XZWJGYWtlWFJEZXZpY2UuaApAQCAtMzIsNiArMzIsNyBA
QAogI2luY2x1ZGUgIkZha2VYUlZpZXdJbml0LmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVm
ZXJyZWQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVhSLmgiCisjaW5jbHVkZSAiVGltZXIuaCIKICNp
bmNsdWRlICJXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJYUlZpc2liaWxp
dHlTdGF0ZS5oIgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL1dlYlhSVGVzdC5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9X
ZWJYUlRlc3QuaAppbmRleCBiMWNjM2RiM2FlNGYzMDlkMThlODA4ZmQ3NzEyYmExYjIyYjcwNzUx
Li5hZGFkZTBlNGM5YWIyOTVmZjFkYjIxZjk2MWUyOTVmNDczNTNmZmI4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL1dlYlhSVGVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvV2ViWFJUZXN0LmgKQEAgLTM2LDYgKzM2LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCitjbGFzcyBEb2N1bWVudDsKIGNsYXNzIFdlYlhSU3lzdGVtOwogCiBjbGFzcyBXZWJYUlRl
c3QgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJYUlRlc3Q+IHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaAppbmRleCBkNTg4MGVmMjcwNzdhMzY0NWQ4ZjMz
NTExYmZkNDRiNTljNWI5MTQxLi41YzAxZGI0ODZkZWQ0ODc4MjBkN2YwMzNiMTcxOTJhM2Y1YWJk
NDhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3Bl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oCkBAIC0z
MSwxMiArMzEsMTMgQEAKICNpbmNsdWRlICJJbWFnZUJpdG1hcC5oIgogI2luY2x1ZGUgIlNjcmlw
dEJ1ZmZlclNvdXJjZVByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4
dC5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU3VwcGxlbWVudGFibGUuaCIK
ICNpbmNsdWRlICJXaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlLmgiCi0jaW5jbHVkZSAiV29ya2Vy
T3JXb3JrbGV0R2xvYmFsU2NvcGUuaCIKLSNpbmNsdWRlICJXb3JrZXJPcldvcmtsZXRTY3JpcHRD
b250cm9sbGVyLmgiCiAjaW5jbHVkZSAiV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oIgog
I2luY2x1ZGUgIldvcmtlck1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmgiCisjaW5jbHVkZSAi
V29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaCIKKyNpbmNsdWRlICJXb3JrZXJPcldvcmtsZXRT
Y3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiV29ya2VyVGhyZWFkLmgiCiAjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvQ29uc29sZU1lc3NhZ2UuaD4KICNpbmNsdWRlIDxtZW1vcnk+CkBAIC0x
NDMsNyArMTQ0LDcgQEAgcHVibGljOgogCiAgICAgUmVmZXJyZXJQb2xpY3kgcmVmZXJyZXJQb2xp
Y3koKSBjb25zdCBmaW5hbDsKIAotICAgIGNvbnN0IFNldHRpbmdzOjpWYWx1ZXMmIHNldHRpbmdz
VmFsdWVzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9zZXR0aW5nc1ZhbHVlczsgfQorICAgIGNv
bnN0IFNldHRpbmdzVmFsdWVzJiBzZXR0aW5nc1ZhbHVlcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IG1fc2V0dGluZ3NWYWx1ZXM7IH0KIAogICAgIEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHMgY3Jl
ZGVudGlhbHMoKSBjb25zdCB7IHJldHVybiBtX2NyZWRlbnRpYWxzOyB9CiAKQEAgLTIyMCw3ICsy
MjEsNyBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxDU1NGb250U2VsZWN0b3I+IG1fY3NzRm9udFNl
bGVjdG9yOwogICAgIFJlZlB0cjxGb250Q2FjaGU+IG1fZm9udENhY2hlOwogICAgIFJlZmVycmVy
UG9saWN5IG1fcmVmZXJyZXJQb2xpY3k7Ci0gICAgU2V0dGluZ3M6OlZhbHVlcyBtX3NldHRpbmdz
VmFsdWVzOworICAgIFNldHRpbmdzVmFsdWVzIG1fc2V0dGluZ3NWYWx1ZXM7CiAgICAgV29ya2Vy
VHlwZSBtX3dvcmtlclR5cGU7CiAgICAgRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFscyBtX2NyZWRl
bnRpYWxzOwogICAgIFJlZlB0cjxXb3JrZXJTdG9yYWdlQ29ubmVjdGlvbj4gbV9zdG9yYWdlQ29u
bmVjdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3Jr
bGV0U2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9y
V29ya2xldFNjcmlwdENvbnRyb2xsZXIuY3BwCmluZGV4IGFlNmMxODZjYjI4NGM0MWZiM2UyMjdi
NjNhYmE3NmYzZTdiNGRmMDkuLjYzMDc5NGFlMDc2MTA4MzE4NjhiODQwYjE5MTJiM2VmYzdiYWJk
YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2Ny
aXB0Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldv
cmtsZXRTY3JpcHRDb250cm9sbGVyLmNwcApAQCAtNDQsNiArNDQsNyBAQAogI2luY2x1ZGUgIldv
cmtlck1vZHVsZVNjcmlwdExvYWRlci5oIgogI2luY2x1ZGUgIldvcmtlclNjcmlwdEZldGNoZXIu
aCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db21wbGV0aW9uLmg+CisjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRGVm
ZXJUZXJtaW5hdGlvbi5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0RlZmVycmVkV29ya1Rp
bWVyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRXhjZXB0aW9uLmg+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldFRocmVhZC5oIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRUaHJlYWQuaAppbmRleCBiYjNiYjc1MmRi
NGJhMjBkYWUyZWNmZGRhYThiZTU0OTlkMDI5M2RmLi41ZTVhNDFkZjAyNmE3YWU5MTU4ODc0ODcx
MzliMWJkZDQwYmQxMzc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ck9yV29ya2xldFRocmVhZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JX
b3JrbGV0VGhyZWFkLmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24u
aD4KICNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291
bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9VbmlxdWVSZWYuaD4KICNpbmNsdWRlIDx3dGYvdGhyZWFk
cy9CaW5hcnlTZW1hcGhvcmUuaD4KIAogbmFtZXNwYWNlIFdURiB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJUaHJlYWQuaAppbmRleCAxMThhNTE5OGZlN2U1NTA4YzY0YzlmZGRjOTllZjBiMTg3
NTMwNWE2Li41N2FmYWU4ZGQ1NjFmNjEwZWE0MDZjYzcyNWI4NWFmMmZlYzFlOTc4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRl
ICJDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMuaCIKICNpbmNsdWRlICJDcm9z
c09yaWdpbkVtYmVkZGVyUG9saWN5LmgiCiAjaW5jbHVkZSAiRmV0Y2hSZXF1ZXN0Q3JlZGVudGlh
bHMuaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIldvcmtlck9yV29ya2xldFRo
cmVhZC5oIgogI2luY2x1ZGUgIldvcmtlclJ1bkxvb3AuaCIKICNpbmNsdWRlICJXb3JrZXJUeXBl
LmgiCkBAIC03MSw3ICs3Miw3IEBAIHB1YmxpYzoKICAgICBSZWZlcnJlclBvbGljeSByZWZlcnJl
clBvbGljeTsKICAgICBXb3JrZXJUeXBlIHdvcmtlclR5cGU7CiAgICAgRmV0Y2hSZXF1ZXN0Q3Jl
ZGVudGlhbHMgY3JlZGVudGlhbHM7Ci0gICAgU2V0dGluZ3M6OlZhbHVlcyBzZXR0aW5nc1ZhbHVl
czsKKyAgICBTZXR0aW5nc1ZhbHVlcyBzZXR0aW5nc1ZhbHVlczsKICAgICBXb3JrZXJUaHJlYWRN
b2RlIHdvcmtlclRocmVhZE1vZGUgeyBXb3JrZXJUaHJlYWRNb2RlOjpDcmVhdGVOZXdUaHJlYWQg
fTsKIAogICAgIFdvcmtlclBhcmFtZXRlcnMgaXNvbGF0ZWRDb3B5KCkgY29uc3Q7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2Vy
VGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZp
Y2VXb3JrZXJUaHJlYWQuY3BwCmluZGV4IGY2ZGRmODhiYzMyMzRjNDU4OWUzNDJhZWY3MjE1Mjcy
YTg4OGY1MDIuLmMwNjQzZDgwNTg4NzFlODkxMDJhYTZlZTUzZDY1MWVjMDkyODQ1MDUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3Jr
ZXJUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0
L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCkBAIC03NCw3ICs3NCw3IEBAIHByaXZhdGU6CiAvLyBG
SVhNRTogVXNlIGEgdmFsaWQgV29ya2VyT2JqZWN0UHJveHkKIC8vIEZJWE1FOiBVc2UgdmFsaWQg
cnVudGltZSBmbGFncwogCi1zdGF0aWMgV29ya2VyUGFyYW1ldGVycyBnZW5lcmF0ZVdvcmtlclBh
cmFtZXRlcnMoY29uc3QgU2VydmljZVdvcmtlckNvbnRleHREYXRhJiBjb250ZXh0RGF0YSwgU3Ry
aW5nJiYgdXNlckFnZW50LCBXb3JrZXJUaHJlYWRNb2RlIHdvcmtlclRocmVhZE1vZGUsIGNvbnN0
IFNldHRpbmdzOjpWYWx1ZXMmIHNldHRpbmdzVmFsdWVzKQorc3RhdGljIFdvcmtlclBhcmFtZXRl
cnMgZ2VuZXJhdGVXb3JrZXJQYXJhbWV0ZXJzKGNvbnN0IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0
YSYgY29udGV4dERhdGEsIFN0cmluZyYmIHVzZXJBZ2VudCwgV29ya2VyVGhyZWFkTW9kZSB3b3Jr
ZXJUaHJlYWRNb2RlLCBjb25zdCBTZXR0aW5nc1ZhbHVlcyYgc2V0dGluZ3NWYWx1ZXMpCiB7CiAg
ICAgcmV0dXJuIHsKICAgICAgICAgY29udGV4dERhdGEuc2NyaXB0VVJMLApAQCAtOTQsNyArOTQs
NyBAQCBzdGF0aWMgV29ya2VyUGFyYW1ldGVycyBnZW5lcmF0ZVdvcmtlclBhcmFtZXRlcnMoY29u
c3QgU2VydmljZVdvcmtlckNvbnRleHREYXRhJgogICAgIH07CiB9CiAKLVNlcnZpY2VXb3JrZXJU
aHJlYWQ6OlNlcnZpY2VXb3JrZXJUaHJlYWQoU2VydmljZVdvcmtlckNvbnRleHREYXRhJiYgY29u
dGV4dERhdGEsIFNlcnZpY2VXb3JrZXJEYXRhJiYgd29ya2VyRGF0YSwgU3RyaW5nJiYgdXNlckFn
ZW50LCBXb3JrZXJUaHJlYWRNb2RlIHdvcmtlclRocmVhZE1vZGUsIGNvbnN0IFNldHRpbmdzOjpW
YWx1ZXMmIHNldHRpbmdzVmFsdWVzLCBXb3JrZXJMb2FkZXJQcm94eSYgbG9hZGVyUHJveHksIFdv
cmtlckRlYnVnZ2VyUHJveHkmIGRlYnVnZ2VyUHJveHksIElEQkNsaWVudDo6SURCQ29ubmVjdGlv
blByb3h5KiBpZGJDb25uZWN0aW9uUHJveHksIFNvY2tldFByb3ZpZGVyKiBzb2NrZXRQcm92aWRl
cikKK1NlcnZpY2VXb3JrZXJUaHJlYWQ6OlNlcnZpY2VXb3JrZXJUaHJlYWQoU2VydmljZVdvcmtl
ckNvbnRleHREYXRhJiYgY29udGV4dERhdGEsIFNlcnZpY2VXb3JrZXJEYXRhJiYgd29ya2VyRGF0
YSwgU3RyaW5nJiYgdXNlckFnZW50LCBXb3JrZXJUaHJlYWRNb2RlIHdvcmtlclRocmVhZE1vZGUs
IGNvbnN0IFNldHRpbmdzVmFsdWVzJiBzZXR0aW5nc1ZhbHVlcywgV29ya2VyTG9hZGVyUHJveHkm
IGxvYWRlclByb3h5LCBXb3JrZXJEZWJ1Z2dlclByb3h5JiBkZWJ1Z2dlclByb3h5LCBJREJDbGll
bnQ6OklEQkNvbm5lY3Rpb25Qcm94eSogaWRiQ29ubmVjdGlvblByb3h5LCBTb2NrZXRQcm92aWRl
ciogc29ja2V0UHJvdmlkZXIpCiAgICAgOiBXb3JrZXJUaHJlYWQoZ2VuZXJhdGVXb3JrZXJQYXJh
bWV0ZXJzKGNvbnRleHREYXRhLCBXVEZNb3ZlKHVzZXJBZ2VudCksIHdvcmtlclRocmVhZE1vZGUs
IHNldHRpbmdzVmFsdWVzKSwgY29udGV4dERhdGEuc2NyaXB0LCBsb2FkZXJQcm94eSwgZGVidWdn
ZXJQcm94eSwgRHVtbXlTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OnNoYXJlZCgpLCBXb3JrZXJU
aHJlYWRTdGFydE1vZGU6Ok5vcm1hbCwgY29udGV4dERhdGEucmVnaXN0cmF0aW9uLmtleS50b3BP
cmlnaW4oKS5zZWN1cml0eU9yaWdpbigpLmdldCgpLCBpZGJDb25uZWN0aW9uUHJveHksIHNvY2tl
dFByb3ZpZGVyLCBKU0M6OlJ1bnRpbWVGbGFnczo6Y3JlYXRlQWxsRW5hYmxlZCgpKQogICAgICwg
bV9zZXJ2aWNlV29ya2VySWRlbnRpZmllcihjb250ZXh0RGF0YS5zZXJ2aWNlV29ya2VySWRlbnRp
ZmllcikKICAgICAsIG1fam9iRGF0YUlkZW50aWZpZXIoY29udGV4dERhdGEuam9iRGF0YUlkZW50
aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4
dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
Y29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmgKaW5kZXggMDY4MWIzM2NmY2NhYmYzOTAwYTc0
N2Y3MGUxMTU4NzIxMDhjMDBiYy4uYzYxNmY1ZDk4ZDE2YzUyOWQ5YWNlOWNlNzViMzNhNWI2YjU5
MTI2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQv
U2VydmljZVdvcmtlclRocmVhZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuaApAQCAtMzAsNyArMzAsNiBAQAogI2luY2x1
ZGUgIlNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YS5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJG
ZXRjaC5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLmgiCi0jaW5jbHVkZSAi
U2V0dGluZ3MuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgIldvcmtlclRocmVhZC5o
IgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CkBAIC00NSw2ICs0NCw3IEBAIGNsYXNzIFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZTsKIGNsYXNzIFdvcmtlck9iamVjdFByb3h5Owogc3RydWN0IE1lc3Nh
Z2VXaXRoTWVzc2FnZVBvcnRzOwogc3RydWN0IFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVy
Oworc3RydWN0IFNldHRpbmdzVmFsdWVzOwogCiBjbGFzcyBTZXJ2aWNlV29ya2VyVGhyZWFkIDog
cHVibGljIFdvcmtlclRocmVhZCwgcHVibGljIENhbk1ha2VXZWFrUHRyPFNlcnZpY2VXb3JrZXJU
aHJlYWQsIFdlYWtQdHJGYWN0b3J5SW5pdGlhbGl6YXRpb246OkVhZ2VyPiB7CiBwdWJsaWM6CkBA
IC04Miw3ICs4Miw3IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHJ1bkV2ZW50TG9vcCgpIG92ZXJy
aWRlOwogCiBwcml2YXRlOgotICAgIFdFQkNPUkVfRVhQT1JUIFNlcnZpY2VXb3JrZXJUaHJlYWQo
U2VydmljZVdvcmtlckNvbnRleHREYXRhJiYsIFNlcnZpY2VXb3JrZXJEYXRhJiYsIFN0cmluZyYm
IHVzZXJBZ2VudCwgV29ya2VyVGhyZWFkTW9kZSwgY29uc3QgU2V0dGluZ3M6OlZhbHVlcyYsIFdv
cmtlckxvYWRlclByb3h5JiwgV29ya2VyRGVidWdnZXJQcm94eSYsIElEQkNsaWVudDo6SURCQ29u
bmVjdGlvblByb3h5KiwgU29ja2V0UHJvdmlkZXIqKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBTZXJ2
aWNlV29ya2VyVGhyZWFkKFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYmLCBTZXJ2aWNlV29ya2Vy
RGF0YSYmLCBTdHJpbmcmJiB1c2VyQWdlbnQsIFdvcmtlclRocmVhZE1vZGUsIGNvbnN0IFNldHRp
bmdzVmFsdWVzJiwgV29ya2VyTG9hZGVyUHJveHkmLCBXb3JrZXJEZWJ1Z2dlclByb3h5JiwgSURC
Q2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkqLCBTb2NrZXRQcm92aWRlciopOwogCiAgICAgYm9v
bCBpc1NlcnZpY2VXb3JrZXJUaHJlYWQoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAg
ICAgdm9pZCBmaW5pc2hlZEV2YWx1YXRpbmdTY3JpcHQoKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5oIGIvU291cmNlL1dlYkNv
cmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmgKaW5kZXggZGY3MGQ1ZThjZDRhODU1ODU4
ZjM2ZGVmZjhjODU5MWZhNzQ4MGM1MC4uNjg0MjAzZDZmMGI5ZTllMWYxOTkzZjE1ZTA0Y2FmM2Qw
NDRiYjk2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldEdsb2Jh
bFNjb3BlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3Bl
LmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJGZXRjaFJlcXVlc3RDcmVkZW50aWFscy5o
IgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJTY3JpcHRT
b3VyY2VDb2RlLmgiCisjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJXb3JrZXJPcldv
cmtsZXRHbG9iYWxTY29wZS5oIgogI2luY2x1ZGUgIldvcmtlck9yV29ya2xldFNjcmlwdENvbnRy
b2xsZXIuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlTWVzc2FnZS5oPgpAQCAt
MTE1LDcgKzExNiw3IEBAIHByaXZhdGU6CiAjZW5kaWYKICAgICBVUkwgY29tcGxldGVVUkwoY29u
c3QgU3RyaW5nJiwgRm9yY2VVVEY4ID0gRm9yY2VVVEY4OjpObykgY29uc3QgZmluYWw7CiAgICAg
U3RyaW5nIHVzZXJBZ2VudChjb25zdCBVUkwmKSBjb25zdCBmaW5hbDsKLSAgICBjb25zdCBTZXR0
aW5nczo6VmFsdWVzJiBzZXR0aW5nc1ZhbHVlcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc2V0
dGluZ3NWYWx1ZXM7IH0KKyAgICBjb25zdCBTZXR0aW5nc1ZhbHVlcyYgc2V0dGluZ3NWYWx1ZXMo
KSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3NldHRpbmdzVmFsdWVzOyB9CiAKICAgICBXZWFrUHRy
PERvY3VtZW50PiBtX2RvY3VtZW50OwogCkBAIC0xMjcsNyArMTI4LDcgQEAgcHJpdmF0ZToKIAog
ICAgIHN0ZDo6dW5pcXVlX3B0cjxXb3JrZXJNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcj4gbV9t
ZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjsKIAotICAgIFNldHRpbmdzOjpWYWx1ZXMgbV9zZXR0
aW5nc1ZhbHVlczsKKyAgICBTZXR0aW5nc1ZhbHVlcyBtX3NldHRpbmdzVmFsdWVzOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2xl
dHMvV29ya2xldFBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRQ
YXJhbWV0ZXJzLmgKaW5kZXggZWE1Y2E2ZGIzNDZhNjIxNzgyMDcyNjMxYTM0ZjIwMTcyNmM3NzU2
OC4uZmY2MTIxZTE4MTNmYzU3OTJkZTBkNGUxNzQ3ZGEzODlhZDhiM2Q3YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldFBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0UGFyYW1ldGVycy5oCkBAIC0zNiw3ICszNiw3IEBAIHN0
cnVjdCBXb3JrbGV0UGFyYW1ldGVycyB7CiAgICAgSlNDOjpSdW50aW1lRmxhZ3MganNSdW50aW1l
RmxhZ3M7CiAgICAgZmxvYXQgc2FtcGxlUmF0ZTsKICAgICBTdHJpbmcgaWRlbnRpZmllcjsKLSAg
ICBTZXR0aW5nczo6VmFsdWVzIHNldHRpbmdzVmFsdWVzOworICAgIFNldHRpbmdzVmFsdWVzIHNl
dHRpbmdzVmFsdWVzOwogICAgIGJvb2wgaXNBdWRpb0NvbnRleHRSZWFsVGltZTsKIAogICAgIFdv
cmtsZXRQYXJhbWV0ZXJzIGlzb2xhdGVkQ29weSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0
dHBSZXF1ZXN0LmNwcAppbmRleCBhYjk5NjAzZWE1M2UyNDZiNjMzMjFmYmQ0MTQxY2M1ZTI5Y2U5
NmI0Li5jN2Y1YWFmOTg3Y2E2ZDE0ZTgxOWMyZjQ5Y2VjZGIwZTgxOTY1MzNmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKQEAgLTU5LDYgKzU5LDcgQEAKICNpbmNsdWRlICJt
YXJrdXAuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9BcnJheUJ1ZmZlci5oPgogI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL0FycmF5QnVmZmVyVmlldy5oPgorI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0NvbnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lubGlu
ZXMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0xvY2suaD4KICNpbmNsdWRlIDx3dGYv
SXNvTWFsbG9jSW5saW5lcy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hTTFRQ
cm9jZXNzb3JMaWJ4c2x0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xUUHJvY2Vzc29yTGli
eHNsdC5jcHAKaW5kZXggZGY4YWJlNDI2ZTA2NzE3MWFmZmY5MGUwMzMzODUwNTlmMzMxMDM2NC4u
MzQ0YmQ0ZTk3MmM3MzlmMDZlNjExYWQ5MWJjNTExYWIwZThkZmI4YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS94bWwvWFNMVFByb2Nlc3NvckxpYnhzbHQuY3BwCkBAIC00Miw2ICs0Miw3IEBACiAjaW5j
bHVkZSAiWFNMVEV4dGVuc2lvbnMuaCIKICNpbmNsdWRlICJYU0xUVW5pY29kZVNvcnQuaCIKICNp
bmNsdWRlICJtYXJrdXAuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMu
aD4KICNpbmNsdWRlIDxsaWJ4c2x0L2ltcG9ydHMuaD4KICNpbmNsdWRlIDxsaWJ4c2x0L3NlY3Vy
aXR5Lmg+CiAjaW5jbHVkZSA8bGlieHNsdC92YXJpYWJsZXMuaD4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcAppbmRleCBh
OGMzZTE4ZTQ3YWVjYWQwYTAyMmEwODRjNDlhMjFmNmM3MTRjMzkyLi4zY2Q3M2YwOGYyNzYxMDgy
YWJlODBhMmRjYzI0NTJmM2ZmOTQ4M2Y5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwv
cGFyc2VyL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
eG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwCkBAIC01OSw2ICs1OSw3IEBA
CiAjaW5jbHVkZSAiVHJhbnNmb3JtU291cmNlLmgiCiAjaW5jbHVkZSAiWE1MTlNOYW1lcy5oIgog
I2luY2x1ZGUgIlhNTERvY3VtZW50UGFyc2VyU2NvcGUuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9Db25zb2xlVHlwZXMuaD4KICNpbmNsdWRlIDxsaWJ4bWwvcGFyc2VySW50ZXJuYWxzLmg+
CiAjaW5jbHVkZSA8d3RmL3VuaWNvZGUvQ2hhcmFjdGVyTmFtZXMuaD4KICNpbmNsdWRlIDx3dGYv
dW5pY29kZS9VVEY4Q29udmVyc2lvbi5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oCmluZGV4IDUzOTYxYTAzYTUyYzM4MTliY2EyOWUwYjcxN2RiYzUwMDhmOWZl
NWMuLmNiZWU5MTQzNmE2MTMwYTFhMTJiNDFhODliMDc1NDY0YjJhNTQzNGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTIyOCw2ICsyMjgsNyBAQCBl
bnVtIFN5bnRoZXRpY0NsaWNrVHlwZSA6IGludDhfdDsKIGVudW0gY2xhc3MgQ09FUERpc3Bvc2l0
aW9uIDogYm9vbDsKIGVudW0gY2xhc3MgQ3JlYXRlTmV3R3JvdXBGb3JIaWdobGlnaHQgOiBib29s
OwogZW51bSBjbGFzcyBET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlIDogdWludDhfdDsKK2VudW0gY2xh
c3MgRGF0YURldGVjdG9yVHlwZSA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIERyYWdBcHBsaWNhdGlv
bkZsYWdzIDogdWludDhfdDsKIGVudW0gY2xhc3MgRHJhZ0hhbmRsaW5nTWV0aG9kIDogdWludDhf
dDsKIGVudW0gY2xhc3MgRXZlbnRNYWtlc0dhbWVwYWRzVmlzaWJsZSA6IGJvb2w7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbSBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCmluZGV4
IGIzYzQ4YmJiNGEyOGI4MGNkY2MxYjg5ODAwNzgwYTdkYjkwYTI1MTYuLmRmODEwMmIwYjgzMjli
NDVjNjFiN2QzMWFjOWY2NDIwZTVkZmYxMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCkBAIC04OCw2ICs4OCw3IEBACiAjaW1w
b3J0IDxXZWJDb3JlL1JlbmRlclZpZXcuaD4KICNpbXBvcnQgPFdlYkNvcmUvUnVudGltZUFwcGxp
Y2F0aW9uQ2hlY2tzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Njcm9sbFZpZXcuaD4KKyNpbXBvcnQg
PFdlYkNvcmUvU2V0dGluZ3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvU3R5bGVJbmhlcml0ZWREYXRh
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RleHRJdGVyYXRvci5oPgogI2ltcG9ydCA8V2ViQ29yZS9W
aXNpYmxlVW5pdHMuaD4K
</data>
<flag name="review"
          id="465500"
          type_id="1"
          status="?"
          setter="jer.noble"
    />
    <flag name="commit-queue"
          id="465504"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>