<?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>208578</bug_id>
          
          <creation_ts>2020-03-04 09:50:25 -0800</creation_ts>
          <short_desc>Export AudioSession commands to GPUProcess when media playing is enabled in GPUProcess</short_desc>
          <delta_ts>2020-03-05 04:59:55 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>annulen</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1625566</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-03-04 09:50:25 -0800</bug_when>
    <thetext>Export AudioSession commands to GPUProcess when media playing is enabled in GPUProcess</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625574</commentid>
    <comment_count>1</comment_count>
      <attachid>392432</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-03-04 09:56:47 -0800</bug_when>
    <thetext>Created attachment 392432
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625584</commentid>
    <comment_count>2</comment_count>
      <attachid>392435</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-03-04 10:04:55 -0800</bug_when>
    <thetext>Created attachment 392435
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625602</commentid>
    <comment_count>3</comment_count>
      <attachid>392437</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-03-04 10:12:08 -0800</bug_when>
    <thetext>Created attachment 392437
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625617</commentid>
    <comment_count>4</comment_count>
      <attachid>392439</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-03-04 10:48:07 -0800</bug_when>
    <thetext>Created attachment 392439
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625621</commentid>
    <comment_count>5</comment_count>
      <attachid>392440</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-03-04 10:53:56 -0800</bug_when>
    <thetext>Created attachment 392440
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625625</commentid>
    <comment_count>6</comment_count>
      <attachid>392441</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-03-04 10:58:51 -0800</bug_when>
    <thetext>Created attachment 392441
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625677</commentid>
    <comment_count>7</comment_count>
      <attachid>392441</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-03-04 11:53:01 -0800</bug_when>
    <thetext>Comment on attachment 392441
Patch

r=me once the bots are happy</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625680</commentid>
    <comment_count>8</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-03-04 11:54:38 -0800</bug_when>
    <thetext>Jer is working on a better version, let&apos;s land his patch first and I&apos;ll land the capture bits here.
That should unblock me for NowPlaying.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626024</commentid>
    <comment_count>9</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-03-05 04:59:55 -0800</bug_when>
    <thetext>I landed the capture bits in bug 208568</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392432</attachid>
            <date>2020-03-04 09:56:47 -0800</date>
            <delta_ts>2020-03-04 10:04:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208578-20200304185644.patch</filename>
            <type>text/plain</type>
            <size>57016</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3ODM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTIzYzI1YmNiNTFjOTkz
Yzg1NDg2ZGFiZGEyNzk5ZDRhYjNlODcwZi4uM2E1NTAzNWM3MzA0NWM4ODZhM2I3MTY4ZTc0NDc5
N2Y2ZTM1NjYxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDIwLTAzLTA0ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBFeHBvcnQgQXVkaW9TZXNz
aW9uIGNvbW1hbmRzIHRvIEdQVVByb2Nlc3Mgd2hlbiBtZWRpYSBwbGF5aW5nIGlzIGVuYWJsZWQg
aW4gR1BVUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjA4NTc4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkIHR3byBjb21tYW5kcyB0byBtZWRpYSBzdHJhdGVnaWVzIHRvIHNldCB0aGUgQXVk
aW9TZXNzaW9uIHBhcmFtZXRlcnMgYW5kIGFjdGl2YXRlL2RlYWN0aXZhdGUgdGhlIEF1ZGlvU2Vz
c2lvbi4KKyAgICAgICAgVXBkYXRlIGNvZGUgdG8gbWFrZSBBdWRpb1Nlc3Npb246OkNhdGVnb3J5
VHlwZSBhbmQgZW51bSBjbGFzcywgcmVuYW1lZCBBdWRpb1Nlc3Npb25DYXRlZ29yeS4KKyAgICAg
ICAgQWN0dWFsIGltcGxlbWVudGF0aW9uIG9mIHRoZSBjb21tYW5kcyBpcyBsZWZ0IGluIE1lZGlh
U2Vzc2lvbk1hbmFnZXJDb2NvYSBhcyBzdGF0aWMgbWV0aG9kcyB0aGF0IGNhbiBiZSB1c2VkIGlu
IHByb2Nlc3Mgb3Igb3V0IG9mIHByb2Nlc3MuCisKKyAgICAgICAgTWFudWFsbHkgdGVzdGVkIGFu
ZCBjb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBhZ2UvRGVwcmVjYXRlZEdsb2JhbFNldHRp
bmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlcHJlY2F0ZWRHbG9iYWxTZXR0aW5nczo6c2V0
QXVkaW9TZXNzaW9uQ2F0ZWdvcnlPdmVycmlkZSk6CisgICAgICAgIChXZWJDb3JlOjpEZXByZWNh
dGVkR2xvYmFsU2V0dGluZ3M6OmF1ZGlvU2Vzc2lvbkNhdGVnb3J5T3ZlcnJpZGUpOgorICAgICAg
ICAqIHBsYXRmb3JtL01lZGlhU3RyYXRlZ3kuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9B
dWRpb1Nlc3Npb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpjYXRlZ29y
eU92ZXJyaWRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6c2V0Q2F0
ZWdvcnlPdmVycmlkZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Nlc3Npb246OmNhdGVnb3J5
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzZXNzaW9uV2lsbEJlZ2luUGxheWJh
Y2spOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpwcm9j
ZXNzRGlkUmVzdW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uTWFu
YWdlcjo6bWF5YmVEZWFjdGl2YXRlQXVkaW9TZXNzaW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9h
dWRpby9jb2NvYS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EubW06CisgICAgICAgIChNZWRpYVNl
c3Npb25NYW5hZ2VyQ29jb2E6OnVwZGF0ZVNlc3Npb25TdGF0ZSk6CisgICAgICAgICogcGxhdGZv
cm0vYXVkaW8vaW9zL0F1ZGlvU2Vzc2lvbklPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OmNhdGVn
b3J5TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Nlc3Npb25Qcml2YXRlOjpBdWRpb1Nl
c3Npb25Qcml2YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdv
cnkpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpjYXRlZ29yeSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5T3ZlcnJpZGUpOgorICAg
ICAgICAoV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpjYXRlZ29yeU92ZXJyaWRlIGNvbnN0KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlcmlPUzo6cHJvdmlkZVByZXNlbnRpbmdB
cHBsaWNhdGlvblBJRElmTmVjZXNzYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lv
bk1hbmFnZXJpT1M6OnByb3ZpZGVQcmVzZW50aW5nQXBwbGljYXRpb25QSUQpOgorICAgICAgICAq
IHBsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb1Nlc3Npb25NYWMuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QXVkaW9TZXNzaW9uOjpjYXRlZ29yeSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRp
b1Nlc3Npb246OnNldENhdGVnb3J5KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6
Y2F0ZWdvcnlPdmVycmlkZSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL0Jhc2VBdWRpb1NoYXJlZFVuaXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmFzZUF1ZGlv
U2hhcmVkVW5pdDo6c3RhcnRVbml0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFs
dGltZUF1ZGlvU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZUF1ZGlv
U291cmNlOjpzdGFydFByb2R1Y2luZ0RhdGEpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxz
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6YXVkaW9TZXNzaW9uQ2F0ZWdvcnkg
Y29uc3QpOgorCiAyMDIwLTAzLTA0ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4K
IAogICAgICAgICBFeHBvcnQgTm93UGxheWluZyBjb21tYW5kcyB0byBHUFVQcm9jZXNzIHdoZW4g
bWVkaWEgcGxheWluZyBpbiBHUFVQcm9jZXNzIGlzIGVuYWJsZWQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZjdiOGQ2
ZGIzZjk2YWZhMDdhZDMyNmM2NGQwOWYzYTRhODM5ODZkNi4uNmE3ZGVkYTViNzA0ZWIwYmRhOGJh
OWNhYzNkMDk5MmRiNTNjODE3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAyMC0wMy0w
NCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgRXhwb3J0IEF1
ZGlvU2Vzc2lvbiBjb21tYW5kcyB0byBHUFVQcm9jZXNzIHdoZW4gbWVkaWEgcGxheWluZyBpcyBl
bmFibGVkIGluIEdQVVByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwODU3OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFNlbmQgSVBDIGNvbW1hbmRzIHJlbGF0ZWQgdG8gQXVkaW9TZXNzaW9uIGZy
b20gV2ViUHJvY2VzcyB0byBHUFVQcm9jZXNzIGFuZCBkbyB0aGUgYWN0dWFsIHdvcmsgaW4gR1BV
UHJvY2Vzcy4KKyAgICAgICAgV2Uga2VlcCBhIHN5bmMgSVBDIGZvciBub3cgd2hlbiBhY3RpdmF0
aW5nIHRoZSBBdWRpb1Nlc3Npb24gYW5kIHdpbGwgdHJ5IHRvIHJlbW92ZSBpdCBpbiBhIGZvbGxv
dy11cAorICAgICAgICBUbyBtYWtlIHRoaXMgd29yaywgd2UgcmVtb3ZlIHRoZSB1c2VyIG9mIE1l
ZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYSBpbiBHUFVQcm9jZXNzLCB3aGljaCB3YXMgdXNlZCBmb3Ig
Y2FwdHVyZS4KKyAgICAgICAgV2UgcmVwbGFjZSBpdCBieSBlaXRoZXIgZGVkaWNhdGVkIGNhbGxz
IG9yIGJ5IHRoZSBjb21tYW5kcyB0aGF0IGFyZSBub3cgY29taW5nIGZyb20gV2ViUHJvY2Vzcy4K
KworICAgICAgICAqIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnRyeVRvU2V0QXVkaW9T
ZXNzaW9uQXNBY3RpdmUpOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjp1cGRhdGVBdWRpb1Nlc3Npb25QYXJhbWV0ZXJzKToKKyAgICAgICAgKiBHUFVQcm9jZXNz
L0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL0dQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL0Nv
Y29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpTb3VyY2VQcm94eTo6U291cmNlUHJveHkpOgor
ICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpTb3VyY2VQcm94
eTo6flNvdXJjZVByb3h5KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRz
KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y2xvbmUp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgICog
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYk1lZGlhU3RyYXRlZ3k6OnRyeVRvU2V0QXVkaW9TZXNzaW9uQXNBY3RpdmUpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJNZWRpYVN0cmF0ZWd5Ojp1cGRhdGVBdWRpb1Nlc3Npb25QYXJhbWV0
ZXJzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5Lmg6
CisKIDIwMjAtMDMtMDQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAg
ICAgIEV4cG9ydCBOb3dQbGF5aW5nIGNvbW1hbmRzIHRvIEdQVVByb2Nlc3Mgd2hlbiBtZWRpYSBw
bGF5aW5nIGluIEdQVVByb2Nlc3MgaXMgZW5hYmxlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9n
CmluZGV4IGQ4MWI2MDQ2YTdmNzhiODBkYjc3YjUyZDA1MzU5YmM5YTI1ZjkxNTQuLjY0ZjE3NjIz
ZTczMjhlYTVkMGZlNWU1NTUwOGY5NzcxZGMzZWNmZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAyMC0wMy0wNCAgWW91ZW5uIEZhYmxldCAgPHlvdWVu
bkBhcHBsZS5jb20+CisKKyAgICAgICAgRXhwb3J0IEF1ZGlvU2Vzc2lvbiBjb21tYW5kcyB0byBH
UFVQcm9jZXNzIHdoZW4gbWVkaWEgcGxheWluZyBpcyBlbmFibGVkIGluIEdQVVByb2Nlc3MKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODU3OAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBpbi1wcm9j
ZXNzIGltcGxlbWVudGF0aW9uLgorCisgICAgICAgICogUGx1Z2lucy9XZWJQbHVnaW5Db250cm9s
bGVyLm1tOgorICAgICAgICAoaW5pdGlhbGl6ZUF1ZGlvU2Vzc2lvbik6CisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tOgorICAgICAgICAqIFdlYlZpZXcv
V2ViUHJlZmVyZW5jZXMubW06CisgICAgICAgICgrW1dlYlByZWZlcmVuY2VzIGluaXRpYWxpemVd
KToKKyAgICAgICAgKC1bV2ViUHJlZmVyZW5jZXMgc2V0QXVkaW9TZXNzaW9uQ2F0ZWdvcnlPdmVy
cmlkZTpdKToKKwogMjAyMC0wMy0wNCAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+
CiAKICAgICAgICAgRXhwb3J0IE5vd1BsYXlpbmcgY29tbWFuZHMgdG8gR1BVUHJvY2VzcyB3aGVu
IG1lZGlhIHBsYXlpbmcgaW4gR1BVUHJvY2VzcyBpcyBlbmFibGVkCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpp
bmRleCBkYmFhMWQ3YzA2NGE4Y2Q2ZTkzYTQzYmU1YWUyNjIwZTVkMjk2ODI2Li4xZmE2NjJmNTVm
Y2I3MzNmYTNmNTY4NjFmZDdkY2M0ZmM5NDI4NWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTEw
MjksMTEgKzEwMjksMTMgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwog
ICAgIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvSGFyZHdhcmVMaXN0ZW5lci5oCiAgICAgcGxhdGZvcm0v
YXVkaW8vQXVkaW9JT0NhbGxiYWNrLmgKICAgICBwbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24u
aAorICAgIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbkNhdGVnb3J5LmgKICAgICBwbGF0Zm9y
bS9hdWRpby9BdWRpb1NvdXJjZVByb3ZpZGVyLmgKICAgICBwbGF0Zm9ybS9hdWRpby9BdWRpb1N0
cmVhbURlc2NyaXB0aW9uLmgKICAgICBwbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybUF1ZGlvRGF0YS5o
CiAgICAgcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb24uaAogICAgIHBsYXRmb3Jt
L2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oCisgICAgcGxhdGZvcm0vYXVkaW8v
Um91dGVTaGFyaW5nUG9saWN5LmgKIAogICAgIHBsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NETUVu
Y3J5cHRpb25TY2hlbWUuaAogICAgIHBsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NETUZhY3Rvcnku
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IGZhODllYzVmYTZmMzdiZjkyNWVkMzJjMTg2NDljM2FhOTMzMWU1NTIuLmM2MWI0ZTBk
Mzc4ZDkwMDViMDMxYmJmMGE5OWQwNDk1NDFhZjc4MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEwOTIsNiArMTA5Miw4IEBA
CiAJCTQxNzYxMkIxMUUzQTk5NDAwMEMzRDgxRCAvKiBMaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJh
Y2tlbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDE3NjEyQUQxRTNBOTkzQjAwQzNEODFEIC8qIExpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2Vu
ZC5jcHAgKi87IH07CiAJCTQxNzYxMkIyMUUzQTk5NDAwMEMzRDgxRCAvKiBMaWJXZWJSVENQZWVy
Q29ubmVjdGlvbkJhY2tlbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQxNzYxMkFFMUUzQTk5M0IwMEMzRDgxRCAvKiBMaWJXZWJSVENQZWVyQ29ubmVj
dGlvbkJhY2tlbmQuaCAqLzsgfTsKIAkJNDE3NkU4OTYyM0MzNTM3QjAwM0U4M0ZFIC8qIE1lZGlh
UmVjb3JkZXJQcm92aWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDE3NkU4OEYyM0MzNDhEMjAwM0U4M0ZFIC8qIE1lZGlhUmVjb3JkZXJQcm92aWRl
ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTQx
NzhFRUZDMjQxMDAxRkQwMDE5M0M3NCAvKiBBdWRpb1Nlc3Npb25DYXRlZ29yeS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE3OEVFRjgyNDBGRUE4RDAw
MTkzQzc0IC8qIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDE3OEVFRkUyNDEwMDIwOTAwMTkzQzc0IC8qIFJv
dXRlU2hhcmluZ1BvbGljeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDE3OEVFRkEyNDBGRUVFODAwMTkzQzc0IC8qIFJvdXRlU2hhcmluZ1BvbGljeS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxN0RB
NkQ5MTM3MzRFNkUwMDdDNTdGQiAvKiBJbnRlcm5hbHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE3REE0Q0YxMzczNDMyNjAwN0M1N0ZCIC8qIElu
dGVybmFscy5jcHAgKi87IH07CiAJCTQxN0RBNkRBMTM3MzRFNkUwMDdDNTdGQiAvKiBJbnRlcm5h
bHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxN0RB
NENFMTM3MzQzMjYwMDdDNTdGQiAvKiBJbnRlcm5hbHMuaCAqLzsgfTsKIAkJNDE3REE3MUQxMzcz
NURGQTAwN0M1N0ZCIC8qIEpTSW50ZXJuYWxzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxN0RBNzFCMTM3MzVERkEwMDdDNTdGQiAvKiBKU0ludGVy
bmFscy5jcHAgKi87IH07CkBAIC03MzgzLDYgKzczODUsOCBAQAogCQk0MTc3MDQwQjIzRjcwQ0FC
MDAwQzU0RUUgLyogTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0MTc3RjUxQzIzODI1NDQwMDBDMDQ0ODYgLyogQmFzZUF1ZGlvU2hh
cmVkVW5pdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCYXNlQXVk
aW9TaGFyZWRVbml0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE3N0Y1MUUy
MzgyNTQ1RTAwQzA0NDg2IC8qIEJhc2VBdWRpb1NoYXJlZFVuaXQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQmFzZUF1ZGlvU2hhcmVkVW5pdC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk0MTc4RUVGODI0MEZFQThEMDAxOTNDNzQgLyogQXVkaW9TZXNzaW9uQ2F0
ZWdvcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9TZXNzaW9uQ2F0
ZWdvcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE3OEVFRkEyNDBGRUVFODAw
MTkzQzc0IC8qIFJvdXRlU2hhcmluZ1BvbGljeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSb3V0ZVNoYXJpbmdQb2xpY3kuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDE3REE0Q0UxMzczNDMyNjAwN0M1N0ZCIC8qIEludGVybmFscy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBJbnRlcm5hbHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDE3REE0Q0YxMzczNDMyNjAwN0M1N0ZCIC8qIEludGVybmFscy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnRlcm5hbHMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0MTdEQTZEMDEzNzM0RTAyMDA3QzU3RkIgLyogbGliV2ViQ29yZVRl
c3RTdXBwb3J0LmR5bGliICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0Rmls
ZVR5cGUgPSAiY29tcGlsZWQubWFjaC1vLmR5bGliIjsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRo
ID0gbGliV2ViQ29yZVRlc3RTdXBwb3J0LmR5bGliOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVD
VFNfRElSOyB9OwpAQCAtMjg3MzcsNiArMjg3NDEsNyBAQAogCQkJCUZEMzE2MDUyMTJCMDI2Rjcw
MEMxQTM1OSAvKiBBdWRpb1Jlc2FtcGxlcktlcm5lbC5oICovLAogCQkJCUNEQTc5ODIzMTcwQTI1
ODMwMEQ0NUM1NSAvKiBBdWRpb1Nlc3Npb24uY3BwICovLAogCQkJCUNEQTc5ODIxMTcwQTIyREMw
MEQ0NUM1NSAvKiBBdWRpb1Nlc3Npb24uaCAqLywKKwkJCQk0MTc4RUVGODI0MEZFQThEMDAxOTND
NzQgLyogQXVkaW9TZXNzaW9uQ2F0ZWdvcnkuaCAqLywKIAkJCQlGRDMxNjA1MzEyQjAyNkY3MDBD
MUEzNTkgLyogQXVkaW9Tb3VyY2VQcm92aWRlci5oICovLAogCQkJCUZENjJGNTJEMTQ1ODk4RDgw
MDk0QjBFRCAvKiBBdWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50LmggKi8sCiAJCQkJMDczQjg3NTYx
RTQwRENFNTAwNzFDMEVDIC8qIEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaCAqLywKQEAgLTI4Nzkz
LDYgKzI4Nzk4LDcgQEAKIAkJCQlGRDMxNjA3NTEyQjAyNkY3MDBDMUEzNTkgLyogUmV2ZXJiQ29u
dm9sdmVyU3RhZ2UuaCAqLywKIAkJCQlGRDMxNjA3NjEyQjAyNkY3MDBDMUEzNTkgLyogUmV2ZXJi
SW5wdXRCdWZmZXIuY3BwICovLAogCQkJCUZEMzE2MDc3MTJCMDI2RjcwMEMxQTM1OSAvKiBSZXZl
cmJJbnB1dEJ1ZmZlci5oICovLAorCQkJCTQxNzhFRUZBMjQwRkVFRTgwMDE5M0M3NCAvKiBSb3V0
ZVNoYXJpbmdQb2xpY3kuaCAqLywKIAkJCQlGRDAwRDdBMjE0QTNGNjE5MDA3MzQwMTEgLyogU2lu
Y1Jlc2FtcGxlci5jcHAgKi8sCiAJCQkJRkQwMEQ3QTMxNEEzRjYxOTAwNzM0MDExIC8qIFNpbmNS
ZXNhbXBsZXIuaCAqLywKIAkJCQlGRDE3NjJERDE3NjY4NkQ5MDBEODM2QTggLyogVXBTYW1wbGVy
LmNwcCAqLywKQEAgLTI5MTE4LDYgKzI5MTI0LDcgQEAKIAkJCQkwNzNCODc2OTFFNDM4NUFDMDA3
MUMwRUMgLyogQXVkaW9TYW1wbGVEYXRhU291cmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDhD
NDZFQzE1NDYwOEU3MDBBNTkxMEMgLyogQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlDREE3OTgyQTE3MEEzRDAwMDBENDVDNTUgLyogQXVkaW9TZXNzaW9uLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk0MTc4RUVGQzI0MTAwMUZEMDAxOTNDNzQgLyogQXVkaW9TZXNz
aW9uQ2F0ZWdvcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2MDg5MTJCMDI2RjcwMEMxQTM1
OSAvKiBBdWRpb1NvdXJjZVByb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDhBN0JCQzE5
NzczNUZFMDBDQkQ2NDMgLyogQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUZENjJGNTJFMTQ1ODk4RDgwMDk0QjBFRCAvKiBBdWRpb1NvdXJjZVByb3ZpZGVy
Q2xpZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTMyMTcwLDYgKzMyMTc3LDcgQEAKIAkJCQlBOENG
RjVFMTBBMTU1QTA1MDAwQTQyMzQgLyogUm9vdElubGluZUJveC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNDlFOTExQzkwRUY4NkQ0NzAwOUQwQ0FGIC8qIFJvdGF0ZVRyYW5zZm9ybU9wZXJhdGlvbi5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTczRjk1RkYxMkM5N0JGRTAwMzFBQUY5IC8qIFJvdW5kZWRS
ZWN0LmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTc4RUVGRTI0MTAwMjA5MDAxOTNDNzQgLyogUm91
dGVTaGFyaW5nUG9saWN5LmggaW4gSGVhZGVycyAqLywKIAkJCQk1N0UyMzM2MzFEQzdEQTI0MDBG
MjhEMDEgLyogUnNhT3RoZXJQcmltZXNJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQkwN0FCOTk2
OTE4REEzQzAxMDAxODc3MUUgLyogUlRDQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNDE4MjA1NDcxRTUzRTk4QzAwRDYyMjA3IC8qIFJUQ0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJz
ICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EZXByZWNhdGVkR2xvYmFsU2V0
dGluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EZXByZWNhdGVkR2xvYmFsU2V0dGluZ3Mu
Y3BwCmluZGV4IGNmNGNjYzgwZTkzOTM2ZDU2OGNkNTUwZTAyOGI2ODE1MmViOTRkMmQuLjY4Nzll
MmQwMjA5MjZlNGQwZWQ3MTcxMzYwZmExYzc0NDM3MGE0MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RlcHJlY2F0ZWRHbG9iYWxTZXR0aW5ncy5jcHAKQEAgLTE2MiwxMiArMTYyLDEy
IEBAIHZvaWQgRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzOjpzZXRSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRW5hYmxlZChib29sIGZsYWcpCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKIHZvaWQgRGVw
cmVjYXRlZEdsb2JhbFNldHRpbmdzOjpzZXRBdWRpb1Nlc3Npb25DYXRlZ29yeU92ZXJyaWRlKHVu
c2lnbmVkIHNlc3Npb25DYXRlZ29yeSkKIHsKLSAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Np
b24oKS5zZXRDYXRlZ29yeU92ZXJyaWRlKHN0YXRpY19jYXN0PEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdv
cnlUeXBlPihzZXNzaW9uQ2F0ZWdvcnkpKTsKKyAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Np
b24oKS5zZXRDYXRlZ29yeU92ZXJyaWRlKHN0YXRpY19jYXN0PEF1ZGlvU2Vzc2lvbkNhdGVnb3J5
PihzZXNzaW9uQ2F0ZWdvcnkpKTsKIH0KIAogdW5zaWduZWQgRGVwcmVjYXRlZEdsb2JhbFNldHRp
bmdzOjphdWRpb1Nlc3Npb25DYXRlZ29yeU92ZXJyaWRlKCkKIHsKLSAgICByZXR1cm4gQXVkaW9T
ZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuY2F0ZWdvcnlPdmVycmlkZSgpOworICAgIHJldHVybiBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuY2F0ZWdv
cnlPdmVycmlkZSgpKTsKIH0KIAogdm9pZCBEZXByZWNhdGVkR2xvYmFsU2V0dGluZ3M6OnNldE5l
dHdvcmtEYXRhVXNhZ2VUcmFja2luZ0VuYWJsZWQoYm9vbCB0cmFja2luZ0VuYWJsZWQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZWRpYVN0cmF0ZWd5LmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9NZWRpYVN0cmF0ZWd5LmgKaW5kZXggODk3NDViYjgzYTIzMzZkNDIx
ZTE2NzBlODczMGJmYjdhYzc0NjgyMS4uNDY5OWU2OTJlNjRmMGUzZWNjNzIwZTBmZmQyOWJhNmJl
MjYxZmVmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVkaWFTdHJhdGVn
eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lZGlhU3RyYXRlZ3kuaApAQCAtMjUs
NiArMjUsOCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkF1ZGlvU2Vzc2lvbkNhdGVn
b3J5LmgiCisjaW5jbHVkZSAiUm91dGVTaGFyaW5nUG9saWN5LmgiCiAjaW5jbHVkZSA8d3RmL0Zv
cndhcmQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzYsNiArMzgsMTAgQEAgc3RydWN0
IE5vd1BsYXlpbmdJbmZvOwogCiBjbGFzcyBXRUJDT1JFX0VYUE9SVCBNZWRpYVN0cmF0ZWd5IHsK
IHB1YmxpYzoKKyNpZiBVU0UoQVVESU9fU0VTU0lPTikKKyAgICB2aXJ0dWFsIGJvb2wgdHJ5VG9T
ZXRBdWRpb1Nlc3Npb25Bc0FjdGl2ZShib29sIGlzQWN0aXZlKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIHVwZGF0ZUF1ZGlvU2Vzc2lvblBhcmFtZXRlcnMoc2l6ZV90IGJ1ZmZlclNpemUsIE9wdGlv
bmFsPEF1ZGlvU2Vzc2lvbkNhdGVnb3J5PiwgT3B0aW9uYWw8Um91dGVTaGFyaW5nUG9saWN5Pikg
PSAwOworI2VuZGlmCiAjaWYgRU5BQkxFKFdFQl9BVURJTykKICAgICB2aXJ0dWFsIHN0ZDo6dW5p
cXVlX3B0cjxBdWRpb0Rlc3RpbmF0aW9uPiBjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKAogICAgICAg
ICBBdWRpb0lPQ2FsbGJhY2smLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsIHVuc2lnbmVk
IG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywg
ZmxvYXQgc2FtcGxlUmF0ZSkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vQXVkaW9TZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L0F1ZGlvU2Vzc2lvbi5jcHAKaW5kZXggYjVmYjU4MDY0OGY5Y2Y4ZWM0ZjE4NmZhZmE0OGUxM2Zk
Y2YyZjU3ZC4uNzNjYTVhZjdjMWVmMTNhZGQ1MTJkYmE4YTAwMTYyODc0Njg4MGUyZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uY3BwCkBAIC02Niwx
OCArNjYsMTggQEAgdm9pZCBBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5KENhdGVnb3J5VHlwZSwg
Um91dGVTaGFyaW5nUG9saWN5KQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLUF1ZGlvU2Vz
c2lvbjo6Q2F0ZWdvcnlUeXBlIEF1ZGlvU2Vzc2lvbjo6Y2F0ZWdvcnlPdmVycmlkZSgpIGNvbnN0
CitBdWRpb1Nlc3Npb25DYXRlZ29yeSBBdWRpb1Nlc3Npb246OmNhdGVnb3J5T3ZlcnJpZGUoKSBj
b25zdAogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIE5vbmU7CiB9CiAKLXZv
aWQgQXVkaW9TZXNzaW9uOjpzZXRDYXRlZ29yeU92ZXJyaWRlKENhdGVnb3J5VHlwZSkKK3ZvaWQg
QXVkaW9TZXNzaW9uOjpzZXRDYXRlZ29yeU92ZXJyaWRlKEF1ZGlvU2Vzc2lvbkNhdGVnb3J5KQog
ewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLUF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBl
IEF1ZGlvU2Vzc2lvbjo6Y2F0ZWdvcnkoKSBjb25zdAorQXVkaW9TZXNzaW9uQ2F0ZWdvcnkgQXVk
aW9TZXNzaW9uOjpjYXRlZ29yeSgpIGNvbnN0CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAg
ICByZXR1cm4gTm9uZTsKQEAgLTE0Niw3ICsxNDYsNyBAQCBTdHJpbmcgY29udmVydEVudW1lcmF0
aW9uVG9TdHJpbmcoUm91dGVTaGFyaW5nUG9saWN5IGVudW1lcmF0aW9uVmFsdWUpCiAgICAgcmV0
dXJuIHZhbHVlc1tzdGF0aWNfY2FzdDxzaXplX3Q+KGVudW1lcmF0aW9uVmFsdWUpXTsKIH0KIAot
U3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlU
eXBlIGVudW1lcmF0aW9uVmFsdWUpCitTdHJpbmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmco
QXVkaW9TZXNzaW9uQ2F0ZWdvcnkgZW51bWVyYXRpb25WYWx1ZSkKIHsKICAgICBzdGF0aWMgY29u
c3QgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiB2YWx1ZXNbXSA9IHsKICAgICAgICAgTUFLRV9TVEFU
SUNfU1RSSU5HX0lNUEwoIk5vbmUiKSwKQEAgLTE1NywxMyArMTU3LDEzIEBAIFN0cmluZyBjb252
ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBlbnVtZXJh
dGlvblZhbHVlKQogICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiUGxheUFuZFJlY29y
ZCIpLAogICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiQXVkaW9Qcm9jZXNzaW5nIiks
CiAgICAgfTsKLSAgICBzdGF0aWNfYXNzZXJ0KCFzdGF0aWNfY2FzdDxzaXplX3Q+KEF1ZGlvU2Vz
c2lvbjo6Q2F0ZWdvcnlUeXBlOjpOb25lKSwgIkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpO
b25lIGlzIG5vdCAwIGFzIGV4cGVjdGVkIik7Ci0gICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2Fz
dDxzaXplX3Q+KEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpBbWJpZW50U291bmQpID09IDEs
ICJBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6QW1iaWVudFNvdW5kIGlzIG5vdCAxIGFzIGV4
cGVjdGVkIik7Ci0gICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KEF1ZGlvU2Vz
c2lvbjo6Q2F0ZWdvcnlUeXBlOjpTb2xvQW1iaWVudFNvdW5kKSA9PSAyLCAiQXVkaW9TZXNzaW9u
OjpDYXRlZ29yeVR5cGU6OlNvbG9BbWJpZW50U291bmQgaXMgbm90IDIgYXMgZXhwZWN0ZWQiKTsK
LSAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oQXVkaW9TZXNzaW9uOjpDYXRl
Z29yeVR5cGU6Ok1lZGlhUGxheWJhY2spID09IDMsICJBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlw
ZTo6TWVkaWFQbGF5YmFjayBpcyBub3QgMyBhcyBleHBlY3RlZCIpOwotICAgIHN0YXRpY19hc3Nl
cnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6UmVjb3Jk
QXVkaW8pID09IDQsICJBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6UmVjb3JkQXVkaW8gaXMg
bm90IDQgYXMgZXhwZWN0ZWQiKTsKLSAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVf
dD4oQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6OlBsYXlBbmRSZWNvcmQpID09IDUsICJBdWRp
b1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6UGxheUFuZFJlY29yZCBpcyBub3QgNSBhcyBleHBlY3Rl
ZCIpOwotICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihBdWRpb1Nlc3Npb246
OkNhdGVnb3J5VHlwZTo6QXVkaW9Qcm9jZXNzaW5nKSA9PSA2LCAiQXVkaW9TZXNzaW9uOjpDYXRl
Z29yeVR5cGU6OkF1ZGlvUHJvY2Vzc2luZyBpcyBub3QgNiBhcyBleHBlY3RlZCIpOworICAgIHN0
YXRpY19hc3NlcnQoIXN0YXRpY19jYXN0PHNpemVfdD4oQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6Ok5v
bmUpLCAiQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6Ok5vbmUgaXMgbm90IDAgYXMgZXhwZWN0ZWQiKTsK
KyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oQXVkaW9TZXNzaW9uQ2F0ZWdv
cnk6OkFtYmllbnRTb3VuZCkgPT0gMSwgIkF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpBbWJpZW50U291
bmQgaXMgbm90IDEgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0
PHNpemVfdD4oQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6OlNvbG9BbWJpZW50U291bmQpID09IDIsICJB
dWRpb1Nlc3Npb25DYXRlZ29yeTo6U29sb0FtYmllbnRTb3VuZCBpcyBub3QgMiBhcyBleHBlY3Rl
ZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihBdWRpb1Nlc3Npb25D
YXRlZ29yeTo6TWVkaWFQbGF5YmFjaykgPT0gMywgIkF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpNZWRp
YVBsYXliYWNrIGlzIG5vdCAzIGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0
aWNfY2FzdDxzaXplX3Q+KEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpSZWNvcmRBdWRpbykgPT0gNCwg
IkF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpSZWNvcmRBdWRpbyBpcyBub3QgNCBhcyBleHBlY3RlZCIp
OworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihBdWRpb1Nlc3Npb25DYXRl
Z29yeTo6UGxheUFuZFJlY29yZCkgPT0gNSwgIkF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpQbGF5QW5k
UmVjb3JkIGlzIG5vdCA1IGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNf
Y2FzdDxzaXplX3Q+KEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpBdWRpb1Byb2Nlc3NpbmcpID09IDYs
ICJBdWRpb1Nlc3Npb25DYXRlZ29yeTo6QXVkaW9Qcm9jZXNzaW5nIGlzIG5vdCA2IGFzIGV4cGVj
dGVkIik7CiAgICAgQVNTRVJUKHN0YXRpY19jYXN0PHNpemVfdD4oZW51bWVyYXRpb25WYWx1ZSkg
PCBXVEZfQVJSQVlfTEVOR1RIKHZhbHVlcykpOwogICAgIHJldHVybiB2YWx1ZXNbc3RhdGljX2Nh
c3Q8c2l6ZV90PihlbnVtZXJhdGlvblZhbHVlKV07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5oCmluZGV4IGU3MDA4MjJmZjFmZWViZDc4MjlhZWM3NTBj
Y2U0MGE2MGI5MjU2NmEuLjk5OTIwZjAyYTU5ZDE4MGM5YmZjYTc3NGRkNTYyNTY0OWI1OGExZGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5oCkBAIC0y
Nyw2ICsyNyw4IEBACiAKICNpZiBVU0UoQVVESU9fU0VTU0lPTikKIAorI2luY2x1ZGUgIkF1ZGlv
U2Vzc2lvbkNhdGVnb3J5LmgiCisjaW5jbHVkZSAiUm91dGVTaGFyaW5nUG9saWN5LmgiCiAjaW5j
bHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL05l
dmVyRGVzdHJveWVkLmg+CkBAIC0zNywzMyArMzksMTcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBBdWRpb1Nlc3Npb25Qcml2YXRlOwogCi1lbnVtIGNsYXNzIFJvdXRlU2hhcmluZ1Bv
bGljeSA6IHVpbnQ4X3QgewotICAgIERlZmF1bHQsCi0gICAgTG9uZ0Zvcm1BdWRpbywKLSAgICBJ
bmRlcGVuZGVudCwKLSAgICBMb25nRm9ybVZpZGVvCi19OwotCiBjbGFzcyBBdWRpb1Nlc3Npb24g
ZmluYWwgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIFdURl9NQUtFX05PTkNP
UFlBQkxFKEF1ZGlvU2Vzc2lvbik7CiBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IEF1ZGlvU2Vzc2lvbiYgc2hhcmVkU2Vzc2lvbigpOwogCi0gICAgZW51bSBDYXRlZ29yeVR5cGUg
ewotICAgICAgICBOb25lLAotICAgICAgICBBbWJpZW50U291bmQsCi0gICAgICAgIFNvbG9BbWJp
ZW50U291bmQsCi0gICAgICAgIE1lZGlhUGxheWJhY2ssCi0gICAgICAgIFJlY29yZEF1ZGlvLAot
ICAgICAgICBQbGF5QW5kUmVjb3JkLAotICAgICAgICBBdWRpb1Byb2Nlc3NpbmcsCi0gICAgfTsK
LSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldENhdGVnb3J5KENhdGVnb3J5VHlwZSwgUm91dGVT
aGFyaW5nUG9saWN5KTsKLSAgICBXRUJDT1JFX0VYUE9SVCBDYXRlZ29yeVR5cGUgY2F0ZWdvcnko
KSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldENhdGVnb3J5KEF1ZGlvU2Vzc2lv
bkNhdGVnb3J5LCBSb3V0ZVNoYXJpbmdQb2xpY3kpOworICAgIFdFQkNPUkVfRVhQT1JUIEF1ZGlv
U2Vzc2lvbkNhdGVnb3J5IGNhdGVnb3J5KCkgY29uc3Q7CiAKLSAgICB2b2lkIHNldENhdGVnb3J5
T3ZlcnJpZGUoQ2F0ZWdvcnlUeXBlKTsKLSAgICBDYXRlZ29yeVR5cGUgY2F0ZWdvcnlPdmVycmlk
ZSgpIGNvbnN0OworICAgIHZvaWQgc2V0Q2F0ZWdvcnlPdmVycmlkZShBdWRpb1Nlc3Npb25DYXRl
Z29yeSk7CisgICAgQXVkaW9TZXNzaW9uQ2F0ZWdvcnkgY2F0ZWdvcnlPdmVycmlkZSgpIGNvbnN0
OwogCiAgICAgUm91dGVTaGFyaW5nUG9saWN5IHJvdXRlU2hhcmluZ1BvbGljeSgpIGNvbnN0Owog
ICAgIFN0cmluZyByb3V0aW5nQ29udGV4dFVJRCgpIGNvbnN0OwpAQCAtNzIsMTAgKzU4LDEwIEBA
IHB1YmxpYzoKICAgICBzaXplX3QgYnVmZmVyU2l6ZSgpIGNvbnN0OwogICAgIHNpemVfdCBudW1i
ZXJPZk91dHB1dENoYW5uZWxzKCkgY29uc3Q7CiAKLSAgICBib29sIHRyeVRvU2V0QWN0aXZlKGJv
b2wpOworICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgdHJ5VG9TZXRBY3RpdmUoYm9vbCk7CiAKICAg
ICBXRUJDT1JFX0VYUE9SVCBzaXplX3QgcHJlZmVycmVkQnVmZmVyU2l6ZSgpIGNvbnN0OwotICAg
IHZvaWQgc2V0UHJlZmVycmVkQnVmZmVyU2l6ZShzaXplX3QpOworICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgc2V0UHJlZmVycmVkQnVmZmVyU2l6ZShzaXplX3QpOwogCiAgICAgY2xhc3MgTXV0ZWRT
dGF0ZU9ic2VydmVyIHsKICAgICBwdWJsaWM6CkBAIC0xMDQsNDEgKzkwLDYgQEAgcHJpdmF0ZToK
ICAgICBib29sIG1fYWN0aXZlIHsgZmFsc2UgfTsgLy8gVXNlZCBvbmx5IGZvciB0ZXN0aW5nLgog
fTsKIAotU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKFJvdXRlU2hhcmluZ1BvbGlj
eSk7Ci1TdHJpbmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoQXVkaW9TZXNzaW9uOjpDYXRl
Z29yeVR5cGUpOwotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLW5hbWVzcGFjZSBXVEYgewot
dGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3k+
IHsKLSAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAotICAgIFdlYkNvcmU6OlJvdXRlU2hh
cmluZ1BvbGljeSwKLSAgICBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3k6OkRlZmF1bHQsCi0g
ICAgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5OjpMb25nRm9ybUF1ZGlvLAotICAgIFdlYkNv
cmU6OlJvdXRlU2hhcmluZ1BvbGljeTo6SW5kZXBlbmRlbnQsCi0gICAgV2ViQ29yZTo6Um91dGVT
aGFyaW5nUG9saWN5OjpMb25nRm9ybVZpZGVvCi0gICAgPjsKLX07Ci0KLXRlbXBsYXRlPHR5cGVu
YW1lIFR5cGU+Ci1zdHJ1Y3QgTG9nQXJndW1lbnQ7Ci0KLXRlbXBsYXRlIDw+Ci1zdHJ1Y3QgTG9n
QXJndW1lbnQ8V2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5PiB7Ci0gICAgc3RhdGljIFN0cmlu
ZyB0b1N0cmluZyhjb25zdCBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3kgcG9saWN5KQotICAg
IHsKLSAgICAgICAgcmV0dXJuIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKHBvbGljeSk7Ci0g
ICAgfQotfTsKLQotdGVtcGxhdGUgPD4KLXN0cnVjdCBMb2dBcmd1bWVudDxXZWJDb3JlOjpBdWRp
b1Nlc3Npb246OkNhdGVnb3J5VHlwZT4gewotICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29u
c3QgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUgY2F0ZWdvcnkpCi0gICAgewot
ICAgICAgICByZXR1cm4gY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoY2F0ZWdvcnkpOwotICAg
IH0KLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdURgotCiAjZW5kaWYgLy8gVVNFKEFVRElPX1NFU1NJ
T04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1l
ZGlhU2Vzc2lvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxh
dGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmNwcAppbmRleCA1ZjQwNDU3Yzc1ZjcxYmFiMmM3M2U2
MTI5YzEwYWZlZmUwYzU1NzY1Li4xNTVlNWUxZTMwMDQ4YTNmODlmMmFkODBhOGMyZGMyNTE5NWU3
NDQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1l
ZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAKQEAgLTI5LDcgKzI5LDkgQEAKICNpbmNs
dWRlICJBdWRpb1Nlc3Npb24uaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkxv
Z2dpbmcuaCIKKyNpbmNsdWRlICJNZWRpYVN0cmF0ZWd5LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1N
ZWRpYVNlc3Npb24uaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCIKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCkBAIC0yMjAsNyArMjIyLDcgQEAgYm9vbCBQbGF0Zm9ybU1lZGlhU2Vz
c2lvbk1hbmFnZXI6OnNlc3Npb25XaWxsQmVnaW5QbGF5YmFjayhQbGF0Zm9ybU1lZGlhU2Vzc2lv
biYKIAogI2lmIFVTRShBVURJT19TRVNTSU9OKQogICAgIGlmIChhY3RpdmVBdWRpb1Nlc3Npb25S
ZXF1aXJlZCgpKSB7Ci0gICAgICAgIGlmICghQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCku
dHJ5VG9TZXRBY3RpdmUodHJ1ZSkpIHsKKyAgICAgICAgaWYgKCFwbGF0Zm9ybVN0cmF0ZWdpZXMo
KS0+bWVkaWFTdHJhdGVneSgpLnRyeVRvU2V0QXVkaW9TZXNzaW9uQXNBY3RpdmUodHJ1ZSkpIHsK
ICAgICAgICAgICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgc2Vzc2lvbi5sb2dJZGVudGlm
aWVyKCksICIgcmV0dXJuaW5nIGZhbHNlIGZhaWxlZCB0byBzZXQgYWN0aXZlIEF1ZGlvU2Vzc2lv
biIpOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CkBAIC0zOTMsNyArMzk1
LDcgQEAgdm9pZCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnByb2Nlc3NEaWRSZXN1bWUo
KQogCiAjaWYgVVNFKEFVRElPX1NFU1NJT04pCiAgICAgaWYgKCFtX2JlY2FtZUFjdGl2ZSAmJiBh
Y3RpdmVBdWRpb1Nlc3Npb25SZXF1aXJlZCgpKSB7Ci0gICAgICAgIG1fYmVjYW1lQWN0aXZlID0g
QXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkudHJ5VG9TZXRBY3RpdmUodHJ1ZSk7CisgICAg
ICAgIG1fYmVjYW1lQWN0aXZlID0gcGxhdGZvcm1TdHJhdGVnaWVzKCktPm1lZGlhU3RyYXRlZ3ko
KS50cnlUb1NldEF1ZGlvU2Vzc2lvbkFzQWN0aXZlKHRydWUpOwogICAgICAgICBBTFdBWVNfTE9H
KExPR0lERU5USUZJRVIsICJ0cmllZCB0byBzZXQgYWN0aXZlIEF1ZGlvU2Vzc2lvbiwgIiwgbV9i
ZWNhbWVBY3RpdmUgPyAic3VjY2VlZGVkIiA6ICJmYWlsZWQiKTsKICAgICB9CiAjZW5kaWYKQEAg
LTU2Nyw3ICs1NjksNyBAQCB2b2lkIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6bWF5YmVE
ZWFjdGl2YXRlQXVkaW9TZXNzaW9uKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgQUxXQVlTX0xP
RyhMT0dJREVOVElGSUVSLCAidHJpZWQgdG8gc2V0IGluYWN0aXZlIEF1ZGlvU2Vzc2lvbiIpOwot
ICAgIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnRyeVRvU2V0QWN0aXZlKGZhbHNlKTsK
KyAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bWVkaWFTdHJhdGVneSgpLnRyeVRvU2V0QXVkaW9T
ZXNzaW9uQXNBY3RpdmUoZmFsc2UpOwogICAgIG1fYmVjYW1lQWN0aXZlID0gZmFsc2U7CiB9CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL01l
ZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L2NvY29hL01lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5tbQppbmRleCA1ZDI0ZDVjZGIzYWQ3MTEw
MjA2ZjNjOTE3MDM5ZmE5YmZlYzBjY2M1Li45OTU0NGE0ZGM5NDcyZDcxOTkxZmQ2NzQ0NTU5Mzg3
YTM4NTc2NmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2Nv
YS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vY29jb2EvTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hLm1tCkBAIC03MywyNyArNzMs
MjcgQEAgdm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6OnVwZGF0ZVNlc3Npb25TdGF0ZSgp
CiAgICAgICAgICJWaWRlb0F1ZGlvKCIsIHZpZGVvQXVkaW9Db3VudCwgIiksICIKICAgICAgICAg
IldlYkF1ZGlvKCIsIHdlYkF1ZGlvQ291bnQsICIpIik7CiAKKyAgICBzaXplX3QgYnVmZmVyU2l6
ZSA9IDA7CiAgICAgaWYgKHdlYkF1ZGlvQ291bnQpCi0gICAgICAgIEF1ZGlvU2Vzc2lvbjo6c2hh
cmVkU2Vzc2lvbigpLnNldFByZWZlcnJlZEJ1ZmZlclNpemUoa1dlYkF1ZGlvQnVmZmVyU2l6ZSk7
CisgICAgICAgIGJ1ZmZlclNpemUgPSBrV2ViQXVkaW9CdWZmZXJTaXplOwogICAgIC8vIEluIGNh
c2Ugb2YgYXVkaW8gY2FwdHVyZSwgd2Ugd2FudCB0byBncmFiIDIwIG1zIGNodW5rcyB0byBsaW1p
dCB0aGUgbGF0ZW5jeSBzbyB0aGF0IGl0IGlzIG5vdCBub3RpY2VhYmxlIGJ5IHVzZXJzCiAgICAg
Ly8gd2hpbGUgaGF2aW5nIGEgbGFyZ2UgZW5vdWdoIGJ1ZmZlciBzbyB0aGF0IHRoZSBhdWRpbyBy
ZW5kZXJpbmcgcmVtYWlucyBzdGFibGUsIGhlbmNlIGEgY29tcHV0YXRpb24gYmFzZWQgb24gc2Ft
cGxlIHJhdGUuCiAgICAgZWxzZSBpZiAoY2FwdHVyZUNvdW50KQotICAgICAgICBBdWRpb1Nlc3Np
b246OnNoYXJlZFNlc3Npb24oKS5zZXRQcmVmZXJyZWRCdWZmZXJTaXplKEF1ZGlvU2Vzc2lvbjo6
c2hhcmVkU2Vzc2lvbigpLnNhbXBsZVJhdGUoKSAvIDUwKTsKKyAgICAgICAgYnVmZmVyU2l6ZSA9
IEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNhbXBsZVJhdGUoKSAvIDUwOwogICAgIGVs
c2UgaWYgKCh2aWRlb0F1ZGlvQ291bnQgfHwgYXVkaW9Db3VudCkgJiYgRGVwcmVjYXRlZEdsb2Jh
bFNldHRpbmdzOjpsb3dQb3dlclZpZGVvQXVkaW9CdWZmZXJTaXplRW5hYmxlZCgpKSB7CiAgICAg
ICAgIC8vIEZJWE1FOiA8aHR0cDovL3dlYmtpdC5vcmcvYi8xMTY3MjU+IEZpZ3VyZSBvdXQgd2h5
IGVuYWJsaW5nIHRoZSBjb2RlIGJlbG93CiAgICAgICAgIC8vIGNhdXNlcyBtZWRpYSBMYXlvdXRU
ZXN0cyB0byBmYWlsIG9uIDEwLjguCiAKLSAgICAgICAgc2l6ZV90IGJ1ZmZlclNpemU7CiAgICAg
ICAgIGlmIChtX2F1ZGlvSGFyZHdhcmVMaXN0ZW5lciAmJiBtX2F1ZGlvSGFyZHdhcmVMaXN0ZW5l
ci0+b3V0cHV0RGV2aWNlU3VwcG9ydHNMb3dQb3dlck1vZGUoKSkKICAgICAgICAgICAgIGJ1ZmZl
clNpemUgPSBrTG93UG93ZXJWaWRlb0J1ZmZlclNpemU7CiAgICAgICAgIGVsc2UKICAgICAgICAg
ICAgIGJ1ZmZlclNpemUgPSBrV2ViQXVkaW9CdWZmZXJTaXplOwotCi0gICAgICAgIEF1ZGlvU2Vz
c2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldFByZWZlcnJlZEJ1ZmZlclNpemUoYnVmZmVyU2l6ZSk7
CiAgICAgfQogCi0gICAgaWYgKCFEZXByZWNhdGVkR2xvYmFsU2V0dGluZ3M6OnNob3VsZE1hbmFn
ZUF1ZGlvU2Vzc2lvbkNhdGVnb3J5KCkpCisgICAgaWYgKCFEZXByZWNhdGVkR2xvYmFsU2V0dGlu
Z3M6OnNob3VsZE1hbmFnZUF1ZGlvU2Vzc2lvbkNhdGVnb3J5KCkpIHsKKyAgICAgICAgcGxhdGZv
cm1TdHJhdGVnaWVzKCktPm1lZGlhU3RyYXRlZ3koKS51cGRhdGVBdWRpb1Nlc3Npb25QYXJhbWV0
ZXJzKGJ1ZmZlclNpemUsIHsgfSwgeyB9KTsKICAgICAgICAgcmV0dXJuOworICAgIH0KIAogICAg
IGJvb2wgaGFzQXVkaWJsZUF1ZGlvT3JWaWRlb01lZGlhVHlwZSA9IGZhbHNlOwogICAgIGZvckVh
Y2hTZXNzaW9uKFsmaGFzQXVkaWJsZUF1ZGlvT3JWaWRlb01lZGlhVHlwZV0gKGF1dG8mIHNlc3Np
b24pIG11dGFibGUgewpAQCAtMTA1LDE3ICsxMDUsMTcgQEAgdm9pZCBNZWRpYVNlc3Npb25NYW5h
Z2VyQ29jb2E6OnVwZGF0ZVNlc3Npb25TdGF0ZSgpCiAgICAgfSk7CiAKICAgICBSb3V0ZVNoYXJp
bmdQb2xpY3kgcG9saWN5ID0gUm91dGVTaGFyaW5nUG9saWN5OjpEZWZhdWx0OwotICAgIEF1ZGlv
U2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIGNhdGVnb3J5ID0gQXVkaW9TZXNzaW9uOjpOb25lOworICAg
IGF1dG8gY2F0ZWdvcnkgPSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6Tm9uZTsKICAgICBpZiAoY2Fw
dHVyZUNvdW50KQotICAgICAgICBjYXRlZ29yeSA9IEF1ZGlvU2Vzc2lvbjo6UGxheUFuZFJlY29y
ZDsKKyAgICAgICAgY2F0ZWdvcnkgPSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6UGxheUFuZFJlY29y
ZDsKICAgICBlbHNlIGlmIChoYXNBdWRpYmxlQXVkaW9PclZpZGVvTWVkaWFUeXBlKSB7Ci0gICAg
ICAgIGNhdGVnb3J5ID0gQXVkaW9TZXNzaW9uOjpNZWRpYVBsYXliYWNrOworICAgICAgICBjYXRl
Z29yeSA9IEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpNZWRpYVBsYXliYWNrOwogICAgICAgICBwb2xp
Y3kgPSBSb3V0ZVNoYXJpbmdQb2xpY3k6OkxvbmdGb3JtQXVkaW87CiAgICAgfSBlbHNlIGlmICh3
ZWJBdWRpb0NvdW50KQotICAgICAgICBjYXRlZ29yeSA9IEF1ZGlvU2Vzc2lvbjo6QW1iaWVudFNv
dW5kOwotCisgICAgICAgIGNhdGVnb3J5ID0gQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6OkFtYmllbnRT
b3VuZDsKICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsICJzZXR0aW5nIGNhdGVnb3J5ID0g
IiwgY2F0ZWdvcnksICIsIHBvbGljeSA9ICIsIHBvbGljeSk7Ci0gICAgQXVkaW9TZXNzaW9uOjpz
aGFyZWRTZXNzaW9uKCkuc2V0Q2F0ZWdvcnkoY2F0ZWdvcnksIHBvbGljeSk7CisKKyAgICBwbGF0
Zm9ybVN0cmF0ZWdpZXMoKS0+bWVkaWFTdHJhdGVneSgpLnVwZGF0ZUF1ZGlvU2Vzc2lvblBhcmFt
ZXRlcnMoYnVmZmVyU2l6ZSwgY2F0ZWdvcnksIHBvbGljeSk7CiB9CiAKIHZvaWQgTWVkaWFTZXNz
aW9uTWFuYWdlckNvY29hOjpiZWdpbkludGVycnVwdGlvbihQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6
SW50ZXJydXB0aW9uVHlwZSB0eXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vaW9zL0F1ZGlvU2Vzc2lvbklPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL2lvcy9BdWRpb1Nlc3Npb25JT1MubW0KaW5kZXggZDZjMDA3ZjQwYjVmYjc2MzcyMmQ1
MzhhZGVkMDJkMWI4MWExODg1NC4uNDc1MTdiMmY0M2M0YzM3YzU0MWFhZjFkMWFiYmU1ODYxMTk5
ZTQwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlv
U2Vzc2lvbklPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvQXVk
aW9TZXNzaW9uSU9TLm1tCkBAIC00MCwxNyArNDAsMTcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogI2lmICFMT0dfRElTQUJMRUQKLXN0YXRpYyBjb25zdCBjaGFyKiBjYXRlZ29yeU5hbWUoQXVk
aW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUgY2F0ZWdvcnkpCitzdGF0aWMgY29uc3QgY2hhciogY2F0
ZWdvcnlOYW1lKEF1ZGlvU2Vzc2lvbkNhdGVnb3J5IGNhdGVnb3J5KQogewogI2RlZmluZSBDQVNF
KGNhdGVnb3J5KSBjYXNlIEF1ZGlvU2Vzc2lvbjo6Y2F0ZWdvcnk6IHJldHVybiAjY2F0ZWdvcnkK
ICAgICBzd2l0Y2ggKGNhdGVnb3J5KSB7Ci0gICAgICAgIENBU0UoTm9uZSk7Ci0gICAgICAgIENB
U0UoQW1iaWVudFNvdW5kKTsKLSAgICAgICAgQ0FTRShTb2xvQW1iaWVudFNvdW5kKTsKLSAgICAg
ICAgQ0FTRShNZWRpYVBsYXliYWNrKTsKLSAgICAgICAgQ0FTRShSZWNvcmRBdWRpbyk7Ci0gICAg
ICAgIENBU0UoUGxheUFuZFJlY29yZCk7Ci0gICAgICAgIENBU0UoQXVkaW9Qcm9jZXNzaW5nKTsK
KyAgICAgICAgQ0FTRShBdWRpb1Nlc3Npb25DYXRlZ29yeTo6Tm9uZSk7CisgICAgICAgIENBU0Uo
QXVkaW9TZXNzaW9uQ2F0ZWdvcnk6OkFtYmllbnRTb3VuZCk7CisgICAgICAgIENBU0UoQXVkaW9T
ZXNzaW9uQ2F0ZWdvcnk6OlNvbG9BbWJpZW50U291bmQpOworICAgICAgICBDQVNFKEF1ZGlvU2Vz
c2lvbkNhdGVnb3J5OjpNZWRpYVBsYXliYWNrKTsKKyAgICAgICAgQ0FTRShBdWRpb1Nlc3Npb25D
YXRlZ29yeTo6UmVjb3JkQXVkaW8pOworICAgICAgICBDQVNFKEF1ZGlvU2Vzc2lvbkNhdGVnb3J5
OjpQbGF5QW5kUmVjb3JkKTsKKyAgICAgICAgQ0FTRShBdWRpb1Nlc3Npb25DYXRlZ29yeTo6QXVk
aW9Qcm9jZXNzaW5nKTsKICAgICB9CiAgICAgCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBA
IC02MiwxMiArNjIsMTIgQEAgY2xhc3MgQXVkaW9TZXNzaW9uUHJpdmF0ZSB7CiAgICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgQXVkaW9TZXNzaW9uUHJpdmF0ZShBdWRp
b1Nlc3Npb24qKTsKLSAgICBBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBtX2NhdGVnb3J5T3Zl
cnJpZGU7CisgICAgQXVkaW9TZXNzaW9uQ2F0ZWdvcnkgbV9jYXRlZ29yeU92ZXJyaWRlOwogICAg
IE9TT2JqZWN0UHRyPGRpc3BhdGNoX3F1ZXVlX3Q+IG1fZGlzcGF0Y2hRdWV1ZTsKIH07CiAKIEF1
ZGlvU2Vzc2lvblByaXZhdGU6OkF1ZGlvU2Vzc2lvblByaXZhdGUoQXVkaW9TZXNzaW9uKikKLSAg
ICA6IG1fY2F0ZWdvcnlPdmVycmlkZShBdWRpb1Nlc3Npb246Ok5vbmUpCisgICAgOiBtX2NhdGVn
b3J5T3ZlcnJpZGUoQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6Ok5vbmUpCiB7CiB9CiAKQEAgLTgwLDcg
KzgwLDcgQEAgQXVkaW9TZXNzaW9uOjp+QXVkaW9TZXNzaW9uKCkKIHsKIH0KIAotdm9pZCBBdWRp
b1Nlc3Npb246OnNldENhdGVnb3J5KENhdGVnb3J5VHlwZSBuZXdDYXRlZ29yeSwgUm91dGVTaGFy
aW5nUG9saWN5IHBvbGljeSkKK3ZvaWQgQXVkaW9TZXNzaW9uOjpzZXRDYXRlZ29yeShBdWRpb1Nl
c3Npb25DYXRlZ29yeSBuZXdDYXRlZ29yeSwgUm91dGVTaGFyaW5nUG9saWN5IHBvbGljeSkKIHsK
ICNpZiAhSEFWRShST1VURV9TSEFSSU5HX1BPTElDWV9MT05HX0ZPUk1fVklERU8pCiAgICAgaWYg
KHBvbGljeSA9PSBSb3V0ZVNoYXJpbmdQb2xpY3k6OkxvbmdGb3JtVmlkZW8pCkBAIC04OSw3ICs4
OSw3IEBAIHZvaWQgQXVkaW9TZXNzaW9uOjpzZXRDYXRlZ29yeShDYXRlZ29yeVR5cGUgbmV3Q2F0
ZWdvcnksIFJvdXRlU2hhcmluZ1BvbGljeSBwb2xpCiAKICAgICBMT0coTWVkaWEsICJBdWRpb1Nl
c3Npb246OnNldENhdGVnb3J5KCkgLSBjYXRlZ29yeSA9ICVzIiwgY2F0ZWdvcnlOYW1lKG5ld0Nh
dGVnb3J5KSk7CiAKLSAgICBpZiAoY2F0ZWdvcnlPdmVycmlkZSgpICYmIGNhdGVnb3J5T3ZlcnJp
ZGUoKSAhPSBuZXdDYXRlZ29yeSkgeworICAgIGlmIChjYXRlZ29yeU92ZXJyaWRlKCkgIT0gQXVk
aW9TZXNzaW9uQ2F0ZWdvcnk6Ok5vbmUgJiYgY2F0ZWdvcnlPdmVycmlkZSgpICE9IG5ld0NhdGVn
b3J5KSB7CiAgICAgICAgIExPRyhNZWRpYSwgIkF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnkoKSAt
IG92ZXJyaWRlIHNldCwgTk9UIGNoYW5naW5nIik7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBA
IC05OSwyNyArOTksMjcgQEAgdm9pZCBBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5KENhdGVnb3J5
VHlwZSBuZXdDYXRlZ29yeSwgUm91dGVTaGFyaW5nUG9saWN5IHBvbGkKICAgICBBVkF1ZGlvU2Vz
c2lvbkNhdGVnb3J5T3B0aW9ucyBvcHRpb25zID0gMDsKIAogICAgIHN3aXRjaCAobmV3Q2F0ZWdv
cnkpIHsKLSAgICBjYXNlIEFtYmllbnRTb3VuZDoKKyAgICBjYXNlIEF1ZGlvU2Vzc2lvbkNhdGVn
b3J5OjpBbWJpZW50U291bmQ6CiAgICAgICAgIGNhdGVnb3J5U3RyaW5nID0gQVZBdWRpb1Nlc3Np
b25DYXRlZ29yeUFtYmllbnQ7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgU29sb0FtYmllbnRT
b3VuZDoKKyAgICBjYXNlIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpTb2xvQW1iaWVudFNvdW5kOgog
ICAgICAgICBjYXRlZ29yeVN0cmluZyA9IEFWQXVkaW9TZXNzaW9uQ2F0ZWdvcnlTb2xvQW1iaWVu
dDsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBNZWRpYVBsYXliYWNrOgorICAgIGNhc2UgQXVk
aW9TZXNzaW9uQ2F0ZWdvcnk6Ok1lZGlhUGxheWJhY2s6CiAgICAgICAgIGNhdGVnb3J5U3RyaW5n
ID0gQVZBdWRpb1Nlc3Npb25DYXRlZ29yeVBsYXliYWNrOwogICAgICAgICBicmVhazsKLSAgICBj
YXNlIFJlY29yZEF1ZGlvOgorICAgIGNhc2UgQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6OlJlY29yZEF1
ZGlvOgogICAgICAgICBjYXRlZ29yeVN0cmluZyA9IEFWQXVkaW9TZXNzaW9uQ2F0ZWdvcnlSZWNv
cmQ7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgUGxheUFuZFJlY29yZDoKKyAgICBjYXNlIEF1
ZGlvU2Vzc2lvbkNhdGVnb3J5OjpQbGF5QW5kUmVjb3JkOgogICAgICAgICBjYXRlZ29yeVN0cmlu
ZyA9IEFWQXVkaW9TZXNzaW9uQ2F0ZWdvcnlQbGF5QW5kUmVjb3JkOwogICAgICAgICBjYXRlZ29y
eU1vZGUgPSBBVkF1ZGlvU2Vzc2lvbk1vZGVWaWRlb0NoYXQ7CiAgICAgICAgIG9wdGlvbnMgfD0g
QVZBdWRpb1Nlc3Npb25DYXRlZ29yeU9wdGlvbkFsbG93Qmx1ZXRvb3RoIHwgQVZBdWRpb1Nlc3Np
b25DYXRlZ29yeU9wdGlvbkFsbG93Qmx1ZXRvb3RoQTJEUCB8IEFWQXVkaW9TZXNzaW9uQ2F0ZWdv
cnlPcHRpb25EZWZhdWx0VG9TcGVha2VyIHwgQVZBdWRpb1Nlc3Npb25DYXRlZ29yeU9wdGlvbkFs
bG93QWlyUGxheTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBBdWRpb1Byb2Nlc3Npbmc6Cisg
ICAgY2FzZSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6QXVkaW9Qcm9jZXNzaW5nOgogICAgICAgICBj
YXRlZ29yeVN0cmluZyA9IEFWQXVkaW9TZXNzaW9uQ2F0ZWdvcnlBdWRpb1Byb2Nlc3Npbmc7CiAg
ICAgICAgIGJyZWFrOwotICAgIGNhc2UgTm9uZToKKyAgICBjYXNlIEF1ZGlvU2Vzc2lvbkNhdGVn
b3J5OjpOb25lOgogICAgICAgICBjYXRlZ29yeVN0cmluZyA9IEFWQXVkaW9TZXNzaW9uQ2F0ZWdv
cnlBbWJpZW50OwogICAgICAgICBicmVhazsKICAgICB9CkBAIC0xMzEsMjIgKzEzMSwyMiBAQCB2
b2lkIEF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnkoQ2F0ZWdvcnlUeXBlIG5ld0NhdGVnb3J5LCBS
b3V0ZVNoYXJpbmdQb2xpY3kgcG9saQogI2VuZGlmCiB9CiAKLUF1ZGlvU2Vzc2lvbjo6Q2F0ZWdv
cnlUeXBlIEF1ZGlvU2Vzc2lvbjo6Y2F0ZWdvcnkoKSBjb25zdAorQXVkaW9TZXNzaW9uQ2F0ZWdv
cnkgQXVkaW9TZXNzaW9uOjpjYXRlZ29yeSgpIGNvbnN0CiB7CiAgICAgTlNTdHJpbmcgKmNhdGVn
b3J5U3RyaW5nID0gW1tQQUw6OmdldEFWQXVkaW9TZXNzaW9uQ2xhc3MoKSBzaGFyZWRJbnN0YW5j
ZV0gY2F0ZWdvcnldOwogICAgIGlmIChbY2F0ZWdvcnlTdHJpbmcgaXNFcXVhbDpBVkF1ZGlvU2Vz
c2lvbkNhdGVnb3J5QW1iaWVudF0pCi0gICAgICAgIHJldHVybiBBbWJpZW50U291bmQ7CisgICAg
ICAgIHJldHVybiBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6QW1iaWVudFNvdW5kOwogICAgIGlmIChb
Y2F0ZWdvcnlTdHJpbmcgaXNFcXVhbDpBVkF1ZGlvU2Vzc2lvbkNhdGVnb3J5U29sb0FtYmllbnRd
KQotICAgICAgICByZXR1cm4gU29sb0FtYmllbnRTb3VuZDsKKyAgICAgICAgcmV0dXJuIEF1ZGlv
U2Vzc2lvbkNhdGVnb3J5OjpTb2xvQW1iaWVudFNvdW5kOwogICAgIGlmIChbY2F0ZWdvcnlTdHJp
bmcgaXNFcXVhbDpBVkF1ZGlvU2Vzc2lvbkNhdGVnb3J5UGxheWJhY2tdKQotICAgICAgICByZXR1
cm4gTWVkaWFQbGF5YmFjazsKKyAgICAgICAgcmV0dXJuIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpN
ZWRpYVBsYXliYWNrOwogICAgIGlmIChbY2F0ZWdvcnlTdHJpbmcgaXNFcXVhbDpBVkF1ZGlvU2Vz
c2lvbkNhdGVnb3J5UmVjb3JkXSkKLSAgICAgICAgcmV0dXJuIFJlY29yZEF1ZGlvOworICAgICAg
ICByZXR1cm4gQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6OlJlY29yZEF1ZGlvOwogICAgIGlmIChbY2F0
ZWdvcnlTdHJpbmcgaXNFcXVhbDpBVkF1ZGlvU2Vzc2lvbkNhdGVnb3J5UGxheUFuZFJlY29yZF0p
Ci0gICAgICAgIHJldHVybiBQbGF5QW5kUmVjb3JkOworICAgICAgICByZXR1cm4gQXVkaW9TZXNz
aW9uQ2F0ZWdvcnk6OlBsYXlBbmRSZWNvcmQ7CiAgICAgaWYgKFtjYXRlZ29yeVN0cmluZyBpc0Vx
dWFsOkFWQXVkaW9TZXNzaW9uQ2F0ZWdvcnlBdWRpb1Byb2Nlc3NpbmddKQotICAgICAgICByZXR1
cm4gQXVkaW9Qcm9jZXNzaW5nOwotICAgIHJldHVybiBOb25lOworICAgICAgICByZXR1cm4gQXVk
aW9TZXNzaW9uQ2F0ZWdvcnk6OkF1ZGlvUHJvY2Vzc2luZzsKKyAgICByZXR1cm4gQXVkaW9TZXNz
aW9uQ2F0ZWdvcnk6Ok5vbmU7CiB9CiAKIFJvdXRlU2hhcmluZ1BvbGljeSBBdWRpb1Nlc3Npb246
OnJvdXRlU2hhcmluZ1BvbGljeSgpIGNvbnN0CkBAIC0xNzYsNyArMTc2LDcgQEAgU3RyaW5nIEF1
ZGlvU2Vzc2lvbjo6cm91dGluZ0NvbnRleHRVSUQoKSBjb25zdAogI2VuZGlmCiB9CiAKLXZvaWQg
QXVkaW9TZXNzaW9uOjpzZXRDYXRlZ29yeU92ZXJyaWRlKENhdGVnb3J5VHlwZSBjYXRlZ29yeSkK
K3ZvaWQgQXVkaW9TZXNzaW9uOjpzZXRDYXRlZ29yeU92ZXJyaWRlKEF1ZGlvU2Vzc2lvbkNhdGVn
b3J5IGNhdGVnb3J5KQogewogICAgIGlmIChtX3ByaXZhdGUtPm1fY2F0ZWdvcnlPdmVycmlkZSA9
PSBjYXRlZ29yeSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTg1LDcgKzE4NSw3IEBAIHZvaWQgQXVk
aW9TZXNzaW9uOjpzZXRDYXRlZ29yeU92ZXJyaWRlKENhdGVnb3J5VHlwZSBjYXRlZ29yeSkKICAg
ICBzZXRDYXRlZ29yeShjYXRlZ29yeSwgUm91dGVTaGFyaW5nUG9saWN5OjpEZWZhdWx0KTsKIH0K
IAotQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUgQXVkaW9TZXNzaW9uOjpjYXRlZ29yeU92ZXJy
aWRlKCkgY29uc3QKK0F1ZGlvU2Vzc2lvbkNhdGVnb3J5IEF1ZGlvU2Vzc2lvbjo6Y2F0ZWdvcnlP
dmVycmlkZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+bV9jYXRlZ29yeU92ZXJy
aWRlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL01l
ZGlhU2Vzc2lvbk1hbmFnZXJJT1MuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lv
cy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLmgKaW5kZXggOTNlNWJmYzQwYjhmMTg1ODM4Mzg5NjYz
NmY2MmVlNjkxOGM5OTE1My4uYzRiN2Q4ODM4ZWM4MTQxNTIzNDMxNGEyMWY5NTBkOTIzYWU3ZjI4
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL01lZGlhU2Vz
c2lvbk1hbmFnZXJJT1MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3Mv
TWVkaWFTZXNzaW9uTWFuYWdlcklPUy5oCkBAIC01NCw2ICs1NCw4IEBAIHB1YmxpYzoKICAgICB2
b2lkIGFjdGl2ZVZpZGVvUm91dGVEaWRDaGFuZ2UoT3B0aW9uYWw8Ym9vbD4mJik7CiAjZW5kaWYK
IAorICAgIHN0YXRpYyBXRUJDT1JFX0VYUE9SVCB2b2lkIHByb3ZpZGVQcmVzZW50aW5nQXBwbGlj
YXRpb25QSUQoKTsKKwogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgUGxhdGZvcm1NZWRpYVNl
c3Npb25NYW5hZ2VyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tCmluZGV4IDQ1MTcyNGZlNzNhY2Zj
ZDU5OTQ2NGMwYzQyZjE4YzU2ZTYzMzE5MTcuLmNmMjVmYjQ4NjAxNzY4MjVhNzdhZDg2MjRjYjQ1
YmRmMzk4M2VjOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lv
cy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tCkBAIC0xNzQsNyArMTc0LDEzIEBA
IHZvaWQgTWVkaWFTZXNzaW9uTWFuYWdlcmlPUzo6cHJvdmlkZVByZXNlbnRpbmdBcHBsaWNhdGlv
blBJRElmTmVjZXNzYXJ5KCkKICAgICBpZiAobV9oYXZlUHJlc2VudGVkQXBwbGljYXRpb25QSUQp
CiAgICAgICAgIHJldHVybjsKICAgICBtX2hhdmVQcmVzZW50ZWRBcHBsaWNhdGlvblBJRCA9IHRy
dWU7CisgICAgcHJvdmlkZVByZXNlbnRpbmdBcHBsaWNhdGlvblBJRCgpOworI2VuZGlmCit9CiAK
K3ZvaWQgTWVkaWFTZXNzaW9uTWFuYWdlcmlPUzo6cHJvdmlkZVByZXNlbnRpbmdBcHBsaWNhdGlv
blBJRCgpCit7CisjaWYgSEFWRShDRUxFU1RJQUwpCiAgICAgaWYgKCFjYW5Mb2FkQVZTeXN0ZW1D
b250cm9sbGVyX1BJRFRvSW5oZXJpdEFwcGxpY2F0aW9uU3RhdGVGcm9tKCkpCiAgICAgICAgIHJl
dHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1
ZGlvU2Vzc2lvbk1hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVk
aW9TZXNzaW9uTWFjLmNwcAppbmRleCBjYzA0ZjBiZTMwOTc0OThiODM2NmU5MjQyMDczZWNlM2Ux
OTc1YWI1Li5lYjM2MjVhNjA0YWM0NGYzOTVkNWI5NmVjMjIwYWNlZjBiNjdlYmNiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9TZXNzaW9uTWFjLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9TZXNzaW9uTWFj
LmNwcApAQCAtNTgsNyArNTgsNyBAQCBwdWJsaWM6CiAgICAgZXhwbGljaXQgQXVkaW9TZXNzaW9u
UHJpdmF0ZShib29sIG11dGVkU3RhdGUpCiAgICAgICAgIDogbGFzdE11dGVkU3RhdGUobXV0ZWRT
dGF0ZSkgeyB9CiAgICAgYm9vbCBsYXN0TXV0ZWRTdGF0ZTsKLSAgICBBdWRpb1Nlc3Npb246OkNh
dGVnb3J5VHlwZSBjYXRlZ29yeSB7IEF1ZGlvU2Vzc2lvbjo6Tm9uZSB9OworICAgIEF1ZGlvU2Vz
c2lvbkNhdGVnb3J5IGNhdGVnb3J5IHsgQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6Ok5vbmUgfTsKIH07
CiAKIEF1ZGlvU2Vzc2lvbjo6QXVkaW9TZXNzaW9uKCkKQEAgLTY4LDE3ICs2OCwxNyBAQCBBdWRp
b1Nlc3Npb246OkF1ZGlvU2Vzc2lvbigpCiAKIEF1ZGlvU2Vzc2lvbjo6fkF1ZGlvU2Vzc2lvbigp
ID0gZGVmYXVsdDsKIAotQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUgQXVkaW9TZXNzaW9uOjpj
YXRlZ29yeSgpIGNvbnN0CitBdWRpb1Nlc3Npb25DYXRlZ29yeSBBdWRpb1Nlc3Npb246OmNhdGVn
b3J5KCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9wcml2YXRlLT5jYXRlZ29yeTsKIH0KIAotdm9p
ZCBBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5KENhdGVnb3J5VHlwZSBjYXRlZ29yeSwgUm91dGVT
aGFyaW5nUG9saWN5KQordm9pZCBBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5KEF1ZGlvU2Vzc2lv
bkNhdGVnb3J5IGNhdGVnb3J5LCBSb3V0ZVNoYXJpbmdQb2xpY3kpCiB7CiAgICAgbV9wcml2YXRl
LT5jYXRlZ29yeSA9IGNhdGVnb3J5OwogfQogCi1BdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBB
dWRpb1Nlc3Npb246OmNhdGVnb3J5T3ZlcnJpZGUoKSBjb25zdAorQXVkaW9TZXNzaW9uQ2F0ZWdv
cnkgQXVkaW9TZXNzaW9uOjpjYXRlZ29yeU92ZXJyaWRlKCkgY29uc3QKIHsKICAgICBub3RJbXBs
ZW1lbnRlZCgpOwogICAgIHJldHVybiBOb25lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Jhc2VBdWRpb1NoYXJlZFVuaXQuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Jhc2VBdWRpb1NoYXJlZFVuaXQuY3Bw
CmluZGV4IGQ2M2JmNTRhMTYzYjUxMTkyZWEwYTM2Mzc4NmRmODc2Yjg5Zjk4NGYuLjRjM2M4Mjhi
ZDIzMjkwZmQ5NzMwMjVkNjQxMjcxM2Q4YTE4NDAwYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9CYXNlQXVkaW9TaGFyZWRVbml0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQmFzZUF1ZGlvU2hhcmVk
VW5pdC5jcHAKQEAgLTk3LDcgKzk3LDcgQEAgT1NTdGF0dXMgQmFzZUF1ZGlvU2hhcmVkVW5pdDo6
c3RhcnRVbml0KCkKICAgICBmb3JFYWNoQ2xpZW50KFtdKGF1dG8mIGNsaWVudCkgewogICAgICAg
ICBjbGllbnQuYXVkaW9Vbml0V2lsbFN0YXJ0KCk7CiAgICAgfSk7Ci0gICAgQVNTRVJUKCFEZXBy
ZWNhdGVkR2xvYmFsU2V0dGluZ3M6OnNob3VsZE1hbmFnZUF1ZGlvU2Vzc2lvbkNhdGVnb3J5KCkg
fHwgQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuY2F0ZWdvcnkoKSA9PSBBdWRpb1Nlc3Np
b246OlBsYXlBbmRSZWNvcmQpOworICAgIEFTU0VSVCghRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdz
OjpzaG91bGRNYW5hZ2VBdWRpb1Nlc3Npb25DYXRlZ29yeSgpIHx8IEF1ZGlvU2Vzc2lvbjo6c2hh
cmVkU2Vzc2lvbigpLmNhdGVnb3J5KCkgPT0gQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6OlBsYXlBbmRS
ZWNvcmQpOwogCiAgICAgaWYgKGF1dG8gZXJyb3IgPSBzdGFydEludGVybmFsKCkpIHsKICAgICAg
ICAgY2FwdHVyZUZhaWxlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tb2NrL01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmNwcAppbmRleCBjNDY2MmQ0YTZkMWYzMjQ0
MDlkMzljZGE1ODI5OGFmODk5MTM4ZDI1Li5kZTdiMmQ1NTlhZTc2MTBmMTk4YmEyODg5MmQwY2M1
ZjE3ZjhlNWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tS
ZWFsdGltZUF1ZGlvU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmNwcApAQCAtMTM3LDcgKzEzNyw3IEBAIHZvaWQgTW9j
a1JlYWx0aW1lQXVkaW9Tb3VyY2U6OnN0YXJ0UHJvZHVjaW5nRGF0YSgpCiAjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKICAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5h
dWRpb0NhcHR1cmVGYWN0b3J5KCkuc2V0QWN0aXZlU291cmNlKCp0aGlzKTsKICAgICBQbGF0Zm9y
bU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5zZXNzaW9uQ2FuUHJvZHVjZUF1
ZGlvQ2hhbmdlZCgpOwotICAgIEFTU0VSVChBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5j
YXRlZ29yeSgpID09IEF1ZGlvU2Vzc2lvbjo6UGxheUFuZFJlY29yZCk7CisgICAgQVNTRVJUKEF1
ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLmNhdGVnb3J5KCkgPT0gQXVkaW9TZXNzaW9uQ2F0
ZWdvcnk6OlBsYXlBbmRSZWNvcmQpOwogI2VuZGlmCiAKICAgICBpZiAoIXNhbXBsZVJhdGUoKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCA0OTJkZjJmYzdjN2YxOWZjM2U5
YjliMTQzNjM0ZjA3ZWIyOThkNWViLi4zNWRlMGQxNmUwNTA1MDI5NGYwY2M5YmM0MjEyMjU0NTA4
YTdjNjdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC00OTc1LDE5ICs0
OTc1LDE5IEBAIFN0cmluZyBJbnRlcm5hbHM6OmF1ZGlvU2Vzc2lvbkNhdGVnb3J5KCkgY29uc3QK
IHsKICNpZiBVU0UoQVVESU9fU0VTU0lPTikKICAgICBzd2l0Y2ggKEF1ZGlvU2Vzc2lvbjo6c2hh
cmVkU2Vzc2lvbigpLmNhdGVnb3J5KCkpIHsKLSAgICBjYXNlIEF1ZGlvU2Vzc2lvbjo6QW1iaWVu
dFNvdW5kOgorICAgIGNhc2UgQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6OkFtYmllbnRTb3VuZDoKICAg
ICAgICAgcmV0dXJuICJBbWJpZW50U291bmQiX3M7Ci0gICAgY2FzZSBBdWRpb1Nlc3Npb246OlNv
bG9BbWJpZW50U291bmQ6CisgICAgY2FzZSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6U29sb0FtYmll
bnRTb3VuZDoKICAgICAgICAgcmV0dXJuICJTb2xvQW1iaWVudFNvdW5kIl9zOwotICAgIGNhc2Ug
QXVkaW9TZXNzaW9uOjpNZWRpYVBsYXliYWNrOgorICAgIGNhc2UgQXVkaW9TZXNzaW9uQ2F0ZWdv
cnk6Ok1lZGlhUGxheWJhY2s6CiAgICAgICAgIHJldHVybiAiTWVkaWFQbGF5YmFjayJfczsKLSAg
ICBjYXNlIEF1ZGlvU2Vzc2lvbjo6UmVjb3JkQXVkaW86CisgICAgY2FzZSBBdWRpb1Nlc3Npb25D
YXRlZ29yeTo6UmVjb3JkQXVkaW86CiAgICAgICAgIHJldHVybiAiUmVjb3JkQXVkaW8iX3M7Ci0g
ICAgY2FzZSBBdWRpb1Nlc3Npb246OlBsYXlBbmRSZWNvcmQ6CisgICAgY2FzZSBBdWRpb1Nlc3Np
b25DYXRlZ29yeTo6UGxheUFuZFJlY29yZDoKICAgICAgICAgcmV0dXJuICJQbGF5QW5kUmVjb3Jk
Il9zOwotICAgIGNhc2UgQXVkaW9TZXNzaW9uOjpBdWRpb1Byb2Nlc3Npbmc6CisgICAgY2FzZSBB
dWRpb1Nlc3Npb25DYXRlZ29yeTo6QXVkaW9Qcm9jZXNzaW5nOgogICAgICAgICByZXR1cm4gIkF1
ZGlvUHJvY2Vzc2luZyJfczsKLSAgICBjYXNlIEF1ZGlvU2Vzc2lvbjo6Tm9uZToKKyAgICBjYXNl
IEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpOb25lOgogICAgICAgICByZXR1cm4gIk5vbmUiX3M7CiAg
ICAgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggZTAzMzQ2YzQ1ZWFjMDFlYWIzZDZkMDA2NmE4
NzQ5YzNlMDFmNzVlOS4uYWRjOWYxZjlkMWJhZmY2Mzk4ZGExOGM0ZTg3MGM3YjQzYjQ1YzA1OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmNwcApAQCAtNjMsMTAgKzYzLDEwIEBACiAKICNpZiBQTEFURk9STShDT0NPQSkK
ICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvTWVkaWFTZXNzaW9uTWFuYWdlcmlPUy5oPgogI2VuZGlmCiAKICNpbmNsdWRlIDxX
ZWJDb3JlL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg+Ci0jaW5jbHVkZSA8V2ViQ29y
ZS9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTg0LDkgKzg0LDE5IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBhZGRNZXNzYWdlUmVjZWl2ZXIoSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2Vp
dmVyTmFtZSwgSVBDOjpNZXNzYWdlUmVjZWl2ZXImIHJlY2VpdmVyKSBmaW5hbCB7IH0KICAgICB2
b2lkIHJlbW92ZU1lc3NhZ2VSZWNlaXZlcihJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVj
ZWl2ZXJOYW1lKSBmaW5hbCB7IH0KICAgICBJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24oKSBm
aW5hbCB7IHJldHVybiBtX3Byb2Nlc3MuY29ubmVjdGlvbigpOyB9Ci0gICAgUGxhdGZvcm1NZWRp
YVNlc3Npb25NYW5hZ2VyJiBzZXNzaW9uTWFuYWdlcigpIGZpbmFsIHsgcmV0dXJuIG1fcHJvY2Vz
cy5zZXNzaW9uTWFuYWdlcigpOyB9Ci0gICAgdm9pZCB3aWxsU3RhcnRDYW1lcmFDYXB0dXJlKCkg
ZmluYWwgeyBzZXNzaW9uTWFuYWdlcigpLnByZXBhcmVUb1NlbmRVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdCgpOyB9CisgICAgdm9pZCB3aWxsU3RhcnRDYW1lcmFDYXB0dXJlKCkgZmluYWwKKyAg
ICB7CisjaWYgUExBVEZPUk0oSU9TKQorICAgICAgICBpZiAoIW1fc2hvdWxkUHJlcGFyZVRvU2Vu
ZFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KQorICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICBtX3Nob3VsZFByZXBhcmVUb1NlbmRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCA9IGZhbHNl
OworICAgICAgICBNZWRpYVNlc3Npb25NYW5hZ2VyaU9TOjpwcm92aWRlUHJlc2VudGluZ0FwcGxp
Y2F0aW9uUElEKCk7CisjZW5kaWYKKyAgICB9CiAKKyNpZiBQTEFURk9STShJT1MpCisgICAgYm9v
bCBtX3Nob3VsZFByZXBhcmVUb1NlbmRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCB7IHRydWUg
fTsKKyNlbmRpZgogICAgIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIG1fcHJvY2VzczsKIH07
CiAjZW5kaWYKQEAgLTIwMyw2ICsyMTMsMjEgQEAgTGliV2ViUlRDQ29kZWNzUHJveHkmIEdQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmxpYldlYlJUQ0NvZGVjc1Byb3h5KCkKIH0KICNlbmRpZgog
CisjaWYgVVNFKEFVRElPX1NFU1NJT04pCit2b2lkIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OnRyeVRvU2V0QXVkaW9TZXNzaW9uQXNBY3RpdmUoYm9vbCBpc0FjdGl2ZSwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBjb21wbGV0aW9u
SGFuZGxlcihBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS50cnlUb1NldEFjdGl2ZShpc0Fj
dGl2ZSkpOworfQorCit2b2lkIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnVwZGF0ZUF1ZGlv
U2Vzc2lvblBhcmFtZXRlcnMoc2l6ZV90IGJ1ZmZlclNpemUsIE9wdGlvbmFsPFdlYkNvcmU6OkF1
ZGlvU2Vzc2lvbkNhdGVnb3J5PiBjYXRlZ29yeSwgT3B0aW9uYWw8V2ViQ29yZTo6Um91dGVTaGFy
aW5nUG9saWN5PiBwb2xpY3kpCit7CisgICAgaWYgKGJ1ZmZlclNpemUpCisgICAgICAgIEF1ZGlv
U2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldFByZWZlcnJlZEJ1ZmZlclNpemUoYnVmZmVyU2l6
ZSk7CisgICAgaWYgKGNhdGVnb3J5ICYmIHBvbGljeSkKKyAgICAgICAgQXVkaW9TZXNzaW9uOjpz
aGFyZWRTZXNzaW9uKCkuc2V0Q2F0ZWdvcnkoKmNhdGVnb3J5LCAqcG9saWN5KTsKK30KKyNlbmRp
ZgorCiB2b2lkIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNyZWF0ZVJlbmRlcmluZ0JhY2tl
bmQoUmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIgcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIp
CiB7CiAgICAgYXV0byBhZGRSZXN1bHQgPSBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eU1h
cC5lbnN1cmUocmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIsIFsmXSgpIHsKQEAgLTMyNSwxMyAr
MzUwLDYgQEAgY29uc3QgU3RyaW5nJiBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjptZWRpYUtl
eXNTdG9yYWdlRGlyZWN0b3J5KCkgY29uc3QKIH0KICNlbmRpZgogCi1QbGF0Zm9ybU1lZGlhU2Vz
c2lvbk1hbmFnZXImIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnNlc3Npb25NYW5hZ2VyKCkK
LXsKLSAgICBpZiAoIW1fc2Vzc2lvbk1hbmFnZXIpCi0gICAgICAgIG1fc2Vzc2lvbk1hbmFnZXIg
PSBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OmNyZWF0ZSgpOwotICAgIHJldHVybiAqbV9z
ZXNzaW9uTWFuYWdlcjsKLX0KLQogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiB2b2lkIEdQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnNldE9yaWVudGF0aW9uRm9yTWVkaWFDYXB0dXJlKHVpbnQ2
NF90IG9yaWVudGF0aW9uKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9H
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKaW5kZXggZTRjOTEyNTU5ZmY5NjA0NWUwMDRiMGUw
ZTlkMzJiZjMwYTQwYzQwOC4uY2QyMjI5NmVhYjRjOGI0MWE1ZDAxNTM4MDdiMTIxYTczMDA3NWMw
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5oCkBAIC04Myw4ICs4Myw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldE9yaWVu
dGF0aW9uRm9yTWVkaWFDYXB0dXJlKHVpbnQ2NF90IG9yaWVudGF0aW9uKTsKICNlbmRpZgogCi0g
ICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyJiBzZXNzaW9uTWFuYWdlcigp
OwotCiBwcml2YXRlOgogICAgIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoR1BVUHJvY2VzcyYs
IFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyLCBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIs
IFBBTDo6U2Vzc2lvbklEKTsKIApAQCAtMTAwLDYgKzk4LDExIEBAIHByaXZhdGU6CiAgICAgUmVt
b3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyJiBhdWRpb1RyYWNrUmVuZGVy
ZXJNYW5hZ2VyKCk7CiAgICAgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlciYg
c2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcigpOwogI2VuZGlmCisjZW5kaWYKKworI2lm
IFVTRShBVURJT19TRVNTSU9OKQorICAgIHZvaWQgdHJ5VG9TZXRBdWRpb1Nlc3Npb25Bc0FjdGl2
ZShib29sIGlzQWN0aXZlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyAgICB2
b2lkIHVwZGF0ZUF1ZGlvU2Vzc2lvblBhcmFtZXRlcnMoc2l6ZV90IGJ1ZmZlclNpemUsIE9wdGlv
bmFsPFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbkNhdGVnb3J5PiwgT3B0aW9uYWw8V2ViQ29yZTo6Um91
dGVTaGFyaW5nUG9saWN5Pik7CiAjZW5kaWYKICAgICB2b2lkIGNyZWF0ZVJlbmRlcmluZ0JhY2tl
bmQoUmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIpOwogICAgIHZvaWQgcmVsZWFzZVJlbmRlcmlu
Z0JhY2tlbmQoUmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4g
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNz
YWdlcy5pbgppbmRleCA4ZDkxY2UyYmNkYmRhZWNmYzI1NzEwM2NkYWNlNjk2NTRjYzQ4ZDM5Li5h
MjllNGFlMTMzZTg3M2FkZWM0MTZkYzBhZDYwMDczOGE0MzM3OTJiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5p
bgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5tZXNzYWdlcy5pbgpAQCAtMjMsNiArMjMsMTEgQEAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1Mp
CiAKIG1lc3NhZ2VzIC0+IEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgV2FudHNEaXNwYXRjaE1l
c3NhZ2UgeworI2lmIFVTRShBVURJT19TRVNTSU9OKQorICAgIHZvaWQgVHJ5VG9TZXRBdWRpb1Nl
c3Npb25Bc0FjdGl2ZShib29sIGlzQWN0aXZlKSAtPiAoYm9vbCByZXN1bHQpIFN5bmNocm9ub3Vz
CisgICAgdm9pZCBVcGRhdGVBdWRpb1Nlc3Npb25QYXJhbWV0ZXJzKHVpbnQ2NF90IGJ1ZmZlclNp
emUsIE9wdGlvbmFsPFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbkNhdGVnb3J5PiBjYXRlZ29yeSwgT3B0
aW9uYWw8V2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5PiBwb2xpY3kpCisjZW5kaWYKKwogICAg
IHZvaWQgQ3JlYXRlUmVuZGVyaW5nQmFja2VuZChXZWJLaXQ6OlJlbmRlcmluZ0JhY2tlbmRJZGVu
dGlmaWVyIHJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKQogICAgIHZvaWQgUmVsZWFzZVJlbmRl
cmluZ0JhY2tlbmQoV2ViS2l0OjpSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllciByZW5kZXJpbmdC
YWNrZW5kSWRlbnRpZmllcikKICNpZiBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eS5jcHAKaW5kZXggYmRhZmE1M2VhYmVkODZjY2EzMTliMmFiMzhiYzQxMWM4ZGRhMDVlMy4u
NWM1MzFhNjg4ZjM5ZmVlMGM2OWFmNTQxODI3NzlmNWRiMTY0OWExYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eS5jcHAKQEAgLTQ2LDMwICs0NiwyMiBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKIAogY2xhc3MgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U291cmNlUHJveHkKICAg
ICA6IHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNlOjpPYnNlcnZlcgotICAgICwgcHVibGljIFNo
YXJlZFJpbmdCdWZmZXJTdG9yYWdlOjpDbGllbnQKLSAgICAsIHB1YmxpYyBQbGF0Zm9ybU1lZGlh
U2Vzc2lvbjo6QXVkaW9DYXB0dXJlU291cmNlIHsKKyAgICAsIHB1YmxpYyBTaGFyZWRSaW5nQnVm
ZmVyU3RvcmFnZTo6Q2xpZW50IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1Ymxp
YzoKLSAgICBTb3VyY2VQcm94eShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCwgUGxh
dGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyJiBzZXNzaW9uTWFuYWdlciwgUmVmPElQQzo6Q29ubmVj
dGlvbj4mJiBjb25uZWN0aW9uLCBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJiBzb3VyY2UpCisg
ICAgU291cmNlUHJveHkoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQsIFJlZjxJUEM6
OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbiwgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYgc291
cmNlKQogICAgICAgICA6IG1faWQoaWQpCi0gICAgICAgICwgbV9zZXNzaW9uTWFuYWdlcihtYWtl
V2Vha1B0cihzZXNzaW9uTWFuYWdlcikpCiAgICAgICAgICwgbV9jb25uZWN0aW9uKFdURk1vdmUo
Y29ubmVjdGlvbikpCiAgICAgICAgICwgbV9zb3VyY2UoV1RGTW92ZShzb3VyY2UpKQogICAgICAg
ICAsIG1fcmluZ0J1ZmZlcihtYWtlVW5pcXVlUmVmPFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlPiht
YWtlVW5pcXVlUmVmPFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlPih0aGlzKSkpCiAgICAgewogICAg
ICAgICBtX3NvdXJjZS0+YWRkT2JzZXJ2ZXIoKnRoaXMpOwotCi0gICAgICAgIGlmIChtX3NvdXJj
ZS0+dHlwZSgpID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvKQotICAgICAgICAg
ICAgc2Vzc2lvbk1hbmFnZXIuYWRkQXVkaW9DYXB0dXJlU291cmNlKCp0aGlzKTsKICAgICB9CiAK
ICAgICB+U291cmNlUHJveHkoKQogICAgIHsKICAgICAgICAgc3RvcmFnZSgpLmludmFsaWRhdGUo
KTsKICAgICAgICAgbV9zb3VyY2UtPnJlbW92ZU9ic2VydmVyKCp0aGlzKTsKLQotICAgICAgICBp
ZiAobV9zb3VyY2UtPnR5cGUoKSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbyAm
JiBtX3Nlc3Npb25NYW5hZ2VyKQotICAgICAgICAgICAgbV9zZXNzaW9uTWFuYWdlci0+cmVtb3Zl
QXVkaW9DYXB0dXJlU291cmNlKCp0aGlzKTsKICAgICB9CiAKICAgICBSZWFsdGltZU1lZGlhU291
cmNlJiBzb3VyY2UoKSB7IHJldHVybiBtX3NvdXJjZTsgfQpAQCAtNzcsMTQgKzY5LDYgQEAgcHVi
bGljOgogICAgIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24oKSB7IHJldHVy
biBtX2Rlc2NyaXB0aW9uOyB9CiAgICAgaW50NjRfdCBudW1iZXJPZkZyYW1lcygpIHsgcmV0dXJu
IG1fbnVtYmVyT2ZGcmFtZXM7IH0KIAotICAgIGJvb2wgaXNDYXB0dXJpbmdBdWRpbygpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuICFtX2lzRW5kZWQgJiYgbV9zb3VyY2UtPmlzUHJvZHVjaW5nRGF0YSgp
OyB9Ci0KLSAgICB2b2lkIGF1ZGlvVW5pdFdpbGxTdGFydCgpIGZpbmFsCi0gICAgewotICAgICAg
ICBpZiAoIW1faXNFbmRlZCAmJiBtX3Nlc3Npb25NYW5hZ2VyKQotICAgICAgICAgICAgbV9zZXNz
aW9uTWFuYWdlci0+c2Vzc2lvbkNhblByb2R1Y2VBdWRpb0NoYW5nZWQoKTsKLSAgICB9Ci0KICAg
ICB2b2lkIHN0YXJ0KCkKICAgICB7CiAgICAgICAgIG1faXNFbmRlZCA9IGZhbHNlOwpAQCAtMjE0
LDcgKzE5OCw3IEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRlTWVk
aWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpCiAgICAgICAgIGF1dG8gc291cmNl
ID0gc291cmNlT3JFcnJvci5zb3VyY2UoKTsKICAgICAgICAgc2V0dGluZ3MgPSBzb3VyY2UtPnNl
dHRpbmdzKCk7CiAgICAgICAgIEFTU0VSVCghbV9wcm94aWVzLmNvbnRhaW5zKGlkKSk7Ci0gICAg
ICAgIG1fcHJveGllcy5hZGQoaWQsIG1ha2VVbmlxdWU8U291cmNlUHJveHk+KGlkLCBtX2Nvbm5l
Y3Rpb25Qcm94eS0+c2Vzc2lvbk1hbmFnZXIoKSwgbV9jb25uZWN0aW9uUHJveHktPmNvbm5lY3Rp
b24oKSwgV1RGTW92ZShzb3VyY2UpKSk7CisgICAgICAgIG1fcHJveGllcy5hZGQoaWQsIG1ha2VV
bmlxdWU8U291cmNlUHJveHk+KGlkLCBtX2Nvbm5lY3Rpb25Qcm94eS0+Y29ubmVjdGlvbigpLCBX
VEZNb3ZlKHNvdXJjZSkpKTsKICAgICB9IGVsc2UKICAgICAgICAgaW52YWxpZENvbnN0cmFpbnRz
ID0gV1RGTW92ZShzb3VyY2VPckVycm9yLmVycm9yTWVzc2FnZSk7CiAgICAgY29tcGxldGlvbkhh
bmRsZXIoc3VjY2VlZGVkLCBpbnZhbGlkQ29uc3RyYWludHMsIFdURk1vdmUoc2V0dGluZ3MpKTsK
QEAgLTI3MCw3ICsyNTQsNyBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNs
b25lKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGNsb25lZElELAogICAgIEFTU0VSVCht
X3Byb3hpZXMuY29udGFpbnMoY2xvbmVkSUQpKTsKICAgICBBU1NFUlQoIW1fcHJveGllcy5jb250
YWlucyhuZXdTb3VyY2VJRCkpOwogICAgIGlmIChhdXRvKiBwcm94eSA9IG1fcHJveGllcy5nZXQo
Y2xvbmVkSUQpKQotICAgICAgICBtX3Byb3hpZXMuYWRkKG5ld1NvdXJjZUlELCBtYWtlVW5pcXVl
PFNvdXJjZVByb3h5PihuZXdTb3VyY2VJRCwgbV9jb25uZWN0aW9uUHJveHktPnNlc3Npb25NYW5h
Z2VyKCksIG1fY29ubmVjdGlvblByb3h5LT5jb25uZWN0aW9uKCksIHByb3h5LT5zb3VyY2UoKS5j
bG9uZSgpKSk7CisgICAgICAgIG1fcHJveGllcy5hZGQobmV3U291cmNlSUQsIG1ha2VVbmlxdWU8
U291cmNlUHJveHk+KG5ld1NvdXJjZUlELCBtX2Nvbm5lY3Rpb25Qcm94eS0+Y29ubmVjdGlvbigp
LCBwcm94eS0+c291cmNlKCkuY2xvbmUoKSkpOwogfQogCiB2b2lkIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHk6OnJlcXVlc3RUb0VuZChSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBz
b3VyY2VJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaAppbmRleCAyN2JjNzcwYzBkOWM5MTY3YTQ5
YTdkMjkwZmFmZmQzOTkyODY0ODkyLi5hNzZhZjk2ZWE1ODRjYjIxMjk1MjdiMmYxMjlhYzI4Y2M2
YjJkN2U5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCkBAIC01Myw3ICs1Myw2IEBAIHB1Ymxp
YzoKICAgICAgICAgdmlydHVhbCB2b2lkIGFkZE1lc3NhZ2VSZWNlaXZlcihJUEM6OlN0cmluZ1Jl
ZmVyZW5jZSwgSVBDOjpNZXNzYWdlUmVjZWl2ZXImKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9p
ZCByZW1vdmVNZXNzYWdlUmVjZWl2ZXIoSVBDOjpTdHJpbmdSZWZlcmVuY2UpID0gMDsKICAgICAg
ICAgdmlydHVhbCBJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24oKSA9IDA7Ci0gICAgICAgIHZp
cnR1YWwgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyJiBzZXNzaW9uTWFuYWdl
cigpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIHdpbGxTdGFydENhbWVyYUNhcHR1cmUoKSB7
IH0KICAgICB9OwogICAgIGV4cGxpY2l0IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkoVW5p
cXVlUmVmPENvbm5lY3Rpb25Qcm94eT4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmNwcAppbmRleCA4YjcwZDY0N2VlODI2Y2FkZDJkMmJmZjdlZGYzODdmM2M4
YjA0ZmRmLi4wMzJmMGI5MDBhZDlmNDQyMjhmMjBlNzY4NjIwYzIxYjYzYzI2ODkwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTE2MCw3ICsxNjAs
NiBAQCBwcml2YXRlOgogICAgIHZvaWQgYWRkTWVzc2FnZVJlY2VpdmVyKElQQzo6U3RyaW5nUmVm
ZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6TWVzc2FnZVJlY2VpdmVyJiByZWNlaXZl
cikgZmluYWwgeyBtX3Byb2Nlc3MuYWRkTWVzc2FnZVJlY2VpdmVyKG1lc3NhZ2VSZWNlaXZlck5h
bWUsIHJlY2VpdmVyKTsgfQogICAgIHZvaWQgcmVtb3ZlTWVzc2FnZVJlY2VpdmVyKElQQzo6U3Ry
aW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUpIGZpbmFsIHsgbV9wcm9jZXNzLnJlbW92
ZU1lc3NhZ2VSZWNlaXZlcihtZXNzYWdlUmVjZWl2ZXJOYW1lKTsgfQogICAgIElQQzo6Q29ubmVj
dGlvbiYgY29ubmVjdGlvbigpIGZpbmFsIHsgcmV0dXJuICptX3Byb2Nlc3MuY29ubmVjdGlvbigp
OyB9Ci0gICAgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyJiBzZXNzaW9uTWFuYWdlcigpIGZp
bmFsIHsgcmV0dXJuIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigp
OyB9CiAKICAgICBXZWJQcm9jZXNzUHJveHkmIG1fcHJvY2VzczsKIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmNwcApp
bmRleCBjODY2YmEwMDk3ZjQzMzBiODdhYmYxMzZjMDVlZmExMjg3YjJhNjFkLi4wNDRmZWM3NzU5
ZTliNDBlMDU0ZmFkNjE3NDI5Y2I4YTlhZDJmMmNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5jcHAKQEAgLTMwLDYg
KzMwLDcgQEAKICNpbmNsdWRlICJSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuaCIKICNpbmNs
dWRlIDxXZWJDb3JlL0F1ZGlvRGVzdGluYXRpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlv
SU9DYWxsYmFjay5oPgorI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9TZXNzaW9uLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9DRE1GYWN0b3J5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVNlc3Npb25N
YW5hZ2VyQ29jb2EuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05vd1BsYXlpbmdJbmZvLmg+CkBAIC0z
OCw2ICszOSwzNSBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViTWVkaWFTdHJhdGVneTo6fldl
Yk1lZGlhU3RyYXRlZ3koKSA9IGRlZmF1bHQ7CiAKKyNpZiBVU0UoQVVESU9fU0VTU0lPTikKK2Jv
b2wgV2ViTWVkaWFTdHJhdGVneTo6dHJ5VG9TZXRBdWRpb1Nlc3Npb25Bc0FjdGl2ZShib29sIGlz
QWN0aXZlKQoreworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKyAgICBpZiAobV91c2VHUFVQcm9j
ZXNzKSB7CisgICAgICAgIGF1dG8mIGNvbm5lY3Rpb24gPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKTsKKyAgICAgICAgYm9v
bCByZXN1bHQ7CisgICAgICAgIGNvbm5lY3Rpb24uc2VuZFN5bmMoTWVzc2FnZXM6OkdQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M6OlRyeVRvU2V0QXVkaW9TZXNzaW9uQXNBY3RpdmUgeyBpc0FjdGl2
ZSB9LCBNZXNzYWdlczo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6VHJ5VG9TZXRBdWRpb1Nl
c3Npb25Bc0FjdGl2ZTo6UmVwbHkocmVzdWx0KSwgMCk7CisgICAgICAgIHJldHVybiByZXN1bHQ7
CisgICAgfQorI2VuZGlmCisgICAgcmV0dXJuIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigp
LnRyeVRvU2V0QWN0aXZlKGlzQWN0aXZlKTsKK30KKwordm9pZCBXZWJNZWRpYVN0cmF0ZWd5Ojp1
cGRhdGVBdWRpb1Nlc3Npb25QYXJhbWV0ZXJzKHNpemVfdCBidWZmZXJTaXplLCBPcHRpb25hbDxB
dWRpb1Nlc3Npb25DYXRlZ29yeT4gY2F0ZWdvcnksIE9wdGlvbmFsPFJvdXRlU2hhcmluZ1BvbGlj
eT4gcG9saWN5KQoreworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKyAgICBpZiAobV91c2VHUFVQ
cm9jZXNzKSB7CisgICAgICAgIGF1dG8mIGNvbm5lY3Rpb24gPSBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKTsKKyAgICAgICAg
Y29ubmVjdGlvbi5zZW5kKE1lc3NhZ2VzOjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpVcGRh
dGVBdWRpb1Nlc3Npb25QYXJhbWV0ZXJzIHsgYnVmZmVyU2l6ZSwgY2F0ZWdvcnksIHBvbGljeSB9
LCAwKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgorICAgIEF1ZGlvU2Vzc2lvbjo6
c2hhcmVkU2Vzc2lvbigpLnNldFByZWZlcnJlZEJ1ZmZlclNpemUoYnVmZmVyU2l6ZSk7CisgICAg
aWYgKGNhdGVnb3J5ICYmIHBvbGljeSkKKyAgICAgICAgQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNz
aW9uKCkuc2V0Q2F0ZWdvcnkoKmNhdGVnb3J5LCAqcG9saWN5KTsKK30KKyNlbmRpZgorCiAjaWYg
RU5BQkxFKFdFQl9BVURJTykKIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0
aW9uPiBXZWJNZWRpYVN0cmF0ZWd5OjpjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKFdlYkNvcmU6OkF1
ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2ssIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwKICAg
ICB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0
Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5oCmluZGV4IDZkZWZlM2IxNTQ5YzQ0
ZDQ1ZmE0MWU1OTUyNjNmNGI3ZTA3MWMyM2QuLjI2NDcyOTEzNGRlMTUzYzQ0M2I5OTI5YjQ2ZGMz
MzZmYTdjMDNmNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvV2ViTWVkaWFTdHJhdGVneS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvV2ViTWVkaWFTdHJhdGVneS5oCkBAIC0zOCw2ICszOCwxMCBAQCBwdWJsaWM6CiAjZW5k
aWYKIAogcHJpdmF0ZToKKyNpZiBVU0UoQVVESU9fU0VTU0lPTikKKyAgICBib29sIHRyeVRvU2V0
QXVkaW9TZXNzaW9uQXNBY3RpdmUoYm9vbCBpc0FjdGl2ZSkgZmluYWw7CisgICAgdm9pZCB1cGRh
dGVBdWRpb1Nlc3Npb25QYXJhbWV0ZXJzKHNpemVfdCBidWZmZXJTaXplLCBPcHRpb25hbDxXZWJD
b3JlOjpBdWRpb1Nlc3Npb25DYXRlZ29yeT4sIE9wdGlvbmFsPFdlYkNvcmU6OlJvdXRlU2hhcmlu
Z1BvbGljeT4pIGZpbmFsOworI2VuZGlmCiAjaWYgRU5BQkxFKFdFQl9BVURJTykKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8V2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlQXVkaW9EZXN0aW5h
dGlvbihXZWJDb3JlOjpBdWRpb0lPQ2FsbGJhY2smLAogICAgICAgICBjb25zdCBTdHJpbmcmIGlu
cHV0RGV2aWNlSWQsIHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVt
YmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSkgb3ZlcnJpZGU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL1dlYlBsdWdpbkNvbnRyb2xsZXIu
bW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL1dlYlBsdWdpbkNvbnRyb2xsZXIu
bW0KaW5kZXggM2YyNmRkNmM2NDcyMTY2YWIyZTNiZDNhZTUyMTEwYzAzMDA5M2IwZi4uMzcwZjkz
YmM4NDg5NDgyNWYyMWNlZWQzZjZhZGM4NmU2YjZlYzAwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJQbHVnaW5Db250cm9sbGVyLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2ViUGx1Z2luQ29udHJvbGxlci5tbQpAQCAtMTEx
LDcgKzExMSw3IEBAIHN0YXRpYyB2b2lkIGluaXRpYWxpemVBdWRpb1Nlc3Npb24oKQogICAgIGlm
ICghV2ViQ29yZTo6SU9TQXBwbGljYXRpb246OmlzTW9iaWxlU2FmYXJpKCkpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldENh
dGVnb3J5KFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6TWVkaWFQbGF5YmFjaywgV2ViQ29yZTo6Um91
dGVTaGFyaW5nUG9saWN5OjpEZWZhdWx0KTsKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OnNo
YXJlZFNlc3Npb24oKS5zZXRDYXRlZ29yeShXZWJDb3JlOjpBdWRpb1Nlc3Npb25DYXRlZ29yeTo6
TWVkaWFQbGF5YmFjaywgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5OjpEZWZhdWx0KTsKIH0K
ICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0KaW5kZXggNzMxOWU2OGQ1N2Rk
OGJlZTUzMzEzMzE0YzYyODBkZWVmN2MyOTJhOC4uOTY3MWRhMWExZWM3MDNjZjMxZDc5MjgzNjFj
MjFiM2YxYWZiNTgyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5tbQpAQCAtMjksNiAr
MjksNyBAQAogI2ltcG9ydCAiV2ViUGx1Z2luUGFja2FnZS5oIgogI2ltcG9ydCAiV2ViUmVzb3Vy
Y2VMb2FkU2NoZWR1bGVyLmgiCiAjaW1wb3J0IDxXZWJDb3JlL0F1ZGlvRGVzdGluYXRpb24uaD4K
KyNpbXBvcnQgPFdlYkNvcmUvQXVkaW9TZXNzaW9uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0Jsb2JS
ZWdpc3RyeUltcGwuaD4KICNpbXBvcnQgPFdlYkNvcmUvQ0RNRmFjdG9yeS5oPgogI2ltcG9ydCA8
V2ViQ29yZS9Db2xvci5oPgpAQCAtNjgsNiArNjksMjAgQEAgUGFzdGVib2FyZFN0cmF0ZWd5KiBX
ZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZVBhc3RlYm9hcmRTdHJhdGVneSgpCiAKIGNsYXNz
IFdlYk1lZGlhU3RyYXRlZ3kgZmluYWwgOiBwdWJsaWMgTWVkaWFTdHJhdGVneSB7CiBwcml2YXRl
OgorI2lmIFVTRShBVURJT19TRVNTSU9OKQorICAgIGJvb2wgdHJ5VG9TZXRBdWRpb1Nlc3Npb25B
c0FjdGl2ZShib29sIGlzQWN0aXZlKSBmaW5hbAorICAgIHsKKyAgICAgICAgcmV0dXJuIEF1ZGlv
U2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnRyeVRvU2V0QWN0aXZlKGlzQWN0aXZlKTsKKyAgICB9
CisKKyAgICB2b2lkIHVwZGF0ZUF1ZGlvU2Vzc2lvblBhcmFtZXRlcnMoc2l6ZV90IGJ1ZmZlclNp
emUsIE9wdGlvbmFsPFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbkNhdGVnb3J5PiBjYXRlZ29yeSwgT3B0
aW9uYWw8V2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5PiBwb2xpY3kpIGZpbmFsCisgICAgewor
ICAgICAgICBpZiAoYnVmZmVyU2l6ZSkKKyAgICAgICAgICAgIEF1ZGlvU2Vzc2lvbjo6c2hhcmVk
U2Vzc2lvbigpLnNldFByZWZlcnJlZEJ1ZmZlclNpemUoYnVmZmVyU2l6ZSk7CisgICAgICAgIGlm
IChjYXRlZ29yeSAmJiBwb2xpY3kpCisgICAgICAgICAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNl
c3Npb24oKS5zZXRDYXRlZ29yeSgqY2F0ZWdvcnksICpwb2xpY3kpOworICAgIH0KKyNlbmRpZgog
I2lmIEVOQUJMRShXRUJfQVVESU8pCiAgICAgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRp
b24+IGNyZWF0ZUF1ZGlvRGVzdGluYXRpb24oQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywgY29u
c3QgU3RyaW5nJiBpbnB1dERldmljZUlkLAogICAgICAgICB1bnNpZ25lZCBudW1iZXJPZklucHV0
Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJh
dGUpIG92ZXJyaWRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYlByZWZlcmVuY2VzLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQ
cmVmZXJlbmNlcy5tbQppbmRleCBlMjBlZTc0NDVjYTliMzUyZmE2N2Q4NWYzNDFmMjIxMmEwZDYy
MGU1Li40NzZjOGYwYjgxZjgzNzdmODUzNWZhNDRlYjhlYzg2NzNkNWFmZDgwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KQEAgLTU0
NCw3ICs1NDQsNyBAQCBwdWJsaWM6CiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDph
bGxvd3NJbmxpbmVNZWRpYVBsYXliYWNrQWZ0ZXJGdWxsc2NyZWVuXSwgV2ViS2l0QWxsb3dzSW5s
aW5lTWVkaWFQbGF5YmFja0FmdGVyRnVsbHNjcmVlblByZWZlcmVuY2VLZXksCiAgICAgICAgIFtO
U051bWJlciBudW1iZXJXaXRoQm9vbDpyZXF1aXJlc1BsYXlzSW5saW5lQXR0cmlidXRlXSwgV2Vi
S2l0SW5saW5lTWVkaWFQbGF5YmFja1JlcXVpcmVzUGxheXNJbmxpbmVBdHRyaWJ1dGVLZXksCiAg
ICAgICAgIEBOTywgV2ViS2l0TWVkaWFDb250cm9sc1NjYWxlV2l0aFBhZ2Vab29tUHJlZmVyZW5j
ZUtleSwKLSAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhVbnNpZ25lZEludDpBdWRpb1Nlc3Np
b246Ok5vbmVdLCBXZWJLaXRBdWRpb1Nlc3Npb25DYXRlZ29yeU92ZXJyaWRlLAorICAgICAgICBb
TlNOdW1iZXIgbnVtYmVyV2l0aFVuc2lnbmVkSW50OnN0YXRpY19jYXN0PHVuc2lnbmVkPihBdWRp
b1Nlc3Npb25DYXRlZ29yeTo6Tm9uZSldLCBXZWJLaXRBdWRpb1Nlc3Npb25DYXRlZ29yeU92ZXJy
aWRlLAogICAgICAgICBATk8sIFdlYktpdE1lZGlhRGF0YUxvYWRzQXV0b21hdGljYWxseVByZWZl
cmVuY2VLZXksCiAjaWYgSEFWRShBVktJVCkKICAgICAgICAgQFlFUywgV2ViS2l0QVZLaXRFbmFi
bGVkLApAQCAtMjQyMiwzNyArMjQyMiwzOCBAQCBzdGF0aWMgTlNTdHJpbmcgKmNsYXNzSUJDcmVh
dG9ySUQgPSBuaWw7CiAgICAgcmV0dXJuIFtzZWxmIF91bnNpZ25lZEludFZhbHVlRm9yS2V5Oldl
YktpdEF1ZGlvU2Vzc2lvbkNhdGVnb3J5T3ZlcnJpZGVdOwogfQogCi0tICh2b2lkKXNldEF1ZGlv
U2Vzc2lvbkNhdGVnb3J5T3ZlcnJpZGU6KHVuc2lnbmVkKW92ZXJyaWRlCistICh2b2lkKXNldEF1
ZGlvU2Vzc2lvbkNhdGVnb3J5T3ZlcnJpZGU6KHVuc2lnbmVkKW92ZXJyaWRlVmFsdWUKIHsKLSAg
ICBpZiAob3ZlcnJpZGUgPiBBdWRpb1Nlc3Npb246OkF1ZGlvUHJvY2Vzc2luZykgeworICAgIGF1
dG8gb3ZlcnJpZGUgPSBzdGF0aWNfY2FzdDxBdWRpb1Nlc3Npb25DYXRlZ29yeT4ob3ZlcnJpZGVW
YWx1ZSk7CisgICAgaWYgKG92ZXJyaWRlVmFsdWUgPiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oQXVk
aW9TZXNzaW9uQ2F0ZWdvcnk6OkF1ZGlvUHJvY2Vzc2luZykpIHsKICAgICAgICAgLy8gQ2xpZW50
cyBhcmUgcGFzc2luZyB1cyBPU1R5cGVzIHZhbHVlcyBmcm9tIEF1ZGlvVG9vbGJveC9BdWRpb1Nl
c3Npb24uaCwKLSAgICAgICAgLy8gd2hpY2ggbmVlZCB0byBiZSB0cmFuc2xhdGVkIGludG8gQXVk
aW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6Ci0gICAgICAgIHN3aXRjaCAob3ZlcnJpZGUpIHsKKyAg
ICAgICAgLy8gd2hpY2ggbmVlZCB0byBiZSB0cmFuc2xhdGVkIGludG8gQXVkaW9TZXNzaW9uQ2F0
ZWdvcnk6CisgICAgICAgIHN3aXRjaCAob3ZlcnJpZGVWYWx1ZSkgewogICAgICAgICBjYXNlIFdl
YktpdEF1ZGlvU2Vzc2lvbkNhdGVnb3J5QW1iaWVudFNvdW5kOgotICAgICAgICAgICAgb3ZlcnJp
ZGUgPSBBdWRpb1Nlc3Npb246OkFtYmllbnRTb3VuZDsKKyAgICAgICAgICAgIG92ZXJyaWRlID0g
QXVkaW9TZXNzaW9uQ2F0ZWdvcnk6OkFtYmllbnRTb3VuZDsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICBjYXNlIFdlYktpdEF1ZGlvU2Vzc2lvbkNhdGVnb3J5U29sb0FtYmllbnRTb3VuZDoK
LSAgICAgICAgICAgIG92ZXJyaWRlID0gQXVkaW9TZXNzaW9uOjpTb2xvQW1iaWVudFNvdW5kOwor
ICAgICAgICAgICAgb3ZlcnJpZGUgPSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6U29sb0FtYmllbnRT
b3VuZDsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFdlYktpdEF1ZGlvU2Vzc2lv
bkNhdGVnb3J5TWVkaWFQbGF5YmFjazoKLSAgICAgICAgICAgIG92ZXJyaWRlID0gQXVkaW9TZXNz
aW9uOjpNZWRpYVBsYXliYWNrOworICAgICAgICAgICAgb3ZlcnJpZGUgPSBBdWRpb1Nlc3Npb25D
YXRlZ29yeTo6TWVkaWFQbGF5YmFjazsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNl
IFdlYktpdEF1ZGlvU2Vzc2lvbkNhdGVnb3J5UmVjb3JkQXVkaW86Ci0gICAgICAgICAgICBvdmVy
cmlkZSA9IEF1ZGlvU2Vzc2lvbjo6UmVjb3JkQXVkaW87CisgICAgICAgICAgICBvdmVycmlkZSA9
IEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpSZWNvcmRBdWRpbzsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICBjYXNlIFdlYktpdEF1ZGlvU2Vzc2lvbkNhdGVnb3J5UGxheUFuZFJlY29yZDoKLSAg
ICAgICAgICAgIG92ZXJyaWRlID0gQXVkaW9TZXNzaW9uOjpQbGF5QW5kUmVjb3JkOworICAgICAg
ICAgICAgb3ZlcnJpZGUgPSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6UGxheUFuZFJlY29yZDsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFdlYktpdEF1ZGlvU2Vzc2lvbkNhdGVnb3J5
QXVkaW9Qcm9jZXNzaW5nOgotICAgICAgICAgICAgb3ZlcnJpZGUgPSBBdWRpb1Nlc3Npb246OkF1
ZGlvUHJvY2Vzc2luZzsKKyAgICAgICAgICAgIG92ZXJyaWRlID0gQXVkaW9TZXNzaW9uQ2F0ZWdv
cnk6OkF1ZGlvUHJvY2Vzc2luZzsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0
OgotICAgICAgICAgICAgb3ZlcnJpZGUgPSBBdWRpb1Nlc3Npb246Ok5vbmU7CisgICAgICAgICAg
ICBvdmVycmlkZSA9IEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpOb25lOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBbc2VsZiBfc2V0VW5zaWduZWRJbnRWYWx1ZTpv
dmVycmlkZSBmb3JLZXk6V2ViS2l0QXVkaW9TZXNzaW9uQ2F0ZWdvcnlPdmVycmlkZV07CisgICAg
W3NlbGYgX3NldFVuc2lnbmVkSW50VmFsdWU6c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG92ZXJyaWRl
KSBmb3JLZXk6V2ViS2l0QXVkaW9TZXNzaW9uQ2F0ZWdvcnlPdmVycmlkZV07CiB9CiAKIC0gKEJP
T0wpYXZLaXRFbmFibGVkCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392435</attachid>
            <date>2020-03-04 10:04:55 -0800</date>
            <delta_ts>2020-03-04 10:12:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208578-20200304190453.patch</filename>
            <type>text/plain</type>
            <size>62853</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3ODM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzNhODhkNjVmYjEzYTYx
Y2RmNjNmNjY2OTU0MjU1MDgzN2YzOWFiOS4uOTc0NGI3NmNhMDVhNjVmMGIxNzlmZGJmYmRhM2Ux
Y2YyZTM4YmQwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDIwLTAzLTA0ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBFeHBvcnQgQXVkaW9TZXNz
aW9uIGNvbW1hbmRzIHRvIEdQVVByb2Nlc3Mgd2hlbiBtZWRpYSBwbGF5aW5nIGlzIGVuYWJsZWQg
aW4gR1BVUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjA4NTc4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkIHR3byBjb21tYW5kcyB0byBtZWRpYSBzdHJhdGVnaWVzIHRvIHNldCB0aGUgQXVk
aW9TZXNzaW9uIHBhcmFtZXRlcnMgYW5kIGFjdGl2YXRlL2RlYWN0aXZhdGUgdGhlIEF1ZGlvU2Vz
c2lvbi4KKyAgICAgICAgVXBkYXRlIGNvZGUgdG8gbWFrZSBBdWRpb1Nlc3Npb246OkNhdGVnb3J5
VHlwZSBhbmQgZW51bSBjbGFzcywgcmVuYW1lZCBBdWRpb1Nlc3Npb25DYXRlZ29yeS4KKyAgICAg
ICAgQWN0dWFsIGltcGxlbWVudGF0aW9uIG9mIHRoZSBjb21tYW5kcyBpcyBsZWZ0IGluIE1lZGlh
U2Vzc2lvbk1hbmFnZXJDb2NvYSBhcyBzdGF0aWMgbWV0aG9kcyB0aGF0IGNhbiBiZSB1c2VkIGlu
IHByb2Nlc3Mgb3Igb3V0IG9mIHByb2Nlc3MuCisKKyAgICAgICAgTWFudWFsbHkgdGVzdGVkIGFu
ZCBjb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBhZ2UvRGVwcmVjYXRlZEdsb2JhbFNldHRp
bmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlcHJlY2F0ZWRHbG9iYWxTZXR0aW5nczo6c2V0
QXVkaW9TZXNzaW9uQ2F0ZWdvcnlPdmVycmlkZSk6CisgICAgICAgIChXZWJDb3JlOjpEZXByZWNh
dGVkR2xvYmFsU2V0dGluZ3M6OmF1ZGlvU2Vzc2lvbkNhdGVnb3J5T3ZlcnJpZGUpOgorICAgICAg
ICAqIHBsYXRmb3JtL01lZGlhU3RyYXRlZ3kuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9B
dWRpb1Nlc3Npb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpjYXRlZ29y
eU92ZXJyaWRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6c2V0Q2F0
ZWdvcnlPdmVycmlkZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Nlc3Npb246OmNhdGVnb3J5
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzZXNzaW9uV2lsbEJlZ2luUGxheWJh
Y2spOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpwcm9j
ZXNzRGlkUmVzdW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uTWFu
YWdlcjo6bWF5YmVEZWFjdGl2YXRlQXVkaW9TZXNzaW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9h
dWRpby9jb2NvYS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EubW06CisgICAgICAgIChNZWRpYVNl
c3Npb25NYW5hZ2VyQ29jb2E6OnVwZGF0ZVNlc3Npb25TdGF0ZSk6CisgICAgICAgICogcGxhdGZv
cm0vYXVkaW8vaW9zL0F1ZGlvU2Vzc2lvbklPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OmNhdGVn
b3J5TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Nlc3Npb25Qcml2YXRlOjpBdWRpb1Nl
c3Npb25Qcml2YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdv
cnkpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpjYXRlZ29yeSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5T3ZlcnJpZGUpOgorICAg
ICAgICAoV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpjYXRlZ29yeU92ZXJyaWRlIGNvbnN0KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlcmlPUzo6cHJvdmlkZVByZXNlbnRpbmdB
cHBsaWNhdGlvblBJRElmTmVjZXNzYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lv
bk1hbmFnZXJpT1M6OnByb3ZpZGVQcmVzZW50aW5nQXBwbGljYXRpb25QSUQpOgorICAgICAgICAq
IHBsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb1Nlc3Npb25NYWMuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QXVkaW9TZXNzaW9uOjpjYXRlZ29yeSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRp
b1Nlc3Npb246OnNldENhdGVnb3J5KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6
Y2F0ZWdvcnlPdmVycmlkZSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL0Jhc2VBdWRpb1NoYXJlZFVuaXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmFzZUF1ZGlv
U2hhcmVkVW5pdDo6c3RhcnRVbml0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFs
dGltZUF1ZGlvU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZUF1ZGlv
U291cmNlOjpzdGFydFByb2R1Y2luZ0RhdGEpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxz
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6YXVkaW9TZXNzaW9uQ2F0ZWdvcnkg
Y29uc3QpOgorCiAyMDIwLTAzLTAzICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4K
IAogICAgICAgICBXZWIgSW5zcGVjdG9yOiByZS1hZGQgYEluc3BlY3RvckZyb250ZW5kSG9zdGAg
c3VwcG9ydCBmb3IgbW92aW5nIHRoZSBpbnNwZWN0ZWQgd2luZG93CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDdmNDk3
N2YzNzI3MDZkMzMwYWFlZjFjMzkzMzUwMGFjNDA2NDI5MjUuLmM3MTE3ZGRlOWQ2ZDFlNWE4Mjg0
MWY3Y2Q4YTc5YjNlMzBkYmZiM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMjAtMDMt
MDQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEV4cG9ydCBB
dWRpb1Nlc3Npb24gY29tbWFuZHMgdG8gR1BVUHJvY2VzcyB3aGVuIG1lZGlhIHBsYXlpbmcgaXMg
ZW5hYmxlZCBpbiBHUFVQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDg1NzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBTZW5kIElQQyBjb21tYW5kcyByZWxhdGVkIHRvIEF1ZGlvU2Vzc2lvbiBm
cm9tIFdlYlByb2Nlc3MgdG8gR1BVUHJvY2VzcyBhbmQgZG8gdGhlIGFjdHVhbCB3b3JrIGluIEdQ
VVByb2Nlc3MuCisgICAgICAgIFdlIGtlZXAgYSBzeW5jIElQQyBmb3Igbm93IHdoZW4gYWN0aXZh
dGluZyB0aGUgQXVkaW9TZXNzaW9uIGFuZCB3aWxsIHRyeSB0byByZW1vdmUgaXQgaW4gYSBmb2xs
b3ctdXAKKyAgICAgICAgVG8gbWFrZSB0aGlzIHdvcmssIHdlIHJlbW92ZSB0aGUgdXNlciBvZiBN
ZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EgaW4gR1BVUHJvY2Vzcywgd2hpY2ggd2FzIHVzZWQgZm9y
IGNhcHR1cmUuCisgICAgICAgIFdlIHJlcGxhY2UgaXQgYnkgZWl0aGVyIGRlZGljYXRlZCBjYWxs
cyBvciBieSB0aGUgY29tbWFuZHMgdGhhdCBhcmUgbm93IGNvbWluZyBmcm9tIFdlYlByb2Nlc3Mu
CisKKyAgICAgICAgKiBHUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjp0cnlUb1NldEF1ZGlv
U2Vzc2lvbkFzQWN0aXZlKToKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6dXBkYXRlQXVkaW9TZXNzaW9uUGFyYW1ldGVycyk6CisgICAgICAgICogR1BVUHJvY2Vz
cy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9D
b2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U291cmNlUHJveHk6OlNvdXJjZVByb3h5KToK
KyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U291cmNlUHJv
eHk6On5Tb3VyY2VQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHk6OmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50
cyk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNsb25l
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAq
IFdlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJNZWRpYVN0cmF0ZWd5Ojp0cnlUb1NldEF1ZGlvU2Vzc2lvbkFzQWN0aXZlKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViTWVkaWFTdHJhdGVneTo6dXBkYXRlQXVkaW9TZXNzaW9uUGFyYW1l
dGVycyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5o
OgorCiAyMDIwLTAzLTAzICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAg
ICAgICBXZWIgSW5zcGVjdG9yOiByZS1hZGQgYEluc3BlY3RvckZyb250ZW5kSG9zdGAgc3VwcG9y
dCBmb3IgbW92aW5nIHRoZSBpbnNwZWN0ZWQgd2luZG93CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VM
b2cKaW5kZXggMTY3ZmZjN2JiNTBiOWJhM2QyNTViZjA5NzY4YjM0YTk2ZDg3OTQzMS4uOWRhMjEw
M2NlZmNkMzBhOGQwMjZmMGZiYzMwYTY4ZjdmNTM0ZjUwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIwLTAzLTA0ICBZb3Vlbm4gRmFibGV0ICA8eW91
ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBFeHBvcnQgQXVkaW9TZXNzaW9uIGNvbW1hbmRzIHRv
IEdQVVByb2Nlc3Mgd2hlbiBtZWRpYSBwbGF5aW5nIGlzIGVuYWJsZWQgaW4gR1BVUHJvY2Vzcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4NTc4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIGluLXBy
b2Nlc3MgaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgKiBQbHVnaW5zL1dlYlBsdWdpbkNvbnRy
b2xsZXIubW06CisgICAgICAgIChpbml0aWFsaXplQXVkaW9TZXNzaW9uKToKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW06CisgICAgICAgICogV2ViVmll
dy9XZWJQcmVmZXJlbmNlcy5tbToKKyAgICAgICAgKCtbV2ViUHJlZmVyZW5jZXMgaW5pdGlhbGl6
ZV0pOgorICAgICAgICAoLVtXZWJQcmVmZXJlbmNlcyBzZXRBdWRpb1Nlc3Npb25DYXRlZ29yeU92
ZXJyaWRlOl0pOgorCiAyMDIwLTAzLTAzICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNv
bT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiByZS1hZGQgYEluc3BlY3RvckZyb250ZW5kSG9z
dGAgc3VwcG9ydCBmb3IgbW92aW5nIHRoZSBpbnNwZWN0ZWQgd2luZG93CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFr
ZQppbmRleCBkYmFhMWQ3YzA2NGE4Y2Q2ZTkzYTQzYmU1YWUyNjIwZTVkMjk2ODI2Li4xZmE2NjJm
NTVmY2I3MzNmYTNmNTY4NjFmZDdkY2M0ZmM5NDI4NWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAg
LTEwMjksMTEgKzEwMjksMTMgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVS
UwogICAgIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvSGFyZHdhcmVMaXN0ZW5lci5oCiAgICAgcGxhdGZv
cm0vYXVkaW8vQXVkaW9JT0NhbGxiYWNrLmgKICAgICBwbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Np
b24uaAorICAgIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbkNhdGVnb3J5LmgKICAgICBwbGF0
Zm9ybS9hdWRpby9BdWRpb1NvdXJjZVByb3ZpZGVyLmgKICAgICBwbGF0Zm9ybS9hdWRpby9BdWRp
b1N0cmVhbURlc2NyaXB0aW9uLmgKICAgICBwbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybUF1ZGlvRGF0
YS5oCiAgICAgcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb24uaAogICAgIHBsYXRm
b3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oCisgICAgcGxhdGZvcm0vYXVk
aW8vUm91dGVTaGFyaW5nUG9saWN5LmgKIAogICAgIHBsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NE
TUVuY3J5cHRpb25TY2hlbWUuaAogICAgIHBsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NETUZhY3Rv
cnkuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IGRmMDIzZWJkNGVkZGJmNjkzNDA1NzIzNjk3YWRlOWJmNTM5Njg1ODkuLjE0NWM0
MWFkZGQ2MjJjMDY3OGFlY2QzN2VkZTQyMzU5MjQwNmE2MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEwOTEsNiArMTA5MSw4
IEBACiAJCTQxNzYxMkIxMUUzQTk5NDAwMEMzRDgxRCAvKiBMaWJXZWJSVENQZWVyQ29ubmVjdGlv
bkJhY2tlbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDE3NjEyQUQxRTNBOTkzQjAwQzNEODFEIC8qIExpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFj
a2VuZC5jcHAgKi87IH07CiAJCTQxNzYxMkIyMUUzQTk5NDAwMEMzRDgxRCAvKiBMaWJXZWJSVENQ
ZWVyQ29ubmVjdGlvbkJhY2tlbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQxNzYxMkFFMUUzQTk5M0IwMEMzRDgxRCAvKiBMaWJXZWJSVENQZWVyQ29u
bmVjdGlvbkJhY2tlbmQuaCAqLzsgfTsKIAkJNDE3NkU4OTYyM0MzNTM3QjAwM0U4M0ZFIC8qIE1l
ZGlhUmVjb3JkZXJQcm92aWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDE3NkU4OEYyM0MzNDhEMjAwM0U4M0ZFIC8qIE1lZGlhUmVjb3JkZXJQcm92
aWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJ
CTQxNzhFRUZDMjQxMDAxRkQwMDE5M0M3NCAvKiBBdWRpb1Nlc3Npb25DYXRlZ29yeS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE3OEVFRjgyNDBGRUE4
RDAwMTkzQzc0IC8qIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDE3OEVFRkUyNDEwMDIwOTAwMTkzQzc0IC8q
IFJvdXRlU2hhcmluZ1BvbGljeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDE3OEVFRkEyNDBGRUVFODAwMTkzQzc0IC8qIFJvdXRlU2hhcmluZ1BvbGlj
eS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQx
N0RBNkQ5MTM3MzRFNkUwMDdDNTdGQiAvKiBJbnRlcm5hbHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE3REE0Q0YxMzczNDMyNjAwN0M1N0ZCIC8q
IEludGVybmFscy5jcHAgKi87IH07CiAJCTQxN0RBNkRBMTM3MzRFNkUwMDdDNTdGQiAvKiBJbnRl
cm5hbHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQx
N0RBNENFMTM3MzQzMjYwMDdDNTdGQiAvKiBJbnRlcm5hbHMuaCAqLzsgfTsKIAkJNDE3REE3MUQx
MzczNURGQTAwN0M1N0ZCIC8qIEpTSW50ZXJuYWxzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxN0RBNzFCMTM3MzVERkEwMDdDNTdGQiAvKiBKU0lu
dGVybmFscy5jcHAgKi87IH07CkBAIC03MzgxLDYgKzczODMsOCBAQAogCQk0MTc3MDQwQjIzRjcw
Q0FCMDAwQzU0RUUgLyogTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0MTc3RjUxQzIzODI1NDQwMDBDMDQ0ODYgLyogQmFzZUF1ZGlv
U2hhcmVkVW5pdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCYXNl
QXVkaW9TaGFyZWRVbml0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE3N0Y1
MUUyMzgyNTQ1RTAwQzA0NDg2IC8qIEJhc2VBdWRpb1NoYXJlZFVuaXQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQmFzZUF1ZGlvU2hhcmVkVW5pdC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk0MTc4RUVGODI0MEZFQThEMDAxOTNDNzQgLyogQXVkaW9TZXNzaW9u
Q2F0ZWdvcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9TZXNzaW9u
Q2F0ZWdvcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE3OEVFRkEyNDBGRUVF
ODAwMTkzQzc0IC8qIFJvdXRlU2hhcmluZ1BvbGljeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBSb3V0ZVNoYXJpbmdQb2xpY3kuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDE3REE0Q0UxMzczNDMyNjAwN0M1N0ZCIC8qIEludGVybmFscy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBJbnRlcm5hbHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDE3REE0Q0YxMzczNDMyNjAwN0M1N0ZCIC8qIEludGVybmFscy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnRlcm5hbHMuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0MTdEQTZEMDEzNzM0RTAyMDA3QzU3RkIgLyogbGliV2ViQ29y
ZVRlc3RTdXBwb3J0LmR5bGliICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0
RmlsZVR5cGUgPSAiY29tcGlsZWQubWFjaC1vLmR5bGliIjsgaW5jbHVkZUluSW5kZXggPSAwOyBw
YXRoID0gbGliV2ViQ29yZVRlc3RTdXBwb3J0LmR5bGliOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJP
RFVDVFNfRElSOyB9OwpAQCAtMjg3MzUsNiArMjg3MzksNyBAQAogCQkJCUZEMzE2MDUyMTJCMDI2
RjcwMEMxQTM1OSAvKiBBdWRpb1Jlc2FtcGxlcktlcm5lbC5oICovLAogCQkJCUNEQTc5ODIzMTcw
QTI1ODMwMEQ0NUM1NSAvKiBBdWRpb1Nlc3Npb24uY3BwICovLAogCQkJCUNEQTc5ODIxMTcwQTIy
REMwMEQ0NUM1NSAvKiBBdWRpb1Nlc3Npb24uaCAqLywKKwkJCQk0MTc4RUVGODI0MEZFQThEMDAx
OTNDNzQgLyogQXVkaW9TZXNzaW9uQ2F0ZWdvcnkuaCAqLywKIAkJCQlGRDMxNjA1MzEyQjAyNkY3
MDBDMUEzNTkgLyogQXVkaW9Tb3VyY2VQcm92aWRlci5oICovLAogCQkJCUZENjJGNTJEMTQ1ODk4
RDgwMDk0QjBFRCAvKiBBdWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50LmggKi8sCiAJCQkJMDczQjg3
NTYxRTQwRENFNTAwNzFDMEVDIC8qIEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaCAqLywKQEAgLTI4
NzkwLDYgKzI4Nzk1LDcgQEAKIAkJCQlGRDMxNjA3NTEyQjAyNkY3MDBDMUEzNTkgLyogUmV2ZXJi
Q29udm9sdmVyU3RhZ2UuaCAqLywKIAkJCQlGRDMxNjA3NjEyQjAyNkY3MDBDMUEzNTkgLyogUmV2
ZXJiSW5wdXRCdWZmZXIuY3BwICovLAogCQkJCUZEMzE2MDc3MTJCMDI2RjcwMEMxQTM1OSAvKiBS
ZXZlcmJJbnB1dEJ1ZmZlci5oICovLAorCQkJCTQxNzhFRUZBMjQwRkVFRTgwMDE5M0M3NCAvKiBS
b3V0ZVNoYXJpbmdQb2xpY3kuaCAqLywKIAkJCQlGRDAwRDdBMjE0QTNGNjE5MDA3MzQwMTEgLyog
U2luY1Jlc2FtcGxlci5jcHAgKi8sCiAJCQkJRkQwMEQ3QTMxNEEzRjYxOTAwNzM0MDExIC8qIFNp
bmNSZXNhbXBsZXIuaCAqLywKIAkJCQlGRDE3NjJERDE3NjY4NkQ5MDBEODM2QTggLyogVXBTYW1w
bGVyLmNwcCAqLywKQEAgLTI5MTE1LDYgKzI5MTIxLDcgQEAKIAkJCQkwNzNCODc2OTFFNDM4NUFD
MDA3MUMwRUMgLyogQXVkaW9TYW1wbGVEYXRhU291cmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlG
RDhDNDZFQzE1NDYwOEU3MDBBNTkxMEMgLyogQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlLmggaW4g
SGVhZGVycyAqLywKIAkJCQlDREE3OTgyQTE3MEEzRDAwMDBENDVDNTUgLyogQXVkaW9TZXNzaW9u
LmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTc4RUVGQzI0MTAwMUZEMDAxOTNDNzQgLyogQXVkaW9T
ZXNzaW9uQ2F0ZWdvcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2MDg5MTJCMDI2RjcwMEMx
QTM1OSAvKiBBdWRpb1NvdXJjZVByb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDhBN0JC
QzE5NzczNUZFMDBDQkQ2NDMgLyogQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUZENjJGNTJFMTQ1ODk4RDgwMDk0QjBFRCAvKiBBdWRpb1NvdXJjZVByb3Zp
ZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTMyMTY2LDYgKzMyMTczLDcgQEAKIAkJCQlB
OENGRjVFMTBBMTU1QTA1MDAwQTQyMzQgLyogUm9vdElubGluZUJveC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNDlFOTExQzkwRUY4NkQ0NzAwOUQwQ0FGIC8qIFJvdGF0ZVRyYW5zZm9ybU9wZXJhdGlv
bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTczRjk1RkYxMkM5N0JGRTAwMzFBQUY5IC8qIFJvdW5k
ZWRSZWN0LmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTc4RUVGRTI0MTAwMjA5MDAxOTNDNzQgLyog
Um91dGVTaGFyaW5nUG9saWN5LmggaW4gSGVhZGVycyAqLywKIAkJCQk1N0UyMzM2MzFEQzdEQTI0
MDBGMjhEMDEgLyogUnNhT3RoZXJQcmltZXNJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQkwN0FC
OTk2OTE4REEzQzAxMDAxODc3MUUgLyogUlRDQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNDE4MjA1NDcxRTUzRTk4QzAwRDYyMjA3IC8qIFJUQ0NvbnRyb2xsZXIuaCBpbiBIZWFk
ZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EZXByZWNhdGVkR2xvYmFs
U2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EZXByZWNhdGVkR2xvYmFsU2V0dGlu
Z3MuY3BwCmluZGV4IGNmNGNjYzgwZTkzOTM2ZDU2OGNkNTUwZTAyOGI2ODE1MmViOTRkMmQuLjY4
NzllMmQwMjA5MjZlNGQwZWQ3MTcxMzYwZmExYzc0NDM3MGE0MWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RlcHJlY2F0ZWRHbG9iYWxTZXR0aW5ncy5jcHAKQEAgLTE2MiwxMiArMTYy
LDEyIEBAIHZvaWQgRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzOjpzZXRSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRW5hYmxlZChib29sIGZsYWcpCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKIHZvaWQg
RGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzOjpzZXRBdWRpb1Nlc3Npb25DYXRlZ29yeU92ZXJyaWRl
KHVuc2lnbmVkIHNlc3Npb25DYXRlZ29yeSkKIHsKLSAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNl
c3Npb24oKS5zZXRDYXRlZ29yeU92ZXJyaWRlKHN0YXRpY19jYXN0PEF1ZGlvU2Vzc2lvbjo6Q2F0
ZWdvcnlUeXBlPihzZXNzaW9uQ2F0ZWdvcnkpKTsKKyAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNl
c3Npb24oKS5zZXRDYXRlZ29yeU92ZXJyaWRlKHN0YXRpY19jYXN0PEF1ZGlvU2Vzc2lvbkNhdGVn
b3J5PihzZXNzaW9uQ2F0ZWdvcnkpKTsKIH0KIAogdW5zaWduZWQgRGVwcmVjYXRlZEdsb2JhbFNl
dHRpbmdzOjphdWRpb1Nlc3Npb25DYXRlZ29yeU92ZXJyaWRlKCkKIHsKLSAgICByZXR1cm4gQXVk
aW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuY2F0ZWdvcnlPdmVycmlkZSgpOworICAgIHJldHVy
biBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuY2F0
ZWdvcnlPdmVycmlkZSgpKTsKIH0KIAogdm9pZCBEZXByZWNhdGVkR2xvYmFsU2V0dGluZ3M6OnNl
dE5ldHdvcmtEYXRhVXNhZ2VUcmFja2luZ0VuYWJsZWQoYm9vbCB0cmFja2luZ0VuYWJsZWQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZWRpYVN0cmF0ZWd5LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9NZWRpYVN0cmF0ZWd5LmgKaW5kZXggNjBhNTg0N2M4Y2VjMTBi
NzliNzQ5YTZmYWY4NTAzZDE2YTE5OWI5NS4uNjJkODg0MDIxZDMyNTViYmNiNmY5NGVkZWE4Mzg5
MDhjNmE1MWY4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVkaWFTdHJh
dGVneS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lZGlhU3RyYXRlZ3kuaApAQCAt
MjUsNiArMjUsOCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkF1ZGlvU2Vzc2lvbkNh
dGVnb3J5LmgiCisjaW5jbHVkZSAiUm91dGVTaGFyaW5nUG9saWN5LmgiCiAjaW5jbHVkZSA8d3Rm
L0ZvcndhcmQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzUsNiArMzcsMTAgQEAgY2xh
c3MgQ0RNRmFjdG9yeTsKIAogY2xhc3MgV0VCQ09SRV9FWFBPUlQgTWVkaWFTdHJhdGVneSB7CiBw
dWJsaWM6CisjaWYgVVNFKEFVRElPX1NFU1NJT04pCisgICAgdmlydHVhbCBib29sIHRyeVRvU2V0
QXVkaW9TZXNzaW9uQXNBY3RpdmUoYm9vbCBpc0FjdGl2ZSkgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCB1cGRhdGVBdWRpb1Nlc3Npb25QYXJhbWV0ZXJzKHNpemVfdCBidWZmZXJTaXplLCBPcHRpb25h
bDxBdWRpb1Nlc3Npb25DYXRlZ29yeT4sIE9wdGlvbmFsPFJvdXRlU2hhcmluZ1BvbGljeT4pID0g
MDsKKyNlbmRpZgogI2lmIEVOQUJMRShXRUJfQVVESU8pCiAgICAgdmlydHVhbCBzdGQ6OnVuaXF1
ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlQXVkaW9EZXN0aW5hdGlvbigKICAgICAgICAg
QXVkaW9JT0NhbGxiYWNrJiwgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLCB1bnNpZ25lZCBu
dW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZs
b2F0IHNhbXBsZVJhdGUpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL0F1ZGlvU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9B
dWRpb1Nlc3Npb24uY3BwCmluZGV4IGI1ZmI1ODA2NDhmOWNmOGVjNGYxODZmYWZhNDhlMTNmZGNm
MmY1N2QuLjczY2E1YWY3YzFlZjEzYWRkNTEyZGJhOGEwMDE2Mjg3NDY4ODBlMmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmNwcApAQCAtNjYsMTgg
KzY2LDE4IEBAIHZvaWQgQXVkaW9TZXNzaW9uOjpzZXRDYXRlZ29yeShDYXRlZ29yeVR5cGUsIFJv
dXRlU2hhcmluZ1BvbGljeSkKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi1BdWRpb1Nlc3Np
b246OkNhdGVnb3J5VHlwZSBBdWRpb1Nlc3Npb246OmNhdGVnb3J5T3ZlcnJpZGUoKSBjb25zdAor
QXVkaW9TZXNzaW9uQ2F0ZWdvcnkgQXVkaW9TZXNzaW9uOjpjYXRlZ29yeU92ZXJyaWRlKCkgY29u
c3QKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBOb25lOwogfQogCi12b2lk
IEF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnlPdmVycmlkZShDYXRlZ29yeVR5cGUpCit2b2lkIEF1
ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnlPdmVycmlkZShBdWRpb1Nlc3Npb25DYXRlZ29yeSkKIHsK
ICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi1BdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBB
dWRpb1Nlc3Npb246OmNhdGVnb3J5KCkgY29uc3QKK0F1ZGlvU2Vzc2lvbkNhdGVnb3J5IEF1ZGlv
U2Vzc2lvbjo6Y2F0ZWdvcnkoKSBjb25zdAogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAg
cmV0dXJuIE5vbmU7CkBAIC0xNDYsNyArMTQ2LDcgQEAgU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlv
blRvU3RyaW5nKFJvdXRlU2hhcmluZ1BvbGljeSBlbnVtZXJhdGlvblZhbHVlKQogICAgIHJldHVy
biB2YWx1ZXNbc3RhdGljX2Nhc3Q8c2l6ZV90PihlbnVtZXJhdGlvblZhbHVlKV07CiB9CiAKLVN0
cmluZyBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlw
ZSBlbnVtZXJhdGlvblZhbHVlKQorU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKEF1
ZGlvU2Vzc2lvbkNhdGVnb3J5IGVudW1lcmF0aW9uVmFsdWUpCiB7CiAgICAgc3RhdGljIGNvbnN0
IE5ldmVyRGVzdHJveWVkPFN0cmluZz4gdmFsdWVzW10gPSB7CiAgICAgICAgIE1BS0VfU1RBVElD
X1NUUklOR19JTVBMKCJOb25lIiksCkBAIC0xNTcsMTMgKzE1NywxMyBAQCBTdHJpbmcgY29udmVy
dEVudW1lcmF0aW9uVG9TdHJpbmcoQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUgZW51bWVyYXRp
b25WYWx1ZSkKICAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIlBsYXlBbmRSZWNvcmQi
KSwKICAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIkF1ZGlvUHJvY2Vzc2luZyIpLAog
ICAgIH07Ci0gICAgc3RhdGljX2Fzc2VydCghc3RhdGljX2Nhc3Q8c2l6ZV90PihBdWRpb1Nlc3Np
b246OkNhdGVnb3J5VHlwZTo6Tm9uZSksICJBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6Tm9u
ZSBpcyBub3QgMCBhcyBleHBlY3RlZCIpOwotICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8
c2l6ZV90PihBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6QW1iaWVudFNvdW5kKSA9PSAxLCAi
QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6OkFtYmllbnRTb3VuZCBpcyBub3QgMSBhcyBleHBl
Y3RlZCIpOwotICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihBdWRpb1Nlc3Np
b246OkNhdGVnb3J5VHlwZTo6U29sb0FtYmllbnRTb3VuZCkgPT0gMiwgIkF1ZGlvU2Vzc2lvbjo6
Q2F0ZWdvcnlUeXBlOjpTb2xvQW1iaWVudFNvdW5kIGlzIG5vdCAyIGFzIGV4cGVjdGVkIik7Ci0g
ICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdv
cnlUeXBlOjpNZWRpYVBsYXliYWNrKSA9PSAzLCAiQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6
Ok1lZGlhUGxheWJhY2sgaXMgbm90IDMgYXMgZXhwZWN0ZWQiKTsKLSAgICBzdGF0aWNfYXNzZXJ0
KHN0YXRpY19jYXN0PHNpemVfdD4oQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6OlJlY29yZEF1
ZGlvKSA9PSA0LCAiQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6OlJlY29yZEF1ZGlvIGlzIG5v
dCA0IGFzIGV4cGVjdGVkIik7Ci0gICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+
KEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpQbGF5QW5kUmVjb3JkKSA9PSA1LCAiQXVkaW9T
ZXNzaW9uOjpDYXRlZ29yeVR5cGU6OlBsYXlBbmRSZWNvcmQgaXMgbm90IDUgYXMgZXhwZWN0ZWQi
KTsKLSAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oQXVkaW9TZXNzaW9uOjpD
YXRlZ29yeVR5cGU6OkF1ZGlvUHJvY2Vzc2luZykgPT0gNiwgIkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdv
cnlUeXBlOjpBdWRpb1Byb2Nlc3NpbmcgaXMgbm90IDYgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0
aWNfYXNzZXJ0KCFzdGF0aWNfY2FzdDxzaXplX3Q+KEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpOb25l
KSwgIkF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpOb25lIGlzIG5vdCAwIGFzIGV4cGVjdGVkIik7Cisg
ICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KEF1ZGlvU2Vzc2lvbkNhdGVnb3J5
OjpBbWJpZW50U291bmQpID09IDEsICJBdWRpb1Nlc3Npb25DYXRlZ29yeTo6QW1iaWVudFNvdW5k
IGlzIG5vdCAxIGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxz
aXplX3Q+KEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpTb2xvQW1iaWVudFNvdW5kKSA9PSAyLCAiQXVk
aW9TZXNzaW9uQ2F0ZWdvcnk6OlNvbG9BbWJpZW50U291bmQgaXMgbm90IDIgYXMgZXhwZWN0ZWQi
KTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oQXVkaW9TZXNzaW9uQ2F0
ZWdvcnk6Ok1lZGlhUGxheWJhY2spID09IDMsICJBdWRpb1Nlc3Npb25DYXRlZ29yeTo6TWVkaWFQ
bGF5YmFjayBpcyBub3QgMyBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGlj
X2Nhc3Q8c2l6ZV90PihBdWRpb1Nlc3Npb25DYXRlZ29yeTo6UmVjb3JkQXVkaW8pID09IDQsICJB
dWRpb1Nlc3Npb25DYXRlZ29yeTo6UmVjb3JkQXVkaW8gaXMgbm90IDQgYXMgZXhwZWN0ZWQiKTsK
KyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oQXVkaW9TZXNzaW9uQ2F0ZWdv
cnk6OlBsYXlBbmRSZWNvcmQpID09IDUsICJBdWRpb1Nlc3Npb25DYXRlZ29yeTo6UGxheUFuZFJl
Y29yZCBpcyBub3QgNSBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nh
c3Q8c2l6ZV90PihBdWRpb1Nlc3Npb25DYXRlZ29yeTo6QXVkaW9Qcm9jZXNzaW5nKSA9PSA2LCAi
QXVkaW9TZXNzaW9uQ2F0ZWdvcnk6OkF1ZGlvUHJvY2Vzc2luZyBpcyBub3QgNiBhcyBleHBlY3Rl
ZCIpOwogICAgIEFTU0VSVChzdGF0aWNfY2FzdDxzaXplX3Q+KGVudW1lcmF0aW9uVmFsdWUpIDwg
V1RGX0FSUkFZX0xFTkdUSCh2YWx1ZXMpKTsKICAgICByZXR1cm4gdmFsdWVzW3N0YXRpY19jYXN0
PHNpemVfdD4oZW51bWVyYXRpb25WYWx1ZSldOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9BdWRpb1Nlc3Npb24uaAppbmRleCBlNzAwODIyZmYxZmVlYmQ3ODI5YWVjNzUwY2Nl
NDBhNjBiOTI1NjZhLi45OTkyMGYwMmE1OWQxODBjOWJmY2E3NzRkZDU2MjU2NDliNThhMWRlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uaApAQCAtMjcs
NiArMjcsOCBAQAogCiAjaWYgVVNFKEFVRElPX1NFU1NJT04pCiAKKyNpbmNsdWRlICJBdWRpb1Nl
c3Npb25DYXRlZ29yeS5oIgorI2luY2x1ZGUgIlJvdXRlU2hhcmluZ1BvbGljeS5oIgogI2luY2x1
ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9OZXZl
ckRlc3Ryb3llZC5oPgpAQCAtMzcsMzMgKzM5LDE3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgQXVkaW9TZXNzaW9uUHJpdmF0ZTsKIAotZW51bSBjbGFzcyBSb3V0ZVNoYXJpbmdQb2xp
Y3kgOiB1aW50OF90IHsKLSAgICBEZWZhdWx0LAotICAgIExvbmdGb3JtQXVkaW8sCi0gICAgSW5k
ZXBlbmRlbnQsCi0gICAgTG9uZ0Zvcm1WaWRlbwotfTsKLQogY2xhc3MgQXVkaW9TZXNzaW9uIGZp
bmFsIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICBXVEZfTUFLRV9OT05DT1BZ
QUJMRShBdWRpb1Nlc3Npb24pOwogcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBB
dWRpb1Nlc3Npb24mIHNoYXJlZFNlc3Npb24oKTsKIAotICAgIGVudW0gQ2F0ZWdvcnlUeXBlIHsK
LSAgICAgICAgTm9uZSwKLSAgICAgICAgQW1iaWVudFNvdW5kLAotICAgICAgICBTb2xvQW1iaWVu
dFNvdW5kLAotICAgICAgICBNZWRpYVBsYXliYWNrLAotICAgICAgICBSZWNvcmRBdWRpbywKLSAg
ICAgICAgUGxheUFuZFJlY29yZCwKLSAgICAgICAgQXVkaW9Qcm9jZXNzaW5nLAotICAgIH07Ci0g
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRDYXRlZ29yeShDYXRlZ29yeVR5cGUsIFJvdXRlU2hh
cmluZ1BvbGljeSk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgQ2F0ZWdvcnlUeXBlIGNhdGVnb3J5KCkg
Y29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRDYXRlZ29yeShBdWRpb1Nlc3Npb25D
YXRlZ29yeSwgUm91dGVTaGFyaW5nUG9saWN5KTsKKyAgICBXRUJDT1JFX0VYUE9SVCBBdWRpb1Nl
c3Npb25DYXRlZ29yeSBjYXRlZ29yeSgpIGNvbnN0OwogCi0gICAgdm9pZCBzZXRDYXRlZ29yeU92
ZXJyaWRlKENhdGVnb3J5VHlwZSk7Ci0gICAgQ2F0ZWdvcnlUeXBlIGNhdGVnb3J5T3ZlcnJpZGUo
KSBjb25zdDsKKyAgICB2b2lkIHNldENhdGVnb3J5T3ZlcnJpZGUoQXVkaW9TZXNzaW9uQ2F0ZWdv
cnkpOworICAgIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5IGNhdGVnb3J5T3ZlcnJpZGUoKSBjb25zdDsK
IAogICAgIFJvdXRlU2hhcmluZ1BvbGljeSByb3V0ZVNoYXJpbmdQb2xpY3koKSBjb25zdDsKICAg
ICBTdHJpbmcgcm91dGluZ0NvbnRleHRVSUQoKSBjb25zdDsKQEAgLTcyLDEwICs1OCwxMCBAQCBw
dWJsaWM6CiAgICAgc2l6ZV90IGJ1ZmZlclNpemUoKSBjb25zdDsKICAgICBzaXplX3QgbnVtYmVy
T2ZPdXRwdXRDaGFubmVscygpIGNvbnN0OwogCi0gICAgYm9vbCB0cnlUb1NldEFjdGl2ZShib29s
KTsKKyAgICBXRUJDT1JFX0VYUE9SVCBib29sIHRyeVRvU2V0QWN0aXZlKGJvb2wpOwogCiAgICAg
V0VCQ09SRV9FWFBPUlQgc2l6ZV90IHByZWZlcnJlZEJ1ZmZlclNpemUoKSBjb25zdDsKLSAgICB2
b2lkIHNldFByZWZlcnJlZEJ1ZmZlclNpemUoc2l6ZV90KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHNldFByZWZlcnJlZEJ1ZmZlclNpemUoc2l6ZV90KTsKIAogICAgIGNsYXNzIE11dGVkU3Rh
dGVPYnNlcnZlciB7CiAgICAgcHVibGljOgpAQCAtMTA0LDQxICs5MCw2IEBAIHByaXZhdGU6CiAg
ICAgYm9vbCBtX2FjdGl2ZSB7IGZhbHNlIH07IC8vIFVzZWQgb25seSBmb3IgdGVzdGluZy4KIH07
CiAKLVN0cmluZyBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhSb3V0ZVNoYXJpbmdQb2xpY3kp
OwotU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdv
cnlUeXBlKTsKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi1uYW1lc3BhY2UgV1RGIHsKLXRl
bXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5PiB7
Ci0gICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKLSAgICBXZWJDb3JlOjpSb3V0ZVNoYXJp
bmdQb2xpY3ksCi0gICAgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5OjpEZWZhdWx0LAotICAg
IFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeTo6TG9uZ0Zvcm1BdWRpbywKLSAgICBXZWJDb3Jl
OjpSb3V0ZVNoYXJpbmdQb2xpY3k6OkluZGVwZW5kZW50LAotICAgIFdlYkNvcmU6OlJvdXRlU2hh
cmluZ1BvbGljeTo6TG9uZ0Zvcm1WaWRlbwotICAgID47Ci19OwotCi10ZW1wbGF0ZTx0eXBlbmFt
ZSBUeXBlPgotc3RydWN0IExvZ0FyZ3VtZW50OwotCi10ZW1wbGF0ZSA8Pgotc3RydWN0IExvZ0Fy
Z3VtZW50PFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeT4gewotICAgIHN0YXRpYyBTdHJpbmcg
dG9TdHJpbmcoY29uc3QgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5IHBvbGljeSkKLSAgICB7
Ci0gICAgICAgIHJldHVybiBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhwb2xpY3kpOwotICAg
IH0KLX07Ci0KLXRlbXBsYXRlIDw+Ci1zdHJ1Y3QgTG9nQXJndW1lbnQ8V2ViQ29yZTo6QXVkaW9T
ZXNzaW9uOjpDYXRlZ29yeVR5cGU+IHsKLSAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0
IFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIGNhdGVnb3J5KQotICAgIHsKLSAg
ICAgICAgcmV0dXJuIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKGNhdGVnb3J5KTsKLSAgICB9
Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXVEYKLQogI2VuZGlmIC8vIFVTRShBVURJT19TRVNTSU9O
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9u
Q2F0ZWdvcnkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbkNh
dGVnb3J5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMTMwMDY4MWJhYjVmMzNkOWQzMDM0ZGEwOWMxNWM0NDI2OWM1
MmExYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1
ZGlvU2Vzc2lvbkNhdGVnb3J5LmgKQEAgLTAsMCArMSw3NyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KKyNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisjaWYgVVNFKEFVRElPX1NF
U1NJT04pCisKK2VudW0gY2xhc3MgQXVkaW9TZXNzaW9uQ2F0ZWdvcnkgOiB1aW50OF90IHsKKyAg
ICBOb25lLAorICAgIEFtYmllbnRTb3VuZCwKKyAgICBTb2xvQW1iaWVudFNvdW5kLAorICAgIE1l
ZGlhUGxheWJhY2ssCisgICAgUmVjb3JkQXVkaW8sCisgICAgUGxheUFuZFJlY29yZCwKKyAgICBB
dWRpb1Byb2Nlc3NpbmcKK307CisKK1N0cmluZyBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhB
dWRpb1Nlc3Npb25DYXRlZ29yeSk7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworbmFtZXNw
YWNlIFdURiB7CisKK3RlbXBsYXRlPHR5cGVuYW1lIFR5cGU+CitzdHJ1Y3QgTG9nQXJndW1lbnQ7
CisKK3RlbXBsYXRlIDw+CitzdHJ1Y3QgTG9nQXJndW1lbnQ8V2ViQ29yZTo6QXVkaW9TZXNzaW9u
Q2F0ZWdvcnk+IHsKKyAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IFdlYkNvcmU6OkF1
ZGlvU2Vzc2lvbkNhdGVnb3J5IGNhdGVnb3J5KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNvbnZl
cnRFbnVtZXJhdGlvblRvU3RyaW5nKGNhdGVnb3J5KTsKKyAgICB9Cit9OworCit0ZW1wbGF0ZTw+
IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbkNhdGVnb3J5PiB7CisgICAg
dXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9u
Q2F0ZWdvcnksCisgICAgICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpOb25lLAor
ICAgICAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb25DYXRlZ29yeTo6QW1iaWVudFNvdW5kLAorICAg
ICAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb25DYXRlZ29yeTo6U29sb0FtYmllbnRTb3VuZCwKKyAg
ICAgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uQ2F0ZWdvcnk6Ok1lZGlhUGxheWJhY2ssCisgICAg
ICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpSZWNvcmRBdWRpbywKKyAgICAgICAg
V2ViQ29yZTo6QXVkaW9TZXNzaW9uQ2F0ZWdvcnk6OlBsYXlBbmRSZWNvcmQsCisgICAgICAgIFdl
YkNvcmU6OkF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpBdWRpb1Byb2Nlc3NpbmcKKyAgICA+OworfTsK
KworfSAvLyBuYW1lc3BhY2UgV1RGCisKKyNlbmRpZiAvLyBVU0UoQVVESU9fU0VTU0lPTikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNz
aW9uTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1l
ZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCmluZGV4IDVmNDA0NTdjNzVmNzFiYWIyYzczZTYxMjljMTBh
ZmVmZTBjNTU3NjUuLjE1NWU1ZTFlMzAwNDhhM2Y4OWYyYWQ4MGE4YzJkYzI1MTk1ZTc0NDUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNz
aW9uTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZv
cm1NZWRpYVNlc3Npb25NYW5hZ2VyLmNwcApAQCAtMjksNyArMjksOSBAQAogI2luY2x1ZGUgIkF1
ZGlvU2Vzc2lvbi5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5o
IgorI2luY2x1ZGUgIk1lZGlhU3RyYXRlZ3kuaCIKICNpbmNsdWRlICJQbGF0Zm9ybU1lZGlhU2Vz
c2lvbi5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyYXRlZ2llcy5oIgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKQEAgLTIyMCw3ICsyMjIsNyBAQCBib29sIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFu
YWdlcjo6c2Vzc2lvbldpbGxCZWdpblBsYXliYWNrKFBsYXRmb3JtTWVkaWFTZXNzaW9uJgogCiAj
aWYgVVNFKEFVRElPX1NFU1NJT04pCiAgICAgaWYgKGFjdGl2ZUF1ZGlvU2Vzc2lvblJlcXVpcmVk
KCkpIHsKLSAgICAgICAgaWYgKCFBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS50cnlUb1Nl
dEFjdGl2ZSh0cnVlKSkgeworICAgICAgICBpZiAoIXBsYXRmb3JtU3RyYXRlZ2llcygpLT5tZWRp
YVN0cmF0ZWd5KCkudHJ5VG9TZXRBdWRpb1Nlc3Npb25Bc0FjdGl2ZSh0cnVlKSkgewogICAgICAg
ICAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCBzZXNzaW9uLmxvZ0lkZW50aWZpZXIoKSwg
IiByZXR1cm5pbmcgZmFsc2UgZmFpbGVkIHRvIHNldCBhY3RpdmUgQXVkaW9TZXNzaW9uIik7CiAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KQEAgLTM5Myw3ICszOTUsNyBAQCB2
b2lkIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6cHJvY2Vzc0RpZFJlc3VtZSgpCiAKICNp
ZiBVU0UoQVVESU9fU0VTU0lPTikKICAgICBpZiAoIW1fYmVjYW1lQWN0aXZlICYmIGFjdGl2ZUF1
ZGlvU2Vzc2lvblJlcXVpcmVkKCkpIHsKLSAgICAgICAgbV9iZWNhbWVBY3RpdmUgPSBBdWRpb1Nl
c3Npb246OnNoYXJlZFNlc3Npb24oKS50cnlUb1NldEFjdGl2ZSh0cnVlKTsKKyAgICAgICAgbV9i
ZWNhbWVBY3RpdmUgPSBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bWVkaWFTdHJhdGVneSgpLnRyeVRv
U2V0QXVkaW9TZXNzaW9uQXNBY3RpdmUodHJ1ZSk7CiAgICAgICAgIEFMV0FZU19MT0coTE9HSURF
TlRJRklFUiwgInRyaWVkIHRvIHNldCBhY3RpdmUgQXVkaW9TZXNzaW9uLCAiLCBtX2JlY2FtZUFj
dGl2ZSA/ICJzdWNjZWVkZWQiIDogImZhaWxlZCIpOwogICAgIH0KICNlbmRpZgpAQCAtNTY3LDcg
KzU2OSw3IEBAIHZvaWQgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjptYXliZURlYWN0aXZh
dGVBdWRpb1Nlc3Npb24oKQogICAgICAgICByZXR1cm47CiAKICAgICBBTFdBWVNfTE9HKExPR0lE
RU5USUZJRVIsICJ0cmllZCB0byBzZXQgaW5hY3RpdmUgQXVkaW9TZXNzaW9uIik7Ci0gICAgQXVk
aW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkudHJ5VG9TZXRBY3RpdmUoZmFsc2UpOworICAgIHBs
YXRmb3JtU3RyYXRlZ2llcygpLT5tZWRpYVN0cmF0ZWd5KCkudHJ5VG9TZXRBdWRpb1Nlc3Npb25B
c0FjdGl2ZShmYWxzZSk7CiAgICAgbV9iZWNhbWVBY3RpdmUgPSBmYWxzZTsKIH0KICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUm91dGVTaGFyaW5nUG9s
aWN5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9Sb3V0ZVNoYXJpbmdQb2xpY3ku
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi40YzJlOGI0ZDM1ODI5ODJhNmYyZDQ0MDY2YWVkNjcwZTE5YWI4YzgyCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUm91dGVTaGFy
aW5nUG9saWN5LmgKQEAgLTAsMCArMSw3MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgorI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCisjaWYgVVNFKEFVRElPX1NFU1NJT04pCisK
K2VudW0gY2xhc3MgUm91dGVTaGFyaW5nUG9saWN5IDogdWludDhfdCB7CisgICAgRGVmYXVsdCwK
KyAgICBMb25nRm9ybUF1ZGlvLAorICAgIEluZGVwZW5kZW50LAorICAgIExvbmdGb3JtVmlkZW8K
K307CisKK1N0cmluZyBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhSb3V0ZVNoYXJpbmdQb2xp
Y3kpOworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK25hbWVzcGFjZSBXVEYgewordGVtcGxh
dGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3k+IHsKKyAg
ICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgIFdlYkNvcmU6OlJvdXRlU2hhcmluZ1Bv
bGljeSwKKyAgICBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3k6OkRlZmF1bHQsCisgICAgV2Vi
Q29yZTo6Um91dGVTaGFyaW5nUG9saWN5OjpMb25nRm9ybUF1ZGlvLAorICAgIFdlYkNvcmU6OlJv
dXRlU2hhcmluZ1BvbGljeTo6SW5kZXBlbmRlbnQsCisgICAgV2ViQ29yZTo6Um91dGVTaGFyaW5n
UG9saWN5OjpMb25nRm9ybVZpZGVvCisgICAgPjsKK307CisKK3RlbXBsYXRlPHR5cGVuYW1lIFR5
cGU+CitzdHJ1Y3QgTG9nQXJndW1lbnQ7CisKK3RlbXBsYXRlIDw+CitzdHJ1Y3QgTG9nQXJndW1l
bnQ8V2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5PiB7CisgICAgc3RhdGljIFN0cmluZyB0b1N0
cmluZyhjb25zdCBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3kgcG9saWN5KQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKHBvbGljeSk7CisgICAgfQor
fTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCisKKyNlbmRpZiAvLyBVU0UoQVVESU9fU0VTU0lPTikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL01lZGlhU2Vz
c2lvbk1hbmFnZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29h
L01lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5tbQppbmRleCBlYjE5YTliZjljMDMzOGFhYWIzZTc4
ZmIzNjhiMDc3MjY1ZTFkMWQ4Li44NjFhNzhlMGEwMTFlYWYzY2RiODNkMmYzZmNkMzY0NDVlMGU2
YTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRp
YVNlc3Npb25NYW5hZ2VyQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vY29jb2EvTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hLm1tCkBAIC0zMyw3ICszMyw5IEBACiAj
aW5jbHVkZSAiSFRNTE1lZGlhRWxlbWVudC5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNs
dWRlICJNZWRpYVBsYXllci5oIgorI2luY2x1ZGUgIk1lZGlhU3RyYXRlZ3kuaCIKICNpbmNsdWRl
ICJQbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyYXRlZ2llcy5o
IgogI2luY2x1ZGUgPHd0Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL0Z1
bmN0aW9uLmg+CiAKQEAgLTcwLDI3ICs3MiwyNyBAQCB2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXJD
b2NvYTo6dXBkYXRlU2Vzc2lvblN0YXRlKCkKICAgICAgICAgIlZpZGVvQXVkaW8oIiwgdmlkZW9B
dWRpb0NvdW50LCAiKSwgIgogICAgICAgICAiV2ViQXVkaW8oIiwgd2ViQXVkaW9Db3VudCwgIiki
KTsKIAorICAgIHNpemVfdCBidWZmZXJTaXplID0gMDsKICAgICBpZiAod2ViQXVkaW9Db3VudCkK
LSAgICAgICAgQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2V0UHJlZmVycmVkQnVmZmVy
U2l6ZShrV2ViQXVkaW9CdWZmZXJTaXplKTsKKyAgICAgICAgYnVmZmVyU2l6ZSA9IGtXZWJBdWRp
b0J1ZmZlclNpemU7CiAgICAgLy8gSW4gY2FzZSBvZiBhdWRpbyBjYXB0dXJlLCB3ZSB3YW50IHRv
IGdyYWIgMjAgbXMgY2h1bmtzIHRvIGxpbWl0IHRoZSBsYXRlbmN5IHNvIHRoYXQgaXQgaXMgbm90
IG5vdGljZWFibGUgYnkgdXNlcnMKICAgICAvLyB3aGlsZSBoYXZpbmcgYSBsYXJnZSBlbm91Z2gg
YnVmZmVyIHNvIHRoYXQgdGhlIGF1ZGlvIHJlbmRlcmluZyByZW1haW5zIHN0YWJsZSwgaGVuY2Ug
YSBjb21wdXRhdGlvbiBiYXNlZCBvbiBzYW1wbGUgcmF0ZS4KICAgICBlbHNlIGlmIChjYXB0dXJl
Q291bnQpCi0gICAgICAgIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldFByZWZlcnJl
ZEJ1ZmZlclNpemUoQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2FtcGxlUmF0ZSgpIC8g
NTApOworICAgICAgICBidWZmZXJTaXplID0gQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCku
c2FtcGxlUmF0ZSgpIC8gNTA7CiAgICAgZWxzZSBpZiAoKHZpZGVvQXVkaW9Db3VudCB8fCBhdWRp
b0NvdW50KSAmJiBEZXByZWNhdGVkR2xvYmFsU2V0dGluZ3M6Omxvd1Bvd2VyVmlkZW9BdWRpb0J1
ZmZlclNpemVFbmFibGVkKCkpIHsKICAgICAgICAgLy8gRklYTUU6IDxodHRwOi8vd2Via2l0Lm9y
Zy9iLzExNjcyNT4gRmlndXJlIG91dCB3aHkgZW5hYmxpbmcgdGhlIGNvZGUgYmVsb3cKICAgICAg
ICAgLy8gY2F1c2VzIG1lZGlhIExheW91dFRlc3RzIHRvIGZhaWwgb24gMTAuOC4KIAotICAgICAg
ICBzaXplX3QgYnVmZmVyU2l6ZTsKICAgICAgICAgaWYgKG1fYXVkaW9IYXJkd2FyZUxpc3RlbmVy
ICYmIG1fYXVkaW9IYXJkd2FyZUxpc3RlbmVyLT5vdXRwdXREZXZpY2VTdXBwb3J0c0xvd1Bvd2Vy
TW9kZSgpKQogICAgICAgICAgICAgYnVmZmVyU2l6ZSA9IGtMb3dQb3dlclZpZGVvQnVmZmVyU2l6
ZTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgYnVmZmVyU2l6ZSA9IGtXZWJBdWRpb0J1ZmZl
clNpemU7Ci0KLSAgICAgICAgQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2V0UHJlZmVy
cmVkQnVmZmVyU2l6ZShidWZmZXJTaXplKTsKICAgICB9CiAKLSAgICBpZiAoIURlcHJlY2F0ZWRH
bG9iYWxTZXR0aW5nczo6c2hvdWxkTWFuYWdlQXVkaW9TZXNzaW9uQ2F0ZWdvcnkoKSkKKyAgICBp
ZiAoIURlcHJlY2F0ZWRHbG9iYWxTZXR0aW5nczo6c2hvdWxkTWFuYWdlQXVkaW9TZXNzaW9uQ2F0
ZWdvcnkoKSkgeworICAgICAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bWVkaWFTdHJhdGVneSgp
LnVwZGF0ZUF1ZGlvU2Vzc2lvblBhcmFtZXRlcnMoYnVmZmVyU2l6ZSwgeyB9LCB7IH0pOwogICAg
ICAgICByZXR1cm47CisgICAgfQogCiAgICAgYm9vbCBoYXNBdWRpYmxlQXVkaW9PclZpZGVvTWVk
aWFUeXBlID0gZmFsc2U7CiAgICAgZm9yRWFjaFNlc3Npb24oWyZoYXNBdWRpYmxlQXVkaW9PclZp
ZGVvTWVkaWFUeXBlXSAoYXV0byYgc2Vzc2lvbikgbXV0YWJsZSB7CkBAIC0xMDIsMTcgKzEwNCwx
NyBAQCB2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYTo6dXBkYXRlU2Vzc2lvblN0YXRlKCkK
ICAgICB9KTsKIAogICAgIFJvdXRlU2hhcmluZ1BvbGljeSBwb2xpY3kgPSBSb3V0ZVNoYXJpbmdQ
b2xpY3k6OkRlZmF1bHQ7Ci0gICAgQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUgY2F0ZWdvcnkg
PSBBdWRpb1Nlc3Npb246Ok5vbmU7CisgICAgYXV0byBjYXRlZ29yeSA9IEF1ZGlvU2Vzc2lvbkNh
dGVnb3J5OjpOb25lOwogICAgIGlmIChjYXB0dXJlQ291bnQpCi0gICAgICAgIGNhdGVnb3J5ID0g
QXVkaW9TZXNzaW9uOjpQbGF5QW5kUmVjb3JkOworICAgICAgICBjYXRlZ29yeSA9IEF1ZGlvU2Vz
c2lvbkNhdGVnb3J5OjpQbGF5QW5kUmVjb3JkOwogICAgIGVsc2UgaWYgKGhhc0F1ZGlibGVBdWRp
b09yVmlkZW9NZWRpYVR5cGUpIHsKLSAgICAgICAgY2F0ZWdvcnkgPSBBdWRpb1Nlc3Npb246Ok1l
ZGlhUGxheWJhY2s7CisgICAgICAgIGNhdGVnb3J5ID0gQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6Ok1l
ZGlhUGxheWJhY2s7CiAgICAgICAgIHBvbGljeSA9IFJvdXRlU2hhcmluZ1BvbGljeTo6TG9uZ0Zv
cm1BdWRpbzsKICAgICB9IGVsc2UgaWYgKHdlYkF1ZGlvQ291bnQpCi0gICAgICAgIGNhdGVnb3J5
ID0gQXVkaW9TZXNzaW9uOjpBbWJpZW50U291bmQ7Ci0KKyAgICAgICAgY2F0ZWdvcnkgPSBBdWRp
b1Nlc3Npb25DYXRlZ29yeTo6QW1iaWVudFNvdW5kOwogICAgIEFMV0FZU19MT0coTE9HSURFTlRJ
RklFUiwgInNldHRpbmcgY2F0ZWdvcnkgPSAiLCBjYXRlZ29yeSwgIiwgcG9saWN5ID0gIiwgcG9s
aWN5KTsKLSAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zZXRDYXRlZ29yeShjYXRl
Z29yeSwgcG9saWN5KTsKKworICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5tZWRpYVN0cmF0ZWd5
KCkudXBkYXRlQXVkaW9TZXNzaW9uUGFyYW1ldGVycyhidWZmZXJTaXplLCBjYXRlZ29yeSwgcG9s
aWN5KTsKIH0KIAogdm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6OmJlZ2luSW50ZXJydXB0
aW9uKFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpJbnRlcnJ1cHRpb25UeXBlIHR5cGUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9TZXNzaW9uSU9TLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvU2Vzc2lvbklPUy5tbQpp
bmRleCBkNmMwMDdmNDBiNWZiNzYzNzIyZDUzOGFkZWQwMmQxYjgxYTE4ODU0Li40NzUxN2IyZjQz
YzRjMzdjNTQxYWFmMWQxYWJiZTU4NjExOTllNDA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9TZXNzaW9uSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb1Nlc3Npb25JT1MubW0KQEAgLTQwLDE3ICs0MCwx
NyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAjaWYgIUxPR19ESVNBQkxFRAotc3RhdGljIGNv
bnN0IGNoYXIqIGNhdGVnb3J5TmFtZShBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBjYXRlZ29y
eSkKK3N0YXRpYyBjb25zdCBjaGFyKiBjYXRlZ29yeU5hbWUoQXVkaW9TZXNzaW9uQ2F0ZWdvcnkg
Y2F0ZWdvcnkpCiB7CiAjZGVmaW5lIENBU0UoY2F0ZWdvcnkpIGNhc2UgQXVkaW9TZXNzaW9uOjpj
YXRlZ29yeTogcmV0dXJuICNjYXRlZ29yeQogICAgIHN3aXRjaCAoY2F0ZWdvcnkpIHsKLSAgICAg
ICAgQ0FTRShOb25lKTsKLSAgICAgICAgQ0FTRShBbWJpZW50U291bmQpOwotICAgICAgICBDQVNF
KFNvbG9BbWJpZW50U291bmQpOwotICAgICAgICBDQVNFKE1lZGlhUGxheWJhY2spOwotICAgICAg
ICBDQVNFKFJlY29yZEF1ZGlvKTsKLSAgICAgICAgQ0FTRShQbGF5QW5kUmVjb3JkKTsKLSAgICAg
ICAgQ0FTRShBdWRpb1Byb2Nlc3NpbmcpOworICAgICAgICBDQVNFKEF1ZGlvU2Vzc2lvbkNhdGVn
b3J5OjpOb25lKTsKKyAgICAgICAgQ0FTRShBdWRpb1Nlc3Npb25DYXRlZ29yeTo6QW1iaWVudFNv
dW5kKTsKKyAgICAgICAgQ0FTRShBdWRpb1Nlc3Npb25DYXRlZ29yeTo6U29sb0FtYmllbnRTb3Vu
ZCk7CisgICAgICAgIENBU0UoQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6Ok1lZGlhUGxheWJhY2spOwor
ICAgICAgICBDQVNFKEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpSZWNvcmRBdWRpbyk7CisgICAgICAg
IENBU0UoQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6OlBsYXlBbmRSZWNvcmQpOworICAgICAgICBDQVNF
KEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpBdWRpb1Byb2Nlc3NpbmcpOwogICAgIH0KICAgICAKICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTYyLDEyICs2MiwxMiBAQCBjbGFzcyBBdWRpb1Nl
c3Npb25Qcml2YXRlIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAg
ICBBdWRpb1Nlc3Npb25Qcml2YXRlKEF1ZGlvU2Vzc2lvbiopOwotICAgIEF1ZGlvU2Vzc2lvbjo6
Q2F0ZWdvcnlUeXBlIG1fY2F0ZWdvcnlPdmVycmlkZTsKKyAgICBBdWRpb1Nlc3Npb25DYXRlZ29y
eSBtX2NhdGVnb3J5T3ZlcnJpZGU7CiAgICAgT1NPYmplY3RQdHI8ZGlzcGF0Y2hfcXVldWVfdD4g
bV9kaXNwYXRjaFF1ZXVlOwogfTsKIAogQXVkaW9TZXNzaW9uUHJpdmF0ZTo6QXVkaW9TZXNzaW9u
UHJpdmF0ZShBdWRpb1Nlc3Npb24qKQotICAgIDogbV9jYXRlZ29yeU92ZXJyaWRlKEF1ZGlvU2Vz
c2lvbjo6Tm9uZSkKKyAgICA6IG1fY2F0ZWdvcnlPdmVycmlkZShBdWRpb1Nlc3Npb25DYXRlZ29y
eTo6Tm9uZSkKIHsKIH0KIApAQCAtODAsNyArODAsNyBAQCBBdWRpb1Nlc3Npb246On5BdWRpb1Nl
c3Npb24oKQogewogfQogCi12b2lkIEF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnkoQ2F0ZWdvcnlU
eXBlIG5ld0NhdGVnb3J5LCBSb3V0ZVNoYXJpbmdQb2xpY3kgcG9saWN5KQordm9pZCBBdWRpb1Nl
c3Npb246OnNldENhdGVnb3J5KEF1ZGlvU2Vzc2lvbkNhdGVnb3J5IG5ld0NhdGVnb3J5LCBSb3V0
ZVNoYXJpbmdQb2xpY3kgcG9saWN5KQogewogI2lmICFIQVZFKFJPVVRFX1NIQVJJTkdfUE9MSUNZ
X0xPTkdfRk9STV9WSURFTykKICAgICBpZiAocG9saWN5ID09IFJvdXRlU2hhcmluZ1BvbGljeTo6
TG9uZ0Zvcm1WaWRlbykKQEAgLTg5LDcgKzg5LDcgQEAgdm9pZCBBdWRpb1Nlc3Npb246OnNldENh
dGVnb3J5KENhdGVnb3J5VHlwZSBuZXdDYXRlZ29yeSwgUm91dGVTaGFyaW5nUG9saWN5IHBvbGkK
IAogICAgIExPRyhNZWRpYSwgIkF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnkoKSAtIGNhdGVnb3J5
ID0gJXMiLCBjYXRlZ29yeU5hbWUobmV3Q2F0ZWdvcnkpKTsKIAotICAgIGlmIChjYXRlZ29yeU92
ZXJyaWRlKCkgJiYgY2F0ZWdvcnlPdmVycmlkZSgpICE9IG5ld0NhdGVnb3J5KSB7CisgICAgaWYg
KGNhdGVnb3J5T3ZlcnJpZGUoKSAhPSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6Tm9uZSAmJiBjYXRl
Z29yeU92ZXJyaWRlKCkgIT0gbmV3Q2F0ZWdvcnkpIHsKICAgICAgICAgTE9HKE1lZGlhLCAiQXVk
aW9TZXNzaW9uOjpzZXRDYXRlZ29yeSgpIC0gb3ZlcnJpZGUgc2V0LCBOT1QgY2hhbmdpbmciKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTk5LDI3ICs5OSwyNyBAQCB2b2lkIEF1ZGlvU2Vz
c2lvbjo6c2V0Q2F0ZWdvcnkoQ2F0ZWdvcnlUeXBlIG5ld0NhdGVnb3J5LCBSb3V0ZVNoYXJpbmdQ
b2xpY3kgcG9saQogICAgIEFWQXVkaW9TZXNzaW9uQ2F0ZWdvcnlPcHRpb25zIG9wdGlvbnMgPSAw
OwogCiAgICAgc3dpdGNoIChuZXdDYXRlZ29yeSkgewotICAgIGNhc2UgQW1iaWVudFNvdW5kOgor
ICAgIGNhc2UgQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6OkFtYmllbnRTb3VuZDoKICAgICAgICAgY2F0
ZWdvcnlTdHJpbmcgPSBBVkF1ZGlvU2Vzc2lvbkNhdGVnb3J5QW1iaWVudDsKICAgICAgICAgYnJl
YWs7Ci0gICAgY2FzZSBTb2xvQW1iaWVudFNvdW5kOgorICAgIGNhc2UgQXVkaW9TZXNzaW9uQ2F0
ZWdvcnk6OlNvbG9BbWJpZW50U291bmQ6CiAgICAgICAgIGNhdGVnb3J5U3RyaW5nID0gQVZBdWRp
b1Nlc3Npb25DYXRlZ29yeVNvbG9BbWJpZW50OwogICAgICAgICBicmVhazsKLSAgICBjYXNlIE1l
ZGlhUGxheWJhY2s6CisgICAgY2FzZSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6TWVkaWFQbGF5YmFj
azoKICAgICAgICAgY2F0ZWdvcnlTdHJpbmcgPSBBVkF1ZGlvU2Vzc2lvbkNhdGVnb3J5UGxheWJh
Y2s7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgUmVjb3JkQXVkaW86CisgICAgY2FzZSBBdWRp
b1Nlc3Npb25DYXRlZ29yeTo6UmVjb3JkQXVkaW86CiAgICAgICAgIGNhdGVnb3J5U3RyaW5nID0g
QVZBdWRpb1Nlc3Npb25DYXRlZ29yeVJlY29yZDsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQ
bGF5QW5kUmVjb3JkOgorICAgIGNhc2UgQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6OlBsYXlBbmRSZWNv
cmQ6CiAgICAgICAgIGNhdGVnb3J5U3RyaW5nID0gQVZBdWRpb1Nlc3Npb25DYXRlZ29yeVBsYXlB
bmRSZWNvcmQ7CiAgICAgICAgIGNhdGVnb3J5TW9kZSA9IEFWQXVkaW9TZXNzaW9uTW9kZVZpZGVv
Q2hhdDsKICAgICAgICAgb3B0aW9ucyB8PSBBVkF1ZGlvU2Vzc2lvbkNhdGVnb3J5T3B0aW9uQWxs
b3dCbHVldG9vdGggfCBBVkF1ZGlvU2Vzc2lvbkNhdGVnb3J5T3B0aW9uQWxsb3dCbHVldG9vdGhB
MkRQIHwgQVZBdWRpb1Nlc3Npb25DYXRlZ29yeU9wdGlvbkRlZmF1bHRUb1NwZWFrZXIgfCBBVkF1
ZGlvU2Vzc2lvbkNhdGVnb3J5T3B0aW9uQWxsb3dBaXJQbGF5OwogICAgICAgICBicmVhazsKLSAg
ICBjYXNlIEF1ZGlvUHJvY2Vzc2luZzoKKyAgICBjYXNlIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpB
dWRpb1Byb2Nlc3Npbmc6CiAgICAgICAgIGNhdGVnb3J5U3RyaW5nID0gQVZBdWRpb1Nlc3Npb25D
YXRlZ29yeUF1ZGlvUHJvY2Vzc2luZzsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBOb25lOgor
ICAgIGNhc2UgQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6Ok5vbmU6CiAgICAgICAgIGNhdGVnb3J5U3Ry
aW5nID0gQVZBdWRpb1Nlc3Npb25DYXRlZ29yeUFtYmllbnQ7CiAgICAgICAgIGJyZWFrOwogICAg
IH0KQEAgLTEzMSwyMiArMTMxLDIyIEBAIHZvaWQgQXVkaW9TZXNzaW9uOjpzZXRDYXRlZ29yeShD
YXRlZ29yeVR5cGUgbmV3Q2F0ZWdvcnksIFJvdXRlU2hhcmluZ1BvbGljeSBwb2xpCiAjZW5kaWYK
IH0KIAotQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUgQXVkaW9TZXNzaW9uOjpjYXRlZ29yeSgp
IGNvbnN0CitBdWRpb1Nlc3Npb25DYXRlZ29yeSBBdWRpb1Nlc3Npb246OmNhdGVnb3J5KCkgY29u
c3QKIHsKICAgICBOU1N0cmluZyAqY2F0ZWdvcnlTdHJpbmcgPSBbW1BBTDo6Z2V0QVZBdWRpb1Nl
c3Npb25DbGFzcygpIHNoYXJlZEluc3RhbmNlXSBjYXRlZ29yeV07CiAgICAgaWYgKFtjYXRlZ29y
eVN0cmluZyBpc0VxdWFsOkFWQXVkaW9TZXNzaW9uQ2F0ZWdvcnlBbWJpZW50XSkKLSAgICAgICAg
cmV0dXJuIEFtYmllbnRTb3VuZDsKKyAgICAgICAgcmV0dXJuIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5
OjpBbWJpZW50U291bmQ7CiAgICAgaWYgKFtjYXRlZ29yeVN0cmluZyBpc0VxdWFsOkFWQXVkaW9T
ZXNzaW9uQ2F0ZWdvcnlTb2xvQW1iaWVudF0pCi0gICAgICAgIHJldHVybiBTb2xvQW1iaWVudFNv
dW5kOworICAgICAgICByZXR1cm4gQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6OlNvbG9BbWJpZW50U291
bmQ7CiAgICAgaWYgKFtjYXRlZ29yeVN0cmluZyBpc0VxdWFsOkFWQXVkaW9TZXNzaW9uQ2F0ZWdv
cnlQbGF5YmFja10pCi0gICAgICAgIHJldHVybiBNZWRpYVBsYXliYWNrOworICAgICAgICByZXR1
cm4gQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6Ok1lZGlhUGxheWJhY2s7CiAgICAgaWYgKFtjYXRlZ29y
eVN0cmluZyBpc0VxdWFsOkFWQXVkaW9TZXNzaW9uQ2F0ZWdvcnlSZWNvcmRdKQotICAgICAgICBy
ZXR1cm4gUmVjb3JkQXVkaW87CisgICAgICAgIHJldHVybiBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6
UmVjb3JkQXVkaW87CiAgICAgaWYgKFtjYXRlZ29yeVN0cmluZyBpc0VxdWFsOkFWQXVkaW9TZXNz
aW9uQ2F0ZWdvcnlQbGF5QW5kUmVjb3JkXSkKLSAgICAgICAgcmV0dXJuIFBsYXlBbmRSZWNvcmQ7
CisgICAgICAgIHJldHVybiBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6UGxheUFuZFJlY29yZDsKICAg
ICBpZiAoW2NhdGVnb3J5U3RyaW5nIGlzRXF1YWw6QVZBdWRpb1Nlc3Npb25DYXRlZ29yeUF1ZGlv
UHJvY2Vzc2luZ10pCi0gICAgICAgIHJldHVybiBBdWRpb1Byb2Nlc3Npbmc7Ci0gICAgcmV0dXJu
IE5vbmU7CisgICAgICAgIHJldHVybiBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6QXVkaW9Qcm9jZXNz
aW5nOworICAgIHJldHVybiBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6Tm9uZTsKIH0KIAogUm91dGVT
aGFyaW5nUG9saWN5IEF1ZGlvU2Vzc2lvbjo6cm91dGVTaGFyaW5nUG9saWN5KCkgY29uc3QKQEAg
LTE3Niw3ICsxNzYsNyBAQCBTdHJpbmcgQXVkaW9TZXNzaW9uOjpyb3V0aW5nQ29udGV4dFVJRCgp
IGNvbnN0CiAjZW5kaWYKIH0KIAotdm9pZCBBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5T3ZlcnJp
ZGUoQ2F0ZWdvcnlUeXBlIGNhdGVnb3J5KQordm9pZCBBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5
T3ZlcnJpZGUoQXVkaW9TZXNzaW9uQ2F0ZWdvcnkgY2F0ZWdvcnkpCiB7CiAgICAgaWYgKG1fcHJp
dmF0ZS0+bV9jYXRlZ29yeU92ZXJyaWRlID09IGNhdGVnb3J5KQogICAgICAgICByZXR1cm47CkBA
IC0xODUsNyArMTg1LDcgQEAgdm9pZCBBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5T3ZlcnJpZGUo
Q2F0ZWdvcnlUeXBlIGNhdGVnb3J5KQogICAgIHNldENhdGVnb3J5KGNhdGVnb3J5LCBSb3V0ZVNo
YXJpbmdQb2xpY3k6OkRlZmF1bHQpOwogfQogCi1BdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBB
dWRpb1Nlc3Npb246OmNhdGVnb3J5T3ZlcnJpZGUoKSBjb25zdAorQXVkaW9TZXNzaW9uQ2F0ZWdv
cnkgQXVkaW9TZXNzaW9uOjpjYXRlZ29yeU92ZXJyaWRlKCkgY29uc3QKIHsKICAgICByZXR1cm4g
bV9wcml2YXRlLT5tX2NhdGVnb3J5T3ZlcnJpZGU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL01lZGlhU2Vzc2lvbk1hbmFnZXJJT1MuaAppbmRl
eCA5M2U1YmZjNDBiOGYxODU4MzgzODk2NjM2ZjYyZWU2OTE4Yzk5MTUzLi5jNGI3ZDg4MzhlYzgx
NDE1MjM0MzE0YTIxZjk1MGQ5MjNhZTdmMjg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLmgKQEAgLTU0
LDYgKzU0LDggQEAgcHVibGljOgogICAgIHZvaWQgYWN0aXZlVmlkZW9Sb3V0ZURpZENoYW5nZShP
cHRpb25hbDxib29sPiYmKTsKICNlbmRpZgogCisgICAgc3RhdGljIFdFQkNPUkVfRVhQT1JUIHZv
aWQgcHJvdmlkZVByZXNlbnRpbmdBcHBsaWNhdGlvblBJRCgpOworCiBwcml2YXRlOgogICAgIGZy
aWVuZCBjbGFzcyBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL01lZGlhU2Vzc2lvbk1hbmFnZXJJ
T1MubW0KaW5kZXggNDUxNzI0ZmU3M2FjZmNkNTk5NDY0YzBjNDJmMThjNTZlNjMzMTkxNy4uY2Yy
NWZiNDg2MDE3NjgyNWE3N2FkODYyNGNiNDViZGYzOTgzZWM4ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL01lZGlhU2Vzc2lvbk1hbmFnZXJJT1MubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL01lZGlhU2Vzc2lvbk1hbmFnZXJJ
T1MubW0KQEAgLTE3NCw3ICsxNzQsMTMgQEAgdm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyaU9TOjpw
cm92aWRlUHJlc2VudGluZ0FwcGxpY2F0aW9uUElESWZOZWNlc3NhcnkoKQogICAgIGlmIChtX2hh
dmVQcmVzZW50ZWRBcHBsaWNhdGlvblBJRCkKICAgICAgICAgcmV0dXJuOwogICAgIG1faGF2ZVBy
ZXNlbnRlZEFwcGxpY2F0aW9uUElEID0gdHJ1ZTsKKyAgICBwcm92aWRlUHJlc2VudGluZ0FwcGxp
Y2F0aW9uUElEKCk7CisjZW5kaWYKK30KIAordm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyaU9TOjpw
cm92aWRlUHJlc2VudGluZ0FwcGxpY2F0aW9uUElEKCkKK3sKKyNpZiBIQVZFKENFTEVTVElBTCkK
ICAgICBpZiAoIWNhbkxvYWRBVlN5c3RlbUNvbnRyb2xsZXJfUElEVG9Jbmhlcml0QXBwbGljYXRp
b25TdGF0ZUZyb20oKSkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9TZXNzaW9uTWFjLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb1Nlc3Npb25NYWMuY3BwCmluZGV4IGNjMDRmMGJl
MzA5NzQ5OGI4MzY2ZTkyNDIwNzNlY2UzZTE5NzVhYjUuLmViMzYyNWE2MDRhYzQ0ZjM5NWQ1Yjk2
ZWMyMjBhY2VmMGI2N2ViY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL21hYy9BdWRpb1Nlc3Npb25NYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL21hYy9BdWRpb1Nlc3Npb25NYWMuY3BwCkBAIC01OCw3ICs1OCw3IEBAIHB1YmxpYzoK
ICAgICBleHBsaWNpdCBBdWRpb1Nlc3Npb25Qcml2YXRlKGJvb2wgbXV0ZWRTdGF0ZSkKICAgICAg
ICAgOiBsYXN0TXV0ZWRTdGF0ZShtdXRlZFN0YXRlKSB7IH0KICAgICBib29sIGxhc3RNdXRlZFN0
YXRlOwotICAgIEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIGNhdGVnb3J5IHsgQXVkaW9TZXNz
aW9uOjpOb25lIH07CisgICAgQXVkaW9TZXNzaW9uQ2F0ZWdvcnkgY2F0ZWdvcnkgeyBBdWRpb1Nl
c3Npb25DYXRlZ29yeTo6Tm9uZSB9OwogfTsKIAogQXVkaW9TZXNzaW9uOjpBdWRpb1Nlc3Npb24o
KQpAQCAtNjgsMTcgKzY4LDE3IEBAIEF1ZGlvU2Vzc2lvbjo6QXVkaW9TZXNzaW9uKCkKIAogQXVk
aW9TZXNzaW9uOjp+QXVkaW9TZXNzaW9uKCkgPSBkZWZhdWx0OwogCi1BdWRpb1Nlc3Npb246OkNh
dGVnb3J5VHlwZSBBdWRpb1Nlc3Npb246OmNhdGVnb3J5KCkgY29uc3QKK0F1ZGlvU2Vzc2lvbkNh
dGVnb3J5IEF1ZGlvU2Vzc2lvbjo6Y2F0ZWdvcnkoKSBjb25zdAogewogICAgIHJldHVybiBtX3By
aXZhdGUtPmNhdGVnb3J5OwogfQogCi12b2lkIEF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnkoQ2F0
ZWdvcnlUeXBlIGNhdGVnb3J5LCBSb3V0ZVNoYXJpbmdQb2xpY3kpCit2b2lkIEF1ZGlvU2Vzc2lv
bjo6c2V0Q2F0ZWdvcnkoQXVkaW9TZXNzaW9uQ2F0ZWdvcnkgY2F0ZWdvcnksIFJvdXRlU2hhcmlu
Z1BvbGljeSkKIHsKICAgICBtX3ByaXZhdGUtPmNhdGVnb3J5ID0gY2F0ZWdvcnk7CiB9CiAKLUF1
ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIEF1ZGlvU2Vzc2lvbjo6Y2F0ZWdvcnlPdmVycmlkZSgp
IGNvbnN0CitBdWRpb1Nlc3Npb25DYXRlZ29yeSBBdWRpb1Nlc3Npb246OmNhdGVnb3J5T3ZlcnJp
ZGUoKSBjb25zdAogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIE5vbmU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQmFzZUF1
ZGlvU2hhcmVkVW5pdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvQmFzZUF1ZGlvU2hhcmVkVW5pdC5jcHAKaW5kZXggZDYzYmY1NGExNjNiNTExOTJlYTBhMzYz
Nzg2ZGY4NzZiODlmOTg0Zi4uNGMzYzgyOGJkMjMyOTBmZDk3MzAyNWQ2NDEyNzEzZDhhMTg0MDBi
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Jh
c2VBdWRpb1NoYXJlZFVuaXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9CYXNlQXVkaW9TaGFyZWRVbml0LmNwcApAQCAtOTcsNyArOTcsNyBAQCBPU1N0
YXR1cyBCYXNlQXVkaW9TaGFyZWRVbml0OjpzdGFydFVuaXQoKQogICAgIGZvckVhY2hDbGllbnQo
W10oYXV0byYgY2xpZW50KSB7CiAgICAgICAgIGNsaWVudC5hdWRpb1VuaXRXaWxsU3RhcnQoKTsK
ICAgICB9KTsKLSAgICBBU1NFUlQoIURlcHJlY2F0ZWRHbG9iYWxTZXR0aW5nczo6c2hvdWxkTWFu
YWdlQXVkaW9TZXNzaW9uQ2F0ZWdvcnkoKSB8fCBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24o
KS5jYXRlZ29yeSgpID09IEF1ZGlvU2Vzc2lvbjo6UGxheUFuZFJlY29yZCk7CisgICAgQVNTRVJU
KCFEZXByZWNhdGVkR2xvYmFsU2V0dGluZ3M6OnNob3VsZE1hbmFnZUF1ZGlvU2Vzc2lvbkNhdGVn
b3J5KCkgfHwgQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuY2F0ZWdvcnkoKSA9PSBBdWRp
b1Nlc3Npb25DYXRlZ29yeTo6UGxheUFuZFJlY29yZCk7CiAKICAgICBpZiAoYXV0byBlcnJvciA9
IHN0YXJ0SW50ZXJuYWwoKSkgewogICAgICAgICBjYXB0dXJlRmFpbGVkKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2Uu
Y3BwCmluZGV4IGM0NjYyZDRhNmQxZjMyNDQwOWQzOWNkYTU4Mjk4YWY4OTkxMzhkMjUuLmRlN2Iy
ZDU1OWFlNzYxMGYxOThiYTI4ODkyZDBjYzVmMTdmOGU1YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwCkBA
IC0xMzcsNyArMTM3LDcgQEAgdm9pZCBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6c3RhcnRQcm9k
dWNpbmdEYXRhKCkKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIFJlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5zZXRBY3RpdmVT
b3VyY2UoKnRoaXMpOwogICAgIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVkTWFu
YWdlcigpLnNlc3Npb25DYW5Qcm9kdWNlQXVkaW9DaGFuZ2VkKCk7Ci0gICAgQVNTRVJUKEF1ZGlv
U2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLmNhdGVnb3J5KCkgPT0gQXVkaW9TZXNzaW9uOjpQbGF5
QW5kUmVjb3JkKTsKKyAgICBBU1NFUlQoQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuY2F0
ZWdvcnkoKSA9PSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6UGxheUFuZFJlY29yZCk7CiAjZW5kaWYK
IAogICAgIGlmICghc2FtcGxlUmF0ZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3Bw
CmluZGV4IDQ5MmRmMmZjN2M3ZjE5ZmMzZTliOWIxNDM2MzRmMDdlYjI5OGQ1ZWIuLjM1ZGUwZDE2
ZTA1MDUwMjk0ZjBjYzliYzQyMTIyNTQ1MDhhN2M2N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5jcHAKQEAgLTQ5NzUsMTkgKzQ5NzUsMTkgQEAgU3RyaW5nIEludGVybmFsczo6YXVk
aW9TZXNzaW9uQ2F0ZWdvcnkoKSBjb25zdAogewogI2lmIFVTRShBVURJT19TRVNTSU9OKQogICAg
IHN3aXRjaCAoQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuY2F0ZWdvcnkoKSkgewotICAg
IGNhc2UgQXVkaW9TZXNzaW9uOjpBbWJpZW50U291bmQ6CisgICAgY2FzZSBBdWRpb1Nlc3Npb25D
YXRlZ29yeTo6QW1iaWVudFNvdW5kOgogICAgICAgICByZXR1cm4gIkFtYmllbnRTb3VuZCJfczsK
LSAgICBjYXNlIEF1ZGlvU2Vzc2lvbjo6U29sb0FtYmllbnRTb3VuZDoKKyAgICBjYXNlIEF1ZGlv
U2Vzc2lvbkNhdGVnb3J5OjpTb2xvQW1iaWVudFNvdW5kOgogICAgICAgICByZXR1cm4gIlNvbG9B
bWJpZW50U291bmQiX3M7Ci0gICAgY2FzZSBBdWRpb1Nlc3Npb246Ok1lZGlhUGxheWJhY2s6Cisg
ICAgY2FzZSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6TWVkaWFQbGF5YmFjazoKICAgICAgICAgcmV0
dXJuICJNZWRpYVBsYXliYWNrIl9zOwotICAgIGNhc2UgQXVkaW9TZXNzaW9uOjpSZWNvcmRBdWRp
bzoKKyAgICBjYXNlIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpSZWNvcmRBdWRpbzoKICAgICAgICAg
cmV0dXJuICJSZWNvcmRBdWRpbyJfczsKLSAgICBjYXNlIEF1ZGlvU2Vzc2lvbjo6UGxheUFuZFJl
Y29yZDoKKyAgICBjYXNlIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpQbGF5QW5kUmVjb3JkOgogICAg
ICAgICByZXR1cm4gIlBsYXlBbmRSZWNvcmQiX3M7Ci0gICAgY2FzZSBBdWRpb1Nlc3Npb246OkF1
ZGlvUHJvY2Vzc2luZzoKKyAgICBjYXNlIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpBdWRpb1Byb2Nl
c3Npbmc6CiAgICAgICAgIHJldHVybiAiQXVkaW9Qcm9jZXNzaW5nIl9zOwotICAgIGNhc2UgQXVk
aW9TZXNzaW9uOjpOb25lOgorICAgIGNhc2UgQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6Ok5vbmU6CiAg
ICAgICAgIHJldHVybiAiTm9uZSJfczsKICAgICB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCA2
YTJjODcwZjdhYWExYjBkYjAwMGVmODg4MjdjOWEwZjYxZGNmMjViLi4wOTdkYTU5ZTQwZjRkMGZj
MWYxNjk2NmQ2NjQ3ZmExNTgzODgzYjgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC02MSw4ICs2MSwxMiBA
QAogI2luY2x1ZGUgIldlYkVycm9ycy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NNZXNzYWdlcy5o
IgogCisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVNlc3Npb25N
YW5hZ2VyQ29jb2EuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhU2Vzc2lvbk1hbmFnZXJpT1Mu
aD4KKyNlbmRpZgorCiAjaW5jbHVkZSA8V2ViQ29yZS9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlci5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmg+
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC04MCw5
ICs4NCwxOSBAQCBwcml2YXRlOgogICAgIHZvaWQgYWRkTWVzc2FnZVJlY2VpdmVyKElQQzo6U3Ry
aW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6TWVzc2FnZVJlY2VpdmVyJiBy
ZWNlaXZlcikgZmluYWwgeyB9CiAgICAgdm9pZCByZW1vdmVNZXNzYWdlUmVjZWl2ZXIoSVBDOjpT
dHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSkgZmluYWwgeyB9CiAgICAgSVBDOjpD
b25uZWN0aW9uJiBjb25uZWN0aW9uKCkgZmluYWwgeyByZXR1cm4gbV9wcm9jZXNzLmNvbm5lY3Rp
b24oKTsgfQotICAgIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlciYgc2Vzc2lvbk1hbmFnZXIo
KSBmaW5hbCB7IHJldHVybiBtX3Byb2Nlc3Muc2Vzc2lvbk1hbmFnZXIoKTsgfQotICAgIHZvaWQg
d2lsbFN0YXJ0Q2FtZXJhQ2FwdHVyZSgpIGZpbmFsIHsgc2Vzc2lvbk1hbmFnZXIoKS5wcmVwYXJl
VG9TZW5kVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoKTsgfQorICAgIHZvaWQgd2lsbFN0YXJ0
Q2FtZXJhQ2FwdHVyZSgpIGZpbmFsCisgICAgeworI2lmIFBMQVRGT1JNKElPUykKKyAgICAgICAg
aWYgKCFtX3Nob3VsZFByZXBhcmVUb1NlbmRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCkKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgbV9zaG91bGRQcmVwYXJlVG9TZW5kVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3QgPSBmYWxzZTsKKyAgICAgICAgTWVkaWFTZXNzaW9uTWFuYWdlcmlP
Uzo6cHJvdmlkZVByZXNlbnRpbmdBcHBsaWNhdGlvblBJRCgpOworI2VuZGlmCisgICAgfQogCisj
aWYgUExBVEZPUk0oSU9TKQorICAgIGJvb2wgbV9zaG91bGRQcmVwYXJlVG9TZW5kVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3QgeyB0cnVlIH07CisjZW5kaWYKICAgICBHUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzJiBtX3Byb2Nlc3M7CiB9OwogI2VuZGlmCkBAIC0xOTksNiArMjEzLDIxIEBAIExp
YldlYlJUQ0NvZGVjc1Byb3h5JiBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpsaWJXZWJSVEND
b2RlY3NQcm94eSgpCiB9CiAjZW5kaWYKIAorI2lmIFVTRShBVURJT19TRVNTSU9OKQordm9pZCBH
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjp0cnlUb1NldEF1ZGlvU2Vzc2lvbkFzQWN0aXZlKGJv
b2wgaXNBY3RpdmUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCit7CisgICAgY29tcGxldGlvbkhhbmRsZXIoQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNz
aW9uKCkudHJ5VG9TZXRBY3RpdmUoaXNBY3RpdmUpKTsKK30KKwordm9pZCBHUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOjp1cGRhdGVBdWRpb1Nlc3Npb25QYXJhbWV0ZXJzKHNpemVfdCBidWZmZXJT
aXplLCBPcHRpb25hbDxXZWJDb3JlOjpBdWRpb1Nlc3Npb25DYXRlZ29yeT4gY2F0ZWdvcnksIE9w
dGlvbmFsPFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeT4gcG9saWN5KQoreworICAgIGlmIChi
dWZmZXJTaXplKQorICAgICAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zZXRQcmVm
ZXJyZWRCdWZmZXJTaXplKGJ1ZmZlclNpemUpOworICAgIGlmIChjYXRlZ29yeSAmJiBwb2xpY3kp
CisgICAgICAgIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldENhdGVnb3J5KCpjYXRl
Z29yeSwgKnBvbGljeSk7Cit9CisjZW5kaWYKKwogdm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjpjcmVhdGVSZW5kZXJpbmdCYWNrZW5kKFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyIHJl
bmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKQogewogICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9yZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHlNYXAuZW5zdXJlKHJlbmRlcmluZ0JhY2tlbmRJZGVudGlm
aWVyLCBbJl0oKSB7CkBAIC0zMDksMTMgKzMzOCw2IEBAIGNvbnN0IFN0cmluZyYgR1BVQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6bWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeSgpIGNvbnN0CiB9CiAj
ZW5kaWYKIAotUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyJiBHUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpzZXNzaW9uTWFuYWdlcigpCi17Ci0gICAgaWYgKCFtX3Nlc3Npb25NYW5hZ2VyKQot
ICAgICAgICBtX3Nlc3Npb25NYW5hZ2VyID0gUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpj
cmVhdGUoKTsKLSAgICByZXR1cm4gKm1fc2Vzc2lvbk1hbmFnZXI7Ci19Ci0KICNpZiBFTkFCTEUo
TUVESUFfU1RSRUFNKQogdm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzZXRPcmllbnRh
dGlvbkZvck1lZGlhQ2FwdHVyZSh1aW50NjRfdCBvcmllbnRhdGlvbikKIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCmluZGV4
IDc0NzE1YzgwYzU0NWJlYWZlYzNmNmI3ZTA5ODRlY2E1MGNiYTI2NjkuLmVhYTIwNjliNWEyNDgy
MDA5MzQ5MWRiMzg4YjlkMjNjMmZhZDIxOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtODMsOCArODMsNiBAQCBw
dWJsaWM6CiAgICAgdm9pZCBzZXRPcmllbnRhdGlvbkZvck1lZGlhQ2FwdHVyZSh1aW50NjRfdCBv
cmllbnRhdGlvbik7CiAjZW5kaWYKIAotICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9u
TWFuYWdlciYgc2Vzc2lvbk1hbmFnZXIoKTsKLQogcHJpdmF0ZToKICAgICBHUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzKEdQVVByb2Nlc3MmLCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciwgSVBD
OjpDb25uZWN0aW9uOjpJZGVudGlmaWVyLCBQQUw6OlNlc3Npb25JRCk7CiAKQEAgLTEwMCw2ICs5
OCwxMSBAQCBwcml2YXRlOgogICAgIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
TWFuYWdlciYgYXVkaW9UcmFja1JlbmRlcmVyTWFuYWdlcigpOwogICAgIFJlbW90ZVNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllck1hbmFnZXImIHNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIo
KTsKICNlbmRpZgorI2VuZGlmCisKKyNpZiBVU0UoQVVESU9fU0VTU0lPTikKKyAgICB2b2lkIHRy
eVRvU2V0QXVkaW9TZXNzaW9uQXNBY3RpdmUoYm9vbCBpc0FjdGl2ZSwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJik7CisgICAgdm9pZCB1cGRhdGVBdWRpb1Nlc3Npb25QYXJhbWV0ZXJz
KHNpemVfdCBidWZmZXJTaXplLCBPcHRpb25hbDxXZWJDb3JlOjpBdWRpb1Nlc3Npb25DYXRlZ29y
eT4sIE9wdGlvbmFsPFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeT4pOwogI2VuZGlmCiAgICAg
dm9pZCBjcmVhdGVSZW5kZXJpbmdCYWNrZW5kKFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKTsK
ICAgICB2b2lkIHJlbGVhc2VSZW5kZXJpbmdCYWNrZW5kKFJlbmRlcmluZ0JhY2tlbmRJZGVudGlm
aWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggOTMyYzAxMjJkZTA4MWVkZTli
YjllZmI1NmY5YmM1MjU5YmE0ZDcwNC4uMjVkYzQ3NGJhYjU1NmRjMmE3NzE5ZDBkZTgwMmZkOGJk
OGE1NjMxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTIzLDYgKzIzLDExIEBA
CiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCiBtZXNzYWdlcyAtPiBHUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzIFdhbnRzRGlzcGF0Y2hNZXNzYWdlIHsKKyNpZiBVU0UoQVVESU9fU0VTU0lPTikK
KyAgICB2b2lkIFRyeVRvU2V0QXVkaW9TZXNzaW9uQXNBY3RpdmUoYm9vbCBpc0FjdGl2ZSkgLT4g
KGJvb2wgcmVzdWx0KSBTeW5jaHJvbm91cworICAgIHZvaWQgVXBkYXRlQXVkaW9TZXNzaW9uUGFy
YW1ldGVycyh1aW50NjRfdCBidWZmZXJTaXplLCBPcHRpb25hbDxXZWJDb3JlOjpBdWRpb1Nlc3Np
b25DYXRlZ29yeT4gY2F0ZWdvcnksIE9wdGlvbmFsPFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGlj
eT4gcG9saWN5KQorI2VuZGlmCisKICAgICB2b2lkIENyZWF0ZVJlbmRlcmluZ0JhY2tlbmQoV2Vi
S2l0OjpSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllciByZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmll
cikKICAgICB2b2lkIFJlbGVhc2VSZW5kZXJpbmdCYWNrZW5kKFdlYktpdDo6UmVuZGVyaW5nQmFj
a2VuZElkZW50aWZpZXIgcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIpCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHkuY3BwCmluZGV4IGJkYWZhNTNlYWJlZDg2Y2NhMzE5YjJhYjM4YmM0MTFjOGRk
YTA1ZTMuLjVjNTMxYTY4OGYzOWZlZTBjNjlhZjU0MTgyNzc5ZjVkYjE2NDlhMWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHkuY3BwCkBAIC00NiwzMCArNDYsMjIgQEAgdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CiAKIGNsYXNzIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJjZVBy
b3h5CiAgICAgOiBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZTo6T2JzZXJ2ZXIKLSAgICAsIHB1
YmxpYyBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTo6Q2xpZW50Ci0gICAgLCBwdWJsaWMgUGxhdGZv
cm1NZWRpYVNlc3Npb246OkF1ZGlvQ2FwdHVyZVNvdXJjZSB7CisgICAgLCBwdWJsaWMgU2hhcmVk
UmluZ0J1ZmZlclN0b3JhZ2U6OkNsaWVudCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CiBwdWJsaWM6Ci0gICAgU291cmNlUHJveHkoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIg
aWQsIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlciYgc2Vzc2lvbk1hbmFnZXIsIFJlZjxJUEM6
OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbiwgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYgc291
cmNlKQorICAgIFNvdXJjZVByb3h5KFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkLCBS
ZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIFJlZjxSZWFsdGltZU1lZGlhU291cmNl
PiYmIHNvdXJjZSkKICAgICAgICAgOiBtX2lkKGlkKQotICAgICAgICAsIG1fc2Vzc2lvbk1hbmFn
ZXIobWFrZVdlYWtQdHIoc2Vzc2lvbk1hbmFnZXIpKQogICAgICAgICAsIG1fY29ubmVjdGlvbihX
VEZNb3ZlKGNvbm5lY3Rpb24pKQogICAgICAgICAsIG1fc291cmNlKFdURk1vdmUoc291cmNlKSkK
ICAgICAgICAgLCBtX3JpbmdCdWZmZXIobWFrZVVuaXF1ZVJlZjxTaGFyZWRSaW5nQnVmZmVyU3Rv
cmFnZT4obWFrZVVuaXF1ZVJlZjxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZT4odGhpcykpKQogICAg
IHsKICAgICAgICAgbV9zb3VyY2UtPmFkZE9ic2VydmVyKCp0aGlzKTsKLQotICAgICAgICBpZiAo
bV9zb3VyY2UtPnR5cGUoKSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbykKLSAg
ICAgICAgICAgIHNlc3Npb25NYW5hZ2VyLmFkZEF1ZGlvQ2FwdHVyZVNvdXJjZSgqdGhpcyk7CiAg
ICAgfQogCiAgICAgflNvdXJjZVByb3h5KCkKICAgICB7CiAgICAgICAgIHN0b3JhZ2UoKS5pbnZh
bGlkYXRlKCk7CiAgICAgICAgIG1fc291cmNlLT5yZW1vdmVPYnNlcnZlcigqdGhpcyk7Ci0KLSAg
ICAgICAgaWYgKG1fc291cmNlLT50eXBlKCkgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6
QXVkaW8gJiYgbV9zZXNzaW9uTWFuYWdlcikKLSAgICAgICAgICAgIG1fc2Vzc2lvbk1hbmFnZXIt
PnJlbW92ZUF1ZGlvQ2FwdHVyZVNvdXJjZSgqdGhpcyk7CiAgICAgfQogCiAgICAgUmVhbHRpbWVN
ZWRpYVNvdXJjZSYgc291cmNlKCkgeyByZXR1cm4gbV9zb3VyY2U7IH0KQEAgLTc3LDE0ICs2OSw2
IEBAIHB1YmxpYzoKICAgICBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uKCkg
eyByZXR1cm4gbV9kZXNjcmlwdGlvbjsgfQogICAgIGludDY0X3QgbnVtYmVyT2ZGcmFtZXMoKSB7
IHJldHVybiBtX251bWJlck9mRnJhbWVzOyB9CiAKLSAgICBib29sIGlzQ2FwdHVyaW5nQXVkaW8o
KSBjb25zdCBmaW5hbCB7IHJldHVybiAhbV9pc0VuZGVkICYmIG1fc291cmNlLT5pc1Byb2R1Y2lu
Z0RhdGEoKTsgfQotCi0gICAgdm9pZCBhdWRpb1VuaXRXaWxsU3RhcnQoKSBmaW5hbAotICAgIHsK
LSAgICAgICAgaWYgKCFtX2lzRW5kZWQgJiYgbV9zZXNzaW9uTWFuYWdlcikKLSAgICAgICAgICAg
IG1fc2Vzc2lvbk1hbmFnZXItPnNlc3Npb25DYW5Qcm9kdWNlQXVkaW9DaGFuZ2VkKCk7Ci0gICAg
fQotCiAgICAgdm9pZCBzdGFydCgpCiAgICAgewogICAgICAgICBtX2lzRW5kZWQgPSBmYWxzZTsK
QEAgLTIxNCw3ICsxOTgsNyBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNy
ZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaQogICAgICAgICBhdXRv
IHNvdXJjZSA9IHNvdXJjZU9yRXJyb3Iuc291cmNlKCk7CiAgICAgICAgIHNldHRpbmdzID0gc291
cmNlLT5zZXR0aW5ncygpOwogICAgICAgICBBU1NFUlQoIW1fcHJveGllcy5jb250YWlucyhpZCkp
OwotICAgICAgICBtX3Byb3hpZXMuYWRkKGlkLCBtYWtlVW5pcXVlPFNvdXJjZVByb3h5PihpZCwg
bV9jb25uZWN0aW9uUHJveHktPnNlc3Npb25NYW5hZ2VyKCksIG1fY29ubmVjdGlvblByb3h5LT5j
b25uZWN0aW9uKCksIFdURk1vdmUoc291cmNlKSkpOworICAgICAgICBtX3Byb3hpZXMuYWRkKGlk
LCBtYWtlVW5pcXVlPFNvdXJjZVByb3h5PihpZCwgbV9jb25uZWN0aW9uUHJveHktPmNvbm5lY3Rp
b24oKSwgV1RGTW92ZShzb3VyY2UpKSk7CiAgICAgfSBlbHNlCiAgICAgICAgIGludmFsaWRDb25z
dHJhaW50cyA9IFdURk1vdmUoc291cmNlT3JFcnJvci5lcnJvck1lc3NhZ2UpOwogICAgIGNvbXBs
ZXRpb25IYW5kbGVyKHN1Y2NlZWRlZCwgaW52YWxpZENvbnN0cmFpbnRzLCBXVEZNb3ZlKHNldHRp
bmdzKSk7CkBAIC0yNzAsNyArMjU0LDcgQEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5OjpjbG9uZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBjbG9uZWRJRCwKICAgICBB
U1NFUlQobV9wcm94aWVzLmNvbnRhaW5zKGNsb25lZElEKSk7CiAgICAgQVNTRVJUKCFtX3Byb3hp
ZXMuY29udGFpbnMobmV3U291cmNlSUQpKTsKICAgICBpZiAoYXV0byogcHJveHkgPSBtX3Byb3hp
ZXMuZ2V0KGNsb25lZElEKSkKLSAgICAgICAgbV9wcm94aWVzLmFkZChuZXdTb3VyY2VJRCwgbWFr
ZVVuaXF1ZTxTb3VyY2VQcm94eT4obmV3U291cmNlSUQsIG1fY29ubmVjdGlvblByb3h5LT5zZXNz
aW9uTWFuYWdlcigpLCBtX2Nvbm5lY3Rpb25Qcm94eS0+Y29ubmVjdGlvbigpLCBwcm94eS0+c291
cmNlKCkuY2xvbmUoKSkpOworICAgICAgICBtX3Byb3hpZXMuYWRkKG5ld1NvdXJjZUlELCBtYWtl
VW5pcXVlPFNvdXJjZVByb3h5PihuZXdTb3VyY2VJRCwgbV9jb25uZWN0aW9uUHJveHktPmNvbm5l
Y3Rpb24oKSwgcHJveHktPnNvdXJjZSgpLmNsb25lKCkpKTsKIH0KIAogdm9pZCBVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5OjpyZXF1ZXN0VG9FbmQoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50
aWZpZXIgc291cmNlSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgKaW5kZXggMjdiYzc3MGMwZDlj
OTE2N2E0OWE3ZDI5MGZhZmZkMzk5Mjg2NDg5Mi4uYTc2YWY5NmVhNTg0Y2IyMTI5NTI3YjJmMTI5
YWMyOGNjNmIyZDdlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaApAQCAtNTMsNyArNTMsNiBA
QCBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgdm9pZCBhZGRNZXNzYWdlUmVjZWl2ZXIoSVBDOjpT
dHJpbmdSZWZlcmVuY2UsIElQQzo6TWVzc2FnZVJlY2VpdmVyJikgPSAwOwogICAgICAgICB2aXJ0
dWFsIHZvaWQgcmVtb3ZlTWVzc2FnZVJlY2VpdmVyKElQQzo6U3RyaW5nUmVmZXJlbmNlKSA9IDA7
CiAgICAgICAgIHZpcnR1YWwgSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKCkgPSAwOwotICAg
ICAgICB2aXJ0dWFsIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlciYgc2Vzc2lv
bk1hbmFnZXIoKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCB3aWxsU3RhcnRDYW1lcmFDYXB0
dXJlKCkgeyB9CiAgICAgfTsKICAgICBleHBsaWNpdCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5KFVuaXF1ZVJlZjxDb25uZWN0aW9uUHJveHk+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXggOGI3MGQ2NDdlZTgyNmNhZGQyZDJiZmY3ZWRm
Mzg3ZjNjOGIwNGZkZi4uMDMyZjBiOTAwYWQ5ZjQ0MjI4ZjIwZTc2ODYyMGMyMWI2M2MyNjg5MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC0xNjAs
NyArMTYwLDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGFkZE1lc3NhZ2VSZWNlaXZlcihJUEM6OlN0
cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6Ok1lc3NhZ2VSZWNlaXZlciYg
cmVjZWl2ZXIpIGZpbmFsIHsgbV9wcm9jZXNzLmFkZE1lc3NhZ2VSZWNlaXZlcihtZXNzYWdlUmVj
ZWl2ZXJOYW1lLCByZWNlaXZlcik7IH0KICAgICB2b2lkIHJlbW92ZU1lc3NhZ2VSZWNlaXZlcihJ
UEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lKSBmaW5hbCB7IG1fcHJvY2Vz
cy5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIobWVzc2FnZVJlY2VpdmVyTmFtZSk7IH0KICAgICBJUEM6
OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24oKSBmaW5hbCB7IHJldHVybiAqbV9wcm9jZXNzLmNvbm5l
Y3Rpb24oKTsgfQotICAgIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlciYgc2Vzc2lvbk1hbmFn
ZXIoKSBmaW5hbCB7IHJldHVybiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZE1h
bmFnZXIoKTsgfQogCiAgICAgV2ViUHJvY2Vzc1Byb3h5JiBtX3Byb2Nlc3M7CiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVn
eS5jcHAKaW5kZXggMmFhZTVlNTQ0NTEwODQ3OWJkM2NkMzM5YWZhNmJmNmQyZGRhYmNmNi4uY2Jm
ODMxNDgzYTQ2NTE0OWNkZGIxNWI4NTlmOWE1MTJjMDZiNzQzZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuY3BwCkBA
IC0zMCwxMiArMzAsNDIgQEAKICNpbmNsdWRlICJSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHku
aCIKICNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvRGVzdGluYXRpb24uaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0F1ZGlvSU9DYWxsYmFjay5oPgorI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9TZXNzaW9uLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9DRE1GYWN0b3J5Lmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewog
CiBXZWJNZWRpYVN0cmF0ZWd5Ojp+V2ViTWVkaWFTdHJhdGVneSgpID0gZGVmYXVsdDsKIAorI2lm
IFVTRShBVURJT19TRVNTSU9OKQorYm9vbCBXZWJNZWRpYVN0cmF0ZWd5Ojp0cnlUb1NldEF1ZGlv
U2Vzc2lvbkFzQWN0aXZlKGJvb2wgaXNBY3RpdmUpCit7CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNT
KQorICAgIGlmIChtX3VzZUdQVVByb2Nlc3MpIHsKKyAgICAgICAgYXV0byYgY29ubmVjdGlvbiA9
IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkuY29u
bmVjdGlvbigpOworICAgICAgICBib29sIHJlc3VsdDsKKyAgICAgICAgY29ubmVjdGlvbi5zZW5k
U3luYyhNZXNzYWdlczo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6VHJ5VG9TZXRBdWRpb1Nl
c3Npb25Bc0FjdGl2ZSB7IGlzQWN0aXZlIH0sIE1lc3NhZ2VzOjpHUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpUcnlUb1NldEF1ZGlvU2Vzc2lvbkFzQWN0aXZlOjpSZXBseShyZXN1bHQpLCAwKTsK
KyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisjZW5kaWYKKyAgICByZXR1cm4gQXVkaW9T
ZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkudHJ5VG9TZXRBY3RpdmUoaXNBY3RpdmUpOworfQorCit2
b2lkIFdlYk1lZGlhU3RyYXRlZ3k6OnVwZGF0ZUF1ZGlvU2Vzc2lvblBhcmFtZXRlcnMoc2l6ZV90
IGJ1ZmZlclNpemUsIE9wdGlvbmFsPEF1ZGlvU2Vzc2lvbkNhdGVnb3J5PiBjYXRlZ29yeSwgT3B0
aW9uYWw8Um91dGVTaGFyaW5nUG9saWN5PiBwb2xpY3kpCit7CisjaWYgRU5BQkxFKEdQVV9QUk9D
RVNTKQorICAgIGlmIChtX3VzZUdQVVByb2Nlc3MpIHsKKyAgICAgICAgYXV0byYgY29ubmVjdGlv
biA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCku
Y29ubmVjdGlvbigpOworICAgICAgICBjb25uZWN0aW9uLnNlbmQoTWVzc2FnZXM6OkdQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M6OlVwZGF0ZUF1ZGlvU2Vzc2lvblBhcmFtZXRlcnMgeyBidWZmZXJT
aXplLCBjYXRlZ29yeSwgcG9saWN5IH0sIDApOworICAgICAgICByZXR1cm47CisgICAgfQorI2Vu
ZGlmCisgICAgQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2V0UHJlZmVycmVkQnVmZmVy
U2l6ZShidWZmZXJTaXplKTsKKyAgICBpZiAoY2F0ZWdvcnkgJiYgcG9saWN5KQorICAgICAgICBB
dWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zZXRDYXRlZ29yeSgqY2F0ZWdvcnksICpwb2xp
Y3kpOworfQorI2VuZGlmCisKICNpZiBFTkFCTEUoV0VCX0FVRElPKQogc3RkOjp1bmlxdWVfcHRy
PFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb24+IFdlYk1lZGlhU3RyYXRlZ3k6OmNyZWF0ZUF1ZGlv
RGVzdGluYXRpb24oV2ViQ29yZTo6QXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywgY29uc3QgU3Ry
aW5nJiBpbnB1dERldmljZUlkLAogICAgIHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscywg
dW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVn
eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5
LmgKaW5kZXggNGZhYjBlOTQ0ZmMxNGU2ODQzNzllMzAwODE2M2JlMTYyZGQ4OWI0ZC4uOWFmNjAx
Yzg3MmVlNTgxMzZmOGJhMzY2OGExYTQ0ZGFlOWQ4Zjc1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmgKQEAgLTM4LDYg
KzM4LDEwIEBAIHB1YmxpYzoKICNlbmRpZgogCiBwcml2YXRlOgorI2lmIFVTRShBVURJT19TRVNT
SU9OKQorICAgIGJvb2wgdHJ5VG9TZXRBdWRpb1Nlc3Npb25Bc0FjdGl2ZShib29sIGlzQWN0aXZl
KSBmaW5hbDsKKyAgICB2b2lkIHVwZGF0ZUF1ZGlvU2Vzc2lvblBhcmFtZXRlcnMoc2l6ZV90IGJ1
ZmZlclNpemUsIE9wdGlvbmFsPFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbkNhdGVnb3J5PiwgT3B0aW9u
YWw8V2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5PikgZmluYWw7CisjZW5kaWYKICNpZiBFTkFC
TEUoV0VCX0FVRElPKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0
aW9uPiBjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKFdlYkNvcmU6OkF1ZGlvSU9DYWxsYmFjayYsCiAg
ICAgICAgIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1
dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVS
YXRlKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdp
bnMvV2ViUGx1Z2luQ29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdp
bnMvV2ViUGx1Z2luQ29udHJvbGxlci5tbQppbmRleCAzZjI2ZGQ2YzY0NzIxNjZhYjJlM2JkM2Fl
NTIxMTBjMDMwMDkzYjBmLi4zNzBmOTNiYzg0ODk0ODI1ZjIxY2VlZDNmNmFkYzg2ZTZiNmVjMDA2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL1dlYlBsdWdpbkNv
bnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJQbHVn
aW5Db250cm9sbGVyLm1tCkBAIC0xMTEsNyArMTExLDcgQEAgc3RhdGljIHZvaWQgaW5pdGlhbGl6
ZUF1ZGlvU2Vzc2lvbigpCiAgICAgaWYgKCFXZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNNb2Jp
bGVTYWZhcmkoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9u
OjpzaGFyZWRTZXNzaW9uKCkuc2V0Q2F0ZWdvcnkoV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpNZWRp
YVBsYXliYWNrLCBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3k6OkRlZmF1bHQpOworICAgIFdl
YkNvcmU6OkF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldENhdGVnb3J5KFdlYkNvcmU6
OkF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpNZWRpYVBsYXliYWNrLCBXZWJDb3JlOjpSb3V0ZVNoYXJp
bmdQb2xpY3k6OkRlZmF1bHQpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5tbSBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2ll
cy5tbQppbmRleCBiOTA5ZWNjNDM5YmNkM2M2ZjZkYTgwNDFjNmVmMjkzZmYzNDY2OTZmLi44YTk1
Y2Q4ZDcyNzVlNzBkZDgwY2Y0MmI5ZTBmYmI2NWNiZmZhYzUyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0K
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1T
dHJhdGVnaWVzLm1tCkBAIC0yOSw2ICsyOSw3IEBACiAjaW1wb3J0ICJXZWJQbHVnaW5QYWNrYWdl
LmgiCiAjaW1wb3J0ICJXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaCIKICNpbXBvcnQgPFdlYkNv
cmUvQXVkaW9EZXN0aW5hdGlvbi5oPgorI2ltcG9ydCA8V2ViQ29yZS9BdWRpb1Nlc3Npb24uaD4K
ICNpbXBvcnQgPFdlYkNvcmUvQmxvYlJlZ2lzdHJ5SW1wbC5oPgogI2ltcG9ydCA8V2ViQ29yZS9D
RE1GYWN0b3J5Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0NvbG9yLmg+CkBAIC02Nyw2ICs2OCwyMCBA
QCBQYXN0ZWJvYXJkU3RyYXRlZ3kqIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlUGFzdGVi
b2FyZFN0cmF0ZWd5KCkKIAogY2xhc3MgV2ViTWVkaWFTdHJhdGVneSBmaW5hbCA6IHB1YmxpYyBN
ZWRpYVN0cmF0ZWd5IHsKIHByaXZhdGU6CisjaWYgVVNFKEFVRElPX1NFU1NJT04pCisgICAgYm9v
bCB0cnlUb1NldEF1ZGlvU2Vzc2lvbkFzQWN0aXZlKGJvb2wgaXNBY3RpdmUpIGZpbmFsCisgICAg
eworICAgICAgICByZXR1cm4gQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkudHJ5VG9TZXRB
Y3RpdmUoaXNBY3RpdmUpOworICAgIH0KKworICAgIHZvaWQgdXBkYXRlQXVkaW9TZXNzaW9uUGFy
YW1ldGVycyhzaXplX3QgYnVmZmVyU2l6ZSwgT3B0aW9uYWw8V2ViQ29yZTo6QXVkaW9TZXNzaW9u
Q2F0ZWdvcnk+IGNhdGVnb3J5LCBPcHRpb25hbDxXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3k+
IHBvbGljeSkgZmluYWwKKyAgICB7CisgICAgICAgIGlmIChidWZmZXJTaXplKQorICAgICAgICAg
ICAgQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2V0UHJlZmVycmVkQnVmZmVyU2l6ZShi
dWZmZXJTaXplKTsKKyAgICAgICAgaWYgKGNhdGVnb3J5ICYmIHBvbGljeSkKKyAgICAgICAgICAg
IEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldENhdGVnb3J5KCpjYXRlZ29yeSwgKnBv
bGljeSk7CisgICAgfQorI2VuZGlmCiAjaWYgRU5BQkxFKFdFQl9BVURJTykKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlQXVkaW9EZXN0aW5hdGlvbihBdWRpb0lP
Q2FsbGJhY2smIGNhbGxiYWNrLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsCiAgICAgICAg
IHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRD
aGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSkgb3ZlcnJpZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0gYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCmluZGV4IGUyMGVlNzQ0NWNhOWIz
NTJmYTY3ZDg1ZjM0MWYyMjEyYTBkNjIwZTUuLjQ3NmM4ZjBiODFmODM3N2Y4NTM1ZmE0NGViOGVj
ODY3M2Q1YWZkODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViUHJlZmVyZW5jZXMubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJQcmVmZXJlbmNlcy5tbQpAQCAtNTQ0LDcgKzU0NCw3IEBAIHB1YmxpYzoKICAgICAgICAgW05T
TnVtYmVyIG51bWJlcldpdGhCb29sOmFsbG93c0lubGluZU1lZGlhUGxheWJhY2tBZnRlckZ1bGxz
Y3JlZW5dLCBXZWJLaXRBbGxvd3NJbmxpbmVNZWRpYVBsYXliYWNrQWZ0ZXJGdWxsc2NyZWVuUHJl
ZmVyZW5jZUtleSwKICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhCb29sOnJlcXVpcmVzUGxh
eXNJbmxpbmVBdHRyaWJ1dGVdLCBXZWJLaXRJbmxpbmVNZWRpYVBsYXliYWNrUmVxdWlyZXNQbGF5
c0lubGluZUF0dHJpYnV0ZUtleSwKICAgICAgICAgQE5PLCBXZWJLaXRNZWRpYUNvbnRyb2xzU2Nh
bGVXaXRoUGFnZVpvb21QcmVmZXJlbmNlS2V5LAotICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0
aFVuc2lnbmVkSW50OkF1ZGlvU2Vzc2lvbjo6Tm9uZV0sIFdlYktpdEF1ZGlvU2Vzc2lvbkNhdGVn
b3J5T3ZlcnJpZGUsCisgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoVW5zaWduZWRJbnQ6c3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpOb25lKV0sIFdlYktpdEF1
ZGlvU2Vzc2lvbkNhdGVnb3J5T3ZlcnJpZGUsCiAgICAgICAgIEBOTywgV2ViS2l0TWVkaWFEYXRh
TG9hZHNBdXRvbWF0aWNhbGx5UHJlZmVyZW5jZUtleSwKICNpZiBIQVZFKEFWS0lUKQogICAgICAg
ICBAWUVTLCBXZWJLaXRBVktpdEVuYWJsZWQsCkBAIC0yNDIyLDM3ICsyNDIyLDM4IEBAIHN0YXRp
YyBOU1N0cmluZyAqY2xhc3NJQkNyZWF0b3JJRCA9IG5pbDsKICAgICByZXR1cm4gW3NlbGYgX3Vu
c2lnbmVkSW50VmFsdWVGb3JLZXk6V2ViS2l0QXVkaW9TZXNzaW9uQ2F0ZWdvcnlPdmVycmlkZV07
CiB9CiAKLS0gKHZvaWQpc2V0QXVkaW9TZXNzaW9uQ2F0ZWdvcnlPdmVycmlkZToodW5zaWduZWQp
b3ZlcnJpZGUKKy0gKHZvaWQpc2V0QXVkaW9TZXNzaW9uQ2F0ZWdvcnlPdmVycmlkZToodW5zaWdu
ZWQpb3ZlcnJpZGVWYWx1ZQogewotICAgIGlmIChvdmVycmlkZSA+IEF1ZGlvU2Vzc2lvbjo6QXVk
aW9Qcm9jZXNzaW5nKSB7CisgICAgYXV0byBvdmVycmlkZSA9IHN0YXRpY19jYXN0PEF1ZGlvU2Vz
c2lvbkNhdGVnb3J5PihvdmVycmlkZVZhbHVlKTsKKyAgICBpZiAob3ZlcnJpZGVWYWx1ZSA+IHN0
YXRpY19jYXN0PHVuc2lnbmVkPihBdWRpb1Nlc3Npb25DYXRlZ29yeTo6QXVkaW9Qcm9jZXNzaW5n
KSkgewogICAgICAgICAvLyBDbGllbnRzIGFyZSBwYXNzaW5nIHVzIE9TVHlwZXMgdmFsdWVzIGZy
b20gQXVkaW9Ub29sYm94L0F1ZGlvU2Vzc2lvbi5oLAotICAgICAgICAvLyB3aGljaCBuZWVkIHRv
IGJlIHRyYW5zbGF0ZWQgaW50byBBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZToKLSAgICAgICAg
c3dpdGNoIChvdmVycmlkZSkgeworICAgICAgICAvLyB3aGljaCBuZWVkIHRvIGJlIHRyYW5zbGF0
ZWQgaW50byBBdWRpb1Nlc3Npb25DYXRlZ29yeToKKyAgICAgICAgc3dpdGNoIChvdmVycmlkZVZh
bHVlKSB7CiAgICAgICAgIGNhc2UgV2ViS2l0QXVkaW9TZXNzaW9uQ2F0ZWdvcnlBbWJpZW50U291
bmQ6Ci0gICAgICAgICAgICBvdmVycmlkZSA9IEF1ZGlvU2Vzc2lvbjo6QW1iaWVudFNvdW5kOwor
ICAgICAgICAgICAgb3ZlcnJpZGUgPSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6QW1iaWVudFNvdW5k
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgV2ViS2l0QXVkaW9TZXNzaW9uQ2F0
ZWdvcnlTb2xvQW1iaWVudFNvdW5kOgotICAgICAgICAgICAgb3ZlcnJpZGUgPSBBdWRpb1Nlc3Np
b246OlNvbG9BbWJpZW50U291bmQ7CisgICAgICAgICAgICBvdmVycmlkZSA9IEF1ZGlvU2Vzc2lv
bkNhdGVnb3J5OjpTb2xvQW1iaWVudFNvdW5kOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IGNhc2UgV2ViS2l0QXVkaW9TZXNzaW9uQ2F0ZWdvcnlNZWRpYVBsYXliYWNrOgotICAgICAgICAg
ICAgb3ZlcnJpZGUgPSBBdWRpb1Nlc3Npb246Ok1lZGlhUGxheWJhY2s7CisgICAgICAgICAgICBv
dmVycmlkZSA9IEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpNZWRpYVBsYXliYWNrOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIGNhc2UgV2ViS2l0QXVkaW9TZXNzaW9uQ2F0ZWdvcnlSZWNvcmRB
dWRpbzoKLSAgICAgICAgICAgIG92ZXJyaWRlID0gQXVkaW9TZXNzaW9uOjpSZWNvcmRBdWRpbzsK
KyAgICAgICAgICAgIG92ZXJyaWRlID0gQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6OlJlY29yZEF1ZGlv
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgV2ViS2l0QXVkaW9TZXNzaW9uQ2F0
ZWdvcnlQbGF5QW5kUmVjb3JkOgotICAgICAgICAgICAgb3ZlcnJpZGUgPSBBdWRpb1Nlc3Npb246
OlBsYXlBbmRSZWNvcmQ7CisgICAgICAgICAgICBvdmVycmlkZSA9IEF1ZGlvU2Vzc2lvbkNhdGVn
b3J5OjpQbGF5QW5kUmVjb3JkOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgV2Vi
S2l0QXVkaW9TZXNzaW9uQ2F0ZWdvcnlBdWRpb1Byb2Nlc3Npbmc6Ci0gICAgICAgICAgICBvdmVy
cmlkZSA9IEF1ZGlvU2Vzc2lvbjo6QXVkaW9Qcm9jZXNzaW5nOworICAgICAgICAgICAgb3ZlcnJp
ZGUgPSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6QXVkaW9Qcm9jZXNzaW5nOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBvdmVycmlkZSA9IEF1ZGlvU2Vz
c2lvbjo6Tm9uZTsKKyAgICAgICAgICAgIG92ZXJyaWRlID0gQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6
Ok5vbmU7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0KIAotICAgIFtzZWxm
IF9zZXRVbnNpZ25lZEludFZhbHVlOm92ZXJyaWRlIGZvcktleTpXZWJLaXRBdWRpb1Nlc3Npb25D
YXRlZ29yeU92ZXJyaWRlXTsKKyAgICBbc2VsZiBfc2V0VW5zaWduZWRJbnRWYWx1ZTpzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4ob3ZlcnJpZGUpIGZvcktleTpXZWJLaXRBdWRpb1Nlc3Npb25DYXRlZ29y
eU92ZXJyaWRlXTsKIH0KIAogLSAoQk9PTClhdktpdEVuYWJsZWQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392437</attachid>
            <date>2020-03-04 10:12:08 -0800</date>
            <delta_ts>2020-03-04 10:48:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208578-20200304191205.patch</filename>
            <type>text/plain</type>
            <size>63156</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3ODM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzNhODhkNjVmYjEzYTYx
Y2RmNjNmNjY2OTU0MjU1MDgzN2YzOWFiOS4uOTc0NGI3NmNhMDVhNjVmMGIxNzlmZGJmYmRhM2Ux
Y2YyZTM4YmQwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDIwLTAzLTA0ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBFeHBvcnQgQXVkaW9TZXNz
aW9uIGNvbW1hbmRzIHRvIEdQVVByb2Nlc3Mgd2hlbiBtZWRpYSBwbGF5aW5nIGlzIGVuYWJsZWQg
aW4gR1BVUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjA4NTc4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkIHR3byBjb21tYW5kcyB0byBtZWRpYSBzdHJhdGVnaWVzIHRvIHNldCB0aGUgQXVk
aW9TZXNzaW9uIHBhcmFtZXRlcnMgYW5kIGFjdGl2YXRlL2RlYWN0aXZhdGUgdGhlIEF1ZGlvU2Vz
c2lvbi4KKyAgICAgICAgVXBkYXRlIGNvZGUgdG8gbWFrZSBBdWRpb1Nlc3Npb246OkNhdGVnb3J5
VHlwZSBhbmQgZW51bSBjbGFzcywgcmVuYW1lZCBBdWRpb1Nlc3Npb25DYXRlZ29yeS4KKyAgICAg
ICAgQWN0dWFsIGltcGxlbWVudGF0aW9uIG9mIHRoZSBjb21tYW5kcyBpcyBsZWZ0IGluIE1lZGlh
U2Vzc2lvbk1hbmFnZXJDb2NvYSBhcyBzdGF0aWMgbWV0aG9kcyB0aGF0IGNhbiBiZSB1c2VkIGlu
IHByb2Nlc3Mgb3Igb3V0IG9mIHByb2Nlc3MuCisKKyAgICAgICAgTWFudWFsbHkgdGVzdGVkIGFu
ZCBjb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBhZ2UvRGVwcmVjYXRlZEdsb2JhbFNldHRp
bmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlcHJlY2F0ZWRHbG9iYWxTZXR0aW5nczo6c2V0
QXVkaW9TZXNzaW9uQ2F0ZWdvcnlPdmVycmlkZSk6CisgICAgICAgIChXZWJDb3JlOjpEZXByZWNh
dGVkR2xvYmFsU2V0dGluZ3M6OmF1ZGlvU2Vzc2lvbkNhdGVnb3J5T3ZlcnJpZGUpOgorICAgICAg
ICAqIHBsYXRmb3JtL01lZGlhU3RyYXRlZ3kuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9B
dWRpb1Nlc3Npb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpjYXRlZ29y
eU92ZXJyaWRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6c2V0Q2F0
ZWdvcnlPdmVycmlkZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Nlc3Npb246OmNhdGVnb3J5
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzZXNzaW9uV2lsbEJlZ2luUGxheWJh
Y2spOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpwcm9j
ZXNzRGlkUmVzdW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uTWFu
YWdlcjo6bWF5YmVEZWFjdGl2YXRlQXVkaW9TZXNzaW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9h
dWRpby9jb2NvYS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EubW06CisgICAgICAgIChNZWRpYVNl
c3Npb25NYW5hZ2VyQ29jb2E6OnVwZGF0ZVNlc3Npb25TdGF0ZSk6CisgICAgICAgICogcGxhdGZv
cm0vYXVkaW8vaW9zL0F1ZGlvU2Vzc2lvbklPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OmNhdGVn
b3J5TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Nlc3Npb25Qcml2YXRlOjpBdWRpb1Nl
c3Npb25Qcml2YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdv
cnkpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpjYXRlZ29yeSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5T3ZlcnJpZGUpOgorICAg
ICAgICAoV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpjYXRlZ29yeU92ZXJyaWRlIGNvbnN0KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlcmlPUzo6cHJvdmlkZVByZXNlbnRpbmdB
cHBsaWNhdGlvblBJRElmTmVjZXNzYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lv
bk1hbmFnZXJpT1M6OnByb3ZpZGVQcmVzZW50aW5nQXBwbGljYXRpb25QSUQpOgorICAgICAgICAq
IHBsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb1Nlc3Npb25NYWMuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QXVkaW9TZXNzaW9uOjpjYXRlZ29yeSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRp
b1Nlc3Npb246OnNldENhdGVnb3J5KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6
Y2F0ZWdvcnlPdmVycmlkZSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL0Jhc2VBdWRpb1NoYXJlZFVuaXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmFzZUF1ZGlv
U2hhcmVkVW5pdDo6c3RhcnRVbml0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFs
dGltZUF1ZGlvU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZUF1ZGlv
U291cmNlOjpzdGFydFByb2R1Y2luZ0RhdGEpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxz
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6YXVkaW9TZXNzaW9uQ2F0ZWdvcnkg
Y29uc3QpOgorCiAyMDIwLTAzLTAzICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4K
IAogICAgICAgICBXZWIgSW5zcGVjdG9yOiByZS1hZGQgYEluc3BlY3RvckZyb250ZW5kSG9zdGAg
c3VwcG9ydCBmb3IgbW92aW5nIHRoZSBpbnNwZWN0ZWQgd2luZG93CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDdmNDk3
N2YzNzI3MDZkMzMwYWFlZjFjMzkzMzUwMGFjNDA2NDI5MjUuLmM3MTE3ZGRlOWQ2ZDFlNWE4Mjg0
MWY3Y2Q4YTc5YjNlMzBkYmZiM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMjAtMDMt
MDQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEV4cG9ydCBB
dWRpb1Nlc3Npb24gY29tbWFuZHMgdG8gR1BVUHJvY2VzcyB3aGVuIG1lZGlhIHBsYXlpbmcgaXMg
ZW5hYmxlZCBpbiBHUFVQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDg1NzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBTZW5kIElQQyBjb21tYW5kcyByZWxhdGVkIHRvIEF1ZGlvU2Vzc2lvbiBm
cm9tIFdlYlByb2Nlc3MgdG8gR1BVUHJvY2VzcyBhbmQgZG8gdGhlIGFjdHVhbCB3b3JrIGluIEdQ
VVByb2Nlc3MuCisgICAgICAgIFdlIGtlZXAgYSBzeW5jIElQQyBmb3Igbm93IHdoZW4gYWN0aXZh
dGluZyB0aGUgQXVkaW9TZXNzaW9uIGFuZCB3aWxsIHRyeSB0byByZW1vdmUgaXQgaW4gYSBmb2xs
b3ctdXAKKyAgICAgICAgVG8gbWFrZSB0aGlzIHdvcmssIHdlIHJlbW92ZSB0aGUgdXNlciBvZiBN
ZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EgaW4gR1BVUHJvY2Vzcywgd2hpY2ggd2FzIHVzZWQgZm9y
IGNhcHR1cmUuCisgICAgICAgIFdlIHJlcGxhY2UgaXQgYnkgZWl0aGVyIGRlZGljYXRlZCBjYWxs
cyBvciBieSB0aGUgY29tbWFuZHMgdGhhdCBhcmUgbm93IGNvbWluZyBmcm9tIFdlYlByb2Nlc3Mu
CisKKyAgICAgICAgKiBHUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjp0cnlUb1NldEF1ZGlv
U2Vzc2lvbkFzQWN0aXZlKToKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6dXBkYXRlQXVkaW9TZXNzaW9uUGFyYW1ldGVycyk6CisgICAgICAgICogR1BVUHJvY2Vz
cy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9D
b2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U291cmNlUHJveHk6OlNvdXJjZVByb3h5KToK
KyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U291cmNlUHJv
eHk6On5Tb3VyY2VQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHk6OmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50
cyk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNsb25l
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAq
IFdlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJNZWRpYVN0cmF0ZWd5Ojp0cnlUb1NldEF1ZGlvU2Vzc2lvbkFzQWN0aXZlKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViTWVkaWFTdHJhdGVneTo6dXBkYXRlQXVkaW9TZXNzaW9uUGFyYW1l
dGVycyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5o
OgorCiAyMDIwLTAzLTAzICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAg
ICAgICBXZWIgSW5zcGVjdG9yOiByZS1hZGQgYEluc3BlY3RvckZyb250ZW5kSG9zdGAgc3VwcG9y
dCBmb3IgbW92aW5nIHRoZSBpbnNwZWN0ZWQgd2luZG93CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VM
b2cKaW5kZXggMTY3ZmZjN2JiNTBiOWJhM2QyNTViZjA5NzY4YjM0YTk2ZDg3OTQzMS4uOWRhMjEw
M2NlZmNkMzBhOGQwMjZmMGZiYzMwYTY4ZjdmNTM0ZjUwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIwLTAzLTA0ICBZb3Vlbm4gRmFibGV0ICA8eW91
ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBFeHBvcnQgQXVkaW9TZXNzaW9uIGNvbW1hbmRzIHRv
IEdQVVByb2Nlc3Mgd2hlbiBtZWRpYSBwbGF5aW5nIGlzIGVuYWJsZWQgaW4gR1BVUHJvY2Vzcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4NTc4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIGluLXBy
b2Nlc3MgaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgKiBQbHVnaW5zL1dlYlBsdWdpbkNvbnRy
b2xsZXIubW06CisgICAgICAgIChpbml0aWFsaXplQXVkaW9TZXNzaW9uKToKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW06CisgICAgICAgICogV2ViVmll
dy9XZWJQcmVmZXJlbmNlcy5tbToKKyAgICAgICAgKCtbV2ViUHJlZmVyZW5jZXMgaW5pdGlhbGl6
ZV0pOgorICAgICAgICAoLVtXZWJQcmVmZXJlbmNlcyBzZXRBdWRpb1Nlc3Npb25DYXRlZ29yeU92
ZXJyaWRlOl0pOgorCiAyMDIwLTAzLTAzICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNv
bT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiByZS1hZGQgYEluc3BlY3RvckZyb250ZW5kSG9z
dGAgc3VwcG9ydCBmb3IgbW92aW5nIHRoZSBpbnNwZWN0ZWQgd2luZG93CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFr
ZQppbmRleCBkYmFhMWQ3YzA2NGE4Y2Q2ZTkzYTQzYmU1YWUyNjIwZTVkMjk2ODI2Li4xZmE2NjJm
NTVmY2I3MzNmYTNmNTY4NjFmZDdkY2M0ZmM5NDI4NWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAg
LTEwMjksMTEgKzEwMjksMTMgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVS
UwogICAgIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvSGFyZHdhcmVMaXN0ZW5lci5oCiAgICAgcGxhdGZv
cm0vYXVkaW8vQXVkaW9JT0NhbGxiYWNrLmgKICAgICBwbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Np
b24uaAorICAgIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbkNhdGVnb3J5LmgKICAgICBwbGF0
Zm9ybS9hdWRpby9BdWRpb1NvdXJjZVByb3ZpZGVyLmgKICAgICBwbGF0Zm9ybS9hdWRpby9BdWRp
b1N0cmVhbURlc2NyaXB0aW9uLmgKICAgICBwbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybUF1ZGlvRGF0
YS5oCiAgICAgcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb24uaAogICAgIHBsYXRm
b3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oCisgICAgcGxhdGZvcm0vYXVk
aW8vUm91dGVTaGFyaW5nUG9saWN5LmgKIAogICAgIHBsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NE
TUVuY3J5cHRpb25TY2hlbWUuaAogICAgIHBsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NETUZhY3Rv
cnkuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IGRmMDIzZWJkNGVkZGJmNjkzNDA1NzIzNjk3YWRlOWJmNTM5Njg1ODkuLjE0NWM0
MWFkZGQ2MjJjMDY3OGFlY2QzN2VkZTQyMzU5MjQwNmE2MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEwOTEsNiArMTA5MSw4
IEBACiAJCTQxNzYxMkIxMUUzQTk5NDAwMEMzRDgxRCAvKiBMaWJXZWJSVENQZWVyQ29ubmVjdGlv
bkJhY2tlbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDE3NjEyQUQxRTNBOTkzQjAwQzNEODFEIC8qIExpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFj
a2VuZC5jcHAgKi87IH07CiAJCTQxNzYxMkIyMUUzQTk5NDAwMEMzRDgxRCAvKiBMaWJXZWJSVENQ
ZWVyQ29ubmVjdGlvbkJhY2tlbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQxNzYxMkFFMUUzQTk5M0IwMEMzRDgxRCAvKiBMaWJXZWJSVENQZWVyQ29u
bmVjdGlvbkJhY2tlbmQuaCAqLzsgfTsKIAkJNDE3NkU4OTYyM0MzNTM3QjAwM0U4M0ZFIC8qIE1l
ZGlhUmVjb3JkZXJQcm92aWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDE3NkU4OEYyM0MzNDhEMjAwM0U4M0ZFIC8qIE1lZGlhUmVjb3JkZXJQcm92
aWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJ
CTQxNzhFRUZDMjQxMDAxRkQwMDE5M0M3NCAvKiBBdWRpb1Nlc3Npb25DYXRlZ29yeS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE3OEVFRjgyNDBGRUE4
RDAwMTkzQzc0IC8qIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDE3OEVFRkUyNDEwMDIwOTAwMTkzQzc0IC8q
IFJvdXRlU2hhcmluZ1BvbGljeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDE3OEVFRkEyNDBGRUVFODAwMTkzQzc0IC8qIFJvdXRlU2hhcmluZ1BvbGlj
eS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQx
N0RBNkQ5MTM3MzRFNkUwMDdDNTdGQiAvKiBJbnRlcm5hbHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE3REE0Q0YxMzczNDMyNjAwN0M1N0ZCIC8q
IEludGVybmFscy5jcHAgKi87IH07CiAJCTQxN0RBNkRBMTM3MzRFNkUwMDdDNTdGQiAvKiBJbnRl
cm5hbHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQx
N0RBNENFMTM3MzQzMjYwMDdDNTdGQiAvKiBJbnRlcm5hbHMuaCAqLzsgfTsKIAkJNDE3REE3MUQx
MzczNURGQTAwN0M1N0ZCIC8qIEpTSW50ZXJuYWxzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxN0RBNzFCMTM3MzVERkEwMDdDNTdGQiAvKiBKU0lu
dGVybmFscy5jcHAgKi87IH07CkBAIC03MzgxLDYgKzczODMsOCBAQAogCQk0MTc3MDQwQjIzRjcw
Q0FCMDAwQzU0RUUgLyogTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0MTc3RjUxQzIzODI1NDQwMDBDMDQ0ODYgLyogQmFzZUF1ZGlv
U2hhcmVkVW5pdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCYXNl
QXVkaW9TaGFyZWRVbml0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE3N0Y1
MUUyMzgyNTQ1RTAwQzA0NDg2IC8qIEJhc2VBdWRpb1NoYXJlZFVuaXQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQmFzZUF1ZGlvU2hhcmVkVW5pdC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk0MTc4RUVGODI0MEZFQThEMDAxOTNDNzQgLyogQXVkaW9TZXNzaW9u
Q2F0ZWdvcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9TZXNzaW9u
Q2F0ZWdvcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE3OEVFRkEyNDBGRUVF
ODAwMTkzQzc0IC8qIFJvdXRlU2hhcmluZ1BvbGljeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBSb3V0ZVNoYXJpbmdQb2xpY3kuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDE3REE0Q0UxMzczNDMyNjAwN0M1N0ZCIC8qIEludGVybmFscy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBJbnRlcm5hbHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDE3REE0Q0YxMzczNDMyNjAwN0M1N0ZCIC8qIEludGVybmFscy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnRlcm5hbHMuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0MTdEQTZEMDEzNzM0RTAyMDA3QzU3RkIgLyogbGliV2ViQ29y
ZVRlc3RTdXBwb3J0LmR5bGliICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0
RmlsZVR5cGUgPSAiY29tcGlsZWQubWFjaC1vLmR5bGliIjsgaW5jbHVkZUluSW5kZXggPSAwOyBw
YXRoID0gbGliV2ViQ29yZVRlc3RTdXBwb3J0LmR5bGliOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJP
RFVDVFNfRElSOyB9OwpAQCAtMjg3MzUsNiArMjg3MzksNyBAQAogCQkJCUZEMzE2MDUyMTJCMDI2
RjcwMEMxQTM1OSAvKiBBdWRpb1Jlc2FtcGxlcktlcm5lbC5oICovLAogCQkJCUNEQTc5ODIzMTcw
QTI1ODMwMEQ0NUM1NSAvKiBBdWRpb1Nlc3Npb24uY3BwICovLAogCQkJCUNEQTc5ODIxMTcwQTIy
REMwMEQ0NUM1NSAvKiBBdWRpb1Nlc3Npb24uaCAqLywKKwkJCQk0MTc4RUVGODI0MEZFQThEMDAx
OTNDNzQgLyogQXVkaW9TZXNzaW9uQ2F0ZWdvcnkuaCAqLywKIAkJCQlGRDMxNjA1MzEyQjAyNkY3
MDBDMUEzNTkgLyogQXVkaW9Tb3VyY2VQcm92aWRlci5oICovLAogCQkJCUZENjJGNTJEMTQ1ODk4
RDgwMDk0QjBFRCAvKiBBdWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50LmggKi8sCiAJCQkJMDczQjg3
NTYxRTQwRENFNTAwNzFDMEVDIC8qIEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaCAqLywKQEAgLTI4
NzkwLDYgKzI4Nzk1LDcgQEAKIAkJCQlGRDMxNjA3NTEyQjAyNkY3MDBDMUEzNTkgLyogUmV2ZXJi
Q29udm9sdmVyU3RhZ2UuaCAqLywKIAkJCQlGRDMxNjA3NjEyQjAyNkY3MDBDMUEzNTkgLyogUmV2
ZXJiSW5wdXRCdWZmZXIuY3BwICovLAogCQkJCUZEMzE2MDc3MTJCMDI2RjcwMEMxQTM1OSAvKiBS
ZXZlcmJJbnB1dEJ1ZmZlci5oICovLAorCQkJCTQxNzhFRUZBMjQwRkVFRTgwMDE5M0M3NCAvKiBS
b3V0ZVNoYXJpbmdQb2xpY3kuaCAqLywKIAkJCQlGRDAwRDdBMjE0QTNGNjE5MDA3MzQwMTEgLyog
U2luY1Jlc2FtcGxlci5jcHAgKi8sCiAJCQkJRkQwMEQ3QTMxNEEzRjYxOTAwNzM0MDExIC8qIFNp
bmNSZXNhbXBsZXIuaCAqLywKIAkJCQlGRDE3NjJERDE3NjY4NkQ5MDBEODM2QTggLyogVXBTYW1w
bGVyLmNwcCAqLywKQEAgLTI5MTE1LDYgKzI5MTIxLDcgQEAKIAkJCQkwNzNCODc2OTFFNDM4NUFD
MDA3MUMwRUMgLyogQXVkaW9TYW1wbGVEYXRhU291cmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlG
RDhDNDZFQzE1NDYwOEU3MDBBNTkxMEMgLyogQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlLmggaW4g
SGVhZGVycyAqLywKIAkJCQlDREE3OTgyQTE3MEEzRDAwMDBENDVDNTUgLyogQXVkaW9TZXNzaW9u
LmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTc4RUVGQzI0MTAwMUZEMDAxOTNDNzQgLyogQXVkaW9T
ZXNzaW9uQ2F0ZWdvcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2MDg5MTJCMDI2RjcwMEMx
QTM1OSAvKiBBdWRpb1NvdXJjZVByb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDhBN0JC
QzE5NzczNUZFMDBDQkQ2NDMgLyogQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUZENjJGNTJFMTQ1ODk4RDgwMDk0QjBFRCAvKiBBdWRpb1NvdXJjZVByb3Zp
ZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTMyMTY2LDYgKzMyMTczLDcgQEAKIAkJCQlB
OENGRjVFMTBBMTU1QTA1MDAwQTQyMzQgLyogUm9vdElubGluZUJveC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNDlFOTExQzkwRUY4NkQ0NzAwOUQwQ0FGIC8qIFJvdGF0ZVRyYW5zZm9ybU9wZXJhdGlv
bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTczRjk1RkYxMkM5N0JGRTAwMzFBQUY5IC8qIFJvdW5k
ZWRSZWN0LmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTc4RUVGRTI0MTAwMjA5MDAxOTNDNzQgLyog
Um91dGVTaGFyaW5nUG9saWN5LmggaW4gSGVhZGVycyAqLywKIAkJCQk1N0UyMzM2MzFEQzdEQTI0
MDBGMjhEMDEgLyogUnNhT3RoZXJQcmltZXNJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQkwN0FC
OTk2OTE4REEzQzAxMDAxODc3MUUgLyogUlRDQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNDE4MjA1NDcxRTUzRTk4QzAwRDYyMjA3IC8qIFJUQ0NvbnRyb2xsZXIuaCBpbiBIZWFk
ZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EZXByZWNhdGVkR2xvYmFs
U2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EZXByZWNhdGVkR2xvYmFsU2V0dGlu
Z3MuY3BwCmluZGV4IGNmNGNjYzgwZTkzOTM2ZDU2OGNkNTUwZTAyOGI2ODE1MmViOTRkMmQuLjY4
NzllMmQwMjA5MjZlNGQwZWQ3MTcxMzYwZmExYzc0NDM3MGE0MWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RlcHJlY2F0ZWRHbG9iYWxTZXR0aW5ncy5jcHAKQEAgLTE2MiwxMiArMTYy
LDEyIEBAIHZvaWQgRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzOjpzZXRSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRW5hYmxlZChib29sIGZsYWcpCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKIHZvaWQg
RGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzOjpzZXRBdWRpb1Nlc3Npb25DYXRlZ29yeU92ZXJyaWRl
KHVuc2lnbmVkIHNlc3Npb25DYXRlZ29yeSkKIHsKLSAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNl
c3Npb24oKS5zZXRDYXRlZ29yeU92ZXJyaWRlKHN0YXRpY19jYXN0PEF1ZGlvU2Vzc2lvbjo6Q2F0
ZWdvcnlUeXBlPihzZXNzaW9uQ2F0ZWdvcnkpKTsKKyAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNl
c3Npb24oKS5zZXRDYXRlZ29yeU92ZXJyaWRlKHN0YXRpY19jYXN0PEF1ZGlvU2Vzc2lvbkNhdGVn
b3J5PihzZXNzaW9uQ2F0ZWdvcnkpKTsKIH0KIAogdW5zaWduZWQgRGVwcmVjYXRlZEdsb2JhbFNl
dHRpbmdzOjphdWRpb1Nlc3Npb25DYXRlZ29yeU92ZXJyaWRlKCkKIHsKLSAgICByZXR1cm4gQXVk
aW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuY2F0ZWdvcnlPdmVycmlkZSgpOworICAgIHJldHVy
biBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuY2F0
ZWdvcnlPdmVycmlkZSgpKTsKIH0KIAogdm9pZCBEZXByZWNhdGVkR2xvYmFsU2V0dGluZ3M6OnNl
dE5ldHdvcmtEYXRhVXNhZ2VUcmFja2luZ0VuYWJsZWQoYm9vbCB0cmFja2luZ0VuYWJsZWQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZWRpYVN0cmF0ZWd5LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9NZWRpYVN0cmF0ZWd5LmgKaW5kZXggNjBhNTg0N2M4Y2VjMTBi
NzliNzQ5YTZmYWY4NTAzZDE2YTE5OWI5NS4uNjJkODg0MDIxZDMyNTViYmNiNmY5NGVkZWE4Mzg5
MDhjNmE1MWY4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVkaWFTdHJh
dGVneS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lZGlhU3RyYXRlZ3kuaApAQCAt
MjUsNiArMjUsOCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkF1ZGlvU2Vzc2lvbkNh
dGVnb3J5LmgiCisjaW5jbHVkZSAiUm91dGVTaGFyaW5nUG9saWN5LmgiCiAjaW5jbHVkZSA8d3Rm
L0ZvcndhcmQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzUsNiArMzcsMTAgQEAgY2xh
c3MgQ0RNRmFjdG9yeTsKIAogY2xhc3MgV0VCQ09SRV9FWFBPUlQgTWVkaWFTdHJhdGVneSB7CiBw
dWJsaWM6CisjaWYgVVNFKEFVRElPX1NFU1NJT04pCisgICAgdmlydHVhbCBib29sIHRyeVRvU2V0
QXVkaW9TZXNzaW9uQXNBY3RpdmUoYm9vbCBpc0FjdGl2ZSkgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCB1cGRhdGVBdWRpb1Nlc3Npb25QYXJhbWV0ZXJzKHNpemVfdCBidWZmZXJTaXplLCBPcHRpb25h
bDxBdWRpb1Nlc3Npb25DYXRlZ29yeT4sIE9wdGlvbmFsPFJvdXRlU2hhcmluZ1BvbGljeT4pID0g
MDsKKyNlbmRpZgogI2lmIEVOQUJMRShXRUJfQVVESU8pCiAgICAgdmlydHVhbCBzdGQ6OnVuaXF1
ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlQXVkaW9EZXN0aW5hdGlvbigKICAgICAgICAg
QXVkaW9JT0NhbGxiYWNrJiwgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLCB1bnNpZ25lZCBu
dW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZs
b2F0IHNhbXBsZVJhdGUpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL0F1ZGlvU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9B
dWRpb1Nlc3Npb24uY3BwCmluZGV4IGI1ZmI1ODA2NDhmOWNmOGVjNGYxODZmYWZhNDhlMTNmZGNm
MmY1N2QuLmY4MGFkMGU3N2RmZjVhM2Q3YTYyZmVkNTAxODBkMWI0MDFhNmNkYzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmNwcApAQCAtNjEsMjMg
KzYxLDIzIEBAIEF1ZGlvU2Vzc2lvbjo6QXVkaW9TZXNzaW9uKCkKIAogQXVkaW9TZXNzaW9uOjp+
QXVkaW9TZXNzaW9uKCkgPSBkZWZhdWx0OwogCi12b2lkIEF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdv
cnkoQ2F0ZWdvcnlUeXBlLCBSb3V0ZVNoYXJpbmdQb2xpY3kpCit2b2lkIEF1ZGlvU2Vzc2lvbjo6
c2V0Q2F0ZWdvcnkoQXVkaW9TZXNzaW9uQ2F0ZWdvcnksIFJvdXRlU2hhcmluZ1BvbGljeSkKIHsK
ICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi1BdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBB
dWRpb1Nlc3Npb246OmNhdGVnb3J5T3ZlcnJpZGUoKSBjb25zdAorQXVkaW9TZXNzaW9uQ2F0ZWdv
cnkgQXVkaW9TZXNzaW9uOjpjYXRlZ29yeU92ZXJyaWRlKCkgY29uc3QKIHsKICAgICBub3RJbXBs
ZW1lbnRlZCgpOwogICAgIHJldHVybiBOb25lOwogfQogCi12b2lkIEF1ZGlvU2Vzc2lvbjo6c2V0
Q2F0ZWdvcnlPdmVycmlkZShDYXRlZ29yeVR5cGUpCit2b2lkIEF1ZGlvU2Vzc2lvbjo6c2V0Q2F0
ZWdvcnlPdmVycmlkZShBdWRpb1Nlc3Npb25DYXRlZ29yeSkKIHsKICAgICBub3RJbXBsZW1lbnRl
ZCgpOwogfQogCi1BdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBBdWRpb1Nlc3Npb246OmNhdGVn
b3J5KCkgY29uc3QKK0F1ZGlvU2Vzc2lvbkNhdGVnb3J5IEF1ZGlvU2Vzc2lvbjo6Y2F0ZWdvcnko
KSBjb25zdAogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIE5vbmU7CkBAIC0x
NDYsNyArMTQ2LDcgQEAgU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKFJvdXRlU2hh
cmluZ1BvbGljeSBlbnVtZXJhdGlvblZhbHVlKQogICAgIHJldHVybiB2YWx1ZXNbc3RhdGljX2Nh
c3Q8c2l6ZV90PihlbnVtZXJhdGlvblZhbHVlKV07CiB9CiAKLVN0cmluZyBjb252ZXJ0RW51bWVy
YXRpb25Ub1N0cmluZyhBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBlbnVtZXJhdGlvblZhbHVl
KQorU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKEF1ZGlvU2Vzc2lvbkNhdGVnb3J5
IGVudW1lcmF0aW9uVmFsdWUpCiB7CiAgICAgc3RhdGljIGNvbnN0IE5ldmVyRGVzdHJveWVkPFN0
cmluZz4gdmFsdWVzW10gPSB7CiAgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJOb25l
IiksCkBAIC0xNTcsMTMgKzE1NywxMyBAQCBTdHJpbmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJp
bmcoQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUgZW51bWVyYXRpb25WYWx1ZSkKICAgICAgICAg
TUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIlBsYXlBbmRSZWNvcmQiKSwKICAgICAgICAgTUFLRV9T
VEFUSUNfU1RSSU5HX0lNUEwoIkF1ZGlvUHJvY2Vzc2luZyIpLAogICAgIH07Ci0gICAgc3RhdGlj
X2Fzc2VydCghc3RhdGljX2Nhc3Q8c2l6ZV90PihBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6
Tm9uZSksICJBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6Tm9uZSBpcyBub3QgMCBhcyBleHBl
Y3RlZCIpOwotICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihBdWRpb1Nlc3Np
b246OkNhdGVnb3J5VHlwZTo6QW1iaWVudFNvdW5kKSA9PSAxLCAiQXVkaW9TZXNzaW9uOjpDYXRl
Z29yeVR5cGU6OkFtYmllbnRTb3VuZCBpcyBub3QgMSBhcyBleHBlY3RlZCIpOwotICAgIHN0YXRp
Y19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6
U29sb0FtYmllbnRTb3VuZCkgPT0gMiwgIkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpTb2xv
QW1iaWVudFNvdW5kIGlzIG5vdCAyIGFzIGV4cGVjdGVkIik7Ci0gICAgc3RhdGljX2Fzc2VydChz
dGF0aWNfY2FzdDxzaXplX3Q+KEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpNZWRpYVBsYXli
YWNrKSA9PSAzLCAiQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6Ok1lZGlhUGxheWJhY2sgaXMg
bm90IDMgYXMgZXhwZWN0ZWQiKTsKLSAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVf
dD4oQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6OlJlY29yZEF1ZGlvKSA9PSA0LCAiQXVkaW9T
ZXNzaW9uOjpDYXRlZ29yeVR5cGU6OlJlY29yZEF1ZGlvIGlzIG5vdCA0IGFzIGV4cGVjdGVkIik7
Ci0gICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KEF1ZGlvU2Vzc2lvbjo6Q2F0
ZWdvcnlUeXBlOjpQbGF5QW5kUmVjb3JkKSA9PSA1LCAiQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5
cGU6OlBsYXlBbmRSZWNvcmQgaXMgbm90IDUgYXMgZXhwZWN0ZWQiKTsKLSAgICBzdGF0aWNfYXNz
ZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6OkF1ZGlv
UHJvY2Vzc2luZykgPT0gNiwgIkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpBdWRpb1Byb2Nl
c3NpbmcgaXMgbm90IDYgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KCFzdGF0aWNf
Y2FzdDxzaXplX3Q+KEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpOb25lKSwgIkF1ZGlvU2Vzc2lvbkNh
dGVnb3J5OjpOb25lIGlzIG5vdCAwIGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChz
dGF0aWNfY2FzdDxzaXplX3Q+KEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpBbWJpZW50U291bmQpID09
IDEsICJBdWRpb1Nlc3Npb25DYXRlZ29yeTo6QW1iaWVudFNvdW5kIGlzIG5vdCAxIGFzIGV4cGVj
dGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KEF1ZGlvU2Vzc2lv
bkNhdGVnb3J5OjpTb2xvQW1iaWVudFNvdW5kKSA9PSAyLCAiQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6
OlNvbG9BbWJpZW50U291bmQgaXMgbm90IDIgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNz
ZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6Ok1lZGlhUGxheWJh
Y2spID09IDMsICJBdWRpb1Nlc3Npb25DYXRlZ29yeTo6TWVkaWFQbGF5YmFjayBpcyBub3QgMyBh
cyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihBdWRp
b1Nlc3Npb25DYXRlZ29yeTo6UmVjb3JkQXVkaW8pID09IDQsICJBdWRpb1Nlc3Npb25DYXRlZ29y
eTo6UmVjb3JkQXVkaW8gaXMgbm90IDQgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0
KHN0YXRpY19jYXN0PHNpemVfdD4oQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6OlBsYXlBbmRSZWNvcmQp
ID09IDUsICJBdWRpb1Nlc3Npb25DYXRlZ29yeTo6UGxheUFuZFJlY29yZCBpcyBub3QgNSBhcyBl
eHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihBdWRpb1Nl
c3Npb25DYXRlZ29yeTo6QXVkaW9Qcm9jZXNzaW5nKSA9PSA2LCAiQXVkaW9TZXNzaW9uQ2F0ZWdv
cnk6OkF1ZGlvUHJvY2Vzc2luZyBpcyBub3QgNiBhcyBleHBlY3RlZCIpOwogICAgIEFTU0VSVChz
dGF0aWNfY2FzdDxzaXplX3Q+KGVudW1lcmF0aW9uVmFsdWUpIDwgV1RGX0FSUkFZX0xFTkdUSCh2
YWx1ZXMpKTsKICAgICByZXR1cm4gdmFsdWVzW3N0YXRpY19jYXN0PHNpemVfdD4oZW51bWVyYXRp
b25WYWx1ZSldOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
QXVkaW9TZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Np
b24uaAppbmRleCBlNzAwODIyZmYxZmVlYmQ3ODI5YWVjNzUwY2NlNDBhNjBiOTI1NjZhLi45OTky
MGYwMmE1OWQxODBjOWJmY2E3NzRkZDU2MjU2NDliNThhMWRlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uaApAQCAtMjcsNiArMjcsOCBAQAogCiAjaWYg
VVNFKEFVRElPX1NFU1NJT04pCiAKKyNpbmNsdWRlICJBdWRpb1Nlc3Npb25DYXRlZ29yeS5oIgor
I2luY2x1ZGUgIlJvdXRlU2hhcmluZ1BvbGljeS5oIgogI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNs
dWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgpAQCAt
MzcsMzMgKzM5LDE3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQXVkaW9TZXNzaW9u
UHJpdmF0ZTsKIAotZW51bSBjbGFzcyBSb3V0ZVNoYXJpbmdQb2xpY3kgOiB1aW50OF90IHsKLSAg
ICBEZWZhdWx0LAotICAgIExvbmdGb3JtQXVkaW8sCi0gICAgSW5kZXBlbmRlbnQsCi0gICAgTG9u
Z0Zvcm1WaWRlbwotfTsKLQogY2xhc3MgQXVkaW9TZXNzaW9uIGZpbmFsIHsKICAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShBdWRpb1Nlc3Npb24p
OwogcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBBdWRpb1Nlc3Npb24mIHNoYXJl
ZFNlc3Npb24oKTsKIAotICAgIGVudW0gQ2F0ZWdvcnlUeXBlIHsKLSAgICAgICAgTm9uZSwKLSAg
ICAgICAgQW1iaWVudFNvdW5kLAotICAgICAgICBTb2xvQW1iaWVudFNvdW5kLAotICAgICAgICBN
ZWRpYVBsYXliYWNrLAotICAgICAgICBSZWNvcmRBdWRpbywKLSAgICAgICAgUGxheUFuZFJlY29y
ZCwKLSAgICAgICAgQXVkaW9Qcm9jZXNzaW5nLAotICAgIH07Ci0gICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBzZXRDYXRlZ29yeShDYXRlZ29yeVR5cGUsIFJvdXRlU2hhcmluZ1BvbGljeSk7Ci0gICAg
V0VCQ09SRV9FWFBPUlQgQ2F0ZWdvcnlUeXBlIGNhdGVnb3J5KCkgY29uc3Q7CisgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBzZXRDYXRlZ29yeShBdWRpb1Nlc3Npb25DYXRlZ29yeSwgUm91dGVTaGFy
aW5nUG9saWN5KTsKKyAgICBXRUJDT1JFX0VYUE9SVCBBdWRpb1Nlc3Npb25DYXRlZ29yeSBjYXRl
Z29yeSgpIGNvbnN0OwogCi0gICAgdm9pZCBzZXRDYXRlZ29yeU92ZXJyaWRlKENhdGVnb3J5VHlw
ZSk7Ci0gICAgQ2F0ZWdvcnlUeXBlIGNhdGVnb3J5T3ZlcnJpZGUoKSBjb25zdDsKKyAgICB2b2lk
IHNldENhdGVnb3J5T3ZlcnJpZGUoQXVkaW9TZXNzaW9uQ2F0ZWdvcnkpOworICAgIEF1ZGlvU2Vz
c2lvbkNhdGVnb3J5IGNhdGVnb3J5T3ZlcnJpZGUoKSBjb25zdDsKIAogICAgIFJvdXRlU2hhcmlu
Z1BvbGljeSByb3V0ZVNoYXJpbmdQb2xpY3koKSBjb25zdDsKICAgICBTdHJpbmcgcm91dGluZ0Nv
bnRleHRVSUQoKSBjb25zdDsKQEAgLTcyLDEwICs1OCwxMCBAQCBwdWJsaWM6CiAgICAgc2l6ZV90
IGJ1ZmZlclNpemUoKSBjb25zdDsKICAgICBzaXplX3QgbnVtYmVyT2ZPdXRwdXRDaGFubmVscygp
IGNvbnN0OwogCi0gICAgYm9vbCB0cnlUb1NldEFjdGl2ZShib29sKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCBib29sIHRyeVRvU2V0QWN0aXZlKGJvb2wpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgc2l6
ZV90IHByZWZlcnJlZEJ1ZmZlclNpemUoKSBjb25zdDsKLSAgICB2b2lkIHNldFByZWZlcnJlZEJ1
ZmZlclNpemUoc2l6ZV90KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFByZWZlcnJlZEJ1
ZmZlclNpemUoc2l6ZV90KTsKIAogICAgIGNsYXNzIE11dGVkU3RhdGVPYnNlcnZlciB7CiAgICAg
cHVibGljOgpAQCAtMTA0LDQxICs5MCw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2FjdGl2ZSB7
IGZhbHNlIH07IC8vIFVzZWQgb25seSBmb3IgdGVzdGluZy4KIH07CiAKLVN0cmluZyBjb252ZXJ0
RW51bWVyYXRpb25Ub1N0cmluZyhSb3V0ZVNoYXJpbmdQb2xpY3kpOwotU3RyaW5nIGNvbnZlcnRF
bnVtZXJhdGlvblRvU3RyaW5nKEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlKTsKLQogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCi1uYW1lc3BhY2UgV1RGIHsKLXRlbXBsYXRlPD4gc3RydWN0IEVu
dW1UcmFpdHM8V2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5PiB7Ci0gICAgdXNpbmcgdmFsdWVz
ID0gRW51bVZhbHVlczwKLSAgICBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3ksCi0gICAgV2Vi
Q29yZTo6Um91dGVTaGFyaW5nUG9saWN5OjpEZWZhdWx0LAotICAgIFdlYkNvcmU6OlJvdXRlU2hh
cmluZ1BvbGljeTo6TG9uZ0Zvcm1BdWRpbywKLSAgICBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xp
Y3k6OkluZGVwZW5kZW50LAotICAgIFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeTo6TG9uZ0Zv
cm1WaWRlbwotICAgID47Ci19OwotCi10ZW1wbGF0ZTx0eXBlbmFtZSBUeXBlPgotc3RydWN0IExv
Z0FyZ3VtZW50OwotCi10ZW1wbGF0ZSA8Pgotc3RydWN0IExvZ0FyZ3VtZW50PFdlYkNvcmU6OlJv
dXRlU2hhcmluZ1BvbGljeT4gewotICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29uc3QgV2Vi
Q29yZTo6Um91dGVTaGFyaW5nUG9saWN5IHBvbGljeSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBj
b252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhwb2xpY3kpOwotICAgIH0KLX07Ci0KLXRlbXBsYXRl
IDw+Ci1zdHJ1Y3QgTG9nQXJndW1lbnQ8V2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5
cGU+IHsKLSAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IFdlYkNvcmU6OkF1ZGlvU2Vz
c2lvbjo6Q2F0ZWdvcnlUeXBlIGNhdGVnb3J5KQotICAgIHsKLSAgICAgICAgcmV0dXJuIGNvbnZl
cnRFbnVtZXJhdGlvblRvU3RyaW5nKGNhdGVnb3J5KTsKLSAgICB9Ci19OwotCi19IC8vIG5hbWVz
cGFjZSBXVEYKLQogI2VuZGlmIC8vIFVTRShBVURJT19TRVNTSU9OKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uQ2F0ZWdvcnkuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbkNhdGVnb3J5LmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMTMwMDY4MWJhYjVmMzNkOWQzMDM0ZGEwOWMxNWM0NDI2OWM1MmExYgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbkNhdGVnb3J5
LmgKQEAgLTAsMCArMSw3NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVk
ZSA8d3RmL0VudW1UcmFpdHMuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCisjaWYgVVNFKEFVRElPX1NFU1NJT04pCisKK2VudW0gY2xh
c3MgQXVkaW9TZXNzaW9uQ2F0ZWdvcnkgOiB1aW50OF90IHsKKyAgICBOb25lLAorICAgIEFtYmll
bnRTb3VuZCwKKyAgICBTb2xvQW1iaWVudFNvdW5kLAorICAgIE1lZGlhUGxheWJhY2ssCisgICAg
UmVjb3JkQXVkaW8sCisgICAgUGxheUFuZFJlY29yZCwKKyAgICBBdWRpb1Byb2Nlc3NpbmcKK307
CisKK1N0cmluZyBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhBdWRpb1Nlc3Npb25DYXRlZ29y
eSk7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBs
YXRlPHR5cGVuYW1lIFR5cGU+CitzdHJ1Y3QgTG9nQXJndW1lbnQ7CisKK3RlbXBsYXRlIDw+Citz
dHJ1Y3QgTG9nQXJndW1lbnQ8V2ViQ29yZTo6QXVkaW9TZXNzaW9uQ2F0ZWdvcnk+IHsKKyAgICBz
dGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbkNhdGVnb3J5
IGNhdGVnb3J5KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNvbnZlcnRFbnVtZXJhdGlvblRvU3Ry
aW5nKGNhdGVnb3J5KTsKKyAgICB9Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRz
PFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbkNhdGVnb3J5PiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51
bVZhbHVlczwKKyAgICAgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uQ2F0ZWdvcnksCisgICAgICAg
IFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpOb25lLAorICAgICAgICBXZWJDb3JlOjpB
dWRpb1Nlc3Npb25DYXRlZ29yeTo6QW1iaWVudFNvdW5kLAorICAgICAgICBXZWJDb3JlOjpBdWRp
b1Nlc3Npb25DYXRlZ29yeTo6U29sb0FtYmllbnRTb3VuZCwKKyAgICAgICAgV2ViQ29yZTo6QXVk
aW9TZXNzaW9uQ2F0ZWdvcnk6Ok1lZGlhUGxheWJhY2ssCisgICAgICAgIFdlYkNvcmU6OkF1ZGlv
U2Vzc2lvbkNhdGVnb3J5OjpSZWNvcmRBdWRpbywKKyAgICAgICAgV2ViQ29yZTo6QXVkaW9TZXNz
aW9uQ2F0ZWdvcnk6OlBsYXlBbmRSZWNvcmQsCisgICAgICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lv
bkNhdGVnb3J5OjpBdWRpb1Byb2Nlc3NpbmcKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2Ug
V1RGCisKKyNlbmRpZiAvLyBVU0UoQVVESU9fU0VTU0lPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIu
Y3BwCmluZGV4IDVmNDA0NTdjNzVmNzFiYWIyYzczZTYxMjljMTBhZmVmZTBjNTU3NjUuLjE1NWU1
ZTFlMzAwNDhhM2Y4OWYyYWQ4MGE4YzJkYzI1MTk1ZTc0NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5h
Z2VyLmNwcApAQCAtMjksNyArMjksOSBAQAogI2luY2x1ZGUgIkF1ZGlvU2Vzc2lvbi5oIgogI2lu
Y2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIk1lZGlh
U3RyYXRlZ3kuaCIKICNpbmNsdWRlICJQbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oIgorI2luY2x1ZGUg
IlBsYXRmb3JtU3RyYXRlZ2llcy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTIyMCw3
ICsyMjIsNyBAQCBib29sIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2Vzc2lvbldpbGxC
ZWdpblBsYXliYWNrKFBsYXRmb3JtTWVkaWFTZXNzaW9uJgogCiAjaWYgVVNFKEFVRElPX1NFU1NJ
T04pCiAgICAgaWYgKGFjdGl2ZUF1ZGlvU2Vzc2lvblJlcXVpcmVkKCkpIHsKLSAgICAgICAgaWYg
KCFBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS50cnlUb1NldEFjdGl2ZSh0cnVlKSkgewor
ICAgICAgICBpZiAoIXBsYXRmb3JtU3RyYXRlZ2llcygpLT5tZWRpYVN0cmF0ZWd5KCkudHJ5VG9T
ZXRBdWRpb1Nlc3Npb25Bc0FjdGl2ZSh0cnVlKSkgewogICAgICAgICAgICAgQUxXQVlTX0xPRyhM
T0dJREVOVElGSUVSLCBzZXNzaW9uLmxvZ0lkZW50aWZpZXIoKSwgIiByZXR1cm5pbmcgZmFsc2Ug
ZmFpbGVkIHRvIHNldCBhY3RpdmUgQXVkaW9TZXNzaW9uIik7CiAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgICAgIH0KQEAgLTM5Myw3ICszOTUsNyBAQCB2b2lkIFBsYXRmb3JtTWVkaWFT
ZXNzaW9uTWFuYWdlcjo6cHJvY2Vzc0RpZFJlc3VtZSgpCiAKICNpZiBVU0UoQVVESU9fU0VTU0lP
TikKICAgICBpZiAoIW1fYmVjYW1lQWN0aXZlICYmIGFjdGl2ZUF1ZGlvU2Vzc2lvblJlcXVpcmVk
KCkpIHsKLSAgICAgICAgbV9iZWNhbWVBY3RpdmUgPSBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Np
b24oKS50cnlUb1NldEFjdGl2ZSh0cnVlKTsKKyAgICAgICAgbV9iZWNhbWVBY3RpdmUgPSBwbGF0
Zm9ybVN0cmF0ZWdpZXMoKS0+bWVkaWFTdHJhdGVneSgpLnRyeVRvU2V0QXVkaW9TZXNzaW9uQXNB
Y3RpdmUodHJ1ZSk7CiAgICAgICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgInRyaWVkIHRv
IHNldCBhY3RpdmUgQXVkaW9TZXNzaW9uLCAiLCBtX2JlY2FtZUFjdGl2ZSA/ICJzdWNjZWVkZWQi
IDogImZhaWxlZCIpOwogICAgIH0KICNlbmRpZgpAQCAtNTY3LDcgKzU2OSw3IEBAIHZvaWQgUGxh
dGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjptYXliZURlYWN0aXZhdGVBdWRpb1Nlc3Npb24oKQog
ICAgICAgICByZXR1cm47CiAKICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsICJ0cmllZCB0
byBzZXQgaW5hY3RpdmUgQXVkaW9TZXNzaW9uIik7Ci0gICAgQXVkaW9TZXNzaW9uOjpzaGFyZWRT
ZXNzaW9uKCkudHJ5VG9TZXRBY3RpdmUoZmFsc2UpOworICAgIHBsYXRmb3JtU3RyYXRlZ2llcygp
LT5tZWRpYVN0cmF0ZWd5KCkudHJ5VG9TZXRBdWRpb1Nlc3Npb25Bc0FjdGl2ZShmYWxzZSk7CiAg
ICAgbV9iZWNhbWVBY3RpdmUgPSBmYWxzZTsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUm91dGVTaGFyaW5nUG9saWN5LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9Sb3V0ZVNoYXJpbmdQb2xpY3kuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YzJl
OGI0ZDM1ODI5ODJhNmYyZDQ0MDY2YWVkNjcwZTE5YWI4YzgyCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUm91dGVTaGFyaW5nUG9saWN5LmgKQEAgLTAs
MCArMSw3MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgorCisjaWYgVVNFKEFVRElPX1NFU1NJT04pCisKK2VudW0gY2xhc3MgUm91dGVT
aGFyaW5nUG9saWN5IDogdWludDhfdCB7CisgICAgRGVmYXVsdCwKKyAgICBMb25nRm9ybUF1ZGlv
LAorICAgIEluZGVwZW5kZW50LAorICAgIExvbmdGb3JtVmlkZW8KK307CisKK1N0cmluZyBjb252
ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhSb3V0ZVNoYXJpbmdQb2xpY3kpOworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKK25hbWVzcGFjZSBXVEYgewordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRy
YWl0czxXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3k+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBF
bnVtVmFsdWVzPAorICAgIFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeSwKKyAgICBXZWJDb3Jl
OjpSb3V0ZVNoYXJpbmdQb2xpY3k6OkRlZmF1bHQsCisgICAgV2ViQ29yZTo6Um91dGVTaGFyaW5n
UG9saWN5OjpMb25nRm9ybUF1ZGlvLAorICAgIFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeTo6
SW5kZXBlbmRlbnQsCisgICAgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5OjpMb25nRm9ybVZp
ZGVvCisgICAgPjsKK307CisKK3RlbXBsYXRlPHR5cGVuYW1lIFR5cGU+CitzdHJ1Y3QgTG9nQXJn
dW1lbnQ7CisKK3RlbXBsYXRlIDw+CitzdHJ1Y3QgTG9nQXJndW1lbnQ8V2ViQ29yZTo6Um91dGVT
aGFyaW5nUG9saWN5PiB7CisgICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhjb25zdCBXZWJDb3Jl
OjpSb3V0ZVNoYXJpbmdQb2xpY3kgcG9saWN5KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNvbnZl
cnRFbnVtZXJhdGlvblRvU3RyaW5nKHBvbGljeSk7CisgICAgfQorfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV1RGCisKKyNlbmRpZiAvLyBVU0UoQVVESU9fU0VTU0lPTikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL01lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL01lZGlhU2Vzc2lvbk1hbmFn
ZXJDb2NvYS5tbQppbmRleCBlYjE5YTliZjljMDMzOGFhYWIzZTc4ZmIzNjhiMDc3MjY1ZTFkMWQ4
Li44NjFhNzhlMGEwMTFlYWYzY2RiODNkMmYzZmNkMzY0NDVlMGU2YTI4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29j
b2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvTWVkaWFTZXNz
aW9uTWFuYWdlckNvY29hLm1tCkBAIC0zMyw3ICszMyw5IEBACiAjaW5jbHVkZSAiSFRNTE1lZGlh
RWxlbWVudC5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllci5o
IgorI2luY2x1ZGUgIk1lZGlhU3RyYXRlZ3kuaCIKICNpbmNsdWRlICJQbGF0Zm9ybU1lZGlhU2Vz
c2lvbi5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyYXRlZ2llcy5oIgogI2luY2x1ZGUgPHd0Zi9C
bG9ja09iakNFeGNlcHRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAKQEAgLTcw
LDI3ICs3MiwyNyBAQCB2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYTo6dXBkYXRlU2Vzc2lv
blN0YXRlKCkKICAgICAgICAgIlZpZGVvQXVkaW8oIiwgdmlkZW9BdWRpb0NvdW50LCAiKSwgIgog
ICAgICAgICAiV2ViQXVkaW8oIiwgd2ViQXVkaW9Db3VudCwgIikiKTsKIAorICAgIHNpemVfdCBi
dWZmZXJTaXplID0gMDsKICAgICBpZiAod2ViQXVkaW9Db3VudCkKLSAgICAgICAgQXVkaW9TZXNz
aW9uOjpzaGFyZWRTZXNzaW9uKCkuc2V0UHJlZmVycmVkQnVmZmVyU2l6ZShrV2ViQXVkaW9CdWZm
ZXJTaXplKTsKKyAgICAgICAgYnVmZmVyU2l6ZSA9IGtXZWJBdWRpb0J1ZmZlclNpemU7CiAgICAg
Ly8gSW4gY2FzZSBvZiBhdWRpbyBjYXB0dXJlLCB3ZSB3YW50IHRvIGdyYWIgMjAgbXMgY2h1bmtz
IHRvIGxpbWl0IHRoZSBsYXRlbmN5IHNvIHRoYXQgaXQgaXMgbm90IG5vdGljZWFibGUgYnkgdXNl
cnMKICAgICAvLyB3aGlsZSBoYXZpbmcgYSBsYXJnZSBlbm91Z2ggYnVmZmVyIHNvIHRoYXQgdGhl
IGF1ZGlvIHJlbmRlcmluZyByZW1haW5zIHN0YWJsZSwgaGVuY2UgYSBjb21wdXRhdGlvbiBiYXNl
ZCBvbiBzYW1wbGUgcmF0ZS4KICAgICBlbHNlIGlmIChjYXB0dXJlQ291bnQpCi0gICAgICAgIEF1
ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldFByZWZlcnJlZEJ1ZmZlclNpemUoQXVkaW9T
ZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2FtcGxlUmF0ZSgpIC8gNTApOworICAgICAgICBidWZm
ZXJTaXplID0gQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2FtcGxlUmF0ZSgpIC8gNTA7
CiAgICAgZWxzZSBpZiAoKHZpZGVvQXVkaW9Db3VudCB8fCBhdWRpb0NvdW50KSAmJiBEZXByZWNh
dGVkR2xvYmFsU2V0dGluZ3M6Omxvd1Bvd2VyVmlkZW9BdWRpb0J1ZmZlclNpemVFbmFibGVkKCkp
IHsKICAgICAgICAgLy8gRklYTUU6IDxodHRwOi8vd2Via2l0Lm9yZy9iLzExNjcyNT4gRmlndXJl
IG91dCB3aHkgZW5hYmxpbmcgdGhlIGNvZGUgYmVsb3cKICAgICAgICAgLy8gY2F1c2VzIG1lZGlh
IExheW91dFRlc3RzIHRvIGZhaWwgb24gMTAuOC4KIAotICAgICAgICBzaXplX3QgYnVmZmVyU2l6
ZTsKICAgICAgICAgaWYgKG1fYXVkaW9IYXJkd2FyZUxpc3RlbmVyICYmIG1fYXVkaW9IYXJkd2Fy
ZUxpc3RlbmVyLT5vdXRwdXREZXZpY2VTdXBwb3J0c0xvd1Bvd2VyTW9kZSgpKQogICAgICAgICAg
ICAgYnVmZmVyU2l6ZSA9IGtMb3dQb3dlclZpZGVvQnVmZmVyU2l6ZTsKICAgICAgICAgZWxzZQog
ICAgICAgICAgICAgYnVmZmVyU2l6ZSA9IGtXZWJBdWRpb0J1ZmZlclNpemU7Ci0KLSAgICAgICAg
QXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2V0UHJlZmVycmVkQnVmZmVyU2l6ZShidWZm
ZXJTaXplKTsKICAgICB9CiAKLSAgICBpZiAoIURlcHJlY2F0ZWRHbG9iYWxTZXR0aW5nczo6c2hv
dWxkTWFuYWdlQXVkaW9TZXNzaW9uQ2F0ZWdvcnkoKSkKKyAgICBpZiAoIURlcHJlY2F0ZWRHbG9i
YWxTZXR0aW5nczo6c2hvdWxkTWFuYWdlQXVkaW9TZXNzaW9uQ2F0ZWdvcnkoKSkgeworICAgICAg
ICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bWVkaWFTdHJhdGVneSgpLnVwZGF0ZUF1ZGlvU2Vzc2lv
blBhcmFtZXRlcnMoYnVmZmVyU2l6ZSwgeyB9LCB7IH0pOwogICAgICAgICByZXR1cm47CisgICAg
fQogCiAgICAgYm9vbCBoYXNBdWRpYmxlQXVkaW9PclZpZGVvTWVkaWFUeXBlID0gZmFsc2U7CiAg
ICAgZm9yRWFjaFNlc3Npb24oWyZoYXNBdWRpYmxlQXVkaW9PclZpZGVvTWVkaWFUeXBlXSAoYXV0
byYgc2Vzc2lvbikgbXV0YWJsZSB7CkBAIC0xMDIsMTcgKzEwNCwxNyBAQCB2b2lkIE1lZGlhU2Vz
c2lvbk1hbmFnZXJDb2NvYTo6dXBkYXRlU2Vzc2lvblN0YXRlKCkKICAgICB9KTsKIAogICAgIFJv
dXRlU2hhcmluZ1BvbGljeSBwb2xpY3kgPSBSb3V0ZVNoYXJpbmdQb2xpY3k6OkRlZmF1bHQ7Ci0g
ICAgQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUgY2F0ZWdvcnkgPSBBdWRpb1Nlc3Npb246Ok5v
bmU7CisgICAgYXV0byBjYXRlZ29yeSA9IEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpOb25lOwogICAg
IGlmIChjYXB0dXJlQ291bnQpCi0gICAgICAgIGNhdGVnb3J5ID0gQXVkaW9TZXNzaW9uOjpQbGF5
QW5kUmVjb3JkOworICAgICAgICBjYXRlZ29yeSA9IEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpQbGF5
QW5kUmVjb3JkOwogICAgIGVsc2UgaWYgKGhhc0F1ZGlibGVBdWRpb09yVmlkZW9NZWRpYVR5cGUp
IHsKLSAgICAgICAgY2F0ZWdvcnkgPSBBdWRpb1Nlc3Npb246Ok1lZGlhUGxheWJhY2s7CisgICAg
ICAgIGNhdGVnb3J5ID0gQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6Ok1lZGlhUGxheWJhY2s7CiAgICAg
ICAgIHBvbGljeSA9IFJvdXRlU2hhcmluZ1BvbGljeTo6TG9uZ0Zvcm1BdWRpbzsKICAgICB9IGVs
c2UgaWYgKHdlYkF1ZGlvQ291bnQpCi0gICAgICAgIGNhdGVnb3J5ID0gQXVkaW9TZXNzaW9uOjpB
bWJpZW50U291bmQ7Ci0KKyAgICAgICAgY2F0ZWdvcnkgPSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6
QW1iaWVudFNvdW5kOwogICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgInNldHRpbmcgY2F0
ZWdvcnkgPSAiLCBjYXRlZ29yeSwgIiwgcG9saWN5ID0gIiwgcG9saWN5KTsKLSAgICBBdWRpb1Nl
c3Npb246OnNoYXJlZFNlc3Npb24oKS5zZXRDYXRlZ29yeShjYXRlZ29yeSwgcG9saWN5KTsKKwor
ICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5tZWRpYVN0cmF0ZWd5KCkudXBkYXRlQXVkaW9TZXNz
aW9uUGFyYW1ldGVycyhidWZmZXJTaXplLCBjYXRlZ29yeSwgcG9saWN5KTsKIH0KIAogdm9pZCBN
ZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6OmJlZ2luSW50ZXJydXB0aW9uKFBsYXRmb3JtTWVkaWFT
ZXNzaW9uOjpJbnRlcnJ1cHRpb25UeXBlIHR5cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9TZXNzaW9uSU9TLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvU2Vzc2lvbklPUy5tbQppbmRleCBkNmMwMDdmNDBiNWZi
NzYzNzIyZDUzOGFkZWQwMmQxYjgxYTE4ODU0Li40NzUxN2IyZjQzYzRjMzdjNTQxYWFmMWQxYWJi
ZTU4NjExOTllNDA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9p
b3MvQXVkaW9TZXNzaW9uSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L2lvcy9BdWRpb1Nlc3Npb25JT1MubW0KQEAgLTQwLDE3ICs0MCwxNyBAQAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiAjaWYgIUxPR19ESVNBQkxFRAotc3RhdGljIGNvbnN0IGNoYXIqIGNhdGVnb3J5
TmFtZShBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBjYXRlZ29yeSkKK3N0YXRpYyBjb25zdCBj
aGFyKiBjYXRlZ29yeU5hbWUoQXVkaW9TZXNzaW9uQ2F0ZWdvcnkgY2F0ZWdvcnkpCiB7CiAjZGVm
aW5lIENBU0UoY2F0ZWdvcnkpIGNhc2UgQXVkaW9TZXNzaW9uOjpjYXRlZ29yeTogcmV0dXJuICNj
YXRlZ29yeQogICAgIHN3aXRjaCAoY2F0ZWdvcnkpIHsKLSAgICAgICAgQ0FTRShOb25lKTsKLSAg
ICAgICAgQ0FTRShBbWJpZW50U291bmQpOwotICAgICAgICBDQVNFKFNvbG9BbWJpZW50U291bmQp
OwotICAgICAgICBDQVNFKE1lZGlhUGxheWJhY2spOwotICAgICAgICBDQVNFKFJlY29yZEF1ZGlv
KTsKLSAgICAgICAgQ0FTRShQbGF5QW5kUmVjb3JkKTsKLSAgICAgICAgQ0FTRShBdWRpb1Byb2Nl
c3NpbmcpOworICAgICAgICBDQVNFKEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpOb25lKTsKKyAgICAg
ICAgQ0FTRShBdWRpb1Nlc3Npb25DYXRlZ29yeTo6QW1iaWVudFNvdW5kKTsKKyAgICAgICAgQ0FT
RShBdWRpb1Nlc3Npb25DYXRlZ29yeTo6U29sb0FtYmllbnRTb3VuZCk7CisgICAgICAgIENBU0Uo
QXVkaW9TZXNzaW9uQ2F0ZWdvcnk6Ok1lZGlhUGxheWJhY2spOworICAgICAgICBDQVNFKEF1ZGlv
U2Vzc2lvbkNhdGVnb3J5OjpSZWNvcmRBdWRpbyk7CisgICAgICAgIENBU0UoQXVkaW9TZXNzaW9u
Q2F0ZWdvcnk6OlBsYXlBbmRSZWNvcmQpOworICAgICAgICBDQVNFKEF1ZGlvU2Vzc2lvbkNhdGVn
b3J5OjpBdWRpb1Byb2Nlc3NpbmcpOwogICAgIH0KICAgICAKICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKQEAgLTYyLDEyICs2MiwxMiBAQCBjbGFzcyBBdWRpb1Nlc3Npb25Qcml2YXRlIHsKICAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBBdWRpb1Nlc3Npb25Qcml2
YXRlKEF1ZGlvU2Vzc2lvbiopOwotICAgIEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIG1fY2F0
ZWdvcnlPdmVycmlkZTsKKyAgICBBdWRpb1Nlc3Npb25DYXRlZ29yeSBtX2NhdGVnb3J5T3ZlcnJp
ZGU7CiAgICAgT1NPYmplY3RQdHI8ZGlzcGF0Y2hfcXVldWVfdD4gbV9kaXNwYXRjaFF1ZXVlOwog
fTsKIAogQXVkaW9TZXNzaW9uUHJpdmF0ZTo6QXVkaW9TZXNzaW9uUHJpdmF0ZShBdWRpb1Nlc3Np
b24qKQotICAgIDogbV9jYXRlZ29yeU92ZXJyaWRlKEF1ZGlvU2Vzc2lvbjo6Tm9uZSkKKyAgICA6
IG1fY2F0ZWdvcnlPdmVycmlkZShBdWRpb1Nlc3Npb25DYXRlZ29yeTo6Tm9uZSkKIHsKIH0KIApA
QCAtODAsNyArODAsNyBAQCBBdWRpb1Nlc3Npb246On5BdWRpb1Nlc3Npb24oKQogewogfQogCi12
b2lkIEF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnkoQ2F0ZWdvcnlUeXBlIG5ld0NhdGVnb3J5LCBS
b3V0ZVNoYXJpbmdQb2xpY3kgcG9saWN5KQordm9pZCBBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5
KEF1ZGlvU2Vzc2lvbkNhdGVnb3J5IG5ld0NhdGVnb3J5LCBSb3V0ZVNoYXJpbmdQb2xpY3kgcG9s
aWN5KQogewogI2lmICFIQVZFKFJPVVRFX1NIQVJJTkdfUE9MSUNZX0xPTkdfRk9STV9WSURFTykK
ICAgICBpZiAocG9saWN5ID09IFJvdXRlU2hhcmluZ1BvbGljeTo6TG9uZ0Zvcm1WaWRlbykKQEAg
LTg5LDcgKzg5LDcgQEAgdm9pZCBBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5KENhdGVnb3J5VHlw
ZSBuZXdDYXRlZ29yeSwgUm91dGVTaGFyaW5nUG9saWN5IHBvbGkKIAogICAgIExPRyhNZWRpYSwg
IkF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnkoKSAtIGNhdGVnb3J5ID0gJXMiLCBjYXRlZ29yeU5h
bWUobmV3Q2F0ZWdvcnkpKTsKIAotICAgIGlmIChjYXRlZ29yeU92ZXJyaWRlKCkgJiYgY2F0ZWdv
cnlPdmVycmlkZSgpICE9IG5ld0NhdGVnb3J5KSB7CisgICAgaWYgKGNhdGVnb3J5T3ZlcnJpZGUo
KSAhPSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6Tm9uZSAmJiBjYXRlZ29yeU92ZXJyaWRlKCkgIT0g
bmV3Q2F0ZWdvcnkpIHsKICAgICAgICAgTE9HKE1lZGlhLCAiQXVkaW9TZXNzaW9uOjpzZXRDYXRl
Z29yeSgpIC0gb3ZlcnJpZGUgc2V0LCBOT1QgY2hhbmdpbmciKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KQEAgLTk5LDI3ICs5OSwyNyBAQCB2b2lkIEF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnko
Q2F0ZWdvcnlUeXBlIG5ld0NhdGVnb3J5LCBSb3V0ZVNoYXJpbmdQb2xpY3kgcG9saQogICAgIEFW
QXVkaW9TZXNzaW9uQ2F0ZWdvcnlPcHRpb25zIG9wdGlvbnMgPSAwOwogCiAgICAgc3dpdGNoIChu
ZXdDYXRlZ29yeSkgewotICAgIGNhc2UgQW1iaWVudFNvdW5kOgorICAgIGNhc2UgQXVkaW9TZXNz
aW9uQ2F0ZWdvcnk6OkFtYmllbnRTb3VuZDoKICAgICAgICAgY2F0ZWdvcnlTdHJpbmcgPSBBVkF1
ZGlvU2Vzc2lvbkNhdGVnb3J5QW1iaWVudDsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBTb2xv
QW1iaWVudFNvdW5kOgorICAgIGNhc2UgQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6OlNvbG9BbWJpZW50
U291bmQ6CiAgICAgICAgIGNhdGVnb3J5U3RyaW5nID0gQVZBdWRpb1Nlc3Npb25DYXRlZ29yeVNv
bG9BbWJpZW50OwogICAgICAgICBicmVhazsKLSAgICBjYXNlIE1lZGlhUGxheWJhY2s6CisgICAg
Y2FzZSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6TWVkaWFQbGF5YmFjazoKICAgICAgICAgY2F0ZWdv
cnlTdHJpbmcgPSBBVkF1ZGlvU2Vzc2lvbkNhdGVnb3J5UGxheWJhY2s7CiAgICAgICAgIGJyZWFr
OwotICAgIGNhc2UgUmVjb3JkQXVkaW86CisgICAgY2FzZSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6
UmVjb3JkQXVkaW86CiAgICAgICAgIGNhdGVnb3J5U3RyaW5nID0gQVZBdWRpb1Nlc3Npb25DYXRl
Z29yeVJlY29yZDsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQbGF5QW5kUmVjb3JkOgorICAg
IGNhc2UgQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6OlBsYXlBbmRSZWNvcmQ6CiAgICAgICAgIGNhdGVn
b3J5U3RyaW5nID0gQVZBdWRpb1Nlc3Npb25DYXRlZ29yeVBsYXlBbmRSZWNvcmQ7CiAgICAgICAg
IGNhdGVnb3J5TW9kZSA9IEFWQXVkaW9TZXNzaW9uTW9kZVZpZGVvQ2hhdDsKICAgICAgICAgb3B0
aW9ucyB8PSBBVkF1ZGlvU2Vzc2lvbkNhdGVnb3J5T3B0aW9uQWxsb3dCbHVldG9vdGggfCBBVkF1
ZGlvU2Vzc2lvbkNhdGVnb3J5T3B0aW9uQWxsb3dCbHVldG9vdGhBMkRQIHwgQVZBdWRpb1Nlc3Np
b25DYXRlZ29yeU9wdGlvbkRlZmF1bHRUb1NwZWFrZXIgfCBBVkF1ZGlvU2Vzc2lvbkNhdGVnb3J5
T3B0aW9uQWxsb3dBaXJQbGF5OwogICAgICAgICBicmVhazsKLSAgICBjYXNlIEF1ZGlvUHJvY2Vz
c2luZzoKKyAgICBjYXNlIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpBdWRpb1Byb2Nlc3Npbmc6CiAg
ICAgICAgIGNhdGVnb3J5U3RyaW5nID0gQVZBdWRpb1Nlc3Npb25DYXRlZ29yeUF1ZGlvUHJvY2Vz
c2luZzsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBOb25lOgorICAgIGNhc2UgQXVkaW9TZXNz
aW9uQ2F0ZWdvcnk6Ok5vbmU6CiAgICAgICAgIGNhdGVnb3J5U3RyaW5nID0gQVZBdWRpb1Nlc3Np
b25DYXRlZ29yeUFtYmllbnQ7CiAgICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTEzMSwyMiArMTMx
LDIyIEBAIHZvaWQgQXVkaW9TZXNzaW9uOjpzZXRDYXRlZ29yeShDYXRlZ29yeVR5cGUgbmV3Q2F0
ZWdvcnksIFJvdXRlU2hhcmluZ1BvbGljeSBwb2xpCiAjZW5kaWYKIH0KIAotQXVkaW9TZXNzaW9u
OjpDYXRlZ29yeVR5cGUgQXVkaW9TZXNzaW9uOjpjYXRlZ29yeSgpIGNvbnN0CitBdWRpb1Nlc3Np
b25DYXRlZ29yeSBBdWRpb1Nlc3Npb246OmNhdGVnb3J5KCkgY29uc3QKIHsKICAgICBOU1N0cmlu
ZyAqY2F0ZWdvcnlTdHJpbmcgPSBbW1BBTDo6Z2V0QVZBdWRpb1Nlc3Npb25DbGFzcygpIHNoYXJl
ZEluc3RhbmNlXSBjYXRlZ29yeV07CiAgICAgaWYgKFtjYXRlZ29yeVN0cmluZyBpc0VxdWFsOkFW
QXVkaW9TZXNzaW9uQ2F0ZWdvcnlBbWJpZW50XSkKLSAgICAgICAgcmV0dXJuIEFtYmllbnRTb3Vu
ZDsKKyAgICAgICAgcmV0dXJuIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpBbWJpZW50U291bmQ7CiAg
ICAgaWYgKFtjYXRlZ29yeVN0cmluZyBpc0VxdWFsOkFWQXVkaW9TZXNzaW9uQ2F0ZWdvcnlTb2xv
QW1iaWVudF0pCi0gICAgICAgIHJldHVybiBTb2xvQW1iaWVudFNvdW5kOworICAgICAgICByZXR1
cm4gQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6OlNvbG9BbWJpZW50U291bmQ7CiAgICAgaWYgKFtjYXRl
Z29yeVN0cmluZyBpc0VxdWFsOkFWQXVkaW9TZXNzaW9uQ2F0ZWdvcnlQbGF5YmFja10pCi0gICAg
ICAgIHJldHVybiBNZWRpYVBsYXliYWNrOworICAgICAgICByZXR1cm4gQXVkaW9TZXNzaW9uQ2F0
ZWdvcnk6Ok1lZGlhUGxheWJhY2s7CiAgICAgaWYgKFtjYXRlZ29yeVN0cmluZyBpc0VxdWFsOkFW
QXVkaW9TZXNzaW9uQ2F0ZWdvcnlSZWNvcmRdKQotICAgICAgICByZXR1cm4gUmVjb3JkQXVkaW87
CisgICAgICAgIHJldHVybiBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6UmVjb3JkQXVkaW87CiAgICAg
aWYgKFtjYXRlZ29yeVN0cmluZyBpc0VxdWFsOkFWQXVkaW9TZXNzaW9uQ2F0ZWdvcnlQbGF5QW5k
UmVjb3JkXSkKLSAgICAgICAgcmV0dXJuIFBsYXlBbmRSZWNvcmQ7CisgICAgICAgIHJldHVybiBB
dWRpb1Nlc3Npb25DYXRlZ29yeTo6UGxheUFuZFJlY29yZDsKICAgICBpZiAoW2NhdGVnb3J5U3Ry
aW5nIGlzRXF1YWw6QVZBdWRpb1Nlc3Npb25DYXRlZ29yeUF1ZGlvUHJvY2Vzc2luZ10pCi0gICAg
ICAgIHJldHVybiBBdWRpb1Byb2Nlc3Npbmc7Ci0gICAgcmV0dXJuIE5vbmU7CisgICAgICAgIHJl
dHVybiBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6QXVkaW9Qcm9jZXNzaW5nOworICAgIHJldHVybiBB
dWRpb1Nlc3Npb25DYXRlZ29yeTo6Tm9uZTsKIH0KIAogUm91dGVTaGFyaW5nUG9saWN5IEF1ZGlv
U2Vzc2lvbjo6cm91dGVTaGFyaW5nUG9saWN5KCkgY29uc3QKQEAgLTE3Niw3ICsxNzYsNyBAQCBT
dHJpbmcgQXVkaW9TZXNzaW9uOjpyb3V0aW5nQ29udGV4dFVJRCgpIGNvbnN0CiAjZW5kaWYKIH0K
IAotdm9pZCBBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5T3ZlcnJpZGUoQ2F0ZWdvcnlUeXBlIGNh
dGVnb3J5KQordm9pZCBBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5T3ZlcnJpZGUoQXVkaW9TZXNz
aW9uQ2F0ZWdvcnkgY2F0ZWdvcnkpCiB7CiAgICAgaWYgKG1fcHJpdmF0ZS0+bV9jYXRlZ29yeU92
ZXJyaWRlID09IGNhdGVnb3J5KQogICAgICAgICByZXR1cm47CkBAIC0xODUsNyArMTg1LDcgQEAg
dm9pZCBBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5T3ZlcnJpZGUoQ2F0ZWdvcnlUeXBlIGNhdGVn
b3J5KQogICAgIHNldENhdGVnb3J5KGNhdGVnb3J5LCBSb3V0ZVNoYXJpbmdQb2xpY3k6OkRlZmF1
bHQpOwogfQogCi1BdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBBdWRpb1Nlc3Npb246OmNhdGVn
b3J5T3ZlcnJpZGUoKSBjb25zdAorQXVkaW9TZXNzaW9uQ2F0ZWdvcnkgQXVkaW9TZXNzaW9uOjpj
YXRlZ29yeU92ZXJyaWRlKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9wcml2YXRlLT5tX2NhdGVn
b3J5T3ZlcnJpZGU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vaW9zL01lZGlhU2Vzc2lvbk1hbmFnZXJJT1MuaAppbmRleCA5M2U1YmZjNDBiOGYxODU4
MzgzODk2NjM2ZjYyZWU2OTE4Yzk5MTUzLi5jNGI3ZDg4MzhlYzgxNDE1MjM0MzE0YTIxZjk1MGQ5
MjNhZTdmMjg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3Mv
TWVkaWFTZXNzaW9uTWFuYWdlcklPUy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLmgKQEAgLTU0LDYgKzU0LDggQEAgcHVibGlj
OgogICAgIHZvaWQgYWN0aXZlVmlkZW9Sb3V0ZURpZENoYW5nZShPcHRpb25hbDxib29sPiYmKTsK
ICNlbmRpZgogCisgICAgc3RhdGljIFdFQkNPUkVfRVhQT1JUIHZvaWQgcHJvdmlkZVByZXNlbnRp
bmdBcHBsaWNhdGlvblBJRCgpOworCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBQbGF0Zm9y
bU1lZGlhU2Vzc2lvbk1hbmFnZXI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vaW9zL01lZGlhU2Vzc2lvbk1hbmFnZXJJT1MubW0KaW5kZXggNDUxNzI0
ZmU3M2FjZmNkNTk5NDY0YzBjNDJmMThjNTZlNjMzMTkxNy4uY2YyNWZiNDg2MDE3NjgyNWE3N2Fk
ODYyNGNiNDViZGYzOTgzZWM4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vaW9zL01lZGlhU2Vzc2lvbk1hbmFnZXJJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vaW9zL01lZGlhU2Vzc2lvbk1hbmFnZXJJT1MubW0KQEAgLTE3NCw3ICsx
NzQsMTMgQEAgdm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyaU9TOjpwcm92aWRlUHJlc2VudGluZ0Fw
cGxpY2F0aW9uUElESWZOZWNlc3NhcnkoKQogICAgIGlmIChtX2hhdmVQcmVzZW50ZWRBcHBsaWNh
dGlvblBJRCkKICAgICAgICAgcmV0dXJuOwogICAgIG1faGF2ZVByZXNlbnRlZEFwcGxpY2F0aW9u
UElEID0gdHJ1ZTsKKyAgICBwcm92aWRlUHJlc2VudGluZ0FwcGxpY2F0aW9uUElEKCk7CisjZW5k
aWYKK30KIAordm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyaU9TOjpwcm92aWRlUHJlc2VudGluZ0Fw
cGxpY2F0aW9uUElEKCkKK3sKKyNpZiBIQVZFKENFTEVTVElBTCkKICAgICBpZiAoIWNhbkxvYWRB
VlN5c3RlbUNvbnRyb2xsZXJfUElEVG9Jbmhlcml0QXBwbGljYXRpb25TdGF0ZUZyb20oKSkKICAg
ICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9tYWMvQXVkaW9TZXNzaW9uTWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L21hYy9BdWRpb1Nlc3Npb25NYWMuY3BwCmluZGV4IGNjMDRmMGJlMzA5NzQ5OGI4MzY2ZTkyNDIw
NzNlY2UzZTE5NzVhYjUuLjU0ZmZmZGU2NGU3OGQ2ZDhiNDgzYTUxNzhkM2U2YzM5Njg1MzQ4YmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb1Nlc3Np
b25NYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb1Nl
c3Npb25NYWMuY3BwCkBAIC01OCw3ICs1OCw3IEBAIHB1YmxpYzoKICAgICBleHBsaWNpdCBBdWRp
b1Nlc3Npb25Qcml2YXRlKGJvb2wgbXV0ZWRTdGF0ZSkKICAgICAgICAgOiBsYXN0TXV0ZWRTdGF0
ZShtdXRlZFN0YXRlKSB7IH0KICAgICBib29sIGxhc3RNdXRlZFN0YXRlOwotICAgIEF1ZGlvU2Vz
c2lvbjo6Q2F0ZWdvcnlUeXBlIGNhdGVnb3J5IHsgQXVkaW9TZXNzaW9uOjpOb25lIH07CisgICAg
QXVkaW9TZXNzaW9uQ2F0ZWdvcnkgY2F0ZWdvcnkgeyBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6Tm9u
ZSB9OwogfTsKIAogQXVkaW9TZXNzaW9uOjpBdWRpb1Nlc3Npb24oKQpAQCAtNjgsMjMgKzY4LDIz
IEBAIEF1ZGlvU2Vzc2lvbjo6QXVkaW9TZXNzaW9uKCkKIAogQXVkaW9TZXNzaW9uOjp+QXVkaW9T
ZXNzaW9uKCkgPSBkZWZhdWx0OwogCi1BdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBBdWRpb1Nl
c3Npb246OmNhdGVnb3J5KCkgY29uc3QKK0F1ZGlvU2Vzc2lvbkNhdGVnb3J5IEF1ZGlvU2Vzc2lv
bjo6Y2F0ZWdvcnkoKSBjb25zdAogewogICAgIHJldHVybiBtX3ByaXZhdGUtPmNhdGVnb3J5Owog
fQogCi12b2lkIEF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnkoQ2F0ZWdvcnlUeXBlIGNhdGVnb3J5
LCBSb3V0ZVNoYXJpbmdQb2xpY3kpCit2b2lkIEF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnkoQXVk
aW9TZXNzaW9uQ2F0ZWdvcnkgY2F0ZWdvcnksIFJvdXRlU2hhcmluZ1BvbGljeSkKIHsKICAgICBt
X3ByaXZhdGUtPmNhdGVnb3J5ID0gY2F0ZWdvcnk7CiB9CiAKLUF1ZGlvU2Vzc2lvbjo6Q2F0ZWdv
cnlUeXBlIEF1ZGlvU2Vzc2lvbjo6Y2F0ZWdvcnlPdmVycmlkZSgpIGNvbnN0CitBdWRpb1Nlc3Np
b25DYXRlZ29yeSBBdWRpb1Nlc3Npb246OmNhdGVnb3J5T3ZlcnJpZGUoKSBjb25zdAogewogICAg
IG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIE5vbmU7CiB9CiAKLXZvaWQgQXVkaW9TZXNz
aW9uOjpzZXRDYXRlZ29yeU92ZXJyaWRlKENhdGVnb3J5VHlwZSkKK3ZvaWQgQXVkaW9TZXNzaW9u
OjpzZXRDYXRlZ29yeU92ZXJyaWRlKEF1ZGlvU2Vzc2lvbkNhdGVnb3J5KQogewogICAgIG5vdElt
cGxlbWVudGVkKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvQmFzZUF1ZGlvU2hhcmVkVW5pdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQmFzZUF1ZGlvU2hhcmVkVW5pdC5jcHAKaW5kZXggZDYzYmY1
NGExNjNiNTExOTJlYTBhMzYzNzg2ZGY4NzZiODlmOTg0Zi4uNGMzYzgyOGJkMjMyOTBmZDk3MzAy
NWQ2NDEyNzEzZDhhMTg0MDBiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL0Jhc2VBdWRpb1NoYXJlZFVuaXQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9CYXNlQXVkaW9TaGFyZWRVbml0LmNwcApAQCAt
OTcsNyArOTcsNyBAQCBPU1N0YXR1cyBCYXNlQXVkaW9TaGFyZWRVbml0OjpzdGFydFVuaXQoKQog
ICAgIGZvckVhY2hDbGllbnQoW10oYXV0byYgY2xpZW50KSB7CiAgICAgICAgIGNsaWVudC5hdWRp
b1VuaXRXaWxsU3RhcnQoKTsKICAgICB9KTsKLSAgICBBU1NFUlQoIURlcHJlY2F0ZWRHbG9iYWxT
ZXR0aW5nczo6c2hvdWxkTWFuYWdlQXVkaW9TZXNzaW9uQ2F0ZWdvcnkoKSB8fCBBdWRpb1Nlc3Np
b246OnNoYXJlZFNlc3Npb24oKS5jYXRlZ29yeSgpID09IEF1ZGlvU2Vzc2lvbjo6UGxheUFuZFJl
Y29yZCk7CisgICAgQVNTRVJUKCFEZXByZWNhdGVkR2xvYmFsU2V0dGluZ3M6OnNob3VsZE1hbmFn
ZUF1ZGlvU2Vzc2lvbkNhdGVnb3J5KCkgfHwgQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCku
Y2F0ZWdvcnkoKSA9PSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6UGxheUFuZFJlY29yZCk7CiAKICAg
ICBpZiAoYXV0byBlcnJvciA9IHN0YXJ0SW50ZXJuYWwoKSkgewogICAgICAgICBjYXB0dXJlRmFp
bGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFs
dGltZUF1ZGlvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1Jl
YWx0aW1lQXVkaW9Tb3VyY2UuY3BwCmluZGV4IGM0NjYyZDRhNmQxZjMyNDQwOWQzOWNkYTU4Mjk4
YWY4OTkxMzhkMjUuLmRlN2IyZDU1OWFlNzYxMGYxOThiYTI4ODkyZDBjYzVmMTdmOGU1YzQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9T
b3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1l
QXVkaW9Tb3VyY2UuY3BwCkBAIC0xMzcsNyArMTM3LDcgQEAgdm9pZCBNb2NrUmVhbHRpbWVBdWRp
b1NvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKCkKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQog
ICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZh
Y3RvcnkoKS5zZXRBY3RpdmVTb3VyY2UoKnRoaXMpOwogICAgIFBsYXRmb3JtTWVkaWFTZXNzaW9u
TWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLnNlc3Npb25DYW5Qcm9kdWNlQXVkaW9DaGFuZ2VkKCk7
Ci0gICAgQVNTRVJUKEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLmNhdGVnb3J5KCkgPT0g
QXVkaW9TZXNzaW9uOjpQbGF5QW5kUmVjb3JkKTsKKyAgICBBU1NFUlQoQXVkaW9TZXNzaW9uOjpz
aGFyZWRTZXNzaW9uKCkuY2F0ZWdvcnkoKSA9PSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6UGxheUFu
ZFJlY29yZCk7CiAjZW5kaWYKIAogICAgIGlmICghc2FtcGxlUmF0ZSgpKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDQ5MmRmMmZjN2M3ZjE5ZmMzZTliOWIxNDM2MzRmMDdl
YjI5OGQ1ZWIuLjM1ZGUwZDE2ZTA1MDUwMjk0ZjBjYzliYzQyMTIyNTQ1MDhhN2M2N2YgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTQ5NzUsMTkgKzQ5NzUsMTkgQEAgU3Ry
aW5nIEludGVybmFsczo6YXVkaW9TZXNzaW9uQ2F0ZWdvcnkoKSBjb25zdAogewogI2lmIFVTRShB
VURJT19TRVNTSU9OKQogICAgIHN3aXRjaCAoQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCku
Y2F0ZWdvcnkoKSkgewotICAgIGNhc2UgQXVkaW9TZXNzaW9uOjpBbWJpZW50U291bmQ6CisgICAg
Y2FzZSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6QW1iaWVudFNvdW5kOgogICAgICAgICByZXR1cm4g
IkFtYmllbnRTb3VuZCJfczsKLSAgICBjYXNlIEF1ZGlvU2Vzc2lvbjo6U29sb0FtYmllbnRTb3Vu
ZDoKKyAgICBjYXNlIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpTb2xvQW1iaWVudFNvdW5kOgogICAg
ICAgICByZXR1cm4gIlNvbG9BbWJpZW50U291bmQiX3M7Ci0gICAgY2FzZSBBdWRpb1Nlc3Npb246
Ok1lZGlhUGxheWJhY2s6CisgICAgY2FzZSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6TWVkaWFQbGF5
YmFjazoKICAgICAgICAgcmV0dXJuICJNZWRpYVBsYXliYWNrIl9zOwotICAgIGNhc2UgQXVkaW9T
ZXNzaW9uOjpSZWNvcmRBdWRpbzoKKyAgICBjYXNlIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpSZWNv
cmRBdWRpbzoKICAgICAgICAgcmV0dXJuICJSZWNvcmRBdWRpbyJfczsKLSAgICBjYXNlIEF1ZGlv
U2Vzc2lvbjo6UGxheUFuZFJlY29yZDoKKyAgICBjYXNlIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpQ
bGF5QW5kUmVjb3JkOgogICAgICAgICByZXR1cm4gIlBsYXlBbmRSZWNvcmQiX3M7Ci0gICAgY2Fz
ZSBBdWRpb1Nlc3Npb246OkF1ZGlvUHJvY2Vzc2luZzoKKyAgICBjYXNlIEF1ZGlvU2Vzc2lvbkNh
dGVnb3J5OjpBdWRpb1Byb2Nlc3Npbmc6CiAgICAgICAgIHJldHVybiAiQXVkaW9Qcm9jZXNzaW5n
Il9zOwotICAgIGNhc2UgQXVkaW9TZXNzaW9uOjpOb25lOgorICAgIGNhc2UgQXVkaW9TZXNzaW9u
Q2F0ZWdvcnk6Ok5vbmU6CiAgICAgICAgIHJldHVybiAiTm9uZSJfczsKICAgICB9CiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmNwcAppbmRleCA2YTJjODcwZjdhYWExYjBkYjAwMGVmODg4MjdjOWEwZjYxZGNmMjVi
Li4wOTdkYTU5ZTQwZjRkMGZjMWYxNjk2NmQ2NjQ3ZmExNTgzODgzYjgzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3Bw
CkBAIC02MSw4ICs2MSwxMiBAQAogI2luY2x1ZGUgIldlYkVycm9ycy5oIgogI2luY2x1ZGUgIldl
YlByb2Nlc3NNZXNzYWdlcy5oIgogCisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSA8V2Vi
Q29yZS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlh
U2Vzc2lvbk1hbmFnZXJpT1MuaD4KKyNlbmRpZgorCiAjaW5jbHVkZSA8V2ViQ29yZS9Nb2NrUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1NZWRp
YVNlc3Npb25NYW5hZ2VyLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CkBAIC04MCw5ICs4NCwxOSBAQCBwcml2YXRlOgogICAgIHZvaWQgYWRkTWVzc2Fn
ZVJlY2VpdmVyKElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6
TWVzc2FnZVJlY2VpdmVyJiByZWNlaXZlcikgZmluYWwgeyB9CiAgICAgdm9pZCByZW1vdmVNZXNz
YWdlUmVjZWl2ZXIoSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSkgZmlu
YWwgeyB9CiAgICAgSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKCkgZmluYWwgeyByZXR1cm4g
bV9wcm9jZXNzLmNvbm5lY3Rpb24oKTsgfQotICAgIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdl
ciYgc2Vzc2lvbk1hbmFnZXIoKSBmaW5hbCB7IHJldHVybiBtX3Byb2Nlc3Muc2Vzc2lvbk1hbmFn
ZXIoKTsgfQotICAgIHZvaWQgd2lsbFN0YXJ0Q2FtZXJhQ2FwdHVyZSgpIGZpbmFsIHsgc2Vzc2lv
bk1hbmFnZXIoKS5wcmVwYXJlVG9TZW5kVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoKTsgfQor
ICAgIHZvaWQgd2lsbFN0YXJ0Q2FtZXJhQ2FwdHVyZSgpIGZpbmFsCisgICAgeworI2lmIFBMQVRG
T1JNKElPUykKKyAgICAgICAgaWYgKCFtX3Nob3VsZFByZXBhcmVUb1NlbmRVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdCkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgbV9zaG91bGRQcmVw
YXJlVG9TZW5kVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QgPSBmYWxzZTsKKyAgICAgICAgTWVk
aWFTZXNzaW9uTWFuYWdlcmlPUzo6cHJvdmlkZVByZXNlbnRpbmdBcHBsaWNhdGlvblBJRCgpOwor
I2VuZGlmCisgICAgfQogCisjaWYgUExBVEZPUk0oSU9TKQorICAgIGJvb2wgbV9zaG91bGRQcmVw
YXJlVG9TZW5kVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QgeyB0cnVlIH07CisjZW5kaWYKICAg
ICBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBtX3Byb2Nlc3M7CiB9OwogI2VuZGlmCkBAIC0x
OTksNiArMjEzLDIxIEBAIExpYldlYlJUQ0NvZGVjc1Byb3h5JiBHUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpsaWJXZWJSVENDb2RlY3NQcm94eSgpCiB9CiAjZW5kaWYKIAorI2lmIFVTRShBVURJ
T19TRVNTSU9OKQordm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjp0cnlUb1NldEF1ZGlv
U2Vzc2lvbkFzQWN0aXZlKGJvb2wgaXNBY3RpdmUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9v
bCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgY29tcGxldGlvbkhhbmRsZXIoQXVkaW9T
ZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkudHJ5VG9TZXRBY3RpdmUoaXNBY3RpdmUpKTsKK30KKwor
dm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjp1cGRhdGVBdWRpb1Nlc3Npb25QYXJhbWV0
ZXJzKHNpemVfdCBidWZmZXJTaXplLCBPcHRpb25hbDxXZWJDb3JlOjpBdWRpb1Nlc3Npb25DYXRl
Z29yeT4gY2F0ZWdvcnksIE9wdGlvbmFsPFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeT4gcG9s
aWN5KQoreworICAgIGlmIChidWZmZXJTaXplKQorICAgICAgICBBdWRpb1Nlc3Npb246OnNoYXJl
ZFNlc3Npb24oKS5zZXRQcmVmZXJyZWRCdWZmZXJTaXplKGJ1ZmZlclNpemUpOworICAgIGlmIChj
YXRlZ29yeSAmJiBwb2xpY3kpCisgICAgICAgIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigp
LnNldENhdGVnb3J5KCpjYXRlZ29yeSwgKnBvbGljeSk7Cit9CisjZW5kaWYKKwogdm9pZCBHUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjcmVhdGVSZW5kZXJpbmdCYWNrZW5kKFJlbmRlcmluZ0Jh
Y2tlbmRJZGVudGlmaWVyIHJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKQogewogICAgIGF1dG8g
YWRkUmVzdWx0ID0gbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHlNYXAuZW5zdXJlKHJlbmRl
cmluZ0JhY2tlbmRJZGVudGlmaWVyLCBbJl0oKSB7CkBAIC0zMDksMTMgKzMzOCw2IEBAIGNvbnN0
IFN0cmluZyYgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6bWVkaWFLZXlzU3RvcmFnZURpcmVj
dG9yeSgpIGNvbnN0CiB9CiAjZW5kaWYKIAotUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyJiBH
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzZXNzaW9uTWFuYWdlcigpCi17Ci0gICAgaWYgKCFt
X3Nlc3Npb25NYW5hZ2VyKQotICAgICAgICBtX3Nlc3Npb25NYW5hZ2VyID0gUGxhdGZvcm1NZWRp
YVNlc3Npb25NYW5hZ2VyOjpjcmVhdGUoKTsKLSAgICByZXR1cm4gKm1fc2Vzc2lvbk1hbmFnZXI7
Ci19Ci0KICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogdm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpzZXRPcmllbnRhdGlvbkZvck1lZGlhQ2FwdHVyZSh1aW50NjRfdCBvcmllbnRhdGlv
bikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5oCmluZGV4IDc0NzE1YzgwYzU0NWJlYWZlYzNmNmI3ZTA5ODRlY2E1MGNiYTI2
NjkuLmVhYTIwNjliNWEyNDgyMDA5MzQ5MWRiMzg4YjlkMjNjMmZhZDIxOWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysr
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApA
QCAtODMsOCArODMsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRPcmllbnRhdGlvbkZvck1lZGlh
Q2FwdHVyZSh1aW50NjRfdCBvcmllbnRhdGlvbik7CiAjZW5kaWYKIAotICAgIFdlYkNvcmU6OlBs
YXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlciYgc2Vzc2lvbk1hbmFnZXIoKTsKLQogcHJpdmF0ZToK
ICAgICBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKEdQVVByb2Nlc3MmLCBXZWJDb3JlOjpQcm9j
ZXNzSWRlbnRpZmllciwgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyLCBQQUw6OlNlc3Npb25J
RCk7CiAKQEAgLTEwMCw2ICs5OCwxMSBAQCBwcml2YXRlOgogICAgIFJlbW90ZUF1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlciYgYXVkaW9UcmFja1JlbmRlcmVyTWFuYWdlcigpOwog
ICAgIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXImIHNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllck1hbmFnZXIoKTsKICNlbmRpZgorI2VuZGlmCisKKyNpZiBVU0UoQVVESU9fU0VT
U0lPTikKKyAgICB2b2lkIHRyeVRvU2V0QXVkaW9TZXNzaW9uQXNBY3RpdmUoYm9vbCBpc0FjdGl2
ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CisgICAgdm9pZCB1cGRhdGVBdWRp
b1Nlc3Npb25QYXJhbWV0ZXJzKHNpemVfdCBidWZmZXJTaXplLCBPcHRpb25hbDxXZWJDb3JlOjpB
dWRpb1Nlc3Npb25DYXRlZ29yeT4sIE9wdGlvbmFsPFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGlj
eT4pOwogI2VuZGlmCiAgICAgdm9pZCBjcmVhdGVSZW5kZXJpbmdCYWNrZW5kKFJlbmRlcmluZ0Jh
Y2tlbmRJZGVudGlmaWVyKTsKICAgICB2b2lkIHJlbGVhc2VSZW5kZXJpbmdCYWNrZW5kKFJlbmRl
cmluZ0JhY2tlbmRJZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXgg
OTMyYzAxMjJkZTA4MWVkZTliYjllZmI1NmY5YmM1MjU5YmE0ZDcwNC4uMjVkYzQ3NGJhYjU1NmRj
MmE3NzE5ZDBkZTgwMmZkOGJkOGE1NjMxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4K
QEAgLTIzLDYgKzIzLDExIEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCiBtZXNzYWdlcyAt
PiBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzIFdhbnRzRGlzcGF0Y2hNZXNzYWdlIHsKKyNpZiBV
U0UoQVVESU9fU0VTU0lPTikKKyAgICB2b2lkIFRyeVRvU2V0QXVkaW9TZXNzaW9uQXNBY3RpdmUo
Ym9vbCBpc0FjdGl2ZSkgLT4gKGJvb2wgcmVzdWx0KSBTeW5jaHJvbm91cworICAgIHZvaWQgVXBk
YXRlQXVkaW9TZXNzaW9uUGFyYW1ldGVycyh1aW50NjRfdCBidWZmZXJTaXplLCBPcHRpb25hbDxX
ZWJDb3JlOjpBdWRpb1Nlc3Npb25DYXRlZ29yeT4gY2F0ZWdvcnksIE9wdGlvbmFsPFdlYkNvcmU6
OlJvdXRlU2hhcmluZ1BvbGljeT4gcG9saWN5KQorI2VuZGlmCisKICAgICB2b2lkIENyZWF0ZVJl
bmRlcmluZ0JhY2tlbmQoV2ViS2l0OjpSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllciByZW5kZXJp
bmdCYWNrZW5kSWRlbnRpZmllcikKICAgICB2b2lkIFJlbGVhc2VSZW5kZXJpbmdCYWNrZW5kKFdl
YktpdDo6UmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIgcmVuZGVyaW5nQmFja2VuZElkZW50aWZp
ZXIpCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCmluZGV4IGJkYWZhNTNlYWJlZDg2Y2Nh
MzE5YjJhYjM4YmM0MTFjOGRkYTA1ZTMuLjVjNTMxYTY4OGYzOWZlZTBjNjlhZjU0MTgyNzc5ZjVk
YjE2NDlhMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCkBAIC00NiwzMCArNDYsMjIg
QEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIGNsYXNzIFVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHk6OlNvdXJjZVByb3h5CiAgICAgOiBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZTo6
T2JzZXJ2ZXIKLSAgICAsIHB1YmxpYyBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTo6Q2xpZW50Ci0g
ICAgLCBwdWJsaWMgUGxhdGZvcm1NZWRpYVNlc3Npb246OkF1ZGlvQ2FwdHVyZVNvdXJjZSB7Cisg
ICAgLCBwdWJsaWMgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U6OkNsaWVudCB7CiAgICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgU291cmNlUHJveHkoUmVhbHRpbWVNZWRp
YVNvdXJjZUlkZW50aWZpZXIgaWQsIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlciYgc2Vzc2lv
bk1hbmFnZXIsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbiwgUmVmPFJlYWx0aW1l
TWVkaWFTb3VyY2U+JiYgc291cmNlKQorICAgIFNvdXJjZVByb3h5KFJlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaWVyIGlkLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIFJlZjxS
ZWFsdGltZU1lZGlhU291cmNlPiYmIHNvdXJjZSkKICAgICAgICAgOiBtX2lkKGlkKQotICAgICAg
ICAsIG1fc2Vzc2lvbk1hbmFnZXIobWFrZVdlYWtQdHIoc2Vzc2lvbk1hbmFnZXIpKQogICAgICAg
ICAsIG1fY29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKQogICAgICAgICAsIG1fc291cmNl
KFdURk1vdmUoc291cmNlKSkKICAgICAgICAgLCBtX3JpbmdCdWZmZXIobWFrZVVuaXF1ZVJlZjxT
aGFyZWRSaW5nQnVmZmVyU3RvcmFnZT4obWFrZVVuaXF1ZVJlZjxTaGFyZWRSaW5nQnVmZmVyU3Rv
cmFnZT4odGhpcykpKQogICAgIHsKICAgICAgICAgbV9zb3VyY2UtPmFkZE9ic2VydmVyKCp0aGlz
KTsKLQotICAgICAgICBpZiAobV9zb3VyY2UtPnR5cGUoKSA9PSBSZWFsdGltZU1lZGlhU291cmNl
OjpUeXBlOjpBdWRpbykKLSAgICAgICAgICAgIHNlc3Npb25NYW5hZ2VyLmFkZEF1ZGlvQ2FwdHVy
ZVNvdXJjZSgqdGhpcyk7CiAgICAgfQogCiAgICAgflNvdXJjZVByb3h5KCkKICAgICB7CiAgICAg
ICAgIHN0b3JhZ2UoKS5pbnZhbGlkYXRlKCk7CiAgICAgICAgIG1fc291cmNlLT5yZW1vdmVPYnNl
cnZlcigqdGhpcyk7Ci0KLSAgICAgICAgaWYgKG1fc291cmNlLT50eXBlKCkgPT0gUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8gJiYgbV9zZXNzaW9uTWFuYWdlcikKLSAgICAgICAgICAg
IG1fc2Vzc2lvbk1hbmFnZXItPnJlbW92ZUF1ZGlvQ2FwdHVyZVNvdXJjZSgqdGhpcyk7CiAgICAg
fQogCiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZSYgc291cmNlKCkgeyByZXR1cm4gbV9zb3VyY2U7
IH0KQEAgLTc3LDE0ICs2OSw2IEBAIHB1YmxpYzoKICAgICBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRp
b24mIGRlc2NyaXB0aW9uKCkgeyByZXR1cm4gbV9kZXNjcmlwdGlvbjsgfQogICAgIGludDY0X3Qg
bnVtYmVyT2ZGcmFtZXMoKSB7IHJldHVybiBtX251bWJlck9mRnJhbWVzOyB9CiAKLSAgICBib29s
IGlzQ2FwdHVyaW5nQXVkaW8oKSBjb25zdCBmaW5hbCB7IHJldHVybiAhbV9pc0VuZGVkICYmIG1f
c291cmNlLT5pc1Byb2R1Y2luZ0RhdGEoKTsgfQotCi0gICAgdm9pZCBhdWRpb1VuaXRXaWxsU3Rh
cnQoKSBmaW5hbAotICAgIHsKLSAgICAgICAgaWYgKCFtX2lzRW5kZWQgJiYgbV9zZXNzaW9uTWFu
YWdlcikKLSAgICAgICAgICAgIG1fc2Vzc2lvbk1hbmFnZXItPnNlc3Npb25DYW5Qcm9kdWNlQXVk
aW9DaGFuZ2VkKCk7Ci0gICAgfQotCiAgICAgdm9pZCBzdGFydCgpCiAgICAgewogICAgICAgICBt
X2lzRW5kZWQgPSBmYWxzZTsKQEAgLTIxNCw3ICsxOTgsNyBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHk6OmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25z
dHJhaQogICAgICAgICBhdXRvIHNvdXJjZSA9IHNvdXJjZU9yRXJyb3Iuc291cmNlKCk7CiAgICAg
ICAgIHNldHRpbmdzID0gc291cmNlLT5zZXR0aW5ncygpOwogICAgICAgICBBU1NFUlQoIW1fcHJv
eGllcy5jb250YWlucyhpZCkpOwotICAgICAgICBtX3Byb3hpZXMuYWRkKGlkLCBtYWtlVW5pcXVl
PFNvdXJjZVByb3h5PihpZCwgbV9jb25uZWN0aW9uUHJveHktPnNlc3Npb25NYW5hZ2VyKCksIG1f
Y29ubmVjdGlvblByb3h5LT5jb25uZWN0aW9uKCksIFdURk1vdmUoc291cmNlKSkpOworICAgICAg
ICBtX3Byb3hpZXMuYWRkKGlkLCBtYWtlVW5pcXVlPFNvdXJjZVByb3h5PihpZCwgbV9jb25uZWN0
aW9uUHJveHktPmNvbm5lY3Rpb24oKSwgV1RGTW92ZShzb3VyY2UpKSk7CiAgICAgfSBlbHNlCiAg
ICAgICAgIGludmFsaWRDb25zdHJhaW50cyA9IFdURk1vdmUoc291cmNlT3JFcnJvci5lcnJvck1l
c3NhZ2UpOwogICAgIGNvbXBsZXRpb25IYW5kbGVyKHN1Y2NlZWRlZCwgaW52YWxpZENvbnN0cmFp
bnRzLCBXVEZNb3ZlKHNldHRpbmdzKSk7CkBAIC0yNzAsNyArMjU0LDcgQEAgdm9pZCBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5OjpjbG9uZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
ciBjbG9uZWRJRCwKICAgICBBU1NFUlQobV9wcm94aWVzLmNvbnRhaW5zKGNsb25lZElEKSk7CiAg
ICAgQVNTRVJUKCFtX3Byb3hpZXMuY29udGFpbnMobmV3U291cmNlSUQpKTsKICAgICBpZiAoYXV0
byogcHJveHkgPSBtX3Byb3hpZXMuZ2V0KGNsb25lZElEKSkKLSAgICAgICAgbV9wcm94aWVzLmFk
ZChuZXdTb3VyY2VJRCwgbWFrZVVuaXF1ZTxTb3VyY2VQcm94eT4obmV3U291cmNlSUQsIG1fY29u
bmVjdGlvblByb3h5LT5zZXNzaW9uTWFuYWdlcigpLCBtX2Nvbm5lY3Rpb25Qcm94eS0+Y29ubmVj
dGlvbigpLCBwcm94eS0+c291cmNlKCkuY2xvbmUoKSkpOworICAgICAgICBtX3Byb3hpZXMuYWRk
KG5ld1NvdXJjZUlELCBtYWtlVW5pcXVlPFNvdXJjZVByb3h5PihuZXdTb3VyY2VJRCwgbV9jb25u
ZWN0aW9uUHJveHktPmNvbm5lY3Rpb24oKSwgcHJveHktPnNvdXJjZSgpLmNsb25lKCkpKTsKIH0K
IAogdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpyZXF1ZXN0VG9FbmQoUmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgc291cmNlSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgK
aW5kZXggMjdiYzc3MGMwZDljOTE2N2E0OWE3ZDI5MGZhZmZkMzk5Mjg2NDg5Mi4uYTc2YWY5NmVh
NTg0Y2IyMTI5NTI3YjJmMTI5YWMyOGNjNmIyZDdlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHku
aApAQCAtNTMsNyArNTMsNiBAQCBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgdm9pZCBhZGRNZXNz
YWdlUmVjZWl2ZXIoSVBDOjpTdHJpbmdSZWZlcmVuY2UsIElQQzo6TWVzc2FnZVJlY2VpdmVyJikg
PSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlTWVzc2FnZVJlY2VpdmVyKElQQzo6U3Ry
aW5nUmVmZXJlbmNlKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgSVBDOjpDb25uZWN0aW9uJiBjb25u
ZWN0aW9uKCkgPSAwOwotICAgICAgICB2aXJ0dWFsIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNz
aW9uTWFuYWdlciYgc2Vzc2lvbk1hbmFnZXIoKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCB3
aWxsU3RhcnRDYW1lcmFDYXB0dXJlKCkgeyB9CiAgICAgfTsKICAgICBleHBsaWNpdCBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5KFVuaXF1ZVJlZjxDb25uZWN0aW9uUHJveHk+JiYpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXggOGI3MGQ2NDdl
ZTgyNmNhZGQyZDJiZmY3ZWRmMzg3ZjNjOGIwNGZkZi4uMDMyZjBiOTAwYWQ5ZjQ0MjI4ZjIwZTc2
ODYyMGMyMWI2M2MyNjg5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuY3BwCkBAIC0xNjAsNyArMTYwLDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGFkZE1lc3Nh
Z2VSZWNlaXZlcihJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6
Ok1lc3NhZ2VSZWNlaXZlciYgcmVjZWl2ZXIpIGZpbmFsIHsgbV9wcm9jZXNzLmFkZE1lc3NhZ2VS
ZWNlaXZlcihtZXNzYWdlUmVjZWl2ZXJOYW1lLCByZWNlaXZlcik7IH0KICAgICB2b2lkIHJlbW92
ZU1lc3NhZ2VSZWNlaXZlcihJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1l
KSBmaW5hbCB7IG1fcHJvY2Vzcy5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIobWVzc2FnZVJlY2VpdmVy
TmFtZSk7IH0KICAgICBJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24oKSBmaW5hbCB7IHJldHVy
biAqbV9wcm9jZXNzLmNvbm5lY3Rpb24oKTsgfQotICAgIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFu
YWdlciYgc2Vzc2lvbk1hbmFnZXIoKSBmaW5hbCB7IHJldHVybiBQbGF0Zm9ybU1lZGlhU2Vzc2lv
bk1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKTsgfQogCiAgICAgV2ViUHJvY2Vzc1Byb3h5JiBtX3By
b2Nlc3M7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9XZWJNZWRpYVN0cmF0ZWd5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvV2ViTWVkaWFTdHJhdGVneS5jcHAKaW5kZXggMmFhZTVlNTQ0NTEwODQ3OWJkM2NkMzM5YWZh
NmJmNmQyZGRhYmNmNi4uY2JmODMxNDgzYTQ2NTE0OWNkZGIxNWI4NTlmOWE1MTJjMDZiNzQzZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0
cmF0ZWd5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1l
ZGlhU3RyYXRlZ3kuY3BwCkBAIC0zMCwxMiArMzAsNDIgQEAKICNpbmNsdWRlICJSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uUHJveHkuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvRGVzdGluYXRpb24u
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvSU9DYWxsYmFjay5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvQXVkaW9TZXNzaW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9DRE1GYWN0b3J5Lmg+CiAKIG5h
bWVzcGFjZSBXZWJLaXQgewogCiBXZWJNZWRpYVN0cmF0ZWd5Ojp+V2ViTWVkaWFTdHJhdGVneSgp
ID0gZGVmYXVsdDsKIAorI2lmIFVTRShBVURJT19TRVNTSU9OKQorYm9vbCBXZWJNZWRpYVN0cmF0
ZWd5Ojp0cnlUb1NldEF1ZGlvU2Vzc2lvbkFzQWN0aXZlKGJvb2wgaXNBY3RpdmUpCit7CisjaWYg
RU5BQkxFKEdQVV9QUk9DRVNTKQorICAgIGlmIChtX3VzZUdQVVByb2Nlc3MpIHsKKyAgICAgICAg
YXV0byYgY29ubmVjdGlvbiA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nl
c3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpOworICAgICAgICBib29sIHJlc3VsdDsKKyAgICAg
ICAgY29ubmVjdGlvbi5zZW5kU3luYyhNZXNzYWdlczo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6VHJ5VG9TZXRBdWRpb1Nlc3Npb25Bc0FjdGl2ZSB7IGlzQWN0aXZlIH0sIE1lc3NhZ2VzOjpH
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpUcnlUb1NldEF1ZGlvU2Vzc2lvbkFzQWN0aXZlOjpS
ZXBseShyZXN1bHQpLCAwKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisjZW5kaWYK
KyAgICByZXR1cm4gQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkudHJ5VG9TZXRBY3RpdmUo
aXNBY3RpdmUpOworfQorCit2b2lkIFdlYk1lZGlhU3RyYXRlZ3k6OnVwZGF0ZUF1ZGlvU2Vzc2lv
blBhcmFtZXRlcnMoc2l6ZV90IGJ1ZmZlclNpemUsIE9wdGlvbmFsPEF1ZGlvU2Vzc2lvbkNhdGVn
b3J5PiBjYXRlZ29yeSwgT3B0aW9uYWw8Um91dGVTaGFyaW5nUG9saWN5PiBwb2xpY3kpCit7Cisj
aWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorICAgIGlmIChtX3VzZUdQVVByb2Nlc3MpIHsKKyAgICAg
ICAgYXV0byYgY29ubmVjdGlvbiA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVBy
b2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpOworICAgICAgICBjb25uZWN0aW9uLnNlbmQo
TWVzc2FnZXM6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlVwZGF0ZUF1ZGlvU2Vzc2lvblBh
cmFtZXRlcnMgeyBidWZmZXJTaXplLCBjYXRlZ29yeSwgcG9saWN5IH0sIDApOworICAgICAgICBy
ZXR1cm47CisgICAgfQorI2VuZGlmCisgICAgQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCku
c2V0UHJlZmVycmVkQnVmZmVyU2l6ZShidWZmZXJTaXplKTsKKyAgICBpZiAoY2F0ZWdvcnkgJiYg
cG9saWN5KQorICAgICAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zZXRDYXRlZ29y
eSgqY2F0ZWdvcnksICpwb2xpY3kpOworfQorI2VuZGlmCisKICNpZiBFTkFCTEUoV0VCX0FVRElP
KQogc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb24+IFdlYk1lZGlhU3Ry
YXRlZ3k6OmNyZWF0ZUF1ZGlvRGVzdGluYXRpb24oV2ViQ29yZTo6QXVkaW9JT0NhbGxiYWNrJiBj
YWxsYmFjaywgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLAogICAgIHVuc2lnbmVkIG51bWJl
ck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQg
c2FtcGxlUmF0ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvV2ViTWVkaWFTdHJhdGVneS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9XZWJNZWRpYVN0cmF0ZWd5LmgKaW5kZXggNGZhYjBlOTQ0ZmMxNGU2ODQzNzllMzAwODE2M2Jl
MTYyZGQ4OWI0ZC4uOWFmNjAxYzg3MmVlNTgxMzZmOGJhMzY2OGExYTQ0ZGFlOWQ4Zjc1OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0
ZWd5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0
cmF0ZWd5LmgKQEAgLTM4LDYgKzM4LDEwIEBAIHB1YmxpYzoKICNlbmRpZgogCiBwcml2YXRlOgor
I2lmIFVTRShBVURJT19TRVNTSU9OKQorICAgIGJvb2wgdHJ5VG9TZXRBdWRpb1Nlc3Npb25Bc0Fj
dGl2ZShib29sIGlzQWN0aXZlKSBmaW5hbDsKKyAgICB2b2lkIHVwZGF0ZUF1ZGlvU2Vzc2lvblBh
cmFtZXRlcnMoc2l6ZV90IGJ1ZmZlclNpemUsIE9wdGlvbmFsPFdlYkNvcmU6OkF1ZGlvU2Vzc2lv
bkNhdGVnb3J5PiwgT3B0aW9uYWw8V2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5PikgZmluYWw7
CisjZW5kaWYKICNpZiBFTkFCTEUoV0VCX0FVRElPKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJD
b3JlOjpBdWRpb0Rlc3RpbmF0aW9uPiBjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKFdlYkNvcmU6OkF1
ZGlvSU9DYWxsYmFjayYsCiAgICAgICAgIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwgdW5z
aWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5u
ZWxzLCBmbG9hdCBzYW1wbGVSYXRlKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1BsdWdpbnMvV2ViUGx1Z2luQ29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1BsdWdpbnMvV2ViUGx1Z2luQ29udHJvbGxlci5tbQppbmRleCAzZjI2ZGQ2
YzY0NzIxNjZhYjJlM2JkM2FlNTIxMTBjMDMwMDkzYjBmLi4zNzBmOTNiYzg0ODk0ODI1ZjIxY2Vl
ZDNmNmFkYzg2ZTZiNmVjMDA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9Q
bHVnaW5zL1dlYlBsdWdpbkNvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvUGx1Z2lucy9XZWJQbHVnaW5Db250cm9sbGVyLm1tCkBAIC0xMTEsNyArMTExLDcgQEAgc3Rh
dGljIHZvaWQgaW5pdGlhbGl6ZUF1ZGlvU2Vzc2lvbigpCiAgICAgaWYgKCFXZWJDb3JlOjpJT1NB
cHBsaWNhdGlvbjo6aXNNb2JpbGVTYWZhcmkoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgV2Vi
Q29yZTo6QXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2V0Q2F0ZWdvcnkoV2ViQ29yZTo6
QXVkaW9TZXNzaW9uOjpNZWRpYVBsYXliYWNrLCBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3k6
OkRlZmF1bHQpOworICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNl
dENhdGVnb3J5KFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpNZWRpYVBsYXliYWNrLCBX
ZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3k6OkRlZmF1bHQpOwogfQogI2VuZGlmCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3Jt
U3RyYXRlZ2llcy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YlBsYXRmb3JtU3RyYXRlZ2llcy5tbQppbmRleCBiOTA5ZWNjNDM5YmNkM2M2ZjZkYTgwNDFjNmVm
MjkzZmYzNDY2OTZmLi44YTk1Y2Q4ZDcyNzVlNzBkZDgwY2Y0MmI5ZTBmYmI2NWNiZmZhYzUyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0
Zm9ybVN0cmF0ZWdpZXMubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tCkBAIC0yOSw2ICsyOSw3IEBACiAjaW1wb3J0
ICJXZWJQbHVnaW5QYWNrYWdlLmgiCiAjaW1wb3J0ICJXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIu
aCIKICNpbXBvcnQgPFdlYkNvcmUvQXVkaW9EZXN0aW5hdGlvbi5oPgorI2ltcG9ydCA8V2ViQ29y
ZS9BdWRpb1Nlc3Npb24uaD4KICNpbXBvcnQgPFdlYkNvcmUvQmxvYlJlZ2lzdHJ5SW1wbC5oPgog
I2ltcG9ydCA8V2ViQ29yZS9DRE1GYWN0b3J5Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0NvbG9yLmg+
CkBAIC02Nyw2ICs2OCwyMCBAQCBQYXN0ZWJvYXJkU3RyYXRlZ3kqIFdlYlBsYXRmb3JtU3RyYXRl
Z2llczo6Y3JlYXRlUGFzdGVib2FyZFN0cmF0ZWd5KCkKIAogY2xhc3MgV2ViTWVkaWFTdHJhdGVn
eSBmaW5hbCA6IHB1YmxpYyBNZWRpYVN0cmF0ZWd5IHsKIHByaXZhdGU6CisjaWYgVVNFKEFVRElP
X1NFU1NJT04pCisgICAgYm9vbCB0cnlUb1NldEF1ZGlvU2Vzc2lvbkFzQWN0aXZlKGJvb2wgaXNB
Y3RpdmUpIGZpbmFsCisgICAgeworICAgICAgICByZXR1cm4gQXVkaW9TZXNzaW9uOjpzaGFyZWRT
ZXNzaW9uKCkudHJ5VG9TZXRBY3RpdmUoaXNBY3RpdmUpOworICAgIH0KKworICAgIHZvaWQgdXBk
YXRlQXVkaW9TZXNzaW9uUGFyYW1ldGVycyhzaXplX3QgYnVmZmVyU2l6ZSwgT3B0aW9uYWw8V2Vi
Q29yZTo6QXVkaW9TZXNzaW9uQ2F0ZWdvcnk+IGNhdGVnb3J5LCBPcHRpb25hbDxXZWJDb3JlOjpS
b3V0ZVNoYXJpbmdQb2xpY3k+IHBvbGljeSkgZmluYWwKKyAgICB7CisgICAgICAgIGlmIChidWZm
ZXJTaXplKQorICAgICAgICAgICAgQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2V0UHJl
ZmVycmVkQnVmZmVyU2l6ZShidWZmZXJTaXplKTsKKyAgICAgICAgaWYgKGNhdGVnb3J5ICYmIHBv
bGljeSkKKyAgICAgICAgICAgIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldENhdGVn
b3J5KCpjYXRlZ29yeSwgKnBvbGljeSk7CisgICAgfQorI2VuZGlmCiAjaWYgRU5BQkxFKFdFQl9B
VURJTykKICAgICBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlQXVkaW9E
ZXN0aW5hdGlvbihBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBjb25zdCBTdHJpbmcmIGlucHV0
RGV2aWNlSWQsCiAgICAgICAgIHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWdu
ZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSkgb3ZlcnJpZGUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMu
bW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCmlu
ZGV4IGUyMGVlNzQ0NWNhOWIzNTJmYTY3ZDg1ZjM0MWYyMjEyYTBkNjIwZTUuLjQ3NmM4ZjBiODFm
ODM3N2Y4NTM1ZmE0NGViOGVjODY3M2Q1YWZkODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQpAQCAtNTQ0LDcgKzU0NCw3IEBAIHB1
YmxpYzoKICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhCb29sOmFsbG93c0lubGluZU1lZGlh
UGxheWJhY2tBZnRlckZ1bGxzY3JlZW5dLCBXZWJLaXRBbGxvd3NJbmxpbmVNZWRpYVBsYXliYWNr
QWZ0ZXJGdWxsc2NyZWVuUHJlZmVyZW5jZUtleSwKICAgICAgICAgW05TTnVtYmVyIG51bWJlcldp
dGhCb29sOnJlcXVpcmVzUGxheXNJbmxpbmVBdHRyaWJ1dGVdLCBXZWJLaXRJbmxpbmVNZWRpYVBs
YXliYWNrUmVxdWlyZXNQbGF5c0lubGluZUF0dHJpYnV0ZUtleSwKICAgICAgICAgQE5PLCBXZWJL
aXRNZWRpYUNvbnRyb2xzU2NhbGVXaXRoUGFnZVpvb21QcmVmZXJlbmNlS2V5LAotICAgICAgICBb
TlNOdW1iZXIgbnVtYmVyV2l0aFVuc2lnbmVkSW50OkF1ZGlvU2Vzc2lvbjo6Tm9uZV0sIFdlYktp
dEF1ZGlvU2Vzc2lvbkNhdGVnb3J5T3ZlcnJpZGUsCisgICAgICAgIFtOU051bWJlciBudW1iZXJX
aXRoVW5zaWduZWRJbnQ6c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEF1ZGlvU2Vzc2lvbkNhdGVnb3J5
OjpOb25lKV0sIFdlYktpdEF1ZGlvU2Vzc2lvbkNhdGVnb3J5T3ZlcnJpZGUsCiAgICAgICAgIEBO
TywgV2ViS2l0TWVkaWFEYXRhTG9hZHNBdXRvbWF0aWNhbGx5UHJlZmVyZW5jZUtleSwKICNpZiBI
QVZFKEFWS0lUKQogICAgICAgICBAWUVTLCBXZWJLaXRBVktpdEVuYWJsZWQsCkBAIC0yNDIyLDM3
ICsyNDIyLDM4IEBAIHN0YXRpYyBOU1N0cmluZyAqY2xhc3NJQkNyZWF0b3JJRCA9IG5pbDsKICAg
ICByZXR1cm4gW3NlbGYgX3Vuc2lnbmVkSW50VmFsdWVGb3JLZXk6V2ViS2l0QXVkaW9TZXNzaW9u
Q2F0ZWdvcnlPdmVycmlkZV07CiB9CiAKLS0gKHZvaWQpc2V0QXVkaW9TZXNzaW9uQ2F0ZWdvcnlP
dmVycmlkZToodW5zaWduZWQpb3ZlcnJpZGUKKy0gKHZvaWQpc2V0QXVkaW9TZXNzaW9uQ2F0ZWdv
cnlPdmVycmlkZToodW5zaWduZWQpb3ZlcnJpZGVWYWx1ZQogewotICAgIGlmIChvdmVycmlkZSA+
IEF1ZGlvU2Vzc2lvbjo6QXVkaW9Qcm9jZXNzaW5nKSB7CisgICAgYXV0byBvdmVycmlkZSA9IHN0
YXRpY19jYXN0PEF1ZGlvU2Vzc2lvbkNhdGVnb3J5PihvdmVycmlkZVZhbHVlKTsKKyAgICBpZiAo
b3ZlcnJpZGVWYWx1ZSA+IHN0YXRpY19jYXN0PHVuc2lnbmVkPihBdWRpb1Nlc3Npb25DYXRlZ29y
eTo6QXVkaW9Qcm9jZXNzaW5nKSkgewogICAgICAgICAvLyBDbGllbnRzIGFyZSBwYXNzaW5nIHVz
IE9TVHlwZXMgdmFsdWVzIGZyb20gQXVkaW9Ub29sYm94L0F1ZGlvU2Vzc2lvbi5oLAotICAgICAg
ICAvLyB3aGljaCBuZWVkIHRvIGJlIHRyYW5zbGF0ZWQgaW50byBBdWRpb1Nlc3Npb246OkNhdGVn
b3J5VHlwZToKLSAgICAgICAgc3dpdGNoIChvdmVycmlkZSkgeworICAgICAgICAvLyB3aGljaCBu
ZWVkIHRvIGJlIHRyYW5zbGF0ZWQgaW50byBBdWRpb1Nlc3Npb25DYXRlZ29yeToKKyAgICAgICAg
c3dpdGNoIChvdmVycmlkZVZhbHVlKSB7CiAgICAgICAgIGNhc2UgV2ViS2l0QXVkaW9TZXNzaW9u
Q2F0ZWdvcnlBbWJpZW50U291bmQ6Ci0gICAgICAgICAgICBvdmVycmlkZSA9IEF1ZGlvU2Vzc2lv
bjo6QW1iaWVudFNvdW5kOworICAgICAgICAgICAgb3ZlcnJpZGUgPSBBdWRpb1Nlc3Npb25DYXRl
Z29yeTo6QW1iaWVudFNvdW5kOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgV2Vi
S2l0QXVkaW9TZXNzaW9uQ2F0ZWdvcnlTb2xvQW1iaWVudFNvdW5kOgotICAgICAgICAgICAgb3Zl
cnJpZGUgPSBBdWRpb1Nlc3Npb246OlNvbG9BbWJpZW50U291bmQ7CisgICAgICAgICAgICBvdmVy
cmlkZSA9IEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpTb2xvQW1iaWVudFNvdW5kOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIGNhc2UgV2ViS2l0QXVkaW9TZXNzaW9uQ2F0ZWdvcnlNZWRpYVBs
YXliYWNrOgotICAgICAgICAgICAgb3ZlcnJpZGUgPSBBdWRpb1Nlc3Npb246Ok1lZGlhUGxheWJh
Y2s7CisgICAgICAgICAgICBvdmVycmlkZSA9IEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpNZWRpYVBs
YXliYWNrOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgV2ViS2l0QXVkaW9TZXNz
aW9uQ2F0ZWdvcnlSZWNvcmRBdWRpbzoKLSAgICAgICAgICAgIG92ZXJyaWRlID0gQXVkaW9TZXNz
aW9uOjpSZWNvcmRBdWRpbzsKKyAgICAgICAgICAgIG92ZXJyaWRlID0gQXVkaW9TZXNzaW9uQ2F0
ZWdvcnk6OlJlY29yZEF1ZGlvOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgV2Vi
S2l0QXVkaW9TZXNzaW9uQ2F0ZWdvcnlQbGF5QW5kUmVjb3JkOgotICAgICAgICAgICAgb3ZlcnJp
ZGUgPSBBdWRpb1Nlc3Npb246OlBsYXlBbmRSZWNvcmQ7CisgICAgICAgICAgICBvdmVycmlkZSA9
IEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpQbGF5QW5kUmVjb3JkOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIGNhc2UgV2ViS2l0QXVkaW9TZXNzaW9uQ2F0ZWdvcnlBdWRpb1Byb2Nlc3Npbmc6
Ci0gICAgICAgICAgICBvdmVycmlkZSA9IEF1ZGlvU2Vzc2lvbjo6QXVkaW9Qcm9jZXNzaW5nOwor
ICAgICAgICAgICAgb3ZlcnJpZGUgPSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6QXVkaW9Qcm9jZXNz
aW5nOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBv
dmVycmlkZSA9IEF1ZGlvU2Vzc2lvbjo6Tm9uZTsKKyAgICAgICAgICAgIG92ZXJyaWRlID0gQXVk
aW9TZXNzaW9uQ2F0ZWdvcnk6Ok5vbmU7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQog
ICAgIH0KIAotICAgIFtzZWxmIF9zZXRVbnNpZ25lZEludFZhbHVlOm92ZXJyaWRlIGZvcktleTpX
ZWJLaXRBdWRpb1Nlc3Npb25DYXRlZ29yeU92ZXJyaWRlXTsKKyAgICBbc2VsZiBfc2V0VW5zaWdu
ZWRJbnRWYWx1ZTpzdGF0aWNfY2FzdDx1bnNpZ25lZD4ob3ZlcnJpZGUpIGZvcktleTpXZWJLaXRB
dWRpb1Nlc3Npb25DYXRlZ29yeU92ZXJyaWRlXTsKIH0KIAogLSAoQk9PTClhdktpdEVuYWJsZWQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392439</attachid>
            <date>2020-03-04 10:48:07 -0800</date>
            <delta_ts>2020-03-04 10:53:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208578-20200304194804.patch</filename>
            <type>text/plain</type>
            <size>63321</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3ODM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzNhODhkNjVmYjEzYTYx
Y2RmNjNmNjY2OTU0MjU1MDgzN2YzOWFiOS4uOTc0NGI3NmNhMDVhNjVmMGIxNzlmZGJmYmRhM2Ux
Y2YyZTM4YmQwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDIwLTAzLTA0ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBFeHBvcnQgQXVkaW9TZXNz
aW9uIGNvbW1hbmRzIHRvIEdQVVByb2Nlc3Mgd2hlbiBtZWRpYSBwbGF5aW5nIGlzIGVuYWJsZWQg
aW4gR1BVUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjA4NTc4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkIHR3byBjb21tYW5kcyB0byBtZWRpYSBzdHJhdGVnaWVzIHRvIHNldCB0aGUgQXVk
aW9TZXNzaW9uIHBhcmFtZXRlcnMgYW5kIGFjdGl2YXRlL2RlYWN0aXZhdGUgdGhlIEF1ZGlvU2Vz
c2lvbi4KKyAgICAgICAgVXBkYXRlIGNvZGUgdG8gbWFrZSBBdWRpb1Nlc3Npb246OkNhdGVnb3J5
VHlwZSBhbmQgZW51bSBjbGFzcywgcmVuYW1lZCBBdWRpb1Nlc3Npb25DYXRlZ29yeS4KKyAgICAg
ICAgQWN0dWFsIGltcGxlbWVudGF0aW9uIG9mIHRoZSBjb21tYW5kcyBpcyBsZWZ0IGluIE1lZGlh
U2Vzc2lvbk1hbmFnZXJDb2NvYSBhcyBzdGF0aWMgbWV0aG9kcyB0aGF0IGNhbiBiZSB1c2VkIGlu
IHByb2Nlc3Mgb3Igb3V0IG9mIHByb2Nlc3MuCisKKyAgICAgICAgTWFudWFsbHkgdGVzdGVkIGFu
ZCBjb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBhZ2UvRGVwcmVjYXRlZEdsb2JhbFNldHRp
bmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlcHJlY2F0ZWRHbG9iYWxTZXR0aW5nczo6c2V0
QXVkaW9TZXNzaW9uQ2F0ZWdvcnlPdmVycmlkZSk6CisgICAgICAgIChXZWJDb3JlOjpEZXByZWNh
dGVkR2xvYmFsU2V0dGluZ3M6OmF1ZGlvU2Vzc2lvbkNhdGVnb3J5T3ZlcnJpZGUpOgorICAgICAg
ICAqIHBsYXRmb3JtL01lZGlhU3RyYXRlZ3kuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9B
dWRpb1Nlc3Npb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpjYXRlZ29y
eU92ZXJyaWRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6c2V0Q2F0
ZWdvcnlPdmVycmlkZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Nlc3Npb246OmNhdGVnb3J5
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzZXNzaW9uV2lsbEJlZ2luUGxheWJh
Y2spOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpwcm9j
ZXNzRGlkUmVzdW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uTWFu
YWdlcjo6bWF5YmVEZWFjdGl2YXRlQXVkaW9TZXNzaW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9h
dWRpby9jb2NvYS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EubW06CisgICAgICAgIChNZWRpYVNl
c3Npb25NYW5hZ2VyQ29jb2E6OnVwZGF0ZVNlc3Npb25TdGF0ZSk6CisgICAgICAgICogcGxhdGZv
cm0vYXVkaW8vaW9zL0F1ZGlvU2Vzc2lvbklPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OmNhdGVn
b3J5TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Nlc3Npb25Qcml2YXRlOjpBdWRpb1Nl
c3Npb25Qcml2YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdv
cnkpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpjYXRlZ29yeSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5T3ZlcnJpZGUpOgorICAg
ICAgICAoV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpjYXRlZ29yeU92ZXJyaWRlIGNvbnN0KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlcmlPUzo6cHJvdmlkZVByZXNlbnRpbmdB
cHBsaWNhdGlvblBJRElmTmVjZXNzYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lv
bk1hbmFnZXJpT1M6OnByb3ZpZGVQcmVzZW50aW5nQXBwbGljYXRpb25QSUQpOgorICAgICAgICAq
IHBsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb1Nlc3Npb25NYWMuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QXVkaW9TZXNzaW9uOjpjYXRlZ29yeSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRp
b1Nlc3Npb246OnNldENhdGVnb3J5KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6
Y2F0ZWdvcnlPdmVycmlkZSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL0Jhc2VBdWRpb1NoYXJlZFVuaXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmFzZUF1ZGlv
U2hhcmVkVW5pdDo6c3RhcnRVbml0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFs
dGltZUF1ZGlvU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZUF1ZGlv
U291cmNlOjpzdGFydFByb2R1Y2luZ0RhdGEpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxz
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6YXVkaW9TZXNzaW9uQ2F0ZWdvcnkg
Y29uc3QpOgorCiAyMDIwLTAzLTAzICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4K
IAogICAgICAgICBXZWIgSW5zcGVjdG9yOiByZS1hZGQgYEluc3BlY3RvckZyb250ZW5kSG9zdGAg
c3VwcG9ydCBmb3IgbW92aW5nIHRoZSBpbnNwZWN0ZWQgd2luZG93CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDdmNDk3
N2YzNzI3MDZkMzMwYWFlZjFjMzkzMzUwMGFjNDA2NDI5MjUuLmM3MTE3ZGRlOWQ2ZDFlNWE4Mjg0
MWY3Y2Q4YTc5YjNlMzBkYmZiM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMjAtMDMt
MDQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEV4cG9ydCBB
dWRpb1Nlc3Npb24gY29tbWFuZHMgdG8gR1BVUHJvY2VzcyB3aGVuIG1lZGlhIHBsYXlpbmcgaXMg
ZW5hYmxlZCBpbiBHUFVQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDg1NzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBTZW5kIElQQyBjb21tYW5kcyByZWxhdGVkIHRvIEF1ZGlvU2Vzc2lvbiBm
cm9tIFdlYlByb2Nlc3MgdG8gR1BVUHJvY2VzcyBhbmQgZG8gdGhlIGFjdHVhbCB3b3JrIGluIEdQ
VVByb2Nlc3MuCisgICAgICAgIFdlIGtlZXAgYSBzeW5jIElQQyBmb3Igbm93IHdoZW4gYWN0aXZh
dGluZyB0aGUgQXVkaW9TZXNzaW9uIGFuZCB3aWxsIHRyeSB0byByZW1vdmUgaXQgaW4gYSBmb2xs
b3ctdXAKKyAgICAgICAgVG8gbWFrZSB0aGlzIHdvcmssIHdlIHJlbW92ZSB0aGUgdXNlciBvZiBN
ZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EgaW4gR1BVUHJvY2Vzcywgd2hpY2ggd2FzIHVzZWQgZm9y
IGNhcHR1cmUuCisgICAgICAgIFdlIHJlcGxhY2UgaXQgYnkgZWl0aGVyIGRlZGljYXRlZCBjYWxs
cyBvciBieSB0aGUgY29tbWFuZHMgdGhhdCBhcmUgbm93IGNvbWluZyBmcm9tIFdlYlByb2Nlc3Mu
CisKKyAgICAgICAgKiBHUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjp0cnlUb1NldEF1ZGlv
U2Vzc2lvbkFzQWN0aXZlKToKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6dXBkYXRlQXVkaW9TZXNzaW9uUGFyYW1ldGVycyk6CisgICAgICAgICogR1BVUHJvY2Vz
cy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9D
b2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U291cmNlUHJveHk6OlNvdXJjZVByb3h5KToK
KyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U291cmNlUHJv
eHk6On5Tb3VyY2VQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHk6OmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50
cyk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNsb25l
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAq
IFdlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJNZWRpYVN0cmF0ZWd5Ojp0cnlUb1NldEF1ZGlvU2Vzc2lvbkFzQWN0aXZlKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViTWVkaWFTdHJhdGVneTo6dXBkYXRlQXVkaW9TZXNzaW9uUGFyYW1l
dGVycyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5o
OgorCiAyMDIwLTAzLTAzICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAg
ICAgICBXZWIgSW5zcGVjdG9yOiByZS1hZGQgYEluc3BlY3RvckZyb250ZW5kSG9zdGAgc3VwcG9y
dCBmb3IgbW92aW5nIHRoZSBpbnNwZWN0ZWQgd2luZG93CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VM
b2cKaW5kZXggMTY3ZmZjN2JiNTBiOWJhM2QyNTViZjA5NzY4YjM0YTk2ZDg3OTQzMS4uOWRhMjEw
M2NlZmNkMzBhOGQwMjZmMGZiYzMwYTY4ZjdmNTM0ZjUwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIwLTAzLTA0ICBZb3Vlbm4gRmFibGV0ICA8eW91
ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBFeHBvcnQgQXVkaW9TZXNzaW9uIGNvbW1hbmRzIHRv
IEdQVVByb2Nlc3Mgd2hlbiBtZWRpYSBwbGF5aW5nIGlzIGVuYWJsZWQgaW4gR1BVUHJvY2Vzcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4NTc4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIGluLXBy
b2Nlc3MgaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgKiBQbHVnaW5zL1dlYlBsdWdpbkNvbnRy
b2xsZXIubW06CisgICAgICAgIChpbml0aWFsaXplQXVkaW9TZXNzaW9uKToKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW06CisgICAgICAgICogV2ViVmll
dy9XZWJQcmVmZXJlbmNlcy5tbToKKyAgICAgICAgKCtbV2ViUHJlZmVyZW5jZXMgaW5pdGlhbGl6
ZV0pOgorICAgICAgICAoLVtXZWJQcmVmZXJlbmNlcyBzZXRBdWRpb1Nlc3Npb25DYXRlZ29yeU92
ZXJyaWRlOl0pOgorCiAyMDIwLTAzLTAzICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNv
bT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiByZS1hZGQgYEluc3BlY3RvckZyb250ZW5kSG9z
dGAgc3VwcG9ydCBmb3IgbW92aW5nIHRoZSBpbnNwZWN0ZWQgd2luZG93CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFr
ZQppbmRleCBkYmFhMWQ3YzA2NGE4Y2Q2ZTkzYTQzYmU1YWUyNjIwZTVkMjk2ODI2Li4xZmE2NjJm
NTVmY2I3MzNmYTNmNTY4NjFmZDdkY2M0ZmM5NDI4NWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAg
LTEwMjksMTEgKzEwMjksMTMgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVS
UwogICAgIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvSGFyZHdhcmVMaXN0ZW5lci5oCiAgICAgcGxhdGZv
cm0vYXVkaW8vQXVkaW9JT0NhbGxiYWNrLmgKICAgICBwbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Np
b24uaAorICAgIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbkNhdGVnb3J5LmgKICAgICBwbGF0
Zm9ybS9hdWRpby9BdWRpb1NvdXJjZVByb3ZpZGVyLmgKICAgICBwbGF0Zm9ybS9hdWRpby9BdWRp
b1N0cmVhbURlc2NyaXB0aW9uLmgKICAgICBwbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybUF1ZGlvRGF0
YS5oCiAgICAgcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb24uaAogICAgIHBsYXRm
b3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oCisgICAgcGxhdGZvcm0vYXVk
aW8vUm91dGVTaGFyaW5nUG9saWN5LmgKIAogICAgIHBsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NE
TUVuY3J5cHRpb25TY2hlbWUuaAogICAgIHBsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NETUZhY3Rv
cnkuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IGRmMDIzZWJkNGVkZGJmNjkzNDA1NzIzNjk3YWRlOWJmNTM5Njg1ODkuLjE0NWM0
MWFkZGQ2MjJjMDY3OGFlY2QzN2VkZTQyMzU5MjQwNmE2MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEwOTEsNiArMTA5MSw4
IEBACiAJCTQxNzYxMkIxMUUzQTk5NDAwMEMzRDgxRCAvKiBMaWJXZWJSVENQZWVyQ29ubmVjdGlv
bkJhY2tlbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDE3NjEyQUQxRTNBOTkzQjAwQzNEODFEIC8qIExpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFj
a2VuZC5jcHAgKi87IH07CiAJCTQxNzYxMkIyMUUzQTk5NDAwMEMzRDgxRCAvKiBMaWJXZWJSVENQ
ZWVyQ29ubmVjdGlvbkJhY2tlbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQxNzYxMkFFMUUzQTk5M0IwMEMzRDgxRCAvKiBMaWJXZWJSVENQZWVyQ29u
bmVjdGlvbkJhY2tlbmQuaCAqLzsgfTsKIAkJNDE3NkU4OTYyM0MzNTM3QjAwM0U4M0ZFIC8qIE1l
ZGlhUmVjb3JkZXJQcm92aWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDE3NkU4OEYyM0MzNDhEMjAwM0U4M0ZFIC8qIE1lZGlhUmVjb3JkZXJQcm92
aWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJ
CTQxNzhFRUZDMjQxMDAxRkQwMDE5M0M3NCAvKiBBdWRpb1Nlc3Npb25DYXRlZ29yeS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE3OEVFRjgyNDBGRUE4
RDAwMTkzQzc0IC8qIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDE3OEVFRkUyNDEwMDIwOTAwMTkzQzc0IC8q
IFJvdXRlU2hhcmluZ1BvbGljeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDE3OEVFRkEyNDBGRUVFODAwMTkzQzc0IC8qIFJvdXRlU2hhcmluZ1BvbGlj
eS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQx
N0RBNkQ5MTM3MzRFNkUwMDdDNTdGQiAvKiBJbnRlcm5hbHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE3REE0Q0YxMzczNDMyNjAwN0M1N0ZCIC8q
IEludGVybmFscy5jcHAgKi87IH07CiAJCTQxN0RBNkRBMTM3MzRFNkUwMDdDNTdGQiAvKiBJbnRl
cm5hbHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQx
N0RBNENFMTM3MzQzMjYwMDdDNTdGQiAvKiBJbnRlcm5hbHMuaCAqLzsgfTsKIAkJNDE3REE3MUQx
MzczNURGQTAwN0M1N0ZCIC8qIEpTSW50ZXJuYWxzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxN0RBNzFCMTM3MzVERkEwMDdDNTdGQiAvKiBKU0lu
dGVybmFscy5jcHAgKi87IH07CkBAIC03MzgxLDYgKzczODMsOCBAQAogCQk0MTc3MDQwQjIzRjcw
Q0FCMDAwQzU0RUUgLyogTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0MTc3RjUxQzIzODI1NDQwMDBDMDQ0ODYgLyogQmFzZUF1ZGlv
U2hhcmVkVW5pdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCYXNl
QXVkaW9TaGFyZWRVbml0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE3N0Y1
MUUyMzgyNTQ1RTAwQzA0NDg2IC8qIEJhc2VBdWRpb1NoYXJlZFVuaXQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQmFzZUF1ZGlvU2hhcmVkVW5pdC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk0MTc4RUVGODI0MEZFQThEMDAxOTNDNzQgLyogQXVkaW9TZXNzaW9u
Q2F0ZWdvcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9TZXNzaW9u
Q2F0ZWdvcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE3OEVFRkEyNDBGRUVF
ODAwMTkzQzc0IC8qIFJvdXRlU2hhcmluZ1BvbGljeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBSb3V0ZVNoYXJpbmdQb2xpY3kuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDE3REE0Q0UxMzczNDMyNjAwN0M1N0ZCIC8qIEludGVybmFscy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBJbnRlcm5hbHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDE3REE0Q0YxMzczNDMyNjAwN0M1N0ZCIC8qIEludGVybmFscy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnRlcm5hbHMuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0MTdEQTZEMDEzNzM0RTAyMDA3QzU3RkIgLyogbGliV2ViQ29y
ZVRlc3RTdXBwb3J0LmR5bGliICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0
RmlsZVR5cGUgPSAiY29tcGlsZWQubWFjaC1vLmR5bGliIjsgaW5jbHVkZUluSW5kZXggPSAwOyBw
YXRoID0gbGliV2ViQ29yZVRlc3RTdXBwb3J0LmR5bGliOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJP
RFVDVFNfRElSOyB9OwpAQCAtMjg3MzUsNiArMjg3MzksNyBAQAogCQkJCUZEMzE2MDUyMTJCMDI2
RjcwMEMxQTM1OSAvKiBBdWRpb1Jlc2FtcGxlcktlcm5lbC5oICovLAogCQkJCUNEQTc5ODIzMTcw
QTI1ODMwMEQ0NUM1NSAvKiBBdWRpb1Nlc3Npb24uY3BwICovLAogCQkJCUNEQTc5ODIxMTcwQTIy
REMwMEQ0NUM1NSAvKiBBdWRpb1Nlc3Npb24uaCAqLywKKwkJCQk0MTc4RUVGODI0MEZFQThEMDAx
OTNDNzQgLyogQXVkaW9TZXNzaW9uQ2F0ZWdvcnkuaCAqLywKIAkJCQlGRDMxNjA1MzEyQjAyNkY3
MDBDMUEzNTkgLyogQXVkaW9Tb3VyY2VQcm92aWRlci5oICovLAogCQkJCUZENjJGNTJEMTQ1ODk4
RDgwMDk0QjBFRCAvKiBBdWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50LmggKi8sCiAJCQkJMDczQjg3
NTYxRTQwRENFNTAwNzFDMEVDIC8qIEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaCAqLywKQEAgLTI4
NzkwLDYgKzI4Nzk1LDcgQEAKIAkJCQlGRDMxNjA3NTEyQjAyNkY3MDBDMUEzNTkgLyogUmV2ZXJi
Q29udm9sdmVyU3RhZ2UuaCAqLywKIAkJCQlGRDMxNjA3NjEyQjAyNkY3MDBDMUEzNTkgLyogUmV2
ZXJiSW5wdXRCdWZmZXIuY3BwICovLAogCQkJCUZEMzE2MDc3MTJCMDI2RjcwMEMxQTM1OSAvKiBS
ZXZlcmJJbnB1dEJ1ZmZlci5oICovLAorCQkJCTQxNzhFRUZBMjQwRkVFRTgwMDE5M0M3NCAvKiBS
b3V0ZVNoYXJpbmdQb2xpY3kuaCAqLywKIAkJCQlGRDAwRDdBMjE0QTNGNjE5MDA3MzQwMTEgLyog
U2luY1Jlc2FtcGxlci5jcHAgKi8sCiAJCQkJRkQwMEQ3QTMxNEEzRjYxOTAwNzM0MDExIC8qIFNp
bmNSZXNhbXBsZXIuaCAqLywKIAkJCQlGRDE3NjJERDE3NjY4NkQ5MDBEODM2QTggLyogVXBTYW1w
bGVyLmNwcCAqLywKQEAgLTI5MTE1LDYgKzI5MTIxLDcgQEAKIAkJCQkwNzNCODc2OTFFNDM4NUFD
MDA3MUMwRUMgLyogQXVkaW9TYW1wbGVEYXRhU291cmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlG
RDhDNDZFQzE1NDYwOEU3MDBBNTkxMEMgLyogQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlLmggaW4g
SGVhZGVycyAqLywKIAkJCQlDREE3OTgyQTE3MEEzRDAwMDBENDVDNTUgLyogQXVkaW9TZXNzaW9u
LmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTc4RUVGQzI0MTAwMUZEMDAxOTNDNzQgLyogQXVkaW9T
ZXNzaW9uQ2F0ZWdvcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2MDg5MTJCMDI2RjcwMEMx
QTM1OSAvKiBBdWRpb1NvdXJjZVByb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDhBN0JC
QzE5NzczNUZFMDBDQkQ2NDMgLyogQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUZENjJGNTJFMTQ1ODk4RDgwMDk0QjBFRCAvKiBBdWRpb1NvdXJjZVByb3Zp
ZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTMyMTY2LDYgKzMyMTczLDcgQEAKIAkJCQlB
OENGRjVFMTBBMTU1QTA1MDAwQTQyMzQgLyogUm9vdElubGluZUJveC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNDlFOTExQzkwRUY4NkQ0NzAwOUQwQ0FGIC8qIFJvdGF0ZVRyYW5zZm9ybU9wZXJhdGlv
bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTczRjk1RkYxMkM5N0JGRTAwMzFBQUY5IC8qIFJvdW5k
ZWRSZWN0LmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTc4RUVGRTI0MTAwMjA5MDAxOTNDNzQgLyog
Um91dGVTaGFyaW5nUG9saWN5LmggaW4gSGVhZGVycyAqLywKIAkJCQk1N0UyMzM2MzFEQzdEQTI0
MDBGMjhEMDEgLyogUnNhT3RoZXJQcmltZXNJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQkwN0FC
OTk2OTE4REEzQzAxMDAxODc3MUUgLyogUlRDQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNDE4MjA1NDcxRTUzRTk4QzAwRDYyMjA3IC8qIFJUQ0NvbnRyb2xsZXIuaCBpbiBIZWFk
ZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EZXByZWNhdGVkR2xvYmFs
U2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EZXByZWNhdGVkR2xvYmFsU2V0dGlu
Z3MuY3BwCmluZGV4IGNmNGNjYzgwZTkzOTM2ZDU2OGNkNTUwZTAyOGI2ODE1MmViOTRkMmQuLjY4
NzllMmQwMjA5MjZlNGQwZWQ3MTcxMzYwZmExYzc0NDM3MGE0MWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RlcHJlY2F0ZWRHbG9iYWxTZXR0aW5ncy5jcHAKQEAgLTE2MiwxMiArMTYy
LDEyIEBAIHZvaWQgRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzOjpzZXRSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRW5hYmxlZChib29sIGZsYWcpCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKIHZvaWQg
RGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzOjpzZXRBdWRpb1Nlc3Npb25DYXRlZ29yeU92ZXJyaWRl
KHVuc2lnbmVkIHNlc3Npb25DYXRlZ29yeSkKIHsKLSAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNl
c3Npb24oKS5zZXRDYXRlZ29yeU92ZXJyaWRlKHN0YXRpY19jYXN0PEF1ZGlvU2Vzc2lvbjo6Q2F0
ZWdvcnlUeXBlPihzZXNzaW9uQ2F0ZWdvcnkpKTsKKyAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNl
c3Npb24oKS5zZXRDYXRlZ29yeU92ZXJyaWRlKHN0YXRpY19jYXN0PEF1ZGlvU2Vzc2lvbkNhdGVn
b3J5PihzZXNzaW9uQ2F0ZWdvcnkpKTsKIH0KIAogdW5zaWduZWQgRGVwcmVjYXRlZEdsb2JhbFNl
dHRpbmdzOjphdWRpb1Nlc3Npb25DYXRlZ29yeU92ZXJyaWRlKCkKIHsKLSAgICByZXR1cm4gQXVk
aW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuY2F0ZWdvcnlPdmVycmlkZSgpOworICAgIHJldHVy
biBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuY2F0
ZWdvcnlPdmVycmlkZSgpKTsKIH0KIAogdm9pZCBEZXByZWNhdGVkR2xvYmFsU2V0dGluZ3M6OnNl
dE5ldHdvcmtEYXRhVXNhZ2VUcmFja2luZ0VuYWJsZWQoYm9vbCB0cmFja2luZ0VuYWJsZWQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZWRpYVN0cmF0ZWd5LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9NZWRpYVN0cmF0ZWd5LmgKaW5kZXggNjBhNTg0N2M4Y2VjMTBi
NzliNzQ5YTZmYWY4NTAzZDE2YTE5OWI5NS4uNjJkODg0MDIxZDMyNTViYmNiNmY5NGVkZWE4Mzg5
MDhjNmE1MWY4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVkaWFTdHJh
dGVneS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lZGlhU3RyYXRlZ3kuaApAQCAt
MjUsNiArMjUsOCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkF1ZGlvU2Vzc2lvbkNh
dGVnb3J5LmgiCisjaW5jbHVkZSAiUm91dGVTaGFyaW5nUG9saWN5LmgiCiAjaW5jbHVkZSA8d3Rm
L0ZvcndhcmQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzUsNiArMzcsMTAgQEAgY2xh
c3MgQ0RNRmFjdG9yeTsKIAogY2xhc3MgV0VCQ09SRV9FWFBPUlQgTWVkaWFTdHJhdGVneSB7CiBw
dWJsaWM6CisjaWYgVVNFKEFVRElPX1NFU1NJT04pCisgICAgdmlydHVhbCBib29sIHRyeVRvU2V0
QXVkaW9TZXNzaW9uQXNBY3RpdmUoYm9vbCBpc0FjdGl2ZSkgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCB1cGRhdGVBdWRpb1Nlc3Npb25QYXJhbWV0ZXJzKHNpemVfdCBidWZmZXJTaXplLCBPcHRpb25h
bDxBdWRpb1Nlc3Npb25DYXRlZ29yeT4sIE9wdGlvbmFsPFJvdXRlU2hhcmluZ1BvbGljeT4pID0g
MDsKKyNlbmRpZgogI2lmIEVOQUJMRShXRUJfQVVESU8pCiAgICAgdmlydHVhbCBzdGQ6OnVuaXF1
ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlQXVkaW9EZXN0aW5hdGlvbigKICAgICAgICAg
QXVkaW9JT0NhbGxiYWNrJiwgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLCB1bnNpZ25lZCBu
dW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZs
b2F0IHNhbXBsZVJhdGUpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL0F1ZGlvU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9B
dWRpb1Nlc3Npb24uY3BwCmluZGV4IGI1ZmI1ODA2NDhmOWNmOGVjNGYxODZmYWZhNDhlMTNmZGNm
MmY1N2QuLjBmMjU4NmJjMjA4ZWQyNGJkYTY2ZTNhY2JkMjNjMjFkOTQ3OTYyZGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmNwcApAQCAtNjEsMjYg
KzYxLDI2IEBAIEF1ZGlvU2Vzc2lvbjo6QXVkaW9TZXNzaW9uKCkKIAogQXVkaW9TZXNzaW9uOjp+
QXVkaW9TZXNzaW9uKCkgPSBkZWZhdWx0OwogCi12b2lkIEF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdv
cnkoQ2F0ZWdvcnlUeXBlLCBSb3V0ZVNoYXJpbmdQb2xpY3kpCit2b2lkIEF1ZGlvU2Vzc2lvbjo6
c2V0Q2F0ZWdvcnkoQXVkaW9TZXNzaW9uQ2F0ZWdvcnksIFJvdXRlU2hhcmluZ1BvbGljeSkKIHsK
ICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi1BdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBB
dWRpb1Nlc3Npb246OmNhdGVnb3J5T3ZlcnJpZGUoKSBjb25zdAorQXVkaW9TZXNzaW9uQ2F0ZWdv
cnkgQXVkaW9TZXNzaW9uOjpjYXRlZ29yeU92ZXJyaWRlKCkgY29uc3QKIHsKICAgICBub3RJbXBs
ZW1lbnRlZCgpOwotICAgIHJldHVybiBOb25lOworICAgIHJldHVybiBBdWRpb1Nlc3Npb25DYXRl
Z29yeTo6Tm9uZTsKIH0KIAotdm9pZCBBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5T3ZlcnJpZGUo
Q2F0ZWdvcnlUeXBlKQordm9pZCBBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5T3ZlcnJpZGUoQXVk
aW9TZXNzaW9uQ2F0ZWdvcnkpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotQXVkaW9T
ZXNzaW9uOjpDYXRlZ29yeVR5cGUgQXVkaW9TZXNzaW9uOjpjYXRlZ29yeSgpIGNvbnN0CitBdWRp
b1Nlc3Npb25DYXRlZ29yeSBBdWRpb1Nlc3Npb246OmNhdGVnb3J5KCkgY29uc3QKIHsKICAgICBu
b3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBOb25lOworICAgIHJldHVybiBBdWRpb1Nlc3Np
b25DYXRlZ29yeTo6Tm9uZTsKIH0KIAogZmxvYXQgQXVkaW9TZXNzaW9uOjpzYW1wbGVSYXRlKCkg
Y29uc3QKQEAgLTE0Niw3ICsxNDYsNyBAQCBTdHJpbmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJp
bmcoUm91dGVTaGFyaW5nUG9saWN5IGVudW1lcmF0aW9uVmFsdWUpCiAgICAgcmV0dXJuIHZhbHVl
c1tzdGF0aWNfY2FzdDxzaXplX3Q+KGVudW1lcmF0aW9uVmFsdWUpXTsKIH0KIAotU3RyaW5nIGNv
bnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIGVudW1l
cmF0aW9uVmFsdWUpCitTdHJpbmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoQXVkaW9TZXNz
aW9uQ2F0ZWdvcnkgZW51bWVyYXRpb25WYWx1ZSkKIHsKICAgICBzdGF0aWMgY29uc3QgTmV2ZXJE
ZXN0cm95ZWQ8U3RyaW5nPiB2YWx1ZXNbXSA9IHsKICAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5H
X0lNUEwoIk5vbmUiKSwKQEAgLTE1NywxMyArMTU3LDEzIEBAIFN0cmluZyBjb252ZXJ0RW51bWVy
YXRpb25Ub1N0cmluZyhBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBlbnVtZXJhdGlvblZhbHVl
KQogICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiUGxheUFuZFJlY29yZCIpLAogICAg
ICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiQXVkaW9Qcm9jZXNzaW5nIiksCiAgICAgfTsK
LSAgICBzdGF0aWNfYXNzZXJ0KCFzdGF0aWNfY2FzdDxzaXplX3Q+KEF1ZGlvU2Vzc2lvbjo6Q2F0
ZWdvcnlUeXBlOjpOb25lKSwgIkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpOb25lIGlzIG5v
dCAwIGFzIGV4cGVjdGVkIik7Ci0gICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+
KEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpBbWJpZW50U291bmQpID09IDEsICJBdWRpb1Nl
c3Npb246OkNhdGVnb3J5VHlwZTo6QW1iaWVudFNvdW5kIGlzIG5vdCAxIGFzIGV4cGVjdGVkIik7
Ci0gICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KEF1ZGlvU2Vzc2lvbjo6Q2F0
ZWdvcnlUeXBlOjpTb2xvQW1iaWVudFNvdW5kKSA9PSAyLCAiQXVkaW9TZXNzaW9uOjpDYXRlZ29y
eVR5cGU6OlNvbG9BbWJpZW50U291bmQgaXMgbm90IDIgYXMgZXhwZWN0ZWQiKTsKLSAgICBzdGF0
aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6
Ok1lZGlhUGxheWJhY2spID09IDMsICJBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6TWVkaWFQ
bGF5YmFjayBpcyBub3QgMyBhcyBleHBlY3RlZCIpOwotICAgIHN0YXRpY19hc3NlcnQoc3RhdGlj
X2Nhc3Q8c2l6ZV90PihBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6UmVjb3JkQXVkaW8pID09
IDQsICJBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6UmVjb3JkQXVkaW8gaXMgbm90IDQgYXMg
ZXhwZWN0ZWQiKTsKLSAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oQXVkaW9T
ZXNzaW9uOjpDYXRlZ29yeVR5cGU6OlBsYXlBbmRSZWNvcmQpID09IDUsICJBdWRpb1Nlc3Npb246
OkNhdGVnb3J5VHlwZTo6UGxheUFuZFJlY29yZCBpcyBub3QgNSBhcyBleHBlY3RlZCIpOwotICAg
IHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihBdWRpb1Nlc3Npb246OkNhdGVnb3J5
VHlwZTo6QXVkaW9Qcm9jZXNzaW5nKSA9PSA2LCAiQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6
OkF1ZGlvUHJvY2Vzc2luZyBpcyBub3QgNiBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3Nl
cnQoIXN0YXRpY19jYXN0PHNpemVfdD4oQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6Ok5vbmUpLCAiQXVk
aW9TZXNzaW9uQ2F0ZWdvcnk6Ok5vbmUgaXMgbm90IDAgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0
aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6OkFtYmll
bnRTb3VuZCkgPT0gMSwgIkF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpBbWJpZW50U291bmQgaXMgbm90
IDEgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4o
QXVkaW9TZXNzaW9uQ2F0ZWdvcnk6OlNvbG9BbWJpZW50U291bmQpID09IDIsICJBdWRpb1Nlc3Np
b25DYXRlZ29yeTo6U29sb0FtYmllbnRTb3VuZCBpcyBub3QgMiBhcyBleHBlY3RlZCIpOworICAg
IHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihBdWRpb1Nlc3Npb25DYXRlZ29yeTo6
TWVkaWFQbGF5YmFjaykgPT0gMywgIkF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpNZWRpYVBsYXliYWNr
IGlzIG5vdCAzIGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxz
aXplX3Q+KEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpSZWNvcmRBdWRpbykgPT0gNCwgIkF1ZGlvU2Vz
c2lvbkNhdGVnb3J5OjpSZWNvcmRBdWRpbyBpcyBub3QgNCBhcyBleHBlY3RlZCIpOworICAgIHN0
YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihBdWRpb1Nlc3Npb25DYXRlZ29yeTo6UGxh
eUFuZFJlY29yZCkgPT0gNSwgIkF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpQbGF5QW5kUmVjb3JkIGlz
IG5vdCA1IGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXpl
X3Q+KEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpBdWRpb1Byb2Nlc3NpbmcpID09IDYsICJBdWRpb1Nl
c3Npb25DYXRlZ29yeTo6QXVkaW9Qcm9jZXNzaW5nIGlzIG5vdCA2IGFzIGV4cGVjdGVkIik7CiAg
ICAgQVNTRVJUKHN0YXRpY19jYXN0PHNpemVfdD4oZW51bWVyYXRpb25WYWx1ZSkgPCBXVEZfQVJS
QVlfTEVOR1RIKHZhbHVlcykpOwogICAgIHJldHVybiB2YWx1ZXNbc3RhdGljX2Nhc3Q8c2l6ZV90
PihlbnVtZXJhdGlvblZhbHVlKV07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L0F1ZGlvU2Vzc2lvbi5oCmluZGV4IGU3MDA4MjJmZjFmZWViZDc4MjlhZWM3NTBjY2U0MGE2MGI5
MjU2NmEuLjk5OTIwZjAyYTU5ZDE4MGM5YmZjYTc3NGRkNTYyNTY0OWI1OGExZGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5oCkBAIC0yNyw2ICsyNyw4
IEBACiAKICNpZiBVU0UoQVVESU9fU0VTU0lPTikKIAorI2luY2x1ZGUgIkF1ZGlvU2Vzc2lvbkNh
dGVnb3J5LmgiCisjaW5jbHVkZSAiUm91dGVTaGFyaW5nUG9saWN5LmgiCiAjaW5jbHVkZSA8bWVt
b3J5PgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJv
eWVkLmg+CkBAIC0zNywzMyArMzksMTcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBB
dWRpb1Nlc3Npb25Qcml2YXRlOwogCi1lbnVtIGNsYXNzIFJvdXRlU2hhcmluZ1BvbGljeSA6IHVp
bnQ4X3QgewotICAgIERlZmF1bHQsCi0gICAgTG9uZ0Zvcm1BdWRpbywKLSAgICBJbmRlcGVuZGVu
dCwKLSAgICBMb25nRm9ybVZpZGVvCi19OwotCiBjbGFzcyBBdWRpb1Nlc3Npb24gZmluYWwgewog
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEF1
ZGlvU2Vzc2lvbik7CiBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIEF1ZGlvU2Vz
c2lvbiYgc2hhcmVkU2Vzc2lvbigpOwogCi0gICAgZW51bSBDYXRlZ29yeVR5cGUgewotICAgICAg
ICBOb25lLAotICAgICAgICBBbWJpZW50U291bmQsCi0gICAgICAgIFNvbG9BbWJpZW50U291bmQs
Ci0gICAgICAgIE1lZGlhUGxheWJhY2ssCi0gICAgICAgIFJlY29yZEF1ZGlvLAotICAgICAgICBQ
bGF5QW5kUmVjb3JkLAotICAgICAgICBBdWRpb1Byb2Nlc3NpbmcsCi0gICAgfTsKLSAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHNldENhdGVnb3J5KENhdGVnb3J5VHlwZSwgUm91dGVTaGFyaW5nUG9s
aWN5KTsKLSAgICBXRUJDT1JFX0VYUE9SVCBDYXRlZ29yeVR5cGUgY2F0ZWdvcnkoKSBjb25zdDsK
KyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldENhdGVnb3J5KEF1ZGlvU2Vzc2lvbkNhdGVnb3J5
LCBSb3V0ZVNoYXJpbmdQb2xpY3kpOworICAgIFdFQkNPUkVfRVhQT1JUIEF1ZGlvU2Vzc2lvbkNh
dGVnb3J5IGNhdGVnb3J5KCkgY29uc3Q7CiAKLSAgICB2b2lkIHNldENhdGVnb3J5T3ZlcnJpZGUo
Q2F0ZWdvcnlUeXBlKTsKLSAgICBDYXRlZ29yeVR5cGUgY2F0ZWdvcnlPdmVycmlkZSgpIGNvbnN0
OworICAgIHZvaWQgc2V0Q2F0ZWdvcnlPdmVycmlkZShBdWRpb1Nlc3Npb25DYXRlZ29yeSk7Cisg
ICAgQXVkaW9TZXNzaW9uQ2F0ZWdvcnkgY2F0ZWdvcnlPdmVycmlkZSgpIGNvbnN0OwogCiAgICAg
Um91dGVTaGFyaW5nUG9saWN5IHJvdXRlU2hhcmluZ1BvbGljeSgpIGNvbnN0OwogICAgIFN0cmlu
ZyByb3V0aW5nQ29udGV4dFVJRCgpIGNvbnN0OwpAQCAtNzIsMTAgKzU4LDEwIEBAIHB1YmxpYzoK
ICAgICBzaXplX3QgYnVmZmVyU2l6ZSgpIGNvbnN0OwogICAgIHNpemVfdCBudW1iZXJPZk91dHB1
dENoYW5uZWxzKCkgY29uc3Q7CiAKLSAgICBib29sIHRyeVRvU2V0QWN0aXZlKGJvb2wpOworICAg
IFdFQkNPUkVfRVhQT1JUIGJvb2wgdHJ5VG9TZXRBY3RpdmUoYm9vbCk7CiAKICAgICBXRUJDT1JF
X0VYUE9SVCBzaXplX3QgcHJlZmVycmVkQnVmZmVyU2l6ZSgpIGNvbnN0OwotICAgIHZvaWQgc2V0
UHJlZmVycmVkQnVmZmVyU2l6ZShzaXplX3QpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0
UHJlZmVycmVkQnVmZmVyU2l6ZShzaXplX3QpOwogCiAgICAgY2xhc3MgTXV0ZWRTdGF0ZU9ic2Vy
dmVyIHsKICAgICBwdWJsaWM6CkBAIC0xMDQsNDEgKzkwLDYgQEAgcHJpdmF0ZToKICAgICBib29s
IG1fYWN0aXZlIHsgZmFsc2UgfTsgLy8gVXNlZCBvbmx5IGZvciB0ZXN0aW5nLgogfTsKIAotU3Ry
aW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKFJvdXRlU2hhcmluZ1BvbGljeSk7Ci1TdHJp
bmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUp
OwotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLW5hbWVzcGFjZSBXVEYgewotdGVtcGxhdGU8
PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3k+IHsKLSAgICB1
c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAotICAgIFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGlj
eSwKLSAgICBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3k6OkRlZmF1bHQsCi0gICAgV2ViQ29y
ZTo6Um91dGVTaGFyaW5nUG9saWN5OjpMb25nRm9ybUF1ZGlvLAotICAgIFdlYkNvcmU6OlJvdXRl
U2hhcmluZ1BvbGljeTo6SW5kZXBlbmRlbnQsCi0gICAgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9s
aWN5OjpMb25nRm9ybVZpZGVvCi0gICAgPjsKLX07Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFR5cGU+
Ci1zdHJ1Y3QgTG9nQXJndW1lbnQ7Ci0KLXRlbXBsYXRlIDw+Ci1zdHJ1Y3QgTG9nQXJndW1lbnQ8
V2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5PiB7Ci0gICAgc3RhdGljIFN0cmluZyB0b1N0cmlu
Zyhjb25zdCBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3kgcG9saWN5KQotICAgIHsKLSAgICAg
ICAgcmV0dXJuIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKHBvbGljeSk7Ci0gICAgfQotfTsK
LQotdGVtcGxhdGUgPD4KLXN0cnVjdCBMb2dBcmd1bWVudDxXZWJDb3JlOjpBdWRpb1Nlc3Npb246
OkNhdGVnb3J5VHlwZT4gewotICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29uc3QgV2ViQ29y
ZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUgY2F0ZWdvcnkpCi0gICAgewotICAgICAgICBy
ZXR1cm4gY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoY2F0ZWdvcnkpOwotICAgIH0KLX07Ci0K
LX0gLy8gbmFtZXNwYWNlIFdURgotCiAjZW5kaWYgLy8gVVNFKEFVRElPX1NFU1NJT04pCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb25DYXRlZ29y
eS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uQ2F0ZWdvcnku
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4xMzAwNjgxYmFiNWYzM2Q5ZDMwMzRkYTA5YzE1YzQ0MjY5YzUyYTFiCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNz
aW9uQ2F0ZWdvcnkuaApAQCAtMCwwICsxLDc3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyNpZiBVU0UoQVVESU9fU0VTU0lPTikK
KworZW51bSBjbGFzcyBBdWRpb1Nlc3Npb25DYXRlZ29yeSA6IHVpbnQ4X3QgeworICAgIE5vbmUs
CisgICAgQW1iaWVudFNvdW5kLAorICAgIFNvbG9BbWJpZW50U291bmQsCisgICAgTWVkaWFQbGF5
YmFjaywKKyAgICBSZWNvcmRBdWRpbywKKyAgICBQbGF5QW5kUmVjb3JkLAorICAgIEF1ZGlvUHJv
Y2Vzc2luZworfTsKKworU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKEF1ZGlvU2Vz
c2lvbkNhdGVnb3J5KTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCituYW1lc3BhY2UgV1RG
IHsKKwordGVtcGxhdGU8dHlwZW5hbWUgVHlwZT4KK3N0cnVjdCBMb2dBcmd1bWVudDsKKwordGVt
cGxhdGUgPD4KK3N0cnVjdCBMb2dBcmd1bWVudDxXZWJDb3JlOjpBdWRpb1Nlc3Npb25DYXRlZ29y
eT4geworICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29uc3QgV2ViQ29yZTo6QXVkaW9TZXNz
aW9uQ2F0ZWdvcnkgY2F0ZWdvcnkpCisgICAgeworICAgICAgICByZXR1cm4gY29udmVydEVudW1l
cmF0aW9uVG9TdHJpbmcoY2F0ZWdvcnkpOworICAgIH0KK307CisKK3RlbXBsYXRlPD4gc3RydWN0
IEVudW1UcmFpdHM8V2ViQ29yZTo6QXVkaW9TZXNzaW9uQ2F0ZWdvcnk+IHsKKyAgICB1c2luZyB2
YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb25DYXRlZ29y
eSwKKyAgICAgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uQ2F0ZWdvcnk6Ok5vbmUsCisgICAgICAg
IFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpBbWJpZW50U291bmQsCisgICAgICAgIFdl
YkNvcmU6OkF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpTb2xvQW1iaWVudFNvdW5kLAorICAgICAgICBX
ZWJDb3JlOjpBdWRpb1Nlc3Npb25DYXRlZ29yeTo6TWVkaWFQbGF5YmFjaywKKyAgICAgICAgV2Vi
Q29yZTo6QXVkaW9TZXNzaW9uQ2F0ZWdvcnk6OlJlY29yZEF1ZGlvLAorICAgICAgICBXZWJDb3Jl
OjpBdWRpb1Nlc3Npb25DYXRlZ29yeTo6UGxheUFuZFJlY29yZCwKKyAgICAgICAgV2ViQ29yZTo6
QXVkaW9TZXNzaW9uQ2F0ZWdvcnk6OkF1ZGlvUHJvY2Vzc2luZworICAgID47Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXVEYKKworI2VuZGlmIC8vIFVTRShBVURJT19TRVNTSU9OKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5h
Z2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNz
aW9uTWFuYWdlci5jcHAKaW5kZXggNWY0MDQ1N2M3NWY3MWJhYjJjNzNlNjEyOWMxMGFmZWZlMGM1
NTc2NS4uMTU1ZTVlMWUzMDA0OGEzZjg5ZjJhZDgwYThjMmRjMjUxOTVlNzQ0NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5h
Z2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlh
U2Vzc2lvbk1hbmFnZXIuY3BwCkBAIC0yOSw3ICsyOSw5IEBACiAjaW5jbHVkZSAiQXVkaW9TZXNz
aW9uLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5j
bHVkZSAiTWVkaWFTdHJhdGVneS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTWVkaWFTZXNzaW9uLmgi
CisjaW5jbHVkZSAiUGxhdGZvcm1TdHJhdGVnaWVzLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IApAQCAtMjIwLDcgKzIyMiw3IEBAIGJvb2wgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpz
ZXNzaW9uV2lsbEJlZ2luUGxheWJhY2soUGxhdGZvcm1NZWRpYVNlc3Npb24mCiAKICNpZiBVU0Uo
QVVESU9fU0VTU0lPTikKICAgICBpZiAoYWN0aXZlQXVkaW9TZXNzaW9uUmVxdWlyZWQoKSkgewot
ICAgICAgICBpZiAoIUF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnRyeVRvU2V0QWN0aXZl
KHRydWUpKSB7CisgICAgICAgIGlmICghcGxhdGZvcm1TdHJhdGVnaWVzKCktPm1lZGlhU3RyYXRl
Z3koKS50cnlUb1NldEF1ZGlvU2Vzc2lvbkFzQWN0aXZlKHRydWUpKSB7CiAgICAgICAgICAgICBB
TFdBWVNfTE9HKExPR0lERU5USUZJRVIsIHNlc3Npb24ubG9nSWRlbnRpZmllcigpLCAiIHJldHVy
bmluZyBmYWxzZSBmYWlsZWQgdG8gc2V0IGFjdGl2ZSBBdWRpb1Nlc3Npb24iKTsKICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQpAQCAtMzkzLDcgKzM5NSw3IEBAIHZvaWQgUGxh
dGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpwcm9jZXNzRGlkUmVzdW1lKCkKIAogI2lmIFVTRShB
VURJT19TRVNTSU9OKQogICAgIGlmICghbV9iZWNhbWVBY3RpdmUgJiYgYWN0aXZlQXVkaW9TZXNz
aW9uUmVxdWlyZWQoKSkgewotICAgICAgICBtX2JlY2FtZUFjdGl2ZSA9IEF1ZGlvU2Vzc2lvbjo6
c2hhcmVkU2Vzc2lvbigpLnRyeVRvU2V0QWN0aXZlKHRydWUpOworICAgICAgICBtX2JlY2FtZUFj
dGl2ZSA9IHBsYXRmb3JtU3RyYXRlZ2llcygpLT5tZWRpYVN0cmF0ZWd5KCkudHJ5VG9TZXRBdWRp
b1Nlc3Npb25Bc0FjdGl2ZSh0cnVlKTsKICAgICAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVS
LCAidHJpZWQgdG8gc2V0IGFjdGl2ZSBBdWRpb1Nlc3Npb24sICIsIG1fYmVjYW1lQWN0aXZlID8g
InN1Y2NlZWRlZCIgOiAiZmFpbGVkIik7CiAgICAgfQogI2VuZGlmCkBAIC01NjcsNyArNTY5LDcg
QEAgdm9pZCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6Om1heWJlRGVhY3RpdmF0ZUF1ZGlv
U2Vzc2lvbigpCiAgICAgICAgIHJldHVybjsKIAogICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklF
UiwgInRyaWVkIHRvIHNldCBpbmFjdGl2ZSBBdWRpb1Nlc3Npb24iKTsKLSAgICBBdWRpb1Nlc3Np
b246OnNoYXJlZFNlc3Npb24oKS50cnlUb1NldEFjdGl2ZShmYWxzZSk7CisgICAgcGxhdGZvcm1T
dHJhdGVnaWVzKCktPm1lZGlhU3RyYXRlZ3koKS50cnlUb1NldEF1ZGlvU2Vzc2lvbkFzQWN0aXZl
KGZhbHNlKTsKICAgICBtX2JlY2FtZUFjdGl2ZSA9IGZhbHNlOwogfQogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9Sb3V0ZVNoYXJpbmdQb2xpY3kuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1JvdXRlU2hhcmluZ1BvbGljeS5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjRjMmU4YjRkMzU4Mjk4MmE2ZjJkNDQwNjZhZWQ2NzBlMTlhYjhjODIKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9Sb3V0ZVNoYXJpbmdQb2xp
Y3kuaApAQCAtMCwwICsxLDcwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CisjaW5jbHVkZSA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKKyNpZiBVU0UoQVVESU9fU0VTU0lPTikKKworZW51bSBj
bGFzcyBSb3V0ZVNoYXJpbmdQb2xpY3kgOiB1aW50OF90IHsKKyAgICBEZWZhdWx0LAorICAgIExv
bmdGb3JtQXVkaW8sCisgICAgSW5kZXBlbmRlbnQsCisgICAgTG9uZ0Zvcm1WaWRlbworfTsKKwor
U3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKFJvdXRlU2hhcmluZ1BvbGljeSk7CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworbmFtZXNwYWNlIFdURiB7Cit0ZW1wbGF0ZTw+IHN0
cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeT4geworICAgIHVzaW5n
IHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5LAor
ICAgIFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeTo6RGVmYXVsdCwKKyAgICBXZWJDb3JlOjpS
b3V0ZVNoYXJpbmdQb2xpY3k6OkxvbmdGb3JtQXVkaW8sCisgICAgV2ViQ29yZTo6Um91dGVTaGFy
aW5nUG9saWN5OjpJbmRlcGVuZGVudCwKKyAgICBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3k6
OkxvbmdGb3JtVmlkZW8KKyAgICA+OworfTsKKwordGVtcGxhdGU8dHlwZW5hbWUgVHlwZT4KK3N0
cnVjdCBMb2dBcmd1bWVudDsKKwordGVtcGxhdGUgPD4KK3N0cnVjdCBMb2dBcmd1bWVudDxXZWJD
b3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3k+IHsKKyAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNv
bnN0IFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeSBwb2xpY3kpCisgICAgeworICAgICAgICBy
ZXR1cm4gY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcocG9saWN5KTsKKyAgICB9Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXVEYKKworI2VuZGlmIC8vIFVTRShBVURJT19TRVNTSU9OKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvTWVkaWFTZXNzaW9uTWFu
YWdlckNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvTWVkaWFT
ZXNzaW9uTWFuYWdlckNvY29hLm1tCmluZGV4IGViMTlhOWJmOWMwMzM4YWFhYjNlNzhmYjM2OGIw
NzcyNjVlMWQxZDguLjg2MWE3OGUwYTAxMWVhZjNjZGI4M2QyZjNmY2QzNjQ0NWUwZTZhMjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL01lZGlhU2Vzc2lv
bk1hbmFnZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2Nv
YS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EubW0KQEAgLTMzLDcgKzMzLDkgQEAKICNpbmNsdWRl
ICJIVE1MTWVkaWFFbGVtZW50LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1l
ZGlhUGxheWVyLmgiCisjaW5jbHVkZSAiTWVkaWFTdHJhdGVneS5oIgogI2luY2x1ZGUgIlBsYXRm
b3JtTWVkaWFTZXNzaW9uLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJhdGVnaWVzLmgiCiAjaW5j
bHVkZSA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24u
aD4KIApAQCAtNzAsMjcgKzcyLDI3IEBAIHZvaWQgTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hOjp1
cGRhdGVTZXNzaW9uU3RhdGUoKQogICAgICAgICAiVmlkZW9BdWRpbygiLCB2aWRlb0F1ZGlvQ291
bnQsICIpLCAiCiAgICAgICAgICJXZWJBdWRpbygiLCB3ZWJBdWRpb0NvdW50LCAiKSIpOwogCisg
ICAgc2l6ZV90IGJ1ZmZlclNpemUgPSAwOwogICAgIGlmICh3ZWJBdWRpb0NvdW50KQotICAgICAg
ICBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zZXRQcmVmZXJyZWRCdWZmZXJTaXplKGtX
ZWJBdWRpb0J1ZmZlclNpemUpOworICAgICAgICBidWZmZXJTaXplID0ga1dlYkF1ZGlvQnVmZmVy
U2l6ZTsKICAgICAvLyBJbiBjYXNlIG9mIGF1ZGlvIGNhcHR1cmUsIHdlIHdhbnQgdG8gZ3JhYiAy
MCBtcyBjaHVua3MgdG8gbGltaXQgdGhlIGxhdGVuY3kgc28gdGhhdCBpdCBpcyBub3Qgbm90aWNl
YWJsZSBieSB1c2VycwogICAgIC8vIHdoaWxlIGhhdmluZyBhIGxhcmdlIGVub3VnaCBidWZmZXIg
c28gdGhhdCB0aGUgYXVkaW8gcmVuZGVyaW5nIHJlbWFpbnMgc3RhYmxlLCBoZW5jZSBhIGNvbXB1
dGF0aW9uIGJhc2VkIG9uIHNhbXBsZSByYXRlLgogICAgIGVsc2UgaWYgKGNhcHR1cmVDb3VudCkK
LSAgICAgICAgQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2V0UHJlZmVycmVkQnVmZmVy
U2l6ZShBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zYW1wbGVSYXRlKCkgLyA1MCk7Cisg
ICAgICAgIGJ1ZmZlclNpemUgPSBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zYW1wbGVS
YXRlKCkgLyA1MDsKICAgICBlbHNlIGlmICgodmlkZW9BdWRpb0NvdW50IHx8IGF1ZGlvQ291bnQp
ICYmIERlcHJlY2F0ZWRHbG9iYWxTZXR0aW5nczo6bG93UG93ZXJWaWRlb0F1ZGlvQnVmZmVyU2l6
ZUVuYWJsZWQoKSkgewogICAgICAgICAvLyBGSVhNRTogPGh0dHA6Ly93ZWJraXQub3JnL2IvMTE2
NzI1PiBGaWd1cmUgb3V0IHdoeSBlbmFibGluZyB0aGUgY29kZSBiZWxvdwogICAgICAgICAvLyBj
YXVzZXMgbWVkaWEgTGF5b3V0VGVzdHMgdG8gZmFpbCBvbiAxMC44LgogCi0gICAgICAgIHNpemVf
dCBidWZmZXJTaXplOwogICAgICAgICBpZiAobV9hdWRpb0hhcmR3YXJlTGlzdGVuZXIgJiYgbV9h
dWRpb0hhcmR3YXJlTGlzdGVuZXItPm91dHB1dERldmljZVN1cHBvcnRzTG93UG93ZXJNb2RlKCkp
CiAgICAgICAgICAgICBidWZmZXJTaXplID0ga0xvd1Bvd2VyVmlkZW9CdWZmZXJTaXplOwogICAg
ICAgICBlbHNlCiAgICAgICAgICAgICBidWZmZXJTaXplID0ga1dlYkF1ZGlvQnVmZmVyU2l6ZTsK
LQotICAgICAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zZXRQcmVmZXJyZWRCdWZm
ZXJTaXplKGJ1ZmZlclNpemUpOwogICAgIH0KIAotICAgIGlmICghRGVwcmVjYXRlZEdsb2JhbFNl
dHRpbmdzOjpzaG91bGRNYW5hZ2VBdWRpb1Nlc3Npb25DYXRlZ29yeSgpKQorICAgIGlmICghRGVw
cmVjYXRlZEdsb2JhbFNldHRpbmdzOjpzaG91bGRNYW5hZ2VBdWRpb1Nlc3Npb25DYXRlZ29yeSgp
KSB7CisgICAgICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5tZWRpYVN0cmF0ZWd5KCkudXBkYXRl
QXVkaW9TZXNzaW9uUGFyYW1ldGVycyhidWZmZXJTaXplLCB7IH0sIHsgfSk7CiAgICAgICAgIHJl
dHVybjsKKyAgICB9CiAKICAgICBib29sIGhhc0F1ZGlibGVBdWRpb09yVmlkZW9NZWRpYVR5cGUg
PSBmYWxzZTsKICAgICBmb3JFYWNoU2Vzc2lvbihbJmhhc0F1ZGlibGVBdWRpb09yVmlkZW9NZWRp
YVR5cGVdIChhdXRvJiBzZXNzaW9uKSBtdXRhYmxlIHsKQEAgLTEwMiwxNyArMTA0LDE3IEBAIHZv
aWQgTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hOjp1cGRhdGVTZXNzaW9uU3RhdGUoKQogICAgIH0p
OwogCiAgICAgUm91dGVTaGFyaW5nUG9saWN5IHBvbGljeSA9IFJvdXRlU2hhcmluZ1BvbGljeTo6
RGVmYXVsdDsKLSAgICBBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBjYXRlZ29yeSA9IEF1ZGlv
U2Vzc2lvbjo6Tm9uZTsKKyAgICBhdXRvIGNhdGVnb3J5ID0gQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6
Ok5vbmU7CiAgICAgaWYgKGNhcHR1cmVDb3VudCkKLSAgICAgICAgY2F0ZWdvcnkgPSBBdWRpb1Nl
c3Npb246OlBsYXlBbmRSZWNvcmQ7CisgICAgICAgIGNhdGVnb3J5ID0gQXVkaW9TZXNzaW9uQ2F0
ZWdvcnk6OlBsYXlBbmRSZWNvcmQ7CiAgICAgZWxzZSBpZiAoaGFzQXVkaWJsZUF1ZGlvT3JWaWRl
b01lZGlhVHlwZSkgewotICAgICAgICBjYXRlZ29yeSA9IEF1ZGlvU2Vzc2lvbjo6TWVkaWFQbGF5
YmFjazsKKyAgICAgICAgY2F0ZWdvcnkgPSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6TWVkaWFQbGF5
YmFjazsKICAgICAgICAgcG9saWN5ID0gUm91dGVTaGFyaW5nUG9saWN5OjpMb25nRm9ybUF1ZGlv
OwogICAgIH0gZWxzZSBpZiAod2ViQXVkaW9Db3VudCkKLSAgICAgICAgY2F0ZWdvcnkgPSBBdWRp
b1Nlc3Npb246OkFtYmllbnRTb3VuZDsKLQorICAgICAgICBjYXRlZ29yeSA9IEF1ZGlvU2Vzc2lv
bkNhdGVnb3J5OjpBbWJpZW50U291bmQ7CiAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCAi
c2V0dGluZyBjYXRlZ29yeSA9ICIsIGNhdGVnb3J5LCAiLCBwb2xpY3kgPSAiLCBwb2xpY3kpOwot
ICAgIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldENhdGVnb3J5KGNhdGVnb3J5LCBw
b2xpY3kpOworCisgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPm1lZGlhU3RyYXRlZ3koKS51cGRh
dGVBdWRpb1Nlc3Npb25QYXJhbWV0ZXJzKGJ1ZmZlclNpemUsIGNhdGVnb3J5LCBwb2xpY3kpOwog
fQogCiB2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYTo6YmVnaW5JbnRlcnJ1cHRpb24oUGxh
dGZvcm1NZWRpYVNlc3Npb246OkludGVycnVwdGlvblR5cGUgdHlwZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb1Nlc3Npb25JT1MubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9TZXNzaW9uSU9TLm1tCmluZGV4IGQ2
YzAwN2Y0MGI1ZmI3NjM3MjJkNTM4YWRlZDAyZDFiODFhMTg4NTQuLjQ3NTE3YjJmNDNjNGMzN2M1
NDFhYWYxZDFhYmJlNTg2MTE5OWU0MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL2lvcy9BdWRpb1Nlc3Npb25JT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vaW9zL0F1ZGlvU2Vzc2lvbklPUy5tbQpAQCAtNDAsMTcgKzQwLDE3IEBACiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKICNpZiAhTE9HX0RJU0FCTEVECi1zdGF0aWMgY29uc3QgY2hh
ciogY2F0ZWdvcnlOYW1lKEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIGNhdGVnb3J5KQorc3Rh
dGljIGNvbnN0IGNoYXIqIGNhdGVnb3J5TmFtZShBdWRpb1Nlc3Npb25DYXRlZ29yeSBjYXRlZ29y
eSkKIHsKICNkZWZpbmUgQ0FTRShjYXRlZ29yeSkgY2FzZSBBdWRpb1Nlc3Npb246OmNhdGVnb3J5
OiByZXR1cm4gI2NhdGVnb3J5CiAgICAgc3dpdGNoIChjYXRlZ29yeSkgewotICAgICAgICBDQVNF
KE5vbmUpOwotICAgICAgICBDQVNFKEFtYmllbnRTb3VuZCk7Ci0gICAgICAgIENBU0UoU29sb0Ft
YmllbnRTb3VuZCk7Ci0gICAgICAgIENBU0UoTWVkaWFQbGF5YmFjayk7Ci0gICAgICAgIENBU0Uo
UmVjb3JkQXVkaW8pOwotICAgICAgICBDQVNFKFBsYXlBbmRSZWNvcmQpOwotICAgICAgICBDQVNF
KEF1ZGlvUHJvY2Vzc2luZyk7CisgICAgICAgIENBU0UoQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6Ok5v
bmUpOworICAgICAgICBDQVNFKEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpBbWJpZW50U291bmQpOwor
ICAgICAgICBDQVNFKEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpTb2xvQW1iaWVudFNvdW5kKTsKKyAg
ICAgICAgQ0FTRShBdWRpb1Nlc3Npb25DYXRlZ29yeTo6TWVkaWFQbGF5YmFjayk7CisgICAgICAg
IENBU0UoQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6OlJlY29yZEF1ZGlvKTsKKyAgICAgICAgQ0FTRShB
dWRpb1Nlc3Npb25DYXRlZ29yeTo6UGxheUFuZFJlY29yZCk7CisgICAgICAgIENBU0UoQXVkaW9T
ZXNzaW9uQ2F0ZWdvcnk6OkF1ZGlvUHJvY2Vzc2luZyk7CiAgICAgfQogICAgIAogICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwpAQCAtNjIsMTIgKzYyLDEyIEBAIGNsYXNzIEF1ZGlvU2Vzc2lvblBy
aXZhdGUgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIEF1ZGlv
U2Vzc2lvblByaXZhdGUoQXVkaW9TZXNzaW9uKik7Ci0gICAgQXVkaW9TZXNzaW9uOjpDYXRlZ29y
eVR5cGUgbV9jYXRlZ29yeU92ZXJyaWRlOworICAgIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5IG1fY2F0
ZWdvcnlPdmVycmlkZTsKICAgICBPU09iamVjdFB0cjxkaXNwYXRjaF9xdWV1ZV90PiBtX2Rpc3Bh
dGNoUXVldWU7CiB9OwogCiBBdWRpb1Nlc3Npb25Qcml2YXRlOjpBdWRpb1Nlc3Npb25Qcml2YXRl
KEF1ZGlvU2Vzc2lvbiopCi0gICAgOiBtX2NhdGVnb3J5T3ZlcnJpZGUoQXVkaW9TZXNzaW9uOjpO
b25lKQorICAgIDogbV9jYXRlZ29yeU92ZXJyaWRlKEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpOb25l
KQogewogfQogCkBAIC04MCw3ICs4MCw3IEBAIEF1ZGlvU2Vzc2lvbjo6fkF1ZGlvU2Vzc2lvbigp
CiB7CiB9CiAKLXZvaWQgQXVkaW9TZXNzaW9uOjpzZXRDYXRlZ29yeShDYXRlZ29yeVR5cGUgbmV3
Q2F0ZWdvcnksIFJvdXRlU2hhcmluZ1BvbGljeSBwb2xpY3kpCit2b2lkIEF1ZGlvU2Vzc2lvbjo6
c2V0Q2F0ZWdvcnkoQXVkaW9TZXNzaW9uQ2F0ZWdvcnkgbmV3Q2F0ZWdvcnksIFJvdXRlU2hhcmlu
Z1BvbGljeSBwb2xpY3kpCiB7CiAjaWYgIUhBVkUoUk9VVEVfU0hBUklOR19QT0xJQ1lfTE9OR19G
T1JNX1ZJREVPKQogICAgIGlmIChwb2xpY3kgPT0gUm91dGVTaGFyaW5nUG9saWN5OjpMb25nRm9y
bVZpZGVvKQpAQCAtODksNyArODksNyBAQCB2b2lkIEF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnko
Q2F0ZWdvcnlUeXBlIG5ld0NhdGVnb3J5LCBSb3V0ZVNoYXJpbmdQb2xpY3kgcG9saQogCiAgICAg
TE9HKE1lZGlhLCAiQXVkaW9TZXNzaW9uOjpzZXRDYXRlZ29yeSgpIC0gY2F0ZWdvcnkgPSAlcyIs
IGNhdGVnb3J5TmFtZShuZXdDYXRlZ29yeSkpOwogCi0gICAgaWYgKGNhdGVnb3J5T3ZlcnJpZGUo
KSAmJiBjYXRlZ29yeU92ZXJyaWRlKCkgIT0gbmV3Q2F0ZWdvcnkpIHsKKyAgICBpZiAoY2F0ZWdv
cnlPdmVycmlkZSgpICE9IEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpOb25lICYmIGNhdGVnb3J5T3Zl
cnJpZGUoKSAhPSBuZXdDYXRlZ29yeSkgewogICAgICAgICBMT0coTWVkaWEsICJBdWRpb1Nlc3Np
b246OnNldENhdGVnb3J5KCkgLSBvdmVycmlkZSBzZXQsIE5PVCBjaGFuZ2luZyIpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQpAQCAtOTksMjcgKzk5LDI3IEBAIHZvaWQgQXVkaW9TZXNzaW9uOjpz
ZXRDYXRlZ29yeShDYXRlZ29yeVR5cGUgbmV3Q2F0ZWdvcnksIFJvdXRlU2hhcmluZ1BvbGljeSBw
b2xpCiAgICAgQVZBdWRpb1Nlc3Npb25DYXRlZ29yeU9wdGlvbnMgb3B0aW9ucyA9IDA7CiAKICAg
ICBzd2l0Y2ggKG5ld0NhdGVnb3J5KSB7Ci0gICAgY2FzZSBBbWJpZW50U291bmQ6CisgICAgY2Fz
ZSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6QW1iaWVudFNvdW5kOgogICAgICAgICBjYXRlZ29yeVN0
cmluZyA9IEFWQXVkaW9TZXNzaW9uQ2F0ZWdvcnlBbWJpZW50OwogICAgICAgICBicmVhazsKLSAg
ICBjYXNlIFNvbG9BbWJpZW50U291bmQ6CisgICAgY2FzZSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6
U29sb0FtYmllbnRTb3VuZDoKICAgICAgICAgY2F0ZWdvcnlTdHJpbmcgPSBBVkF1ZGlvU2Vzc2lv
bkNhdGVnb3J5U29sb0FtYmllbnQ7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgTWVkaWFQbGF5
YmFjazoKKyAgICBjYXNlIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpNZWRpYVBsYXliYWNrOgogICAg
ICAgICBjYXRlZ29yeVN0cmluZyA9IEFWQXVkaW9TZXNzaW9uQ2F0ZWdvcnlQbGF5YmFjazsKICAg
ICAgICAgYnJlYWs7Ci0gICAgY2FzZSBSZWNvcmRBdWRpbzoKKyAgICBjYXNlIEF1ZGlvU2Vzc2lv
bkNhdGVnb3J5OjpSZWNvcmRBdWRpbzoKICAgICAgICAgY2F0ZWdvcnlTdHJpbmcgPSBBVkF1ZGlv
U2Vzc2lvbkNhdGVnb3J5UmVjb3JkOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFBsYXlBbmRS
ZWNvcmQ6CisgICAgY2FzZSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6UGxheUFuZFJlY29yZDoKICAg
ICAgICAgY2F0ZWdvcnlTdHJpbmcgPSBBVkF1ZGlvU2Vzc2lvbkNhdGVnb3J5UGxheUFuZFJlY29y
ZDsKICAgICAgICAgY2F0ZWdvcnlNb2RlID0gQVZBdWRpb1Nlc3Npb25Nb2RlVmlkZW9DaGF0Owog
ICAgICAgICBvcHRpb25zIHw9IEFWQXVkaW9TZXNzaW9uQ2F0ZWdvcnlPcHRpb25BbGxvd0JsdWV0
b290aCB8IEFWQXVkaW9TZXNzaW9uQ2F0ZWdvcnlPcHRpb25BbGxvd0JsdWV0b290aEEyRFAgfCBB
VkF1ZGlvU2Vzc2lvbkNhdGVnb3J5T3B0aW9uRGVmYXVsdFRvU3BlYWtlciB8IEFWQXVkaW9TZXNz
aW9uQ2F0ZWdvcnlPcHRpb25BbGxvd0FpclBsYXk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
QXVkaW9Qcm9jZXNzaW5nOgorICAgIGNhc2UgQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6OkF1ZGlvUHJv
Y2Vzc2luZzoKICAgICAgICAgY2F0ZWdvcnlTdHJpbmcgPSBBVkF1ZGlvU2Vzc2lvbkNhdGVnb3J5
QXVkaW9Qcm9jZXNzaW5nOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIE5vbmU6CisgICAgY2Fz
ZSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6Tm9uZToKICAgICAgICAgY2F0ZWdvcnlTdHJpbmcgPSBB
VkF1ZGlvU2Vzc2lvbkNhdGVnb3J5QW1iaWVudDsKICAgICAgICAgYnJlYWs7CiAgICAgfQpAQCAt
MTMxLDIyICsxMzEsMjIgQEAgdm9pZCBBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5KENhdGVnb3J5
VHlwZSBuZXdDYXRlZ29yeSwgUm91dGVTaGFyaW5nUG9saWN5IHBvbGkKICNlbmRpZgogfQogCi1B
dWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBBdWRpb1Nlc3Npb246OmNhdGVnb3J5KCkgY29uc3QK
K0F1ZGlvU2Vzc2lvbkNhdGVnb3J5IEF1ZGlvU2Vzc2lvbjo6Y2F0ZWdvcnkoKSBjb25zdAogewog
ICAgIE5TU3RyaW5nICpjYXRlZ29yeVN0cmluZyA9IFtbUEFMOjpnZXRBVkF1ZGlvU2Vzc2lvbkNs
YXNzKCkgc2hhcmVkSW5zdGFuY2VdIGNhdGVnb3J5XTsKICAgICBpZiAoW2NhdGVnb3J5U3RyaW5n
IGlzRXF1YWw6QVZBdWRpb1Nlc3Npb25DYXRlZ29yeUFtYmllbnRdKQotICAgICAgICByZXR1cm4g
QW1iaWVudFNvdW5kOworICAgICAgICByZXR1cm4gQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6OkFtYmll
bnRTb3VuZDsKICAgICBpZiAoW2NhdGVnb3J5U3RyaW5nIGlzRXF1YWw6QVZBdWRpb1Nlc3Npb25D
YXRlZ29yeVNvbG9BbWJpZW50XSkKLSAgICAgICAgcmV0dXJuIFNvbG9BbWJpZW50U291bmQ7Cisg
ICAgICAgIHJldHVybiBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6U29sb0FtYmllbnRTb3VuZDsKICAg
ICBpZiAoW2NhdGVnb3J5U3RyaW5nIGlzRXF1YWw6QVZBdWRpb1Nlc3Npb25DYXRlZ29yeVBsYXli
YWNrXSkKLSAgICAgICAgcmV0dXJuIE1lZGlhUGxheWJhY2s7CisgICAgICAgIHJldHVybiBBdWRp
b1Nlc3Npb25DYXRlZ29yeTo6TWVkaWFQbGF5YmFjazsKICAgICBpZiAoW2NhdGVnb3J5U3RyaW5n
IGlzRXF1YWw6QVZBdWRpb1Nlc3Npb25DYXRlZ29yeVJlY29yZF0pCi0gICAgICAgIHJldHVybiBS
ZWNvcmRBdWRpbzsKKyAgICAgICAgcmV0dXJuIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpSZWNvcmRB
dWRpbzsKICAgICBpZiAoW2NhdGVnb3J5U3RyaW5nIGlzRXF1YWw6QVZBdWRpb1Nlc3Npb25DYXRl
Z29yeVBsYXlBbmRSZWNvcmRdKQotICAgICAgICByZXR1cm4gUGxheUFuZFJlY29yZDsKKyAgICAg
ICAgcmV0dXJuIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpQbGF5QW5kUmVjb3JkOwogICAgIGlmIChb
Y2F0ZWdvcnlTdHJpbmcgaXNFcXVhbDpBVkF1ZGlvU2Vzc2lvbkNhdGVnb3J5QXVkaW9Qcm9jZXNz
aW5nXSkKLSAgICAgICAgcmV0dXJuIEF1ZGlvUHJvY2Vzc2luZzsKLSAgICByZXR1cm4gTm9uZTsK
KyAgICAgICAgcmV0dXJuIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpBdWRpb1Byb2Nlc3Npbmc7Cisg
ICAgcmV0dXJuIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpOb25lOwogfQogCiBSb3V0ZVNoYXJpbmdQ
b2xpY3kgQXVkaW9TZXNzaW9uOjpyb3V0ZVNoYXJpbmdQb2xpY3koKSBjb25zdApAQCAtMTc2LDcg
KzE3Niw3IEBAIFN0cmluZyBBdWRpb1Nlc3Npb246OnJvdXRpbmdDb250ZXh0VUlEKCkgY29uc3QK
ICNlbmRpZgogfQogCi12b2lkIEF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnlPdmVycmlkZShDYXRl
Z29yeVR5cGUgY2F0ZWdvcnkpCit2b2lkIEF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnlPdmVycmlk
ZShBdWRpb1Nlc3Npb25DYXRlZ29yeSBjYXRlZ29yeSkKIHsKICAgICBpZiAobV9wcml2YXRlLT5t
X2NhdGVnb3J5T3ZlcnJpZGUgPT0gY2F0ZWdvcnkpCiAgICAgICAgIHJldHVybjsKQEAgLTE4NSw3
ICsxODUsNyBAQCB2b2lkIEF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnlPdmVycmlkZShDYXRlZ29y
eVR5cGUgY2F0ZWdvcnkpCiAgICAgc2V0Q2F0ZWdvcnkoY2F0ZWdvcnksIFJvdXRlU2hhcmluZ1Bv
bGljeTo6RGVmYXVsdCk7CiB9CiAKLUF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIEF1ZGlvU2Vz
c2lvbjo6Y2F0ZWdvcnlPdmVycmlkZSgpIGNvbnN0CitBdWRpb1Nlc3Npb25DYXRlZ29yeSBBdWRp
b1Nlc3Npb246OmNhdGVnb3J5T3ZlcnJpZGUoKSBjb25zdAogewogICAgIHJldHVybiBtX3ByaXZh
dGUtPm1fY2F0ZWdvcnlPdmVycmlkZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5oCmluZGV4IDkzZTVi
ZmM0MGI4ZjE4NTgzODM4OTY2MzZmNjJlZTY5MThjOTkxNTMuLmM0YjdkODgzOGVjODE0MTUyMzQz
MTRhMjFmOTUwZDkyM2FlN2YyODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vaW9zL01lZGlhU2Vzc2lvbk1hbmFnZXJJT1MuaApAQCAtNTQsNiArNTQs
OCBAQCBwdWJsaWM6CiAgICAgdm9pZCBhY3RpdmVWaWRlb1JvdXRlRGlkQ2hhbmdlKE9wdGlvbmFs
PGJvb2w+JiYpOwogI2VuZGlmCiAKKyAgICBzdGF0aWMgV0VCQ09SRV9FWFBPUlQgdm9pZCBwcm92
aWRlUHJlc2VudGluZ0FwcGxpY2F0aW9uUElEKCk7CisKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNs
YXNzIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL01lZGlhU2Vzc2lvbk1hbmFnZXJJT1MubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbQpp
bmRleCA0NTE3MjRmZTczYWNmY2Q1OTk0NjRjMGM0MmYxOGM1NmU2MzMxOTE3Li5jZjI1ZmI0ODYw
MTc2ODI1YTc3YWQ4NjI0Y2I0NWJkZjM5ODNlYzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbQpA
QCAtMTc0LDcgKzE3NCwxMyBAQCB2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXJpT1M6OnByb3ZpZGVQ
cmVzZW50aW5nQXBwbGljYXRpb25QSURJZk5lY2Vzc2FyeSgpCiAgICAgaWYgKG1faGF2ZVByZXNl
bnRlZEFwcGxpY2F0aW9uUElEKQogICAgICAgICByZXR1cm47CiAgICAgbV9oYXZlUHJlc2VudGVk
QXBwbGljYXRpb25QSUQgPSB0cnVlOworICAgIHByb3ZpZGVQcmVzZW50aW5nQXBwbGljYXRpb25Q
SUQoKTsKKyNlbmRpZgorfQogCit2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXJpT1M6OnByb3ZpZGVQ
cmVzZW50aW5nQXBwbGljYXRpb25QSUQoKQoreworI2lmIEhBVkUoQ0VMRVNUSUFMKQogICAgIGlm
ICghY2FuTG9hZEFWU3lzdGVtQ29udHJvbGxlcl9QSURUb0luaGVyaXRBcHBsaWNhdGlvblN0YXRl
RnJvbSgpKQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL21hYy9BdWRpb1Nlc3Npb25NYWMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vbWFjL0F1ZGlvU2Vzc2lvbk1hYy5jcHAKaW5kZXggY2MwNGYwYmUzMDk3NDk4
YjgzNjZlOTI0MjA3M2VjZTNlMTk3NWFiNS4uYTZlMTUyMjIzODQ4NDYxNGQ3ZjUxNjE4OWRiYTYx
YmQyYTE0N2ZmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFj
L0F1ZGlvU2Vzc2lvbk1hYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
bWFjL0F1ZGlvU2Vzc2lvbk1hYy5jcHAKQEAgLTU4LDcgKzU4LDcgQEAgcHVibGljOgogICAgIGV4
cGxpY2l0IEF1ZGlvU2Vzc2lvblByaXZhdGUoYm9vbCBtdXRlZFN0YXRlKQogICAgICAgICA6IGxh
c3RNdXRlZFN0YXRlKG11dGVkU3RhdGUpIHsgfQogICAgIGJvb2wgbGFzdE11dGVkU3RhdGU7Ci0g
ICAgQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUgY2F0ZWdvcnkgeyBBdWRpb1Nlc3Npb246Ok5v
bmUgfTsKKyAgICBBdWRpb1Nlc3Npb25DYXRlZ29yeSBjYXRlZ29yeSB7IEF1ZGlvU2Vzc2lvbkNh
dGVnb3J5OjpOb25lIH07CiB9OwogCiBBdWRpb1Nlc3Npb246OkF1ZGlvU2Vzc2lvbigpCkBAIC02
OCwyMyArNjgsMjMgQEAgQXVkaW9TZXNzaW9uOjpBdWRpb1Nlc3Npb24oKQogCiBBdWRpb1Nlc3Np
b246On5BdWRpb1Nlc3Npb24oKSA9IGRlZmF1bHQ7CiAKLUF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlU
eXBlIEF1ZGlvU2Vzc2lvbjo6Y2F0ZWdvcnkoKSBjb25zdAorQXVkaW9TZXNzaW9uQ2F0ZWdvcnkg
QXVkaW9TZXNzaW9uOjpjYXRlZ29yeSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+
Y2F0ZWdvcnk7CiB9CiAKLXZvaWQgQXVkaW9TZXNzaW9uOjpzZXRDYXRlZ29yeShDYXRlZ29yeVR5
cGUgY2F0ZWdvcnksIFJvdXRlU2hhcmluZ1BvbGljeSkKK3ZvaWQgQXVkaW9TZXNzaW9uOjpzZXRD
YXRlZ29yeShBdWRpb1Nlc3Npb25DYXRlZ29yeSBjYXRlZ29yeSwgUm91dGVTaGFyaW5nUG9saWN5
KQogewogICAgIG1fcHJpdmF0ZS0+Y2F0ZWdvcnkgPSBjYXRlZ29yeTsKIH0KIAotQXVkaW9TZXNz
aW9uOjpDYXRlZ29yeVR5cGUgQXVkaW9TZXNzaW9uOjpjYXRlZ29yeU92ZXJyaWRlKCkgY29uc3QK
K0F1ZGlvU2Vzc2lvbkNhdGVnb3J5IEF1ZGlvU2Vzc2lvbjo6Y2F0ZWdvcnlPdmVycmlkZSgpIGNv
bnN0CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gTm9uZTsKKyAgICByZXR1
cm4gQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6Ok5vbmU7CiB9CiAKLXZvaWQgQXVkaW9TZXNzaW9uOjpz
ZXRDYXRlZ29yeU92ZXJyaWRlKENhdGVnb3J5VHlwZSkKK3ZvaWQgQXVkaW9TZXNzaW9uOjpzZXRD
YXRlZ29yeU92ZXJyaWRlKEF1ZGlvU2Vzc2lvbkNhdGVnb3J5KQogewogICAgIG5vdEltcGxlbWVu
dGVkKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvQmFzZUF1ZGlvU2hhcmVkVW5pdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvQmFzZUF1ZGlvU2hhcmVkVW5pdC5jcHAKaW5kZXggZDYzYmY1NGExNjNi
NTExOTJlYTBhMzYzNzg2ZGY4NzZiODlmOTg0Zi4uNGMzYzgyOGJkMjMyOTBmZDk3MzAyNWQ2NDEy
NzEzZDhhMTg0MDBiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL0Jhc2VBdWRpb1NoYXJlZFVuaXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9CYXNlQXVkaW9TaGFyZWRVbml0LmNwcApAQCAtOTcsNyAr
OTcsNyBAQCBPU1N0YXR1cyBCYXNlQXVkaW9TaGFyZWRVbml0OjpzdGFydFVuaXQoKQogICAgIGZv
ckVhY2hDbGllbnQoW10oYXV0byYgY2xpZW50KSB7CiAgICAgICAgIGNsaWVudC5hdWRpb1VuaXRX
aWxsU3RhcnQoKTsKICAgICB9KTsKLSAgICBBU1NFUlQoIURlcHJlY2F0ZWRHbG9iYWxTZXR0aW5n
czo6c2hvdWxkTWFuYWdlQXVkaW9TZXNzaW9uQ2F0ZWdvcnkoKSB8fCBBdWRpb1Nlc3Npb246OnNo
YXJlZFNlc3Npb24oKS5jYXRlZ29yeSgpID09IEF1ZGlvU2Vzc2lvbjo6UGxheUFuZFJlY29yZCk7
CisgICAgQVNTRVJUKCFEZXByZWNhdGVkR2xvYmFsU2V0dGluZ3M6OnNob3VsZE1hbmFnZUF1ZGlv
U2Vzc2lvbkNhdGVnb3J5KCkgfHwgQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuY2F0ZWdv
cnkoKSA9PSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6UGxheUFuZFJlY29yZCk7CiAKICAgICBpZiAo
YXV0byBlcnJvciA9IHN0YXJ0SW50ZXJuYWwoKSkgewogICAgICAgICBjYXB0dXJlRmFpbGVkKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZUF1
ZGlvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1l
QXVkaW9Tb3VyY2UuY3BwCmluZGV4IGM0NjYyZDRhNmQxZjMyNDQwOWQzOWNkYTU4Mjk4YWY4OTkx
MzhkMjUuLmRlN2IyZDU1OWFlNzYxMGYxOThiYTI4ODkyZDBjYzVmMTdmOGU1YzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9T
b3VyY2UuY3BwCkBAIC0xMzcsNyArMTM3LDcgQEAgdm9pZCBNb2NrUmVhbHRpbWVBdWRpb1NvdXJj
ZTo6c3RhcnRQcm9kdWNpbmdEYXRhKCkKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIFJl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZhY3Rvcnko
KS5zZXRBY3RpdmVTb3VyY2UoKnRoaXMpOwogICAgIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdl
cjo6c2hhcmVkTWFuYWdlcigpLnNlc3Npb25DYW5Qcm9kdWNlQXVkaW9DaGFuZ2VkKCk7Ci0gICAg
QVNTRVJUKEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLmNhdGVnb3J5KCkgPT0gQXVkaW9T
ZXNzaW9uOjpQbGF5QW5kUmVjb3JkKTsKKyAgICBBU1NFUlQoQXVkaW9TZXNzaW9uOjpzaGFyZWRT
ZXNzaW9uKCkuY2F0ZWdvcnkoKSA9PSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6UGxheUFuZFJlY29y
ZCk7CiAjZW5kaWYKIAogICAgIGlmICghc2FtcGxlUmF0ZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwCmluZGV4IDQ5MmRmMmZjN2M3ZjE5ZmMzZTliOWIxNDM2MzRmMDdlYjI5OGQ1
ZWIuLjM1ZGUwZDE2ZTA1MDUwMjk0ZjBjYzliYzQyMTIyNTQ1MDhhN2M2N2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTQ5NzUsMTkgKzQ5NzUsMTkgQEAgU3RyaW5nIElu
dGVybmFsczo6YXVkaW9TZXNzaW9uQ2F0ZWdvcnkoKSBjb25zdAogewogI2lmIFVTRShBVURJT19T
RVNTSU9OKQogICAgIHN3aXRjaCAoQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuY2F0ZWdv
cnkoKSkgewotICAgIGNhc2UgQXVkaW9TZXNzaW9uOjpBbWJpZW50U291bmQ6CisgICAgY2FzZSBB
dWRpb1Nlc3Npb25DYXRlZ29yeTo6QW1iaWVudFNvdW5kOgogICAgICAgICByZXR1cm4gIkFtYmll
bnRTb3VuZCJfczsKLSAgICBjYXNlIEF1ZGlvU2Vzc2lvbjo6U29sb0FtYmllbnRTb3VuZDoKKyAg
ICBjYXNlIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpTb2xvQW1iaWVudFNvdW5kOgogICAgICAgICBy
ZXR1cm4gIlNvbG9BbWJpZW50U291bmQiX3M7Ci0gICAgY2FzZSBBdWRpb1Nlc3Npb246Ok1lZGlh
UGxheWJhY2s6CisgICAgY2FzZSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6TWVkaWFQbGF5YmFjazoK
ICAgICAgICAgcmV0dXJuICJNZWRpYVBsYXliYWNrIl9zOwotICAgIGNhc2UgQXVkaW9TZXNzaW9u
OjpSZWNvcmRBdWRpbzoKKyAgICBjYXNlIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpSZWNvcmRBdWRp
bzoKICAgICAgICAgcmV0dXJuICJSZWNvcmRBdWRpbyJfczsKLSAgICBjYXNlIEF1ZGlvU2Vzc2lv
bjo6UGxheUFuZFJlY29yZDoKKyAgICBjYXNlIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpQbGF5QW5k
UmVjb3JkOgogICAgICAgICByZXR1cm4gIlBsYXlBbmRSZWNvcmQiX3M7Ci0gICAgY2FzZSBBdWRp
b1Nlc3Npb246OkF1ZGlvUHJvY2Vzc2luZzoKKyAgICBjYXNlIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5
OjpBdWRpb1Byb2Nlc3Npbmc6CiAgICAgICAgIHJldHVybiAiQXVkaW9Qcm9jZXNzaW5nIl9zOwot
ICAgIGNhc2UgQXVkaW9TZXNzaW9uOjpOb25lOgorICAgIGNhc2UgQXVkaW9TZXNzaW9uQ2F0ZWdv
cnk6Ok5vbmU6CiAgICAgICAgIHJldHVybiAiTm9uZSJfczsKICAgICB9CiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmNwcAppbmRleCA2YTJjODcwZjdhYWExYjBkYjAwMGVmODg4MjdjOWEwZjYxZGNmMjViLi5hYjc2
Y2I2NGZlZDg4NWI2MTAwNWNkMDdiZTFiNzdlZGY1M2QyZmJiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC02
MSw4ICs2MSwxMiBAQAogI2luY2x1ZGUgIldlYkVycm9ycy5oIgogI2luY2x1ZGUgIldlYlByb2Nl
c3NNZXNzYWdlcy5oIgogCisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSA8V2ViQ29yZS9N
ZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhU2Vzc2lv
bk1hbmFnZXJJT1MuaD4KKyNlbmRpZgorCiAjaW5jbHVkZSA8V2ViQ29yZS9Nb2NrUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlci5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1NZWRpYVNlc3Np
b25NYW5hZ2VyLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CkBAIC04MCw5ICs4NCwxOSBAQCBwcml2YXRlOgogICAgIHZvaWQgYWRkTWVzc2FnZVJlY2Vp
dmVyKElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6TWVzc2Fn
ZVJlY2VpdmVyJiByZWNlaXZlcikgZmluYWwgeyB9CiAgICAgdm9pZCByZW1vdmVNZXNzYWdlUmVj
ZWl2ZXIoSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSkgZmluYWwgeyB9
CiAgICAgSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKCkgZmluYWwgeyByZXR1cm4gbV9wcm9j
ZXNzLmNvbm5lY3Rpb24oKTsgfQotICAgIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlciYgc2Vz
c2lvbk1hbmFnZXIoKSBmaW5hbCB7IHJldHVybiBtX3Byb2Nlc3Muc2Vzc2lvbk1hbmFnZXIoKTsg
fQotICAgIHZvaWQgd2lsbFN0YXJ0Q2FtZXJhQ2FwdHVyZSgpIGZpbmFsIHsgc2Vzc2lvbk1hbmFn
ZXIoKS5wcmVwYXJlVG9TZW5kVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoKTsgfQorICAgIHZv
aWQgd2lsbFN0YXJ0Q2FtZXJhQ2FwdHVyZSgpIGZpbmFsCisgICAgeworI2lmIFBMQVRGT1JNKElP
UykKKyAgICAgICAgaWYgKCFtX3Nob3VsZFByZXBhcmVUb1NlbmRVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdCkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgbV9zaG91bGRQcmVwYXJlVG9T
ZW5kVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QgPSBmYWxzZTsKKyAgICAgICAgTWVkaWFTZXNz
aW9uTWFuYWdlcmlPUzo6cHJvdmlkZVByZXNlbnRpbmdBcHBsaWNhdGlvblBJRCgpOworI2VuZGlm
CisgICAgfQogCisjaWYgUExBVEZPUk0oSU9TKQorICAgIGJvb2wgbV9zaG91bGRQcmVwYXJlVG9T
ZW5kVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QgeyB0cnVlIH07CisjZW5kaWYKICAgICBHUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzJiBtX3Byb2Nlc3M7CiB9OwogI2VuZGlmCkBAIC0xOTksNiAr
MjEzLDIxIEBAIExpYldlYlJUQ0NvZGVjc1Byb3h5JiBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpsaWJXZWJSVENDb2RlY3NQcm94eSgpCiB9CiAjZW5kaWYKIAorI2lmIFVTRShBVURJT19TRVNT
SU9OKQordm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjp0cnlUb1NldEF1ZGlvU2Vzc2lv
bkFzQWN0aXZlKGJvb2wgaXNBY3RpdmUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgY29tcGxldGlvbkhhbmRsZXIoQXVkaW9TZXNzaW9u
OjpzaGFyZWRTZXNzaW9uKCkudHJ5VG9TZXRBY3RpdmUoaXNBY3RpdmUpKTsKK30KKwordm9pZCBH
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjp1cGRhdGVBdWRpb1Nlc3Npb25QYXJhbWV0ZXJzKHNp
emVfdCBidWZmZXJTaXplLCBPcHRpb25hbDxXZWJDb3JlOjpBdWRpb1Nlc3Npb25DYXRlZ29yeT4g
Y2F0ZWdvcnksIE9wdGlvbmFsPFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeT4gcG9saWN5KQor
eworICAgIGlmIChidWZmZXJTaXplKQorICAgICAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Np
b24oKS5zZXRQcmVmZXJyZWRCdWZmZXJTaXplKGJ1ZmZlclNpemUpOworICAgIGlmIChjYXRlZ29y
eSAmJiBwb2xpY3kpCisgICAgICAgIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldENh
dGVnb3J5KCpjYXRlZ29yeSwgKnBvbGljeSk7Cit9CisjZW5kaWYKKwogdm9pZCBHUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpjcmVhdGVSZW5kZXJpbmdCYWNrZW5kKFJlbmRlcmluZ0JhY2tlbmRJ
ZGVudGlmaWVyIHJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKQogewogICAgIGF1dG8gYWRkUmVz
dWx0ID0gbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHlNYXAuZW5zdXJlKHJlbmRlcmluZ0Jh
Y2tlbmRJZGVudGlmaWVyLCBbJl0oKSB7CkBAIC0zMDksMTMgKzMzOCw2IEBAIGNvbnN0IFN0cmlu
ZyYgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6bWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeSgp
IGNvbnN0CiB9CiAjZW5kaWYKIAotUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyJiBHUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpzZXNzaW9uTWFuYWdlcigpCi17Ci0gICAgaWYgKCFtX3Nlc3Np
b25NYW5hZ2VyKQotICAgICAgICBtX3Nlc3Npb25NYW5hZ2VyID0gUGxhdGZvcm1NZWRpYVNlc3Np
b25NYW5hZ2VyOjpjcmVhdGUoKTsKLSAgICByZXR1cm4gKm1fc2Vzc2lvbk1hbmFnZXI7Ci19Ci0K
ICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogdm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpzZXRPcmllbnRhdGlvbkZvck1lZGlhQ2FwdHVyZSh1aW50NjRfdCBvcmllbnRhdGlvbikKIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5oCmluZGV4IDc0NzE1YzgwYzU0NWJlYWZlYzNmNmI3ZTA5ODRlY2E1MGNiYTI2NjkuLmVh
YTIwNjliNWEyNDgyMDA5MzQ5MWRiMzg4YjlkMjNjMmZhZDIxOWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtODMs
OCArODMsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRPcmllbnRhdGlvbkZvck1lZGlhQ2FwdHVy
ZSh1aW50NjRfdCBvcmllbnRhdGlvbik7CiAjZW5kaWYKIAotICAgIFdlYkNvcmU6OlBsYXRmb3Jt
TWVkaWFTZXNzaW9uTWFuYWdlciYgc2Vzc2lvbk1hbmFnZXIoKTsKLQogcHJpdmF0ZToKICAgICBH
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKEdQVVByb2Nlc3MmLCBXZWJDb3JlOjpQcm9jZXNzSWRl
bnRpZmllciwgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyLCBQQUw6OlNlc3Npb25JRCk7CiAK
QEAgLTEwMCw2ICs5OCwxMSBAQCBwcml2YXRlOgogICAgIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyTWFuYWdlciYgYXVkaW9UcmFja1JlbmRlcmVyTWFuYWdlcigpOwogICAgIFJl
bW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXImIHNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllck1hbmFnZXIoKTsKICNlbmRpZgorI2VuZGlmCisKKyNpZiBVU0UoQVVESU9fU0VTU0lPTikK
KyAgICB2b2lkIHRyeVRvU2V0QXVkaW9TZXNzaW9uQXNBY3RpdmUoYm9vbCBpc0FjdGl2ZSwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CisgICAgdm9pZCB1cGRhdGVBdWRpb1Nlc3Np
b25QYXJhbWV0ZXJzKHNpemVfdCBidWZmZXJTaXplLCBPcHRpb25hbDxXZWJDb3JlOjpBdWRpb1Nl
c3Npb25DYXRlZ29yeT4sIE9wdGlvbmFsPFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeT4pOwog
I2VuZGlmCiAgICAgdm9pZCBjcmVhdGVSZW5kZXJpbmdCYWNrZW5kKFJlbmRlcmluZ0JhY2tlbmRJ
ZGVudGlmaWVyKTsKICAgICB2b2lkIHJlbGVhc2VSZW5kZXJpbmdCYWNrZW5kKFJlbmRlcmluZ0Jh
Y2tlbmRJZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9H
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggOTMyYzAx
MjJkZTA4MWVkZTliYjllZmI1NmY5YmM1MjU5YmE0ZDcwNC4uMjVkYzQ3NGJhYjU1NmRjMmE3NzE5
ZDBkZTgwMmZkOGJkOGE1NjMxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTIz
LDYgKzIzLDExIEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCiBtZXNzYWdlcyAtPiBHUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzIFdhbnRzRGlzcGF0Y2hNZXNzYWdlIHsKKyNpZiBVU0UoQVVE
SU9fU0VTU0lPTikKKyAgICB2b2lkIFRyeVRvU2V0QXVkaW9TZXNzaW9uQXNBY3RpdmUoYm9vbCBp
c0FjdGl2ZSkgLT4gKGJvb2wgcmVzdWx0KSBTeW5jaHJvbm91cworICAgIHZvaWQgVXBkYXRlQXVk
aW9TZXNzaW9uUGFyYW1ldGVycyh1aW50NjRfdCBidWZmZXJTaXplLCBPcHRpb25hbDxXZWJDb3Jl
OjpBdWRpb1Nlc3Npb25DYXRlZ29yeT4gY2F0ZWdvcnksIE9wdGlvbmFsPFdlYkNvcmU6OlJvdXRl
U2hhcmluZ1BvbGljeT4gcG9saWN5KQorI2VuZGlmCisKICAgICB2b2lkIENyZWF0ZVJlbmRlcmlu
Z0JhY2tlbmQoV2ViS2l0OjpSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllciByZW5kZXJpbmdCYWNr
ZW5kSWRlbnRpZmllcikKICAgICB2b2lkIFJlbGVhc2VSZW5kZXJpbmdCYWNrZW5kKFdlYktpdDo6
UmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIgcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIpCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCmluZGV4IGJkYWZhNTNlYWJlZDg2Y2NhMzE5YjJh
YjM4YmM0MTFjOGRkYTA1ZTMuLjVjNTMxYTY4OGYzOWZlZTBjNjlhZjU0MTgyNzc5ZjVkYjE2NDlh
MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCkBAIC00NiwzMCArNDYsMjIgQEAgdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIGNsYXNzIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHk6OlNvdXJjZVByb3h5CiAgICAgOiBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZTo6T2JzZXJ2
ZXIKLSAgICAsIHB1YmxpYyBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTo6Q2xpZW50Ci0gICAgLCBw
dWJsaWMgUGxhdGZvcm1NZWRpYVNlc3Npb246OkF1ZGlvQ2FwdHVyZVNvdXJjZSB7CisgICAgLCBw
dWJsaWMgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U6OkNsaWVudCB7CiAgICAgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgU291cmNlUHJveHkoUmVhbHRpbWVNZWRpYVNvdXJj
ZUlkZW50aWZpZXIgaWQsIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlciYgc2Vzc2lvbk1hbmFn
ZXIsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbiwgUmVmPFJlYWx0aW1lTWVkaWFT
b3VyY2U+JiYgc291cmNlKQorICAgIFNvdXJjZVByb3h5KFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyIGlkLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIFJlZjxSZWFsdGlt
ZU1lZGlhU291cmNlPiYmIHNvdXJjZSkKICAgICAgICAgOiBtX2lkKGlkKQotICAgICAgICAsIG1f
c2Vzc2lvbk1hbmFnZXIobWFrZVdlYWtQdHIoc2Vzc2lvbk1hbmFnZXIpKQogICAgICAgICAsIG1f
Y29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKQogICAgICAgICAsIG1fc291cmNlKFdURk1v
dmUoc291cmNlKSkKICAgICAgICAgLCBtX3JpbmdCdWZmZXIobWFrZVVuaXF1ZVJlZjxTaGFyZWRS
aW5nQnVmZmVyU3RvcmFnZT4obWFrZVVuaXF1ZVJlZjxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZT4o
dGhpcykpKQogICAgIHsKICAgICAgICAgbV9zb3VyY2UtPmFkZE9ic2VydmVyKCp0aGlzKTsKLQot
ICAgICAgICBpZiAobV9zb3VyY2UtPnR5cGUoKSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBl
OjpBdWRpbykKLSAgICAgICAgICAgIHNlc3Npb25NYW5hZ2VyLmFkZEF1ZGlvQ2FwdHVyZVNvdXJj
ZSgqdGhpcyk7CiAgICAgfQogCiAgICAgflNvdXJjZVByb3h5KCkKICAgICB7CiAgICAgICAgIHN0
b3JhZ2UoKS5pbnZhbGlkYXRlKCk7CiAgICAgICAgIG1fc291cmNlLT5yZW1vdmVPYnNlcnZlcigq
dGhpcyk7Ci0KLSAgICAgICAgaWYgKG1fc291cmNlLT50eXBlKCkgPT0gUmVhbHRpbWVNZWRpYVNv
dXJjZTo6VHlwZTo6QXVkaW8gJiYgbV9zZXNzaW9uTWFuYWdlcikKLSAgICAgICAgICAgIG1fc2Vz
c2lvbk1hbmFnZXItPnJlbW92ZUF1ZGlvQ2FwdHVyZVNvdXJjZSgqdGhpcyk7CiAgICAgfQogCiAg
ICAgUmVhbHRpbWVNZWRpYVNvdXJjZSYgc291cmNlKCkgeyByZXR1cm4gbV9zb3VyY2U7IH0KQEAg
LTc3LDE0ICs2OSw2IEBAIHB1YmxpYzoKICAgICBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRl
c2NyaXB0aW9uKCkgeyByZXR1cm4gbV9kZXNjcmlwdGlvbjsgfQogICAgIGludDY0X3QgbnVtYmVy
T2ZGcmFtZXMoKSB7IHJldHVybiBtX251bWJlck9mRnJhbWVzOyB9CiAKLSAgICBib29sIGlzQ2Fw
dHVyaW5nQXVkaW8oKSBjb25zdCBmaW5hbCB7IHJldHVybiAhbV9pc0VuZGVkICYmIG1fc291cmNl
LT5pc1Byb2R1Y2luZ0RhdGEoKTsgfQotCi0gICAgdm9pZCBhdWRpb1VuaXRXaWxsU3RhcnQoKSBm
aW5hbAotICAgIHsKLSAgICAgICAgaWYgKCFtX2lzRW5kZWQgJiYgbV9zZXNzaW9uTWFuYWdlcikK
LSAgICAgICAgICAgIG1fc2Vzc2lvbk1hbmFnZXItPnNlc3Npb25DYW5Qcm9kdWNlQXVkaW9DaGFu
Z2VkKCk7Ci0gICAgfQotCiAgICAgdm9pZCBzdGFydCgpCiAgICAgewogICAgICAgICBtX2lzRW5k
ZWQgPSBmYWxzZTsKQEAgLTIxNCw3ICsxOTgsNyBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHk6OmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaQog
ICAgICAgICBhdXRvIHNvdXJjZSA9IHNvdXJjZU9yRXJyb3Iuc291cmNlKCk7CiAgICAgICAgIHNl
dHRpbmdzID0gc291cmNlLT5zZXR0aW5ncygpOwogICAgICAgICBBU1NFUlQoIW1fcHJveGllcy5j
b250YWlucyhpZCkpOwotICAgICAgICBtX3Byb3hpZXMuYWRkKGlkLCBtYWtlVW5pcXVlPFNvdXJj
ZVByb3h5PihpZCwgbV9jb25uZWN0aW9uUHJveHktPnNlc3Npb25NYW5hZ2VyKCksIG1fY29ubmVj
dGlvblByb3h5LT5jb25uZWN0aW9uKCksIFdURk1vdmUoc291cmNlKSkpOworICAgICAgICBtX3By
b3hpZXMuYWRkKGlkLCBtYWtlVW5pcXVlPFNvdXJjZVByb3h5PihpZCwgbV9jb25uZWN0aW9uUHJv
eHktPmNvbm5lY3Rpb24oKSwgV1RGTW92ZShzb3VyY2UpKSk7CiAgICAgfSBlbHNlCiAgICAgICAg
IGludmFsaWRDb25zdHJhaW50cyA9IFdURk1vdmUoc291cmNlT3JFcnJvci5lcnJvck1lc3NhZ2Up
OwogICAgIGNvbXBsZXRpb25IYW5kbGVyKHN1Y2NlZWRlZCwgaW52YWxpZENvbnN0cmFpbnRzLCBX
VEZNb3ZlKHNldHRpbmdzKSk7CkBAIC0yNzAsNyArMjU0LDcgQEAgdm9pZCBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5OjpjbG9uZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBjbG9u
ZWRJRCwKICAgICBBU1NFUlQobV9wcm94aWVzLmNvbnRhaW5zKGNsb25lZElEKSk7CiAgICAgQVNT
RVJUKCFtX3Byb3hpZXMuY29udGFpbnMobmV3U291cmNlSUQpKTsKICAgICBpZiAoYXV0byogcHJv
eHkgPSBtX3Byb3hpZXMuZ2V0KGNsb25lZElEKSkKLSAgICAgICAgbV9wcm94aWVzLmFkZChuZXdT
b3VyY2VJRCwgbWFrZVVuaXF1ZTxTb3VyY2VQcm94eT4obmV3U291cmNlSUQsIG1fY29ubmVjdGlv
blByb3h5LT5zZXNzaW9uTWFuYWdlcigpLCBtX2Nvbm5lY3Rpb25Qcm94eS0+Y29ubmVjdGlvbigp
LCBwcm94eS0+c291cmNlKCkuY2xvbmUoKSkpOworICAgICAgICBtX3Byb3hpZXMuYWRkKG5ld1Nv
dXJjZUlELCBtYWtlVW5pcXVlPFNvdXJjZVByb3h5PihuZXdTb3VyY2VJRCwgbV9jb25uZWN0aW9u
UHJveHktPmNvbm5lY3Rpb24oKSwgcHJveHktPnNvdXJjZSgpLmNsb25lKCkpKTsKIH0KIAogdm9p
ZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpyZXF1ZXN0VG9FbmQoUmVhbHRpbWVNZWRp
YVNvdXJjZUlkZW50aWZpZXIgc291cmNlSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgKaW5kZXgg
MjdiYzc3MGMwZDljOTE2N2E0OWE3ZDI5MGZhZmZkMzk5Mjg2NDg5Mi4uYTc2YWY5NmVhNTg0Y2Iy
MTI5NTI3YjJmMTI5YWMyOGNjNmIyZDdlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaApAQCAt
NTMsNyArNTMsNiBAQCBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgdm9pZCBhZGRNZXNzYWdlUmVj
ZWl2ZXIoSVBDOjpTdHJpbmdSZWZlcmVuY2UsIElQQzo6TWVzc2FnZVJlY2VpdmVyJikgPSAwOwog
ICAgICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlTWVzc2FnZVJlY2VpdmVyKElQQzo6U3RyaW5nUmVm
ZXJlbmNlKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9u
KCkgPSAwOwotICAgICAgICB2aXJ0dWFsIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uTWFu
YWdlciYgc2Vzc2lvbk1hbmFnZXIoKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCB3aWxsU3Rh
cnRDYW1lcmFDYXB0dXJlKCkgeyB9CiAgICAgfTsKICAgICBleHBsaWNpdCBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5KFVuaXF1ZVJlZjxDb25uZWN0aW9uUHJveHk+JiYpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXggOGI3MGQ2NDdlZTgyNmNh
ZGQyZDJiZmY3ZWRmMzg3ZjNjOGIwNGZkZi4uMDMyZjBiOTAwYWQ5ZjQ0MjI4ZjIwZTc2ODYyMGMy
MWI2M2MyNjg5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
Y3BwCkBAIC0xNjAsNyArMTYwLDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGFkZE1lc3NhZ2VSZWNl
aXZlcihJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6Ok1lc3Nh
Z2VSZWNlaXZlciYgcmVjZWl2ZXIpIGZpbmFsIHsgbV9wcm9jZXNzLmFkZE1lc3NhZ2VSZWNlaXZl
cihtZXNzYWdlUmVjZWl2ZXJOYW1lLCByZWNlaXZlcik7IH0KICAgICB2b2lkIHJlbW92ZU1lc3Nh
Z2VSZWNlaXZlcihJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lKSBmaW5h
bCB7IG1fcHJvY2Vzcy5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIobWVzc2FnZVJlY2VpdmVyTmFtZSk7
IH0KICAgICBJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24oKSBmaW5hbCB7IHJldHVybiAqbV9w
cm9jZXNzLmNvbm5lY3Rpb24oKTsgfQotICAgIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlciYg
c2Vzc2lvbk1hbmFnZXIoKSBmaW5hbCB7IHJldHVybiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFn
ZXI6OnNoYXJlZE1hbmFnZXIoKTsgfQogCiAgICAgV2ViUHJvY2Vzc1Byb3h5JiBtX3Byb2Nlc3M7
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJN
ZWRpYVN0cmF0ZWd5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2Vi
TWVkaWFTdHJhdGVneS5jcHAKaW5kZXggMmFhZTVlNTQ0NTEwODQ3OWJkM2NkMzM5YWZhNmJmNmQy
ZGRhYmNmNi4uY2JmODMxNDgzYTQ2NTE0OWNkZGIxNWI4NTlmOWE1MTJjMDZiNzQzZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3Ry
YXRlZ3kuY3BwCkBAIC0zMCwxMiArMzAsNDIgQEAKICNpbmNsdWRlICJSZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uUHJveHkuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvRGVzdGluYXRpb24uaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0F1ZGlvSU9DYWxsYmFjay5oPgorI2luY2x1ZGUgPFdlYkNvcmUvQXVk
aW9TZXNzaW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9DRE1GYWN0b3J5Lmg+CiAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCiBXZWJNZWRpYVN0cmF0ZWd5Ojp+V2ViTWVkaWFTdHJhdGVneSgpID0gZGVm
YXVsdDsKIAorI2lmIFVTRShBVURJT19TRVNTSU9OKQorYm9vbCBXZWJNZWRpYVN0cmF0ZWd5Ojp0
cnlUb1NldEF1ZGlvU2Vzc2lvbkFzQWN0aXZlKGJvb2wgaXNBY3RpdmUpCit7CisjaWYgRU5BQkxF
KEdQVV9QUk9DRVNTKQorICAgIGlmIChtX3VzZUdQVVByb2Nlc3MpIHsKKyAgICAgICAgYXV0byYg
Y29ubmVjdGlvbiA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25u
ZWN0aW9uKCkuY29ubmVjdGlvbigpOworICAgICAgICBib29sIHJlc3VsdDsKKyAgICAgICAgY29u
bmVjdGlvbi5zZW5kU3luYyhNZXNzYWdlczo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6VHJ5
VG9TZXRBdWRpb1Nlc3Npb25Bc0FjdGl2ZSB7IGlzQWN0aXZlIH0sIE1lc3NhZ2VzOjpHUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpUcnlUb1NldEF1ZGlvU2Vzc2lvbkFzQWN0aXZlOjpSZXBseShy
ZXN1bHQpLCAwKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisjZW5kaWYKKyAgICBy
ZXR1cm4gQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkudHJ5VG9TZXRBY3RpdmUoaXNBY3Rp
dmUpOworfQorCit2b2lkIFdlYk1lZGlhU3RyYXRlZ3k6OnVwZGF0ZUF1ZGlvU2Vzc2lvblBhcmFt
ZXRlcnMoc2l6ZV90IGJ1ZmZlclNpemUsIE9wdGlvbmFsPEF1ZGlvU2Vzc2lvbkNhdGVnb3J5PiBj
YXRlZ29yeSwgT3B0aW9uYWw8Um91dGVTaGFyaW5nUG9saWN5PiBwb2xpY3kpCit7CisjaWYgRU5B
QkxFKEdQVV9QUk9DRVNTKQorICAgIGlmIChtX3VzZUdQVVByb2Nlc3MpIHsKKyAgICAgICAgYXV0
byYgY29ubmVjdGlvbiA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3ND
b25uZWN0aW9uKCkuY29ubmVjdGlvbigpOworICAgICAgICBjb25uZWN0aW9uLnNlbmQoTWVzc2Fn
ZXM6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlVwZGF0ZUF1ZGlvU2Vzc2lvblBhcmFtZXRl
cnMgeyBidWZmZXJTaXplLCBjYXRlZ29yeSwgcG9saWN5IH0sIDApOworICAgICAgICByZXR1cm47
CisgICAgfQorI2VuZGlmCisgICAgQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2V0UHJl
ZmVycmVkQnVmZmVyU2l6ZShidWZmZXJTaXplKTsKKyAgICBpZiAoY2F0ZWdvcnkgJiYgcG9saWN5
KQorICAgICAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zZXRDYXRlZ29yeSgqY2F0
ZWdvcnksICpwb2xpY3kpOworfQorI2VuZGlmCisKICNpZiBFTkFCTEUoV0VCX0FVRElPKQogc3Rk
Ojp1bmlxdWVfcHRyPFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb24+IFdlYk1lZGlhU3RyYXRlZ3k6
OmNyZWF0ZUF1ZGlvRGVzdGluYXRpb24oV2ViQ29yZTo6QXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFj
aywgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLAogICAgIHVuc2lnbmVkIG51bWJlck9mSW5w
dXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxl
UmF0ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2Vi
TWVkaWFTdHJhdGVneS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJN
ZWRpYVN0cmF0ZWd5LmgKaW5kZXggNGZhYjBlOTQ0ZmMxNGU2ODQzNzllMzAwODE2M2JlMTYyZGQ4
OWI0ZC4uOWFmNjAxYzg3MmVlNTgxMzZmOGJhMzY2OGExYTQ0ZGFlOWQ4Zjc1OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5
LmgKQEAgLTM4LDYgKzM4LDEwIEBAIHB1YmxpYzoKICNlbmRpZgogCiBwcml2YXRlOgorI2lmIFVT
RShBVURJT19TRVNTSU9OKQorICAgIGJvb2wgdHJ5VG9TZXRBdWRpb1Nlc3Npb25Bc0FjdGl2ZShi
b29sIGlzQWN0aXZlKSBmaW5hbDsKKyAgICB2b2lkIHVwZGF0ZUF1ZGlvU2Vzc2lvblBhcmFtZXRl
cnMoc2l6ZV90IGJ1ZmZlclNpemUsIE9wdGlvbmFsPFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbkNhdGVn
b3J5PiwgT3B0aW9uYWw8V2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5PikgZmluYWw7CisjZW5k
aWYKICNpZiBFTkFCTEUoV0VCX0FVRElPKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpB
dWRpb0Rlc3RpbmF0aW9uPiBjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKFdlYkNvcmU6OkF1ZGlvSU9D
YWxsYmFjayYsCiAgICAgICAgIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwgdW5zaWduZWQg
bnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBm
bG9hdCBzYW1wbGVSYXRlKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1BsdWdpbnMvV2ViUGx1Z2luQ29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1BsdWdpbnMvV2ViUGx1Z2luQ29udHJvbGxlci5tbQppbmRleCAzZjI2ZGQ2YzY0NzIx
NjZhYjJlM2JkM2FlNTIxMTBjMDMwMDkzYjBmLi4zNzBmOTNiYzg0ODk0ODI1ZjIxY2VlZDNmNmFk
Yzg2ZTZiNmVjMDA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5z
L1dlYlBsdWdpbkNvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1
Z2lucy9XZWJQbHVnaW5Db250cm9sbGVyLm1tCkBAIC0xMTEsNyArMTExLDcgQEAgc3RhdGljIHZv
aWQgaW5pdGlhbGl6ZUF1ZGlvU2Vzc2lvbigpCiAgICAgaWYgKCFXZWJDb3JlOjpJT1NBcHBsaWNh
dGlvbjo6aXNNb2JpbGVTYWZhcmkoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgV2ViQ29yZTo6
QXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2V0Q2F0ZWdvcnkoV2ViQ29yZTo6QXVkaW9T
ZXNzaW9uOjpNZWRpYVBsYXliYWNrLCBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3k6OkRlZmF1
bHQpOworICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldENhdGVn
b3J5KFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpNZWRpYVBsYXliYWNrLCBXZWJDb3Jl
OjpSb3V0ZVNoYXJpbmdQb2xpY3k6OkRlZmF1bHQpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRl
Z2llcy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRm
b3JtU3RyYXRlZ2llcy5tbQppbmRleCBiOTA5ZWNjNDM5YmNkM2M2ZjZkYTgwNDFjNmVmMjkzZmYz
NDY2OTZmLi44YTk1Y2Q4ZDcyNzVlNzBkZDgwY2Y0MmI5ZTBmYmI2NWNiZmZhYzUyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0
cmF0ZWdpZXMubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tCkBAIC0yOSw2ICsyOSw3IEBACiAjaW1wb3J0ICJXZWJQ
bHVnaW5QYWNrYWdlLmgiCiAjaW1wb3J0ICJXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaCIKICNp
bXBvcnQgPFdlYkNvcmUvQXVkaW9EZXN0aW5hdGlvbi5oPgorI2ltcG9ydCA8V2ViQ29yZS9BdWRp
b1Nlc3Npb24uaD4KICNpbXBvcnQgPFdlYkNvcmUvQmxvYlJlZ2lzdHJ5SW1wbC5oPgogI2ltcG9y
dCA8V2ViQ29yZS9DRE1GYWN0b3J5Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0NvbG9yLmg+CkBAIC02
Nyw2ICs2OCwyMCBAQCBQYXN0ZWJvYXJkU3RyYXRlZ3kqIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6
Y3JlYXRlUGFzdGVib2FyZFN0cmF0ZWd5KCkKIAogY2xhc3MgV2ViTWVkaWFTdHJhdGVneSBmaW5h
bCA6IHB1YmxpYyBNZWRpYVN0cmF0ZWd5IHsKIHByaXZhdGU6CisjaWYgVVNFKEFVRElPX1NFU1NJ
T04pCisgICAgYm9vbCB0cnlUb1NldEF1ZGlvU2Vzc2lvbkFzQWN0aXZlKGJvb2wgaXNBY3RpdmUp
IGZpbmFsCisgICAgeworICAgICAgICByZXR1cm4gQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9u
KCkudHJ5VG9TZXRBY3RpdmUoaXNBY3RpdmUpOworICAgIH0KKworICAgIHZvaWQgdXBkYXRlQXVk
aW9TZXNzaW9uUGFyYW1ldGVycyhzaXplX3QgYnVmZmVyU2l6ZSwgT3B0aW9uYWw8V2ViQ29yZTo6
QXVkaW9TZXNzaW9uQ2F0ZWdvcnk+IGNhdGVnb3J5LCBPcHRpb25hbDxXZWJDb3JlOjpSb3V0ZVNo
YXJpbmdQb2xpY3k+IHBvbGljeSkgZmluYWwKKyAgICB7CisgICAgICAgIGlmIChidWZmZXJTaXpl
KQorICAgICAgICAgICAgQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2V0UHJlZmVycmVk
QnVmZmVyU2l6ZShidWZmZXJTaXplKTsKKyAgICAgICAgaWYgKGNhdGVnb3J5ICYmIHBvbGljeSkK
KyAgICAgICAgICAgIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldENhdGVnb3J5KCpj
YXRlZ29yeSwgKnBvbGljeSk7CisgICAgfQorI2VuZGlmCiAjaWYgRU5BQkxFKFdFQl9BVURJTykK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlQXVkaW9EZXN0aW5h
dGlvbihBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNl
SWQsCiAgICAgICAgIHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVt
YmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSkgb3ZlcnJpZGUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0gYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCmluZGV4IGUy
MGVlNzQ0NWNhOWIzNTJmYTY3ZDg1ZjM0MWYyMjEyYTBkNjIwZTUuLjQ3NmM4ZjBiODFmODM3N2Y4
NTM1ZmE0NGViOGVjODY3M2Q1YWZkODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQpAQCAtNTQ0LDcgKzU0NCw3IEBAIHB1YmxpYzoK
ICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhCb29sOmFsbG93c0lubGluZU1lZGlhUGxheWJh
Y2tBZnRlckZ1bGxzY3JlZW5dLCBXZWJLaXRBbGxvd3NJbmxpbmVNZWRpYVBsYXliYWNrQWZ0ZXJG
dWxsc2NyZWVuUHJlZmVyZW5jZUtleSwKICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhCb29s
OnJlcXVpcmVzUGxheXNJbmxpbmVBdHRyaWJ1dGVdLCBXZWJLaXRJbmxpbmVNZWRpYVBsYXliYWNr
UmVxdWlyZXNQbGF5c0lubGluZUF0dHJpYnV0ZUtleSwKICAgICAgICAgQE5PLCBXZWJLaXRNZWRp
YUNvbnRyb2xzU2NhbGVXaXRoUGFnZVpvb21QcmVmZXJlbmNlS2V5LAotICAgICAgICBbTlNOdW1i
ZXIgbnVtYmVyV2l0aFVuc2lnbmVkSW50OkF1ZGlvU2Vzc2lvbjo6Tm9uZV0sIFdlYktpdEF1ZGlv
U2Vzc2lvbkNhdGVnb3J5T3ZlcnJpZGUsCisgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoVW5z
aWduZWRJbnQ6c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpOb25l
KV0sIFdlYktpdEF1ZGlvU2Vzc2lvbkNhdGVnb3J5T3ZlcnJpZGUsCiAgICAgICAgIEBOTywgV2Vi
S2l0TWVkaWFEYXRhTG9hZHNBdXRvbWF0aWNhbGx5UHJlZmVyZW5jZUtleSwKICNpZiBIQVZFKEFW
S0lUKQogICAgICAgICBAWUVTLCBXZWJLaXRBVktpdEVuYWJsZWQsCkBAIC0yNDIyLDM3ICsyNDIy
LDM4IEBAIHN0YXRpYyBOU1N0cmluZyAqY2xhc3NJQkNyZWF0b3JJRCA9IG5pbDsKICAgICByZXR1
cm4gW3NlbGYgX3Vuc2lnbmVkSW50VmFsdWVGb3JLZXk6V2ViS2l0QXVkaW9TZXNzaW9uQ2F0ZWdv
cnlPdmVycmlkZV07CiB9CiAKLS0gKHZvaWQpc2V0QXVkaW9TZXNzaW9uQ2F0ZWdvcnlPdmVycmlk
ZToodW5zaWduZWQpb3ZlcnJpZGUKKy0gKHZvaWQpc2V0QXVkaW9TZXNzaW9uQ2F0ZWdvcnlPdmVy
cmlkZToodW5zaWduZWQpb3ZlcnJpZGVWYWx1ZQogewotICAgIGlmIChvdmVycmlkZSA+IEF1ZGlv
U2Vzc2lvbjo6QXVkaW9Qcm9jZXNzaW5nKSB7CisgICAgYXV0byBvdmVycmlkZSA9IHN0YXRpY19j
YXN0PEF1ZGlvU2Vzc2lvbkNhdGVnb3J5PihvdmVycmlkZVZhbHVlKTsKKyAgICBpZiAob3ZlcnJp
ZGVWYWx1ZSA+IHN0YXRpY19jYXN0PHVuc2lnbmVkPihBdWRpb1Nlc3Npb25DYXRlZ29yeTo6QXVk
aW9Qcm9jZXNzaW5nKSkgewogICAgICAgICAvLyBDbGllbnRzIGFyZSBwYXNzaW5nIHVzIE9TVHlw
ZXMgdmFsdWVzIGZyb20gQXVkaW9Ub29sYm94L0F1ZGlvU2Vzc2lvbi5oLAotICAgICAgICAvLyB3
aGljaCBuZWVkIHRvIGJlIHRyYW5zbGF0ZWQgaW50byBBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlw
ZToKLSAgICAgICAgc3dpdGNoIChvdmVycmlkZSkgeworICAgICAgICAvLyB3aGljaCBuZWVkIHRv
IGJlIHRyYW5zbGF0ZWQgaW50byBBdWRpb1Nlc3Npb25DYXRlZ29yeToKKyAgICAgICAgc3dpdGNo
IChvdmVycmlkZVZhbHVlKSB7CiAgICAgICAgIGNhc2UgV2ViS2l0QXVkaW9TZXNzaW9uQ2F0ZWdv
cnlBbWJpZW50U291bmQ6Ci0gICAgICAgICAgICBvdmVycmlkZSA9IEF1ZGlvU2Vzc2lvbjo6QW1i
aWVudFNvdW5kOworICAgICAgICAgICAgb3ZlcnJpZGUgPSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6
QW1iaWVudFNvdW5kOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgV2ViS2l0QXVk
aW9TZXNzaW9uQ2F0ZWdvcnlTb2xvQW1iaWVudFNvdW5kOgotICAgICAgICAgICAgb3ZlcnJpZGUg
PSBBdWRpb1Nlc3Npb246OlNvbG9BbWJpZW50U291bmQ7CisgICAgICAgICAgICBvdmVycmlkZSA9
IEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpTb2xvQW1iaWVudFNvdW5kOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIGNhc2UgV2ViS2l0QXVkaW9TZXNzaW9uQ2F0ZWdvcnlNZWRpYVBsYXliYWNr
OgotICAgICAgICAgICAgb3ZlcnJpZGUgPSBBdWRpb1Nlc3Npb246Ok1lZGlhUGxheWJhY2s7Cisg
ICAgICAgICAgICBvdmVycmlkZSA9IEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpNZWRpYVBsYXliYWNr
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgV2ViS2l0QXVkaW9TZXNzaW9uQ2F0
ZWdvcnlSZWNvcmRBdWRpbzoKLSAgICAgICAgICAgIG92ZXJyaWRlID0gQXVkaW9TZXNzaW9uOjpS
ZWNvcmRBdWRpbzsKKyAgICAgICAgICAgIG92ZXJyaWRlID0gQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6
OlJlY29yZEF1ZGlvOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgV2ViS2l0QXVk
aW9TZXNzaW9uQ2F0ZWdvcnlQbGF5QW5kUmVjb3JkOgotICAgICAgICAgICAgb3ZlcnJpZGUgPSBB
dWRpb1Nlc3Npb246OlBsYXlBbmRSZWNvcmQ7CisgICAgICAgICAgICBvdmVycmlkZSA9IEF1ZGlv
U2Vzc2lvbkNhdGVnb3J5OjpQbGF5QW5kUmVjb3JkOwogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIGNhc2UgV2ViS2l0QXVkaW9TZXNzaW9uQ2F0ZWdvcnlBdWRpb1Byb2Nlc3Npbmc6Ci0gICAg
ICAgICAgICBvdmVycmlkZSA9IEF1ZGlvU2Vzc2lvbjo6QXVkaW9Qcm9jZXNzaW5nOworICAgICAg
ICAgICAgb3ZlcnJpZGUgPSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6QXVkaW9Qcm9jZXNzaW5nOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBvdmVycmlk
ZSA9IEF1ZGlvU2Vzc2lvbjo6Tm9uZTsKKyAgICAgICAgICAgIG92ZXJyaWRlID0gQXVkaW9TZXNz
aW9uQ2F0ZWdvcnk6Ok5vbmU7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0K
IAotICAgIFtzZWxmIF9zZXRVbnNpZ25lZEludFZhbHVlOm92ZXJyaWRlIGZvcktleTpXZWJLaXRB
dWRpb1Nlc3Npb25DYXRlZ29yeU92ZXJyaWRlXTsKKyAgICBbc2VsZiBfc2V0VW5zaWduZWRJbnRW
YWx1ZTpzdGF0aWNfY2FzdDx1bnNpZ25lZD4ob3ZlcnJpZGUpIGZvcktleTpXZWJLaXRBdWRpb1Nl
c3Npb25DYXRlZ29yeU92ZXJyaWRlXTsKIH0KIAogLSAoQk9PTClhdktpdEVuYWJsZWQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392440</attachid>
            <date>2020-03-04 10:53:56 -0800</date>
            <delta_ts>2020-03-04 10:58:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208578-20200304195354.patch</filename>
            <type>text/plain</type>
            <size>63321</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3ODM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzNhODhkNjVmYjEzYTYx
Y2RmNjNmNjY2OTU0MjU1MDgzN2YzOWFiOS4uOTc0NGI3NmNhMDVhNjVmMGIxNzlmZGJmYmRhM2Ux
Y2YyZTM4YmQwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDIwLTAzLTA0ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBFeHBvcnQgQXVkaW9TZXNz
aW9uIGNvbW1hbmRzIHRvIEdQVVByb2Nlc3Mgd2hlbiBtZWRpYSBwbGF5aW5nIGlzIGVuYWJsZWQg
aW4gR1BVUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjA4NTc4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkIHR3byBjb21tYW5kcyB0byBtZWRpYSBzdHJhdGVnaWVzIHRvIHNldCB0aGUgQXVk
aW9TZXNzaW9uIHBhcmFtZXRlcnMgYW5kIGFjdGl2YXRlL2RlYWN0aXZhdGUgdGhlIEF1ZGlvU2Vz
c2lvbi4KKyAgICAgICAgVXBkYXRlIGNvZGUgdG8gbWFrZSBBdWRpb1Nlc3Npb246OkNhdGVnb3J5
VHlwZSBhbmQgZW51bSBjbGFzcywgcmVuYW1lZCBBdWRpb1Nlc3Npb25DYXRlZ29yeS4KKyAgICAg
ICAgQWN0dWFsIGltcGxlbWVudGF0aW9uIG9mIHRoZSBjb21tYW5kcyBpcyBsZWZ0IGluIE1lZGlh
U2Vzc2lvbk1hbmFnZXJDb2NvYSBhcyBzdGF0aWMgbWV0aG9kcyB0aGF0IGNhbiBiZSB1c2VkIGlu
IHByb2Nlc3Mgb3Igb3V0IG9mIHByb2Nlc3MuCisKKyAgICAgICAgTWFudWFsbHkgdGVzdGVkIGFu
ZCBjb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBhZ2UvRGVwcmVjYXRlZEdsb2JhbFNldHRp
bmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlcHJlY2F0ZWRHbG9iYWxTZXR0aW5nczo6c2V0
QXVkaW9TZXNzaW9uQ2F0ZWdvcnlPdmVycmlkZSk6CisgICAgICAgIChXZWJDb3JlOjpEZXByZWNh
dGVkR2xvYmFsU2V0dGluZ3M6OmF1ZGlvU2Vzc2lvbkNhdGVnb3J5T3ZlcnJpZGUpOgorICAgICAg
ICAqIHBsYXRmb3JtL01lZGlhU3RyYXRlZ3kuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9B
dWRpb1Nlc3Npb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpjYXRlZ29y
eU92ZXJyaWRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6c2V0Q2F0
ZWdvcnlPdmVycmlkZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Nlc3Npb246OmNhdGVnb3J5
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzZXNzaW9uV2lsbEJlZ2luUGxheWJh
Y2spOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpwcm9j
ZXNzRGlkUmVzdW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uTWFu
YWdlcjo6bWF5YmVEZWFjdGl2YXRlQXVkaW9TZXNzaW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9h
dWRpby9jb2NvYS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EubW06CisgICAgICAgIChNZWRpYVNl
c3Npb25NYW5hZ2VyQ29jb2E6OnVwZGF0ZVNlc3Npb25TdGF0ZSk6CisgICAgICAgICogcGxhdGZv
cm0vYXVkaW8vaW9zL0F1ZGlvU2Vzc2lvbklPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OmNhdGVn
b3J5TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Nlc3Npb25Qcml2YXRlOjpBdWRpb1Nl
c3Npb25Qcml2YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdv
cnkpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpjYXRlZ29yeSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5T3ZlcnJpZGUpOgorICAg
ICAgICAoV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpjYXRlZ29yeU92ZXJyaWRlIGNvbnN0KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlcmlPUzo6cHJvdmlkZVByZXNlbnRpbmdB
cHBsaWNhdGlvblBJRElmTmVjZXNzYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lv
bk1hbmFnZXJpT1M6OnByb3ZpZGVQcmVzZW50aW5nQXBwbGljYXRpb25QSUQpOgorICAgICAgICAq
IHBsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb1Nlc3Npb25NYWMuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QXVkaW9TZXNzaW9uOjpjYXRlZ29yeSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRp
b1Nlc3Npb246OnNldENhdGVnb3J5KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6
Y2F0ZWdvcnlPdmVycmlkZSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL0Jhc2VBdWRpb1NoYXJlZFVuaXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmFzZUF1ZGlv
U2hhcmVkVW5pdDo6c3RhcnRVbml0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFs
dGltZUF1ZGlvU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZUF1ZGlv
U291cmNlOjpzdGFydFByb2R1Y2luZ0RhdGEpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxz
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6YXVkaW9TZXNzaW9uQ2F0ZWdvcnkg
Y29uc3QpOgorCiAyMDIwLTAzLTAzICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4K
IAogICAgICAgICBXZWIgSW5zcGVjdG9yOiByZS1hZGQgYEluc3BlY3RvckZyb250ZW5kSG9zdGAg
c3VwcG9ydCBmb3IgbW92aW5nIHRoZSBpbnNwZWN0ZWQgd2luZG93CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDdmNDk3
N2YzNzI3MDZkMzMwYWFlZjFjMzkzMzUwMGFjNDA2NDI5MjUuLmM3MTE3ZGRlOWQ2ZDFlNWE4Mjg0
MWY3Y2Q4YTc5YjNlMzBkYmZiM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMjAtMDMt
MDQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEV4cG9ydCBB
dWRpb1Nlc3Npb24gY29tbWFuZHMgdG8gR1BVUHJvY2VzcyB3aGVuIG1lZGlhIHBsYXlpbmcgaXMg
ZW5hYmxlZCBpbiBHUFVQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDg1NzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBTZW5kIElQQyBjb21tYW5kcyByZWxhdGVkIHRvIEF1ZGlvU2Vzc2lvbiBm
cm9tIFdlYlByb2Nlc3MgdG8gR1BVUHJvY2VzcyBhbmQgZG8gdGhlIGFjdHVhbCB3b3JrIGluIEdQ
VVByb2Nlc3MuCisgICAgICAgIFdlIGtlZXAgYSBzeW5jIElQQyBmb3Igbm93IHdoZW4gYWN0aXZh
dGluZyB0aGUgQXVkaW9TZXNzaW9uIGFuZCB3aWxsIHRyeSB0byByZW1vdmUgaXQgaW4gYSBmb2xs
b3ctdXAKKyAgICAgICAgVG8gbWFrZSB0aGlzIHdvcmssIHdlIHJlbW92ZSB0aGUgdXNlciBvZiBN
ZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EgaW4gR1BVUHJvY2Vzcywgd2hpY2ggd2FzIHVzZWQgZm9y
IGNhcHR1cmUuCisgICAgICAgIFdlIHJlcGxhY2UgaXQgYnkgZWl0aGVyIGRlZGljYXRlZCBjYWxs
cyBvciBieSB0aGUgY29tbWFuZHMgdGhhdCBhcmUgbm93IGNvbWluZyBmcm9tIFdlYlByb2Nlc3Mu
CisKKyAgICAgICAgKiBHUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjp0cnlUb1NldEF1ZGlv
U2Vzc2lvbkFzQWN0aXZlKToKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6dXBkYXRlQXVkaW9TZXNzaW9uUGFyYW1ldGVycyk6CisgICAgICAgICogR1BVUHJvY2Vz
cy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9D
b2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U291cmNlUHJveHk6OlNvdXJjZVByb3h5KToK
KyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U291cmNlUHJv
eHk6On5Tb3VyY2VQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHk6OmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50
cyk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNsb25l
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAq
IFdlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJNZWRpYVN0cmF0ZWd5Ojp0cnlUb1NldEF1ZGlvU2Vzc2lvbkFzQWN0aXZlKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViTWVkaWFTdHJhdGVneTo6dXBkYXRlQXVkaW9TZXNzaW9uUGFyYW1l
dGVycyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5o
OgorCiAyMDIwLTAzLTAzICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAg
ICAgICBXZWIgSW5zcGVjdG9yOiByZS1hZGQgYEluc3BlY3RvckZyb250ZW5kSG9zdGAgc3VwcG9y
dCBmb3IgbW92aW5nIHRoZSBpbnNwZWN0ZWQgd2luZG93CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VM
b2cKaW5kZXggMTY3ZmZjN2JiNTBiOWJhM2QyNTViZjA5NzY4YjM0YTk2ZDg3OTQzMS4uOWRhMjEw
M2NlZmNkMzBhOGQwMjZmMGZiYzMwYTY4ZjdmNTM0ZjUwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIwLTAzLTA0ICBZb3Vlbm4gRmFibGV0ICA8eW91
ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBFeHBvcnQgQXVkaW9TZXNzaW9uIGNvbW1hbmRzIHRv
IEdQVVByb2Nlc3Mgd2hlbiBtZWRpYSBwbGF5aW5nIGlzIGVuYWJsZWQgaW4gR1BVUHJvY2Vzcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4NTc4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIGluLXBy
b2Nlc3MgaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgKiBQbHVnaW5zL1dlYlBsdWdpbkNvbnRy
b2xsZXIubW06CisgICAgICAgIChpbml0aWFsaXplQXVkaW9TZXNzaW9uKToKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW06CisgICAgICAgICogV2ViVmll
dy9XZWJQcmVmZXJlbmNlcy5tbToKKyAgICAgICAgKCtbV2ViUHJlZmVyZW5jZXMgaW5pdGlhbGl6
ZV0pOgorICAgICAgICAoLVtXZWJQcmVmZXJlbmNlcyBzZXRBdWRpb1Nlc3Npb25DYXRlZ29yeU92
ZXJyaWRlOl0pOgorCiAyMDIwLTAzLTAzICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNv
bT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiByZS1hZGQgYEluc3BlY3RvckZyb250ZW5kSG9z
dGAgc3VwcG9ydCBmb3IgbW92aW5nIHRoZSBpbnNwZWN0ZWQgd2luZG93CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFr
ZQppbmRleCBkYmFhMWQ3YzA2NGE4Y2Q2ZTkzYTQzYmU1YWUyNjIwZTVkMjk2ODI2Li4xZmE2NjJm
NTVmY2I3MzNmYTNmNTY4NjFmZDdkY2M0ZmM5NDI4NWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAg
LTEwMjksMTEgKzEwMjksMTMgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVS
UwogICAgIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvSGFyZHdhcmVMaXN0ZW5lci5oCiAgICAgcGxhdGZv
cm0vYXVkaW8vQXVkaW9JT0NhbGxiYWNrLmgKICAgICBwbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Np
b24uaAorICAgIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbkNhdGVnb3J5LmgKICAgICBwbGF0
Zm9ybS9hdWRpby9BdWRpb1NvdXJjZVByb3ZpZGVyLmgKICAgICBwbGF0Zm9ybS9hdWRpby9BdWRp
b1N0cmVhbURlc2NyaXB0aW9uLmgKICAgICBwbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybUF1ZGlvRGF0
YS5oCiAgICAgcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb24uaAogICAgIHBsYXRm
b3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oCisgICAgcGxhdGZvcm0vYXVk
aW8vUm91dGVTaGFyaW5nUG9saWN5LmgKIAogICAgIHBsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NE
TUVuY3J5cHRpb25TY2hlbWUuaAogICAgIHBsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NETUZhY3Rv
cnkuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IGRmMDIzZWJkNGVkZGJmNjkzNDA1NzIzNjk3YWRlOWJmNTM5Njg1ODkuLjE0NWM0
MWFkZGQ2MjJjMDY3OGFlY2QzN2VkZTQyMzU5MjQwNmE2MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEwOTEsNiArMTA5MSw4
IEBACiAJCTQxNzYxMkIxMUUzQTk5NDAwMEMzRDgxRCAvKiBMaWJXZWJSVENQZWVyQ29ubmVjdGlv
bkJhY2tlbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDE3NjEyQUQxRTNBOTkzQjAwQzNEODFEIC8qIExpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFj
a2VuZC5jcHAgKi87IH07CiAJCTQxNzYxMkIyMUUzQTk5NDAwMEMzRDgxRCAvKiBMaWJXZWJSVENQ
ZWVyQ29ubmVjdGlvbkJhY2tlbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQxNzYxMkFFMUUzQTk5M0IwMEMzRDgxRCAvKiBMaWJXZWJSVENQZWVyQ29u
bmVjdGlvbkJhY2tlbmQuaCAqLzsgfTsKIAkJNDE3NkU4OTYyM0MzNTM3QjAwM0U4M0ZFIC8qIE1l
ZGlhUmVjb3JkZXJQcm92aWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDE3NkU4OEYyM0MzNDhEMjAwM0U4M0ZFIC8qIE1lZGlhUmVjb3JkZXJQcm92
aWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJ
CTQxNzhFRUZDMjQxMDAxRkQwMDE5M0M3NCAvKiBBdWRpb1Nlc3Npb25DYXRlZ29yeS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE3OEVFRjgyNDBGRUE4
RDAwMTkzQzc0IC8qIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDE3OEVFRkUyNDEwMDIwOTAwMTkzQzc0IC8q
IFJvdXRlU2hhcmluZ1BvbGljeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDE3OEVFRkEyNDBGRUVFODAwMTkzQzc0IC8qIFJvdXRlU2hhcmluZ1BvbGlj
eS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQx
N0RBNkQ5MTM3MzRFNkUwMDdDNTdGQiAvKiBJbnRlcm5hbHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE3REE0Q0YxMzczNDMyNjAwN0M1N0ZCIC8q
IEludGVybmFscy5jcHAgKi87IH07CiAJCTQxN0RBNkRBMTM3MzRFNkUwMDdDNTdGQiAvKiBJbnRl
cm5hbHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQx
N0RBNENFMTM3MzQzMjYwMDdDNTdGQiAvKiBJbnRlcm5hbHMuaCAqLzsgfTsKIAkJNDE3REE3MUQx
MzczNURGQTAwN0M1N0ZCIC8qIEpTSW50ZXJuYWxzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxN0RBNzFCMTM3MzVERkEwMDdDNTdGQiAvKiBKU0lu
dGVybmFscy5jcHAgKi87IH07CkBAIC03MzgxLDYgKzczODMsOCBAQAogCQk0MTc3MDQwQjIzRjcw
Q0FCMDAwQzU0RUUgLyogTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0MTc3RjUxQzIzODI1NDQwMDBDMDQ0ODYgLyogQmFzZUF1ZGlv
U2hhcmVkVW5pdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCYXNl
QXVkaW9TaGFyZWRVbml0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE3N0Y1
MUUyMzgyNTQ1RTAwQzA0NDg2IC8qIEJhc2VBdWRpb1NoYXJlZFVuaXQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQmFzZUF1ZGlvU2hhcmVkVW5pdC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk0MTc4RUVGODI0MEZFQThEMDAxOTNDNzQgLyogQXVkaW9TZXNzaW9u
Q2F0ZWdvcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9TZXNzaW9u
Q2F0ZWdvcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE3OEVFRkEyNDBGRUVF
ODAwMTkzQzc0IC8qIFJvdXRlU2hhcmluZ1BvbGljeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBSb3V0ZVNoYXJpbmdQb2xpY3kuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDE3REE0Q0UxMzczNDMyNjAwN0M1N0ZCIC8qIEludGVybmFscy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBJbnRlcm5hbHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDE3REE0Q0YxMzczNDMyNjAwN0M1N0ZCIC8qIEludGVybmFscy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnRlcm5hbHMuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0MTdEQTZEMDEzNzM0RTAyMDA3QzU3RkIgLyogbGliV2ViQ29y
ZVRlc3RTdXBwb3J0LmR5bGliICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0
RmlsZVR5cGUgPSAiY29tcGlsZWQubWFjaC1vLmR5bGliIjsgaW5jbHVkZUluSW5kZXggPSAwOyBw
YXRoID0gbGliV2ViQ29yZVRlc3RTdXBwb3J0LmR5bGliOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJP
RFVDVFNfRElSOyB9OwpAQCAtMjg3MzUsNiArMjg3MzksNyBAQAogCQkJCUZEMzE2MDUyMTJCMDI2
RjcwMEMxQTM1OSAvKiBBdWRpb1Jlc2FtcGxlcktlcm5lbC5oICovLAogCQkJCUNEQTc5ODIzMTcw
QTI1ODMwMEQ0NUM1NSAvKiBBdWRpb1Nlc3Npb24uY3BwICovLAogCQkJCUNEQTc5ODIxMTcwQTIy
REMwMEQ0NUM1NSAvKiBBdWRpb1Nlc3Npb24uaCAqLywKKwkJCQk0MTc4RUVGODI0MEZFQThEMDAx
OTNDNzQgLyogQXVkaW9TZXNzaW9uQ2F0ZWdvcnkuaCAqLywKIAkJCQlGRDMxNjA1MzEyQjAyNkY3
MDBDMUEzNTkgLyogQXVkaW9Tb3VyY2VQcm92aWRlci5oICovLAogCQkJCUZENjJGNTJEMTQ1ODk4
RDgwMDk0QjBFRCAvKiBBdWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50LmggKi8sCiAJCQkJMDczQjg3
NTYxRTQwRENFNTAwNzFDMEVDIC8qIEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaCAqLywKQEAgLTI4
NzkwLDYgKzI4Nzk1LDcgQEAKIAkJCQlGRDMxNjA3NTEyQjAyNkY3MDBDMUEzNTkgLyogUmV2ZXJi
Q29udm9sdmVyU3RhZ2UuaCAqLywKIAkJCQlGRDMxNjA3NjEyQjAyNkY3MDBDMUEzNTkgLyogUmV2
ZXJiSW5wdXRCdWZmZXIuY3BwICovLAogCQkJCUZEMzE2MDc3MTJCMDI2RjcwMEMxQTM1OSAvKiBS
ZXZlcmJJbnB1dEJ1ZmZlci5oICovLAorCQkJCTQxNzhFRUZBMjQwRkVFRTgwMDE5M0M3NCAvKiBS
b3V0ZVNoYXJpbmdQb2xpY3kuaCAqLywKIAkJCQlGRDAwRDdBMjE0QTNGNjE5MDA3MzQwMTEgLyog
U2luY1Jlc2FtcGxlci5jcHAgKi8sCiAJCQkJRkQwMEQ3QTMxNEEzRjYxOTAwNzM0MDExIC8qIFNp
bmNSZXNhbXBsZXIuaCAqLywKIAkJCQlGRDE3NjJERDE3NjY4NkQ5MDBEODM2QTggLyogVXBTYW1w
bGVyLmNwcCAqLywKQEAgLTI5MTE1LDYgKzI5MTIxLDcgQEAKIAkJCQkwNzNCODc2OTFFNDM4NUFD
MDA3MUMwRUMgLyogQXVkaW9TYW1wbGVEYXRhU291cmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlG
RDhDNDZFQzE1NDYwOEU3MDBBNTkxMEMgLyogQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlLmggaW4g
SGVhZGVycyAqLywKIAkJCQlDREE3OTgyQTE3MEEzRDAwMDBENDVDNTUgLyogQXVkaW9TZXNzaW9u
LmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTc4RUVGQzI0MTAwMUZEMDAxOTNDNzQgLyogQXVkaW9T
ZXNzaW9uQ2F0ZWdvcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2MDg5MTJCMDI2RjcwMEMx
QTM1OSAvKiBBdWRpb1NvdXJjZVByb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDhBN0JC
QzE5NzczNUZFMDBDQkQ2NDMgLyogQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUZENjJGNTJFMTQ1ODk4RDgwMDk0QjBFRCAvKiBBdWRpb1NvdXJjZVByb3Zp
ZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTMyMTY2LDYgKzMyMTczLDcgQEAKIAkJCQlB
OENGRjVFMTBBMTU1QTA1MDAwQTQyMzQgLyogUm9vdElubGluZUJveC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNDlFOTExQzkwRUY4NkQ0NzAwOUQwQ0FGIC8qIFJvdGF0ZVRyYW5zZm9ybU9wZXJhdGlv
bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTczRjk1RkYxMkM5N0JGRTAwMzFBQUY5IC8qIFJvdW5k
ZWRSZWN0LmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTc4RUVGRTI0MTAwMjA5MDAxOTNDNzQgLyog
Um91dGVTaGFyaW5nUG9saWN5LmggaW4gSGVhZGVycyAqLywKIAkJCQk1N0UyMzM2MzFEQzdEQTI0
MDBGMjhEMDEgLyogUnNhT3RoZXJQcmltZXNJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQkwN0FC
OTk2OTE4REEzQzAxMDAxODc3MUUgLyogUlRDQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNDE4MjA1NDcxRTUzRTk4QzAwRDYyMjA3IC8qIFJUQ0NvbnRyb2xsZXIuaCBpbiBIZWFk
ZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EZXByZWNhdGVkR2xvYmFs
U2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EZXByZWNhdGVkR2xvYmFsU2V0dGlu
Z3MuY3BwCmluZGV4IGNmNGNjYzgwZTkzOTM2ZDU2OGNkNTUwZTAyOGI2ODE1MmViOTRkMmQuLjY4
NzllMmQwMjA5MjZlNGQwZWQ3MTcxMzYwZmExYzc0NDM3MGE0MWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RlcHJlY2F0ZWRHbG9iYWxTZXR0aW5ncy5jcHAKQEAgLTE2MiwxMiArMTYy
LDEyIEBAIHZvaWQgRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzOjpzZXRSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRW5hYmxlZChib29sIGZsYWcpCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKIHZvaWQg
RGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzOjpzZXRBdWRpb1Nlc3Npb25DYXRlZ29yeU92ZXJyaWRl
KHVuc2lnbmVkIHNlc3Npb25DYXRlZ29yeSkKIHsKLSAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNl
c3Npb24oKS5zZXRDYXRlZ29yeU92ZXJyaWRlKHN0YXRpY19jYXN0PEF1ZGlvU2Vzc2lvbjo6Q2F0
ZWdvcnlUeXBlPihzZXNzaW9uQ2F0ZWdvcnkpKTsKKyAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNl
c3Npb24oKS5zZXRDYXRlZ29yeU92ZXJyaWRlKHN0YXRpY19jYXN0PEF1ZGlvU2Vzc2lvbkNhdGVn
b3J5PihzZXNzaW9uQ2F0ZWdvcnkpKTsKIH0KIAogdW5zaWduZWQgRGVwcmVjYXRlZEdsb2JhbFNl
dHRpbmdzOjphdWRpb1Nlc3Npb25DYXRlZ29yeU92ZXJyaWRlKCkKIHsKLSAgICByZXR1cm4gQXVk
aW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuY2F0ZWdvcnlPdmVycmlkZSgpOworICAgIHJldHVy
biBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuY2F0
ZWdvcnlPdmVycmlkZSgpKTsKIH0KIAogdm9pZCBEZXByZWNhdGVkR2xvYmFsU2V0dGluZ3M6OnNl
dE5ldHdvcmtEYXRhVXNhZ2VUcmFja2luZ0VuYWJsZWQoYm9vbCB0cmFja2luZ0VuYWJsZWQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZWRpYVN0cmF0ZWd5LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9NZWRpYVN0cmF0ZWd5LmgKaW5kZXggNjBhNTg0N2M4Y2VjMTBi
NzliNzQ5YTZmYWY4NTAzZDE2YTE5OWI5NS4uNjJkODg0MDIxZDMyNTViYmNiNmY5NGVkZWE4Mzg5
MDhjNmE1MWY4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVkaWFTdHJh
dGVneS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lZGlhU3RyYXRlZ3kuaApAQCAt
MjUsNiArMjUsOCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkF1ZGlvU2Vzc2lvbkNh
dGVnb3J5LmgiCisjaW5jbHVkZSAiUm91dGVTaGFyaW5nUG9saWN5LmgiCiAjaW5jbHVkZSA8d3Rm
L0ZvcndhcmQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzUsNiArMzcsMTAgQEAgY2xh
c3MgQ0RNRmFjdG9yeTsKIAogY2xhc3MgV0VCQ09SRV9FWFBPUlQgTWVkaWFTdHJhdGVneSB7CiBw
dWJsaWM6CisjaWYgVVNFKEFVRElPX1NFU1NJT04pCisgICAgdmlydHVhbCBib29sIHRyeVRvU2V0
QXVkaW9TZXNzaW9uQXNBY3RpdmUoYm9vbCBpc0FjdGl2ZSkgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCB1cGRhdGVBdWRpb1Nlc3Npb25QYXJhbWV0ZXJzKHNpemVfdCBidWZmZXJTaXplLCBPcHRpb25h
bDxBdWRpb1Nlc3Npb25DYXRlZ29yeT4sIE9wdGlvbmFsPFJvdXRlU2hhcmluZ1BvbGljeT4pID0g
MDsKKyNlbmRpZgogI2lmIEVOQUJMRShXRUJfQVVESU8pCiAgICAgdmlydHVhbCBzdGQ6OnVuaXF1
ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlQXVkaW9EZXN0aW5hdGlvbigKICAgICAgICAg
QXVkaW9JT0NhbGxiYWNrJiwgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLCB1bnNpZ25lZCBu
dW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZs
b2F0IHNhbXBsZVJhdGUpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL0F1ZGlvU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9B
dWRpb1Nlc3Npb24uY3BwCmluZGV4IGI1ZmI1ODA2NDhmOWNmOGVjNGYxODZmYWZhNDhlMTNmZGNm
MmY1N2QuLjBmMjU4NmJjMjA4ZWQyNGJkYTY2ZTNhY2JkMjNjMjFkOTQ3OTYyZGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmNwcApAQCAtNjEsMjYg
KzYxLDI2IEBAIEF1ZGlvU2Vzc2lvbjo6QXVkaW9TZXNzaW9uKCkKIAogQXVkaW9TZXNzaW9uOjp+
QXVkaW9TZXNzaW9uKCkgPSBkZWZhdWx0OwogCi12b2lkIEF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdv
cnkoQ2F0ZWdvcnlUeXBlLCBSb3V0ZVNoYXJpbmdQb2xpY3kpCit2b2lkIEF1ZGlvU2Vzc2lvbjo6
c2V0Q2F0ZWdvcnkoQXVkaW9TZXNzaW9uQ2F0ZWdvcnksIFJvdXRlU2hhcmluZ1BvbGljeSkKIHsK
ICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi1BdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBB
dWRpb1Nlc3Npb246OmNhdGVnb3J5T3ZlcnJpZGUoKSBjb25zdAorQXVkaW9TZXNzaW9uQ2F0ZWdv
cnkgQXVkaW9TZXNzaW9uOjpjYXRlZ29yeU92ZXJyaWRlKCkgY29uc3QKIHsKICAgICBub3RJbXBs
ZW1lbnRlZCgpOwotICAgIHJldHVybiBOb25lOworICAgIHJldHVybiBBdWRpb1Nlc3Npb25DYXRl
Z29yeTo6Tm9uZTsKIH0KIAotdm9pZCBBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5T3ZlcnJpZGUo
Q2F0ZWdvcnlUeXBlKQordm9pZCBBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5T3ZlcnJpZGUoQXVk
aW9TZXNzaW9uQ2F0ZWdvcnkpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotQXVkaW9T
ZXNzaW9uOjpDYXRlZ29yeVR5cGUgQXVkaW9TZXNzaW9uOjpjYXRlZ29yeSgpIGNvbnN0CitBdWRp
b1Nlc3Npb25DYXRlZ29yeSBBdWRpb1Nlc3Npb246OmNhdGVnb3J5KCkgY29uc3QKIHsKICAgICBu
b3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBOb25lOworICAgIHJldHVybiBBdWRpb1Nlc3Np
b25DYXRlZ29yeTo6Tm9uZTsKIH0KIAogZmxvYXQgQXVkaW9TZXNzaW9uOjpzYW1wbGVSYXRlKCkg
Y29uc3QKQEAgLTE0Niw3ICsxNDYsNyBAQCBTdHJpbmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJp
bmcoUm91dGVTaGFyaW5nUG9saWN5IGVudW1lcmF0aW9uVmFsdWUpCiAgICAgcmV0dXJuIHZhbHVl
c1tzdGF0aWNfY2FzdDxzaXplX3Q+KGVudW1lcmF0aW9uVmFsdWUpXTsKIH0KIAotU3RyaW5nIGNv
bnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIGVudW1l
cmF0aW9uVmFsdWUpCitTdHJpbmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoQXVkaW9TZXNz
aW9uQ2F0ZWdvcnkgZW51bWVyYXRpb25WYWx1ZSkKIHsKICAgICBzdGF0aWMgY29uc3QgTmV2ZXJE
ZXN0cm95ZWQ8U3RyaW5nPiB2YWx1ZXNbXSA9IHsKICAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5H
X0lNUEwoIk5vbmUiKSwKQEAgLTE1NywxMyArMTU3LDEzIEBAIFN0cmluZyBjb252ZXJ0RW51bWVy
YXRpb25Ub1N0cmluZyhBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBlbnVtZXJhdGlvblZhbHVl
KQogICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiUGxheUFuZFJlY29yZCIpLAogICAg
ICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiQXVkaW9Qcm9jZXNzaW5nIiksCiAgICAgfTsK
LSAgICBzdGF0aWNfYXNzZXJ0KCFzdGF0aWNfY2FzdDxzaXplX3Q+KEF1ZGlvU2Vzc2lvbjo6Q2F0
ZWdvcnlUeXBlOjpOb25lKSwgIkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpOb25lIGlzIG5v
dCAwIGFzIGV4cGVjdGVkIik7Ci0gICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+
KEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpBbWJpZW50U291bmQpID09IDEsICJBdWRpb1Nl
c3Npb246OkNhdGVnb3J5VHlwZTo6QW1iaWVudFNvdW5kIGlzIG5vdCAxIGFzIGV4cGVjdGVkIik7
Ci0gICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KEF1ZGlvU2Vzc2lvbjo6Q2F0
ZWdvcnlUeXBlOjpTb2xvQW1iaWVudFNvdW5kKSA9PSAyLCAiQXVkaW9TZXNzaW9uOjpDYXRlZ29y
eVR5cGU6OlNvbG9BbWJpZW50U291bmQgaXMgbm90IDIgYXMgZXhwZWN0ZWQiKTsKLSAgICBzdGF0
aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6
Ok1lZGlhUGxheWJhY2spID09IDMsICJBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6TWVkaWFQ
bGF5YmFjayBpcyBub3QgMyBhcyBleHBlY3RlZCIpOwotICAgIHN0YXRpY19hc3NlcnQoc3RhdGlj
X2Nhc3Q8c2l6ZV90PihBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6UmVjb3JkQXVkaW8pID09
IDQsICJBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6UmVjb3JkQXVkaW8gaXMgbm90IDQgYXMg
ZXhwZWN0ZWQiKTsKLSAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oQXVkaW9T
ZXNzaW9uOjpDYXRlZ29yeVR5cGU6OlBsYXlBbmRSZWNvcmQpID09IDUsICJBdWRpb1Nlc3Npb246
OkNhdGVnb3J5VHlwZTo6UGxheUFuZFJlY29yZCBpcyBub3QgNSBhcyBleHBlY3RlZCIpOwotICAg
IHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihBdWRpb1Nlc3Npb246OkNhdGVnb3J5
VHlwZTo6QXVkaW9Qcm9jZXNzaW5nKSA9PSA2LCAiQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6
OkF1ZGlvUHJvY2Vzc2luZyBpcyBub3QgNiBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3Nl
cnQoIXN0YXRpY19jYXN0PHNpemVfdD4oQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6Ok5vbmUpLCAiQXVk
aW9TZXNzaW9uQ2F0ZWdvcnk6Ok5vbmUgaXMgbm90IDAgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0
aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6OkFtYmll
bnRTb3VuZCkgPT0gMSwgIkF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpBbWJpZW50U291bmQgaXMgbm90
IDEgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4o
QXVkaW9TZXNzaW9uQ2F0ZWdvcnk6OlNvbG9BbWJpZW50U291bmQpID09IDIsICJBdWRpb1Nlc3Np
b25DYXRlZ29yeTo6U29sb0FtYmllbnRTb3VuZCBpcyBub3QgMiBhcyBleHBlY3RlZCIpOworICAg
IHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihBdWRpb1Nlc3Npb25DYXRlZ29yeTo6
TWVkaWFQbGF5YmFjaykgPT0gMywgIkF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpNZWRpYVBsYXliYWNr
IGlzIG5vdCAzIGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxz
aXplX3Q+KEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpSZWNvcmRBdWRpbykgPT0gNCwgIkF1ZGlvU2Vz
c2lvbkNhdGVnb3J5OjpSZWNvcmRBdWRpbyBpcyBub3QgNCBhcyBleHBlY3RlZCIpOworICAgIHN0
YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihBdWRpb1Nlc3Npb25DYXRlZ29yeTo6UGxh
eUFuZFJlY29yZCkgPT0gNSwgIkF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpQbGF5QW5kUmVjb3JkIGlz
IG5vdCA1IGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXpl
X3Q+KEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpBdWRpb1Byb2Nlc3NpbmcpID09IDYsICJBdWRpb1Nl
c3Npb25DYXRlZ29yeTo6QXVkaW9Qcm9jZXNzaW5nIGlzIG5vdCA2IGFzIGV4cGVjdGVkIik7CiAg
ICAgQVNTRVJUKHN0YXRpY19jYXN0PHNpemVfdD4oZW51bWVyYXRpb25WYWx1ZSkgPCBXVEZfQVJS
QVlfTEVOR1RIKHZhbHVlcykpOwogICAgIHJldHVybiB2YWx1ZXNbc3RhdGljX2Nhc3Q8c2l6ZV90
PihlbnVtZXJhdGlvblZhbHVlKV07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L0F1ZGlvU2Vzc2lvbi5oCmluZGV4IGU3MDA4MjJmZjFmZWViZDc4MjlhZWM3NTBjY2U0MGE2MGI5
MjU2NmEuLjk5OTIwZjAyYTU5ZDE4MGM5YmZjYTc3NGRkNTYyNTY0OWI1OGExZGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5oCkBAIC0yNyw2ICsyNyw4
IEBACiAKICNpZiBVU0UoQVVESU9fU0VTU0lPTikKIAorI2luY2x1ZGUgIkF1ZGlvU2Vzc2lvbkNh
dGVnb3J5LmgiCisjaW5jbHVkZSAiUm91dGVTaGFyaW5nUG9saWN5LmgiCiAjaW5jbHVkZSA8bWVt
b3J5PgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJv
eWVkLmg+CkBAIC0zNywzMyArMzksMTcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBB
dWRpb1Nlc3Npb25Qcml2YXRlOwogCi1lbnVtIGNsYXNzIFJvdXRlU2hhcmluZ1BvbGljeSA6IHVp
bnQ4X3QgewotICAgIERlZmF1bHQsCi0gICAgTG9uZ0Zvcm1BdWRpbywKLSAgICBJbmRlcGVuZGVu
dCwKLSAgICBMb25nRm9ybVZpZGVvCi19OwotCiBjbGFzcyBBdWRpb1Nlc3Npb24gZmluYWwgewog
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEF1
ZGlvU2Vzc2lvbik7CiBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIEF1ZGlvU2Vz
c2lvbiYgc2hhcmVkU2Vzc2lvbigpOwogCi0gICAgZW51bSBDYXRlZ29yeVR5cGUgewotICAgICAg
ICBOb25lLAotICAgICAgICBBbWJpZW50U291bmQsCi0gICAgICAgIFNvbG9BbWJpZW50U291bmQs
Ci0gICAgICAgIE1lZGlhUGxheWJhY2ssCi0gICAgICAgIFJlY29yZEF1ZGlvLAotICAgICAgICBQ
bGF5QW5kUmVjb3JkLAotICAgICAgICBBdWRpb1Byb2Nlc3NpbmcsCi0gICAgfTsKLSAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHNldENhdGVnb3J5KENhdGVnb3J5VHlwZSwgUm91dGVTaGFyaW5nUG9s
aWN5KTsKLSAgICBXRUJDT1JFX0VYUE9SVCBDYXRlZ29yeVR5cGUgY2F0ZWdvcnkoKSBjb25zdDsK
KyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldENhdGVnb3J5KEF1ZGlvU2Vzc2lvbkNhdGVnb3J5
LCBSb3V0ZVNoYXJpbmdQb2xpY3kpOworICAgIFdFQkNPUkVfRVhQT1JUIEF1ZGlvU2Vzc2lvbkNh
dGVnb3J5IGNhdGVnb3J5KCkgY29uc3Q7CiAKLSAgICB2b2lkIHNldENhdGVnb3J5T3ZlcnJpZGUo
Q2F0ZWdvcnlUeXBlKTsKLSAgICBDYXRlZ29yeVR5cGUgY2F0ZWdvcnlPdmVycmlkZSgpIGNvbnN0
OworICAgIHZvaWQgc2V0Q2F0ZWdvcnlPdmVycmlkZShBdWRpb1Nlc3Npb25DYXRlZ29yeSk7Cisg
ICAgQXVkaW9TZXNzaW9uQ2F0ZWdvcnkgY2F0ZWdvcnlPdmVycmlkZSgpIGNvbnN0OwogCiAgICAg
Um91dGVTaGFyaW5nUG9saWN5IHJvdXRlU2hhcmluZ1BvbGljeSgpIGNvbnN0OwogICAgIFN0cmlu
ZyByb3V0aW5nQ29udGV4dFVJRCgpIGNvbnN0OwpAQCAtNzIsMTAgKzU4LDEwIEBAIHB1YmxpYzoK
ICAgICBzaXplX3QgYnVmZmVyU2l6ZSgpIGNvbnN0OwogICAgIHNpemVfdCBudW1iZXJPZk91dHB1
dENoYW5uZWxzKCkgY29uc3Q7CiAKLSAgICBib29sIHRyeVRvU2V0QWN0aXZlKGJvb2wpOworICAg
IFdFQkNPUkVfRVhQT1JUIGJvb2wgdHJ5VG9TZXRBY3RpdmUoYm9vbCk7CiAKICAgICBXRUJDT1JF
X0VYUE9SVCBzaXplX3QgcHJlZmVycmVkQnVmZmVyU2l6ZSgpIGNvbnN0OwotICAgIHZvaWQgc2V0
UHJlZmVycmVkQnVmZmVyU2l6ZShzaXplX3QpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0
UHJlZmVycmVkQnVmZmVyU2l6ZShzaXplX3QpOwogCiAgICAgY2xhc3MgTXV0ZWRTdGF0ZU9ic2Vy
dmVyIHsKICAgICBwdWJsaWM6CkBAIC0xMDQsNDEgKzkwLDYgQEAgcHJpdmF0ZToKICAgICBib29s
IG1fYWN0aXZlIHsgZmFsc2UgfTsgLy8gVXNlZCBvbmx5IGZvciB0ZXN0aW5nLgogfTsKIAotU3Ry
aW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKFJvdXRlU2hhcmluZ1BvbGljeSk7Ci1TdHJp
bmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUp
OwotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLW5hbWVzcGFjZSBXVEYgewotdGVtcGxhdGU8
PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3k+IHsKLSAgICB1
c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAotICAgIFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGlj
eSwKLSAgICBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3k6OkRlZmF1bHQsCi0gICAgV2ViQ29y
ZTo6Um91dGVTaGFyaW5nUG9saWN5OjpMb25nRm9ybUF1ZGlvLAotICAgIFdlYkNvcmU6OlJvdXRl
U2hhcmluZ1BvbGljeTo6SW5kZXBlbmRlbnQsCi0gICAgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9s
aWN5OjpMb25nRm9ybVZpZGVvCi0gICAgPjsKLX07Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFR5cGU+
Ci1zdHJ1Y3QgTG9nQXJndW1lbnQ7Ci0KLXRlbXBsYXRlIDw+Ci1zdHJ1Y3QgTG9nQXJndW1lbnQ8
V2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5PiB7Ci0gICAgc3RhdGljIFN0cmluZyB0b1N0cmlu
Zyhjb25zdCBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3kgcG9saWN5KQotICAgIHsKLSAgICAg
ICAgcmV0dXJuIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKHBvbGljeSk7Ci0gICAgfQotfTsK
LQotdGVtcGxhdGUgPD4KLXN0cnVjdCBMb2dBcmd1bWVudDxXZWJDb3JlOjpBdWRpb1Nlc3Npb246
OkNhdGVnb3J5VHlwZT4gewotICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29uc3QgV2ViQ29y
ZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUgY2F0ZWdvcnkpCi0gICAgewotICAgICAgICBy
ZXR1cm4gY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoY2F0ZWdvcnkpOwotICAgIH0KLX07Ci0K
LX0gLy8gbmFtZXNwYWNlIFdURgotCiAjZW5kaWYgLy8gVVNFKEFVRElPX1NFU1NJT04pCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb25DYXRlZ29y
eS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uQ2F0ZWdvcnku
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4wNjEyMWI2NDg2YmUwNmI3MzAxNTdmNDViN2IwZDI5MmVkY2Q0YmYzCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNz
aW9uQ2F0ZWdvcnkuaApAQCAtMCwwICsxLDc3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpZiBVU0UoQVVESU9fU0VTU0lPTikKKworI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+
CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworZW51bSBjbGFzcyBBdWRpb1Nlc3Npb25DYXRlZ29yeSA6IHVpbnQ4X3QgeworICAgIE5vbmUs
CisgICAgQW1iaWVudFNvdW5kLAorICAgIFNvbG9BbWJpZW50U291bmQsCisgICAgTWVkaWFQbGF5
YmFjaywKKyAgICBSZWNvcmRBdWRpbywKKyAgICBQbGF5QW5kUmVjb3JkLAorICAgIEF1ZGlvUHJv
Y2Vzc2luZworfTsKKworU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKEF1ZGlvU2Vz
c2lvbkNhdGVnb3J5KTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCituYW1lc3BhY2UgV1RG
IHsKKwordGVtcGxhdGU8dHlwZW5hbWUgVHlwZT4KK3N0cnVjdCBMb2dBcmd1bWVudDsKKwordGVt
cGxhdGUgPD4KK3N0cnVjdCBMb2dBcmd1bWVudDxXZWJDb3JlOjpBdWRpb1Nlc3Npb25DYXRlZ29y
eT4geworICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29uc3QgV2ViQ29yZTo6QXVkaW9TZXNz
aW9uQ2F0ZWdvcnkgY2F0ZWdvcnkpCisgICAgeworICAgICAgICByZXR1cm4gY29udmVydEVudW1l
cmF0aW9uVG9TdHJpbmcoY2F0ZWdvcnkpOworICAgIH0KK307CisKK3RlbXBsYXRlPD4gc3RydWN0
IEVudW1UcmFpdHM8V2ViQ29yZTo6QXVkaW9TZXNzaW9uQ2F0ZWdvcnk+IHsKKyAgICB1c2luZyB2
YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb25DYXRlZ29y
eSwKKyAgICAgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uQ2F0ZWdvcnk6Ok5vbmUsCisgICAgICAg
IFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpBbWJpZW50U291bmQsCisgICAgICAgIFdl
YkNvcmU6OkF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpTb2xvQW1iaWVudFNvdW5kLAorICAgICAgICBX
ZWJDb3JlOjpBdWRpb1Nlc3Npb25DYXRlZ29yeTo6TWVkaWFQbGF5YmFjaywKKyAgICAgICAgV2Vi
Q29yZTo6QXVkaW9TZXNzaW9uQ2F0ZWdvcnk6OlJlY29yZEF1ZGlvLAorICAgICAgICBXZWJDb3Jl
OjpBdWRpb1Nlc3Npb25DYXRlZ29yeTo6UGxheUFuZFJlY29yZCwKKyAgICAgICAgV2ViQ29yZTo6
QXVkaW9TZXNzaW9uQ2F0ZWdvcnk6OkF1ZGlvUHJvY2Vzc2luZworICAgID47Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXVEYKKworI2VuZGlmIC8vIFVTRShBVURJT19TRVNTSU9OKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5h
Z2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNz
aW9uTWFuYWdlci5jcHAKaW5kZXggNWY0MDQ1N2M3NWY3MWJhYjJjNzNlNjEyOWMxMGFmZWZlMGM1
NTc2NS4uMTU1ZTVlMWUzMDA0OGEzZjg5ZjJhZDgwYThjMmRjMjUxOTVlNzQ0NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5h
Z2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlh
U2Vzc2lvbk1hbmFnZXIuY3BwCkBAIC0yOSw3ICsyOSw5IEBACiAjaW5jbHVkZSAiQXVkaW9TZXNz
aW9uLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5j
bHVkZSAiTWVkaWFTdHJhdGVneS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTWVkaWFTZXNzaW9uLmgi
CisjaW5jbHVkZSAiUGxhdGZvcm1TdHJhdGVnaWVzLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IApAQCAtMjIwLDcgKzIyMiw3IEBAIGJvb2wgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpz
ZXNzaW9uV2lsbEJlZ2luUGxheWJhY2soUGxhdGZvcm1NZWRpYVNlc3Npb24mCiAKICNpZiBVU0Uo
QVVESU9fU0VTU0lPTikKICAgICBpZiAoYWN0aXZlQXVkaW9TZXNzaW9uUmVxdWlyZWQoKSkgewot
ICAgICAgICBpZiAoIUF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnRyeVRvU2V0QWN0aXZl
KHRydWUpKSB7CisgICAgICAgIGlmICghcGxhdGZvcm1TdHJhdGVnaWVzKCktPm1lZGlhU3RyYXRl
Z3koKS50cnlUb1NldEF1ZGlvU2Vzc2lvbkFzQWN0aXZlKHRydWUpKSB7CiAgICAgICAgICAgICBB
TFdBWVNfTE9HKExPR0lERU5USUZJRVIsIHNlc3Npb24ubG9nSWRlbnRpZmllcigpLCAiIHJldHVy
bmluZyBmYWxzZSBmYWlsZWQgdG8gc2V0IGFjdGl2ZSBBdWRpb1Nlc3Npb24iKTsKICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQpAQCAtMzkzLDcgKzM5NSw3IEBAIHZvaWQgUGxh
dGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpwcm9jZXNzRGlkUmVzdW1lKCkKIAogI2lmIFVTRShB
VURJT19TRVNTSU9OKQogICAgIGlmICghbV9iZWNhbWVBY3RpdmUgJiYgYWN0aXZlQXVkaW9TZXNz
aW9uUmVxdWlyZWQoKSkgewotICAgICAgICBtX2JlY2FtZUFjdGl2ZSA9IEF1ZGlvU2Vzc2lvbjo6
c2hhcmVkU2Vzc2lvbigpLnRyeVRvU2V0QWN0aXZlKHRydWUpOworICAgICAgICBtX2JlY2FtZUFj
dGl2ZSA9IHBsYXRmb3JtU3RyYXRlZ2llcygpLT5tZWRpYVN0cmF0ZWd5KCkudHJ5VG9TZXRBdWRp
b1Nlc3Npb25Bc0FjdGl2ZSh0cnVlKTsKICAgICAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVS
LCAidHJpZWQgdG8gc2V0IGFjdGl2ZSBBdWRpb1Nlc3Npb24sICIsIG1fYmVjYW1lQWN0aXZlID8g
InN1Y2NlZWRlZCIgOiAiZmFpbGVkIik7CiAgICAgfQogI2VuZGlmCkBAIC01NjcsNyArNTY5LDcg
QEAgdm9pZCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6Om1heWJlRGVhY3RpdmF0ZUF1ZGlv
U2Vzc2lvbigpCiAgICAgICAgIHJldHVybjsKIAogICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklF
UiwgInRyaWVkIHRvIHNldCBpbmFjdGl2ZSBBdWRpb1Nlc3Npb24iKTsKLSAgICBBdWRpb1Nlc3Np
b246OnNoYXJlZFNlc3Npb24oKS50cnlUb1NldEFjdGl2ZShmYWxzZSk7CisgICAgcGxhdGZvcm1T
dHJhdGVnaWVzKCktPm1lZGlhU3RyYXRlZ3koKS50cnlUb1NldEF1ZGlvU2Vzc2lvbkFzQWN0aXZl
KGZhbHNlKTsKICAgICBtX2JlY2FtZUFjdGl2ZSA9IGZhbHNlOwogfQogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9Sb3V0ZVNoYXJpbmdQb2xpY3kuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1JvdXRlU2hhcmluZ1BvbGljeS5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmMxNTFhOGNhZmE5ZWU1MmI3ZmU2Nzk2ZTQxNzBmNzkwNmYwYzIxYjkKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9Sb3V0ZVNoYXJpbmdQb2xp
Y3kuaApAQCAtMCwwICsxLDcwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworI2lmIFVTRShBVURJT19TRVNTSU9OKQorCisjaW5jbHVkZSA8d3Rm
L0VudW1UcmFpdHMuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworZW51bSBj
bGFzcyBSb3V0ZVNoYXJpbmdQb2xpY3kgOiB1aW50OF90IHsKKyAgICBEZWZhdWx0LAorICAgIExv
bmdGb3JtQXVkaW8sCisgICAgSW5kZXBlbmRlbnQsCisgICAgTG9uZ0Zvcm1WaWRlbworfTsKKwor
U3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKFJvdXRlU2hhcmluZ1BvbGljeSk7CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworbmFtZXNwYWNlIFdURiB7Cit0ZW1wbGF0ZTw+IHN0
cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeT4geworICAgIHVzaW5n
IHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5LAor
ICAgIFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeTo6RGVmYXVsdCwKKyAgICBXZWJDb3JlOjpS
b3V0ZVNoYXJpbmdQb2xpY3k6OkxvbmdGb3JtQXVkaW8sCisgICAgV2ViQ29yZTo6Um91dGVTaGFy
aW5nUG9saWN5OjpJbmRlcGVuZGVudCwKKyAgICBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3k6
OkxvbmdGb3JtVmlkZW8KKyAgICA+OworfTsKKwordGVtcGxhdGU8dHlwZW5hbWUgVHlwZT4KK3N0
cnVjdCBMb2dBcmd1bWVudDsKKwordGVtcGxhdGUgPD4KK3N0cnVjdCBMb2dBcmd1bWVudDxXZWJD
b3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3k+IHsKKyAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNv
bnN0IFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeSBwb2xpY3kpCisgICAgeworICAgICAgICBy
ZXR1cm4gY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcocG9saWN5KTsKKyAgICB9Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXVEYKKworI2VuZGlmIC8vIFVTRShBVURJT19TRVNTSU9OKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvTWVkaWFTZXNzaW9uTWFu
YWdlckNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvTWVkaWFT
ZXNzaW9uTWFuYWdlckNvY29hLm1tCmluZGV4IGViMTlhOWJmOWMwMzM4YWFhYjNlNzhmYjM2OGIw
NzcyNjVlMWQxZDguLjg2MWE3OGUwYTAxMWVhZjNjZGI4M2QyZjNmY2QzNjQ0NWUwZTZhMjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL01lZGlhU2Vzc2lv
bk1hbmFnZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2Nv
YS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EubW0KQEAgLTMzLDcgKzMzLDkgQEAKICNpbmNsdWRl
ICJIVE1MTWVkaWFFbGVtZW50LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1l
ZGlhUGxheWVyLmgiCisjaW5jbHVkZSAiTWVkaWFTdHJhdGVneS5oIgogI2luY2x1ZGUgIlBsYXRm
b3JtTWVkaWFTZXNzaW9uLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJhdGVnaWVzLmgiCiAjaW5j
bHVkZSA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24u
aD4KIApAQCAtNzAsMjcgKzcyLDI3IEBAIHZvaWQgTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hOjp1
cGRhdGVTZXNzaW9uU3RhdGUoKQogICAgICAgICAiVmlkZW9BdWRpbygiLCB2aWRlb0F1ZGlvQ291
bnQsICIpLCAiCiAgICAgICAgICJXZWJBdWRpbygiLCB3ZWJBdWRpb0NvdW50LCAiKSIpOwogCisg
ICAgc2l6ZV90IGJ1ZmZlclNpemUgPSAwOwogICAgIGlmICh3ZWJBdWRpb0NvdW50KQotICAgICAg
ICBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zZXRQcmVmZXJyZWRCdWZmZXJTaXplKGtX
ZWJBdWRpb0J1ZmZlclNpemUpOworICAgICAgICBidWZmZXJTaXplID0ga1dlYkF1ZGlvQnVmZmVy
U2l6ZTsKICAgICAvLyBJbiBjYXNlIG9mIGF1ZGlvIGNhcHR1cmUsIHdlIHdhbnQgdG8gZ3JhYiAy
MCBtcyBjaHVua3MgdG8gbGltaXQgdGhlIGxhdGVuY3kgc28gdGhhdCBpdCBpcyBub3Qgbm90aWNl
YWJsZSBieSB1c2VycwogICAgIC8vIHdoaWxlIGhhdmluZyBhIGxhcmdlIGVub3VnaCBidWZmZXIg
c28gdGhhdCB0aGUgYXVkaW8gcmVuZGVyaW5nIHJlbWFpbnMgc3RhYmxlLCBoZW5jZSBhIGNvbXB1
dGF0aW9uIGJhc2VkIG9uIHNhbXBsZSByYXRlLgogICAgIGVsc2UgaWYgKGNhcHR1cmVDb3VudCkK
LSAgICAgICAgQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2V0UHJlZmVycmVkQnVmZmVy
U2l6ZShBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zYW1wbGVSYXRlKCkgLyA1MCk7Cisg
ICAgICAgIGJ1ZmZlclNpemUgPSBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zYW1wbGVS
YXRlKCkgLyA1MDsKICAgICBlbHNlIGlmICgodmlkZW9BdWRpb0NvdW50IHx8IGF1ZGlvQ291bnQp
ICYmIERlcHJlY2F0ZWRHbG9iYWxTZXR0aW5nczo6bG93UG93ZXJWaWRlb0F1ZGlvQnVmZmVyU2l6
ZUVuYWJsZWQoKSkgewogICAgICAgICAvLyBGSVhNRTogPGh0dHA6Ly93ZWJraXQub3JnL2IvMTE2
NzI1PiBGaWd1cmUgb3V0IHdoeSBlbmFibGluZyB0aGUgY29kZSBiZWxvdwogICAgICAgICAvLyBj
YXVzZXMgbWVkaWEgTGF5b3V0VGVzdHMgdG8gZmFpbCBvbiAxMC44LgogCi0gICAgICAgIHNpemVf
dCBidWZmZXJTaXplOwogICAgICAgICBpZiAobV9hdWRpb0hhcmR3YXJlTGlzdGVuZXIgJiYgbV9h
dWRpb0hhcmR3YXJlTGlzdGVuZXItPm91dHB1dERldmljZVN1cHBvcnRzTG93UG93ZXJNb2RlKCkp
CiAgICAgICAgICAgICBidWZmZXJTaXplID0ga0xvd1Bvd2VyVmlkZW9CdWZmZXJTaXplOwogICAg
ICAgICBlbHNlCiAgICAgICAgICAgICBidWZmZXJTaXplID0ga1dlYkF1ZGlvQnVmZmVyU2l6ZTsK
LQotICAgICAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zZXRQcmVmZXJyZWRCdWZm
ZXJTaXplKGJ1ZmZlclNpemUpOwogICAgIH0KIAotICAgIGlmICghRGVwcmVjYXRlZEdsb2JhbFNl
dHRpbmdzOjpzaG91bGRNYW5hZ2VBdWRpb1Nlc3Npb25DYXRlZ29yeSgpKQorICAgIGlmICghRGVw
cmVjYXRlZEdsb2JhbFNldHRpbmdzOjpzaG91bGRNYW5hZ2VBdWRpb1Nlc3Npb25DYXRlZ29yeSgp
KSB7CisgICAgICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5tZWRpYVN0cmF0ZWd5KCkudXBkYXRl
QXVkaW9TZXNzaW9uUGFyYW1ldGVycyhidWZmZXJTaXplLCB7IH0sIHsgfSk7CiAgICAgICAgIHJl
dHVybjsKKyAgICB9CiAKICAgICBib29sIGhhc0F1ZGlibGVBdWRpb09yVmlkZW9NZWRpYVR5cGUg
PSBmYWxzZTsKICAgICBmb3JFYWNoU2Vzc2lvbihbJmhhc0F1ZGlibGVBdWRpb09yVmlkZW9NZWRp
YVR5cGVdIChhdXRvJiBzZXNzaW9uKSBtdXRhYmxlIHsKQEAgLTEwMiwxNyArMTA0LDE3IEBAIHZv
aWQgTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hOjp1cGRhdGVTZXNzaW9uU3RhdGUoKQogICAgIH0p
OwogCiAgICAgUm91dGVTaGFyaW5nUG9saWN5IHBvbGljeSA9IFJvdXRlU2hhcmluZ1BvbGljeTo6
RGVmYXVsdDsKLSAgICBBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBjYXRlZ29yeSA9IEF1ZGlv
U2Vzc2lvbjo6Tm9uZTsKKyAgICBhdXRvIGNhdGVnb3J5ID0gQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6
Ok5vbmU7CiAgICAgaWYgKGNhcHR1cmVDb3VudCkKLSAgICAgICAgY2F0ZWdvcnkgPSBBdWRpb1Nl
c3Npb246OlBsYXlBbmRSZWNvcmQ7CisgICAgICAgIGNhdGVnb3J5ID0gQXVkaW9TZXNzaW9uQ2F0
ZWdvcnk6OlBsYXlBbmRSZWNvcmQ7CiAgICAgZWxzZSBpZiAoaGFzQXVkaWJsZUF1ZGlvT3JWaWRl
b01lZGlhVHlwZSkgewotICAgICAgICBjYXRlZ29yeSA9IEF1ZGlvU2Vzc2lvbjo6TWVkaWFQbGF5
YmFjazsKKyAgICAgICAgY2F0ZWdvcnkgPSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6TWVkaWFQbGF5
YmFjazsKICAgICAgICAgcG9saWN5ID0gUm91dGVTaGFyaW5nUG9saWN5OjpMb25nRm9ybUF1ZGlv
OwogICAgIH0gZWxzZSBpZiAod2ViQXVkaW9Db3VudCkKLSAgICAgICAgY2F0ZWdvcnkgPSBBdWRp
b1Nlc3Npb246OkFtYmllbnRTb3VuZDsKLQorICAgICAgICBjYXRlZ29yeSA9IEF1ZGlvU2Vzc2lv
bkNhdGVnb3J5OjpBbWJpZW50U291bmQ7CiAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCAi
c2V0dGluZyBjYXRlZ29yeSA9ICIsIGNhdGVnb3J5LCAiLCBwb2xpY3kgPSAiLCBwb2xpY3kpOwot
ICAgIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldENhdGVnb3J5KGNhdGVnb3J5LCBw
b2xpY3kpOworCisgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPm1lZGlhU3RyYXRlZ3koKS51cGRh
dGVBdWRpb1Nlc3Npb25QYXJhbWV0ZXJzKGJ1ZmZlclNpemUsIGNhdGVnb3J5LCBwb2xpY3kpOwog
fQogCiB2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYTo6YmVnaW5JbnRlcnJ1cHRpb24oUGxh
dGZvcm1NZWRpYVNlc3Npb246OkludGVycnVwdGlvblR5cGUgdHlwZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb1Nlc3Npb25JT1MubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9TZXNzaW9uSU9TLm1tCmluZGV4IGQ2
YzAwN2Y0MGI1ZmI3NjM3MjJkNTM4YWRlZDAyZDFiODFhMTg4NTQuLjQ3NTE3YjJmNDNjNGMzN2M1
NDFhYWYxZDFhYmJlNTg2MTE5OWU0MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL2lvcy9BdWRpb1Nlc3Npb25JT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vaW9zL0F1ZGlvU2Vzc2lvbklPUy5tbQpAQCAtNDAsMTcgKzQwLDE3IEBACiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKICNpZiAhTE9HX0RJU0FCTEVECi1zdGF0aWMgY29uc3QgY2hh
ciogY2F0ZWdvcnlOYW1lKEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIGNhdGVnb3J5KQorc3Rh
dGljIGNvbnN0IGNoYXIqIGNhdGVnb3J5TmFtZShBdWRpb1Nlc3Npb25DYXRlZ29yeSBjYXRlZ29y
eSkKIHsKICNkZWZpbmUgQ0FTRShjYXRlZ29yeSkgY2FzZSBBdWRpb1Nlc3Npb246OmNhdGVnb3J5
OiByZXR1cm4gI2NhdGVnb3J5CiAgICAgc3dpdGNoIChjYXRlZ29yeSkgewotICAgICAgICBDQVNF
KE5vbmUpOwotICAgICAgICBDQVNFKEFtYmllbnRTb3VuZCk7Ci0gICAgICAgIENBU0UoU29sb0Ft
YmllbnRTb3VuZCk7Ci0gICAgICAgIENBU0UoTWVkaWFQbGF5YmFjayk7Ci0gICAgICAgIENBU0Uo
UmVjb3JkQXVkaW8pOwotICAgICAgICBDQVNFKFBsYXlBbmRSZWNvcmQpOwotICAgICAgICBDQVNF
KEF1ZGlvUHJvY2Vzc2luZyk7CisgICAgICAgIENBU0UoQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6Ok5v
bmUpOworICAgICAgICBDQVNFKEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpBbWJpZW50U291bmQpOwor
ICAgICAgICBDQVNFKEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpTb2xvQW1iaWVudFNvdW5kKTsKKyAg
ICAgICAgQ0FTRShBdWRpb1Nlc3Npb25DYXRlZ29yeTo6TWVkaWFQbGF5YmFjayk7CisgICAgICAg
IENBU0UoQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6OlJlY29yZEF1ZGlvKTsKKyAgICAgICAgQ0FTRShB
dWRpb1Nlc3Npb25DYXRlZ29yeTo6UGxheUFuZFJlY29yZCk7CisgICAgICAgIENBU0UoQXVkaW9T
ZXNzaW9uQ2F0ZWdvcnk6OkF1ZGlvUHJvY2Vzc2luZyk7CiAgICAgfQogICAgIAogICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwpAQCAtNjIsMTIgKzYyLDEyIEBAIGNsYXNzIEF1ZGlvU2Vzc2lvblBy
aXZhdGUgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIEF1ZGlv
U2Vzc2lvblByaXZhdGUoQXVkaW9TZXNzaW9uKik7Ci0gICAgQXVkaW9TZXNzaW9uOjpDYXRlZ29y
eVR5cGUgbV9jYXRlZ29yeU92ZXJyaWRlOworICAgIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5IG1fY2F0
ZWdvcnlPdmVycmlkZTsKICAgICBPU09iamVjdFB0cjxkaXNwYXRjaF9xdWV1ZV90PiBtX2Rpc3Bh
dGNoUXVldWU7CiB9OwogCiBBdWRpb1Nlc3Npb25Qcml2YXRlOjpBdWRpb1Nlc3Npb25Qcml2YXRl
KEF1ZGlvU2Vzc2lvbiopCi0gICAgOiBtX2NhdGVnb3J5T3ZlcnJpZGUoQXVkaW9TZXNzaW9uOjpO
b25lKQorICAgIDogbV9jYXRlZ29yeU92ZXJyaWRlKEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpOb25l
KQogewogfQogCkBAIC04MCw3ICs4MCw3IEBAIEF1ZGlvU2Vzc2lvbjo6fkF1ZGlvU2Vzc2lvbigp
CiB7CiB9CiAKLXZvaWQgQXVkaW9TZXNzaW9uOjpzZXRDYXRlZ29yeShDYXRlZ29yeVR5cGUgbmV3
Q2F0ZWdvcnksIFJvdXRlU2hhcmluZ1BvbGljeSBwb2xpY3kpCit2b2lkIEF1ZGlvU2Vzc2lvbjo6
c2V0Q2F0ZWdvcnkoQXVkaW9TZXNzaW9uQ2F0ZWdvcnkgbmV3Q2F0ZWdvcnksIFJvdXRlU2hhcmlu
Z1BvbGljeSBwb2xpY3kpCiB7CiAjaWYgIUhBVkUoUk9VVEVfU0hBUklOR19QT0xJQ1lfTE9OR19G
T1JNX1ZJREVPKQogICAgIGlmIChwb2xpY3kgPT0gUm91dGVTaGFyaW5nUG9saWN5OjpMb25nRm9y
bVZpZGVvKQpAQCAtODksNyArODksNyBAQCB2b2lkIEF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnko
Q2F0ZWdvcnlUeXBlIG5ld0NhdGVnb3J5LCBSb3V0ZVNoYXJpbmdQb2xpY3kgcG9saQogCiAgICAg
TE9HKE1lZGlhLCAiQXVkaW9TZXNzaW9uOjpzZXRDYXRlZ29yeSgpIC0gY2F0ZWdvcnkgPSAlcyIs
IGNhdGVnb3J5TmFtZShuZXdDYXRlZ29yeSkpOwogCi0gICAgaWYgKGNhdGVnb3J5T3ZlcnJpZGUo
KSAmJiBjYXRlZ29yeU92ZXJyaWRlKCkgIT0gbmV3Q2F0ZWdvcnkpIHsKKyAgICBpZiAoY2F0ZWdv
cnlPdmVycmlkZSgpICE9IEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpOb25lICYmIGNhdGVnb3J5T3Zl
cnJpZGUoKSAhPSBuZXdDYXRlZ29yeSkgewogICAgICAgICBMT0coTWVkaWEsICJBdWRpb1Nlc3Np
b246OnNldENhdGVnb3J5KCkgLSBvdmVycmlkZSBzZXQsIE5PVCBjaGFuZ2luZyIpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQpAQCAtOTksMjcgKzk5LDI3IEBAIHZvaWQgQXVkaW9TZXNzaW9uOjpz
ZXRDYXRlZ29yeShDYXRlZ29yeVR5cGUgbmV3Q2F0ZWdvcnksIFJvdXRlU2hhcmluZ1BvbGljeSBw
b2xpCiAgICAgQVZBdWRpb1Nlc3Npb25DYXRlZ29yeU9wdGlvbnMgb3B0aW9ucyA9IDA7CiAKICAg
ICBzd2l0Y2ggKG5ld0NhdGVnb3J5KSB7Ci0gICAgY2FzZSBBbWJpZW50U291bmQ6CisgICAgY2Fz
ZSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6QW1iaWVudFNvdW5kOgogICAgICAgICBjYXRlZ29yeVN0
cmluZyA9IEFWQXVkaW9TZXNzaW9uQ2F0ZWdvcnlBbWJpZW50OwogICAgICAgICBicmVhazsKLSAg
ICBjYXNlIFNvbG9BbWJpZW50U291bmQ6CisgICAgY2FzZSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6
U29sb0FtYmllbnRTb3VuZDoKICAgICAgICAgY2F0ZWdvcnlTdHJpbmcgPSBBVkF1ZGlvU2Vzc2lv
bkNhdGVnb3J5U29sb0FtYmllbnQ7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgTWVkaWFQbGF5
YmFjazoKKyAgICBjYXNlIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpNZWRpYVBsYXliYWNrOgogICAg
ICAgICBjYXRlZ29yeVN0cmluZyA9IEFWQXVkaW9TZXNzaW9uQ2F0ZWdvcnlQbGF5YmFjazsKICAg
ICAgICAgYnJlYWs7Ci0gICAgY2FzZSBSZWNvcmRBdWRpbzoKKyAgICBjYXNlIEF1ZGlvU2Vzc2lv
bkNhdGVnb3J5OjpSZWNvcmRBdWRpbzoKICAgICAgICAgY2F0ZWdvcnlTdHJpbmcgPSBBVkF1ZGlv
U2Vzc2lvbkNhdGVnb3J5UmVjb3JkOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFBsYXlBbmRS
ZWNvcmQ6CisgICAgY2FzZSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6UGxheUFuZFJlY29yZDoKICAg
ICAgICAgY2F0ZWdvcnlTdHJpbmcgPSBBVkF1ZGlvU2Vzc2lvbkNhdGVnb3J5UGxheUFuZFJlY29y
ZDsKICAgICAgICAgY2F0ZWdvcnlNb2RlID0gQVZBdWRpb1Nlc3Npb25Nb2RlVmlkZW9DaGF0Owog
ICAgICAgICBvcHRpb25zIHw9IEFWQXVkaW9TZXNzaW9uQ2F0ZWdvcnlPcHRpb25BbGxvd0JsdWV0
b290aCB8IEFWQXVkaW9TZXNzaW9uQ2F0ZWdvcnlPcHRpb25BbGxvd0JsdWV0b290aEEyRFAgfCBB
VkF1ZGlvU2Vzc2lvbkNhdGVnb3J5T3B0aW9uRGVmYXVsdFRvU3BlYWtlciB8IEFWQXVkaW9TZXNz
aW9uQ2F0ZWdvcnlPcHRpb25BbGxvd0FpclBsYXk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
QXVkaW9Qcm9jZXNzaW5nOgorICAgIGNhc2UgQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6OkF1ZGlvUHJv
Y2Vzc2luZzoKICAgICAgICAgY2F0ZWdvcnlTdHJpbmcgPSBBVkF1ZGlvU2Vzc2lvbkNhdGVnb3J5
QXVkaW9Qcm9jZXNzaW5nOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIE5vbmU6CisgICAgY2Fz
ZSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6Tm9uZToKICAgICAgICAgY2F0ZWdvcnlTdHJpbmcgPSBB
VkF1ZGlvU2Vzc2lvbkNhdGVnb3J5QW1iaWVudDsKICAgICAgICAgYnJlYWs7CiAgICAgfQpAQCAt
MTMxLDIyICsxMzEsMjIgQEAgdm9pZCBBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5KENhdGVnb3J5
VHlwZSBuZXdDYXRlZ29yeSwgUm91dGVTaGFyaW5nUG9saWN5IHBvbGkKICNlbmRpZgogfQogCi1B
dWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBBdWRpb1Nlc3Npb246OmNhdGVnb3J5KCkgY29uc3QK
K0F1ZGlvU2Vzc2lvbkNhdGVnb3J5IEF1ZGlvU2Vzc2lvbjo6Y2F0ZWdvcnkoKSBjb25zdAogewog
ICAgIE5TU3RyaW5nICpjYXRlZ29yeVN0cmluZyA9IFtbUEFMOjpnZXRBVkF1ZGlvU2Vzc2lvbkNs
YXNzKCkgc2hhcmVkSW5zdGFuY2VdIGNhdGVnb3J5XTsKICAgICBpZiAoW2NhdGVnb3J5U3RyaW5n
IGlzRXF1YWw6QVZBdWRpb1Nlc3Npb25DYXRlZ29yeUFtYmllbnRdKQotICAgICAgICByZXR1cm4g
QW1iaWVudFNvdW5kOworICAgICAgICByZXR1cm4gQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6OkFtYmll
bnRTb3VuZDsKICAgICBpZiAoW2NhdGVnb3J5U3RyaW5nIGlzRXF1YWw6QVZBdWRpb1Nlc3Npb25D
YXRlZ29yeVNvbG9BbWJpZW50XSkKLSAgICAgICAgcmV0dXJuIFNvbG9BbWJpZW50U291bmQ7Cisg
ICAgICAgIHJldHVybiBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6U29sb0FtYmllbnRTb3VuZDsKICAg
ICBpZiAoW2NhdGVnb3J5U3RyaW5nIGlzRXF1YWw6QVZBdWRpb1Nlc3Npb25DYXRlZ29yeVBsYXli
YWNrXSkKLSAgICAgICAgcmV0dXJuIE1lZGlhUGxheWJhY2s7CisgICAgICAgIHJldHVybiBBdWRp
b1Nlc3Npb25DYXRlZ29yeTo6TWVkaWFQbGF5YmFjazsKICAgICBpZiAoW2NhdGVnb3J5U3RyaW5n
IGlzRXF1YWw6QVZBdWRpb1Nlc3Npb25DYXRlZ29yeVJlY29yZF0pCi0gICAgICAgIHJldHVybiBS
ZWNvcmRBdWRpbzsKKyAgICAgICAgcmV0dXJuIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpSZWNvcmRB
dWRpbzsKICAgICBpZiAoW2NhdGVnb3J5U3RyaW5nIGlzRXF1YWw6QVZBdWRpb1Nlc3Npb25DYXRl
Z29yeVBsYXlBbmRSZWNvcmRdKQotICAgICAgICByZXR1cm4gUGxheUFuZFJlY29yZDsKKyAgICAg
ICAgcmV0dXJuIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpQbGF5QW5kUmVjb3JkOwogICAgIGlmIChb
Y2F0ZWdvcnlTdHJpbmcgaXNFcXVhbDpBVkF1ZGlvU2Vzc2lvbkNhdGVnb3J5QXVkaW9Qcm9jZXNz
aW5nXSkKLSAgICAgICAgcmV0dXJuIEF1ZGlvUHJvY2Vzc2luZzsKLSAgICByZXR1cm4gTm9uZTsK
KyAgICAgICAgcmV0dXJuIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpBdWRpb1Byb2Nlc3Npbmc7Cisg
ICAgcmV0dXJuIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpOb25lOwogfQogCiBSb3V0ZVNoYXJpbmdQ
b2xpY3kgQXVkaW9TZXNzaW9uOjpyb3V0ZVNoYXJpbmdQb2xpY3koKSBjb25zdApAQCAtMTc2LDcg
KzE3Niw3IEBAIFN0cmluZyBBdWRpb1Nlc3Npb246OnJvdXRpbmdDb250ZXh0VUlEKCkgY29uc3QK
ICNlbmRpZgogfQogCi12b2lkIEF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnlPdmVycmlkZShDYXRl
Z29yeVR5cGUgY2F0ZWdvcnkpCit2b2lkIEF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnlPdmVycmlk
ZShBdWRpb1Nlc3Npb25DYXRlZ29yeSBjYXRlZ29yeSkKIHsKICAgICBpZiAobV9wcml2YXRlLT5t
X2NhdGVnb3J5T3ZlcnJpZGUgPT0gY2F0ZWdvcnkpCiAgICAgICAgIHJldHVybjsKQEAgLTE4NSw3
ICsxODUsNyBAQCB2b2lkIEF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnlPdmVycmlkZShDYXRlZ29y
eVR5cGUgY2F0ZWdvcnkpCiAgICAgc2V0Q2F0ZWdvcnkoY2F0ZWdvcnksIFJvdXRlU2hhcmluZ1Bv
bGljeTo6RGVmYXVsdCk7CiB9CiAKLUF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIEF1ZGlvU2Vz
c2lvbjo6Y2F0ZWdvcnlPdmVycmlkZSgpIGNvbnN0CitBdWRpb1Nlc3Npb25DYXRlZ29yeSBBdWRp
b1Nlc3Npb246OmNhdGVnb3J5T3ZlcnJpZGUoKSBjb25zdAogewogICAgIHJldHVybiBtX3ByaXZh
dGUtPm1fY2F0ZWdvcnlPdmVycmlkZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5oCmluZGV4IDkzZTVi
ZmM0MGI4ZjE4NTgzODM4OTY2MzZmNjJlZTY5MThjOTkxNTMuLmM0YjdkODgzOGVjODE0MTUyMzQz
MTRhMjFmOTUwZDkyM2FlN2YyODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vaW9zL01lZGlhU2Vzc2lvbk1hbmFnZXJJT1MuaApAQCAtNTQsNiArNTQs
OCBAQCBwdWJsaWM6CiAgICAgdm9pZCBhY3RpdmVWaWRlb1JvdXRlRGlkQ2hhbmdlKE9wdGlvbmFs
PGJvb2w+JiYpOwogI2VuZGlmCiAKKyAgICBzdGF0aWMgV0VCQ09SRV9FWFBPUlQgdm9pZCBwcm92
aWRlUHJlc2VudGluZ0FwcGxpY2F0aW9uUElEKCk7CisKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNs
YXNzIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL01lZGlhU2Vzc2lvbk1hbmFnZXJJT1MubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbQpp
bmRleCA0NTE3MjRmZTczYWNmY2Q1OTk0NjRjMGM0MmYxOGM1NmU2MzMxOTE3Li5jZjI1ZmI0ODYw
MTc2ODI1YTc3YWQ4NjI0Y2I0NWJkZjM5ODNlYzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbQpA
QCAtMTc0LDcgKzE3NCwxMyBAQCB2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXJpT1M6OnByb3ZpZGVQ
cmVzZW50aW5nQXBwbGljYXRpb25QSURJZk5lY2Vzc2FyeSgpCiAgICAgaWYgKG1faGF2ZVByZXNl
bnRlZEFwcGxpY2F0aW9uUElEKQogICAgICAgICByZXR1cm47CiAgICAgbV9oYXZlUHJlc2VudGVk
QXBwbGljYXRpb25QSUQgPSB0cnVlOworICAgIHByb3ZpZGVQcmVzZW50aW5nQXBwbGljYXRpb25Q
SUQoKTsKKyNlbmRpZgorfQogCit2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXJpT1M6OnByb3ZpZGVQ
cmVzZW50aW5nQXBwbGljYXRpb25QSUQoKQoreworI2lmIEhBVkUoQ0VMRVNUSUFMKQogICAgIGlm
ICghY2FuTG9hZEFWU3lzdGVtQ29udHJvbGxlcl9QSURUb0luaGVyaXRBcHBsaWNhdGlvblN0YXRl
RnJvbSgpKQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL21hYy9BdWRpb1Nlc3Npb25NYWMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vbWFjL0F1ZGlvU2Vzc2lvbk1hYy5jcHAKaW5kZXggY2MwNGYwYmUzMDk3NDk4
YjgzNjZlOTI0MjA3M2VjZTNlMTk3NWFiNS4uYTZlMTUyMjIzODQ4NDYxNGQ3ZjUxNjE4OWRiYTYx
YmQyYTE0N2ZmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFj
L0F1ZGlvU2Vzc2lvbk1hYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
bWFjL0F1ZGlvU2Vzc2lvbk1hYy5jcHAKQEAgLTU4LDcgKzU4LDcgQEAgcHVibGljOgogICAgIGV4
cGxpY2l0IEF1ZGlvU2Vzc2lvblByaXZhdGUoYm9vbCBtdXRlZFN0YXRlKQogICAgICAgICA6IGxh
c3RNdXRlZFN0YXRlKG11dGVkU3RhdGUpIHsgfQogICAgIGJvb2wgbGFzdE11dGVkU3RhdGU7Ci0g
ICAgQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUgY2F0ZWdvcnkgeyBBdWRpb1Nlc3Npb246Ok5v
bmUgfTsKKyAgICBBdWRpb1Nlc3Npb25DYXRlZ29yeSBjYXRlZ29yeSB7IEF1ZGlvU2Vzc2lvbkNh
dGVnb3J5OjpOb25lIH07CiB9OwogCiBBdWRpb1Nlc3Npb246OkF1ZGlvU2Vzc2lvbigpCkBAIC02
OCwyMyArNjgsMjMgQEAgQXVkaW9TZXNzaW9uOjpBdWRpb1Nlc3Npb24oKQogCiBBdWRpb1Nlc3Np
b246On5BdWRpb1Nlc3Npb24oKSA9IGRlZmF1bHQ7CiAKLUF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlU
eXBlIEF1ZGlvU2Vzc2lvbjo6Y2F0ZWdvcnkoKSBjb25zdAorQXVkaW9TZXNzaW9uQ2F0ZWdvcnkg
QXVkaW9TZXNzaW9uOjpjYXRlZ29yeSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+
Y2F0ZWdvcnk7CiB9CiAKLXZvaWQgQXVkaW9TZXNzaW9uOjpzZXRDYXRlZ29yeShDYXRlZ29yeVR5
cGUgY2F0ZWdvcnksIFJvdXRlU2hhcmluZ1BvbGljeSkKK3ZvaWQgQXVkaW9TZXNzaW9uOjpzZXRD
YXRlZ29yeShBdWRpb1Nlc3Npb25DYXRlZ29yeSBjYXRlZ29yeSwgUm91dGVTaGFyaW5nUG9saWN5
KQogewogICAgIG1fcHJpdmF0ZS0+Y2F0ZWdvcnkgPSBjYXRlZ29yeTsKIH0KIAotQXVkaW9TZXNz
aW9uOjpDYXRlZ29yeVR5cGUgQXVkaW9TZXNzaW9uOjpjYXRlZ29yeU92ZXJyaWRlKCkgY29uc3QK
K0F1ZGlvU2Vzc2lvbkNhdGVnb3J5IEF1ZGlvU2Vzc2lvbjo6Y2F0ZWdvcnlPdmVycmlkZSgpIGNv
bnN0CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gTm9uZTsKKyAgICByZXR1
cm4gQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6Ok5vbmU7CiB9CiAKLXZvaWQgQXVkaW9TZXNzaW9uOjpz
ZXRDYXRlZ29yeU92ZXJyaWRlKENhdGVnb3J5VHlwZSkKK3ZvaWQgQXVkaW9TZXNzaW9uOjpzZXRD
YXRlZ29yeU92ZXJyaWRlKEF1ZGlvU2Vzc2lvbkNhdGVnb3J5KQogewogICAgIG5vdEltcGxlbWVu
dGVkKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvQmFzZUF1ZGlvU2hhcmVkVW5pdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvQmFzZUF1ZGlvU2hhcmVkVW5pdC5jcHAKaW5kZXggZDYzYmY1NGExNjNi
NTExOTJlYTBhMzYzNzg2ZGY4NzZiODlmOTg0Zi4uNGMzYzgyOGJkMjMyOTBmZDk3MzAyNWQ2NDEy
NzEzZDhhMTg0MDBiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL0Jhc2VBdWRpb1NoYXJlZFVuaXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9CYXNlQXVkaW9TaGFyZWRVbml0LmNwcApAQCAtOTcsNyAr
OTcsNyBAQCBPU1N0YXR1cyBCYXNlQXVkaW9TaGFyZWRVbml0OjpzdGFydFVuaXQoKQogICAgIGZv
ckVhY2hDbGllbnQoW10oYXV0byYgY2xpZW50KSB7CiAgICAgICAgIGNsaWVudC5hdWRpb1VuaXRX
aWxsU3RhcnQoKTsKICAgICB9KTsKLSAgICBBU1NFUlQoIURlcHJlY2F0ZWRHbG9iYWxTZXR0aW5n
czo6c2hvdWxkTWFuYWdlQXVkaW9TZXNzaW9uQ2F0ZWdvcnkoKSB8fCBBdWRpb1Nlc3Npb246OnNo
YXJlZFNlc3Npb24oKS5jYXRlZ29yeSgpID09IEF1ZGlvU2Vzc2lvbjo6UGxheUFuZFJlY29yZCk7
CisgICAgQVNTRVJUKCFEZXByZWNhdGVkR2xvYmFsU2V0dGluZ3M6OnNob3VsZE1hbmFnZUF1ZGlv
U2Vzc2lvbkNhdGVnb3J5KCkgfHwgQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuY2F0ZWdv
cnkoKSA9PSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6UGxheUFuZFJlY29yZCk7CiAKICAgICBpZiAo
YXV0byBlcnJvciA9IHN0YXJ0SW50ZXJuYWwoKSkgewogICAgICAgICBjYXB0dXJlRmFpbGVkKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZUF1
ZGlvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1l
QXVkaW9Tb3VyY2UuY3BwCmluZGV4IGM0NjYyZDRhNmQxZjMyNDQwOWQzOWNkYTU4Mjk4YWY4OTkx
MzhkMjUuLmRlN2IyZDU1OWFlNzYxMGYxOThiYTI4ODkyZDBjYzVmMTdmOGU1YzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9T
b3VyY2UuY3BwCkBAIC0xMzcsNyArMTM3LDcgQEAgdm9pZCBNb2NrUmVhbHRpbWVBdWRpb1NvdXJj
ZTo6c3RhcnRQcm9kdWNpbmdEYXRhKCkKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIFJl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZhY3Rvcnko
KS5zZXRBY3RpdmVTb3VyY2UoKnRoaXMpOwogICAgIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdl
cjo6c2hhcmVkTWFuYWdlcigpLnNlc3Npb25DYW5Qcm9kdWNlQXVkaW9DaGFuZ2VkKCk7Ci0gICAg
QVNTRVJUKEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLmNhdGVnb3J5KCkgPT0gQXVkaW9T
ZXNzaW9uOjpQbGF5QW5kUmVjb3JkKTsKKyAgICBBU1NFUlQoQXVkaW9TZXNzaW9uOjpzaGFyZWRT
ZXNzaW9uKCkuY2F0ZWdvcnkoKSA9PSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6UGxheUFuZFJlY29y
ZCk7CiAjZW5kaWYKIAogICAgIGlmICghc2FtcGxlUmF0ZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwCmluZGV4IDQ5MmRmMmZjN2M3ZjE5ZmMzZTliOWIxNDM2MzRmMDdlYjI5OGQ1
ZWIuLjM1ZGUwZDE2ZTA1MDUwMjk0ZjBjYzliYzQyMTIyNTQ1MDhhN2M2N2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTQ5NzUsMTkgKzQ5NzUsMTkgQEAgU3RyaW5nIElu
dGVybmFsczo6YXVkaW9TZXNzaW9uQ2F0ZWdvcnkoKSBjb25zdAogewogI2lmIFVTRShBVURJT19T
RVNTSU9OKQogICAgIHN3aXRjaCAoQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuY2F0ZWdv
cnkoKSkgewotICAgIGNhc2UgQXVkaW9TZXNzaW9uOjpBbWJpZW50U291bmQ6CisgICAgY2FzZSBB
dWRpb1Nlc3Npb25DYXRlZ29yeTo6QW1iaWVudFNvdW5kOgogICAgICAgICByZXR1cm4gIkFtYmll
bnRTb3VuZCJfczsKLSAgICBjYXNlIEF1ZGlvU2Vzc2lvbjo6U29sb0FtYmllbnRTb3VuZDoKKyAg
ICBjYXNlIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpTb2xvQW1iaWVudFNvdW5kOgogICAgICAgICBy
ZXR1cm4gIlNvbG9BbWJpZW50U291bmQiX3M7Ci0gICAgY2FzZSBBdWRpb1Nlc3Npb246Ok1lZGlh
UGxheWJhY2s6CisgICAgY2FzZSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6TWVkaWFQbGF5YmFjazoK
ICAgICAgICAgcmV0dXJuICJNZWRpYVBsYXliYWNrIl9zOwotICAgIGNhc2UgQXVkaW9TZXNzaW9u
OjpSZWNvcmRBdWRpbzoKKyAgICBjYXNlIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpSZWNvcmRBdWRp
bzoKICAgICAgICAgcmV0dXJuICJSZWNvcmRBdWRpbyJfczsKLSAgICBjYXNlIEF1ZGlvU2Vzc2lv
bjo6UGxheUFuZFJlY29yZDoKKyAgICBjYXNlIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpQbGF5QW5k
UmVjb3JkOgogICAgICAgICByZXR1cm4gIlBsYXlBbmRSZWNvcmQiX3M7Ci0gICAgY2FzZSBBdWRp
b1Nlc3Npb246OkF1ZGlvUHJvY2Vzc2luZzoKKyAgICBjYXNlIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5
OjpBdWRpb1Byb2Nlc3Npbmc6CiAgICAgICAgIHJldHVybiAiQXVkaW9Qcm9jZXNzaW5nIl9zOwot
ICAgIGNhc2UgQXVkaW9TZXNzaW9uOjpOb25lOgorICAgIGNhc2UgQXVkaW9TZXNzaW9uQ2F0ZWdv
cnk6Ok5vbmU6CiAgICAgICAgIHJldHVybiAiTm9uZSJfczsKICAgICB9CiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmNwcAppbmRleCA2YTJjODcwZjdhYWExYjBkYjAwMGVmODg4MjdjOWEwZjYxZGNmMjViLi5hYjc2
Y2I2NGZlZDg4NWI2MTAwNWNkMDdiZTFiNzdlZGY1M2QyZmJiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC02
MSw4ICs2MSwxMiBAQAogI2luY2x1ZGUgIldlYkVycm9ycy5oIgogI2luY2x1ZGUgIldlYlByb2Nl
c3NNZXNzYWdlcy5oIgogCisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSA8V2ViQ29yZS9N
ZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhU2Vzc2lv
bk1hbmFnZXJJT1MuaD4KKyNlbmRpZgorCiAjaW5jbHVkZSA8V2ViQ29yZS9Nb2NrUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlci5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1NZWRpYVNlc3Np
b25NYW5hZ2VyLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CkBAIC04MCw5ICs4NCwxOSBAQCBwcml2YXRlOgogICAgIHZvaWQgYWRkTWVzc2FnZVJlY2Vp
dmVyKElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6TWVzc2Fn
ZVJlY2VpdmVyJiByZWNlaXZlcikgZmluYWwgeyB9CiAgICAgdm9pZCByZW1vdmVNZXNzYWdlUmVj
ZWl2ZXIoSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSkgZmluYWwgeyB9
CiAgICAgSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKCkgZmluYWwgeyByZXR1cm4gbV9wcm9j
ZXNzLmNvbm5lY3Rpb24oKTsgfQotICAgIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlciYgc2Vz
c2lvbk1hbmFnZXIoKSBmaW5hbCB7IHJldHVybiBtX3Byb2Nlc3Muc2Vzc2lvbk1hbmFnZXIoKTsg
fQotICAgIHZvaWQgd2lsbFN0YXJ0Q2FtZXJhQ2FwdHVyZSgpIGZpbmFsIHsgc2Vzc2lvbk1hbmFn
ZXIoKS5wcmVwYXJlVG9TZW5kVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoKTsgfQorICAgIHZv
aWQgd2lsbFN0YXJ0Q2FtZXJhQ2FwdHVyZSgpIGZpbmFsCisgICAgeworI2lmIFBMQVRGT1JNKElP
UykKKyAgICAgICAgaWYgKCFtX3Nob3VsZFByZXBhcmVUb1NlbmRVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdCkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgbV9zaG91bGRQcmVwYXJlVG9T
ZW5kVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QgPSBmYWxzZTsKKyAgICAgICAgTWVkaWFTZXNz
aW9uTWFuYWdlcmlPUzo6cHJvdmlkZVByZXNlbnRpbmdBcHBsaWNhdGlvblBJRCgpOworI2VuZGlm
CisgICAgfQogCisjaWYgUExBVEZPUk0oSU9TKQorICAgIGJvb2wgbV9zaG91bGRQcmVwYXJlVG9T
ZW5kVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QgeyB0cnVlIH07CisjZW5kaWYKICAgICBHUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzJiBtX3Byb2Nlc3M7CiB9OwogI2VuZGlmCkBAIC0xOTksNiAr
MjEzLDIxIEBAIExpYldlYlJUQ0NvZGVjc1Byb3h5JiBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpsaWJXZWJSVENDb2RlY3NQcm94eSgpCiB9CiAjZW5kaWYKIAorI2lmIFVTRShBVURJT19TRVNT
SU9OKQordm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjp0cnlUb1NldEF1ZGlvU2Vzc2lv
bkFzQWN0aXZlKGJvb2wgaXNBY3RpdmUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgY29tcGxldGlvbkhhbmRsZXIoQXVkaW9TZXNzaW9u
OjpzaGFyZWRTZXNzaW9uKCkudHJ5VG9TZXRBY3RpdmUoaXNBY3RpdmUpKTsKK30KKwordm9pZCBH
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjp1cGRhdGVBdWRpb1Nlc3Npb25QYXJhbWV0ZXJzKHNp
emVfdCBidWZmZXJTaXplLCBPcHRpb25hbDxXZWJDb3JlOjpBdWRpb1Nlc3Npb25DYXRlZ29yeT4g
Y2F0ZWdvcnksIE9wdGlvbmFsPFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeT4gcG9saWN5KQor
eworICAgIGlmIChidWZmZXJTaXplKQorICAgICAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Np
b24oKS5zZXRQcmVmZXJyZWRCdWZmZXJTaXplKGJ1ZmZlclNpemUpOworICAgIGlmIChjYXRlZ29y
eSAmJiBwb2xpY3kpCisgICAgICAgIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldENh
dGVnb3J5KCpjYXRlZ29yeSwgKnBvbGljeSk7Cit9CisjZW5kaWYKKwogdm9pZCBHUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpjcmVhdGVSZW5kZXJpbmdCYWNrZW5kKFJlbmRlcmluZ0JhY2tlbmRJ
ZGVudGlmaWVyIHJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKQogewogICAgIGF1dG8gYWRkUmVz
dWx0ID0gbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHlNYXAuZW5zdXJlKHJlbmRlcmluZ0Jh
Y2tlbmRJZGVudGlmaWVyLCBbJl0oKSB7CkBAIC0zMDksMTMgKzMzOCw2IEBAIGNvbnN0IFN0cmlu
ZyYgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6bWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeSgp
IGNvbnN0CiB9CiAjZW5kaWYKIAotUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyJiBHUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpzZXNzaW9uTWFuYWdlcigpCi17Ci0gICAgaWYgKCFtX3Nlc3Np
b25NYW5hZ2VyKQotICAgICAgICBtX3Nlc3Npb25NYW5hZ2VyID0gUGxhdGZvcm1NZWRpYVNlc3Np
b25NYW5hZ2VyOjpjcmVhdGUoKTsKLSAgICByZXR1cm4gKm1fc2Vzc2lvbk1hbmFnZXI7Ci19Ci0K
ICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogdm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpzZXRPcmllbnRhdGlvbkZvck1lZGlhQ2FwdHVyZSh1aW50NjRfdCBvcmllbnRhdGlvbikKIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5oCmluZGV4IDc0NzE1YzgwYzU0NWJlYWZlYzNmNmI3ZTA5ODRlY2E1MGNiYTI2NjkuLmVh
YTIwNjliNWEyNDgyMDA5MzQ5MWRiMzg4YjlkMjNjMmZhZDIxOWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtODMs
OCArODMsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRPcmllbnRhdGlvbkZvck1lZGlhQ2FwdHVy
ZSh1aW50NjRfdCBvcmllbnRhdGlvbik7CiAjZW5kaWYKIAotICAgIFdlYkNvcmU6OlBsYXRmb3Jt
TWVkaWFTZXNzaW9uTWFuYWdlciYgc2Vzc2lvbk1hbmFnZXIoKTsKLQogcHJpdmF0ZToKICAgICBH
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKEdQVVByb2Nlc3MmLCBXZWJDb3JlOjpQcm9jZXNzSWRl
bnRpZmllciwgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyLCBQQUw6OlNlc3Npb25JRCk7CiAK
QEAgLTEwMCw2ICs5OCwxMSBAQCBwcml2YXRlOgogICAgIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyTWFuYWdlciYgYXVkaW9UcmFja1JlbmRlcmVyTWFuYWdlcigpOwogICAgIFJl
bW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXImIHNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllck1hbmFnZXIoKTsKICNlbmRpZgorI2VuZGlmCisKKyNpZiBVU0UoQVVESU9fU0VTU0lPTikK
KyAgICB2b2lkIHRyeVRvU2V0QXVkaW9TZXNzaW9uQXNBY3RpdmUoYm9vbCBpc0FjdGl2ZSwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CisgICAgdm9pZCB1cGRhdGVBdWRpb1Nlc3Np
b25QYXJhbWV0ZXJzKHNpemVfdCBidWZmZXJTaXplLCBPcHRpb25hbDxXZWJDb3JlOjpBdWRpb1Nl
c3Npb25DYXRlZ29yeT4sIE9wdGlvbmFsPFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeT4pOwog
I2VuZGlmCiAgICAgdm9pZCBjcmVhdGVSZW5kZXJpbmdCYWNrZW5kKFJlbmRlcmluZ0JhY2tlbmRJ
ZGVudGlmaWVyKTsKICAgICB2b2lkIHJlbGVhc2VSZW5kZXJpbmdCYWNrZW5kKFJlbmRlcmluZ0Jh
Y2tlbmRJZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9H
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggOTMyYzAx
MjJkZTA4MWVkZTliYjllZmI1NmY5YmM1MjU5YmE0ZDcwNC4uMjVkYzQ3NGJhYjU1NmRjMmE3NzE5
ZDBkZTgwMmZkOGJkOGE1NjMxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTIz
LDYgKzIzLDExIEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCiBtZXNzYWdlcyAtPiBHUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzIFdhbnRzRGlzcGF0Y2hNZXNzYWdlIHsKKyNpZiBVU0UoQVVE
SU9fU0VTU0lPTikKKyAgICB2b2lkIFRyeVRvU2V0QXVkaW9TZXNzaW9uQXNBY3RpdmUoYm9vbCBp
c0FjdGl2ZSkgLT4gKGJvb2wgcmVzdWx0KSBTeW5jaHJvbm91cworICAgIHZvaWQgVXBkYXRlQXVk
aW9TZXNzaW9uUGFyYW1ldGVycyh1aW50NjRfdCBidWZmZXJTaXplLCBPcHRpb25hbDxXZWJDb3Jl
OjpBdWRpb1Nlc3Npb25DYXRlZ29yeT4gY2F0ZWdvcnksIE9wdGlvbmFsPFdlYkNvcmU6OlJvdXRl
U2hhcmluZ1BvbGljeT4gcG9saWN5KQorI2VuZGlmCisKICAgICB2b2lkIENyZWF0ZVJlbmRlcmlu
Z0JhY2tlbmQoV2ViS2l0OjpSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllciByZW5kZXJpbmdCYWNr
ZW5kSWRlbnRpZmllcikKICAgICB2b2lkIFJlbGVhc2VSZW5kZXJpbmdCYWNrZW5kKFdlYktpdDo6
UmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIgcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIpCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCmluZGV4IGJkYWZhNTNlYWJlZDg2Y2NhMzE5YjJh
YjM4YmM0MTFjOGRkYTA1ZTMuLjVjNTMxYTY4OGYzOWZlZTBjNjlhZjU0MTgyNzc5ZjVkYjE2NDlh
MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCkBAIC00NiwzMCArNDYsMjIgQEAgdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIGNsYXNzIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHk6OlNvdXJjZVByb3h5CiAgICAgOiBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZTo6T2JzZXJ2
ZXIKLSAgICAsIHB1YmxpYyBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTo6Q2xpZW50Ci0gICAgLCBw
dWJsaWMgUGxhdGZvcm1NZWRpYVNlc3Npb246OkF1ZGlvQ2FwdHVyZVNvdXJjZSB7CisgICAgLCBw
dWJsaWMgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U6OkNsaWVudCB7CiAgICAgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgU291cmNlUHJveHkoUmVhbHRpbWVNZWRpYVNvdXJj
ZUlkZW50aWZpZXIgaWQsIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlciYgc2Vzc2lvbk1hbmFn
ZXIsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbiwgUmVmPFJlYWx0aW1lTWVkaWFT
b3VyY2U+JiYgc291cmNlKQorICAgIFNvdXJjZVByb3h5KFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyIGlkLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIFJlZjxSZWFsdGlt
ZU1lZGlhU291cmNlPiYmIHNvdXJjZSkKICAgICAgICAgOiBtX2lkKGlkKQotICAgICAgICAsIG1f
c2Vzc2lvbk1hbmFnZXIobWFrZVdlYWtQdHIoc2Vzc2lvbk1hbmFnZXIpKQogICAgICAgICAsIG1f
Y29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKQogICAgICAgICAsIG1fc291cmNlKFdURk1v
dmUoc291cmNlKSkKICAgICAgICAgLCBtX3JpbmdCdWZmZXIobWFrZVVuaXF1ZVJlZjxTaGFyZWRS
aW5nQnVmZmVyU3RvcmFnZT4obWFrZVVuaXF1ZVJlZjxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZT4o
dGhpcykpKQogICAgIHsKICAgICAgICAgbV9zb3VyY2UtPmFkZE9ic2VydmVyKCp0aGlzKTsKLQot
ICAgICAgICBpZiAobV9zb3VyY2UtPnR5cGUoKSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBl
OjpBdWRpbykKLSAgICAgICAgICAgIHNlc3Npb25NYW5hZ2VyLmFkZEF1ZGlvQ2FwdHVyZVNvdXJj
ZSgqdGhpcyk7CiAgICAgfQogCiAgICAgflNvdXJjZVByb3h5KCkKICAgICB7CiAgICAgICAgIHN0
b3JhZ2UoKS5pbnZhbGlkYXRlKCk7CiAgICAgICAgIG1fc291cmNlLT5yZW1vdmVPYnNlcnZlcigq
dGhpcyk7Ci0KLSAgICAgICAgaWYgKG1fc291cmNlLT50eXBlKCkgPT0gUmVhbHRpbWVNZWRpYVNv
dXJjZTo6VHlwZTo6QXVkaW8gJiYgbV9zZXNzaW9uTWFuYWdlcikKLSAgICAgICAgICAgIG1fc2Vz
c2lvbk1hbmFnZXItPnJlbW92ZUF1ZGlvQ2FwdHVyZVNvdXJjZSgqdGhpcyk7CiAgICAgfQogCiAg
ICAgUmVhbHRpbWVNZWRpYVNvdXJjZSYgc291cmNlKCkgeyByZXR1cm4gbV9zb3VyY2U7IH0KQEAg
LTc3LDE0ICs2OSw2IEBAIHB1YmxpYzoKICAgICBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRl
c2NyaXB0aW9uKCkgeyByZXR1cm4gbV9kZXNjcmlwdGlvbjsgfQogICAgIGludDY0X3QgbnVtYmVy
T2ZGcmFtZXMoKSB7IHJldHVybiBtX251bWJlck9mRnJhbWVzOyB9CiAKLSAgICBib29sIGlzQ2Fw
dHVyaW5nQXVkaW8oKSBjb25zdCBmaW5hbCB7IHJldHVybiAhbV9pc0VuZGVkICYmIG1fc291cmNl
LT5pc1Byb2R1Y2luZ0RhdGEoKTsgfQotCi0gICAgdm9pZCBhdWRpb1VuaXRXaWxsU3RhcnQoKSBm
aW5hbAotICAgIHsKLSAgICAgICAgaWYgKCFtX2lzRW5kZWQgJiYgbV9zZXNzaW9uTWFuYWdlcikK
LSAgICAgICAgICAgIG1fc2Vzc2lvbk1hbmFnZXItPnNlc3Npb25DYW5Qcm9kdWNlQXVkaW9DaGFu
Z2VkKCk7Ci0gICAgfQotCiAgICAgdm9pZCBzdGFydCgpCiAgICAgewogICAgICAgICBtX2lzRW5k
ZWQgPSBmYWxzZTsKQEAgLTIxNCw3ICsxOTgsNyBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHk6OmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaQog
ICAgICAgICBhdXRvIHNvdXJjZSA9IHNvdXJjZU9yRXJyb3Iuc291cmNlKCk7CiAgICAgICAgIHNl
dHRpbmdzID0gc291cmNlLT5zZXR0aW5ncygpOwogICAgICAgICBBU1NFUlQoIW1fcHJveGllcy5j
b250YWlucyhpZCkpOwotICAgICAgICBtX3Byb3hpZXMuYWRkKGlkLCBtYWtlVW5pcXVlPFNvdXJj
ZVByb3h5PihpZCwgbV9jb25uZWN0aW9uUHJveHktPnNlc3Npb25NYW5hZ2VyKCksIG1fY29ubmVj
dGlvblByb3h5LT5jb25uZWN0aW9uKCksIFdURk1vdmUoc291cmNlKSkpOworICAgICAgICBtX3By
b3hpZXMuYWRkKGlkLCBtYWtlVW5pcXVlPFNvdXJjZVByb3h5PihpZCwgbV9jb25uZWN0aW9uUHJv
eHktPmNvbm5lY3Rpb24oKSwgV1RGTW92ZShzb3VyY2UpKSk7CiAgICAgfSBlbHNlCiAgICAgICAg
IGludmFsaWRDb25zdHJhaW50cyA9IFdURk1vdmUoc291cmNlT3JFcnJvci5lcnJvck1lc3NhZ2Up
OwogICAgIGNvbXBsZXRpb25IYW5kbGVyKHN1Y2NlZWRlZCwgaW52YWxpZENvbnN0cmFpbnRzLCBX
VEZNb3ZlKHNldHRpbmdzKSk7CkBAIC0yNzAsNyArMjU0LDcgQEAgdm9pZCBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5OjpjbG9uZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBjbG9u
ZWRJRCwKICAgICBBU1NFUlQobV9wcm94aWVzLmNvbnRhaW5zKGNsb25lZElEKSk7CiAgICAgQVNT
RVJUKCFtX3Byb3hpZXMuY29udGFpbnMobmV3U291cmNlSUQpKTsKICAgICBpZiAoYXV0byogcHJv
eHkgPSBtX3Byb3hpZXMuZ2V0KGNsb25lZElEKSkKLSAgICAgICAgbV9wcm94aWVzLmFkZChuZXdT
b3VyY2VJRCwgbWFrZVVuaXF1ZTxTb3VyY2VQcm94eT4obmV3U291cmNlSUQsIG1fY29ubmVjdGlv
blByb3h5LT5zZXNzaW9uTWFuYWdlcigpLCBtX2Nvbm5lY3Rpb25Qcm94eS0+Y29ubmVjdGlvbigp
LCBwcm94eS0+c291cmNlKCkuY2xvbmUoKSkpOworICAgICAgICBtX3Byb3hpZXMuYWRkKG5ld1Nv
dXJjZUlELCBtYWtlVW5pcXVlPFNvdXJjZVByb3h5PihuZXdTb3VyY2VJRCwgbV9jb25uZWN0aW9u
UHJveHktPmNvbm5lY3Rpb24oKSwgcHJveHktPnNvdXJjZSgpLmNsb25lKCkpKTsKIH0KIAogdm9p
ZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpyZXF1ZXN0VG9FbmQoUmVhbHRpbWVNZWRp
YVNvdXJjZUlkZW50aWZpZXIgc291cmNlSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgKaW5kZXgg
MjdiYzc3MGMwZDljOTE2N2E0OWE3ZDI5MGZhZmZkMzk5Mjg2NDg5Mi4uYTc2YWY5NmVhNTg0Y2Iy
MTI5NTI3YjJmMTI5YWMyOGNjNmIyZDdlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaApAQCAt
NTMsNyArNTMsNiBAQCBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgdm9pZCBhZGRNZXNzYWdlUmVj
ZWl2ZXIoSVBDOjpTdHJpbmdSZWZlcmVuY2UsIElQQzo6TWVzc2FnZVJlY2VpdmVyJikgPSAwOwog
ICAgICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlTWVzc2FnZVJlY2VpdmVyKElQQzo6U3RyaW5nUmVm
ZXJlbmNlKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9u
KCkgPSAwOwotICAgICAgICB2aXJ0dWFsIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uTWFu
YWdlciYgc2Vzc2lvbk1hbmFnZXIoKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCB3aWxsU3Rh
cnRDYW1lcmFDYXB0dXJlKCkgeyB9CiAgICAgfTsKICAgICBleHBsaWNpdCBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5KFVuaXF1ZVJlZjxDb25uZWN0aW9uUHJveHk+JiYpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXggOGI3MGQ2NDdlZTgyNmNh
ZGQyZDJiZmY3ZWRmMzg3ZjNjOGIwNGZkZi4uMDMyZjBiOTAwYWQ5ZjQ0MjI4ZjIwZTc2ODYyMGMy
MWI2M2MyNjg5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
Y3BwCkBAIC0xNjAsNyArMTYwLDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGFkZE1lc3NhZ2VSZWNl
aXZlcihJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6Ok1lc3Nh
Z2VSZWNlaXZlciYgcmVjZWl2ZXIpIGZpbmFsIHsgbV9wcm9jZXNzLmFkZE1lc3NhZ2VSZWNlaXZl
cihtZXNzYWdlUmVjZWl2ZXJOYW1lLCByZWNlaXZlcik7IH0KICAgICB2b2lkIHJlbW92ZU1lc3Nh
Z2VSZWNlaXZlcihJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lKSBmaW5h
bCB7IG1fcHJvY2Vzcy5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIobWVzc2FnZVJlY2VpdmVyTmFtZSk7
IH0KICAgICBJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24oKSBmaW5hbCB7IHJldHVybiAqbV9w
cm9jZXNzLmNvbm5lY3Rpb24oKTsgfQotICAgIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlciYg
c2Vzc2lvbk1hbmFnZXIoKSBmaW5hbCB7IHJldHVybiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFn
ZXI6OnNoYXJlZE1hbmFnZXIoKTsgfQogCiAgICAgV2ViUHJvY2Vzc1Byb3h5JiBtX3Byb2Nlc3M7
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJN
ZWRpYVN0cmF0ZWd5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2Vi
TWVkaWFTdHJhdGVneS5jcHAKaW5kZXggMmFhZTVlNTQ0NTEwODQ3OWJkM2NkMzM5YWZhNmJmNmQy
ZGRhYmNmNi4uY2JmODMxNDgzYTQ2NTE0OWNkZGIxNWI4NTlmOWE1MTJjMDZiNzQzZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3Ry
YXRlZ3kuY3BwCkBAIC0zMCwxMiArMzAsNDIgQEAKICNpbmNsdWRlICJSZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uUHJveHkuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvRGVzdGluYXRpb24uaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0F1ZGlvSU9DYWxsYmFjay5oPgorI2luY2x1ZGUgPFdlYkNvcmUvQXVk
aW9TZXNzaW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9DRE1GYWN0b3J5Lmg+CiAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCiBXZWJNZWRpYVN0cmF0ZWd5Ojp+V2ViTWVkaWFTdHJhdGVneSgpID0gZGVm
YXVsdDsKIAorI2lmIFVTRShBVURJT19TRVNTSU9OKQorYm9vbCBXZWJNZWRpYVN0cmF0ZWd5Ojp0
cnlUb1NldEF1ZGlvU2Vzc2lvbkFzQWN0aXZlKGJvb2wgaXNBY3RpdmUpCit7CisjaWYgRU5BQkxF
KEdQVV9QUk9DRVNTKQorICAgIGlmIChtX3VzZUdQVVByb2Nlc3MpIHsKKyAgICAgICAgYXV0byYg
Y29ubmVjdGlvbiA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25u
ZWN0aW9uKCkuY29ubmVjdGlvbigpOworICAgICAgICBib29sIHJlc3VsdDsKKyAgICAgICAgY29u
bmVjdGlvbi5zZW5kU3luYyhNZXNzYWdlczo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6VHJ5
VG9TZXRBdWRpb1Nlc3Npb25Bc0FjdGl2ZSB7IGlzQWN0aXZlIH0sIE1lc3NhZ2VzOjpHUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpUcnlUb1NldEF1ZGlvU2Vzc2lvbkFzQWN0aXZlOjpSZXBseShy
ZXN1bHQpLCAwKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisjZW5kaWYKKyAgICBy
ZXR1cm4gQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkudHJ5VG9TZXRBY3RpdmUoaXNBY3Rp
dmUpOworfQorCit2b2lkIFdlYk1lZGlhU3RyYXRlZ3k6OnVwZGF0ZUF1ZGlvU2Vzc2lvblBhcmFt
ZXRlcnMoc2l6ZV90IGJ1ZmZlclNpemUsIE9wdGlvbmFsPEF1ZGlvU2Vzc2lvbkNhdGVnb3J5PiBj
YXRlZ29yeSwgT3B0aW9uYWw8Um91dGVTaGFyaW5nUG9saWN5PiBwb2xpY3kpCit7CisjaWYgRU5B
QkxFKEdQVV9QUk9DRVNTKQorICAgIGlmIChtX3VzZUdQVVByb2Nlc3MpIHsKKyAgICAgICAgYXV0
byYgY29ubmVjdGlvbiA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3ND
b25uZWN0aW9uKCkuY29ubmVjdGlvbigpOworICAgICAgICBjb25uZWN0aW9uLnNlbmQoTWVzc2Fn
ZXM6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlVwZGF0ZUF1ZGlvU2Vzc2lvblBhcmFtZXRl
cnMgeyBidWZmZXJTaXplLCBjYXRlZ29yeSwgcG9saWN5IH0sIDApOworICAgICAgICByZXR1cm47
CisgICAgfQorI2VuZGlmCisgICAgQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2V0UHJl
ZmVycmVkQnVmZmVyU2l6ZShidWZmZXJTaXplKTsKKyAgICBpZiAoY2F0ZWdvcnkgJiYgcG9saWN5
KQorICAgICAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zZXRDYXRlZ29yeSgqY2F0
ZWdvcnksICpwb2xpY3kpOworfQorI2VuZGlmCisKICNpZiBFTkFCTEUoV0VCX0FVRElPKQogc3Rk
Ojp1bmlxdWVfcHRyPFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb24+IFdlYk1lZGlhU3RyYXRlZ3k6
OmNyZWF0ZUF1ZGlvRGVzdGluYXRpb24oV2ViQ29yZTo6QXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFj
aywgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLAogICAgIHVuc2lnbmVkIG51bWJlck9mSW5w
dXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxl
UmF0ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2Vi
TWVkaWFTdHJhdGVneS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJN
ZWRpYVN0cmF0ZWd5LmgKaW5kZXggNGZhYjBlOTQ0ZmMxNGU2ODQzNzllMzAwODE2M2JlMTYyZGQ4
OWI0ZC4uOWFmNjAxYzg3MmVlNTgxMzZmOGJhMzY2OGExYTQ0ZGFlOWQ4Zjc1OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5
LmgKQEAgLTM4LDYgKzM4LDEwIEBAIHB1YmxpYzoKICNlbmRpZgogCiBwcml2YXRlOgorI2lmIFVT
RShBVURJT19TRVNTSU9OKQorICAgIGJvb2wgdHJ5VG9TZXRBdWRpb1Nlc3Npb25Bc0FjdGl2ZShi
b29sIGlzQWN0aXZlKSBmaW5hbDsKKyAgICB2b2lkIHVwZGF0ZUF1ZGlvU2Vzc2lvblBhcmFtZXRl
cnMoc2l6ZV90IGJ1ZmZlclNpemUsIE9wdGlvbmFsPFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbkNhdGVn
b3J5PiwgT3B0aW9uYWw8V2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5PikgZmluYWw7CisjZW5k
aWYKICNpZiBFTkFCTEUoV0VCX0FVRElPKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpB
dWRpb0Rlc3RpbmF0aW9uPiBjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKFdlYkNvcmU6OkF1ZGlvSU9D
YWxsYmFjayYsCiAgICAgICAgIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwgdW5zaWduZWQg
bnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBm
bG9hdCBzYW1wbGVSYXRlKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1BsdWdpbnMvV2ViUGx1Z2luQ29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1BsdWdpbnMvV2ViUGx1Z2luQ29udHJvbGxlci5tbQppbmRleCAzZjI2ZGQ2YzY0NzIx
NjZhYjJlM2JkM2FlNTIxMTBjMDMwMDkzYjBmLi4zNzBmOTNiYzg0ODk0ODI1ZjIxY2VlZDNmNmFk
Yzg2ZTZiNmVjMDA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5z
L1dlYlBsdWdpbkNvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1
Z2lucy9XZWJQbHVnaW5Db250cm9sbGVyLm1tCkBAIC0xMTEsNyArMTExLDcgQEAgc3RhdGljIHZv
aWQgaW5pdGlhbGl6ZUF1ZGlvU2Vzc2lvbigpCiAgICAgaWYgKCFXZWJDb3JlOjpJT1NBcHBsaWNh
dGlvbjo6aXNNb2JpbGVTYWZhcmkoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgV2ViQ29yZTo6
QXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2V0Q2F0ZWdvcnkoV2ViQ29yZTo6QXVkaW9T
ZXNzaW9uOjpNZWRpYVBsYXliYWNrLCBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3k6OkRlZmF1
bHQpOworICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldENhdGVn
b3J5KFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpNZWRpYVBsYXliYWNrLCBXZWJDb3Jl
OjpSb3V0ZVNoYXJpbmdQb2xpY3k6OkRlZmF1bHQpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRl
Z2llcy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRm
b3JtU3RyYXRlZ2llcy5tbQppbmRleCBiOTA5ZWNjNDM5YmNkM2M2ZjZkYTgwNDFjNmVmMjkzZmYz
NDY2OTZmLi44YTk1Y2Q4ZDcyNzVlNzBkZDgwY2Y0MmI5ZTBmYmI2NWNiZmZhYzUyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0
cmF0ZWdpZXMubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tCkBAIC0yOSw2ICsyOSw3IEBACiAjaW1wb3J0ICJXZWJQ
bHVnaW5QYWNrYWdlLmgiCiAjaW1wb3J0ICJXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaCIKICNp
bXBvcnQgPFdlYkNvcmUvQXVkaW9EZXN0aW5hdGlvbi5oPgorI2ltcG9ydCA8V2ViQ29yZS9BdWRp
b1Nlc3Npb24uaD4KICNpbXBvcnQgPFdlYkNvcmUvQmxvYlJlZ2lzdHJ5SW1wbC5oPgogI2ltcG9y
dCA8V2ViQ29yZS9DRE1GYWN0b3J5Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0NvbG9yLmg+CkBAIC02
Nyw2ICs2OCwyMCBAQCBQYXN0ZWJvYXJkU3RyYXRlZ3kqIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6
Y3JlYXRlUGFzdGVib2FyZFN0cmF0ZWd5KCkKIAogY2xhc3MgV2ViTWVkaWFTdHJhdGVneSBmaW5h
bCA6IHB1YmxpYyBNZWRpYVN0cmF0ZWd5IHsKIHByaXZhdGU6CisjaWYgVVNFKEFVRElPX1NFU1NJ
T04pCisgICAgYm9vbCB0cnlUb1NldEF1ZGlvU2Vzc2lvbkFzQWN0aXZlKGJvb2wgaXNBY3RpdmUp
IGZpbmFsCisgICAgeworICAgICAgICByZXR1cm4gQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9u
KCkudHJ5VG9TZXRBY3RpdmUoaXNBY3RpdmUpOworICAgIH0KKworICAgIHZvaWQgdXBkYXRlQXVk
aW9TZXNzaW9uUGFyYW1ldGVycyhzaXplX3QgYnVmZmVyU2l6ZSwgT3B0aW9uYWw8V2ViQ29yZTo6
QXVkaW9TZXNzaW9uQ2F0ZWdvcnk+IGNhdGVnb3J5LCBPcHRpb25hbDxXZWJDb3JlOjpSb3V0ZVNo
YXJpbmdQb2xpY3k+IHBvbGljeSkgZmluYWwKKyAgICB7CisgICAgICAgIGlmIChidWZmZXJTaXpl
KQorICAgICAgICAgICAgQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2V0UHJlZmVycmVk
QnVmZmVyU2l6ZShidWZmZXJTaXplKTsKKyAgICAgICAgaWYgKGNhdGVnb3J5ICYmIHBvbGljeSkK
KyAgICAgICAgICAgIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldENhdGVnb3J5KCpj
YXRlZ29yeSwgKnBvbGljeSk7CisgICAgfQorI2VuZGlmCiAjaWYgRU5BQkxFKFdFQl9BVURJTykK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlQXVkaW9EZXN0aW5h
dGlvbihBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNl
SWQsCiAgICAgICAgIHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVt
YmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSkgb3ZlcnJpZGUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0gYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCmluZGV4IGUy
MGVlNzQ0NWNhOWIzNTJmYTY3ZDg1ZjM0MWYyMjEyYTBkNjIwZTUuLjQ3NmM4ZjBiODFmODM3N2Y4
NTM1ZmE0NGViOGVjODY3M2Q1YWZkODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQpAQCAtNTQ0LDcgKzU0NCw3IEBAIHB1YmxpYzoK
ICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhCb29sOmFsbG93c0lubGluZU1lZGlhUGxheWJh
Y2tBZnRlckZ1bGxzY3JlZW5dLCBXZWJLaXRBbGxvd3NJbmxpbmVNZWRpYVBsYXliYWNrQWZ0ZXJG
dWxsc2NyZWVuUHJlZmVyZW5jZUtleSwKICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhCb29s
OnJlcXVpcmVzUGxheXNJbmxpbmVBdHRyaWJ1dGVdLCBXZWJLaXRJbmxpbmVNZWRpYVBsYXliYWNr
UmVxdWlyZXNQbGF5c0lubGluZUF0dHJpYnV0ZUtleSwKICAgICAgICAgQE5PLCBXZWJLaXRNZWRp
YUNvbnRyb2xzU2NhbGVXaXRoUGFnZVpvb21QcmVmZXJlbmNlS2V5LAotICAgICAgICBbTlNOdW1i
ZXIgbnVtYmVyV2l0aFVuc2lnbmVkSW50OkF1ZGlvU2Vzc2lvbjo6Tm9uZV0sIFdlYktpdEF1ZGlv
U2Vzc2lvbkNhdGVnb3J5T3ZlcnJpZGUsCisgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoVW5z
aWduZWRJbnQ6c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpOb25l
KV0sIFdlYktpdEF1ZGlvU2Vzc2lvbkNhdGVnb3J5T3ZlcnJpZGUsCiAgICAgICAgIEBOTywgV2Vi
S2l0TWVkaWFEYXRhTG9hZHNBdXRvbWF0aWNhbGx5UHJlZmVyZW5jZUtleSwKICNpZiBIQVZFKEFW
S0lUKQogICAgICAgICBAWUVTLCBXZWJLaXRBVktpdEVuYWJsZWQsCkBAIC0yNDIyLDM3ICsyNDIy
LDM4IEBAIHN0YXRpYyBOU1N0cmluZyAqY2xhc3NJQkNyZWF0b3JJRCA9IG5pbDsKICAgICByZXR1
cm4gW3NlbGYgX3Vuc2lnbmVkSW50VmFsdWVGb3JLZXk6V2ViS2l0QXVkaW9TZXNzaW9uQ2F0ZWdv
cnlPdmVycmlkZV07CiB9CiAKLS0gKHZvaWQpc2V0QXVkaW9TZXNzaW9uQ2F0ZWdvcnlPdmVycmlk
ZToodW5zaWduZWQpb3ZlcnJpZGUKKy0gKHZvaWQpc2V0QXVkaW9TZXNzaW9uQ2F0ZWdvcnlPdmVy
cmlkZToodW5zaWduZWQpb3ZlcnJpZGVWYWx1ZQogewotICAgIGlmIChvdmVycmlkZSA+IEF1ZGlv
U2Vzc2lvbjo6QXVkaW9Qcm9jZXNzaW5nKSB7CisgICAgYXV0byBvdmVycmlkZSA9IHN0YXRpY19j
YXN0PEF1ZGlvU2Vzc2lvbkNhdGVnb3J5PihvdmVycmlkZVZhbHVlKTsKKyAgICBpZiAob3ZlcnJp
ZGVWYWx1ZSA+IHN0YXRpY19jYXN0PHVuc2lnbmVkPihBdWRpb1Nlc3Npb25DYXRlZ29yeTo6QXVk
aW9Qcm9jZXNzaW5nKSkgewogICAgICAgICAvLyBDbGllbnRzIGFyZSBwYXNzaW5nIHVzIE9TVHlw
ZXMgdmFsdWVzIGZyb20gQXVkaW9Ub29sYm94L0F1ZGlvU2Vzc2lvbi5oLAotICAgICAgICAvLyB3
aGljaCBuZWVkIHRvIGJlIHRyYW5zbGF0ZWQgaW50byBBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlw
ZToKLSAgICAgICAgc3dpdGNoIChvdmVycmlkZSkgeworICAgICAgICAvLyB3aGljaCBuZWVkIHRv
IGJlIHRyYW5zbGF0ZWQgaW50byBBdWRpb1Nlc3Npb25DYXRlZ29yeToKKyAgICAgICAgc3dpdGNo
IChvdmVycmlkZVZhbHVlKSB7CiAgICAgICAgIGNhc2UgV2ViS2l0QXVkaW9TZXNzaW9uQ2F0ZWdv
cnlBbWJpZW50U291bmQ6Ci0gICAgICAgICAgICBvdmVycmlkZSA9IEF1ZGlvU2Vzc2lvbjo6QW1i
aWVudFNvdW5kOworICAgICAgICAgICAgb3ZlcnJpZGUgPSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6
QW1iaWVudFNvdW5kOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgV2ViS2l0QXVk
aW9TZXNzaW9uQ2F0ZWdvcnlTb2xvQW1iaWVudFNvdW5kOgotICAgICAgICAgICAgb3ZlcnJpZGUg
PSBBdWRpb1Nlc3Npb246OlNvbG9BbWJpZW50U291bmQ7CisgICAgICAgICAgICBvdmVycmlkZSA9
IEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpTb2xvQW1iaWVudFNvdW5kOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIGNhc2UgV2ViS2l0QXVkaW9TZXNzaW9uQ2F0ZWdvcnlNZWRpYVBsYXliYWNr
OgotICAgICAgICAgICAgb3ZlcnJpZGUgPSBBdWRpb1Nlc3Npb246Ok1lZGlhUGxheWJhY2s7Cisg
ICAgICAgICAgICBvdmVycmlkZSA9IEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpNZWRpYVBsYXliYWNr
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgV2ViS2l0QXVkaW9TZXNzaW9uQ2F0
ZWdvcnlSZWNvcmRBdWRpbzoKLSAgICAgICAgICAgIG92ZXJyaWRlID0gQXVkaW9TZXNzaW9uOjpS
ZWNvcmRBdWRpbzsKKyAgICAgICAgICAgIG92ZXJyaWRlID0gQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6
OlJlY29yZEF1ZGlvOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgV2ViS2l0QXVk
aW9TZXNzaW9uQ2F0ZWdvcnlQbGF5QW5kUmVjb3JkOgotICAgICAgICAgICAgb3ZlcnJpZGUgPSBB
dWRpb1Nlc3Npb246OlBsYXlBbmRSZWNvcmQ7CisgICAgICAgICAgICBvdmVycmlkZSA9IEF1ZGlv
U2Vzc2lvbkNhdGVnb3J5OjpQbGF5QW5kUmVjb3JkOwogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIGNhc2UgV2ViS2l0QXVkaW9TZXNzaW9uQ2F0ZWdvcnlBdWRpb1Byb2Nlc3Npbmc6Ci0gICAg
ICAgICAgICBvdmVycmlkZSA9IEF1ZGlvU2Vzc2lvbjo6QXVkaW9Qcm9jZXNzaW5nOworICAgICAg
ICAgICAgb3ZlcnJpZGUgPSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6QXVkaW9Qcm9jZXNzaW5nOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBvdmVycmlk
ZSA9IEF1ZGlvU2Vzc2lvbjo6Tm9uZTsKKyAgICAgICAgICAgIG92ZXJyaWRlID0gQXVkaW9TZXNz
aW9uQ2F0ZWdvcnk6Ok5vbmU7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0K
IAotICAgIFtzZWxmIF9zZXRVbnNpZ25lZEludFZhbHVlOm92ZXJyaWRlIGZvcktleTpXZWJLaXRB
dWRpb1Nlc3Npb25DYXRlZ29yeU92ZXJyaWRlXTsKKyAgICBbc2VsZiBfc2V0VW5zaWduZWRJbnRW
YWx1ZTpzdGF0aWNfY2FzdDx1bnNpZ25lZD4ob3ZlcnJpZGUpIGZvcktleTpXZWJLaXRBdWRpb1Nl
c3Npb25DYXRlZ29yeU92ZXJyaWRlXTsKIH0KIAogLSAoQk9PTClhdktpdEVuYWJsZWQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392441</attachid>
            <date>2020-03-04 10:58:51 -0800</date>
            <delta_ts>2020-03-05 04:59:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208578-20200304195848.patch</filename>
            <type>text/plain</type>
            <size>63321</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3ODM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzNhODhkNjVmYjEzYTYx
Y2RmNjNmNjY2OTU0MjU1MDgzN2YzOWFiOS4uOTc0NGI3NmNhMDVhNjVmMGIxNzlmZGJmYmRhM2Ux
Y2YyZTM4YmQwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDIwLTAzLTA0ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBFeHBvcnQgQXVkaW9TZXNz
aW9uIGNvbW1hbmRzIHRvIEdQVVByb2Nlc3Mgd2hlbiBtZWRpYSBwbGF5aW5nIGlzIGVuYWJsZWQg
aW4gR1BVUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjA4NTc4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkIHR3byBjb21tYW5kcyB0byBtZWRpYSBzdHJhdGVnaWVzIHRvIHNldCB0aGUgQXVk
aW9TZXNzaW9uIHBhcmFtZXRlcnMgYW5kIGFjdGl2YXRlL2RlYWN0aXZhdGUgdGhlIEF1ZGlvU2Vz
c2lvbi4KKyAgICAgICAgVXBkYXRlIGNvZGUgdG8gbWFrZSBBdWRpb1Nlc3Npb246OkNhdGVnb3J5
VHlwZSBhbmQgZW51bSBjbGFzcywgcmVuYW1lZCBBdWRpb1Nlc3Npb25DYXRlZ29yeS4KKyAgICAg
ICAgQWN0dWFsIGltcGxlbWVudGF0aW9uIG9mIHRoZSBjb21tYW5kcyBpcyBsZWZ0IGluIE1lZGlh
U2Vzc2lvbk1hbmFnZXJDb2NvYSBhcyBzdGF0aWMgbWV0aG9kcyB0aGF0IGNhbiBiZSB1c2VkIGlu
IHByb2Nlc3Mgb3Igb3V0IG9mIHByb2Nlc3MuCisKKyAgICAgICAgTWFudWFsbHkgdGVzdGVkIGFu
ZCBjb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBhZ2UvRGVwcmVjYXRlZEdsb2JhbFNldHRp
bmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlcHJlY2F0ZWRHbG9iYWxTZXR0aW5nczo6c2V0
QXVkaW9TZXNzaW9uQ2F0ZWdvcnlPdmVycmlkZSk6CisgICAgICAgIChXZWJDb3JlOjpEZXByZWNh
dGVkR2xvYmFsU2V0dGluZ3M6OmF1ZGlvU2Vzc2lvbkNhdGVnb3J5T3ZlcnJpZGUpOgorICAgICAg
ICAqIHBsYXRmb3JtL01lZGlhU3RyYXRlZ3kuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9B
dWRpb1Nlc3Npb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpjYXRlZ29y
eU92ZXJyaWRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6c2V0Q2F0
ZWdvcnlPdmVycmlkZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Nlc3Npb246OmNhdGVnb3J5
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzZXNzaW9uV2lsbEJlZ2luUGxheWJh
Y2spOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpwcm9j
ZXNzRGlkUmVzdW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uTWFu
YWdlcjo6bWF5YmVEZWFjdGl2YXRlQXVkaW9TZXNzaW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9h
dWRpby9jb2NvYS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EubW06CisgICAgICAgIChNZWRpYVNl
c3Npb25NYW5hZ2VyQ29jb2E6OnVwZGF0ZVNlc3Npb25TdGF0ZSk6CisgICAgICAgICogcGxhdGZv
cm0vYXVkaW8vaW9zL0F1ZGlvU2Vzc2lvbklPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OmNhdGVn
b3J5TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Nlc3Npb25Qcml2YXRlOjpBdWRpb1Nl
c3Npb25Qcml2YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdv
cnkpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpjYXRlZ29yeSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5T3ZlcnJpZGUpOgorICAg
ICAgICAoV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpjYXRlZ29yeU92ZXJyaWRlIGNvbnN0KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlcmlPUzo6cHJvdmlkZVByZXNlbnRpbmdB
cHBsaWNhdGlvblBJRElmTmVjZXNzYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lv
bk1hbmFnZXJpT1M6OnByb3ZpZGVQcmVzZW50aW5nQXBwbGljYXRpb25QSUQpOgorICAgICAgICAq
IHBsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb1Nlc3Npb25NYWMuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QXVkaW9TZXNzaW9uOjpjYXRlZ29yeSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRp
b1Nlc3Npb246OnNldENhdGVnb3J5KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6
Y2F0ZWdvcnlPdmVycmlkZSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL0Jhc2VBdWRpb1NoYXJlZFVuaXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmFzZUF1ZGlv
U2hhcmVkVW5pdDo6c3RhcnRVbml0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFs
dGltZUF1ZGlvU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZUF1ZGlv
U291cmNlOjpzdGFydFByb2R1Y2luZ0RhdGEpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxz
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6YXVkaW9TZXNzaW9uQ2F0ZWdvcnkg
Y29uc3QpOgorCiAyMDIwLTAzLTAzICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4K
IAogICAgICAgICBXZWIgSW5zcGVjdG9yOiByZS1hZGQgYEluc3BlY3RvckZyb250ZW5kSG9zdGAg
c3VwcG9ydCBmb3IgbW92aW5nIHRoZSBpbnNwZWN0ZWQgd2luZG93CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDdmNDk3
N2YzNzI3MDZkMzMwYWFlZjFjMzkzMzUwMGFjNDA2NDI5MjUuLmM3MTE3ZGRlOWQ2ZDFlNWE4Mjg0
MWY3Y2Q4YTc5YjNlMzBkYmZiM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMjAtMDMt
MDQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEV4cG9ydCBB
dWRpb1Nlc3Npb24gY29tbWFuZHMgdG8gR1BVUHJvY2VzcyB3aGVuIG1lZGlhIHBsYXlpbmcgaXMg
ZW5hYmxlZCBpbiBHUFVQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDg1NzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBTZW5kIElQQyBjb21tYW5kcyByZWxhdGVkIHRvIEF1ZGlvU2Vzc2lvbiBm
cm9tIFdlYlByb2Nlc3MgdG8gR1BVUHJvY2VzcyBhbmQgZG8gdGhlIGFjdHVhbCB3b3JrIGluIEdQ
VVByb2Nlc3MuCisgICAgICAgIFdlIGtlZXAgYSBzeW5jIElQQyBmb3Igbm93IHdoZW4gYWN0aXZh
dGluZyB0aGUgQXVkaW9TZXNzaW9uIGFuZCB3aWxsIHRyeSB0byByZW1vdmUgaXQgaW4gYSBmb2xs
b3ctdXAKKyAgICAgICAgVG8gbWFrZSB0aGlzIHdvcmssIHdlIHJlbW92ZSB0aGUgdXNlciBvZiBN
ZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EgaW4gR1BVUHJvY2Vzcywgd2hpY2ggd2FzIHVzZWQgZm9y
IGNhcHR1cmUuCisgICAgICAgIFdlIHJlcGxhY2UgaXQgYnkgZWl0aGVyIGRlZGljYXRlZCBjYWxs
cyBvciBieSB0aGUgY29tbWFuZHMgdGhhdCBhcmUgbm93IGNvbWluZyBmcm9tIFdlYlByb2Nlc3Mu
CisKKyAgICAgICAgKiBHUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjp0cnlUb1NldEF1ZGlv
U2Vzc2lvbkFzQWN0aXZlKToKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6dXBkYXRlQXVkaW9TZXNzaW9uUGFyYW1ldGVycyk6CisgICAgICAgICogR1BVUHJvY2Vz
cy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9D
b2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U291cmNlUHJveHk6OlNvdXJjZVByb3h5KToK
KyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U291cmNlUHJv
eHk6On5Tb3VyY2VQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHk6OmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50
cyk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNsb25l
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAq
IFdlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJNZWRpYVN0cmF0ZWd5Ojp0cnlUb1NldEF1ZGlvU2Vzc2lvbkFzQWN0aXZlKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViTWVkaWFTdHJhdGVneTo6dXBkYXRlQXVkaW9TZXNzaW9uUGFyYW1l
dGVycyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5o
OgorCiAyMDIwLTAzLTAzICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAg
ICAgICBXZWIgSW5zcGVjdG9yOiByZS1hZGQgYEluc3BlY3RvckZyb250ZW5kSG9zdGAgc3VwcG9y
dCBmb3IgbW92aW5nIHRoZSBpbnNwZWN0ZWQgd2luZG93CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VM
b2cKaW5kZXggMTY3ZmZjN2JiNTBiOWJhM2QyNTViZjA5NzY4YjM0YTk2ZDg3OTQzMS4uOWRhMjEw
M2NlZmNkMzBhOGQwMjZmMGZiYzMwYTY4ZjdmNTM0ZjUwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIwLTAzLTA0ICBZb3Vlbm4gRmFibGV0ICA8eW91
ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBFeHBvcnQgQXVkaW9TZXNzaW9uIGNvbW1hbmRzIHRv
IEdQVVByb2Nlc3Mgd2hlbiBtZWRpYSBwbGF5aW5nIGlzIGVuYWJsZWQgaW4gR1BVUHJvY2Vzcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4NTc4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIGluLXBy
b2Nlc3MgaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgKiBQbHVnaW5zL1dlYlBsdWdpbkNvbnRy
b2xsZXIubW06CisgICAgICAgIChpbml0aWFsaXplQXVkaW9TZXNzaW9uKToKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW06CisgICAgICAgICogV2ViVmll
dy9XZWJQcmVmZXJlbmNlcy5tbToKKyAgICAgICAgKCtbV2ViUHJlZmVyZW5jZXMgaW5pdGlhbGl6
ZV0pOgorICAgICAgICAoLVtXZWJQcmVmZXJlbmNlcyBzZXRBdWRpb1Nlc3Npb25DYXRlZ29yeU92
ZXJyaWRlOl0pOgorCiAyMDIwLTAzLTAzICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNv
bT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiByZS1hZGQgYEluc3BlY3RvckZyb250ZW5kSG9z
dGAgc3VwcG9ydCBmb3IgbW92aW5nIHRoZSBpbnNwZWN0ZWQgd2luZG93CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFr
ZQppbmRleCBkYmFhMWQ3YzA2NGE4Y2Q2ZTkzYTQzYmU1YWUyNjIwZTVkMjk2ODI2Li4xZmE2NjJm
NTVmY2I3MzNmYTNmNTY4NjFmZDdkY2M0ZmM5NDI4NWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAg
LTEwMjksMTEgKzEwMjksMTMgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVS
UwogICAgIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvSGFyZHdhcmVMaXN0ZW5lci5oCiAgICAgcGxhdGZv
cm0vYXVkaW8vQXVkaW9JT0NhbGxiYWNrLmgKICAgICBwbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Np
b24uaAorICAgIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbkNhdGVnb3J5LmgKICAgICBwbGF0
Zm9ybS9hdWRpby9BdWRpb1NvdXJjZVByb3ZpZGVyLmgKICAgICBwbGF0Zm9ybS9hdWRpby9BdWRp
b1N0cmVhbURlc2NyaXB0aW9uLmgKICAgICBwbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybUF1ZGlvRGF0
YS5oCiAgICAgcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb24uaAogICAgIHBsYXRm
b3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oCisgICAgcGxhdGZvcm0vYXVk
aW8vUm91dGVTaGFyaW5nUG9saWN5LmgKIAogICAgIHBsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NE
TUVuY3J5cHRpb25TY2hlbWUuaAogICAgIHBsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NETUZhY3Rv
cnkuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IGRmMDIzZWJkNGVkZGJmNjkzNDA1NzIzNjk3YWRlOWJmNTM5Njg1ODkuLjE0NWM0
MWFkZGQ2MjJjMDY3OGFlY2QzN2VkZTQyMzU5MjQwNmE2MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEwOTEsNiArMTA5MSw4
IEBACiAJCTQxNzYxMkIxMUUzQTk5NDAwMEMzRDgxRCAvKiBMaWJXZWJSVENQZWVyQ29ubmVjdGlv
bkJhY2tlbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDE3NjEyQUQxRTNBOTkzQjAwQzNEODFEIC8qIExpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFj
a2VuZC5jcHAgKi87IH07CiAJCTQxNzYxMkIyMUUzQTk5NDAwMEMzRDgxRCAvKiBMaWJXZWJSVENQ
ZWVyQ29ubmVjdGlvbkJhY2tlbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQxNzYxMkFFMUUzQTk5M0IwMEMzRDgxRCAvKiBMaWJXZWJSVENQZWVyQ29u
bmVjdGlvbkJhY2tlbmQuaCAqLzsgfTsKIAkJNDE3NkU4OTYyM0MzNTM3QjAwM0U4M0ZFIC8qIE1l
ZGlhUmVjb3JkZXJQcm92aWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDE3NkU4OEYyM0MzNDhEMjAwM0U4M0ZFIC8qIE1lZGlhUmVjb3JkZXJQcm92
aWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJ
CTQxNzhFRUZDMjQxMDAxRkQwMDE5M0M3NCAvKiBBdWRpb1Nlc3Npb25DYXRlZ29yeS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE3OEVFRjgyNDBGRUE4
RDAwMTkzQzc0IC8qIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDE3OEVFRkUyNDEwMDIwOTAwMTkzQzc0IC8q
IFJvdXRlU2hhcmluZ1BvbGljeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDE3OEVFRkEyNDBGRUVFODAwMTkzQzc0IC8qIFJvdXRlU2hhcmluZ1BvbGlj
eS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQx
N0RBNkQ5MTM3MzRFNkUwMDdDNTdGQiAvKiBJbnRlcm5hbHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE3REE0Q0YxMzczNDMyNjAwN0M1N0ZCIC8q
IEludGVybmFscy5jcHAgKi87IH07CiAJCTQxN0RBNkRBMTM3MzRFNkUwMDdDNTdGQiAvKiBJbnRl
cm5hbHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQx
N0RBNENFMTM3MzQzMjYwMDdDNTdGQiAvKiBJbnRlcm5hbHMuaCAqLzsgfTsKIAkJNDE3REE3MUQx
MzczNURGQTAwN0M1N0ZCIC8qIEpTSW50ZXJuYWxzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxN0RBNzFCMTM3MzVERkEwMDdDNTdGQiAvKiBKU0lu
dGVybmFscy5jcHAgKi87IH07CkBAIC03MzgxLDYgKzczODMsOCBAQAogCQk0MTc3MDQwQjIzRjcw
Q0FCMDAwQzU0RUUgLyogTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0MTc3RjUxQzIzODI1NDQwMDBDMDQ0ODYgLyogQmFzZUF1ZGlv
U2hhcmVkVW5pdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCYXNl
QXVkaW9TaGFyZWRVbml0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE3N0Y1
MUUyMzgyNTQ1RTAwQzA0NDg2IC8qIEJhc2VBdWRpb1NoYXJlZFVuaXQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQmFzZUF1ZGlvU2hhcmVkVW5pdC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk0MTc4RUVGODI0MEZFQThEMDAxOTNDNzQgLyogQXVkaW9TZXNzaW9u
Q2F0ZWdvcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9TZXNzaW9u
Q2F0ZWdvcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE3OEVFRkEyNDBGRUVF
ODAwMTkzQzc0IC8qIFJvdXRlU2hhcmluZ1BvbGljeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBSb3V0ZVNoYXJpbmdQb2xpY3kuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDE3REE0Q0UxMzczNDMyNjAwN0M1N0ZCIC8qIEludGVybmFscy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBJbnRlcm5hbHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDE3REE0Q0YxMzczNDMyNjAwN0M1N0ZCIC8qIEludGVybmFscy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnRlcm5hbHMuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0MTdEQTZEMDEzNzM0RTAyMDA3QzU3RkIgLyogbGliV2ViQ29y
ZVRlc3RTdXBwb3J0LmR5bGliICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0
RmlsZVR5cGUgPSAiY29tcGlsZWQubWFjaC1vLmR5bGliIjsgaW5jbHVkZUluSW5kZXggPSAwOyBw
YXRoID0gbGliV2ViQ29yZVRlc3RTdXBwb3J0LmR5bGliOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJP
RFVDVFNfRElSOyB9OwpAQCAtMjg3MzUsNiArMjg3MzksNyBAQAogCQkJCUZEMzE2MDUyMTJCMDI2
RjcwMEMxQTM1OSAvKiBBdWRpb1Jlc2FtcGxlcktlcm5lbC5oICovLAogCQkJCUNEQTc5ODIzMTcw
QTI1ODMwMEQ0NUM1NSAvKiBBdWRpb1Nlc3Npb24uY3BwICovLAogCQkJCUNEQTc5ODIxMTcwQTIy
REMwMEQ0NUM1NSAvKiBBdWRpb1Nlc3Npb24uaCAqLywKKwkJCQk0MTc4RUVGODI0MEZFQThEMDAx
OTNDNzQgLyogQXVkaW9TZXNzaW9uQ2F0ZWdvcnkuaCAqLywKIAkJCQlGRDMxNjA1MzEyQjAyNkY3
MDBDMUEzNTkgLyogQXVkaW9Tb3VyY2VQcm92aWRlci5oICovLAogCQkJCUZENjJGNTJEMTQ1ODk4
RDgwMDk0QjBFRCAvKiBBdWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50LmggKi8sCiAJCQkJMDczQjg3
NTYxRTQwRENFNTAwNzFDMEVDIC8qIEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaCAqLywKQEAgLTI4
NzkwLDYgKzI4Nzk1LDcgQEAKIAkJCQlGRDMxNjA3NTEyQjAyNkY3MDBDMUEzNTkgLyogUmV2ZXJi
Q29udm9sdmVyU3RhZ2UuaCAqLywKIAkJCQlGRDMxNjA3NjEyQjAyNkY3MDBDMUEzNTkgLyogUmV2
ZXJiSW5wdXRCdWZmZXIuY3BwICovLAogCQkJCUZEMzE2MDc3MTJCMDI2RjcwMEMxQTM1OSAvKiBS
ZXZlcmJJbnB1dEJ1ZmZlci5oICovLAorCQkJCTQxNzhFRUZBMjQwRkVFRTgwMDE5M0M3NCAvKiBS
b3V0ZVNoYXJpbmdQb2xpY3kuaCAqLywKIAkJCQlGRDAwRDdBMjE0QTNGNjE5MDA3MzQwMTEgLyog
U2luY1Jlc2FtcGxlci5jcHAgKi8sCiAJCQkJRkQwMEQ3QTMxNEEzRjYxOTAwNzM0MDExIC8qIFNp
bmNSZXNhbXBsZXIuaCAqLywKIAkJCQlGRDE3NjJERDE3NjY4NkQ5MDBEODM2QTggLyogVXBTYW1w
bGVyLmNwcCAqLywKQEAgLTI5MTE1LDYgKzI5MTIxLDcgQEAKIAkJCQkwNzNCODc2OTFFNDM4NUFD
MDA3MUMwRUMgLyogQXVkaW9TYW1wbGVEYXRhU291cmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlG
RDhDNDZFQzE1NDYwOEU3MDBBNTkxMEMgLyogQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlLmggaW4g
SGVhZGVycyAqLywKIAkJCQlDREE3OTgyQTE3MEEzRDAwMDBENDVDNTUgLyogQXVkaW9TZXNzaW9u
LmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTc4RUVGQzI0MTAwMUZEMDAxOTNDNzQgLyogQXVkaW9T
ZXNzaW9uQ2F0ZWdvcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2MDg5MTJCMDI2RjcwMEMx
QTM1OSAvKiBBdWRpb1NvdXJjZVByb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDhBN0JC
QzE5NzczNUZFMDBDQkQ2NDMgLyogQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUZENjJGNTJFMTQ1ODk4RDgwMDk0QjBFRCAvKiBBdWRpb1NvdXJjZVByb3Zp
ZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTMyMTY2LDYgKzMyMTczLDcgQEAKIAkJCQlB
OENGRjVFMTBBMTU1QTA1MDAwQTQyMzQgLyogUm9vdElubGluZUJveC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNDlFOTExQzkwRUY4NkQ0NzAwOUQwQ0FGIC8qIFJvdGF0ZVRyYW5zZm9ybU9wZXJhdGlv
bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTczRjk1RkYxMkM5N0JGRTAwMzFBQUY5IC8qIFJvdW5k
ZWRSZWN0LmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTc4RUVGRTI0MTAwMjA5MDAxOTNDNzQgLyog
Um91dGVTaGFyaW5nUG9saWN5LmggaW4gSGVhZGVycyAqLywKIAkJCQk1N0UyMzM2MzFEQzdEQTI0
MDBGMjhEMDEgLyogUnNhT3RoZXJQcmltZXNJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQkwN0FC
OTk2OTE4REEzQzAxMDAxODc3MUUgLyogUlRDQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNDE4MjA1NDcxRTUzRTk4QzAwRDYyMjA3IC8qIFJUQ0NvbnRyb2xsZXIuaCBpbiBIZWFk
ZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EZXByZWNhdGVkR2xvYmFs
U2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EZXByZWNhdGVkR2xvYmFsU2V0dGlu
Z3MuY3BwCmluZGV4IGNmNGNjYzgwZTkzOTM2ZDU2OGNkNTUwZTAyOGI2ODE1MmViOTRkMmQuLjY4
NzllMmQwMjA5MjZlNGQwZWQ3MTcxMzYwZmExYzc0NDM3MGE0MWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RlcHJlY2F0ZWRHbG9iYWxTZXR0aW5ncy5jcHAKQEAgLTE2MiwxMiArMTYy
LDEyIEBAIHZvaWQgRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzOjpzZXRSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRW5hYmxlZChib29sIGZsYWcpCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKIHZvaWQg
RGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzOjpzZXRBdWRpb1Nlc3Npb25DYXRlZ29yeU92ZXJyaWRl
KHVuc2lnbmVkIHNlc3Npb25DYXRlZ29yeSkKIHsKLSAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNl
c3Npb24oKS5zZXRDYXRlZ29yeU92ZXJyaWRlKHN0YXRpY19jYXN0PEF1ZGlvU2Vzc2lvbjo6Q2F0
ZWdvcnlUeXBlPihzZXNzaW9uQ2F0ZWdvcnkpKTsKKyAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNl
c3Npb24oKS5zZXRDYXRlZ29yeU92ZXJyaWRlKHN0YXRpY19jYXN0PEF1ZGlvU2Vzc2lvbkNhdGVn
b3J5PihzZXNzaW9uQ2F0ZWdvcnkpKTsKIH0KIAogdW5zaWduZWQgRGVwcmVjYXRlZEdsb2JhbFNl
dHRpbmdzOjphdWRpb1Nlc3Npb25DYXRlZ29yeU92ZXJyaWRlKCkKIHsKLSAgICByZXR1cm4gQXVk
aW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuY2F0ZWdvcnlPdmVycmlkZSgpOworICAgIHJldHVy
biBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuY2F0
ZWdvcnlPdmVycmlkZSgpKTsKIH0KIAogdm9pZCBEZXByZWNhdGVkR2xvYmFsU2V0dGluZ3M6OnNl
dE5ldHdvcmtEYXRhVXNhZ2VUcmFja2luZ0VuYWJsZWQoYm9vbCB0cmFja2luZ0VuYWJsZWQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZWRpYVN0cmF0ZWd5LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9NZWRpYVN0cmF0ZWd5LmgKaW5kZXggNjBhNTg0N2M4Y2VjMTBi
NzliNzQ5YTZmYWY4NTAzZDE2YTE5OWI5NS4uNjJkODg0MDIxZDMyNTViYmNiNmY5NGVkZWE4Mzg5
MDhjNmE1MWY4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVkaWFTdHJh
dGVneS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lZGlhU3RyYXRlZ3kuaApAQCAt
MjUsNiArMjUsOCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkF1ZGlvU2Vzc2lvbkNh
dGVnb3J5LmgiCisjaW5jbHVkZSAiUm91dGVTaGFyaW5nUG9saWN5LmgiCiAjaW5jbHVkZSA8d3Rm
L0ZvcndhcmQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzUsNiArMzcsMTAgQEAgY2xh
c3MgQ0RNRmFjdG9yeTsKIAogY2xhc3MgV0VCQ09SRV9FWFBPUlQgTWVkaWFTdHJhdGVneSB7CiBw
dWJsaWM6CisjaWYgVVNFKEFVRElPX1NFU1NJT04pCisgICAgdmlydHVhbCBib29sIHRyeVRvU2V0
QXVkaW9TZXNzaW9uQXNBY3RpdmUoYm9vbCBpc0FjdGl2ZSkgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCB1cGRhdGVBdWRpb1Nlc3Npb25QYXJhbWV0ZXJzKHNpemVfdCBidWZmZXJTaXplLCBPcHRpb25h
bDxBdWRpb1Nlc3Npb25DYXRlZ29yeT4sIE9wdGlvbmFsPFJvdXRlU2hhcmluZ1BvbGljeT4pID0g
MDsKKyNlbmRpZgogI2lmIEVOQUJMRShXRUJfQVVESU8pCiAgICAgdmlydHVhbCBzdGQ6OnVuaXF1
ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlQXVkaW9EZXN0aW5hdGlvbigKICAgICAgICAg
QXVkaW9JT0NhbGxiYWNrJiwgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLCB1bnNpZ25lZCBu
dW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZs
b2F0IHNhbXBsZVJhdGUpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL0F1ZGlvU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9B
dWRpb1Nlc3Npb24uY3BwCmluZGV4IGI1ZmI1ODA2NDhmOWNmOGVjNGYxODZmYWZhNDhlMTNmZGNm
MmY1N2QuLjBmMjU4NmJjMjA4ZWQyNGJkYTY2ZTNhY2JkMjNjMjFkOTQ3OTYyZGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmNwcApAQCAtNjEsMjYg
KzYxLDI2IEBAIEF1ZGlvU2Vzc2lvbjo6QXVkaW9TZXNzaW9uKCkKIAogQXVkaW9TZXNzaW9uOjp+
QXVkaW9TZXNzaW9uKCkgPSBkZWZhdWx0OwogCi12b2lkIEF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdv
cnkoQ2F0ZWdvcnlUeXBlLCBSb3V0ZVNoYXJpbmdQb2xpY3kpCit2b2lkIEF1ZGlvU2Vzc2lvbjo6
c2V0Q2F0ZWdvcnkoQXVkaW9TZXNzaW9uQ2F0ZWdvcnksIFJvdXRlU2hhcmluZ1BvbGljeSkKIHsK
ICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi1BdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBB
dWRpb1Nlc3Npb246OmNhdGVnb3J5T3ZlcnJpZGUoKSBjb25zdAorQXVkaW9TZXNzaW9uQ2F0ZWdv
cnkgQXVkaW9TZXNzaW9uOjpjYXRlZ29yeU92ZXJyaWRlKCkgY29uc3QKIHsKICAgICBub3RJbXBs
ZW1lbnRlZCgpOwotICAgIHJldHVybiBOb25lOworICAgIHJldHVybiBBdWRpb1Nlc3Npb25DYXRl
Z29yeTo6Tm9uZTsKIH0KIAotdm9pZCBBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5T3ZlcnJpZGUo
Q2F0ZWdvcnlUeXBlKQordm9pZCBBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5T3ZlcnJpZGUoQXVk
aW9TZXNzaW9uQ2F0ZWdvcnkpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotQXVkaW9T
ZXNzaW9uOjpDYXRlZ29yeVR5cGUgQXVkaW9TZXNzaW9uOjpjYXRlZ29yeSgpIGNvbnN0CitBdWRp
b1Nlc3Npb25DYXRlZ29yeSBBdWRpb1Nlc3Npb246OmNhdGVnb3J5KCkgY29uc3QKIHsKICAgICBu
b3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBOb25lOworICAgIHJldHVybiBBdWRpb1Nlc3Np
b25DYXRlZ29yeTo6Tm9uZTsKIH0KIAogZmxvYXQgQXVkaW9TZXNzaW9uOjpzYW1wbGVSYXRlKCkg
Y29uc3QKQEAgLTE0Niw3ICsxNDYsNyBAQCBTdHJpbmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJp
bmcoUm91dGVTaGFyaW5nUG9saWN5IGVudW1lcmF0aW9uVmFsdWUpCiAgICAgcmV0dXJuIHZhbHVl
c1tzdGF0aWNfY2FzdDxzaXplX3Q+KGVudW1lcmF0aW9uVmFsdWUpXTsKIH0KIAotU3RyaW5nIGNv
bnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIGVudW1l
cmF0aW9uVmFsdWUpCitTdHJpbmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoQXVkaW9TZXNz
aW9uQ2F0ZWdvcnkgZW51bWVyYXRpb25WYWx1ZSkKIHsKICAgICBzdGF0aWMgY29uc3QgTmV2ZXJE
ZXN0cm95ZWQ8U3RyaW5nPiB2YWx1ZXNbXSA9IHsKICAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5H
X0lNUEwoIk5vbmUiKSwKQEAgLTE1NywxMyArMTU3LDEzIEBAIFN0cmluZyBjb252ZXJ0RW51bWVy
YXRpb25Ub1N0cmluZyhBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBlbnVtZXJhdGlvblZhbHVl
KQogICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiUGxheUFuZFJlY29yZCIpLAogICAg
ICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiQXVkaW9Qcm9jZXNzaW5nIiksCiAgICAgfTsK
LSAgICBzdGF0aWNfYXNzZXJ0KCFzdGF0aWNfY2FzdDxzaXplX3Q+KEF1ZGlvU2Vzc2lvbjo6Q2F0
ZWdvcnlUeXBlOjpOb25lKSwgIkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpOb25lIGlzIG5v
dCAwIGFzIGV4cGVjdGVkIik7Ci0gICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+
KEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpBbWJpZW50U291bmQpID09IDEsICJBdWRpb1Nl
c3Npb246OkNhdGVnb3J5VHlwZTo6QW1iaWVudFNvdW5kIGlzIG5vdCAxIGFzIGV4cGVjdGVkIik7
Ci0gICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KEF1ZGlvU2Vzc2lvbjo6Q2F0
ZWdvcnlUeXBlOjpTb2xvQW1iaWVudFNvdW5kKSA9PSAyLCAiQXVkaW9TZXNzaW9uOjpDYXRlZ29y
eVR5cGU6OlNvbG9BbWJpZW50U291bmQgaXMgbm90IDIgYXMgZXhwZWN0ZWQiKTsKLSAgICBzdGF0
aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6
Ok1lZGlhUGxheWJhY2spID09IDMsICJBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6TWVkaWFQ
bGF5YmFjayBpcyBub3QgMyBhcyBleHBlY3RlZCIpOwotICAgIHN0YXRpY19hc3NlcnQoc3RhdGlj
X2Nhc3Q8c2l6ZV90PihBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6UmVjb3JkQXVkaW8pID09
IDQsICJBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6UmVjb3JkQXVkaW8gaXMgbm90IDQgYXMg
ZXhwZWN0ZWQiKTsKLSAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oQXVkaW9T
ZXNzaW9uOjpDYXRlZ29yeVR5cGU6OlBsYXlBbmRSZWNvcmQpID09IDUsICJBdWRpb1Nlc3Npb246
OkNhdGVnb3J5VHlwZTo6UGxheUFuZFJlY29yZCBpcyBub3QgNSBhcyBleHBlY3RlZCIpOwotICAg
IHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihBdWRpb1Nlc3Npb246OkNhdGVnb3J5
VHlwZTo6QXVkaW9Qcm9jZXNzaW5nKSA9PSA2LCAiQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6
OkF1ZGlvUHJvY2Vzc2luZyBpcyBub3QgNiBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3Nl
cnQoIXN0YXRpY19jYXN0PHNpemVfdD4oQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6Ok5vbmUpLCAiQXVk
aW9TZXNzaW9uQ2F0ZWdvcnk6Ok5vbmUgaXMgbm90IDAgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0
aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6OkFtYmll
bnRTb3VuZCkgPT0gMSwgIkF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpBbWJpZW50U291bmQgaXMgbm90
IDEgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4o
QXVkaW9TZXNzaW9uQ2F0ZWdvcnk6OlNvbG9BbWJpZW50U291bmQpID09IDIsICJBdWRpb1Nlc3Np
b25DYXRlZ29yeTo6U29sb0FtYmllbnRTb3VuZCBpcyBub3QgMiBhcyBleHBlY3RlZCIpOworICAg
IHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihBdWRpb1Nlc3Npb25DYXRlZ29yeTo6
TWVkaWFQbGF5YmFjaykgPT0gMywgIkF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpNZWRpYVBsYXliYWNr
IGlzIG5vdCAzIGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxz
aXplX3Q+KEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpSZWNvcmRBdWRpbykgPT0gNCwgIkF1ZGlvU2Vz
c2lvbkNhdGVnb3J5OjpSZWNvcmRBdWRpbyBpcyBub3QgNCBhcyBleHBlY3RlZCIpOworICAgIHN0
YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihBdWRpb1Nlc3Npb25DYXRlZ29yeTo6UGxh
eUFuZFJlY29yZCkgPT0gNSwgIkF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpQbGF5QW5kUmVjb3JkIGlz
IG5vdCA1IGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXpl
X3Q+KEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpBdWRpb1Byb2Nlc3NpbmcpID09IDYsICJBdWRpb1Nl
c3Npb25DYXRlZ29yeTo6QXVkaW9Qcm9jZXNzaW5nIGlzIG5vdCA2IGFzIGV4cGVjdGVkIik7CiAg
ICAgQVNTRVJUKHN0YXRpY19jYXN0PHNpemVfdD4oZW51bWVyYXRpb25WYWx1ZSkgPCBXVEZfQVJS
QVlfTEVOR1RIKHZhbHVlcykpOwogICAgIHJldHVybiB2YWx1ZXNbc3RhdGljX2Nhc3Q8c2l6ZV90
PihlbnVtZXJhdGlvblZhbHVlKV07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L0F1ZGlvU2Vzc2lvbi5oCmluZGV4IGU3MDA4MjJmZjFmZWViZDc4MjlhZWM3NTBjY2U0MGE2MGI5
MjU2NmEuLjk5OTIwZjAyYTU5ZDE4MGM5YmZjYTc3NGRkNTYyNTY0OWI1OGExZGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5oCkBAIC0yNyw2ICsyNyw4
IEBACiAKICNpZiBVU0UoQVVESU9fU0VTU0lPTikKIAorI2luY2x1ZGUgIkF1ZGlvU2Vzc2lvbkNh
dGVnb3J5LmgiCisjaW5jbHVkZSAiUm91dGVTaGFyaW5nUG9saWN5LmgiCiAjaW5jbHVkZSA8bWVt
b3J5PgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJv
eWVkLmg+CkBAIC0zNywzMyArMzksMTcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBB
dWRpb1Nlc3Npb25Qcml2YXRlOwogCi1lbnVtIGNsYXNzIFJvdXRlU2hhcmluZ1BvbGljeSA6IHVp
bnQ4X3QgewotICAgIERlZmF1bHQsCi0gICAgTG9uZ0Zvcm1BdWRpbywKLSAgICBJbmRlcGVuZGVu
dCwKLSAgICBMb25nRm9ybVZpZGVvCi19OwotCiBjbGFzcyBBdWRpb1Nlc3Npb24gZmluYWwgewog
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEF1
ZGlvU2Vzc2lvbik7CiBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIEF1ZGlvU2Vz
c2lvbiYgc2hhcmVkU2Vzc2lvbigpOwogCi0gICAgZW51bSBDYXRlZ29yeVR5cGUgewotICAgICAg
ICBOb25lLAotICAgICAgICBBbWJpZW50U291bmQsCi0gICAgICAgIFNvbG9BbWJpZW50U291bmQs
Ci0gICAgICAgIE1lZGlhUGxheWJhY2ssCi0gICAgICAgIFJlY29yZEF1ZGlvLAotICAgICAgICBQ
bGF5QW5kUmVjb3JkLAotICAgICAgICBBdWRpb1Byb2Nlc3NpbmcsCi0gICAgfTsKLSAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHNldENhdGVnb3J5KENhdGVnb3J5VHlwZSwgUm91dGVTaGFyaW5nUG9s
aWN5KTsKLSAgICBXRUJDT1JFX0VYUE9SVCBDYXRlZ29yeVR5cGUgY2F0ZWdvcnkoKSBjb25zdDsK
KyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldENhdGVnb3J5KEF1ZGlvU2Vzc2lvbkNhdGVnb3J5
LCBSb3V0ZVNoYXJpbmdQb2xpY3kpOworICAgIFdFQkNPUkVfRVhQT1JUIEF1ZGlvU2Vzc2lvbkNh
dGVnb3J5IGNhdGVnb3J5KCkgY29uc3Q7CiAKLSAgICB2b2lkIHNldENhdGVnb3J5T3ZlcnJpZGUo
Q2F0ZWdvcnlUeXBlKTsKLSAgICBDYXRlZ29yeVR5cGUgY2F0ZWdvcnlPdmVycmlkZSgpIGNvbnN0
OworICAgIHZvaWQgc2V0Q2F0ZWdvcnlPdmVycmlkZShBdWRpb1Nlc3Npb25DYXRlZ29yeSk7Cisg
ICAgQXVkaW9TZXNzaW9uQ2F0ZWdvcnkgY2F0ZWdvcnlPdmVycmlkZSgpIGNvbnN0OwogCiAgICAg
Um91dGVTaGFyaW5nUG9saWN5IHJvdXRlU2hhcmluZ1BvbGljeSgpIGNvbnN0OwogICAgIFN0cmlu
ZyByb3V0aW5nQ29udGV4dFVJRCgpIGNvbnN0OwpAQCAtNzIsMTAgKzU4LDEwIEBAIHB1YmxpYzoK
ICAgICBzaXplX3QgYnVmZmVyU2l6ZSgpIGNvbnN0OwogICAgIHNpemVfdCBudW1iZXJPZk91dHB1
dENoYW5uZWxzKCkgY29uc3Q7CiAKLSAgICBib29sIHRyeVRvU2V0QWN0aXZlKGJvb2wpOworICAg
IFdFQkNPUkVfRVhQT1JUIGJvb2wgdHJ5VG9TZXRBY3RpdmUoYm9vbCk7CiAKICAgICBXRUJDT1JF
X0VYUE9SVCBzaXplX3QgcHJlZmVycmVkQnVmZmVyU2l6ZSgpIGNvbnN0OwotICAgIHZvaWQgc2V0
UHJlZmVycmVkQnVmZmVyU2l6ZShzaXplX3QpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0
UHJlZmVycmVkQnVmZmVyU2l6ZShzaXplX3QpOwogCiAgICAgY2xhc3MgTXV0ZWRTdGF0ZU9ic2Vy
dmVyIHsKICAgICBwdWJsaWM6CkBAIC0xMDQsNDEgKzkwLDYgQEAgcHJpdmF0ZToKICAgICBib29s
IG1fYWN0aXZlIHsgZmFsc2UgfTsgLy8gVXNlZCBvbmx5IGZvciB0ZXN0aW5nLgogfTsKIAotU3Ry
aW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKFJvdXRlU2hhcmluZ1BvbGljeSk7Ci1TdHJp
bmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUp
OwotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLW5hbWVzcGFjZSBXVEYgewotdGVtcGxhdGU8
PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3k+IHsKLSAgICB1
c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAotICAgIFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGlj
eSwKLSAgICBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3k6OkRlZmF1bHQsCi0gICAgV2ViQ29y
ZTo6Um91dGVTaGFyaW5nUG9saWN5OjpMb25nRm9ybUF1ZGlvLAotICAgIFdlYkNvcmU6OlJvdXRl
U2hhcmluZ1BvbGljeTo6SW5kZXBlbmRlbnQsCi0gICAgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9s
aWN5OjpMb25nRm9ybVZpZGVvCi0gICAgPjsKLX07Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFR5cGU+
Ci1zdHJ1Y3QgTG9nQXJndW1lbnQ7Ci0KLXRlbXBsYXRlIDw+Ci1zdHJ1Y3QgTG9nQXJndW1lbnQ8
V2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5PiB7Ci0gICAgc3RhdGljIFN0cmluZyB0b1N0cmlu
Zyhjb25zdCBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3kgcG9saWN5KQotICAgIHsKLSAgICAg
ICAgcmV0dXJuIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKHBvbGljeSk7Ci0gICAgfQotfTsK
LQotdGVtcGxhdGUgPD4KLXN0cnVjdCBMb2dBcmd1bWVudDxXZWJDb3JlOjpBdWRpb1Nlc3Npb246
OkNhdGVnb3J5VHlwZT4gewotICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29uc3QgV2ViQ29y
ZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUgY2F0ZWdvcnkpCi0gICAgewotICAgICAgICBy
ZXR1cm4gY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoY2F0ZWdvcnkpOwotICAgIH0KLX07Ci0K
LX0gLy8gbmFtZXNwYWNlIFdURgotCiAjZW5kaWYgLy8gVVNFKEFVRElPX1NFU1NJT04pCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb25DYXRlZ29y
eS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uQ2F0ZWdvcnku
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4wNjEyMWI2NDg2YmUwNmI3MzAxNTdmNDViN2IwZDI5MmVkY2Q0YmYzCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNz
aW9uQ2F0ZWdvcnkuaApAQCAtMCwwICsxLDc3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpZiBVU0UoQVVESU9fU0VTU0lPTikKKworI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+
CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworZW51bSBjbGFzcyBBdWRpb1Nlc3Npb25DYXRlZ29yeSA6IHVpbnQ4X3QgeworICAgIE5vbmUs
CisgICAgQW1iaWVudFNvdW5kLAorICAgIFNvbG9BbWJpZW50U291bmQsCisgICAgTWVkaWFQbGF5
YmFjaywKKyAgICBSZWNvcmRBdWRpbywKKyAgICBQbGF5QW5kUmVjb3JkLAorICAgIEF1ZGlvUHJv
Y2Vzc2luZworfTsKKworU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKEF1ZGlvU2Vz
c2lvbkNhdGVnb3J5KTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCituYW1lc3BhY2UgV1RG
IHsKKwordGVtcGxhdGU8dHlwZW5hbWUgVHlwZT4KK3N0cnVjdCBMb2dBcmd1bWVudDsKKwordGVt
cGxhdGUgPD4KK3N0cnVjdCBMb2dBcmd1bWVudDxXZWJDb3JlOjpBdWRpb1Nlc3Npb25DYXRlZ29y
eT4geworICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29uc3QgV2ViQ29yZTo6QXVkaW9TZXNz
aW9uQ2F0ZWdvcnkgY2F0ZWdvcnkpCisgICAgeworICAgICAgICByZXR1cm4gY29udmVydEVudW1l
cmF0aW9uVG9TdHJpbmcoY2F0ZWdvcnkpOworICAgIH0KK307CisKK3RlbXBsYXRlPD4gc3RydWN0
IEVudW1UcmFpdHM8V2ViQ29yZTo6QXVkaW9TZXNzaW9uQ2F0ZWdvcnk+IHsKKyAgICB1c2luZyB2
YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb25DYXRlZ29y
eSwKKyAgICAgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uQ2F0ZWdvcnk6Ok5vbmUsCisgICAgICAg
IFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpBbWJpZW50U291bmQsCisgICAgICAgIFdl
YkNvcmU6OkF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpTb2xvQW1iaWVudFNvdW5kLAorICAgICAgICBX
ZWJDb3JlOjpBdWRpb1Nlc3Npb25DYXRlZ29yeTo6TWVkaWFQbGF5YmFjaywKKyAgICAgICAgV2Vi
Q29yZTo6QXVkaW9TZXNzaW9uQ2F0ZWdvcnk6OlJlY29yZEF1ZGlvLAorICAgICAgICBXZWJDb3Jl
OjpBdWRpb1Nlc3Npb25DYXRlZ29yeTo6UGxheUFuZFJlY29yZCwKKyAgICAgICAgV2ViQ29yZTo6
QXVkaW9TZXNzaW9uQ2F0ZWdvcnk6OkF1ZGlvUHJvY2Vzc2luZworICAgID47Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXVEYKKworI2VuZGlmIC8vIFVTRShBVURJT19TRVNTSU9OKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5h
Z2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNz
aW9uTWFuYWdlci5jcHAKaW5kZXggNWY0MDQ1N2M3NWY3MWJhYjJjNzNlNjEyOWMxMGFmZWZlMGM1
NTc2NS4uMTU1ZTVlMWUzMDA0OGEzZjg5ZjJhZDgwYThjMmRjMjUxOTVlNzQ0NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5h
Z2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlh
U2Vzc2lvbk1hbmFnZXIuY3BwCkBAIC0yOSw3ICsyOSw5IEBACiAjaW5jbHVkZSAiQXVkaW9TZXNz
aW9uLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5j
bHVkZSAiTWVkaWFTdHJhdGVneS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTWVkaWFTZXNzaW9uLmgi
CisjaW5jbHVkZSAiUGxhdGZvcm1TdHJhdGVnaWVzLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IApAQCAtMjIwLDcgKzIyMiw3IEBAIGJvb2wgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpz
ZXNzaW9uV2lsbEJlZ2luUGxheWJhY2soUGxhdGZvcm1NZWRpYVNlc3Npb24mCiAKICNpZiBVU0Uo
QVVESU9fU0VTU0lPTikKICAgICBpZiAoYWN0aXZlQXVkaW9TZXNzaW9uUmVxdWlyZWQoKSkgewot
ICAgICAgICBpZiAoIUF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnRyeVRvU2V0QWN0aXZl
KHRydWUpKSB7CisgICAgICAgIGlmICghcGxhdGZvcm1TdHJhdGVnaWVzKCktPm1lZGlhU3RyYXRl
Z3koKS50cnlUb1NldEF1ZGlvU2Vzc2lvbkFzQWN0aXZlKHRydWUpKSB7CiAgICAgICAgICAgICBB
TFdBWVNfTE9HKExPR0lERU5USUZJRVIsIHNlc3Npb24ubG9nSWRlbnRpZmllcigpLCAiIHJldHVy
bmluZyBmYWxzZSBmYWlsZWQgdG8gc2V0IGFjdGl2ZSBBdWRpb1Nlc3Npb24iKTsKICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQpAQCAtMzkzLDcgKzM5NSw3IEBAIHZvaWQgUGxh
dGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpwcm9jZXNzRGlkUmVzdW1lKCkKIAogI2lmIFVTRShB
VURJT19TRVNTSU9OKQogICAgIGlmICghbV9iZWNhbWVBY3RpdmUgJiYgYWN0aXZlQXVkaW9TZXNz
aW9uUmVxdWlyZWQoKSkgewotICAgICAgICBtX2JlY2FtZUFjdGl2ZSA9IEF1ZGlvU2Vzc2lvbjo6
c2hhcmVkU2Vzc2lvbigpLnRyeVRvU2V0QWN0aXZlKHRydWUpOworICAgICAgICBtX2JlY2FtZUFj
dGl2ZSA9IHBsYXRmb3JtU3RyYXRlZ2llcygpLT5tZWRpYVN0cmF0ZWd5KCkudHJ5VG9TZXRBdWRp
b1Nlc3Npb25Bc0FjdGl2ZSh0cnVlKTsKICAgICAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVS
LCAidHJpZWQgdG8gc2V0IGFjdGl2ZSBBdWRpb1Nlc3Npb24sICIsIG1fYmVjYW1lQWN0aXZlID8g
InN1Y2NlZWRlZCIgOiAiZmFpbGVkIik7CiAgICAgfQogI2VuZGlmCkBAIC01NjcsNyArNTY5LDcg
QEAgdm9pZCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6Om1heWJlRGVhY3RpdmF0ZUF1ZGlv
U2Vzc2lvbigpCiAgICAgICAgIHJldHVybjsKIAogICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklF
UiwgInRyaWVkIHRvIHNldCBpbmFjdGl2ZSBBdWRpb1Nlc3Npb24iKTsKLSAgICBBdWRpb1Nlc3Np
b246OnNoYXJlZFNlc3Npb24oKS50cnlUb1NldEFjdGl2ZShmYWxzZSk7CisgICAgcGxhdGZvcm1T
dHJhdGVnaWVzKCktPm1lZGlhU3RyYXRlZ3koKS50cnlUb1NldEF1ZGlvU2Vzc2lvbkFzQWN0aXZl
KGZhbHNlKTsKICAgICBtX2JlY2FtZUFjdGl2ZSA9IGZhbHNlOwogfQogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9Sb3V0ZVNoYXJpbmdQb2xpY3kuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1JvdXRlU2hhcmluZ1BvbGljeS5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjkwYzIwZjQwMmQxZjQ0MjRhNzM0NjJhYzRlZWJjMTdjNmZiYjE1ZDAKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9Sb3V0ZVNoYXJpbmdQb2xp
Y3kuaApAQCAtMCwwICsxLDcwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBV
U0UoQVVESU9fU0VTU0lPTikKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisjaW5jbHVkZSA8d3Rm
L0VudW1UcmFpdHMuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworZW51bSBj
bGFzcyBSb3V0ZVNoYXJpbmdQb2xpY3kgOiB1aW50OF90IHsKKyAgICBEZWZhdWx0LAorICAgIExv
bmdGb3JtQXVkaW8sCisgICAgSW5kZXBlbmRlbnQsCisgICAgTG9uZ0Zvcm1WaWRlbworfTsKKwor
U3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKFJvdXRlU2hhcmluZ1BvbGljeSk7CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworbmFtZXNwYWNlIFdURiB7Cit0ZW1wbGF0ZTw+IHN0
cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeT4geworICAgIHVzaW5n
IHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5LAor
ICAgIFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeTo6RGVmYXVsdCwKKyAgICBXZWJDb3JlOjpS
b3V0ZVNoYXJpbmdQb2xpY3k6OkxvbmdGb3JtQXVkaW8sCisgICAgV2ViQ29yZTo6Um91dGVTaGFy
aW5nUG9saWN5OjpJbmRlcGVuZGVudCwKKyAgICBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3k6
OkxvbmdGb3JtVmlkZW8KKyAgICA+OworfTsKKwordGVtcGxhdGU8dHlwZW5hbWUgVHlwZT4KK3N0
cnVjdCBMb2dBcmd1bWVudDsKKwordGVtcGxhdGUgPD4KK3N0cnVjdCBMb2dBcmd1bWVudDxXZWJD
b3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3k+IHsKKyAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNv
bnN0IFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeSBwb2xpY3kpCisgICAgeworICAgICAgICBy
ZXR1cm4gY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcocG9saWN5KTsKKyAgICB9Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXVEYKKworI2VuZGlmIC8vIFVTRShBVURJT19TRVNTSU9OKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvTWVkaWFTZXNzaW9uTWFu
YWdlckNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvTWVkaWFT
ZXNzaW9uTWFuYWdlckNvY29hLm1tCmluZGV4IGViMTlhOWJmOWMwMzM4YWFhYjNlNzhmYjM2OGIw
NzcyNjVlMWQxZDguLjg2MWE3OGUwYTAxMWVhZjNjZGI4M2QyZjNmY2QzNjQ0NWUwZTZhMjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL01lZGlhU2Vzc2lv
bk1hbmFnZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2Nv
YS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EubW0KQEAgLTMzLDcgKzMzLDkgQEAKICNpbmNsdWRl
ICJIVE1MTWVkaWFFbGVtZW50LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1l
ZGlhUGxheWVyLmgiCisjaW5jbHVkZSAiTWVkaWFTdHJhdGVneS5oIgogI2luY2x1ZGUgIlBsYXRm
b3JtTWVkaWFTZXNzaW9uLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJhdGVnaWVzLmgiCiAjaW5j
bHVkZSA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24u
aD4KIApAQCAtNzAsMjcgKzcyLDI3IEBAIHZvaWQgTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hOjp1
cGRhdGVTZXNzaW9uU3RhdGUoKQogICAgICAgICAiVmlkZW9BdWRpbygiLCB2aWRlb0F1ZGlvQ291
bnQsICIpLCAiCiAgICAgICAgICJXZWJBdWRpbygiLCB3ZWJBdWRpb0NvdW50LCAiKSIpOwogCisg
ICAgc2l6ZV90IGJ1ZmZlclNpemUgPSAwOwogICAgIGlmICh3ZWJBdWRpb0NvdW50KQotICAgICAg
ICBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zZXRQcmVmZXJyZWRCdWZmZXJTaXplKGtX
ZWJBdWRpb0J1ZmZlclNpemUpOworICAgICAgICBidWZmZXJTaXplID0ga1dlYkF1ZGlvQnVmZmVy
U2l6ZTsKICAgICAvLyBJbiBjYXNlIG9mIGF1ZGlvIGNhcHR1cmUsIHdlIHdhbnQgdG8gZ3JhYiAy
MCBtcyBjaHVua3MgdG8gbGltaXQgdGhlIGxhdGVuY3kgc28gdGhhdCBpdCBpcyBub3Qgbm90aWNl
YWJsZSBieSB1c2VycwogICAgIC8vIHdoaWxlIGhhdmluZyBhIGxhcmdlIGVub3VnaCBidWZmZXIg
c28gdGhhdCB0aGUgYXVkaW8gcmVuZGVyaW5nIHJlbWFpbnMgc3RhYmxlLCBoZW5jZSBhIGNvbXB1
dGF0aW9uIGJhc2VkIG9uIHNhbXBsZSByYXRlLgogICAgIGVsc2UgaWYgKGNhcHR1cmVDb3VudCkK
LSAgICAgICAgQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2V0UHJlZmVycmVkQnVmZmVy
U2l6ZShBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zYW1wbGVSYXRlKCkgLyA1MCk7Cisg
ICAgICAgIGJ1ZmZlclNpemUgPSBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zYW1wbGVS
YXRlKCkgLyA1MDsKICAgICBlbHNlIGlmICgodmlkZW9BdWRpb0NvdW50IHx8IGF1ZGlvQ291bnQp
ICYmIERlcHJlY2F0ZWRHbG9iYWxTZXR0aW5nczo6bG93UG93ZXJWaWRlb0F1ZGlvQnVmZmVyU2l6
ZUVuYWJsZWQoKSkgewogICAgICAgICAvLyBGSVhNRTogPGh0dHA6Ly93ZWJraXQub3JnL2IvMTE2
NzI1PiBGaWd1cmUgb3V0IHdoeSBlbmFibGluZyB0aGUgY29kZSBiZWxvdwogICAgICAgICAvLyBj
YXVzZXMgbWVkaWEgTGF5b3V0VGVzdHMgdG8gZmFpbCBvbiAxMC44LgogCi0gICAgICAgIHNpemVf
dCBidWZmZXJTaXplOwogICAgICAgICBpZiAobV9hdWRpb0hhcmR3YXJlTGlzdGVuZXIgJiYgbV9h
dWRpb0hhcmR3YXJlTGlzdGVuZXItPm91dHB1dERldmljZVN1cHBvcnRzTG93UG93ZXJNb2RlKCkp
CiAgICAgICAgICAgICBidWZmZXJTaXplID0ga0xvd1Bvd2VyVmlkZW9CdWZmZXJTaXplOwogICAg
ICAgICBlbHNlCiAgICAgICAgICAgICBidWZmZXJTaXplID0ga1dlYkF1ZGlvQnVmZmVyU2l6ZTsK
LQotICAgICAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zZXRQcmVmZXJyZWRCdWZm
ZXJTaXplKGJ1ZmZlclNpemUpOwogICAgIH0KIAotICAgIGlmICghRGVwcmVjYXRlZEdsb2JhbFNl
dHRpbmdzOjpzaG91bGRNYW5hZ2VBdWRpb1Nlc3Npb25DYXRlZ29yeSgpKQorICAgIGlmICghRGVw
cmVjYXRlZEdsb2JhbFNldHRpbmdzOjpzaG91bGRNYW5hZ2VBdWRpb1Nlc3Npb25DYXRlZ29yeSgp
KSB7CisgICAgICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5tZWRpYVN0cmF0ZWd5KCkudXBkYXRl
QXVkaW9TZXNzaW9uUGFyYW1ldGVycyhidWZmZXJTaXplLCB7IH0sIHsgfSk7CiAgICAgICAgIHJl
dHVybjsKKyAgICB9CiAKICAgICBib29sIGhhc0F1ZGlibGVBdWRpb09yVmlkZW9NZWRpYVR5cGUg
PSBmYWxzZTsKICAgICBmb3JFYWNoU2Vzc2lvbihbJmhhc0F1ZGlibGVBdWRpb09yVmlkZW9NZWRp
YVR5cGVdIChhdXRvJiBzZXNzaW9uKSBtdXRhYmxlIHsKQEAgLTEwMiwxNyArMTA0LDE3IEBAIHZv
aWQgTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hOjp1cGRhdGVTZXNzaW9uU3RhdGUoKQogICAgIH0p
OwogCiAgICAgUm91dGVTaGFyaW5nUG9saWN5IHBvbGljeSA9IFJvdXRlU2hhcmluZ1BvbGljeTo6
RGVmYXVsdDsKLSAgICBBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBjYXRlZ29yeSA9IEF1ZGlv
U2Vzc2lvbjo6Tm9uZTsKKyAgICBhdXRvIGNhdGVnb3J5ID0gQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6
Ok5vbmU7CiAgICAgaWYgKGNhcHR1cmVDb3VudCkKLSAgICAgICAgY2F0ZWdvcnkgPSBBdWRpb1Nl
c3Npb246OlBsYXlBbmRSZWNvcmQ7CisgICAgICAgIGNhdGVnb3J5ID0gQXVkaW9TZXNzaW9uQ2F0
ZWdvcnk6OlBsYXlBbmRSZWNvcmQ7CiAgICAgZWxzZSBpZiAoaGFzQXVkaWJsZUF1ZGlvT3JWaWRl
b01lZGlhVHlwZSkgewotICAgICAgICBjYXRlZ29yeSA9IEF1ZGlvU2Vzc2lvbjo6TWVkaWFQbGF5
YmFjazsKKyAgICAgICAgY2F0ZWdvcnkgPSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6TWVkaWFQbGF5
YmFjazsKICAgICAgICAgcG9saWN5ID0gUm91dGVTaGFyaW5nUG9saWN5OjpMb25nRm9ybUF1ZGlv
OwogICAgIH0gZWxzZSBpZiAod2ViQXVkaW9Db3VudCkKLSAgICAgICAgY2F0ZWdvcnkgPSBBdWRp
b1Nlc3Npb246OkFtYmllbnRTb3VuZDsKLQorICAgICAgICBjYXRlZ29yeSA9IEF1ZGlvU2Vzc2lv
bkNhdGVnb3J5OjpBbWJpZW50U291bmQ7CiAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCAi
c2V0dGluZyBjYXRlZ29yeSA9ICIsIGNhdGVnb3J5LCAiLCBwb2xpY3kgPSAiLCBwb2xpY3kpOwot
ICAgIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldENhdGVnb3J5KGNhdGVnb3J5LCBw
b2xpY3kpOworCisgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPm1lZGlhU3RyYXRlZ3koKS51cGRh
dGVBdWRpb1Nlc3Npb25QYXJhbWV0ZXJzKGJ1ZmZlclNpemUsIGNhdGVnb3J5LCBwb2xpY3kpOwog
fQogCiB2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYTo6YmVnaW5JbnRlcnJ1cHRpb24oUGxh
dGZvcm1NZWRpYVNlc3Npb246OkludGVycnVwdGlvblR5cGUgdHlwZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb1Nlc3Npb25JT1MubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9TZXNzaW9uSU9TLm1tCmluZGV4IGQ2
YzAwN2Y0MGI1ZmI3NjM3MjJkNTM4YWRlZDAyZDFiODFhMTg4NTQuLjQ3NTE3YjJmNDNjNGMzN2M1
NDFhYWYxZDFhYmJlNTg2MTE5OWU0MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL2lvcy9BdWRpb1Nlc3Npb25JT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vaW9zL0F1ZGlvU2Vzc2lvbklPUy5tbQpAQCAtNDAsMTcgKzQwLDE3IEBACiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKICNpZiAhTE9HX0RJU0FCTEVECi1zdGF0aWMgY29uc3QgY2hh
ciogY2F0ZWdvcnlOYW1lKEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIGNhdGVnb3J5KQorc3Rh
dGljIGNvbnN0IGNoYXIqIGNhdGVnb3J5TmFtZShBdWRpb1Nlc3Npb25DYXRlZ29yeSBjYXRlZ29y
eSkKIHsKICNkZWZpbmUgQ0FTRShjYXRlZ29yeSkgY2FzZSBBdWRpb1Nlc3Npb246OmNhdGVnb3J5
OiByZXR1cm4gI2NhdGVnb3J5CiAgICAgc3dpdGNoIChjYXRlZ29yeSkgewotICAgICAgICBDQVNF
KE5vbmUpOwotICAgICAgICBDQVNFKEFtYmllbnRTb3VuZCk7Ci0gICAgICAgIENBU0UoU29sb0Ft
YmllbnRTb3VuZCk7Ci0gICAgICAgIENBU0UoTWVkaWFQbGF5YmFjayk7Ci0gICAgICAgIENBU0Uo
UmVjb3JkQXVkaW8pOwotICAgICAgICBDQVNFKFBsYXlBbmRSZWNvcmQpOwotICAgICAgICBDQVNF
KEF1ZGlvUHJvY2Vzc2luZyk7CisgICAgICAgIENBU0UoQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6Ok5v
bmUpOworICAgICAgICBDQVNFKEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpBbWJpZW50U291bmQpOwor
ICAgICAgICBDQVNFKEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpTb2xvQW1iaWVudFNvdW5kKTsKKyAg
ICAgICAgQ0FTRShBdWRpb1Nlc3Npb25DYXRlZ29yeTo6TWVkaWFQbGF5YmFjayk7CisgICAgICAg
IENBU0UoQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6OlJlY29yZEF1ZGlvKTsKKyAgICAgICAgQ0FTRShB
dWRpb1Nlc3Npb25DYXRlZ29yeTo6UGxheUFuZFJlY29yZCk7CisgICAgICAgIENBU0UoQXVkaW9T
ZXNzaW9uQ2F0ZWdvcnk6OkF1ZGlvUHJvY2Vzc2luZyk7CiAgICAgfQogICAgIAogICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwpAQCAtNjIsMTIgKzYyLDEyIEBAIGNsYXNzIEF1ZGlvU2Vzc2lvblBy
aXZhdGUgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIEF1ZGlv
U2Vzc2lvblByaXZhdGUoQXVkaW9TZXNzaW9uKik7Ci0gICAgQXVkaW9TZXNzaW9uOjpDYXRlZ29y
eVR5cGUgbV9jYXRlZ29yeU92ZXJyaWRlOworICAgIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5IG1fY2F0
ZWdvcnlPdmVycmlkZTsKICAgICBPU09iamVjdFB0cjxkaXNwYXRjaF9xdWV1ZV90PiBtX2Rpc3Bh
dGNoUXVldWU7CiB9OwogCiBBdWRpb1Nlc3Npb25Qcml2YXRlOjpBdWRpb1Nlc3Npb25Qcml2YXRl
KEF1ZGlvU2Vzc2lvbiopCi0gICAgOiBtX2NhdGVnb3J5T3ZlcnJpZGUoQXVkaW9TZXNzaW9uOjpO
b25lKQorICAgIDogbV9jYXRlZ29yeU92ZXJyaWRlKEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpOb25l
KQogewogfQogCkBAIC04MCw3ICs4MCw3IEBAIEF1ZGlvU2Vzc2lvbjo6fkF1ZGlvU2Vzc2lvbigp
CiB7CiB9CiAKLXZvaWQgQXVkaW9TZXNzaW9uOjpzZXRDYXRlZ29yeShDYXRlZ29yeVR5cGUgbmV3
Q2F0ZWdvcnksIFJvdXRlU2hhcmluZ1BvbGljeSBwb2xpY3kpCit2b2lkIEF1ZGlvU2Vzc2lvbjo6
c2V0Q2F0ZWdvcnkoQXVkaW9TZXNzaW9uQ2F0ZWdvcnkgbmV3Q2F0ZWdvcnksIFJvdXRlU2hhcmlu
Z1BvbGljeSBwb2xpY3kpCiB7CiAjaWYgIUhBVkUoUk9VVEVfU0hBUklOR19QT0xJQ1lfTE9OR19G
T1JNX1ZJREVPKQogICAgIGlmIChwb2xpY3kgPT0gUm91dGVTaGFyaW5nUG9saWN5OjpMb25nRm9y
bVZpZGVvKQpAQCAtODksNyArODksNyBAQCB2b2lkIEF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnko
Q2F0ZWdvcnlUeXBlIG5ld0NhdGVnb3J5LCBSb3V0ZVNoYXJpbmdQb2xpY3kgcG9saQogCiAgICAg
TE9HKE1lZGlhLCAiQXVkaW9TZXNzaW9uOjpzZXRDYXRlZ29yeSgpIC0gY2F0ZWdvcnkgPSAlcyIs
IGNhdGVnb3J5TmFtZShuZXdDYXRlZ29yeSkpOwogCi0gICAgaWYgKGNhdGVnb3J5T3ZlcnJpZGUo
KSAmJiBjYXRlZ29yeU92ZXJyaWRlKCkgIT0gbmV3Q2F0ZWdvcnkpIHsKKyAgICBpZiAoY2F0ZWdv
cnlPdmVycmlkZSgpICE9IEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpOb25lICYmIGNhdGVnb3J5T3Zl
cnJpZGUoKSAhPSBuZXdDYXRlZ29yeSkgewogICAgICAgICBMT0coTWVkaWEsICJBdWRpb1Nlc3Np
b246OnNldENhdGVnb3J5KCkgLSBvdmVycmlkZSBzZXQsIE5PVCBjaGFuZ2luZyIpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQpAQCAtOTksMjcgKzk5LDI3IEBAIHZvaWQgQXVkaW9TZXNzaW9uOjpz
ZXRDYXRlZ29yeShDYXRlZ29yeVR5cGUgbmV3Q2F0ZWdvcnksIFJvdXRlU2hhcmluZ1BvbGljeSBw
b2xpCiAgICAgQVZBdWRpb1Nlc3Npb25DYXRlZ29yeU9wdGlvbnMgb3B0aW9ucyA9IDA7CiAKICAg
ICBzd2l0Y2ggKG5ld0NhdGVnb3J5KSB7Ci0gICAgY2FzZSBBbWJpZW50U291bmQ6CisgICAgY2Fz
ZSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6QW1iaWVudFNvdW5kOgogICAgICAgICBjYXRlZ29yeVN0
cmluZyA9IEFWQXVkaW9TZXNzaW9uQ2F0ZWdvcnlBbWJpZW50OwogICAgICAgICBicmVhazsKLSAg
ICBjYXNlIFNvbG9BbWJpZW50U291bmQ6CisgICAgY2FzZSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6
U29sb0FtYmllbnRTb3VuZDoKICAgICAgICAgY2F0ZWdvcnlTdHJpbmcgPSBBVkF1ZGlvU2Vzc2lv
bkNhdGVnb3J5U29sb0FtYmllbnQ7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgTWVkaWFQbGF5
YmFjazoKKyAgICBjYXNlIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpNZWRpYVBsYXliYWNrOgogICAg
ICAgICBjYXRlZ29yeVN0cmluZyA9IEFWQXVkaW9TZXNzaW9uQ2F0ZWdvcnlQbGF5YmFjazsKICAg
ICAgICAgYnJlYWs7Ci0gICAgY2FzZSBSZWNvcmRBdWRpbzoKKyAgICBjYXNlIEF1ZGlvU2Vzc2lv
bkNhdGVnb3J5OjpSZWNvcmRBdWRpbzoKICAgICAgICAgY2F0ZWdvcnlTdHJpbmcgPSBBVkF1ZGlv
U2Vzc2lvbkNhdGVnb3J5UmVjb3JkOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFBsYXlBbmRS
ZWNvcmQ6CisgICAgY2FzZSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6UGxheUFuZFJlY29yZDoKICAg
ICAgICAgY2F0ZWdvcnlTdHJpbmcgPSBBVkF1ZGlvU2Vzc2lvbkNhdGVnb3J5UGxheUFuZFJlY29y
ZDsKICAgICAgICAgY2F0ZWdvcnlNb2RlID0gQVZBdWRpb1Nlc3Npb25Nb2RlVmlkZW9DaGF0Owog
ICAgICAgICBvcHRpb25zIHw9IEFWQXVkaW9TZXNzaW9uQ2F0ZWdvcnlPcHRpb25BbGxvd0JsdWV0
b290aCB8IEFWQXVkaW9TZXNzaW9uQ2F0ZWdvcnlPcHRpb25BbGxvd0JsdWV0b290aEEyRFAgfCBB
VkF1ZGlvU2Vzc2lvbkNhdGVnb3J5T3B0aW9uRGVmYXVsdFRvU3BlYWtlciB8IEFWQXVkaW9TZXNz
aW9uQ2F0ZWdvcnlPcHRpb25BbGxvd0FpclBsYXk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
QXVkaW9Qcm9jZXNzaW5nOgorICAgIGNhc2UgQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6OkF1ZGlvUHJv
Y2Vzc2luZzoKICAgICAgICAgY2F0ZWdvcnlTdHJpbmcgPSBBVkF1ZGlvU2Vzc2lvbkNhdGVnb3J5
QXVkaW9Qcm9jZXNzaW5nOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIE5vbmU6CisgICAgY2Fz
ZSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6Tm9uZToKICAgICAgICAgY2F0ZWdvcnlTdHJpbmcgPSBB
VkF1ZGlvU2Vzc2lvbkNhdGVnb3J5QW1iaWVudDsKICAgICAgICAgYnJlYWs7CiAgICAgfQpAQCAt
MTMxLDIyICsxMzEsMjIgQEAgdm9pZCBBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5KENhdGVnb3J5
VHlwZSBuZXdDYXRlZ29yeSwgUm91dGVTaGFyaW5nUG9saWN5IHBvbGkKICNlbmRpZgogfQogCi1B
dWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBBdWRpb1Nlc3Npb246OmNhdGVnb3J5KCkgY29uc3QK
K0F1ZGlvU2Vzc2lvbkNhdGVnb3J5IEF1ZGlvU2Vzc2lvbjo6Y2F0ZWdvcnkoKSBjb25zdAogewog
ICAgIE5TU3RyaW5nICpjYXRlZ29yeVN0cmluZyA9IFtbUEFMOjpnZXRBVkF1ZGlvU2Vzc2lvbkNs
YXNzKCkgc2hhcmVkSW5zdGFuY2VdIGNhdGVnb3J5XTsKICAgICBpZiAoW2NhdGVnb3J5U3RyaW5n
IGlzRXF1YWw6QVZBdWRpb1Nlc3Npb25DYXRlZ29yeUFtYmllbnRdKQotICAgICAgICByZXR1cm4g
QW1iaWVudFNvdW5kOworICAgICAgICByZXR1cm4gQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6OkFtYmll
bnRTb3VuZDsKICAgICBpZiAoW2NhdGVnb3J5U3RyaW5nIGlzRXF1YWw6QVZBdWRpb1Nlc3Npb25D
YXRlZ29yeVNvbG9BbWJpZW50XSkKLSAgICAgICAgcmV0dXJuIFNvbG9BbWJpZW50U291bmQ7Cisg
ICAgICAgIHJldHVybiBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6U29sb0FtYmllbnRTb3VuZDsKICAg
ICBpZiAoW2NhdGVnb3J5U3RyaW5nIGlzRXF1YWw6QVZBdWRpb1Nlc3Npb25DYXRlZ29yeVBsYXli
YWNrXSkKLSAgICAgICAgcmV0dXJuIE1lZGlhUGxheWJhY2s7CisgICAgICAgIHJldHVybiBBdWRp
b1Nlc3Npb25DYXRlZ29yeTo6TWVkaWFQbGF5YmFjazsKICAgICBpZiAoW2NhdGVnb3J5U3RyaW5n
IGlzRXF1YWw6QVZBdWRpb1Nlc3Npb25DYXRlZ29yeVJlY29yZF0pCi0gICAgICAgIHJldHVybiBS
ZWNvcmRBdWRpbzsKKyAgICAgICAgcmV0dXJuIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpSZWNvcmRB
dWRpbzsKICAgICBpZiAoW2NhdGVnb3J5U3RyaW5nIGlzRXF1YWw6QVZBdWRpb1Nlc3Npb25DYXRl
Z29yeVBsYXlBbmRSZWNvcmRdKQotICAgICAgICByZXR1cm4gUGxheUFuZFJlY29yZDsKKyAgICAg
ICAgcmV0dXJuIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpQbGF5QW5kUmVjb3JkOwogICAgIGlmIChb
Y2F0ZWdvcnlTdHJpbmcgaXNFcXVhbDpBVkF1ZGlvU2Vzc2lvbkNhdGVnb3J5QXVkaW9Qcm9jZXNz
aW5nXSkKLSAgICAgICAgcmV0dXJuIEF1ZGlvUHJvY2Vzc2luZzsKLSAgICByZXR1cm4gTm9uZTsK
KyAgICAgICAgcmV0dXJuIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpBdWRpb1Byb2Nlc3Npbmc7Cisg
ICAgcmV0dXJuIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpOb25lOwogfQogCiBSb3V0ZVNoYXJpbmdQ
b2xpY3kgQXVkaW9TZXNzaW9uOjpyb3V0ZVNoYXJpbmdQb2xpY3koKSBjb25zdApAQCAtMTc2LDcg
KzE3Niw3IEBAIFN0cmluZyBBdWRpb1Nlc3Npb246OnJvdXRpbmdDb250ZXh0VUlEKCkgY29uc3QK
ICNlbmRpZgogfQogCi12b2lkIEF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnlPdmVycmlkZShDYXRl
Z29yeVR5cGUgY2F0ZWdvcnkpCit2b2lkIEF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnlPdmVycmlk
ZShBdWRpb1Nlc3Npb25DYXRlZ29yeSBjYXRlZ29yeSkKIHsKICAgICBpZiAobV9wcml2YXRlLT5t
X2NhdGVnb3J5T3ZlcnJpZGUgPT0gY2F0ZWdvcnkpCiAgICAgICAgIHJldHVybjsKQEAgLTE4NSw3
ICsxODUsNyBAQCB2b2lkIEF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnlPdmVycmlkZShDYXRlZ29y
eVR5cGUgY2F0ZWdvcnkpCiAgICAgc2V0Q2F0ZWdvcnkoY2F0ZWdvcnksIFJvdXRlU2hhcmluZ1Bv
bGljeTo6RGVmYXVsdCk7CiB9CiAKLUF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIEF1ZGlvU2Vz
c2lvbjo6Y2F0ZWdvcnlPdmVycmlkZSgpIGNvbnN0CitBdWRpb1Nlc3Npb25DYXRlZ29yeSBBdWRp
b1Nlc3Npb246OmNhdGVnb3J5T3ZlcnJpZGUoKSBjb25zdAogewogICAgIHJldHVybiBtX3ByaXZh
dGUtPm1fY2F0ZWdvcnlPdmVycmlkZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5oCmluZGV4IDkzZTVi
ZmM0MGI4ZjE4NTgzODM4OTY2MzZmNjJlZTY5MThjOTkxNTMuLmM0YjdkODgzOGVjODE0MTUyMzQz
MTRhMjFmOTUwZDkyM2FlN2YyODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vaW9zL01lZGlhU2Vzc2lvbk1hbmFnZXJJT1MuaApAQCAtNTQsNiArNTQs
OCBAQCBwdWJsaWM6CiAgICAgdm9pZCBhY3RpdmVWaWRlb1JvdXRlRGlkQ2hhbmdlKE9wdGlvbmFs
PGJvb2w+JiYpOwogI2VuZGlmCiAKKyAgICBzdGF0aWMgV0VCQ09SRV9FWFBPUlQgdm9pZCBwcm92
aWRlUHJlc2VudGluZ0FwcGxpY2F0aW9uUElEKCk7CisKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNs
YXNzIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL01lZGlhU2Vzc2lvbk1hbmFnZXJJT1MubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbQpp
bmRleCA0NTE3MjRmZTczYWNmY2Q1OTk0NjRjMGM0MmYxOGM1NmU2MzMxOTE3Li5jZjI1ZmI0ODYw
MTc2ODI1YTc3YWQ4NjI0Y2I0NWJkZjM5ODNlYzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbQpA
QCAtMTc0LDcgKzE3NCwxMyBAQCB2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXJpT1M6OnByb3ZpZGVQ
cmVzZW50aW5nQXBwbGljYXRpb25QSURJZk5lY2Vzc2FyeSgpCiAgICAgaWYgKG1faGF2ZVByZXNl
bnRlZEFwcGxpY2F0aW9uUElEKQogICAgICAgICByZXR1cm47CiAgICAgbV9oYXZlUHJlc2VudGVk
QXBwbGljYXRpb25QSUQgPSB0cnVlOworICAgIHByb3ZpZGVQcmVzZW50aW5nQXBwbGljYXRpb25Q
SUQoKTsKKyNlbmRpZgorfQogCit2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXJpT1M6OnByb3ZpZGVQ
cmVzZW50aW5nQXBwbGljYXRpb25QSUQoKQoreworI2lmIEhBVkUoQ0VMRVNUSUFMKQogICAgIGlm
ICghY2FuTG9hZEFWU3lzdGVtQ29udHJvbGxlcl9QSURUb0luaGVyaXRBcHBsaWNhdGlvblN0YXRl
RnJvbSgpKQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL21hYy9BdWRpb1Nlc3Npb25NYWMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vbWFjL0F1ZGlvU2Vzc2lvbk1hYy5jcHAKaW5kZXggY2MwNGYwYmUzMDk3NDk4
YjgzNjZlOTI0MjA3M2VjZTNlMTk3NWFiNS4uYTZlMTUyMjIzODQ4NDYxNGQ3ZjUxNjE4OWRiYTYx
YmQyYTE0N2ZmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFj
L0F1ZGlvU2Vzc2lvbk1hYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
bWFjL0F1ZGlvU2Vzc2lvbk1hYy5jcHAKQEAgLTU4LDcgKzU4LDcgQEAgcHVibGljOgogICAgIGV4
cGxpY2l0IEF1ZGlvU2Vzc2lvblByaXZhdGUoYm9vbCBtdXRlZFN0YXRlKQogICAgICAgICA6IGxh
c3RNdXRlZFN0YXRlKG11dGVkU3RhdGUpIHsgfQogICAgIGJvb2wgbGFzdE11dGVkU3RhdGU7Ci0g
ICAgQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUgY2F0ZWdvcnkgeyBBdWRpb1Nlc3Npb246Ok5v
bmUgfTsKKyAgICBBdWRpb1Nlc3Npb25DYXRlZ29yeSBjYXRlZ29yeSB7IEF1ZGlvU2Vzc2lvbkNh
dGVnb3J5OjpOb25lIH07CiB9OwogCiBBdWRpb1Nlc3Npb246OkF1ZGlvU2Vzc2lvbigpCkBAIC02
OCwyMyArNjgsMjMgQEAgQXVkaW9TZXNzaW9uOjpBdWRpb1Nlc3Npb24oKQogCiBBdWRpb1Nlc3Np
b246On5BdWRpb1Nlc3Npb24oKSA9IGRlZmF1bHQ7CiAKLUF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlU
eXBlIEF1ZGlvU2Vzc2lvbjo6Y2F0ZWdvcnkoKSBjb25zdAorQXVkaW9TZXNzaW9uQ2F0ZWdvcnkg
QXVkaW9TZXNzaW9uOjpjYXRlZ29yeSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+
Y2F0ZWdvcnk7CiB9CiAKLXZvaWQgQXVkaW9TZXNzaW9uOjpzZXRDYXRlZ29yeShDYXRlZ29yeVR5
cGUgY2F0ZWdvcnksIFJvdXRlU2hhcmluZ1BvbGljeSkKK3ZvaWQgQXVkaW9TZXNzaW9uOjpzZXRD
YXRlZ29yeShBdWRpb1Nlc3Npb25DYXRlZ29yeSBjYXRlZ29yeSwgUm91dGVTaGFyaW5nUG9saWN5
KQogewogICAgIG1fcHJpdmF0ZS0+Y2F0ZWdvcnkgPSBjYXRlZ29yeTsKIH0KIAotQXVkaW9TZXNz
aW9uOjpDYXRlZ29yeVR5cGUgQXVkaW9TZXNzaW9uOjpjYXRlZ29yeU92ZXJyaWRlKCkgY29uc3QK
K0F1ZGlvU2Vzc2lvbkNhdGVnb3J5IEF1ZGlvU2Vzc2lvbjo6Y2F0ZWdvcnlPdmVycmlkZSgpIGNv
bnN0CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gTm9uZTsKKyAgICByZXR1
cm4gQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6Ok5vbmU7CiB9CiAKLXZvaWQgQXVkaW9TZXNzaW9uOjpz
ZXRDYXRlZ29yeU92ZXJyaWRlKENhdGVnb3J5VHlwZSkKK3ZvaWQgQXVkaW9TZXNzaW9uOjpzZXRD
YXRlZ29yeU92ZXJyaWRlKEF1ZGlvU2Vzc2lvbkNhdGVnb3J5KQogewogICAgIG5vdEltcGxlbWVu
dGVkKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvQmFzZUF1ZGlvU2hhcmVkVW5pdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvQmFzZUF1ZGlvU2hhcmVkVW5pdC5jcHAKaW5kZXggZDYzYmY1NGExNjNi
NTExOTJlYTBhMzYzNzg2ZGY4NzZiODlmOTg0Zi4uNGMzYzgyOGJkMjMyOTBmZDk3MzAyNWQ2NDEy
NzEzZDhhMTg0MDBiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL0Jhc2VBdWRpb1NoYXJlZFVuaXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9CYXNlQXVkaW9TaGFyZWRVbml0LmNwcApAQCAtOTcsNyAr
OTcsNyBAQCBPU1N0YXR1cyBCYXNlQXVkaW9TaGFyZWRVbml0OjpzdGFydFVuaXQoKQogICAgIGZv
ckVhY2hDbGllbnQoW10oYXV0byYgY2xpZW50KSB7CiAgICAgICAgIGNsaWVudC5hdWRpb1VuaXRX
aWxsU3RhcnQoKTsKICAgICB9KTsKLSAgICBBU1NFUlQoIURlcHJlY2F0ZWRHbG9iYWxTZXR0aW5n
czo6c2hvdWxkTWFuYWdlQXVkaW9TZXNzaW9uQ2F0ZWdvcnkoKSB8fCBBdWRpb1Nlc3Npb246OnNo
YXJlZFNlc3Npb24oKS5jYXRlZ29yeSgpID09IEF1ZGlvU2Vzc2lvbjo6UGxheUFuZFJlY29yZCk7
CisgICAgQVNTRVJUKCFEZXByZWNhdGVkR2xvYmFsU2V0dGluZ3M6OnNob3VsZE1hbmFnZUF1ZGlv
U2Vzc2lvbkNhdGVnb3J5KCkgfHwgQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuY2F0ZWdv
cnkoKSA9PSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6UGxheUFuZFJlY29yZCk7CiAKICAgICBpZiAo
YXV0byBlcnJvciA9IHN0YXJ0SW50ZXJuYWwoKSkgewogICAgICAgICBjYXB0dXJlRmFpbGVkKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZUF1
ZGlvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1l
QXVkaW9Tb3VyY2UuY3BwCmluZGV4IGM0NjYyZDRhNmQxZjMyNDQwOWQzOWNkYTU4Mjk4YWY4OTkx
MzhkMjUuLmRlN2IyZDU1OWFlNzYxMGYxOThiYTI4ODkyZDBjYzVmMTdmOGU1YzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9T
b3VyY2UuY3BwCkBAIC0xMzcsNyArMTM3LDcgQEAgdm9pZCBNb2NrUmVhbHRpbWVBdWRpb1NvdXJj
ZTo6c3RhcnRQcm9kdWNpbmdEYXRhKCkKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIFJl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZhY3Rvcnko
KS5zZXRBY3RpdmVTb3VyY2UoKnRoaXMpOwogICAgIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdl
cjo6c2hhcmVkTWFuYWdlcigpLnNlc3Npb25DYW5Qcm9kdWNlQXVkaW9DaGFuZ2VkKCk7Ci0gICAg
QVNTRVJUKEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLmNhdGVnb3J5KCkgPT0gQXVkaW9T
ZXNzaW9uOjpQbGF5QW5kUmVjb3JkKTsKKyAgICBBU1NFUlQoQXVkaW9TZXNzaW9uOjpzaGFyZWRT
ZXNzaW9uKCkuY2F0ZWdvcnkoKSA9PSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6UGxheUFuZFJlY29y
ZCk7CiAjZW5kaWYKIAogICAgIGlmICghc2FtcGxlUmF0ZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwCmluZGV4IDQ5MmRmMmZjN2M3ZjE5ZmMzZTliOWIxNDM2MzRmMDdlYjI5OGQ1
ZWIuLjM1ZGUwZDE2ZTA1MDUwMjk0ZjBjYzliYzQyMTIyNTQ1MDhhN2M2N2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTQ5NzUsMTkgKzQ5NzUsMTkgQEAgU3RyaW5nIElu
dGVybmFsczo6YXVkaW9TZXNzaW9uQ2F0ZWdvcnkoKSBjb25zdAogewogI2lmIFVTRShBVURJT19T
RVNTSU9OKQogICAgIHN3aXRjaCAoQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuY2F0ZWdv
cnkoKSkgewotICAgIGNhc2UgQXVkaW9TZXNzaW9uOjpBbWJpZW50U291bmQ6CisgICAgY2FzZSBB
dWRpb1Nlc3Npb25DYXRlZ29yeTo6QW1iaWVudFNvdW5kOgogICAgICAgICByZXR1cm4gIkFtYmll
bnRTb3VuZCJfczsKLSAgICBjYXNlIEF1ZGlvU2Vzc2lvbjo6U29sb0FtYmllbnRTb3VuZDoKKyAg
ICBjYXNlIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpTb2xvQW1iaWVudFNvdW5kOgogICAgICAgICBy
ZXR1cm4gIlNvbG9BbWJpZW50U291bmQiX3M7Ci0gICAgY2FzZSBBdWRpb1Nlc3Npb246Ok1lZGlh
UGxheWJhY2s6CisgICAgY2FzZSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6TWVkaWFQbGF5YmFjazoK
ICAgICAgICAgcmV0dXJuICJNZWRpYVBsYXliYWNrIl9zOwotICAgIGNhc2UgQXVkaW9TZXNzaW9u
OjpSZWNvcmRBdWRpbzoKKyAgICBjYXNlIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpSZWNvcmRBdWRp
bzoKICAgICAgICAgcmV0dXJuICJSZWNvcmRBdWRpbyJfczsKLSAgICBjYXNlIEF1ZGlvU2Vzc2lv
bjo6UGxheUFuZFJlY29yZDoKKyAgICBjYXNlIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpQbGF5QW5k
UmVjb3JkOgogICAgICAgICByZXR1cm4gIlBsYXlBbmRSZWNvcmQiX3M7Ci0gICAgY2FzZSBBdWRp
b1Nlc3Npb246OkF1ZGlvUHJvY2Vzc2luZzoKKyAgICBjYXNlIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5
OjpBdWRpb1Byb2Nlc3Npbmc6CiAgICAgICAgIHJldHVybiAiQXVkaW9Qcm9jZXNzaW5nIl9zOwot
ICAgIGNhc2UgQXVkaW9TZXNzaW9uOjpOb25lOgorICAgIGNhc2UgQXVkaW9TZXNzaW9uQ2F0ZWdv
cnk6Ok5vbmU6CiAgICAgICAgIHJldHVybiAiTm9uZSJfczsKICAgICB9CiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmNwcAppbmRleCA2YTJjODcwZjdhYWExYjBkYjAwMGVmODg4MjdjOWEwZjYxZGNmMjViLi5hYjc2
Y2I2NGZlZDg4NWI2MTAwNWNkMDdiZTFiNzdlZGY1M2QyZmJiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC02
MSw4ICs2MSwxMiBAQAogI2luY2x1ZGUgIldlYkVycm9ycy5oIgogI2luY2x1ZGUgIldlYlByb2Nl
c3NNZXNzYWdlcy5oIgogCisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSA8V2ViQ29yZS9N
ZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhU2Vzc2lv
bk1hbmFnZXJJT1MuaD4KKyNlbmRpZgorCiAjaW5jbHVkZSA8V2ViQ29yZS9Nb2NrUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlci5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1NZWRpYVNlc3Np
b25NYW5hZ2VyLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CkBAIC04MCw5ICs4NCwxOSBAQCBwcml2YXRlOgogICAgIHZvaWQgYWRkTWVzc2FnZVJlY2Vp
dmVyKElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6TWVzc2Fn
ZVJlY2VpdmVyJiByZWNlaXZlcikgZmluYWwgeyB9CiAgICAgdm9pZCByZW1vdmVNZXNzYWdlUmVj
ZWl2ZXIoSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSkgZmluYWwgeyB9
CiAgICAgSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKCkgZmluYWwgeyByZXR1cm4gbV9wcm9j
ZXNzLmNvbm5lY3Rpb24oKTsgfQotICAgIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlciYgc2Vz
c2lvbk1hbmFnZXIoKSBmaW5hbCB7IHJldHVybiBtX3Byb2Nlc3Muc2Vzc2lvbk1hbmFnZXIoKTsg
fQotICAgIHZvaWQgd2lsbFN0YXJ0Q2FtZXJhQ2FwdHVyZSgpIGZpbmFsIHsgc2Vzc2lvbk1hbmFn
ZXIoKS5wcmVwYXJlVG9TZW5kVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoKTsgfQorICAgIHZv
aWQgd2lsbFN0YXJ0Q2FtZXJhQ2FwdHVyZSgpIGZpbmFsCisgICAgeworI2lmIFBMQVRGT1JNKElP
UykKKyAgICAgICAgaWYgKCFtX3Nob3VsZFByZXBhcmVUb1NlbmRVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdCkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgbV9zaG91bGRQcmVwYXJlVG9T
ZW5kVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QgPSBmYWxzZTsKKyAgICAgICAgTWVkaWFTZXNz
aW9uTWFuYWdlcmlPUzo6cHJvdmlkZVByZXNlbnRpbmdBcHBsaWNhdGlvblBJRCgpOworI2VuZGlm
CisgICAgfQogCisjaWYgUExBVEZPUk0oSU9TKQorICAgIGJvb2wgbV9zaG91bGRQcmVwYXJlVG9T
ZW5kVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QgeyB0cnVlIH07CisjZW5kaWYKICAgICBHUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzJiBtX3Byb2Nlc3M7CiB9OwogI2VuZGlmCkBAIC0xOTksNiAr
MjEzLDIxIEBAIExpYldlYlJUQ0NvZGVjc1Byb3h5JiBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpsaWJXZWJSVENDb2RlY3NQcm94eSgpCiB9CiAjZW5kaWYKIAorI2lmIFVTRShBVURJT19TRVNT
SU9OKQordm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjp0cnlUb1NldEF1ZGlvU2Vzc2lv
bkFzQWN0aXZlKGJvb2wgaXNBY3RpdmUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgY29tcGxldGlvbkhhbmRsZXIoQXVkaW9TZXNzaW9u
OjpzaGFyZWRTZXNzaW9uKCkudHJ5VG9TZXRBY3RpdmUoaXNBY3RpdmUpKTsKK30KKwordm9pZCBH
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjp1cGRhdGVBdWRpb1Nlc3Npb25QYXJhbWV0ZXJzKHNp
emVfdCBidWZmZXJTaXplLCBPcHRpb25hbDxXZWJDb3JlOjpBdWRpb1Nlc3Npb25DYXRlZ29yeT4g
Y2F0ZWdvcnksIE9wdGlvbmFsPFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeT4gcG9saWN5KQor
eworICAgIGlmIChidWZmZXJTaXplKQorICAgICAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Np
b24oKS5zZXRQcmVmZXJyZWRCdWZmZXJTaXplKGJ1ZmZlclNpemUpOworICAgIGlmIChjYXRlZ29y
eSAmJiBwb2xpY3kpCisgICAgICAgIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldENh
dGVnb3J5KCpjYXRlZ29yeSwgKnBvbGljeSk7Cit9CisjZW5kaWYKKwogdm9pZCBHUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpjcmVhdGVSZW5kZXJpbmdCYWNrZW5kKFJlbmRlcmluZ0JhY2tlbmRJ
ZGVudGlmaWVyIHJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKQogewogICAgIGF1dG8gYWRkUmVz
dWx0ID0gbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHlNYXAuZW5zdXJlKHJlbmRlcmluZ0Jh
Y2tlbmRJZGVudGlmaWVyLCBbJl0oKSB7CkBAIC0zMDksMTMgKzMzOCw2IEBAIGNvbnN0IFN0cmlu
ZyYgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6bWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeSgp
IGNvbnN0CiB9CiAjZW5kaWYKIAotUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyJiBHUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpzZXNzaW9uTWFuYWdlcigpCi17Ci0gICAgaWYgKCFtX3Nlc3Np
b25NYW5hZ2VyKQotICAgICAgICBtX3Nlc3Npb25NYW5hZ2VyID0gUGxhdGZvcm1NZWRpYVNlc3Np
b25NYW5hZ2VyOjpjcmVhdGUoKTsKLSAgICByZXR1cm4gKm1fc2Vzc2lvbk1hbmFnZXI7Ci19Ci0K
ICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogdm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpzZXRPcmllbnRhdGlvbkZvck1lZGlhQ2FwdHVyZSh1aW50NjRfdCBvcmllbnRhdGlvbikKIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5oCmluZGV4IDc0NzE1YzgwYzU0NWJlYWZlYzNmNmI3ZTA5ODRlY2E1MGNiYTI2NjkuLmVh
YTIwNjliNWEyNDgyMDA5MzQ5MWRiMzg4YjlkMjNjMmZhZDIxOWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtODMs
OCArODMsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRPcmllbnRhdGlvbkZvck1lZGlhQ2FwdHVy
ZSh1aW50NjRfdCBvcmllbnRhdGlvbik7CiAjZW5kaWYKIAotICAgIFdlYkNvcmU6OlBsYXRmb3Jt
TWVkaWFTZXNzaW9uTWFuYWdlciYgc2Vzc2lvbk1hbmFnZXIoKTsKLQogcHJpdmF0ZToKICAgICBH
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKEdQVVByb2Nlc3MmLCBXZWJDb3JlOjpQcm9jZXNzSWRl
bnRpZmllciwgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyLCBQQUw6OlNlc3Npb25JRCk7CiAK
QEAgLTEwMCw2ICs5OCwxMSBAQCBwcml2YXRlOgogICAgIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyTWFuYWdlciYgYXVkaW9UcmFja1JlbmRlcmVyTWFuYWdlcigpOwogICAgIFJl
bW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXImIHNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllck1hbmFnZXIoKTsKICNlbmRpZgorI2VuZGlmCisKKyNpZiBVU0UoQVVESU9fU0VTU0lPTikK
KyAgICB2b2lkIHRyeVRvU2V0QXVkaW9TZXNzaW9uQXNBY3RpdmUoYm9vbCBpc0FjdGl2ZSwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CisgICAgdm9pZCB1cGRhdGVBdWRpb1Nlc3Np
b25QYXJhbWV0ZXJzKHNpemVfdCBidWZmZXJTaXplLCBPcHRpb25hbDxXZWJDb3JlOjpBdWRpb1Nl
c3Npb25DYXRlZ29yeT4sIE9wdGlvbmFsPFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeT4pOwog
I2VuZGlmCiAgICAgdm9pZCBjcmVhdGVSZW5kZXJpbmdCYWNrZW5kKFJlbmRlcmluZ0JhY2tlbmRJ
ZGVudGlmaWVyKTsKICAgICB2b2lkIHJlbGVhc2VSZW5kZXJpbmdCYWNrZW5kKFJlbmRlcmluZ0Jh
Y2tlbmRJZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9H
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggOTMyYzAx
MjJkZTA4MWVkZTliYjllZmI1NmY5YmM1MjU5YmE0ZDcwNC4uMjVkYzQ3NGJhYjU1NmRjMmE3NzE5
ZDBkZTgwMmZkOGJkOGE1NjMxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTIz
LDYgKzIzLDExIEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCiBtZXNzYWdlcyAtPiBHUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzIFdhbnRzRGlzcGF0Y2hNZXNzYWdlIHsKKyNpZiBVU0UoQVVE
SU9fU0VTU0lPTikKKyAgICB2b2lkIFRyeVRvU2V0QXVkaW9TZXNzaW9uQXNBY3RpdmUoYm9vbCBp
c0FjdGl2ZSkgLT4gKGJvb2wgcmVzdWx0KSBTeW5jaHJvbm91cworICAgIHZvaWQgVXBkYXRlQXVk
aW9TZXNzaW9uUGFyYW1ldGVycyh1aW50NjRfdCBidWZmZXJTaXplLCBPcHRpb25hbDxXZWJDb3Jl
OjpBdWRpb1Nlc3Npb25DYXRlZ29yeT4gY2F0ZWdvcnksIE9wdGlvbmFsPFdlYkNvcmU6OlJvdXRl
U2hhcmluZ1BvbGljeT4gcG9saWN5KQorI2VuZGlmCisKICAgICB2b2lkIENyZWF0ZVJlbmRlcmlu
Z0JhY2tlbmQoV2ViS2l0OjpSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllciByZW5kZXJpbmdCYWNr
ZW5kSWRlbnRpZmllcikKICAgICB2b2lkIFJlbGVhc2VSZW5kZXJpbmdCYWNrZW5kKFdlYktpdDo6
UmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIgcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIpCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCmluZGV4IGJkYWZhNTNlYWJlZDg2Y2NhMzE5YjJh
YjM4YmM0MTFjOGRkYTA1ZTMuLjVjNTMxYTY4OGYzOWZlZTBjNjlhZjU0MTgyNzc5ZjVkYjE2NDlh
MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCkBAIC00NiwzMCArNDYsMjIgQEAgdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIGNsYXNzIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHk6OlNvdXJjZVByb3h5CiAgICAgOiBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZTo6T2JzZXJ2
ZXIKLSAgICAsIHB1YmxpYyBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTo6Q2xpZW50Ci0gICAgLCBw
dWJsaWMgUGxhdGZvcm1NZWRpYVNlc3Npb246OkF1ZGlvQ2FwdHVyZVNvdXJjZSB7CisgICAgLCBw
dWJsaWMgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U6OkNsaWVudCB7CiAgICAgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgU291cmNlUHJveHkoUmVhbHRpbWVNZWRpYVNvdXJj
ZUlkZW50aWZpZXIgaWQsIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlciYgc2Vzc2lvbk1hbmFn
ZXIsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbiwgUmVmPFJlYWx0aW1lTWVkaWFT
b3VyY2U+JiYgc291cmNlKQorICAgIFNvdXJjZVByb3h5KFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyIGlkLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIFJlZjxSZWFsdGlt
ZU1lZGlhU291cmNlPiYmIHNvdXJjZSkKICAgICAgICAgOiBtX2lkKGlkKQotICAgICAgICAsIG1f
c2Vzc2lvbk1hbmFnZXIobWFrZVdlYWtQdHIoc2Vzc2lvbk1hbmFnZXIpKQogICAgICAgICAsIG1f
Y29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKQogICAgICAgICAsIG1fc291cmNlKFdURk1v
dmUoc291cmNlKSkKICAgICAgICAgLCBtX3JpbmdCdWZmZXIobWFrZVVuaXF1ZVJlZjxTaGFyZWRS
aW5nQnVmZmVyU3RvcmFnZT4obWFrZVVuaXF1ZVJlZjxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZT4o
dGhpcykpKQogICAgIHsKICAgICAgICAgbV9zb3VyY2UtPmFkZE9ic2VydmVyKCp0aGlzKTsKLQot
ICAgICAgICBpZiAobV9zb3VyY2UtPnR5cGUoKSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBl
OjpBdWRpbykKLSAgICAgICAgICAgIHNlc3Npb25NYW5hZ2VyLmFkZEF1ZGlvQ2FwdHVyZVNvdXJj
ZSgqdGhpcyk7CiAgICAgfQogCiAgICAgflNvdXJjZVByb3h5KCkKICAgICB7CiAgICAgICAgIHN0
b3JhZ2UoKS5pbnZhbGlkYXRlKCk7CiAgICAgICAgIG1fc291cmNlLT5yZW1vdmVPYnNlcnZlcigq
dGhpcyk7Ci0KLSAgICAgICAgaWYgKG1fc291cmNlLT50eXBlKCkgPT0gUmVhbHRpbWVNZWRpYVNv
dXJjZTo6VHlwZTo6QXVkaW8gJiYgbV9zZXNzaW9uTWFuYWdlcikKLSAgICAgICAgICAgIG1fc2Vz
c2lvbk1hbmFnZXItPnJlbW92ZUF1ZGlvQ2FwdHVyZVNvdXJjZSgqdGhpcyk7CiAgICAgfQogCiAg
ICAgUmVhbHRpbWVNZWRpYVNvdXJjZSYgc291cmNlKCkgeyByZXR1cm4gbV9zb3VyY2U7IH0KQEAg
LTc3LDE0ICs2OSw2IEBAIHB1YmxpYzoKICAgICBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRl
c2NyaXB0aW9uKCkgeyByZXR1cm4gbV9kZXNjcmlwdGlvbjsgfQogICAgIGludDY0X3QgbnVtYmVy
T2ZGcmFtZXMoKSB7IHJldHVybiBtX251bWJlck9mRnJhbWVzOyB9CiAKLSAgICBib29sIGlzQ2Fw
dHVyaW5nQXVkaW8oKSBjb25zdCBmaW5hbCB7IHJldHVybiAhbV9pc0VuZGVkICYmIG1fc291cmNl
LT5pc1Byb2R1Y2luZ0RhdGEoKTsgfQotCi0gICAgdm9pZCBhdWRpb1VuaXRXaWxsU3RhcnQoKSBm
aW5hbAotICAgIHsKLSAgICAgICAgaWYgKCFtX2lzRW5kZWQgJiYgbV9zZXNzaW9uTWFuYWdlcikK
LSAgICAgICAgICAgIG1fc2Vzc2lvbk1hbmFnZXItPnNlc3Npb25DYW5Qcm9kdWNlQXVkaW9DaGFu
Z2VkKCk7Ci0gICAgfQotCiAgICAgdm9pZCBzdGFydCgpCiAgICAgewogICAgICAgICBtX2lzRW5k
ZWQgPSBmYWxzZTsKQEAgLTIxNCw3ICsxOTgsNyBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHk6OmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaQog
ICAgICAgICBhdXRvIHNvdXJjZSA9IHNvdXJjZU9yRXJyb3Iuc291cmNlKCk7CiAgICAgICAgIHNl
dHRpbmdzID0gc291cmNlLT5zZXR0aW5ncygpOwogICAgICAgICBBU1NFUlQoIW1fcHJveGllcy5j
b250YWlucyhpZCkpOwotICAgICAgICBtX3Byb3hpZXMuYWRkKGlkLCBtYWtlVW5pcXVlPFNvdXJj
ZVByb3h5PihpZCwgbV9jb25uZWN0aW9uUHJveHktPnNlc3Npb25NYW5hZ2VyKCksIG1fY29ubmVj
dGlvblByb3h5LT5jb25uZWN0aW9uKCksIFdURk1vdmUoc291cmNlKSkpOworICAgICAgICBtX3By
b3hpZXMuYWRkKGlkLCBtYWtlVW5pcXVlPFNvdXJjZVByb3h5PihpZCwgbV9jb25uZWN0aW9uUHJv
eHktPmNvbm5lY3Rpb24oKSwgV1RGTW92ZShzb3VyY2UpKSk7CiAgICAgfSBlbHNlCiAgICAgICAg
IGludmFsaWRDb25zdHJhaW50cyA9IFdURk1vdmUoc291cmNlT3JFcnJvci5lcnJvck1lc3NhZ2Up
OwogICAgIGNvbXBsZXRpb25IYW5kbGVyKHN1Y2NlZWRlZCwgaW52YWxpZENvbnN0cmFpbnRzLCBX
VEZNb3ZlKHNldHRpbmdzKSk7CkBAIC0yNzAsNyArMjU0LDcgQEAgdm9pZCBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5OjpjbG9uZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBjbG9u
ZWRJRCwKICAgICBBU1NFUlQobV9wcm94aWVzLmNvbnRhaW5zKGNsb25lZElEKSk7CiAgICAgQVNT
RVJUKCFtX3Byb3hpZXMuY29udGFpbnMobmV3U291cmNlSUQpKTsKICAgICBpZiAoYXV0byogcHJv
eHkgPSBtX3Byb3hpZXMuZ2V0KGNsb25lZElEKSkKLSAgICAgICAgbV9wcm94aWVzLmFkZChuZXdT
b3VyY2VJRCwgbWFrZVVuaXF1ZTxTb3VyY2VQcm94eT4obmV3U291cmNlSUQsIG1fY29ubmVjdGlv
blByb3h5LT5zZXNzaW9uTWFuYWdlcigpLCBtX2Nvbm5lY3Rpb25Qcm94eS0+Y29ubmVjdGlvbigp
LCBwcm94eS0+c291cmNlKCkuY2xvbmUoKSkpOworICAgICAgICBtX3Byb3hpZXMuYWRkKG5ld1Nv
dXJjZUlELCBtYWtlVW5pcXVlPFNvdXJjZVByb3h5PihuZXdTb3VyY2VJRCwgbV9jb25uZWN0aW9u
UHJveHktPmNvbm5lY3Rpb24oKSwgcHJveHktPnNvdXJjZSgpLmNsb25lKCkpKTsKIH0KIAogdm9p
ZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpyZXF1ZXN0VG9FbmQoUmVhbHRpbWVNZWRp
YVNvdXJjZUlkZW50aWZpZXIgc291cmNlSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgKaW5kZXgg
MjdiYzc3MGMwZDljOTE2N2E0OWE3ZDI5MGZhZmZkMzk5Mjg2NDg5Mi4uYTc2YWY5NmVhNTg0Y2Iy
MTI5NTI3YjJmMTI5YWMyOGNjNmIyZDdlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaApAQCAt
NTMsNyArNTMsNiBAQCBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgdm9pZCBhZGRNZXNzYWdlUmVj
ZWl2ZXIoSVBDOjpTdHJpbmdSZWZlcmVuY2UsIElQQzo6TWVzc2FnZVJlY2VpdmVyJikgPSAwOwog
ICAgICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlTWVzc2FnZVJlY2VpdmVyKElQQzo6U3RyaW5nUmVm
ZXJlbmNlKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9u
KCkgPSAwOwotICAgICAgICB2aXJ0dWFsIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uTWFu
YWdlciYgc2Vzc2lvbk1hbmFnZXIoKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCB3aWxsU3Rh
cnRDYW1lcmFDYXB0dXJlKCkgeyB9CiAgICAgfTsKICAgICBleHBsaWNpdCBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5KFVuaXF1ZVJlZjxDb25uZWN0aW9uUHJveHk+JiYpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXggOGI3MGQ2NDdlZTgyNmNh
ZGQyZDJiZmY3ZWRmMzg3ZjNjOGIwNGZkZi4uMDMyZjBiOTAwYWQ5ZjQ0MjI4ZjIwZTc2ODYyMGMy
MWI2M2MyNjg5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
Y3BwCkBAIC0xNjAsNyArMTYwLDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGFkZE1lc3NhZ2VSZWNl
aXZlcihJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6Ok1lc3Nh
Z2VSZWNlaXZlciYgcmVjZWl2ZXIpIGZpbmFsIHsgbV9wcm9jZXNzLmFkZE1lc3NhZ2VSZWNlaXZl
cihtZXNzYWdlUmVjZWl2ZXJOYW1lLCByZWNlaXZlcik7IH0KICAgICB2b2lkIHJlbW92ZU1lc3Nh
Z2VSZWNlaXZlcihJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lKSBmaW5h
bCB7IG1fcHJvY2Vzcy5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIobWVzc2FnZVJlY2VpdmVyTmFtZSk7
IH0KICAgICBJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24oKSBmaW5hbCB7IHJldHVybiAqbV9w
cm9jZXNzLmNvbm5lY3Rpb24oKTsgfQotICAgIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlciYg
c2Vzc2lvbk1hbmFnZXIoKSBmaW5hbCB7IHJldHVybiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFn
ZXI6OnNoYXJlZE1hbmFnZXIoKTsgfQogCiAgICAgV2ViUHJvY2Vzc1Byb3h5JiBtX3Byb2Nlc3M7
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJN
ZWRpYVN0cmF0ZWd5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2Vi
TWVkaWFTdHJhdGVneS5jcHAKaW5kZXggMmFhZTVlNTQ0NTEwODQ3OWJkM2NkMzM5YWZhNmJmNmQy
ZGRhYmNmNi4uY2JmODMxNDgzYTQ2NTE0OWNkZGIxNWI4NTlmOWE1MTJjMDZiNzQzZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3Ry
YXRlZ3kuY3BwCkBAIC0zMCwxMiArMzAsNDIgQEAKICNpbmNsdWRlICJSZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uUHJveHkuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvRGVzdGluYXRpb24uaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0F1ZGlvSU9DYWxsYmFjay5oPgorI2luY2x1ZGUgPFdlYkNvcmUvQXVk
aW9TZXNzaW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9DRE1GYWN0b3J5Lmg+CiAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCiBXZWJNZWRpYVN0cmF0ZWd5Ojp+V2ViTWVkaWFTdHJhdGVneSgpID0gZGVm
YXVsdDsKIAorI2lmIFVTRShBVURJT19TRVNTSU9OKQorYm9vbCBXZWJNZWRpYVN0cmF0ZWd5Ojp0
cnlUb1NldEF1ZGlvU2Vzc2lvbkFzQWN0aXZlKGJvb2wgaXNBY3RpdmUpCit7CisjaWYgRU5BQkxF
KEdQVV9QUk9DRVNTKQorICAgIGlmIChtX3VzZUdQVVByb2Nlc3MpIHsKKyAgICAgICAgYXV0byYg
Y29ubmVjdGlvbiA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25u
ZWN0aW9uKCkuY29ubmVjdGlvbigpOworICAgICAgICBib29sIHJlc3VsdDsKKyAgICAgICAgY29u
bmVjdGlvbi5zZW5kU3luYyhNZXNzYWdlczo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6VHJ5
VG9TZXRBdWRpb1Nlc3Npb25Bc0FjdGl2ZSB7IGlzQWN0aXZlIH0sIE1lc3NhZ2VzOjpHUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpUcnlUb1NldEF1ZGlvU2Vzc2lvbkFzQWN0aXZlOjpSZXBseShy
ZXN1bHQpLCAwKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisjZW5kaWYKKyAgICBy
ZXR1cm4gQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkudHJ5VG9TZXRBY3RpdmUoaXNBY3Rp
dmUpOworfQorCit2b2lkIFdlYk1lZGlhU3RyYXRlZ3k6OnVwZGF0ZUF1ZGlvU2Vzc2lvblBhcmFt
ZXRlcnMoc2l6ZV90IGJ1ZmZlclNpemUsIE9wdGlvbmFsPEF1ZGlvU2Vzc2lvbkNhdGVnb3J5PiBj
YXRlZ29yeSwgT3B0aW9uYWw8Um91dGVTaGFyaW5nUG9saWN5PiBwb2xpY3kpCit7CisjaWYgRU5B
QkxFKEdQVV9QUk9DRVNTKQorICAgIGlmIChtX3VzZUdQVVByb2Nlc3MpIHsKKyAgICAgICAgYXV0
byYgY29ubmVjdGlvbiA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3ND
b25uZWN0aW9uKCkuY29ubmVjdGlvbigpOworICAgICAgICBjb25uZWN0aW9uLnNlbmQoTWVzc2Fn
ZXM6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlVwZGF0ZUF1ZGlvU2Vzc2lvblBhcmFtZXRl
cnMgeyBidWZmZXJTaXplLCBjYXRlZ29yeSwgcG9saWN5IH0sIDApOworICAgICAgICByZXR1cm47
CisgICAgfQorI2VuZGlmCisgICAgQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2V0UHJl
ZmVycmVkQnVmZmVyU2l6ZShidWZmZXJTaXplKTsKKyAgICBpZiAoY2F0ZWdvcnkgJiYgcG9saWN5
KQorICAgICAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zZXRDYXRlZ29yeSgqY2F0
ZWdvcnksICpwb2xpY3kpOworfQorI2VuZGlmCisKICNpZiBFTkFCTEUoV0VCX0FVRElPKQogc3Rk
Ojp1bmlxdWVfcHRyPFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb24+IFdlYk1lZGlhU3RyYXRlZ3k6
OmNyZWF0ZUF1ZGlvRGVzdGluYXRpb24oV2ViQ29yZTo6QXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFj
aywgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLAogICAgIHVuc2lnbmVkIG51bWJlck9mSW5w
dXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxl
UmF0ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2Vi
TWVkaWFTdHJhdGVneS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJN
ZWRpYVN0cmF0ZWd5LmgKaW5kZXggNGZhYjBlOTQ0ZmMxNGU2ODQzNzllMzAwODE2M2JlMTYyZGQ4
OWI0ZC4uOWFmNjAxYzg3MmVlNTgxMzZmOGJhMzY2OGExYTQ0ZGFlOWQ4Zjc1OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5
LmgKQEAgLTM4LDYgKzM4LDEwIEBAIHB1YmxpYzoKICNlbmRpZgogCiBwcml2YXRlOgorI2lmIFVT
RShBVURJT19TRVNTSU9OKQorICAgIGJvb2wgdHJ5VG9TZXRBdWRpb1Nlc3Npb25Bc0FjdGl2ZShi
b29sIGlzQWN0aXZlKSBmaW5hbDsKKyAgICB2b2lkIHVwZGF0ZUF1ZGlvU2Vzc2lvblBhcmFtZXRl
cnMoc2l6ZV90IGJ1ZmZlclNpemUsIE9wdGlvbmFsPFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbkNhdGVn
b3J5PiwgT3B0aW9uYWw8V2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5PikgZmluYWw7CisjZW5k
aWYKICNpZiBFTkFCTEUoV0VCX0FVRElPKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpB
dWRpb0Rlc3RpbmF0aW9uPiBjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKFdlYkNvcmU6OkF1ZGlvSU9D
YWxsYmFjayYsCiAgICAgICAgIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwgdW5zaWduZWQg
bnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBm
bG9hdCBzYW1wbGVSYXRlKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1BsdWdpbnMvV2ViUGx1Z2luQ29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1BsdWdpbnMvV2ViUGx1Z2luQ29udHJvbGxlci5tbQppbmRleCAzZjI2ZGQ2YzY0NzIx
NjZhYjJlM2JkM2FlNTIxMTBjMDMwMDkzYjBmLi4zNzBmOTNiYzg0ODk0ODI1ZjIxY2VlZDNmNmFk
Yzg2ZTZiNmVjMDA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5z
L1dlYlBsdWdpbkNvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1
Z2lucy9XZWJQbHVnaW5Db250cm9sbGVyLm1tCkBAIC0xMTEsNyArMTExLDcgQEAgc3RhdGljIHZv
aWQgaW5pdGlhbGl6ZUF1ZGlvU2Vzc2lvbigpCiAgICAgaWYgKCFXZWJDb3JlOjpJT1NBcHBsaWNh
dGlvbjo6aXNNb2JpbGVTYWZhcmkoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgV2ViQ29yZTo6
QXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2V0Q2F0ZWdvcnkoV2ViQ29yZTo6QXVkaW9T
ZXNzaW9uOjpNZWRpYVBsYXliYWNrLCBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3k6OkRlZmF1
bHQpOworICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldENhdGVn
b3J5KFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpNZWRpYVBsYXliYWNrLCBXZWJDb3Jl
OjpSb3V0ZVNoYXJpbmdQb2xpY3k6OkRlZmF1bHQpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRl
Z2llcy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRm
b3JtU3RyYXRlZ2llcy5tbQppbmRleCBiOTA5ZWNjNDM5YmNkM2M2ZjZkYTgwNDFjNmVmMjkzZmYz
NDY2OTZmLi44YTk1Y2Q4ZDcyNzVlNzBkZDgwY2Y0MmI5ZTBmYmI2NWNiZmZhYzUyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0
cmF0ZWdpZXMubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tCkBAIC0yOSw2ICsyOSw3IEBACiAjaW1wb3J0ICJXZWJQ
bHVnaW5QYWNrYWdlLmgiCiAjaW1wb3J0ICJXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaCIKICNp
bXBvcnQgPFdlYkNvcmUvQXVkaW9EZXN0aW5hdGlvbi5oPgorI2ltcG9ydCA8V2ViQ29yZS9BdWRp
b1Nlc3Npb24uaD4KICNpbXBvcnQgPFdlYkNvcmUvQmxvYlJlZ2lzdHJ5SW1wbC5oPgogI2ltcG9y
dCA8V2ViQ29yZS9DRE1GYWN0b3J5Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0NvbG9yLmg+CkBAIC02
Nyw2ICs2OCwyMCBAQCBQYXN0ZWJvYXJkU3RyYXRlZ3kqIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6
Y3JlYXRlUGFzdGVib2FyZFN0cmF0ZWd5KCkKIAogY2xhc3MgV2ViTWVkaWFTdHJhdGVneSBmaW5h
bCA6IHB1YmxpYyBNZWRpYVN0cmF0ZWd5IHsKIHByaXZhdGU6CisjaWYgVVNFKEFVRElPX1NFU1NJ
T04pCisgICAgYm9vbCB0cnlUb1NldEF1ZGlvU2Vzc2lvbkFzQWN0aXZlKGJvb2wgaXNBY3RpdmUp
IGZpbmFsCisgICAgeworICAgICAgICByZXR1cm4gQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9u
KCkudHJ5VG9TZXRBY3RpdmUoaXNBY3RpdmUpOworICAgIH0KKworICAgIHZvaWQgdXBkYXRlQXVk
aW9TZXNzaW9uUGFyYW1ldGVycyhzaXplX3QgYnVmZmVyU2l6ZSwgT3B0aW9uYWw8V2ViQ29yZTo6
QXVkaW9TZXNzaW9uQ2F0ZWdvcnk+IGNhdGVnb3J5LCBPcHRpb25hbDxXZWJDb3JlOjpSb3V0ZVNo
YXJpbmdQb2xpY3k+IHBvbGljeSkgZmluYWwKKyAgICB7CisgICAgICAgIGlmIChidWZmZXJTaXpl
KQorICAgICAgICAgICAgQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2V0UHJlZmVycmVk
QnVmZmVyU2l6ZShidWZmZXJTaXplKTsKKyAgICAgICAgaWYgKGNhdGVnb3J5ICYmIHBvbGljeSkK
KyAgICAgICAgICAgIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldENhdGVnb3J5KCpj
YXRlZ29yeSwgKnBvbGljeSk7CisgICAgfQorI2VuZGlmCiAjaWYgRU5BQkxFKFdFQl9BVURJTykK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlQXVkaW9EZXN0aW5h
dGlvbihBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNl
SWQsCiAgICAgICAgIHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVt
YmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSkgb3ZlcnJpZGUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0gYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCmluZGV4IGUy
MGVlNzQ0NWNhOWIzNTJmYTY3ZDg1ZjM0MWYyMjEyYTBkNjIwZTUuLjQ3NmM4ZjBiODFmODM3N2Y4
NTM1ZmE0NGViOGVjODY3M2Q1YWZkODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQpAQCAtNTQ0LDcgKzU0NCw3IEBAIHB1YmxpYzoK
ICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhCb29sOmFsbG93c0lubGluZU1lZGlhUGxheWJh
Y2tBZnRlckZ1bGxzY3JlZW5dLCBXZWJLaXRBbGxvd3NJbmxpbmVNZWRpYVBsYXliYWNrQWZ0ZXJG
dWxsc2NyZWVuUHJlZmVyZW5jZUtleSwKICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhCb29s
OnJlcXVpcmVzUGxheXNJbmxpbmVBdHRyaWJ1dGVdLCBXZWJLaXRJbmxpbmVNZWRpYVBsYXliYWNr
UmVxdWlyZXNQbGF5c0lubGluZUF0dHJpYnV0ZUtleSwKICAgICAgICAgQE5PLCBXZWJLaXRNZWRp
YUNvbnRyb2xzU2NhbGVXaXRoUGFnZVpvb21QcmVmZXJlbmNlS2V5LAotICAgICAgICBbTlNOdW1i
ZXIgbnVtYmVyV2l0aFVuc2lnbmVkSW50OkF1ZGlvU2Vzc2lvbjo6Tm9uZV0sIFdlYktpdEF1ZGlv
U2Vzc2lvbkNhdGVnb3J5T3ZlcnJpZGUsCisgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoVW5z
aWduZWRJbnQ6c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpOb25l
KV0sIFdlYktpdEF1ZGlvU2Vzc2lvbkNhdGVnb3J5T3ZlcnJpZGUsCiAgICAgICAgIEBOTywgV2Vi
S2l0TWVkaWFEYXRhTG9hZHNBdXRvbWF0aWNhbGx5UHJlZmVyZW5jZUtleSwKICNpZiBIQVZFKEFW
S0lUKQogICAgICAgICBAWUVTLCBXZWJLaXRBVktpdEVuYWJsZWQsCkBAIC0yNDIyLDM3ICsyNDIy
LDM4IEBAIHN0YXRpYyBOU1N0cmluZyAqY2xhc3NJQkNyZWF0b3JJRCA9IG5pbDsKICAgICByZXR1
cm4gW3NlbGYgX3Vuc2lnbmVkSW50VmFsdWVGb3JLZXk6V2ViS2l0QXVkaW9TZXNzaW9uQ2F0ZWdv
cnlPdmVycmlkZV07CiB9CiAKLS0gKHZvaWQpc2V0QXVkaW9TZXNzaW9uQ2F0ZWdvcnlPdmVycmlk
ZToodW5zaWduZWQpb3ZlcnJpZGUKKy0gKHZvaWQpc2V0QXVkaW9TZXNzaW9uQ2F0ZWdvcnlPdmVy
cmlkZToodW5zaWduZWQpb3ZlcnJpZGVWYWx1ZQogewotICAgIGlmIChvdmVycmlkZSA+IEF1ZGlv
U2Vzc2lvbjo6QXVkaW9Qcm9jZXNzaW5nKSB7CisgICAgYXV0byBvdmVycmlkZSA9IHN0YXRpY19j
YXN0PEF1ZGlvU2Vzc2lvbkNhdGVnb3J5PihvdmVycmlkZVZhbHVlKTsKKyAgICBpZiAob3ZlcnJp
ZGVWYWx1ZSA+IHN0YXRpY19jYXN0PHVuc2lnbmVkPihBdWRpb1Nlc3Npb25DYXRlZ29yeTo6QXVk
aW9Qcm9jZXNzaW5nKSkgewogICAgICAgICAvLyBDbGllbnRzIGFyZSBwYXNzaW5nIHVzIE9TVHlw
ZXMgdmFsdWVzIGZyb20gQXVkaW9Ub29sYm94L0F1ZGlvU2Vzc2lvbi5oLAotICAgICAgICAvLyB3
aGljaCBuZWVkIHRvIGJlIHRyYW5zbGF0ZWQgaW50byBBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlw
ZToKLSAgICAgICAgc3dpdGNoIChvdmVycmlkZSkgeworICAgICAgICAvLyB3aGljaCBuZWVkIHRv
IGJlIHRyYW5zbGF0ZWQgaW50byBBdWRpb1Nlc3Npb25DYXRlZ29yeToKKyAgICAgICAgc3dpdGNo
IChvdmVycmlkZVZhbHVlKSB7CiAgICAgICAgIGNhc2UgV2ViS2l0QXVkaW9TZXNzaW9uQ2F0ZWdv
cnlBbWJpZW50U291bmQ6Ci0gICAgICAgICAgICBvdmVycmlkZSA9IEF1ZGlvU2Vzc2lvbjo6QW1i
aWVudFNvdW5kOworICAgICAgICAgICAgb3ZlcnJpZGUgPSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6
QW1iaWVudFNvdW5kOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgV2ViS2l0QXVk
aW9TZXNzaW9uQ2F0ZWdvcnlTb2xvQW1iaWVudFNvdW5kOgotICAgICAgICAgICAgb3ZlcnJpZGUg
PSBBdWRpb1Nlc3Npb246OlNvbG9BbWJpZW50U291bmQ7CisgICAgICAgICAgICBvdmVycmlkZSA9
IEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpTb2xvQW1iaWVudFNvdW5kOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIGNhc2UgV2ViS2l0QXVkaW9TZXNzaW9uQ2F0ZWdvcnlNZWRpYVBsYXliYWNr
OgotICAgICAgICAgICAgb3ZlcnJpZGUgPSBBdWRpb1Nlc3Npb246Ok1lZGlhUGxheWJhY2s7Cisg
ICAgICAgICAgICBvdmVycmlkZSA9IEF1ZGlvU2Vzc2lvbkNhdGVnb3J5OjpNZWRpYVBsYXliYWNr
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgV2ViS2l0QXVkaW9TZXNzaW9uQ2F0
ZWdvcnlSZWNvcmRBdWRpbzoKLSAgICAgICAgICAgIG92ZXJyaWRlID0gQXVkaW9TZXNzaW9uOjpS
ZWNvcmRBdWRpbzsKKyAgICAgICAgICAgIG92ZXJyaWRlID0gQXVkaW9TZXNzaW9uQ2F0ZWdvcnk6
OlJlY29yZEF1ZGlvOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgV2ViS2l0QXVk
aW9TZXNzaW9uQ2F0ZWdvcnlQbGF5QW5kUmVjb3JkOgotICAgICAgICAgICAgb3ZlcnJpZGUgPSBB
dWRpb1Nlc3Npb246OlBsYXlBbmRSZWNvcmQ7CisgICAgICAgICAgICBvdmVycmlkZSA9IEF1ZGlv
U2Vzc2lvbkNhdGVnb3J5OjpQbGF5QW5kUmVjb3JkOwogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIGNhc2UgV2ViS2l0QXVkaW9TZXNzaW9uQ2F0ZWdvcnlBdWRpb1Byb2Nlc3Npbmc6Ci0gICAg
ICAgICAgICBvdmVycmlkZSA9IEF1ZGlvU2Vzc2lvbjo6QXVkaW9Qcm9jZXNzaW5nOworICAgICAg
ICAgICAgb3ZlcnJpZGUgPSBBdWRpb1Nlc3Npb25DYXRlZ29yeTo6QXVkaW9Qcm9jZXNzaW5nOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBvdmVycmlk
ZSA9IEF1ZGlvU2Vzc2lvbjo6Tm9uZTsKKyAgICAgICAgICAgIG92ZXJyaWRlID0gQXVkaW9TZXNz
aW9uQ2F0ZWdvcnk6Ok5vbmU7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0K
IAotICAgIFtzZWxmIF9zZXRVbnNpZ25lZEludFZhbHVlOm92ZXJyaWRlIGZvcktleTpXZWJLaXRB
dWRpb1Nlc3Npb25DYXRlZ29yeU92ZXJyaWRlXTsKKyAgICBbc2VsZiBfc2V0VW5zaWduZWRJbnRW
YWx1ZTpzdGF0aWNfY2FzdDx1bnNpZ25lZD4ob3ZlcnJpZGUpIGZvcktleTpXZWJLaXRBdWRpb1Nl
c3Npb25DYXRlZ29yeU92ZXJyaWRlXTsKIH0KIAogLSAoQk9PTClhdktpdEVuYWJsZWQK
</data>
<flag name="review"
          id="407873"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
      

    </bug>

</bugzilla>