<?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>203210</bug_id>
          
          <creation_ts>2019-10-21 14:00:43 -0700</creation_ts>
          <short_desc>Move ElementContext from WebKit to WebCore</short_desc>
          <delta_ts>2019-10-21 19:42:57 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dean Jackson">dino</reporter>
          <assigned_to name="Dean Jackson">dino</assigned_to>
          <cc>achristensen</cc>
    
    <cc>annulen</cc>
    
    <cc>cdumez</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kangil.han</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1582019</commentid>
    <comment_count>0</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2019-10-21 14:00:43 -0700</bug_when>
    <thetext>Move ElementContext from WebKit to WebCore</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582020</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-10-21 14:02:46 -0700</bug_when>
    <thetext>&lt;rdar://problem/56475682&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582023</commentid>
    <comment_count>2</comment_count>
      <attachid>381449</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2019-10-21 14:07:37 -0700</bug_when>
    <thetext>Created attachment 381449
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582057</commentid>
    <comment_count>3</comment_count>
      <attachid>381460</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2019-10-21 14:49:36 -0700</bug_when>
    <thetext>Created attachment 381460
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582072</commentid>
    <comment_count>4</comment_count>
      <attachid>381465</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2019-10-21 15:09:54 -0700</bug_when>
    <thetext>Created attachment 381465
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582073</commentid>
    <comment_count>5</comment_count>
      <attachid>381460</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2019-10-21 15:10:14 -0700</bug_when>
    <thetext>Comment on attachment 381460
Patch

r+ from smfr</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582075</commentid>
    <comment_count>6</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2019-10-21 15:12:18 -0700</bug_when>
    <thetext>Committed r251388: &lt;https://trac.webkit.org/changeset/251388&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381449</attachid>
            <date>2019-10-21 14:07:37 -0700</date>
            <delta_ts>2019-10-21 14:49:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203210-20191022080736.patch</filename>
            <type>text/plain</type>
            <size>38922</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxMjUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDZkMmE5NTVmZTdhNTI4
ZDJjMTA5ZDBkZmVjZGI0M2I5ZGI1ZDY2NS4uZDFiNzc0M2E2ZDQ2MWQ1OWQ0YWIzYzgyZTE1YmE0
NTg5OGMzNTY0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE5LTEwLTIxICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIEVsZW1lbnRDb250ZXh0
IGZyb20gV2ViS2l0IHRvIFdlYkNvcmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwMzIxMAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTY0NzU2ODI+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogZG9tL1JhZGlvQnV0dG9u
R3JvdXBzLmg6CisKIDIwMTktMTAtMTcgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgog
CiAgICAgICAgIHRleEltYWdlMkQgZm9yIGEgaGFsZi1mbG9hdCB0ZXh0dXJlIG9ubHkgYWNjZXB0
cyBudWxsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IDQ5OWFhMmM3ZjIyNGY1MjE3OTkyMjNjMTBkODg3ODMxODBlMWZk
ZGIuLjEwMjZlZGRiODVhNTc2N2E3ZTRjZTFjMDM5Mzg3ZTdhYzFlY2JjMzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNDQgQEAKKzIwMTktMTAtMjEgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29t
PgorCisgICAgICAgIE1vdmUgRWxlbWVudENvbnRleHQgZnJvbSBXZWJLaXQgdG8gV2ViQ29yZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzMjEwCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NjQ3NTY4Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5Ogor
ICAgICAgICAqIFNoYXJlZC9Eb2N1bWVudEVkaXRpbmdDb250ZXh0Lmg6CisgICAgICAgICogU2hh
cmVkL0RvY3VtZW50RWRpdGluZ0NvbnRleHQubW06CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29k
ZXI8V2ViS2l0OjpEb2N1bWVudEVkaXRpbmdDb250ZXh0UmVxdWVzdD46OmRlY29kZSk6CisgICAg
ICAgICogU2hhcmVkL0VsZW1lbnRDb250ZXh0LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBTaGFy
ZWQvRWxlbWVudENvbnRleHQuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVy
ZW5jZXNEZWZhdWx0VmFsdWVzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdENTU09NVmll
d1Njcm9sbGluZ0FQSUVuYWJsZWQpOgorICAgICAgICAqIFNoYXJlZC9XZWJzaXRlUG9saWNpZXNE
YXRhLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZVBvbGljaWVzRGF0YTo6ZGVjb2RlKToK
KyAgICAgICAgKiBTaGFyZWQvaW9zL0ludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLmg6
CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2ViVmlldyBfcmVxdWVzdFRleHRJbnB1dENvbnRl
eHRzSW5SZWN0OmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLVGV4dElucHV0Q29udGV4dC5tbToKKyAgICAgICAgKC1bX1dLVGV4dElucHV0Q29u
dGV4dCBfaW5pdFdpdGhUZXh0SW5wdXRDb250ZXh0Ol0pOgorICAgICAgICAoLVtfV0tUZXh0SW5w
dXRDb250ZXh0IF90ZXh0SW5wdXRDb250ZXh0XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tUZXh0SW5wdXRDb250ZXh0SW50ZXJuYWwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp0ZXh0SW5w
dXRDb250ZXh0c0luUmVjdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Zm9jdXNU
ZXh0SW5wdXRDb250ZXh0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6Cisg
ICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp0
ZXh0SW5wdXRDb250ZXh0c0luUmVjdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmZvY3Vz
VGV4dElucHV0Q29udGV4dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmVsZW1lbnRGb3JD
b250ZXh0IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Y29udGV4dEZvckVsZW1l
bnQgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlOjpzdGFydEludGVyYWN0aW9uV2l0aEVsZW1lbnRDb250ZXh0T3JQb3NpdGlvbik6CisK
IDIwMTktMTAtMTcgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbV2ViIEFuaW1hdGlvbnNdIEVuYWJsZSB0aGUgV2ViIEFuaW1hdGlvbnMgSmF2YVNjcmlwdCBB
UEkgYnkgZGVmYXVsdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDkxNTU0ODM1OTgwY2IzMDIxMjE4MDliZmU0NGY0ODMwYjRmYzA4
ZDMuLmY0NWU3ZWQxZGVhODhiOGI1YTk3NWM5NTA0NDExNmQ1NTNhN2IxMDAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTkwMiw2
ICs5MDIsNyBAQAogCQkzMTM1OTEwOTFFN0REQzczMDBGMzA2MzAgLyogUlRDSWNlVHJhbnNwb3J0
U3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMx
MzU5MTAzMUU3RERDNjAwMEYzMDYzMCAvKiBSVENJY2VUcmFuc3BvcnRTdGF0ZS5oICovOyB9Owog
CQkzMTM1OTEwQTFFN0REQzczMDBGMzA2MzAgLyogUlRDU2RwVHlwZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEzNTkxMDQxRTdEREM2MDAwRjMwNjMw
IC8qIFJUQ1NkcFR5cGUuaCAqLzsgfTsKIAkJMzEzNTkxMEIxRTdEREM3MzAwRjMwNjMwIC8qIFJU
Q1NpZ25hbGluZ1N0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAzMTM1OTEwNTFFN0REQzYwMDBGMzA2MzAgLyogUlRDU2lnbmFsaW5nU3RhdGUuaCAq
LzsgfTsKKwkJMzEzQkNFMUMyMzVFM0JFNTAwRkMzOUU1IC8qIEVsZW1lbnRDb250ZXh0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTNCQ0UxQjIzNUUz
QkRCMDBGQzM5RTUgLyogRWxlbWVudENvbnRleHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkzMTQwMzc5QjEyNEJFQTdGMDBBRjQwRTQgLyogV2Vi
Q29yZU1vdGlvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDMxNDAzNzk3MTI0QkVBN0YwMEFGNDBFNCAvKiBXZWJDb3JlTW90aW9uTWFuYWdl
ci5oICovOyB9OwogCQkzMTQwMzc5RDEyNEJFQTdGMDBBRjQwRTQgLyogRGV2aWNlT3JpZW50YXRp
b25DbGllbnRJT1MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDMxNDAzNzk5MTI0QkVBN0YwMEFGNDBFNCAvKiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElP
Uy5oICovOyB9OwogCQkzMTQwQzUyMDFGREYxNTFBMDBEMkE4NzMgLyogT2Zmc2NyZWVuQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJELmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAzMTQwQzUxRTFGREYxNTFBMDBEMkE4NzMgLyogT2Zmc2NyZWVuQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJELmggKi87IH07CkBAIC02OTM0LDYgKzY5MzUsNyBAQAogCQkzMTM1OTEw
NDFFN0REQzYwMDBGMzA2MzAgLyogUlRDU2RwVHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBSVENTZHBUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMx
MzU5MTA1MUU3RERDNjAwMEYzMDYzMCAvKiBSVENTaWduYWxpbmdTdGF0ZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBSVENTaWduYWxpbmdTdGF0ZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkzMTM1OTEwQzFFN0REQ0I2MDBGMzA2MzAgLyogUlRDQnVuZGxlUG9s
aWN5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJUQ0J1bmRsZVBvbGljeS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMTNCQ0UxQjIzNUUzQkRCMDBGQzM5RTUg
LyogRWxlbWVudENvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRWxl
bWVudENvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzE0MDM3OTcxMjRC
RUE3RjAwQUY0MEU0IC8qIFdlYkNvcmVNb3Rpb25NYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdlYkNvcmVNb3Rpb25NYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTMxNDAzNzk4MTI0QkVBN0YwMEFGNDBFNCAvKiBXZWJDb3JlTW90aW9uTWFu
YWdlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkNvcmVN
b3Rpb25NYW5hZ2VyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMTQwMzc5OTEy
NEJFQTdGMDBBRjQwRTQgLyogRGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI3NzQzLDYgKzI3NzQ1LDcgQEAKIAkJCQlFNEFF
N0MxOTE3RDIzMjM1MDAwOUZCMzEgLyogRWxlbWVudEFuY2VzdG9ySXRlcmF0b3IuaCAqLywKIAkJ
CQlFNDQwQUE5NTFDNjg0MjA4MDBBMjY1Q0MgLyogRWxlbWVudEFuZFRleHREZXNjZW5kYW50SXRl
cmF0b3IuaCAqLywKIAkJCQlFNDZBMkIxRDE3Q0E3NkIxMDAwREJDRDggLyogRWxlbWVudENoaWxk
SXRlcmF0b3IuaCAqLywKKwkJCQkzMTNCQ0UxQjIzNUUzQkRCMDBGQzM5RTUgLyogRWxlbWVudENv
bnRleHQuaCAqLywKIAkJCQlCNUI3QTE2RjE3QzEwODA2MDBFNEFBMEEgLyogRWxlbWVudERhdGEu
Y3BwICovLAogCQkJCUI1QjdBMTZFMTdDMTA0ODAwMEU0QUEwQSAvKiBFbGVtZW50RGF0YS5oICov
LAogCQkJCUFERTExRjRBMThEODMxMUIwMDc4OTgzQiAvKiBFbGVtZW50RGVzY2VuZGFudEl0ZXJh
dG9yLmggKi8sCkBAIC0yOTM5MSw2ICsyOTM5NCw3IEBACiAJCQkJRTRBRTdDMUExN0QyMzIzNTAw
MDlGQjMxIC8qIEVsZW1lbnRBbmNlc3Rvckl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlF
NDQwQUE5NjFDNjg0MjA4MDBBMjY1Q0MgLyogRWxlbWVudEFuZFRleHREZXNjZW5kYW50SXRlcmF0
b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0NkEyQjFFMTdDQTc2QjEwMDBEQkNEOCAvKiBFbGVt
ZW50Q2hpbGRJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzEzQkNFMUMyMzVFM0JFNTAw
RkMzOUU1IC8qIEVsZW1lbnRDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCNUI3QTE3MTE3
QzEwQUMwMDBFNEFBMEEgLyogRWxlbWVudERhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRDQz
N0ExMUQ1N0IzRjQwMEFCODVFQSAvKiBFbGVtZW50RGVzY2VuZGFudEl0ZXJhdG9yLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkyRDJCRUIzMTIyMzRBMzM1MDA1NTQ0Q0EgLyogRWxlbWVudElkZW50aWZp
ZXIuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1JhZGlv
QnV0dG9uR3JvdXBzLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmFkaW9CdXR0b25Hcm91cHMuaApp
bmRleCBlZjg3NjEwZTU5N2E4YjVjOWVkNTUyOWYyYjU4MmE2NmQwNmY1OGJmLi4zMTUyNDhmZjc4
ZDc3ZTM2YmJiM2QwZDFlZDhiYjUxNDdiYWM2NWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vUmFkaW9CdXR0b25Hcm91cHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmFkaW9C
dXR0b25Hcm91cHMuaApAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+
CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5j
bHVkZSA8d3RmL3RleHQvQXRvbVN0cmluZ0hhc2guaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIv
U291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCBkZjNiYjRiZTAy
NzUzMGE0YTBiOTdiZGYyMGM5YTQzNDY3MDJiNWRmLi4zNTYxMzRiYmM3MzAwMWI5YzFkNzk0NTMw
MWI0MWEwYzQ0MzU3YmZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0
L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMu
cHkKQEAgLTQ4Niw3ICs0ODYsNyBAQCBkZWYgaGVhZGVyc19mb3JfdHlwZSh0eXBlKToKICAgICAg
ICAgJ1dlYktpdDo6V2ViTW91c2VFdmVudCc6IFsnIldlYkV2ZW50LmgiJ10sCiAgICAgICAgICdX
ZWJLaXQ6OldlYlRvdWNoRXZlbnQnOiBbJyJXZWJFdmVudC5oIiddLAogICAgICAgICAnV2ViS2l0
OjpXZWJXaGVlbEV2ZW50JzogWyciV2ViRXZlbnQuaCInXSwKLSAgICAgICAgJ3N0cnVjdCBXZWJL
aXQ6OkVsZW1lbnRDb250ZXh0JzogWyciRWxlbWVudENvbnRleHQuaCInXSwKKyAgICAgICAgJ3N0
cnVjdCBXZWJDb3JlOjpFbGVtZW50Q29udGV4dCc6IFsnPFdlYkNvcmUvRWxlbWVudENvbnRleHQu
aD4nXSwKICAgICAgICAgJ3N0cnVjdCBXZWJLaXQ6OldlYlVzZXJTY3JpcHREYXRhJzogWyciV2Vi
VXNlckNvbnRlbnRDb250cm9sbGVyRGF0YVR5cGVzLmgiJ10sCiAgICAgICAgICdzdHJ1Y3QgV2Vi
S2l0OjpXZWJVc2VyU3R5bGVTaGVldERhdGEnOiBbJyJXZWJVc2VyQ29udGVudENvbnRyb2xsZXJE
YXRhVHlwZXMuaCInXSwKICAgICAgICAgJ3N0cnVjdCBXZWJLaXQ6OldlYlNjcmlwdE1lc3NhZ2VI
YW5kbGVyRGF0YSc6IFsnIldlYlVzZXJDb250ZW50Q29udHJvbGxlckRhdGFUeXBlcy5oIiddLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvRG9jdW1lbnRFZGl0aW5nQ29udGV4dC5o
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvRG9jdW1lbnRFZGl0aW5nQ29udGV4dC5oCmluZGV4IDg2
MWM4OTE2MTAxY2UxMWZlNDFhNGY3YTk3NzQ2NmMzMjc4ZGJlMTguLmMxOTNjZjM1NjIwNTM4OGFl
ZjkwNDZmMzhhOWU1ZTI1OWM3ZWU5ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0RvY3VtZW50RWRpdGluZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Eb2N1
bWVudEVkaXRpbmdDb250ZXh0LmgKQEAgLTI5LDcgKzI5LDcgQEAKIAogI2luY2x1ZGUgIkFyZ3Vt
ZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiQXR0cmlidXRlZFN0cmluZy5oIgotI2luY2x1ZGUgIkVs
ZW1lbnRDb250ZXh0LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9FbGVtZW50Q29udGV4dC5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UZXh0R3JhbnVs
YXJpdHkuaD4KICNpbmNsdWRlIDx3dGYvT3B0aW9uU2V0Lmg+CkBAIC01Niw3ICs1Niw3IEBAIHN0
cnVjdCBEb2N1bWVudEVkaXRpbmdDb250ZXh0UmVxdWVzdCB7CiAKICAgICBXZWJDb3JlOjpGbG9h
dFJlY3QgcmVjdDsKIAotICAgIE9wdGlvbmFsPFdlYktpdDo6RWxlbWVudENvbnRleHQ+IHRleHRJ
bnB1dENvbnRleHQ7CisgICAgT3B0aW9uYWw8V2ViQ29yZTo6RWxlbWVudENvbnRleHQ+IHRleHRJ
bnB1dENvbnRleHQ7CiB9OwogCiBzdHJ1Y3QgRG9jdW1lbnRFZGl0aW5nQ29udGV4dCB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Eb2N1bWVudEVkaXRpbmdDb250ZXh0Lm1tIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvRG9jdW1lbnRFZGl0aW5nQ29udGV4dC5tbQppbmRleCA0ODJl
OGM3Y2RhODUyZGU5MTJiMzI2OTYxNzNjYjQ5Nzg1MjJjYzE3Li5mOWY2ZDM1MGZhOGM4Y2NmOTIw
NTRhOTRlMzdiNGM2YTYxNjI2MmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9E
b2N1bWVudEVkaXRpbmdDb250ZXh0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0RvY3Vt
ZW50RWRpdGluZ0NvbnRleHQubW0KQEAgLTI4LDkgKzI4LDkgQEAKIAogI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCiAKLSNpbmNsdWRlICJFbGVtZW50Q29udGV4dC5oIgogI2luY2x1ZGUgIlVJS2l0
U1BJLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSA8V2Vi
Q29yZS9FbGVtZW50Q29udGV4dC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtMTk4LDcg
KzE5OCw3IEBAIE9wdGlvbmFsPFdlYktpdDo6RG9jdW1lbnRFZGl0aW5nQ29udGV4dFJlcXVlc3Q+
IEFyZ3VtZW50Q29kZXI8V2ViS2l0OjpEb2N1bWVudEVkCiAgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShyZXF1ZXN0LnJlY3QpKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCi0gICAgT3B0
aW9uYWw8T3B0aW9uYWw8V2ViS2l0OjpFbGVtZW50Q29udGV4dD4+IG9wdGlvbmFsVGV4dElucHV0
Q29udGV4dDsKKyAgICBPcHRpb25hbDxPcHRpb25hbDxXZWJDb3JlOjpFbGVtZW50Q29udGV4dD4+
IG9wdGlvbmFsVGV4dElucHV0Q29udGV4dDsKICAgICBkZWNvZGVyID4+IG9wdGlvbmFsVGV4dElu
cHV0Q29udGV4dDsKICAgICBpZiAoIW9wdGlvbmFsVGV4dElucHV0Q29udGV4dCkKICAgICAgICAg
cmV0dXJuIFdURjo6bnVsbG9wdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Vs
ZW1lbnRDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VsZW1lbnRDb250ZXh0LmNw
cApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2Y3NGU3ZmM3MzUyZjU4YWI4YjhhNmIy
NTM1Y2E3NGM0NGQ4NDhmZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbGVtZW50Q29udGV4dC5jcHAKKysrIC9kZXYv
bnVsbApAQCAtMSw2NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0g
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgot
I2luY2x1ZGUgIkVsZW1lbnRDb250ZXh0LmgiCi0KLSNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRD
b2RlcnMuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0VsZW1lbnQuaD4KLQotbmFtZXNwYWNlIFdlYktp
dCB7Ci0KLUVsZW1lbnRDb250ZXh0Ojp+RWxlbWVudENvbnRleHQoKSA9IGRlZmF1bHQ7Ci0KLX0K
LQotbmFtZXNwYWNlIElQQyB7Ci0KLXZvaWQgQXJndW1lbnRDb2RlcjxXZWJLaXQ6OkVsZW1lbnRD
b250ZXh0Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdlYktpdDo6RWxlbWVudENv
bnRleHQmIGNvbnRleHQpCi17Ci0gICAgZW5jb2RlciA8PCBjb250ZXh0LmJvdW5kaW5nUmVjdDsK
LSAgICBlbmNvZGVyIDw8IGNvbnRleHQud2ViUGFnZUlkZW50aWZpZXI7Ci0gICAgZW5jb2RlciA8
PCBjb250ZXh0LmRvY3VtZW50SWRlbnRpZmllcjsKLSAgICBlbmNvZGVyIDw8IGNvbnRleHQuZWxl
bWVudElkZW50aWZpZXI7Ci19Ci0KLU9wdGlvbmFsPFdlYktpdDo6RWxlbWVudENvbnRleHQ+IEFy
Z3VtZW50Q29kZXI8V2ViS2l0OjpFbGVtZW50Q29udGV4dD46OmRlY29kZShEZWNvZGVyJiBkZWNv
ZGVyKQotewotICAgIFdlYktpdDo6RWxlbWVudENvbnRleHQgY29udGV4dDsKLSAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKGNvbnRleHQuYm91bmRpbmdSZWN0KSkKLSAgICAgICAgcmV0dXJuIFdURjo6
bnVsbG9wdDsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGNvbnRleHQud2ViUGFnZUlkZW50aWZp
ZXIpKQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotICAgIGF1dG8gZG9jdW1lbnRJZGVu
dGlmaWVyID0gV2ViQ29yZTo6RG9jdW1lbnRJZGVudGlmaWVyOjpkZWNvZGUoZGVjb2Rlcik7Ci0g
ICAgaWYgKCFkb2N1bWVudElkZW50aWZpZXIpCi0gICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7
Ci0gICAgY29udGV4dC5kb2N1bWVudElkZW50aWZpZXIgPSAqZG9jdW1lbnRJZGVudGlmaWVyOwot
ICAgIGF1dG8gZWxlbWVudElkZW50aWZpZXIgPSBXZWJDb3JlOjpFbGVtZW50SWRlbnRpZmllcjo6
ZGVjb2RlKGRlY29kZXIpOwotICAgIGlmICghZWxlbWVudElkZW50aWZpZXIpCi0gICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7Ci0gICAgY29udGV4dC5lbGVtZW50SWRlbnRpZmllciA9ICplbGVt
ZW50SWRlbnRpZmllcjsKLQotICAgIHJldHVybiBjb250ZXh0OwotfQotCi19CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbGVtZW50Q29udGV4dC5oIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvRWxlbWVudENvbnRleHQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjE1
Y2M0MjcwMjg0Nzk4NTEwNWU2YTAyYTY4OTVjYzczNjE4MDFjMS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbGVtZW50
Q29udGV4dC5oCisrKyAvZGV2L251bGwKQEAgLTEsNjEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNw
cmFnbWEgb25jZQotCi0jaW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKLSNpbmNsdWRlIDxXZWJD
b3JlL0RvY3VtZW50SWRlbnRpZmllci5oPgotI2luY2x1ZGUgPFdlYkNvcmUvRWxlbWVudElkZW50
aWZpZXIuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UmVjdC5oPgotI2luY2x1ZGUgPFdlYkNv
cmUvUGFnZUlkZW50aWZpZXIuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLXN0cnVjdCBFbGVt
ZW50Q29udGV4dCB7Ci0gICAgV2ViQ29yZTo6RmxvYXRSZWN0IGJvdW5kaW5nUmVjdDsKLQotICAg
IFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJZGVudGlmaWVyOwotICAgIFdlYkNvcmU6
OkRvY3VtZW50SWRlbnRpZmllciBkb2N1bWVudElkZW50aWZpZXI7Ci0gICAgV2ViQ29yZTo6RWxl
bWVudElkZW50aWZpZXIgZWxlbWVudElkZW50aWZpZXI7Ci0KLSAgICB+RWxlbWVudENvbnRleHQo
KTsKLX07Ci0KLWlubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgRWxlbWVudENvbnRleHQmIGEs
IGNvbnN0IEVsZW1lbnRDb250ZXh0JiBiKQotewotICAgIHJldHVybiBhLmJvdW5kaW5nUmVjdCA9
PSBiLmJvdW5kaW5nUmVjdAotICAgICAgICAmJiBhLndlYlBhZ2VJZGVudGlmaWVyID09IGIud2Vi
UGFnZUlkZW50aWZpZXIKLSAgICAgICAgJiYgYS5kb2N1bWVudElkZW50aWZpZXIgPT0gYi5kb2N1
bWVudElkZW50aWZpZXIKLSAgICAgICAgJiYgYS5lbGVtZW50SWRlbnRpZmllciA9PSBiLmVsZW1l
bnRJZGVudGlmaWVyOwotfQotCi19Ci0KLW5hbWVzcGFjZSBJUEMgewotdGVtcGxhdGU8PiBzdHJ1
Y3QgQXJndW1lbnRDb2RlcjxXZWJLaXQ6OkVsZW1lbnRDb250ZXh0PiB7Ci0gICAgc3RhdGljIHZv
aWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJLaXQ6OkVsZW1lbnRDb250ZXh0Jik7Ci0gICAg
c3RhdGljIE9wdGlvbmFsPFdlYktpdDo6RWxlbWVudENvbnRleHQ+IGRlY29kZShEZWNvZGVyJik7
Ci19OwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXNE
ZWZhdWx0VmFsdWVzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVm
YXVsdFZhbHVlcy5jcHAKaW5kZXggOTQyOWVkZmQ0Nzc4ZjgwMmI1NDc2NTYyODBiNGY2MzM1N2Jh
ZGY2NS4uYWEzNzg1NTA1YjMwYjIzZDhhYzE3Yzk0MTQzODAwMjM3MzQxZTVlNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMuY3Bw
CkBAIC00OSw3ICs0OSw3IEBAIGJvb2wgZGVmYXVsdFBhc3NpdmVUb3VjaExpc3RlbmVyc0FzRGVm
YXVsdE9uRG9jdW1lbnQoKQogYm9vbCBkZWZhdWx0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxl
ZCgpCiB7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBpZiAoV2ViQ29yZTo6SU9TQXBw
bGljYXRpb246OmlzSU1EYigpICYmIGFwcGxpY2F0aW9uU0RLVmVyc2lvbigpIDwgRFlMRF9JT1Nf
VkVSU0lPTl8xM18wKQorICAgIGlmIChXZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNJTURiKCkg
JiYgV2ViQ29yZTo6YXBwbGljYXRpb25TREtWZXJzaW9uKCkgPCBEWUxEX0lPU19WRVJTSU9OXzEz
XzApCiAgICAgICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgogICAgIHJldHVybiB0cnVlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vic2l0ZVBvbGljaWVzRGF0YS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJzaXRlUG9saWNpZXNEYXRhLmNwcAppbmRleCBhMjFjYzk1
NTliMmUxMjcxZDY3OGQ1MDhkMWI4OTlhZWExMmM1MjNlLi5iODU3ODNkY2FiYzJjODNkM2JkNTY2
YzkyMTkzMjE4YWQyZGM5YTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJz
aXRlUG9saWNpZXNEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJzaXRlUG9s
aWNpZXNEYXRhLmNwcApAQCAtNjksNyArNjksNyBAQCBPcHRpb25hbDxXZWJzaXRlUG9saWNpZXNE
YXRhPiBXZWJzaXRlUG9saWNpZXNEYXRhOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQog
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRB
VElPTikKLSAgICBPcHRpb25hbDxEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0
YXRlPiBkZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc1N0YXRlOworICAgIE9wdGlvbmFs
PFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGU+IGRldmlj
ZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzU3RhdGU7CiAgICAgZGVjb2RlciA+PiBkZXZpY2VP
cmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc1N0YXRlOwogICAgIGlmICghZGV2aWNlT3JpZW50YXRp
b25BbmRNb3Rpb25BY2Nlc3NTdGF0ZSkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9u
QXRQb3NpdGlvbi5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL0ludGVyYWN0aW9uSW5mb3Jt
YXRpb25BdFBvc2l0aW9uLmgKaW5kZXggYTI4NzEzODliMzdkNDcxOTE1YmQ5MWY5YmU2MDliZTEw
N2Q3NGVmNC4uNTMwN2QyNTE2ZmNiZmJhMGE5NTQ0OTdlNDM3MzhmMGI4YjliZTMwNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL0ludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBv
c2l0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL0ludGVyYWN0aW9uSW5mb3Jt
YXRpb25BdFBvc2l0aW9uLmgKQEAgLTI4LDkgKzI4LDkgQEAKICNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQogCiAjaW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKLSNpbmNsdWRlICJFbGVtZW50Q29u
dGV4dC5oIgogI2luY2x1ZGUgIkludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0LmgiCiAjaW5j
bHVkZSAiU2hhcmVhYmxlQml0bWFwLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9FbGVtZW50Q29udGV4
dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW50UG9pbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Nj
cm9sbFR5cGVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWxlY3Rpb25SZWN0Lmg+CkBAIC05MCw3
ICs5MCw3IEBAIHN0cnVjdCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiB7CiAgICAg
UmV0YWluUHRyPE5TQXJyYXk+IGRhdGFEZXRlY3RvclJlc3VsdHM7CiAjZW5kaWYKIAotICAgIE9w
dGlvbmFsPEVsZW1lbnRDb250ZXh0PiBlbGVtZW50Q29udGV4dDsKKyAgICBPcHRpb25hbDxXZWJD
b3JlOjpFbGVtZW50Q29udGV4dD4gZWxlbWVudENvbnRleHQ7CiAKICAgICAvLyBDb3B5IGNvbXBh
dGlibGUgb3B0aW9uYWwgYml0cyBmb3J3YXJkIChmb3IgZXhhbXBsZSwgaWYgd2UgaGF2ZSBhIElu
dGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uCiAgICAgLy8gd2l0aCBzbmFwc2hvdHMgaW4g
aXQsIGFuZCBwZXJmb3JtIGFub3RoZXIgcmVxdWVzdCBmb3IgdGhlIHNhbWUgcG9pbnQgd2l0aG91
dCByZXF1ZXN0aW5nIHRoZSBzbmFwc2hvdHMsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Nv
dXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCBiZjk2Yzg2MDhmMGFh
YzM2MDZlMDMyOWJjOTY1ZDYwOWNmNjg3MWMyLi5hMGQ0YjUwNGJkZjdjNDkwMTRkMzYzY2I2ZGJj
ZmM0ZDAxNWM1MjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBi
L1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTEyMSw3ICsxMjEsNiBAQCBTaGFyZWQvQ2Fj
aGVNb2RlbC5jcHAKIFNoYXJlZC9Db250ZXh0TWVudUNvbnRleHREYXRhLmNwcAogU2hhcmVkL0Vk
aXRpbmdSYW5nZS5jcHAKIFNoYXJlZC9FZGl0b3JTdGF0ZS5jcHAKLVNoYXJlZC9FbGVtZW50Q29u
dGV4dC5jcHAKIFNoYXJlZC9Gb250SW5mby5jcHAKIFNoYXJlZC9GcmFtZUluZm9EYXRhLmNwcAog
U2hhcmVkL0xheWVyVHJlZUNvbnRleHQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCA3ZTA0ODI2YmY3NTdmMDY4MmE4NzVhNTI5NDhm
NDNhOGY0ZWVkNGExLi5lNmY5ZDY5YjdhMTQxOGE3MjY3MmQ4NWVmMWE4M2YwYjk2NTE2ZDFlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAg
LTMzLDcgKzMzLDYgQEAKICNpbXBvcnQgIkNvbXBsZXRpb25IYW5kbGVyQ2FsbENoZWNrZXIuaCIK
ICNpbXBvcnQgIkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgiCiAjaW1wb3J0ICJEeW5hbWljVmll
d3BvcnRTaXplVXBkYXRlLmgiCi0jaW1wb3J0ICJFbGVtZW50Q29udGV4dC5oIgogI2ltcG9ydCAi
RmluZENsaWVudC5oIgogI2ltcG9ydCAiRnVsbHNjcmVlbkNsaWVudC5oIgogI2ltcG9ydCAiR2xv
YmFsRmluZEluUGFnZVN0YXRlLmgiCkBAIC0xMDEsNiArMTAwLDcgQEAKICNpbXBvcnQgIl9XS1Rl
eHRJbnB1dENvbnRleHRJbnRlcm5hbC5oIgogI2ltcG9ydCAiX1dLVmlzaXRlZExpbmtTdG9yZUlu
dGVybmFsLmgiCiAjaW1wb3J0ICJfV0tXZWJzaXRlUG9saWNpZXNJbnRlcm5hbC5oIgorI2ltcG9y
dCA8V2ViQ29yZS9FbGVtZW50Q29udGV4dC5oPgogI2ltcG9ydCA8V2ViQ29yZS9HcmFwaGljc0Nv
bnRleHRDRy5oPgogI2ltcG9ydCA8V2ViQ29yZS9JT1N1cmZhY2UuaD4KICNpbXBvcnQgPFdlYkNv
cmUvSlNET01CaW5kaW5nLmg+CkBAIC01MDU5LDEyICs1MDU5LDEyIEBAIEZPUl9FQUNIX1BSSVZB
VEVfV0tDT05URU5UVklFV19BQ1RJT04oRk9SV0FSRF9BQ1RJT05fVE9fV0tDT05URU5UVklFVykK
IAogICAgIENHUmVjdCByZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzID0gW3NlbGYgX2NvbnZlcnRS
ZWN0VG9Sb290Vmlld0Nvb3JkaW5hdGVzOnJlY3RJbldlYlZpZXdDb29yZGluYXRlc107CiAgICAg
YXV0byB3ZWFrU2VsZiA9IFdlYWtPYmpDUHRyPFdLV2ViVmlldz4oc2VsZik7Ci0gICAgX3BhZ2Ut
PnRleHRJbnB1dENvbnRleHRzSW5SZWN0KHJlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXMsIFt3ZWFr
U2VsZiwgY2FwdHVyZWRDb21wbGV0aW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9u
SGFuZGxlcildIChjb25zdCBWZWN0b3I8V2ViS2l0OjpFbGVtZW50Q29udGV4dD4mIGNvbnRleHRz
KSB7CisgICAgX3BhZ2UtPnRleHRJbnB1dENvbnRleHRzSW5SZWN0KHJlY3RJblJvb3RWaWV3Q29v
cmRpbmF0ZXMsIFt3ZWFrU2VsZiwgY2FwdHVyZWRDb21wbGV0aW9uSGFuZGxlciA9IG1ha2VCbG9j
a1B0cihjb21wbGV0aW9uSGFuZGxlcildIChjb25zdCBWZWN0b3I8V2ViQ29yZTo6RWxlbWVudENv
bnRleHQ+JiBjb250ZXh0cykgewogICAgICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlQXJyYXk+IGVs
ZW1lbnRzID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5
OmNvbnRleHRzLnNpemUoKV0pOwogCiAgICAgICAgIGF1dG8gc3Ryb25nU2VsZiA9IHdlYWtTZWxm
LmdldCgpOwogICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGNvbnRleHQgOiBjb250ZXh0cykgewot
ICAgICAgICAgICAgV2ViS2l0OjpFbGVtZW50Q29udGV4dCBjb250ZXh0V2l0aFdlYlZpZXdCb3Vu
ZGluZ1JlY3QgPSBjb250ZXh0OworICAgICAgICAgICAgV2ViQ29yZTo6RWxlbWVudENvbnRleHQg
Y29udGV4dFdpdGhXZWJWaWV3Qm91bmRpbmdSZWN0ID0gY29udGV4dDsKICAgICAgICAgICAgIGNv
bnRleHRXaXRoV2ViVmlld0JvdW5kaW5nUmVjdC5ib3VuZGluZ1JlY3QgPSBbc3Ryb25nU2VsZiBf
Y29udmVydFJlY3RGcm9tUm9vdFZpZXdDb29yZGluYXRlczpjb250ZXh0LmJvdW5kaW5nUmVjdF07
CiAgICAgICAgICAgICBbZWxlbWVudHMgYWRkT2JqZWN0OmFkb3B0TlMoW1tfV0tUZXh0SW5wdXRD
b250ZXh0IGFsbG9jXSBfaW5pdFdpdGhUZXh0SW5wdXRDb250ZXh0OmNvbnRleHRXaXRoV2ViVmll
d0JvdW5kaW5nUmVjdF0pLmdldCgpXTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1RleHRJbnB1dENvbnRleHQubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVGV4dElucHV0Q29udGV4dC5tbQppbmRleCBm
NjFkNzI3MmUxYWZmN2ZhYzY4MjQ3NTY4NTk2OGQ1ZjI1MGUzYmY0Li43ZWI2NWQwMDA5ZmE5Nzhi
MzBiMTVjMmVkODdiYjA4MGU5NTlmMzMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLVGV4dElucHV0Q29udGV4dC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVGV4dElucHV0Q29udGV4dC5tbQpAQCAtMjYsMTEgKzI2
LDExIEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIl9XS1RleHRJbnB1dENvbnRleHQu
aCIKIAotI2ltcG9ydCAiRWxlbWVudENvbnRleHQuaCIKICNpbXBvcnQgIl9XS1RleHRJbnB1dENv
bnRleHRJbnRlcm5hbC5oIgorI2ltcG9ydCA8V2ViQ29yZS9FbGVtZW50Q29udGV4dC5oPgogCiBA
aW1wbGVtZW50YXRpb24gX1dLVGV4dElucHV0Q29udGV4dCB7Ci0gICAgV2ViS2l0OjpFbGVtZW50
Q29udGV4dCBfdGV4dElucHV0Q29udGV4dDsKKyAgICBXZWJDb3JlOjpFbGVtZW50Q29udGV4dCBf
dGV4dElucHV0Q29udGV4dDsKIH0KIAogLSAoaW5zdGFuY2V0eXBlKWluaXQKQEAgLTM4LDcgKzM4
LDcgQEAKICAgICByZXR1cm4gbmlsOwogfQogCi0tIChpbnN0YW5jZXR5cGUpX2luaXRXaXRoVGV4
dElucHV0Q29udGV4dDooY29uc3QgV2ViS2l0OjpFbGVtZW50Q29udGV4dCYpY29udGV4dAorLSAo
aW5zdGFuY2V0eXBlKV9pbml0V2l0aFRleHRJbnB1dENvbnRleHQ6KGNvbnN0IFdlYkNvcmU6OkVs
ZW1lbnRDb250ZXh0Jiljb250ZXh0CiB7CiAgICAgc2VsZiA9IFtzdXBlciBpbml0XTsKICAgICBp
ZiAoIXNlbGYpCkBAIC01NCw3ICs1NCw3IEBACiAgICAgcmV0dXJuIF90ZXh0SW5wdXRDb250ZXh0
LmJvdW5kaW5nUmVjdDsKIH0KIAotLSAoY29uc3QgV2ViS2l0OjpFbGVtZW50Q29udGV4dCYpX3Rl
eHRJbnB1dENvbnRleHQKKy0gKGNvbnN0IFdlYkNvcmU6OkVsZW1lbnRDb250ZXh0JilfdGV4dElu
cHV0Q29udGV4dAogewogICAgIHJldHVybiBfdGV4dElucHV0Q29udGV4dDsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tUZXh0SW5wdXRDb250ZXh0
SW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tUZXh0SW5w
dXRDb250ZXh0SW50ZXJuYWwuaAppbmRleCA0YWM3MDAyY2FjMTgxMGVjNGRkZjk1Y2E5MjMzMWU4
MDI0NmJkZDYxLi44ZjY3ZmMyOWVhMTkwMTllMzgxMzdhYzdmNzZjMDlhZWRjOWE4NWFlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVGV4dElucHV0Q29u
dGV4dEludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19X
S1RleHRJbnB1dENvbnRleHRJbnRlcm5hbC5oCkBAIC0yNSwxNCArMjUsMTQgQEAKIAogI2ltcG9y
dCAiX1dLVGV4dElucHV0Q29udGV4dC5oIgogCi1uYW1lc3BhY2UgV2ViS2l0IHsKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKIHN0cnVjdCBFbGVtZW50Q29udGV4dDsKIH0KIAogQGludGVyZmFjZSBfV0tU
ZXh0SW5wdXRDb250ZXh0ICgpCiAKLS0gKGluc3RhbmNldHlwZSlfaW5pdFdpdGhUZXh0SW5wdXRD
b250ZXh0Oihjb25zdCBXZWJLaXQ6OkVsZW1lbnRDb250ZXh0Jiljb250ZXh0OworLSAoaW5zdGFu
Y2V0eXBlKV9pbml0V2l0aFRleHRJbnB1dENvbnRleHQ6KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnRD
b250ZXh0Jiljb250ZXh0OwogCi0tIChjb25zdCBXZWJLaXQ6OkVsZW1lbnRDb250ZXh0JilfdGV4
dElucHV0Q29udGV4dDsKKy0gKGNvbnN0IFdlYkNvcmU6OkVsZW1lbnRDb250ZXh0JilfdGV4dElu
cHV0Q29udGV4dDsKIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKaW5kZXggMmNjOTY5MzZjNzBkM2JiOTMzOWNmYmZhNTE4YjI3ZGRlZmZiYmZjZC4uYjY0YWZm
ZTc5ODRkODQ3ZjkwMjg4YzVmYTZlMmZiZDU1ZTUxN2QzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC01OCw3ICs1OCw2IEBACiAjaW5jbHVkZSAiRG93bmxv
YWRQcm94eS5oIgogI2luY2x1ZGUgIkRyYXdpbmdBcmVhTWVzc2FnZXMuaCIKICNpbmNsdWRlICJE
cmF3aW5nQXJlYVByb3h5LmgiCi0jaW5jbHVkZSAiRWxlbWVudENvbnRleHQuaCIKICNpbmNsdWRl
ICJFdmVudERpc3BhdGNoZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIkZvcm1EYXRhUmVmZXJlbmNl
LmgiCiAjaW5jbHVkZSAiRnJhbWVJbmZvRGF0YS5oIgpAQCAtMTQyLDYgKzE0MSw3IEBACiAjaW5j
bHVkZSA8V2ViQ29yZS9EaWFnbm9zdGljTG9nZ2luZ0tleXMuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0RyYWdDb250cm9sbGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EcmFnRGF0YS5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvRWxlbWVudENvbnRleHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0V2ZW50TmFt
ZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UmVjdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
Rm9jdXNEaXJlY3Rpb24uaD4KQEAgLTkzNjgsNyArOTM2OCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5
Ojp3ZWJWaWV3RGlkTW92ZVRvV2luZG93KCkKICAgICB9CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5
Ojp0ZXh0SW5wdXRDb250ZXh0c0luUmVjdChXZWJDb3JlOjpGbG9hdFJlY3QgcmVjdCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChjb25zdCBWZWN0b3I8V2ViS2l0OjpFbGVtZW50Q29udGV4dD4mKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUGFnZVByb3h5Ojp0ZXh0SW5wdXRDb250ZXh0
c0luUmVjdChXZWJDb3JlOjpGbG9hdFJlY3QgcmVjdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChj
b25zdCBWZWN0b3I8V2ViQ29yZTo6RWxlbWVudENvbnRleHQ+Jik+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCiB7CiAgICAgaWYgKCFoYXNSdW5uaW5nUHJvY2VzcygpKSB7CiAgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKHsgfSk7CkBAIC05Mzc4LDcgKzkzNzgsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
dGV4dElucHV0Q29udGV4dHNJblJlY3QoV2ViQ29yZTo6RmxvYXRSZWN0IHJlY3QsIENvbXBsZXRp
b25IYQogICAgIG1fcHJvY2Vzcy0+Y29ubmVjdGlvbigpLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVz
c2FnZXM6OldlYlBhZ2U6OlRleHRJbnB1dENvbnRleHRzSW5SZWN0KHJlY3QpLCBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSwgbV93ZWJQYWdlSUQpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6
Zm9jdXNUZXh0SW5wdXRDb250ZXh0KGNvbnN0IEVsZW1lbnRDb250ZXh0JiBjb250ZXh0LCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJQ
YWdlUHJveHk6OmZvY3VzVGV4dElucHV0Q29udGV4dChjb25zdCBXZWJDb3JlOjpFbGVtZW50Q29u
dGV4dCYgY29udGV4dCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKIHsKICAgICBpZiAoIWhhc1J1bm5pbmdQcm9jZXNzKCkpIHsKICAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoZmFsc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aAppbmRleCBjNmE0ZmRjZmEzNWVjYjU0MTI5YTk3YjQ1MDg4YTJmYzEwNDczNGVkLi44NGU3NTVl
Y2RlMDhhMDI5ZmQ2NDIwNzM5ZjhjNzk1MzI0ODczYjU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaApAQCAtMjQyLDYgKzI0MiwxMCBAQCB0eXBlZGVmIHN0cnVjdCBPcGFx
dWVKU0NvbnRleHQqIEpTR2xvYmFsQ29udGV4dFJlZjsKIHR5cGVkZWYgSFdORCBQbGF0Zm9ybVZp
ZXdXaWRnZXQ7CiAjZW5kaWYKIAorbmFtZXNwYWNlIFdlYkNvcmUgeworc3RydWN0IEVsZW1lbnRD
b250ZXh0OworfQorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIERyYXdpbmdBcmVhUHJveHk7
CiBjbGFzcyBFZGl0YWJsZUltYWdlQ29udHJvbGxlcjsKQEAgLTI5MCw3ICsyOTQsNiBAQCBzdHJ1
Y3QgRG9jdW1lbnRFZGl0aW5nQ29udGV4dDsKIHN0cnVjdCBEb2N1bWVudEVkaXRpbmdDb250ZXh0
UmVxdWVzdDsKIHN0cnVjdCBFZGl0aW5nUmFuZ2U7CiBzdHJ1Y3QgRWRpdG9yU3RhdGU7Ci1zdHJ1
Y3QgRWxlbWVudENvbnRleHQ7CiBzdHJ1Y3QgRm9udEluZm87CiBzdHJ1Y3QgRnJhbWVJbmZvRGF0
YTsKIHN0cnVjdCBJbnNlcnRUZXh0T3B0aW9uczsKQEAgLTY0OCw4ICs2NTEsOCBAQCBwdWJsaWM6
CiAgICAgdm9pZCByZXF1ZXN0Rm9udEF0dHJpYnV0ZXNBdFNlbGVjdGlvblN0YXJ0KEZ1bmN0aW9u
PHZvaWQoY29uc3QgV2ViQ29yZTo6Rm9udEF0dHJpYnV0ZXMmLCBDYWxsYmFja0Jhc2U6OkVycm9y
KT4mJik7CiAgICAgdm9pZCBmb250QXR0cmlidXRlc0NhbGxiYWNrKGNvbnN0IFdlYkNvcmU6OkZv
bnRBdHRyaWJ1dGVzJiwgQ2FsbGJhY2tJRCk7CiAKLSAgICB2b2lkIHRleHRJbnB1dENvbnRleHRz
SW5SZWN0KFdlYkNvcmU6OkZsb2F0UmVjdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBW
ZWN0b3I8RWxlbWVudENvbnRleHQ+Jik+JiYpOwotICAgIHZvaWQgZm9jdXNUZXh0SW5wdXRDb250
ZXh0KGNvbnN0IEVsZW1lbnRDb250ZXh0JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
Jik7CisgICAgdm9pZCB0ZXh0SW5wdXRDb250ZXh0c0luUmVjdChXZWJDb3JlOjpGbG9hdFJlY3Qs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgVmVjdG9yPFdlYkNvcmU6OkVsZW1lbnRDb250
ZXh0PiYpPiYmKTsKKyAgICB2b2lkIGZvY3VzVGV4dElucHV0Q29udGV4dChjb25zdCBXZWJDb3Jl
OjpFbGVtZW50Q29udGV4dCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogCiAj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBkb3VibGUgZGlzcGxheWVkQ29udGVudFNjYWxl
KCkgY29uc3QgeyByZXR1cm4gbV9sYXN0VmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlLnNjYWxlKCk7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IGY5OTUyYzFmNGEwNWUyZTk5ZmIwYjc1ZWU5YjljMTQ5NjFhMzhjYjIuLjAyZWViY2MxMGE2
NTFlMzRmN2U5MjdiZTM1MTRkNWMwNGE0MDg3MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNzIyLDcgKzcyMiw2IEBACiAJCTJEREY3
MzE1MThFOTUwNjAwMDRGNUE2NiAvKiBSZW1vdGVMYXllckJhY2tpbmdTdG9yZUNvbGxlY3Rpb24u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEREY3MzEz
MThFOTUwNjAwMDRGNUE2NiAvKiBSZW1vdGVMYXllckJhY2tpbmdTdG9yZUNvbGxlY3Rpb24uaCAq
LzsgfTsKIAkJMkRFNjk0M0QxOEJEMkE2ODAwNUMxNUU1IC8qIFNtYXJ0TWFnbmlmaWNhdGlvbkNv
bnRyb2xsZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMkRFNjk0M0IxOEJEMkE2ODAwNUMxNUU1IC8qIFNtYXJ0TWFnbmlm
aWNhdGlvbkNvbnRyb2xsZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQkyREU2OTQzRTE4
QkQyQTY4MDA1QzE1RTUgLyogU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlck1lc3NhZ2VzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREU2OTQzQzE4
QkQyQTY4MDA1QzE1RTUgLyogU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlck1lc3NhZ2VzLmgg
Ki87IH07Ci0JCTJERTlCMTM1MjIzMUI1QjIwMDUyODdCNyAvKiBFbGVtZW50Q29udGV4dC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRFOUIxMzMyMjMx
QjVCMjAwNTI4N0I3IC8qIEVsZW1lbnRDb250ZXh0LmggKi87IH07CiAJCTJERTlCMTNBMjIzMUY2
MUMwMDUyODdCNyAvKiBfV0tUZXh0SW5wdXRDb250ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREU5QjEzODIyMzFGNjFDMDA1Mjg3QjcgLyogX1dL
VGV4dElucHV0Q29udGV4dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTJERTlCMTNDMjIzMUY3N0MwMDUyODdCNyAvKiBfV0tUZXh0SW5wdXRDb250
ZXh0SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDJERTlCMTNCMjIzMUY3N0MwMDUyODdCNyAvKiBfV0tUZXh0SW5wdXRDb250ZXh0SW50ZXJu
YWwuaCAqLzsgfTsKIAkJMkRFQUM1Q0YxQUMzNjhCQjAwQTE5NUQ4IC8qIF9XS0ZpbmRPcHRpb25z
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREVBQzVD
RTFBQzM2OEJCMDBBMTk1RDggLyogX1dLRmluZE9wdGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMjg4Miw4ICsyODgxLDYgQEAKIAkJMkRE
RjczMTQxOEU5NTA2MDAwNEY1QTY2IC8qIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlQ29sbGVjdGlv
bi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFJlbW90ZUxheWVy
QmFja2luZ1N0b3JlQ29sbGVjdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MkRFNjk0M0IxOEJEMkE2ODAwNUMxNUU1IC8qIFNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXJN
ZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
U21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlck1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBE
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1NtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXJNZXNzYWdl
UmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQkyREU2
OTQzQzE4QkQyQTY4MDA1QzE1RTUgLyogU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlck1lc3Nh
Z2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFNtYXJ0TWFnbmlmaWNhdGlv
bkNvbnRyb2xsZXJNZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TbWFy
dE1hZ25pZmljYXRpb25Db250cm9sbGVyTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BS
T0RVQ1RTX0RJUjsgfTsKLQkJMkRFOUIxMzMyMjMxQjVCMjAwNTI4N0I3IC8qIEVsZW1lbnRDb250
ZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEVsZW1lbnRDb250ZXh0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTJERTlCMTM0MjIzMUI1QjIwMDUyODdCNyAv
KiBFbGVtZW50Q29udGV4dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBFbGVtZW50Q29udGV4dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJERTlC
MTM3MjIzMUY2MUMwMDUyODdCNyAvKiBfV0tUZXh0SW5wdXRDb250ZXh0Lm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gX1dLVGV4dElucHV0Q29udGV4dC5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkRFOUIxMzgyMjMxRjYxQzAwNTI4N0I3IC8qIF9X
S1RleHRJbnB1dENvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dL
VGV4dElucHV0Q29udGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyREU5QjEz
QjIyMzFGNzdDMDA1Mjg3QjcgLyogX1dLVGV4dElucHV0Q29udGV4dEludGVybmFsLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS1RleHRJbnB1dENvbnRleHRJbnRlcm5hbC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTI3OCw4ICs1Mjc1LDYgQEAKIAkJCQlF
MTA1RkU1MzE4RDdCOURFMDA4RjU3QTggLyogRWRpdGluZ1JhbmdlLmggKi8sCiAJCQkJOENGRUNF
OTMxNDkwRjE0MDAwMkFBQTMyIC8qIEVkaXRvclN0YXRlLmNwcCAqLywKIAkJCQkxQUE0MUFCNDEy
QzAyRUM0MDAyQkU2N0IgLyogRWRpdG9yU3RhdGUuaCAqLywKLQkJCQkyREU5QjEzNDIyMzFCNUIy
MDA1Mjg3QjcgLyogRWxlbWVudENvbnRleHQuY3BwICovLAotCQkJCTJERTlCMTMzMjIzMUI1QjIw
MDUyODdCNyAvKiBFbGVtZW50Q29udGV4dC5oICovLAogCQkJCUM1OUM0QTU2MThCODExNzQwMDdC
RENCNiAvKiBGb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uLmNwcCAqLywKIAkJCQlDNTlDNEE1NzE4
QjgxMTc0MDA3QkRDQjYgLyogRm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbi5oICovLAogCQkJCUJD
RTgxRDhBMTMxOUY3RUYwMDI0MTkxMCAvKiBGb250SW5mby5jcHAgKi8sCkBAIC05NDkyLDcgKzk0
ODcsNiBAQAogCQkJCTJENTg3NUJGMjE5QjUzMTUwMDcwQjlBQSAvKiBFZGl0YWJsZUltYWdlQ29u
dHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTEwNUZFNTQxOEQ3QjlERTAwOEY1N0E4IC8q
IEVkaXRpbmdSYW5nZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFBNDFBQjUxMkMwMkVDNDAwMkJF
NjdCIC8qIEVkaXRvclN0YXRlLmggaW4gSGVhZGVycyAqLywKLQkJCQkyREU5QjEzNTIyMzFCNUIy
MDA1Mjg3QjcgLyogRWxlbWVudENvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMDMyREE4
MTBGNDM3RDEwMDU4QzE1QSAvKiBFbmNvZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUIxNUE4
NTEzODQzQTM5MDAzMjFBRDggLyogRW52aXJvbm1lbnRVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICov
LAogCQkJCTFBQTU3NUZCMTQ5NkI1MjYwMEE0RUUwNiAvKiBFdmVudERpc3BhdGNoZXIuaCBpbiBI
ZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cAppbmRleCBkZjk2MWU0MDljNWE4MzlhYjE4Y2Q1NTI3ZTZmODQ5NmM4Njc5M2JlLi45MDFiYTA2
NzkxYTYwYzFiNjFlNzg0YjU5MDA0ZGY1ZWE2ZDVjY2IwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNjc1OCw5ICs2NzU4LDkgQEAgc3RhdGlj
IGJvb2wgaXNFZGl0YWJsZVRleHRJbnB1dEVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCkKICAgICBy
ZXR1cm4gZWxlbWVudC5pc1Jvb3RFZGl0YWJsZUVsZW1lbnQoKTsKIH0KIAotdm9pZCBXZWJQYWdl
Ojp0ZXh0SW5wdXRDb250ZXh0c0luUmVjdChXZWJDb3JlOjpGbG9hdFJlY3Qgc2VhcmNoUmVjdCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBWZWN0b3I8RWxlbWVudENvbnRleHQ+Jik+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlBhZ2U6OnRleHRJbnB1dENvbnRleHRzSW5SZWN0
KFdlYkNvcmU6OkZsb2F0UmVjdCBzZWFyY2hSZWN0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNv
bnN0IFZlY3RvcjxXZWJDb3JlOjpFbGVtZW50Q29udGV4dD4mKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKIHsKLSAgICBWZWN0b3I8V2ViS2l0OjpFbGVtZW50Q29udGV4dD4gdGV4dElucHV0Q29udGV4
dHM7CisgICAgVmVjdG9yPFdlYkNvcmU6OkVsZW1lbnRDb250ZXh0PiB0ZXh0SW5wdXRDb250ZXh0
czsKIAogICAgIGZvciAoRnJhbWUqIGZyYW1lID0gJm1fcGFnZS0+bWFpbkZyYW1lKCk7IGZyYW1l
OyBmcmFtZSA9IGZyYW1lLT50cmVlKCkudHJhdmVyc2VOZXh0KCkpIHsKICAgICAgICAgRG9jdW1l
bnQqIGRvY3VtZW50ID0gZnJhbWUtPmRvY3VtZW50KCk7CkBAIC02Nzg2LDcgKzY3ODYsNyBAQCB2
b2lkIFdlYlBhZ2U6OnRleHRJbnB1dENvbnRleHRzSW5SZWN0KFdlYkNvcmU6OkZsb2F0UmVjdCBz
ZWFyY2hSZWN0LCBDb21wbGV0aW9uSAogICAgICAgICAgICAgaWYgKCFzZWFyY2hSZWN0LmludGVy
c2VjdHMoZWxlbWVudFJlY3QpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAg
ICAgICBXZWJLaXQ6OkVsZW1lbnRDb250ZXh0IGNvbnRleHQ7CisgICAgICAgICAgICBXZWJDb3Jl
OjpFbGVtZW50Q29udGV4dCBjb250ZXh0OwogICAgICAgICAgICAgY29udGV4dC53ZWJQYWdlSWRl
bnRpZmllciA9IG1faWRlbnRpZmllcjsKICAgICAgICAgICAgIGNvbnRleHQuZG9jdW1lbnRJZGVu
dGlmaWVyID0gZG9jdW1lbnQtPmlkZW50aWZpZXIoKTsKICAgICAgICAgICAgIGNvbnRleHQuZWxl
bWVudElkZW50aWZpZXIgPSBkb2N1bWVudC0+aWRlbnRpZmllckZvckVsZW1lbnQoZWxlbWVudCk7
CkBAIC02Nzk5LDcgKzY3OTksNyBAQCB2b2lkIFdlYlBhZ2U6OnRleHRJbnB1dENvbnRleHRzSW5S
ZWN0KFdlYkNvcmU6OkZsb2F0UmVjdCBzZWFyY2hSZWN0LCBDb21wbGV0aW9uSAogICAgIGNvbXBs
ZXRpb25IYW5kbGVyKHRleHRJbnB1dENvbnRleHRzKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpmb2N1
c1RleHRJbnB1dENvbnRleHQoY29uc3QgRWxlbWVudENvbnRleHQmIHRleHRJbnB1dENvbnRleHQs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lk
IFdlYlBhZ2U6OmZvY3VzVGV4dElucHV0Q29udGV4dChjb25zdCBXZWJDb3JlOjpFbGVtZW50Q29u
dGV4dCYgdGV4dElucHV0Q29udGV4dCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBSZWZQdHI8RWxlbWVudD4gZWxlbWVudCA9IGVsZW1l
bnRGb3JDb250ZXh0KHRleHRJbnB1dENvbnRleHQpOwogCkBAIC02ODA5LDcgKzY4MDksNyBAQCB2
b2lkIFdlYlBhZ2U6OmZvY3VzVGV4dElucHV0Q29udGV4dChjb25zdCBFbGVtZW50Q29udGV4dCYg
dGV4dElucHV0Q29udGV4dCwgQ29tcAogICAgIGNvbXBsZXRpb25IYW5kbGVyKGVsZW1lbnQpOwog
fQogCi1FbGVtZW50KiBXZWJQYWdlOjplbGVtZW50Rm9yQ29udGV4dChjb25zdCBFbGVtZW50Q29u
dGV4dCYgZWxlbWVudENvbnRleHQpIGNvbnN0CitFbGVtZW50KiBXZWJQYWdlOjplbGVtZW50Rm9y
Q29udGV4dChjb25zdCBXZWJDb3JlOjpFbGVtZW50Q29udGV4dCYgZWxlbWVudENvbnRleHQpIGNv
bnN0CiB7CiAgICAgaWYgKGVsZW1lbnRDb250ZXh0LndlYlBhZ2VJZGVudGlmaWVyICE9IG1faWRl
bnRpZmllcikKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC02ODI0LDcgKzY4MjQsNyBAQCBF
bGVtZW50KiBXZWJQYWdlOjplbGVtZW50Rm9yQ29udGV4dChjb25zdCBFbGVtZW50Q29udGV4dCYg
ZWxlbWVudENvbnRleHQpIGNvbnN0CiAgICAgcmV0dXJuIGRvY3VtZW50LT5zZWFyY2hGb3JFbGVt
ZW50QnlJZGVudGlmaWVyKGVsZW1lbnRDb250ZXh0LmVsZW1lbnRJZGVudGlmaWVyKTsKIH0KIAot
T3B0aW9uYWw8RWxlbWVudENvbnRleHQ+IFdlYlBhZ2U6OmNvbnRleHRGb3JFbGVtZW50KFdlYkNv
cmU6OkVsZW1lbnQmIGVsZW1lbnQpIGNvbnN0CitPcHRpb25hbDxXZWJDb3JlOjpFbGVtZW50Q29u
dGV4dD4gV2ViUGFnZTo6Y29udGV4dEZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCYgZWxlbWVu
dCkgY29uc3QKIHsKICAgICBhdXRvJiBkb2N1bWVudCA9IGVsZW1lbnQuZG9jdW1lbnQoKTsKICAg
ICBpZiAoIW1fcGFnZSB8fCBkb2N1bWVudC5wYWdlKCkgIT0gbV9wYWdlLmdldCgpKQpAQCAtNjgz
NCw3ICs2ODM0LDcgQEAgT3B0aW9uYWw8RWxlbWVudENvbnRleHQ+IFdlYlBhZ2U6OmNvbnRleHRG
b3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQmIGVsZW1lbnQpIGMKICAgICBpZiAoIWZyYW1lKQog
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCi0gICAgcmV0dXJuIEVsZW1lbnRDb250ZXh0
IHsgZWxlbWVudFJlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXMoZWxlbWVudCwgKmZyYW1lKSwgbV9p
ZGVudGlmaWVyLCBkb2N1bWVudC5pZGVudGlmaWVyKCksIGRvY3VtZW50LmlkZW50aWZpZXJGb3JF
bGVtZW50KGVsZW1lbnQpIH07CisgICAgcmV0dXJuIFdlYkNvcmU6OkVsZW1lbnRDb250ZXh0IHsg
ZWxlbWVudFJlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXMoZWxlbWVudCwgKmZyYW1lKSwgbV9pZGVu
dGlmaWVyLCBkb2N1bWVudC5pZGVudGlmaWVyKCksIGRvY3VtZW50LmlkZW50aWZpZXJGb3JFbGVt
ZW50KGVsZW1lbnQpIH07CiB9CiAKIFBBTDo6U2Vzc2lvbklEIFdlYlBhZ2U6OnNlc3Npb25JRCgp
IGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXgg
M2ExZTVmNDQ3MTRmODk5ZTc4NzM2OTQyNjZmMzJlNzkzZmEzYmZkZS4uZjc0Yzg2MmE1YmUwNzg3
MzFjOTdkMTVhNWZiYjA0NWI3M2EyNGEwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaApAQCAtMTkxLDYgKzE5MSw3IEBAIGVudW0gY2xhc3MgV3JpdGluZ0Rp
cmVjdGlvbiA6IHVpbnQ4X3Q7CiBzdHJ1Y3QgQmFja0ZvcndhcmRJdGVtSWRlbnRpZmllcjsKIHN0
cnVjdCBDb21wb3NpdGlvblVuZGVybGluZTsKIHN0cnVjdCBEaWN0YXRpb25BbHRlcm5hdGl2ZTsK
K3N0cnVjdCBFbGVtZW50Q29udGV4dDsKIHN0cnVjdCBHbG9iYWxGcmFtZUlkZW50aWZpZXI7CiBz
dHJ1Y3QgR2xvYmFsV2luZG93SWRlbnRpZmllcjsKIHN0cnVjdCBIaWdobGlnaHQ7CkBAIC0yNjEs
NyArMjYyLDYgQEAgc3RydWN0IEF0dHJpYnV0ZWRTdHJpbmc7CiBzdHJ1Y3QgQmFja0ZvcndhcmRM
aXN0SXRlbVN0YXRlOwogc3RydWN0IERhdGFEZXRlY3Rpb25SZXN1bHQ7CiBzdHJ1Y3QgRWRpdG9y
U3RhdGU7Ci1zdHJ1Y3QgRWxlbWVudENvbnRleHQ7CiBzdHJ1Y3QgRm9udEluZm87CiBzdHJ1Y3Qg
SW5zZXJ0VGV4dE9wdGlvbnM7CiBzdHJ1Y3QgSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRp
b247CkBAIC02MTMsOCArNjEzLDggQEAgcHVibGljOgogICAgIHZvaWQgZXhlY3V0ZUVkaXRDb21t
YW5kV2l0aENhbGxiYWNrKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYgYXJndW1lbnQsIENh
bGxiYWNrSUQpOwogICAgIHZvaWQgc2VsZWN0QWxsKCk7CiAKLSAgICB2b2lkIHRleHRJbnB1dENv
bnRleHRzSW5SZWN0KFdlYkNvcmU6OkZsb2F0UmVjdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChj
b25zdCBWZWN0b3I8V2ViS2l0OjpFbGVtZW50Q29udGV4dD4mKT4mJik7Ci0gICAgdm9pZCBmb2N1
c1RleHRJbnB1dENvbnRleHQoY29uc3QgRWxlbWVudENvbnRleHQmLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPiYmKTsKKyAgICB2b2lkIHRleHRJbnB1dENvbnRleHRzSW5SZWN0KFdlYkNv
cmU6OkZsb2F0UmVjdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBWZWN0b3I8V2ViQ29y
ZTo6RWxlbWVudENvbnRleHQ+Jik+JiYpOworICAgIHZvaWQgZm9jdXNUZXh0SW5wdXRDb250ZXh0
KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnRDb250ZXh0JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChi
b29sKT4mJik7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIFdlYkNvcmU6OkZsb2F0
U2l6ZSBzY3JlZW5TaXplKCkgY29uc3Q7CkBAIC02NzAsNyArNjcwLDcgQEAgcHVibGljOgogICAg
IHZvaWQgcmVxdWVzdEF1dG9jb3JyZWN0aW9uQ29udGV4dCgpOwogICAgIHZvaWQgZ2V0UG9zaXRp
b25JbmZvcm1hdGlvbihjb25zdCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdCYsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24mJik+JiYp
OwogICAgIHZvaWQgcmVxdWVzdFBvc2l0aW9uSW5mb3JtYXRpb24oY29uc3QgSW50ZXJhY3Rpb25J
bmZvcm1hdGlvblJlcXVlc3QmKTsKLSAgICB2b2lkIHN0YXJ0SW50ZXJhY3Rpb25XaXRoRWxlbWVu
dENvbnRleHRPclBvc2l0aW9uKE9wdGlvbmFsPEVsZW1lbnRDb250ZXh0PiYmLCBXZWJDb3JlOjpJ
bnRQb2ludCYmKTsKKyAgICB2b2lkIHN0YXJ0SW50ZXJhY3Rpb25XaXRoRWxlbWVudENvbnRleHRP
clBvc2l0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OkVsZW1lbnRDb250ZXh0PiYmLCBXZWJDb3JlOjpJ
bnRQb2ludCYmKTsKICAgICB2b2lkIHN0b3BJbnRlcmFjdGlvbigpOwogICAgIHZvaWQgcGVyZm9y
bUFjdGlvbk9uRWxlbWVudCh1aW50MzJfdCBhY3Rpb24pOwogICAgIHZvaWQgZm9jdXNOZXh0Rm9j
dXNlZEVsZW1lbnQoYm9vbCBpc0ZvcndhcmQsIENhbGxiYWNrSUQpOwpAQCAtMTE5MCw4ICsxMTkw
LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBjb25maWd1cmVMb2dnaW5nQ2hhbm5lbChjb25zdCBT
dHJpbmcmLCBXVEZMb2dDaGFubmVsU3RhdGUsIFdURkxvZ0xldmVsKTsKIAotICAgIFdlYkNvcmU6
OkVsZW1lbnQqIGVsZW1lbnRGb3JDb250ZXh0KGNvbnN0IEVsZW1lbnRDb250ZXh0JikgY29uc3Q7
Ci0gICAgT3B0aW9uYWw8RWxlbWVudENvbnRleHQ+IGNvbnRleHRGb3JFbGVtZW50KFdlYkNvcmU6
OkVsZW1lbnQmKSBjb25zdDsKKyAgICBXZWJDb3JlOjpFbGVtZW50KiBlbGVtZW50Rm9yQ29udGV4
dChjb25zdCBXZWJDb3JlOjpFbGVtZW50Q29udGV4dCYpIGNvbnN0OworICAgIE9wdGlvbmFsPFdl
YkNvcmU6OkVsZW1lbnRDb250ZXh0PiBjb250ZXh0Rm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50
JikgY29uc3Q7CiAKICNpZiBFTkFCTEUoQVBQTEVfUEFZKQogICAgIFdlYlBheW1lbnRDb29yZGlu
YXRvciogcGF5bWVudENvb3JkaW5hdG9yKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCA2NzJhZjZmMzU5MzMxMzYw
YjYzMzIyMzYyMWU0MDQ3YTU1YjhjYWU1Li4zODBlYjBjNjNjNDI0MDgyYmZkYzdhYjRhOGFkZDRk
MDA5ZjY4OTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTg2LDcgKzg2LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFn
ZSBMZWdhY3lSZWNlaXZlciB7CiAgICAgUmVxdWVzdEV2YXNpb25SZWN0c0Fib3ZlU2VsZWN0aW9u
KCkgLT4gKFZlY3RvcjxXZWJDb3JlOjpGbG9hdFJlY3Q+IHJlY3RzKSBBc3luYwogICAgIEdldFBv
c2l0aW9uSW5mb3JtYXRpb24oc3RydWN0IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvblJl
cXVlc3QgcmVxdWVzdCkgLT4gKHN0cnVjdCBXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25B
dFBvc2l0aW9uIGluZm9ybWF0aW9uKSBTeW5jaHJvbm91cwogICAgIFJlcXVlc3RQb3NpdGlvbklu
Zm9ybWF0aW9uKHN0cnVjdCBXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0IHJl
cXVlc3QpCi0gICAgU3RhcnRJbnRlcmFjdGlvbldpdGhFbGVtZW50Q29udGV4dE9yUG9zaXRpb24o
T3B0aW9uYWw8V2ViS2l0OjpFbGVtZW50Q29udGV4dD4gZWxlbWVudENvbnRleHQsIFdlYkNvcmU6
OkludFBvaW50IHBvaW50KQorICAgIFN0YXJ0SW50ZXJhY3Rpb25XaXRoRWxlbWVudENvbnRleHRP
clBvc2l0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OkVsZW1lbnRDb250ZXh0PiBlbGVtZW50Q29udGV4
dCwgV2ViQ29yZTo6SW50UG9pbnQgcG9pbnQpCiAgICAgU3RvcEludGVyYWN0aW9uKCkKICAgICBQ
ZXJmb3JtQWN0aW9uT25FbGVtZW50KHVpbnQzMl90IGFjdGlvbikKICAgICBGb2N1c05leHRGb2N1
c2VkRWxlbWVudChib29sIGlzRm9yd2FyZCwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQp
CkBAIC01NjcsOCArNTY3LDggQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVt
OnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUKICAgICBWb2ljZXNE
aWRDaGFuZ2UoKQogI2VuZGlmCiAKLSAgICBUZXh0SW5wdXRDb250ZXh0c0luUmVjdChXZWJDb3Jl
OjpGbG9hdFJlY3QgcmVjdCkgLT4gKFZlY3RvcjxzdHJ1Y3QgV2ViS2l0OjpFbGVtZW50Q29udGV4
dD4gY29udGV4dHMpIEFzeW5jCi0gICAgRm9jdXNUZXh0SW5wdXRDb250ZXh0KHN0cnVjdCBXZWJL
aXQ6OkVsZW1lbnRDb250ZXh0IGNvbnRleHQpIC0+IChib29sIHN1Y2Nlc3MpIEFzeW5jCisgICAg
VGV4dElucHV0Q29udGV4dHNJblJlY3QoV2ViQ29yZTo6RmxvYXRSZWN0IHJlY3QpIC0+IChWZWN0
b3I8c3RydWN0IFdlYkNvcmU6OkVsZW1lbnRDb250ZXh0PiBjb250ZXh0cykgQXN5bmMKKyAgICBG
b2N1c1RleHRJbnB1dENvbnRleHQoc3RydWN0IFdlYkNvcmU6OkVsZW1lbnRDb250ZXh0IGNvbnRl
eHQpIC0+IChib29sIHN1Y2Nlc3MpIEFzeW5jCiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9T
VEFUSVNUSUNTKQogICAgIFdhc0xvYWRlZFdpdGhEYXRhVHJhbnNmZXJGcm9tUHJldmFsZW50UmVz
b3VyY2UoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9z
L1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2Vi
UGFnZUlPUy5tbQppbmRleCBhZTU1OTFlOGQ1MzBmYzk3OWM4ZmQ2ZWI5ZmU2NDAwZjBiOTVhNmI1
Li45MDAwMjU4NDE2MzQyZGVhMTFjNjNjODYzZjYwM2M2YTg4MTU5MDEzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtMjgx
NSw3ICsyODE1LDcgQEAgdm9pZCBXZWJQYWdlOjpyZXF1ZXN0UG9zaXRpb25JbmZvcm1hdGlvbihj
b25zdCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdCYgcmUKICAgICBzZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OkRpZFJlY2VpdmVQb3NpdGlvbkluZm9ybWF0aW9uKHBvc2l0aW9uSW5m
b3JtYXRpb24ocmVxdWVzdCkpKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpzdGFydEludGVyYWN0aW9u
V2l0aEVsZW1lbnRDb250ZXh0T3JQb3NpdGlvbihPcHRpb25hbDxFbGVtZW50Q29udGV4dD4mJiBl
bGVtZW50Q29udGV4dCwgV2ViQ29yZTo6SW50UG9pbnQmJiBwb2ludCkKK3ZvaWQgV2ViUGFnZTo6
c3RhcnRJbnRlcmFjdGlvbldpdGhFbGVtZW50Q29udGV4dE9yUG9zaXRpb24oT3B0aW9uYWw8V2Vi
Q29yZTo6RWxlbWVudENvbnRleHQ+JiYgZWxlbWVudENvbnRleHQsIFdlYkNvcmU6OkludFBvaW50
JiYgcG9pbnQpCiB7CiAgICAgaWYgKGVsZW1lbnRDb250ZXh0KSB7CiAgICAgICAgIG1faW50ZXJh
Y3Rpb25Ob2RlID0gZWxlbWVudEZvckNvbnRleHQoKmVsZW1lbnRDb250ZXh0KTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381460</attachid>
            <date>2019-10-21 14:49:36 -0700</date>
            <delta_ts>2019-10-21 15:10:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203210-20191022084934.patch</filename>
            <type>text/plain</type>
            <size>39931</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxMzg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWI4Y2YyZjEwZTQ4NTc4
NWRjODhiNjYzMjkxZjQxOTdiZGU0MmJmNC4uNWVhY2M1Yjc5OTQ5ZDU1MjgzYjg5MTA4ZTE5YmE4
NzY1YzEzYzU2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE5LTEwLTIxICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIEVsZW1lbnRDb250ZXh0
IGZyb20gV2ViS2l0IHRvIFdlYkNvcmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwMzIxMAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTY0NzU2ODI+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogZG9tL1JhZGlvQnV0dG9u
R3JvdXBzLmg6CisKIDIwMTktMTAtMjEgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5A
d2Via2l0Lm9yZz4KIAogICAgICAgICBTZXJ2aWNlV29ya2VyIHRlc3RzIHNob3VsZCB1c2UgVENQ
U2VydmVyIGluc3RlYWQgb2YgV0tVUkxTY2hlbWVIYW5kbGVyCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDM1NDkzOTUy
MzgwOGQwNjBhOWM1MDdkMjNlZTdiOTVhYzEyOTI5YTIuLmFiYzA0NTIxMmJiZWNjZmY5MTQ5YWJj
YTE5ZTdlYmQwOGZkZWViZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQgQEAKKzIwMTktMTAtMjEg
IERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgorCisgICAgICAgIE1vdmUgRWxlbWVudENv
bnRleHQgZnJvbSBXZWJLaXQgdG8gV2ViQ29yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzMjEwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NjQ3
NTY4Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAqIFNoYXJlZC9Eb2N1bWVudEVk
aXRpbmdDb250ZXh0Lmg6CisgICAgICAgICogU2hhcmVkL0RvY3VtZW50RWRpdGluZ0NvbnRleHQu
bW06CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8V2ViS2l0OjpEb2N1bWVudEVkaXRpbmdD
b250ZXh0UmVxdWVzdD46OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL0VsZW1lbnRDb250ZXh0
LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBTaGFyZWQvRWxlbWVudENvbnRleHQuaDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6ZGVmYXVsdENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQpOgorICAg
ICAgICAqIFNoYXJlZC9XZWJzaXRlUG9saWNpZXNEYXRhLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2Vic2l0ZVBvbGljaWVzRGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvaW9zL0ludGVy
YWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLmg6CisgICAgICAgICogU291cmNlcy50eHQ6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dL
V2ViVmlldyBfcmVxdWVzdFRleHRJbnB1dENvbnRleHRzSW5SZWN0OmNvbXBsZXRpb25IYW5kbGVy
Ol0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVGV4dElucHV0Q29udGV4dC5t
bToKKyAgICAgICAgKC1bX1dLVGV4dElucHV0Q29udGV4dCBfaW5pdFdpdGhUZXh0SW5wdXRDb250
ZXh0Ol0pOgorICAgICAgICAoLVtfV0tUZXh0SW5wdXRDb250ZXh0IF90ZXh0SW5wdXRDb250ZXh0
XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tUZXh0SW5wdXRDb250ZXh0SW50
ZXJuYWwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5Ojp0ZXh0SW5wdXRDb250ZXh0c0luUmVjdCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Zm9jdXNUZXh0SW5wdXRDb250ZXh0KToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp0ZXh0SW5wdXRDb250ZXh0c0luUmVjdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmZvY3VzVGV4dElucHV0Q29udGV4dCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OmVsZW1lbnRGb3JDb250ZXh0IGNvbnN0KToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6Y29udGV4dEZvckVsZW1lbnQgY29uc3QpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQ
YWdlSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzdGFydEludGVyYWN0aW9uV2l0
aEVsZW1lbnRDb250ZXh0T3JQb3NpdGlvbik6CisKIDIwMTktMTAtMjEgIEFsZXggQ2hyaXN0ZW5z
ZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBTZXJ2aWNlV29ya2VyIHRl
c3RzIHNob3VsZCB1c2UgVENQU2VydmVyIGluc3RlYWQgb2YgV0tVUkxTY2hlbWVIYW5kbGVyCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggZDU5ZmEyNGI0YTc5YjRlMWZlNTRlN2U0ZjljYzdiYzBmZDBhMjlkYi4uNDM4MTc5NWMzNWJl
NmE2MWIyNDkyMjU3ZWNhZWUzYjZlM2Q4YWNlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtOTAyLDYgKzkwMiw3IEBACiAJCTMx
MzU5MTA5MUU3RERDNzMwMEYzMDYzMCAvKiBSVENJY2VUcmFuc3BvcnRTdGF0ZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEzNTkxMDMxRTdEREM2MDAw
RjMwNjMwIC8qIFJUQ0ljZVRyYW5zcG9ydFN0YXRlLmggKi87IH07CiAJCTMxMzU5MTBBMUU3RERD
NzMwMEYzMDYzMCAvKiBSVENTZHBUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAzMTM1OTEwNDFFN0REQzYwMDBGMzA2MzAgLyogUlRDU2RwVHlwZS5o
ICovOyB9OwogCQkzMTM1OTEwQjFFN0REQzczMDBGMzA2MzAgLyogUlRDU2lnbmFsaW5nU3RhdGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMzU5MTA1
MUU3RERDNjAwMEYzMDYzMCAvKiBSVENTaWduYWxpbmdTdGF0ZS5oICovOyB9OworCQkzMTNCQ0Ux
QzIzNUUzQkU1MDBGQzM5RTUgLyogRWxlbWVudENvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxM0JDRTFCMjM1RTNCREIwMEZDMzlFNSAvKiBF
bGVtZW50Q29udGV4dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTMxNDAzNzlCMTI0QkVBN0YwMEFGNDBFNCAvKiBXZWJDb3JlTW90aW9uTWFuYWdl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE0MDM3
OTcxMjRCRUE3RjAwQUY0MEU0IC8qIFdlYkNvcmVNb3Rpb25NYW5hZ2VyLmggKi87IH07CiAJCTMx
NDAzNzlEMTI0QkVBN0YwMEFGNDBFNCAvKiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE0MDM3OTkxMjRC
RUE3RjAwQUY0MEU0IC8qIERldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TLmggKi87IH07CiAJCTMx
NDBDNTIwMUZERjE1MUEwMEQyQTg3MyAvKiBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0
MkQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNDBD
NTFFMUZERjE1MUEwMEQyQTg3MyAvKiBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQu
aCAqLzsgfTsKQEAgLTY5MzMsNiArNjkzNCw3IEBACiAJCTMxMzU5MTA0MUU3RERDNjAwMEYzMDYz
MCAvKiBSVENTZHBUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJUQ1Nk
cFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzEzNTkxMDUxRTdEREM2MDAw
RjMwNjMwIC8qIFJUQ1NpZ25hbGluZ1N0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJUQ1NpZ25hbGluZ1N0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTMxMzU5MTBDMUU3RERDQjYwMEYzMDYzMCAvKiBSVENCdW5kbGVQb2xpY3kuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUlRDQnVuZGxlUG9saWN5Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTMxM0JDRTFCMjM1RTNCREIwMEZDMzlFNSAvKiBFbGVtZW50Q29udGV4
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFbGVtZW50Q29udGV4dC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMTQwMzc5NzEyNEJFQTdGMDBBRjQwRTQgLyog
V2ViQ29yZU1vdGlvbk1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViQ29yZU1vdGlvbk1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzE0
MDM3OTgxMjRCRUE3RjAwQUY0MEU0IC8qIFdlYkNvcmVNb3Rpb25NYW5hZ2VyLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ29yZU1vdGlvbk1hbmFnZXIubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxNDAzNzk5MTI0QkVBN0YwMEFGNDBFNCAv
KiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMjc4MTYsNiArMjc4MTgsNyBAQAogCQkJCUU0QUU3QzE5MTdEMjMyMzUwMDA5
RkIzMSAvKiBFbGVtZW50QW5jZXN0b3JJdGVyYXRvci5oICovLAogCQkJCUU0NDBBQTk1MUM2ODQy
MDgwMEEyNjVDQyAvKiBFbGVtZW50QW5kVGV4dERlc2NlbmRhbnRJdGVyYXRvci5oICovLAogCQkJ
CUU0NkEyQjFEMTdDQTc2QjEwMDBEQkNEOCAvKiBFbGVtZW50Q2hpbGRJdGVyYXRvci5oICovLAor
CQkJCTMxM0JDRTFCMjM1RTNCREIwMEZDMzlFNSAvKiBFbGVtZW50Q29udGV4dC5oICovLAogCQkJ
CUI1QjdBMTZGMTdDMTA4MDYwMEU0QUEwQSAvKiBFbGVtZW50RGF0YS5jcHAgKi8sCiAJCQkJQjVC
N0ExNkUxN0MxMDQ4MDAwRTRBQTBBIC8qIEVsZW1lbnREYXRhLmggKi8sCiAJCQkJQURFMTFGNEEx
OEQ4MzExQjAwNzg5ODNCIC8qIEVsZW1lbnREZXNjZW5kYW50SXRlcmF0b3IuaCAqLywKQEAgLTI5
NDY0LDYgKzI5NDY3LDcgQEAKIAkJCQlFNEFFN0MxQTE3RDIzMjM1MDAwOUZCMzEgLyogRWxlbWVu
dEFuY2VzdG9ySXRlcmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0NDBBQTk2MUM2ODQyMDgw
MEEyNjVDQyAvKiBFbGVtZW50QW5kVGV4dERlc2NlbmRhbnRJdGVyYXRvci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRTQ2QTJCMUUxN0NBNzZCMTAwMERCQ0Q4IC8qIEVsZW1lbnRDaGlsZEl0ZXJhdG9y
LmggaW4gSGVhZGVycyAqLywKKwkJCQkzMTNCQ0UxQzIzNUUzQkU1MDBGQzM5RTUgLyogRWxlbWVu
dENvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCUI1QjdBMTcxMTdDMTBBQzAwMEU0QUEwQSAv
KiBFbGVtZW50RGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNENDM3QTExRDU3QjNGNDAwQUI4
NUVBIC8qIEVsZW1lbnREZXNjZW5kYW50SXRlcmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTJE
MkJFQjMxMjIzNEEzMzUwMDU1NDRDQSAvKiBFbGVtZW50SWRlbnRpZmllci5oIGluIEhlYWRlcnMg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5
IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCBkZjNiYjRi
ZTAyNzUzMGE0YTBiOTdiZGYyMGM5YTQzNDY3MDJiNWRmLi4zNTYxMzRiYmM3MzAwMWI5YzFkNzk0
NTMwMWI0MWEwYzQ0MzU3YmZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Vi
a2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2Fn
ZXMucHkKQEAgLTQ4Niw3ICs0ODYsNyBAQCBkZWYgaGVhZGVyc19mb3JfdHlwZSh0eXBlKToKICAg
ICAgICAgJ1dlYktpdDo6V2ViTW91c2VFdmVudCc6IFsnIldlYkV2ZW50LmgiJ10sCiAgICAgICAg
ICdXZWJLaXQ6OldlYlRvdWNoRXZlbnQnOiBbJyJXZWJFdmVudC5oIiddLAogICAgICAgICAnV2Vi
S2l0OjpXZWJXaGVlbEV2ZW50JzogWyciV2ViRXZlbnQuaCInXSwKLSAgICAgICAgJ3N0cnVjdCBX
ZWJLaXQ6OkVsZW1lbnRDb250ZXh0JzogWyciRWxlbWVudENvbnRleHQuaCInXSwKKyAgICAgICAg
J3N0cnVjdCBXZWJDb3JlOjpFbGVtZW50Q29udGV4dCc6IFsnPFdlYkNvcmUvRWxlbWVudENvbnRl
eHQuaD4nXSwKICAgICAgICAgJ3N0cnVjdCBXZWJLaXQ6OldlYlVzZXJTY3JpcHREYXRhJzogWyci
V2ViVXNlckNvbnRlbnRDb250cm9sbGVyRGF0YVR5cGVzLmgiJ10sCiAgICAgICAgICdzdHJ1Y3Qg
V2ViS2l0OjpXZWJVc2VyU3R5bGVTaGVldERhdGEnOiBbJyJXZWJVc2VyQ29udGVudENvbnRyb2xs
ZXJEYXRhVHlwZXMuaCInXSwKICAgICAgICAgJ3N0cnVjdCBXZWJLaXQ6OldlYlNjcmlwdE1lc3Nh
Z2VIYW5kbGVyRGF0YSc6IFsnIldlYlVzZXJDb250ZW50Q29udHJvbGxlckRhdGFUeXBlcy5oIidd
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvRG9jdW1lbnRFZGl0aW5nQ29udGV4
dC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvRG9jdW1lbnRFZGl0aW5nQ29udGV4dC5oCmluZGV4
IDg2MWM4OTE2MTAxY2UxMWZlNDFhNGY3YTk3NzQ2NmMzMjc4ZGJlMTguLmMxOTNjZjM1NjIwNTM4
OGFlZjkwNDZmMzhhOWU1ZTI1OWM3ZWU5ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0RvY3VtZW50RWRpdGluZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9E
b2N1bWVudEVkaXRpbmdDb250ZXh0LmgKQEAgLTI5LDcgKzI5LDcgQEAKIAogI2luY2x1ZGUgIkFy
Z3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiQXR0cmlidXRlZFN0cmluZy5oIgotI2luY2x1ZGUg
IkVsZW1lbnRDb250ZXh0LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9FbGVtZW50Q29udGV4dC5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UZXh0R3Jh
bnVsYXJpdHkuaD4KICNpbmNsdWRlIDx3dGYvT3B0aW9uU2V0Lmg+CkBAIC01Niw3ICs1Niw3IEBA
IHN0cnVjdCBEb2N1bWVudEVkaXRpbmdDb250ZXh0UmVxdWVzdCB7CiAKICAgICBXZWJDb3JlOjpG
bG9hdFJlY3QgcmVjdDsKIAotICAgIE9wdGlvbmFsPFdlYktpdDo6RWxlbWVudENvbnRleHQ+IHRl
eHRJbnB1dENvbnRleHQ7CisgICAgT3B0aW9uYWw8V2ViQ29yZTo6RWxlbWVudENvbnRleHQ+IHRl
eHRJbnB1dENvbnRleHQ7CiB9OwogCiBzdHJ1Y3QgRG9jdW1lbnRFZGl0aW5nQ29udGV4dCB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Eb2N1bWVudEVkaXRpbmdDb250ZXh0Lm1t
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvRG9jdW1lbnRFZGl0aW5nQ29udGV4dC5tbQppbmRleCA0
ODJlOGM3Y2RhODUyZGU5MTJiMzI2OTYxNzNjYjQ5Nzg1MjJjYzE3Li5mOWY2ZDM1MGZhOGM4Y2Nm
OTIwNTRhOTRlMzdiNGM2YTYxNjI2MmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9Eb2N1bWVudEVkaXRpbmdDb250ZXh0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Rv
Y3VtZW50RWRpdGluZ0NvbnRleHQubW0KQEAgLTI4LDkgKzI4LDkgQEAKIAogI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCiAKLSNpbmNsdWRlICJFbGVtZW50Q29udGV4dC5oIgogI2luY2x1ZGUgIlVJ
S2l0U1BJLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSA8
V2ViQ29yZS9FbGVtZW50Q29udGV4dC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtMTk4
LDcgKzE5OCw3IEBAIE9wdGlvbmFsPFdlYktpdDo6RG9jdW1lbnRFZGl0aW5nQ29udGV4dFJlcXVl
c3Q+IEFyZ3VtZW50Q29kZXI8V2ViS2l0OjpEb2N1bWVudEVkCiAgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShyZXF1ZXN0LnJlY3QpKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCi0gICAg
T3B0aW9uYWw8T3B0aW9uYWw8V2ViS2l0OjpFbGVtZW50Q29udGV4dD4+IG9wdGlvbmFsVGV4dElu
cHV0Q29udGV4dDsKKyAgICBPcHRpb25hbDxPcHRpb25hbDxXZWJDb3JlOjpFbGVtZW50Q29udGV4
dD4+IG9wdGlvbmFsVGV4dElucHV0Q29udGV4dDsKICAgICBkZWNvZGVyID4+IG9wdGlvbmFsVGV4
dElucHV0Q29udGV4dDsKICAgICBpZiAoIW9wdGlvbmFsVGV4dElucHV0Q29udGV4dCkKICAgICAg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0VsZW1lbnRDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VsZW1lbnRDb250ZXh0
LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2Y3NGU3ZmM3MzUyZjU4YWI4Yjhh
NmIyNTM1Y2E3NGM0NGQ4NDhmZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbGVtZW50Q29udGV4dC5jcHAKKysrIC9k
ZXYvbnVsbApAQCAtMSw2NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
Ci0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwot
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5o
IgotI2luY2x1ZGUgIkVsZW1lbnRDb250ZXh0LmgiCi0KLSNpbmNsdWRlICJXZWJDb3JlQXJndW1l
bnRDb2RlcnMuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0VsZW1lbnQuaD4KLQotbmFtZXNwYWNlIFdl
YktpdCB7Ci0KLUVsZW1lbnRDb250ZXh0Ojp+RWxlbWVudENvbnRleHQoKSA9IGRlZmF1bHQ7Ci0K
LX0KLQotbmFtZXNwYWNlIElQQyB7Ci0KLXZvaWQgQXJndW1lbnRDb2RlcjxXZWJLaXQ6OkVsZW1l
bnRDb250ZXh0Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdlYktpdDo6RWxlbWVu
dENvbnRleHQmIGNvbnRleHQpCi17Ci0gICAgZW5jb2RlciA8PCBjb250ZXh0LmJvdW5kaW5nUmVj
dDsKLSAgICBlbmNvZGVyIDw8IGNvbnRleHQud2ViUGFnZUlkZW50aWZpZXI7Ci0gICAgZW5jb2Rl
ciA8PCBjb250ZXh0LmRvY3VtZW50SWRlbnRpZmllcjsKLSAgICBlbmNvZGVyIDw8IGNvbnRleHQu
ZWxlbWVudElkZW50aWZpZXI7Ci19Ci0KLU9wdGlvbmFsPFdlYktpdDo6RWxlbWVudENvbnRleHQ+
IEFyZ3VtZW50Q29kZXI8V2ViS2l0OjpFbGVtZW50Q29udGV4dD46OmRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyKQotewotICAgIFdlYktpdDo6RWxlbWVudENvbnRleHQgY29udGV4dDsKLSAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKGNvbnRleHQuYm91bmRpbmdSZWN0KSkKLSAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGNvbnRleHQud2ViUGFnZUlkZW50
aWZpZXIpKQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotICAgIGF1dG8gZG9jdW1lbnRJ
ZGVudGlmaWVyID0gV2ViQ29yZTo6RG9jdW1lbnRJZGVudGlmaWVyOjpkZWNvZGUoZGVjb2Rlcik7
Ci0gICAgaWYgKCFkb2N1bWVudElkZW50aWZpZXIpCi0gICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7Ci0gICAgY29udGV4dC5kb2N1bWVudElkZW50aWZpZXIgPSAqZG9jdW1lbnRJZGVudGlmaWVy
OwotICAgIGF1dG8gZWxlbWVudElkZW50aWZpZXIgPSBXZWJDb3JlOjpFbGVtZW50SWRlbnRpZmll
cjo6ZGVjb2RlKGRlY29kZXIpOwotICAgIGlmICghZWxlbWVudElkZW50aWZpZXIpCi0gICAgICAg
IHJldHVybiBXVEY6Om51bGxvcHQ7Ci0gICAgY29udGV4dC5lbGVtZW50SWRlbnRpZmllciA9ICpl
bGVtZW50SWRlbnRpZmllcjsKLQotICAgIHJldHVybiBjb250ZXh0OwotfQotCi19CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbGVtZW50Q29udGV4dC5oIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvRWxlbWVudENvbnRleHQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MjE1Y2M0MjcwMjg0Nzk4NTEwNWU2YTAyYTY4OTVjYzczNjE4MDFjMS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbGVt
ZW50Q29udGV4dC5oCisrKyAvZGV2L251bGwKQEAgLTEsNjEgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKLSNpbmNsdWRlIDxX
ZWJDb3JlL0RvY3VtZW50SWRlbnRpZmllci5oPgotI2luY2x1ZGUgPFdlYkNvcmUvRWxlbWVudElk
ZW50aWZpZXIuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UmVjdC5oPgotI2luY2x1ZGUgPFdl
YkNvcmUvUGFnZUlkZW50aWZpZXIuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLXN0cnVjdCBF
bGVtZW50Q29udGV4dCB7Ci0gICAgV2ViQ29yZTo6RmxvYXRSZWN0IGJvdW5kaW5nUmVjdDsKLQot
ICAgIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJZGVudGlmaWVyOwotICAgIFdlYkNv
cmU6OkRvY3VtZW50SWRlbnRpZmllciBkb2N1bWVudElkZW50aWZpZXI7Ci0gICAgV2ViQ29yZTo6
RWxlbWVudElkZW50aWZpZXIgZWxlbWVudElkZW50aWZpZXI7Ci0KLSAgICB+RWxlbWVudENvbnRl
eHQoKTsKLX07Ci0KLWlubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgRWxlbWVudENvbnRleHQm
IGEsIGNvbnN0IEVsZW1lbnRDb250ZXh0JiBiKQotewotICAgIHJldHVybiBhLmJvdW5kaW5nUmVj
dCA9PSBiLmJvdW5kaW5nUmVjdAotICAgICAgICAmJiBhLndlYlBhZ2VJZGVudGlmaWVyID09IGIu
d2ViUGFnZUlkZW50aWZpZXIKLSAgICAgICAgJiYgYS5kb2N1bWVudElkZW50aWZpZXIgPT0gYi5k
b2N1bWVudElkZW50aWZpZXIKLSAgICAgICAgJiYgYS5lbGVtZW50SWRlbnRpZmllciA9PSBiLmVs
ZW1lbnRJZGVudGlmaWVyOwotfQotCi19Ci0KLW5hbWVzcGFjZSBJUEMgewotdGVtcGxhdGU8PiBz
dHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJLaXQ6OkVsZW1lbnRDb250ZXh0PiB7Ci0gICAgc3RhdGlj
IHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJLaXQ6OkVsZW1lbnRDb250ZXh0Jik7Ci0g
ICAgc3RhdGljIE9wdGlvbmFsPFdlYktpdDo6RWxlbWVudENvbnRleHQ+IGRlY29kZShEZWNvZGVy
Jik7Ci19OwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5j
ZXNEZWZhdWx0VmFsdWVzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2Vz
RGVmYXVsdFZhbHVlcy5jcHAKaW5kZXggOTQyOWVkZmQ0Nzc4ZjgwMmI1NDc2NTYyODBiNGY2MzM1
N2JhZGY2NS4uYWEzNzg1NTA1YjMwYjIzZDhhYzE3Yzk0MTQzODAwMjM3MzQxZTVlNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMu
Y3BwCkBAIC00OSw3ICs0OSw3IEBAIGJvb2wgZGVmYXVsdFBhc3NpdmVUb3VjaExpc3RlbmVyc0Fz
RGVmYXVsdE9uRG9jdW1lbnQoKQogYm9vbCBkZWZhdWx0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5h
YmxlZCgpCiB7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBpZiAoV2ViQ29yZTo6SU9T
QXBwbGljYXRpb246OmlzSU1EYigpICYmIGFwcGxpY2F0aW9uU0RLVmVyc2lvbigpIDwgRFlMRF9J
T1NfVkVSU0lPTl8xM18wKQorICAgIGlmIChXZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNJTURi
KCkgJiYgV2ViQ29yZTo6YXBwbGljYXRpb25TREtWZXJzaW9uKCkgPCBEWUxEX0lPU19WRVJTSU9O
XzEzXzApCiAgICAgICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgogICAgIHJldHVybiB0cnVlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vic2l0ZVBvbGljaWVzRGF0YS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJzaXRlUG9saWNpZXNEYXRhLmNwcAppbmRleCBhMjFj
Yzk1NTliMmUxMjcxZDY3OGQ1MDhkMWI4OTlhZWExMmM1MjNlLi5iODU3ODNkY2FiYzJjODNkM2Jk
NTY2YzkyMTkzMjE4YWQyZGM5YTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJzaXRlUG9saWNpZXNEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJzaXRl
UG9saWNpZXNEYXRhLmNwcApAQCAtNjksNyArNjksNyBAQCBPcHRpb25hbDxXZWJzaXRlUG9saWNp
ZXNEYXRhPiBXZWJzaXRlUG9saWNpZXNEYXRhOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVy
KQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCiAjaWYgRU5BQkxFKERFVklDRV9PUklF
TlRBVElPTikKLSAgICBPcHRpb25hbDxEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lv
blN0YXRlPiBkZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc1N0YXRlOworICAgIE9wdGlv
bmFsPFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGU+IGRl
dmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzU3RhdGU7CiAgICAgZGVjb2RlciA+PiBkZXZp
Y2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc1N0YXRlOwogICAgIGlmICghZGV2aWNlT3JpZW50
YXRpb25BbmRNb3Rpb25BY2Nlc3NTdGF0ZSkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0
aW9uQXRQb3NpdGlvbi5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL0ludGVyYWN0aW9uSW5m
b3JtYXRpb25BdFBvc2l0aW9uLmgKaW5kZXggYTI4NzEzODliMzdkNDcxOTE1YmQ5MWY5YmU2MDli
ZTEwN2Q3NGVmNC4uNTMwN2QyNTE2ZmNiZmJhMGE5NTQ0OTdlNDM3MzhmMGI4YjliZTMwNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL0ludGVyYWN0aW9uSW5mb3JtYXRpb25B
dFBvc2l0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL0ludGVyYWN0aW9uSW5m
b3JtYXRpb25BdFBvc2l0aW9uLmgKQEAgLTI4LDkgKzI4LDkgQEAKICNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQogCiAjaW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKLSNpbmNsdWRlICJFbGVtZW50
Q29udGV4dC5oIgogI2luY2x1ZGUgIkludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0LmgiCiAj
aW5jbHVkZSAiU2hhcmVhYmxlQml0bWFwLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9FbGVtZW50Q29u
dGV4dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW50UG9pbnQuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1Njcm9sbFR5cGVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWxlY3Rpb25SZWN0Lmg+CkBAIC05
MCw3ICs5MCw3IEBAIHN0cnVjdCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiB7CiAg
ICAgUmV0YWluUHRyPE5TQXJyYXk+IGRhdGFEZXRlY3RvclJlc3VsdHM7CiAjZW5kaWYKIAotICAg
IE9wdGlvbmFsPEVsZW1lbnRDb250ZXh0PiBlbGVtZW50Q29udGV4dDsKKyAgICBPcHRpb25hbDxX
ZWJDb3JlOjpFbGVtZW50Q29udGV4dD4gZWxlbWVudENvbnRleHQ7CiAKICAgICAvLyBDb3B5IGNv
bXBhdGlibGUgb3B0aW9uYWwgYml0cyBmb3J3YXJkIChmb3IgZXhhbXBsZSwgaWYgd2UgaGF2ZSBh
IEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uCiAgICAgLy8gd2l0aCBzbmFwc2hvdHMg
aW4gaXQsIGFuZCBwZXJmb3JtIGFub3RoZXIgcmVxdWVzdCBmb3IgdGhlIHNhbWUgcG9pbnQgd2l0
aG91dCByZXF1ZXN0aW5nIHRoZSBzbmFwc2hvdHMsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCAzMWVlMTE4OTAy
NTU3NTc1MTc2MTAwNjgyMzliMTYyYTA2ZmYwN2VmLi4xNjc1Mjc1MGZlNTFjNjA0YjBlMThlYjJh
ZDQyYThmYjRjZmY5Yjk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0Cisr
KyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTEyMSw3ICsxMjEsNiBAQCBTaGFyZWQv
Q2FjaGVNb2RlbC5jcHAKIFNoYXJlZC9Db250ZXh0TWVudUNvbnRleHREYXRhLmNwcAogU2hhcmVk
L0VkaXRpbmdSYW5nZS5jcHAKIFNoYXJlZC9FZGl0b3JTdGF0ZS5jcHAKLVNoYXJlZC9FbGVtZW50
Q29udGV4dC5jcHAKIFNoYXJlZC9Gb250SW5mby5jcHAKIFNoYXJlZC9GcmFtZUluZm9EYXRhLmNw
cAogU2hhcmVkL0xheWVyVHJlZUNvbnRleHQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCA3ZTA0ODI2YmY3NTdmMDY4MmE4NzVhNTI5
NDhmNDNhOGY0ZWVkNGExLi5lNmY5ZDY5YjdhMTQxOGE3MjY3MmQ4NWVmMWE4M2YwYjk2NTE2ZDFl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0K
QEAgLTMzLDcgKzMzLDYgQEAKICNpbXBvcnQgIkNvbXBsZXRpb25IYW5kbGVyQ2FsbENoZWNrZXIu
aCIKICNpbXBvcnQgIkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgiCiAjaW1wb3J0ICJEeW5hbWlj
Vmlld3BvcnRTaXplVXBkYXRlLmgiCi0jaW1wb3J0ICJFbGVtZW50Q29udGV4dC5oIgogI2ltcG9y
dCAiRmluZENsaWVudC5oIgogI2ltcG9ydCAiRnVsbHNjcmVlbkNsaWVudC5oIgogI2ltcG9ydCAi
R2xvYmFsRmluZEluUGFnZVN0YXRlLmgiCkBAIC0xMDEsNiArMTAwLDcgQEAKICNpbXBvcnQgIl9X
S1RleHRJbnB1dENvbnRleHRJbnRlcm5hbC5oIgogI2ltcG9ydCAiX1dLVmlzaXRlZExpbmtTdG9y
ZUludGVybmFsLmgiCiAjaW1wb3J0ICJfV0tXZWJzaXRlUG9saWNpZXNJbnRlcm5hbC5oIgorI2lt
cG9ydCA8V2ViQ29yZS9FbGVtZW50Q29udGV4dC5oPgogI2ltcG9ydCA8V2ViQ29yZS9HcmFwaGlj
c0NvbnRleHRDRy5oPgogI2ltcG9ydCA8V2ViQ29yZS9JT1N1cmZhY2UuaD4KICNpbXBvcnQgPFdl
YkNvcmUvSlNET01CaW5kaW5nLmg+CkBAIC01MDU5LDEyICs1MDU5LDEyIEBAIEZPUl9FQUNIX1BS
SVZBVEVfV0tDT05URU5UVklFV19BQ1RJT04oRk9SV0FSRF9BQ1RJT05fVE9fV0tDT05URU5UVklF
VykKIAogICAgIENHUmVjdCByZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzID0gW3NlbGYgX2NvbnZl
cnRSZWN0VG9Sb290Vmlld0Nvb3JkaW5hdGVzOnJlY3RJbldlYlZpZXdDb29yZGluYXRlc107CiAg
ICAgYXV0byB3ZWFrU2VsZiA9IFdlYWtPYmpDUHRyPFdLV2ViVmlldz4oc2VsZik7Ci0gICAgX3Bh
Z2UtPnRleHRJbnB1dENvbnRleHRzSW5SZWN0KHJlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXMsIFt3
ZWFrU2VsZiwgY2FwdHVyZWRDb21wbGV0aW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21wbGV0
aW9uSGFuZGxlcildIChjb25zdCBWZWN0b3I8V2ViS2l0OjpFbGVtZW50Q29udGV4dD4mIGNvbnRl
eHRzKSB7CisgICAgX3BhZ2UtPnRleHRJbnB1dENvbnRleHRzSW5SZWN0KHJlY3RJblJvb3RWaWV3
Q29vcmRpbmF0ZXMsIFt3ZWFrU2VsZiwgY2FwdHVyZWRDb21wbGV0aW9uSGFuZGxlciA9IG1ha2VC
bG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcildIChjb25zdCBWZWN0b3I8V2ViQ29yZTo6RWxlbWVu
dENvbnRleHQ+JiBjb250ZXh0cykgewogICAgICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlQXJyYXk+
IGVsZW1lbnRzID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0V2l0aENhcGFj
aXR5OmNvbnRleHRzLnNpemUoKV0pOwogCiAgICAgICAgIGF1dG8gc3Ryb25nU2VsZiA9IHdlYWtT
ZWxmLmdldCgpOwogICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGNvbnRleHQgOiBjb250ZXh0cykg
ewotICAgICAgICAgICAgV2ViS2l0OjpFbGVtZW50Q29udGV4dCBjb250ZXh0V2l0aFdlYlZpZXdC
b3VuZGluZ1JlY3QgPSBjb250ZXh0OworICAgICAgICAgICAgV2ViQ29yZTo6RWxlbWVudENvbnRl
eHQgY29udGV4dFdpdGhXZWJWaWV3Qm91bmRpbmdSZWN0ID0gY29udGV4dDsKICAgICAgICAgICAg
IGNvbnRleHRXaXRoV2ViVmlld0JvdW5kaW5nUmVjdC5ib3VuZGluZ1JlY3QgPSBbc3Ryb25nU2Vs
ZiBfY29udmVydFJlY3RGcm9tUm9vdFZpZXdDb29yZGluYXRlczpjb250ZXh0LmJvdW5kaW5nUmVj
dF07CiAgICAgICAgICAgICBbZWxlbWVudHMgYWRkT2JqZWN0OmFkb3B0TlMoW1tfV0tUZXh0SW5w
dXRDb250ZXh0IGFsbG9jXSBfaW5pdFdpdGhUZXh0SW5wdXRDb250ZXh0OmNvbnRleHRXaXRoV2Vi
Vmlld0JvdW5kaW5nUmVjdF0pLmdldCgpXTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1RleHRJbnB1dENvbnRleHQubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVGV4dElucHV0Q29udGV4dC5tbQppbmRl
eCBmNjFkNzI3MmUxYWZmN2ZhYzY4MjQ3NTY4NTk2OGQ1ZjI1MGUzYmY0Li43ZWI2NWQwMDA5ZmE5
NzhiMzBiMTVjMmVkODdiYjA4MGU5NTlmMzMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLVGV4dElucHV0Q29udGV4dC5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVGV4dElucHV0Q29udGV4dC5tbQpAQCAtMjYsMTEg
KzI2LDExIEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIl9XS1RleHRJbnB1dENvbnRl
eHQuaCIKIAotI2ltcG9ydCAiRWxlbWVudENvbnRleHQuaCIKICNpbXBvcnQgIl9XS1RleHRJbnB1
dENvbnRleHRJbnRlcm5hbC5oIgorI2ltcG9ydCA8V2ViQ29yZS9FbGVtZW50Q29udGV4dC5oPgog
CiBAaW1wbGVtZW50YXRpb24gX1dLVGV4dElucHV0Q29udGV4dCB7Ci0gICAgV2ViS2l0OjpFbGVt
ZW50Q29udGV4dCBfdGV4dElucHV0Q29udGV4dDsKKyAgICBXZWJDb3JlOjpFbGVtZW50Q29udGV4
dCBfdGV4dElucHV0Q29udGV4dDsKIH0KIAogLSAoaW5zdGFuY2V0eXBlKWluaXQKQEAgLTM4LDcg
KzM4LDcgQEAKICAgICByZXR1cm4gbmlsOwogfQogCi0tIChpbnN0YW5jZXR5cGUpX2luaXRXaXRo
VGV4dElucHV0Q29udGV4dDooY29uc3QgV2ViS2l0OjpFbGVtZW50Q29udGV4dCYpY29udGV4dAor
LSAoaW5zdGFuY2V0eXBlKV9pbml0V2l0aFRleHRJbnB1dENvbnRleHQ6KGNvbnN0IFdlYkNvcmU6
OkVsZW1lbnRDb250ZXh0Jiljb250ZXh0CiB7CiAgICAgc2VsZiA9IFtzdXBlciBpbml0XTsKICAg
ICBpZiAoIXNlbGYpCkBAIC01NCw3ICs1NCw3IEBACiAgICAgcmV0dXJuIF90ZXh0SW5wdXRDb250
ZXh0LmJvdW5kaW5nUmVjdDsKIH0KIAotLSAoY29uc3QgV2ViS2l0OjpFbGVtZW50Q29udGV4dCYp
X3RleHRJbnB1dENvbnRleHQKKy0gKGNvbnN0IFdlYkNvcmU6OkVsZW1lbnRDb250ZXh0JilfdGV4
dElucHV0Q29udGV4dAogewogICAgIHJldHVybiBfdGV4dElucHV0Q29udGV4dDsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tUZXh0SW5wdXRDb250
ZXh0SW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tUZXh0
SW5wdXRDb250ZXh0SW50ZXJuYWwuaAppbmRleCA0YWM3MDAyY2FjMTgxMGVjNGRkZjk1Y2E5MjMz
MWU4MDI0NmJkZDYxLi44ZjY3ZmMyOWVhMTkwMTllMzgxMzdhYzdmNzZjMDlhZWRjOWE4NWFlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVGV4dElucHV0
Q29udGV4dEludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L19XS1RleHRJbnB1dENvbnRleHRJbnRlcm5hbC5oCkBAIC0yNSwxNCArMjUsMTQgQEAKIAogI2lt
cG9ydCAiX1dLVGV4dElucHV0Q29udGV4dC5oIgogCi1uYW1lc3BhY2UgV2ViS2l0IHsKK25hbWVz
cGFjZSBXZWJDb3JlIHsKIHN0cnVjdCBFbGVtZW50Q29udGV4dDsKIH0KIAogQGludGVyZmFjZSBf
V0tUZXh0SW5wdXRDb250ZXh0ICgpCiAKLS0gKGluc3RhbmNldHlwZSlfaW5pdFdpdGhUZXh0SW5w
dXRDb250ZXh0Oihjb25zdCBXZWJLaXQ6OkVsZW1lbnRDb250ZXh0Jiljb250ZXh0OworLSAoaW5z
dGFuY2V0eXBlKV9pbml0V2l0aFRleHRJbnB1dENvbnRleHQ6KGNvbnN0IFdlYkNvcmU6OkVsZW1l
bnRDb250ZXh0Jiljb250ZXh0OwogCi0tIChjb25zdCBXZWJLaXQ6OkVsZW1lbnRDb250ZXh0Jilf
dGV4dElucHV0Q29udGV4dDsKKy0gKGNvbnN0IFdlYkNvcmU6OkVsZW1lbnRDb250ZXh0JilfdGV4
dElucHV0Q29udGV4dDsKIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKaW5kZXggY2ViZDExZmIwMDJlYWM2YzZmOWNhMWNmZWExNDgwNGFiZDQ4MzAwOC4uZWI5
MGM1YWJkMzBiYzgxY2E0MGMwZGYzZmY0NmFiNTE1MDQ2YTc4ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC01OSw3ICs1OSw2IEBACiAjaW5jbHVkZSAiRG93
bmxvYWRQcm94eS5oIgogI2luY2x1ZGUgIkRyYXdpbmdBcmVhTWVzc2FnZXMuaCIKICNpbmNsdWRl
ICJEcmF3aW5nQXJlYVByb3h5LmgiCi0jaW5jbHVkZSAiRWxlbWVudENvbnRleHQuaCIKICNpbmNs
dWRlICJFdmVudERpc3BhdGNoZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIkZvcm1EYXRhUmVmZXJl
bmNlLmgiCiAjaW5jbHVkZSAiRnJhbWVJbmZvRGF0YS5oIgpAQCAtMTQzLDYgKzE0Miw3IEBACiAj
aW5jbHVkZSA8V2ViQ29yZS9EaWFnbm9zdGljTG9nZ2luZ0tleXMuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0RyYWdDb250cm9sbGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EcmFnRGF0YS5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvRWxlbWVudENvbnRleHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0V2ZW50
TmFtZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UmVjdC5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvRm9jdXNEaXJlY3Rpb24uaD4KQEAgLTkzNzcsNyArOTM3Nyw3IEBAIHZvaWQgV2ViUGFnZVBy
b3h5Ojp3ZWJWaWV3RGlkTW92ZVRvV2luZG93KCkKICAgICB9CiB9CiAKLXZvaWQgV2ViUGFnZVBy
b3h5Ojp0ZXh0SW5wdXRDb250ZXh0c0luUmVjdChXZWJDb3JlOjpGbG9hdFJlY3QgcmVjdCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBWZWN0b3I8V2ViS2l0OjpFbGVtZW50Q29udGV4dD4m
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUGFnZVByb3h5Ojp0ZXh0SW5wdXRDb250
ZXh0c0luUmVjdChXZWJDb3JlOjpGbG9hdFJlY3QgcmVjdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChjb25zdCBWZWN0b3I8V2ViQ29yZTo6RWxlbWVudENvbnRleHQ+Jik+JiYgY29tcGxldGlvbkhh
bmRsZXIpCiB7CiAgICAgaWYgKCFoYXNSdW5uaW5nUHJvY2VzcygpKSB7CiAgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKHsgfSk7CkBAIC05Mzg3LDcgKzkzODcsNyBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6dGV4dElucHV0Q29udGV4dHNJblJlY3QoV2ViQ29yZTo6RmxvYXRSZWN0IHJlY3QsIENvbXBs
ZXRpb25IYQogICAgIG1fcHJvY2Vzcy0+Y29ubmVjdGlvbigpLT5zZW5kV2l0aEFzeW5jUmVwbHko
TWVzc2FnZXM6OldlYlBhZ2U6OlRleHRJbnB1dENvbnRleHRzSW5SZWN0KHJlY3QpLCBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKSwgbV93ZWJQYWdlSUQpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94
eTo6Zm9jdXNUZXh0SW5wdXRDb250ZXh0KGNvbnN0IEVsZW1lbnRDb250ZXh0JiBjb250ZXh0LCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBX
ZWJQYWdlUHJveHk6OmZvY3VzVGV4dElucHV0Q29udGV4dChjb25zdCBXZWJDb3JlOjpFbGVtZW50
Q29udGV4dCYgY29udGV4dCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKIHsKICAgICBpZiAoIWhhc1J1bm5pbmdQcm9jZXNzKCkpIHsKICAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaAppbmRleCBjNmE0ZmRjZmEzNWVjYjU0MTI5YTk3YjQ1MDg4YTJmYzEwNDczNGVkLi44NGU3
NTVlY2RlMDhhMDI5ZmQ2NDIwNzM5ZjhjNzk1MzI0ODczYjU1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMjQyLDYgKzI0MiwxMCBAQCB0eXBlZGVmIHN0cnVjdCBP
cGFxdWVKU0NvbnRleHQqIEpTR2xvYmFsQ29udGV4dFJlZjsKIHR5cGVkZWYgSFdORCBQbGF0Zm9y
bVZpZXdXaWRnZXQ7CiAjZW5kaWYKIAorbmFtZXNwYWNlIFdlYkNvcmUgeworc3RydWN0IEVsZW1l
bnRDb250ZXh0OworfQorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIERyYXdpbmdBcmVhUHJv
eHk7CiBjbGFzcyBFZGl0YWJsZUltYWdlQ29udHJvbGxlcjsKQEAgLTI5MCw3ICsyOTQsNiBAQCBz
dHJ1Y3QgRG9jdW1lbnRFZGl0aW5nQ29udGV4dDsKIHN0cnVjdCBEb2N1bWVudEVkaXRpbmdDb250
ZXh0UmVxdWVzdDsKIHN0cnVjdCBFZGl0aW5nUmFuZ2U7CiBzdHJ1Y3QgRWRpdG9yU3RhdGU7Ci1z
dHJ1Y3QgRWxlbWVudENvbnRleHQ7CiBzdHJ1Y3QgRm9udEluZm87CiBzdHJ1Y3QgRnJhbWVJbmZv
RGF0YTsKIHN0cnVjdCBJbnNlcnRUZXh0T3B0aW9uczsKQEAgLTY0OCw4ICs2NTEsOCBAQCBwdWJs
aWM6CiAgICAgdm9pZCByZXF1ZXN0Rm9udEF0dHJpYnV0ZXNBdFNlbGVjdGlvblN0YXJ0KEZ1bmN0
aW9uPHZvaWQoY29uc3QgV2ViQ29yZTo6Rm9udEF0dHJpYnV0ZXMmLCBDYWxsYmFja0Jhc2U6OkVy
cm9yKT4mJik7CiAgICAgdm9pZCBmb250QXR0cmlidXRlc0NhbGxiYWNrKGNvbnN0IFdlYkNvcmU6
OkZvbnRBdHRyaWJ1dGVzJiwgQ2FsbGJhY2tJRCk7CiAKLSAgICB2b2lkIHRleHRJbnB1dENvbnRl
eHRzSW5SZWN0KFdlYkNvcmU6OkZsb2F0UmVjdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25z
dCBWZWN0b3I8RWxlbWVudENvbnRleHQ+Jik+JiYpOwotICAgIHZvaWQgZm9jdXNUZXh0SW5wdXRD
b250ZXh0KGNvbnN0IEVsZW1lbnRDb250ZXh0JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29s
KT4mJik7CisgICAgdm9pZCB0ZXh0SW5wdXRDb250ZXh0c0luUmVjdChXZWJDb3JlOjpGbG9hdFJl
Y3QsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgVmVjdG9yPFdlYkNvcmU6OkVsZW1lbnRD
b250ZXh0PiYpPiYmKTsKKyAgICB2b2lkIGZvY3VzVGV4dElucHV0Q29udGV4dChjb25zdCBXZWJD
b3JlOjpFbGVtZW50Q29udGV4dCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwog
CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBkb3VibGUgZGlzcGxheWVkQ29udGVudFNj
YWxlKCkgY29uc3QgeyByZXR1cm4gbV9sYXN0VmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlLnNjYWxl
KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IGNjMmUxMGRkMTljOWRjMWI3MmM1MmQzMTA5YzBmNTVhNmQ3MjZiNmIuLmQ1NTdjMTcw
ZGI1MzdhYmNlNjI2MmVmODYyZDk0YzhlOWRjNTQ1MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNzIzLDcgKzcyMyw2IEBACiAJCTJE
REY3MzE1MThFOTUwNjAwMDRGNUE2NiAvKiBSZW1vdGVMYXllckJhY2tpbmdTdG9yZUNvbGxlY3Rp
b24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEREY3
MzEzMThFOTUwNjAwMDRGNUE2NiAvKiBSZW1vdGVMYXllckJhY2tpbmdTdG9yZUNvbGxlY3Rpb24u
aCAqLzsgfTsKIAkJMkRFNjk0M0QxOEJEMkE2ODAwNUMxNUU1IC8qIFNtYXJ0TWFnbmlmaWNhdGlv
bkNvbnRyb2xsZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMkRFNjk0M0IxOEJEMkE2ODAwNUMxNUU1IC8qIFNtYXJ0TWFn
bmlmaWNhdGlvbkNvbnRyb2xsZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQkyREU2OTQz
RTE4QkQyQTY4MDA1QzE1RTUgLyogU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlck1lc3NhZ2Vz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREU2OTQz
QzE4QkQyQTY4MDA1QzE1RTUgLyogU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlck1lc3NhZ2Vz
LmggKi87IH07Ci0JCTJERTlCMTM1MjIzMUI1QjIwMDUyODdCNyAvKiBFbGVtZW50Q29udGV4dC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRFOUIxMzMy
MjMxQjVCMjAwNTI4N0I3IC8qIEVsZW1lbnRDb250ZXh0LmggKi87IH07CiAJCTJERTlCMTNBMjIz
MUY2MUMwMDUyODdCNyAvKiBfV0tUZXh0SW5wdXRDb250ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREU5QjEzODIyMzFGNjFDMDA1Mjg3QjcgLyog
X1dLVGV4dElucHV0Q29udGV4dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTJERTlCMTNDMjIzMUY3N0MwMDUyODdCNyAvKiBfV0tUZXh0SW5wdXRD
b250ZXh0SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDJERTlCMTNCMjIzMUY3N0MwMDUyODdCNyAvKiBfV0tUZXh0SW5wdXRDb250ZXh0SW50
ZXJuYWwuaCAqLzsgfTsKIAkJMkRFQUM1Q0YxQUMzNjhCQjAwQTE5NUQ4IC8qIF9XS0ZpbmRPcHRp
b25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREVB
QzVDRTFBQzM2OEJCMDBBMTk1RDggLyogX1dLRmluZE9wdGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMjg4NSw4ICsyODg0LDYgQEAKIAkJ
MkRERjczMTQxOEU5NTA2MDAwNEY1QTY2IC8qIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlQ29sbGVj
dGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFJlbW90ZUxh
eWVyQmFja2luZ1N0b3JlQ29sbGVjdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMkRFNjk0M0IxOEJEMkE2ODAwNUMxNUU1IC8qIFNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xs
ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1l
ID0gU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlck1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGgg
PSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1NtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQky
REU2OTQzQzE4QkQyQTY4MDA1QzE1RTUgLyogU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlck1l
c3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFNtYXJ0TWFnbmlmaWNh
dGlvbkNvbnRyb2xsZXJNZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9T
bWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxU
X1BST0RVQ1RTX0RJUjsgfTsKLQkJMkRFOUIxMzMyMjMxQjVCMjAwNTI4N0I3IC8qIEVsZW1lbnRD
b250ZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEVsZW1lbnRDb250ZXh0
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTJERTlCMTM0MjIzMUI1QjIwMDUyODdC
NyAvKiBFbGVtZW50Q29udGV4dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBFbGVtZW50Q29udGV4dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJE
RTlCMTM3MjIzMUY2MUMwMDUyODdCNyAvKiBfV0tUZXh0SW5wdXRDb250ZXh0Lm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gX1dLVGV4dElucHV0Q29udGV4dC5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkRFOUIxMzgyMjMxRjYxQzAwNTI4N0I3IC8q
IF9XS1RleHRJbnB1dENvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
X1dLVGV4dElucHV0Q29udGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyREU5
QjEzQjIyMzFGNzdDMDA1Mjg3QjcgLyogX1dLVGV4dElucHV0Q29udGV4dEludGVybmFsLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS1RleHRJbnB1dENvbnRleHRJbnRlcm5h
bC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTI4Myw4ICs1MjgwLDYgQEAKIAkJ
CQlFMTA1RkU1MzE4RDdCOURFMDA4RjU3QTggLyogRWRpdGluZ1JhbmdlLmggKi8sCiAJCQkJOENG
RUNFOTMxNDkwRjE0MDAwMkFBQTMyIC8qIEVkaXRvclN0YXRlLmNwcCAqLywKIAkJCQkxQUE0MUFC
NDEyQzAyRUM0MDAyQkU2N0IgLyogRWRpdG9yU3RhdGUuaCAqLywKLQkJCQkyREU5QjEzNDIyMzFC
NUIyMDA1Mjg3QjcgLyogRWxlbWVudENvbnRleHQuY3BwICovLAotCQkJCTJERTlCMTMzMjIzMUI1
QjIwMDUyODdCNyAvKiBFbGVtZW50Q29udGV4dC5oICovLAogCQkJCUM1OUM0QTU2MThCODExNzQw
MDdCRENCNiAvKiBGb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uLmNwcCAqLywKIAkJCQlDNTlDNEE1
NzE4QjgxMTc0MDA3QkRDQjYgLyogRm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbi5oICovLAogCQkJ
CUJDRTgxRDhBMTMxOUY3RUYwMDI0MTkxMCAvKiBGb250SW5mby5jcHAgKi8sCkBAIC02MjcxLDkg
KzYyNjYsOSBAQAogCQkJCTJEQUFEQThFMjI5OEMyMTAwMEUzNkIwQyAvKiBEZXZpY2VNYW5hZ2Vt
ZW50U1BJLmggKi8sCiAJCQkJNTdCODI2NDAyMzA0RUIzRTAwQjcyRUIwIC8qIE5lYXJGaWVsZFNQ
SS5oICovLAogCQkJCTM3NTRENTQ0MUIzQTI5RkQwMDNBNEM3RiAvKiBOU0ludm9jYXRpb25TUEku
aCAqLywKKwkJCQkzN0I0N0UyQzFENjREQjc2MDA1RjRFRkYgLyogb2JqY1NQSS5oICovLAogCQkJ
CTBFOTdENzRDMjAwRThGRjMwMEJGNjY0MyAvKiBTYWZlQnJvd3NpbmdTUEkuaCAqLywKIAkJCQk3
QUE3NDZENDIzNTkzMDg0MDAwOTUwNTAgLyogU2VjSXRlbVNQSS5oICovLAotCQkJCTM3QjQ3RTJD
MUQ2NERCNzYwMDVGNEVGRiAvKiBvYmpjU1BJLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IENvY29h
OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTk0MDksNyArOTQwNCw2IEBACiAJCQkJ
MUFGREU2NjIxOTU0RTlCMTAwQzQ4RkZBIC8qIEFQSVNlc3Npb25TdGF0ZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMUE0RDY2NDgxOEEyRDkxQTAwRDgyRTIxIC8qIEFQSVVJQ2xpZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCQ0RCODZDMTEyMDBGQjk3MDA3MjU0QkUgLyogQVBJVVJMLmggaW4gSGVh
ZGVycyAqLywKLQkJCQk3QUE3NDZENTIzNTkzRDgxMDAwOTUwNTAgLyogU2VjSXRlbVNQSS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkNFMjMxNUQxMjJDMzBDQTAwRDVDMzVBIC8qIEFQSVVSTFJlcXVl
c3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDOTBBMUQyMTIyREQ1NUUwMENDOEM1MCAvKiBBUElV
UkxSZXNwb25zZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjYxMTNFMjUxMjZDRTE4MjAwNTdEMEE3
IC8qIEFQSVVzZXJDb250ZW50VVJMUGF0dGVybi5oIGluIEhlYWRlcnMgKi8sCkBAIC05NTAyLDcg
Kzk0OTYsNiBAQAogCQkJCTJENTg3NUJGMjE5QjUzMTUwMDcwQjlBQSAvKiBFZGl0YWJsZUltYWdl
Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTEwNUZFNTQxOEQ3QjlERTAwOEY1N0E4
IC8qIEVkaXRpbmdSYW5nZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFBNDFBQjUxMkMwMkVDNDAw
MkJFNjdCIC8qIEVkaXRvclN0YXRlLmggaW4gSGVhZGVycyAqLywKLQkJCQkyREU5QjEzNTIyMzFC
NUIyMDA1Mjg3QjcgLyogRWxlbWVudENvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMDMy
REE4MTBGNDM3RDEwMDU4QzE1QSAvKiBFbmNvZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUIx
NUE4NTEzODQzQTM5MDAzMjFBRDggLyogRW52aXJvbm1lbnRVdGlsaXRpZXMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTFBQTU3NUZCMTQ5NkI1MjYwMEE0RUUwNiAvKiBFdmVudERpc3BhdGNoZXIuaCBp
biBIZWFkZXJzICovLApAQCAtOTc3OSw2ICs5NzcyLDcgQEAKIAkJCQk1MTFGOEE3QjEzOEI0NjA5
MDBBOTVGNDQgLyogU2VjSXRlbVNoaW1MaWJyYXJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMThF
NjkwQzE2OUI1NjNGMDA5QjY2NzAgLyogU2VjSXRlbVNoaW1Qcm94eS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRTE4RTY5MTgxNjlCNjY3QjAwOUI2NjcwIC8qIFNlY0l0ZW1TaGltUHJveHlNZXNzYWdl
cy5oIGluIEhlYWRlcnMgKi8sCisJCQkJN0FBNzQ2RDUyMzU5M0Q4MTAwMDk1MDUwIC8qIFNlY0l0
ZW1TUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3MEFCOEYzMjBBRTNCRDcwMEI4QkU4NyAvKiBT
ZWNLZXlQcm94eVN0b3JlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTREOUY1NzE5MTE5RDM1MDAw
MDYzQTcgLyogU2VydmljZXNDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUZERTY1
QTE5NTRBNDJCMDBDNDhGRkEgLyogU2Vzc2lvblN0YXRlLmggaW4gSGVhZGVycyAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggZGY5NjFlNDA5
YzVhODM5YWIxOGNkNTUyN2U2Zjg0OTZjODY3OTNiZS4uOTAxYmEwNjc5MWE2MGMxYjYxZTc4NGI1
OTAwNGRmNWVhNmQ1Y2NiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKQEAgLTY3NTgsOSArNjc1OCw5IEBAIHN0YXRpYyBib29sIGlzRWRpdGFibGVU
ZXh0SW5wdXRFbGVtZW50KEVsZW1lbnQmIGVsZW1lbnQpCiAgICAgcmV0dXJuIGVsZW1lbnQuaXNS
b290RWRpdGFibGVFbGVtZW50KCk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6dGV4dElucHV0Q29udGV4
dHNJblJlY3QoV2ViQ29yZTo6RmxvYXRSZWN0IHNlYXJjaFJlY3QsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoY29uc3QgVmVjdG9yPEVsZW1lbnRDb250ZXh0PiYpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQordm9pZCBXZWJQYWdlOjp0ZXh0SW5wdXRDb250ZXh0c0luUmVjdChXZWJDb3JlOjpGbG9hdFJl
Y3Qgc2VhcmNoUmVjdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBWZWN0b3I8V2ViQ29y
ZTo6RWxlbWVudENvbnRleHQ+Jik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgVmVjdG9y
PFdlYktpdDo6RWxlbWVudENvbnRleHQ+IHRleHRJbnB1dENvbnRleHRzOworICAgIFZlY3RvcjxX
ZWJDb3JlOjpFbGVtZW50Q29udGV4dD4gdGV4dElucHV0Q29udGV4dHM7CiAKICAgICBmb3IgKEZy
YW1lKiBmcmFtZSA9ICZtX3BhZ2UtPm1haW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+
dHJlZSgpLnRyYXZlcnNlTmV4dCgpKSB7CiAgICAgICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGZy
YW1lLT5kb2N1bWVudCgpOwpAQCAtNjc4Niw3ICs2Nzg2LDcgQEAgdm9pZCBXZWJQYWdlOjp0ZXh0
SW5wdXRDb250ZXh0c0luUmVjdChXZWJDb3JlOjpGbG9hdFJlY3Qgc2VhcmNoUmVjdCwgQ29tcGxl
dGlvbkgKICAgICAgICAgICAgIGlmICghc2VhcmNoUmVjdC5pbnRlcnNlY3RzKGVsZW1lbnRSZWN0
KSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICAgICAgV2ViS2l0OjpFbGVt
ZW50Q29udGV4dCBjb250ZXh0OworICAgICAgICAgICAgV2ViQ29yZTo6RWxlbWVudENvbnRleHQg
Y29udGV4dDsKICAgICAgICAgICAgIGNvbnRleHQud2ViUGFnZUlkZW50aWZpZXIgPSBtX2lkZW50
aWZpZXI7CiAgICAgICAgICAgICBjb250ZXh0LmRvY3VtZW50SWRlbnRpZmllciA9IGRvY3VtZW50
LT5pZGVudGlmaWVyKCk7CiAgICAgICAgICAgICBjb250ZXh0LmVsZW1lbnRJZGVudGlmaWVyID0g
ZG9jdW1lbnQtPmlkZW50aWZpZXJGb3JFbGVtZW50KGVsZW1lbnQpOwpAQCAtNjc5OSw3ICs2Nzk5
LDcgQEAgdm9pZCBXZWJQYWdlOjp0ZXh0SW5wdXRDb250ZXh0c0luUmVjdChXZWJDb3JlOjpGbG9h
dFJlY3Qgc2VhcmNoUmVjdCwgQ29tcGxldGlvbkgKICAgICBjb21wbGV0aW9uSGFuZGxlcih0ZXh0
SW5wdXRDb250ZXh0cyk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6Zm9jdXNUZXh0SW5wdXRDb250ZXh0
KGNvbnN0IEVsZW1lbnRDb250ZXh0JiB0ZXh0SW5wdXRDb250ZXh0LCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJQYWdlOjpmb2N1c1Rl
eHRJbnB1dENvbnRleHQoY29uc3QgV2ViQ29yZTo6RWxlbWVudENvbnRleHQmIHRleHRJbnB1dENv
bnRleHQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7CiAgICAgUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQgPSBlbGVtZW50Rm9yQ29udGV4dCh0ZXh0
SW5wdXRDb250ZXh0KTsKIApAQCAtNjgwOSw3ICs2ODA5LDcgQEAgdm9pZCBXZWJQYWdlOjpmb2N1
c1RleHRJbnB1dENvbnRleHQoY29uc3QgRWxlbWVudENvbnRleHQmIHRleHRJbnB1dENvbnRleHQs
IENvbXAKICAgICBjb21wbGV0aW9uSGFuZGxlcihlbGVtZW50KTsKIH0KIAotRWxlbWVudCogV2Vi
UGFnZTo6ZWxlbWVudEZvckNvbnRleHQoY29uc3QgRWxlbWVudENvbnRleHQmIGVsZW1lbnRDb250
ZXh0KSBjb25zdAorRWxlbWVudCogV2ViUGFnZTo6ZWxlbWVudEZvckNvbnRleHQoY29uc3QgV2Vi
Q29yZTo6RWxlbWVudENvbnRleHQmIGVsZW1lbnRDb250ZXh0KSBjb25zdAogewogICAgIGlmIChl
bGVtZW50Q29udGV4dC53ZWJQYWdlSWRlbnRpZmllciAhPSBtX2lkZW50aWZpZXIpCiAgICAgICAg
IHJldHVybiBudWxscHRyOwpAQCAtNjgyNCw3ICs2ODI0LDcgQEAgRWxlbWVudCogV2ViUGFnZTo6
ZWxlbWVudEZvckNvbnRleHQoY29uc3QgRWxlbWVudENvbnRleHQmIGVsZW1lbnRDb250ZXh0KSBj
b25zdAogICAgIHJldHVybiBkb2N1bWVudC0+c2VhcmNoRm9yRWxlbWVudEJ5SWRlbnRpZmllcihl
bGVtZW50Q29udGV4dC5lbGVtZW50SWRlbnRpZmllcik7CiB9CiAKLU9wdGlvbmFsPEVsZW1lbnRD
b250ZXh0PiBXZWJQYWdlOjpjb250ZXh0Rm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50JiBlbGVt
ZW50KSBjb25zdAorT3B0aW9uYWw8V2ViQ29yZTo6RWxlbWVudENvbnRleHQ+IFdlYlBhZ2U6OmNv
bnRleHRGb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQmIGVsZW1lbnQpIGNvbnN0CiB7CiAgICAg
YXV0byYgZG9jdW1lbnQgPSBlbGVtZW50LmRvY3VtZW50KCk7CiAgICAgaWYgKCFtX3BhZ2UgfHwg
ZG9jdW1lbnQucGFnZSgpICE9IG1fcGFnZS5nZXQoKSkKQEAgLTY4MzQsNyArNjgzNCw3IEBAIE9w
dGlvbmFsPEVsZW1lbnRDb250ZXh0PiBXZWJQYWdlOjpjb250ZXh0Rm9yRWxlbWVudChXZWJDb3Jl
OjpFbGVtZW50JiBlbGVtZW50KSBjCiAgICAgaWYgKCFmcmFtZSkKICAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKIAotICAgIHJldHVybiBFbGVtZW50Q29udGV4dCB7IGVsZW1lbnRSZWN0SW5S
b290Vmlld0Nvb3JkaW5hdGVzKGVsZW1lbnQsICpmcmFtZSksIG1faWRlbnRpZmllciwgZG9jdW1l
bnQuaWRlbnRpZmllcigpLCBkb2N1bWVudC5pZGVudGlmaWVyRm9yRWxlbWVudChlbGVtZW50KSB9
OworICAgIHJldHVybiBXZWJDb3JlOjpFbGVtZW50Q29udGV4dCB7IGVsZW1lbnRSZWN0SW5Sb290
Vmlld0Nvb3JkaW5hdGVzKGVsZW1lbnQsICpmcmFtZSksIG1faWRlbnRpZmllciwgZG9jdW1lbnQu
aWRlbnRpZmllcigpLCBkb2N1bWVudC5pZGVudGlmaWVyRm9yRWxlbWVudChlbGVtZW50KSB9Owog
fQogCiBQQUw6OlNlc3Npb25JRCBXZWJQYWdlOjpzZXNzaW9uSUQoKSBjb25zdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IGJhZTg2YWIxMGFlMDViZWNk
ZTc1YWE5MGQ4YjRhMTdiYWI3NDc2NjIuLmE2MjI0ZjBhNDA2NWMyNzdkYWRhN2QxMGQ1Zjc5YThj
NTcyMGQ0ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgK
QEAgLTE5MSw2ICsxOTEsNyBAQCBlbnVtIGNsYXNzIFdyaXRpbmdEaXJlY3Rpb24gOiB1aW50OF90
Owogc3RydWN0IEJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXI7CiBzdHJ1Y3QgQ29tcG9zaXRpb25V
bmRlcmxpbmU7CiBzdHJ1Y3QgRGljdGF0aW9uQWx0ZXJuYXRpdmU7CitzdHJ1Y3QgRWxlbWVudENv
bnRleHQ7CiBzdHJ1Y3QgR2xvYmFsRnJhbWVJZGVudGlmaWVyOwogc3RydWN0IEdsb2JhbFdpbmRv
d0lkZW50aWZpZXI7CiBzdHJ1Y3QgSGlnaGxpZ2h0OwpAQCAtMjYyLDcgKzI2Myw2IEBAIHN0cnVj
dCBBdHRyaWJ1dGVkU3RyaW5nOwogc3RydWN0IEJhY2tGb3J3YXJkTGlzdEl0ZW1TdGF0ZTsKIHN0
cnVjdCBEYXRhRGV0ZWN0aW9uUmVzdWx0Owogc3RydWN0IEVkaXRvclN0YXRlOwotc3RydWN0IEVs
ZW1lbnRDb250ZXh0Owogc3RydWN0IEZvbnRJbmZvOwogc3RydWN0IEluc2VydFRleHRPcHRpb25z
Owogc3RydWN0IEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOwpAQCAtNjE0LDggKzYx
NCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGV4ZWN1dGVFZGl0Q29tbWFuZFdpdGhDYWxsYmFjayhj
b25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGFyZ3VtZW50LCBDYWxsYmFja0lEKTsKICAgICB2
b2lkIHNlbGVjdEFsbCgpOwogCi0gICAgdm9pZCB0ZXh0SW5wdXRDb250ZXh0c0luUmVjdChXZWJD
b3JlOjpGbG9hdFJlY3QsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgVmVjdG9yPFdlYktp
dDo6RWxlbWVudENvbnRleHQ+Jik+JiYpOwotICAgIHZvaWQgZm9jdXNUZXh0SW5wdXRDb250ZXh0
KGNvbnN0IEVsZW1lbnRDb250ZXh0JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7
CisgICAgdm9pZCB0ZXh0SW5wdXRDb250ZXh0c0luUmVjdChXZWJDb3JlOjpGbG9hdFJlY3QsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgVmVjdG9yPFdlYkNvcmU6OkVsZW1lbnRDb250ZXh0
PiYpPiYmKTsKKyAgICB2b2lkIGZvY3VzVGV4dElucHV0Q29udGV4dChjb25zdCBXZWJDb3JlOjpF
bGVtZW50Q29udGV4dCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogCiAjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBXZWJDb3JlOjpGbG9hdFNpemUgc2NyZWVuU2l6ZSgp
IGNvbnN0OwpAQCAtNjcxLDcgKzY3MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlcXVlc3RBdXRv
Y29ycmVjdGlvbkNvbnRleHQoKTsKICAgICB2b2lkIGdldFBvc2l0aW9uSW5mb3JtYXRpb24oY29u
c3QgSW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3QmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uJiYpPiYmKTsKICAgICB2b2lkIHJlcXVl
c3RQb3NpdGlvbkluZm9ybWF0aW9uKGNvbnN0IEludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0
Jik7Ci0gICAgdm9pZCBzdGFydEludGVyYWN0aW9uV2l0aEVsZW1lbnRDb250ZXh0T3JQb3NpdGlv
bihPcHRpb25hbDxFbGVtZW50Q29udGV4dD4mJiwgV2ViQ29yZTo6SW50UG9pbnQmJik7CisgICAg
dm9pZCBzdGFydEludGVyYWN0aW9uV2l0aEVsZW1lbnRDb250ZXh0T3JQb3NpdGlvbihPcHRpb25h
bDxXZWJDb3JlOjpFbGVtZW50Q29udGV4dD4mJiwgV2ViQ29yZTo6SW50UG9pbnQmJik7CiAgICAg
dm9pZCBzdG9wSW50ZXJhY3Rpb24oKTsKICAgICB2b2lkIHBlcmZvcm1BY3Rpb25PbkVsZW1lbnQo
dWludDMyX3QgYWN0aW9uKTsKICAgICB2b2lkIGZvY3VzTmV4dEZvY3VzZWRFbGVtZW50KGJvb2wg
aXNGb3J3YXJkLCBDYWxsYmFja0lEKTsKQEAgLTExOTEsOCArMTE5MSw4IEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgY29uZmlndXJlTG9nZ2luZ0NoYW5uZWwoY29uc3QgU3RyaW5nJiwgV1RGTG9nQ2hh
bm5lbFN0YXRlLCBXVEZMb2dMZXZlbCk7CiAKLSAgICBXZWJDb3JlOjpFbGVtZW50KiBlbGVtZW50
Rm9yQ29udGV4dChjb25zdCBFbGVtZW50Q29udGV4dCYpIGNvbnN0OwotICAgIE9wdGlvbmFsPEVs
ZW1lbnRDb250ZXh0PiBjb250ZXh0Rm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50JikgY29uc3Q7
CisgICAgV2ViQ29yZTo6RWxlbWVudCogZWxlbWVudEZvckNvbnRleHQoY29uc3QgV2ViQ29yZTo6
RWxlbWVudENvbnRleHQmKSBjb25zdDsKKyAgICBPcHRpb25hbDxXZWJDb3JlOjpFbGVtZW50Q29u
dGV4dD4gY29udGV4dEZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCYpIGNvbnN0OwogCiAjaWYg
RU5BQkxFKEFQUExFX1BBWSkKICAgICBXZWJQYXltZW50Q29vcmRpbmF0b3IqIHBheW1lbnRDb29y
ZGluYXRvcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggNjcyYWY2ZjM1OTMzMTM2MGI2MzMyMjM2MjFlNDA0N2E1
NWI4Y2FlNS4uMzgwZWIwYzYzYzQyNDA4MmJmZGM3YWI0YThhZGQ0ZDAwOWY2ODkyNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5p
bgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2Vz
LmluCkBAIC04Niw3ICs4Niw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIg
ewogICAgIFJlcXVlc3RFdmFzaW9uUmVjdHNBYm92ZVNlbGVjdGlvbigpIC0+IChWZWN0b3I8V2Vi
Q29yZTo6RmxvYXRSZWN0PiByZWN0cykgQXN5bmMKICAgICBHZXRQb3NpdGlvbkluZm9ybWF0aW9u
KHN0cnVjdCBXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0IHJlcXVlc3QpIC0+
IChzdHJ1Y3QgV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiBpbmZvcm1h
dGlvbikgU3luY2hyb25vdXMKICAgICBSZXF1ZXN0UG9zaXRpb25JbmZvcm1hdGlvbihzdHJ1Y3Qg
V2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdCByZXF1ZXN0KQotICAgIFN0YXJ0
SW50ZXJhY3Rpb25XaXRoRWxlbWVudENvbnRleHRPclBvc2l0aW9uKE9wdGlvbmFsPFdlYktpdDo6
RWxlbWVudENvbnRleHQ+IGVsZW1lbnRDb250ZXh0LCBXZWJDb3JlOjpJbnRQb2ludCBwb2ludCkK
KyAgICBTdGFydEludGVyYWN0aW9uV2l0aEVsZW1lbnRDb250ZXh0T3JQb3NpdGlvbihPcHRpb25h
bDxXZWJDb3JlOjpFbGVtZW50Q29udGV4dD4gZWxlbWVudENvbnRleHQsIFdlYkNvcmU6OkludFBv
aW50IHBvaW50KQogICAgIFN0b3BJbnRlcmFjdGlvbigpCiAgICAgUGVyZm9ybUFjdGlvbk9uRWxl
bWVudCh1aW50MzJfdCBhY3Rpb24pCiAgICAgRm9jdXNOZXh0Rm9jdXNlZEVsZW1lbnQoYm9vbCBp
c0ZvcndhcmQsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQpAQCAtNTY3LDggKzU2Nyw4
IEBAIEdlbmVyYXRlU3ludGhldGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6
U3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBlCiAgICAgVm9pY2VzRGlkQ2hhbmdlKCkKICNlbmRp
ZgogCi0gICAgVGV4dElucHV0Q29udGV4dHNJblJlY3QoV2ViQ29yZTo6RmxvYXRSZWN0IHJlY3Qp
IC0+IChWZWN0b3I8c3RydWN0IFdlYktpdDo6RWxlbWVudENvbnRleHQ+IGNvbnRleHRzKSBBc3lu
YwotICAgIEZvY3VzVGV4dElucHV0Q29udGV4dChzdHJ1Y3QgV2ViS2l0OjpFbGVtZW50Q29udGV4
dCBjb250ZXh0KSAtPiAoYm9vbCBzdWNjZXNzKSBBc3luYworICAgIFRleHRJbnB1dENvbnRleHRz
SW5SZWN0KFdlYkNvcmU6OkZsb2F0UmVjdCByZWN0KSAtPiAoVmVjdG9yPHN0cnVjdCBXZWJDb3Jl
OjpFbGVtZW50Q29udGV4dD4gY29udGV4dHMpIEFzeW5jCisgICAgRm9jdXNUZXh0SW5wdXRDb250
ZXh0KHN0cnVjdCBXZWJDb3JlOjpFbGVtZW50Q29udGV4dCBjb250ZXh0KSAtPiAoYm9vbCBzdWNj
ZXNzKSBBc3luYwogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKICAgICBX
YXNMb2FkZWRXaXRoRGF0YVRyYW5zZmVyRnJvbVByZXZhbGVudFJlc291cmNlKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXgg
OTE5NTk5YzBiYjZlY2VjMDA4MGY3MjQ1MWM0YWMzOGJhZTc4YjA2YS4uNjYyNmMyNDMxNGQ1ZTFl
OTg4MGJjYTBmOGNmNjQyMDNlZWRhZDU2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAgLTI4MTUsNyArMjgxNSw3IEBAIHZv
aWQgV2ViUGFnZTo6cmVxdWVzdFBvc2l0aW9uSW5mb3JtYXRpb24oY29uc3QgSW50ZXJhY3Rpb25J
bmZvcm1hdGlvblJlcXVlc3QmIHJlCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpE
aWRSZWNlaXZlUG9zaXRpb25JbmZvcm1hdGlvbihwb3NpdGlvbkluZm9ybWF0aW9uKHJlcXVlc3Qp
KSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6c3RhcnRJbnRlcmFjdGlvbldpdGhFbGVtZW50Q29udGV4
dE9yUG9zaXRpb24oT3B0aW9uYWw8RWxlbWVudENvbnRleHQ+JiYgZWxlbWVudENvbnRleHQsIFdl
YkNvcmU6OkludFBvaW50JiYgcG9pbnQpCit2b2lkIFdlYlBhZ2U6OnN0YXJ0SW50ZXJhY3Rpb25X
aXRoRWxlbWVudENvbnRleHRPclBvc2l0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OkVsZW1lbnRDb250
ZXh0PiYmIGVsZW1lbnRDb250ZXh0LCBXZWJDb3JlOjpJbnRQb2ludCYmIHBvaW50KQogewogICAg
IGlmIChlbGVtZW50Q29udGV4dCkgewogICAgICAgICBtX2ludGVyYWN0aW9uTm9kZSA9IGVsZW1l
bnRGb3JDb250ZXh0KCplbGVtZW50Q29udGV4dCk7Cg==
</data>
<flag name="review"
          id="397224"
          type_id="1"
          status="+"
          setter="dino"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381465</attachid>
            <date>2019-10-21 15:09:54 -0700</date>
            <delta_ts>2019-10-21 19:42:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203210-20191022090951.patch</filename>
            <type>text/plain</type>
            <size>43886</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxMzg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWI4Y2YyZjEwZTQ4NTc4
NWRjODhiNjYzMjkxZjQxOTdiZGU0MmJmNC4uNWVhY2M1Yjc5OTQ5ZDU1MjgzYjg5MTA4ZTE5YmE4
NzY1YzEzYzU2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE5LTEwLTIxICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIEVsZW1lbnRDb250ZXh0
IGZyb20gV2ViS2l0IHRvIFdlYkNvcmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwMzIxMAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTY0NzU2ODI+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogZG9tL1JhZGlvQnV0dG9u
R3JvdXBzLmg6CisKIDIwMTktMTAtMjEgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5A
d2Via2l0Lm9yZz4KIAogICAgICAgICBTZXJ2aWNlV29ya2VyIHRlc3RzIHNob3VsZCB1c2UgVENQ
U2VydmVyIGluc3RlYWQgb2YgV0tVUkxTY2hlbWVIYW5kbGVyCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDM1NDkzOTUy
MzgwOGQwNjBhOWM1MDdkMjNlZTdiOTVhYzEyOTI5YTIuLmFiYzA0NTIxMmJiZWNjZmY5MTQ5YWJj
YTE5ZTdlYmQwOGZkZWViZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQgQEAKKzIwMTktMTAtMjEg
IERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgorCisgICAgICAgIE1vdmUgRWxlbWVudENv
bnRleHQgZnJvbSBXZWJLaXQgdG8gV2ViQ29yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzMjEwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NjQ3
NTY4Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAqIFNoYXJlZC9Eb2N1bWVudEVk
aXRpbmdDb250ZXh0Lmg6CisgICAgICAgICogU2hhcmVkL0RvY3VtZW50RWRpdGluZ0NvbnRleHQu
bW06CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8V2ViS2l0OjpEb2N1bWVudEVkaXRpbmdD
b250ZXh0UmVxdWVzdD46OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL0VsZW1lbnRDb250ZXh0
LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBTaGFyZWQvRWxlbWVudENvbnRleHQuaDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6ZGVmYXVsdENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQpOgorICAg
ICAgICAqIFNoYXJlZC9XZWJzaXRlUG9saWNpZXNEYXRhLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2Vic2l0ZVBvbGljaWVzRGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvaW9zL0ludGVy
YWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLmg6CisgICAgICAgICogU291cmNlcy50eHQ6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dL
V2ViVmlldyBfcmVxdWVzdFRleHRJbnB1dENvbnRleHRzSW5SZWN0OmNvbXBsZXRpb25IYW5kbGVy
Ol0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVGV4dElucHV0Q29udGV4dC5t
bToKKyAgICAgICAgKC1bX1dLVGV4dElucHV0Q29udGV4dCBfaW5pdFdpdGhUZXh0SW5wdXRDb250
ZXh0Ol0pOgorICAgICAgICAoLVtfV0tUZXh0SW5wdXRDb250ZXh0IF90ZXh0SW5wdXRDb250ZXh0
XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tUZXh0SW5wdXRDb250ZXh0SW50
ZXJuYWwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5Ojp0ZXh0SW5wdXRDb250ZXh0c0luUmVjdCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Zm9jdXNUZXh0SW5wdXRDb250ZXh0KToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp0ZXh0SW5wdXRDb250ZXh0c0luUmVjdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmZvY3VzVGV4dElucHV0Q29udGV4dCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OmVsZW1lbnRGb3JDb250ZXh0IGNvbnN0KToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6Y29udGV4dEZvckVsZW1lbnQgY29uc3QpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQ
YWdlSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzdGFydEludGVyYWN0aW9uV2l0
aEVsZW1lbnRDb250ZXh0T3JQb3NpdGlvbik6CisKIDIwMTktMTAtMjEgIEFsZXggQ2hyaXN0ZW5z
ZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBTZXJ2aWNlV29ya2VyIHRl
c3RzIHNob3VsZCB1c2UgVENQU2VydmVyIGluc3RlYWQgb2YgV0tVUkxTY2hlbWVIYW5kbGVyCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUv
SGVhZGVycy5jbWFrZQppbmRleCBlODVkOWUzZjUzNzRlNTIzNWQ5MTI0YTM3MTk0YTNiMjc0Mjc5
OTkxLi5iN2VmMWUxOGJiMWZlYjYyOTM1MDkzMmUwNDA2NGVlY2Y1OTRiNDcyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRl
cnMuY21ha2UKQEAgLTM4Miw2ICszODIsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09S
S19IRUFERVJTCiAgICAgZG9tL0VsZW1lbnQuaAogICAgIGRvbS9FbGVtZW50QW5jZXN0b3JJdGVy
YXRvci5oCiAgICAgZG9tL0VsZW1lbnRDaGlsZEl0ZXJhdG9yLmgKKyAgICBkb20vRWxlbWVudENv
bnRleHQuaAogICAgIGRvbS9FbGVtZW50RGF0YS5oCiAgICAgZG9tL0VsZW1lbnREZXNjZW5kYW50
SXRlcmF0b3IuaAogICAgIGRvbS9FbGVtZW50SWRlbnRpZmllci5oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZDU5ZmEyNGI0YTc5
YjRlMWZlNTRlN2U0ZjljYzdiYzBmZDBhMjlkYi4uNDM4MTc5NWMzNWJlNmE2MWIyNDkyMjU3ZWNh
ZWUzYjZlM2Q4YWNlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtOTAyLDYgKzkwMiw3IEBACiAJCTMxMzU5MTA5MUU3RERDNzMw
MEYzMDYzMCAvKiBSVENJY2VUcmFuc3BvcnRTdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEzNTkxMDMxRTdEREM2MDAwRjMwNjMwIC8qIFJUQ0lj
ZVRyYW5zcG9ydFN0YXRlLmggKi87IH07CiAJCTMxMzU5MTBBMUU3RERDNzMwMEYzMDYzMCAvKiBS
VENTZHBUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAzMTM1OTEwNDFFN0REQzYwMDBGMzA2MzAgLyogUlRDU2RwVHlwZS5oICovOyB9OwogCQkzMTM1
OTEwQjFFN0REQzczMDBGMzA2MzAgLyogUlRDU2lnbmFsaW5nU3RhdGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMzU5MTA1MUU3RERDNjAwMEYzMDYz
MCAvKiBSVENTaWduYWxpbmdTdGF0ZS5oICovOyB9OworCQkzMTNCQ0UxQzIzNUUzQkU1MDBGQzM5
RTUgLyogRWxlbWVudENvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDMxM0JDRTFCMjM1RTNCREIwMEZDMzlFNSAvKiBFbGVtZW50Q29udGV4dC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTMxNDAz
NzlCMTI0QkVBN0YwMEFGNDBFNCAvKiBXZWJDb3JlTW90aW9uTWFuYWdlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE0MDM3OTcxMjRCRUE3RjAwQUY0
MEU0IC8qIFdlYkNvcmVNb3Rpb25NYW5hZ2VyLmggKi87IH07CiAJCTMxNDAzNzlEMTI0QkVBN0Yw
MEFGNDBFNCAvKiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE0MDM3OTkxMjRCRUE3RjAwQUY0MEU0IC8q
IERldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TLmggKi87IH07CiAJCTMxNDBDNTIwMUZERjE1MUEw
MEQyQTg3MyAvKiBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNDBDNTFFMUZERjE1MUEwMEQy
QTg3MyAvKiBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCAqLzsgfTsKQEAgLTY5
MzMsNiArNjkzNCw3IEBACiAJCTMxMzU5MTA0MUU3RERDNjAwMEYzMDYzMCAvKiBSVENTZHBUeXBl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJUQ1NkcFR5cGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzEzNTkxMDUxRTdEREM2MDAwRjMwNjMwIC8qIFJUQ1Np
Z25hbGluZ1N0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJUQ1NpZ25h
bGluZ1N0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxMzU5MTBDMUU3RERD
QjYwMEYzMDYzMCAvKiBSVENCdW5kbGVQb2xpY3kuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUlRDQnVuZGxlUG9saWN5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTMxM0JDRTFCMjM1RTNCREIwMEZDMzlFNSAvKiBFbGVtZW50Q29udGV4dC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBFbGVtZW50Q29udGV4dC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkzMTQwMzc5NzEyNEJFQTdGMDBBRjQwRTQgLyogV2ViQ29yZU1vdGlvbk1h
bmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZU1vdGlvbk1h
bmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzE0MDM3OTgxMjRCRUE3RjAw
QUY0MEU0IC8qIFdlYkNvcmVNb3Rpb25NYW5hZ2VyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gV2ViQ29yZU1vdGlvbk1hbmFnZXIubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTMxNDAzNzk5MTI0QkVBN0YwMEFGNDBFNCAvKiBEZXZpY2VPcmllbnRh
dGlvbkNsaWVudElPUy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEZXZpY2VP
cmllbnRhdGlvbkNsaWVudElPUy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjc4
MTYsNiArMjc4MTgsNyBAQAogCQkJCUU0QUU3QzE5MTdEMjMyMzUwMDA5RkIzMSAvKiBFbGVtZW50
QW5jZXN0b3JJdGVyYXRvci5oICovLAogCQkJCUU0NDBBQTk1MUM2ODQyMDgwMEEyNjVDQyAvKiBF
bGVtZW50QW5kVGV4dERlc2NlbmRhbnRJdGVyYXRvci5oICovLAogCQkJCUU0NkEyQjFEMTdDQTc2
QjEwMDBEQkNEOCAvKiBFbGVtZW50Q2hpbGRJdGVyYXRvci5oICovLAorCQkJCTMxM0JDRTFCMjM1
RTNCREIwMEZDMzlFNSAvKiBFbGVtZW50Q29udGV4dC5oICovLAogCQkJCUI1QjdBMTZGMTdDMTA4
MDYwMEU0QUEwQSAvKiBFbGVtZW50RGF0YS5jcHAgKi8sCiAJCQkJQjVCN0ExNkUxN0MxMDQ4MDAw
RTRBQTBBIC8qIEVsZW1lbnREYXRhLmggKi8sCiAJCQkJQURFMTFGNEExOEQ4MzExQjAwNzg5ODNC
IC8qIEVsZW1lbnREZXNjZW5kYW50SXRlcmF0b3IuaCAqLywKQEAgLTI5NDY0LDYgKzI5NDY3LDcg
QEAKIAkJCQlFNEFFN0MxQTE3RDIzMjM1MDAwOUZCMzEgLyogRWxlbWVudEFuY2VzdG9ySXRlcmF0
b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0NDBBQTk2MUM2ODQyMDgwMEEyNjVDQyAvKiBFbGVt
ZW50QW5kVGV4dERlc2NlbmRhbnRJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ2QTJC
MUUxN0NBNzZCMTAwMERCQ0Q4IC8qIEVsZW1lbnRDaGlsZEl0ZXJhdG9yLmggaW4gSGVhZGVycyAq
LywKKwkJCQkzMTNCQ0UxQzIzNUUzQkU1MDBGQzM5RTUgLyogRWxlbWVudENvbnRleHQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUI1QjdBMTcxMTdDMTBBQzAwMEU0QUEwQSAvKiBFbGVtZW50RGF0YS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTNENDM3QTExRDU3QjNGNDAwQUI4NUVBIC8qIEVsZW1lbnRE
ZXNjZW5kYW50SXRlcmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEMkJFQjMxMjIzNEEzMzUw
MDU1NDRDQSAvKiBFbGVtZW50SWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudENvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50Q29udGV4dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU5ZjY1ZTk0MDk5ZDg0YzYzY2U0ZDc5N2Fi
NzQ2MGRkOGY3OTRjOGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudENvbnRleHQuaApAQCAtMCwwICsxLDkxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpbmNsdWRlICJEb2N1bWVudElkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJFbGVtZW50SWRl
bnRpZmllci5oIgorI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgorI2luY2x1ZGUgIlBhZ2VJZGVudGlm
aWVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IEVsZW1lbnRDb250ZXh0IHsK
KyAgICBGbG9hdFJlY3QgYm91bmRpbmdSZWN0OworCisgICAgUGFnZUlkZW50aWZpZXIgd2ViUGFn
ZUlkZW50aWZpZXI7CisgICAgRG9jdW1lbnRJZGVudGlmaWVyIGRvY3VtZW50SWRlbnRpZmllcjsK
KyAgICBFbGVtZW50SWRlbnRpZmllciBlbGVtZW50SWRlbnRpZmllcjsKKworICAgIH5FbGVtZW50
Q29udGV4dCgpID0gZGVmYXVsdDsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQg
ZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0
aWMgT3B0aW9uYWw8RWxlbWVudENvbnRleHQ+IGRlY29kZShEZWNvZGVyJik7Cit9OworCitpbmxp
bmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEVsZW1lbnRDb250ZXh0JiBhLCBjb25zdCBFbGVtZW50
Q29udGV4dCYgYikKK3sKKyAgICByZXR1cm4gYS5ib3VuZGluZ1JlY3QgPT0gYi5ib3VuZGluZ1Jl
Y3QKKyAgICAgICAgJiYgYS53ZWJQYWdlSWRlbnRpZmllciA9PSBiLndlYlBhZ2VJZGVudGlmaWVy
CisgICAgICAgICYmIGEuZG9jdW1lbnRJZGVudGlmaWVyID09IGIuZG9jdW1lbnRJZGVudGlmaWVy
CisgICAgICAgICYmIGEuZWxlbWVudElkZW50aWZpZXIgPT0gYi5lbGVtZW50SWRlbnRpZmllcjsK
K30KKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgRWxlbWVudENvbnRleHQ6OmVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgYm91bmRpbmdSZWN0
OworICAgIGVuY29kZXIgPDwgd2ViUGFnZUlkZW50aWZpZXI7CisgICAgZW5jb2RlciA8PCBkb2N1
bWVudElkZW50aWZpZXI7CisgICAgZW5jb2RlciA8PCBlbGVtZW50SWRlbnRpZmllcjsKK30KKwor
dGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK09wdGlvbmFsPEVsZW1lbnRDb250ZXh0PiBFbGVtZW50
Q29udGV4dDo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgRWxlbWVudENvbnRleHQg
Y29udGV4dDsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoY29udGV4dC5ib3VuZGluZ1JlY3Qp
KQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgYXV0byBwYWdlSWRlbnRpZmll
ciA9IFBhZ2VJZGVudGlmaWVyOjpkZWNvZGUoZGVjb2Rlcik7CisgICAgaWYgKCFwYWdlSWRlbnRp
ZmllcikKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICBjb250ZXh0LndlYlBhZ2VJ
ZGVudGlmaWVyID0gKnBhZ2VJZGVudGlmaWVyOworCisgICAgYXV0byBkb2N1bWVudElkZW50aWZp
ZXIgPSBEb2N1bWVudElkZW50aWZpZXI6OmRlY29kZShkZWNvZGVyKTsKKyAgICBpZiAoIWRvY3Vt
ZW50SWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICBjb250ZXh0
LmRvY3VtZW50SWRlbnRpZmllciA9ICpkb2N1bWVudElkZW50aWZpZXI7CisKKyAgICBhdXRvIGVs
ZW1lbnRJZGVudGlmaWVyID0gRWxlbWVudElkZW50aWZpZXI6OmRlY29kZShkZWNvZGVyKTsKKyAg
ICBpZiAoIWVsZW1lbnRJZGVudGlmaWVyKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owor
ICAgIGNvbnRleHQuZWxlbWVudElkZW50aWZpZXIgPSAqZWxlbWVudElkZW50aWZpZXI7CisKKyAg
ICByZXR1cm4gY29udGV4dDsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3Jp
cHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVz
c2FnZXMucHkKaW5kZXggZGYzYmI0YmUwMjc1MzBhNGEwYjk3YmRmMjBjOWE0MzQ2NzAyYjVkZi4u
MzU2MTM0YmJjNzMwMDFiOWMxZDc5NDUzMDFiNDFhMGM0NDM1N2JmZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0
L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC00ODYsNyArNDg2LDcgQEAgZGVmIGhlYWRl
cnNfZm9yX3R5cGUodHlwZSk6CiAgICAgICAgICdXZWJLaXQ6OldlYk1vdXNlRXZlbnQnOiBbJyJX
ZWJFdmVudC5oIiddLAogICAgICAgICAnV2ViS2l0OjpXZWJUb3VjaEV2ZW50JzogWyciV2ViRXZl
bnQuaCInXSwKICAgICAgICAgJ1dlYktpdDo6V2ViV2hlZWxFdmVudCc6IFsnIldlYkV2ZW50Lmgi
J10sCi0gICAgICAgICdzdHJ1Y3QgV2ViS2l0OjpFbGVtZW50Q29udGV4dCc6IFsnIkVsZW1lbnRD
b250ZXh0LmgiJ10sCisgICAgICAgICdzdHJ1Y3QgV2ViQ29yZTo6RWxlbWVudENvbnRleHQnOiBb
JzxXZWJDb3JlL0VsZW1lbnRDb250ZXh0Lmg+J10sCiAgICAgICAgICdzdHJ1Y3QgV2ViS2l0OjpX
ZWJVc2VyU2NyaXB0RGF0YSc6IFsnIldlYlVzZXJDb250ZW50Q29udHJvbGxlckRhdGFUeXBlcy5o
IiddLAogICAgICAgICAnc3RydWN0IFdlYktpdDo6V2ViVXNlclN0eWxlU2hlZXREYXRhJzogWyci
V2ViVXNlckNvbnRlbnRDb250cm9sbGVyRGF0YVR5cGVzLmgiJ10sCiAgICAgICAgICdzdHJ1Y3Qg
V2ViS2l0OjpXZWJTY3JpcHRNZXNzYWdlSGFuZGxlckRhdGEnOiBbJyJXZWJVc2VyQ29udGVudENv
bnRyb2xsZXJEYXRhVHlwZXMuaCInXSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0RvY3VtZW50RWRpdGluZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0RvY3VtZW50
RWRpdGluZ0NvbnRleHQuaAppbmRleCA4NjFjODkxNjEwMWNlMTFmZTQxYTRmN2E5Nzc0NjZjMzI3
OGRiZTE4Li5jMTkzY2YzNTYyMDUzODhhZWY5MDQ2ZjM4YTllNWUyNTljN2VlOTg2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Eb2N1bWVudEVkaXRpbmdDb250ZXh0LmgKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvRG9jdW1lbnRFZGl0aW5nQ29udGV4dC5oCkBAIC0yOSw3ICsy
OSw3IEBACiAKICNpbmNsdWRlICJBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIkF0dHJpYnV0
ZWRTdHJpbmcuaCIKLSNpbmNsdWRlICJFbGVtZW50Q29udGV4dC5oIgorI2luY2x1ZGUgPFdlYkNv
cmUvRWxlbWVudENvbnRleHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UmVjdC5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvVGV4dEdyYW51bGFyaXR5Lmg+CiAjaW5jbHVkZSA8d3RmL09wdGlvblNl
dC5oPgpAQCAtNTYsNyArNTYsNyBAQCBzdHJ1Y3QgRG9jdW1lbnRFZGl0aW5nQ29udGV4dFJlcXVl
c3QgewogCiAgICAgV2ViQ29yZTo6RmxvYXRSZWN0IHJlY3Q7CiAKLSAgICBPcHRpb25hbDxXZWJL
aXQ6OkVsZW1lbnRDb250ZXh0PiB0ZXh0SW5wdXRDb250ZXh0OworICAgIE9wdGlvbmFsPFdlYkNv
cmU6OkVsZW1lbnRDb250ZXh0PiB0ZXh0SW5wdXRDb250ZXh0OwogfTsKIAogc3RydWN0IERvY3Vt
ZW50RWRpdGluZ0NvbnRleHQgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvRG9j
dW1lbnRFZGl0aW5nQ29udGV4dC5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0RvY3VtZW50RWRp
dGluZ0NvbnRleHQubW0KaW5kZXggNDgyZThjN2NkYTg1MmRlOTEyYjMyNjk2MTczY2I0OTc4NTIy
Y2MxNy4uZjlmNmQzNTBmYThjOGNjZjkyMDU0YTk0ZTM3YjRjNmE2MTYyNjJmMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvRG9jdW1lbnRFZGl0aW5nQ29udGV4dC5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9Eb2N1bWVudEVkaXRpbmdDb250ZXh0Lm1tCkBAIC0yOCw5ICsy
OCw5IEBACiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogCi0jaW5jbHVkZSAiRWxlbWVudENv
bnRleHQuaCIKICNpbmNsdWRlICJVSUtpdFNQSS5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVu
dENvZGVycy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRWxlbWVudENvbnRleHQuaD4KIAogbmFtZXNw
YWNlIFdlYktpdCB7CiAKQEAgLTE5OCw3ICsxOTgsNyBAQCBPcHRpb25hbDxXZWJLaXQ6OkRvY3Vt
ZW50RWRpdGluZ0NvbnRleHRSZXF1ZXN0PiBBcmd1bWVudENvZGVyPFdlYktpdDo6RG9jdW1lbnRF
ZAogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVxdWVzdC5yZWN0KSkKICAgICAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKIAotICAgIE9wdGlvbmFsPE9wdGlvbmFsPFdlYktpdDo6RWxlbWVudENv
bnRleHQ+PiBvcHRpb25hbFRleHRJbnB1dENvbnRleHQ7CisgICAgT3B0aW9uYWw8T3B0aW9uYWw8
V2ViQ29yZTo6RWxlbWVudENvbnRleHQ+PiBvcHRpb25hbFRleHRJbnB1dENvbnRleHQ7CiAgICAg
ZGVjb2RlciA+PiBvcHRpb25hbFRleHRJbnB1dENvbnRleHQ7CiAgICAgaWYgKCFvcHRpb25hbFRl
eHRJbnB1dENvbnRleHQpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbGVtZW50Q29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9FbGVtZW50Q29udGV4dC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDNmNzRlN2ZjNzM1MmY1OGFiOGI4YTZiMjUzNWNhNzRjNDRkODQ4ZmUuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvRWxl
bWVudENvbnRleHQuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNjcgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0g
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQot
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJFbGVtZW50Q29udGV4dC5oIgotCi0j
aW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9FbGVt
ZW50Lmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1FbGVtZW50Q29udGV4dDo6fkVsZW1lbnRD
b250ZXh0KCkgPSBkZWZhdWx0OwotCi19Ci0KLW5hbWVzcGFjZSBJUEMgewotCi12b2lkIEFyZ3Vt
ZW50Q29kZXI8V2ViS2l0OjpFbGVtZW50Q29udGV4dD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVy
LCBjb25zdCBXZWJLaXQ6OkVsZW1lbnRDb250ZXh0JiBjb250ZXh0KQotewotICAgIGVuY29kZXIg
PDwgY29udGV4dC5ib3VuZGluZ1JlY3Q7Ci0gICAgZW5jb2RlciA8PCBjb250ZXh0LndlYlBhZ2VJ
ZGVudGlmaWVyOwotICAgIGVuY29kZXIgPDwgY29udGV4dC5kb2N1bWVudElkZW50aWZpZXI7Ci0g
ICAgZW5jb2RlciA8PCBjb250ZXh0LmVsZW1lbnRJZGVudGlmaWVyOwotfQotCi1PcHRpb25hbDxX
ZWJLaXQ6OkVsZW1lbnRDb250ZXh0PiBBcmd1bWVudENvZGVyPFdlYktpdDo6RWxlbWVudENvbnRl
eHQ+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBXZWJLaXQ6OkVsZW1lbnRDb250
ZXh0IGNvbnRleHQ7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShjb250ZXh0LmJvdW5kaW5nUmVj
dCkpCi0gICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShjb250ZXh0LndlYlBhZ2VJZGVudGlmaWVyKSkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKLSAgICBhdXRvIGRvY3VtZW50SWRlbnRpZmllciA9IFdlYkNvcmU6OkRvY3VtZW50SWRlbnRp
Zmllcjo6ZGVjb2RlKGRlY29kZXIpOwotICAgIGlmICghZG9jdW1lbnRJZGVudGlmaWVyKQotICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotICAgIGNvbnRleHQuZG9jdW1lbnRJZGVudGlmaWVy
ID0gKmRvY3VtZW50SWRlbnRpZmllcjsKLSAgICBhdXRvIGVsZW1lbnRJZGVudGlmaWVyID0gV2Vi
Q29yZTo6RWxlbWVudElkZW50aWZpZXI6OmRlY29kZShkZWNvZGVyKTsKLSAgICBpZiAoIWVsZW1l
bnRJZGVudGlmaWVyKQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotICAgIGNvbnRleHQu
ZWxlbWVudElkZW50aWZpZXIgPSAqZWxlbWVudElkZW50aWZpZXI7Ci0KLSAgICByZXR1cm4gY29u
dGV4dDsKLX0KLQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvRWxlbWVudENv
bnRleHQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VsZW1lbnRDb250ZXh0LmgKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIxNWNjNDI3MDI4NDc5ODUxMDVlNmEwMmE2ODk1Y2M3MzYx
ODAxYzEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvRWxlbWVudENvbnRleHQuaAorKysgL2Rldi9udWxsCkBAIC0xLDYx
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
Ci0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgot
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIkFyZ3VtZW50
Q29kZXJzLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudElkZW50aWZpZXIuaD4KLSNpbmNs
dWRlIDxXZWJDb3JlL0VsZW1lbnRJZGVudGlmaWVyLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9GbG9h
dFJlY3QuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+Ci0KLW5hbWVzcGFj
ZSBXZWJLaXQgewotCi1zdHJ1Y3QgRWxlbWVudENvbnRleHQgewotICAgIFdlYkNvcmU6OkZsb2F0
UmVjdCBib3VuZGluZ1JlY3Q7Ci0KLSAgICBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdl
SWRlbnRpZmllcjsKLSAgICBXZWJDb3JlOjpEb2N1bWVudElkZW50aWZpZXIgZG9jdW1lbnRJZGVu
dGlmaWVyOwotICAgIFdlYkNvcmU6OkVsZW1lbnRJZGVudGlmaWVyIGVsZW1lbnRJZGVudGlmaWVy
OwotCi0gICAgfkVsZW1lbnRDb250ZXh0KCk7Ci19OwotCi1pbmxpbmUgYm9vbCBvcGVyYXRvcj09
KGNvbnN0IEVsZW1lbnRDb250ZXh0JiBhLCBjb25zdCBFbGVtZW50Q29udGV4dCYgYikKLXsKLSAg
ICByZXR1cm4gYS5ib3VuZGluZ1JlY3QgPT0gYi5ib3VuZGluZ1JlY3QKLSAgICAgICAgJiYgYS53
ZWJQYWdlSWRlbnRpZmllciA9PSBiLndlYlBhZ2VJZGVudGlmaWVyCi0gICAgICAgICYmIGEuZG9j
dW1lbnRJZGVudGlmaWVyID09IGIuZG9jdW1lbnRJZGVudGlmaWVyCi0gICAgICAgICYmIGEuZWxl
bWVudElkZW50aWZpZXIgPT0gYi5lbGVtZW50SWRlbnRpZmllcjsKLX0KLQotfQotCi1uYW1lc3Bh
Y2UgSVBDIHsKLXRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViS2l0OjpFbGVtZW50
Q29udGV4dD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViS2l0
OjpFbGVtZW50Q29udGV4dCYpOwotICAgIHN0YXRpYyBPcHRpb25hbDxXZWJLaXQ6OkVsZW1lbnRD
b250ZXh0PiBkZWNvZGUoRGVjb2RlciYpOwotfTsKLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMuY3BwCmluZGV4IDk0MjllZGZkNDc3
OGY4MDJiNTQ3NjU2MjgwYjRmNjMzNTdiYWRmNjUuLmFhMzc4NTUwNWIzMGIyM2Q4YWMxN2M5NDE0
MzgwMDIzNzM0MWU1ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZl
cmVuY2VzRGVmYXVsdFZhbHVlcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJl
ZmVyZW5jZXNEZWZhdWx0VmFsdWVzLmNwcApAQCAtNDksNyArNDksNyBAQCBib29sIGRlZmF1bHRQ
YXNzaXZlVG91Y2hMaXN0ZW5lcnNBc0RlZmF1bHRPbkRvY3VtZW50KCkKIGJvb2wgZGVmYXVsdENT
U09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQoKQogewogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
Ci0gICAgaWYgKFdlYkNvcmU6OklPU0FwcGxpY2F0aW9uOjppc0lNRGIoKSAmJiBhcHBsaWNhdGlv
blNES1ZlcnNpb24oKSA8IERZTERfSU9TX1ZFUlNJT05fMTNfMCkKKyAgICBpZiAoV2ViQ29yZTo6
SU9TQXBwbGljYXRpb246OmlzSU1EYigpICYmIFdlYkNvcmU6OmFwcGxpY2F0aW9uU0RLVmVyc2lv
bigpIDwgRFlMRF9JT1NfVkVSU0lPTl8xM18wKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAjZW5k
aWYKICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YnNpdGVQb2xpY2llc0RhdGEuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vic2l0ZVBvbGlj
aWVzRGF0YS5jcHAKaW5kZXggYTIxY2M5NTU5YjJlMTI3MWQ2NzhkNTA4ZDFiODk5YWVhMTJjNTIz
ZS4uYjg1NzgzZGNhYmMyYzgzZDNiZDU2NmM5MjE5MzIxOGFkMmRjOWE4NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2Vic2l0ZVBvbGljaWVzRGF0YS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2Vic2l0ZVBvbGljaWVzRGF0YS5jcHAKQEAgLTY5LDcgKzY5LDcgQEAg
T3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4gV2Vic2l0ZVBvbGljaWVzRGF0YTo6ZGVjb2Rl
KElQQzo6RGVjb2RlciYgZGVjb2RlcikKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAog
I2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCi0gICAgT3B0aW9uYWw8RGV2aWNlT3JpZW50
YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZT4gZGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25B
Y2Nlc3NTdGF0ZTsKKyAgICBPcHRpb25hbDxXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbk9yTW90
aW9uUGVybWlzc2lvblN0YXRlPiBkZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc1N0YXRl
OwogICAgIGRlY29kZXIgPj4gZGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NTdGF0ZTsK
ICAgICBpZiAoIWRldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzU3RhdGUpCiAgICAgICAg
IHJldHVybiBXVEY6Om51bGxvcHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9p
b3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5oCmluZGV4IGEyODcxMzg5
YjM3ZDQ3MTkxNWJkOTFmOWJlNjA5YmUxMDdkNzRlZjQuLjUzMDdkMjUxNmZjYmZiYTBhOTU0NDk3
ZTQzNzM4ZjBiOGI5YmUzMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9J
bnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5oCkBAIC0yOCw5ICsyOCw5
IEBACiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKIAogI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJz
LmgiCi0jaW5jbHVkZSAiRWxlbWVudENvbnRleHQuaCIKICNpbmNsdWRlICJJbnRlcmFjdGlvbklu
Zm9ybWF0aW9uUmVxdWVzdC5oIgogI2luY2x1ZGUgIlNoYXJlYWJsZUJpdG1hcC5oIgorI2luY2x1
ZGUgPFdlYkNvcmUvRWxlbWVudENvbnRleHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ludFBvaW50
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxUeXBlcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
U2VsZWN0aW9uUmVjdC5oPgpAQCAtOTAsNyArOTAsNyBAQCBzdHJ1Y3QgSW50ZXJhY3Rpb25JbmZv
cm1hdGlvbkF0UG9zaXRpb24gewogICAgIFJldGFpblB0cjxOU0FycmF5PiBkYXRhRGV0ZWN0b3JS
ZXN1bHRzOwogI2VuZGlmCiAKLSAgICBPcHRpb25hbDxFbGVtZW50Q29udGV4dD4gZWxlbWVudENv
bnRleHQ7CisgICAgT3B0aW9uYWw8V2ViQ29yZTo6RWxlbWVudENvbnRleHQ+IGVsZW1lbnRDb250
ZXh0OwogCiAgICAgLy8gQ29weSBjb21wYXRpYmxlIG9wdGlvbmFsIGJpdHMgZm9yd2FyZCAoZm9y
IGV4YW1wbGUsIGlmIHdlIGhhdmUgYSBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbgog
ICAgIC8vIHdpdGggc25hcHNob3RzIGluIGl0LCBhbmQgcGVyZm9ybSBhbm90aGVyIHJlcXVlc3Qg
Zm9yIHRoZSBzYW1lIHBvaW50IHdpdGhvdXQgcmVxdWVzdGluZyB0aGUgc25hcHNob3RzLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNl
cy50eHQKaW5kZXggMzFlZTExODkwMjU1NzU3NTE3NjEwMDY4MjM5YjE2MmEwNmZmMDdlZi4uMTY3
NTI3NTBmZTUxYzYwNGIwZTE4ZWIyYWQ0MmE4ZmI0Y2ZmOWI5OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC0x
MjEsNyArMTIxLDYgQEAgU2hhcmVkL0NhY2hlTW9kZWwuY3BwCiBTaGFyZWQvQ29udGV4dE1lbnVD
b250ZXh0RGF0YS5jcHAKIFNoYXJlZC9FZGl0aW5nUmFuZ2UuY3BwCiBTaGFyZWQvRWRpdG9yU3Rh
dGUuY3BwCi1TaGFyZWQvRWxlbWVudENvbnRleHQuY3BwCiBTaGFyZWQvRm9udEluZm8uY3BwCiBT
aGFyZWQvRnJhbWVJbmZvRGF0YS5jcHAKIFNoYXJlZC9MYXllclRyZWVDb250ZXh0LmNwcApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggN2Uw
NDgyNmJmNzU3ZjA2ODJhODc1YTUyOTQ4ZjQzYThmNGVlZDRhMS4uZTZmOWQ2OWI3YTE0MThhNzI2
NzJkODVlZjFhODNmMGI5NjUxNmQxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC0zMyw3ICszMyw2IEBACiAjaW1wb3J0ICJDb21wbGV0
aW9uSGFuZGxlckNhbGxDaGVja2VyLmgiCiAjaW1wb3J0ICJEaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dC5oIgogI2ltcG9ydCAiRHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZS5oIgotI2ltcG9ydCAiRWxl
bWVudENvbnRleHQuaCIKICNpbXBvcnQgIkZpbmRDbGllbnQuaCIKICNpbXBvcnQgIkZ1bGxzY3Jl
ZW5DbGllbnQuaCIKICNpbXBvcnQgIkdsb2JhbEZpbmRJblBhZ2VTdGF0ZS5oIgpAQCAtMTAxLDYg
KzEwMCw3IEBACiAjaW1wb3J0ICJfV0tUZXh0SW5wdXRDb250ZXh0SW50ZXJuYWwuaCIKICNpbXBv
cnQgIl9XS1Zpc2l0ZWRMaW5rU3RvcmVJbnRlcm5hbC5oIgogI2ltcG9ydCAiX1dLV2Vic2l0ZVBv
bGljaWVzSW50ZXJuYWwuaCIKKyNpbXBvcnQgPFdlYkNvcmUvRWxlbWVudENvbnRleHQuaD4KICNp
bXBvcnQgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Q0cuaD4KICNpbXBvcnQgPFdlYkNvcmUvSU9T
dXJmYWNlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0pTRE9NQmluZGluZy5oPgpAQCAtNTA1OSwxMiAr
NTA1OSwxMiBAQCBGT1JfRUFDSF9QUklWQVRFX1dLQ09OVEVOVFZJRVdfQUNUSU9OKEZPUldBUkRf
QUNUSU9OX1RPX1dLQ09OVEVOVFZJRVcpCiAKICAgICBDR1JlY3QgcmVjdEluUm9vdFZpZXdDb29y
ZGluYXRlcyA9IFtzZWxmIF9jb252ZXJ0UmVjdFRvUm9vdFZpZXdDb29yZGluYXRlczpyZWN0SW5X
ZWJWaWV3Q29vcmRpbmF0ZXNdOwogICAgIGF1dG8gd2Vha1NlbGYgPSBXZWFrT2JqQ1B0cjxXS1dl
YlZpZXc+KHNlbGYpOwotICAgIF9wYWdlLT50ZXh0SW5wdXRDb250ZXh0c0luUmVjdChyZWN0SW5S
b290Vmlld0Nvb3JkaW5hdGVzLCBbd2Vha1NlbGYsIGNhcHR1cmVkQ29tcGxldGlvbkhhbmRsZXIg
PSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpXSAoY29uc3QgVmVjdG9yPFdlYktpdDo6
RWxlbWVudENvbnRleHQ+JiBjb250ZXh0cykgeworICAgIF9wYWdlLT50ZXh0SW5wdXRDb250ZXh0
c0luUmVjdChyZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzLCBbd2Vha1NlbGYsIGNhcHR1cmVkQ29t
cGxldGlvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpXSAoY29uc3Qg
VmVjdG9yPFdlYkNvcmU6OkVsZW1lbnRDb250ZXh0PiYgY29udGV4dHMpIHsKICAgICAgICAgUmV0
YWluUHRyPE5TTXV0YWJsZUFycmF5PiBlbGVtZW50cyA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJh
eSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTpjb250ZXh0cy5zaXplKCldKTsKIAogICAgICAgICBh
dXRvIHN0cm9uZ1NlbGYgPSB3ZWFrU2VsZi5nZXQoKTsKICAgICAgICAgZm9yIChjb25zdCBhdXRv
JiBjb250ZXh0IDogY29udGV4dHMpIHsKLSAgICAgICAgICAgIFdlYktpdDo6RWxlbWVudENvbnRl
eHQgY29udGV4dFdpdGhXZWJWaWV3Qm91bmRpbmdSZWN0ID0gY29udGV4dDsKKyAgICAgICAgICAg
IFdlYkNvcmU6OkVsZW1lbnRDb250ZXh0IGNvbnRleHRXaXRoV2ViVmlld0JvdW5kaW5nUmVjdCA9
IGNvbnRleHQ7CiAgICAgICAgICAgICBjb250ZXh0V2l0aFdlYlZpZXdCb3VuZGluZ1JlY3QuYm91
bmRpbmdSZWN0ID0gW3N0cm9uZ1NlbGYgX2NvbnZlcnRSZWN0RnJvbVJvb3RWaWV3Q29vcmRpbmF0
ZXM6Y29udGV4dC5ib3VuZGluZ1JlY3RdOwogICAgICAgICAgICAgW2VsZW1lbnRzIGFkZE9iamVj
dDphZG9wdE5TKFtbX1dLVGV4dElucHV0Q29udGV4dCBhbGxvY10gX2luaXRXaXRoVGV4dElucHV0
Q29udGV4dDpjb250ZXh0V2l0aFdlYlZpZXdCb3VuZGluZ1JlY3RdKS5nZXQoKV07CiAgICAgICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tUZXh0
SW5wdXRDb250ZXh0Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Rl
eHRJbnB1dENvbnRleHQubW0KaW5kZXggZjYxZDcyNzJlMWFmZjdmYWM2ODI0NzU2ODU5NjhkNWYy
NTBlM2JmNC4uN2ViNjVkMDAwOWZhOTc4YjMwYjE1YzJlZDg3YmIwODBlOTU5ZjMzMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1RleHRJbnB1dENvbnRl
eHQubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1RleHRJbnB1
dENvbnRleHQubW0KQEAgLTI2LDExICsyNiwxMSBAQAogI2ltcG9ydCAiY29uZmlnLmgiCiAjaW1w
b3J0ICJfV0tUZXh0SW5wdXRDb250ZXh0LmgiCiAKLSNpbXBvcnQgIkVsZW1lbnRDb250ZXh0Lmgi
CiAjaW1wb3J0ICJfV0tUZXh0SW5wdXRDb250ZXh0SW50ZXJuYWwuaCIKKyNpbXBvcnQgPFdlYkNv
cmUvRWxlbWVudENvbnRleHQuaD4KIAogQGltcGxlbWVudGF0aW9uIF9XS1RleHRJbnB1dENvbnRl
eHQgewotICAgIFdlYktpdDo6RWxlbWVudENvbnRleHQgX3RleHRJbnB1dENvbnRleHQ7CisgICAg
V2ViQ29yZTo6RWxlbWVudENvbnRleHQgX3RleHRJbnB1dENvbnRleHQ7CiB9CiAKIC0gKGluc3Rh
bmNldHlwZSlpbml0CkBAIC0zOCw3ICszOCw3IEBACiAgICAgcmV0dXJuIG5pbDsKIH0KIAotLSAo
aW5zdGFuY2V0eXBlKV9pbml0V2l0aFRleHRJbnB1dENvbnRleHQ6KGNvbnN0IFdlYktpdDo6RWxl
bWVudENvbnRleHQmKWNvbnRleHQKKy0gKGluc3RhbmNldHlwZSlfaW5pdFdpdGhUZXh0SW5wdXRD
b250ZXh0Oihjb25zdCBXZWJDb3JlOjpFbGVtZW50Q29udGV4dCYpY29udGV4dAogewogICAgIHNl
bGYgPSBbc3VwZXIgaW5pdF07CiAgICAgaWYgKCFzZWxmKQpAQCAtNTQsNyArNTQsNyBAQAogICAg
IHJldHVybiBfdGV4dElucHV0Q29udGV4dC5ib3VuZGluZ1JlY3Q7CiB9CiAKLS0gKGNvbnN0IFdl
YktpdDo6RWxlbWVudENvbnRleHQmKV90ZXh0SW5wdXRDb250ZXh0CistIChjb25zdCBXZWJDb3Jl
OjpFbGVtZW50Q29udGV4dCYpX3RleHRJbnB1dENvbnRleHQKIHsKICAgICByZXR1cm4gX3RleHRJ
bnB1dENvbnRleHQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLVGV4dElucHV0Q29udGV4dEludGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLVGV4dElucHV0Q29udGV4dEludGVybmFsLmgKaW5kZXggNGFjNzAw
MmNhYzE4MTBlYzRkZGY5NWNhOTIzMzFlODAyNDZiZGQ2MS4uOGY2N2ZjMjllYTE5MDE5ZTM4MTM3
YWM3Zjc2YzA5YWVkYzlhODVhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS1RleHRJbnB1dENvbnRleHRJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tUZXh0SW5wdXRDb250ZXh0SW50ZXJuYWwuaApAQCAt
MjUsMTQgKzI1LDE0IEBACiAKICNpbXBvcnQgIl9XS1RleHRJbnB1dENvbnRleHQuaCIKIAotbmFt
ZXNwYWNlIFdlYktpdCB7CituYW1lc3BhY2UgV2ViQ29yZSB7CiBzdHJ1Y3QgRWxlbWVudENvbnRl
eHQ7CiB9CiAKIEBpbnRlcmZhY2UgX1dLVGV4dElucHV0Q29udGV4dCAoKQogCi0tIChpbnN0YW5j
ZXR5cGUpX2luaXRXaXRoVGV4dElucHV0Q29udGV4dDooY29uc3QgV2ViS2l0OjpFbGVtZW50Q29u
dGV4dCYpY29udGV4dDsKKy0gKGluc3RhbmNldHlwZSlfaW5pdFdpdGhUZXh0SW5wdXRDb250ZXh0
Oihjb25zdCBXZWJDb3JlOjpFbGVtZW50Q29udGV4dCYpY29udGV4dDsKIAotLSAoY29uc3QgV2Vi
S2l0OjpFbGVtZW50Q29udGV4dCYpX3RleHRJbnB1dENvbnRleHQ7CistIChjb25zdCBXZWJDb3Jl
OjpFbGVtZW50Q29udGV4dCYpX3RleHRJbnB1dENvbnRleHQ7CiAKIEBlbmQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGNlYmQxMWZiMDAyZWFjNmM2ZjljYTFj
ZmVhMTQ4MDRhYmQ0ODMwMDguLmViOTBjNWFiZDMwYmM4MWNhNDBjMGRmM2ZmNDZhYjUxNTA0NmE3
OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNTksNyAr
NTksNiBAQAogI2luY2x1ZGUgIkRvd25sb2FkUHJveHkuaCIKICNpbmNsdWRlICJEcmF3aW5nQXJl
YU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiRHJhd2luZ0FyZWFQcm94eS5oIgotI2luY2x1ZGUgIkVs
ZW1lbnRDb250ZXh0LmgiCiAjaW5jbHVkZSAiRXZlbnREaXNwYXRjaGVyTWVzc2FnZXMuaCIKICNp
bmNsdWRlICJGb3JtRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIkZyYW1lSW5mb0RhdGEuaCIK
QEAgLTE0Myw2ICsxNDIsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRGlhZ25vc3RpY0xvZ2dpbmdL
ZXlzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EcmFnQ29udHJvbGxlci5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvRHJhZ0RhdGEuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0VsZW1lbnRDb250ZXh0Lmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9FdmVudE5hbWVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFJl
Y3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZvY3VzRGlyZWN0aW9uLmg+CkBAIC05Mzc3LDcgKzkz
NzcsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6d2ViVmlld0RpZE1vdmVUb1dpbmRvdygpCiAgICAg
fQogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6dGV4dElucHV0Q29udGV4dHNJblJlY3QoV2ViQ29y
ZTo6RmxvYXRSZWN0IHJlY3QsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgVmVjdG9yPFdl
YktpdDo6RWxlbWVudENvbnRleHQ+Jik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlBh
Z2VQcm94eTo6dGV4dElucHV0Q29udGV4dHNJblJlY3QoV2ViQ29yZTo6RmxvYXRSZWN0IHJlY3Qs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgVmVjdG9yPFdlYkNvcmU6OkVsZW1lbnRDb250
ZXh0PiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmICghaGFzUnVubmluZ1Byb2Nl
c3MoKSkgewogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih7IH0pOwpAQCAtOTM4Nyw3ICs5Mzg3
LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnRleHRJbnB1dENvbnRleHRzSW5SZWN0KFdlYkNvcmU6
OkZsb2F0UmVjdCByZWN0LCBDb21wbGV0aW9uSGEKICAgICBtX3Byb2Nlc3MtPmNvbm5lY3Rpb24o
KS0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlOjpUZXh0SW5wdXRDb250ZXh0
c0luUmVjdChyZWN0KSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIG1fd2ViUGFnZUlEKTsK
IH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmZvY3VzVGV4dElucHV0Q29udGV4dChjb25zdCBFbGVt
ZW50Q29udGV4dCYgY29udGV4dCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUGFnZVByb3h5Ojpmb2N1c1RleHRJbnB1dENvbnRleHQo
Y29uc3QgV2ViQ29yZTo6RWxlbWVudENvbnRleHQmIGNvbnRleHQsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKCFoYXNSdW5uaW5n
UHJvY2VzcygpKSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggYzZhNGZkY2ZhMzVlY2I1NDEyOWE5N2I0
NTA4OGEyZmMxMDQ3MzRlZC4uODRlNzU1ZWNkZTA4YTAyOWZkNjQyMDczOWY4Yzc5NTMyNDg3M2I1
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTI0Miw2ICsyNDIs
MTAgQEAgdHlwZWRlZiBzdHJ1Y3QgT3BhcXVlSlNDb250ZXh0KiBKU0dsb2JhbENvbnRleHRSZWY7
CiB0eXBlZGVmIEhXTkQgUGxhdGZvcm1WaWV3V2lkZ2V0OwogI2VuZGlmCiAKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKK3N0cnVjdCBFbGVtZW50Q29udGV4dDsKK30KKwogbmFtZXNwYWNlIFdlYktpdCB7
CiBjbGFzcyBEcmF3aW5nQXJlYVByb3h5OwogY2xhc3MgRWRpdGFibGVJbWFnZUNvbnRyb2xsZXI7
CkBAIC0yOTAsNyArMjk0LDYgQEAgc3RydWN0IERvY3VtZW50RWRpdGluZ0NvbnRleHQ7CiBzdHJ1
Y3QgRG9jdW1lbnRFZGl0aW5nQ29udGV4dFJlcXVlc3Q7CiBzdHJ1Y3QgRWRpdGluZ1JhbmdlOwog
c3RydWN0IEVkaXRvclN0YXRlOwotc3RydWN0IEVsZW1lbnRDb250ZXh0Owogc3RydWN0IEZvbnRJ
bmZvOwogc3RydWN0IEZyYW1lSW5mb0RhdGE7CiBzdHJ1Y3QgSW5zZXJ0VGV4dE9wdGlvbnM7CkBA
IC02NDgsOCArNjUxLDggQEAgcHVibGljOgogICAgIHZvaWQgcmVxdWVzdEZvbnRBdHRyaWJ1dGVz
QXRTZWxlY3Rpb25TdGFydChGdW5jdGlvbjx2b2lkKGNvbnN0IFdlYkNvcmU6OkZvbnRBdHRyaWJ1
dGVzJiwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYpOwogICAgIHZvaWQgZm9udEF0dHJpYnV0ZXND
YWxsYmFjayhjb25zdCBXZWJDb3JlOjpGb250QXR0cmlidXRlcyYsIENhbGxiYWNrSUQpOwogCi0g
ICAgdm9pZCB0ZXh0SW5wdXRDb250ZXh0c0luUmVjdChXZWJDb3JlOjpGbG9hdFJlY3QsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgVmVjdG9yPEVsZW1lbnRDb250ZXh0PiYpPiYmKTsKLSAg
ICB2b2lkIGZvY3VzVGV4dElucHV0Q29udGV4dChjb25zdCBFbGVtZW50Q29udGV4dCYsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOworICAgIHZvaWQgdGV4dElucHV0Q29udGV4dHNJ
blJlY3QoV2ViQ29yZTo6RmxvYXRSZWN0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFZl
Y3RvcjxXZWJDb3JlOjpFbGVtZW50Q29udGV4dD4mKT4mJik7CisgICAgdm9pZCBmb2N1c1RleHRJ
bnB1dENvbnRleHQoY29uc3QgV2ViQ29yZTo6RWxlbWVudENvbnRleHQmLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiYmKTsKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgZG91
YmxlIGRpc3BsYXllZENvbnRlbnRTY2FsZSgpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdFZpc2libGVD
b250ZW50UmVjdFVwZGF0ZS5zY2FsZSgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBjYzJlMTBkZDE5YzlkYzFiNzJjNTJkMzEwOWMw
ZjU1YTZkNzI2YjZiLi5kNTU3YzE3MGRiNTM3YWJjZTYyNjJlZjg2MmQ5NGM4ZTlkYzU0NTM0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTcyMyw3ICs3MjMsNiBAQAogCQkyRERGNzMxNTE4RTk1MDYwMDA0RjVBNjYgLyogUmVtb3RlTGF5
ZXJCYWNraW5nU3RvcmVDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAyRERGNzMxMzE4RTk1MDYwMDA0RjVBNjYgLyogUmVtb3RlTGF5ZXJC
YWNraW5nU3RvcmVDb2xsZWN0aW9uLmggKi87IH07CiAJCTJERTY5NDNEMThCRDJBNjgwMDVDMTVF
NSAvKiBTbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJERTY5NDNCMThCRDJB
NjgwMDVDMTVFNSAvKiBTbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyTWVzc2FnZVJlY2VpdmVy
LmNwcCAqLzsgfTsKIAkJMkRFNjk0M0UxOEJEMkE2ODAwNUMxNUU1IC8qIFNtYXJ0TWFnbmlmaWNh
dGlvbkNvbnRyb2xsZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMkRFNjk0M0MxOEJEMkE2ODAwNUMxNUU1IC8qIFNtYXJ0TWFnbmlmaWNh
dGlvbkNvbnRyb2xsZXJNZXNzYWdlcy5oICovOyB9OwotCQkyREU5QjEzNTIyMzFCNUIyMDA1Mjg3
QjcgLyogRWxlbWVudENvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDJERTlCMTMzMjIzMUI1QjIwMDUyODdCNyAvKiBFbGVtZW50Q29udGV4dC5o
ICovOyB9OwogCQkyREU5QjEzQTIyMzFGNjFDMDA1Mjg3QjcgLyogX1dLVGV4dElucHV0Q29udGV4
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRFOUIx
MzgyMjMxRjYxQzAwNTI4N0I3IC8qIF9XS1RleHRJbnB1dENvbnRleHQuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkyREU5QjEzQzIyMzFGNzdDMDA1
Mjg3QjcgLyogX1dLVGV4dElucHV0Q29udGV4dEludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREU5QjEzQjIyMzFGNzdDMDA1Mjg3QjcgLyog
X1dLVGV4dElucHV0Q29udGV4dEludGVybmFsLmggKi87IH07CiAJCTJERUFDNUNGMUFDMzY4QkIw
MEExOTVEOCAvKiBfV0tGaW5kT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMkRFQUM1Q0UxQUMzNjhCQjAwQTE5NUQ4IC8qIF9XS0ZpbmRPcHRp
b25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAg
LTI4ODUsOCArMjg4NCw2IEBACiAJCTJEREY3MzE0MThFOTUwNjAwMDRGNUE2NiAvKiBSZW1vdGVM
YXllckJhY2tpbmdTdG9yZUNvbGxlY3Rpb24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBSZW1vdGVMYXllckJhY2tpbmdTdG9yZUNvbGxlY3Rpb24ubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJERTY5NDNCMThCRDJBNjgwMDVDMTVFNSAvKiBTbWFy
dE1hZ25pZmljYXRpb25Db250cm9sbGVyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TbWFydE1hZ25p
ZmljYXRpb25Db250cm9sbGVyTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxU
X1BST0RVQ1RTX0RJUjsgfTsKIAkJMkRFNjk0M0MxOEJEMkE2ODAwNUMxNUU1IC8qIFNtYXJ0TWFn
bmlmaWNhdGlvbkNvbnRyb2xsZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBTbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyTWVzc2FnZXMuaDsgcGF0aCA9IERl
cml2ZWRTb3VyY2VzL1dlYktpdDIvU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlck1lc3NhZ2Vz
Lmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07Ci0JCTJERTlCMTMzMjIzMUI1
QjIwMDUyODdCNyAvKiBFbGVtZW50Q29udGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBFbGVtZW50Q29udGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQky
REU5QjEzNDIyMzFCNUIyMDA1Mjg3QjcgLyogRWxlbWVudENvbnRleHQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRWxlbWVudENvbnRleHQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkyREU5QjEzNzIyMzFGNjFDMDA1Mjg3QjcgLyogX1dLVGV4dElu
cHV0Q29udGV4dC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IF9X
S1RleHRJbnB1dENvbnRleHQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJERTlC
MTM4MjIzMUY2MUMwMDUyODdCNyAvKiBfV0tUZXh0SW5wdXRDb250ZXh0LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS1RleHRJbnB1dENvbnRleHQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMkRFOUIxM0IyMjMxRjc3QzAwNTI4N0I3IC8qIF9XS1RleHRJbnB1
dENvbnRleHRJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tU
ZXh0SW5wdXRDb250ZXh0SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTUyODMsOCArNTI4MCw2IEBACiAJCQkJRTEwNUZFNTMxOEQ3QjlERTAwOEY1N0E4IC8qIEVkaXRp
bmdSYW5nZS5oICovLAogCQkJCThDRkVDRTkzMTQ5MEYxNDAwMDJBQUEzMiAvKiBFZGl0b3JTdGF0
ZS5jcHAgKi8sCiAJCQkJMUFBNDFBQjQxMkMwMkVDNDAwMkJFNjdCIC8qIEVkaXRvclN0YXRlLmgg
Ki8sCi0JCQkJMkRFOUIxMzQyMjMxQjVCMjAwNTI4N0I3IC8qIEVsZW1lbnRDb250ZXh0LmNwcCAq
LywKLQkJCQkyREU5QjEzMzIyMzFCNUIyMDA1Mjg3QjcgLyogRWxlbWVudENvbnRleHQuaCAqLywK
IAkJCQlDNTlDNEE1NjE4QjgxMTc0MDA3QkRDQjYgLyogRm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlv
bi5jcHAgKi8sCiAJCQkJQzU5QzRBNTcxOEI4MTE3NDAwN0JEQ0I2IC8qIEZvY3VzZWRFbGVtZW50
SW5mb3JtYXRpb24uaCAqLywKIAkJCQlCQ0U4MUQ4QTEzMTlGN0VGMDAyNDE5MTAgLyogRm9udElu
Zm8uY3BwICovLApAQCAtNjI3MSw5ICs2MjY2LDkgQEAKIAkJCQkyREFBREE4RTIyOThDMjEwMDBF
MzZCMEMgLyogRGV2aWNlTWFuYWdlbWVudFNQSS5oICovLAogCQkJCTU3QjgyNjQwMjMwNEVCM0Uw
MEI3MkVCMCAvKiBOZWFyRmllbGRTUEkuaCAqLywKIAkJCQkzNzU0RDU0NDFCM0EyOUZEMDAzQTRD
N0YgLyogTlNJbnZvY2F0aW9uU1BJLmggKi8sCisJCQkJMzdCNDdFMkMxRDY0REI3NjAwNUY0RUZG
IC8qIG9iamNTUEkuaCAqLywKIAkJCQkwRTk3RDc0QzIwMEU4RkYzMDBCRjY2NDMgLyogU2FmZUJy
b3dzaW5nU1BJLmggKi8sCiAJCQkJN0FBNzQ2RDQyMzU5MzA4NDAwMDk1MDUwIC8qIFNlY0l0ZW1T
UEkuaCAqLywKLQkJCQkzN0I0N0UyQzFENjREQjc2MDA1RjRFRkYgLyogb2JqY1NQSS5oICovLAog
CQkJKTsKIAkJCXBhdGggPSBDb2NvYTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC05
NDA5LDcgKzk0MDQsNiBAQAogCQkJCTFBRkRFNjYyMTk1NEU5QjEwMEM0OEZGQSAvKiBBUElTZXNz
aW9uU3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNEQ2NjQ4MThBMkQ5MUEwMEQ4MkUyMSAv
KiBBUElVSUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNEQjg2QzExMjAwRkI5NzAwNzI1
NEJFIC8qIEFQSVVSTC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJN0FBNzQ2RDUyMzU5M0Q4MTAwMDk1
MDUwIC8qIFNlY0l0ZW1TUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRTIzMTVEMTIyQzMwQ0Ew
MEQ1QzM1QSAvKiBBUElVUkxSZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzkwQTFEMjEy
MkRENTVFMDBDQzhDNTAgLyogQVBJVVJMUmVzcG9uc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUY2
MTEzRTI1MTI2Q0UxODIwMDU3RDBBNyAvKiBBUElVc2VyQ29udGVudFVSTFBhdHRlcm4uaCBpbiBI
ZWFkZXJzICovLApAQCAtOTUwMiw3ICs5NDk2LDYgQEAKIAkJCQkyRDU4NzVCRjIxOUI1MzE1MDA3
MEI5QUEgLyogRWRpdGFibGVJbWFnZUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUUx
MDVGRTU0MThEN0I5REUwMDhGNTdBOCAvKiBFZGl0aW5nUmFuZ2UuaCBpbiBIZWFkZXJzICovLAog
CQkJCTFBQTQxQUI1MTJDMDJFQzQwMDJCRTY3QiAvKiBFZGl0b3JTdGF0ZS5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJMkRFOUIxMzUyMjMxQjVCMjAwNTI4N0I3IC8qIEVsZW1lbnRDb250ZXh0LmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQzAzMkRBODEwRjQzN0QxMDA1OEMxNUEgLyogRW5jb2Rlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNTFCMTVBODUxMzg0M0EzOTAwMzIxQUQ4IC8qIEVudmlyb25tZW50
VXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUE1NzVGQjE0OTZCNTI2MDBBNEVFMDYg
LyogRXZlbnREaXNwYXRjaGVyLmggaW4gSGVhZGVycyAqLywKQEAgLTk3NzksNiArOTc3Miw3IEBA
CiAJCQkJNTExRjhBN0IxMzhCNDYwOTAwQTk1RjQ0IC8qIFNlY0l0ZW1TaGltTGlicmFyeS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRTE4RTY5MEMxNjlCNTYzRjAwOUI2NjcwIC8qIFNlY0l0ZW1TaGlt
UHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxOEU2OTE4MTY5QjY2N0IwMDlCNjY3MCAvKiBT
ZWNJdGVtU2hpbVByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTdBQTc0NkQ1MjM1
OTNEODEwMDA5NTA1MCAvKiBTZWNJdGVtU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQk1NzBBQjhG
MzIwQUUzQkQ3MDBCOEJFODcgLyogU2VjS2V5UHJveHlTdG9yZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNTE0RDlGNTcxOTExOUQzNTAwMDA2M0E3IC8qIFNlcnZpY2VzQ29udHJvbGxlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMUFGREU2NUExOTU0QTQyQjAwQzQ4RkZBIC8qIFNlc3Npb25TdGF0ZS5o
IGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwCmluZGV4IGRmOTYxZTQwOWM1YTgzOWFiMThjZDU1MjdlNmY4NDk2Yzg2NzkzYmUuLjkw
MWJhMDY3OTFhNjBjMWI2MWU3ODRiNTkwMDRkZjVlYTZkNWNjYjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC02NzU4LDkgKzY3NTgsOSBAQCBz
dGF0aWMgYm9vbCBpc0VkaXRhYmxlVGV4dElucHV0RWxlbWVudChFbGVtZW50JiBlbGVtZW50KQog
ICAgIHJldHVybiBlbGVtZW50LmlzUm9vdEVkaXRhYmxlRWxlbWVudCgpOwogfQogCi12b2lkIFdl
YlBhZ2U6OnRleHRJbnB1dENvbnRleHRzSW5SZWN0KFdlYkNvcmU6OkZsb2F0UmVjdCBzZWFyY2hS
ZWN0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFZlY3RvcjxFbGVtZW50Q29udGV4dD4m
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUGFnZTo6dGV4dElucHV0Q29udGV4dHNJ
blJlY3QoV2ViQ29yZTo6RmxvYXRSZWN0IHNlYXJjaFJlY3QsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoY29uc3QgVmVjdG9yPFdlYkNvcmU6OkVsZW1lbnRDb250ZXh0PiYpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQogewotICAgIFZlY3RvcjxXZWJLaXQ6OkVsZW1lbnRDb250ZXh0PiB0ZXh0SW5wdXRD
b250ZXh0czsKKyAgICBWZWN0b3I8V2ViQ29yZTo6RWxlbWVudENvbnRleHQ+IHRleHRJbnB1dENv
bnRleHRzOwogCiAgICAgZm9yIChGcmFtZSogZnJhbWUgPSAmbV9wYWdlLT5tYWluRnJhbWUoKTsg
ZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5leHQoKSkgewogICAgICAgICBE
b2N1bWVudCogZG9jdW1lbnQgPSBmcmFtZS0+ZG9jdW1lbnQoKTsKQEAgLTY3ODYsNyArNjc4Niw3
IEBAIHZvaWQgV2ViUGFnZTo6dGV4dElucHV0Q29udGV4dHNJblJlY3QoV2ViQ29yZTo6RmxvYXRS
ZWN0IHNlYXJjaFJlY3QsIENvbXBsZXRpb25ICiAgICAgICAgICAgICBpZiAoIXNlYXJjaFJlY3Qu
aW50ZXJzZWN0cyhlbGVtZW50UmVjdCkpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKLSAg
ICAgICAgICAgIFdlYktpdDo6RWxlbWVudENvbnRleHQgY29udGV4dDsKKyAgICAgICAgICAgIFdl
YkNvcmU6OkVsZW1lbnRDb250ZXh0IGNvbnRleHQ7CiAgICAgICAgICAgICBjb250ZXh0LndlYlBh
Z2VJZGVudGlmaWVyID0gbV9pZGVudGlmaWVyOwogICAgICAgICAgICAgY29udGV4dC5kb2N1bWVu
dElkZW50aWZpZXIgPSBkb2N1bWVudC0+aWRlbnRpZmllcigpOwogICAgICAgICAgICAgY29udGV4
dC5lbGVtZW50SWRlbnRpZmllciA9IGRvY3VtZW50LT5pZGVudGlmaWVyRm9yRWxlbWVudChlbGVt
ZW50KTsKQEAgLTY3OTksNyArNjc5OSw3IEBAIHZvaWQgV2ViUGFnZTo6dGV4dElucHV0Q29udGV4
dHNJblJlY3QoV2ViQ29yZTo6RmxvYXRSZWN0IHNlYXJjaFJlY3QsIENvbXBsZXRpb25ICiAgICAg
Y29tcGxldGlvbkhhbmRsZXIodGV4dElucHV0Q29udGV4dHMpOwogfQogCi12b2lkIFdlYlBhZ2U6
OmZvY3VzVGV4dElucHV0Q29udGV4dChjb25zdCBFbGVtZW50Q29udGV4dCYgdGV4dElucHV0Q29u
dGV4dCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
K3ZvaWQgV2ViUGFnZTo6Zm9jdXNUZXh0SW5wdXRDb250ZXh0KGNvbnN0IFdlYkNvcmU6OkVsZW1l
bnRDb250ZXh0JiB0ZXh0SW5wdXRDb250ZXh0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIFJlZlB0cjxFbGVtZW50PiBlbGVtZW50ID0g
ZWxlbWVudEZvckNvbnRleHQodGV4dElucHV0Q29udGV4dCk7CiAKQEAgLTY4MDksNyArNjgwOSw3
IEBAIHZvaWQgV2ViUGFnZTo6Zm9jdXNUZXh0SW5wdXRDb250ZXh0KGNvbnN0IEVsZW1lbnRDb250
ZXh0JiB0ZXh0SW5wdXRDb250ZXh0LCBDb21wCiAgICAgY29tcGxldGlvbkhhbmRsZXIoZWxlbWVu
dCk7CiB9CiAKLUVsZW1lbnQqIFdlYlBhZ2U6OmVsZW1lbnRGb3JDb250ZXh0KGNvbnN0IEVsZW1l
bnRDb250ZXh0JiBlbGVtZW50Q29udGV4dCkgY29uc3QKK0VsZW1lbnQqIFdlYlBhZ2U6OmVsZW1l
bnRGb3JDb250ZXh0KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnRDb250ZXh0JiBlbGVtZW50Q29udGV4
dCkgY29uc3QKIHsKICAgICBpZiAoZWxlbWVudENvbnRleHQud2ViUGFnZUlkZW50aWZpZXIgIT0g
bV9pZGVudGlmaWVyKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTY4MjQsNyArNjgyNCw3
IEBAIEVsZW1lbnQqIFdlYlBhZ2U6OmVsZW1lbnRGb3JDb250ZXh0KGNvbnN0IEVsZW1lbnRDb250
ZXh0JiBlbGVtZW50Q29udGV4dCkgY29uc3QKICAgICByZXR1cm4gZG9jdW1lbnQtPnNlYXJjaEZv
ckVsZW1lbnRCeUlkZW50aWZpZXIoZWxlbWVudENvbnRleHQuZWxlbWVudElkZW50aWZpZXIpOwog
fQogCi1PcHRpb25hbDxFbGVtZW50Q29udGV4dD4gV2ViUGFnZTo6Y29udGV4dEZvckVsZW1lbnQo
V2ViQ29yZTo6RWxlbWVudCYgZWxlbWVudCkgY29uc3QKK09wdGlvbmFsPFdlYkNvcmU6OkVsZW1l
bnRDb250ZXh0PiBXZWJQYWdlOjpjb250ZXh0Rm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50JiBl
bGVtZW50KSBjb25zdAogewogICAgIGF1dG8mIGRvY3VtZW50ID0gZWxlbWVudC5kb2N1bWVudCgp
OwogICAgIGlmICghbV9wYWdlIHx8IGRvY3VtZW50LnBhZ2UoKSAhPSBtX3BhZ2UuZ2V0KCkpCkBA
IC02ODM0LDcgKzY4MzQsNyBAQCBPcHRpb25hbDxFbGVtZW50Q29udGV4dD4gV2ViUGFnZTo6Y29u
dGV4dEZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCYgZWxlbWVudCkgYwogICAgIGlmICghZnJh
bWUpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKLSAgICByZXR1cm4gRWxlbWVudENv
bnRleHQgeyBlbGVtZW50UmVjdEluUm9vdFZpZXdDb29yZGluYXRlcyhlbGVtZW50LCAqZnJhbWUp
LCBtX2lkZW50aWZpZXIsIGRvY3VtZW50LmlkZW50aWZpZXIoKSwgZG9jdW1lbnQuaWRlbnRpZmll
ckZvckVsZW1lbnQoZWxlbWVudCkgfTsKKyAgICByZXR1cm4gV2ViQ29yZTo6RWxlbWVudENvbnRl
eHQgeyBlbGVtZW50UmVjdEluUm9vdFZpZXdDb29yZGluYXRlcyhlbGVtZW50LCAqZnJhbWUpLCBt
X2lkZW50aWZpZXIsIGRvY3VtZW50LmlkZW50aWZpZXIoKSwgZG9jdW1lbnQuaWRlbnRpZmllckZv
ckVsZW1lbnQoZWxlbWVudCkgfTsKIH0KIAogUEFMOjpTZXNzaW9uSUQgV2ViUGFnZTo6c2Vzc2lv
bklEKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApp
bmRleCBiYWU4NmFiMTBhZTA1YmVjZGU3NWFhOTBkOGI0YTE3YmFiNzQ3NjYyLi5hNjIyNGYwYTQw
NjVjMjc3ZGFkYTdkMTBkNWY3OWE4YzU3MjBkNGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xOTEsNiArMTkxLDcgQEAgZW51bSBjbGFzcyBXcml0
aW5nRGlyZWN0aW9uIDogdWludDhfdDsKIHN0cnVjdCBCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVy
Owogc3RydWN0IENvbXBvc2l0aW9uVW5kZXJsaW5lOwogc3RydWN0IERpY3RhdGlvbkFsdGVybmF0
aXZlOworc3RydWN0IEVsZW1lbnRDb250ZXh0Owogc3RydWN0IEdsb2JhbEZyYW1lSWRlbnRpZmll
cjsKIHN0cnVjdCBHbG9iYWxXaW5kb3dJZGVudGlmaWVyOwogc3RydWN0IEhpZ2hsaWdodDsKQEAg
LTI2Miw3ICsyNjMsNiBAQCBzdHJ1Y3QgQXR0cmlidXRlZFN0cmluZzsKIHN0cnVjdCBCYWNrRm9y
d2FyZExpc3RJdGVtU3RhdGU7CiBzdHJ1Y3QgRGF0YURldGVjdGlvblJlc3VsdDsKIHN0cnVjdCBF
ZGl0b3JTdGF0ZTsKLXN0cnVjdCBFbGVtZW50Q29udGV4dDsKIHN0cnVjdCBGb250SW5mbzsKIHN0
cnVjdCBJbnNlcnRUZXh0T3B0aW9uczsKIHN0cnVjdCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQ
b3NpdGlvbjsKQEAgLTYxNCw4ICs2MTQsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBleGVjdXRlRWRp
dENvbW1hbmRXaXRoQ2FsbGJhY2soY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBhcmd1bWVu
dCwgQ2FsbGJhY2tJRCk7CiAgICAgdm9pZCBzZWxlY3RBbGwoKTsKIAotICAgIHZvaWQgdGV4dElu
cHV0Q29udGV4dHNJblJlY3QoV2ViQ29yZTo6RmxvYXRSZWN0LCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGNvbnN0IFZlY3RvcjxXZWJLaXQ6OkVsZW1lbnRDb250ZXh0PiYpPiYmKTsKLSAgICB2b2lk
IGZvY3VzVGV4dElucHV0Q29udGV4dChjb25zdCBFbGVtZW50Q29udGV4dCYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoYm9vbCk+JiYpOworICAgIHZvaWQgdGV4dElucHV0Q29udGV4dHNJblJlY3Qo
V2ViQ29yZTo6RmxvYXRSZWN0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFZlY3RvcjxX
ZWJDb3JlOjpFbGVtZW50Q29udGV4dD4mKT4mJik7CisgICAgdm9pZCBmb2N1c1RleHRJbnB1dENv
bnRleHQoY29uc3QgV2ViQ29yZTo6RWxlbWVudENvbnRleHQmLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGJvb2wpPiYmKTsKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgV2ViQ29yZTo6
RmxvYXRTaXplIHNjcmVlblNpemUoKSBjb25zdDsKQEAgLTY3MSw3ICs2NzEsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCByZXF1ZXN0QXV0b2NvcnJlY3Rpb25Db250ZXh0KCk7CiAgICAgdm9pZCBnZXRQ
b3NpdGlvbkluZm9ybWF0aW9uKGNvbnN0IEludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0Jiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiYm
KT4mJik7CiAgICAgdm9pZCByZXF1ZXN0UG9zaXRpb25JbmZvcm1hdGlvbihjb25zdCBJbnRlcmFj
dGlvbkluZm9ybWF0aW9uUmVxdWVzdCYpOwotICAgIHZvaWQgc3RhcnRJbnRlcmFjdGlvbldpdGhF
bGVtZW50Q29udGV4dE9yUG9zaXRpb24oT3B0aW9uYWw8RWxlbWVudENvbnRleHQ+JiYsIFdlYkNv
cmU6OkludFBvaW50JiYpOworICAgIHZvaWQgc3RhcnRJbnRlcmFjdGlvbldpdGhFbGVtZW50Q29u
dGV4dE9yUG9zaXRpb24oT3B0aW9uYWw8V2ViQ29yZTo6RWxlbWVudENvbnRleHQ+JiYsIFdlYkNv
cmU6OkludFBvaW50JiYpOwogICAgIHZvaWQgc3RvcEludGVyYWN0aW9uKCk7CiAgICAgdm9pZCBw
ZXJmb3JtQWN0aW9uT25FbGVtZW50KHVpbnQzMl90IGFjdGlvbik7CiAgICAgdm9pZCBmb2N1c05l
eHRGb2N1c2VkRWxlbWVudChib29sIGlzRm9yd2FyZCwgQ2FsbGJhY2tJRCk7CkBAIC0xMTkxLDgg
KzExOTEsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGNvbmZpZ3VyZUxvZ2dpbmdDaGFubmVsKGNv
bnN0IFN0cmluZyYsIFdURkxvZ0NoYW5uZWxTdGF0ZSwgV1RGTG9nTGV2ZWwpOwogCi0gICAgV2Vi
Q29yZTo6RWxlbWVudCogZWxlbWVudEZvckNvbnRleHQoY29uc3QgRWxlbWVudENvbnRleHQmKSBj
b25zdDsKLSAgICBPcHRpb25hbDxFbGVtZW50Q29udGV4dD4gY29udGV4dEZvckVsZW1lbnQoV2Vi
Q29yZTo6RWxlbWVudCYpIGNvbnN0OworICAgIFdlYkNvcmU6OkVsZW1lbnQqIGVsZW1lbnRGb3JD
b250ZXh0KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnRDb250ZXh0JikgY29uc3Q7CisgICAgT3B0aW9u
YWw8V2ViQ29yZTo6RWxlbWVudENvbnRleHQ+IGNvbnRleHRGb3JFbGVtZW50KFdlYkNvcmU6OkVs
ZW1lbnQmKSBjb25zdDsKIAogI2lmIEVOQUJMRShBUFBMRV9QQVkpCiAgICAgV2ViUGF5bWVudENv
b3JkaW5hdG9yKiBwYXltZW50Q29vcmRpbmF0b3IoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDY3MmFmNmYzNTkz
MzEzNjBiNjMzMjIzNjIxZTQwNDdhNTViOGNhZTUuLjM4MGViMGM2M2M0MjQwODJiZmRjN2FiNGE4
YWRkNGQwMDlmNjg5MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtODYsNyArODYsNyBAQCBtZXNzYWdlcyAtPiBX
ZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsKICAgICBSZXF1ZXN0RXZhc2lvblJlY3RzQWJvdmVTZWxl
Y3Rpb24oKSAtPiAoVmVjdG9yPFdlYkNvcmU6OkZsb2F0UmVjdD4gcmVjdHMpIEFzeW5jCiAgICAg
R2V0UG9zaXRpb25JbmZvcm1hdGlvbihzdHJ1Y3QgV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0
aW9uUmVxdWVzdCByZXF1ZXN0KSAtPiAoc3RydWN0IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1h
dGlvbkF0UG9zaXRpb24gaW5mb3JtYXRpb24pIFN5bmNocm9ub3VzCiAgICAgUmVxdWVzdFBvc2l0
aW9uSW5mb3JtYXRpb24oc3RydWN0IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVl
c3QgcmVxdWVzdCkKLSAgICBTdGFydEludGVyYWN0aW9uV2l0aEVsZW1lbnRDb250ZXh0T3JQb3Np
dGlvbihPcHRpb25hbDxXZWJLaXQ6OkVsZW1lbnRDb250ZXh0PiBlbGVtZW50Q29udGV4dCwgV2Vi
Q29yZTo6SW50UG9pbnQgcG9pbnQpCisgICAgU3RhcnRJbnRlcmFjdGlvbldpdGhFbGVtZW50Q29u
dGV4dE9yUG9zaXRpb24oT3B0aW9uYWw8V2ViQ29yZTo6RWxlbWVudENvbnRleHQ+IGVsZW1lbnRD
b250ZXh0LCBXZWJDb3JlOjpJbnRQb2ludCBwb2ludCkKICAgICBTdG9wSW50ZXJhY3Rpb24oKQog
ICAgIFBlcmZvcm1BY3Rpb25PbkVsZW1lbnQodWludDMyX3QgYWN0aW9uKQogICAgIEZvY3VzTmV4
dEZvY3VzZWRFbGVtZW50KGJvb2wgaXNGb3J3YXJkLCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJh
Y2tJRCkKQEAgLTU2Nyw4ICs1NjcsOCBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5k
KGVudW06dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZQogICAgIFZv
aWNlc0RpZENoYW5nZSgpCiAjZW5kaWYKIAotICAgIFRleHRJbnB1dENvbnRleHRzSW5SZWN0KFdl
YkNvcmU6OkZsb2F0UmVjdCByZWN0KSAtPiAoVmVjdG9yPHN0cnVjdCBXZWJLaXQ6OkVsZW1lbnRD
b250ZXh0PiBjb250ZXh0cykgQXN5bmMKLSAgICBGb2N1c1RleHRJbnB1dENvbnRleHQoc3RydWN0
IFdlYktpdDo6RWxlbWVudENvbnRleHQgY29udGV4dCkgLT4gKGJvb2wgc3VjY2VzcykgQXN5bmMK
KyAgICBUZXh0SW5wdXRDb250ZXh0c0luUmVjdChXZWJDb3JlOjpGbG9hdFJlY3QgcmVjdCkgLT4g
KFZlY3RvcjxzdHJ1Y3QgV2ViQ29yZTo6RWxlbWVudENvbnRleHQ+IGNvbnRleHRzKSBBc3luYwor
ICAgIEZvY3VzVGV4dElucHV0Q29udGV4dChzdHJ1Y3QgV2ViQ29yZTo6RWxlbWVudENvbnRleHQg
Y29udGV4dCkgLT4gKGJvb2wgc3VjY2VzcykgQXN5bmMKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9M
T0FEX1NUQVRJU1RJQ1MpCiAgICAgV2FzTG9hZGVkV2l0aERhdGFUcmFuc2ZlckZyb21QcmV2YWxl
bnRSZXNvdXJjZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9pb3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lv
cy9XZWJQYWdlSU9TLm1tCmluZGV4IDkxOTU5OWMwYmI2ZWNlYzAwODBmNzI0NTFjNGFjMzhiYWU3
OGIwNmEuLjY2MjZjMjQzMTRkNWUxZTk4ODBiY2EwZjhjZjY0MjAzZWVkYWQ1NmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBA
IC0yODE1LDcgKzI4MTUsNyBAQCB2b2lkIFdlYlBhZ2U6OnJlcXVlc3RQb3NpdGlvbkluZm9ybWF0
aW9uKGNvbnN0IEludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0JiByZQogICAgIHNlbmQoTWVz
c2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkUmVjZWl2ZVBvc2l0aW9uSW5mb3JtYXRpb24ocG9zaXRp
b25JbmZvcm1hdGlvbihyZXF1ZXN0KSkpOwogfQogCi12b2lkIFdlYlBhZ2U6OnN0YXJ0SW50ZXJh
Y3Rpb25XaXRoRWxlbWVudENvbnRleHRPclBvc2l0aW9uKE9wdGlvbmFsPEVsZW1lbnRDb250ZXh0
PiYmIGVsZW1lbnRDb250ZXh0LCBXZWJDb3JlOjpJbnRQb2ludCYmIHBvaW50KQordm9pZCBXZWJQ
YWdlOjpzdGFydEludGVyYWN0aW9uV2l0aEVsZW1lbnRDb250ZXh0T3JQb3NpdGlvbihPcHRpb25h
bDxXZWJDb3JlOjpFbGVtZW50Q29udGV4dD4mJiBlbGVtZW50Q29udGV4dCwgV2ViQ29yZTo6SW50
UG9pbnQmJiBwb2ludCkKIHsKICAgICBpZiAoZWxlbWVudENvbnRleHQpIHsKICAgICAgICAgbV9p
bnRlcmFjdGlvbk5vZGUgPSBlbGVtZW50Rm9yQ29udGV4dCgqZWxlbWVudENvbnRleHQpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>