<?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>228293</bug_id>
          
          <creation_ts>2021-07-26 12:18:46 -0700</creation_ts>
          <short_desc>Enable libpas all the way (with latest improvements)</short_desc>
          <delta_ts>2021-08-02 12:19:39 -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>bmalloc</component>
          <version>Other</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>ggaren</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1779511</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2021-07-26 12:18:46 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1779512</commentid>
    <comment_count>1</comment_count>
      <attachid>434223</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2021-07-26 12:19:22 -0700</bug_when>
    <thetext>Created attachment 434223
work in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781352</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-08-02 12:19:39 -0700</bug_when>
    <thetext>&lt;rdar://problem/81423640&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434223</attachid>
            <date>2021-07-26 12:19:22 -0700</date>
            <delta_ts>2021-07-26 12:19:22 -0700</delta_ts>
            <desc>work in progress</desc>
            <filename>libpas-malloc-138.patch</filename>
            <type>text/plain</type>
            <size>1178657</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oJKHJldmlzaW9uIDI3OTk2NCkKKysrIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMzEsMTIgKzMxLDEzIEBACiAJ
CTBGMThGODRDMjVDMzQ2NzcwMDcyMUMyQSAvKiBwYWdlc2l6ZTY0a19oZWFwLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjE4Rjg0MzI1QzM0Njc3MDA3
MjFDMkEgLyogcGFnZXNpemU2NGtfaGVhcC5oICovOyB9OwogCQkwRjE4Rjg0RDI1QzM0Njc3MDA3
MjFDMkEgLyogbWluYWxpZ24zMl9oZWFwX2NvbmZpZy5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYxOEY4NDQyNUMzNDY3NzAwNzIxQzJBIC8qIG1pbmFs
aWduMzJfaGVhcF9jb25maWcuYyAqLzsgfTsKIAkJMEYxOEY4NTgyNUMzNDdGMzAwNzIxQzJBIC8q
IHBhc19zZWdyZWdhdGVkX3ZpZXdfYWxsb2NhdG9yX2lubGluZXMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMThGODU3MjVDMzQ3RjMwMDcyMUMyQSAv
KiBwYXNfc2VncmVnYXRlZF92aWV3X2FsbG9jYXRvcl9pbmxpbmVzLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMEYxQUVDRUMyNjU4MUI1RTAwMEM1
MjE4IC8qIHBhc19hbGxfbWFnYXppbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRjFBRUNFQTI2NTgxQjVFMDAwQzUyMTggLyogcGFzX2FsbF9tYWdh
emluZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owot
CQkwRjFBRUNFRDI2NTgxQjVFMDAwQzUyMTggLyogcGFzX2FsbF9tYWdhemluZXMuYyBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMUFFQ0VCMjY1ODFCNUUw
MDBDNTIxOCAvKiBwYXNfYWxsX21hZ2F6aW5lcy5jICovOyB9OwogCQkwRjFCRkQ0NzI2NjQ1QUM3
MDBDRUMyOEQgLyogcGFzX2hlYXBfY29uZmlnLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjFCRkQ0NTI2NjQ1QUM3MDBDRUMyOEQgLyogcGFzX2hlYXBf
Y29uZmlnLmMgKi87IH07CiAJCTBGMUJGRDQ4MjY2NDVBQzcwMENFQzI4RCAvKiBwYXNfYWxsX2hl
YXBfY29uZmlncy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEYxQkZENDYyNjY0NUFDNzAwQ0VDMjhEIC8qIHBhc19hbGxfaGVhcF9jb25maWdzLmggKi87
IH07CiAJCTBGMjZBN0E1MjA1NDgzMTMwMDkwQTE0MSAvKiBQZXJQcm9jZXNzLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMjZBN0E0MjA1NDgzMEQw
MDkwQTE0MSAvKiBQZXJQcm9jZXNzLmNwcCAqLzsgfTsKIAkJMEYzNzNFNTQyNjU5RUE3MDAwMzRC
QTk2IC8qIHBhc19kZWJ1Z19oZWFwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwRjM3M0U1MzI2NTlFQTcwMDAzNEJBOTYgLyogcGFzX2RlYnVnX2hlYXAu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwRjQ1
RDVBRjI2QUI3ODYwMDBDMzVEOTMgLyogcGFzX2xvY2FsX2FsbG9jYXRvcl9raW5kLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjQ1RDVBQzI2QUI3ODYw
MDBDMzVEOTMgLyogcGFzX2xvY2FsX2FsbG9jYXRvcl9raW5kLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEY0NUQ1QjAyNkFCNzg2MDAwQzM1RDkz
IC8qIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEuYyBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDVENUFEMjZBQjc4NjAwMEMzNUQ5MyAv
KiBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhLmMgKi87IH07CisJCTBGNDVENUIx
MjZBQjc4NjAwMEMzNUQ5MyAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjQ1RDVBRTI2
QUI3ODYwMDBDMzVEOTMgLyogcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNTE2Nzc0
MUZBRDY4NUMwMDgyMzZBOCAvKiBibWFsbG9jLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNTE2NzczMUZBRDY4NTIwMDgyMzZBOCAvKiBibWFsbG9j
LmNwcCAqLzsgfTsKIAkJMEY1MTZFRTUyNDU2MTg0RjAwNEUyQjhEIC8qIHBhc19pbnRlcm5hbF9j
b25maWcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
NTE2RUU0MjQ1NjE4NEYwMDRFMkI4RCAvKiBwYXNfaW50ZXJuYWxfY29uZmlnLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY1MTZFRTkyNDU2MUFF
OTAwNEUyQjhEIC8qIGlzb19oZWFwX2lubmFyZHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNTE2RUU4MjQ1NjFBRTgwMDRFMkI4RCAvKiBpc29faGVh
cF9pbm5hcmRzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKQEAgLTYzLDcgKzY0LDYgQEAKIAkJMEY1RkU3REYyNUI2MjEwRDAwMTg1OUZDIC8qIHBhc19j
b21wYWN0X2F0b21pY19iaXRmaXRfc2l6ZV9jbGFzc19wdHIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNUZFN0NBMjVCNjIxMEMwMDE4NTlGQyAvKiBw
YXNfY29tcGFjdF9hdG9taWNfYml0Zml0X3NpemVfY2xhc3NfcHRyLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY1RkU3RTAyNUI2MjEwRDAwMTg1
OUZDIC8qIHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnlfcHRyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjVGRTdDQjI1
QjYyMTBDMDAxODU5RkMgLyogcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9iaWFzaW5nX2RpcmVj
dG9yeV9wdHIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQkwRjVGRTdFMTI1QjYyMTBEMDAxODU5RkMgLyogcGFzX2NvbXBhY3RfYml0Zml0X2dsb2Jh
bF9kaXJlY3RvcnlfcHRyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRjVGRTdDQzI1QjYyMTBDMDAxODU5RkMgLyogcGFzX2NvbXBhY3RfYml0Zml0X2ds
b2JhbF9kaXJlY3RvcnlfcHRyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKLQkJMEY1RkU3RTMyNUI2MjEwRDAwMTg1OUZDIC8qIHBhc19jb21wYWN0X3N1
YnBhZ2VfbWFwX2VudHJ5X3B0ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEY1RkU3Q0UyNUI2MjEwQzAwMTg1OUZDIC8qIHBhc19jb21wYWN0X3N1YnBh
Z2VfbWFwX2VudHJ5X3B0ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTBGNUZFN0U0MjVCNjIxMEQwMDE4NTlGQyAvKiBwYXNfc2hhcmVkX2hhbmRs
ZV9vcl9wYWdlX2JvdW5kYXJ5X2lubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGNUZFN0NGMjVCNjIxMEMwMDE4NTlGQyAvKiBwYXNfc2hhcmVk
X2hhbmRsZV9vcl9wYWdlX2JvdW5kYXJ5X2lubGluZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjVGRTdFNjI1QjYyMTBEMDAxODU5RkMgLyog
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9hbmRfY29uZmlnLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjVGRTdEMTI1QjYyMTBDMDAxODU5RkMgLyogcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZV9hbmRfY29uZmlnLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY1RkU3RTcyNUI2MjEwRDAwMTg1OUZDIC8qIHBhc19jb21w
YWN0X2F0b21pY19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3NfcHRyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjVGRTdEMjI1QjYyMTBDMDAxODU5RkMg
LyogcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzc19wdHIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTI4LDcgKzEy
OCw2IEBACiAJCTBGODcwMDAyMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYmlhc2luZ19kaXJlY3Rv
cnlfa2luZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEY4N0ZGQ0MyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaWFzaW5nX2RpcmVjdG9yeV9raW5kLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY4NzAw
MDMyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfYWxsb2NhdG9yLmMgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjg3RkZDRDI1QUY4OTdDMDAwRTFB
QkYgLyogcGFzX2JpdGZpdF9hbGxvY2F0b3IuYyAqLzsgfTsKIAkJMEY4NzAwMDQyNUFGODk3QzAw
MEUxQUJGIC8qIHBhc19iYXNpY19oZWFwX2NvbmZpZ19lbnVtZXJhdG9yX2RhdGEuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGODdGRkNFMjVBRjg5N0Mw
MDBFMUFCRiAvKiBwYXNfYmFzaWNfaGVhcF9jb25maWdfZW51bWVyYXRvcl9kYXRhLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMEY4NzAwMDUyNUFG
ODk3QzAwMEUxQUJGIC8qIHBhc19hbGxfYmlhc2luZ19kaXJlY3Rvcmllcy5jIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4N0ZGQ0YyNUFGODk3QzAwMEUx
QUJGIC8qIHBhc19hbGxfYmlhc2luZ19kaXJlY3Rvcmllcy5jICovOyB9OwogCQkwRjg3MDAwNjI1
QUY4OTdDMDAwRTFBQkYgLyogcGFzX2VudW1lcmF0ZV9iaXRmaXRfaGVhcHMuYyBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGODdGRkQwMjVBRjg5N0MwMDBF
MUFCRiAvKiBwYXNfZW51bWVyYXRlX2JpdGZpdF9oZWFwcy5jICovOyB9OwogCQkwRjg3MDAwNzI1
QUY4OTdDMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9wYWdlLmMgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjg3RkZEMTI1QUY4OTdDMDAwRTFBQkYgLyogcGFz
X2JpdGZpdF9wYWdlLmMgKi87IH07CiAJCTBGODcwMDA4MjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNf
Yml0Zml0X3ZpZXdfYW5kX2luZGV4LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwRjg3RkZEMjI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2JpdGZpdF92aWV3
X2FuZF9pbmRleC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CkBAIC0xODksMTAgKzE4OCw2IEBACiAJCTBGODcwMDdEMjVBRjhBMUIwMDBFMUFCRiAvKiBw
YXNfcGFnZV9iYXNlX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEY4NzAwNjAyNUFGOEExQjAwMEUxQUJGIC8qIHBhc19wYWdlX2Jhc2VfY29u
ZmlnLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
MEY4NzAwN0UyNUFGOEExQjAwMEUxQUJGIC8qIHBhc19wYWdlX2hlYWRlcl90YWJsZS5jIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4NzAwNjEyNUFGOEEx
QjAwMEUxQUJGIC8qIHBhc19wYWdlX2hlYWRlcl90YWJsZS5jICovOyB9OwogCQkwRjg3MDA3RjI1
QUY4QTFCMDAwRTFBQkYgLyogcGFzX3BhZ2VfZ3JhbnVsZV91c2VfY291bnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGODcwMDYyMjVBRjhBMUIwMDBF
MUFCRiAvKiBwYXNfcGFnZV9ncmFudWxlX3VzZV9jb3VudC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTBGODcwMDg4MjVBRjk0NjIwMDBFMUFCRiAv
KiBwYXNfc3VicGFnZV9tYXBfZW50cnkuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGODcwMDgzMjVBRjk0NjEwMDBFMUFCRiAvKiBwYXNfc3VicGFnZV9t
YXBfZW50cnkuYyAqLzsgfTsKLQkJMEY4NzAwODkyNUFGOTQ2MjAwMEUxQUJGIC8qIHBhc19zdWJw
YWdlX21hcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEY4NzAwODQyNUFGOTQ2MTAwMEUxQUJGIC8qIHBhc19zdWJwYWdlX21hcC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTBGODcwMDhBMjVBRjk0NjIw
MDBFMUFCRiAvKiBwYXNfc3VicGFnZV9tYXAuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGODcwMDg1MjVBRjk0NjEwMDBFMUFCRiAvKiBwYXNfc3VicGFn
ZV9tYXAuYyAqLzsgfTsKLQkJMEY4NzAwOEIyNUFGOTQ2MjAwMEUxQUJGIC8qIHBhc19zdWJwYWdl
X21hcF9lbnRyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEY4NzAwODYyNUFGOTQ2MTAwMEUxQUJGIC8qIHBhc19zdWJwYWdlX21hcF9lbnRyeS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGODcwMDhD
MjVBRjk0NjIwMDBFMUFCRiAvKiBwYXNfdmVyc2lvbmVkX2ZpZWxkLmMgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjg3MDA4NzI1QUY5NDYyMDAwRTFBQkYg
LyogcGFzX3ZlcnNpb25lZF9maWVsZC5jICovOyB9OwogCQkwRjg3MDBDRjI1QjBDQjAzMDAwRTFB
QkYgLyogdGhpbmd5X2hlYXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGODcwMENBMjVCMENCMDIwMDBFMUFCRiAvKiB0aGluZ3lfaGVhcC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGODcwMEQwMjVC
MENCMDMwMDBFMUFCRiAvKiB0aGluZ3lfaGVhcF9wcmVmaXguaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGODcwMENCMjVCMENCMDIwMDBFMUFCRiAvKiB0
aGluZ3lfaGVhcF9wcmVmaXguaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwpAQCAtMjAwLDM1ICsxOTUsMjIgQEAKIAkJMEY4NzAwRDIyNUIwQ0IwMzAwMEUx
QUJGIC8qIHRoaW5neV9oZWFwX2NvbmZpZy5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMEY4NzAwQ0QyNUIwQ0IwMjAwMEUxQUJGIC8qIHRoaW5neV9oZWFw
X2NvbmZpZy5jICovOyB9OwogCQkwRjg3MDBEMzI1QjBDQjAzMDAwRTFBQkYgLyogdGhpbmd5X2hl
YXAuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGODcw
MENFMjVCMENCMDMwMDBFMUFCRiAvKiB0aGluZ3lfaGVhcC5jICovOyB9OwogCQkwRjg3RkZEODI1
QUY4OTdDMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9wYWdlX2lubGluZXMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGODdGRkExMjVBRjg5NzkwMDBFMUFC
RiAvKiBwYXNfYml0Zml0X3BhZ2VfaW5saW5lcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTBGODdGRkQ5MjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNf
Yml0Zml0X2dsb2JhbF9zaXplX2NsYXNzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRjg3RkZBMjI1QUY4OTc5MDAwRTFBQkYgLyogcGFzX2JpdGZpdF9n
bG9iYWxfc2l6ZV9jbGFzcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTBGODdGRkRBMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfY29tbWl0X3NwYW4u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGODdGRkEz
MjVBRjg5NzkwMDBFMUFCRiAvKiBwYXNfY29tbWl0X3NwYW4uaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjg3RkZEQjI1QUY4OTdDMDAwRTFBQkYg
LyogcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ192YXJpYW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjg3RkZBNDI1QUY4OTc5MDAwRTFBQkYgLyogcGFz
X2JpdGZpdF9wYWdlX2NvbmZpZ192YXJpYW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY4N0ZGREMyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19i
aXRmaXRfdmlldy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEY4N0ZGQTUyNUFGODk3OTAwMEUxQUJGIC8qIHBhc19iaXRmaXRfdmlldy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTBGODdGRkREMjVBRjg5
N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2RpcmVjdG9yeV9hbmRfaW5kZXguaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGODdGRkE2MjVBRjg5NzkwMDBF
MUFCRiAvKiBwYXNfYml0Zml0X2RpcmVjdG9yeV9hbmRfaW5kZXguaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkwRjg3RkZERTI1QUY4OTdDMDAwRTFB
QkYgLyogcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeS5jIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4N0ZGQTcyNUFGODk3QTAwMEUxQUJGIC8qIHBh
c19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkuYyAqLzsgfTsKIAkJMEY4N0ZGREYyNUFGODk3QzAw
MEUxQUJGIC8qIHBhc19jb21wYWN0X2F0b21pY19iaWFzaW5nX2RpcmVjdG9yeV9wdHIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGODdGRkE4MjVBRjg5
N0EwMDBFMUFCRiAvKiBwYXNfY29tcGFjdF9hdG9taWNfYmlhc2luZ19kaXJlY3RvcnlfcHRyLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMEY4N0ZG
RTAyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3MuYyBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGODdGRkE5MjVBRjg5
N0EwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzLmMgKi87IH07CiAJCTBG
ODdGRkUyMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYmFzaWNfaGVhcF9jb25maWdfcm9vdF9kYXRh
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjg3RkZB
QjI1QUY4OTdBMDAwRTFBQkYgLyogcGFzX2Jhc2ljX2hlYXBfY29uZmlnX3Jvb3RfZGF0YS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGODdGRkUz
MjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0X3NpemVfY2xhc3MuYyBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGODdGRkFDMjVBRjg5N0EwMDBFMUFC
RiAvKiBwYXNfYml0Zml0X3NpemVfY2xhc3MuYyAqLzsgfTsKIAkJMEY4N0ZGRTQyNUFGODk3QzAw
MEUxQUJGIC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWdfa2luZC5jIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4N0ZGQUQyNUFGODk3QTAwMEUxQUJGIC8q
IHBhc19iaXRmaXRfcGFnZV9jb25maWdfa2luZC5jICovOyB9OwogCQkwRjg3RkZFNTI1QUY4OTdD
MDAwRTFBQkYgLyogcGFzX2JpdGZpdF9hbGxvY2F0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGODdGRkFFMjVBRjg5N0EwMDBFMUFCRiAvKiBwYXNf
Yml0Zml0X2FsbG9jYXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07Ci0JCTBGODdGRkU2MjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYmlhc2luZ19kaXJl
Y3RvcnkuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
ODdGRkFGMjVBRjg5N0EwMDBFMUFCRiAvKiBwYXNfYmlhc2luZ19kaXJlY3RvcnkuYyAqLzsgfTsK
IAkJMEY4N0ZGRTcyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19lbnVtZXJhdGVfbGFyZ2VfaGVhcHMu
YyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGODdGRkIw
MjVBRjg5N0EwMDBFMUFCRiAvKiBwYXNfZW51bWVyYXRlX2xhcmdlX2hlYXBzLmMgKi87IH07Ci0J
CTBGODdGRkU4MjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYmlhc2luZ19kaXJlY3RvcnlfaW5saW5l
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4N0ZG
QjEyNUFGODk3QTAwMEUxQUJGIC8qIHBhc19iaWFzaW5nX2RpcmVjdG9yeV9pbmxpbmVzLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMEY4N0ZGRTky
NUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaWFzaW5nX2RpcmVjdG9yeS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4N0ZGQjMyNUFGODk3QTAwMEUxQUJG
IC8qIHBhc19iaWFzaW5nX2RpcmVjdG9yeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTBGODdGRkVBMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0
Zml0X3NpemVfY2xhc3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDBGODdGRkI0MjVBRjg5N0EwMDBFMUFCRiAvKiBwYXNfYml0Zml0X3NpemVfY2xhc3Mu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjg3
RkZFQjI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9wYWdlX2NvbmZpZy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4N0ZGQjUyNUFGODk3QTAw
MEUxQUJGIC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjg3RkZFQzI1QUY4OTdDMDAwRTFBQkYgLyog
cGFzX2VudW1lcmF0ZV9iaXRmaXRfaGVhcHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGODdGRkI2MjVBRjg5N0EwMDBFMUFCRiAvKiBwYXNfZW51bWVy
YXRlX2JpdGZpdF9oZWFwcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTBGODdGRkVEMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0X3BhZ2Vf
Y29uZmlnX3V0aWxzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjg3RkZCNzI1QUY4OTdCMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ191
dGlscy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0J
CTBGODdGRkVFMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYWxsb2NhdGlvbl9yZXN1bHQuYyBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGODdGRkI4MjVBRjg5
N0IwMDBFMUFCRiAvKiBwYXNfYWxsb2NhdGlvbl9yZXN1bHQuYyAqLzsgfTsKIAkJMEY4N0ZGRUYy
NUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfZGlyZWN0b3J5X2lubGluZXMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGODdGRkI5MjVBRjg5N0Iw
MDBFMUFCRiAvKiBwYXNfYml0Zml0X2RpcmVjdG9yeV9pbmxpbmVzLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMEY4N0ZGRjAyNUFGODk3QzAwMEUx
QUJGIC8qIHBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGODdGRkJBMjVBRjg5N0IwMDBFMUFCRiAvKiBw
YXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY4N0ZGRjEyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19i
aXRmaXRfYWxsb2NhdG9yX2lubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGODdGRkJCMjVBRjg5N0IwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2Fs
bG9jYXRvcl9pbmxpbmVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKLQkJMEY4N0ZGRjIyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfZ2xvYmFs
X2RpcmVjdG9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEY4N0ZGQkMyNUFGODk3QjAwMEUxQUJGIC8qIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9y
eS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBG
ODdGRkYzMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2hlYXAuYyBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGODdGRkJEMjVBRjg5N0IwMDBFMUFC
RiAvKiBwYXNfYml0Zml0X2hlYXAuYyAqLzsgfTsKLQkJMEY4N0ZGRjQyNUFGODk3QzAwMEUxQUJG
IC8qIHBhc19iaXRmaXRfZGlyZWN0b3J5X2tpbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGODdGRkJFMjVBRjg5N0IwMDBFMUFCRiAvKiBwYXNfYml0
Zml0X2RpcmVjdG9yeV9raW5kLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKLQkJMEY4N0ZGRjUyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfZ2xv
YmFsX2RpcmVjdG9yeS5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEY4N0ZGQkYyNUFGODk3QjAwMEUxQUJGIC8qIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVj
dG9yeS5jICovOyB9OwotCQkwRjg3RkZGNjI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2FsbF9iaWFz
aW5nX2RpcmVjdG9yaWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRjg3RkZDMDI1QUY4OTdCMDAwRTFBQkYgLyogcGFzX2FsbF9iaWFzaW5nX2RpcmVj
dG9yaWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJMEY4N0ZGRjcyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWdfa2lu
ZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4N0ZG
QzEyNUFGODk3QjAwMEUxQUJGIC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWdfa2luZC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGODdGRkY4MjVB
Rjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2RpcmVjdG9yeS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4N0ZGQzIyNUFGODk3QjAwMEUxQUJGIC8q
IHBhc19iaXRmaXRfZGlyZWN0b3J5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJMEY4N0ZGRjkyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19lbnVtZXJh
dGVfaW5pdGlhbGx5X3VuYWNjb3VudGVkX3BhZ2VzLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjg3RkZDMzI1QUY4OTdCMDAwRTFBQkYgLyogcGFzX2Vu
dW1lcmF0ZV9pbml0aWFsbHlfdW5hY2NvdW50ZWRfcGFnZXMuYyAqLzsgfTsKQEAgLTI1MSwyNSAr
MjMzLDExIEBACiAJCTBGOEE4MTM0MjVGODNFMjUwMDc5MEI0QSAvKiBibWFsbG9jX2hlYXAuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOEE4MTI1MjVG
ODNFMjQwMDc5MEI0QSAvKiBibWFsbG9jX2hlYXAuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjhBODEzNTI1RjgzRTI1MDA3OTBCNEEgLyogaG90
Yml0X2hlYXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGOEE4MTI2MjVGODNFMjQwMDc5MEI0QSAvKiBob3RiaXRfaGVhcC5oICovOyB9OwogCQkwRjhB
ODEzNjI1RjgzRTI1MDA3OTBCNEEgLyogYm1hbGxvY19oZWFwLmMgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjhBODEyNzI1RjgzRTI1MDA3OTBCNEEgLyog
Ym1hbGxvY19oZWFwLmMgKi87IH07Ci0JCTBGOEE4MTM3MjVGODNFMjUwMDc5MEI0QSAvKiBwYXNf
bG9jYWxfYWxsb2NhdG9yX2xpbmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGOEE4MTI4MjVGODNFMjUwMDc5MEI0QSAvKiBwYXNfbG9jYWxfYWxsb2Nh
dG9yX2xpbmUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQkwRjhBODEzODI1RjgzRTI1MDA3OTBCNEEgLyogYm1hbGxvY19oZWFwX2NvbmZpZy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4QTgxMjkyNUY4
M0UyNTAwNzkwQjRBIC8qIGJtYWxsb2NfaGVhcF9jb25maWcuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkwRjhFNzg2MDI0Nzg3Mzk1MDBFMTI0QTYg
LyogcGFzX21hZ2F6aW5lLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRjhFNzg0QjI0Nzg3Mzk0MDBFMTI0QTYgLyogcGFzX21hZ2F6aW5lLmMgKi87IH07
CiAJCTBGOEU3ODYxMjQ3ODczOTUwMEUxMjRBNiAvKiBwYXNfY29tcGFjdF9hdG9taWNfcGFnZV9z
aGFyaW5nX3Bvb2xfcHRyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRjhFNzg0QzI0Nzg3Mzk0MDBFMTI0QTYgLyogcGFzX2NvbXBhY3RfYXRvbWljX3Bh
Z2Vfc2hhcmluZ19wb29sX3B0ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTBGOEU3ODYyMjQ3ODczOTUwMEUxMjRBNiAvKiBwYXNfaGVhcF9jb25m
aWdfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEY4RTc4NEQyNDc4NzM5NDAwRTEyNEE2IC8qIHBhc19oZWFwX2NvbmZpZ19pbmxpbmVzLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY4RTc4
NjMyNDc4NzM5NTAwRTEyNEE2IC8qIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2V4Y2x1
c2l2ZV92aWV3X3B0ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEY4RTc4NEUyNDc4NzM5NDAwRTEyNEE2IC8qIHBhc19jb21wYWN0X2F0b21pY19zZWdy
ZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X3B0ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07Ci0JCTBGOEU3ODY0MjQ3ODczOTUwMEUxMjRBNiAvKiBwYXNfY29t
cGFjdF9hdG9taWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjhFNzg0RjI0Nzg3Mzk0
MDBFMTI0QTYgLyogcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGly
ZWN0b3J5X3B0ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07Ci0JCTBGOEU3ODY2MjQ3ODczOTUwMEUxMjRBNiAvKiBwYXNfbWFnYXppbmUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOEU3ODUxMjQ3ODczOTQw
MEUxMjRBNiAvKiBwYXNfbWFnYXppbmUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwotCQkwRjhFNzg2NzI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX3NlZ3Jl
Z2F0ZWRfYmlhc2luZ192aWV3LmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjhFNzg1MjI0Nzg3Mzk0MDBFMTI0QTYgLyogcGFzX3NlZ3JlZ2F0ZWRfYmlh
c2luZ192aWV3LmMgKi87IH07Ci0JCTBGOEU3ODY5MjQ3ODczOTUwMEUxMjRBNiAvKiBwYXNfc2Vn
cmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lcnNoaXBfa2luZC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4RTc4NTQyNDc4NzM5NTAwRTEyNEE2IC8q
IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5kLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMEY4RTc4NkEyNDc4NzM5
NTAwRTEyNEE2IC8qIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeS5jIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4RTc4NTUyNDc4NzM5
NTAwRTEyNEE2IC8qIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeS5jICovOyB9
OwotCQkwRjhFNzg2QjI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9n
bG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRjhFNzg1NjI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX2NvbXBhY3Rf
c2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMEY4RTc4NkMyNDc4NzM5NTAwRTEyNEE2
IC8qIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjhFNzg1NzI0Nzg3Mzk1MDBFMTI0QTYgLyog
cGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjhFNzg2RDI0Nzg3Mzk1MDBFMTI0QTYgLyog
cGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeV9wdHIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOEU3ODU4MjQ3ODczOTUwMEUx
MjRBNiAvKiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5X3B0ci5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTBGOEU3ODZF
MjQ3ODczOTUwMEUxMjRBNiAvKiBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOEU3ODU5MjQ3ODczOTUw
MEUxMjRBNiAvKiBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkwRjhFNzg3MDI0Nzg3Mzk1MDBFMTI0
QTYgLyogcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2lubGluZXMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOEU3ODVCMjQ3ODcz
OTUwMEUxMjRBNiAvKiBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfaW5saW5l
cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTBG
OEU3ODcxMjQ3ODczOTUwMEUxMjRBNiAvKiBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9y
eS5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4RTc4
NUMyNDc4NzM5NTAwRTEyNEE2IC8qIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5LmMg
Ki87IH07Ci0JCTBGOEU3ODcyMjQ3ODczOTUwMEUxMjRBNiAvKiBwYXNfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGOEU3ODVEMjQ3ODczOTUwMEUxMjRBNiAvKiBwYXNfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwotCQkwRjhFNzg3MzI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX3NlZ3JlZ2F0ZWRf
dmlld19pbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjhFNzg1RTI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX3NlZ3JlZ2F0ZWRfdmlld19pbmxp
bmVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
MEY4RTgzMkMyNDkyRUFGMzAwNDZEN0Y4IC8qIHBhc19kZXNpZ25hdGVkX2ludHJpbnNpY19oZWFw
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjhFODMy
NDI0OTJFQUYzMDA0NkQ3RjggLyogcGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXAuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjhFODMyRDI0
OTJFQUYzMDA0NkQ3RjggLyogcGFzX2NvbXBhY3RfYXRvbWljX3RocmVhZF9sb2NhbF9jYWNoZV9s
YXlvdXRfbm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEY4RTgzMjUyNDkyRUFGMzAwNDZEN0Y4IC8qIHBhc19jb21wYWN0X2F0b21pY190aHJlYWRf
bG9jYWxfY2FjaGVfbGF5b3V0X25vZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQkwRjhFODMyRTI0OTJFQUYzMDA0NkQ3RjggLyogcGFzX2Rlc2ln
bmF0ZWRfaW50cmluc2ljX2hlYXAuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGOEU4MzI2MjQ5MkVBRjMwMDQ2RDdGOCAvKiBwYXNfZGVzaWduYXRlZF9p
bnRyaW5zaWNfaGVhcC5jICovOyB9OwpAQCAtNTIyLDcgKzQ5MCw2IEBACiAJCTBGQzQwQjhEMjQ1
MTQ5OTQwMDg3NkRBMCAvKiBwYXNfc2ltcGxlX2xhcmdlX2ZyZWVfaGVhcC5jIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZDNDBBQjIyNDUxNDk4RjAwODc2
REEwIC8qIHBhc19zaW1wbGVfbGFyZ2VfZnJlZV9oZWFwLmMgKi87IH07CiAJCTBGQzQwQjhGMjQ1
MTQ5OTQwMDg3NkRBMCAvKiBwYXNfZm91bmRfaW5kZXguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQzQwQUI0MjQ1MTQ5OEYwMDg3NkRBMCAvKiBwYXNf
Zm91bmRfaW5kZXguaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQkwRkM0MEI5MDI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX2hlYXBfcmVmX2tpbmQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQzQwQUI1MjQ1
MTQ5OEYwMDg3NkRBMCAvKiBwYXNfaGVhcF9yZWZfa2luZC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTBGQzQwQjkyMjQ1MTQ5OTQwMDg3NkRBMCAv
KiBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkM0MEFCNzI0NTE0OThGMDA4NzZEQTAgLyogcGFz
X2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGQzQwQjkzMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNf
bG9jYWxfYWxsb2NhdG9yX3JlZmlsbF9tb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRkM0MEFCODI0NTE0OThGMDA4NzZEQTAgLyogcGFzX2xvY2Fs
X2FsbG9jYXRvcl9yZWZpbGxfbW9kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTBGQzQwQjk0MjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfc3RyZWFt
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkM0MEFC
OTI0NTE0OThGMDA4NzZEQTAgLyogcGFzX3N0cmVhbS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGQzQwQjk1MjQ1MTQ5OTQwMDg3NkRBMCAvKiBw
YXNfaGVhcF9wYWdlX3Byb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwRkM0MEFCQTI0NTE0OThGMDA4NzZEQTAgLyogcGFzX2hlYXBfcGFnZV9w
cm92aWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CkBAIC01OTEsOSArNTU4LDIxIEBACiAJCTBGQ0ExRDY5MjQ1NEU2NDUwMEE3OUEyNiAvKiBJc29I
ZWFwLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
Q0ExRDY2MjQ1NEU2NDUwMEE3OUEyNiAvKiBJc29IZWFwLmNwcCAqLzsgfTsKIAkJMEZDQTFENkEy
NDU0RTY0NTAwQTc5QTI2IC8qIElzb01hbGxvY0ZhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQ0ExRDY3MjQ1NEU2NDUwMEE3OUEyNiAv
KiBJc29NYWxsb2NGYWxsYmFjay5jcHAgKi87IH07CiAJCTBGQ0ExRDZCMjQ1NEU2NDUwMEE3OUEy
NiAvKiBJc29NYWxsb2NGYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEZDQTFENjgyNDU0RTY0NTAwQTc5QTI2IC8qIElzb01hbGxvY0ZhbGxi
YWNrLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
MEZDQkQwMzYyNkFERjk3NDAwRDI2RDY4IC8qIHBhc19wYWdlX3NoYXJpbmdfcG9vbF9zY2F2ZW5n
ZV9yZXN1bHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGQ0JEMDM1MjZBREY5NzQwMEQyNkQ2OCAvKiBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfc2NhdmVu
Z2VfcmVzdWx0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJMEZDQ0QxNDQyNjU2MDE4NjAwMTcxQTFGIC8qIHBhc19zaGFyZWRfcGFnZV9kaXJlY3Rv
cnlfYnlfc2l6ZS5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEZDQ0QxNDIyNjU2MDE4NjAwMTcxQTFGIC8qIHBhc19zaGFyZWRfcGFnZV9kaXJlY3Rvcnlf
Ynlfc2l6ZS5jICovOyB9OwogCQkwRkNDRDE0NTI2NTYwMTg2MDAxNzFBMUYgLyogcGFzX3NoYXJl
ZF9wYWdlX2RpcmVjdG9yeV9ieV9zaXplLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRkNDRDE0MzI2NTYwMTg2MDAxNzFBMUYgLyogcGFzX3NoYXJlZF9w
YWdlX2RpcmVjdG9yeV9ieV9zaXplLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJMEZENTU3MzMxRjdFREI3QjAwQjFGMEEzIC8qIEhlYXBLaW5kLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRDU1NzMy
MUY3RURCN0IwMEIxRjBBMyAvKiBIZWFwS2luZC5jcHAgKi87IH07CisJCTBGRkYyNEMyMjZBMEVG
Q0EwMDYwMzQ0RCAvKiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0ci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZGRjI0Qjcy
NkEwRUZDQTAwNjAzNDREIC8qIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlf
cHRyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
MEZGRjI0QzMyNkEwRUZDQTAwNjAzNDREIC8qIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0
X25vZGVfa2luZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEZGRjI0QjgyNkEwRUZDQTAwNjAzNDREIC8qIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5
b3V0X25vZGVfa2luZC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CisJCTBGRkYyNEM0MjZBMEVGQ0EwMDYwMzQ0RCAvKiBwYXNfaGVhcF9ydW50aW1lX2Nv
bmZpZy5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZG
RjI0QjkyNkEwRUZDQTAwNjAzNDREIC8qIHBhc19oZWFwX3J1bnRpbWVfY29uZmlnLmMgKi87IH07
CisJCTBGRkYyNEM1MjZBMEVGQ0EwMDYwMzQ0RCAvKiBwYXNfbG9jYWxfdmlld19jYWNoZS5jIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZGRjI0QkEyNkEw
RUZDQTAwNjAzNDREIC8qIHBhc19sb2NhbF92aWV3X2NhY2hlLmMgKi87IH07CisJCTBGRkYyNEM2
MjZBMEVGQ0EwMDYwMzQ0RCAvKiBwYXNfbG9jYWxfdmlld19jYWNoZV9ub2RlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkZGMjRCQjI2QTBFRkNBMDA2
MDM0NEQgLyogcGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZS5oICovOyB9OworCQkwRkZGMjRDNzI2
QTBFRkNBMDA2MDM0NEQgLyogcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19w
dHIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRkYy
NEJDMjZBMEVGQ0EwMDYwMzQ0RCAvKiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92
aWV3X3B0ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CisJCTBGRkYyNEM4MjZBMEVGQ0EwMDYwMzQ0RCAvKiBwYXNfc2VncmVnYXRlZF9kZWFsbG9jYXRp
b25fbW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEZGRjI0QkQyNkEwRUZDQTAwNjAzNDREIC8qIHBhc19zZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl9t
b2RlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
MEZGRjI0QzkyNkEwRUZDQTAwNjAzNDREIC8qIHBhc19sb2NhbF92aWV3X2NhY2hlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkZGMjRCRTI2QTBFRkNB
MDA2MDM0NEQgLyogcGFzX2xvY2FsX3ZpZXdfY2FjaGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwRkZGMjRDQTI2QTBFRkNBMDA2MDM0NEQgLyog
cGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkZGMjRCRjI2QTBFRkNB
MDA2MDM0NEQgLyogcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlf
cHRyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
MEZGRjI0Q0IyNkEwRUZDQTAwNjAzNDREIC8qIHBhc19sb2NhbF92aWV3X2NhY2hlX25vZGUuYyBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRkYyNEMwMjZB
MEVGQ0EwMDYwMzQ0RCAvKiBwYXNfbG9jYWxfdmlld19jYWNoZV9ub2RlLmMgKi87IH07CisJCTBG
RkYyNENDMjZBMEVGQ0EwMDYwMzQ0RCAvKiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9j
cmVhdGlvbl9tb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRkZGMjRDMTI2QTBFRkNBMDA2MDM0NEQgLyogcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnlfY3JlYXRpb25fbW9kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTE0MDAyNzQ5MThGODlDMTMwMDExNUM5NyAvKiBIZWFwLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNERBMzIwQzE4ODc1QjA5
MDA3MjY5RTAgLyogSGVhcC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTE0MEZBMDAzMTlDRTQyOUMwMEZGRDNDOCAvKiBCdW1wUmFuZ2UuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0MEZBMDAyMTlDRTQy
OUMwMEZGRDNDOCAvKiBCdW1wUmFuZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQkxNDBGQTAwNTE5Q0U0QjY4MDBGRkQzQzggLyogTGluZU1ldGFk
YXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDBG
QTAwNDE5Q0U0QjY4MDBGRkQzQzggLyogTGluZU1ldGFkYXRhLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTY5OSwxMiArNjc4LDEzIEBACiAJCTBG
MThGODQzMjVDMzQ2NzcwMDcyMUMyQSAvKiBwYWdlc2l6ZTY0a19oZWFwLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhZ2VzaXplNjRrX2hlYXAuaDsgcGF0aCA9IGxpYnBhcy9z
cmMvbGlicGFzL3BhZ2VzaXplNjRrX2hlYXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMEYxOEY4NDQyNUMzNDY3NzAwNzIxQzJBIC8qIG1pbmFsaWduMzJfaGVhcF9jb25maWcuYyAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gbWluYWxpZ24zMl9oZWFwX2NvbmZpZy5j
OyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvbWluYWxpZ24zMl9oZWFwX2NvbmZpZy5jOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjE4Rjg1NzI1QzM0N0YzMDA3MjFDMkEgLyogcGFz
X3NlZ3JlZ2F0ZWRfdmlld19hbGxvY2F0b3JfaW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBwYXNfc2VncmVnYXRlZF92aWV3X2FsbG9jYXRvcl9pbmxpbmVzLmg7IHBh
dGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF92aWV3X2FsbG9jYXRvcl9pbmxp
bmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGMUFFQ0VBMjY1ODFCNUUwMDBD
NTIxOCAvKiBwYXNfYWxsX21hZ2F6aW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBwYXNfYWxsX21hZ2F6aW5lcy5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2Fs
bF9tYWdhemluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEYxQUVDRUIyNjU4
MUI1RTAwMEM1MjE4IC8qIHBhc19hbGxfbWFnYXppbmVzLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuYzsgbmFtZSA9IHBhc19hbGxfbWFnYXppbmVzLmM7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBh
cy9wYXNfYWxsX21hZ2F6aW5lcy5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjFC
RkQ0NTI2NjQ1QUM3MDBDRUMyOEQgLyogcGFzX2hlYXBfY29uZmlnLmMgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuYzsgbmFtZSA9IHBhc19oZWFwX2NvbmZpZy5jOyBwYXRoID0gbGlicGFzL3NyYy9s
aWJwYXMvcGFzX2hlYXBfY29uZmlnLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBG
MUJGRDQ2MjY2NDVBQzcwMENFQzI4RCAvKiBwYXNfYWxsX2hlYXBfY29uZmlncy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfYWxsX2hlYXBfY29uZmlncy5oOyBwYXRoID0g
bGlicGFzL3NyYy9saWJwYXMvcGFzX2FsbF9oZWFwX2NvbmZpZ3MuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMEYyNkE3QTQyMDU0ODMwRDAwOTBBMTQxIC8qIFBlclByb2Nlc3MuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gUGVyUHJvY2Vzcy5jcHA7IHBh
dGggPSBibWFsbG9jL1BlclByb2Nlc3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwRjM3M0U1MzI2NTlFQTcwMDAzNEJBOTYgLyogcGFzX2RlYnVnX2hlYXAuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2RlYnVnX2hlYXAuaDsgcGF0aCA9IGxpYnBhcy9z
cmMvbGlicGFzL3Bhc19kZWJ1Z19oZWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTBGNDVENUFDMjZBQjc4NjAwMEMzNUQ5MyAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX2tpbmQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2xvY2FsX2FsbG9jYXRvcl9raW5k
Lmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9yX2tpbmQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY0NUQ1QUQyNkFCNzg2MDAwQzM1RDkzIC8q
IHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEuYyAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5jOyBuYW1lID0gcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YS5jOyBwYXRo
ID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YS5j
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjQ1RDVBRTI2QUI3ODYwMDBDMzVEOTMg
LyogcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhLmg7IHBh
dGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRh
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNTE2NzczMUZBRDY4NTIwMDgyMzZB
OCAvKiBibWFsbG9jLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IGJt
YWxsb2MuY3BwOyBwYXRoID0gYm1hbGxvYy9ibWFsbG9jLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMEY1MTZFRTQyNDU2MTg0RjAwNEUyQjhEIC8qIHBhc19pbnRlcm5hbF9jb25m
aWcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2ludGVybmFsX2NvbmZp
Zy5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2ludGVybmFsX2NvbmZpZy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjUxNkVFODI0NTYxQUU4MDA0RTJCOEQgLyogaXNv
X2hlYXBfaW5uYXJkcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBpc29faGVh
cF9pbm5hcmRzLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9pc29faGVhcF9pbm5hcmRzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03MzAsNyArNzEwLDYgQEAKIAkJMEY1RkU3
Q0EyNUI2MjEwQzAwMTg1OUZDIC8qIHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfc2l6ZV9jbGFz
c19wdHIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2NvbXBhY3RfYXRv
bWljX2JpdGZpdF9zaXplX2NsYXNzX3B0ci5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFz
X2NvbXBhY3RfYXRvbWljX2JpdGZpdF9zaXplX2NsYXNzX3B0ci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwRjVGRTdDQjI1QjYyMTBDMDAxODU5RkMgLyogcGFzX2NvbXBhY3RfYXRv
bWljX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeV9wdHIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeV9w
dHIuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21wYWN0X2F0b21pY19iaXRmaXRf
Ymlhc2luZ19kaXJlY3RvcnlfcHRyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBG
NUZFN0NDMjVCNjIxMEMwMDE4NTlGQyAvKiBwYXNfY29tcGFjdF9iaXRmaXRfZ2xvYmFsX2RpcmVj
dG9yeV9wdHIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2NvbXBhY3Rf
Yml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfcHRyLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9w
YXNfY29tcGFjdF9iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9wdHIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJMEY1RkU3Q0UyNUI2MjEwQzAwMTg1OUZDIC8qIHBhc19jb21wYWN0X3N1
YnBhZ2VfbWFwX2VudHJ5X3B0ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBw
YXNfY29tcGFjdF9zdWJwYWdlX21hcF9lbnRyeV9wdHIuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGli
cGFzL3Bhc19jb21wYWN0X3N1YnBhZ2VfbWFwX2VudHJ5X3B0ci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwRjVGRTdDRjI1QjYyMTBDMDAxODU5RkMgLyogcGFzX3NoYXJlZF9oYW5k
bGVfb3JfcGFnZV9ib3VuZGFyeV9pbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IHBhc19zaGFyZWRfaGFuZGxlX29yX3BhZ2VfYm91bmRhcnlfaW5saW5lcy5oOyBwYXRo
ID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX3NoYXJlZF9oYW5kbGVfb3JfcGFnZV9ib3VuZGFyeV9p
bmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNUZFN0QxMjVCNjIxMEMw
MDE4NTlGQyAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2FuZF9jb25maWcuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9hbmRfY29uZmlnLmg7IHBh
dGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlX2FuZF9jb25maWcuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY1RkU3RDIyNUI2MjEwQzAwMTg1OUZDIC8q
IHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3NfcHRyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfZ2xv
YmFsX3NpemVfY2xhc3NfcHRyLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tcGFj
dF9hdG9taWNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzX3B0ci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtODQzLDEwICs4MjIsNiBAQAogCQkwRjg3MDA2MDI1QUY4QTFCMDAwRTFB
QkYgLyogcGFzX3BhZ2VfYmFzZV9jb25maWcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gcGFzX3BhZ2VfYmFzZV9jb25maWcuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bh
c19wYWdlX2Jhc2VfY29uZmlnLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGODcw
MDYxMjVBRjhBMUIwMDBFMUFCRiAvKiBwYXNfcGFnZV9oZWFkZXJfdGFibGUuYyAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gcGFzX3BhZ2VfaGVhZGVyX3RhYmxlLmM7IHBhdGggPSBs
aWJwYXMvc3JjL2xpYnBhcy9wYXNfcGFnZV9oZWFkZXJfdGFibGUuYzsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMEY4NzAwNjIyNUFGOEExQjAwMEUxQUJGIC8qIHBhc19wYWdlX2dyYW51
bGVfdXNlX2NvdW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19wYWdl
X2dyYW51bGVfdXNlX2NvdW50Lmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfcGFnZV9n
cmFudWxlX3VzZV9jb3VudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjg3MDA4
MzI1QUY5NDYxMDAwRTFBQkYgLyogcGFzX3N1YnBhZ2VfbWFwX2VudHJ5LmMgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuYzsgbmFtZSA9IHBhc19zdWJwYWdlX21hcF9lbnRyeS5jOyBwYXRoID0gbGli
cGFzL3NyYy9saWJwYXMvcGFzX3N1YnBhZ2VfbWFwX2VudHJ5LmM7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTBGODcwMDg0MjVBRjk0NjEwMDBFMUFCRiAvKiBwYXNfc3VicGFnZV9tYXAu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX3N1YnBhZ2VfbWFwLmg7IHBh
dGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc3VicGFnZV9tYXAuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJMEY4NzAwODUyNUFGOTQ2MTAwMEUxQUJGIC8qIHBhc19zdWJwYWdlX21h
cC5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IG5hbWUgPSBwYXNfc3VicGFnZV9tYXAuYzsg
cGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zdWJwYWdlX21hcC5jOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQkwRjg3MDA4NjI1QUY5NDYxMDAwRTFBQkYgLyogcGFzX3N1YnBhZ2Vf
bWFwX2VudHJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19zdWJwYWdl
X21hcF9lbnRyeS5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX3N1YnBhZ2VfbWFwX2Vu
dHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGODcwMDg3MjVBRjk0NjIwMDBF
MUFCRiAvKiBwYXNfdmVyc2lvbmVkX2ZpZWxkLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsg
bmFtZSA9IHBhc192ZXJzaW9uZWRfZmllbGQuYzsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bh
c192ZXJzaW9uZWRfZmllbGQuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY4NzAw
Q0EyNUIwQ0IwMjAwMEUxQUJGIC8qIHRoaW5neV9oZWFwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IHRoaW5neV9oZWFwLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy90aGlu
Z3lfaGVhcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjg3MDBDQjI1QjBDQjAy
MDAwRTFBQkYgLyogdGhpbmd5X2hlYXBfcHJlZml4LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IHRoaW5neV9oZWFwX3ByZWZpeC5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMv
dGhpbmd5X2hlYXBfcHJlZml4Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04NTQs
MzYgKzgyOSwyMyBAQAogCQkwRjg3MDBDRDI1QjBDQjAyMDAwRTFBQkYgLyogdGhpbmd5X2hlYXBf
Y29uZmlnLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgbmFtZSA9IHRoaW5neV9oZWFwX2Nv
bmZpZy5jOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvdGhpbmd5X2hlYXBfY29uZmlnLmM7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGODcwMENFMjVCMENCMDMwMDBFMUFCRiAvKiB0
aGluZ3lfaGVhcC5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IG5hbWUgPSB0aGluZ3lfaGVh
cC5jOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvdGhpbmd5X2hlYXAuYzsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMEY4N0ZGQTEyNUFGODk3OTAwMEUxQUJGIC8qIHBhc19iaXRmaXRf
cGFnZV9pbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19iaXRm
aXRfcGFnZV9pbmxpbmVzLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X3Bh
Z2VfaW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjg3RkZBMjI1QUY4
OTc5MDAwRTFBQkYgLyogcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzLmg7IHBh
dGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGODdGRkEzMjVBRjg5NzkwMDBFMUFCRiAvKiBw
YXNfY29tbWl0X3NwYW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2Nv
bW1pdF9zcGFuLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tbWl0X3NwYW4uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY4N0ZGQTQyNUFGODk3OTAwMEUxQUJGIC8q
IHBhc19iaXRmaXRfcGFnZV9jb25maWdfdmFyaWFudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX3ZhcmlhbnQuaDsgcGF0aCA9IGxpYnBh
cy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfcGFnZV9jb25maWdfdmFyaWFudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkwRjg3RkZBNTI1QUY4OTc5MDAwRTFBQkYgLyogcGFzX2JpdGZp
dF92aWV3LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19iaXRmaXRfdmll
dy5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF92aWV3Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGODdGRkE2MjVBRjg5NzkwMDBFMUFCRiAvKiBwYXNfYml0
Zml0X2RpcmVjdG9yeV9hbmRfaW5kZXguaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gcGFzX2JpdGZpdF9kaXJlY3RvcnlfYW5kX2luZGV4Lmg7IHBhdGggPSBsaWJwYXMvc3JjL2xp
YnBhcy9wYXNfYml0Zml0X2RpcmVjdG9yeV9hbmRfaW5kZXguaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJMEY4N0ZGQTcyNUFGODk3QTAwMEUxQUJGIC8qIHBhc19iaXRmaXRfYmlhc2lu
Z19kaXJlY3RvcnkuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gcGFzX2JpdGZp
dF9iaWFzaW5nX2RpcmVjdG9yeS5jOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZp
dF9iaWFzaW5nX2RpcmVjdG9yeS5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjg3
RkZBODI1QUY4OTdBMDAwRTFBQkYgLyogcGFzX2NvbXBhY3RfYXRvbWljX2JpYXNpbmdfZGlyZWN0
b3J5X3B0ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfY29tcGFjdF9h
dG9taWNfYmlhc2luZ19kaXJlY3RvcnlfcHRyLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9w
YXNfY29tcGFjdF9hdG9taWNfYmlhc2luZ19kaXJlY3RvcnlfcHRyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTBGODdGRkE5MjVBRjg5N0EwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2ds
b2JhbF9zaXplX2NsYXNzLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgbmFtZSA9IHBhc19i
aXRmaXRfZ2xvYmFsX3NpemVfY2xhc3MuYzsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19i
aXRmaXRfZ2xvYmFsX3NpemVfY2xhc3MuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MEY4N0ZGQUIyNUFGODk3QTAwMEUxQUJGIC8qIHBhc19iYXNpY19oZWFwX2NvbmZpZ19yb290X2Rh
dGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2Jhc2ljX2hlYXBfY29u
ZmlnX3Jvb3RfZGF0YS5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2Jhc2ljX2hlYXBf
Y29uZmlnX3Jvb3RfZGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjg3RkZB
QzI1QUY4OTdBMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9zaXplX2NsYXNzLmMgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuYzsgbmFtZSA9IHBhc19iaXRmaXRfc2l6ZV9jbGFzcy5jOyBwYXRoID0gbGli
cGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9zaXplX2NsYXNzLmM7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTBGODdGRkFEMjVBRjg5N0EwMDBFMUFCRiAvKiBwYXNfYml0Zml0X3BhZ2Vf
Y29uZmlnX2tpbmQuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gcGFzX2JpdGZp
dF9wYWdlX2NvbmZpZ19raW5kLmM7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0
X3BhZ2VfY29uZmlnX2tpbmQuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY4N0ZG
QUUyNUFGODk3QTAwMEUxQUJGIC8qIHBhc19iaXRmaXRfYWxsb2NhdG9yLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19iaXRmaXRfYWxsb2NhdG9yLmg7IHBhdGggPSBsaWJw
YXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2FsbG9jYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQkwRjg3RkZBRjI1QUY4OTdBMDAwRTFBQkYgLyogcGFzX2JpYXNpbmdfZGlyZWN0
b3J5LmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgbmFtZSA9IHBhc19iaWFzaW5nX2RpcmVj
dG9yeS5jOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpYXNpbmdfZGlyZWN0b3J5LmM7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGODdGRkIwMjVBRjg5N0EwMDBFMUFCRiAv
KiBwYXNfZW51bWVyYXRlX2xhcmdlX2hlYXBzLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsg
bmFtZSA9IHBhc19lbnVtZXJhdGVfbGFyZ2VfaGVhcHMuYzsgcGF0aCA9IGxpYnBhcy9zcmMvbGli
cGFzL3Bhc19lbnVtZXJhdGVfbGFyZ2VfaGVhcHMuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJMEY4N0ZGQjEyNUFGODk3QTAwMEUxQUJGIC8qIHBhc19iaWFzaW5nX2RpcmVjdG9yeV9p
bmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19iaWFzaW5nX2Rp
cmVjdG9yeV9pbmxpbmVzLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYmlhc2luZ19k
aXJlY3RvcnlfaW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjg3RkZC
MjI1QUY4OTdBMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19raW5kLmRlZiAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IGZpbGVFbmNvZGluZyA9IDQ7IG5hbWUgPSBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmQu
ZGVmOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19raW5k
LmRlZjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEY4N0ZGQjMyNUFGODk3QTAwMEUx
QUJGIC8qIHBhc19iaWFzaW5nX2RpcmVjdG9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBwYXNfYmlhc2luZ19kaXJlY3RvcnkuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFz
L3Bhc19iaWFzaW5nX2RpcmVjdG9yeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
Rjg3RkZCNDI1QUY4OTdBMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9zaXplX2NsYXNzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19iaXRmaXRfc2l6ZV9jbGFzcy5oOyBwYXRo
ID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9zaXplX2NsYXNzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTBGODdGRkI1MjVBRjg5N0EwMDBFMUFCRiAvKiBwYXNfYml0Zml0
X3BhZ2VfY29uZmlnLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19iaXRm
aXRfcGFnZV9jb25maWcuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfcGFn
ZV9jb25maWcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY4N0ZGQjYyNUFGODk3
QTAwMEUxQUJGIC8qIHBhc19lbnVtZXJhdGVfYml0Zml0X2hlYXBzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19lbnVtZXJhdGVfYml0Zml0X2hlYXBzLmg7IHBhdGggPSBs
aWJwYXMvc3JjL2xpYnBhcy9wYXNfZW51bWVyYXRlX2JpdGZpdF9oZWFwcy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkwRjg3RkZCNzI1QUY4OTdCMDAwRTFBQkYgLyogcGFzX2JpdGZp
dF9wYWdlX2NvbmZpZ191dGlscy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBw
YXNfYml0Zml0X3BhZ2VfY29uZmlnX3V0aWxzLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9w
YXNfYml0Zml0X3BhZ2VfY29uZmlnX3V0aWxzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTBGODdGRkI4MjVBRjg5N0IwMDBFMUFCRiAvKiBwYXNfYWxsb2NhdGlvbl9yZXN1bHQuYyAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gcGFzX2FsbG9jYXRpb25fcmVzdWx0LmM7
IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYWxsb2NhdGlvbl9yZXN1bHQuYzsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY4N0ZGQjkyNUFGODk3QjAwMEUxQUJGIC8qIHBhc19i
aXRmaXRfZGlyZWN0b3J5X2lubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gcGFzX2JpdGZpdF9kaXJlY3RvcnlfaW5saW5lcy5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJw
YXMvcGFzX2JpdGZpdF9kaXJlY3RvcnlfaW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQkwRjg3RkZCQTI1QUY4OTdCMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9iaWFzaW5nX2Rp
cmVjdG9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfYml0Zml0X2Jp
YXNpbmdfZGlyZWN0b3J5Lmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2Jp
YXNpbmdfZGlyZWN0b3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGODdGRkJC
MjVBRjg5N0IwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2FsbG9jYXRvcl9pbmxpbmVzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19iaXRmaXRfYWxsb2NhdG9yX2lubGluZXMu
aDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfYWxsb2NhdG9yX2lubGluZXMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEY4N0ZGQkMyNUFGODk3QjAwMEUxQUJG
IC8qIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkuaDsgcGF0aCA9IGxpYnBhcy9z
cmMvbGlicGFzL3Bhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwRjg3RkZCRDI1QUY4OTdCMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9oZWFw
LmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgbmFtZSA9IHBhc19iaXRmaXRfaGVhcC5jOyBw
YXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9oZWFwLmM7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTBGODdGRkJFMjVBRjg5N0IwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2Rp
cmVjdG9yeV9raW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19iaXRm
aXRfZGlyZWN0b3J5X2tpbmQuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRf
ZGlyZWN0b3J5X2tpbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEY4N0ZGQkYy
NUFGODk3QjAwMEUxQUJGIC8qIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeS5jICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmM7IG5hbWUgPSBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkuYzsg
cGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeS5jOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjg3RkZDMDI1QUY4OTdCMDAwRTFBQkYgLyog
cGFzX2FsbF9iaWFzaW5nX2RpcmVjdG9yaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IHBhc19hbGxfYmlhc2luZ19kaXJlY3Rvcmllcy5oOyBwYXRoID0gbGlicGFzL3NyYy9s
aWJwYXMvcGFzX2FsbF9iaWFzaW5nX2RpcmVjdG9yaWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTBGODdGRkMxMjVBRjg5N0IwMDBFMUFCRiAvKiBwYXNfYml0Zml0X3BhZ2VfY29u
ZmlnX2tpbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2JpdGZpdF9w
YWdlX2NvbmZpZ19raW5kLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X3Bh
Z2VfY29uZmlnX2tpbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY4N0ZGQzIy
NUFGODk3QjAwMEUxQUJGIC8qIHBhc19iaXRmaXRfZGlyZWN0b3J5LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19iaXRmaXRfZGlyZWN0b3J5Lmg7IHBhdGggPSBsaWJwYXMv
c3JjL2xpYnBhcy9wYXNfYml0Zml0X2RpcmVjdG9yeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwRjg3RkZDMzI1QUY4OTdCMDAwRTFBQkYgLyogcGFzX2VudW1lcmF0ZV9pbml0aWFs
bHlfdW5hY2NvdW50ZWRfcGFnZXMuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0g
cGFzX2VudW1lcmF0ZV9pbml0aWFsbHlfdW5hY2NvdW50ZWRfcGFnZXMuYzsgcGF0aCA9IGxpYnBh
cy9zcmMvbGlicGFzL3Bhc19lbnVtZXJhdGVfaW5pdGlhbGx5X3VuYWNjb3VudGVkX3BhZ2VzLmM7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04OTcsNyArODU5LDYgQEAKIAkJMEY4N0ZG
Q0MyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaWFzaW5nX2RpcmVjdG9yeV9raW5kLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19iaWFzaW5nX2RpcmVjdG9yeV9raW5kLmg7
IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYmlhc2luZ19kaXJlY3Rvcnlfa2luZC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjg3RkZDRDI1QUY4OTdDMDAwRTFBQkYgLyog
cGFzX2JpdGZpdF9hbGxvY2F0b3IuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0g
cGFzX2JpdGZpdF9hbGxvY2F0b3IuYzsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRm
aXRfYWxsb2NhdG9yLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGODdGRkNFMjVB
Rjg5N0MwMDBFMUFCRiAvKiBwYXNfYmFzaWNfaGVhcF9jb25maWdfZW51bWVyYXRvcl9kYXRhLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19iYXNpY19oZWFwX2NvbmZpZ19l
bnVtZXJhdG9yX2RhdGEuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iYXNpY19oZWFw
X2NvbmZpZ19lbnVtZXJhdG9yX2RhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
MEY4N0ZGQ0YyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19hbGxfYmlhc2luZ19kaXJlY3Rvcmllcy5j
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IG5hbWUgPSBwYXNfYWxsX2JpYXNpbmdfZGlyZWN0
b3JpZXMuYzsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19hbGxfYmlhc2luZ19kaXJlY3Rv
cmllcy5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjg3RkZEMDI1QUY4OTdDMDAw
RTFBQkYgLyogcGFzX2VudW1lcmF0ZV9iaXRmaXRfaGVhcHMuYyAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5jOyBuYW1lID0gcGFzX2VudW1lcmF0ZV9iaXRmaXRfaGVhcHMuYzsgcGF0aCA9IGxpYnBh
cy9zcmMvbGlicGFzL3Bhc19lbnVtZXJhdGVfYml0Zml0X2hlYXBzLmM7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTBGODdGRkQxMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0X3Bh
Z2UuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gcGFzX2JpdGZpdF9wYWdlLmM7
IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X3BhZ2UuYzsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMEY4N0ZGRDIyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRf
dmlld19hbmRfaW5kZXguaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2Jp
dGZpdF92aWV3X2FuZF9pbmRleC5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZp
dF92aWV3X2FuZF9pbmRleC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTE5LDI1
ICs4ODAsMTEgQEAKIAkJMEY4QTgxMjUyNUY4M0UyNDAwNzkwQjRBIC8qIGJtYWxsb2NfaGVhcC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBibWFsbG9jX2hlYXAuaDsgcGF0aCA9
IGxpYnBhcy9zcmMvbGlicGFzL2JtYWxsb2NfaGVhcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwRjhBODEyNjI1RjgzRTI0MDA3OTBCNEEgLyogaG90Yml0X2hlYXAuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gaG90Yml0X2hlYXAuaDsgcGF0aCA9IGxpYnBhcy9z
cmMvbGlicGFzL2hvdGJpdF9oZWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBG
OEE4MTI3MjVGODNFMjUwMDc5MEI0QSAvKiBibWFsbG9jX2hlYXAuYyAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5jOyBuYW1lID0gYm1hbGxvY19oZWFwLmM7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBh
cy9ibWFsbG9jX2hlYXAuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEY4QTgxMjgy
NUY4M0UyNTAwNzkwQjRBIC8qIHBhc19sb2NhbF9hbGxvY2F0b3JfbGluZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfbG9jYWxfYWxsb2NhdG9yX2xpbmUuaDsgcGF0aCA9
IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3JfbGluZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkwRjhBODEyOTI1RjgzRTI1MDA3OTBCNEEgLyogYm1hbGxvY19o
ZWFwX2NvbmZpZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBibWFsbG9jX2hl
YXBfY29uZmlnLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9ibWFsbG9jX2hlYXBfY29uZmln
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGOEU3ODRCMjQ3ODczOTQwMEUxMjRB
NiAvKiBwYXNfbWFnYXppbmUuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gcGFz
X21hZ2F6aW5lLmM7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfbWFnYXppbmUuYzsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY4RTc4NEMyNDc4NzM5NDAwRTEyNEE2IC8qIHBh
c19jb21wYWN0X2F0b21pY19wYWdlX3NoYXJpbmdfcG9vbF9wdHIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gcGFzX2NvbXBhY3RfYXRvbWljX3BhZ2Vfc2hhcmluZ19wb29sX3B0
ci5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbXBhY3RfYXRvbWljX3BhZ2Vfc2hh
cmluZ19wb29sX3B0ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjhFNzg0RDI0
Nzg3Mzk0MDBFMTI0QTYgLyogcGFzX2hlYXBfY29uZmlnX2lubGluZXMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2hlYXBfY29uZmlnX2lubGluZXMuaDsgcGF0aCA9IGxp
YnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwX2NvbmZpZ19pbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTBGOEU3ODRFMjQ3ODczOTQwMEUxMjRBNiAvKiBwYXNfY29tcGFjdF9h
dG9taWNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19wdHIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3Zp
ZXdfcHRyLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tcGFjdF9hdG9taWNfc2Vn
cmVnYXRlZF9leGNsdXNpdmVfdmlld19wdHIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJMEY4RTc4NEYyNDc4NzM5NDAwRTEyNEE2IC8qIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdh
dGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0
b3J5X3B0ci5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbXBhY3RfYXRvbWljX3Nl
Z3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0ci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQkwRjhFNzg1MTI0Nzg3Mzk0MDBFMTI0QTYgLyogcGFzX21hZ2F6aW5lLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19tYWdhemluZS5oOyBwYXRoID0gbGli
cGFzL3NyYy9saWJwYXMvcGFzX21hZ2F6aW5lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTBGOEU3ODUyMjQ3ODczOTQwMEUxMjRBNiAvKiBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3Zp
ZXcuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gcGFzX3NlZ3JlZ2F0ZWRfYmlh
c2luZ192aWV3LmM7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9iaWFz
aW5nX3ZpZXcuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEY4RTc4NTQyNDc4NzM5
NTAwRTEyNEE2IC8qIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5k
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19zZWdyZWdhdGVkX2V4Y2x1
c2l2ZV92aWV3X293bmVyc2hpcF9raW5kLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNf
c2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lcnNoaXBfa2luZC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQkwRjhFNzg1NTI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX3NlZ3JlZ2F0
ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5LmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgbmFt
ZSA9IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeS5jOyBwYXRoID0gbGlicGFz
L3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5LmM7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGOEU3ODU2MjQ3ODczOTUwMEUxMjRBNiAvKiBwYXNf
Y29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnlfcHRyLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tcGFjdF9z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJMEY4RTc4NTcyNDc4NzM5NTAwRTEyNEE2IC8qIHBhc19zZWdyZWdhdGVkX2Jp
YXNpbmdfZGlyZWN0b3J5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19z
ZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5Lmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9w
YXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwRjhFNzg1ODI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX2NvbXBhY3Rfc2VncmVnYXRl
ZF9iaWFzaW5nX2RpcmVjdG9yeV9wdHIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeV9wdHIuaDsgcGF0aCA9
IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3Rv
cnlfcHRyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGOEU3ODU5MjQ3ODczOTUw
MEUxMjRBNiAvKiBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3Lmg7IHBhdGggPSBs
aWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEY4RTc4NUIyNDc4NzM5NTAwRTEyNEE2IC8qIHBhc19zZWdy
ZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9pbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9pbmxp
bmVzLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnlfaW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjhF
Nzg1QzI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3Rvcnku
YyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gcGFzX3NlZ3JlZ2F0ZWRfYmlhc2lu
Z19kaXJlY3RvcnkuYzsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2Jp
YXNpbmdfZGlyZWN0b3J5LmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGOEU3ODVE
MjQ3ODczOTUwMEUxMjRBNiAvKiBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnku
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5Lmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRl
ZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
MEY4RTc4NUUyNDc4NzM5NTAwRTEyNEE2IC8qIHBhc19zZWdyZWdhdGVkX3ZpZXdfaW5saW5lcy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfc2VncmVnYXRlZF92aWV3X2lu
bGluZXMuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3ZpZXdfaW5s
aW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjhFODMyNDI0OTJFQUYzMDA0
NkQ3RjggLyogcGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXAuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gcGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXAuaDsgcGF0aCA9
IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19kZXNpZ25hdGVkX2ludHJpbnNpY19oZWFwLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOEU4MzI1MjQ5MkVBRjMwMDQ2RDdGOCAvKiBwYXNf
Y29tcGFjdF9hdG9taWNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19jb21wYWN0X2F0b21pY190aHJlYWRfbG9jYWxf
Y2FjaGVfbGF5b3V0X25vZGUuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21wYWN0
X2F0b21pY190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMEY4RTgzMjYyNDkyRUFGMzAwNDZEN0Y4IC8qIHBhc19kZXNpZ25hdGVk
X2ludHJpbnNpY19oZWFwLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgbmFtZSA9IHBhc19k
ZXNpZ25hdGVkX2ludHJpbnNpY19oZWFwLmM7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNf
ZGVzaWduYXRlZF9pbnRyaW5zaWNfaGVhcC5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTE5NCw3ICsxMTQxLDYgQEAKIAkJMEZDNDBBQjIyNDUxNDk4RjAwODc2REEwIC8qIHBhc19z
aW1wbGVfbGFyZ2VfZnJlZV9oZWFwLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgbmFtZSA9
IHBhc19zaW1wbGVfbGFyZ2VfZnJlZV9oZWFwLmM7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9w
YXNfc2ltcGxlX2xhcmdlX2ZyZWVfaGVhcC5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwRkM0MEFCNDI0NTE0OThGMDA4NzZEQTAgLyogcGFzX2ZvdW5kX2luZGV4LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19mb3VuZF9pbmRleC5oOyBwYXRoID0gbGlicGFz
L3NyYy9saWJwYXMvcGFzX2ZvdW5kX2luZGV4Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTBGQzQwQUI1MjQ1MTQ5OEYwMDg3NkRBMCAvKiBwYXNfaGVhcF9yZWZfa2luZC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfaGVhcF9yZWZfa2luZC5oOyBwYXRoID0g
bGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXBfcmVmX2tpbmQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJMEZDNDBBQjcyNDUxNDk4RjAwODc2REEwIC8qIHBhc19pbnRyaW5zaWNfYWxs
b2NhdGlvbl9yZXN1bHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2lu
dHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdC5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFz
X2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwRkM0MEFCODI0NTE0OThGMDA4NzZEQTAgLyogcGFzX2xvY2FsX2FsbG9jYXRvcl9yZWZp
bGxfbW9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfbG9jYWxfYWxs
b2NhdG9yX3JlZmlsbF9tb2RlLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxf
YWxsb2NhdG9yX3JlZmlsbF9tb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBG
QzQwQUI5MjQ1MTQ5OEYwMDg3NkRBMCAvKiBwYXNfc3RyZWFtLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IHBhc19zdHJlYW0uaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bh
c19zdHJlYW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZDNDBBQkEyNDUxNDk4
RjAwODc2REEwIC8qIHBhc19oZWFwX3BhZ2VfcHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gcGFzX2hlYXBfcGFnZV9wcm92aWRlci5oOyBwYXRoID0gbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2hlYXBfcGFnZV9wcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTI1OSw5ICsxMjA1LDIxIEBACiAJCTBGQ0ExRDY2MjQ1NEU2NDUwMEE3OUEyNiAv
KiBJc29IZWFwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IElzb0hl
YXAuY3BwOyBwYXRoID0gYm1hbGxvYy9Jc29IZWFwLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMEZDQTFENjcyNDU0RTY0NTAwQTc5QTI2IC8qIElzb01hbGxvY0ZhbGxiYWNrLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IElzb01hbGxvY0ZhbGxiYWNr
LmNwcDsgcGF0aCA9IGJtYWxsb2MvSXNvTWFsbG9jRmFsbGJhY2suY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwRkNBMUQ2ODI0NTRFNjQ1MDBBNzlBMjYgLyogSXNvTWFsbG9jRmFs
bGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gSXNvTWFsbG9jRmFsbGJh
Y2suaDsgcGF0aCA9IGJtYWxsb2MvSXNvTWFsbG9jRmFsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMEZDQkQwMzUyNkFERjk3NDAwRDI2RDY4IC8qIHBhc19wYWdlX3NoYXJp
bmdfcG9vbF9zY2F2ZW5nZV9yZXN1bHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3NjYXZlbmdlX3Jlc3VsdC5oOyBwYXRoID0gbGlicGFz
L3NyYy9saWJwYXMvcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3NjYXZlbmdlX3Jlc3VsdC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkNDRDE0MjI2NTYwMTg2MDAxNzFBMUYgLyogcGFz
X3NoYXJlZF9wYWdlX2RpcmVjdG9yeV9ieV9zaXplLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
YzsgbmFtZSA9IHBhc19zaGFyZWRfcGFnZV9kaXJlY3RvcnlfYnlfc2l6ZS5jOyBwYXRoID0gbGli
cGFzL3NyYy9saWJwYXMvcGFzX3NoYXJlZF9wYWdlX2RpcmVjdG9yeV9ieV9zaXplLmM7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGQ0NEMTQzMjY1NjAxODYwMDE3MUExRiAvKiBwYXNf
c2hhcmVkX3BhZ2VfZGlyZWN0b3J5X2J5X3NpemUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gcGFzX3NoYXJlZF9wYWdlX2RpcmVjdG9yeV9ieV9zaXplLmg7IHBhdGggPSBsaWJw
YXMvc3JjL2xpYnBhcy9wYXNfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5X2J5X3NpemUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZENTU3MzIxRjdFREI3QjAwQjFGMEEzIC8qIEhlYXBL
aW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEhlYXBLaW5kLmNw
cDsgcGF0aCA9IGJtYWxsb2MvSGVhcEtpbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkwRkZGMjRCNzI2QTBFRkNBMDA2MDM0NEQgLyogcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeV9wdHIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFz
X2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIuaDsgcGF0aCA9IGxpYnBhcy9z
cmMvbGlicGFzL3Bhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGRkYyNEI4MjZBMEVGQ0EwMDYwMzQ0RCAvKiBw
YXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2tpbmQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9raW5k
Lmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91
dF9ub2RlX2tpbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEZGRjI0QjkyNkEw
RUZDQTAwNjAzNDREIC8qIHBhc19oZWFwX3J1bnRpbWVfY29uZmlnLmMgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuYzsgbmFtZSA9IHBhc19oZWFwX3J1bnRpbWVfY29uZmlnLmM7IHBhdGggPSBsaWJw
YXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9ydW50aW1lX2NvbmZpZy5jOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkwRkZGMjRCQTI2QTBFRkNBMDA2MDM0NEQgLyogcGFzX2xvY2FsX3ZpZXdf
Y2FjaGUuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gcGFzX2xvY2FsX3ZpZXdf
Y2FjaGUuYzsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF92aWV3X2NhY2hlLmM7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGRkYyNEJCMjZBMEVGQ0EwMDYwMzQ0RCAv
KiBwYXNfbG9jYWxfdmlld19jYWNoZV9ub2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IHBhc19sb2NhbF92aWV3X2NhY2hlX25vZGUuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGli
cGFzL3Bhc19sb2NhbF92aWV3X2NhY2hlX25vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMEZGRjI0QkMyNkEwRUZDQTAwNjAzNDREIC8qIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRf
ZXhjbHVzaXZlX3ZpZXdfcHRyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBh
c19jb21wYWN0X3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyLmg7IHBhdGggPSBsaWJwYXMv
c3JjL2xpYnBhcy9wYXNfY29tcGFjdF9zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X3B0ci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRkZGMjRCRDI2QTBFRkNBMDA2MDM0NEQgLyog
cGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0aW9uX21vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gcGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0aW9uX21vZGUuaDsgcGF0aCA9IGxp
YnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl9tb2RlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGRkYyNEJFMjZBMEVGQ0EwMDYwMzQ0RCAvKiBwYXNf
bG9jYWxfdmlld19jYWNoZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNf
bG9jYWxfdmlld19jYWNoZS5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX3Zp
ZXdfY2FjaGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEZGRjI0QkYyNkEwRUZD
QTAwNjAzNDREIC8qIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
X3B0ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfY29tcGFjdF9hdG9t
aWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGli
cGFzL3Bhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0ci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRkZGMjRDMDI2QTBFRkNBMDA2MDM0NEQgLyog
cGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZS5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IG5h
bWUgPSBwYXNfbG9jYWxfdmlld19jYWNoZV9ub2RlLmM7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBh
cy9wYXNfbG9jYWxfdmlld19jYWNoZV9ub2RlLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTBGRkYyNEMxMjZBMEVGQ0EwMDYwMzQ0RCAvKiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeV9jcmVhdGlvbl9tb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2NyZWF0aW9uX21vZGUuaDsgcGF0aCA9IGxpYnBh
cy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2NyZWF0aW9uX21vZGUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTQwRkEwMDIxOUNFNDI5QzAwRkZEM0M4
IC8qIEJ1bXBSYW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBCdW1wUmFu
Z2UuaDsgcGF0aCA9IGJtYWxsb2MvQnVtcFJhbmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTE0MEZBMDA0MTlDRTRCNjgwMEZGRDNDOCAvKiBMaW5lTWV0YWRhdGEuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTGluZU1ldGFkYXRhLmg7IHBhdGggPSBibWFsbG9j
L0xpbmVNZXRhZGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNDEwNUU4MzE4
RTE0Mzc0MDAzQTEwNkUgLyogT2JqZWN0VHlwZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBPYmplY3RUeXBlLmNwcDsgcGF0aCA9IGJtYWxsb2MvT2JqZWN0VHlwZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDM1LDExNiArMTM5MywxMDAgQEAK
IAkJMEZDNDA5MEUyNDUxNDkyRTAwODc2REEwIC8qIGxpYnBhcyAqLyA9IHsKIAkJCWlzYSA9IFBC
WEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJMEY4QTgxMjcyNUY4M0UyNTAwNzkwQjRBIC8q
IGJtYWxsb2NfaGVhcC5jICovLAotCQkJCTBGOEE4MTI1MjVGODNFMjQwMDc5MEI0QSAvKiBibWFs
bG9jX2hlYXAuaCAqLywKIAkJCQkwRjhBODExRDI1RjgzRTI0MDA3OTBCNEEgLyogYm1hbGxvY19o
ZWFwX2NvbmZpZy5jICovLAogCQkJCTBGOEE4MTI5MjVGODNFMjUwMDc5MEI0QSAvKiBibWFsbG9j
X2hlYXBfY29uZmlnLmggKi8sCiAJCQkJMEY4QTgxMUIyNUY4M0UyMzAwNzkwQjRBIC8qIGJtYWxs
b2NfaGVhcF9pbmxpbmVzLmggKi8sCiAJCQkJMEY4QTgxMUYyNUY4M0UyNDAwNzkwQjRBIC8qIGJt
YWxsb2NfaGVhcF9pbm5hcmRzLmggKi8sCiAJCQkJMEY4QTgxMjMyNUY4M0UyNDAwNzkwQjRBIC8q
IGJtYWxsb2NfaGVhcF9yZWYuaCAqLywKLQkJCQkwRjhBODEyMDI1RjgzRTI0MDA3OTBCNEEgLyog
aG90Yml0X2hlYXAuYyAqLywKLQkJCQkwRjhBODEyNjI1RjgzRTI0MDA3OTBCNEEgLyogaG90Yml0
X2hlYXAuaCAqLywKKwkJCQkwRjhBODEyNzI1RjgzRTI1MDA3OTBCNEEgLyogYm1hbGxvY19oZWFw
LmMgKi8sCisJCQkJMEY4QTgxMjUyNUY4M0UyNDAwNzkwQjRBIC8qIGJtYWxsb2NfaGVhcC5oICov
LAogCQkJCTBGOEE4MTFFMjVGODNFMjQwMDc5MEI0QSAvKiBob3RiaXRfaGVhcF9jb25maWcuYyAq
LywKIAkJCQkwRjhBODEyMTI1RjgzRTI0MDA3OTBCNEEgLyogaG90Yml0X2hlYXBfY29uZmlnLmgg
Ki8sCiAJCQkJMEY4QTgxMUMyNUY4M0UyNDAwNzkwQjRBIC8qIGhvdGJpdF9oZWFwX2lubGluZXMu
aCAqLywKIAkJCQkwRjhBODEyMjI1RjgzRTI0MDA3OTBCNEEgLyogaG90Yml0X2hlYXBfaW5uYXJk
cy5oICovLAotCQkJCTBGQzQwOTIxMjQ1MTQ5NDIwMDg3NkRBMCAvKiBpc29faGVhcC5jICovLAot
CQkJCTBGQzQwOTI5MjQ1MTQ5NDMwMDg3NkRBMCAvKiBpc29faGVhcC5oICovLAorCQkJCTBGOEE4
MTIwMjVGODNFMjQwMDc5MEI0QSAvKiBob3RiaXRfaGVhcC5jICovLAorCQkJCTBGOEE4MTI2MjVG
ODNFMjQwMDc5MEI0QSAvKiBob3RiaXRfaGVhcC5oICovLAogCQkJCTBGQzQwOTJGMjQ1MTQ5NDMw
MDg3NkRBMCAvKiBpc29faGVhcF9jb25maWcuYyAqLywKIAkJCQkwRkM0MDkyNTI0NTE0OTQzMDA4
NzZEQTAgLyogaXNvX2hlYXBfY29uZmlnLmggKi8sCiAJCQkJMEY1RkU3QjYyNUI2MUVDMTAwMTg1
OUZDIC8qIGlzb19oZWFwX2lubGluZXMuaCAqLywKIAkJCQkwRjUxNkVFODI0NTYxQUU4MDA0RTJC
OEQgLyogaXNvX2hlYXBfaW5uYXJkcy5oICovLAogCQkJCTBGNTI5REUwMjQ1NTQ2M0YwMDM4NUE4
QyAvKiBpc29faGVhcF9yZWYuaCAqLywKLQkJCQkwRkM0MDkwRjI0NTE0OTQyMDA4NzZEQTAgLyog
aXNvX3Rlc3RfaGVhcC5jICovLAotCQkJCTBGQzQwOTEwMjQ1MTQ5NDIwMDg3NkRBMCAvKiBpc29f
dGVzdF9oZWFwLmggKi8sCisJCQkJMEZDNDA5MjEyNDUxNDk0MjAwODc2REEwIC8qIGlzb19oZWFw
LmMgKi8sCisJCQkJMEZDNDA5MjkyNDUxNDk0MzAwODc2REEwIC8qIGlzb19oZWFwLmggKi8sCiAJ
CQkJMEZDNDA5MzcyNDUxNDk0NDAwODc2REEwIC8qIGlzb190ZXN0X2hlYXBfY29uZmlnLmMgKi8s
CiAJCQkJMEZDNDA5MjMyNDUxNDk0MjAwODc2REEwIC8qIGlzb190ZXN0X2hlYXBfY29uZmlnLmgg
Ki8sCi0JCQkJMEY1MTkzRUMyNjZDNDJBQzAwNDgzQTJDIC8qIGppdF9oZWFwLmMgKi8sCi0JCQkJ
MEY1MTkzRTkyNjZDNDJBQzAwNDgzQTJDIC8qIGppdF9oZWFwLmggKi8sCisJCQkJMEZDNDA5MEYy
NDUxNDk0MjAwODc2REEwIC8qIGlzb190ZXN0X2hlYXAuYyAqLywKKwkJCQkwRkM0MDkxMDI0NTE0
OTQyMDA4NzZEQTAgLyogaXNvX3Rlc3RfaGVhcC5oICovLAorCQkJCTBGNTE5M0VBMjY2QzQyQUMw
MDQ4M0EyQyAvKiBqaXRfaGVhcF9jb25maWdfcm9vdF9kYXRhLmggKi8sCiAJCQkJMEY1MTkzRUIy
NjZDNDJBQzAwNDgzQTJDIC8qIGppdF9oZWFwX2NvbmZpZy5jICovLAogCQkJCTBGNTE5M0U4MjY2
QzQyQUMwMDQ4M0EyQyAvKiBqaXRfaGVhcF9jb25maWcuaCAqLywKLQkJCQkwRjUxOTNFQTI2NkM0
MkFDMDA0ODNBMkMgLyogaml0X2hlYXBfY29uZmlnX3Jvb3RfZGF0YS5oICovLAotCQkJCTBGMThG
ODNEMjVDMzQ2NzcwMDcyMUMyQSAvKiBtaW5hbGlnbjMyX2hlYXAuYyAqLywKLQkJCQkwRjE4Rjg0
MTI1QzM0Njc3MDA3MjFDMkEgLyogbWluYWxpZ24zMl9oZWFwLmggKi8sCisJCQkJMEY1MTkzRUMy
NjZDNDJBQzAwNDgzQTJDIC8qIGppdF9oZWFwLmMgKi8sCisJCQkJMEY1MTkzRTkyNjZDNDJBQzAw
NDgzQTJDIC8qIGppdF9oZWFwLmggKi8sCiAJCQkJMEYxOEY4NDQyNUMzNDY3NzAwNzIxQzJBIC8q
IG1pbmFsaWduMzJfaGVhcF9jb25maWcuYyAqLywKIAkJCQkwRjE4Rjg0MjI1QzM0Njc3MDA3MjFD
MkEgLyogbWluYWxpZ24zMl9oZWFwX2NvbmZpZy5oICovLAotCQkJCTBGMThGODNFMjVDMzQ2Nzcw
MDcyMUMyQSAvKiBwYWdlc2l6ZTY0a19oZWFwLmMgKi8sCi0JCQkJMEYxOEY4NDMyNUMzNDY3NzAw
NzIxQzJBIC8qIHBhZ2VzaXplNjRrX2hlYXAuaCAqLywKKwkJCQkwRjE4RjgzRDI1QzM0Njc3MDA3
MjFDMkEgLyogbWluYWxpZ24zMl9oZWFwLmMgKi8sCisJCQkJMEYxOEY4NDEyNUMzNDY3NzAwNzIx
QzJBIC8qIG1pbmFsaWduMzJfaGVhcC5oICovLAogCQkJCTBGMThGODQwMjVDMzQ2NzcwMDcyMUMy
QSAvKiBwYWdlc2l6ZTY0a19oZWFwX2NvbmZpZy5jICovLAogCQkJCTBGMThGODNGMjVDMzQ2Nzcw
MDcyMUMyQSAvKiBwYWdlc2l6ZTY0a19oZWFwX2NvbmZpZy5oICovLAorCQkJCTBGMThGODNFMjVD
MzQ2NzcwMDcyMUMyQSAvKiBwYWdlc2l6ZTY0a19oZWFwLmMgKi8sCisJCQkJMEYxOEY4NDMyNUMz
NDY3NzAwNzIxQzJBIC8qIHBhZ2VzaXplNjRrX2hlYXAuaCAqLywKIAkJCQkwRkM0MDkyQTI0NTE0
OTQzMDA4NzZEQTAgLyogcGFzX2FsaWduZWRfYWxsb2NhdGlvbl9yZXN1bHQuaCAqLywKIAkJCQkw
RkM0MDkyQjI0NTE0OTQzMDA4NzZEQTAgLyogcGFzX2FsaWduZWRfYWxsb2NhdG9yLmggKi8sCiAJ
CQkJMEZDNDA5MkQyNDUxNDk0MzAwODc2REEwIC8qIHBhc19hbGlnbm1lbnQuYyAqLywKIAkJCQkw
RkM0MDkzMDI0NTE0OTQzMDA4NzZEQTAgLyogcGFzX2FsaWdubWVudC5oICovLAotCQkJCTBGODdG
RkNGMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXMuYyAqLywK
LQkJCQkwRjg3RkZDMDI1QUY4OTdCMDAwRTFBQkYgLyogcGFzX2FsbF9iaWFzaW5nX2RpcmVjdG9y
aWVzLmggKi8sCiAJCQkJMEYxQkZENDYyNjY0NUFDNzAwQ0VDMjhEIC8qIHBhc19hbGxfaGVhcF9j
b25maWdzLmggKi8sCiAJCQkJMEZDNDA5MzQyNDUxNDk0MzAwODc2REEwIC8qIHBhc19hbGxfaGVh
cHMuYyAqLywKIAkJCQkwRkM0MDk4ODI0NTE0OTYwMDA4NzZEQTAgLyogcGFzX2FsbF9oZWFwcy5o
ICovLAotCQkJCTBGMUFFQ0VCMjY1ODFCNUUwMDBDNTIxOCAvKiBwYXNfYWxsX21hZ2F6aW5lcy5j
ICovLAotCQkJCTBGMUFFQ0VBMjY1ODFCNUUwMDBDNTIxOCAvKiBwYXNfYWxsX21hZ2F6aW5lcy5o
ICovLAogCQkJCTBGQzQwOUJGMjQ1MTQ5NjMwMDg3NkRBMCAvKiBwYXNfYWxsX3NoYXJlZF9wYWdl
X2RpcmVjdG9yaWVzLmMgKi8sCiAJCQkJMEZDNDA5NzIyNDUxNDk1RTAwODc2REEwIC8qIHBhc19h
bGxfc2hhcmVkX3BhZ2VfZGlyZWN0b3JpZXMuaCAqLywKIAkJCQkwRkM0MDk5RTI0NTE0OTYxMDA4
NzZEQTAgLyogcGFzX2FsbG9jYXRpb25fY2FsbGJhY2tzLmMgKi8sCiAJCQkJMEZDNDA5ODkyNDUx
NDk2MDAwODc2REEwIC8qIHBhc19hbGxvY2F0aW9uX2NhbGxiYWNrcy5oICovLAogCQkJCTBGQzQw
OTgxMjQ1MTQ5NUYwMDg3NkRBMCAvKiBwYXNfYWxsb2NhdGlvbl9jb25maWcuaCAqLywKIAkJCQkw
RkM0MDk3NzI0NTE0OTVGMDA4NzZEQTAgLyogcGFzX2FsbG9jYXRpb25fa2luZC5oICovLAotCQkJ
CTBGODdGRkI4MjVBRjg5N0IwMDBFMUFCRiAvKiBwYXNfYWxsb2NhdGlvbl9yZXN1bHQuYyAqLywK
IAkJCQkwRkM0MDlCRTI0NTE0OTYzMDA4NzZEQTAgLyogcGFzX2FsbG9jYXRpb25fcmVzdWx0Lmgg
Ki8sCiAJCQkJMEZDNDA5QUEyNDUxNDk2MjAwODc2REEwIC8qIHBhc19hbGxvY2F0b3JfY291bnRz
LmggKi8sCiAJCQkJMEY3NTQ5ODAyNDg2OTczQzAwMkE0QzdEIC8qIHBhc19hbGxvY2F0b3JfaW5k
ZXguaCAqLywKIAkJCQkwRkM0MDk4RDI0NTE0OTYwMDA4NzZEQTAgLyogcGFzX2FsbG9jYXRvcl9z
Y2F2ZW5nZV9hY3Rpb24uaCAqLywKLQkJCQkwRkM0MDk4NDI0NTE0OTVGMDA4NzZEQTAgLyogcGFz
X2Jhc2VsaW5lX2FsbG9jYXRvci5jICovLAotCQkJCTBGQzQwOUEyMjQ1MTQ5NjEwMDg3NkRBMCAv
KiBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yLmggKi8sCiAJCQkJMEZDNDA5ODIyNDUxNDk1RjAwODc2
REEwIC8qIHBhc19iYXNlbGluZV9hbGxvY2F0b3JfcmVzdWx0LmggKi8sCiAJCQkJMEZDNDA5OTcy
NDUxNDk2MTAwODc2REEwIC8qIHBhc19iYXNlbGluZV9hbGxvY2F0b3JfdGFibGUuYyAqLywKIAkJ
CQkwRkM0MDk3QjI0NTE0OTVGMDA4NzZEQTAgLyogcGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl90YWJs
ZS5oICovLAorCQkJCTBGQzQwOTg0MjQ1MTQ5NUYwMDg3NkRBMCAvKiBwYXNfYmFzZWxpbmVfYWxs
b2NhdG9yLmMgKi8sCisJCQkJMEZDNDA5QTIyNDUxNDk2MTAwODc2REEwIC8qIHBhc19iYXNlbGlu
ZV9hbGxvY2F0b3IuaCAqLywKIAkJCQkwRjUxOTNFRDI2NkM0MkFEMDA0ODNBMkMgLyogcGFzX2Jh
c2ljX2hlYXBfY29uZmlnX2VudW1lcmF0b3JfZGF0YS5jICovLAogCQkJCTBGODdGRkNFMjVBRjg5
N0MwMDBFMUFCRiAvKiBwYXNfYmFzaWNfaGVhcF9jb25maWdfZW51bWVyYXRvcl9kYXRhLmggKi8s
CiAJCQkJMEY4N0ZGQUIyNUFGODk3QTAwMEUxQUJGIC8qIHBhc19iYXNpY19oZWFwX2NvbmZpZ19y
b290X2RhdGEuaCAqLywKIAkJCQkwRkM0MDlBNjI0NTE0OTYyMDA4NzZEQTAgLyogcGFzX2Jhc2lj
X2hlYXBfcGFnZV9jYWNoZXMuaCAqLywKIAkJCQkwRkM0MDk3RTI0NTE0OTVGMDA4NzZEQTAgLyog
cGFzX2Jhc2ljX2hlYXBfcnVudGltZV9jb25maWcuaCAqLywKIAkJCQkwRkM0MDk5NjI0NTE0OTYx
MDA4NzZEQTAgLyogcGFzX2Jhc2ljX3NlZ3JlZ2F0ZWRfcGFnZV9jYWNoZXMuaCAqLywKLQkJCQkw
Rjg3RkZBRjI1QUY4OTdBMDAwRTFBQkYgLyogcGFzX2JpYXNpbmdfZGlyZWN0b3J5LmMgKi8sCi0J
CQkJMEY4N0ZGQjMyNUFGODk3QTAwMEUxQUJGIC8qIHBhc19iaWFzaW5nX2RpcmVjdG9yeS5oICov
LAotCQkJCTBGODdGRkIxMjVBRjg5N0EwMDBFMUFCRiAvKiBwYXNfYmlhc2luZ19kaXJlY3Rvcnlf
aW5saW5lcy5oICovLAogCQkJCTBGODdGRkNDMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYmlhc2lu
Z19kaXJlY3Rvcnlfa2luZC5oICovLAogCQkJCTBGQzQwOUI1MjQ1MTQ5NjMwMDg3NkRBMCAvKiBw
YXNfYml0ZmllbGRfdmVjdG9yLmggKi8sCiAJCQkJMEY4N0ZGRDYyNUFGODk3QzAwMEUxQUJGIC8q
IHBhc19iaXRmaXRfYWxsb2NhdGlvbl9yZXN1bHQuaCAqLywKKwkJCQkwRjg3RkZCQjI1QUY4OTdC
MDAwRTFBQkYgLyogcGFzX2JpdGZpdF9hbGxvY2F0b3JfaW5saW5lcy5oICovLAogCQkJCTBGODdG
RkNEMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2FsbG9jYXRvci5jICovLAogCQkJCTBG
ODdGRkFFMjVBRjg5N0EwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2FsbG9jYXRvci5oICovLAotCQkJ
CTBGODdGRkJCMjVBRjg5N0IwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2FsbG9jYXRvcl9pbmxpbmVz
LmggKi8sCi0JCQkJMEY4N0ZGQTcyNUFGODk3QTAwMEUxQUJGIC8qIHBhc19iaXRmaXRfYmlhc2lu
Z19kaXJlY3RvcnkuYyAqLywKLQkJCQkwRjg3RkZCQTI1QUY4OTdCMDAwRTFBQkYgLyogcGFzX2Jp
dGZpdF9iaWFzaW5nX2RpcmVjdG9yeS5oICovLAorCQkJCTBGODdGRkI5MjVBRjg5N0IwMDBFMUFC
RiAvKiBwYXNfYml0Zml0X2RpcmVjdG9yeV9pbmxpbmVzLmggKi8sCiAJCQkJMEY4N0ZGQ0IyNUFG
ODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfZGlyZWN0b3J5LmMgKi8sCiAJCQkJMEY4N0ZGQzIy
NUFGODk3QjAwMEUxQUJGIC8qIHBhc19iaXRmaXRfZGlyZWN0b3J5LmggKi8sCi0JCQkJMEY4N0ZG
QTYyNUFGODk3OTAwMEUxQUJGIC8qIHBhc19iaXRmaXRfZGlyZWN0b3J5X2FuZF9pbmRleC5oICov
LAotCQkJCTBGODdGRkI5MjVBRjg5N0IwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2RpcmVjdG9yeV9p
bmxpbmVzLmggKi8sCi0JCQkJMEY4N0ZGQkUyNUFGODk3QjAwMEUxQUJGIC8qIHBhc19iaXRmaXRf
ZGlyZWN0b3J5X2tpbmQuaCAqLywKLQkJCQkwRjg3RkZCRjI1QUY4OTdCMDAwRTFBQkYgLyogcGFz
X2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5LmMgKi8sCi0JCQkJMEY4N0ZGQkMyNUFGODk3QjAwMEUx
QUJGIC8qIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeS5oICovLAotCQkJCTBGODdGRkE5MjVB
Rjg5N0EwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzLmMgKi8sCi0JCQkJ
MEY4N0ZGQTIyNUFGODk3OTAwMEUxQUJGIC8qIHBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3Mu
aCAqLywKIAkJCQkwRjg3RkZCRDI1QUY4OTdCMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9oZWFwLmMg
Ki8sCiAJCQkJMEY4N0ZGQzcyNUFGODk3QjAwMEUxQUJGIC8qIHBhc19iaXRmaXRfaGVhcC5oICov
LAogCQkJCTBGODdGRkM0MjVBRjg5N0IwMDBFMUFCRiAvKiBwYXNfYml0Zml0X21heF9mcmVlLmgg
Ki8sCi0JCQkJMEY4N0ZGRDEyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfcGFnZS5jICov
LAotCQkJCTBGODdGRkM1MjVBRjg5N0IwMDBFMUFCRiAvKiBwYXNfYml0Zml0X3BhZ2UuaCAqLywK
LQkJCQkwRjg3RkZCNTI1QUY4OTdBMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9wYWdlX2NvbmZpZy5o
ICovLAogCQkJCTBGODdGRkQzMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0X3BhZ2VfY29u
ZmlnX2lubGluZXMuaCAqLywKIAkJCQkwRjg3RkZBRDI1QUY4OTdBMDAwRTFBQkYgLyogcGFzX2Jp
dGZpdF9wYWdlX2NvbmZpZ19raW5kLmMgKi8sCiAJCQkJMEY4N0ZGQjIyNUFGODk3QTAwMEUxQUJG
IC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWdfa2luZC5kZWYgKi8sCiAJCQkJMEY4N0ZGQzEyNUFG
ODk3QjAwMEUxQUJGIC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWdfa2luZC5oICovLAotCQkJCTBG
ODdGRkI3MjVBRjg5N0IwMDBFMUFCRiAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX3V0aWxzLmgg
Ki8sCiAJCQkJMEY4N0ZGQzkyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfcGFnZV9jb25m
aWdfdXRpbHNfaW5saW5lcy5oICovLAorCQkJCTBGODdGRkI3MjVBRjg5N0IwMDBFMUFCRiAvKiBw
YXNfYml0Zml0X3BhZ2VfY29uZmlnX3V0aWxzLmggKi8sCiAJCQkJMEY4N0ZGQTQyNUFGODk3OTAw
MEUxQUJGIC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWdfdmFyaWFudC5oICovLAorCQkJCTBGODdG
RkI1MjVBRjg5N0EwMDBFMUFCRiAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnLmggKi8sCiAJCQkJ
MEY4N0ZGQTEyNUFGODk3OTAwMEUxQUJGIC8qIHBhc19iaXRmaXRfcGFnZV9pbmxpbmVzLmggKi8s
CisJCQkJMEY4N0ZGRDEyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfcGFnZS5jICovLAor
CQkJCTBGODdGRkM1MjVBRjg5N0IwMDBFMUFCRiAvKiBwYXNfYml0Zml0X3BhZ2UuaCAqLywKIAkJ
CQkwRjg3RkZBQzI1QUY4OTdBMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9zaXplX2NsYXNzLmMgKi8s
CiAJCQkJMEY4N0ZGQjQyNUFGODk3QTAwMEUxQUJGIC8qIHBhc19iaXRmaXRfc2l6ZV9jbGFzcy5o
ICovLAotCQkJCTBGODdGRkM4MjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0X3ZpZXcuYyAq
LywKLQkJCQkwRjg3RkZBNTI1QUY4OTc5MDAwRTFBQkYgLyogcGFzX2JpdGZpdF92aWV3LmggKi8s
CiAJCQkJMEY4N0ZGRDIyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfdmlld19hbmRfaW5k
ZXguaCAqLywKIAkJCQkwRjg3RkZENTI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2JpdGZpdF92aWV3
X2lubGluZXMuaCAqLywKKwkJCQkwRjg3RkZDODI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2JpdGZp
dF92aWV3LmMgKi8sCisJCQkJMEY4N0ZGQTUyNUFGODk3OTAwMEUxQUJGIC8qIHBhc19iaXRmaXRf
dmlldy5oICovLAogCQkJCTBGQzQwOUE5MjQ1MTQ5NjIwMDg3NkRBMCAvKiBwYXNfYml0dmVjdG9y
LmggKi8sCiAJCQkJMEZDNDA5QkIyNDUxNDk2MzAwODc2REEwIC8qIHBhc19ib290c3RyYXBfZnJl
ZV9oZWFwLmMgKi8sCiAJCQkJMEZDNDA5QTcyNDUxNDk2MjAwODc2REEwIC8qIHBhc19ib290c3Ry
YXBfZnJlZV9oZWFwLmggKi8sCkBAIC0xNTY4LDkgKzE1MTAsOSBAQAogCQkJCTBGOEU3ODRDMjQ3
ODczOTQwMEUxMjRBNiAvKiBwYXNfY29tcGFjdF9hdG9taWNfcGFnZV9zaGFyaW5nX3Bvb2xfcHRy
LmggKi8sCiAJCQkJMEZDNDA5QzIyNDUxNDk2MzAwODc2REEwIC8qIHBhc19jb21wYWN0X2F0b21p
Y19wdHIuaCAqLywKIAkJCQkwRjhFNzg0RTI0Nzg3Mzk0MDBFMTI0QTYgLyogcGFzX2NvbXBhY3Rf
YXRvbWljX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyLmggKi8sCi0JCQkJMEY4RTc4NEYy
NDc4NzM5NDAwRTEyNEE2IC8qIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeV9wdHIuaCAqLywKIAkJCQkwRkM0MDk4NjI0NTE0OTYwMDA4NzZEQTAgLyog
cGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfaGVhcF9wYWdlX3NoYXJpbmdfcG9vbHNfcHRy
LmggKi8sCiAJCQkJMEZDNDA5QUIyNDUxNDk2MjAwODc2REEwIC8qIHBhc19jb21wYWN0X2F0b21p
Y19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld19wdHIuaCAqLywKKwkJCQkwRkZGMjRCRjI2QTBFRkNB
MDA2MDM0NEQgLyogcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlf
cHRyLmggKi8sCiAJCQkJMEZDNDA5QkMyNDUxNDk2MzAwODc2REEwIC8qIHBhc19jb21wYWN0X2F0
b21pY19zZWdyZWdhdGVkX3ZpZXcuaCAqLywKIAkJCQkwRjhFODMyNTI0OTJFQUYzMDA0NkQ3Rjgg
LyogcGFzX2NvbXBhY3RfYXRvbWljX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZS5oICov
LAogCQkJCTBGQzQwOThCMjQ1MTQ5NjAwMDg3NkRBMCAvKiBwYXNfY29tcGFjdF9hdG9taWNfdW5z
aWduZWRfcHRyLmggKi8sCkBAIC0xNTg5LDE0ICsxNTMxLDE0IEBACiAJCQkJMEY1RkU3RDgyNUI2
MjEwRDAwMTg1OUZDIC8qIHBhc19jb21wYWN0X3BhZ2VfZ3JhbnVsZV91c2VfY291bnRfcHRyLmgg
Ki8sCiAJCQkJMEZDNDA5ODcyNDUxNDk2MDAwODc2REEwIC8qIHBhc19jb21wYWN0X3B0ci5oICov
LAogCQkJCTBGOEU3ODU4MjQ3ODczOTUwMEUxMjRBNiAvKiBwYXNfY29tcGFjdF9zZWdyZWdhdGVk
X2JpYXNpbmdfZGlyZWN0b3J5X3B0ci5oICovLAotCQkJCTBGOEU3ODU2MjQ3ODczOTUwMEUxMjRB
NiAvKiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHIuaCAq
LywKKwkJCQkwRkZGMjRCQzI2QTBFRkNBMDA2MDM0NEQgLyogcGFzX2NvbXBhY3Rfc2VncmVnYXRl
ZF9leGNsdXNpdmVfdmlld19wdHIuaCAqLywKIAkJCQkwRkM0MDlCQTI0NTE0OTYzMDA4NzZEQTAg
LyogcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9oZWFwX3B0ci5oICovLAogCQkJCTBGQzQwOUExMjQ1
MTQ5NjEwMDg3NkRBMCAvKiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVj
dG9yeV9wdHIuaCAqLywKIAkJCQkwRkM0MDk3MDI0NTE0OTVFMDA4NzZEQTAgLyogcGFzX2NvbXBh
Y3Rfc2VncmVnYXRlZF9zaGFyZWRfdmlld19wdHIuaCAqLywKKwkJCQkwRkZGMjRCNzI2QTBFRkNB
MDA2MDM0NEQgLyogcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIuaCAq
LywKIAkJCQkwRkM0MDk4RjI0NTE0OTYwMDA4NzZEQTAgLyogcGFzX2NvbXBhY3Rfc2VncmVnYXRl
ZF92aWV3LmggKi8sCi0JCQkJMEZDNDA5N0QyNDUxNDk1RjAwODc2REEwIC8qIHBhc19jb21wYWN0
X3NraXBfbGlzdF9ub2RlX3B0ci5oICovLAogCQkJCTBGQzQwOTk5MjQ1MTQ5NjEwMDg3NkRBMCAv
KiBwYXNfY29tcGFjdF9za2lwX2xpc3Rfbm9kZV9wdHJfcHRyLmggKi8sCi0JCQkJMEY1RkU3Q0Uy
NUI2MjEwQzAwMTg1OUZDIC8qIHBhc19jb21wYWN0X3N1YnBhZ2VfbWFwX2VudHJ5X3B0ci5oICov
LAorCQkJCTBGQzQwOTdEMjQ1MTQ5NUYwMDg3NkRBMCAvKiBwYXNfY29tcGFjdF9za2lwX2xpc3Rf
bm9kZV9wdHIuaCAqLywKIAkJCQkwRkM0MDlDMTI0NTE0OTYzMDA4NzZEQTAgLyogcGFzX2NvbXBh
Y3RfdGFnZ2VkX2F0b21pY19wdHIuaCAqLywKIAkJCQkwRjVGRTdEOTI1QjYyMTBEMDAxODU5RkMg
LyogcGFzX2NvbXBhY3RfdGFnZ2VkX3BhZ2VfZ3JhbnVsZV91c2VfY291bnRfcHRyLmggKi8sCiAJ
CQkJMEZDNDA5NzEyNDUxNDk1RTAwODc2REEwIC8qIHBhc19jb21wYWN0X3RhZ2dlZF9wdHIuaCAq
LywKQEAgLTE2MDQsMjQgKzE1NDYsMjQgQEAKIAkJCQkwRkM0MDk5QTI0NTE0OTYxMDA4NzZEQTAg
LyogcGFzX2NvbXBhY3RfdW5zaWduZWRfcHRyLmggKi8sCiAJCQkJMEZDNDA5NzkyNDUxNDk1RjAw
ODc2REEwIC8qIHBhc19jb21wdXRlX3N1bW1hcnlfb2JqZWN0X2NhbGxiYWNrcy5jICovLAogCQkJ
CTBGQzQwOUIzMjQ1MTQ5NjIwMDg3NkRBMCAvKiBwYXNfY29tcHV0ZV9zdW1tYXJ5X29iamVjdF9j
YWxsYmFja3MuaCAqLywKLQkJCQkwRkM0MDlCODI0NTE0OTYzMDA4NzZEQTAgLyogcGFzX2NvbmZp
Zy5oICovLAogCQkJCTBGQzQwOUE4MjQ1MTQ5NjIwMDg3NkRBMCAvKiBwYXNfY29uZmlnX3ByZWZp
eC5oICovLAorCQkJCTBGQzQwOUI4MjQ1MTQ5NjMwMDg3NkRBMCAvKiBwYXNfY29uZmlnLmggKi8s
CiAJCQkJMEZDNDA5QUQyNDUxNDk2MjAwODc2REEwIC8qIHBhc19jb3VudF9sb29rdXBfbW9kZS5o
ICovLAogCQkJCTBGQzQwOUE1MjQ1MTQ5NjIwMDg3NkRBMCAvKiBwYXNfY3JlYXRlX2Jhc2ljX2hl
YXBfcGFnZV9jYWNoZXNfd2l0aF9yZXNlcnZlZF9tZW1vcnkuYyAqLywKIAkJCQkwRkM0MDk2RjI0
NTE0OTVFMDA4NzZEQTAgLyogcGFzX2NyZWF0ZV9iYXNpY19oZWFwX3BhZ2VfY2FjaGVzX3dpdGhf
cmVzZXJ2ZWRfbWVtb3J5LmggKi8sCiAJCQkJMEZDNDA5OTgyNDUxNDk2MTAwODc2REEwIC8qIHBh
c19kZWFsbG9jYXRlLmMgKi8sCiAJCQkJMEZDNDA5OUIyNDUxNDk2MTAwODc2REEwIC8qIHBhc19k
ZWFsbG9jYXRlLmggKi8sCiAJCQkJMEY1RkU3REEyNUI2MjEwRDAwMTg1OUZDIC8qIHBhc19kZWFs
bG9jYXRpb25fbW9kZS5oICovLAotCQkJCTBGQzQwOUEzMjQ1MTQ5NjEwMDg3NkRBMCAvKiBwYXNf
ZGVhbGxvY2F0b3IuaCAqLywKIAkJCQkwRkM0MDk4NTI0NTE0OTYwMDA4NzZEQTAgLyogcGFzX2Rl
YWxsb2NhdG9yX3NjYXZlbmdlX2FjdGlvbi5oICovLAorCQkJCTBGQzQwOUEzMjQ1MTQ5NjEwMDg3
NkRBMCAvKiBwYXNfZGVhbGxvY2F0b3IuaCAqLywKIAkJCQkwRjM3M0U1MzI2NTlFQTcwMDAzNEJB
OTYgLyogcGFzX2RlYnVnX2hlYXAuaCAqLywKIAkJCQkwRkJDNjJDNDI2NUYxODBDMDA1QTU3MjAg
LyogcGFzX2RlYnVnX3NwZWN0cnVtLmMgKi8sCiAJCQkJMEZCQzYyQzUyNjVGMTgwQzAwNUE1NzIw
IC8qIHBhc19kZWJ1Z19zcGVjdHJ1bS5oICovLAogCQkJCTBGQzQwOUI5MjQ1MTQ5NjMwMDg3NkRB
MCAvKiBwYXNfZGVmZXJyZWRfZGVjb21taXRfbG9nLmMgKi8sCiAJCQkJMEZDNDA5QTAyNDUxNDk2
MTAwODc2REEwIC8qIHBhc19kZWZlcnJlZF9kZWNvbW1pdF9sb2cuaCAqLywKKwkJCQkwRjhFODMy
QjI0OTJFQUYzMDA0NkQ3RjggLyogcGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXBfaW5saW5l
cy5oICovLAogCQkJCTBGOEU4MzI2MjQ5MkVBRjMwMDQ2RDdGOCAvKiBwYXNfZGVzaWduYXRlZF9p
bnRyaW5zaWNfaGVhcC5jICovLAogCQkJCTBGOEU4MzI0MjQ5MkVBRjMwMDQ2RDdGOCAvKiBwYXNf
ZGVzaWduYXRlZF9pbnRyaW5zaWNfaGVhcC5oICovLAotCQkJCTBGOEU4MzJCMjQ5MkVBRjMwMDQ2
RDdGOCAvKiBwYXNfZGVzaWduYXRlZF9pbnRyaW5zaWNfaGVhcF9pbmxpbmVzLmggKi8sCiAJCQkJ
MEZDNDA5OEEyNDUxNDk2MDAwODc2REEwIC8qIHBhc19keWxkX3N0YXRlLmMgKi8sCiAJCQkJMEZD
NDA5OUQyNDUxNDk2MTAwODc2REEwIC8qIHBhc19keWxkX3N0YXRlLmggKi8sCiAJCQkJMEZDNDA5
ODAyNDUxNDk1RjAwODc2REEwIC8qIHBhc19keW5hbWljX3ByaW1pdGl2ZV9oZWFwX21hcC5jICov
LApAQCAtMTY0NCwxMSArMTU4NiwxMSBAQAogCQkJCTBGODcwMDEyMjVBRjg5QzcwMDBFMUFCRiAv
KiBwYXNfZW51bWVyYXRlX3NlZ3JlZ2F0ZWRfaGVhcHMuaCAqLywKIAkJCQkwRjg3MDAxRDI1QUY4
OUM4MDAwRTFBQkYgLyogcGFzX2VudW1lcmF0ZV91bmFjY291bnRlZF9wYWdlc19hc19tZXRhLmMg
Ki8sCiAJCQkJMEY4NzAwMUUyNUFGODlDODAwMEUxQUJGIC8qIHBhc19lbnVtZXJhdGVfdW5hY2Nv
dW50ZWRfcGFnZXNfYXNfbWV0YS5oICovLAotCQkJCTBGODcwMDE0MjVBRjg5QzcwMDBFMUFCRiAv
KiBwYXNfZW51bWVyYXRvci5jICovLAotCQkJCTBGODcwMDI3MjVBRjg5QzkwMDBFMUFCRiAvKiBw
YXNfZW51bWVyYXRvci5oICovLAogCQkJCTBGODcwMDI4MjVBRjg5QzkwMDBFMUFCRiAvKiBwYXNf
ZW51bWVyYXRvcl9pbnRlcm5hbC5oICovLAogCQkJCTBGODcwMDIwMjVBRjg5QzgwMDBFMUFCRiAv
KiBwYXNfZW51bWVyYXRvcl9yZWdpb24uYyAqLywKIAkJCQkwRjg3MDAyMTI1QUY4OUM4MDAwRTFB
QkYgLyogcGFzX2VudW1lcmF0b3JfcmVnaW9uLmggKi8sCisJCQkJMEY4NzAwMTQyNUFGODlDNzAw
MEUxQUJGIC8qIHBhc19lbnVtZXJhdG9yLmMgKi8sCisJCQkJMEY4NzAwMjcyNUFGODlDOTAwMEUx
QUJGIC8qIHBhc19lbnVtZXJhdG9yLmggKi8sCiAJCQkJMEZDNDA5QUYyNDUxNDk2MjAwODc2REEw
IC8qIHBhc19lcG9jaC5jICovLAogCQkJCTBGQzQwOUIxMjQ1MTQ5NjIwMDg3NkRBMCAvKiBwYXNf
ZXBvY2guaCAqLywKIAkJCQkwRkM0MDlCMDI0NTE0OTYyMDA4NzZEQTAgLyogcGFzX2V4Y2x1c2l2
ZV92aWV3X3RlbXBsYXRlX21lbW9fdGFibGUuYyAqLywKQEAgLTE2NjIsOCArMTYwNCw4IEBACiAJ
CQkJMEY4NzAwMjMyNUFGODlDODAwMEUxQUJGIC8qIHBhc19mYXN0X21lZ2FwYWdlX2tpbmQuaCAq
LywKIAkJCQkwRjg3MDAyMjI1QUY4OUM4MDAwRTFBQkYgLyogcGFzX2Zhc3RfbWVnYXBhZ2VfdGFi
bGUuYyAqLywKIAkJCQkwRjg3MDAyNDI1QUY4OUM4MDAwRTFBQkYgLyogcGFzX2Zhc3RfbWVnYXBh
Z2VfdGFibGUuaCAqLywKLQkJCQkwRjg3MDAxNjI1QUY4OUM3MDAwRTFBQkYgLyogcGFzX2Zhc3Rf
cGF0aF9hbGxvY2F0aW9uX3Jlc3VsdC5oICovLAogCQkJCTBGODcwMDExMjVBRjg5QzcwMDBFMUFC
RiAvKiBwYXNfZmFzdF9wYXRoX2FsbG9jYXRpb25fcmVzdWx0X2tpbmQuaCAqLywKKwkJCQkwRjg3
MDAxNjI1QUY4OUM3MDAwRTFBQkYgLyogcGFzX2Zhc3RfcGF0aF9hbGxvY2F0aW9uX3Jlc3VsdC5o
ICovLAogCQkJCTBGQjU3MDZDMjY3RDA1NTkwMDgwRkE4QiAvKiBwYXNfZmFzdF90bHMuaCAqLywK
IAkJCQkwRkM0MEFDOTI0NTE0OTkwMDA4NzZEQTAgLyogcGFzX2ZkX3N0cmVhbS5jICovLAogCQkJ
CTBGQzQwQUNBMjQ1MTQ5OTEwMDg3NkRBMCAvKiBwYXNfZmRfc3RyZWFtLmggKi8sCkBAIC0xNjc0
LDggKzE2MTYsOCBAQAogCQkJCTBGODcwMDFGMjVBRjg5QzgwMDBFMUFCRiAvKiBwYXNfZnJlZV9n
cmFudWxlcy5oICovLAogCQkJCTBGQzQwQUE4MjQ1MTQ5OEUwMDg3NkRBMCAvKiBwYXNfZnJlZV9t
b2RlLmggKi8sCiAJCQkJMEZDNDBBMzQyNDUxNDk4NjAwODc2REEwIC8qIHBhc19mcmVlX3Jhbmdl
X2tpbmQuaCAqLywKLQkJCQkwRkM0MEFDQjI0NTE0OTkxMDA4NzZEQTAgLyogcGFzX2Z1bGxfYWxs
b2NfYml0cy5oICovLAogCQkJCTBGQzQwQTQ1MjQ1MTQ5ODcwMDg3NkRBMCAvKiBwYXNfZnVsbF9h
bGxvY19iaXRzX2lubGluZXMuaCAqLywKKwkJCQkwRkM0MEFDQjI0NTE0OTkxMDA4NzZEQTAgLyog
cGFzX2Z1bGxfYWxsb2NfYml0cy5oICovLAogCQkJCTBGQzQwQTNBMjQ1MTQ5ODYwMDg3NkRBMCAv
KiBwYXNfZ2VuZXJpY19sYXJnZV9mcmVlX2hlYXAuaCAqLywKIAkJCQkwRkM0MEE5NjI0NTE0OThE
MDA4NzZEQTAgLyogcGFzX2dldF9hbGxvY2F0aW9uX3NpemUuaCAqLywKIAkJCQkwRkM0MEFFMTI0
NTE0OTkyMDA4NzZEQTAgLyogcGFzX2dldF9oZWFwLmggKi8sCkBAIC0xNjgzLDE3ICsxNjI1LDE1
IEBACiAJCQkJMEY4NzAwMUMyNUFGODlDODAwMEUxQUJGIC8qIHBhc19nZXRfcGFnZV9iYXNlLmgg
Ki8sCiAJCQkJMEZDNDBBNzIyNDUxNDk4QTAwODc2REEwIC8qIHBhc19oYXNfb2JqZWN0LmggKi8s
CiAJCQkJMEZDNDBBNDgyNDUxNDk4NzAwODc2REEwIC8qIHBhc19oYXNodGFibGUuaCAqLywKLQkJ
CQkwRkM0MEFDQzI0NTE0OTkxMDA4NzZEQTAgLyogcGFzX2hlYXAuYyAqLywKLQkJCQkwRkM0MEE1
RjI0NTE0OTg5MDA4NzZEQTAgLyogcGFzX2hlYXAuaCAqLywKLQkJCQkwRjFCRkQ0NTI2NjQ1QUM3
MDBDRUMyOEQgLyogcGFzX2hlYXBfY29uZmlnLmMgKi8sCi0JCQkJMEZDNDBBQUEyNDUxNDk4RTAw
ODc2REEwIC8qIHBhc19oZWFwX2NvbmZpZy5oICovLAogCQkJCTBGOEU3ODREMjQ3ODczOTQwMEUx
MjRBNiAvKiBwYXNfaGVhcF9jb25maWdfaW5saW5lcy5oICovLAogCQkJCTBGQzQwQTY5MjQ1MTQ5
OEEwMDg3NkRBMCAvKiBwYXNfaGVhcF9jb25maWdfa2luZC5jICovLAogCQkJCTBGQzQwQThEMjQ1
MTQ5OEMwMDg3NkRBMCAvKiBwYXNfaGVhcF9jb25maWdfa2luZC5kZWYgKi8sCiAJCQkJMEZDNDBB
NTgyNDUxNDk4OTAwODc2REEwIC8qIHBhc19oZWFwX2NvbmZpZ19raW5kLmggKi8sCisJCQkJMEZD
NDBBNDIyNDUxNDk4NzAwODc2REEwIC8qIHBhc19oZWFwX2NvbmZpZ191dGlsc19pbmxpbmVzLmgg
Ki8sCiAJCQkJMEZDNDBBNUUyNDUxNDk4OTAwODc2REEwIC8qIHBhc19oZWFwX2NvbmZpZ191dGls
cy5jICovLAogCQkJCTBGQzQwQURCMjQ1MTQ5OTIwMDg3NkRBMCAvKiBwYXNfaGVhcF9jb25maWdf
dXRpbHMuaCAqLywKLQkJCQkwRkM0MEE0MjI0NTE0OTg3MDA4NzZEQTAgLyogcGFzX2hlYXBfY29u
ZmlnX3V0aWxzX2lubGluZXMuaCAqLywKKwkJCQkwRjFCRkQ0NTI2NjQ1QUM3MDBDRUMyOEQgLyog
cGFzX2hlYXBfY29uZmlnLmMgKi8sCisJCQkJMEZDNDBBQUEyNDUxNDk4RTAwODc2REEwIC8qIHBh
c19oZWFwX2NvbmZpZy5oICovLAogCQkJCTBGQzQwQTc3MjQ1MTQ5OEIwMDg3NkRBMCAvKiBwYXNf
aGVhcF9mb3JfY29uZmlnLmMgKi8sCiAJCQkJMEZDNDBBOUEyNDUxNDk4RDAwODc2REEwIC8qIHBh
c19oZWFwX2Zvcl9jb25maWcuaCAqLywKIAkJCQkwRkM0MEFEOTI0NTE0OTkyMDA4NzZEQTAgLyog
cGFzX2hlYXBfaW5saW5lcy5oICovLApAQCAtMTcwMSwyMyArMTY0MSwyNCBAQAogCQkJCTBGQzQw
QUU0MjQ1MTQ5OTIwMDg3NkRBMCAvKiBwYXNfaGVhcF9sb2NrLmMgKi8sCiAJCQkJMEZDNDBBN0Iy
NDUxNDk4QjAwODc2REEwIC8qIHBhc19oZWFwX2xvY2suaCAqLywKIAkJCQkwRkM0MEFCQTI0NTE0
OThGMDA4NzZEQTAgLyogcGFzX2hlYXBfcGFnZV9wcm92aWRlci5oICovLAotCQkJCTBGQzQwQTRG
MjQ1MTQ5ODgwMDg3NkRBMCAvKiBwYXNfaGVhcF9yZWYuYyAqLywKLQkJCQkwRkM0MEE2NjI0NTE0
OTg5MDA4NzZEQTAgLyogcGFzX2hlYXBfcmVmLmggKi8sCiAJCQkJMEZDNDBBQjUyNDUxNDk4RjAw
ODc2REEwIC8qIHBhc19oZWFwX3JlZl9raW5kLmggKi8sCiAJCQkJMEZDNDBBOEUyNDUxNDk4QzAw
ODc2REEwIC8qIHBhc19oZWFwX3JlZl9wcmVmaXguaCAqLywKKwkJCQkwRkM0MEE0RjI0NTE0OTg4
MDA4NzZEQTAgLyogcGFzX2hlYXBfcmVmLmMgKi8sCisJCQkJMEZDNDBBNjYyNDUxNDk4OTAwODc2
REEwIC8qIHBhc19oZWFwX3JlZi5oICovLAorCQkJCTBGRkYyNEI5MjZBMEVGQ0EwMDYwMzQ0RCAv
KiBwYXNfaGVhcF9ydW50aW1lX2NvbmZpZy5jICovLAogCQkJCTBGQzQwQUU5MjQ1MTQ5OTMwMDg3
NkRBMCAvKiBwYXNfaGVhcF9ydW50aW1lX2NvbmZpZy5oICovLAogCQkJCTBGQzQwQUYyMjQ1MTQ5
OTMwMDg3NkRBMCAvKiBwYXNfaGVhcF9zdW1tYXJ5LmMgKi8sCiAJCQkJMEZDNDBBRDYyNDUxNDk5
MTAwODc2REEwIC8qIHBhc19oZWFwX3N1bW1hcnkuaCAqLywKKwkJCQkwRkM0MEE0RTI0NTE0OTg4
MDA4NzZEQTAgLyogcGFzX2hlYXBfdGFibGVfc3RhdGUuaCAqLywKIAkJCQkwRkM0MEFDNjI0NTE0
OTkwMDA4NzZEQTAgLyogcGFzX2hlYXBfdGFibGUuYyAqLywKIAkJCQkwRkM0MEEyRTI0NTE0OTg2
MDA4NzZEQTAgLyogcGFzX2hlYXBfdGFibGUuaCAqLywKLQkJCQkwRkM0MEE0RTI0NTE0OTg4MDA4
NzZEQTAgLyogcGFzX2hlYXBfdGFibGVfc3RhdGUuaCAqLywKKwkJCQkwRkM0MEFDQzI0NTE0OTkx
MDA4NzZEQTAgLyogcGFzX2hlYXAuYyAqLywKKwkJCQkwRkM0MEE1RjI0NTE0OTg5MDA4NzZEQTAg
LyogcGFzX2hlYXAuaCAqLywKIAkJCQkwRkM0MEE2NDI0NTE0OTg5MDA4NzZEQTAgLyogcGFzX2lt
bW9ydGFsX2hlYXAuYyAqLywKIAkJCQkwRkM0MEE5RjI0NTE0OThEMDA4NzZEQTAgLyogcGFzX2lt
bW9ydGFsX2hlYXAuaCAqLywKIAkJCQkwRkM0MEE5NDI0NTE0OThEMDA4NzZEQTAgLyogcGFzX2lt
bXV0YWJsZV92ZWN0b3IuaCAqLywKIAkJCQkwRjUxNkVFNDI0NTYxODRGMDA0RTJCOEQgLyogcGFz
X2ludGVybmFsX2NvbmZpZy5oICovLAotCQkJCTBGQzQwQUI3MjQ1MTQ5OEYwMDg3NkRBMCAvKiBw
YXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0LmggKi8sCiAJCQkJMEZDNDBBNTEyNDUxNDk4
ODAwODc2REEwIC8qIHBhc19pbnRyaW5zaWNfaGVhcF9zdXBwb3J0LmggKi8sCi0JCQkJMEZDNDBB
OUMyNDUxNDk4RDAwODc2REEwIC8qIHBhc19sYXJnZV9mcmVlLmggKi8sCiAJCQkJMEZDNDBBNTQy
NDUxNDk4ODAwODc2REEwIC8qIHBhc19sYXJnZV9mcmVlX2hlYXBfY29uZmlnLmggKi8sCiAJCQkJ
MEZBQkREQ0YyNDhBQjA4NDAwQTg0MEIzIC8qIHBhc19sYXJnZV9mcmVlX2hlYXBfZGVjbGFyYXRp
b25zLmRlZiAqLywKIAkJCQkwRkM0MEFDRDI0NTE0OTkxMDA4NzZEQTAgLyogcGFzX2xhcmdlX2Zy
ZWVfaGVhcF9kZWZlcnJlZF9jb21taXRfbG9nLmMgKi8sCkBAIC0xNzI3LDM1ICsxNjY4LDQwIEBA
CiAJCQkJMEZBQkREQ0UyNDhBQjA4NDAwQTg0MEIzIC8qIHBhc19sYXJnZV9mcmVlX2hlYXBfaGVs
cGVycy5oICovLAogCQkJCTBGQzQwQTc0MjQ1MTQ5OEEwMDg3NkRBMCAvKiBwYXNfbGFyZ2VfZnJl
ZV9pbmxpbmVzLmggKi8sCiAJCQkJMEZDNDBBMjMyNDUxNDk4NTAwODc2REEwIC8qIHBhc19sYXJn
ZV9mcmVlX3Zpc2l0b3IuaCAqLywKLQkJCQkwRkM0MEE5MzI0NTE0OThEMDA4NzZEQTAgLyogcGFz
X2xhcmdlX2hlYXAuYyAqLywKLQkJCQkwRkM0MEE3QTI0NTE0OThCMDA4NzZEQTAgLyogcGFzX2xh
cmdlX2hlYXAuaCAqLywKKwkJCQkwRkM0MEE5QzI0NTE0OThEMDA4NzZEQTAgLyogcGFzX2xhcmdl
X2ZyZWUuaCAqLywKIAkJCQkwRkM0MEE4MzI0NTE0OThCMDA4NzZEQTAgLyogcGFzX2xhcmdlX2hl
YXBfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX2NhY2hlLmMgKi8sCiAJCQkJMEZDNDBBQjAyNDUxNDk4
RjAwODc2REEwIC8qIHBhc19sYXJnZV9oZWFwX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19jYWNoZS5o
ICovLAorCQkJCTBGQzQwQTkzMjQ1MTQ5OEQwMDg3NkRBMCAvKiBwYXNfbGFyZ2VfaGVhcC5jICov
LAorCQkJCTBGQzQwQTdBMjQ1MTQ5OEIwMDg3NkRBMCAvKiBwYXNfbGFyZ2VfaGVhcC5oICovLAor
CQkJCTBGQzQwQUQ0MjQ1MTQ5OTEwMDg3NkRBMCAvKiBwYXNfbGFyZ2VfbWFwX2VudHJ5LmggKi8s
CiAJCQkJMEZDNDBBRjQyNDUxNDk5NDAwODc2REEwIC8qIHBhc19sYXJnZV9tYXAuYyAqLywKIAkJ
CQkwRkM0MEEzNjI0NTE0OTg2MDA4NzZEQTAgLyogcGFzX2xhcmdlX21hcC5oICovLAotCQkJCTBG
QzQwQUQ0MjQ1MTQ5OTEwMDg3NkRBMCAvKiBwYXNfbGFyZ2VfbWFwX2VudHJ5LmggKi8sCisJCQkJ
MEZDNDBBQkQyNDUxNDk5MDAwODc2REEwIC8qIHBhc19sYXJnZV9zaGFyaW5nX3Bvb2xfZXBvY2hf
dXBkYXRlX21vZGUuaCAqLywKIAkJCQkwRkM0MEE0QjI0NTE0OTg4MDA4NzZEQTAgLyogcGFzX2xh
cmdlX3NoYXJpbmdfcG9vbC5jICovLAogCQkJCTBGQzQwQTFEMjQ1MTQ5ODQwMDg3NkRBMCAvKiBw
YXNfbGFyZ2Vfc2hhcmluZ19wb29sLmggKi8sCi0JCQkJMEZDNDBBQkQyNDUxNDk5MDAwODc2REEw
IC8qIHBhc19sYXJnZV9zaGFyaW5nX3Bvb2xfZXBvY2hfdXBkYXRlX21vZGUuaCAqLywKIAkJCQkw
RkM0MEFBMzI0NTE0OThFMDA4NzZEQTAgLyogcGFzX2xhcmdlX3V0aWxpdHlfZnJlZV9oZWFwLmMg
Ki8sCiAJCQkJMEZDNDBBRjEyNDUxNDk5MzAwODc2REEwIC8qIHBhc19sYXJnZV91dGlsaXR5X2Zy
ZWVfaGVhcC5oICovLAogCQkJCTBGOEE4MTI0MjVGODNFMjQwMDc5MEI0QSAvKiBwYXNfbGluZV93
b3JkX2NvbmZpZy5oICovLAogCQkJCTBGQzQwQTdEMjQ1MTQ5OEIwMDg3NkRBMCAvKiBwYXNfbGlz
dF9kaXJlY3Rpb24uaCAqLywKLQkJCQkwRkM0MEEyODI0NTE0OTg1MDA4NzZEQTAgLyogcGFzX2xv
Y2FsX2FsbG9jYXRvci5jICovLAotCQkJCTBGQzQwQTRBMjQ1MTQ5ODgwMDg3NkRBMCAvKiBwYXNf
bG9jYWxfYWxsb2NhdG9yLmggKi8sCiAJCQkJMEZDNDBBNEMyNDUxNDk4ODAwODc2REEwIC8qIHBh
c19sb2NhbF9hbGxvY2F0b3JfY29uZmlnX2tpbmQuaCAqLywKIAkJCQkwRkM0MEE5ODI0NTE0OThE
MDA4NzZEQTAgLyogcGFzX2xvY2FsX2FsbG9jYXRvcl9pbmxpbmVzLmggKi8sCi0JCQkJMEY4QTgx
MjgyNUY4M0UyNTAwNzkwQjRBIC8qIHBhc19sb2NhbF9hbGxvY2F0b3JfbGluZS5oICovLAorCQkJ
CTBGNDVENUFDMjZBQjc4NjAwMEMzNUQ5MyAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX2tpbmQuaCAq
LywKIAkJCQkwRkM0MEFCODI0NTE0OThGMDA4NzZEQTAgLyogcGFzX2xvY2FsX2FsbG9jYXRvcl9y
ZWZpbGxfbW9kZS5oICovLAogCQkJCTBGQzQwQTUwMjQ1MTQ5ODgwMDg3NkRBMCAvKiBwYXNfbG9j
YWxfYWxsb2NhdG9yX3Jlc3VsdC5oICovLAotCQkJCTBGQzQwQkQ5MjQ1MjQzQTQwMDg3NkRBMCAv
KiBwYXNfbG9jay5jICovLAotCQkJCTBGQzQwQThCMjQ1MTQ5OEMwMDg3NkRBMCAvKiBwYXNfbG9j
ay5oICovLAorCQkJCTBGNDVENUFEMjZBQjc4NjAwMEMzNUQ5MyAvKiBwYXNfbG9jYWxfYWxsb2Nh
dG9yX3NjYXZlbmdlcl9kYXRhLmMgKi8sCisJCQkJMEY0NUQ1QUUyNkFCNzg2MDAwQzM1RDkzIC8q
IHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEuaCAqLywKKwkJCQkwRkM0MEEyODI0
NTE0OTg1MDA4NzZEQTAgLyogcGFzX2xvY2FsX2FsbG9jYXRvci5jICovLAorCQkJCTBGQzQwQTRB
MjQ1MTQ5ODgwMDg3NkRBMCAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yLmggKi8sCisJCQkJMEZGRjI0
QzAyNkEwRUZDQTAwNjAzNDREIC8qIHBhc19sb2NhbF92aWV3X2NhY2hlX25vZGUuYyAqLywKKwkJ
CQkwRkZGMjRCQjI2QTBFRkNBMDA2MDM0NEQgLyogcGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZS5o
ICovLAorCQkJCTBGRkYyNEJBMjZBMEVGQ0EwMDYwMzQ0RCAvKiBwYXNfbG9jYWxfdmlld19jYWNo
ZS5jICovLAorCQkJCTBGRkYyNEJFMjZBMEVGQ0EwMDYwMzQ0RCAvKiBwYXNfbG9jYWxfdmlld19j
YWNoZS5oICovLAogCQkJCTBGQzQwQTU2MjQ1MTQ5ODgwMDg3NkRBMCAvKiBwYXNfbG9ja19mcmVl
X3JlYWRfcHRyX3B0cl9oYXNodGFibGUuYyAqLywKIAkJCQkwRkM0MEFBNDI0NTE0OThFMDA4NzZE
QTAgLyogcGFzX2xvY2tfZnJlZV9yZWFkX3B0cl9wdHJfaGFzaHRhYmxlLmggKi8sCisJCQkJMEZD
NDBCRDkyNDUyNDNBNDAwODc2REEwIC8qIHBhc19sb2NrLmMgKi8sCisJCQkJMEZDNDBBOEIyNDUx
NDk4QzAwODc2REEwIC8qIHBhc19sb2NrLmggKi8sCiAJCQkJMEZDNDBBRDcyNDUxNDk5MTAwODc2
REEwIC8qIHBhc19sb2cuYyAqLywKIAkJCQkwRkM0MEFDMTI0NTE0OTkwMDA4NzZEQTAgLyogcGFz
X2xvZy5oICovLAotCQkJCTBGOEU3ODRCMjQ3ODczOTQwMEUxMjRBNiAvKiBwYXNfbWFnYXppbmUu
YyAqLywKLQkJCQkwRjhFNzg1MTI0Nzg3Mzk0MDBFMTI0QTYgLyogcGFzX21hZ2F6aW5lLmggKi8s
CiAJCQkJMEY4NzAwNEIyNUFGOEExOTAwMEUxQUJGIC8qIHBhc19tZWRpdW1fbWVnYXBhZ2VfY2Fj
aGUuYyAqLywKIAkJCQkwRjg3MDA0ODI1QUY4QTE5MDAwRTFBQkYgLyogcGFzX21lZGl1bV9tZWdh
cGFnZV9jYWNoZS5oICovLAogCQkJCTBGQzQwQTgxMjQ1MTQ5OEIwMDg3NkRBMCAvKiBwYXNfbWVn
YXBhZ2VfY2FjaGUuYyAqLywKQEAgLTE3NjYsMTMgKzE3MTIsMTMgQEAKIAkJCQkwRkM0MEFEMjI0
NTE0OTkxMDA4NzZEQTAgLyogcGFzX211dGF0aW9uX2NvdW50LmggKi8sCiAJCQkJMEY4NzAwNEUy
NUFGOEExOTAwMEUxQUJGIC8qIHBhc19vYmplY3Rfa2luZC5oICovLAogCQkJCTBGQzQwQTNCMjQ1
MTQ5ODYwMDg3NkRBMCAvKiBwYXNfb2JqZWN0X3NpemVfbW9kZS5oICovLAotCQkJCTBGODcwMDUy
MjVBRjhBMUEwMDBFMUFCRiAvKiBwYXNfcGFnZV9iYXNlLmMgKi8sCi0JCQkJMEY4NzAwNUQyNUFG
OEExQTAwMEUxQUJGIC8qIHBhc19wYWdlX2Jhc2UuaCAqLywKLQkJCQkwRjg3MDA2MDI1QUY4QTFC
MDAwRTFBQkYgLyogcGFzX3BhZ2VfYmFzZV9jb25maWcuaCAqLywKIAkJCQkwRjg3MDA1RTI1QUY4
QTFCMDAwRTFBQkYgLyogcGFzX3BhZ2VfYmFzZV9jb25maWdfaW5saW5lcy5oICovLAotCQkJCTBG
ODcwMDREMjVBRjhBMTkwMDBFMUFCRiAvKiBwYXNfcGFnZV9iYXNlX2NvbmZpZ191dGlscy5oICov
LAogCQkJCTBGODcwMDU2MjVBRjhBMUEwMDBFMUFCRiAvKiBwYXNfcGFnZV9iYXNlX2NvbmZpZ191
dGlsc19pbmxpbmVzLmggKi8sCisJCQkJMEY4NzAwNEQyNUFGOEExOTAwMEUxQUJGIC8qIHBhc19w
YWdlX2Jhc2VfY29uZmlnX3V0aWxzLmggKi8sCisJCQkJMEY4NzAwNjAyNUFGOEExQjAwMEUxQUJG
IC8qIHBhc19wYWdlX2Jhc2VfY29uZmlnLmggKi8sCiAJCQkJMEY4NzAwNTAyNUFGOEExQTAwMEUx
QUJGIC8qIHBhc19wYWdlX2Jhc2VfaW5saW5lcy5oICovLAorCQkJCTBGODcwMDUyMjVBRjhBMUEw
MDBFMUFCRiAvKiBwYXNfcGFnZV9iYXNlLmMgKi8sCisJCQkJMEY4NzAwNUQyNUFGOEExQTAwMEUx
QUJGIC8qIHBhc19wYWdlX2Jhc2UuaCAqLywKIAkJCQkwRjg3MDA0QTI1QUY4QTE5MDAwRTFBQkYg
LyogcGFzX3BhZ2VfY29uZmlnX2tpbmQuaCAqLywKIAkJCQkwRjg3MDA2MjI1QUY4QTFCMDAwRTFB
QkYgLyogcGFzX3BhZ2VfZ3JhbnVsZV91c2VfY291bnQuaCAqLywKIAkJCQkwRjg3MDA0OTI1QUY4
QTE5MDAwRTFBQkYgLyogcGFzX3BhZ2VfaGVhZGVyX3BsYWNlbWVudF9tb2RlLmggKi8sCkBAIC0x
NzgyLDEyICsxNzI4LDEzIEBACiAJCQkJMEZDNDBBODkyNDUxNDk4QzAwODc2REEwIC8qIHBhc19w
YWdlX21hbGxvYy5jICovLAogCQkJCTBGQzQwQUY1MjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfcGFn
ZV9tYWxsb2MuaCAqLywKIAkJCQkwRjg3MDA1QjI1QUY4QTFBMDAwRTFBQkYgLyogcGFzX3BhZ2Vf
c2hhcmluZ19tb2RlLmggKi8sCisJCQkJMEZDNDBBQTAyNDUxNDk4RTAwODc2REEwIC8qIHBhc19w
YWdlX3NoYXJpbmdfcGFydGljaXBhbnRfa2luZC5oICovLAogCQkJCTBGQzQwQTMzMjQ1MTQ5ODYw
MDg3NkRBMCAvKiBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50LmMgKi8sCiAJCQkJMEZDNDBB
NEQyNDUxNDk4ODAwODc2REEwIC8qIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnQuaCAqLywK
LQkJCQkwRkM0MEFBMDI0NTE0OThFMDA4NzZEQTAgLyogcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNp
cGFudF9raW5kLmggKi8sCisJCQkJMEZDQkQwMzUyNkFERjk3NDAwRDI2RDY4IC8qIHBhc19wYWdl
X3NoYXJpbmdfcG9vbF9zY2F2ZW5nZV9yZXN1bHQuaCAqLywKKwkJCQkwRkM0MEE3MzI0NTE0OThB
MDA4NzZEQTAgLyogcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2VfcmVzdWx0LmggKi8sCiAJCQkJ
MEZDNDBBQUYyNDUxNDk4RjAwODc2REEwIC8qIHBhc19wYWdlX3NoYXJpbmdfcG9vbC5jICovLAog
CQkJCTBGQzQwQUE5MjQ1MTQ5OEUwMDg3NkRBMCAvKiBwYXNfcGFnZV9zaGFyaW5nX3Bvb2wuaCAq
LywKLQkJCQkwRkM0MEE3MzI0NTE0OThBMDA4NzZEQTAgLyogcGFzX3BhZ2Vfc2hhcmluZ19wb29s
X3Rha2VfcmVzdWx0LmggKi8sCiAJCQkJMEY4NzAwNEMyNUFGOEExOTAwMEUxQUJGIC8qIHBhc19w
YXlsb2FkX3Jlc2VydmF0aW9uX3BhZ2VfbGlzdC5jICovLAogCQkJCTBGODcwMDVDMjVBRjhBMUEw
MDBFMUFCRiAvKiBwYXNfcGF5bG9hZF9yZXNlcnZhdGlvbl9wYWdlX2xpc3QuaCAqLywKIAkJCQkw
RkM0MEEzNzI0NTE0OTg2MDA4NzZEQTAgLyogcGFzX3BoeXNpY2FsX21lbW9yeV9zeW5jaHJvbml6
YXRpb25fc3R5bGUuaCAqLywKQEAgLTE4MDUsMTEgKzE3NTIsMTEgQEAKIAkJCQkwRkM0MEE0MDI0
NTE0OTg3MDA4NzZEQTAgLyogcGFzX3JhY2VfdGVzdF9ob29rcy5oICovLAogCQkJCTBGQzQwQTFG
MjQ1MTQ5ODUwMDg3NkRBMCAvKiBwYXNfcmFuZG9tLmMgKi8sCiAJCQkJMEZDNDBBODQyNDUxNDk4
QzAwODc2REEwIC8qIHBhc19yYW5kb20uaCAqLywKLQkJCQkwRkM0MEEyNzI0NTE0OTg1MDA4NzZE
QTAgLyogcGFzX3JhbmdlLmggKi8sCi0JCQkJMEZDNDBBNzUyNDUxNDk4QjAwODc2REEwIC8qIHBh
c19yYW5nZTE2LmggKi8sCiAJCQkJMEY4NzAwNTQyNUFGOEExQTAwMEUxQUJGIC8qIHBhc19yYW5n
ZV9iZWdpbl9taW5faGVhcC5oICovLAogCQkJCTBGQzQwQUQ4MjQ1MTQ5OTIwMDg3NkRBMCAvKiBw
YXNfcmFuZ2VfbG9ja2VkX21vZGUuaCAqLywKIAkJCQkwRkM0MEFCQzI0NTE0OTkwMDA4NzZEQTAg
LyogcGFzX3JhbmdlX21pbl9oZWFwLmggKi8sCisJCQkJMEZDNDBBMjcyNDUxNDk4NTAwODc2REEw
IC8qIHBhc19yYW5nZS5oICovLAorCQkJCTBGQzQwQTc1MjQ1MTQ5OEIwMDg3NkRBMCAvKiBwYXNf
cmFuZ2UxNi5oICovLAogCQkJCTBGQzQwQTQ0MjQ1MTQ5ODcwMDg3NkRBMCAvKiBwYXNfcmVhbGxv
Y2F0ZV9mcmVlX21vZGUuaCAqLywKIAkJCQkwRkM0MEE4NjI0NTE0OThDMDA4NzZEQTAgLyogcGFz
X3JlYWxsb2NhdGVfaGVhcF90ZWxlcG9ydF9ydWxlLmggKi8sCiAJCQkJMEZDNDBBQkYyNDUxNDk5
MDAwODc2REEwIC8qIHBhc19yZWRfYmxhY2tfdHJlZS5jICovLApAQCAtMTgyMyw2NyArMTc3MCw2
MCBAQAogCQkJCTBGQzQwQTZEMjQ1MTQ5OEEwMDg3NkRBMCAvKiBwYXNfc2NhdmVuZ2VyLmMgKi8s
CiAJCQkJMEZDNDBBNTcyNDUxNDk4ODAwODc2REEwIC8qIHBhc19zY2F2ZW5nZXIuaCAqLywKIAkJ
CQkwRkM0MEE3MDI0NTE0OThBMDA4NzZEQTAgLyogcGFzX3NlZ21lbnRlZF92ZWN0b3IuaCAqLywK
LQkJCQkwRjhFNzg1QzI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19k
aXJlY3RvcnkuYyAqLywKLQkJCQkwRjhFNzg1NzI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX3NlZ3Jl
Z2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkuaCAqLywKLQkJCQkwRjhFNzg1MjI0Nzg3Mzk0MDBFMTI0
QTYgLyogcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3LmMgKi8sCi0JCQkJMEY4RTc4NTkyNDc4
NzM5NTAwRTEyNEE2IC8qIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldy5oICovLAotCQkJCTBG
QzQwQTI0MjQ1MTQ5ODUwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkuYyAqLywK
LQkJCQkwRkM0MEE2RjI0NTE0OThBMDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5
LmggKi8sCisJCQkJMEZGRjI0QkQyNkEwRUZDQTAwNjAzNDREIC8qIHBhc19zZWdyZWdhdGVkX2Rl
YWxsb2NhdGlvbl9tb2RlLmggKi8sCiAJCQkJMEZDNDBBOTAyNDUxNDk4QzAwODc2REEwIC8qIHBh
c19zZWdyZWdhdGVkX2RpcmVjdG9yeV9iaXRfcmVmZXJlbmNlLmggKi8sCiAJCQkJMEY4NzAwNTgy
NUFGOEExQTAwMEUxQUJGIC8qIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9maXJzdF9lbGlnaWJs
ZV9raW5kLmggKi8sCiAJCQkJMEZDNDBBODAyNDUxNDk4QjAwODc2REEwIC8qIHBhc19zZWdyZWdh
dGVkX2RpcmVjdG9yeV9pbmxpbmVzLmggKi8sCiAJCQkJMEZDNDBBRUUyNDUxNDk5MzAwODc2REEw
IC8qIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9raW5kLmggKi8sCisJCQkJMEZDNDBBMjQyNDUx
NDk4NTAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeS5jICovLAorCQkJCTBGQzQw
QTZGMjQ1MTQ5OEEwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkuaCAqLywKKwkJ
CQkwRjE4RjgzQzI1QzM0Njc3MDA3MjFDMkEgLyogcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3Zp
ZXdfaW5saW5lcy5oICovLAogCQkJCTBGQzQwQUU2MjQ1MTQ5OTMwMDg3NkRBMCAvKiBwYXNfc2Vn
cmVnYXRlZF9leGNsdXNpdmVfdmlldy5jICovLAogCQkJCTBGQzQwQTZCMjQ1MTQ5OEEwMDg3NkRB
MCAvKiBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldy5oICovLAotCQkJCTBGMThGODNDMjVD
MzQ2NzcwMDcyMUMyQSAvKiBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19pbmxpbmVzLmgg
Ki8sCi0JCQkJMEY4RTc4NTQyNDc4NzM5NTAwRTEyNEE2IC8qIHBhc19zZWdyZWdhdGVkX2V4Y2x1
c2l2ZV92aWV3X293bmVyc2hpcF9raW5kLmggKi8sCi0JCQkJMEY4RTc4NTUyNDc4NzM5NTAwRTEy
NEE2IC8qIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeS5jICovLAotCQkJCTBG
OEU3ODVEMjQ3ODczOTUwMEUxMjRBNiAvKiBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJl
Y3RvcnkuaCAqLywKLQkJCQkwRjhFNzg1QjI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX3NlZ3JlZ2F0
ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2lubGluZXMuaCAqLywKLQkJCQkwRkM0MEFEQzI0NTE0
OTkyMDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfaGVhcC5jICovLAotCQkJCTBGQzQwQTJGMjQ1
MTQ5ODYwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9oZWFwLmggKi8sCiAJCQkJMEZDNDBBMjAy
NDUxNDk4NTAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX2hlYXBfaW5saW5lcy5oICovLAogCQkJ
CTBGQzQwQTdGMjQ1MTQ5OEIwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9oZWFwX2xvb2t1cF9r
aW5kLmggKi8sCiAJCQkJMEZDNDBBNTkyNDUxNDk4OTAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVk
X2hlYXBfcGFnZV9zaGFyaW5nX21vZGUuaCAqLywKLQkJCQkwRkM0MEFERjI0NTE0OTkyMDA4NzZE
QTAgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZS5jICovLAotCQkJCTBGQzQwQTM4MjQ1MTQ5ODYwMDg3
NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9wYWdlLmggKi8sCisJCQkJMEZDNDBBREMyNDUxNDk5MjAw
ODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX2hlYXAuYyAqLywKKwkJCQkwRkM0MEEyRjI0NTE0OTg2
MDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfaGVhcC5oICovLAogCQkJCTBGNUZFN0QxMjVCNjIx
MEMwMDE4NTlGQyAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2FuZF9jb25maWcuaCAqLywKLQkJCQkw
RkM0MEE0MTI0NTE0OTg3MDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcuYyAq
LywKLQkJCQkwRkM0MEFEMTI0NTE0OTkxMDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9j
b25maWcuaCAqLywKIAkJCQkwRkM0MEFEQTI0NTE0OTkyMDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9jb25maWdfaW5saW5lcy5oICovLAogCQkJCTBGQzQwQUU1MjQ1MTQ5OTMwMDg3NkRB
MCAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kLmMgKi8sCiAJCQkJMEZDNDBBNzYy
NDUxNDk4QjAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmQuZGVmICov
LAogCQkJCTBGQzQwQTVBMjQ1MTQ5ODkwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2Nv
bmZpZ19raW5kLmggKi8sCi0JCQkJMEZDNDBBOTcyNDUxNDk4RDAwODc2REEwIC8qIHBhc19zZWdy
ZWdhdGVkX3BhZ2VfY29uZmlnX3V0aWxzLmggKi8sCiAJCQkJMEZDNDBBNTUyNDUxNDk4ODAwODc2
REEwIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3V0aWxzX2lubGluZXMuaCAqLywKKwkJ
CQkwRkM0MEE5NzI0NTE0OThEMDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdf
dXRpbHMuaCAqLywKIAkJCQkwRjVGRTdDOTI1QjYyMTBCMDAxODU5RkMgLyogcGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9jb25maWdfdmFyaWFudC5oICovLAorCQkJCTBGQzQwQTQxMjQ1MTQ5ODcwMDg3NkRB
MCAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZy5jICovLAorCQkJCTBGQzQwQUQxMjQ1MTQ5
OTEwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZy5oICovLAogCQkJCTBGQzQw
QUFDMjQ1MTQ5OEUwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2VtcHRpbmVzc19raW5k
LmggKi8sCiAJCQkJMEZDNDBBOTkyNDUxNDk4RDAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX3Bh
Z2VfZ3JhbnVsZV91c2VfY291bnQuaCAqLywKIAkJCQkwRkM0MEE2NzI0NTE0OThBMDA4NzZEQTAg
LyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9oZWFkZXJfcGxhY2VtZW50X21vZGUuaCAqLywKIAkJCQkw
RkM0MEFERDI0NTE0OTkyMDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9pbmxpbmVzLmgg
Ki8sCisJCQkJMEZDNDBBREYyNDUxNDk5MjAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2Uu
YyAqLywKKwkJCQkwRkM0MEEzODI0NTE0OTg2MDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZS5oICovLAorCQkJCTBGQzQwQURFMjQ1MTQ5OTIwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9w
YXJ0aWFsX3ZpZXdfaW5saW5lcy5oICovLAogCQkJCTBGQzQwQTNDMjQ1MTQ5ODcwMDg3NkRBMCAv
KiBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXcuYyAqLywKIAkJCQkwRkM0MEEyMTI0NTE0OTg1
MDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3LmggKi8sCi0JCQkJMEZDNDBB
REUyNDUxNDk5MjAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld19pbmxpbmVz
LmggKi8sCisJCQkJMEZDNDBBRjcyNDUxNDk5NDAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX3No
YXJlZF9oYW5kbGVfaW5saW5lcy5oICovLAogCQkJCTBGQzQwQUYzMjQ1MTQ5OTQwMDg3NkRBMCAv
KiBwYXNfc2VncmVnYXRlZF9zaGFyZWRfaGFuZGxlLmMgKi8sCiAJCQkJMEZDNDBBNkEyNDUxNDk4
QTAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9oYW5kbGUuaCAqLywKLQkJCQkwRkM0
MEFGNzI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX2hhbmRsZV9pbmxp
bmVzLmggKi8sCiAJCQkJMEZDNDBBNTMyNDUxNDk4ODAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVk
X3NoYXJlZF9wYWdlX2RpcmVjdG9yeS5jICovLAogCQkJCTBGQzQwQUJCMjQ1MTQ5OEYwMDg3NkRB
MCAvKiBwYXNfc2VncmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJlY3RvcnkuaCAqLywKKwkJCQkwRkM0
MEE4ODI0NTE0OThDMDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXdfaW5saW5l
cy5oICovLAogCQkJCTBGQzQwQTQ5MjQ1MTQ5ODcwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9z
aGFyZWRfdmlldy5jICovLAogCQkJCTBGQzQwQTMyMjQ1MTQ5ODYwMDg3NkRBMCAvKiBwYXNfc2Vn
cmVnYXRlZF9zaGFyZWRfdmlldy5oICovLAotCQkJCTBGQzQwQTg4MjQ1MTQ5OEMwMDg3NkRBMCAv
KiBwYXNfc2VncmVnYXRlZF9zaGFyZWRfdmlld19pbmxpbmVzLmggKi8sCisJCQkJMEZGRjI0QzEy
NkEwRUZDQTAwNjAzNDREIC8qIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2NyZWF0aW9u
X21vZGUuaCAqLywKKwkJCQkwRkM0MEEyMjI0NTE0OTg1MDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnlfaW5saW5lcy5oICovLAogCQkJCTBGQzQwQUFCMjQ1MTQ5OEUwMDg3
NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeS5jICovLAogCQkJCTBGQzQwQUY2
MjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeS5oICovLAot
CQkJCTBGQzQwQTIyMjQ1MTQ5ODUwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeV9pbmxpbmVzLmggKi8sCi0JCQkJMEZDNDBBNkUyNDUxNDk4QTAwODc2REEwIC8qIHBhc19z
ZWdyZWdhdGVkX3ZpZXcuYyAqLywKLQkJCQkwRkM0MEFFRjI0NTE0OTkzMDA4NzZEQTAgLyogcGFz
X3NlZ3JlZ2F0ZWRfdmlldy5oICovLAogCQkJCTBGMThGODU3MjVDMzQ3RjMwMDcyMUMyQSAvKiBw
YXNfc2VncmVnYXRlZF92aWV3X2FsbG9jYXRvcl9pbmxpbmVzLmggKi8sCi0JCQkJMEY4RTc4NUUy
NDc4NzM5NTAwRTEyNEE2IC8qIHBhc19zZWdyZWdhdGVkX3ZpZXdfaW5saW5lcy5oICovLAogCQkJ
CTBGQzQwQTg1MjQ1MTQ5OEMwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF92aWV3X2tpbmQuaCAq
LywKLQkJCQkwRkM0MEFDMDI0NTE0OTkwMDA4NzZEQTAgLyogcGFzX3NoYXJlZF9oYW5kbGVfb3Jf
cGFnZS5oICovLAotCQkJCTBGNUZFN0RCMjVCNjIxMEQwMDE4NTlGQyAvKiBwYXNfc2hhcmVkX2hh
bmRsZV9vcl9wYWdlX2JvdW5kYXJ5LmggKi8sCisJCQkJMEZDNDBBNkUyNDUxNDk4QTAwODc2REEw
IC8qIHBhc19zZWdyZWdhdGVkX3ZpZXcuYyAqLywKKwkJCQkwRkM0MEFFRjI0NTE0OTkzMDA4NzZE
QTAgLyogcGFzX3NlZ3JlZ2F0ZWRfdmlldy5oICovLAogCQkJCTBGNUZFN0NGMjVCNjIxMEMwMDE4
NTlGQyAvKiBwYXNfc2hhcmVkX2hhbmRsZV9vcl9wYWdlX2JvdW5kYXJ5X2lubGluZXMuaCAqLywK
KwkJCQkwRjVGRTdEQjI1QjYyMTBEMDAxODU5RkMgLyogcGFzX3NoYXJlZF9oYW5kbGVfb3JfcGFn
ZV9ib3VuZGFyeS5oICovLAogCQkJCTBGQzQwQUFEMjQ1MTQ5OEUwMDg3NkRBMCAvKiBwYXNfc2hh
cmVkX2hhbmRsZV9vcl9wYWdlX2lubGluZXMuaCAqLywKKwkJCQkwRkM0MEFDMDI0NTE0OTkwMDA4
NzZEQTAgLyogcGFzX3NoYXJlZF9oYW5kbGVfb3JfcGFnZS5oICovLAogCQkJCTBGQ0NEMTQyMjY1
NjAxODYwMDE3MUExRiAvKiBwYXNfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5X2J5X3NpemUuYyAqLywK
IAkJCQkwRkNDRDE0MzI2NTYwMTg2MDAxNzFBMUYgLyogcGFzX3NoYXJlZF9wYWdlX2RpcmVjdG9y
eV9ieV9zaXplLmggKi8sCiAJCQkJMEZDNDBBNDYyNDUxNDk4NzAwODc2REEwIC8qIHBhc19zaW1w
bGVfZnJlZV9oZWFwX2RlY2xhcmF0aW9ucy5kZWYgKi8sCkBAIC0xODk0LDExICsxODM0LDExIEBA
CiAJCQkJMEZDNDBBOUIyNDUxNDk4RDAwODc2REEwIC8qIHBhc19zaW1wbGVfbGFyZ2VfZnJlZV9o
ZWFwLmggKi8sCiAJCQkJMEZDNDBBMjYyNDUxNDk4NTAwODc2REEwIC8qIHBhc19zaW1wbGVfdHlw
ZS5oICovLAogCQkJCTBGOTlGOTg2MjVDQjJDRDEwMEVFRTQ0OSAvKiBwYXNfc2l6ZV90aHVuay5o
ICovLAorCQkJCTBGQzQwQTJBMjQ1MTQ5ODUwMDg3NkRBMCAvKiBwYXNfc2tpcF9saXN0X2lubGlu
ZXMuaCAqLywKIAkJCQkwRkM0MEFBRTI0NTE0OThGMDA4NzZEQTAgLyogcGFzX3NraXBfbGlzdC5j
ICovLAogCQkJCTBGQzQwQUM0MjQ1MTQ5OTAwMDg3NkRBMCAvKiBwYXNfc2tpcF9saXN0LmggKi8s
Ci0JCQkJMEZDNDBBMkEyNDUxNDk4NTAwODc2REEwIC8qIHBhc19za2lwX2xpc3RfaW5saW5lcy5o
ICovLAotCQkJCTBGQzQwQTkyMjQ1MTQ5OEQwMDg3NkRBMCAvKiBwYXNfc2xvd19wYXRoX21vZGUu
aCAqLywKIAkJCQkwRkM0MEE2MTI0NTE0OTg5MDA4NzZEQTAgLyogcGFzX3Nsb3dfcGF0aF9tb2Rl
X3ByZWZpeC5oICovLAorCQkJCTBGQzQwQTkyMjQ1MTQ5OEQwMDg3NkRBMCAvKiBwYXNfc2xvd19w
YXRoX21vZGUuaCAqLywKIAkJCQkwRkM0MEFENTI0NTE0OTkxMDA4NzZEQTAgLyogcGFzX3NtYWxs
X2xhcmdlX21hcF9lbnRyeS5oICovLAogCQkJCTBGQzQwQUVCMjQ1MTQ5OTMwMDg3NkRBMCAvKiBw
YXNfc25wcmludGYuaCAqLywKIAkJCQkwRkM0MEExRTI0NTE0OTg0MDA4NzZEQTAgLyogcGFzX3N0
YXR1c19yZXBvcnRlci5jICovLApAQCAtMTkwNyw0OCArMTg0Nyw0NSBAQAogCQkJCTBGQzQwQUI5
MjQ1MTQ5OEYwMDg3NkRBMCAvKiBwYXNfc3RyZWFtLmggKi8sCiAJCQkJMEZDNDBBOTUyNDUxNDk4
RDAwODc2REEwIC8qIHBhc19zdHJpbmdfc3RyZWFtLmMgKi8sCiAJCQkJMEZDNDBBM0YyNDUxNDk4
NzAwODc2REEwIC8qIHBhc19zdHJpbmdfc3RyZWFtLmggKi8sCi0JCQkJMEY4NzAwODUyNUFGOTQ2
MTAwMEUxQUJGIC8qIHBhc19zdWJwYWdlX21hcC5jICovLAotCQkJCTBGODcwMDg0MjVBRjk0NjEw
MDBFMUFCRiAvKiBwYXNfc3VicGFnZV9tYXAuaCAqLywKLQkJCQkwRjg3MDA4MzI1QUY5NDYxMDAw
RTFBQkYgLyogcGFzX3N1YnBhZ2VfbWFwX2VudHJ5LmMgKi8sCi0JCQkJMEY4NzAwODYyNUFGOTQ2
MTAwMEUxQUJGIC8qIHBhc19zdWJwYWdlX21hcF9lbnRyeS5oICovLAotCQkJCTBGQzQwQTdDMjQ1
MTQ5OEIwMDg3NkRBMCAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlLmMgKi8sCi0JCQkJMEZDNDBB
QzcyNDUxNDk5MDAwODc2REEwIC8qIHBhc190aHJlYWRfbG9jYWxfY2FjaGUuaCAqLywKLQkJCQkw
RkM0MEE2MjI0NTE0OTg5MDA4NzZEQTAgLyogcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXQu
YyAqLywKLQkJCQkwRkM0MEE4MjI0NTE0OThCMDA4NzZEQTAgLyogcGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9sYXlvdXQuaCAqLywKKwkJCQkwRkZGMjRCODI2QTBFRkNBMDA2MDM0NEQgLyogcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9raW5kLmggKi8sCiAJCQkJMEY4RTgzMjcyNDky
RUFGMzAwNDZEN0Y4IC8qIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUuYyAqLywK
IAkJCQkwRjhFODMyODI0OTJFQUYzMDA0NkQ3RjggLyogcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9s
YXlvdXRfbm9kZS5oICovLAorCQkJCTBGQzQwQTYyMjQ1MTQ5ODkwMDg3NkRBMCAvKiBwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX2xheW91dC5jICovLAorCQkJCTBGQzQwQTgyMjQ1MTQ5OEIwMDg3NkRB
MCAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dC5oICovLAogCQkJCTBGQzQwQUEyMjQ1
MTQ5OEUwMDg3NkRBMCAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX25vZGUuYyAqLywKIAkJCQkw
RkM0MEFBNzI0NTE0OThFMDA4NzZEQTAgLyogcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9ub2RlLmgg
Ki8sCisJCQkJMEZDNDBBN0MyNDUxNDk4QjAwODc2REEwIC8qIHBhc190aHJlYWRfbG9jYWxfY2Fj
aGUuYyAqLywKKwkJCQkwRkM0MEFDNzI0NTE0OTkwMDA4NzZEQTAgLyogcGFzX3RocmVhZF9sb2Nh
bF9jYWNoZS5oICovLAogCQkJCTBGQzQwQTc4MjQ1MTQ5OEIwMDg3NkRBMCAvKiBwYXNfdGlueV9s
YXJnZV9tYXBfZW50cnkuaCAqLywKIAkJCQkwRkM0MEFDNTI0NTE0OTkwMDA4NzZEQTAgLyogcGFz
X3RyZWVfZGlyZWN0aW9uLmggKi8sCiAJCQkJMEY4QTgwMUMyNUNGOTM4QTAwNzkwQjRBIC8qIHBh
c190cmlfc3RhdGUuaCAqLywKLQkJCQkwRkM0MEE2NTI0NTE0OTg5MDA4NzZEQTAgLyogcGFzX3Ry
eV9hbGxvY2F0ZS5oICovLAogCQkJCTBGQzQwQTUyMjQ1MTQ5ODgwMDg3NkRBMCAvKiBwYXNfdHJ5
X2FsbG9jYXRlX2FycmF5LmggKi8sCiAJCQkJMEZDNDBBMzkyNDUxNDk4NjAwODc2REEwIC8qIHBh
c190cnlfYWxsb2NhdGVfY29tbW9uLmggKi8sCiAJCQkJMEZDNDBBODcyNDUxNDk4QzAwODc2REEw
IC8qIHBhc190cnlfYWxsb2NhdGVfaW50cmluc2ljX3ByaW1pdGl2ZS5oICovLAogCQkJCTBGQzQw
QTJCMjQ1MTQ5ODUwMDg3NkRBMCAvKiBwYXNfdHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZS5oICovLAor
CQkJCTBGQzQwQTY1MjQ1MTQ5ODkwMDg3NkRBMCAvKiBwYXNfdHJ5X2FsbG9jYXRlLmggKi8sCiAJ
CQkJMEZDNDBBMzAyNDUxNDk4NjAwODc2REEwIC8qIHBhc190cnlfcmVhbGxvY2F0ZS5oICovLAog
CQkJCTBGNTE5M0Y0MjY2QzQyQkYwMDQ4M0EyQyAvKiBwYXNfdHJ5X3Nocmluay5oICovLAogCQkJ
CTBGQzQwQTc5MjQ1MTQ5OEIwMDg3NkRBMCAvKiBwYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHQu
aCAqLywKLQkJCQkwRkM0MEEzMTI0NTE0OTg2MDA4NzZEQTAgLyogcGFzX3V0aWxpdHlfaGVhcC5j
ICovLAotCQkJCTBGQzQwQUQwMjQ1MTQ5OTEwMDg3NkRBMCAvKiBwYXNfdXRpbGl0eV9oZWFwLmgg
Ki8sCiAJCQkJMEZDNDBBMkMyNDUxNDk4NTAwODc2REEwIC8qIHBhc191dGlsaXR5X2hlYXBfY29u
ZmlnLmMgKi8sCiAJCQkJMEZDNDBBOUQyNDUxNDk4RDAwODc2REEwIC8qIHBhc191dGlsaXR5X2hl
YXBfY29uZmlnLmggKi8sCiAJCQkJMEZDNDBBMUMyNDUxNDk4NDAwODc2REEwIC8qIHBhc191dGls
aXR5X2hlYXBfc3VwcG9ydC5oICovLAorCQkJCTBGQzQwQTMxMjQ1MTQ5ODYwMDg3NkRBMCAvKiBw
YXNfdXRpbGl0eV9oZWFwLmMgKi8sCisJCQkJMEZDNDBBRDAyNDUxNDk5MTAwODc2REEwIC8qIHBh
c191dGlsaXR5X2hlYXAuaCAqLywKKwkJCQkwRkM0MEE1QzI0NTE0OTg5MDA4NzZEQTAgLyogcGFz
X3V0aWxzX3ByZWZpeC5oICovLAogCQkJCTBGQzQwQUU3MjQ1MTQ5OTMwMDg3NkRBMCAvKiBwYXNf
dXRpbHMuYyAqLywKIAkJCQkwRkM0MEFEMzI0NTE0OTkxMDA4NzZEQTAgLyogcGFzX3V0aWxzLmgg
Ki8sCi0JCQkJMEZDNDBBNUMyNDUxNDk4OTAwODc2REEwIC8qIHBhc191dGlsc19wcmVmaXguaCAq
LywKIAkJCQkwRjg3MDA4NzI1QUY5NDYyMDAwRTFBQkYgLyogcGFzX3ZlcnNpb25lZF9maWVsZC5j
ICovLAogCQkJCTBGQzQwQTJEMjQ1MTQ5ODYwMDg3NkRBMCAvKiBwYXNfdmVyc2lvbmVkX2ZpZWxk
LmggKi8sCisJCQkJMEZDNDBBRTAyNDUxNDk5MjAwODc2REEwIC8qIHBhc192aXJ0dWFsX3Jhbmdl
X21pbl9oZWFwLmggKi8sCiAJCQkJMEZDNDBBQkUyNDUxNDk5MDAwODc2REEwIC8qIHBhc192aXJ0
dWFsX3JhbmdlLmMgKi8sCiAJCQkJMEZDNDBBRUQyNDUxNDk5MzAwODc2REEwIC8qIHBhc192aXJ0
dWFsX3JhbmdlLmggKi8sCi0JCQkJMEZDNDBBRTAyNDUxNDk5MjAwODc2REEwIC8qIHBhc192aXJ0
dWFsX3JhbmdlX21pbl9oZWFwLmggKi8sCiAJCQkJMEZDNDBBRUEyNDUxNDk5MzAwODc2REEwIC8q
IHBhc196ZXJvX21vZGUuaCAqLywKLQkJCQkwRjg3MDBDRTI1QjBDQjAzMDAwRTFBQkYgLyogdGhp
bmd5X2hlYXAuYyAqLywKLQkJCQkwRjg3MDBDQTI1QjBDQjAyMDAwRTFBQkYgLyogdGhpbmd5X2hl
YXAuaCAqLywKIAkJCQkwRjg3MDBDRDI1QjBDQjAyMDAwRTFBQkYgLyogdGhpbmd5X2hlYXBfY29u
ZmlnLmMgKi8sCiAJCQkJMEY4NzAwQ0MyNUIwQ0IwMjAwMEUxQUJGIC8qIHRoaW5neV9oZWFwX2Nv
bmZpZy5oICovLAogCQkJCTBGODcwMENCMjVCMENCMDIwMDBFMUFCRiAvKiB0aGluZ3lfaGVhcF9w
cmVmaXguaCAqLywKKwkJCQkwRjg3MDBDRTI1QjBDQjAzMDAwRTFBQkYgLyogdGhpbmd5X2hlYXAu
YyAqLywKKwkJCQkwRjg3MDBDQTI1QjBDQjAyMDAwRTFBQkYgLyogdGhpbmd5X2hlYXAuaCAqLywK
IAkJCSk7CiAJCQluYW1lID0gbGlicGFzOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAg
LTIxNzcsNiArMjExNCw3IEBACiAJCQkJRkVDM0EzOTMyNDg0NkE4MTAwMzk1QjU0IC8qIEdpZ2Fj
YWdlQ29uZmlnLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRUMzQTM5NTI0ODQ3MUZFMDAzOTVCNTQg
LyogR2lnYWNhZ2VLaW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDAwMjc0OTE4Rjg5QzEzMDAx
MTVDOTcgLyogSGVhcC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZDQkQwMzYyNkFERjk3NDAwRDI2
RDY4IC8qIHBhc19wYWdlX3NoYXJpbmdfcG9vbF9zY2F2ZW5nZV9yZXN1bHQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUVCMTdEMTEyMjNCRkNEN0EwMDIwOTNBNyAvKiBIZWFwQ29uc3RhbnRzLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRjVCRjE0NzFGMjJBOEIxMDAyOUQ5MUQgLyogSGVhcEtpbmQuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGOEE4MTM1MjVGODNFMjUwMDc5MEI0QSAvKiBob3RiaXRfaGVh
cC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMTg5LDYgKzIxMjcsNyBAQAogCQkJCTBGNTE2RUU5MjQ1
NjFBRTkwMDRFMkI4RCAvKiBpc29faGVhcF9pbm5hcmRzLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RjUyOURFMTI0NTU0NjNGMDAzODVBOEMgLyogaXNvX2hlYXBfcmVmLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRkM0MDk0MDI0NTE0OTQ0MDA4NzZEQTAgLyogaXNvX3Rlc3RfaGVhcC5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMEZGRjI0QzMyNkEwRUZDQTAwNjAzNDREIC8qIHBhc190aHJlYWRfbG9jYWxf
Y2FjaGVfbGF5b3V0X25vZGVfa2luZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDA5NTMyNDUx
NDk0NDAwODc2REEwIC8qIGlzb190ZXN0X2hlYXBfY29uZmlnLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRjdFQjgzQzFGOTU0MUIwMDBGMUFCQ0IgLyogSXNvQWxsb2NhdG9yLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRjdFQjgyNjFGOTU0MUIwMDBGMUFCQ0IgLyogSXNvQWxsb2NhdG9ySW5saW5lcy5o
IGluIEhlYWRlcnMgKi8sCkBAIC0yMjE5LDYgKzIxNTgsNyBAQAogCQkJCTBGN0VCODI3MUY5NTQx
QjAwMEYxQUJDQiAvKiBJc29UTFNEZWFsbG9jYXRvckVudHJ5SW5saW5lcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEY3RUI4MkQxRjk1NDFCMDAwRjFBQkNCIC8qIElzb1RMU0VudHJ5LmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRjdFQjgzNTFGOTU0MUIwMDBGMUFCQ0IgLyogSXNvVExTRW50cnlJbmxp
bmVzLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjQ1RDVBRjI2QUI3ODYwMDBDMzVEOTMgLyogcGFz
X2xvY2FsX2FsbG9jYXRvcl9raW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjdFQjg0NjFGOTU0
MUIwMDBGMUFCQ0IgLyogSXNvVExTSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY3RUI4
NDAxRjk1NDFCMDAwRjFBQkNCIC8qIElzb1RMU0xheW91dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEY1MTkzRUYyNjZDNDJBRDAwNDgzQTJDIC8qIGppdF9oZWFwLmggaW4gSGVhZGVycyAqLywKQEAg
LTIyNDMsMTAgKzIxODMsOCBAQAogCQkJCTBGQzQwOTVBMjQ1MTQ5NDQwMDg3NkRBMCAvKiBwYXNf
YWxpZ25lZF9hbGxvY2F0aW9uX3Jlc3VsdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDA5NUIy
NDUxNDk0NDAwODc2REEwIC8qIHBhc19hbGlnbmVkX2FsbG9jYXRvci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEZDNDA5NjAyNDUxNDk0NDAwODc2REEwIC8qIHBhc19hbGlnbm1lbnQuaCBpbiBIZWFk
ZXJzICovLAotCQkJCTBGODdGRkY2MjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYWxsX2JpYXNpbmdf
ZGlyZWN0b3JpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMUJGRDQ4MjY2NDVBQzcwMENFQzI4
RCAvKiBwYXNfYWxsX2hlYXBfY29uZmlncy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDA5REUy
NDUxNDk2NDAwODc2REEwIC8qIHBhc19hbGxfaGVhcHMuaCBpbiBIZWFkZXJzICovLAotCQkJCTBG
MUFFQ0VDMjY1ODFCNUUwMDBDNTIxOCAvKiBwYXNfYWxsX21hZ2F6aW5lcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEZDNDA5QzgyNDUxNDk2NDAwODc2REEwIC8qIHBhc19hbGxfc2hhcmVkX3BhZ2Vf
ZGlyZWN0b3JpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwOURGMjQ1MTQ5NjQwMDg3NkRB
MCAvKiBwYXNfYWxsb2NhdGlvbl9jYWxsYmFja3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQw
OUQ3MjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNfYWxsb2NhdGlvbl9jb25maWcuaCBpbiBIZWFkZXJz
ICovLApAQCAtMjI1Niw2ICsyMTk0LDcgQEAKIAkJCQkwRjc1NDk4MjI0ODY5NzQwMDAyQTRDN0Qg
LyogcGFzX2FsbG9jYXRvcl9pbmRleC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDA5RTMyNDUx
NDk2NDAwODc2REEwIC8qIHBhc19hbGxvY2F0b3Jfc2NhdmVuZ2VfYWN0aW9uLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRkM0MDlGODI0NTE0OTY0MDA4NzZEQTAgLyogcGFzX2Jhc2VsaW5lX2FsbG9j
YXRvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZGRjI0Q0EyNkEwRUZDQTAwNjAzNDREIC8qIHBh
c19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0ci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEZDNDA5RDgyNDUxNDk2NDAwODc2REEwIC8qIHBhc19iYXNlbGluZV9hbGxv
Y2F0b3JfcmVzdWx0LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MDlEMTI0NTE0OTY0MDA4NzZE
QTAgLyogcGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl90YWJsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEY4NzAwMDQyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iYXNpY19oZWFwX2NvbmZpZ19lbnVtZXJh
dG9yX2RhdGEuaCBpbiBIZWFkZXJzICovLApAQCAtMjI2MywyMCArMjIwMiwxMyBAQAogCQkJCTBG
QzQwOUZDMjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNfYmFzaWNfaGVhcF9wYWdlX2NhY2hlcy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEZDNDA5RDQyNDUxNDk2NDAwODc2REEwIC8qIHBhc19iYXNpY19o
ZWFwX3J1bnRpbWVfY29uZmlnLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MDlFQzI0NTE0OTY0
MDA4NzZEQTAgLyogcGFzX2Jhc2ljX3NlZ3JlZ2F0ZWRfcGFnZV9jYWNoZXMuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTBGODdGRkU5MjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYmlhc2luZ19kaXJlY3Rv
cnkuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGODdGRkU4MjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNf
Ymlhc2luZ19kaXJlY3RvcnlfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY4NzAwMDIy
NUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaWFzaW5nX2RpcmVjdG9yeV9raW5kLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRkM0MEEwQjI0NTE0OTY0MDA4NzZEQTAgLyogcGFzX2JpdGZpZWxkX3ZlY3Rv
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY4NzAwMEMyNUFGODk3RDAwMEUxQUJGIC8qIHBhc19i
aXRmaXRfYWxsb2NhdGlvbl9yZXN1bHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGODdGRkU1MjVB
Rjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2FsbG9jYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEY4N0ZGRjEyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfYWxsb2NhdG9yX2lubGlu
ZXMuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGODdGRkYwMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNf
Yml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjg3RkZGODI1
QUY4OTdDMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9kaXJlY3RvcnkuaCBpbiBIZWFkZXJzICovLAot
CQkJCTBGODdGRkREMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2RpcmVjdG9yeV9hbmRf
aW5kZXguaCBpbiBIZWFkZXJzICovLAogCQkJCTBGODdGRkVGMjVBRjg5N0MwMDBFMUFCRiAvKiBw
YXNfYml0Zml0X2RpcmVjdG9yeV9pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjg3RkZG
NDI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9kaXJlY3Rvcnlfa2luZC5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJMEY4N0ZGRjIyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfZ2xvYmFs
X2RpcmVjdG9yeS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY4N0ZGRDkyNUFGODk3QzAwMEUxQUJG
IC8qIHBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
ODdGRkZEMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2hlYXAuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGODdGRkZBMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0X21heF9mcmVlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRjg3RkZGQjI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2JpdGZp
dF9wYWdlLmggaW4gSGVhZGVycyAqLywKQEAgLTIzMTEsNyArMjI0Myw2IEBACiAJCQkJMEY4RTc4
NjEyNDc4NzM5NTAwRTEyNEE2IC8qIHBhc19jb21wYWN0X2F0b21pY19wYWdlX3NoYXJpbmdfcG9v
bF9wdHIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwQTE4MjQ1MTQ5NjQwMDg3NkRBMCAvKiBw
YXNfY29tcGFjdF9hdG9taWNfcHRyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjhFNzg2MzI0Nzg3
Mzk1MDBFMTI0QTYgLyogcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3Zp
ZXdfcHRyLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjhFNzg2NDI0Nzg3Mzk1MDBFMTI0QTYgLyog
cGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0ci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDA5REMyNDUxNDk2NDAwODc2REEwIC8qIHBhc19jb21w
YWN0X2F0b21pY19zZWdyZWdhdGVkX2hlYXBfcGFnZV9zaGFyaW5nX3Bvb2xzX3B0ci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEZDNDBBMDEyNDUxNDk2NDAwODc2REEwIC8qIHBhc19jb21wYWN0X2F0
b21pY19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld19wdHIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
QzQwQTEyMjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF92
aWV3LmggaW4gSGVhZGVycyAqLywKQEAgLTIzMjksMTQgKzIyNjAsMTIgQEAKIAkJCQkwRjVGRTdF
RDI1QjYyMTBEMDAxODU5RkMgLyogcGFzX2NvbXBhY3RfcGFnZV9ncmFudWxlX3VzZV9jb3VudF9w
dHIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwOUREMjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNf
Y29tcGFjdF9wdHIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGOEU3ODZEMjQ3ODczOTUwMEUxMjRB
NiAvKiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5X3B0ci5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJMEY4RTc4NkIyNDc4NzM5NTAwRTEyNEE2IC8qIHBhc19jb21wYWN0X3Nl
Z3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEZDNDBBMTAyNDUxNDk2NDAwODc2REEwIC8qIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfaGVhcF9w
dHIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwOUY3MjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNf
Y29tcGFjdF9zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeV9wdHIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGQzQwOUM2MjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNfY29tcGFjdF9zZWdyZWdh
dGVkX3NoYXJlZF92aWV3X3B0ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDA5RTUyNDUxNDk2
NDAwODc2REEwIC8qIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfdmlldy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEZDNDA5RDMyNDUxNDk2NDAwODc2REEwIC8qIHBhc19jb21wYWN0X3NraXBfbGlzdF9u
b2RlX3B0ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDA5RUYyNDUxNDk2NDAwODc2REEwIC8q
IHBhc19jb21wYWN0X3NraXBfbGlzdF9ub2RlX3B0cl9wdHIuaCBpbiBIZWFkZXJzICovLAotCQkJ
CTBGNUZFN0UzMjVCNjIxMEQwMDE4NTlGQyAvKiBwYXNfY29tcGFjdF9zdWJwYWdlX21hcF9lbnRy
eV9wdHIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwQTE3MjQ1MTQ5NjQwMDg3NkRBMCAvKiBw
YXNfY29tcGFjdF90YWdnZWRfYXRvbWljX3B0ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1RkU3
RUUyNUI2MjEwRDAwMTg1OUZDIC8qIHBhc19jb21wYWN0X3RhZ2dlZF9wYWdlX2dyYW51bGVfdXNl
X2NvdW50X3B0ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDA5QzcyNDUxNDk2NDAwODc2REEw
IC8qIHBhc19jb21wYWN0X3RhZ2dlZF9wdHIuaCBpbiBIZWFkZXJzICovLApAQCAtMjM0NSw2ICsy
Mjc0LDcgQEAKIAkJCQkwRkM0MEEwOTI0NTE0OTY0MDA4NzZEQTAgLyogcGFzX2NvbXB1dGVfc3Vt
bWFyeV9vYmplY3RfY2FsbGJhY2tzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEEwRTI0NTE0
OTY0MDA4NzZEQTAgLyogcGFzX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDA5RkUy
NDUxNDk2NDAwODc2REEwIC8qIHBhc19jb25maWdfcHJlZml4LmggaW4gSGVhZGVycyAqLywKKwkJ
CQkwRkZGMjRDOTI2QTBFRkNBMDA2MDM0NEQgLyogcGFzX2xvY2FsX3ZpZXdfY2FjaGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGQzQwQTAzMjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNfY291bnRfbG9v
a3VwX21vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwOUM1MjQ1MTQ5NjQwMDg3NkRBMCAv
KiBwYXNfY3JlYXRlX2Jhc2ljX2hlYXBfcGFnZV9jYWNoZXNfd2l0aF9yZXNlcnZlZF9tZW1vcnku
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwOUYxMjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNfZGVh
bGxvY2F0ZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMzUzLDYgKzIyODMsNyBAQAogCQkJCTBGQzQw
OURCMjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNfZGVhbGxvY2F0b3Jfc2NhdmVuZ2VfYWN0aW9uLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRjM3M0U1NDI2NTlFQTcwMDAzNEJBOTYgLyogcGFzX2RlYnVn
X2hlYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQkM2MkM3MjY1RjE4MEMwMDVBNTcyMCAvKiBw
YXNfZGVidWdfc3BlY3RydW0uaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNDVENUIxMjZBQjc4NjAw
MEMzNUQ5MyAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRkM0MDlGNjI0NTE0OTY0MDA4NzZEQTAgLyogcGFzX2RlZmVycmVkX2RlY29t
bWl0X2xvZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY4RTgzMkMyNDkyRUFGMzAwNDZEN0Y4IC8q
IHBhc19kZXNpZ25hdGVkX2ludHJpbnNpY19oZWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjhF
ODMzMzI0OTJFQUYzMDA0NkQ3RjggLyogcGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXBfaW5s
aW5lcy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNDE0LDExICsyMzQ1LDExIEBACiAJCQkJMEZDNDBC
QzQyNDUxNDk5NDAwODc2REEwIC8qIHBhc19oZWFwX3J1bnRpbWVfY29uZmlnLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRkM0MEJCMTI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX2hlYXBfc3VtbWFyeS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBCMEQyNDUxNDk5NDAwODc2REEwIC8qIHBhc19oZWFw
X3RhYmxlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkZGMjRDMjI2QTBFRkNBMDA2MDM0NEQgLyog
cGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGQzQwQjJDMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfaGVhcF90YWJsZV9zdGF0ZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBCN0EyNDUxNDk5NDAwODc2REEwIC8qIHBhc19pbW1v
cnRhbF9oZWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEI2RjI0NTE0OTk0MDA4NzZEQTAg
LyogcGFzX2ltbXV0YWJsZV92ZWN0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNTE2RUU1MjQ1
NjE4NEYwMDRFMkI4RCAvKiBwYXNfaW50ZXJuYWxfY29uZmlnLmggaW4gSGVhZGVycyAqLywKLQkJ
CQkwRkM0MEI5MjI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jl
c3VsdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBCMkYyNDUxNDk5NDAwODc2REEwIC8qIHBh
c19pbnRyaW5zaWNfaGVhcF9zdXBwb3J0LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEI3NzI0
NTE0OTk0MDA4NzZEQTAgLyogcGFzX2xhcmdlX2ZyZWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
QzQwQjMyMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfbGFyZ2VfZnJlZV9oZWFwX2NvbmZpZy5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0yNDQwLDEzICsyMzcxLDExIEBACiAJCQkJMEZDNDBCMjgyNDUxNDk5
NDAwODc2REEwIC8qIHBhc19sb2NhbF9hbGxvY2F0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
QzQwQjJBMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX2NvbmZpZ19raW5k
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEI3MzI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX2xv
Y2FsX2FsbG9jYXRvcl9pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjhBODEzNzI1Rjgz
RTI1MDA3OTBCNEEgLyogcGFzX2xvY2FsX2FsbG9jYXRvcl9saW5lLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRkM0MEI5MzI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX2xvY2FsX2FsbG9jYXRvcl9yZWZp
bGxfbW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBCMkUyNDUxNDk5NDAwODc2REEwIC8q
IHBhc19sb2NhbF9hbGxvY2F0b3JfcmVzdWx0LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEI2
NzI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX2xvY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQw
QjdGMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfbG9ja19mcmVlX3JlYWRfcHRyX3B0cl9oYXNodGFi
bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwQjlDMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNf
bG9nLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjhFNzg2NjI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFz
X21hZ2F6aW5lLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjg3MDA2NTI1QUY4QTFCMDAwRTFBQkYg
LyogcGFzX21lZGl1bV9tZWdhcGFnZV9jYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBC
MDQyNDUxNDk5NDAwODc2REEwIC8qIHBhc19tZWdhcGFnZV9jYWNoZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEZDNDBCNUEyNDUxNDk5NDAwODc2REEwIC8qIHBhc19taW5faGVhcC5oIGluIEhlYWRl
cnMgKi8sCkBAIC0yNDk1LDggKzI0MjQsNyBAQAogCQkJCTBGODcwMDc2MjVBRjhBMUIwMDBFMUFC
RiAvKiBwYXNfcm9vdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBCMzUyNDUxNDk5NDAwODc2
REEwIC8qIHBhc19zY2F2ZW5nZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwQjREMjQ1MTQ5
OTQwMDg3NkRBMCAvKiBwYXNfc2VnbWVudGVkX3ZlY3Rvci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
MEY4RTc4NkMyNDc4NzM5NTAwRTEyNEE2IC8qIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0
b3J5LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjhFNzg2RTI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFz
X3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkZGMjRDNzI2
QTBFRkNBMDA2MDM0NEQgLyogcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19w
dHIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwQjRDMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNf
c2VncmVnYXRlZF9kaXJlY3RvcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwQjZCMjQ1MTQ5
OTQwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfYml0X3JlZmVyZW5jZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEY4NzAwNzUyNUFGOEExQjAwMEUxQUJGIC8qIHBhc19zZWdyZWdh
dGVkX2RpcmVjdG9yeV9maXJzdF9lbGlnaWJsZV9raW5kLmggaW4gSGVhZGVycyAqLywKQEAgLTI1
MDQsOSArMjQzMiw3IEBACiAJCQkJMEZDNDBCQzkyNDUxNDk5NDAwODc2REEwIC8qIHBhc19zZWdy
ZWdhdGVkX2RpcmVjdG9yeV9raW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEI0ODI0NTE0
OTk0MDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGMThGODQ1MjVDMzQ2NzcwMDcyMUMyQSAvKiBwYXNfc2VncmVnYXRlZF9leGNs
dXNpdmVfdmlld19pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjhFNzg2OTI0Nzg3Mzk1
MDBFMTI0QTYgLyogcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlwX2tpbmQu
aCBpbiBIZWFkZXJzICovLAotCQkJCTBGOEU3ODcyMjQ3ODczOTUwMEUxMjRBNiAvKiBwYXNfc2Vn
cmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOEU3
ODcwMjQ3ODczOTUwMEUxMjRBNiAvKiBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnlfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZGRjI0QzYyNkEwRUZDQTAwNjAzNDRE
IC8qIHBhc19sb2NhbF92aWV3X2NhY2hlX25vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQw
QjBFMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9oZWFwLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRkM0MEFGRjI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9p
bmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEI1QjI0NTE0OTk0MDA4NzZEQTAgLyog
cGFzX3NlZ3JlZ2F0ZWRfaGVhcF9sb29rdXBfa2luZC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNTM1
LDcgKzI0NjEsNiBAQAogCQkJCTBGQzQwQjAxMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeV9pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEJD
QTI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfdmlldy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEYxOEY4NTgyNUMzNDdGMzAwNzIxQzJBIC8qIHBhc19zZWdyZWdhdGVkX3ZpZXdfYWxs
b2NhdG9yX2lubGluZXMuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOEU3ODczMjQ3ODczOTUwMEUx
MjRBNiAvKiBwYXNfc2VncmVnYXRlZF92aWV3X2lubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGQzQwQjYxMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF92aWV3X2tpbmQuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGQzQwQjlCMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfc2hhcmVk
X2hhbmRsZV9vcl9wYWdlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjVGRTdGMDI1QjYyMTBEMDAx
ODU5RkMgLyogcGFzX3NoYXJlZF9oYW5kbGVfb3JfcGFnZV9ib3VuZGFyeS5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0yNTU3LDggKzI0ODIsNiBAQAogCQkJCTBGQzQwQUZBMjQ1MTQ5OTQwMDg3NkRBMCAv
KiBwYXNfc3RhdHVzX3JlcG9ydGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEI5NDI0NTE0
OTk0MDA4NzZEQTAgLyogcGFzX3N0cmVhbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBCMUUy
NDUxNDk5NDAwODc2REEwIC8qIHBhc19zdHJpbmdfc3RyZWFtLmggaW4gSGVhZGVycyAqLywKLQkJ
CQkwRjg3MDA4OTI1QUY5NDYyMDAwRTFBQkYgLyogcGFzX3N1YnBhZ2VfbWFwLmggaW4gSGVhZGVy
cyAqLywKLQkJCQkwRjg3MDA4QjI1QUY5NDYyMDAwRTFBQkYgLyogcGFzX3N1YnBhZ2VfbWFwX2Vu
dHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEJBMjI0NTE0OTk0MDA4NzZEQTAgLyogcGFz
X3RocmVhZF9sb2NhbF9jYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBCNUUyNDUxNDk5
NDAwODc2REEwIC8qIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0LmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRjhFODMzMDI0OTJFQUYzMDA0NkQ3RjggLyogcGFzX3RocmVhZF9sb2NhbF9jYWNo
ZV9sYXlvdXRfbm9kZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNTgwLDYgKzI1MDMsNyBAQAogCQkJ
CTBGQzQwQkFFMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfdXRpbHMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGQzQwQjNBMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfdXRpbHNfcHJlZml4LmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRkM0MEIwQzI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3ZlcnNpb25lZF9m
aWVsZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZGRjI0QzgyNkEwRUZDQTAwNjAzNDREIC8qIHBh
c19zZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl9tb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0
MEJDODI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3ZpcnR1YWxfcmFuZ2UuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGQzQwQkJCMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfdmlydHVhbF9yYW5nZV9taW5f
aGVhcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBCQzUyNDUxNDk5NDAwODc2REEwIC8qIHBh
c196ZXJvX21vZGUuaCBpbiBIZWFkZXJzICovLApAQCAtMjU5NSw2ICsyNTE5LDcgQEAKIAkJCQkx
NERENzhCQzE4RjQ4RDZCMDA5NTA3MDIgLyogU21hbGxMaW5lLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxNERENzhCRDE4RjQ4RDZCMDA5NTA3MDIgLyogU21hbGxQYWdlLmggaW4gSGVhZGVycyAqLywK
IAkJCQlFMzFFNzQ4MDIyMzhDQTVDMDA1RDA4NEEgLyogU3RhdGljUGVyUHJvY2Vzcy5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMEZGRjI0Q0MyNkEwRUZDQTAwNjAzNDREIC8qIHBhc19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5X2NyZWF0aW9uX21vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDNTcx
RjAxMjIzODhCODQwMDc3QTNDNyAvKiBTdGRMaWJFeHRyYXMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTE0REQ3OENFMThGNDhENzUwMDk1MDcwMiAvKiBTeXNjYWxsLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRjg3MDBDRjI1QjBDQjAzMDAwRTFBQkYgLyogdGhpbmd5X2hlYXAuaCBpbiBIZWFkZXJzICov
LApAQCAtMjY5NSw2ICsyNjIwLDcgQEAKIAkJCQkwRjdFQjgyRjFGOTU0MUIwMDBGMUFCQ0IgLyog
QWxsSXNvSGVhcHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTRGMjcxQzMxOEVBMzk3ODAwOEMx
NTJGIC8qIEFsbG9jYXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2NTk5QzVDQzFFQzNGMTU5
MDBBMkY3QkIgLyogQXZhaWxhYmxlTWVtb3J5LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGNDVE
NUIwMjZBQjc4NjAwMEMzNUQ5MyAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRh
LmMgaW4gU291cmNlcyAqLywKIAkJCQkwRjUxNjc3NDFGQUQ2ODVDMDA4MjM2QTggLyogYm1hbGxv
Yy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjhBODEzNjI1RjgzRTI1MDA3OTBCNEEgLyogYm1h
bGxvY19oZWFwLmMgaW4gU291cmNlcyAqLywKIAkJCQkwRjhBODEyQzI1RjgzRTI1MDA3OTBCNEEg
LyogYm1hbGxvY19oZWFwX2NvbmZpZy5jIGluIFNvdXJjZXMgKi8sCkBAIC0yNzA4LDYgKzI2MzQs
NyBAQAogCQkJCTE0RjI3MUM3MThFQTM5OTAwMDhDMTUyRiAvKiBIZWFwLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUVCMTdEMTExMjNCRkNENDIwMDIwOTNBNyAvKiBIZWFwQ29uc3RhbnRzLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTBGRDU1NzMzMUY3RURCN0IwMEIxRjBBMyAvKiBIZWFwS2luZC5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQkwRkZGMjRDQjI2QTBFRkNBMDA2MDM0NEQgLyogcGFzX2xv
Y2FsX3ZpZXdfY2FjaGVfbm9kZS5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY4QTgxMkYyNUY4M0Uy
NTAwNzkwQjRBIC8qIGhvdGJpdF9oZWFwLmMgaW4gU291cmNlcyAqLywKIAkJCQkwRjhBODEyRDI1
RjgzRTI1MDA3OTBCNEEgLyogaG90Yml0X2hlYXBfY29uZmlnLmMgaW4gU291cmNlcyAqLywKIAkJ
CQkwRkM0MDk1MTI0NTE0OTQ0MDA4NzZEQTAgLyogaXNvX2hlYXAuYyBpbiBTb3VyY2VzICovLApA
QCAtMjczMSwyNSArMjY1OCwxOSBAQAogCQkJCTBGMThGODREMjVDMzQ2NzcwMDcyMUMyQSAvKiBt
aW5hbGlnbjMyX2hlYXBfY29uZmlnLmMgaW4gU291cmNlcyAqLywKIAkJCQkxNDNDQjgxQzE5MDIy
QkM5MDBCMTZBNDUgLyogTXV0ZXguY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTRGMjcxQzgxOEVB
Mzk5MDAwOEMxNTJGIC8qIE9iamVjdFR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEZGRjI0
QzQyNkEwRUZDQTAwNjAzNDREIC8qIHBhc19oZWFwX3J1bnRpbWVfY29uZmlnLmMgaW4gU291cmNl
cyAqLywKIAkJCQlFMzc4QTlERjI0NkI2ODcyMDAyOUMyQkIgLyogT2JqZWN0VHlwZVRhYmxlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTBGMThGODQ3MjVDMzQ2NzcwMDcyMUMyQSAvKiBwYWdlc2l6
ZTY0a19oZWFwLmMgaW4gU291cmNlcyAqLywKIAkJCQkwRjE4Rjg0OTI1QzM0Njc3MDA3MjFDMkEg
LyogcGFnZXNpemU2NGtfaGVhcF9jb25maWcuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGQzQwOTVE
MjQ1MTQ5NDQwMDg3NkRBMCAvKiBwYXNfYWxpZ25tZW50LmMgaW4gU291cmNlcyAqLywKLQkJCQkw
Rjg3MDAwNTI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2FsbF9iaWFzaW5nX2RpcmVjdG9yaWVzLmMg
aW4gU291cmNlcyAqLywKIAkJCQkwRkM0MDk2NDI0NTE0OTQ0MDA4NzZEQTAgLyogcGFzX2FsbF9o
ZWFwcy5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEYxQUVDRUQyNjU4MUI1RTAwMEM1MjE4IC8qIHBh
c19hbGxfbWFnYXppbmVzLmMgaW4gU291cmNlcyAqLywKIAkJCQkwRkM0MEExNTI0NTE0OTY0MDA4
NzZEQTAgLyogcGFzX2FsbF9zaGFyZWRfcGFnZV9kaXJlY3Rvcmllcy5jIGluIFNvdXJjZXMgKi8s
CiAJCQkJMEZDNDA5RjQyNDUxNDk2NDAwODc2REEwIC8qIHBhc19hbGxvY2F0aW9uX2NhbGxiYWNr
cy5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY4N0ZGRUUyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19h
bGxvY2F0aW9uX3Jlc3VsdC5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDNDA5REEyNDUxNDk2NDAw
ODc2REEwIC8qIHBhc19iYXNlbGluZV9hbGxvY2F0b3IuYyBpbiBTb3VyY2VzICovLAogCQkJCTBG
QzQwOUVEMjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX3RhYmxlLmMg
aW4gU291cmNlcyAqLywKIAkJCQkwRjUxOTNGMzI2NkM0MkFEMDA0ODNBMkMgLyogcGFzX2Jhc2lj
X2hlYXBfY29uZmlnX2VudW1lcmF0b3JfZGF0YS5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY4N0ZG
RTYyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaWFzaW5nX2RpcmVjdG9yeS5jIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMEY4NzAwMDMyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfYWxsb2NhdG9y
LmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjg3RkZERTI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2Jp
dGZpdF9iaWFzaW5nX2RpcmVjdG9yeS5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY4NzAwMDEyNUFG
ODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfZGlyZWN0b3J5LmMgaW4gU291cmNlcyAqLywKLQkJ
CQkwRjg3RkZGNTI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5
LmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjg3RkZFMDI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2Jp
dGZpdF9nbG9iYWxfc2l6ZV9jbGFzcy5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY4N0ZGRjMyNUFG
ODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfaGVhcC5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY4
NzAwMDcyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfcGFnZS5jIGluIFNvdXJjZXMgKi8s
CiAJCQkJMEY4N0ZGRTQyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWdf
a2luZC5jIGluIFNvdXJjZXMgKi8sCkBAIC0yNzc5LDYgKzI3MDAsNyBAQAogCQkJCTBGODdGRkU3
MjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfZW51bWVyYXRlX2xhcmdlX2hlYXBzLmMgaW4gU291cmNl
cyAqLywKIAkJCQkwRjg3MDAzMDI1QUY4OUM5MDAwRTFBQkYgLyogcGFzX2VudW1lcmF0ZV9zZWdy
ZWdhdGVkX2hlYXBzLmMgaW4gU291cmNlcyAqLywKIAkJCQkwRjg3MDAzNjI1QUY4OUM5MDAwRTFB
QkYgLyogcGFzX2VudW1lcmF0ZV91bmFjY291bnRlZF9wYWdlc19hc19tZXRhLmMgaW4gU291cmNl
cyAqLywKKwkJCQkwRkZGMjRDNTI2QTBFRkNBMDA2MDM0NEQgLyogcGFzX2xvY2FsX3ZpZXdfY2Fj
aGUuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGODcwMDJEMjVBRjg5QzkwMDBFMUFCRiAvKiBwYXNf
ZW51bWVyYXRvci5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY4NzAwMzkyNUFGODlDOTAwMEUxQUJG
IC8qIHBhc19lbnVtZXJhdG9yX3JlZ2lvbi5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDNDBBMDUy
NDUxNDk2NDAwODc2REEwIC8qIHBhc19lcG9jaC5jIGluIFNvdXJjZXMgKi8sCkBAIC0yODEwLDcg
KzI3MzIsNiBAQAogCQkJCTBGQzQwQkRBMjQ1MjQzQTQwMDg3NkRBMCAvKiBwYXNfbG9jay5jIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMEZDNDBCMzQyNDUxNDk5NDAwODc2REEwIC8qIHBhc19sb2NrX2Zy
ZWVfcmVhZF9wdHJfcHRyX2hhc2h0YWJsZS5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDNDBCQjIy
NDUxNDk5NDAwODc2REEwIC8qIHBhc19sb2cuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGOEU3ODYw
MjQ3ODczOTUwMEUxMjRBNiAvKiBwYXNfbWFnYXppbmUuYyBpbiBTb3VyY2VzICovLAogCQkJCTBG
ODcwMDY4MjVBRjhBMUIwMDBFMUFCRiAvKiBwYXNfbWVkaXVtX21lZ2FwYWdlX2NhY2hlLmMgaW4g
U291cmNlcyAqLywKIAkJCQkwRkM0MEI1RDI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX21lZ2FwYWdl
X2NhY2hlLmMgaW4gU291cmNlcyAqLywKIAkJCQkwRkM0MEI2QTI0NTE0OTk0MDA4NzZEQTAgLyog
cGFzX21vbm90b25pY190aW1lLmMgaW4gU291cmNlcyAqLywKQEAgLTI4MzAsMTEgKzI3NTEsOCBA
QAogCQkJCTBGQzQwQjY2MjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfcmVzZXJ2ZWRfbWVtb3J5X3By
b3ZpZGVyLmMgaW4gU291cmNlcyAqLywKIAkJCQkwRjg3MDA3MDI1QUY4QTFCMDAwRTFBQkYgLyog
cGFzX3Jvb3QuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGQzQwQjRBMjQ1MTQ5OTQwMDg3NkRBMCAv
KiBwYXNfc2NhdmVuZ2VyLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjhFNzg3MTI0Nzg3Mzk1MDBF
MTI0QTYgLyogcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkuYyBpbiBTb3VyY2VzICov
LAotCQkJCTBGOEU3ODY3MjQ3ODczOTUwMEUxMjRBNiAvKiBwYXNfc2VncmVnYXRlZF9iaWFzaW5n
X3ZpZXcuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGQzQwQjAzMjQ1MTQ5OTQwMDg3NkRBMCAvKiBw
YXNfc2VncmVnYXRlZF9kaXJlY3RvcnkuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGQzQwQkMxMjQ1
MTQ5OTQwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldy5jIGluIFNvdXJj
ZXMgKi8sCi0JCQkJMEY4RTc4NkEyNDc4NzM5NTAwRTEyNEE2IC8qIHBhc19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeS5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDNDBCQjcyNDUxNDk5
NDAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX2hlYXAuYyBpbiBTb3VyY2VzICovLAogCQkJCTBG
QzQwQkJBMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9wYWdlLmMgaW4gU291cmNl
cyAqLywKIAkJCQkwRkM0MEIyMDI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9jb25maWcuYyBpbiBTb3VyY2VzICovLApAQCAtMjg1Miw4ICsyNzcwLDYgQEAKIAkJCQkwRkM0
MEFGRDI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3N0YXR1c19yZXBvcnRlci5jIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMEZDNDBCNDUyNDUxNDk5NDAwODc2REEwIC8qIHBhc19zdHJlYW0uYyBpbiBTb3Vy
Y2VzICovLAogCQkJCTBGQzQwQjcwMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfc3RyaW5nX3N0cmVh
bS5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY4NzAwOEEyNUFGOTQ2MjAwMEUxQUJGIC8qIHBhc19z
dWJwYWdlX21hcC5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY4NzAwODgyNUFGOTQ2MjAwMEUxQUJG
IC8qIHBhc19zdWJwYWdlX21hcF9lbnRyeS5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDNDBCNTgy
NDUxNDk5NDAwODc2REEwIC8qIHBhc190aHJlYWRfbG9jYWxfY2FjaGUuYyBpbiBTb3VyY2VzICov
LAogCQkJCTBGQzQwQjQwMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
X2xheW91dC5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY4RTgzMkYyNDkyRUFGMzAwNDZEN0Y4IC8q
IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUuYyBpbiBTb3VyY2VzICovLApJbmRl
eDogU291cmNlL2JtYWxsb2MvYm1hbGxvYy9CUGxhdGZvcm0uaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvYm1hbGxvYy9ibWFsbG9jL0JQbGF0Zm9ybS5oCShyZXZpc2lvbiAyNzk5NjQpCisrKyBTb3Vy
Y2UvYm1hbGxvYy9ibWFsbG9jL0JQbGF0Zm9ybS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMjAsNyAr
MzIwLDcgQEAKIAogLyogQlVTRShMSUJQQVMpIGlzIHVzaW5nIGxpYnBhcyBmb3IgYm1hbGxvYyBy
ZXBsYWNlbWVudC4gKi8KICNpZiAhZGVmaW5lZChCVVNFX0xJQlBBUykKLSNkZWZpbmUgQlVTRV9M
SUJQQVMgMAorI2RlZmluZSBCVVNFX0xJQlBBUyAxCiAjZW5kaWYKIAogI2lmICFkZWZpbmVkKEJV
U0VfUFJFQ09NUFVURURfQ09OU1RBTlRTX1ZNUEFHRTRLKQpJbmRleDogU291cmNlL2JtYWxsb2Mv
bGlicGFzL2xpYnBhcy54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9saWJwYXMueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2
aXNpb24gMjc5OTY0KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL2xpYnBhcy54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0zOSwyNyArMzksMjUgQEAKIC8qIEJl
Z2luIFBCWEJ1aWxkRmlsZSBzZWN0aW9uICovCiAJCTBGMDM3QUYzMjVBRUE5MUEwMDc5QjU4MiAv
KiBwYXNfbWVkaXVtX21lZ2FwYWdlX2NhY2hlLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjAzN0FGMTI1QUVBOTE5MDA3OUI1ODIgLyogcGFzX21lZGl1
bV9tZWdhcGFnZV9jYWNoZS5jICovOyB9OwogCQkwRjAzN0FGNDI1QUVBOTFBMDA3OUI1ODIgLyog
cGFzX21lZGl1bV9tZWdhcGFnZV9jYWNoZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMEYwMzdBRjIyNUFFQTkxQTAwNzlCNTgyIC8qIHBhc19tZWRpdW1f
bWVnYXBhZ2VfY2FjaGUuaCAqLzsgfTsKLQkJMEYwNEMyMTQyNDYwREI2RjAwMUQzMUYwIC8qIHBh
c19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjA0QzIwMjI0NjBEQjZEMDAxRDMxRjAgLyogcGFzX3Nl
Z3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkuaCAqLzsgfTsKLQkJMEYwNEMyMTUyNDYwREI2RjAw
MUQzMUYwIC8qIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeS5jIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYwNEMyMDMyNDYwREI2RTAw
MUQzMUYwIC8qIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeS5jICovOyB9Owot
CQkwRjA0QzIxNjI0NjBEQjZGMDAxRDMxRjAgLyogcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVf
ZGlyZWN0b3J5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjA0QzIwNDI0NjBEQjZFMDAxRDMxRjAgLyogcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVf
ZGlyZWN0b3J5LmggKi87IH07Ci0JCTBGMDRDMjE5MjQ2MERCNkYwMDFEMzFGMCAvKiBwYXNfc2Vn
cmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lcnNoaXBfa2luZC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYwNEMyMDcyNDYwREI2RTAwMUQzMUYwIC8q
IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5kLmggKi87IH07Ci0J
CTBGMDRDMjFBMjQ2MERCNkYwMDFEMzFGMCAvKiBwYXNfbWFnYXppbmUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMDRDMjA4MjQ2MERCNkUwMDFEMzFG
MCAvKiBwYXNfbWFnYXppbmUuaCAqLzsgfTsKLQkJMEYwNEMyMUMyNDYwREI2RjAwMUQzMUYwIC8q
IHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldy5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMEYwNEMyMEEyNDYwREI2RTAwMUQzMUYwIC8qIHBhc19zZWdy
ZWdhdGVkX2JpYXNpbmdfdmlldy5jICovOyB9OwogCQkwRjA0QzIxRDI0NjBEQjZGMDAxRDMxRjAg
LyogcGFzX2hlYXBfY29uZmlnX2lubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGMDRDMjBCMjQ2MERCNkUwMDFEMzFGMCAvKiBwYXNfaGVhcF9j
b25maWdfaW5saW5lcy5oICovOyB9OwotCQkwRjA0QzIxRTI0NjBEQjZGMDAxRDMxRjAgLyogcGFz
X3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRjA0QzIwQzI0NjBEQjZFMDAxRDMxRjAgLyogcGFzX3NlZ3JlZ2F0
ZWRfYmlhc2luZ192aWV3LmggKi87IH07CiAJCTBGMDRDMjFGMjQ2MERCNkYwMDFEMzFGMCAvKiBw
YXNfbG9jay5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEYwNEMyMEQyNDYwREI2RTAwMUQzMUYwIC8qIHBhc19sb2NrLmMgKi87IH07Ci0JCTBGMDRDMjIw
MjQ2MERCNkYwMDFEMzFGMCAvKiBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeS5jIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYwNEMyMEUyNDYw
REI2RTAwMUQzMUYwIC8qIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5LmMgKi87IH07
Ci0JCTBGMDRDMjIxMjQ2MERCNkYwMDFEMzFGMCAvKiBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnlfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEYwNEMyMEYyNDYwREI2RTAwMUQzMUYwIC8qIHBhc19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeV9pbmxpbmVzLmggKi87IH07Ci0JCTBGMDRDMjIyMjQ2MERCNkYw
MDFEMzFGMCAvKiBwYXNfc2VncmVnYXRlZF92aWV3X2lubGluZXMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMDRDMjEwMjQ2MERCNkYwMDFEMzFGMCAv
KiBwYXNfc2VncmVnYXRlZF92aWV3X2lubGluZXMuaCAqLzsgfTsKLQkJMEYwNEMyMjQyNDYwREI2
RjAwMUQzMUYwIC8qIHBhc19tYWdhemluZS5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMEYwNEMyMTIyNDYwREI2RjAwMUQzMUYwIC8qIHBhc19tYWdhemlu
ZS5jICovOyB9OwogCQkwRjA0QzIyNTI0NjBEQjZGMDAxRDMxRjAgLyogcGFzX2NvbXBhY3RfYXRv
bWljX3BhZ2Vfc2hhcmluZ19wb29sX3B0ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMEYwNEMyMTMyNDYwREI2RjAwMUQzMUYwIC8qIHBhc19jb21wYWN0
X2F0b21pY19wYWdlX3NoYXJpbmdfcG9vbF9wdHIuaCAqLzsgfTsKLQkJMEYwNEMyMjgyNDYxMUNG
RDAwMUQzMUYwIC8qIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
X3B0ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYw
NEMyMjYyNDYxMUNGRDAwMUQzMUYwIC8qIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3Np
emVfZGlyZWN0b3J5X3B0ci5oICovOyB9OwotCQkwRjA0QzIyOTI0NjExQ0ZEMDAxRDMxRjAgLyog
cGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0ci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYwNEMyMjcy
NDYxMUNGRDAwMUQzMUYwIC8qIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeV9wdHIuaCAqLzsgfTsKIAkJMEYwODNGNUEyMkMyOTc5QjAwRjNDREIzIC8q
IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3V0aWxzX2lubGluZXMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMDgzRjU4MjJDMjk3OUIwMEYzQ0RC
MyAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ191dGlsc19pbmxpbmVzLmggKi87IH07CiAJ
CTBGMDgzRjVCMjJDMjk3OUIwMEYzQ0RCMyAvKiBwYXNfaGVhcF9jb25maWdfdXRpbHNfaW5saW5l
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYwODNG
NTkyMkMyOTc5QjAwRjNDREIzIC8qIHBhc19oZWFwX2NvbmZpZ191dGlsc19pbmxpbmVzLmggKi87
IH07CiAJCTBGMDkyMjZBMjJCMDdDMjEwMDdENUQzQSAvKiBwYXNfbXV0YXRpb25fY291bnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMDkyMjY5MjJC
MDdDMjEwMDdENUQzQSAvKiBwYXNfbXV0YXRpb25fY291bnQuaCAqLzsgfTsKIAkJMEYwOTIyNkMy
MkIyRDg4RTAwN0Q1RDNBIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3V0aWxzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjA5MjI2QjIyQjJE
ODhFMDA3RDVEM0EgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfdXRpbHMuaCAqLzsgfTsK
IAkJMEYwOTIyNkUyMkIyRDkwOTAwN0Q1RDNBIC8qIHBhc19oZWFwX2NvbmZpZ191dGlscy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYwOTIyNkQyMkIy
RDkwOTAwN0Q1RDNBIC8qIHBhc19oZWFwX2NvbmZpZ191dGlscy5oICovOyB9OworCQkwRjE0ODcx
MDI2OUI3NTE4MDA2ODg3QTkgLyogcGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0aW9uX21vZGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMTQ4NzBBMjY5
Qjc1MTcwMDY4ODdBOSAvKiBwYXNfc2VncmVnYXRlZF9kZWFsbG9jYXRpb25fbW9kZS5oICovOyB9
OworCQkwRjE0ODcxMTI2OUI3NTE4MDA2ODg3QTkgLyogcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRjE0ODcwQjI2OUI3NTE4MDA2ODg3QTkgLyogcGFzX2NvbXBhY3Rf
YXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyLmggKi87IH07CisJCTBGMTQ4NzEy
MjY5Qjc1MTgwMDY4ODdBOSAvKiBwYXNfbG9jYWxfdmlld19jYWNoZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYxNDg3MEMyNjlCNzUxODAwNjg4N0E5
IC8qIHBhc19sb2NhbF92aWV3X2NhY2hlLmggKi87IH07CisJCTBGMTQ4NzEzMjY5Qjc1MTgwMDY4
ODdBOSAvKiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X3B0ci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYxNDg3MEQyNjlCNzUx
ODAwNjg4N0E5IC8qIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyLmgg
Ki87IH07CisJCTBGMTQ4NzE0MjY5Qjc1MTgwMDY4ODdBOSAvKiBwYXNfaGVhcF9ydW50aW1lX2Nv
bmZpZy5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYx
NDg3MEUyNjlCNzUxODAwNjg4N0E5IC8qIHBhc19oZWFwX3J1bnRpbWVfY29uZmlnLmMgKi87IH07
CisJCTBGMTQ4NzE1MjY5Qjc1MTgwMDY4ODdBOSAvKiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5X3B0ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEYxNDg3MEYyNjlCNzUxODAwNjg4N0E5IC8qIHBhc19jb21wYWN0X3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyLmggKi87IH07CisJCTBGMTQ4NzFGMjY5RjVGQ0EwMDY4ODdB
OSAvKiBwYXNfbG9jYWxfdmlld19jYWNoZV9ub2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjE0ODcxQTI2OUY1RkNBMDA2ODg3QTkgLyogcGFzX2xv
Y2FsX3ZpZXdfY2FjaGVfbm9kZS5oICovOyB9OworCQkwRjE0ODcyMDI2OUY1RkNBMDA2ODg3QTkg
LyogcGFzX2xvY2FsX3ZpZXdfY2FjaGUuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGMTQ4NzFCMjY5RjVGQ0EwMDY4ODdBOSAvKiBwYXNfbG9jYWxfdmll
d19jYWNoZS5jICovOyB9OworCQkwRjE0ODcyMTI2OUY1RkNBMDA2ODg3QTkgLyogcGFzX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnlfY3JlYXRpb25fbW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYxNDg3MUMyNjlGNUZDQTAwNjg4N0E5IC8qIHBh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2NyZWF0aW9uX21vZGUuaCAqLzsgfTsKKwkJMEYx
NDg3MjIyNjlGNUZDQTAwNjg4N0E5IC8qIHBhc19sb2NhbF92aWV3X2NhY2hlX25vZGUuYyBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMTQ4NzFEMjY5RjVG
Q0EwMDY4ODdBOSAvKiBwYXNfbG9jYWxfdmlld19jYWNoZV9ub2RlLmMgKi87IH07CisJCTBGMTQ4
NzIzMjY5RjVGQ0EwMDY4ODdBOSAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2Rl
X2tpbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
MTQ4NzFFMjY5RjVGQ0EwMDY4ODdBOSAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9u
b2RlX2tpbmQuaCAqLzsgfTsKIAkJMEYxNTE4RkQyMzQ0MUUzMjAwODMyQjVDIC8qIHBhc19oYXNf
b2JqZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
RjE1MThGQzIzNDQxRTMyMDA4MzJCNUMgLyogcGFzX2hhc19vYmplY3QuaCAqLzsgfTsKIAkJMEYx
OEU2M0UyNjI4QkZCNzAwRjY5MDNEIC8qIHBhc19zaGFyZWRfcGFnZV9kaXJlY3RvcnlfYnlfc2l6
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYxOEU2
M0MyNjI4QkZCNjAwRjY5MDNEIC8qIHBhc19zaGFyZWRfcGFnZV9kaXJlY3RvcnlfYnlfc2l6ZS5o
ICovOyB9OwogCQkwRjE4RTYzRjI2MjhCRkI3MDBGNjkwM0QgLyogcGFzX3NoYXJlZF9wYWdlX2Rp
cmVjdG9yeV9ieV9zaXplLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRjE4RTYzRDI2MjhCRkI2MDBGNjkwM0QgLyogcGFzX3NoYXJlZF9wYWdlX2RpcmVj
dG9yeV9ieV9zaXplLmMgKi87IH07CkBAIC03NSw4ICs3Myw2IEBACiAJCTBGMTkzMjY5MjJGM0Iz
RjMwMEZCQTcxMyAvKiBwYXNfbGFyZ2VfaGVhcF9waHlzaWNhbF9wYWdlX3NoYXJpbmdfY2FjaGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMTkzMjY3
MjJGM0IzRjMwMEZCQTcxMyAvKiBwYXNfbGFyZ2VfaGVhcF9waHlzaWNhbF9wYWdlX3NoYXJpbmdf
Y2FjaGUuaCAqLzsgfTsKIAkJMEYxOTMyNkMyMkY3M0U4NTAwRkJBNzEzIC8qIHBhc19zY2F2ZW5n
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMTkz
MjZBMjJGNzNFODQwMEZCQTcxMyAvKiBwYXNfc2NhdmVuZ2VyLmggKi87IH07CiAJCTBGMTkzMjZE
MjJGNzNFODUwMEZCQTcxMyAvKiBwYXNfc2NhdmVuZ2VyLmMgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjE5MzI2QjIyRjczRTg0MDBGQkE3MTMgLyogcGFz
X3NjYXZlbmdlci5jICovOyB9OwotCQkwRjFBRUNFODI2NTgxOTYxMDAwQzUyMTggLyogcGFzX2Fs
bF9tYWdhemluZXMuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGMUFFQ0U2MjY1ODE5NjAwMDBDNTIxOCAvKiBwYXNfYWxsX21hZ2F6aW5lcy5jICovOyB9
OwotCQkwRjFBRUNFOTI2NTgxOTYxMDAwQzUyMTggLyogcGFzX2FsbF9tYWdhemluZXMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMUFFQ0U3MjY1ODE5
NjEwMDBDNTIxOCAvKiBwYXNfYWxsX21hZ2F6aW5lcy5oICovOyB9OwogCQkwRjFCRkQ0NDI2NjQ1
N0YxMDBDRUMyOEQgLyogcGFzX2hlYXBfY29uZmlnLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjFCRkQ0MzI2NjQ1N0YxMDBDRUMyOEQgLyogcGFzX2hl
YXBfY29uZmlnLmMgKi87IH07CiAJCTBGMjE1MEVCMjQ4NEJCMkEwMDBENjM0QiAvKiBwYXNfYWxs
b2NhdG9yX2luZGV4LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjIxNTBFQTI0ODRCQjJBMDAwRDYzNEIgLyogcGFzX2FsbG9jYXRvcl9pbmRleC5oICov
OyB9OwogCQkwRjIxNTBFRDI0ODRCQjg2MDAwRDYzNEIgLyogcGFzX2NvbXBhY3RfYXRvbWljX2Fs
bG9jYXRvcl9pbmRleF9wdHIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGMjE1MEVDMjQ4NEJCODYwMDBENjM0QiAvKiBwYXNfY29tcGFjdF9hdG9taWNf
YWxsb2NhdG9yX2luZGV4X3B0ci5oICovOyB9OwpAQCAtMTA3LDYgKzEwMyw5IEBACiAJCTBGNDQz
QjQ4MjM0MTc2MTUwMEJFNTBEMSAvKiBtYm1hbGxvY19pc29fY29tbW9uX3ByaW1pdGl2ZS5jIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZGMDhGNTUyMkE4
NkUyRTAwMzg2NTc1IC8qIG1ibWFsbG9jX2lzb19jb21tb25fcHJpbWl0aXZlLmMgKi87IHNldHRp
bmdzID0ge0NPTVBJTEVSX0ZMQUdTID0gIi1EUEFTX1ZFUklGSUVEIjsgfTsgfTsKIAkJMEY0NDNC
NEEyMzQxNzYxNTAwQkU1MEQxIC8qIGxpYnBhcy5keWxpYiBpbiBGcmFtZXdvcmtzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGREVBNUQ5MjI5NUZDOEMwMDg1RTM0MCAvKiBs
aWJwYXMuZHlsaWIgKi87IH07CiAJCTBGNDQzQjRGMjM0MTc3ODMwMEJFNTBEMSAvKiBsaWJwYXNf
dmVyaWZpZXIuZHlsaWIgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRjQ0M0IzQTIzNDE2QTdDMDBCRTUwRDEgLyogbGlicGFzX3ZlcmlmaWVyLmR5bGli
ICovOyB9OworCQkwRjQ1RDVBOTI2QUI3MzE0MDBDMzVEOTMgLyogcGFzX2xvY2FsX2FsbG9jYXRv
cl9raW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
RjQ1RDVBNjI2QUI3MzE0MDBDMzVEOTMgLyogcGFzX2xvY2FsX2FsbG9jYXRvcl9raW5kLmggKi87
IH07CisJCTBGNDVENUFBMjZBQjczMTQwMEMzNUQ5MyAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX3Nj
YXZlbmdlcl9kYXRhLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjQ1RDVBNzI2QUI3MzE0MDBDMzVEOTMgLyogcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2
ZW5nZXJfZGF0YS5jICovOyB9OworCQkwRjQ1RDVBQjI2QUI3MzE0MDBDMzVEOTMgLyogcGFzX2xv
Y2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0NUQ1QTgyNkFCNzMxNDAwQzM1RDkzIC8qIHBhc19sb2Nh
bF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEuaCAqLzsgfTsKIAkJMEY0N0MzMUEyMzM5NkQxRjAw
MkExQ0Y3IC8qIHBhc19hbGxvY2F0aW9uX2tpbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDdDMzE4MjMzOTZEMUYwMDJBMUNGNyAvKiBwYXNfYWxs
b2NhdGlvbl9raW5kLmggKi87IH07CiAJCTBGNDdDMzFCMjMzOTZEMUYwMDJBMUNGNyAvKiBwYXNf
aGVhcF9raW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjQ3QzMxOTIzMzk2RDFGMDAyQTFDRjcgLyogcGFzX2hlYXBfa2luZC5oICovOyB9OwogCQkw
RjQ3QzMxRTIzMzk2RTBCMDAyQTFDRjcgLyogcGFzX2FsbG9jYXRpb25fY2FsbGJhY2tzLmMgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjQ3QzMxQzIzMzk2
RTBCMDAyQTFDRjcgLyogcGFzX2FsbG9jYXRpb25fY2FsbGJhY2tzLmMgKi87IH07CkBAIC0xNDQs
NyArMTQzLDYgQEAKIAkJMEY0RjYxQ0EyNUE0Q0QzQjAwOEI0QTgyIC8qIHBhc19wYXlsb2FkX3Jl
c2VydmF0aW9uX3BhZ2VfbGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEY0RjYxQzgyNUE0Q0QzQjAwOEI0QTgyIC8qIHBhc19wYXlsb2FkX3Jlc2Vy
dmF0aW9uX3BhZ2VfbGlzdC5oICovOyB9OwogCQkwRjRGNjFDQjI1QTRDRDNCMDA4QjRBODIgLyog
cGFzX3BheWxvYWRfcmVzZXJ2YXRpb25fcGFnZV9saXN0LmMgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjRGNjFDOTI1QTRDRDNCMDA4QjRBODIgLyogcGFz
X3BheWxvYWRfcmVzZXJ2YXRpb25fcGFnZV9saXN0LmMgKi87IH07CiAJCTBGNTA4RDUzMjU4RUNG
RDMwMDE1MUVEOCAvKiBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZmlyc3RfZWxpZ2libGVfa2lu
ZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1MDhE
NTIyNThFQ0ZEMzAwMTUxRUQ4IC8qIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9maXJzdF9lbGln
aWJsZV9raW5kLmggKi87IH07Ci0JCTBGNTA4RDVDMjU4RURDQTcwMDE1MUVEOCAvKiBJc29IZWFw
VGFibGluZ1Rlc3RzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDBGNTA4RDVCMjU4RURDQTcwMDE1MUVEOCAvKiBJc29IZWFwVGFibGluZ1Rlc3RzLmNw
cCAqLzsgfTsKIAkJMEY1MTZFRTMyNDU2MEZGNTAwNEUyQjhEIC8qIHBhc19pbnRlcm5hbF9jb25m
aWcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNTE2
RUUyMjQ1NjBGRjUwMDRFMkI4RCAvKiBwYXNfaW50ZXJuYWxfY29uZmlnLmggKi87IH07CiAJCTBG
NTE2RUU3MjQ1NjFBNjAwMDRFMkI4RCAvKiBpc29faGVhcF9pbm5hcmRzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjUxNkVFNjI0NTYxQTYwMDA0RTJC
OEQgLyogaXNvX2hlYXBfaW5uYXJkcy5oICovOyB9OwogCQkwRjUxOTNFNzI2NkFFNUQ0MDA0ODNB
MkMgLyogSklUSGVhcFRlc3RzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGNTE5M0U2MjY2QUU1RDQwMDQ4M0EyQyAvKiBKSVRIZWFwVGVzdHMuY3Bw
ICovOyB9OwpAQCAtMjY5LDM0ICsyNjcsMjUgQEAKIAkJMEY5N0U2MkUyMkE5QTg1RjAwQzM1NUY4
IC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjk3RTYyRDIyQTlBODVGMDBDMzU1RjggLyogcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZV9jb25maWcuaCAqLzsgfTsKIAkJMEY5N0U2MzAyMkE5QUFDMTAwQzM1NUY4
IC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjk3RTYyRjIyQTlBQUMxMDBDMzU1RjggLyogcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZV9jb25maWcuYyAqLzsgfTsKIAkJMEY5OUY5OEMyNUNCMkNFODAwRUVFNDQ5
IC8qIHBhc19zaXplX3RodW5rLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjk5Rjk4QjI1Q0IyQ0U4MDBFRUU0NDkgLyogcGFzX3NpemVfdGh1bmsuaCAq
LzsgfTsKLQkJMEY5QTFDRTMyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19zdWJwYWdlX21hcF9lbnRy
eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFD
OTcyNTU5OTYxMTAwQzhEMTFCIC8qIHBhc19zdWJwYWdlX21hcF9lbnRyeS5oICovOyB9OwotCQkw
RjlBMUNFNDI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUM5ODI1
NTk5NjExMDBDOEQxMUIgLyogcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5LmggKi87IH07CiAJ
CTBGOUExQ0U1MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfZmFzdF9wYXRoX2FsbG9jYXRpb25fcmVz
dWx0X2tpbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGOUExQzk5MjU1OTk2MTEwMEM4RDExQiAvKiBwYXNfZmFzdF9wYXRoX2FsbG9jYXRpb25fcmVz
dWx0X2tpbmQuaCAqLzsgfTsKIAkJMEY5QTFDRTYyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRm
aXRfcGFnZV9jb25maWdfdXRpbHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGOUExQzlBMjU1OTk2MTEwMEM4RDExQiAvKiBwYXNfYml0Zml0X3BhZ2Vf
Y29uZmlnX3V0aWxzLmggKi87IH07CiAJCTBGOUExQ0U3MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNf
Yml0Zml0X21heF9mcmVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRjlBMUM5QjI1NTk5NjExMDBDOEQxMUIgLyogcGFzX2JpdGZpdF9tYXhfZnJlZS5o
ICovOyB9OwotCQkwRjlBMUNFODI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX3N1YnBhZ2VfbWFwX2Vu
dHJ5LmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlB
MUM5QzI1NTk5NjExMDBDOEQxMUIgLyogcGFzX3N1YnBhZ2VfbWFwX2VudHJ5LmMgKi87IH07CiAJ
CTBGOUExQ0U5MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfc2hhcmVkX2hhbmRsZV9vcl9wYWdlX2Jv
dW5kYXJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
RjlBMUM5RDI1NTk5NjExMDBDOEQxMUIgLyogcGFzX3NoYXJlZF9oYW5kbGVfb3JfcGFnZV9ib3Vu
ZGFyeS5oICovOyB9OwogCQkwRjlBMUNFQjI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9jb25maWdfdmFyaWFudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEY5QTFDOUYyNTU5OTYxMTAwQzhEMTFCIC8qIHBhc19zZWdyZWdhdGVk
X3BhZ2VfY29uZmlnX3ZhcmlhbnQuaCAqLzsgfTsKIAkJMEY5QTFDRUMyNTU5OTYxNzAwQzhEMTFC
IC8qIHBhc19mYXN0X21lZ2FwYWdlX2NhY2hlLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNBMDI1NTk5NjEyMDBDOEQxMUIgLyogcGFzX2Zhc3Rf
bWVnYXBhZ2VfY2FjaGUuYyAqLzsgfTsKIAkJMEY5QTFDRUQyNTU5OTYxNzAwQzhEMTFCIC8qIHBh
c19iaXRmaXRfdmlldy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEY5QTFDQTEyNTU5OTYxMjAwQzhEMTFCIC8qIHBhc19iaXRmaXRfdmlldy5oICovOyB9
OwogCQkwRjlBMUNFRTI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF92aWV3LmMgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNBMjI1NTk5NjEy
MDBDOEQxMUIgLyogcGFzX2JpdGZpdF92aWV3LmMgKi87IH07Ci0JCTBGOUExQ0VGMjU1OTk2MTcw
MEM4RDExQiAvKiBwYXNfYWxsb2NhdGlvbl9yZXN1bHQuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQ0EzMjU1OTk2MTIwMEM4RDExQiAvKiBwYXNf
YWxsb2NhdGlvbl9yZXN1bHQuYyAqLzsgfTsKIAkJMEY5QTFDRjAyNTU5OTYxNzAwQzhEMTFCIC8q
IHBhc19jb21taXRfc3Bhbi5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEY5QTFDQTQyNTU5OTYxMjAwQzhEMTFCIC8qIHBhc19jb21taXRfc3Bhbi5jICov
OyB9OwogCQkwRjlBMUNGMTI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2NvbXBhY3RfYmlhc2luZ19k
aXJlY3RvcnlfcHRyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjlBMUNBNTI1NTk5NjEyMDBDOEQxMUIgLyogcGFzX2NvbXBhY3RfYmlhc2luZ19kaXJl
Y3RvcnlfcHRyLmggKi87IH07CiAJCTBGOUExQ0YyMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfcGFn
ZV9oZWFkZXJfdGFibGUuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDBGOUExQ0E2MjU1OTk2MTIwMEM4RDExQiAvKiBwYXNfcGFnZV9oZWFkZXJfdGFibGUu
YyAqLzsgfTsKLQkJMEY5QTFDRjMyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfYmlhc2lu
Z19kaXJlY3RvcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGOUExQ0E3MjU1OTk2MTIwMEM4RDExQiAvKiBwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0
b3J5LmggKi87IH07CiAJCTBGOUExQ0Y0MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfY29tbWl0X3Nw
YW4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUEx
Q0E4MjU1OTk2MTIwMEM4RDExQiAvKiBwYXNfY29tbWl0X3NwYW4uaCAqLzsgfTsKIAkJMEY5QTFD
RjUyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaWFzaW5nX2RpcmVjdG9yeV9raW5kLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNBOTI1NTk5NjEy
MDBDOEQxMUIgLyogcGFzX2JpYXNpbmdfZGlyZWN0b3J5X2tpbmQuaCAqLzsgfTsKLQkJMEY5QTFD
RjYyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfZGlyZWN0b3J5X2FuZF9pbmRleC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDQUEyNTU5
OTYxMjAwQzhEMTFCIC8qIHBhc19iaXRmaXRfZGlyZWN0b3J5X2FuZF9pbmRleC5oICovOyB9Owog
CQkwRjlBMUNGNzI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX3BhZ2VfYmFzZV9jb25maWdfdXRpbHNf
aW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEY5QTFDQUIyNTU5OTYxMjAwQzhEMTFCIC8qIHBhc19wYWdlX2Jhc2VfY29uZmlnX3V0aWxzX2lu
bGluZXMuaCAqLzsgfTsKIAkJMEY5QTFDRjgyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19wYWdlX2Jh
c2VfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEY5QTFDQUMyNTU5OTYxMjAwQzhEMTFCIC8qIHBhc19wYWdlX2Jhc2VfaW5saW5lcy5oICov
OyB9OwogCQkwRjlBMUNGOTI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX3Byb21vdGVfaW50cmluc2lj
X2hlYXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
OUExQ0FEMjU1OTk2MTMwMEM4RDExQiAvKiBwYXNfcHJvbW90ZV9pbnRyaW5zaWNfaGVhcC5oICov
OyB9OwogCQkwRjlBMUNGQTI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9wYWdlX2NvbmZp
Z19raW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
RjlBMUNBRTI1NTk5NjEzMDBDOEQxMUIgLyogcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19raW5kLmgg
Ki87IH07Ci0JCTBGOUExQ0ZCMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X2dsb2JhbF9z
aXplX2NsYXNzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjlBMUNBRjI1NTk5NjEzMDBDOEQxMUIgLyogcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFz
cy5oICovOyB9OwotCQkwRjlBMUNGQzI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9iaWFz
aW5nX2RpcmVjdG9yeS5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEY5QTFDQjAyNTU5OTYxMzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfYmlhc2luZ19kaXJl
Y3RvcnkuYyAqLzsgfTsKIAkJMEY5QTFDRkQyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc192ZXJzaW9u
ZWRfZmllbGQuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGOUExQ0IxMjU1OTk2MTMwMEM4RDExQiAvKiBwYXNfdmVyc2lvbmVkX2ZpZWxkLmMgKi87IH07
CiAJCTBGOUExQ0ZFMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfZmFzdF9wYXRoX2FsbG9jYXRpb25f
cmVzdWx0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
RjlBMUNCMjI1NTk5NjEzMDBDOEQxMUIgLyogcGFzX2Zhc3RfcGF0aF9hbGxvY2F0aW9uX3Jlc3Vs
dC5oICovOyB9OwotCQkwRjlBMUNGRjI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9kaXJl
Y3Rvcnlfa2luZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEY5QTFDQjMyNTU5OTYxMzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfZGlyZWN0b3J5X2tpbmQu
aCAqLzsgfTsKIAkJMEY5QTFEMDAyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19mcmVlX2dyYW51bGVz
LmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNC
NDI1NTk5NjEzMDBDOEQxMUIgLyogcGFzX2ZyZWVfZ3JhbnVsZXMuYyAqLzsgfTsKIAkJMEY5QTFE
MDEyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfcGFnZV9pbmxpbmVzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNCNTI1NTk5NjEzMDBD
OEQxMUIgLyogcGFzX2JpdGZpdF9wYWdlX2lubGluZXMuaCAqLzsgfTsKIAkJMEY5QTFEMDIyNTU5
OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfZGlyZWN0b3J5LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNCNjI1NTk5NjEzMDBDOEQxMUIgLyog
cGFzX2JpdGZpdF9kaXJlY3RvcnkuaCAqLzsgfTsKQEAgLTMwNiwzOSArMjk1LDI5IEBACiAJCTBG
OUExRDA2MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfcGFnZV9iYXNlLmMgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNCQTI1NTk5NjE0MDBDOEQxMUIg
LyogcGFzX3BhZ2VfYmFzZS5jICovOyB9OwogCQkwRjlBMUQwNzI1NTk5NjE3MDBDOEQxMUIgLyog
cGFzX2JpdGZpdF9hbGxvY2F0aW9uX3Jlc3VsdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDQkIyNTU5OTYxNDAwQzhEMTFCIC8qIHBhc19iaXRm
aXRfYWxsb2NhdGlvbl9yZXN1bHQuaCAqLzsgfTsKIAkJMEY5QTFEMDgyNTU5OTYxNzAwQzhEMTFC
IC8qIHBhc19iaXRmaXRfYWxsb2NhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNCQzI1NTk5NjE0MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9h
bGxvY2F0b3IuaCAqLzsgfTsKLQkJMEY5QTFEMDkyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRm
aXRfZ2xvYmFsX2RpcmVjdG9yeS5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEY5QTFDQkQyNTU5OTYxNDAwQzhEMTFCIC8qIHBhc19iaXRmaXRfZ2xvYmFs
X2RpcmVjdG9yeS5jICovOyB9OwotCQkwRjlBMUQwQTI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2Fs
bF9iaWFzaW5nX2RpcmVjdG9yaWVzLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwRjlBMUNCRTI1NTk5NjE0MDBDOEQxMUIgLyogcGFzX2FsbF9iaWFzaW5n
X2RpcmVjdG9yaWVzLmMgKi87IH07Ci0JCTBGOUExRDBCMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNf
Ymlhc2luZ19kaXJlY3RvcnlfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDQkYyNTU5OTYxNDAwQzhEMTFCIC8qIHBhc19iaWFzaW5n
X2RpcmVjdG9yeV9pbmxpbmVzLmggKi87IH07CiAJCTBGOUExRDBDMjU1OTk2MTcwMEM4RDExQiAv
KiBwYXNfcGFnZV9iYXNlX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEY5QTFDQzAyNTU5OTYxNDAwQzhEMTFCIC8qIHBhc19wYWdlX2Jhc2Vf
Y29uZmlnLmggKi87IH07CiAJCTBGOUExRDBEMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0
X2RpcmVjdG9yeS5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEY5QTFDQzEyNTU5OTYxNDAwQzhEMTFCIC8qIHBhc19iaXRmaXRfZGlyZWN0b3J5LmMgKi87
IH07Ci0JCTBGOUExRDBFMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfc3VicGFnZV9tYXAuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQ0MyMjU1OTk2
MTQwMEM4RDExQiAvKiBwYXNfc3VicGFnZV9tYXAuaCAqLzsgfTsKLQkJMEY5QTFEMEYyNTU5OTYx
NzAwQzhEMTFCIC8qIHBhc19jb21wYWN0X3N1YnBhZ2VfbWFwX2VudHJ5X3B0ci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDQzMyNTU5OTYxNDAw
QzhEMTFCIC8qIHBhc19jb21wYWN0X3N1YnBhZ2VfbWFwX2VudHJ5X3B0ci5oICovOyB9OwogCQkw
RjlBMUQxMDI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9hbGxvY2F0b3IuYyBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQ0M0MjU1OTk2MTQw
MEM4RDExQiAvKiBwYXNfYml0Zml0X2FsbG9jYXRvci5jICovOyB9OwogCQkwRjlBMUQxMTI1NTk5
NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9wYWdlLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNDNTI1NTk5NjE0MDBDOEQxMUIgLyogcGFzX2Jp
dGZpdF9wYWdlLmMgKi87IH07CiAJCTBGOUExRDEyMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfcGFn
ZV9jb25maWdfa2luZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEY5QTFDQzYyNTU5OTYxNDAwQzhEMTFCIC8qIHBhc19wYWdlX2NvbmZpZ19raW5kLmgg
Ki87IH07Ci0JCTBGOUExRDEzMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYmlhc2luZ19kaXJlY3Rv
cnkuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUEx
Q0M3MjU1OTk2MTUwMEM4RDExQiAvKiBwYXNfYmlhc2luZ19kaXJlY3RvcnkuYyAqLzsgfTsKIAkJ
MEY5QTFEMTQyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfZGlyZWN0b3J5X2lubGluZXMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQ0M4
MjU1OTk2MTUwMEM4RDExQiAvKiBwYXNfYml0Zml0X2RpcmVjdG9yeV9pbmxpbmVzLmggKi87IH07
CiAJCTBGOUExRDE1MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tp
bmQuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUEx
Q0M5MjU1OTk2MTUwMEM4RDExQiAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmQuYyAqLzsg
fTsKIAkJMEY5QTFEMTYyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19mYXN0X21lZ2FwYWdlX2tpbmQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQ0NB
MjU1OTk2MTUwMEM4RDExQiAvKiBwYXNfZmFzdF9tZWdhcGFnZV9raW5kLmggKi87IH07CiAJCTBG
OUExRDE3MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX3ZhcmlhbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQ0NC
MjU1OTk2MTUwMEM4RDExQiAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX3ZhcmlhbnQuaCAqLzsg
fTsKIAkJMEY5QTFEMTgyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfaGVhcC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDQ0QyNTU5OTYx
NTAwQzhEMTFCIC8qIHBhc19iaXRmaXRfaGVhcC5oICovOyB9OwogCQkwRjlBMUQxOTI1NTk5NjE3
MDBDOEQxMUIgLyogcGFzX2Zhc3RfbWVnYXBhZ2VfdGFibGUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQ0NFMjU1OTk2MTUwMEM4RDExQiAvKiBw
YXNfZmFzdF9tZWdhcGFnZV90YWJsZS5oICovOyB9OwotCQkwRjlBMUQxQjI1NTk5NjE3MDBDOEQx
MUIgLyogcGFzX2FsbF9iaWFzaW5nX2RpcmVjdG9yaWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNEMDI1NTk5NjE1MDBDOEQxMUIgLyogcGFz
X2FsbF9iaWFzaW5nX2RpcmVjdG9yaWVzLmggKi87IH07CiAJCTBGOUExRDFDMjU1OTk2MTcwMEM4
RDExQiAvKiBwYXNfYml0Zml0X2hlYXAuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGOUExQ0QxMjU1OTk2MTUwMEM4RDExQiAvKiBwYXNfYml0Zml0X2hl
YXAuYyAqLzsgfTsKIAkJMEY5QTFEMUQyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfYWxs
b2NhdG9yX2lubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDBGOUExQ0QyMjU1OTk2MTUwMEM4RDExQiAvKiBwYXNfYml0Zml0X2FsbG9jYXRvcl9p
bmxpbmVzLmggKi87IH07CiAJCTBGOUExRDFFMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfY29tcGFj
dF90YWdnZWRfcGFnZV9ncmFudWxlX3VzZV9jb3VudF9wdHIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQ0QzMjU1OTk2MTYwMEM4RDExQiAvKiBw
YXNfY29tcGFjdF90YWdnZWRfcGFnZV9ncmFudWxlX3VzZV9jb3VudF9wdHIuaCAqLzsgfTsKIAkJ
MEY5QTFEMUYyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19wYWdlX2Jhc2VfY29uZmlnX3V0aWxzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNENDI1
NTk5NjE2MDBDOEQxMUIgLyogcGFzX3BhZ2VfYmFzZV9jb25maWdfdXRpbHMuaCAqLzsgfTsKIAkJ
MEY5QTFEMjAyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19wYWdlX2hlYWRlcl9wbGFjZW1lbnRfbW9k
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFD
RDUyNTU5OTYxNjAwQzhEMTFCIC8qIHBhc19wYWdlX2hlYWRlcl9wbGFjZW1lbnRfbW9kZS5oICov
OyB9OwogCQkwRjlBMUQyMTI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9zaXplX2NsYXNz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNE
NjI1NTk5NjE2MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9zaXplX2NsYXNzLmggKi87IH07Ci0JCTBG
OUExRDIyMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfc3VicGFnZV9tYXAuYyBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQ0Q3MjU1OTk2MTYwMEM4RDEx
QiAvKiBwYXNfc3VicGFnZV9tYXAuYyAqLzsgfTsKLQkJMEY5QTFEMjMyNTU5OTYxNzAwQzhEMTFC
IC8qIHBhc19iaWFzaW5nX2RpcmVjdG9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDRDgyNTU5OTYxNjAwQzhEMTFCIC8qIHBhc19iaWFzaW5n
X2RpcmVjdG9yeS5oICovOyB9OwogCQkwRjlBMUQyNDI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX3Bh
Z2Vfc2hhcmluZ19tb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRjlBMUNEOTI1NTk5NjE2MDBDOEQxMUIgLyogcGFzX3BhZ2Vfc2hhcmluZ19tb2Rl
LmggKi87IH07CiAJCTBGOUExRDI1MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfcGFnZV9ncmFudWxl
X3VzZV9jb3VudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEY5QTFDREEyNTU5OTYxNjAwQzhEMTFCIC8qIHBhc19wYWdlX2dyYW51bGVfdXNlX2NvdW50
LmggKi87IH07CiAJCTBGOUExRDI2MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfc2hhcmVkX2hhbmRs
ZV9vcl9wYWdlX2JvdW5kYXJ5X2lubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQ0RCMjU1OTk2MTYwMEM4RDExQiAvKiBwYXNfc2hhcmVk
X2hhbmRsZV9vcl9wYWdlX2JvdW5kYXJ5X2lubGluZXMuaCAqLzsgfTsKIAkJMEY5QTFEMjcyNTU5
OTYxNzAwQzhEMTFCIC8qIHBhc19jb21wYWN0X3BhZ2VfZ3JhbnVsZV91c2VfY291bnRfcHRyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNEQzI1
NTk5NjE2MDBDOEQxMUIgLyogcGFzX2NvbXBhY3RfcGFnZV9ncmFudWxlX3VzZV9jb3VudF9wdHIu
aCAqLzsgfTsKIAkJMEY5QTFEMjgyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfcGFnZV9j
b25maWcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
OUExQ0REMjU1OTk2MTYwMEM4RDExQiAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnLmggKi87IH07
CiAJCTBGOUExRDI5MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfcGFnZV9raW5kLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNERTI1NTk5NjE2MDBD
OEQxMUIgLyogcGFzX3BhZ2Vfa2luZC5oICovOyB9OwotCQkwRjlBMUQyQTI1NTk5NjE3MDBDOEQx
MUIgLyogcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzcy5jIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDREYyNTU5OTYxNjAwQzhEMTFCIC8qIHBh
c19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3MuYyAqLzsgfTsKIAkJMEY5QTFEMkIyNTU5OTYxNzAw
QzhEMTFCIC8qIHBhc19iaXRmaXRfc2l6ZV9jbGFzcy5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDRTAyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19i
aXRmaXRfc2l6ZV9jbGFzcy5jICovOyB9OwogCQkwRjlBMUQyQzI1NTk5NjE3MDBDOEQxMUIgLyog
cGFzX2ZyZWVfZ3JhbnVsZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGOUExQ0UxMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfZnJlZV9ncmFudWxlcy5o
ICovOyB9OwogCQkwRjlBMUQyRDI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX3BhZ2VfaGVhZGVyX3Rh
YmxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlB
MUNFMjI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX3BhZ2VfaGVhZGVyX3RhYmxlLmggKi87IH07CkBA
IC00MDAsNiArMzc5LDcgQEAKIAkJMEZDNjgyMzEyMTI5Q0I0NjAwM0M2QTEzIC8qIEV4dGVuZGVk
R0NEVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEZDNjgyMkYyMTI5Q0I0MzAwM0M2QTEzIC8qIEV4dGVuZGVkR0NEVGVzdHMuY3BwICovOyB9
OwogCQkwRkM2ODIzODIxMjlENEVFMDAzQzZBMTMgLyogQ29hbGlnblRlc3RzLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQzY4MjM2MjEyOUQ0RUIw
MDNDNkExMyAvKiBDb2FsaWduVGVzdHMuY3BwICovOyB9OwogCQkwRkM4NDc5NTIzMkQ2OTQ5MDBC
Mzg2QjYgLyogcGFzX2xhcmdlX3NoYXJpbmdfcG9vbF9lcG9jaF91cGRhdGVfbW9kZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZDODQ3OTQyMzJENjk0
OTAwQjM4NkI2IC8qIHBhc19sYXJnZV9zaGFyaW5nX3Bvb2xfZXBvY2hfdXBkYXRlX21vZGUuaCAq
LzsgfTsKKwkJMEZDQkQwMzQyNkFERjkyNTAwRDI2RDY4IC8qIHBhc19wYWdlX3NoYXJpbmdfcG9v
bF9zY2F2ZW5nZV9yZXN1bHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGQ0JEMDMzMjZBREY5MjUwMEQyNkQ2OCAvKiBwYXNfcGFnZV9zaGFyaW5nX3Bv
b2xfc2NhdmVuZ2VfcmVzdWx0LmggKi87IH07CiAJCTBGQ0NEMTQxMjY1NUU2RTcwMDE3MUExRiAv
KiBwYXNfY29tcGFjdF9hdG9taWNfZW51bWVyYWJsZV9yYW5nZV9saXN0X2NodW5rX3B0ci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZDQ0QxNDAyNjU1
RTZFNzAwMTcxQTFGIC8qIHBhc19jb21wYWN0X2F0b21pY19lbnVtZXJhYmxlX3JhbmdlX2xpc3Rf
Y2h1bmtfcHRyLmggKi87IH07CiAJCTBGQ0ZBNDlBMjM4MzUyRUMwMENDRDcyNiAvKiBwYXNfbGFy
Z2Vfc2hhcmluZ19wb29sLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRkNGQTQ5ODIzODM1MkVCMDBDQ0Q3MjYgLyogcGFzX2xhcmdlX3NoYXJpbmdfcG9v
bC5oICovOyB9OwogCQkwRkNGQTQ5QjIzODM1MkVDMDBDQ0Q3MjYgLyogcGFzX2xhcmdlX3NoYXJp
bmdfcG9vbC5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEZDRkE0OTkyMzgzNTJFQzAwQ0NENzI2IC8qIHBhc19sYXJnZV9zaGFyaW5nX3Bvb2wuYyAqLzsg
fTsKQEAgLTUxMyw3ICs0OTMsNiBAQAogCQkwRkU3RUUxNDIyOTYwMTQyMDA0RjQxNjYgLyogcGFz
X2hlYXBfcmVmX3ByZWZpeC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEY0N0Q0MEEyMTQwREIwNTAwOEM0MUYwIC8qIHBhc19oZWFwX3JlZl9wcmVmaXgu
aCAqLzsgfTsKIAkJMEZFN0VFMTUyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19oZWFwX3JlZi5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZDNjgxQzcyMTBG
N0M5RjAwM0M2QTEzIC8qIHBhc19oZWFwX3JlZi5oICovOyB9OwogCQkwRkU3RUUxNjIyOTYwMTQy
MDA0RjQxNjYgLyogcGFzX2hlYXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGQzY4MUMwMjEwRjdDOUUwMDNDNkExMyAvKiBwYXNfaGVhcC5oICovOyB9
OwotCQkwRkU3RUUxQTIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2ludHJpbnNpY19hbGxvY2F0aW9u
X3Jlc3VsdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEZERUE0MjcyMjhCNjQzMzAwODVFMzQwIC8qIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1
bHQuaCAqLzsgfTsKIAkJMEZFN0VFMUMyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19sYXJnZV9mcmVl
X2hlYXBfY29uZmlnLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRkM2ODI0NjIxMkEwRjFGMDAzQzZBMTMgLyogcGFzX2xhcmdlX2ZyZWVfaGVhcF9jb25m
aWcuaCAqLzsgfTsKIAkJMEZFN0VFMUUyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19sYXJnZV9mcmVl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkM2ODFB
ODIxMDNDQUM5MDAzQzZBMTMgLyogcGFzX2xhcmdlX2ZyZWUuaCAqLzsgfTsKIAkJMEZFN0VFMUYy
Mjk2MDE0MjAwNEY0MTY2IC8qIHBhc19sYXJnZV9oZWFwLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkM2ODFBNzIxMDNCMEU2MDAzQzZBMTMgLyogcGFz
X2xhcmdlX2hlYXAuaCAqLzsgfTsKQEAgLTcyOSwyNyArNzA4LDI1IEBACiAvKiBCZWdpbiBQQlhG
aWxlUmVmZXJlbmNlIHNlY3Rpb24gKi8KIAkJMEYwMzdBRjEyNUFFQTkxOTAwNzlCNTgyIC8qIHBh
c19tZWRpdW1fbWVnYXBhZ2VfY2FjaGUuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRo
ID0gcGFzX21lZGl1bV9tZWdhcGFnZV9jYWNoZS5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwRjAzN0FGMjI1QUVBOTFBMDA3OUI1ODIgLyogcGFzX21lZGl1bV9tZWdhcGFnZV9jYWNo
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfbWVkaXVtX21lZ2FwYWdl
X2NhY2hlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGMDRDMjAyMjQ2MERCNkQw
MDFEMzFGMCAvKiBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjA0QzIwMzI0NjBEQjZFMDAxRDMxRjAg
LyogcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5LmMgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuYzsgcGF0aCA9IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeS5j
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjA0QzIwNDI0NjBEQjZFMDAxRDMxRjAg
LyogcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjA0QzIwNzI0NjBEQjZFMDAxRDMxRjAg
LyogcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlwX2tpbmQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdf
b3duZXJzaGlwX2tpbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEYwNEMyMDgy
NDYwREI2RTAwMUQzMUYwIC8qIHBhc19tYWdhemluZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBwYXNfbWFnYXppbmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
MEYwNEMyMEEyNDYwREI2RTAwMUQzMUYwIC8qIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldy5j
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBwYXNfc2VncmVnYXRlZF9iaWFzaW5n
X3ZpZXcuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYwNEMyMEIyNDYwREI2RTAw
MUQzMUYwIC8qIHBhc19oZWFwX2NvbmZpZ19pbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IHBhc19oZWFwX2NvbmZpZ19pbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTBGMDRDMjBDMjQ2MERCNkUwMDFEMzFGMCAvKiBwYXNfc2VncmVnYXRlZF9i
aWFzaW5nX3ZpZXcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX3NlZ3Jl
Z2F0ZWRfYmlhc2luZ192aWV3Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMDRD
MjBEMjQ2MERCNkUwMDFEMzFGMCAvKiBwYXNfbG9jay5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
LmM7IHBhdGggPSBwYXNfbG9jay5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjA0
QzIwRTI0NjBEQjZFMDAxRDMxRjAgLyogcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3Rvcnku
YyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gcGFzX3NlZ3JlZ2F0ZWRfYmlhc2lu
Z19kaXJlY3RvcnkuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEYwNEMyMEYyNDYw
REI2RTAwMUQzMUYwIC8qIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9pbmxp
bmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeV9pbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTBGMDRDMjEwMjQ2MERCNkYwMDFEMzFGMCAvKiBwYXNfc2VncmVnYXRlZF92aWV3X2lubGlu
ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX3NlZ3JlZ2F0ZWRfdmll
d19pbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGMDRDMjEyMjQ2MERC
NkYwMDFEMzFGMCAvKiBwYXNfbWFnYXppbmUuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBw
YXRoID0gcGFzX21hZ2F6aW5lLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMDRD
MjEzMjQ2MERCNkYwMDFEMzFGMCAvKiBwYXNfY29tcGFjdF9hdG9taWNfcGFnZV9zaGFyaW5nX3Bv
b2xfcHRyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19jb21wYWN0X2F0
b21pY19wYWdlX3NoYXJpbmdfcG9vbF9wdHIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJMEYwNEMyMjYyNDYxMUNGRDAwMUQzMUYwIC8qIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZ2xv
YmFsX3NpemVfZGlyZWN0b3J5X3B0ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEYwNEMyMjcyNDYxMUNGRDAwMUQzMUYwIC8qIHBh
c19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3Jl
Z2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwRjA4M0Y1ODIyQzI5NzlCMDBGM0NEQjMgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9j
b25maWdfdXRpbHNfaW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBw
YXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ191dGlsc19pbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTBGMDgzRjU5MjJDMjk3OUIwMEYzQ0RCMyAvKiBwYXNfaGVhcF9jb25m
aWdfdXRpbHNfaW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNf
aGVhcF9jb25maWdfdXRpbHNfaW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwRjA5MjI2OTIyQjA3QzIxMDA3RDVEM0EgLyogcGFzX211dGF0aW9uX2NvdW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19tdXRhdGlvbl9jb3VudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwRjA5MjI2QjIyQjJEODhFMDA3RDVEM0EgLyogcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZV9jb25maWdfdXRpbHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfdXRpbHMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMEYwOTIyNkQyMkIyRDkwOTAwN0Q1RDNBIC8qIHBhc19oZWFwX2NvbmZp
Z191dGlscy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfaGVhcF9jb25m
aWdfdXRpbHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEYxNDg3MEEyNjlCNzUx
NzAwNjg4N0E5IC8qIHBhc19zZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl9tb2RlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19zZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl9tb2Rl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGMTQ4NzBCMjY5Qjc1MTgwMDY4ODdB
OSAvKiBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTBGMTQ4NzBDMjY5Qjc1MTgwMDY4ODdBOSAvKiBwYXNfbG9jYWxfdmlld19jYWNoZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfbG9jYWxfdmlld19jYWNoZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjE0ODcwRDI2OUI3NTE4MDA2ODg3QTkgLyogcGFz
X2NvbXBhY3Rfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19wdHIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19w
dHIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEYxNDg3MEUyNjlCNzUxODAwNjg4
N0E5IC8qIHBhc19oZWFwX3J1bnRpbWVfY29uZmlnLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
YzsgcGF0aCA9IHBhc19oZWFwX3J1bnRpbWVfY29uZmlnLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTBGMTQ4NzBGMjY5Qjc1MTgwMDY4ODdBOSAvKiBwYXNfY29tcGFjdF9zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5X3B0ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0ci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkwRjE0ODcxQTI2OUY1RkNBMDA2ODg3QTkgLyogcGFzX2xvY2Fs
X3ZpZXdfY2FjaGVfbm9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNf
bG9jYWxfdmlld19jYWNoZV9ub2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBG
MTQ4NzFCMjY5RjVGQ0EwMDY4ODdBOSAvKiBwYXNfbG9jYWxfdmlld19jYWNoZS5jICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBwYXNfbG9jYWxfdmlld19jYWNoZS5jOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkwRjE0ODcxQzI2OUY1RkNBMDA2ODg3QTkgLyogcGFzX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfY3JlYXRpb25fbW9kZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9jcmVhdGlvbl9t
b2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGMTQ4NzFEMjY5RjVGQ0EwMDY4
ODdBOSAvKiBwYXNfbG9jYWxfdmlld19jYWNoZV9ub2RlLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuYzsgcGF0aCA9IHBhc19sb2NhbF92aWV3X2NhY2hlX25vZGUuYzsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMEYxNDg3MUUyNjlGNUZDQTAwNjg4N0E5IC8qIHBhc190aHJlYWRfbG9j
YWxfY2FjaGVfbGF5b3V0X25vZGVfa2luZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2tpbmQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYxNTE4RkMyMzQ0MUUzMjAwODMyQjVDIC8qIHBhc19oYXNf
b2JqZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19oYXNfb2JqZWN0
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMThFNjNDMjYyOEJGQjYwMEY2OTAz
RCAvKiBwYXNfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5X2J5X3NpemUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gcGFzX3NoYXJlZF9wYWdlX2RpcmVjdG9yeV9ieV9zaXplLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMThFNjNEMjYyOEJGQjYwMEY2OTAzRCAvKiBw
YXNfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5X2J5X3NpemUuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5jOyBwYXRoID0gcGFzX3NoYXJlZF9wYWdlX2RpcmVjdG9yeV9ieV9zaXplLmM7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03NjUsOCArNzQyLDYgQEAKIAkJMEYxOTMyNjcyMkYzQjNG
MzAwRkJBNzEzIC8qIHBhc19sYXJnZV9oZWFwX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19jYWNoZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfbGFyZ2VfaGVhcF9waHlzaWNh
bF9wYWdlX3NoYXJpbmdfY2FjaGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYx
OTMyNkEyMkY3M0U4NDAwRkJBNzEzIC8qIHBhc19zY2F2ZW5nZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gcGFzX3NjYXZlbmdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwRjE5MzI2QjIyRjczRTg0MDBGQkE3MTMgLyogcGFzX3NjYXZlbmdlci5jICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBwYXNfc2NhdmVuZ2VyLmM7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTBGMUFFQ0U2MjY1ODE5NjAwMDBDNTIxOCAvKiBwYXNfYWxsX21h
Z2F6aW5lcy5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBwYXNfYWxsX21hZ2F6
aW5lcy5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjFBRUNFNzI2NTgxOTYxMDAw
QzUyMTggLyogcGFzX2FsbF9tYWdhemluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gcGFzX2FsbF9tYWdhemluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MEYxQkZENDMyNjY0NTdGMTAwQ0VDMjhEIC8qIHBhc19oZWFwX2NvbmZpZy5jICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmM7IHBhdGggPSBwYXNfaGVhcF9jb25maWcuYzsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMEYyMTUwRUEyNDg0QkIyQTAwMEQ2MzRCIC8qIHBhc19hbGxvY2F0b3Jf
aW5kZXguaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2FsbG9jYXRvcl9p
bmRleC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjIxNTBFQzI0ODRCQjg2MDAw
RDYzNEIgLyogcGFzX2NvbXBhY3RfYXRvbWljX2FsbG9jYXRvcl9pbmRleF9wdHIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2NvbXBhY3RfYXRvbWljX2FsbG9jYXRvcl9p
bmRleF9wdHIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTc5NSw2ICs3NzAsOSBA
QAogCQkwRjQ0M0IzQTIzNDE2QTdDMDBCRTUwRDEgLyogbGlicGFzX3ZlcmlmaWVyLmR5bGliICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSAiY29tcGlsZWQu
bWFjaC1vLmR5bGliIjsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0gbGlicGFzX3ZlcmlmaWVy
LmR5bGliOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQkwRjQ0M0IzRjIz
NDE2QjYzMDBCRTUwRDEgLyogVmVyaWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmVyaWZpZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY0NDNCNEUyMzQxNzYxNTAwQkU1MEQxIC8q
IGxpYm1ibWFsbG9jX2lzb19jb21tb25fcHJpbWl0aXZlX3ZlcmlmaWVkLmR5bGliICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSAiY29tcGlsZWQubWFjaC1v
LmR5bGliIjsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0gbGlibWJtYWxsb2NfaXNvX2NvbW1v
bl9wcmltaXRpdmVfdmVyaWZpZWQuZHlsaWI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19E
SVI7IH07CisJCTBGNDVENUE2MjZBQjczMTQwMEMzNUQ5MyAvKiBwYXNfbG9jYWxfYWxsb2NhdG9y
X2tpbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2xvY2FsX2FsbG9j
YXRvcl9raW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGNDVENUE3MjZBQjcz
MTQwMEMzNUQ5MyAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhLmMgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2Vy
X2RhdGEuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY0NUQ1QTgyNkFCNzMxNDAw
QzM1RDkzIC8qIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0
YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjQ3QzMxODIzMzk2RDFGMDAyQTFD
RjcgLyogcGFzX2FsbG9jYXRpb25fa2luZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBwYXNfYWxsb2NhdGlvbl9raW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTBGNDdDMzE5MjMzOTZEMUYwMDJBMUNGNyAvKiBwYXNfaGVhcF9raW5kLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19oZWFwX2tpbmQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMEY0N0MzMUMyMzM5NkUwQjAwMkExQ0Y3IC8qIHBhc19hbGxvY2F0aW9uX2Nh
bGxiYWNrcy5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBwYXNfYWxsb2NhdGlv
bl9jYWxsYmFja3MuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTgzNCw3ICs4MTIs
NiBAQAogCQkwRjRGNjFDODI1QTRDRDNCMDA4QjRBODIgLyogcGFzX3BheWxvYWRfcmVzZXJ2YXRp
b25fcGFnZV9saXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19wYXls
b2FkX3Jlc2VydmF0aW9uX3BhZ2VfbGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwRjRGNjFDOTI1QTRDRDNCMDA4QjRBODIgLyogcGFzX3BheWxvYWRfcmVzZXJ2YXRpb25fcGFn
ZV9saXN0LmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHBhc19wYXlsb2FkX3Jl
c2VydmF0aW9uX3BhZ2VfbGlzdC5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjUw
OEQ1MjI1OEVDRkQzMDAxNTFFRDggLyogcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2ZpcnN0X2Vs
aWdpYmxlX2tpbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX3NlZ3Jl
Z2F0ZWRfZGlyZWN0b3J5X2ZpcnN0X2VsaWdpYmxlX2tpbmQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJMEY1MDhENUIyNThFRENBNzAwMTUxRUQ4IC8qIElzb0hlYXBUYWJsaW5nVGVz
dHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSXNvSGVhcFRhYmxp
bmdUZXN0cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNTE2RUUyMjQ1NjBG
RjUwMDRFMkI4RCAvKiBwYXNfaW50ZXJuYWxfY29uZmlnLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IHBhc19pbnRlcm5hbF9jb25maWcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMEY1MTZFRTYyNDU2MUE2MDAwNEUyQjhEIC8qIGlzb19oZWFwX2lubmFyZHMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gaXNvX2hlYXBfaW5uYXJkcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjUxOTNFNjI2NkFFNUQ0MDA0ODNBMkMgLyogSklU
SGVhcFRlc3RzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpJVEhl
YXBUZXN0cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05NjIsMzQgKzkzOSwy
NSBAQAogCQkwRjk3RTYyRDIyQTlBODVGMDBDMzU1RjggLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9j
b25maWcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX3NlZ3JlZ2F0ZWRf
cGFnZV9jb25maWcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5N0U2MkYyMkE5
QUFDMTAwQzM1NUY4IC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnLmMgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnLmM7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOTlGOThCMjVDQjJDRTgwMEVFRTQ0OSAvKiBwYXNf
c2l6ZV90aHVuay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfc2l6ZV90
aHVuay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjlBMUM5NzI1NTk5NjExMDBD
OEQxMUIgLyogcGFzX3N1YnBhZ2VfbWFwX2VudHJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IHBhc19zdWJwYWdlX21hcF9lbnRyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQkwRjlBMUM5ODI1NTk5NjExMDBDOEQxMUIgLyogcGFzX2JpdGZpdF9nbG9iYWxfZGly
ZWN0b3J5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19iaXRmaXRfZ2xv
YmFsX2RpcmVjdG9yeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjlBMUM5OTI1
NTk5NjExMDBDOEQxMUIgLyogcGFzX2Zhc3RfcGF0aF9hbGxvY2F0aW9uX3Jlc3VsdF9raW5kLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19mYXN0X3BhdGhfYWxsb2NhdGlv
bl9yZXN1bHRfa2luZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjlBMUM5QTI1
NTk5NjExMDBDOEQxMUIgLyogcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ191dGlscy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX3V0aWxzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOUExQzlCMjU1OTk2MTEwMEM4RDExQiAv
KiBwYXNfYml0Zml0X21heF9mcmVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IHBhc19iaXRmaXRfbWF4X2ZyZWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEY5
QTFDOUMyNTU5OTYxMTAwQzhEMTFCIC8qIHBhc19zdWJwYWdlX21hcF9lbnRyeS5jICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBwYXNfc3VicGFnZV9tYXBfZW50cnkuYzsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5QTFDOUQyNTU5OTYxMTAwQzhEMTFCIC8qIHBhc19z
aGFyZWRfaGFuZGxlX29yX3BhZ2VfYm91bmRhcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gcGFzX3NoYXJlZF9oYW5kbGVfb3JfcGFnZV9ib3VuZGFyeS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkwRjlBMUM5RjI1NTk5NjExMDBDOEQxMUIgLyogcGFzX3NlZ3Jl
Z2F0ZWRfcGFnZV9jb25maWdfdmFyaWFudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ192YXJpYW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTBGOUExQ0EwMjU1OTk2MTIwMEM4RDExQiAvKiBwYXNfZmFzdF9tZWdh
cGFnZV9jYWNoZS5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBwYXNfZmFzdF9t
ZWdhcGFnZV9jYWNoZS5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjlBMUNBMTI1
NTk5NjEyMDBDOEQxMUIgLyogcGFzX2JpdGZpdF92aWV3LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IHBhc19iaXRmaXRfdmlldy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwRjlBMUNBMjI1NTk5NjEyMDBDOEQxMUIgLyogcGFzX2JpdGZpdF92aWV3LmMgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHBhc19iaXRmaXRfdmlldy5jOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQkwRjlBMUNBMzI1NTk5NjEyMDBDOEQxMUIgLyogcGFzX2FsbG9j
YXRpb25fcmVzdWx0LmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHBhc19hbGxv
Y2F0aW9uX3Jlc3VsdC5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjlBMUNBNDI1
NTk5NjEyMDBDOEQxMUIgLyogcGFzX2NvbW1pdF9zcGFuLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuYzsgcGF0aCA9IHBhc19jb21taXRfc3Bhbi5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwRjlBMUNBNTI1NTk5NjEyMDBDOEQxMUIgLyogcGFzX2NvbXBhY3RfYmlhc2luZ19kaXJl
Y3RvcnlfcHRyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19jb21wYWN0
X2JpYXNpbmdfZGlyZWN0b3J5X3B0ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
RjlBMUNBNjI1NTk5NjEyMDBDOEQxMUIgLyogcGFzX3BhZ2VfaGVhZGVyX3RhYmxlLmMgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHBhc19wYWdlX2hlYWRlcl90YWJsZS5jOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjlBMUNBNzI1NTk5NjEyMDBDOEQxMUIgLyogcGFz
X2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTBGOUExQ0E4MjU1OTk2MTIwMEM4RDExQiAvKiBwYXNfY29tbWl0X3NwYW4uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2NvbW1pdF9zcGFuLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOUExQ0E5MjU1OTk2MTIwMEM4RDExQiAvKiBwYXNf
Ymlhc2luZ19kaXJlY3Rvcnlfa2luZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBwYXNfYmlhc2luZ19kaXJlY3Rvcnlfa2luZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQkwRjlBMUNBQTI1NTk5NjEyMDBDOEQxMUIgLyogcGFzX2JpdGZpdF9kaXJlY3RvcnlfYW5k
X2luZGV4LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19iaXRmaXRfZGly
ZWN0b3J5X2FuZF9pbmRleC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjlBMUNB
QjI1NTk5NjEyMDBDOEQxMUIgLyogcGFzX3BhZ2VfYmFzZV9jb25maWdfdXRpbHNfaW5saW5lcy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfcGFnZV9iYXNlX2NvbmZpZ191
dGlsc19pbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOUExQ0FDMjU1
OTk2MTIwMEM4RDExQiAvKiBwYXNfcGFnZV9iYXNlX2lubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gcGFzX3BhZ2VfYmFzZV9pbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTBGOUExQ0FEMjU1OTk2MTMwMEM4RDExQiAvKiBwYXNfcHJvbW90ZV9p
bnRyaW5zaWNfaGVhcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfcHJv
bW90ZV9pbnRyaW5zaWNfaGVhcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjlB
MUNBRTI1NTk5NjEzMDBDOEQxMUIgLyogcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19raW5kLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19iaXRmaXRfcGFnZV9jb25maWdfa2lu
ZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjlBMUNBRjI1NTk5NjEzMDBDOEQx
MUIgLyogcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTBGOUExQ0IwMjU1OTk2MTMwMEM4RDExQiAvKiBwYXNfYml0Zml0
X2JpYXNpbmdfZGlyZWN0b3J5LmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHBh
c19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMEY5QTFDQjEyNTU5OTYxMzAwQzhEMTFCIC8qIHBhc192ZXJzaW9uZWRfZmllbGQuYyAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gcGFzX3ZlcnNpb25lZF9maWVsZC5jOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjlBMUNCMjI1NTk5NjEzMDBDOEQxMUIgLyogcGFz
X2Zhc3RfcGF0aF9hbGxvY2F0aW9uX3Jlc3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBwYXNfZmFzdF9wYXRoX2FsbG9jYXRpb25fcmVzdWx0Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTBGOUExQ0IzMjU1OTk2MTMwMEM4RDExQiAvKiBwYXNfYml0Zml0X2Rp
cmVjdG9yeV9raW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19iaXRm
aXRfZGlyZWN0b3J5X2tpbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5QTFD
QjQyNTU5OTYxMzAwQzhEMTFCIC8qIHBhc19mcmVlX2dyYW51bGVzLmMgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuYzsgcGF0aCA9IHBhc19mcmVlX2dyYW51bGVzLmM7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTBGOUExQ0I1MjU1OTk2MTMwMEM4RDExQiAvKiBwYXNfYml0Zml0X3BhZ2Vf
aW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfYml0Zml0X3Bh
Z2VfaW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjlBMUNCNjI1NTk5
NjEzMDBDOEQxMUIgLyogcGFzX2JpdGZpdF9kaXJlY3RvcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gcGFzX2JpdGZpdF9kaXJlY3RvcnkuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTk5OSwxNyArOTY3LDExIEBACiAJCTBGOUExQ0JBMjU1OTk2MTQwMEM4RDEx
QiAvKiBwYXNfcGFnZV9iYXNlLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHBh
c19wYWdlX2Jhc2UuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5QTFDQkIyNTU5
OTYxNDAwQzhEMTFCIC8qIHBhc19iaXRmaXRfYWxsb2NhdGlvbl9yZXN1bHQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2JpdGZpdF9hbGxvY2F0aW9uX3Jlc3VsdC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjlBMUNCQzI1NTk5NjE0MDBDOEQxMUIgLyog
cGFzX2JpdGZpdF9hbGxvY2F0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
cGFzX2JpdGZpdF9hbGxvY2F0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEY5
QTFDQkQyNTU5OTYxNDAwQzhEMTFCIC8qIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeS5jICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3Rv
cnkuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEY5QTFDQkUyNTU5OTYxNDAwQzhE
MTFCIC8qIHBhc19hbGxfYmlhc2luZ19kaXJlY3Rvcmllcy5jICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmM7IHBhdGggPSBwYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXMuYzsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJMEY5QTFDQkYyNTU5OTYxNDAwQzhEMTFCIC8qIHBhc19iaWFzaW5n
X2RpcmVjdG9yeV9pbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBh
c19iaWFzaW5nX2RpcmVjdG9yeV9pbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTBGOUExQ0MwMjU1OTk2MTQwMEM4RDExQiAvKiBwYXNfcGFnZV9iYXNlX2NvbmZpZy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfcGFnZV9iYXNlX2NvbmZpZy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjlBMUNDMTI1NTk5NjE0MDBDOEQxMUIgLyog
cGFzX2JpdGZpdF9kaXJlY3RvcnkuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0g
cGFzX2JpdGZpdF9kaXJlY3RvcnkuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEY5
QTFDQzIyNTU5OTYxNDAwQzhEMTFCIC8qIHBhc19zdWJwYWdlX21hcC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfc3VicGFnZV9tYXAuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJMEY5QTFDQzMyNTU5OTYxNDAwQzhEMTFCIC8qIHBhc19jb21wYWN0X3N1YnBh
Z2VfbWFwX2VudHJ5X3B0ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNf
Y29tcGFjdF9zdWJwYWdlX21hcF9lbnRyeV9wdHIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMEY5QTFDQzQyNTU5OTYxNDAwQzhEMTFCIC8qIHBhc19iaXRmaXRfYWxsb2NhdG9yLmMg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHBhc19iaXRmaXRfYWxsb2NhdG9yLmM7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOUExQ0M1MjU1OTk2MTQwMEM4RDExQiAv
KiBwYXNfYml0Zml0X3BhZ2UuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gcGFz
X2JpdGZpdF9wYWdlLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOUExQ0M2MjU1
OTk2MTQwMEM4RDExQiAvKiBwYXNfcGFnZV9jb25maWdfa2luZC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBwYXNfcGFnZV9jb25maWdfa2luZC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQkwRjlBMUNDNzI1NTk5NjE1MDBDOEQxMUIgLyogcGFzX2JpYXNpbmdfZGly
ZWN0b3J5LmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHBhc19iaWFzaW5nX2Rp
cmVjdG9yeS5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjlBMUNDODI1NTk5NjE1
MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9kaXJlY3RvcnlfaW5saW5lcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfYml0Zml0X2RpcmVjdG9yeV9pbmxpbmVzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOUExQ0M5MjU1OTk2MTUwMEM4RDExQiAvKiBwYXNf
Yml0Zml0X3BhZ2VfY29uZmlnX2tpbmQuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRo
ID0gcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19raW5kLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTBGOUExQ0NBMjU1OTk2MTUwMEM4RDExQiAvKiBwYXNfZmFzdF9tZWdhcGFnZV9raW5k
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19mYXN0X21lZ2FwYWdlX2tp
bmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwMTcsMjIgKzk3OSwxOCBAQAog
CQkwRjlBMUNDQzI1NTk5NjE1MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19raW5k
LmRlZiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmQu
ZGVmOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjlBMUNDRDI1NTk5NjE1MDBDOEQx
MUIgLyogcGFzX2JpdGZpdF9oZWFwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IHBhc19iaXRmaXRfaGVhcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjlBMUND
RTI1NTk5NjE1MDBDOEQxMUIgLyogcGFzX2Zhc3RfbWVnYXBhZ2VfdGFibGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2Zhc3RfbWVnYXBhZ2VfdGFibGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEY5QTFDRDAyNTU5OTYxNTAwQzhEMTFCIC8qIHBhc19h
bGxfYmlhc2luZ19kaXJlY3Rvcmllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBwYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMEY5QTFDRDEyNTU5OTYxNTAwQzhEMTFCIC8qIHBhc19iaXRmaXRfaGVhcC5jICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBwYXNfYml0Zml0X2hlYXAuYzsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5QTFDRDIyNTU5OTYxNTAwQzhEMTFCIC8qIHBhc19iaXRm
aXRfYWxsb2NhdG9yX2lubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
cGFzX2JpdGZpdF9hbGxvY2F0b3JfaW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwRjlBMUNEMzI1NTk5NjE2MDBDOEQxMUIgLyogcGFzX2NvbXBhY3RfdGFnZ2VkX3BhZ2Vf
Z3JhbnVsZV91c2VfY291bnRfcHRyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IHBhc19jb21wYWN0X3RhZ2dlZF9wYWdlX2dyYW51bGVfdXNlX2NvdW50X3B0ci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwRjlBMUNENDI1NTk5NjE2MDBDOEQxMUIgLyogcGFzX3Bh
Z2VfYmFzZV9jb25maWdfdXRpbHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
cGFzX3BhZ2VfYmFzZV9jb25maWdfdXRpbHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMEY5QTFDRDUyNTU5OTYxNjAwQzhEMTFCIC8qIHBhc19wYWdlX2hlYWRlcl9wbGFjZW1lbnRf
bW9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfcGFnZV9oZWFkZXJf
cGxhY2VtZW50X21vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5QTFDRDYy
NTU5OTYxNjAwQzhEMTFCIC8qIHBhc19iaXRmaXRfc2l6ZV9jbGFzcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfYml0Zml0X3NpemVfY2xhc3MuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJMEY5QTFDRDcyNTU5OTYxNjAwQzhEMTFCIC8qIHBhc19zdWJwYWdl
X21hcC5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBwYXNfc3VicGFnZV9tYXAu
Yzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEY5QTFDRDgyNTU5OTYxNjAwQzhEMTFC
IC8qIHBhc19iaWFzaW5nX2RpcmVjdG9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBwYXNfYmlhc2luZ19kaXJlY3RvcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMEY5QTFDRDkyNTU5OTYxNjAwQzhEMTFCIC8qIHBhc19wYWdlX3NoYXJpbmdfbW9kZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfcGFnZV9zaGFyaW5nX21vZGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5QTFDREEyNTU5OTYxNjAwQzhEMTFCIC8q
IHBhc19wYWdlX2dyYW51bGVfdXNlX2NvdW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IHBhc19wYWdlX2dyYW51bGVfdXNlX2NvdW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTBGOUExQ0RCMjU1OTk2MTYwMEM4RDExQiAvKiBwYXNfc2hhcmVkX2hhbmRsZV9v
cl9wYWdlX2JvdW5kYXJ5X2lubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gcGFzX3NoYXJlZF9oYW5kbGVfb3JfcGFnZV9ib3VuZGFyeV9pbmxpbmVzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOUExQ0RDMjU1OTk2MTYwMEM4RDExQiAvKiBwYXNfY29t
cGFjdF9wYWdlX2dyYW51bGVfdXNlX2NvdW50X3B0ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBwYXNfY29tcGFjdF9wYWdlX2dyYW51bGVfdXNlX2NvdW50X3B0ci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjlBMUNERDI1NTk5NjE2MDBDOEQxMUIgLyogcGFz
X2JpdGZpdF9wYWdlX2NvbmZpZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBw
YXNfYml0Zml0X3BhZ2VfY29uZmlnLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBG
OUExQ0RFMjU1OTk2MTYwMEM4RDExQiAvKiBwYXNfcGFnZV9raW5kLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19wYWdlX2tpbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJMEY5QTFDREYyNTU5OTYxNjAwQzhEMTFCIC8qIHBhc19iaXRmaXRfZ2xvYmFsX3Np
emVfY2xhc3MuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gcGFzX2JpdGZpdF9n
bG9iYWxfc2l6ZV9jbGFzcy5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjlBMUNF
MDI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9zaXplX2NsYXNzLmMgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHBhc19iaXRmaXRfc2l6ZV9jbGFzcy5jOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkwRjlBMUNFMTI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2ZyZWVf
Z3JhbnVsZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2ZyZWVfZ3Jh
bnVsZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5QTFDRTIyNTU5OTYxNzAw
QzhEMTFCIC8qIHBhc19wYWdlX2hlYWRlcl90YWJsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBwYXNfcGFnZV9oZWFkZXJfdGFibGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTExNDgsNiArMTEwNiw3IEBACiAJCTBGQzY4MjRDMjEyQTVCRkUwMDNDNkExMyAv
KiBwYXNfZGVhbGxvY2F0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFz
X2RlYWxsb2NhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGQzY4MjVEMjEy
Q0E3NkQwMDNDNkExMyAvKiBwYXNfbG9jay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBwYXNfbG9jay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkM4NDc5NDIz
MkQ2OTQ5MDBCMzg2QjYgLyogcGFzX2xhcmdlX3NoYXJpbmdfcG9vbF9lcG9jaF91cGRhdGVfbW9k
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfbGFyZ2Vfc2hhcmluZ19w
b29sX2Vwb2NoX3VwZGF0ZV9tb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBG
Q0JEMDMzMjZBREY5MjUwMEQyNkQ2OCAvKiBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfc2NhdmVuZ2Vf
cmVzdWx0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19wYWdlX3NoYXJp
bmdfcG9vbF9zY2F2ZW5nZV9yZXN1bHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MEZDQ0QxNDAyNjU1RTZFNzAwMTcxQTFGIC8qIHBhc19jb21wYWN0X2F0b21pY19lbnVtZXJhYmxl
X3JhbmdlX2xpc3RfY2h1bmtfcHRyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IHBhc19jb21wYWN0X2F0b21pY19lbnVtZXJhYmxlX3JhbmdlX2xpc3RfY2h1bmtfcHRyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGQ0ZBNDk4MjM4MzUyRUIwMENDRDcyNiAvKiBw
YXNfbGFyZ2Vfc2hhcmluZ19wb29sLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IHBhc19sYXJnZV9zaGFyaW5nX3Bvb2wuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MEZDRkE0OTkyMzgzNTJFQzAwQ0NENzI2IC8qIHBhc19sYXJnZV9zaGFyaW5nX3Bvb2wuYyAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gcGFzX2xhcmdlX3NoYXJpbmdfcG9vbC5jOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTIyMCw3ICsxMTc5LDYgQEAKIAkJMEZERUE0
MUEyMjhCNjQzMjAwODVFMzQwIC8qIHBhc19jYXJlc19hYm91dF9zaXplX21vZGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2NhcmVzX2Fib3V0X3NpemVfbW9kZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkRFQTQxQjIyOEI2NDMyMDA4NUUzNDAgLyog
cGFzX3V0aWxpdHlfaGVhcF9jb25maWcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gcGFzX3V0aWxpdHlfaGVhcF9jb25maWcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMEZERUE0MjMyMjhCNjQzMzAwODVFMzQwIC8qIHBhc191dGlsaXR5X2hlYXBfY29uZmlnLmMg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHBhc191dGlsaXR5X2hlYXBfY29uZmln
LmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGREVBNDI3MjI4QjY0MzMwMDg1RTM0
MCAvKiBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZERUE0MkIyMjhCNjQzMzAwODVFMzQwIC8qIHBhc19h
bGlnbm1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2FsaWdubWVu
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkRFQTQ1RDIyOEI2NTFCMDA4NUUz
NDAgLyogQml0ZmllbGRWZWN0b3JUZXN0cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBCaXRmaWVsZFZlY3RvclRlc3RzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMEZERUE0NkQyMjhCNjU0MzAwODVFMzQwIC8qIHBhc196ZXJvX21vZGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX3plcm9fbW9kZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTM1Miw4ICsxMzEwLDggQEAKIAkJMEY0NDNCMzQyMzQwNTBF
NTAwQkU1MEQxIC8qIHZlcmlmaWVyICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGls
ZHJlbiA9ICgKLQkJCQkwRjQ0M0IzNTIzNDE2QTQwMDBCRTUwRDEgLyogVmVyaWZpZXIuY3BwICov
LAogCQkJCTBGNDQzQjNGMjM0MTZCNjMwMEJFNTBEMSAvKiBWZXJpZmllci5oICovLAorCQkJCTBG
NDQzQjM1MjM0MTZBNDAwMEJFNTBEMSAvKiBWZXJpZmllci5jcHAgKi8sCiAJCQkpOwogCQkJcGF0
aCA9IHZlcmlmaWVyOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTEzODEsNyArMTMz
OSw2IEBACiAJCQkJMEZGMjQ4RkIyMzBDQzRDNzAwNzcyMDJFIC8qIElzb0hlYXBQYWdlU2hhcmlu
Z1Rlc3RzLmNwcCAqLywKIAkJCQkwRkQ0OEI2NjIzQjU4OTkxMDAyNkM0NkQgLyogSXNvSGVhcFBh
cnRpYWxBbmRCYXNlbGluZVRlc3RzLmNwcCAqLywKIAkJCQkwRjVCNjA5MzIzNUU5MTk5MDBDQUU2
MjkgLyogSXNvSGVhcFJlc2VydmVkTWVtb3J5VGVzdHMuY3BwICovLAotCQkJCTBGNTA4RDVCMjU4
RURDQTcwMDE1MUVEOCAvKiBJc29IZWFwVGFibGluZ1Rlc3RzLmNwcCAqLywKIAkJCQkwRjUxOTNF
NjI2NkFFNUQ0MDA0ODNBMkMgLyogSklUSGVhcFRlc3RzLmNwcCAqLywKIAkJCQkwRkM2NDE5MDIx
Mzc0NUZBMDA0MENFNUUgLyogTGFyZ2VGcmVlSGVhcFRlc3RzLmNwcCAqLywKIAkJCQkwRkVCNjY2
NjIzMUM4N0JDMDA5QzAwMUIgLyogTGFyZ2VTaGFyaW5nUG9vbER1bXAuY3BwICovLApAQCAtMTQw
NSwxMTYgKzEzNjIsMTAwIEBACiAJCTBGQzY4MUU3MjEwRkU3NTEwMDNDNkExMyAvKiBsaWJwYXMg
Ki8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCTBGOEE4MDVG
MjVFRUNDMUMwMDc5MEI0QSAvKiBibWFsbG9jX2hlYXAuYyAqLywKLQkJCQkwRjhBODA2MDI1RUVD
QzFDMDA3OTBCNEEgLyogYm1hbGxvY19oZWFwLmggKi8sCiAJCQkJMEY4QTgwNjEyNUVFQ0MxQzAw
NzkwQjRBIC8qIGJtYWxsb2NfaGVhcF9jb25maWcuYyAqLywKIAkJCQkwRjhBODA2MjI1RUVDQzFD
MDA3OTBCNEEgLyogYm1hbGxvY19oZWFwX2NvbmZpZy5oICovLAogCQkJCTBGOEE4MDVFMjVFRUND
MUMwMDc5MEI0QSAvKiBibWFsbG9jX2hlYXBfaW5saW5lcy5oICovLAogCQkJCTBGOEE4MDY0MjVF
RUNDMUQwMDc5MEI0QSAvKiBibWFsbG9jX2hlYXBfaW5uYXJkcy5oICovLAogCQkJCTBGOEE4MDYz
MjVFRUNDMUQwMDc5MEI0QSAvKiBibWFsbG9jX2hlYXBfcmVmLmggKi8sCi0JCQkJMEY4QTgwRkUy
NUY2QTc5NTAwNzkwQjRBIC8qIGhvdGJpdF9oZWFwLmMgKi8sCi0JCQkJMEY4QTgwRkYyNUY2QTc5
NTAwNzkwQjRBIC8qIGhvdGJpdF9oZWFwLmggKi8sCisJCQkJMEY4QTgwNUYyNUVFQ0MxQzAwNzkw
QjRBIC8qIGJtYWxsb2NfaGVhcC5jICovLAorCQkJCTBGOEE4MDYwMjVFRUNDMUMwMDc5MEI0QSAv
KiBibWFsbG9jX2hlYXAuaCAqLywKIAkJCQkwRjhBODBGQjI1RjZBNzk1MDA3OTBCNEEgLyogaG90
Yml0X2hlYXBfY29uZmlnLmMgKi8sCiAJCQkJMEY4QTgwRkQyNUY2QTc5NTAwNzkwQjRBIC8qIGhv
dGJpdF9oZWFwX2NvbmZpZy5oICovLAogCQkJCTBGOEE4MTAwMjVGNkE3OTUwMDc5MEI0QSAvKiBo
b3RiaXRfaGVhcF9pbmxpbmVzLmggKi8sCiAJCQkJMEY4QTgwRkMyNUY2QTc5NTAwNzkwQjRBIC8q
IGhvdGJpdF9oZWFwX2lubmFyZHMuaCAqLywKLQkJCQkwRkU3RUU3NDIyOUYwMTBGMDA0RjQxNjYg
LyogaXNvX2hlYXAuYyAqLywKLQkJCQkwRkU3RUU3NTIyOUYwMTBGMDA0RjQxNjYgLyogaXNvX2hl
YXAuaCAqLywKKwkJCQkwRjhBODBGRTI1RjZBNzk1MDA3OTBCNEEgLyogaG90Yml0X2hlYXAuYyAq
LywKKwkJCQkwRjhBODBGRjI1RjZBNzk1MDA3OTBCNEEgLyogaG90Yml0X2hlYXAuaCAqLywKIAkJ
CQkwRkU3RUU1NTIyOTc0MzM1MDA0RjQxNjYgLyogaXNvX2hlYXBfY29uZmlnLmMgKi8sCiAJCQkJ
MEZFN0VFNTQyMjk3NDMzNTAwNEY0MTY2IC8qIGlzb19oZWFwX2NvbmZpZy5oICovLAogCQkJCTBG
NUZFN0EzMjVCNjE0RjIwMDE4NTlGQyAvKiBpc29faGVhcF9pbmxpbmVzLmggKi8sCiAJCQkJMEY1
MTZFRTYyNDU2MUE2MDAwNEUyQjhEIC8qIGlzb19oZWFwX2lubmFyZHMuaCAqLywKIAkJCQkwRjUy
OURERTI0NTU0NjBDMDAzODVBOEMgLyogaXNvX2hlYXBfcmVmLmggKi8sCi0JCQkJMEY1RTVDRTky
M0JFRjM1RjAwQUEwQjZGIC8qIGlzb190ZXN0X2hlYXAuYyAqLywKLQkJCQkwRjVFNUNFQTIzQkVG
MzYwMDBBQTBCNkYgLyogaXNvX3Rlc3RfaGVhcC5oICovLAorCQkJCTBGRTdFRTc0MjI5RjAxMEYw
MDRGNDE2NiAvKiBpc29faGVhcC5jICovLAorCQkJCTBGRTdFRTc1MjI5RjAxMEYwMDRGNDE2NiAv
KiBpc29faGVhcC5oICovLAogCQkJCTBGNUU1Q0U4MjNCRUYzNUYwMEFBMEI2RiAvKiBpc29fdGVz
dF9oZWFwX2NvbmZpZy5jICovLAogCQkJCTBGNUU1Q0VCMjNCRUYzNjAwMEFBMEI2RiAvKiBpc29f
dGVzdF9oZWFwX2NvbmZpZy5oICovLAotCQkJCTBGNTlBMzlEMjY2ODQ3MEUwMEEzODY1NyAvKiBq
aXRfaGVhcC5jICovLAotCQkJCTBGNTlBMzhGMjY2N0YwMEUwMEEzODY1NyAvKiBqaXRfaGVhcC5o
ICovLAorCQkJCTBGNUU1Q0U5MjNCRUYzNUYwMEFBMEI2RiAvKiBpc29fdGVzdF9oZWFwLmMgKi8s
CisJCQkJMEY1RTVDRUEyM0JFRjM2MDAwQUEwQjZGIC8qIGlzb190ZXN0X2hlYXAuaCAqLywKKwkJ
CQkwRjU5QTM5NzI2NjgzMTc0MDBBMzg2NTcgLyogaml0X2hlYXBfY29uZmlnX3Jvb3RfZGF0YS5o
ICovLAogCQkJCTBGNTlBMzk5MjY2ODQ0QTMwMEEzODY1NyAvKiBqaXRfaGVhcF9jb25maWcuYyAq
LywKIAkJCQkwRjU5QTM5MDI2NjdGMDBFMDBBMzg2NTcgLyogaml0X2hlYXBfY29uZmlnLmggKi8s
Ci0JCQkJMEY1OUEzOTcyNjY4MzE3NDAwQTM4NjU3IC8qIGppdF9oZWFwX2NvbmZpZ19yb290X2Rh
dGEuaCAqLywKLQkJCQkwRkJENjdENjI1QkQzNjNBMDBBNDkwRDIgLyogbWluYWxpZ24zMl9oZWFw
LmMgKi8sCi0JCQkJMEZCRDY3RDgyNUJEMzYzQTAwQTQ5MEQyIC8qIG1pbmFsaWduMzJfaGVhcC5o
ICovLAorCQkJCTBGNTlBMzlEMjY2ODQ3MEUwMEEzODY1NyAvKiBqaXRfaGVhcC5jICovLAorCQkJ
CTBGNTlBMzhGMjY2N0YwMEUwMEEzODY1NyAvKiBqaXRfaGVhcC5oICovLAogCQkJCTBGQkQ2N0Q3
MjVCRDM2M0EwMEE0OTBEMiAvKiBtaW5hbGlnbjMyX2hlYXBfY29uZmlnLmMgKi8sCiAJCQkJMEZC
RDY3RDkyNUJEMzYzQTAwQTQ5MEQyIC8qIG1pbmFsaWduMzJfaGVhcF9jb25maWcuaCAqLywKLQkJ
CQkwRkJENjdFRjI1QkUwNzg3MDBBNDkwRDIgLyogcGFnZXNpemU2NGtfaGVhcC5jICovLAotCQkJ
CTBGQkQ2N0VEMjVCRTA3ODcwMEE0OTBEMiAvKiBwYWdlc2l6ZTY0a19oZWFwLmggKi8sCisJCQkJ
MEZCRDY3RDYyNUJEMzYzQTAwQTQ5MEQyIC8qIG1pbmFsaWduMzJfaGVhcC5jICovLAorCQkJCTBG
QkQ2N0Q4MjVCRDM2M0EwMEE0OTBEMiAvKiBtaW5hbGlnbjMyX2hlYXAuaCAqLywKIAkJCQkwRkJE
NjdFQzI1QkUwNzg3MDBBNDkwRDIgLyogcGFnZXNpemU2NGtfaGVhcF9jb25maWcuYyAqLywKIAkJ
CQkwRkJENjdFRTI1QkUwNzg3MDBBNDkwRDIgLyogcGFnZXNpemU2NGtfaGVhcF9jb25maWcuaCAq
LywKKwkJCQkwRkJENjdFRjI1QkUwNzg3MDBBNDkwRDIgLyogcGFnZXNpemU2NGtfaGVhcC5jICov
LAorCQkJCTBGQkQ2N0VEMjVCRTA3ODcwMEE0OTBEMiAvKiBwYWdlc2l6ZTY0a19oZWFwLmggKi8s
CiAJCQkJMEZDNjgxRjYyMTFDRDVERjAwM0M2QTEzIC8qIHBhc19hbGlnbmVkX2FsbG9jYXRpb25f
cmVzdWx0LmggKi8sCiAJCQkJMEZDNjgxRjMyMTFDRDVERjAwM0M2QTEzIC8qIHBhc19hbGlnbmVk
X2FsbG9jYXRvci5oICovLAogCQkJCTBGREVBNDE2MjI4QjY0MzIwMDg1RTM0MCAvKiBwYXNfYWxp
Z25tZW50LmMgKi8sCiAJCQkJMEZERUE0MkIyMjhCNjQzMzAwODVFMzQwIC8qIHBhc19hbGlnbm1l
bnQuaCAqLywKLQkJCQkwRjlBMUNCRTI1NTk5NjE0MDBDOEQxMUIgLyogcGFzX2FsbF9iaWFzaW5n
X2RpcmVjdG9yaWVzLmMgKi8sCi0JCQkJMEY5QTFDRDAyNTU5OTYxNTAwQzhEMTFCIC8qIHBhc19h
bGxfYmlhc2luZ19kaXJlY3Rvcmllcy5oICovLAogCQkJCTBGNTlBMzkxMjY2N0YwMEUwMEEzODY1
NyAvKiBwYXNfYWxsX2hlYXBfY29uZmlncy5oICovLAogCQkJCTBGQzY4MUVFMjExNEQ5ODMwMDND
NkExMyAvKiBwYXNfYWxsX2hlYXBzLmMgKi8sCiAJCQkJMEZDNjgxRUYyMTE0RDk4NDAwM0M2QTEz
IC8qIHBhc19hbGxfaGVhcHMuaCAqLywKLQkJCQkwRjFBRUNFNjI2NTgxOTYwMDAwQzUyMTggLyog
cGFzX2FsbF9tYWdhemluZXMuYyAqLywKLQkJCQkwRjFBRUNFNzI2NTgxOTYxMDAwQzUyMTggLyog
cGFzX2FsbF9tYWdhemluZXMuaCAqLywKIAkJCQkwRkQ0OEIwQjIzQTlBQkIxMDAyNkM0NkQgLyog
cGFzX2FsbF9zaGFyZWRfcGFnZV9kaXJlY3Rvcmllcy5jICovLAogCQkJCTBGRDQ4QjI3MjNBOUFC
QjMwMDI2QzQ2RCAvKiBwYXNfYWxsX3NoYXJlZF9wYWdlX2RpcmVjdG9yaWVzLmggKi8sCiAJCQkJ
MEY0N0MzMUMyMzM5NkUwQjAwMkExQ0Y3IC8qIHBhc19hbGxvY2F0aW9uX2NhbGxiYWNrcy5jICov
LAogCQkJCTBGNDdDMzFEMjMzOTZFMEIwMDJBMUNGNyAvKiBwYXNfYWxsb2NhdGlvbl9jYWxsYmFj
a3MuaCAqLywKIAkJCQkwRjc4MDg4QzIyRkE1MzQxMDBGMzc0NTEgLyogcGFzX2FsbG9jYXRpb25f
Y29uZmlnLmggKi8sCiAJCQkJMEY0N0MzMTgyMzM5NkQxRjAwMkExQ0Y3IC8qIHBhc19hbGxvY2F0
aW9uX2tpbmQuaCAqLywKLQkJCQkwRjlBMUNBMzI1NTk5NjEyMDBDOEQxMUIgLyogcGFzX2FsbG9j
YXRpb25fcmVzdWx0LmMgKi8sCiAJCQkJMEZDNjgxQjIyMTA2NUEwMDAwM0M2QTEzIC8qIHBhc19h
bGxvY2F0aW9uX3Jlc3VsdC5oICovLAogCQkJCTBGREJCMDdBMjJCQkZGODMwMDZCQTVGQyAvKiBw
YXNfYWxsb2NhdG9yX2NvdW50cy5oICovLAogCQkJCTBGMjE1MEVBMjQ4NEJCMkEwMDBENjM0QiAv
KiBwYXNfYWxsb2NhdG9yX2luZGV4LmggKi8sCiAJCQkJMEY2QjQ3RkMyMzMxNUFFNDAwMkE1RTBD
IC8qIHBhc19hbGxvY2F0b3Jfc2NhdmVuZ2VfYWN0aW9uLmggKi8sCi0JCQkJMEZENDhCMjgyM0E5
QUJCMzAwMjZDNDZEIC8qIHBhc19iYXNlbGluZV9hbGxvY2F0b3IuYyAqLywKLQkJCQkwRkQ0OEIw
MDIzQTlBQkIwMDAyNkM0NkQgLyogcGFzX2Jhc2VsaW5lX2FsbG9jYXRvci5oICovLAogCQkJCTBG
RDQ4QjA1MjNBOUFCQjAwMDI2QzQ2RCAvKiBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX3Jlc3VsdC5o
ICovLAogCQkJCTBGRDQ4QjA0MjNBOUFCQjAwMDI2QzQ2RCAvKiBwYXNfYmFzZWxpbmVfYWxsb2Nh
dG9yX3RhYmxlLmMgKi8sCiAJCQkJMEZENDhCMUYyM0E5QUJCMjAwMjZDNDZEIC8qIHBhc19iYXNl
bGluZV9hbGxvY2F0b3JfdGFibGUuaCAqLywKKwkJCQkwRkQ0OEIyODIzQTlBQkIzMDAyNkM0NkQg
LyogcGFzX2Jhc2VsaW5lX2FsbG9jYXRvci5jICovLAorCQkJCTBGRDQ4QjAwMjNBOUFCQjAwMDI2
QzQ2RCAvKiBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yLmggKi8sCiAJCQkJMEY1OUEzOUEyNjY4NDRB
MzAwQTM4NjU3IC8qIHBhc19iYXNpY19oZWFwX2NvbmZpZ19lbnVtZXJhdG9yX2RhdGEuYyAqLywK
IAkJCQkwRjRGNjE2MzI1OUJGQjg1MDA4QjRBODIgLyogcGFzX2Jhc2ljX2hlYXBfY29uZmlnX2Vu
dW1lcmF0b3JfZGF0YS5oICovLAogCQkJCTBGNEY2MTZDMjU5QkZGOTEwMDhCNEE4MiAvKiBwYXNf
YmFzaWNfaGVhcF9jb25maWdfcm9vdF9kYXRhLmggKi8sCiAJCQkJMEYzMjlBMUUyM0YxMTMyQTAw
QTEzM0M0IC8qIHBhc19iYXNpY19oZWFwX3BhZ2VfY2FjaGVzLmggKi8sCiAJCQkJMEYzMjlBMUQy
M0YxMTMyQTAwQTEzM0M0IC8qIHBhc19iYXNpY19oZWFwX3J1bnRpbWVfY29uZmlnLmggKi8sCiAJ
CQkJMEYzMjlBMjAyM0YxMTMyQTAwQTEzM0M0IC8qIHBhc19iYXNpY19zZWdyZWdhdGVkX3BhZ2Vf
Y2FjaGVzLmggKi8sCi0JCQkJMEY5QTFDQzcyNTU5OTYxNTAwQzhEMTFCIC8qIHBhc19iaWFzaW5n
X2RpcmVjdG9yeS5jICovLAotCQkJCTBGOUExQ0Q4MjU1OTk2MTYwMEM4RDExQiAvKiBwYXNfYmlh
c2luZ19kaXJlY3RvcnkuaCAqLywKLQkJCQkwRjlBMUNCRjI1NTk5NjE0MDBDOEQxMUIgLyogcGFz
X2JpYXNpbmdfZGlyZWN0b3J5X2lubGluZXMuaCAqLywKIAkJCQkwRjlBMUNBOTI1NTk5NjEyMDBD
OEQxMUIgLyogcGFzX2JpYXNpbmdfZGlyZWN0b3J5X2tpbmQuaCAqLywKIAkJCQkwRkRFQTQxOTIy
OEI2NDMyMDA4NUUzNDAgLyogcGFzX2JpdGZpZWxkX3ZlY3Rvci5oICovLAogCQkJCTBGOUExQ0JC
MjU1OTk2MTQwMEM4RDExQiAvKiBwYXNfYml0Zml0X2FsbG9jYXRpb25fcmVzdWx0LmggKi8sCisJ
CQkJMEY5QTFDRDIyNTU5OTYxNTAwQzhEMTFCIC8qIHBhc19iaXRmaXRfYWxsb2NhdG9yX2lubGlu
ZXMuaCAqLywKIAkJCQkwRjlBMUNDNDI1NTk5NjE0MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9hbGxv
Y2F0b3IuYyAqLywKIAkJCQkwRjlBMUNCQzI1NTk5NjE0MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9h
bGxvY2F0b3IuaCAqLywKLQkJCQkwRjlBMUNEMjI1NTk5NjE1MDBDOEQxMUIgLyogcGFzX2JpdGZp
dF9hbGxvY2F0b3JfaW5saW5lcy5oICovLAotCQkJCTBGOUExQ0IwMjU1OTk2MTMwMEM4RDExQiAv
KiBwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5LmMgKi8sCi0JCQkJMEY5QTFDQTcyNTU5OTYx
MjAwQzhEMTFCIC8qIHBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkuaCAqLywKKwkJCQkwRjlB
MUNDODI1NTk5NjE1MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9kaXJlY3RvcnlfaW5saW5lcy5oICov
LAogCQkJCTBGOUExQ0MxMjU1OTk2MTQwMEM4RDExQiAvKiBwYXNfYml0Zml0X2RpcmVjdG9yeS5j
ICovLAogCQkJCTBGOUExQ0I2MjU1OTk2MTMwMEM4RDExQiAvKiBwYXNfYml0Zml0X2RpcmVjdG9y
eS5oICovLAotCQkJCTBGOUExQ0FBMjU1OTk2MTIwMEM4RDExQiAvKiBwYXNfYml0Zml0X2RpcmVj
dG9yeV9hbmRfaW5kZXguaCAqLywKLQkJCQkwRjlBMUNDODI1NTk5NjE1MDBDOEQxMUIgLyogcGFz
X2JpdGZpdF9kaXJlY3RvcnlfaW5saW5lcy5oICovLAotCQkJCTBGOUExQ0IzMjU1OTk2MTMwMEM4
RDExQiAvKiBwYXNfYml0Zml0X2RpcmVjdG9yeV9raW5kLmggKi8sCi0JCQkJMEY5QTFDQkQyNTU5
OTYxNDAwQzhEMTFCIC8qIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeS5jICovLAotCQkJCTBG
OUExQzk4MjU1OTk2MTEwMEM4RDExQiAvKiBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkuaCAq
LywKLQkJCQkwRjlBMUNERjI1NTk5NjE2MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9nbG9iYWxfc2l6
ZV9jbGFzcy5jICovLAotCQkJCTBGOUExQ0FGMjU1OTk2MTMwMEM4RDExQiAvKiBwYXNfYml0Zml0
X2dsb2JhbF9zaXplX2NsYXNzLmggKi8sCiAJCQkJMEY5QTFDRDEyNTU5OTYxNTAwQzhEMTFCIC8q
IHBhc19iaXRmaXRfaGVhcC5jICovLAogCQkJCTBGOUExQ0NEMjU1OTk2MTUwMEM4RDExQiAvKiBw
YXNfYml0Zml0X2hlYXAuaCAqLywKIAkJCQkwRjlBMUM5QjI1NTk5NjExMDBDOEQxMUIgLyogcGFz
X2JpdGZpdF9tYXhfZnJlZS5oICovLAotCQkJCTBGOUExQ0M1MjU1OTk2MTQwMEM4RDExQiAvKiBw
YXNfYml0Zml0X3BhZ2UuYyAqLywKLQkJCQkwRjlBMUNCNzI1NTk5NjEzMDBDOEQxMUIgLyogcGFz
X2JpdGZpdF9wYWdlLmggKi8sCi0JCQkJMEY5QTFDREQyNTU5OTYxNjAwQzhEMTFCIC8qIHBhc19i
aXRmaXRfcGFnZV9jb25maWcuaCAqLywKIAkJCQkwRjU3MDkxNzI1NkFCMjExMDAwMzdCQjMgLyog
cGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19pbmxpbmVzLmggKi8sCiAJCQkJMEY5QTFDQzkyNTU5OTYx
NTAwQzhEMTFCIC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWdfa2luZC5jICovLAogCQkJCTBGOUEx
Q0NDMjU1OTk2MTUwMEM4RDExQiAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmQuZGVmICov
LAogCQkJCTBGOUExQ0FFMjU1OTk2MTMwMEM4RDExQiAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmln
X2tpbmQuaCAqLywKLQkJCQkwRjlBMUM5QTI1NTk5NjExMDBDOEQxMUIgLyogcGFzX2JpdGZpdF9w
YWdlX2NvbmZpZ191dGlscy5oICovLAogCQkJCTBGNTcwOTE5MjU2QUI0MTcwMDAzN0JCMyAvKiBw
YXNfYml0Zml0X3BhZ2VfY29uZmlnX3V0aWxzX2lubGluZXMuaCAqLywKKwkJCQkwRjlBMUM5QTI1
NTk5NjExMDBDOEQxMUIgLyogcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ191dGlscy5oICovLAogCQkJ
CTBGOUExQ0NCMjU1OTk2MTUwMEM4RDExQiAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX3Zhcmlh
bnQuaCAqLywKKwkJCQkwRjlBMUNERDI1NTk5NjE2MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9wYWdl
X2NvbmZpZy5oICovLAogCQkJCTBGOUExQ0I1MjU1OTk2MTMwMEM4RDExQiAvKiBwYXNfYml0Zml0
X3BhZ2VfaW5saW5lcy5oICovLAorCQkJCTBGOUExQ0M1MjU1OTk2MTQwMEM4RDExQiAvKiBwYXNf
Yml0Zml0X3BhZ2UuYyAqLywKKwkJCQkwRjlBMUNCNzI1NTk5NjEzMDBDOEQxMUIgLyogcGFzX2Jp
dGZpdF9wYWdlLmggKi8sCiAJCQkJMEY5QTFDRTAyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRm
aXRfc2l6ZV9jbGFzcy5jICovLAogCQkJCTBGOUExQ0Q2MjU1OTk2MTYwMEM4RDExQiAvKiBwYXNf
Yml0Zml0X3NpemVfY2xhc3MuaCAqLywKLQkJCQkwRjlBMUNBMjI1NTk5NjEyMDBDOEQxMUIgLyog
cGFzX2JpdGZpdF92aWV3LmMgKi8sCi0JCQkJMEY5QTFDQTEyNTU5OTYxMjAwQzhEMTFCIC8qIHBh
c19iaXRmaXRfdmlldy5oICovLAogCQkJCTBGOUExRDQ0MjU1REJFNjEwMEM4RDExQiAvKiBwYXNf
Yml0Zml0X3ZpZXdfYW5kX2luZGV4LmggKi8sCiAJCQkJMEY5QTFENDAyNTVBRjI3OTAwQzhEMTFC
IC8qIHBhc19iaXRmaXRfdmlld19pbmxpbmVzLmggKi8sCisJCQkJMEY5QTFDQTIyNTU5OTYxMjAw
QzhEMTFCIC8qIHBhc19iaXRmaXRfdmlldy5jICovLAorCQkJCTBGOUExQ0ExMjU1OTk2MTIwMEM4
RDExQiAvKiBwYXNfYml0Zml0X3ZpZXcuaCAqLywKIAkJCQkwRkM2ODFCMzIxMDZDRDc5MDAzQzZB
MTMgLyogcGFzX2JpdHZlY3Rvci5oICovLAogCQkJCTBGQzY4MjNEMjEyOUVENTAwMDNDNkExMyAv
KiBwYXNfYm9vdHN0cmFwX2ZyZWVfaGVhcC5jICovLAogCQkJCTBGQzY4MjNGMjEyOUVENTEwMDND
NkExMyAvKiBwYXNfYm9vdHN0cmFwX2ZyZWVfaGVhcC5oICovLApAQCAtMTUzOCw5ICsxNDc5LDkg
QEAKIAkJCQkwRjA0QzIxMzI0NjBEQjZGMDAxRDMxRjAgLyogcGFzX2NvbXBhY3RfYXRvbWljX3Bh
Z2Vfc2hhcmluZ19wb29sX3B0ci5oICovLAogCQkJCTBGNkQ1NjQxMjNDQUExQjkwMEY0MERCQiAv
KiBwYXNfY29tcGFjdF9hdG9taWNfcHRyLmggKi8sCiAJCQkJMEY2NkQ1NDIyNDg3NjBBODAwRkM3
MzQ3IC8qIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X3B0ci5o
ICovLAotCQkJCTBGMDRDMjI3MjQ2MTFDRkQwMDFEMzFGMCAvKiBwYXNfY29tcGFjdF9hdG9taWNf
c2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyLmggKi8sCiAJCQkJMEY2RDU2NUYy
M0NCRDE5RDAwRjQwREJCIC8qIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2hlYXBfcGFn
ZV9zaGFyaW5nX3Bvb2xzX3B0ci5oICovLAogCQkJCTBGNkQ1NjU5MjNDQkQxOUMwMEY0MERCQiAv
KiBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXdfcHRyLmggKi8sCisJ
CQkJMEYxNDg3MEIyNjlCNzUxODAwNjg4N0E5IC8qIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5X3B0ci5oICovLAogCQkJCTBGNkQ1NjYwMjNDQkQxOUQwMEY0MERC
QiAvKiBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF92aWV3LmggKi8sCiAJCQkJMEZBNUU0
NTUyNDkyRDVCOTAwQ0U5NjJBIC8qIHBhc19jb21wYWN0X2F0b21pY190aHJlYWRfbG9jYWxfY2Fj
aGVfbGF5b3V0X25vZGUuaCAqLywKIAkJCQkwRjZENTY1MTIzQ0JEMTlDMDBGNDBEQkIgLyogcGFz
X2NvbXBhY3RfYXRvbWljX3Vuc2lnbmVkX3B0ci5oICovLApAQCAtMTU1OSwxNCArMTUwMCwxNCBA
QAogCQkJCTBGOUExQ0RDMjU1OTk2MTYwMEM4RDExQiAvKiBwYXNfY29tcGFjdF9wYWdlX2dyYW51
bGVfdXNlX2NvdW50X3B0ci5oICovLAogCQkJCTBGNkQ1NjNGMjNDQUExQjkwMEY0MERCQiAvKiBw
YXNfY29tcGFjdF9wdHIuaCAqLywKIAkJCQkwRjY2RDU0MTI0ODc2MEE4MDBGQzczNDcgLyogcGFz
X2NvbXBhY3Rfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeV9wdHIuaCAqLywKLQkJCQkwRjA0
QzIyNjI0NjExQ0ZEMDAxRDMxRjAgLyogcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnlfcHRyLmggKi8sCisJCQkJMEYxNDg3MEQyNjlCNzUxODAwNjg4N0E5IC8qIHBh
c19jb21wYWN0X3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyLmggKi8sCiAJCQkJMEY2RDU2
NzUyM0NDMTQxRTAwRjQwREJCIC8qIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfaGVhcF9wdHIuaCAq
LywKIAkJCQkwRjZENTY1NTIzQ0JEMTlDMDBGNDBEQkIgLyogcGFzX2NvbXBhY3Rfc2VncmVnYXRl
ZF9zaGFyZWRfcGFnZV9kaXJlY3RvcnlfcHRyLmggKi8sCiAJCQkJMEY2RDU2NUIyM0NCRDE5QzAw
RjQwREJCIC8qIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXdfcHRyLmggKi8sCisJ
CQkJMEYxNDg3MEYyNjlCNzUxODAwNjg4N0E5IC8qIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnlfcHRyLmggKi8sCiAJCQkJMEY2RDU2NTMyM0NCRDE5QzAwRjQwREJCIC8qIHBh
c19jb21wYWN0X3NlZ3JlZ2F0ZWRfdmlldy5oICovLAotCQkJCTBGMzFBNjNGMjNEQ0Y4NDgwMDJD
MENBMyAvKiBwYXNfY29tcGFjdF9za2lwX2xpc3Rfbm9kZV9wdHIuaCAqLywKIAkJCQkwRjMxQTY0
NTIzRTRDNDQxMDAyQzBDQTMgLyogcGFzX2NvbXBhY3Rfc2tpcF9saXN0X25vZGVfcHRyX3B0ci5o
ICovLAotCQkJCTBGOUExQ0MzMjU1OTk2MTQwMEM4RDExQiAvKiBwYXNfY29tcGFjdF9zdWJwYWdl
X21hcF9lbnRyeV9wdHIuaCAqLywKKwkJCQkwRjMxQTYzRjIzRENGODQ4MDAyQzBDQTMgLyogcGFz
X2NvbXBhY3Rfc2tpcF9saXN0X25vZGVfcHRyLmggKi8sCiAJCQkJMEY2RDU2NEQyM0NBQkE2NTAw
RjQwREJCIC8qIHBhc19jb21wYWN0X3RhZ2dlZF9hdG9taWNfcHRyLmggKi8sCiAJCQkJMEY5QTFD
RDMyNTU5OTYxNjAwQzhEMTFCIC8qIHBhc19jb21wYWN0X3RhZ2dlZF9wYWdlX2dyYW51bGVfdXNl
X2NvdW50X3B0ci5oICovLAogCQkJCTBGNkQ1NjQ0MjNDQUExQjkwMEY0MERCQiAvKiBwYXNfY29t
cGFjdF90YWdnZWRfcHRyLmggKi8sCkBAIC0xNTc0LDI0ICsxNTE1LDI0IEBACiAJCQkJMEY2RDU2
NEYyM0NCRDE5QjAwRjQwREJCIC8qIHBhc19jb21wYWN0X3Vuc2lnbmVkX3B0ci5oICovLAogCQkJ
CTBGQzRFQzM1MjM0QTkxRTMwMEI3MTBBMyAvKiBwYXNfY29tcHV0ZV9zdW1tYXJ5X29iamVjdF9j
YWxsYmFja3MuYyAqLywKIAkJCQkwRkM0RUMzMDIzNEE5MUUyMDBCNzEwQTMgLyogcGFzX2NvbXB1
dGVfc3VtbWFyeV9vYmplY3RfY2FsbGJhY2tzLmggKi8sCi0JCQkJMEZDNjgxQTIyMTAzOTE3QjAw
M0M2QTEzIC8qIHBhc19jb25maWcuaCAqLywKIAkJCQkwRjg1RUZENTIyRTJCRUM3MDAzQTM2MkIg
LyogcGFzX2NvbmZpZ19wcmVmaXguaCAqLywKKwkJCQkwRkM2ODFBMjIxMDM5MTdCMDAzQzZBMTMg
LyogcGFzX2NvbmZpZy5oICovLAogCQkJCTBGRDQ4QjBBMjNBOUFCQjEwMDI2QzQ2RCAvKiBwYXNf
Y291bnRfbG9va3VwX21vZGUuaCAqLywKIAkJCQkwRjMyOUEyNjIzRjFENjM1MDBBMTMzQzQgLyog
cGFzX2NyZWF0ZV9iYXNpY19oZWFwX3BhZ2VfY2FjaGVzX3dpdGhfcmVzZXJ2ZWRfbWVtb3J5LmMg
Ki8sCiAJCQkJMEYzMjlBMjUyM0YxRDYzNTAwQTEzM0M0IC8qIHBhc19jcmVhdGVfYmFzaWNfaGVh
cF9wYWdlX2NhY2hlc193aXRoX3Jlc2VydmVkX21lbW9yeS5oICovLAogCQkJCTBGRTdFRTVGMjI5
RTE0RkEwMDRGNDE2NiAvKiBwYXNfZGVhbGxvY2F0ZS5jICovLAogCQkJCTBGRTdFRTVFMjI5RTE0
RkEwMDRGNDE2NiAvKiBwYXNfZGVhbGxvY2F0ZS5oICovLAogCQkJCTBGRkZENTE0MjU2QjBGQkMw
MDFFQjk0QyAvKiBwYXNfZGVhbGxvY2F0aW9uX21vZGUuaCAqLywKLQkJCQkwRkM2ODI0QzIxMkE1
QkZFMDAzQzZBMTMgLyogcGFzX2RlYWxsb2NhdG9yLmggKi8sCiAJCQkJMEY2QjQ3RkIyMzMxNUFF
NDAwMkE1RTBDIC8qIHBhc19kZWFsbG9jYXRvcl9zY2F2ZW5nZV9hY3Rpb24uaCAqLywKKwkJCQkw
RkM2ODI0QzIxMkE1QkZFMDAzQzZBMTMgLyogcGFzX2RlYWxsb2NhdG9yLmggKi8sCiAJCQkJMEYz
NzNFNTEyNjU5RUE1RTAwMzRCQTk2IC8qIHBhc19kZWJ1Z19oZWFwLmggKi8sCiAJCQkJMEZCQzYy
QzAyNjVGMTJBMzAwNUE1NzIwIC8qIHBhc19kZWJ1Z19zcGVjdHJ1bS5jICovLAogCQkJCTBGQkM2
MkMxMjY1RjEyQTMwMDVBNTcyMCAvKiBwYXNfZGVidWdfc3BlY3RydW0uaCAqLywKIAkJCQkwRjc4
MDg5ODIyRkE2RjA4MDBGMzc0NTEgLyogcGFzX2RlZmVycmVkX2RlY29tbWl0X2xvZy5jICovLAog
CQkJCTBGNzgwODk5MjJGQTZGMDgwMEYzNzQ1MSAvKiBwYXNfZGVmZXJyZWRfZGVjb21taXRfbG9n
LmggKi8sCisJCQkJMEY1QjgzQkUyNDkxODk5RTAwRjQxMDUyIC8qIHBhc19kZXNpZ25hdGVkX2lu
dHJpbnNpY19oZWFwX2lubGluZXMuaCAqLywKIAkJCQkwRjVCODNCQjI0OTE4ODhBMDBGNDEwNTIg
LyogcGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXAuYyAqLywKIAkJCQkwRjVCODNCQTI0OTE4
ODg5MDBGNDEwNTIgLyogcGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXAuaCAqLywKLQkJCQkw
RjVCODNCRTI0OTE4OTlFMDBGNDEwNTIgLyogcGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXBf
aW5saW5lcy5oICovLAogCQkJCTBGOUU5NDY0MjM0NjYwRDMwMDlGQUZERCAvKiBwYXNfZHlsZF9z
dGF0ZS5jICovLAogCQkJCTBGOUU5NDY1MjM0NjYwRDMwMDlGQUZERCAvKiBwYXNfZHlsZF9zdGF0
ZS5oICovLAogCQkJCTBGRUE0NUMxMjM2Q0U4OUQwMEI1QTM3NSAvKiBwYXNfZHluYW1pY19wcmlt
aXRpdmVfaGVhcF9tYXAuYyAqLywKQEAgLTE2MTQsMTEgKzE1NTUsMTEgQEAKIAkJCQkwRjRGNjEy
QjI1OTkwODc3MDA4QjRBODIgLyogcGFzX2VudW1lcmF0ZV9zZWdyZWdhdGVkX2hlYXBzLmggKi8s
CiAJCQkJMEY0RjYxQTUyNUEzRDBCQjAwOEI0QTgyIC8qIHBhc19lbnVtZXJhdGVfdW5hY2NvdW50
ZWRfcGFnZXNfYXNfbWV0YS5jICovLAogCQkJCTBGNEY2MUE5MjVBM0QwQkIwMDhCNEE4MiAvKiBw
YXNfZW51bWVyYXRlX3VuYWNjb3VudGVkX3BhZ2VzX2FzX21ldGEuaCAqLywKLQkJCQkwRjRGNjEw
NDI1OTdBRjg3MDA4QjRBODIgLyogcGFzX2VudW1lcmF0b3IuYyAqLywKLQkJCQkwRjRGNjEwMzI1
OTdBRjg3MDA4QjRBODIgLyogcGFzX2VudW1lcmF0b3IuaCAqLywKIAkJCQkwRjRGNjE4MDI1OUU3
MzRGMDA4QjRBODIgLyogcGFzX2VudW1lcmF0b3JfaW50ZXJuYWwuaCAqLywKIAkJCQkwRjRGNjEx
OTI1OTgzOEIxMDA4QjRBODIgLyogcGFzX2VudW1lcmF0b3JfcmVnaW9uLmMgKi8sCiAJCQkJMEY0
RjYxMUEyNTk4MzhCMTAwOEI0QTgyIC8qIHBhc19lbnVtZXJhdG9yX3JlZ2lvbi5oICovLAorCQkJ
CTBGNEY2MTA0MjU5N0FGODcwMDhCNEE4MiAvKiBwYXNfZW51bWVyYXRvci5jICovLAorCQkJCTBG
NEY2MTAzMjU5N0FGODcwMDhCNEE4MiAvKiBwYXNfZW51bWVyYXRvci5oICovLAogCQkJCTBGMTkz
MjRGMjJFRDA0QTYwMEZCQTcxMyAvKiBwYXNfZXBvY2guYyAqLywKIAkJCQkwRjE5MzI0RDIyRUQw
NEE1MDBGQkE3MTMgLyogcGFzX2Vwb2NoLmggKi8sCiAJCQkJMEZENDhBRjkyM0E5QUJBRjAwMjZD
NDZEIC8qIHBhc19leGNsdXNpdmVfdmlld190ZW1wbGF0ZV9tZW1vX3RhYmxlLmMgKi8sCkBAIC0x
NjMyLDggKzE1NzMsOCBAQAogCQkJCTBGOUExQ0NBMjU1OTk2MTUwMEM4RDExQiAvKiBwYXNfZmFz
dF9tZWdhcGFnZV9raW5kLmggKi8sCiAJCQkJMEY5QTFENDcyNTVFMjg0MjAwQzhEMTFCIC8qIHBh
c19mYXN0X21lZ2FwYWdlX3RhYmxlLmMgKi8sCiAJCQkJMEY5QTFDQ0UyNTU5OTYxNTAwQzhEMTFC
IC8qIHBhc19mYXN0X21lZ2FwYWdlX3RhYmxlLmggKi8sCi0JCQkJMEY5QTFDQjIyNTU5OTYxMzAw
QzhEMTFCIC8qIHBhc19mYXN0X3BhdGhfYWxsb2NhdGlvbl9yZXN1bHQuaCAqLywKIAkJCQkwRjlB
MUM5OTI1NTk5NjExMDBDOEQxMUIgLyogcGFzX2Zhc3RfcGF0aF9hbGxvY2F0aW9uX3Jlc3VsdF9r
aW5kLmggKi8sCisJCQkJMEY5QTFDQjIyNTU5OTYxMzAwQzhEMTFCIC8qIHBhc19mYXN0X3BhdGhf
YWxsb2NhdGlvbl9yZXN1bHQuaCAqLywKIAkJCQkwRkI1NzA2QTI2N0QwM0NEMDA4MEZBOEIgLyog
cGFzX2Zhc3RfdGxzLmggKi8sCiAJCQkJMEZDNEVDMkYyMzRBOTFFMjAwQjcxMEEzIC8qIHBhc19m
ZF9zdHJlYW0uYyAqLywKIAkJCQkwRkM0RUMzNjIzNEE5MUUzMDBCNzEwQTMgLyogcGFzX2ZkX3N0
cmVhbS5oICovLApAQCAtMTY0NCw4ICsxNTg1LDggQEAKIAkJCQkwRjlBMUNFMTI1NTk5NjE3MDBD
OEQxMUIgLyogcGFzX2ZyZWVfZ3JhbnVsZXMuaCAqLywKIAkJCQkwRjE5MzI1MTIyRUQwNEE2MDBG
QkE3MTMgLyogcGFzX2ZyZWVfbW9kZS5oICovLAogCQkJCTBGRDQ4QjEzMjNBOUFCQjEwMDI2QzQ2
RCAvKiBwYXNfZnJlZV9yYW5nZV9raW5kLmggKi8sCi0JCQkJMEZENDhCMUQyM0E5QUJCMjAwMjZD
NDZEIC8qIHBhc19mdWxsX2FsbG9jX2JpdHMuaCAqLywKIAkJCQkwRkQ0OEFGRjIzQTlBQkIwMDAy
NkM0NkQgLyogcGFzX2Z1bGxfYWxsb2NfYml0c19pbmxpbmVzLmggKi8sCisJCQkJMEZENDhCMUQy
M0E5QUJCMjAwMjZDNDZEIC8qIHBhc19mdWxsX2FsbG9jX2JpdHMuaCAqLywKIAkJCQkwRkYwOEYz
NzIyQTVCM0UyMDAzODY1NzUgLyogcGFzX2dlbmVyaWNfbGFyZ2VfZnJlZV9oZWFwLmggKi8sCiAJ
CQkJMEZFN0VFNTgyMjlFMTRGOTAwNEY0MTY2IC8qIHBhc19nZXRfYWxsb2NhdGlvbl9zaXplLmgg
Ki8sCiAJCQkJMEZFN0VFNUMyMjlFMTRGOTAwNEY0MTY2IC8qIHBhc19nZXRfaGVhcC5oICovLApA
QCAtMTY1MywxNyArMTU5NCwxNSBAQAogCQkJCTBGOUExRDRFMjU2MzA1QjQwMEM4RDExQiAvKiBw
YXNfZ2V0X3BhZ2VfYmFzZS5oICovLAogCQkJCTBGMTUxOEZDMjM0NDFFMzIwMDgzMkI1QyAvKiBw
YXNfaGFzX29iamVjdC5oICovLAogCQkJCTBGQzY4MjBBMjEyMUY2RTgwMDNDNkExMyAvKiBwYXNf
aGFzaHRhYmxlLmggKi8sCi0JCQkJMEZDNjgxQzgyMTBGN0M5RjAwM0M2QTEzIC8qIHBhc19oZWFw
LmMgKi8sCi0JCQkJMEZDNjgxQzAyMTBGN0M5RTAwM0M2QTEzIC8qIHBhc19oZWFwLmggKi8sCi0J
CQkJMEYxQkZENDMyNjY0NTdGMTAwQ0VDMjhEIC8qIHBhc19oZWFwX2NvbmZpZy5jICovLAotCQkJ
CTBGQzY4MjQ3MjEyQTEwNTQwMDNDNkExMyAvKiBwYXNfaGVhcF9jb25maWcuaCAqLywKIAkJCQkw
RjA0QzIwQjI0NjBEQjZFMDAxRDMxRjAgLyogcGFzX2hlYXBfY29uZmlnX2lubGluZXMuaCAqLywK
IAkJCQkwRjZENTY1NDIzQ0JEMTlDMDBGNDBEQkIgLyogcGFzX2hlYXBfY29uZmlnX2tpbmQuYyAq
LywKIAkJCQkwRjZENTY1MjIzQ0JEMTlDMDBGNDBEQkIgLyogcGFzX2hlYXBfY29uZmlnX2tpbmQu
ZGVmICovLAogCQkJCTBGNkQ1NjVEMjNDQkQxOUQwMEY0MERCQiAvKiBwYXNfaGVhcF9jb25maWdf
a2luZC5oICovLAorCQkJCTBGMDgzRjU5MjJDMjk3OUIwMEYzQ0RCMyAvKiBwYXNfaGVhcF9jb25m
aWdfdXRpbHNfaW5saW5lcy5oICovLAogCQkJCTBGQzY4MjQ5MjEyQTE2MEIwMDNDNkExMyAvKiBw
YXNfaGVhcF9jb25maWdfdXRpbHMuYyAqLywKIAkJCQkwRjA5MjI2RDIyQjJEOTA5MDA3RDVEM0Eg
LyogcGFzX2hlYXBfY29uZmlnX3V0aWxzLmggKi8sCi0JCQkJMEYwODNGNTkyMkMyOTc5QjAwRjND
REIzIC8qIHBhc19oZWFwX2NvbmZpZ191dGlsc19pbmxpbmVzLmggKi8sCisJCQkJMEYxQkZENDMy
NjY0NTdGMTAwQ0VDMjhEIC8qIHBhc19oZWFwX2NvbmZpZy5jICovLAorCQkJCTBGQzY4MjQ3MjEy
QTEwNTQwMDNDNkExMyAvKiBwYXNfaGVhcF9jb25maWcuaCAqLywKIAkJCQkwRkMyRkQzNjIzNzYx
NTEzMDA1M0RENDEgLyogcGFzX2hlYXBfZm9yX2NvbmZpZy5jICovLAogCQkJCTBGQzJGRDM1MjM3
NjE1MTIwMDUzREQ0MSAvKiBwYXNfaGVhcF9mb3JfY29uZmlnLmggKi8sCiAJCQkJMEZENDhCNjgy
M0I2QUVENTAwMjZDNDZEIC8qIHBhc19oZWFwX2lubGluZXMuaCAqLywKQEAgLTE2NzEsMjMgKzE2
MTAsMjQgQEAKIAkJCQkwRkM2ODE5RTIxMDM5MTdCMDAzQzZBMTMgLyogcGFzX2hlYXBfbG9jay5j
ICovLAogCQkJCTBGQzY4MTlGMjEwMzkxN0IwMDNDNkExMyAvKiBwYXNfaGVhcF9sb2NrLmggKi8s
CiAJCQkJMEY2REI4OEIyMzVFNTRBNjAwNjlDQURCIC8qIHBhc19oZWFwX3BhZ2VfcHJvdmlkZXIu
aCAqLywKLQkJCQkwRkM2ODFDNjIxMEY3QzlGMDAzQzZBMTMgLyogcGFzX2hlYXBfcmVmLmMgKi8s
Ci0JCQkJMEZDNjgxQzcyMTBGN0M5RjAwM0M2QTEzIC8qIHBhc19oZWFwX3JlZi5oICovLAogCQkJ
CTBGODc5MkIyMjM4QTFEMEMwMEFFRTdGMSAvKiBwYXNfaGVhcF9yZWZfa2luZC5oICovLAogCQkJ
CTBGNDdENDBBMjE0MERCMDUwMDhDNDFGMCAvKiBwYXNfaGVhcF9yZWZfcHJlZml4LmggKi8sCisJ
CQkJMEZDNjgxQzYyMTBGN0M5RjAwM0M2QTEzIC8qIHBhc19oZWFwX3JlZi5jICovLAorCQkJCTBG
QzY4MUM3MjEwRjdDOUYwMDNDNkExMyAvKiBwYXNfaGVhcF9yZWYuaCAqLywKKwkJCQkwRjE0ODcw
RTI2OUI3NTE4MDA2ODg3QTkgLyogcGFzX2hlYXBfcnVudGltZV9jb25maWcuYyAqLywKIAkJCQkw
RjMyOUExRjIzRjExMzJBMDBBMTMzQzQgLyogcGFzX2hlYXBfcnVudGltZV9jb25maWcuaCAqLywK
IAkJCQkwRkM0RUMzMTIzNEE5MUUyMDBCNzEwQTMgLyogcGFzX2hlYXBfc3VtbWFyeS5jICovLAog
CQkJCTBGRUI2NjY0MjMxQjJBNTcwMDlDMDAxQiAvKiBwYXNfaGVhcF9zdW1tYXJ5LmggKi8sCisJ
CQkJMEY2RDU0ODEyM0M1ODFDMTAwRjQwREJCIC8qIHBhc19oZWFwX3RhYmxlX3N0YXRlLmggKi8s
CiAJCQkJMEY2RDU0NzQyM0M1NzNFMDAwRjQwREJCIC8qIHBhc19oZWFwX3RhYmxlLmMgKi8sCiAJ
CQkJMEY2RDU0NzYyM0M1NzNFMDAwRjQwREJCIC8qIHBhc19oZWFwX3RhYmxlLmggKi8sCi0JCQkJ
MEY2RDU0ODEyM0M1ODFDMTAwRjQwREJCIC8qIHBhc19oZWFwX3RhYmxlX3N0YXRlLmggKi8sCisJ
CQkJMEZDNjgxQzgyMTBGN0M5RjAwM0M2QTEzIC8qIHBhc19oZWFwLmMgKi8sCisJCQkJMEZDNjgx
QzAyMTBGN0M5RTAwM0M2QTEzIC8qIHBhc19oZWFwLmggKi8sCiAJCQkJMEZENDhBRkUyM0E5QUJC
MDAwMjZDNDZEIC8qIHBhc19pbW1vcnRhbF9oZWFwLmMgKi8sCiAJCQkJMEZENDhCMDkyM0E5QUJC
MTAwMjZDNDZEIC8qIHBhc19pbW1vcnRhbF9oZWFwLmggKi8sCiAJCQkJMEZENDhBRkMyM0E5QUJC
MDAwMjZDNDZEIC8qIHBhc19pbW11dGFibGVfdmVjdG9yLmggKi8sCiAJCQkJMEY1MTZFRTIyNDU2
MEZGNTAwNEUyQjhEIC8qIHBhc19pbnRlcm5hbF9jb25maWcuaCAqLywKLQkJCQkwRkRFQTQyNzIy
OEI2NDMzMDA4NUUzNDAgLyogcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdC5oICovLAog
CQkJCTBGRjA4RjQ5MjJBODQ0NkIwMDM4NjU3NSAvKiBwYXNfaW50cmluc2ljX2hlYXBfc3VwcG9y
dC5oICovLAotCQkJCTBGQzY4MUE4MjEwM0NBQzkwMDNDNkExMyAvKiBwYXNfbGFyZ2VfZnJlZS5o
ICovLAogCQkJCTBGQzY4MjQ2MjEyQTBGMUYwMDNDNkExMyAvKiBwYXNfbGFyZ2VfZnJlZV9oZWFw
X2NvbmZpZy5oICovLAogCQkJCTBGNjZENTNGMjQ4NzYwQTcwMEZDNzM0NyAvKiBwYXNfbGFyZ2Vf
ZnJlZV9oZWFwX2RlY2xhcmF0aW9ucy5kZWYgKi8sCiAJCQkJMEY3ODA4ODkyMkZBNTM0MTAwRjM3
NDUxIC8qIHBhc19sYXJnZV9mcmVlX2hlYXBfZGVmZXJyZWRfY29tbWl0X2xvZy5jICovLApAQCAt
MTY5NywzNSArMTYzNyw0MSBAQAogCQkJCTBGNjZENTNFMjQ4NzYwQTcwMEZDNzM0NyAvKiBwYXNf
bGFyZ2VfZnJlZV9oZWFwX2hlbHBlcnMuaCAqLywKIAkJCQkwRkYwMEQzNzIzNzc2RDY0MDBDMjBB
QzAgLyogcGFzX2xhcmdlX2ZyZWVfaW5saW5lcy5oICovLAogCQkJCTBGRjA4RjNGMjJBNUY2NTUw
MDM4NjU3NSAvKiBwYXNfbGFyZ2VfZnJlZV92aXNpdG9yLmggKi8sCi0JCQkJMEZDNjgxQUMyMTA0
RkVBRDAwM0M2QTEzIC8qIHBhc19sYXJnZV9oZWFwLmMgKi8sCi0JCQkJMEZDNjgxQTcyMTAzQjBF
NjAwM0M2QTEzIC8qIHBhc19sYXJnZV9oZWFwLmggKi8sCisJCQkJMEZDNjgxQTgyMTAzQ0FDOTAw
M0M2QTEzIC8qIHBhc19sYXJnZV9mcmVlLmggKi8sCiAJCQkJMEYxOTMyNjYyMkYzQjNGMjAwRkJB
NzEzIC8qIHBhc19sYXJnZV9oZWFwX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19jYWNoZS5jICovLAog
CQkJCTBGMTkzMjY3MjJGM0IzRjMwMEZCQTcxMyAvKiBwYXNfbGFyZ2VfaGVhcF9waHlzaWNhbF9w
YWdlX3NoYXJpbmdfY2FjaGUuaCAqLywKKwkJCQkwRkM2ODFBQzIxMDRGRUFEMDAzQzZBMTMgLyog
cGFzX2xhcmdlX2hlYXAuYyAqLywKKwkJCQkwRkM2ODFBNzIxMDNCMEU2MDAzQzZBMTMgLyogcGFz
X2xhcmdlX2hlYXAuaCAqLywKKwkJCQkwRkYwOEY0NzIyQTc2M0YxMDAzODY1NzUgLyogcGFzX2xh
cmdlX21hcF9lbnRyeS5oICovLAogCQkJCTBGQzY4MUEwMjEwMzkxN0IwMDNDNkExMyAvKiBwYXNf
bGFyZ2VfbWFwLmMgKi8sCiAJCQkJMEZDNjgxQTEyMTAzOTE3QjAwM0M2QTEzIC8qIHBhc19sYXJn
ZV9tYXAuaCAqLywKLQkJCQkwRkYwOEY0NzIyQTc2M0YxMDAzODY1NzUgLyogcGFzX2xhcmdlX21h
cF9lbnRyeS5oICovLAorCQkJCTBGQzg0Nzk0MjMyRDY5NDkwMEIzODZCNiAvKiBwYXNfbGFyZ2Vf
c2hhcmluZ19wb29sX2Vwb2NoX3VwZGF0ZV9tb2RlLmggKi8sCiAJCQkJMEZDRkE0OTkyMzgzNTJF
QzAwQ0NENzI2IC8qIHBhc19sYXJnZV9zaGFyaW5nX3Bvb2wuYyAqLywKIAkJCQkwRkNGQTQ5ODIz
ODM1MkVCMDBDQ0Q3MjYgLyogcGFzX2xhcmdlX3NoYXJpbmdfcG9vbC5oICovLAotCQkJCTBGQzg0
Nzk0MjMyRDY5NDkwMEIzODZCNiAvKiBwYXNfbGFyZ2Vfc2hhcmluZ19wb29sX2Vwb2NoX3VwZGF0
ZV9tb2RlLmggKi8sCiAJCQkJMEY2RDU0NzUyM0M1NzNFMDAwRjQwREJCIC8qIHBhc19sYXJnZV91
dGlsaXR5X2ZyZWVfaGVhcC5jICovLAogCQkJCTBGNkQ1NDcyMjNDNTczRTAwMEY0MERCQiAvKiBw
YXNfbGFyZ2VfdXRpbGl0eV9mcmVlX2hlYXAuaCAqLywKIAkJCQkwRjhBODAyNzI1RUM1ODg4MDA3
OTBCNEEgLyogcGFzX2xpbmVfd29yZF9jb25maWcuaCAqLywKIAkJCQkwRjMxQTY0MzIzRTM1MDlF
MDAyQzBDQTMgLyogcGFzX2xpc3RfZGlyZWN0aW9uLmggKi8sCi0JCQkJMEZEQkIwNzEyMkI4NzVB
NjAwNkJBNUZDIC8qIHBhc19sb2NhbF9hbGxvY2F0b3IuYyAqLywKLQkJCQkwRkRCQjA3MjIyQjg3
NUE2MDA2QkE1RkMgLyogcGFzX2xvY2FsX2FsbG9jYXRvci5oICovLAogCQkJCTBGRDQ4QjAyMjNB
OUFCQjAwMDI2QzQ2RCAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX2NvbmZpZ19raW5kLmggKi8sCiAJ
CQkJMEZEQkIwNzYyMkI4NzdGQTAwNkJBNUZDIC8qIHBhc19sb2NhbF9hbGxvY2F0b3JfaW5saW5l
cy5oICovLAorCQkJCTBGNDVENUE2MjZBQjczMTQwMEMzNUQ5MyAvKiBwYXNfbG9jYWxfYWxsb2Nh
dG9yX2tpbmQuaCAqLywKIAkJCQkwRjhBODAyODI1RUM1ODg4MDA3OTBCNEEgLyogcGFzX2xvY2Fs
X2FsbG9jYXRvcl9saW5lLmggKi8sCiAJCQkJMEZEQkIwNzAyMkI4NzVBNjAwNkJBNUZDIC8qIHBh
c19sb2NhbF9hbGxvY2F0b3JfcmVmaWxsX21vZGUuaCAqLywKIAkJCQkwRkM2ODFCRjIxMEY3QzlF
MDAzQzZBMTMgLyogcGFzX2xvY2FsX2FsbG9jYXRvcl9yZXN1bHQuaCAqLywKLQkJCQkwRjA0QzIw
RDI0NjBEQjZFMDAxRDMxRjAgLyogcGFzX2xvY2suYyAqLywKLQkJCQkwRkM2ODI1RDIxMkNBNzZE
MDAzQzZBMTMgLyogcGFzX2xvY2suaCAqLywKKwkJCQkwRjQ1RDVBNzI2QUI3MzE0MDBDMzVEOTMg
LyogcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YS5jICovLAorCQkJCTBGNDVENUE4
MjZBQjczMTQwMEMzNUQ5MyAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhLmgg
Ki8sCisJCQkJMEZEQkIwNzEyMkI4NzVBNjAwNkJBNUZDIC8qIHBhc19sb2NhbF9hbGxvY2F0b3Iu
YyAqLywKKwkJCQkwRkRCQjA3MjIyQjg3NUE2MDA2QkE1RkMgLyogcGFzX2xvY2FsX2FsbG9jYXRv
ci5oICovLAorCQkJCTBGMTQ4NzFEMjY5RjVGQ0EwMDY4ODdBOSAvKiBwYXNfbG9jYWxfdmlld19j
YWNoZV9ub2RlLmMgKi8sCisJCQkJMEYxNDg3MUEyNjlGNUZDQTAwNjg4N0E5IC8qIHBhc19sb2Nh
bF92aWV3X2NhY2hlX25vZGUuaCAqLywKKwkJCQkwRjE0ODcxQjI2OUY1RkNBMDA2ODg3QTkgLyog
cGFzX2xvY2FsX3ZpZXdfY2FjaGUuYyAqLywKKwkJCQkwRjE0ODcwQzI2OUI3NTE4MDA2ODg3QTkg
LyogcGFzX2xvY2FsX3ZpZXdfY2FjaGUuaCAqLywKIAkJCQkwRkVBNDVCQTIzNkNENUFDMDBCNUEz
NzUgLyogcGFzX2xvY2tfZnJlZV9yZWFkX3B0cl9wdHJfaGFzaHRhYmxlLmMgKi8sCiAJCQkJMEZF
QTQ1QkIyMzZDRDVBQzAwQjVBMzc1IC8qIHBhc19sb2NrX2ZyZWVfcmVhZF9wdHJfcHRyX2hhc2h0
YWJsZS5oICovLAorCQkJCTBGMDRDMjBEMjQ2MERCNkUwMDFEMzFGMCAvKiBwYXNfbG9jay5jICov
LAorCQkJCTBGQzY4MjVEMjEyQ0E3NkQwMDNDNkExMyAvKiBwYXNfbG9jay5oICovLAogCQkJCTBG
OUU5NDU2MjM0NTIyNjIwMDlGQUZERCAvKiBwYXNfbG9nLmMgKi8sCiAJCQkJMEY5RTk0NTcyMzQ1
MjI2MjAwOUZBRkREIC8qIHBhc19sb2cuaCAqLywKLQkJCQkwRjA0QzIxMjI0NjBEQjZGMDAxRDMx
RjAgLyogcGFzX21hZ2F6aW5lLmMgKi8sCi0JCQkJMEYwNEMyMDgyNDYwREI2RTAwMUQzMUYwIC8q
IHBhc19tYWdhemluZS5oICovLAogCQkJCTBGMDM3QUYxMjVBRUE5MTkwMDc5QjU4MiAvKiBwYXNf
bWVkaXVtX21lZ2FwYWdlX2NhY2hlLmMgKi8sCiAJCQkJMEYwMzdBRjIyNUFFQTkxQTAwNzlCNTgy
IC8qIHBhc19tZWRpdW1fbWVnYXBhZ2VfY2FjaGUuaCAqLywKIAkJCQkwRkM2ODIwMDIxMjEwQjE5
MDAzQzZBMTMgLyogcGFzX21lZ2FwYWdlX2NhY2hlLmMgKi8sCkBAIC0xNzM1LDEzICsxNjgxLDEz
IEBACiAJCQkJMEZENDhBRkQyM0E5QUJCMDAwMjZDNDZEIC8qIHBhc19tb25vdG9uaWNfdGltZS5o
ICovLAogCQkJCTBGMDkyMjY5MjJCMDdDMjEwMDdENUQzQSAvKiBwYXNfbXV0YXRpb25fY291bnQu
aCAqLywKIAkJCQkwRjlBMUQ0QTI1NUYyQ0Q3MDBDOEQxMUIgLyogcGFzX29iamVjdF9raW5kLmgg
Ki8sCi0JCQkJMEY5QTFDQkEyNTU5OTYxNDAwQzhEMTFCIC8qIHBhc19wYWdlX2Jhc2UuYyAqLywK
LQkJCQkwRjlBMUNCOTI1NTk5NjEzMDBDOEQxMUIgLyogcGFzX3BhZ2VfYmFzZS5oICovLAotCQkJ
CTBGOUExQ0MwMjU1OTk2MTQwMEM4RDExQiAvKiBwYXNfcGFnZV9iYXNlX2NvbmZpZy5oICovLAog
CQkJCTBGOUExRDQyMjU1QUY3MzIwMEM4RDExQiAvKiBwYXNfcGFnZV9iYXNlX2NvbmZpZ19pbmxp
bmVzLmggKi8sCi0JCQkJMEY5QTFDRDQyNTU5OTYxNjAwQzhEMTFCIC8qIHBhc19wYWdlX2Jhc2Vf
Y29uZmlnX3V0aWxzLmggKi8sCiAJCQkJMEY5QTFDQUIyNTU5OTYxMjAwQzhEMTFCIC8qIHBhc19w
YWdlX2Jhc2VfY29uZmlnX3V0aWxzX2lubGluZXMuaCAqLywKKwkJCQkwRjlBMUNENDI1NTk5NjE2
MDBDOEQxMUIgLyogcGFzX3BhZ2VfYmFzZV9jb25maWdfdXRpbHMuaCAqLywKKwkJCQkwRjlBMUND
MDI1NTk5NjE0MDBDOEQxMUIgLyogcGFzX3BhZ2VfYmFzZV9jb25maWcuaCAqLywKIAkJCQkwRjlB
MUNBQzI1NTk5NjEyMDBDOEQxMUIgLyogcGFzX3BhZ2VfYmFzZV9pbmxpbmVzLmggKi8sCisJCQkJ
MEY5QTFDQkEyNTU5OTYxNDAwQzhEMTFCIC8qIHBhc19wYWdlX2Jhc2UuYyAqLywKKwkJCQkwRjlB
MUNCOTI1NTk5NjEzMDBDOEQxMUIgLyogcGFzX3BhZ2VfYmFzZS5oICovLAogCQkJCTBGOUExQ0M2
MjU1OTk2MTQwMEM4RDExQiAvKiBwYXNfcGFnZV9jb25maWdfa2luZC5oICovLAogCQkJCTBGOUEx
Q0RBMjU1OTk2MTYwMEM4RDExQiAvKiBwYXNfcGFnZV9ncmFudWxlX3VzZV9jb3VudC5oICovLAog
CQkJCTBGOUExQ0Q1MjU1OTk2MTYwMEM4RDExQiAvKiBwYXNfcGFnZV9oZWFkZXJfcGxhY2VtZW50
X21vZGUuaCAqLywKQEAgLTE3NTEsMTIgKzE2OTcsMTMgQEAKIAkJCQkwRkM2ODE4QzIxMDI3QjQ3
MDAzQzZBMTMgLyogcGFzX3BhZ2VfbWFsbG9jLmMgKi8sCiAJCQkJMEZDNjgxODkyMTAyN0I0NjAw
M0M2QTEzIC8qIHBhc19wYWdlX21hbGxvYy5oICovLAogCQkJCTBGOUExQ0Q5MjU1OTk2MTYwMEM4
RDExQiAvKiBwYXNfcGFnZV9zaGFyaW5nX21vZGUuaCAqLywKKwkJCQkwRjE5MzI1QjIyRjExOTNE
MDBGQkE3MTMgLyogcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9raW5kLmggKi8sCiAJCQkJ
MEYxOTMyNUQyMkYxMTkzRDAwRkJBNzEzIC8qIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnQu
YyAqLywKIAkJCQkwRjE5MzI1RTIyRjExOTNEMDBGQkE3MTMgLyogcGFzX3BhZ2Vfc2hhcmluZ19w
YXJ0aWNpcGFudC5oICovLAotCQkJCTBGMTkzMjVCMjJGMTE5M0QwMEZCQTcxMyAvKiBwYXNfcGFn
ZV9zaGFyaW5nX3BhcnRpY2lwYW50X2tpbmQuaCAqLywKKwkJCQkwRkNCRDAzMzI2QURGOTI1MDBE
MjZENjggLyogcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3NjYXZlbmdlX3Jlc3VsdC5oICovLAorCQkJ
CTBGRjI0OEY4MjJGQzlFREIwMDc3MjAyRSAvKiBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9y
ZXN1bHQuaCAqLywKIAkJCQkwRkQyMkNGRTIyQ0MwMUQzMDBCMjE4NDEgLyogcGFzX3BhZ2Vfc2hh
cmluZ19wb29sLmMgKi8sCiAJCQkJMEZEMjJDRkQyMkNDMDFEMzAwQjIxODQxIC8qIHBhc19wYWdl
X3NoYXJpbmdfcG9vbC5oICovLAotCQkJCTBGRjI0OEY4MjJGQzlFREIwMDc3MjAyRSAvKiBwYXNf
cGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9yZXN1bHQuaCAqLywKIAkJCQkwRjRGNjFDOTI1QTRDRDNC
MDA4QjRBODIgLyogcGFzX3BheWxvYWRfcmVzZXJ2YXRpb25fcGFnZV9saXN0LmMgKi8sCiAJCQkJ
MEY0RjYxQzgyNUE0Q0QzQjAwOEI0QTgyIC8qIHBhc19wYXlsb2FkX3Jlc2VydmF0aW9uX3BhZ2Vf
bGlzdC5oICovLAogCQkJCTBGNkQ1NDczMjNDNTczRTAwMEY0MERCQiAvKiBwYXNfcGh5c2ljYWxf
bWVtb3J5X3N5bmNocm9uaXphdGlvbl9zdHlsZS5oICovLApAQCAtMTc3NCwxMSArMTcyMSwxMSBA
QAogCQkJCTBGNUU0ODM1MjNENjk2MEYwMDQ2REE1QyAvKiBwYXNfcmFjZV90ZXN0X2hvb2tzLmgg
Ki8sCiAJCQkJMEZENDhBRjUyM0E5QUJBRjAwMjZDNDZEIC8qIHBhc19yYW5kb20uYyAqLywKIAkJ
CQkwRkQ0OEIwRjIzQTlBQkIxMDAyNkM0NkQgLyogcGFzX3JhbmRvbS5oICovLAotCQkJCTBGMTkz
MjUyMjJFRDA0QTYwMEZCQTcxMyAvKiBwYXNfcmFuZ2UuaCAqLywKLQkJCQkwRjZENTYzOTIzQzc5
RDM3MDBGNDBEQkIgLyogcGFzX3JhbmdlMTYuaCAqLywKIAkJCQkwRjRGNjFBRDI1QTNEMEJCMDA4
QjRBODIgLyogcGFzX3JhbmdlX2JlZ2luX21pbl9oZWFwLmggKi8sCiAJCQkJMEZENDhBRjEyM0E5
QUJBRjAwMjZDNDZEIC8qIHBhc19yYW5nZV9sb2NrZWRfbW9kZS5oICovLAogCQkJCTBGNzgwODhB
MjJGQTUzNDEwMEYzNzQ1MSAvKiBwYXNfcmFuZ2VfbWluX2hlYXAuaCAqLywKKwkJCQkwRjE5MzI1
MjIyRUQwNEE2MDBGQkE3MTMgLyogcGFzX3JhbmdlLmggKi8sCisJCQkJMEY2RDU2MzkyM0M3OUQz
NzAwRjQwREJCIC8qIHBhc19yYW5nZTE2LmggKi8sCiAJCQkJMEZFN0VFN0UyMkExQTU4MDAwNEY0
MTY2IC8qIHBhc19yZWFsbG9jYXRlX2ZyZWVfbW9kZS5oICovLAogCQkJCTBGRTdFRTdDMjJBMUEz
MUMwMDRGNDE2NiAvKiBwYXNfcmVhbGxvY2F0ZV9oZWFwX3RlbGVwb3J0X3J1bGUuaCAqLywKIAkJ
CQkwRkYwOEYzMjIyQTU4RjEyMDAzODY1NzUgLyogcGFzX3JlZF9ibGFja190cmVlLmMgKi8sCkBA
IC0xNzkyLDYyICsxNzM5LDU1IEBACiAJCQkJMEYxOTMyNkIyMkY3M0U4NDAwRkJBNzEzIC8qIHBh
c19zY2F2ZW5nZXIuYyAqLywKIAkJCQkwRjE5MzI2QTIyRjczRTg0MDBGQkE3MTMgLyogcGFzX3Nj
YXZlbmdlci5oICovLAogCQkJCTBGNjgxMjcxMjJCRDRCRjQwMDM2QTAyQiAvKiBwYXNfc2VnbWVu
dGVkX3ZlY3Rvci5oICovLAotCQkJCTBGMDRDMjBFMjQ2MERCNkUwMDFEMzFGMCAvKiBwYXNfc2Vn
cmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeS5jICovLAotCQkJCTBGMDRDMjAyMjQ2MERCNkQwMDFE
MzFGMCAvKiBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeS5oICovLAotCQkJCTBGMDRD
MjBBMjQ2MERCNkUwMDFEMzFGMCAvKiBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcuYyAqLywK
LQkJCQkwRjA0QzIwQzI0NjBEQjZFMDAxRDMxRjAgLyogcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192
aWV3LmggKi8sCi0JCQkJMEZENDhCMUUyM0E5QUJCMjAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVk
X2RpcmVjdG9yeS5jICovLAotCQkJCTBGRDQ4QjFCMjNBOUFCQjIwMDI2QzQ2RCAvKiBwYXNfc2Vn
cmVnYXRlZF9kaXJlY3RvcnkuaCAqLywKKwkJCQkwRjE0ODcwQTI2OUI3NTE3MDA2ODg3QTkgLyog
cGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0aW9uX21vZGUuaCAqLywKIAkJCQkwRkQ0OEIwQzIzQTlB
QkIxMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2JpdF9yZWZlcmVuY2UuaCAq
LywKIAkJCQkwRjUwOEQ1MjI1OEVDRkQzMDAxNTFFRDggLyogcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0
b3J5X2ZpcnN0X2VsaWdpYmxlX2tpbmQuaCAqLywKIAkJCQkwRkQ0OEFGODIzQTlBQkFGMDAyNkM0
NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lubGluZXMuaCAqLywKIAkJCQkwRkQ0OEIy
MjIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2tpbmQuaCAqLywK
KwkJCQkwRkQ0OEIxRTIzQTlBQkIyMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5
LmMgKi8sCisJCQkJMEZENDhCMUIyM0E5QUJCMjAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX2Rp
cmVjdG9yeS5oICovLAorCQkJCTBGRTY3MkI2MjVDMjFENTMwMDZGNjBBMiAvKiBwYXNfc2VncmVn
YXRlZF9leGNsdXNpdmVfdmlld19pbmxpbmVzLmggKi8sCiAJCQkJMEZENDhCMTgyM0E5QUJCMjAw
MjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3LmMgKi8sCiAJCQkJMEZENDhC
MDYyM0E5QUJCMDAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3LmggKi8s
Ci0JCQkJMEZFNjcyQjYyNUMyMUQ1MzAwNkY2MEEyIC8qIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2
ZV92aWV3X2lubGluZXMuaCAqLywKLQkJCQkwRjA0QzIwNzI0NjBEQjZFMDAxRDMxRjAgLyogcGFz
X3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlwX2tpbmQuaCAqLywKLQkJCQkwRjA0
QzIwMzI0NjBEQjZFMDAxRDMxRjAgLyogcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0
b3J5LmMgKi8sCi0JCQkJMEYwNEMyMDQyNDYwREI2RTAwMUQzMUYwIC8qIHBhc19zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeS5oICovLAotCQkJCTBGMDRDMjBGMjQ2MERCNkUwMDFEMzFG
MCAvKiBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfaW5saW5lcy5oICovLAot
CQkJCTBGQzY4MUMxMjEwRjdDOUUwMDNDNkExMyAvKiBwYXNfc2VncmVnYXRlZF9oZWFwLmMgKi8s
Ci0JCQkJMEZDNjgxQzUyMTBGN0M5RjAwM0M2QTEzIC8qIHBhc19zZWdyZWdhdGVkX2hlYXAuaCAq
LywKIAkJCQkwRkQ0OEFGMDIzQTlBQkFGMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9p
bmxpbmVzLmggKi8sCiAJCQkJMEZERUE1ODcyMjhGN0Q0RjAwODVFMzQwIC8qIHBhc19zZWdyZWdh
dGVkX2hlYXBfbG9va3VwX2tpbmQuaCAqLywKLQkJCQkwRkM2ODFCNDIxMDZDRDc5MDAzQzZBMTMg
LyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZS5jICovLAotCQkJCTBGQzY4MUFGMjEwNjVBMDAwMDNDNkEx
MyAvKiBwYXNfc2VncmVnYXRlZF9wYWdlLmggKi8sCisJCQkJMEZDNjgxQzEyMTBGN0M5RTAwM0M2
QTEzIC8qIHBhc19zZWdyZWdhdGVkX2hlYXAuYyAqLywKKwkJCQkwRkM2ODFDNTIxMEY3QzlGMDAz
QzZBMTMgLyogcGFzX3NlZ3JlZ2F0ZWRfaGVhcC5oICovLAogCQkJCTBGOUExRDNFMjU1QTUwRDYw
MEM4RDExQiAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2FuZF9jb25maWcuaCAqLywKLQkJCQkwRjk3
RTYyRjIyQTlBQUMxMDBDMzU1RjggLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcuYyAqLywK
LQkJCQkwRjk3RTYyRDIyQTlBODVGMDBDMzU1RjggLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25m
aWcuaCAqLywKIAkJCQkwRkRCQjA3ODIyQjk4MDU0MDA2QkE1RkMgLyogcGFzX3NlZ3JlZ2F0ZWRf
cGFnZV9jb25maWdfaW5saW5lcy5oICovLAogCQkJCTBGRDQ4QjIzMjNBOUFCQjMwMDI2QzQ2RCAv
KiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kLmMgKi8sCiAJCQkJMEZGOEQ2MjYyMkMw
NEE2RDAwRUM3MkZFIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmQuZGVmICovLAog
CQkJCTBGREVBNDBBMjI4QjY0MzEwMDg1RTM0MCAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZp
Z19raW5kLmggKi8sCi0JCQkJMEYwOTIyNkIyMkIyRDg4RTAwN0Q1RDNBIC8qIHBhc19zZWdyZWdh
dGVkX3BhZ2VfY29uZmlnX3V0aWxzLmggKi8sCiAJCQkJMEYwODNGNTgyMkMyOTc5QjAwRjNDREIz
IC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3V0aWxzX2lubGluZXMuaCAqLywKKwkJCQkw
RjA5MjI2QjIyQjJEODhFMDA3RDVEM0EgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfdXRp
bHMuaCAqLywKIAkJCQkwRjlBMUM5RjI1NTk5NjExMDBDOEQxMUIgLyogcGFzX3NlZ3JlZ2F0ZWRf
cGFnZV9jb25maWdfdmFyaWFudC5oICovLAorCQkJCTBGOTdFNjJGMjJBOUFBQzEwMEMzNTVGOCAv
KiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZy5jICovLAorCQkJCTBGOTdFNjJEMjJBOUE4NUYw
MEMzNTVGOCAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZy5oICovLAogCQkJCTBGQzRFQzc4
MjM1MTcwN0IwMEI3MTBBMyAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2VtcHRpbmVzc19raW5kLmgg
Ki8sCiAJCQkJMEZGOEQ2MjgyMkMxNjZGNTAwRUM3MkZFIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2Vf
aW5saW5lcy5oICovLAorCQkJCTBGQzY4MUI0MjEwNkNENzkwMDNDNkExMyAvKiBwYXNfc2VncmVn
YXRlZF9wYWdlLmMgKi8sCisJCQkJMEZDNjgxQUYyMTA2NUEwMDAwM0M2QTEzIC8qIHBhc19zZWdy
ZWdhdGVkX3BhZ2UuaCAqLywKKwkJCQkwRkQ0OEIyQTIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3Nl
Z3JlZ2F0ZWRfcGFydGlhbF92aWV3X2lubGluZXMuaCAqLywKIAkJCQkwRkQ0OEIxMTIzQTlBQkIx
MDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3LmMgKi8sCiAJCQkJMEZENDhB
RkEyM0E5QUJCMDAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlldy5oICovLAot
CQkJCTBGRDQ4QjJBMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3Zp
ZXdfaW5saW5lcy5oICovLAorCQkJCTBGRDQ4QjAxMjNBOUFCQjAwMDI2QzQ2RCAvKiBwYXNfc2Vn
cmVnYXRlZF9zaGFyZWRfaGFuZGxlX2lubGluZXMuaCAqLywKIAkJCQkwRkQ0OEIwRDIzQTlBQkIx
MDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX2hhbmRsZS5jICovLAogCQkJCTBGRDQ4
QjFBMjNBOUFCQjIwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9zaGFyZWRfaGFuZGxlLmggKi8s
Ci0JCQkJMEZENDhCMDEyM0E5QUJCMDAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9o
YW5kbGVfaW5saW5lcy5oICovLAogCQkJCTBGRDQ4QUYzMjNBOUFCQUYwMDI2QzQ2RCAvKiBwYXNf
c2VncmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJlY3RvcnkuYyAqLywKIAkJCQkwRkQ0OEIxQzIzQTlB
QkIyMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5LmggKi8s
CisJCQkJMEY1RTVDRjEyM0JGQkZCODAwQUEwQjZGIC8qIHBhc19zZWdyZWdhdGVkX3NoYXJlZF92
aWV3X2lubGluZXMuaCAqLywKIAkJCQkwRkQ0OEIxNzIzQTlBQkIyMDAyNkM0NkQgLyogcGFzX3Nl
Z3JlZ2F0ZWRfc2hhcmVkX3ZpZXcuYyAqLywKIAkJCQkwRkQ0OEIyNTIzQTlBQkIzMDAyNkM0NkQg
LyogcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXcuaCAqLywKLQkJCQkwRjVFNUNGMTIzQkZCRkI4
MDBBQTBCNkYgLyogcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXdfaW5saW5lcy5oICovLAorCQkJ
CTBGMTQ4NzFDMjY5RjVGQ0EwMDY4ODdBOSAvKiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eV9jcmVhdGlvbl9tb2RlLmggKi8sCisJCQkJMEZENDhCMTkyM0E5QUJCMjAwMjZDNDZEIC8qIHBh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2lubGluZXMuaCAqLywKIAkJCQkwRkQ0OEIyMTIz
QTlBQkIzMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkuYyAqLywKIAkJ
CQkwRkQ0OEIyOTIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnkuaCAqLywKLQkJCQkwRkQ0OEIxOTIzQTlBQkIyMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnlfaW5saW5lcy5oICovLAotCQkJCTBGRDQ4QUZCMjNBOUFCQjAwMDI2QzQ2
RCAvKiBwYXNfc2VncmVnYXRlZF92aWV3LmMgKi8sCi0JCQkJMEZENDhCMEUyM0E5QUJCMTAwMjZD
NDZEIC8qIHBhc19zZWdyZWdhdGVkX3ZpZXcuaCAqLywKIAkJCQkwRkU2NzJDNjI1QzIxRjY3MDA2
RjYwQTIgLyogcGFzX3NlZ3JlZ2F0ZWRfdmlld19hbGxvY2F0b3JfaW5saW5lcy5oICovLAotCQkJ
CTBGMDRDMjEwMjQ2MERCNkYwMDFEMzFGMCAvKiBwYXNfc2VncmVnYXRlZF92aWV3X2lubGluZXMu
aCAqLywKIAkJCQkwRkQ0OEIxNDIzQTlBQkIyMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfdmll
d19raW5kLmggKi8sCi0JCQkJMEY5QTFDOUQyNTU5OTYxMTAwQzhEMTFCIC8qIHBhc19zaGFyZWRf
aGFuZGxlX29yX3BhZ2VfYm91bmRhcnkuaCAqLywKKwkJCQkwRkQ0OEFGQjIzQTlBQkIwMDAyNkM0
NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfdmlldy5jICovLAorCQkJCTBGRDQ4QjBFMjNBOUFCQjEwMDI2
QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF92aWV3LmggKi8sCiAJCQkJMEY5QTFDREIyNTU5OTYxNjAw
QzhEMTFCIC8qIHBhc19zaGFyZWRfaGFuZGxlX29yX3BhZ2VfYm91bmRhcnlfaW5saW5lcy5oICov
LAorCQkJCTBGOUExQzlEMjU1OTk2MTEwMEM4RDExQiAvKiBwYXNfc2hhcmVkX2hhbmRsZV9vcl9w
YWdlX2JvdW5kYXJ5LmggKi8sCiAJCQkJMEYxOEU2M0QyNjI4QkZCNjAwRjY5MDNEIC8qIHBhc19z
aGFyZWRfcGFnZV9kaXJlY3RvcnlfYnlfc2l6ZS5jICovLAogCQkJCTBGMThFNjNDMjYyOEJGQjYw
MEY2OTAzRCAvKiBwYXNfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5X2J5X3NpemUuaCAqLywKIAkJCQkw
RjZENTYzRTIzQ0FBMUI5MDBGNDBEQkIgLyogcGFzX3NpbXBsZV9mcmVlX2hlYXBfZGVjbGFyYXRp
b25zLmRlZiAqLywKQEAgLTE4NTgsMTEgKzE3OTgsMTEgQEAKIAkJCQkwRkYwOEYzQjIyQTVEQzY5
MDAzODY1NzUgLyogcGFzX3NpbXBsZV9sYXJnZV9mcmVlX2hlYXAuaCAqLywKIAkJCQkwRkRFQTU3
NjIyOEUyMzQ0MDA4NUUzNDAgLyogcGFzX3NpbXBsZV90eXBlLmggKi8sCiAJCQkJMEY5OUY5OEIy
NUNCMkNFODAwRUVFNDQ5IC8qIHBhc19zaXplX3RodW5rLmggKi8sCisJCQkJMEYzMUE2MzkyM0RD
RjgwNDAwMkMwQ0EzIC8qIHBhc19za2lwX2xpc3RfaW5saW5lcy5oICovLAogCQkJCTBGMzFBNjNB
MjNEQ0Y4MDQwMDJDMENBMyAvKiBwYXNfc2tpcF9saXN0LmMgKi8sCiAJCQkJMEYzMUE2M0IyM0RD
RjgwNDAwMkMwQ0EzIC8qIHBhc19za2lwX2xpc3QuaCAqLywKLQkJCQkwRjMxQTYzOTIzRENGODA0
MDAyQzBDQTMgLyogcGFzX3NraXBfbGlzdF9pbmxpbmVzLmggKi8sCi0JCQkJMEZDNjQxODQyMTMw
REZCNjAwNDBDRTVFIC8qIHBhc19zbG93X3BhdGhfbW9kZS5oICovLAogCQkJCTBGNDdENDBFMjE0
MERCMDUwMDhDNDFGMCAvKiBwYXNfc2xvd19wYXRoX21vZGVfcHJlZml4LmggKi8sCisJCQkJMEZD
NjQxODQyMTMwREZCNjAwNDBDRTVFIC8qIHBhc19zbG93X3BhdGhfbW9kZS5oICovLAogCQkJCTBG
NkQ1NDc4MjNDNTczRTEwMEY0MERCQiAvKiBwYXNfc21hbGxfbGFyZ2VfbWFwX2VudHJ5LmggKi8s
CiAJCQkJMEZDNjgyMTcyMTI1MzYyNzAwM0M2QTEzIC8qIHBhc19zbnByaW50Zi5oICovLAogCQkJ
CTBGQzRFQzMyMjM0QTkxRTIwMEI3MTBBMyAvKiBwYXNfc3RhdHVzX3JlcG9ydGVyLmMgKi8sCkBA
IC0xODcxLDQ4ICsxODExLDQ1IEBACiAJCQkJMEZDNjgyMTkyMTI1MzYyNzAwM0M2QTEzIC8qIHBh
c19zdHJlYW0uaCAqLywKIAkJCQkwRkM0RUMyRTIzNEE5MUUyMDBCNzEwQTMgLyogcGFzX3N0cmlu
Z19zdHJlYW0uYyAqLywKIAkJCQkwRkM0RUMzMzIzNEE5MUUyMDBCNzEwQTMgLyogcGFzX3N0cmlu
Z19zdHJlYW0uaCAqLywKLQkJCQkwRjlBMUNENzI1NTk5NjE2MDBDOEQxMUIgLyogcGFzX3N1YnBh
Z2VfbWFwLmMgKi8sCi0JCQkJMEY5QTFDQzIyNTU5OTYxNDAwQzhEMTFCIC8qIHBhc19zdWJwYWdl
X21hcC5oICovLAotCQkJCTBGOUExQzlDMjU1OTk2MTEwMEM4RDExQiAvKiBwYXNfc3VicGFnZV9t
YXBfZW50cnkuYyAqLywKLQkJCQkwRjlBMUM5NzI1NTk5NjExMDBDOEQxMUIgLyogcGFzX3N1YnBh
Z2VfbWFwX2VudHJ5LmggKi8sCi0JCQkJMEZDNjgxQzkyMTBGN0M5RjAwM0M2QTEzIC8qIHBhc190
aHJlYWRfbG9jYWxfY2FjaGUuYyAqLywKLQkJCQkwRkM2ODFDNDIxMEY3QzlFMDAzQzZBMTMgLyog
cGFzX3RocmVhZF9sb2NhbF9jYWNoZS5oICovLAotCQkJCTBGQzY4MUMyMjEwRjdDOUUwMDNDNkEx
MyAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dC5jICovLAotCQkJCTBGQzY4MUNBMjEw
RjdDOUYwMDNDNkExMyAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dC5oICovLAorCQkJ
CTBGMTQ4NzFFMjY5RjVGQ0EwMDY4ODdBOSAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91
dF9ub2RlX2tpbmQuaCAqLywKIAkJCQkwRkE1RTQ1MTI0OTJENUI5MDBDRTk2MkEgLyogcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZS5jICovLAogCQkJCTBGQTVFNDUzMjQ5MkQ1Qjkw
MENFOTYyQSAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlLmggKi8sCisJCQkJ
MEZDNjgxQzIyMTBGN0M5RTAwM0M2QTEzIC8qIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0
LmMgKi8sCisJCQkJMEZDNjgxQ0EyMTBGN0M5RjAwM0M2QTEzIC8qIHBhc190aHJlYWRfbG9jYWxf
Y2FjaGVfbGF5b3V0LmggKi8sCiAJCQkJMEY3RjUxQkMyMzE1OUVDMDAwNzU1MkFFIC8qIHBhc190
aHJlYWRfbG9jYWxfY2FjaGVfbm9kZS5jICovLAogCQkJCTBGN0Y1MUJEMjMxNTlFQzAwMDc1NTJB
RSAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX25vZGUuaCAqLywKKwkJCQkwRkM2ODFDOTIxMEY3
QzlGMDAzQzZBMTMgLyogcGFzX3RocmVhZF9sb2NhbF9jYWNoZS5jICovLAorCQkJCTBGQzY4MUM0
MjEwRjdDOUUwMDNDNkExMyAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlLmggKi8sCiAJCQkJMEY2
RDU0NzEyM0M1NzNFMDAwRjQwREJCIC8qIHBhc190aW55X2xhcmdlX21hcF9lbnRyeS5oICovLAog
CQkJCTBGMzFBNjY5MjNFOEU1OTQwMDJDMENBMyAvKiBwYXNfdHJlZV9kaXJlY3Rpb24uaCAqLywK
IAkJCQkwRjhBODAwQzI1Q0Y2NEM5MDA3OTBCNEEgLyogcGFzX3RyaV9zdGF0ZS5oICovLAotCQkJ
CTBGRTdFRTVCMjI5RTE0RjkwMDRGNDE2NiAvKiBwYXNfdHJ5X2FsbG9jYXRlLmggKi8sCiAJCQkJ
MEZFN0VFNUEyMjlFMTRGOTAwNEY0MTY2IC8qIHBhc190cnlfYWxsb2NhdGVfYXJyYXkuaCAqLywK
IAkJCQkwRkQ0OEIwMzIzQTlBQkIwMDAyNkM0NkQgLyogcGFzX3RyeV9hbGxvY2F0ZV9jb21tb24u
aCAqLywKIAkJCQkwRkU3RUU1OTIyOUUxNEY5MDA0RjQxNjYgLyogcGFzX3RyeV9hbGxvY2F0ZV9p
bnRyaW5zaWNfcHJpbWl0aXZlLmggKi8sCiAJCQkJMEZFN0VFNUQyMjlFMTRGQTAwNEY0MTY2IC8q
IHBhc190cnlfYWxsb2NhdGVfcHJpbWl0aXZlLmggKi8sCisJCQkJMEZFN0VFNUIyMjlFMTRGOTAw
NEY0MTY2IC8qIHBhc190cnlfYWxsb2NhdGUuaCAqLywKIAkJCQkwRkU3RUU3ODIyQTA0OEJBMDA0
RjQxNjYgLyogcGFzX3RyeV9yZWFsbG9jYXRlLmggKi8sCiAJCQkJMEY1OUEzOTIyNjY3RjAwRTAw
QTM4NjU3IC8qIHBhc190cnlfc2hyaW5rLmggKi8sCiAJCQkJMEZERUE0NzYyMjhCNjU0MzAwODVF
MzQwIC8qIHBhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdC5oICovLAotCQkJCTBGQzY4MjNFMjEy
OUVENTEwMDNDNkExMyAvKiBwYXNfdXRpbGl0eV9oZWFwLmMgKi8sCi0JCQkJMEZDNjgyNDEyMTI5
RUQ1MTAwM0M2QTEzIC8qIHBhc191dGlsaXR5X2hlYXAuaCAqLywKIAkJCQkwRkRFQTQyMzIyOEI2
NDMzMDA4NUUzNDAgLyogcGFzX3V0aWxpdHlfaGVhcF9jb25maWcuYyAqLywKIAkJCQkwRkRFQTQx
QjIyOEI2NDMyMDA4NUUzNDAgLyogcGFzX3V0aWxpdHlfaGVhcF9jb25maWcuaCAqLywKIAkJCQkw
RkQ0OEFGMjIzQTlBQkFGMDAyNkM0NkQgLyogcGFzX3V0aWxpdHlfaGVhcF9zdXBwb3J0LmggKi8s
CisJCQkJMEZDNjgyM0UyMTI5RUQ1MTAwM0M2QTEzIC8qIHBhc191dGlsaXR5X2hlYXAuYyAqLywK
KwkJCQkwRkM2ODI0MTIxMjlFRDUxMDAzQzZBMTMgLyogcGFzX3V0aWxpdHlfaGVhcC5oICovLAor
CQkJCTBGQzY0MTk2MjE0MENBREMwMDQwQ0U1RSAvKiBwYXNfdXRpbHNfcHJlZml4LmggKi8sCiAJ
CQkJMEZDNjgxOEYyMTAyN0M0NDAwM0M2QTEzIC8qIHBhc191dGlscy5jICovLAogCQkJCTBGQzY4
MTg4MjEwMjdCNDYwMDNDNkExMyAvKiBwYXNfdXRpbHMuaCAqLywKLQkJCQkwRkM2NDE5NjIxNDBD
QURDMDA0MENFNUUgLyogcGFzX3V0aWxzX3ByZWZpeC5oICovLAogCQkJCTBGOUExQ0IxMjU1OTk2
MTMwMEM4RDExQiAvKiBwYXNfdmVyc2lvbmVkX2ZpZWxkLmMgKi8sCiAJCQkJMEY2ODEyNkYyMkJE
NDE5RTAwMzZBMDJCIC8qIHBhc192ZXJzaW9uZWRfZmllbGQuaCAqLywKKwkJCQkwRjc4MDg4ODIy
RkE1MzQxMDBGMzc0NTEgLyogcGFzX3ZpcnR1YWxfcmFuZ2VfbWluX2hlYXAuaCAqLywKIAkJCQkw
Rjc4MDg4MzIyRkEyMkQyMDBGMzc0NTEgLyogcGFzX3ZpcnR1YWxfcmFuZ2UuYyAqLywKIAkJCQkw
Rjc4MDg4MjIyRkEyMkQxMDBGMzc0NTEgLyogcGFzX3ZpcnR1YWxfcmFuZ2UuaCAqLywKLQkJCQkw
Rjc4MDg4ODIyRkE1MzQxMDBGMzc0NTEgLyogcGFzX3ZpcnR1YWxfcmFuZ2VfbWluX2hlYXAuaCAq
LywKIAkJCQkwRkRFQTQ2RDIyOEI2NTQzMDA4NUUzNDAgLyogcGFzX3plcm9fbW9kZS5oICovLAot
CQkJCTBGODcwMEEyMjVCMEE4QzIwMDBFMUFCRiAvKiB0aGluZ3lfaGVhcC5jICovLAotCQkJCTBG
ODcwMEEzMjVCMEE4QzIwMDBFMUFCRiAvKiB0aGluZ3lfaGVhcC5oICovLAogCQkJCTBGODcwMEE0
MjVCMEE4QzIwMDBFMUFCRiAvKiB0aGluZ3lfaGVhcF9jb25maWcuYyAqLywKIAkJCQkwRjg3MDBB
NTI1QjBBOEMyMDAwRTFBQkYgLyogdGhpbmd5X2hlYXBfY29uZmlnLmggKi8sCiAJCQkJMEY4NzAw
QTEyNUIwQThDMjAwMEUxQUJGIC8qIHRoaW5neV9oZWFwX3ByZWZpeC5oICovLAorCQkJCTBGODcw
MEEyMjVCMEE4QzIwMDBFMUFCRiAvKiB0aGluZ3lfaGVhcC5jICovLAorCQkJCTBGODcwMEEzMjVC
MEE4QzIwMDBFMUFCRiAvKiB0aGluZ3lfaGVhcC5oICovLAogCQkJKTsKIAkJCXBhdGggPSBsaWJw
YXM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMTkyMCw4ICsxODU3LDggQEAKIAkJ
MEZFN0VFOEMyMkExREMzMzAwNEY0MTY2IC8qIG1ibWFsbG9jICovID0gewogCQkJaXNhID0gUEJY
R3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQkwRjhBODA1NDI1RUVDQkQ0MDA3OTBCNEEgLyog
bWJtYWxsb2NfYm1hbGxvYy5jICovLAogCQkJCTBGOEE4MEIzMjVGNkE0NkMwMDc5MEI0QSAvKiBt
Ym1hbGxvY19ob3RiaXQuYyAqLywKKwkJCQkwRjhBODA1NDI1RUVDQkQ0MDA3OTBCNEEgLyogbWJt
YWxsb2NfYm1hbGxvYy5jICovLAogCQkJCTBGRjA4RjU1MjJBODZFMkUwMDM4NjU3NSAvKiBtYm1h
bGxvY19pc29fY29tbW9uX3ByaW1pdGl2ZS5jICovLAogCQkJKTsKIAkJCXBhdGggPSBtYm1hbGxv
YzsKQEAgLTE5MzksMTQgKzE4NzYsMTQgQEAKIAkJM0E2Q0E2NTgyMTAxMjg5NTAwM0VGREJGIC8q
IFByb2R1Y3RzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJ
CQkwRkJBRTY4MzI0OEVDMUMwMDAzMTFFNkYgLyogY2hhb3MgKi8sCiAJCQkJMEZDNjgxREIyMTBG
QUM0QjAwM0M2QTEzIC8qIHRlc3RfcGFzICovLAotCQkJCTBGOEE4MDNCMjVFRUNCQUYwMDc5MEI0
QSAvKiBsaWJtYm1hbGxvY19ibWFsbG9jLmR5bGliICovLAotCQkJCTBGOEE4MDk3MjVGNkE0NEYw
MDc5MEI0QSAvKiBsaWJtYm1hbGxvY19ob3RiaXQuZHlsaWIgKi8sCi0JCQkJMEZGMDhGNTQyMkE4
NkM5QTAwMzg2NTc1IC8qIGxpYm1ibWFsbG9jX2lzb19jb21tb25fcHJpbWl0aXZlLmR5bGliICov
LAotCQkJCTBGNDQzQjRFMjM0MTc2MTUwMEJFNTBEMSAvKiBsaWJtYm1hbGxvY19pc29fY29tbW9u
X3ByaW1pdGl2ZV92ZXJpZmllZC5keWxpYiAqLywKIAkJCQkwRkRFQTVEOTIyOTVGQzhDMDA4NUUz
NDAgLyogbGlicGFzLmR5bGliICovLAorCQkJCTBGRjA4RjU0MjJBODZDOUEwMDM4NjU3NSAvKiBs
aWJtYm1hbGxvY19pc29fY29tbW9uX3ByaW1pdGl2ZS5keWxpYiAqLywKIAkJCQkwRjQ0M0IzQTIz
NDE2QTdDMDBCRTUwRDEgLyogbGlicGFzX3ZlcmlmaWVyLmR5bGliICovLAorCQkJCTBGNDQzQjRF
MjM0MTc2MTUwMEJFNTBEMSAvKiBsaWJtYm1hbGxvY19pc29fY29tbW9uX3ByaW1pdGl2ZV92ZXJp
ZmllZC5keWxpYiAqLywKKwkJCQkwRkJBRTY4MzI0OEVDMUMwMDAzMTFFNkYgLyogY2hhb3MgKi8s
CisJCQkJMEY4QTgwM0IyNUVFQ0JBRjAwNzkwQjRBIC8qIGxpYm1ibWFsbG9jX2JtYWxsb2MuZHls
aWIgKi8sCisJCQkJMEY4QTgwOTcyNUY2QTQ0RjAwNzkwQjRBIC8qIGxpYm1ibWFsbG9jX2hvdGJp
dC5keWxpYiAqLywKIAkJCSk7CiAJCQluYW1lID0gUHJvZHVjdHM7CiAJCQlzb3VyY2VUcmVlID0g
Ijxncm91cD4iOwpAQCAtMjAwNSwzNjUgKzE5NDIsMzU0IEBACiAJCQlpc2EgPSBQQlhIZWFkZXJz
QnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9
ICgKLQkJCQkwRjhBODA2NzI1RUVDQzFEMDA3OTBCNEEgLyogYm1hbGxvY19oZWFwLmggaW4gSGVh
ZGVycyAqLywKLQkJCQkwRjhBODA2OTI1RUVDQzFEMDA3OTBCNEEgLyogYm1hbGxvY19oZWFwX2Nv
bmZpZy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY4QTgwNjUyNUVFQ0MxRDAwNzkwQjRBIC8qIGJt
YWxsb2NfaGVhcF9pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjhBODA2QjI1RUVDQzFE
MDA3OTBCNEEgLyogYm1hbGxvY19oZWFwX2lubmFyZHMuaCBpbiBIZWFkZXJzICovLAotCQkJCTBG
OEE4MDZBMjVFRUNDMUQwMDc5MEI0QSAvKiBibWFsbG9jX2hlYXBfcmVmLmggaW4gSGVhZGVycyAq
LywKLQkJCQkwRjhBODEwNTI1RjZBNzk1MDA3OTBCNEEgLyogaG90Yml0X2hlYXAuaCBpbiBIZWFk
ZXJzICovLAotCQkJCTBGOEE4MTAzMjVGNkE3OTUwMDc5MEI0QSAvKiBob3RiaXRfaGVhcF9jb25m
aWcuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOEE4MTA2MjVGNkE3OTUwMDc5MEI0QSAvKiBob3Ri
aXRfaGVhcF9pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjhBODEwMjI1RjZBNzk1MDA3
OTBCNEEgLyogaG90Yml0X2hlYXBfaW5uYXJkcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFN0VF
NzcyMjlGMDEwRjAwNEY0MTY2IC8qIGlzb19oZWFwLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkU3
RUU1NjIyOTc0MzM1MDA0RjQxNjYgLyogaXNvX2hlYXBfY29uZmlnLmggaW4gSGVhZGVycyAqLywK
LQkJCQkwRjVGRTdBNDI1QjYxNEYyMDAxODU5RkMgLyogaXNvX2hlYXBfaW5saW5lcy5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJMEY1MTZFRTcyNDU2MUE2MDAwNEUyQjhEIC8qIGlzb19oZWFwX2lubmFy
ZHMuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNTI5RERGMjQ1NTQ2MEMwMDM4NUE4QyAvKiBpc29f
aGVhcF9yZWYuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNUU1Q0VFMjNCRUYzNjAwMEFBMEI2RiAv
KiBpc29fdGVzdF9oZWFwLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjVFNUNFRjIzQkVGMzYwMDBB
QTBCNkYgLyogaXNvX3Rlc3RfaGVhcF9jb25maWcuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNTlB
MzkzMjY2N0YwMEUwMEEzODY1NyAvKiBqaXRfaGVhcC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY1
OUEzOTQyNjY3RjAwRTAwQTM4NjU3IC8qIGppdF9oZWFwX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJMEY1OUEzOTgyNjY4MzE3NDAwQTM4NjU3IC8qIGppdF9oZWFwX2NvbmZpZ19yb290X2Rh
dGEuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGQkQ2N0RDMjVCRDM2M0EwMEE0OTBEMiAvKiBtaW5h
bGlnbjMyX2hlYXAuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGQkQ2N0REMjVCRDM2M0EwMEE0OTBE
MiAvKiBtaW5hbGlnbjMyX2hlYXBfY29uZmlnLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkJENjdG
MTI1QkUwNzg3MDBBNDkwRDIgLyogcGFnZXNpemU2NGtfaGVhcC5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJMEZCRDY3RjIyNUJFMDc4NzAwQTQ5MEQyIC8qIHBhZ2VzaXplNjRrX2hlYXBfY29uZmlnLmgg
aW4gSGVhZGVycyAqLywKLQkJCQkwRkU3RURGRTIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2FsaWdu
ZWRfYWxsb2NhdGlvbl9yZXN1bHQuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRTdFRTY0MjI5RTE0
RkEwMDRGNDE2NiAvKiBwYXNfZ2V0X2hlYXAuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNUU1Q0Yy
MjNCRkJGQjkwMEFBMEI2RiAvKiBwYXNfc2VncmVnYXRlZF9zaGFyZWRfdmlld19pbmxpbmVzLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkwRkU3RUUyRTIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX3NlZ3Jl
Z2F0ZWRfaGVhcF9sb29rdXBfa2luZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZENDhCNUIyM0E5
QUJCMzAwMjZDNDZEIC8qIHBhc19leGNsdXNpdmVfdmlld190ZW1wbGF0ZV9tZW1vX3RhYmxlLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkwRkU3RUUzMzIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX3N0cmVh
bS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZFN0VFNjUyMjlFMTRGQTAwNEY0MTY2IC8qIHBhc190
cnlfYWxsb2NhdGVfcHJpbWl0aXZlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjE0ODcyMzI2OUY1
RkNBMDA2ODg3QTkgLyogcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9raW5kLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkwRjIxNTBFRDI0ODRCQjg2MDAwRDYzNEIgLyogcGFzX2NvbXBh
Y3RfYXRvbWljX2FsbG9jYXRvcl9pbmRleF9wdHIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRTdF
REZGMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfYWxpZ25lZF9hbGxvY2F0b3IuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTBGRTdFRTAwMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfYWxpZ25tZW50LmggaW4g
SGVhZGVycyAqLywKLQkJCQkwRjlBMUQxQjI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2FsbF9iaWFz
aW5nX2RpcmVjdG9yaWVzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjU5QTM5NTI2NjdGMDBFMDBB
Mzg2NTcgLyogcGFzX2FsbF9oZWFwX2NvbmZpZ3MuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRTdF
RTAxMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfYWxsX2hlYXBzLmggaW4gSGVhZGVycyAqLywKLQkJ
CQkwRjFBRUNFOTI2NTgxOTYxMDAwQzUyMTggLyogcGFzX2FsbF9tYWdhemluZXMuaCBpbiBIZWFk
ZXJzICovLAotCQkJCTBGRDQ4QjYyMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfYWxsX3NoYXJlZF9w
YWdlX2RpcmVjdG9yaWVzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjQ3QzMxRjIzMzk2RTBCMDAy
QTFDRjcgLyogcGFzX2FsbG9jYXRpb25fY2FsbGJhY2tzLmggaW4gSGVhZGVycyAqLywKLQkJCQkw
Rjc4MDg5MjIyRkE1MzQxMDBGMzc0NTEgLyogcGFzX2FsbG9jYXRpb25fY29uZmlnLmggaW4gSGVh
ZGVycyAqLywKLQkJCQkwRjQ3QzMxQTIzMzk2RDFGMDAyQTFDRjcgLyogcGFzX2FsbG9jYXRpb25f
a2luZC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFN0VFMDIyMjk2MDE0MjAwNEY0MTY2IC8qIHBh
c19hbGxvY2F0aW9uX3Jlc3VsdC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZEQkIwN0IyMkJCRkY4
MzAwNkJBNUZDIC8qIHBhc19hbGxvY2F0b3JfY291bnRzLmggaW4gSGVhZGVycyAqLywKLQkJCQkw
RjIxNTBFQjI0ODRCQjJBMDAwRDYzNEIgLyogcGFzX2FsbG9jYXRvcl9pbmRleC5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJMEY2QjQ3RkUyMzMxNUFFNTAwMkE1RTBDIC8qIHBhc19hbGxvY2F0b3Jfc2Nh
dmVuZ2VfYWN0aW9uLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkQ0OEIzQjIzQTlBQkIzMDAyNkM0
NkQgLyogcGFzX2Jhc2VsaW5lX2FsbG9jYXRvci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZENDhC
NDAyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19iYXNlbGluZV9hbGxvY2F0b3JfcmVzdWx0LmggaW4g
SGVhZGVycyAqLywKLQkJCQkwRkQ0OEI1QTIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX2Jhc2VsaW5l
X2FsbG9jYXRvcl90YWJsZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY0RjYxNjQyNTlCRkI4NTAw
OEI0QTgyIC8qIHBhc19iYXNpY19oZWFwX2NvbmZpZ19lbnVtZXJhdG9yX2RhdGEuaCBpbiBIZWFk
ZXJzICovLAotCQkJCTBGNEY2MTZEMjU5QkZGOTEwMDhCNEE4MiAvKiBwYXNfYmFzaWNfaGVhcF9j
b25maWdfcm9vdF9kYXRhLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjMyOUEyMjIzRjExMzJCMDBB
MTMzQzQgLyogcGFzX2Jhc2ljX2hlYXBfcGFnZV9jYWNoZXMuaCBpbiBIZWFkZXJzICovLAotCQkJ
CTBGMzI5QTIxMjNGMTEzMkEwMEExMzNDNCAvKiBwYXNfYmFzaWNfaGVhcF9ydW50aW1lX2NvbmZp
Zy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEYzMjlBMjQyM0YxMTMyQjAwQTEzM0M0IC8qIHBhc19i
YXNpY19zZWdyZWdhdGVkX3BhZ2VfY2FjaGVzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjlBMUQy
MzI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpYXNpbmdfZGlyZWN0b3J5LmggaW4gSGVhZGVycyAq
LywKLQkJCQkwRjlBMUQwQjI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpYXNpbmdfZGlyZWN0b3J5
X2lubGluZXMuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOUExQ0Y1MjU1OTk2MTcwMEM4RDExQiAv
KiBwYXNfYmlhc2luZ19kaXJlY3Rvcnlfa2luZC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFN0VF
MDMyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19iaXRmaWVsZF92ZWN0b3IuaCBpbiBIZWFkZXJzICov
LAorCQkJCTBGNjZENTQ4MjQ4NzYwQTgwMEZDNzM0NyAvKiBwYXNfY29tcGFjdF9zZWdyZWdhdGVk
X2JpYXNpbmdfZGlyZWN0b3J5X3B0ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY2QjQ3RkQyMzMx
NUFFNTAwMkE1RTBDIC8qIHBhc19kZWFsbG9jYXRvcl9zY2F2ZW5nZV9hY3Rpb24uaCBpbiBIZWFk
ZXJzICovLAorCQkJCTBGQzRFQzNGMjM0QTkxRTMwMEI3MTBBMyAvKiBwYXNfZmRfc3RyZWFtLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkwRjlBMUNFNTI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2Zhc3Rf
cGF0aF9hbGxvY2F0aW9uX3Jlc3VsdF9raW5kLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkU3RUUw
QzIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2V4dGVuZGVkX2djZC5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMEY5QTFDRjcyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19wYWdlX2Jhc2VfY29uZmlnX3V0aWxz
X2lubGluZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGOUExRDI2MjU1OTk2MTcwMEM4RDExQiAv
KiBwYXNfc2hhcmVkX2hhbmRsZV9vcl9wYWdlX2JvdW5kYXJ5X2lubGluZXMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGOUExRDA3MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X2FsbG9jYXRp
b25fcmVzdWx0LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjVGRTdBNDI1QjYxNEYyMDAxODU5RkMg
LyogaXNvX2hlYXBfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY5QTFEMDgyNTU5OTYx
NzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfYWxsb2NhdG9yLmggaW4gSGVhZGVycyAqLywKLQkJCQkw
RjlBMUQxRDI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9hbGxvY2F0b3JfaW5saW5lcy5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5QTFDRjMyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRm
aXRfYmlhc2luZ19kaXJlY3RvcnkuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOUExRDAyMjU1OTk2
MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X2RpcmVjdG9yeS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
MEY5QTFDRjYyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfZGlyZWN0b3J5X2FuZF9pbmRl
eC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5QTFEMTQyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19i
aXRmaXRfZGlyZWN0b3J5X2lubGluZXMuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOUExQ0ZGMjU1
OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X2RpcmVjdG9yeV9raW5kLmggaW4gSGVhZGVycyAq
LywKLQkJCQkwRjlBMUNFNDI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9nbG9iYWxfZGly
ZWN0b3J5LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjlBMUNGQjI1NTk5NjE3MDBDOEQxMUIgLyog
cGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5QTFE
MTgyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfaGVhcC5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJMEY5QTFDRTcyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfbWF4X2ZyZWUuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTBGOUExRDAzMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X3Bh
Z2UuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOUExRDI4MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNf
Yml0Zml0X3BhZ2VfY29uZmlnLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjU3MDkxODI1NkFCMjEx
MDAwMzdCQjMgLyogcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19pbmxpbmVzLmggaW4gSGVhZGVycyAq
LywKLQkJCQkwRjlBMUNGQTI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9wYWdlX2NvbmZp
Z19raW5kLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjlBMUNFNjI1NTk5NjE3MDBDOEQxMUIgLyog
cGFzX2JpdGZpdF9wYWdlX2NvbmZpZ191dGlscy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY1NzA5
MUEyNTZBQjQxNzAwMDM3QkIzIC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWdfdXRpbHNfaW5saW5l
cy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5QTFEMTcyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19i
aXRmaXRfcGFnZV9jb25maWdfdmFyaWFudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5QTFEMDEy
NTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfcGFnZV9pbmxpbmVzLmggaW4gSGVhZGVycyAq
LywKLQkJCQkwRjlBMUQyMTI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9zaXplX2NsYXNz
LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjlBMUNFRDI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2Jp
dGZpdF92aWV3LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjlBMUQ0NTI1NURCRTYxMDBDOEQxMUIg
LyogcGFzX2JpdGZpdF92aWV3X2FuZF9pbmRleC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5QTFE
NDEyNTVBRjI3OTAwQzhEMTFCIC8qIHBhc19iaXRmaXRfdmlld19pbmxpbmVzLmggaW4gSGVhZGVy
cyAqLywKLQkJCQkwRkU3RUUwNDIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2JpdHZlY3Rvci5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJMEZFN0VFMDUyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19ib290c3Ry
YXBfZnJlZV9oZWFwLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjVCNjA4NDIzNUU1NzIwMDBDQUU2
MjkgLyogcGFzX2Jvb3RzdHJhcF9oZWFwX3BhZ2VfcHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAot
CQkJCTBGRTdFRTA4MjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfY2FyZXNfYWJvdXRfc2l6ZV9tb2Rl
LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjMxQTY2NjIzRThBOTQyMDAyQzBDQTMgLyogcGFzX2Nh
cnRlc2lhbl90cmVlLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkU3RUUwOTIyOTYwMTQyMDA0RjQx
NjYgLyogcGFzX2NvYWxpZ24uaCBpbiBIZWFkZXJzICovLAotCQkJCTBGMTkzMjUzMjJFRDA0QTYw
MEZCQTcxMyAvKiBwYXNfY29tbWl0X21vZGUuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOUExQ0Y0
MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfY29tbWl0X3NwYW4uaCBpbiBIZWFkZXJzICovLAotCQkJ
CTBGMjE1MEVEMjQ4NEJCODYwMDBENjM0QiAvKiBwYXNfY29tcGFjdF9hdG9taWNfYWxsb2NhdG9y
X2luZGV4X3B0ci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5QTFENDgyNTVFMjg0MjAwQzhEMTFC
IC8qIHBhc19jb21wYWN0X2F0b21pY19iaWFzaW5nX2RpcmVjdG9yeV9wdHIuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTBGOUExRDNDMjU1QTRCQTYwMEM4RDExQiAvKiBwYXNfY29tcGFjdF9hdG9taWNf
Yml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5X3B0ci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5QTFE
MkYyNTU5QkE3QTAwQzhEMTFCIC8qIHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfZ2xvYmFsX3Np
emVfY2xhc3NfcHRyLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjlBMUQzMTI1NTlCQjVEMDBDOEQx
MUIgLyogcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9oZWFwX3B0ci5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJMEY5QTFEMzcyNTVBNDQ3MzAwQzhEMTFCIC8qIHBhc19jb21wYWN0X2F0b21pY19iaXRm
aXRfc2l6ZV9jbGFzc19wdHIuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOUExRDM2MjU1QTQ0NzMw
MEM4RDExQiAvKiBwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X3ZpZXdfcHRyLmggaW4gSGVhZGVy
cyAqLywKLQkJCQkwRkNDRDE0MTI2NTVFNkU3MDAxNzFBMUYgLyogcGFzX2NvbXBhY3RfYXRvbWlj
X2VudW1lcmFibGVfcmFuZ2VfbGlzdF9jaHVua19wdHIuaCBpbiBIZWFkZXJzICovLAotCQkJCTBG
MDRDMjI1MjQ2MERCNkYwMDFEMzFGMCAvKiBwYXNfY29tcGFjdF9hdG9taWNfcGFnZV9zaGFyaW5n
X3Bvb2xfcHRyLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjZENTY0OTIzQ0FBMUJBMDBGNDBEQkIg
LyogcGFzX2NvbXBhY3RfYXRvbWljX3B0ci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY2NkQ1NDky
NDg3NjBBODAwRkM3MzQ3IC8qIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2V4Y2x1c2l2
ZV92aWV3X3B0ci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEYwNEMyMjkyNDYxMUNGRDAwMUQzMUYw
IC8qIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9w
dHIuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRTdFRTEwMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNf
aGFzaHRhYmxlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjUxNkVFMzI0NTYwRkY1MDA0RTJCOEQg
LyogcGFzX2ludGVybmFsX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY3ODA4OTMyMkZB
NTM0MTAwRjM3NDUxIC8qIHBhc19sYXJnZV9mcmVlX2hlYXBfZGVmZXJyZWRfY29tbWl0X2xvZy5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMEZENDhCNDAyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19iYXNl
bGluZV9hbGxvY2F0b3JfcmVzdWx0LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjZENTY3MTIzQ0JE
MTlEMDBGNDBEQkIgLyogcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfaGVhcF9wYWdlX3No
YXJpbmdfcG9vbHNfcHRyLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjZENTY2QjIzQ0JEMTlEMDBG
NDBEQkIgLyogcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X3B0ci5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJMEY2RDU2NzIyM0NCRDE5RDAwRjQwREJCIC8qIHBhc19jb21w
YWN0X2F0b21pY19zZWdyZWdhdGVkX3ZpZXcuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGQTVFNDVB
MjQ5MkQ1QkEwMENFOTYyQSAvKiBwYXNfY29tcGFjdF9hdG9taWNfdGhyZWFkX2xvY2FsX2NhY2hl
X2xheW91dF9ub2RlLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjZENTY2NDIzQ0JEMTlEMDBGNDBE
QkIgLyogcGFzX2NvbXBhY3RfYXRvbWljX3Vuc2lnbmVkX3B0ci5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJMEY5QTFDRjEyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19jb21wYWN0X2JpYXNpbmdfZGlyZWN0
b3J5X3B0ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY0RjYxMkQyNTk5MDg3NzAwOEI0QTgyIC8q
IHBhc19lbnVtZXJhdGVfc2VncmVnYXRlZF9oZWFwcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY4
NzAwQTYyNUIwQThDMjAwMEUxQUJGIC8qIHRoaW5neV9oZWFwX3ByZWZpeC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEY5QTFEMzgyNTVBNDQ3MzAwQzhEMTFCIC8qIHBhc19jb21wYWN0X2JpdGZpdF9k
aXJlY3RvcnlfcHRyLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjlBMUQzRDI1NUE0QkE2MDBDOEQx
MUIgLyogcGFzX2NvbXBhY3RfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfcHRyLmggaW4gSGVhZGVy
cyAqLywKLQkJCQkwRjlBMUQzOTI1NUE0NDczMDBDOEQxMUIgLyogcGFzX2NvbXBhY3RfYml0Zml0
X3ZpZXdfcHRyLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjZENTY0ODIzQ0FBMUJBMDBGNDBEQkIg
LyogcGFzX2NvbXBhY3RfYm9vdHN0cmFwX2ZyZWVfaGVhcC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
MEY0RjYxQzAyNUE0Q0IwOTAwOEI0QTgyIC8qIHBhc19jb21wYWN0X2NhcnRlc2lhbl90cmVlX25v
ZGVfcHRyLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjZENTY3MDIzQ0JEMTlEMDBGNDBEQkIgLyog
cGFzX2NvbXBhY3RfaGVhcF9wdHIuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNkQ1NjY4MjNDQkQx
OUQwMEY0MERCQiAvKiBwYXNfY29tcGFjdF9oZWFwX3Jlc2VydmF0aW9uLmggaW4gSGVhZGVycyAq
LywKLQkJCQkwRjY2RDU0NTI0ODc2MEE4MDBGQzczNDcgLyogcGFzX2NvbXBhY3RfbGFyZ2VfdXRp
bGl0eV9mcmVlX2hlYXAuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOUExRDI3MjU1OTk2MTcwMEM4
RDExQiAvKiBwYXNfY29tcGFjdF9wYWdlX2dyYW51bGVfdXNlX2NvdW50X3B0ci5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJMEY2RDU2NDcyM0NBQTFCQTAwRjQwREJCIC8qIHBhc19jb21wYWN0X3B0ci5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJMEY2NkQ1NDgyNDg3NjBBODAwRkM3MzQ3IC8qIHBhc19jb21w
YWN0X3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnlfcHRyLmggaW4gSGVhZGVycyAqLywKLQkJ
CQkwRjA0QzIyODI0NjExQ0ZEMDAxRDMxRjAgLyogcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnlfcHRyLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjZENTY3NzIzQ0Mx
NDFFMDBGNDBEQkIgLyogcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9oZWFwX3B0ci5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJMEY2RDU2NjcyM0NCRDE5RDAwRjQwREJCIC8qIHBhc19jb21wYWN0X3NlZ3Jl
Z2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5X3B0ci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY2
RDU2NkQyM0NCRDE5RDAwRjQwREJCIC8qIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2hhcmVkX3Zp
ZXdfcHRyLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkYwOEY0QTIyQTg0NDZCMDAzODY1NzUgLyog
cGFzX2ludHJpbnNpY19oZWFwX3N1cHBvcnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGQ0ZBNDlB
MjM4MzUyRUMwMENDRDcyNiAvKiBwYXNfbGFyZ2Vfc2hhcmluZ19wb29sLmggaW4gSGVhZGVycyAq
LywKKwkJCQkwRkU3RUUwNDIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2JpdHZlY3Rvci5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMEY5QTFEMkQyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19wYWdlX2hlYWRl
cl90YWJsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY2RDU2NjUyM0NCRDE5RDAwRjQwREJCIC8q
IHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfdmlldy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEYzMUE2
NDAyM0RDRjg0ODAwMkMwQ0EzIC8qIHBhc19jb21wYWN0X3NraXBfbGlzdF9ub2RlX3B0ci5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJMEYzMUE2NDYyM0U0QzQ0MTAwMkMwQ0EzIC8qIHBhc19jb21wYWN0
X3NraXBfbGlzdF9ub2RlX3B0cl9wdHIuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOUExRDBGMjU1
OTk2MTcwMEM4RDExQiAvKiBwYXNfY29tcGFjdF9zdWJwYWdlX21hcF9lbnRyeV9wdHIuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTBGNkQ1NjRFMjNDQUJBNjUwMEY0MERCQiAvKiBwYXNfY29tcGFjdF90
YWdnZWRfYXRvbWljX3B0ci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5QTFEMUUyNTU5OTYxNzAw
QzhEMTFCIC8qIHBhc19jb21wYWN0X3RhZ2dlZF9wYWdlX2dyYW51bGVfdXNlX2NvdW50X3B0ci5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJMEY2RDU2NEIyM0NBQTFCQTAwRjQwREJCIC8qIHBhc19jb21w
YWN0X3RhZ2dlZF9wdHIuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNkQ1Njc5MjNDRDcwNTkwMEY0
MERCQiAvKiBwYXNfY29tcGFjdF90YWdnZWRfdW5zaWduZWRfcHRyLmggaW4gSGVhZGVycyAqLywK
LQkJCQkwRjZENTY2MjIzQ0JEMTlEMDBGNDBEQkIgLyogcGFzX2NvbXBhY3RfdW5zaWduZWRfcHRy
LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkM0RUMzOTIzNEE5MUUzMDBCNzEwQTMgLyogcGFzX2Nv
bXB1dGVfc3VtbWFyeV9vYmplY3RfY2FsbGJhY2tzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkU3
RUUwQTIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
MEY4NUVGREEyMkUyQkVDNzAwM0EzNjJCIC8qIHBhc19jb25maWdfcHJlZml4LmggaW4gSGVhZGVy
cyAqLywKLQkJCQkwRkQ0OEI0NTIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX2NvdW50X2xvb2t1cF9t
b2RlLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjMyOUEyQjIzRjFENjM2MDBBMTMzQzQgLyogcGFz
X2NyZWF0ZV9iYXNpY19oZWFwX3BhZ2VfY2FjaGVzX3dpdGhfcmVzZXJ2ZWRfbWVtb3J5LmggaW4g
SGVhZGVycyAqLywKLQkJCQkwRkU3RUU2NjIyOUUxNEZBMDA0RjQxNjYgLyogcGFzX2RlYWxsb2Nh
dGUuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRkZENTE1MjU2QjBGQkQwMDFFQjk0QyAvKiBwYXNf
ZGVhbGxvY2F0aW9uX21vZGUuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRTdFRTBCMjI5NjAxNDIw
MDRGNDE2NiAvKiBwYXNfZGVhbGxvY2F0b3IuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNkI0N0ZE
MjMzMTVBRTUwMDJBNUUwQyAvKiBwYXNfZGVhbGxvY2F0b3Jfc2NhdmVuZ2VfYWN0aW9uLmggaW4g
SGVhZGVycyAqLywKLQkJCQkwRjM3M0U1MjI2NTlFQTVFMDAzNEJBOTYgLyogcGFzX2RlYnVnX2hl
YXAuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGQkM2MkMzMjY1RjEyQTMwMDVBNTcyMCAvKiBwYXNf
ZGVidWdfc3BlY3RydW0uaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNEY2MUIwMjVBM0QwQkIwMDhC
NEE4MiAvKiBwYXNfcHRyX21pbl9oZWFwLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjRGNjE0NzI1
OUJCMTA5MDA4QjRBODIgLyogcGFzX3B0cl9oYXNoX3NldC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MEZFN0VERkUyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19hbGlnbmVkX2FsbG9jYXRpb25fcmVzdWx0
LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkVBNDVDMjIzNkNFODlEMDBCNUEzNzUgLyogcGFzX2R5
bmFtaWNfcHJpbWl0aXZlX2hlYXBfbWFwLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkQyMkNGQzIy
Q0FGMTY0MDBCMjE4NDEgLyogcGFzX21pbl9oZWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjc4
MDg5QjIyRkE2RjA4MDBGMzc0NTEgLyogcGFzX2RlZmVycmVkX2RlY29tbWl0X2xvZy5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMEY5QTFDRTkyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19zaGFyZWRfaGFu
ZGxlX29yX3BhZ2VfYm91bmRhcnkuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRDQ4QjNFMjNBOUFC
QjMwMDI2QzQ2RCAvKiBwYXNfdHJ5X2FsbG9jYXRlX2NvbW1vbi5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMEY5QTFEMDIyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfZGlyZWN0b3J5LmggaW4g
SGVhZGVycyAqLywKKwkJCQkwRkQ0OEIyQzIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3JhbmdlX2xv
Y2tlZF9tb2RlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjlBMUQyNzI1NTk5NjE3MDBDOEQxMUIg
LyogcGFzX2NvbXBhY3RfcGFnZV9ncmFudWxlX3VzZV9jb3VudF9wdHIuaCBpbiBIZWFkZXJzICov
LAorCQkJCTBGRTdFRTE0MjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfaGVhcF9yZWZfcHJlZml4Lmgg
aW4gSGVhZGVycyAqLywKKwkJCQkwRjU5QTM5NDI2NjdGMDBFMDBBMzg2NTcgLyogaml0X2hlYXBf
Y29uZmlnLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjUzMTgwRjIyQzk1Mjk0MDAzRjdCNkEgLyog
cGFzX2ZvdW5kX2luZGV4LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkU3RUUyRDIyOTYwMTQyMDA0
RjQxNjYgLyogcGFzX3Nsb3dfcGF0aF9tb2RlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjg3OTJC
MzIzOEExRDBDMDBBRUU3RjEgLyogcGFzX2hlYXBfcmVmX2tpbmQuaCBpbiBIZWFkZXJzICovLAor
CQkJCTBGNUI2MDg0MjM1RTU3MjAwMENBRTYyOSAvKiBwYXNfYm9vdHN0cmFwX2hlYXBfcGFnZV9w
cm92aWRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZENDhCNTgyM0E5QUJCMzAwMjZDNDZEIC8q
IHBhc19mdWxsX2FsbG9jX2JpdHMuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRTdFRTU2MjI5NzQz
MzUwMDRGNDE2NiAvKiBpc29faGVhcF9jb25maWcuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGQzg0
Nzk1MjMyRDY5NDkwMEIzODZCNiAvKiBwYXNfbGFyZ2Vfc2hhcmluZ19wb29sX2Vwb2NoX3VwZGF0
ZV9tb2RlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjE5MzI2OTIyRjNCM0YzMDBGQkE3MTMgLyog
cGFzX2xhcmdlX2hlYXBfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX2NhY2hlLmggaW4gSGVhZGVycyAq
LywKKwkJCQkwRjZENTY2RjIzQ0JEMTlEMDBGNDBEQkIgLyogcGFzX2hlYXBfY29uZmlnX2tpbmQu
aCBpbiBIZWFkZXJzICovLAorCQkJCTBGRTdFREZEMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfc2lt
cGxlX3R5cGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMDgzRjVBMjJDMjk3OUIwMEYzQ0RCMyAv
KiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ191dGlsc19pbmxpbmVzLmggaW4gSGVhZGVycyAq
LywKKwkJCQkwRjMyOUEyNDIzRjExMzJCMDBBMTMzQzQgLyogcGFzX2Jhc2ljX3NlZ3JlZ2F0ZWRf
cGFnZV9jYWNoZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRTdFRTdGMjJBMUE1ODAwMDRGNDE2
NiAvKiBwYXNfcmVhbGxvY2F0ZV9mcmVlX21vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNUI4
M0JDMjQ5MTg4OEEwMEY0MTA1MiAvKiBwYXNfZGVzaWduYXRlZF9pbnRyaW5zaWNfaGVhcC5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJMEY2ODEyNzAyMkJENDE5RTAwMzZBMDJCIC8qIHBhc192ZXJzaW9u
ZWRfZmllbGQuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRTdFRTAzMjI5NjAxNDIwMDRGNDE2NiAv
KiBwYXNfYml0ZmllbGRfdmVjdG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkU3RUUxMTIyOTYw
MTQyMDA0RjQxNjYgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZC5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMEY2RDU2NkIyM0NCRDE5RDAwRjQwREJCIC8qIHBhc19jb21wYWN0X2F0b21p
Y19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld19wdHIuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRjhE
NjI5MjJDMTY2RjUwMEVDNzJGRSAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2lubGluZXMuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTBGRUI2NjY1MjMxQjJBNTcwMDlDMDAxQiAvKiBwYXNfaGVhcF9zdW1t
YXJ5LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjlBMUQwNTI1NTk5NjE3MDBDOEQxMUIgLyogcGFz
X3BhZ2VfYmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1QjgzQkYyNDkxODk5RTAwRjQxMDUy
IC8qIHBhc19kZXNpZ25hdGVkX2ludHJpbnNpY19oZWFwX2lubGluZXMuaCBpbiBIZWFkZXJzICov
LAotCQkJCTBGOUU5NDY3MjM0NjYwRDQwMDlGQUZERCAvKiBwYXNfZHlsZF9zdGF0ZS5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJMEZFQTQ1QzIyMzZDRTg5RDAwQjVBMzc1IC8qIHBhc19keW5hbWljX3By
aW1pdGl2ZV9oZWFwX21hcC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEYzMjlBMkQyM0YxRDYzNjAw
QTEzM0M0IC8qIHBhc19lbnN1cmVfaGVhcF9mb3JjZWRfaW50b19yZXNlcnZlZF9tZW1vcnkuaCBp
biBIZWFkZXJzICovLAotCQkJCTBGMzI5QTJFMjNGMUQ2MzYwMEExMzNDNCAvKiBwYXNfZW5zdXJl
X2hlYXBfd2l0aF9wYWdlX2NhY2hlcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY0RjYxQjEyNUEz
RDBCQjAwOEI0QTgyIC8qIHBhc19lbnVtZXJhYmxlX3BhZ2VfbWFsbG9jLmggaW4gSGVhZGVycyAq
LywKLQkJCQkwRjRGNjFCNTI1QTNEMEJCMDA4QjRBODIgLyogcGFzX2VudW1lcmFibGVfcmFuZ2Vf
bGlzdC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY0RjYxNzgyNTlEMTA2NTAwOEI0QTgyIC8qIHBh
c19lbnVtZXJhdGVfYml0Zml0X2hlYXBzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjRGNjFBRTI1
QTNEMEJCMDA4QjRBODIgLyogcGFzX2VudW1lcmF0ZV9pbml0aWFsbHlfdW5hY2NvdW50ZWRfcGFn
ZXMuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNEY2MTExMjU5N0Y4MUUwMDhCNEE4MiAvKiBwYXNf
ZW51bWVyYXRlX2xhcmdlX2hlYXBzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjRGNjEyRDI1OTkw
ODc3MDA4QjRBODIgLyogcGFzX2VudW1lcmF0ZV9zZWdyZWdhdGVkX2hlYXBzLmggaW4gSGVhZGVy
cyAqLywKLQkJCQkwRjRGNjFCMzI1QTNEMEJCMDA4QjRBODIgLyogcGFzX2VudW1lcmF0ZV91bmFj
Y291bnRlZF9wYWdlc19hc19tZXRhLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkU3RUUzMTIyOTYw
MTQyMDA0RjQxNjYgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MEZFN0VFNjYyMjlFMTRGQTAwNEY0MTY2IC8qIHBhc19kZWFsbG9jYXRlLmggaW4gSGVhZGVycyAq
LywKKwkJCQkwRjlBMUQyOTI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX3BhZ2Vfa2luZC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMEZEQkIwNzMyMkI4NzVBNjAwNkJBNUZDIC8qIHBhc19sb2NhbF9hbGxv
Y2F0b3JfcmVmaWxsX21vZGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRDQ4QjQ1MjNBOUFCQjMw
MDI2QzQ2RCAvKiBwYXNfY291bnRfbG9va3VwX21vZGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBG
NkQ1NjRFMjNDQUJBNjUwMEY0MERCQiAvKiBwYXNfY29tcGFjdF90YWdnZWRfYXRvbWljX3B0ci5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMEZFN0VFMUUyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19sYXJn
ZV9mcmVlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkQ0OEI1NTIzQTlBQkIzMDAyNkM0NkQgLyog
cGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX2hhbmRsZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZEQkIw
N0IyMkJCRkY4MzAwNkJBNUZDIC8qIHBhc19hbGxvY2F0b3JfY291bnRzLmggaW4gSGVhZGVycyAq
LywKKwkJCQkwRkM0RUMzRDIzNEE5MUUzMDBCNzEwQTMgLyogcGFzX3N0YXR1c19yZXBvcnRlci5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMEZFN0VFNzkyMkEwNDhCQjAwNEY0MTY2IC8qIHBhc190cnlf
cmVhbGxvY2F0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZFN0VFM0IyMjk2MDE0MjAwNEY0MTY2
IC8qIHBhc196ZXJvX21vZGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGQ0NEMTQxMjY1NUU2RTcw
MDE3MUExRiAvKiBwYXNfY29tcGFjdF9hdG9taWNfZW51bWVyYWJsZV9yYW5nZV9saXN0X2NodW5r
X3B0ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZFN0VFMzIyMjk2MDE0MjAwNEY0MTY2IC8qIHBh
c19zbnByaW50Zi5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYzMUE2NDAyM0RDRjg0ODAwMkMwQ0Ez
IC8qIHBhc19jb21wYWN0X3NraXBfbGlzdF9ub2RlX3B0ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MEZFN0VFMDIyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19hbGxvY2F0aW9uX3Jlc3VsdC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMEZGRkQ1MTUyNTZCMEZCRDAwMUVCOTRDIC8qIHBhc19kZWFsbG9jYXRp
b25fbW9kZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY5QTFEMjAyNTU5OTYxNzAwQzhEMTFCIC8q
IHBhc19wYWdlX2hlYWRlcl9wbGFjZW1lbnRfbW9kZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYx
NDg3MUYyNjlGNUZDQTAwNjg4N0E5IC8qIHBhc19sb2NhbF92aWV3X2NhY2hlX25vZGUuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTBGOUExQ0VCMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfc2VncmVnYXRl
ZF9wYWdlX2NvbmZpZ192YXJpYW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjRGNjEwNTI1OTdB
Rjg3MDA4QjRBODIgLyogcGFzX2VudW1lcmF0b3IuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNEY2
MTgxMjU5RTczNEYwMDhCNEE4MiAvKiBwYXNfZW51bWVyYXRvcl9pbnRlcm5hbC5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJMEY0RjYxMUMyNTk4MzhCMTAwOEI0QTgyIC8qIHBhc19lbnVtZXJhdG9yX3Jl
Z2lvbi5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEYxOTMyNTQyMkVEMDRBNjAwRkJBNzEzIC8qIHBh
c19lcG9jaC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZENDhCNUIyM0E5QUJCMzAwMjZDNDZEIC8q
IHBhc19leGNsdXNpdmVfdmlld190ZW1wbGF0ZV9tZW1vX3RhYmxlLmggaW4gSGVhZGVycyAqLywK
LQkJCQkwRkU3RUUwQzIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2V4dGVuZGVkX2djZC5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJMEZGMDhGNDQyMkE2MjdDMTAwMzg2NTc1IC8qIHBhc19mYXN0X2xhcmdl
X2ZyZWVfaGVhcC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5QTFEMDQyNTU5OTYxNzAwQzhEMTFC
IC8qIHBhc19mYXN0X21lZ2FwYWdlX2NhY2hlLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjlBMUQx
NjI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2Zhc3RfbWVnYXBhZ2Vfa2luZC5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJMEY5QTFEMTkyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19mYXN0X21lZ2FwYWdlX3Rh
YmxlLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjlBMUNGRTI1NTk5NjE3MDBDOEQxMUIgLyogcGFz
X2Zhc3RfcGF0aF9hbGxvY2F0aW9uX3Jlc3VsdC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5QTFD
RTUyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19mYXN0X3BhdGhfYWxsb2NhdGlvbl9yZXN1bHRfa2lu
ZC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZCNTcwNkIyNjdEMDNDRDAwODBGQThCIC8qIHBhc19m
YXN0X3Rscy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZDNEVDM0YyMzRBOTFFMzAwQjcxMEEzIC8q
IHBhc19mZF9zdHJlYW0uaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNkQ1NDdGMjNDNTczRTEwMEY0
MERCQiAvKiBwYXNfZmlyc3RfbGV2ZWxfdGlueV9sYXJnZV9tYXBfZW50cnkuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTBGRDQ4QjUxMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfZm91bmRfYml0X2luZGV4
LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjUzMTgwRjIyQzk1Mjk0MDAzRjdCNkEgLyogcGFzX2Zv
dW5kX2luZGV4LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjlBMUQyQzI1NTk5NjE3MDBDOEQxMUIg
LyogcGFzX2ZyZWVfZ3JhbnVsZXMuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGMTkzMjU4MjJFRDA0
QTYwMEZCQTcxMyAvKiBwYXNfZnJlZV9tb2RlLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkQ0OEI0
RTIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX2ZyZWVfcmFuZ2Vfa2luZC5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJMEZENDhCNTgyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19mdWxsX2FsbG9jX2JpdHMuaCBp
biBIZWFkZXJzICovLAotCQkJCTBGRDQ4QjNBMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfZnVsbF9h
bGxvY19iaXRzX2lubGluZXMuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRjA4RjNBMjJBNUI0MDMw
MDM4NjU3NSAvKiBwYXNfZ2VuZXJpY19sYXJnZV9mcmVlX2hlYXAuaCBpbiBIZWFkZXJzICovLAot
CQkJCTBGRTdFRTYwMjI5RTE0RkEwMDRGNDE2NiAvKiBwYXNfZ2V0X2FsbG9jYXRpb25fc2l6ZS5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFN0VFNjQyMjlFMTRGQTAwNEY0MTY2IC8qIHBhc19nZXRf
aGVhcC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5QTFENEQyNTVGMkNENzAwQzhEMTFCIC8qIHBh
c19nZXRfb2JqZWN0X2tpbmQuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOUExRDRGMjU2MzA1QjQw
MEM4RDExQiAvKiBwYXNfZ2V0X3BhZ2VfYmFzZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEYxNTE4
RkQyMzQ0MUUzMjAwODMyQjVDIC8qIHBhc19oYXNfb2JqZWN0LmggaW4gSGVhZGVycyAqLywKLQkJ
CQkwRkU3RUUxMDIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2hhc2h0YWJsZS5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJMEZFN0VFMTYyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19oZWFwLmggaW4gSGVhZGVy
cyAqLywKLQkJCQkwRkU3RUUxMjIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2hlYXBfY29uZmlnLmgg
aW4gSGVhZGVycyAqLywKLQkJCQkwRjA0QzIxRDI0NjBEQjZGMDAxRDMxRjAgLyogcGFzX2hlYXBf
Y29uZmlnX2lubGluZXMuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNkQ1NjZGMjNDQkQxOUQwMEY0
MERCQiAvKiBwYXNfaGVhcF9jb25maWdfa2luZC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEYwOTIy
NkUyMkIyRDkwOTAwN0Q1RDNBIC8qIHBhc19oZWFwX2NvbmZpZ191dGlscy5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJMEZFN0VFMDAyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19hbGlnbm1lbnQuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTBGOUExRDFEMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X2Fs
bG9jYXRvcl9pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjA4M0Y1QjIyQzI5NzlCMDBG
M0NEQjMgLyogcGFzX2hlYXBfY29uZmlnX3V0aWxzX2lubGluZXMuaCBpbiBIZWFkZXJzICovLAot
CQkJCTBGQzJGRDM4MjM3NjE1MTMwMDUzREQ0MSAvKiBwYXNfaGVhcF9mb3JfY29uZmlnLmggaW4g
SGVhZGVycyAqLywKLQkJCQkwRkQ0OEI2OTIzQjZBRUQ1MDAyNkM0NkQgLyogcGFzX2hlYXBfaW5s
aW5lcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY0N0MzMUIyMzM5NkQxRjAwMkExQ0Y3IC8qIHBh
c19oZWFwX2tpbmQuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNEY2MUIxMjVBM0QwQkIwMDhCNEE4
MiAvKiBwYXNfZW51bWVyYWJsZV9wYWdlX21hbGxvYy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZF
N0VFMDkyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19jb2FsaWduLmggaW4gSGVhZGVycyAqLywKKwkJ
CQkwRjE5MzI2MzIyRjExOTNEMDBGQkE3MTMgLyogcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFN0VFMTMyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19o
ZWFwX2xvY2suaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNkRCODhDMjM1RTU0QTYwMDY5Q0FEQiAv
KiBwYXNfaGVhcF9wYWdlX3Byb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkU3RUUxNTIy
OTYwMTQyMDA0RjQxNjYgLyogcGFzX2hlYXBfcmVmLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjg3
OTJCMzIzOEExRDBDMDBBRUU3RjEgLyogcGFzX2hlYXBfcmVmX2tpbmQuaCBpbiBIZWFkZXJzICov
LAotCQkJCTBGRTdFRTE0MjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfaGVhcF9yZWZfcHJlZml4Lmgg
aW4gSGVhZGVycyAqLywKLQkJCQkwRjMyOUEyMzIzRjExMzJCMDBBMTMzQzQgLyogcGFzX2hlYXBf
cnVudGltZV9jb25maWcuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRUI2NjY1MjMxQjJBNTcwMDlD
MDAxQiAvKiBwYXNfaGVhcF9zdW1tYXJ5LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjZENTQ3RTIz
QzU3M0UxMDBGNDBEQkIgLyogcGFzX2hlYXBfdGFibGUuaCBpbiBIZWFkZXJzICovLAotCQkJCTBG
NkQ1NDgyMjNDNTgxQzEwMEY0MERCQiAvKiBwYXNfaGVhcF90YWJsZV9zdGF0ZS5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJMEZENDhCNDQyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19pbW1vcnRhbF9oZWFw
LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkQ0OEIzNzIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX2lt
bXV0YWJsZV92ZWN0b3IuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNTE2RUUzMjQ1NjBGRjUwMDRF
MkI4RCAvKiBwYXNfaW50ZXJuYWxfY29uZmlnLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkU3RUUx
QTIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdC5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJMEZGMDhGNEEyMkE4NDQ2QjAwMzg2NTc1IC8qIHBhc19pbnRyaW5z
aWNfaGVhcF9zdXBwb3J0LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkU3RUUxRTIyOTYwMTQyMDA0
RjQxNjYgLyogcGFzX2xhcmdlX2ZyZWUuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRTdFRTFDMjI5
NjAxNDIwMDRGNDE2NiAvKiBwYXNfbGFyZ2VfZnJlZV9oZWFwX2NvbmZpZy5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJMEY2NkQ1NEIyNDg3NjBBRjAwRkM3MzQ3IC8qIHBhc19sYXJnZV9mcmVlX2hlYXBf
ZGVjbGFyYXRpb25zLmRlZiBpbiBIZWFkZXJzICovLAotCQkJCTBGNzgwODkzMjJGQTUzNDEwMEYz
NzQ1MSAvKiBwYXNfbGFyZ2VfZnJlZV9oZWFwX2RlZmVycmVkX2NvbW1pdF9sb2cuaCBpbiBIZWFk
ZXJzICovLAotCQkJCTBGNjZENTRDMjQ4NzYwQjQwMEZDNzM0NyAvKiBwYXNfbGFyZ2VfZnJlZV9o
ZWFwX2RlZmluaXRpb25zLmRlZiBpbiBIZWFkZXJzICovLAorCQkJCTBGNEY2MTZEMjU5QkZGOTEw
MDhCNEE4MiAvKiBwYXNfYmFzaWNfaGVhcF9jb25maWdfcm9vdF9kYXRhLmggaW4gSGVhZGVycyAq
LywKKwkJCQkwRjVFNDgzNzIzRDY5NjBGMDA0NkRBNUMgLyogcGFzX3JhY2VfdGVzdF9ob29rcy5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMEYwOTIyNkEyMkIwN0MyMTAwN0Q1RDNBIC8qIHBhc19tdXRh
dGlvbl9jb3VudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY2RDU0NzkyM0M1NzNFMTAwRjQwREJC
IC8qIHBhc190aW55X2xhcmdlX21hcF9lbnRyeS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY5QTFE
MTQyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfZGlyZWN0b3J5X2lubGluZXMuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTBGRDQ4QjYwMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRl
ZF9zaGFyZWRfdmlldy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZDQkQwMzQyNkFERjkyNTAwRDI2
RDY4IC8qIHBhc19wYWdlX3NoYXJpbmdfcG9vbF9zY2F2ZW5nZV9yZXN1bHQuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTBGOUExRDJGMjU1OUJBN0EwMEM4RDExQiAvKiBwYXNfY29tcGFjdF9hdG9taWNf
Yml0Zml0X2dsb2JhbF9zaXplX2NsYXNzX3B0ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY2RDU2
NDcyM0NBQTFCQTAwRjQwREJCIC8qIHBhc19jb21wYWN0X3B0ci5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMEY2RDU2NjQyM0NCRDE5RDAwRjQwREJCIC8qIHBhc19jb21wYWN0X2F0b21pY191bnNpZ25l
ZF9wdHIuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNUI2MDkyMjM1RTg4RUYwMENBRTYyOSAvKiBw
YXNfcmVzZXJ2ZWRfbWVtb3J5X3Byb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjZENTY3
OTIzQ0Q3MDU5MDBGNDBEQkIgLyogcGFzX2NvbXBhY3RfdGFnZ2VkX3Vuc2lnbmVkX3B0ci5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJMEZENDhCMzUyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdyZWdh
dGVkX3BhcnRpYWxfdmlldy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY2NkQ1NDYyNDg3NjBBODAw
RkM3MzQ3IC8qIHBhc19sYXJnZV9mcmVlX2hlYXBfaGVscGVycy5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJMEZGMDBEMzgyMzc3NkQ2NTAwQzIwQUMwIC8qIHBhc19sYXJnZV9mcmVlX2lubGluZXMuaCBp
biBIZWFkZXJzICovLAotCQkJCTBGRjA4RjQwMjJBNUY2NTUwMDM4NjU3NSAvKiBwYXNfbGFyZ2Vf
ZnJlZV92aXNpdG9yLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkU3RUUxRjIyOTYwMTQyMDA0RjQx
NjYgLyogcGFzX2xhcmdlX2hlYXAuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGMTkzMjY5MjJGM0Iz
RjMwMEZCQTcxMyAvKiBwYXNfbGFyZ2VfaGVhcF9waHlzaWNhbF9wYWdlX3NoYXJpbmdfY2FjaGUu
aCBpbiBIZWFkZXJzICovLAotCQkJCTBGRTdFRTIwMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfbGFy
Z2VfbWFwLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkM0RUMzOTIzNEE5MUUzMDBCNzEwQTMgLyog
cGFzX2NvbXB1dGVfc3VtbWFyeV9vYmplY3RfY2FsbGJhY2tzLmggaW4gSGVhZGVycyAqLywKKwkJ
CQkwRkU3RUUwRDIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX3V0aWxpdHlfaGVhcF9jb25maWcuaCBp
biBIZWFkZXJzICovLAorCQkJCTBGRDQ4QjVBMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfYmFzZWxp
bmVfYWxsb2NhdG9yX3RhYmxlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkJENjdERDI1QkQzNjNB
MDBBNDkwRDIgLyogbWluYWxpZ24zMl9oZWFwX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MEY5QTFDRjUyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaWFzaW5nX2RpcmVjdG9yeV9raW5kLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkwRjlBMUQyMTI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZp
dF9zaXplX2NsYXNzLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkRCQjA3OTIyQjk4MDU0MDA2QkE1
RkMgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8s
CisJCQkJMEY5QTFEMkMyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19mcmVlX2dyYW51bGVzLmggaW4g
SGVhZGVycyAqLywKKwkJCQkwRjlBMUQzRjI1NUE1MEQ2MDBDOEQxMUIgLyogcGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9hbmRfY29uZmlnLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkYwOEY0ODIyQTc2M0Yx
MDAzODY1NzUgLyogcGFzX2xhcmdlX21hcF9lbnRyeS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZD
RkE0OUEyMzgzNTJFQzAwQ0NENzI2IC8qIHBhc19sYXJnZV9zaGFyaW5nX3Bvb2wuaCBpbiBIZWFk
ZXJzICovLAotCQkJCTBGQzg0Nzk1MjMyRDY5NDkwMEIzODZCNiAvKiBwYXNfbGFyZ2Vfc2hhcmlu
Z19wb29sX2Vwb2NoX3VwZGF0ZV9tb2RlLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjZENTQ3QTIz
QzU3M0UxMDBGNDBEQkIgLyogcGFzX2xhcmdlX3V0aWxpdHlfZnJlZV9oZWFwLmggaW4gSGVhZGVy
cyAqLywKLQkJCQkwRjhBODAyOTI1RUM1ODg4MDA3OTBCNEEgLyogcGFzX2xpbmVfd29yZF9jb25m
aWcuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGMzFBNjQ0MjNFMzUwOUUwMDJDMENBMyAvKiBwYXNf
bGlzdF9kaXJlY3Rpb24uaCBpbiBIZWFkZXJzICovLAotCQkJCTBGREJCMDc1MjJCODc1QTYwMDZC
QTVGQyAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkQ0OEIz
RDIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX2xvY2FsX2FsbG9jYXRvcl9jb25maWdfa2luZC5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJMEZEQkIwNzcyMkI4NzdGQTAwNkJBNUZDIC8qIHBhc19sb2NhbF9h
bGxvY2F0b3JfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY4NzAwQUEyNUIwQThDMzAw
MEUxQUJGIC8qIHRoaW5neV9oZWFwX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZENDhC
MzcyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19pbW11dGFibGVfdmVjdG9yLmggaW4gSGVhZGVycyAq
LywKKwkJCQkwRjlBMUQ0RjI1NjMwNUI0MDBDOEQxMUIgLyogcGFzX2dldF9wYWdlX2Jhc2UuaCBp
biBIZWFkZXJzICovLAorCQkJCTBGNkQ1NDgyMjNDNTgxQzEwMEY0MERCQiAvKiBwYXNfaGVhcF90
YWJsZV9zdGF0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY5QTFENEQyNTVGMkNENzAwQzhEMTFC
IC8qIHBhc19nZXRfb2JqZWN0X2tpbmQuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRTdFRTE1MjI5
NjAxNDIwMDRGNDE2NiAvKiBwYXNfaGVhcF9yZWYuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNkQ1
NjNBMjNDNzlEMzcwMEY0MERCQiAvKiBwYXNfcmFuZ2UxNi5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MEYxNDg3MTEyNjlCNzUxODAwNjg4N0E5IC8qIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5X3B0ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY2RDU2NEIyM0NBQTFC
QTAwRjQwREJCIC8qIHBhc19jb21wYWN0X3RhZ2dlZF9wdHIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGOEE4MDJBMjVFQzU4ODgwMDc5MEI0QSAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX2xpbmUuaCBp
biBIZWFkZXJzICovLAotCQkJCTBGREJCMDczMjJCODc1QTYwMDZCQTVGQyAvKiBwYXNfbG9jYWxf
YWxsb2NhdG9yX3JlZmlsbF9tb2RlLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkU3RUUwRTIyOTYw
MTQyMDA0RjQxNjYgLyogcGFzX2xvY2FsX2FsbG9jYXRvcl9yZXN1bHQuaCBpbiBIZWFkZXJzICov
LAotCQkJCTBGRTdFRTIxMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfbG9jay5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJMEZFQTQ1QkQyMzZDRDVBQzAwQjVBMzc1IC8qIHBhc19sb2NrX2ZyZWVfcmVhZF9w
dHJfcHRyX2hhc2h0YWJsZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY4QTgwMEQyNUNGNjRDOTAw
NzkwQjRBIC8qIHBhc190cmlfc3RhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNkQ1NjQ4MjND
QUExQkEwMEY0MERCQiAvKiBwYXNfY29tcGFjdF9ib290c3RyYXBfZnJlZV9oZWFwLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkwRjRGNjE4MTI1OUU3MzRGMDA4QjRBODIgLyogcGFzX2VudW1lcmF0b3Jf
aW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRTY3MkM3MjVDMjFGNjcwMDZGNjBBMiAv
KiBwYXNfc2VncmVnYXRlZF92aWV3X2FsbG9jYXRvcl9pbmxpbmVzLmggaW4gSGVhZGVycyAqLywK
KwkJCQkwRkRCQjA3NTIyQjg3NUE2MDA2QkE1RkMgLyogcGFzX2xvY2FsX2FsbG9jYXRvci5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJMEZENDhCNTEyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19mb3VuZF9i
aXRfaW5kZXguaCBpbiBIZWFkZXJzICovLAorCQkJCTBGODVFRkRBMjJFMkJFQzcwMDNBMzYyQiAv
KiBwYXNfY29uZmlnX3ByZWZpeC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY5RTk0NTkyMzQ1MjI2
MjAwOUZBRkREIC8qIHBhc19sb2cuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGMDRDMjFBMjQ2MERC
NkYwMDFEMzFGMCAvKiBwYXNfbWFnYXppbmUuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGMDM3QUY0
MjVBRUE5MUEwMDc5QjU4MiAvKiBwYXNfbWVkaXVtX21lZ2FwYWdlX2NhY2hlLmggaW4gSGVhZGVy
cyAqLywKLQkJCQkwRkU3RUUyMjIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX21lZ2FwYWdlX2NhY2hl
LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkQyMkNGQzIyQ0FGMTY0MDBCMjE4NDEgLyogcGFzX21p
bl9oZWFwLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkQ0OEIzODIzQTlBQkIzMDAyNkM0NkQgLyog
cGFzX21vbm90b25pY190aW1lLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjA5MjI2QTIyQjA3QzIx
MDA3RDVEM0EgLyogcGFzX211dGF0aW9uX2NvdW50LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjlB
MUQ0QzI1NUYyQ0Q3MDBDOEQxMUIgLyogcGFzX29iamVjdF9raW5kLmggaW4gSGVhZGVycyAqLywK
LQkJCQkwRjlBMUQwNTI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX3BhZ2VfYmFzZS5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJMEY5QTFEMEMyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19wYWdlX2Jhc2VfY29u
ZmlnLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjZENTY2RDIzQ0JEMTlEMDBGNDBEQkIgLyogcGFz
X2NvbXBhY3Rfc2VncmVnYXRlZF9zaGFyZWRfdmlld19wdHIuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTBGOEE4MTAzMjVGNkE3OTUwMDc5MEI0QSAvKiBob3RiaXRfaGVhcF9jb25maWcuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTBGNkQ1NDgwMjNDNTczRTEwMEY0MERCQiAvKiBwYXNfc21hbGxfbGFyZ2Vf
bWFwX2VudHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjlBMUQ0MzI1NUFGNzMyMDBDOEQxMUIg
LyogcGFzX3BhZ2VfYmFzZV9jb25maWdfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY0
N0MzMUIyMzM5NkQxRjAwMkExQ0Y3IC8qIHBhc19oZWFwX2tpbmQuaCBpbiBIZWFkZXJzICovLAor
CQkJCTBGNzgwODkyMjJGQTUzNDEwMEYzNzQ1MSAvKiBwYXNfYWxsb2NhdGlvbl9jb25maWcuaCBp
biBIZWFkZXJzICovLAorCQkJCTBGOUExRDI4MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0
X3BhZ2VfY29uZmlnLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkQ0OEI1NDIzQTlBQkIzMDAyNkM0
NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfaW5saW5lcy5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJMEY4QTgwNjUyNUVFQ0MxRDAwNzkwQjRBIC8qIGJtYWxsb2NfaGVhcF9pbmxpbmVz
LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkU3RUUzODIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX3V0
aWxpdHlfaGVhcC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY5QTFEMzkyNTVBNDQ3MzAwQzhEMTFC
IC8qIHBhc19jb21wYWN0X2JpdGZpdF92aWV3X3B0ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYx
NDg3MjEyNjlGNUZDQTAwNjg4N0E5IC8qIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2Ny
ZWF0aW9uX21vZGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGOUExRDNEMjU1QTRCQTYwMEM4RDEx
QiAvKiBwYXNfY29tcGFjdF9iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9wdHIuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTBGRDQ4QjQ0MjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfaW1tb3J0YWxfaGVhcC5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMEY4QTgwNjkyNUVFQ0MxRDAwNzkwQjRBIC8qIGJtYWxsb2Nf
aGVhcF9jb25maWcuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNkQ1NjQ5MjNDQUExQkEwMEY0MERC
QiAvKiBwYXNfY29tcGFjdF9hdG9taWNfcHRyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjlBMUQx
RjI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX3BhZ2VfYmFzZV9jb25maWdfdXRpbHMuaCBpbiBIZWFk
ZXJzICovLAotCQkJCTBGOUExQ0Y3MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfcGFnZV9iYXNlX2Nv
bmZpZ191dGlsc19pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjlBMUNGODI1NTk5NjE3
MDBDOEQxMUIgLyogcGFzX3BhZ2VfYmFzZV9pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKKwkJCQkw
RjRGNjFCNzI1QTNEMEJCMDA4QjRBODIgLyogcGFzX3JhbmdlX2JlZ2luX21pbl9oZWFwLmggaW4g
SGVhZGVycyAqLywKKwkJCQkwRjE5MzI2QzIyRjczRTg1MDBGQkE3MTMgLyogcGFzX3NjYXZlbmdl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY5QTFEMTIyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19w
YWdlX2NvbmZpZ19raW5kLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjlBMUQyNTI1NTk5NjE3MDBD
OEQxMUIgLyogcGFzX3BhZ2VfZ3JhbnVsZV91c2VfY291bnQuaCBpbiBIZWFkZXJzICovLAotCQkJ
CTBGOUExRDIwMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfcGFnZV9oZWFkZXJfcGxhY2VtZW50X21v
ZGUuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOUExRDJEMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNf
cGFnZV9oZWFkZXJfdGFibGUuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOUExRDI5MjU1OTk2MTcw
MEM4RDExQiAvKiBwYXNfcGFnZV9raW5kLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkU3RUUyNzIy
OTYwMTQyMDA0RjQxNjYgLyogcGFzX3BhZ2VfbWFsbG9jLmggaW4gSGVhZGVycyAqLywKLQkJCQkw
RjlBMUQyNDI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX3BhZ2Vfc2hhcmluZ19tb2RlLmggaW4gSGVh
ZGVycyAqLywKLQkJCQkwRjE5MzI2MzIyRjExOTNEMDBGQkE3MTMgLyogcGFzX3BhZ2Vfc2hhcmlu
Z19wYXJ0aWNpcGFudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEYxOTMyNjAyMkYxMTkzRDAwRkJB
NzEzIC8qIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfa2luZC5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJMEZEMjJDRkYyMkNDMDFEMzAwQjIxODQxIC8qIHBhc19wYWdlX3NoYXJpbmdfcG9vbC5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJMEZGMjQ4RkEyMkZDOUVEQjAwNzcyMDJFIC8qIHBhc19wYWdl
X3NoYXJpbmdfcG9vbF90YWtlX3Jlc3VsdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYxNDg3MTUy
NjlCNzUxODAwNjg4N0E5IC8qIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlf
cHRyLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkYwMEQzODIzNzc2RDY1MDBDMjBBQzAgLyogcGFz
X2xhcmdlX2ZyZWVfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZENDhCM0MyM0E5QUJC
MzAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9oYW5kbGVfaW5saW5lcy5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMEY5QTFEMzEyNTU5QkI1RDAwQzhEMTFCIC8qIHBhc19jb21wYWN0X2F0
b21pY19iaXRmaXRfaGVhcF9wdHIuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGQTVFNDU4MjQ5MkQ1
QkEwMENFOTYyQSAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkwRkU3RUUyMTIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2xvY2suaCBpbiBI
ZWFkZXJzICovLAorCQkJCTBGOUExRDA0MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfZmFzdF9tZWdh
cGFnZV9jYWNoZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZENDhCNEUyM0E5QUJCMzAwMjZDNDZE
IC8qIHBhc19mcmVlX3JhbmdlX2tpbmQuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRTdFRTM1MjI5
NjAxNDIwMDRGNDE2NiAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlLmggaW4gSGVhZGVycyAqLywK
KwkJCQkwRjhBODEwNjI1RjZBNzk1MDA3OTBCNEEgLyogaG90Yml0X2hlYXBfaW5saW5lcy5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJMEY3ODA4OTAyMkZBNTM0MTAwRjM3NDUxIC8qIHBhc19yYW5nZV9t
aW5faGVhcC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYyMTUwRUIyNDg0QkIyQTAwMEQ2MzRCIC8q
IHBhc19hbGxvY2F0b3JfaW5kZXguaCBpbiBIZWFkZXJzICovLAorCQkJCTBGOUExRDE4MjU1OTk2
MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X2hlYXAuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRDQ4
QjNCMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yLmggaW4gSGVhZGVy
cyAqLywKKwkJCQkwRjg3MDBBODI1QjBBOEMyMDAwRTFBQkYgLyogdGhpbmd5X2hlYXAuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTBGNkQ1NjcyMjNDQkQxOUQwMEY0MERCQiAvKiBwYXNfY29tcGFjdF9h
dG9taWNfc2VncmVnYXRlZF92aWV3LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjUyOURERjI0NTU0
NjBDMDAzODVBOEMgLyogaXNvX2hlYXBfcmVmLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjRGNjFD
QTI1QTRDRDNCMDA4QjRBODIgLyogcGFzX3BheWxvYWRfcmVzZXJ2YXRpb25fcGFnZV9saXN0Lmgg
aW4gSGVhZGVycyAqLywKKwkJCQkwRjE5MzI1MzIyRUQwNEE2MDBGQkE3MTMgLyogcGFzX2NvbW1p
dF9tb2RlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkYwOEY0NDIyQTYyN0MxMDAzODY1NzUgLyog
cGFzX2Zhc3RfbGFyZ2VfZnJlZV9oZWFwLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjlBMUQ0MTI1
NUFGMjc5MDBDOEQxMUIgLyogcGFzX2JpdGZpdF92aWV3X2lubGluZXMuaCBpbiBIZWFkZXJzICov
LAorCQkJCTBGOUExRDM3MjU1QTQ0NzMwMEM4RDExQiAvKiBwYXNfY29tcGFjdF9hdG9taWNfYml0
Zml0X3NpemVfY2xhc3NfcHRyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjZENTQ3QjIzQzU3M0Ux
MDBGNDBEQkIgLyogcGFzX3BoeXNpY2FsX21lbW9yeV9zeW5jaHJvbml6YXRpb25fc3R5bGUuaCBp
biBIZWFkZXJzICovLAotCQkJCTBGNzgwODg3MjJGQTJFNDkwMEYzNzQ1MSAvKiBwYXNfcGh5c2lj
YWxfbWVtb3J5X3RyYW5zYWN0aW9uLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkU3RUUyOTIyOTYw
MTQyMDA0RjQxNjYgLyogcGFzX3ByaW1pdGl2ZV9oZWFwX3JlZi5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJMEY5QTFDRjkyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19wcm9tb3RlX2ludHJpbnNpY19oZWFw
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjRGNjE1QjI1OUJGNkVDMDA4QjRBODIgLyogcGFzX3B0
cl9oYXNoX21hcC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY0RjYxNDcyNTlCQjEwOTAwOEI0QTgy
IC8qIHBhc19wdHJfaGFzaF9zZXQuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNEY2MUIwMjVBM0Qw
QkIwMDhCNEE4MiAvKiBwYXNfcHRyX21pbl9oZWFwLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjRG
NjE1MjI1OUJDMzMzMDA4QjRBODIgLyogcGFzX3B0cl93b3JrbGlzdC5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJMEY1RTQ4MzcyM0Q2OTYwRjAwNDZEQTVDIC8qIHBhc19yYWNlX3Rlc3RfaG9va3MuaCBp
biBIZWFkZXJzICovLAotCQkJCTBGRDQ4QjRBMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfcmFuZG9t
LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjE5MzI1OTIyRUQwNEE2MDBGQkE3MTMgLyogcGFzX3Jh
bmdlLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjZENTYzQTIzQzc5RDM3MDBGNDBEQkIgLyogcGFz
X3JhbmdlMTYuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNEY2MUI3MjVBM0QwQkIwMDhCNEE4MiAv
KiBwYXNfcmFuZ2VfYmVnaW5fbWluX2hlYXAuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRDQ4QjJD
MjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfcmFuZ2VfbG9ja2VkX21vZGUuaCBpbiBIZWFkZXJzICov
LAotCQkJCTBGNzgwODkwMjJGQTUzNDEwMEYzNzQ1MSAvKiBwYXNfcmFuZ2VfbWluX2hlYXAuaCBp
biBIZWFkZXJzICovLAotCQkJCTBGRTdFRTdGMjJBMUE1ODAwMDRGNDE2NiAvKiBwYXNfcmVhbGxv
Y2F0ZV9mcmVlX21vZGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGOUExQ0Y0MjU1OTk2MTcwMEM4
RDExQiAvKiBwYXNfY29tbWl0X3NwYW4uaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRDQ4QjY1MjNB
OUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXdfaW5saW5lcy5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJMEZGMDhGM0EyMkE1QjQwMzAwMzg2NTc1IC8qIHBhc19nZW5lcmlj
X2xhcmdlX2ZyZWVfaGVhcC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY2RDU2NjcyM0NCRDE5RDAw
RjQwREJCIC8qIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5X3B0
ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYzMUE2NjYyM0U4QTk0MjAwMkMwQ0EzIC8qIHBhc19j
YXJ0ZXNpYW5fdHJlZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY2NkQ1NDkyNDg3NjBBODAwRkM3
MzQ3IC8qIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X3B0ci5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMEZCRDY3RjIyNUJFMDc4NzAwQTQ5MEQyIC8qIHBhZ2VzaXpl
NjRrX2hlYXBfY29uZmlnLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkU3RUU3RDIyQTFBMzFDMDA0
RjQxNjYgLyogcGFzX3JlYWxsb2NhdGVfaGVhcF90ZWxlcG9ydF9ydWxlLmggaW4gSGVhZGVycyAq
LywKKwkJCQkwRkRCQjA3NzIyQjg3N0ZBMDA2QkE1RkMgLyogcGFzX2xvY2FsX2FsbG9jYXRvcl9p
bmxpbmVzLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkQ0OEI1NzIzQTlBQkIzMDAyNkM0NkQgLyog
cGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5LmggaW4gSGVhZGVycyAqLywKKwkJ
CQkwRjlBMUQzQzI1NUE0QkE2MDBDOEQxMUIgLyogcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9i
aWFzaW5nX2RpcmVjdG9yeV9wdHIuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMzI5QTIxMjNGMTEz
MkEwMEExMzNDNCAvKiBwYXNfYmFzaWNfaGVhcF9ydW50aW1lX2NvbmZpZy5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJMEZFN0VFMkYyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19zZWdyZWdhdGVkX2hlYXAu
aCBpbiBIZWFkZXJzICovLAorCQkJCTBGOUExQ0Y5MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfcHJv
bW90ZV9pbnRyaW5zaWNfaGVhcC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZENDhCMzgyM0E5QUJC
MzAwMjZDNDZEIC8qIHBhc19tb25vdG9uaWNfdGltZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYz
MjlBMkQyM0YxRDYzNjAwQTEzM0M0IC8qIHBhc19lbnN1cmVfaGVhcF9mb3JjZWRfaW50b19yZXNl
cnZlZF9tZW1vcnkuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMzI5QTIyMjNGMTEzMkIwMEExMzND
NCAvKiBwYXNfYmFzaWNfaGVhcF9wYWdlX2NhY2hlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYz
MUE2NDYyM0U0QzQ0MTAwMkMwQ0EzIC8qIHBhc19jb21wYWN0X3NraXBfbGlzdF9ub2RlX3B0cl9w
dHIuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRUE0NUJEMjM2Q0Q1QUMwMEI1QTM3NSAvKiBwYXNf
bG9ja19mcmVlX3JlYWRfcHRyX3B0cl9oYXNodGFibGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBG
MzFBNjZBMjNFOEU1OTQwMDJDMENBMyAvKiBwYXNfdHJlZV9kaXJlY3Rpb24uaCBpbiBIZWFkZXJz
ICovLAorCQkJCTBGRDQ4QjNEMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfbG9jYWxfYWxsb2NhdG9y
X2NvbmZpZ19raW5kLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjE0ODcxMjI2OUI3NTE4MDA2ODg3
QTkgLyogcGFzX2xvY2FsX3ZpZXdfY2FjaGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNDdDMzFB
MjMzOTZEMUYwMDJBMUNGNyAvKiBwYXNfYWxsb2NhdGlvbl9raW5kLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRkYwOEYzMzIyQTU4RjEyMDAzODY1NzUgLyogcGFzX3JlZF9ibGFja190cmVlLmggaW4g
SGVhZGVycyAqLywKKwkJCQkwRkU3RUUwMTIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2FsbF9oZWFw
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZBNUU0NTcyNDkyRDVCQTAwQ0U5NjJBIC8qIHBhc19y
ZWR1bmRhbnRfbG9jYWxfYWxsb2NhdG9yX25vZGUuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNUI2
MDkyMjM1RTg4RUYwMENBRTYyOSAvKiBwYXNfcmVzZXJ2ZWRfbWVtb3J5X3Byb3ZpZGVyLmggaW4g
SGVhZGVycyAqLywKLQkJCQkwRjRGNjBGQjI1OTc5QkM4MDA4QjRBODIgLyogcGFzX3Jvb3QuaCBp
biBIZWFkZXJzICovLAotCQkJCTBGMTkzMjZDMjJGNzNFODUwMEZCQTcxMyAvKiBwYXNfc2NhdmVu
Z2VyLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjY4MTI3MjIyQkQ0QkY0MDAzNkEwMkIgLyogcGFz
X3NlZ21lbnRlZF92ZWN0b3IuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGMDRDMjE0MjQ2MERCNkYw
MDFEMzFGMCAvKiBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeS5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJMEYwNEMyMUUyNDYwREI2RjAwMUQzMUYwIC8qIHBhc19zZWdyZWdhdGVkX2JpYXNp
bmdfdmlldy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZENDhCNTYyM0E5QUJCMzAwMjZDNDZEIC8q
IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZENDhCNDcy
M0E5QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9iaXRfcmVmZXJlbmNl
LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjUwOEQ1MzI1OEVDRkQzMDAxNTFFRDggLyogcGFzX3Nl
Z3JlZ2F0ZWRfZGlyZWN0b3J5X2ZpcnN0X2VsaWdpYmxlX2tpbmQuaCBpbiBIZWFkZXJzICovLAot
CQkJCTBGRDQ4QjMzMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlf
aW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY4QTgwNjcyNUVFQ0MxRDAwNzkwQjRBIC8q
IGJtYWxsb2NfaGVhcC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY0NUQ1QTkyNkFCNzMxNDAwQzM1
RDkzIC8qIHBhc19sb2NhbF9hbGxvY2F0b3Jfa2luZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZC
RDY3RjEyNUJFMDc4NzAwQTQ5MEQyIC8qIHBhZ2VzaXplNjRrX2hlYXAuaCBpbiBIZWFkZXJzICov
LAorCQkJCTBGRTdFRTFDMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfbGFyZ2VfZnJlZV9oZWFwX2Nv
bmZpZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZENDhCNUQyM0E5QUJCMzAwMjZDNDZEIC8qIHBh
c19zZWdyZWdhdGVkX2RpcmVjdG9yeV9raW5kLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkQ0OEI0
MTIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTBGRTY3MkI3MjVDMjFENTMwMDZGNjBBMiAvKiBwYXNfc2VncmVnYXRl
ZF9leGNsdXNpdmVfdmlld19pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjA0QzIxOTI0
NjBEQjZGMDAxRDMxRjAgLyogcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlw
X2tpbmQuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGMDRDMjE2MjQ2MERCNkYwMDFEMzFGMCAvKiBw
YXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkuaCBpbiBIZWFkZXJzICovLAotCQkJ
CTBGMDRDMjIxMjQ2MERCNkYwMDFEMzFGMCAvKiBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9k
aXJlY3RvcnlfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFN0VFMkYyMjk2MDE0MjAw
NEY0MTY2IC8qIHBhc19zZWdyZWdhdGVkX2hlYXAuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMDM3
QUY0MjVBRUE5MUEwMDc5QjU4MiAvKiBwYXNfbWVkaXVtX21lZ2FwYWdlX2NhY2hlLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkwRjY2RDU0NTI0ODc2MEE4MDBGQzczNDcgLyogcGFzX2NvbXBhY3RfbGFy
Z2VfdXRpbGl0eV9mcmVlX2hlYXAuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRTdFRTNBMjI5NjAx
NDIwMDRGNDE2NiAvKiBwYXNfdXRpbHMuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRTdFRTYxMjI5
RTE0RkEwMDRGNDE2NiAvKiBwYXNfdHJ5X2FsbG9jYXRlX2ludHJpbnNpY19wcmltaXRpdmUuaCBp
biBIZWFkZXJzICovLAorCQkJCTBGOUExRDBDMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfcGFnZV9i
YXNlX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY1OUEzOTgyNjY4MzE3NDAwQTM4NjU3
IC8qIGppdF9oZWFwX2NvbmZpZ19yb290X2RhdGEuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNEY2
MTExMjU5N0Y4MUUwMDhCNEE4MiAvKiBwYXNfZW51bWVyYXRlX2xhcmdlX2hlYXBzLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkwRkU3RUUzNDIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX3RocmVhZF9sb2Nh
bF9jYWNoZV9sYXlvdXQuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMTQ4NzEwMjY5Qjc1MTgwMDY4
ODdBOSAvKiBwYXNfc2VncmVnYXRlZF9kZWFsbG9jYXRpb25fbW9kZS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJMEZFN0VFNjIyMjlFMTRGQTAwNEY0MTY2IC8qIHBhc190cnlfYWxsb2NhdGVfYXJyYXku
aCBpbiBIZWFkZXJzICovLAorCQkJCTBGRTdFRTI5MjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfcHJp
bWl0aXZlX2hlYXBfcmVmLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjE5MzI1NDIyRUQwNEE2MDBG
QkE3MTMgLyogcGFzX2Vwb2NoLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjhBODA2QTI1RUVDQzFE
MDA3OTBCNEEgLyogYm1hbGxvY19oZWFwX3JlZi5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY5QTFE
MDMyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfcGFnZS5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMEY2RDU2NzcyM0NDMTQxRTAwRjQwREJCIC8qIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfaGVh
cF9wdHIuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMzFBNjNFMjNEQ0Y4MDQwMDJDMENBMyAvKiBw
YXNfc2tpcF9saXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjc4MDg4RTIyRkE1MzQxMDBGMzc0
NTEgLyogcGFzX3ZpcnR1YWxfcmFuZ2VfbWluX2hlYXAuaCBpbiBIZWFkZXJzICovLAorCQkJCTBG
RTdFRTM5MjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfdXRpbHNfcHJlZml4LmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRkQ0OEIyQjIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9p
bmxpbmVzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkU3RUUyRTIyOTYwMTQyMDA0RjQxNjYgLyog
cGFzX3NlZ3JlZ2F0ZWRfaGVhcF9sb29rdXBfa2luZC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZF
N0VFMzEyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19zZWdyZWdhdGVkX3BhZ2UuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTBGOUExRDNGMjU1QTUwRDYwMEM4RDExQiAvKiBwYXNfc2VncmVnYXRlZF9wYWdl
X2FuZF9jb25maWcuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOTdFNjJFMjJBOUE4NUYwMEMzNTVG
OCAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZE
QkIwNzkyMkI5ODA1NDAwNkJBNUZDIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2lubGlu
ZXMuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRjhENjI3MjJDMDRBNzcwMEVDNzJGRSAvKiBwYXNf
c2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kLmRlZiBpbiBIZWFkZXJzICovLAotCQkJCTBGRTdF
RTExMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kLmgg
aW4gSGVhZGVycyAqLywKLQkJCQkwRjA5MjI2QzIyQjJEODhFMDA3RDVEM0EgLyogcGFzX3NlZ3Jl
Z2F0ZWRfcGFnZV9jb25maWdfdXRpbHMuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGMDgzRjVBMjJD
Mjk3OUIwMEYzQ0RCMyAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ191dGlsc19pbmxpbmVz
LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjlBMUNFQjI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZV9jb25maWdfdmFyaWFudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZDNEVD
NzkyMzUxNzA3QjAwQjcxMEEzIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfZW1wdGluZXNzX2tpbmQu
aCBpbiBIZWFkZXJzICovLAotCQkJCTBGRjhENjI5MjJDMTY2RjUwMEVDNzJGRSAvKiBwYXNfc2Vn
cmVnYXRlZF9wYWdlX2lubGluZXMuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRDQ4QjM1MjNBOUFC
QjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXcuaCBpbiBIZWFkZXJzICov
LAotCQkJCTBGRDQ4QjY1MjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9wYXJ0aWFs
X3ZpZXdfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZENDhCNTUyM0E5QUJCMzAwMjZD
NDZEIC8qIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9oYW5kbGUuaCBpbiBIZWFkZXJzICovLAotCQkJ
CTBGRDQ4QjNDMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9zaGFyZWRfaGFuZGxl
X2lubGluZXMuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRDQ4QjU3MjNBOUFCQjMwMDI2QzQ2RCAv
KiBwYXNfc2VncmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJlY3RvcnkuaCBpbiBIZWFkZXJzICovLAot
CQkJCTBGRDQ4QjYwMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9zaGFyZWRfdmll
dy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY1RTVDRjIyM0JGQkZCOTAwQUEwQjZGIC8qIHBhc19z
ZWdyZWdhdGVkX3NoYXJlZF92aWV3X2lubGluZXMuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRDQ4
QjY0MjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeS5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJMEZENDhCNTQyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5X2lubGluZXMuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRDQ4QjQ5
MjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF92aWV3LmggaW4gSGVhZGVycyAqLywK
LQkJCQkwRkU2NzJDNzI1QzIxRjY3MDA2RjYwQTIgLyogcGFzX3NlZ3JlZ2F0ZWRfdmlld19hbGxv
Y2F0b3JfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEYwNEMyMjIyNDYwREI2RjAwMUQz
MUYwIC8qIHBhc19zZWdyZWdhdGVkX3ZpZXdfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
MEZENDhCNEYyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX3ZpZXdfa2luZC5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJMEY5QTFDRTkyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19zaGFyZWRf
aGFuZGxlX29yX3BhZ2VfYm91bmRhcnkuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOUExRDI2MjU1
OTk2MTcwMEM4RDExQiAvKiBwYXNfc2hhcmVkX2hhbmRsZV9vcl9wYWdlX2JvdW5kYXJ5X2lubGlu
ZXMuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGMThFNjNFMjYyOEJGQjcwMEY2OTAzRCAvKiBwYXNf
c2hhcmVkX3BhZ2VfZGlyZWN0b3J5X2J5X3NpemUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNzgw
ODg3MjJGQTJFNDkwMEYzNzQ1MSAvKiBwYXNfcGh5c2ljYWxfbWVtb3J5X3RyYW5zYWN0aW9uLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkwRjRGNjBGQjI1OTc5QkM4MDA4QjRBODIgLyogcGFzX3Jvb3Qu
aCBpbiBIZWFkZXJzICovLAorCQkJCTBGNDdDMzFGMjMzOTZFMEIwMDJBMUNGNyAvKiBwYXNfYWxs
b2NhdGlvbl9jYWxsYmFja3MuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGOUExRDRDMjU1RjJDRDcw
MEM4RDExQiAvKiBwYXNfb2JqZWN0X2tpbmQuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNkQ1NjYy
MjNDQkQxOUQwMEY0MERCQiAvKiBwYXNfY29tcGFjdF91bnNpZ25lZF9wdHIuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTBGQzRFQzNDMjM0QTkxRTMwMEI3MTBBMyAvKiBwYXNfc3RyaW5nX3N0cmVhbS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMEZCNTcwNkIyNjdEMDNDRDAwODBGQThCIC8qIHBhc19mYXN0
X3Rscy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY2RDU2NEMyM0NBQTFCQTAwRjQwREJCIC8qIHBh
c19zaW1wbGVfZnJlZV9oZWFwX2hlbHBlcnMuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRjA4RjNE
MjJBNURDNjkwMDM4NjU3NSAvKiBwYXNfc2ltcGxlX2xhcmdlX2ZyZWVfaGVhcC5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJMEZFN0VERkQyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19zaW1wbGVfdHlwZS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMEZFN0VFMTYyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19oZWFw
LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjE5MzI2MDIyRjExOTNEMDBGQkE3MTMgLyogcGFzX3Bh
Z2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9raW5kLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjA0QzIy
NTI0NjBEQjZGMDAxRDMxRjAgLyogcGFzX2NvbXBhY3RfYXRvbWljX3BhZ2Vfc2hhcmluZ19wb29s
X3B0ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY5QTFDRjgyNTU5OTYxNzAwQzhEMTFCIC8qIHBh
c19wYWdlX2Jhc2VfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZFN0VFMjIyMjk2MDE0
MjAwNEY0MTY2IC8qIHBhc19tZWdhcGFnZV9jYWNoZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZE
NDhCNjIyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19hbGxfc2hhcmVkX3BhZ2VfZGlyZWN0b3JpZXMu
aCBpbiBIZWFkZXJzICovLAorCQkJCTBGNEY2MTFDMjU5ODM4QjEwMDhCNEE4MiAvKiBwYXNfZW51
bWVyYXRvcl9yZWdpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRDQ4QjY5MjNCNkFFRDUwMDI2
QzQ2RCAvKiBwYXNfaGVhcF9pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjQ1RDVBQjI2
QUI3MzE0MDBDMzVEOTMgLyogcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJMEY5QTFDRTYyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRf
cGFnZV9jb25maWdfdXRpbHMuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGOUExQ0ZBMjU1OTk2MTcw
MEM4RDExQiAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmQuaCBpbiBIZWFkZXJzICovLAor
CQkJCTBGMTUxOEZEMjM0NDFFMzIwMDgzMkI1QyAvKiBwYXNfaGFzX29iamVjdC5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMEZFN0VFMEUyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19sb2NhbF9hbGxvY2F0
b3JfcmVzdWx0LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjZENTQ3RTIzQzU3M0UxMDBGNDBEQkIg
LyogcGFzX2hlYXBfdGFibGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRDQ4QjNBMjNBOUFCQjMw
MDI2QzQ2RCAvKiBwYXNfZnVsbF9hbGxvY19iaXRzX2lubGluZXMuaCBpbiBIZWFkZXJzICovLAor
CQkJCTBGRTdFRTYzMjI5RTE0RkEwMDRGNDE2NiAvKiBwYXNfdHJ5X2FsbG9jYXRlLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkwRjhBODEwNTI1RjZBNzk1MDA3OTBCNEEgLyogaG90Yml0X2hlYXAuaCBp
biBIZWFkZXJzICovLAorCQkJCTBGRTdFRTEyMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfaGVhcF9j
b25maWcuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRDQ4QjY0MjNBOUFCQjMwMDI2QzQ2RCAvKiBw
YXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZCRDY3
REMyNUJEMzYzQTAwQTQ5MEQyIC8qIG1pbmFsaWduMzJfaGVhcC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEY5OUY5OEMyNUNCMkNFODAwRUVFNDQ5IC8qIHBhc19zaXplX3RodW5rLmggaW4gSGVhZGVy
cyAqLywKLQkJCQkwRjMxQTYzRTIzRENGODA0MDAyQzBDQTMgLyogcGFzX3NraXBfbGlzdC5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJMEZFN0VFNjAyMjlFMTRGQTAwNEY0MTY2IC8qIHBhc19nZXRfYWxs
b2NhdGlvbl9zaXplLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjA5MjI2RTIyQjJEOTA5MDA3RDVE
M0EgLyogcGFzX2hlYXBfY29uZmlnX3V0aWxzLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjE5MzI1
ODIyRUQwNEE2MDBGQkE3MTMgLyogcGFzX2ZyZWVfbW9kZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MEZGMDhGNDAyMkE1RjY1NTAwMzg2NTc1IC8qIHBhc19sYXJnZV9mcmVlX3Zpc2l0b3IuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTBGNUU1Q0VGMjNCRUYzNjAwMEFBMEI2RiAvKiBpc29fdGVzdF9oZWFw
X2NvbmZpZy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZFN0VFMUYyMjk2MDE0MjAwNEY0MTY2IC8q
IHBhc19sYXJnZV9oZWFwLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjlBMUNFNzI1NTk5NjE3MDBD
OEQxMUIgLyogcGFzX2JpdGZpdF9tYXhfZnJlZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYwNEMy
MUQyNDYwREI2RjAwMUQzMUYwIC8qIHBhc19oZWFwX2NvbmZpZ19pbmxpbmVzLmggaW4gSGVhZGVy
cyAqLywKKwkJCQkwRjRGNjFCNTI1QTNEMEJCMDA4QjRBODIgLyogcGFzX2VudW1lcmFibGVfcmFu
Z2VfbGlzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZFN0VFMDgyMjk2MDE0MjAwNEY0MTY2IC8q
IHBhc19jYXJlc19hYm91dF9zaXplX21vZGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMzI5QTIz
MjNGMTEzMkIwMEExMzNDNCAvKiBwYXNfaGVhcF9ydW50aW1lX2NvbmZpZy5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJMEY2NkQ1NEMyNDg3NjBCNDAwRkM3MzQ3IC8qIHBhc19sYXJnZV9mcmVlX2hlYXBf
ZGVmaW5pdGlvbnMuZGVmIGluIEhlYWRlcnMgKi8sCisJCQkJMEY5QTFEMDEyNTU5OTYxNzAwQzhE
MTFCIC8qIHBhc19iaXRmaXRfcGFnZV9pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjRG
NjE3ODI1OUQxMDY1MDA4QjRBODIgLyogcGFzX2VudW1lcmF0ZV9iaXRmaXRfaGVhcHMuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTBGNkQ1NjY4MjNDQkQxOUQwMEY0MERCQiAvKiBwYXNfY29tcGFjdF9o
ZWFwX3Jlc2VydmF0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjc4MDg4NDIyRkEyMkQyMDBG
Mzc0NTEgLyogcGFzX3ZpcnR1YWxfcmFuZ2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNTcwOTFB
MjU2QUI0MTcwMDAzN0JCMyAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX3V0aWxzX2lubGluZXMu
aCBpbiBIZWFkZXJzICovLAorCQkJCTBGQzJGRDM4MjM3NjE1MTMwMDUzREQ0MSAvKiBwYXNfaGVh
cF9mb3JfY29uZmlnLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjZENTY3MDIzQ0JEMTlEMDBGNDBE
QkIgLyogcGFzX2NvbXBhY3RfaGVhcF9wdHIuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNEY2MUMw
MjVBNENCMDkwMDhCNEE4MiAvKiBwYXNfY29tcGFjdF9jYXJ0ZXNpYW5fdHJlZV9ub2RlX3B0ci5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMEY1MTZFRTcyNDU2MUE2MDAwNEUyQjhEIC8qIGlzb19oZWFw
X2lubmFyZHMuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMThFNjNFMjYyOEJGQjcwMEY2OTAzRCAv
KiBwYXNfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5X2J5X3NpemUuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTBGOUExRDQ1MjU1REJFNjEwMEM4RDExQiAvKiBwYXNfYml0Zml0X3ZpZXdfYW5kX2luZGV4Lmgg
aW4gSGVhZGVycyAqLywKKwkJCQkwRjA5MjI2QzIyQjJEODhFMDA3RDVEM0EgLyogcGFzX3NlZ3Jl
Z2F0ZWRfcGFnZV9jb25maWdfdXRpbHMuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMzFBNjQ0MjNF
MzUwOUUwMDJDMENBMyAvKiBwYXNfbGlzdF9kaXJlY3Rpb24uaCBpbiBIZWFkZXJzICovLAorCQkJ
CTBGNkI0N0ZFMjMzMTVBRTUwMDJBNUUwQyAvKiBwYXNfYWxsb2NhdG9yX3NjYXZlbmdlX2FjdGlv
bi5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYxOTMyNTkyMkVEMDRBNjAwRkJBNzEzIC8qIHBhc19y
YW5nZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZFN0VFMjcyMjk2MDE0MjAwNEY0MTY2IC8qIHBh
c19wYWdlX21hbGxvYy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZENDhCMzMyM0E5QUJCMzAwMjZD
NDZEIC8qIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pbmxpbmVzLmggaW4gSGVhZGVycyAqLywK
KwkJCQkwRjdGNTFCRjIzMTU5RUMwMDA3NTUyQUUgLyogcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9u
b2RlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkQ0OEI1NjIzQTlBQkIzMDAyNkM0NkQgLyogcGFz
X3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjMxQTYzQzIzRENG
ODA0MDAyQzBDQTMgLyogcGFzX3NraXBfbGlzdF9pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKLQkJ
CQkwRkU3RUUyRDIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX3Nsb3dfcGF0aF9tb2RlLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkwRkQ0OEI0RjIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRf
dmlld19raW5kLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjlBMUQzNjI1NUE0NDczMDBDOEQxMUIg
LyogcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF92aWV3X3B0ci5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMEZENDhCNEEyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19yYW5kb20uaCBpbiBIZWFkZXJzICov
LAorCQkJCTBGNkQ1NDdGMjNDNTczRTEwMEY0MERCQiAvKiBwYXNfZmlyc3RfbGV2ZWxfdGlueV9s
YXJnZV9tYXBfZW50cnkuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGOUExRDE2MjU1OTk2MTcwMEM4
RDExQiAvKiBwYXNfZmFzdF9tZWdhcGFnZV9raW5kLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkJD
NjJDMzI2NUYxMkEzMDA1QTU3MjAgLyogcGFzX2RlYnVnX3NwZWN0cnVtLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRkU3RUUyQzIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX3Nsb3dfcGF0aF9tb2RlX3By
ZWZpeC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY2RDU0ODAyM0M1NzNFMTAwRjQwREJCIC8qIHBh
c19zbWFsbF9sYXJnZV9tYXBfZW50cnkuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRTdFRTMyMjI5
NjAxNDIwMDRGNDE2NiAvKiBwYXNfc25wcmludGYuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGQzRF
QzNEMjM0QTkxRTMwMEI3MTBBMyAvKiBwYXNfc3RhdHVzX3JlcG9ydGVyLmggaW4gSGVhZGVycyAq
LywKLQkJCQkwRkU3RUUzMzIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX3N0cmVhbS5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJMEZDNEVDM0MyMzRBOTFFMzAwQjcxMEEzIC8qIHBhc19zdHJpbmdfc3RyZWFt
LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjlBMUQwRTI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX3N1
YnBhZ2VfbWFwLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjlBMUNFMzI1NTk5NjE3MDBDOEQxMUIg
LyogcGFzX3N1YnBhZ2VfbWFwX2VudHJ5LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkU3RUUzNTIy
OTYwMTQyMDA0RjQxNjYgLyogcGFzX3RocmVhZF9sb2NhbF9jYWNoZS5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJMEZFN0VFMzQyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc190aHJlYWRfbG9jYWxfY2FjaGVf
bGF5b3V0LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkE1RTQ1ODI0OTJENUJBMDBDRTk2MkEgLyog
cGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
MEY3RjUxQkYyMzE1OUVDMDAwNzU1MkFFIC8qIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbm9kZS5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJMEY2RDU0NzkyM0M1NzNFMTAwRjQwREJCIC8qIHBhc190aW55
X2xhcmdlX21hcF9lbnRyeS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEYzMUE2NkEyM0U4RTU5NDAw
MkMwQ0EzIC8qIHBhc190cmVlX2RpcmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY4QTgw
MEQyNUNGNjRDOTAwNzkwQjRBIC8qIHBhc190cmlfc3RhdGUuaCBpbiBIZWFkZXJzICovLAotCQkJ
CTBGRTdFRTYzMjI5RTE0RkEwMDRGNDE2NiAvKiBwYXNfdHJ5X2FsbG9jYXRlLmggaW4gSGVhZGVy
cyAqLywKLQkJCQkwRkU3RUU2MjIyOUUxNEZBMDA0RjQxNjYgLyogcGFzX3RyeV9hbGxvY2F0ZV9h
cnJheS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZENDhCM0UyM0E5QUJCMzAwMjZDNDZEIC8qIHBh
c190cnlfYWxsb2NhdGVfY29tbW9uLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkU3RUU2MTIyOUUx
NEZBMDA0RjQxNjYgLyogcGFzX3RyeV9hbGxvY2F0ZV9pbnRyaW5zaWNfcHJpbWl0aXZlLmggaW4g
SGVhZGVycyAqLywKLQkJCQkwRkU3RUU2NTIyOUUxNEZBMDA0RjQxNjYgLyogcGFzX3RyeV9hbGxv
Y2F0ZV9wcmltaXRpdmUuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRTdFRTc5MjJBMDQ4QkIwMDRG
NDE2NiAvKiBwYXNfdHJ5X3JlYWxsb2NhdGUuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNTlBMzk2
MjY2N0YwMEUwMEEzODY1NyAvKiBwYXNfdHJ5X3Nocmluay5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MEZFNjcyQjcyNUMyMUQ1MzAwNkY2MEEyIC8qIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3
X2lubGluZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRjA4RjNEMjJBNURDNjkwMDM4NjU3NSAv
KiBwYXNfc2ltcGxlX2xhcmdlX2ZyZWVfaGVhcC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY1OUEz
OTUyNjY3RjAwRTAwQTM4NjU3IC8qIHBhc19hbGxfaGVhcF9jb25maWdzLmggaW4gSGVhZGVycyAq
LywKKwkJCQkwRjhBODEwMjI1RjZBNzk1MDA3OTBCNEEgLyogaG90Yml0X2hlYXBfaW5uYXJkcy5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMEZGMjQ4RkEyMkZDOUVEQjAwNzcyMDJFIC8qIHBhc19wYWdl
X3NoYXJpbmdfcG9vbF90YWtlX3Jlc3VsdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZFN0VFMEEy
Mjk2MDE0MjAwNEY0MTY2IC8qIHBhc19jb25maWcuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMTQ4
NzEzMjY5Qjc1MTgwMDY4ODdBOSAvKiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92
aWV3X3B0ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY5QTFEMjQyNTU5OTYxNzAwQzhEMTFCIC8q
IHBhc19wYWdlX3NoYXJpbmdfbW9kZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY0RjYxNTIyNTlC
QzMzMzAwOEI0QTgyIC8qIHBhc19wdHJfd29ya2xpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
RTdFRTM3MjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHQuaCBp
biBIZWFkZXJzICovLAotCQkJCTBGRTdFRTM4MjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfdXRpbGl0
eV9oZWFwLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkU3RUUwRDIyOTYwMTQyMDA0RjQxNjYgLyog
cGFzX3V0aWxpdHlfaGVhcF9jb25maWcuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRTdFRTA1MjI5
NjAxNDIwMDRGNDE2NiAvKiBwYXNfYm9vdHN0cmFwX2ZyZWVfaGVhcC5oIGluIEhlYWRlcnMgKi8s
CisJCQkJMEY5RTk0NjcyMzQ2NjBENDAwOUZBRkREIC8qIHBhc19keWxkX3N0YXRlLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkwRkY4RDYyNzIyQzA0QTc3MDBFQzcyRkUgLyogcGFzX3NlZ3JlZ2F0ZWRf
cGFnZV9jb25maWdfa2luZC5kZWYgaW4gSGVhZGVycyAqLywKKwkJCQkwRkQyMkNGRjIyQ0MwMUQz
MDBCMjE4NDEgLyogcGFzX3BhZ2Vfc2hhcmluZ19wb29sLmggaW4gSGVhZGVycyAqLywKKwkJCQkw
RjZENTQ3QTIzQzU3M0UxMDBGNDBEQkIgLyogcGFzX2xhcmdlX3V0aWxpdHlfZnJlZV9oZWFwLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkwRjMyOUEyRTIzRjFENjM2MDBBMTMzQzQgLyogcGFzX2Vuc3Vy
ZV9oZWFwX3dpdGhfcGFnZV9jYWNoZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNTlBMzk2MjY2
N0YwMEUwMEEzODY1NyAvKiBwYXNfdHJ5X3Nocmluay5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY0
RjYxQjMyNUEzRDBCQjAwOEI0QTgyIC8qIHBhc19lbnVtZXJhdGVfdW5hY2NvdW50ZWRfcGFnZXNf
YXNfbWV0YS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY2NkQ1NEIyNDg3NjBBRjAwRkM3MzQ3IC8q
IHBhc19sYXJnZV9mcmVlX2hlYXBfZGVjbGFyYXRpb25zLmRlZiBpbiBIZWFkZXJzICovLAorCQkJ
CTBGNkRCODhDMjM1RTU0QTYwMDY5Q0FEQiAvKiBwYXNfaGVhcF9wYWdlX3Byb3ZpZGVyLmggaW4g
SGVhZGVycyAqLywKKwkJCQkwRjU5QTM5MzI2NjdGMDBFMDBBMzg2NTcgLyogaml0X2hlYXAuaCBp
biBIZWFkZXJzICovLAorCQkJCTBGOEE4MDI5MjVFQzU4ODgwMDc5MEI0QSAvKiBwYXNfbGluZV93
b3JkX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYzMjlBMkIyM0YxRDYzNjAwQTEzM0M0
IC8qIHBhc19jcmVhdGVfYmFzaWNfaGVhcF9wYWdlX2NhY2hlc193aXRoX3Jlc2VydmVkX21lbW9y
eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY5QTFDRUQyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19i
aXRmaXRfdmlldy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY5QTFENDgyNTVFMjg0MjAwQzhEMTFC
IC8qIHBhc19jb21wYWN0X2F0b21pY19iaWFzaW5nX2RpcmVjdG9yeV9wdHIuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTBGQTVFNDVBMjQ5MkQ1QkEwMENFOTYyQSAvKiBwYXNfY29tcGFjdF9hdG9taWNf
dGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjlB
MUNGRTI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2Zhc3RfcGF0aF9hbGxvY2F0aW9uX3Jlc3VsdC5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMEZENDhCNDkyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdy
ZWdhdGVkX3ZpZXcuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRTdFRTc3MjI5RjAxMEYwMDRGNDE2
NiAvKiBpc29faGVhcC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY1MDhENTMyNThFQ0ZEMzAwMTUx
RUQ4IC8qIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9maXJzdF9lbGlnaWJsZV9raW5kLmggaW4g
SGVhZGVycyAqLywKKwkJCQkwRkU3RUUwQjIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2RlYWxsb2Nh
dG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjlBMUNGMTI1NTk5NjE3MDBDOEQxMUIgLyogcGFz
X2NvbXBhY3RfYmlhc2luZ19kaXJlY3RvcnlfcHRyLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjk3
RTYyRTIyQTlBODVGMDBDMzU1RjggLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTBGQzRFQzc5MjM1MTcwN0IwMEI3MTBBMyAvKiBwYXNfc2VncmVnYXRl
ZF9wYWdlX2VtcHRpbmVzc19raW5kLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjhBODA2QjI1RUVD
QzFEMDA3OTBCNEEgLyogYm1hbGxvY19oZWFwX2lubmFyZHMuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTBGOUExRDI1MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfcGFnZV9ncmFudWxlX3VzZV9jb3VudC5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMEY5QTFEMUUyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19jb21w
YWN0X3RhZ2dlZF9wYWdlX2dyYW51bGVfdXNlX2NvdW50X3B0ci5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMEZENDhCNDEyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92
aWV3LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjVFNUNFRTIzQkVGMzYwMDBBQTBCNkYgLyogaXNv
X3Rlc3RfaGVhcC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY2ODEyNzIyMkJENEJGNDAwMzZBMDJC
IC8qIHBhc19zZWdtZW50ZWRfdmVjdG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjRGNjE2NDI1
OUJGQjg1MDA4QjRBODIgLyogcGFzX2Jhc2ljX2hlYXBfY29uZmlnX2VudW1lcmF0b3JfZGF0YS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMEZFN0VFMjAyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19sYXJn
ZV9tYXAuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNTcwOTE4MjU2QUIyMTEwMDAzN0JCMyAvKiBw
YXNfYml0Zml0X3BhZ2VfY29uZmlnX2lubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRDQ4
QjJEMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfdXRpbGl0eV9oZWFwX3N1cHBvcnQuaCBpbiBIZWFk
ZXJzICovLAotCQkJCTBGRTdFRTNBMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfdXRpbHMuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTBGRTdFRTM5MjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfdXRpbHNfcHJl
Zml4LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjY4MTI3MDIyQkQ0MTlFMDAzNkEwMkIgLyogcGFz
X3ZlcnNpb25lZF9maWVsZC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY3ODA4ODQyMkZBMjJEMjAw
RjM3NDUxIC8qIHBhc192aXJ0dWFsX3JhbmdlLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjc4MDg4
RTIyRkE1MzQxMDBGMzc0NTEgLyogcGFzX3ZpcnR1YWxfcmFuZ2VfbWluX2hlYXAuaCBpbiBIZWFk
ZXJzICovLAotCQkJCTBGRTdFRTNCMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfemVyb19tb2RlLmgg
aW4gSGVhZGVycyAqLywKLQkJCQkwRjg3MDBBODI1QjBBOEMyMDAwRTFBQkYgLyogdGhpbmd5X2hl
YXAuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGODcwMEFBMjVCMEE4QzMwMDBFMUFCRiAvKiB0aGlu
Z3lfaGVhcF9jb25maWcuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGODcwMEE2MjVCMEE4QzIwMDBF
MUFCRiAvKiB0aGluZ3lfaGVhcF9wcmVmaXguaCBpbiBIZWFkZXJzICovLAorCQkJCTBGOUExRDE5
MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfZmFzdF9tZWdhcGFnZV90YWJsZS5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJMEYzNzNFNTIyNjU5RUE1RTAwMzRCQTk2IC8qIHBhc19kZWJ1Z19oZWFwLmggaW4g
SGVhZGVycyAqLywKKwkJCQkwRjlBMUQxNzI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9w
YWdlX2NvbmZpZ192YXJpYW50LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkQ0OEI0NzIzQTlBQkIz
MDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2JpdF9yZWZlcmVuY2UuaCBpbiBI
ZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Npbmcg
PSAwOwogCQl9OwpAQCAtMjYyMCwzMSArMjU0NiwzMCBAQAogCQkJaXNhID0gUEJYU291cmNlc0J1
aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAo
Ci0JCQkJMEZERUE0NjEyMjhCNjUxQjAwODVFMzQwIC8qIEJpdGZpZWxkVmVjdG9yVGVzdHMuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJMEZDNjgxRUQyMTEyN0ExOTAwM0M2QTEzIC8qIFRlc3RIYXJu
ZXNzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGRjA4RjM2MjJBNTlEQjMwMDM4NjU3NSAvKiBS
ZWRCbGFja1RyZWVUZXN0cy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRkM2ODIzODIxMjlENEVF
MDAzQzZBMTMgLyogQ29hbGlnblRlc3RzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGNTE5M0U3
MjY2QUU1RDQwMDQ4M0EyQyAvKiBKSVRIZWFwVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
MEY4NzAwQzIyNUIwQjI2QTAwMEUxQUJGIC8qIFRoaW5neUFuZFV0aWxpdHlIZWFwQWxsb2NhdGlv
blRlc3RzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGNUI2MDk0MjM1RTkxOTkwMENBRTYyOSAv
KiBJc29IZWFwUmVzZXJ2ZWRNZW1vcnlUZXN0cy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRkVC
NjY2ODIzMUM4N0JDMDA5QzAwMUIgLyogTGFyZ2VTaGFyaW5nUG9vbER1bXAuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMEY1MzE4MTEyMkM5NTRFRDAwM0Y3QjZBIC8qIEJpdHZlY3RvclRlc3RzLmNw
cCBpbiBTb3VyY2VzICovLAotCQkJCTBGMzFBNjY4MjNFOEIzMzYwMDJDMENBMyAvKiBDYXJ0ZXNp
YW5UcmVlVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZDNjgyMzgyMTI5RDRFRTAwM0M2
QTEzIC8qIENvYWxpZ25UZXN0cy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkwRkM2ODIzMTIxMjlD
QjQ2MDAzQzZBMTMgLyogRXh0ZW5kZWRHQ0RUZXN0cy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkw
RkM2ODIxNTIxMjQ4QTc5MDAzQzZBMTMgLyogSGFzaHRhYmxlVGVzdHMuY3BwIGluIFNvdXJjZXMg
Ki8sCi0JCQkJMEZFQTQ1QzUyMzZFMTBBQTAwQjVBMzc1IC8qIElzb0R5bmFtaWNQcmltaXRpdmVI
ZWFwVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEYzMUE2NDIyM0RENEUwMjAwMkMwQ0Ez
IC8qIFNraXBMaXN0VGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZBMTg1NDYyMzZCM0M4
MjAwMzYwOUFEIC8qIElzb0hlYXBDaGFvc1Rlc3RzLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTBG
RjI0OEZEMjMwQ0M0Q0IwMDc3MjAyRSAvKiBJc29IZWFwUGFnZVNoYXJpbmdUZXN0cy5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQkwRkVBNDVDNTIzNkUxMEFBMDBCNUEzNzUgLyogSXNvRHluYW1pY1By
aW1pdGl2ZUhlYXBUZXN0cy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRjVFNDgzQTIzRDY5RjYx
MDA0NkRBNUMgLyogUmFjZVRlc3RzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGODcwMEY1MjVC
MTRDOEIwMDBFMUFCRiAvKiBUU0RUZXN0cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkQ0OEI2
NzIzQjU4OTkxMDAyNkM0NkQgLyogSXNvSGVhcFBhcnRpYWxBbmRCYXNlbGluZVRlc3RzLmNwcCBp
biBTb3VyY2VzICovLAotCQkJCTBGNUI2MDk0MjM1RTkxOTkwMENBRTYyOSAvKiBJc29IZWFwUmVz
ZXJ2ZWRNZW1vcnlUZXN0cy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkwRjUwOEQ1QzI1OEVEQ0E3
MDAxNTFFRDggLyogSXNvSGVhcFRhYmxpbmdUZXN0cy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkw
RjUxOTNFNzI2NkFFNUQ0MDA0ODNBMkMgLyogSklUSGVhcFRlc3RzLmNwcCBpbiBTb3VyY2VzICov
LAotCQkJCTBGQzY0MTkxMjEzNzQ1RkEwMDQwQ0U1RSAvKiBMYXJnZUZyZWVIZWFwVGVzdHMuY3Bw
IGluIFNvdXJjZXMgKi8sCi0JCQkJMEZFQjY2NjgyMzFDODdCQzAwOUMwMDFCIC8qIExhcmdlU2hh
cmluZ1Bvb2xEdW1wLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTBGRUI2NjZBMjMxREE4NkYwMDlD
MDAxQiAvKiBMYXJnZVNoYXJpbmdQb29sVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEYz
MUE2NjgyM0U4QjMzNjAwMkMwQ0EzIC8qIENhcnRlc2lhblRyZWVUZXN0cy5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQkwRkYyNDhGRDIzMENDNENCMDA3NzIwMkUgLyogSXNvSGVhcFBhZ2VTaGFyaW5n
VGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEZERUE0NjEyMjhCNjUxQjAwODVFMzQwIC8q
IEJpdGZpZWxkVmVjdG9yVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZFQTQ1QkYyMzZD
REFFRDAwQjVBMzc1IC8qIExvY2tGcmVlUmVhZFB0clB0ckhhc2h0YWJsZVRlc3RzLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTBGRDIyRDA4MjJDRDhBNzUwMEIyMTg0MSAvKiBNaW5IZWFwVGVzdHMu
Y3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY1RTQ4M0EyM0Q2OUY2MTAwNDZEQTVDIC8qIFJhY2VU
ZXN0cy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkwRkYwOEYzNjIyQTU5REIzMDAzODY1NzUgLyog
UmVkQmxhY2tUcmVlVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMEYzMUE2NDIyM0RENEUw
MjAwMkMwQ0EzIC8qIFNraXBMaXN0VGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZDNjgx
RUQyMTEyN0ExOTAwM0M2QTEzIC8qIFRlc3RIYXJuZXNzLmNwcCBpbiBTb3VyY2VzICovLAotCQkJ
CTBGODcwMEMyMjVCMEIyNkEwMDBFMUFCRiAvKiBUaGluZ3lBbmRVdGlsaXR5SGVhcEFsbG9jYXRp
b25UZXN0cy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkwRjg3MDBGNTI1QjE0QzhCMDAwRTFBQkYg
LyogVFNEVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEZFQjY2NkEyMzFEQTg2RjAwOUMw
MDFCIC8qIExhcmdlU2hhcmluZ1Bvb2xUZXN0cy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRkM2
ODIxNTIxMjQ4QTc5MDAzQzZBMTMgLyogSGFzaHRhYmxlVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMEY1MzE4MTMyMkM5NjA5RDAwM0Y3QjZBIC8qIFV0aWxzVGVzdHMuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJMEZDNjQxOTEyMTM3NDVGQTAwNDBDRTVFIC8qIExhcmdlRnJlZUhlYXBUZXN0
cy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRkM2ODIzMTIxMjlDQjQ2MDAzQzZBMTMgLyogRXh0
ZW5kZWRHQ0RUZXN0cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVw
bG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTI2NTIsMTUxICsyNTc3LDE0MiBA
QAogCQkJaXNhID0gUEJYU291cmNlc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlvbk1hc2sgPSAy
MTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCi0JCQkJMEY4QTgwNjYyNUVFQ0MxRDAwNzkwQjRBIC8q
IGJtYWxsb2NfaGVhcC5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY4QTgwNjgyNUVFQ0MxRDAwNzkw
QjRBIC8qIGJtYWxsb2NfaGVhcF9jb25maWcuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGOEE4MTA0
MjVGNkE3OTUwMDc5MEI0QSAvKiBob3RiaXRfaGVhcC5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY4
QTgxMDEyNUY2QTc5NTAwNzkwQjRBIC8qIGhvdGJpdF9oZWFwX2NvbmZpZy5jIGluIFNvdXJjZXMg
Ki8sCi0JCQkJMEZFN0VFNzYyMjlGMDEwRjAwNEY0MTY2IC8qIGlzb19oZWFwLmMgaW4gU291cmNl
cyAqLywKLQkJCQkwRkU3RUU1NzIyOTc0MzM1MDA0RjQxNjYgLyogaXNvX2hlYXBfY29uZmlnLmMg
aW4gU291cmNlcyAqLywKLQkJCQkwRjVFNUNGMDIzQkVGNTUzMDBBQTBCNkYgLyogaXNvX3Rlc3Rf
aGVhcC5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY1RTVDRUMyM0JFRjM2MDAwQUEwQjZGIC8qIGlz
b190ZXN0X2hlYXBfY29uZmlnLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjU5QTM5RTI2Njg0NzBF
MDBBMzg2NTcgLyogaml0X2hlYXAuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGNTlBMzlCMjY2ODQ0
QTMwMEEzODY1NyAvKiBqaXRfaGVhcF9jb25maWcuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGRTdF
REQ1MjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlLmMgaW4gU291cmNl
cyAqLywKKwkJCQkwRkM0RUMzNzIzNEE5MUUzMDBCNzEwQTMgLyogcGFzX3N0cmluZ19zdHJlYW0u
YyBpbiBTb3VyY2VzICovLAorCQkJCTBGNEY2MEZBMjU5NzlCQzgwMDhCNEE4MiAvKiBwYXNfcm9v
dC5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZCRDY3REEyNUJEMzYzQTAwQTQ5MEQyIC8qIG1pbmFs
aWduMzJfaGVhcC5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZCRDY3REIyNUJEMzYzQTAwQTQ5MEQy
IC8qIG1pbmFsaWduMzJfaGVhcF9jb25maWcuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGQkQ2N0Yz
MjVCRTA3ODcwMEE0OTBEMiAvKiBwYWdlc2l6ZTY0a19oZWFwLmMgaW4gU291cmNlcyAqLywKLQkJ
CQkwRkJENjdGMDI1QkUwNzg3MDBBNDkwRDIgLyogcGFnZXNpemU2NGtfaGVhcF9jb25maWcuYyBp
biBTb3VyY2VzICovLAotCQkJCTBGRTdFREI0MjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfYWxpZ25t
ZW50LmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjlBMUQwQTI1NTk5NjE3MDBDOEQxMUIgLyogcGFz
X2FsbF9iaWFzaW5nX2RpcmVjdG9yaWVzLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRkU3RURCNTIy
OTYwMTQyMDA0RjQxNjYgLyogcGFzX2FsbF9oZWFwcy5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEYx
QUVDRTgyNjU4MTk2MTAwMEM1MjE4IC8qIHBhc19hbGxfbWFnYXppbmVzLmMgaW4gU291cmNlcyAq
LywKLQkJCQkwRkQ0OEI0NjIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX2FsbF9zaGFyZWRfcGFnZV9k
aXJlY3Rvcmllcy5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY0N0MzMUUyMzM5NkUwQjAwMkExQ0Y3
IC8qIHBhc19hbGxvY2F0aW9uX2NhbGxiYWNrcy5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY5QTFD
RUYyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19hbGxvY2F0aW9uX3Jlc3VsdC5jIGluIFNvdXJjZXMg
Ki8sCi0JCQkJMEZENDhCNjMyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19iYXNlbGluZV9hbGxvY2F0
b3IuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGRDQ4QjNGMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNf
YmFzZWxpbmVfYWxsb2NhdG9yX3RhYmxlLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjU5QTM5QzI2
Njg0NEEzMDBBMzg2NTcgLyogcGFzX2Jhc2ljX2hlYXBfY29uZmlnX2VudW1lcmF0b3JfZGF0YS5j
IGluIFNvdXJjZXMgKi8sCi0JCQkJMEY5QTFEMTMyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaWFz
aW5nX2RpcmVjdG9yeS5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY5QTFEMTAyNTU5OTYxNzAwQzhE
MTFCIC8qIHBhc19iaXRmaXRfYWxsb2NhdG9yLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjlBMUNG
QzI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeS5jIGluIFNv
dXJjZXMgKi8sCi0JCQkJMEY5QTFEMEQyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfZGly
ZWN0b3J5LmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjlBMUQwOTI1NTk5NjE3MDBDOEQxMUIgLyog
cGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5LmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjlBMUQy
QTI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzcy5jIGluIFNv
dXJjZXMgKi8sCi0JCQkJMEY5QTFEMUMyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfaGVh
cC5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY5QTFEMTEyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19i
aXRmaXRfcGFnZS5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY5QTFEMTUyNTU5OTYxNzAwQzhEMTFC
IC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWdfa2luZC5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY5
QTFEMkIyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfc2l6ZV9jbGFzcy5jIGluIFNvdXJj
ZXMgKi8sCi0JCQkJMEY5QTFDRUUyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfdmlldy5j
IGluIFNvdXJjZXMgKi8sCi0JCQkJMEZFN0VEQjYyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19ib290
c3RyYXBfZnJlZV9oZWFwLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjVCNjA4MzIzNUU1NzIwMDBD
QUU2MjkgLyogcGFzX2Jvb3RzdHJhcF9oZWFwX3BhZ2VfcHJvdmlkZXIuYyBpbiBTb3VyY2VzICov
LAotCQkJCTBGRTdFREI5MjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfY29hbGlnbi5jIGluIFNvdXJj
ZXMgKi8sCi0JCQkJMEY5QTFDRjAyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19jb21taXRfc3Bhbi5j
IGluIFNvdXJjZXMgKi8sCi0JCQkJMEY2RDU2NEEyM0NBQTFCQTAwRjQwREJCIC8qIHBhc19jb21w
YWN0X2Jvb3RzdHJhcF9mcmVlX2hlYXAuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGNkQ1NjZFMjND
QkQxOUQwMEY0MERCQiAvKiBwYXNfY29tcGFjdF9oZWFwX3Jlc2VydmF0aW9uLmMgaW4gU291cmNl
cyAqLywKLQkJCQkwRjY2RDU0NzI0ODc2MEE4MDBGQzczNDcgLyogcGFzX2NvbXBhY3RfbGFyZ2Vf
dXRpbGl0eV9mcmVlX2hlYXAuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGQzRFQzNFMjM0QTkxRTMw
MEI3MTBBMyAvKiBwYXNfY29tcHV0ZV9zdW1tYXJ5X29iamVjdF9jYWxsYmFja3MuYyBpbiBTb3Vy
Y2VzICovLAotCQkJCTBGMzI5QTJDMjNGMUQ2MzYwMEExMzNDNCAvKiBwYXNfY3JlYXRlX2Jhc2lj
X2hlYXBfcGFnZV9jYWNoZXNfd2l0aF9yZXNlcnZlZF9tZW1vcnkuYyBpbiBTb3VyY2VzICovLAot
CQkJCTBGRTdFRTY3MjI5RTE0RkEwMDRGNDE2NiAvKiBwYXNfZGVhbGxvY2F0ZS5jIGluIFNvdXJj
ZXMgKi8sCi0JCQkJMEZCQzYyQzIyNjVGMTJBMzAwNUE1NzIwIC8qIHBhc19kZWJ1Z19zcGVjdHJ1
bS5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEZFN0VERDEyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19z
ZWdyZWdhdGVkX3BhZ2UuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGNzgwODlBMjJGQTZGMDgwMEYz
NzQ1MSAvKiBwYXNfZGVmZXJyZWRfZGVjb21taXRfbG9nLmMgaW4gU291cmNlcyAqLywKLQkJCQkw
RjVCODNCRDI0OTE4ODhBMDBGNDEwNTIgLyogcGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXAu
YyBpbiBTb3VyY2VzICovLAotCQkJCTBGOUU5NDY2MjM0NjYwRDQwMDlGQUZERCAvKiBwYXNfZHls
ZF9zdGF0ZS5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZFQTQ1QzMyMzZDRTg5RDAwQjVBMzc1IC8q
IHBhc19keW5hbWljX3ByaW1pdGl2ZV9oZWFwX21hcC5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEYz
MjlBMzAyM0YxRDYzNjAwQTEzM0M0IC8qIHBhc19lbnN1cmVfaGVhcF9mb3JjZWRfaW50b19yZXNl
cnZlZF9tZW1vcnkuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGMzI5QTJGMjNGMUQ2MzYwMEExMzND
NCAvKiBwYXNfZW5zdXJlX2hlYXBfd2l0aF9wYWdlX2NhY2hlcy5jIGluIFNvdXJjZXMgKi8sCi0J
CQkJMEY0RjYxQjYyNUEzRDBCQjAwOEI0QTgyIC8qIHBhc19lbnVtZXJhYmxlX3BhZ2VfbWFsbG9j
LmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjRGNjFCNDI1QTNEMEJCMDA4QjRBODIgLyogcGFzX2Vu
dW1lcmFibGVfcmFuZ2VfbGlzdC5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY0RjYxNzcyNTlEMTA2
NTAwOEI0QTgyIC8qIHBhc19lbnVtZXJhdGVfYml0Zml0X2hlYXBzLmMgaW4gU291cmNlcyAqLywK
LQkJCQkwRjRGNjFCMjI1QTNEMEJCMDA4QjRBODIgLyogcGFzX2VudW1lcmF0ZV9pbml0aWFsbHlf
dW5hY2NvdW50ZWRfcGFnZXMuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGNEY2MTEwMjU5N0Y4MUUw
MDhCNEE4MiAvKiBwYXNfZW51bWVyYXRlX2xhcmdlX2hlYXBzLmMgaW4gU291cmNlcyAqLywKLQkJ
CQkwRjRGNjEyRTI1OTkwODc3MDA4QjRBODIgLyogcGFzX2VudW1lcmF0ZV9zZWdyZWdhdGVkX2hl
YXBzLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjRGNjFBRjI1QTNEMEJCMDA4QjRBODIgLyogcGFz
X2VudW1lcmF0ZV91bmFjY291bnRlZF9wYWdlc19hc19tZXRhLmMgaW4gU291cmNlcyAqLywKLQkJ
CQkwRjRGNjEwNjI1OTdBRjg3MDA4QjRBODIgLyogcGFzX2VudW1lcmF0b3IuYyBpbiBTb3VyY2Vz
ICovLAogCQkJCTBGNEY2MTFCMjU5ODM4QjEwMDhCNEE4MiAvKiBwYXNfZW51bWVyYXRvcl9yZWdp
b24uYyBpbiBTb3VyY2VzICovLAotCQkJCTBGMTkzMjU2MjJFRDA0QTYwMEZCQTcxMyAvKiBwYXNf
ZXBvY2guYyBpbiBTb3VyY2VzICovLAotCQkJCTBGRDQ4QjM0MjNBOUFCQjMwMDI2QzQ2RCAvKiBw
YXNfZXhjbHVzaXZlX3ZpZXdfdGVtcGxhdGVfbWVtb190YWJsZS5jIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMEZFN0VEQkEyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19leHRlbmRlZF9nY2QuYyBpbiBTb3Vy
Y2VzICovLAotCQkJCTBGRjA4RjQzMjJBNjI3QzEwMDM4NjU3NSAvKiBwYXNfZmFzdF9sYXJnZV9m
cmVlX2hlYXAuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGOUExQ0YyMjU1OTk2MTcwMEM4RDExQiAv
KiBwYXNfcGFnZV9oZWFkZXJfdGFibGUuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGNDdDMzFFMjMz
OTZFMEIwMDJBMUNGNyAvKiBwYXNfYWxsb2NhdGlvbl9jYWxsYmFja3MuYyBpbiBTb3VyY2VzICov
LAorCQkJCTBGRUE0NUJDMjM2Q0Q1QUMwMEI1QTM3NSAvKiBwYXNfbG9ja19mcmVlX3JlYWRfcHRy
X3B0cl9oYXNodGFibGUuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGMTQ4NzE0MjY5Qjc1MTgwMDY4
ODdBOSAvKiBwYXNfaGVhcF9ydW50aW1lX2NvbmZpZy5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEY0
RjYxNzcyNTlEMTA2NTAwOEI0QTgyIC8qIHBhc19lbnVtZXJhdGVfYml0Zml0X2hlYXBzLmMgaW4g
U291cmNlcyAqLywKKwkJCQkwRkQ0OEIzRjIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX2Jhc2VsaW5l
X2FsbG9jYXRvcl90YWJsZS5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY5QTFDRUMyNTU5OTYxNzAw
QzhEMTFCIC8qIHBhc19mYXN0X21lZ2FwYWdlX2NhY2hlLmMgaW4gU291cmNlcyAqLywKLQkJCQkw
RjlBMUQ0OTI1NUUyODQyMDBDOEQxMUIgLyogcGFzX2Zhc3RfbWVnYXBhZ2VfdGFibGUuYyBpbiBT
b3VyY2VzICovLAotCQkJCTBGQzRFQzM4MjM0QTkxRTMwMEI3MTBBMyAvKiBwYXNfZmRfc3RyZWFt
LmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjlBMUQwMDI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2Zy
ZWVfZ3JhbnVsZXMuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGRTdFREMwMjI5NjAxNDIwMDRGNDE2
NiAvKiBwYXNfaGVhcC5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEYxQkZENDQyNjY0NTdGMTAwQ0VD
MjhEIC8qIHBhc19oZWFwX2NvbmZpZy5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY2RDU2NjYyM0NC
RDE5RDAwRjQwREJCIC8qIHBhc19oZWFwX2NvbmZpZ19raW5kLmMgaW4gU291cmNlcyAqLywKLQkJ
CQkwRkU3RURCRDIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2hlYXBfY29uZmlnX3V0aWxzLmMgaW4g
U291cmNlcyAqLywKLQkJCQkwRkMyRkQzOTIzNzYxNTEzMDA1M0RENDEgLyogcGFzX2hlYXBfZm9y
X2NvbmZpZy5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZFN0VEQkUyMjk2MDE0MjAwNEY0MTY2IC8q
IHBhc19oZWFwX2xvY2suYyBpbiBTb3VyY2VzICovLAotCQkJCTBGRTdFREJGMjI5NjAxNDIwMDRG
NDE2NiAvKiBwYXNfaGVhcF9yZWYuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGQzRFQzNBMjM0QTkx
RTMwMEI3MTBBMyAvKiBwYXNfaGVhcF9zdW1tYXJ5LmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjZE
NTQ3QzIzQzU3M0UxMDBGNDBEQkIgLyogcGFzX2hlYXBfdGFibGUuYyBpbiBTb3VyY2VzICovLAor
CQkJCTBGMTQ4NzIwMjY5RjVGQ0EwMDY4ODdBOSAvKiBwYXNfbG9jYWxfdmlld19jYWNoZS5jIGlu
IFNvdXJjZXMgKi8sCisJCQkJMEZFN0VFNzYyMjlGMDEwRjAwNEY0MTY2IC8qIGlzb19oZWFwLmMg
aW4gU291cmNlcyAqLywKKwkJCQkwRjlBMUQxQzI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZp
dF9oZWFwLmMgaW4gU291cmNlcyAqLywKIAkJCQkwRkQ0OEIzOTIzQTlBQkIzMDAyNkM0NkQgLyog
cGFzX2ltbW9ydGFsX2hlYXAuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGNzgwODhGMjJGQTUzNDEw
MEYzNzQ1MSAvKiBwYXNfbGFyZ2VfZnJlZV9oZWFwX2RlZmVycmVkX2NvbW1pdF9sb2cuYyBpbiBT
b3VyY2VzICovLAotCQkJCTBGNjZENTRBMjQ4NzYwQTgwMEZDNzM0NyAvKiBwYXNfbGFyZ2VfZnJl
ZV9oZWFwX2hlbHBlcnMuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGRTdFREM2MjI5NjAxNDIwMDRG
NDE2NiAvKiBwYXNfbGFyZ2VfaGVhcC5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEZCRDY3RjAyNUJF
MDc4NzAwQTQ5MEQyIC8qIHBhZ2VzaXplNjRrX2hlYXBfY29uZmlnLmMgaW4gU291cmNlcyAqLywK
KwkJCQkwRkQ0OEI1MjIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3Zp
ZXcuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGRDQ4QjM2MjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNf
c2VncmVnYXRlZF92aWV3LmMgaW4gU291cmNlcyAqLywKKwkJCQkwRkQyMkQwMDIyQ0MwMUQzMDBC
MjE4NDEgLyogcGFzX3BhZ2Vfc2hhcmluZ19wb29sLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjhB
ODEwMTI1RjZBNzk1MDA3OTBCNEEgLyogaG90Yml0X2hlYXBfY29uZmlnLmMgaW4gU291cmNlcyAq
LywKKwkJCQkwRjRGNjE1MTI1OUJDMzMzMDA4QjRBODIgLyogcGFzX3B0cl93b3JrbGlzdC5jIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMEYxOTMyNjgyMkYzQjNGMzAwRkJBNzEzIC8qIHBhc19sYXJnZV9o
ZWFwX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19jYWNoZS5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZF
N0VEQzcyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19sYXJnZV9tYXAuYyBpbiBTb3VyY2VzICovLAot
CQkJCTBGQ0ZBNDlCMjM4MzUyRUMwMENDRDcyNiAvKiBwYXNfbGFyZ2Vfc2hhcmluZ19wb29sLmMg
aW4gU291cmNlcyAqLywKLQkJCQkwRjZENTQ3RDIzQzU3M0UxMDBGNDBEQkIgLyogcGFzX2xhcmdl
X3V0aWxpdHlfZnJlZV9oZWFwLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRkRCQjA3NDIyQjg3NUE2
MDA2QkE1RkMgLyogcGFzX2xvY2FsX2FsbG9jYXRvci5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEYw
NEMyMUYyNDYwREI2RjAwMUQzMUYwIC8qIHBhc19sb2NrLmMgaW4gU291cmNlcyAqLywKLQkJCQkw
RkVBNDVCQzIzNkNENUFDMDBCNUEzNzUgLyogcGFzX2xvY2tfZnJlZV9yZWFkX3B0cl9wdHJfaGFz
aHRhYmxlLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjlFOTQ1ODIzNDUyMjYyMDA5RkFGREQgLyog
cGFzX2xvZy5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEYwNEMyMjQyNDYwREI2RjAwMUQzMUYwIC8q
IHBhc19tYWdhemluZS5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEZFN0VEQjQyMjk2MDE0MjAwNEY0
MTY2IC8qIHBhc19hbGlnbm1lbnQuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGRDQ4QjQ4MjNBOUFC
QjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9zaGFyZWRfaGFuZGxlLmMgaW4gU291cmNlcyAq
LywKKwkJCQkwRkYyNDhGOTIyRkM5RURCMDA3NzIwMkUgLyogcGFzX3BoeXNpY2FsX21lbW9yeV90
cmFuc2FjdGlvbi5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEZDNEVDM0EyMzRBOTFFMzAwQjcxMEEz
IC8qIHBhc19oZWFwX3N1bW1hcnkuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGRTdFREJEMjI5NjAx
NDIwMDRGNDE2NiAvKiBwYXNfaGVhcF9jb25maWdfdXRpbHMuYyBpbiBTb3VyY2VzICovLAorCQkJ
CTBGRTdFREJGMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfaGVhcF9yZWYuYyBpbiBTb3VyY2VzICov
LAorCQkJCTBGNUU1Q0YwMjNCRUY1NTMwMEFBMEI2RiAvKiBpc29fdGVzdF9oZWFwLmMgaW4gU291
cmNlcyAqLywKKwkJCQkwRkQ0OEI0QzIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRf
cGFydGlhbF92aWV3LmMgaW4gU291cmNlcyAqLywKKwkJCQkwRkU3RUREODIyOTYwMTQyMDA0RjQx
NjYgLyogcGFzX3V0aWxzLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjVCODNCRDI0OTE4ODhBMDBG
NDEwNTIgLyogcGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXAuYyBpbiBTb3VyY2VzICovLAor
CQkJCTBGQzJGRDM5MjM3NjE1MTMwMDUzREQ0MSAvKiBwYXNfaGVhcF9mb3JfY29uZmlnLmMgaW4g
U291cmNlcyAqLywKKwkJCQkwRjZENTY2NjIzQ0JEMTlEMDBGNDBEQkIgLyogcGFzX2hlYXBfY29u
ZmlnX2tpbmQuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGRTdFREMwMjI5NjAxNDIwMDRGNDE2NiAv
KiBwYXNfaGVhcC5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEY1OUEzOUIyNjY4NDRBMzAwQTM4NjU3
IC8qIGppdF9oZWFwX2NvbmZpZy5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEYzMUE2M0QyM0RDRjgw
NDAwMkMwQ0EzIC8qIHBhc19za2lwX2xpc3QuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGMDM3QUYz
MjVBRUE5MUEwMDc5QjU4MiAvKiBwYXNfbWVkaXVtX21lZ2FwYWdlX2NhY2hlLmMgaW4gU291cmNl
cyAqLywKKwkJCQkwRkU3RURDNzIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2xhcmdlX21hcC5jIGlu
IFNvdXJjZXMgKi8sCisJCQkJMEZFN0VEQkUyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19oZWFwX2xv
Y2suYyBpbiBTb3VyY2VzICovLAorCQkJCTBGMzI5QTJDMjNGMUQ2MzYwMEExMzNDNCAvKiBwYXNf
Y3JlYXRlX2Jhc2ljX2hlYXBfcGFnZV9jYWNoZXNfd2l0aF9yZXNlcnZlZF9tZW1vcnkuYyBpbiBT
b3VyY2VzICovLAorCQkJCTBGNkQ1NjZFMjNDQkQxOUQwMEY0MERCQiAvKiBwYXNfY29tcGFjdF9o
ZWFwX3Jlc2VydmF0aW9uLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRkE1RTQ1OTI0OTJENUJBMDBD
RTk2MkEgLyogcGFzX3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZS5jIGluIFNvdXJjZXMg
Ki8sCisJCQkJMEY2RDU2NDYyM0NBQTFCQTAwRjQwREJCIC8qIHBhc19zaW1wbGVfZnJlZV9oZWFw
X2hlbHBlcnMuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGOEE4MTA0MjVGNkE3OTUwMDc5MEI0QSAv
KiBob3RiaXRfaGVhcC5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEY5QTFDRkQyNTU5OTYxNzAwQzhE
MTFCIC8qIHBhc192ZXJzaW9uZWRfZmllbGQuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGNEY2MTA2
MjU5N0FGODcwMDhCNEE4MiAvKiBwYXNfZW51bWVyYXRvci5jIGluIFNvdXJjZXMgKi8sCisJCQkJ
MEYxOTMyNkQyMkY3M0U4NTAwRkJBNzEzIC8qIHBhc19zY2F2ZW5nZXIuYyBpbiBTb3VyY2VzICov
LAorCQkJCTBGOUU5NDY2MjM0NjYwRDQwMDlGQUZERCAvKiBwYXNfZHlsZF9zdGF0ZS5jIGluIFNv
dXJjZXMgKi8sCisJCQkJMEY2NkQ1NDcyNDg3NjBBODAwRkM3MzQ3IC8qIHBhc19jb21wYWN0X2xh
cmdlX3V0aWxpdHlfZnJlZV9oZWFwLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjVFNDgzODIzRDY5
NjBGMDA0NkRBNUMgLyogcGFzX3JhY2VfdGVzdF9ob29rcy5jIGluIFNvdXJjZXMgKi8sCisJCQkJ
MEZFN0VERDMyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19zdHJlYW0uYyBpbiBTb3VyY2VzICovLAor
CQkJCTBGODcwMEE5MjVCMEE4QzMwMDBFMUFCRiAvKiB0aGluZ3lfaGVhcF9jb25maWcuYyBpbiBT
b3VyY2VzICovLAorCQkJCTBGNEY2MUFGMjVBM0QwQkIwMDhCNEE4MiAvKiBwYXNfZW51bWVyYXRl
X3VuYWNjb3VudGVkX3BhZ2VzX2FzX21ldGEuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGRTdFRTU3
MjI5NzQzMzUwMDRGNDE2NiAvKiBpc29faGVhcF9jb25maWcuYyBpbiBTb3VyY2VzICovLAorCQkJ
CTBGRDQ4QjUzMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmll
dy5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZFN0VEQzgyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19t
ZWdhcGFnZV9jYWNoZS5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEZDNEVDM0IyMzRBOTFFMzAwQjcx
MEEzIC8qIHBhc19zdGF0dXNfcmVwb3J0ZXIuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGNEY2MTEw
MjU5N0Y4MUUwMDhCNEE4MiAvKiBwYXNfZW51bWVyYXRlX2xhcmdlX2hlYXBzLmMgaW4gU291cmNl
cyAqLywKKwkJCQkwRjU5QTM5QzI2Njg0NEEzMDBBMzg2NTcgLyogcGFzX2Jhc2ljX2hlYXBfY29u
ZmlnX2VudW1lcmF0b3JfZGF0YS5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEZENDhCNjMyM0E5QUJC
MzAwMjZDNDZEIC8qIHBhc19iYXNlbGluZV9hbGxvY2F0b3IuYyBpbiBTb3VyY2VzICovLAorCQkJ
CTBGMDRDMjFGMjQ2MERCNkYwMDFEMzFGMCAvKiBwYXNfbG9jay5jIGluIFNvdXJjZXMgKi8sCisJ
CQkJMEY0NUQ1QUEyNkFCNzMxNDAwQzM1RDkzIC8qIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVu
Z2VyX2RhdGEuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGRTdFREM2MjI5NjAxNDIwMDRGNDE2NiAv
KiBwYXNfbGFyZ2VfaGVhcC5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEZGMDhGNDMyMkE2MjdDMTAw
Mzg2NTc1IC8qIHBhc19mYXN0X2xhcmdlX2ZyZWVfaGVhcC5jIGluIFNvdXJjZXMgKi8sCisJCQkJ
MEY1QjYwODMyMzVFNTcyMDAwQ0FFNjI5IC8qIHBhc19ib290c3RyYXBfaGVhcF9wYWdlX3Byb3Zp
ZGVyLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRkQ0OEIyRTIzQTlBQkIzMDAyNkM0NkQgLyogcGFz
X3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5LmMgaW4gU291cmNlcyAqLywKKwkJCQkw
Rjg3MDBBNzI1QjBBOEMyMDAwRTFBQkYgLyogdGhpbmd5X2hlYXAuYyBpbiBTb3VyY2VzICovLAog
CQkJCTBGRDQ4QjRCMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfbW9ub3RvbmljX3RpbWUuYyBpbiBT
b3VyY2VzICovLAotCQkJCTBGOUExRDA2MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfcGFnZV9iYXNl
LmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjlBMUNGMjI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX3Bh
Z2VfaGVhZGVyX3RhYmxlLmMgaW4gU291cmNlcyAqLywKIAkJCQkwRkU3RURDQjIyOTYwMTQyMDA0
RjQxNjYgLyogcGFzX3BhZ2VfbWFsbG9jLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjE5MzI2MjIy
RjExOTNEMDBGQkE3MTMgLyogcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudC5jIGluIFNvdXJj
ZXMgKi8sCi0JCQkJMEZEMjJEMDAyMkNDMDFEMzAwQjIxODQxIC8qIHBhc19wYWdlX3NoYXJpbmdf
cG9vbC5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY0RjYxQ0IyNUE0Q0QzQjAwOEI0QTgyIC8qIHBh
c19wYXlsb2FkX3Jlc2VydmF0aW9uX3BhZ2VfbGlzdC5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZG
MjQ4RjkyMkZDOUVEQjAwNzcyMDJFIC8qIHBhc19waHlzaWNhbF9tZW1vcnlfdHJhbnNhY3Rpb24u
YyBpbiBTb3VyY2VzICovLAorCQkJCTBGNzgwODhGMjJGQTUzNDEwMEYzNzQ1MSAvKiBwYXNfbGFy
Z2VfZnJlZV9oZWFwX2RlZmVycmVkX2NvbW1pdF9sb2cuYyBpbiBTb3VyY2VzICovLAorCQkJCTBG
OUExQ0YwMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfY29tbWl0X3NwYW4uYyBpbiBTb3VyY2VzICov
LAorCQkJCTBGNjZENTRBMjQ4NzYwQTgwMEZDNzM0NyAvKiBwYXNfbGFyZ2VfZnJlZV9oZWFwX2hl
bHBlcnMuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGMThFNjNGMjYyOEJGQjcwMEY2OTAzRCAvKiBw
YXNfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5X2J5X3NpemUuYyBpbiBTb3VyY2VzICovLAorCQkJCTBG
OUExRDJCMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X3NpemVfY2xhc3MuYyBpbiBTb3Vy
Y2VzICovLAorCQkJCTBGRTdFRTY3MjI5RTE0RkEwMDRGNDE2NiAvKiBwYXNfZGVhbGxvY2F0ZS5j
IGluIFNvdXJjZXMgKi8sCisJCQkJMEZENDhCMzQyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19leGNs
dXNpdmVfdmlld190ZW1wbGF0ZV9tZW1vX3RhYmxlLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjU5
QTM5RTI2Njg0NzBFMDBBMzg2NTcgLyogaml0X2hlYXAuYyBpbiBTb3VyY2VzICovLAorCQkJCTBG
QzRFQzM4MjM0QTkxRTMwMEI3MTBBMyAvKiBwYXNfZmRfc3RyZWFtLmMgaW4gU291cmNlcyAqLywK
KwkJCQkwRjZENTQ3RDIzQzU3M0UxMDBGNDBEQkIgLyogcGFzX2xhcmdlX3V0aWxpdHlfZnJlZV9o
ZWFwLmMgaW4gU291cmNlcyAqLywKIAkJCQkwRkU3RURDQzIyOTYwMTQyMDA0RjQxNjYgLyogcGFz
X3ByaW1pdGl2ZV9oZWFwX3JlZi5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY0RjYxNTEyNTlCQzMz
MzAwOEI0QTgyIC8qIHBhc19wdHJfd29ya2xpc3QuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGNUU0
ODM4MjNENjk2MEYwMDQ2REE1QyAvKiBwYXNfcmFjZV90ZXN0X2hvb2tzLmMgaW4gU291cmNlcyAq
LywKLQkJCQkwRkQ0OEIzMDIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3JhbmRvbS5jIGluIFNvdXJj
ZXMgKi8sCisJCQkJMEZFN0VEQkIyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc191dGlsaXR5X2hlYXBf
Y29uZmlnLmMgaW4gU291cmNlcyAqLywKIAkJCQkwRkYwOEYzNDIyQTU4RjEyMDAzODY1NzUgLyog
cGFzX3JlZF9ibGFja190cmVlLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRkE1RTQ1OTI0OTJENUJB
MDBDRTk2MkEgLyogcGFzX3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZS5jIGluIFNvdXJj
ZXMgKi8sCi0JCQkJMEY1QjYwOTEyMzVFODhFRjAwQ0FFNjI5IC8qIHBhc19yZXNlcnZlZF9tZW1v
cnlfcHJvdmlkZXIuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGNEY2MEZBMjU5NzlCQzgwMDhCNEE4
MiAvKiBwYXNfcm9vdC5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEYxOTMyNkQyMkY3M0U4NTAwRkJB
NzEzIC8qIHBhc19zY2F2ZW5nZXIuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGMDRDMjIwMjQ2MERC
NkYwMDFEMzFGMCAvKiBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeS5jIGluIFNvdXJj
ZXMgKi8sCi0JCQkJMEYwNEMyMUMyNDYwREI2RjAwMUQzMUYwIC8qIHBhc19zZWdyZWdhdGVkX2Jp
YXNpbmdfdmlldy5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEY5RTk0NTgyMzQ1MjI2MjAwOUZBRkRE
IC8qIHBhc19sb2cuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGREJCMDc0MjJCODc1QTYwMDZCQTVG
QyAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjdGNTFCRTIz
MTU5RUMwMDA3NTUyQUUgLyogcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9ub2RlLmMgaW4gU291cmNl
cyAqLywKIAkJCQkwRkQ0OEI1OTIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfZGly
ZWN0b3J5LmMgaW4gU291cmNlcyAqLywKLQkJCQkwRkQ0OEI1MzIzQTlBQkIzMDAyNkM0NkQgLyog
cGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGMDRD
MjE1MjQ2MERCNkYwMDFEMzFGMCAvKiBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnkuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGRTdFRENGMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNf
c2VncmVnYXRlZF9oZWFwLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRkU3RUREMTIyOTYwMTQyMDA0
RjQxNjYgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZS5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY5N0U2
MzAyMkE5QUFDMTAwQzM1NUY4IC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnLmMgaW4gU291
cmNlcyAqLywKLQkJCQkwRkQ0OEI1RTIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRf
cGFnZV9jb25maWdfa2luZC5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZENDhCNEMyM0E5QUJCMzAw
MjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlldy5jIGluIFNvdXJjZXMgKi8sCi0J
CQkJMEZENDhCNDgyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9oYW5k
bGUuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGRDQ4QjJFMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNf
c2VncmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJlY3RvcnkuYyBpbiBTb3VyY2VzICovLAotCQkJCTBG
RDQ4QjUyMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9zaGFyZWRfdmlldy5jIGlu
IFNvdXJjZXMgKi8sCisJCQkJMEZFN0VEQjUyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19hbGxfaGVh
cHMuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGOUExQ0VFMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNf
Yml0Zml0X3ZpZXcuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGRDQ4QjVDMjNBOUFCQjMwMDI2QzQ2
RCAvKiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeS5jIGluIFNvdXJjZXMgKi8sCi0JCQkJ
MEZENDhCMzYyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX3ZpZXcuYyBpbiBTb3Vy
Y2VzICovLAotCQkJCTBGMThFNjNGMjYyOEJGQjcwMEY2OTAzRCAvKiBwYXNfc2hhcmVkX3BhZ2Vf
ZGlyZWN0b3J5X2J5X3NpemUuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGNkQ1NjQ2MjNDQUExQkEw
MEY0MERCQiAvKiBwYXNfc2ltcGxlX2ZyZWVfaGVhcF9oZWxwZXJzLmMgaW4gU291cmNlcyAqLywK
LQkJCQkwRkYwOEYzRTIyQTVEQzY5MDAzODY1NzUgLyogcGFzX3NpbXBsZV9sYXJnZV9mcmVlX2hl
YXAuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGMzFBNjNEMjNEQ0Y4MDQwMDJDMENBMyAvKiBwYXNf
c2tpcF9saXN0LmMgaW4gU291cmNlcyAqLywKLQkJCQkwRkM0RUMzQjIzNEE5MUUzMDBCNzEwQTMg
LyogcGFzX3N0YXR1c19yZXBvcnRlci5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZFN0VERDMyMjk2
MDE0MjAwNEY0MTY2IC8qIHBhc19zdHJlYW0uYyBpbiBTb3VyY2VzICovLAotCQkJCTBGQzRFQzM3
MjM0QTkxRTMwMEI3MTBBMyAvKiBwYXNfc3RyaW5nX3N0cmVhbS5jIGluIFNvdXJjZXMgKi8sCi0J
CQkJMEY5QTFEMjIyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19zdWJwYWdlX21hcC5jIGluIFNvdXJj
ZXMgKi8sCi0JCQkJMEY5QTFDRTgyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19zdWJwYWdlX21hcF9l
bnRyeS5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZFN0VERDUyMjk2MDE0MjAwNEY0MTY2IC8qIHBh
c190aHJlYWRfbG9jYWxfY2FjaGUuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGNkQ1NjRBMjNDQUEx
QkEwMEY0MERCQiAvKiBwYXNfY29tcGFjdF9ib290c3RyYXBfZnJlZV9oZWFwLmMgaW4gU291cmNl
cyAqLywKKwkJCQkwRjRGNjFCMjI1QTNEMEJCMDA4QjRBODIgLyogcGFzX2VudW1lcmF0ZV9pbml0
aWFsbHlfdW5hY2NvdW50ZWRfcGFnZXMuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGOUExRDBEMjU1
OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X2RpcmVjdG9yeS5jIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMEZFN0VERDQyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5
b3V0LmMgaW4gU291cmNlcyAqLywKLQkJCQkwRkE1RTQ1NjI0OTJENUJBMDBDRTk2MkEgLyogcGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZS5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY3
RjUxQkUyMzE1OUVDMDAwNzU1MkFFIC8qIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbm9kZS5jIGlu
IFNvdXJjZXMgKi8sCisJCQkJMEY5QTFEMDYyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19wYWdlX2Jh
c2UuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGRDQ4QjMwMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNf
cmFuZG9tLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRkVBNDVDMzIzNkNFODlEMDBCNUEzNzUgLyog
cGFzX2R5bmFtaWNfcHJpbWl0aXZlX2hlYXBfbWFwLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjhB
ODA2ODI1RUVDQzFEMDA3OTBCNEEgLyogYm1hbGxvY19oZWFwX2NvbmZpZy5jIGluIFNvdXJjZXMg
Ki8sCisJCQkJMEY0RjYxQjYyNUEzRDBCQjAwOEI0QTgyIC8qIHBhc19lbnVtZXJhYmxlX3BhZ2Vf
bWFsbG9jLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRkNGQTQ5QjIzODM1MkVDMDBDQ0Q3MjYgLyog
cGFzX2xhcmdlX3NoYXJpbmdfcG9vbC5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEY0RjYxQjQyNUEz
RDBCQjAwOEI0QTgyIC8qIHBhc19lbnVtZXJhYmxlX3JhbmdlX2xpc3QuYyBpbiBTb3VyY2VzICov
LAorCQkJCTBGMTkzMjU2MjJFRDA0QTYwMEZCQTcxMyAvKiBwYXNfZXBvY2guYyBpbiBTb3VyY2Vz
ICovLAorCQkJCTBGRDQ4QjVFMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9wYWdl
X2NvbmZpZ19raW5kLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjRGNjFDQjI1QTRDRDNCMDA4QjRB
ODIgLyogcGFzX3BheWxvYWRfcmVzZXJ2YXRpb25fcGFnZV9saXN0LmMgaW4gU291cmNlcyAqLywK
KwkJCQkwRkU3RURCNjIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2Jvb3RzdHJhcF9mcmVlX2hlYXAu
YyBpbiBTb3VyY2VzICovLAorCQkJCTBGOTdFNjMwMjJBOUFBQzEwMEMzNTVGOCAvKiBwYXNfc2Vn
cmVnYXRlZF9wYWdlX2NvbmZpZy5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZFN0VERDcyMjk2MDE0
MjAwNEY0MTY2IC8qIHBhc191dGlsaXR5X2hlYXAuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGRTdF
REJCMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfdXRpbGl0eV9oZWFwX2NvbmZpZy5jIGluIFNvdXJj
ZXMgKi8sCi0JCQkJMEZFN0VERDgyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc191dGlscy5jIGluIFNv
dXJjZXMgKi8sCi0JCQkJMEY5QTFDRkQyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc192ZXJzaW9uZWRf
ZmllbGQuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGMTQ4NzIyMjY5RjVGQ0EwMDY4ODdBOSAvKiBw
YXNfbG9jYWxfdmlld19jYWNoZV9ub2RlLmMgaW4gU291cmNlcyAqLywKIAkJCQkwRjc4MDg4NTIy
RkEyMkQyMDBGMzc0NTEgLyogcGFzX3ZpcnR1YWxfcmFuZ2UuYyBpbiBTb3VyY2VzICovLAotCQkJ
CTBGODcwMEE3MjVCMEE4QzIwMDBFMUFCRiAvKiB0aGluZ3lfaGVhcC5jIGluIFNvdXJjZXMgKi8s
Ci0JCQkJMEY4NzAwQTkyNUIwQThDMzAwMEUxQUJGIC8qIHRoaW5neV9oZWFwX2NvbmZpZy5jIGlu
IFNvdXJjZXMgKi8sCisJCQkJMEY2RDU0N0MyM0M1NzNFMTAwRjQwREJCIC8qIHBhc19oZWFwX3Rh
YmxlLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRkYwOEYzRTIyQTVEQzY5MDAzODY1NzUgLyogcGFz
X3NpbXBsZV9sYXJnZV9mcmVlX2hlYXAuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGRDQ4QjQ2MjNB
OUFCQjMwMDI2QzQ2RCAvKiBwYXNfYWxsX3NoYXJlZF9wYWdlX2RpcmVjdG9yaWVzLmMgaW4gU291
cmNlcyAqLywKKwkJCQkwRjlBMUQ0OTI1NUUyODQyMDBDOEQxMUIgLyogcGFzX2Zhc3RfbWVnYXBh
Z2VfdGFibGUuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGRTdFREI5MjI5NjAxNDIwMDRGNDE2NiAv
KiBwYXNfY29hbGlnbi5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEZCRDY3REIyNUJEMzYzQTAwQTQ5
MEQyIC8qIG1pbmFsaWduMzJfaGVhcF9jb25maWcuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGNUI2
MDkxMjM1RTg4RUYwMENBRTYyOSAvKiBwYXNfcmVzZXJ2ZWRfbWVtb3J5X3Byb3ZpZGVyLmMgaW4g
U291cmNlcyAqLywKKwkJCQkwRjlBMUQxMDI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9h
bGxvY2F0b3IuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGQkQ2N0YzMjVCRTA3ODcwMEE0OTBEMiAv
KiBwYWdlc2l6ZTY0a19oZWFwLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjMyOUEyRjIzRjFENjM2
MDBBMTMzQzQgLyogcGFzX2Vuc3VyZV9oZWFwX3dpdGhfcGFnZV9jYWNoZXMuYyBpbiBTb3VyY2Vz
ICovLAorCQkJCTBGQzRFQzNFMjM0QTkxRTMwMEI3MTBBMyAvKiBwYXNfY29tcHV0ZV9zdW1tYXJ5
X29iamVjdF9jYWxsYmFja3MuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGMTkzMjYyMjJGMTE5M0Qw
MEZCQTcxMyAvKiBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50LmMgaW4gU291cmNlcyAqLywK
KwkJCQkwRjlBMUQxNTI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19r
aW5kLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjRGNjEyRTI1OTkwODc3MDA4QjRBODIgLyogcGFz
X2VudW1lcmF0ZV9zZWdyZWdhdGVkX2hlYXBzLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjlBMUQw
MDI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2ZyZWVfZ3JhbnVsZXMuYyBpbiBTb3VyY2VzICovLAor
CQkJCTBGRTdFRENGMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfc2VncmVnYXRlZF9oZWFwLmMgaW4g
U291cmNlcyAqLywKKwkJCQkwRjFCRkQ0NDI2NjQ1N0YxMDBDRUMyOEQgLyogcGFzX2hlYXBfY29u
ZmlnLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRkE1RTQ1NjI0OTJENUJBMDBDRTk2MkEgLyogcGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZS5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEZC
QzYyQzIyNjVGMTJBMzAwNUE1NzIwIC8qIHBhc19kZWJ1Z19zcGVjdHJ1bS5jIGluIFNvdXJjZXMg
Ki8sCisJCQkJMEY1RTVDRUMyM0JFRjM2MDAwQUEwQjZGIC8qIGlzb190ZXN0X2hlYXBfY29uZmln
LmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjlBMUQxMTI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2Jp
dGZpdF9wYWdlLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjhBODA2NjI1RUVDQzFEMDA3OTBCNEEg
LyogYm1hbGxvY19oZWFwLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjMyOUEzMDIzRjFENjM2MDBB
MTMzQzQgLyogcGFzX2Vuc3VyZV9oZWFwX2ZvcmNlZF9pbnRvX3Jlc2VydmVkX21lbW9yeS5jIGlu
IFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2lu
ZyA9IDA7CiAJCX07CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9ibWFs
bG9jX2hlYXAuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9ibWFsbG9jX2hlYXAuYwkocmV2aXNpb24gMjc5OTY0KQorKysgU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvYm1hbGxvY19oZWFwLmMJKHdvcmtpbmcgY29weSkKQEAgLTYzLDYgKzYz
LDExIEBAIHZvaWQqIGJtYWxsb2NfdHJ5X2FsbG9jYXRlX3plcm9lZChzaXplX3QKICAgICByZXR1
cm4gYm1hbGxvY190cnlfYWxsb2NhdGVfemVyb2VkX2lubGluZShzaXplKTsKIH0KIAorUEFTX05F
VkVSX0lOTElORSB2b2lkKiBibWFsbG9jX2FsbG9jYXRlX3Nsb3coc2l6ZV90IHNpemUpCit7Cisg
ICAgcmV0dXJuICh2b2lkKilibWFsbG9jX2FsbG9jYXRlX2ltcGxfbWVkaXVtX3Nsb3dfY2FzZShz
aXplLCAxKS5iZWdpbjsKK30KKwogdm9pZCogYm1hbGxvY19hbGxvY2F0ZShzaXplX3Qgc2l6ZSkK
IHsKICAgICByZXR1cm4gYm1hbGxvY19hbGxvY2F0ZV9pbmxpbmUoc2l6ZSk7CkluZGV4OiBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9ibWFsbG9jX2hlYXBfY29uZmlnLmMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvYm1hbGxvY19oZWFwX2Nv
bmZpZy5jCShyZXZpc2lvbiAyNzk5NjQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9ibWFsbG9jX2hlYXBfY29uZmlnLmMJKHdvcmtpbmcgY29weSkKQEAgLTQwLDEyICs0MCwx
MiBAQCBwYXNfaGVhcF9jb25maWcgYm1hbGxvY19oZWFwX2NvbmZpZyA9IEJNCiAKIFBBU19CQVNJ
Q19IRUFQX0NPTkZJR19ERUZJTklUSU9OUygKICAgICBibWFsbG9jLCBCTUFMTE9DLAotICAgIC5h
bGxvY2F0ZV9wYWdlX3Nob3VsZF96ZXJvID0gZmFsc2UpOworICAgIC5hbGxvY2F0ZV9wYWdlX3No
b3VsZF96ZXJvID0gZmFsc2UsCisgICAgLmludHJpbnNpY19wcmltaXRpdmVfdmlld19jYWNoZV9j
YXBhY2l0eSA9IHBhc19oZWFwX3J1bnRpbWVfY29uZmlnX2FnZ3Jlc3NpdmVfdmlld19jYWNoZV9j
YXBhY2l0eSk7CiAKIHZvaWQgYm1hbGxvY19oZWFwX2NvbmZpZ19hY3RpdmF0ZSh2b2lkKQogewot
ICAgIC8vIEZJWE1FOiBUZW1wb3JhcmlseSBkaXNhYmxlIGl0IGZvciBub3cgdW50aWwgYm1hbGxv
YyBpcyByZXBsYWNlZCB3aXRoIGxpYnBhcy4KLSAgICBzdGF0aWMgY29uc3QgYm9vbCByZWdpc3Rl
cl93aXRoX2xpYm1hbGxvYyA9IGZhbHNlOworICAgIHN0YXRpYyBjb25zdCBib29sIHJlZ2lzdGVy
X3dpdGhfbGlibWFsbG9jID0gdHJ1ZTsKICAgICAKICAgICBwYXNfZGVzaWduYXRlZF9pbnRyaW5z
aWNfaGVhcF9pbml0aWFsaXplKCZibWFsbG9jX2NvbW1vbl9wcmltaXRpdmVfaGVhcC5zZWdyZWdh
dGVkX2hlYXAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAm
Ym1hbGxvY19oZWFwX2NvbmZpZyk7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9ibWFsbG9jX2hlYXBfY29uZmlnLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvYm1hbGxvY19oZWFwX2NvbmZpZy5oCShyZXZpc2lvbiAyNzk5NjQp
CisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9ibWFsbG9jX2hlYXBfY29uZmln
LmgJKHdvcmtpbmcgY29weSkKQEAgLTUxLDkgKzUxLDEwIEBAIFBBU19BUEkgdm9pZCBibWFsbG9j
X2hlYXBfY29uZmlnX2FjdGl2YXQKICAgICAuc21hbGxfc2VncmVnYXRlZF9wYWdlX3NpemUgPSBQ
QVNfU01BTExfUEFHRV9ERUZBVUxUX1NJWkUsIFwKICAgICAuc21hbGxfc2VncmVnYXRlZF93YXN0
ZWFnZV9oYW5kaWNhcCA9IFBBU19TTUFMTF9QQUdFX0hBTkRJQ0FQLCBcCiAgICAgLnNtYWxsX3Nl
Z3JlZ2F0ZWRfZW5hYmxlX2VtcHR5X3dvcmRfZWxpZ2liaWxpdHlfb3B0aW1pemF0aW9uID0gdHJ1
ZSwgXAotICAgIC5zbWFsbF91c2VfcmV2ZXJzZWRfY3VycmVudF93b3JkID0gUEFTX0FSTTY0LCBc
CisgICAgLnNtYWxsX3NlZ3JlZ2F0ZWRfdXNlX3JldmVyc2VkX2N1cnJlbnRfd29yZCA9IFBBU19B
Uk02NCwgXAorICAgIC5lbmFibGVfdmlld19jYWNoZSA9IHRydWUsIFwKICAgICAudXNlX3NtYWxs
X2JpdGZpdCA9IHRydWUsIFwKLSAgICAuc21hbGxfYml0Zml0X21pbl9hbGlnbl9zaGlmdCA9IDQs
IFwKKyAgICAuc21hbGxfYml0Zml0X21pbl9hbGlnbl9zaGlmdCA9IEJNQUxMT0NfTUlOQUxJR05f
U0hJRlQsIFwKICAgICAuc21hbGxfYml0Zml0X3BhZ2Vfc2l6ZSA9IFBBU19TTUFMTF9CSVRGSVRf
UEFHRV9ERUZBVUxUX1NJWkUsIFwKICAgICAubWVkaXVtX3BhZ2Vfc2l6ZSA9IFBBU19NRURJVU1f
UEFHRV9ERUZBVUxUX1NJWkUsIFwKICAgICAuZ3JhbnVsZV9zaXplID0gUEFTX0dSQU5VTEVfREVG
QVVMVF9TSVpFLCBcCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9ibWFs
bG9jX2hlYXBfaW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL2JtYWxsb2NfaGVhcF9pbmxpbmVzLmgJKHJldmlzaW9uIDI3OTk2NCkKKysrIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2JtYWxsb2NfaGVhcF9pbmxpbmVzLmgJKHdv
cmtpbmcgY29weSkKQEAgLTQ0LDcgKzQ0LDcgQEAgUEFTX0NSRUFURV9UUllfQUxMT0NBVEVfSU5U
UklOU0lDX1BSSU1JVAogICAgIEJNQUxMT0NfSEVBUF9DT05GSUcsCiAgICAgJmJtYWxsb2NfaW50
cmluc2ljX3ByaW1pdGl2ZV9ydW50aW1lX2NvbmZpZy5iYXNlLAogICAgICZibWFsbG9jX2FsbG9j
YXRvcl9jb3VudHMsCi0gICAgcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdF9pZGVudGl0
eSwKKyAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfaWRlbnRpdHksCiAgICAgJmJtYWxsb2NfY29t
bW9uX3ByaW1pdGl2ZV9oZWFwLAogICAgICZibWFsbG9jX2NvbW1vbl9wcmltaXRpdmVfaGVhcF9z
dXBwb3J0LAogICAgIHBhc19pbnRyaW5zaWNfaGVhcF9pc19kZXNpZ25hdGVkKTsKQEAgLTU2LDcg
KzU2LDcgQEAgUEFTX0NSRUFURV9UUllfQUxMT0NBVEVfSU5UUklOU0lDX1BSSU1JVAogICAgIEJN
QUxMT0NfSEVBUF9DT05GSUcsCiAgICAgJmJtYWxsb2NfaW50cmluc2ljX3ByaW1pdGl2ZV9ydW50
aW1lX2NvbmZpZy5iYXNlLAogICAgICZibWFsbG9jX2FsbG9jYXRvcl9jb3VudHMsCi0gICAgcGFz
X2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdF9pZGVudGl0eSwKKyAgICBwYXNfYWxsb2NhdGlv
bl9yZXN1bHRfaWRlbnRpdHksCiAgICAgJmJtYWxsb2NfY29tbW9uX3ByaW1pdGl2ZV9oZWFwLAog
ICAgICZibWFsbG9jX2NvbW1vbl9wcmltaXRpdmVfaGVhcF9zdXBwb3J0LAogICAgIHBhc19pbnRy
aW5zaWNfaGVhcF9pc19ub3RfZGVzaWduYXRlZCk7CkBAIC02Niw3ICs2Niw3IEBAIFBBU19DUkVB
VEVfVFJZX0FMTE9DQVRFX0lOVFJJTlNJQ19QUklNSVQKICAgICBCTUFMTE9DX0hFQVBfQ09ORklH
LAogICAgICZibWFsbG9jX2ludHJpbnNpY19wcmltaXRpdmVfcnVudGltZV9jb25maWcuYmFzZSwK
ICAgICAmYm1hbGxvY19hbGxvY2F0b3JfY291bnRzLAotICAgIHBhc19pbnRyaW5zaWNfYWxsb2Nh
dGlvbl9yZXN1bHRfY3Jhc2hfb25fZXJyb3IsCisgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X2Ny
YXNoX29uX2Vycm9yLAogICAgICZibWFsbG9jX2NvbW1vbl9wcmltaXRpdmVfaGVhcCwKICAgICAm
Ym1hbGxvY19jb21tb25fcHJpbWl0aXZlX2hlYXBfc3VwcG9ydCwKICAgICBwYXNfaW50cmluc2lj
X2hlYXBfaXNfZGVzaWduYXRlZCk7CkBAIC03Niw3MyArNzYsNzkgQEAgUEFTX0NSRUFURV9UUllf
QUxMT0NBVEVfSU5UUklOU0lDX1BSSU1JVAogICAgIEJNQUxMT0NfSEVBUF9DT05GSUcsCiAgICAg
JmJtYWxsb2NfaW50cmluc2ljX3ByaW1pdGl2ZV9ydW50aW1lX2NvbmZpZy5iYXNlLAogICAgICZi
bWFsbG9jX2FsbG9jYXRvcl9jb3VudHMsCi0gICAgcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jl
c3VsdF9jcmFzaF9vbl9lcnJvciwKKyAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfY3Jhc2hfb25f
ZXJyb3IsCiAgICAgJmJtYWxsb2NfY29tbW9uX3ByaW1pdGl2ZV9oZWFwLAogICAgICZibWFsbG9j
X2NvbW1vbl9wcmltaXRpdmVfaGVhcF9zdXBwb3J0LAogICAgIHBhc19pbnRyaW5zaWNfaGVhcF9p
c19ub3RfZGVzaWduYXRlZCk7CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKiBibWFs
bG9jX3RyeV9hbGxvY2F0ZV9pbmxpbmUoc2l6ZV90IHNpemUpCiB7Ci0gICAgcmV0dXJuIGJtYWxs
b2NfdHJ5X2FsbG9jYXRlX2ltcGwoc2l6ZSwgMSkucHRyOworICAgIHJldHVybiAodm9pZCopYm1h
bGxvY190cnlfYWxsb2NhdGVfaW1wbChzaXplLCAxKS5iZWdpbjsKIH0KIAogc3RhdGljIFBBU19B
TFdBWVNfSU5MSU5FIHZvaWQqCiBibWFsbG9jX3RyeV9hbGxvY2F0ZV93aXRoX2FsaWdubWVudF9p
bmxpbmUoc2l6ZV90IHNpemUsIHNpemVfdCBhbGlnbm1lbnQpCiB7Ci0gICAgcmV0dXJuIGJtYWxs
b2NfdHJ5X2FsbG9jYXRlX3dpdGhfYWxpZ25tZW50X2ltcGwoc2l6ZSwgYWxpZ25tZW50KS5wdHI7
CisgICAgcmV0dXJuICh2b2lkKilibWFsbG9jX3RyeV9hbGxvY2F0ZV93aXRoX2FsaWdubWVudF9p
bXBsKHNpemUsIGFsaWdubWVudCkuYmVnaW47CiB9CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElO
RSB2b2lkKiBibWFsbG9jX3RyeV9hbGxvY2F0ZV96ZXJvZWRfaW5saW5lKHNpemVfdCBzaXplKQog
ewotICAgIHJldHVybiBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0X3plcm8oCisgICAg
cmV0dXJuICh2b2lkKilwYXNfYWxsb2NhdGlvbl9yZXN1bHRfemVybygKICAgICAgICAgYm1hbGxv
Y190cnlfYWxsb2NhdGVfaW1wbChzaXplLCAxKSwKLSAgICAgICAgc2l6ZSkucHRyOworICAgICAg
ICBzaXplKS5iZWdpbjsKIH0KIAorUEFTX0FQSSB2b2lkKiBibWFsbG9jX2FsbG9jYXRlX3Nsb3co
c2l6ZV90IHNpemUpOworCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogYm1hbGxvY19h
bGxvY2F0ZV9pbmxpbmUoc2l6ZV90IHNpemUpCiB7Ci0gICAgcmV0dXJuIGJtYWxsb2NfYWxsb2Nh
dGVfaW1wbChzaXplLCAxKS5wdHI7CisgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0IHJlc3VsdDsK
KyAgICByZXN1bHQgPSBibWFsbG9jX2FsbG9jYXRlX2ltcGxfaW5saW5lX29ubHkoc2l6ZSwgMSk7
CisgICAgaWYgKFBBU19MSUtFTFkocmVzdWx0LmRpZF9zdWNjZWVkKSkKKyAgICAgICAgcmV0dXJu
ICh2b2lkKilyZXN1bHQuYmVnaW47CisgICAgcmV0dXJuIGJtYWxsb2NfYWxsb2NhdGVfc2xvdyhz
aXplKTsKIH0KIAogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQqCiBibWFsbG9jX2FsbG9j
YXRlX3dpdGhfYWxpZ25tZW50X2lubGluZShzaXplX3Qgc2l6ZSwgc2l6ZV90IGFsaWdubWVudCkK
IHsKLSAgICByZXR1cm4gYm1hbGxvY19hbGxvY2F0ZV93aXRoX2FsaWdubWVudF9pbXBsKHNpemUs
IGFsaWdubWVudCkucHRyOworICAgIHJldHVybiAodm9pZCopYm1hbGxvY19hbGxvY2F0ZV93aXRo
X2FsaWdubWVudF9pbXBsKHNpemUsIGFsaWdubWVudCkuYmVnaW47CiB9CiAKIHN0YXRpYyBQQVNf
QUxXQVlTX0lOTElORSB2b2lkKiBibWFsbG9jX2FsbG9jYXRlX3plcm9lZF9pbmxpbmUoc2l6ZV90
IHNpemUpCiB7Ci0gICAgcmV0dXJuIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHRfemVy
bygKKyAgICByZXR1cm4gKHZvaWQqKXBhc19hbGxvY2F0aW9uX3Jlc3VsdF96ZXJvKAogICAgICAg
ICBibWFsbG9jX2FsbG9jYXRlX2ltcGwoc2l6ZSwgMSksCi0gICAgICAgIHNpemUpLnB0cjsKKyAg
ICAgICAgc2l6ZSkuYmVnaW47CiB9CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKgog
Ym1hbGxvY190cnlfcmVhbGxvY2F0ZV9pbmxpbmUodm9pZCogb2xkX3B0ciwgc2l6ZV90IG5ld19z
aXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3JlYWxsb2NhdGVfZnJlZV9t
b2RlIGZyZWVfbW9kZSkKIHsKLSAgICByZXR1cm4gcGFzX3RyeV9yZWFsbG9jYXRlX2ludHJpbnNp
Y19wcmltaXRpdmUoCisgICAgcmV0dXJuICh2b2lkKilwYXNfdHJ5X3JlYWxsb2NhdGVfaW50cmlu
c2ljX3ByaW1pdGl2ZSgKICAgICAgICAgb2xkX3B0ciwKICAgICAgICAgJmJtYWxsb2NfY29tbW9u
X3ByaW1pdGl2ZV9oZWFwLAogICAgICAgICBuZXdfc2l6ZSwKICAgICAgICAgQk1BTExPQ19IRUFQ
X0NPTkZJRywKICAgICAgICAgYm1hbGxvY190cnlfYWxsb2NhdGVfaW1wbF9mb3JfcmVhbGxvYywK
ICAgICAgICAgcGFzX3JlYWxsb2NhdGVfYWxsb3dfaGVhcF90ZWxlcG9ydCwKLSAgICAgICAgZnJl
ZV9tb2RlKS5wdHI7CisgICAgICAgIGZyZWVfbW9kZSkuYmVnaW47CiB9CiAKIHN0YXRpYyBQQVNf
QUxXQVlTX0lOTElORSB2b2lkKgogYm1hbGxvY19yZWFsbG9jYXRlX2lubGluZSh2b2lkKiBvbGRf
cHRyLCBzaXplX3QgbmV3X3NpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19yZWFs
bG9jYXRlX2ZyZWVfbW9kZSBmcmVlX21vZGUpCiB7Ci0gICAgcmV0dXJuIHBhc190cnlfcmVhbGxv
Y2F0ZV9pbnRyaW5zaWNfcHJpbWl0aXZlKAorICAgIHJldHVybiAodm9pZCopcGFzX3RyeV9yZWFs
bG9jYXRlX2ludHJpbnNpY19wcmltaXRpdmUoCiAgICAgICAgIG9sZF9wdHIsCiAgICAgICAgICZi
bWFsbG9jX2NvbW1vbl9wcmltaXRpdmVfaGVhcCwKICAgICAgICAgbmV3X3NpemUsCiAgICAgICAg
IEJNQUxMT0NfSEVBUF9DT05GSUcsCiAgICAgICAgIGJtYWxsb2NfYWxsb2NhdGVfaW1wbF9mb3Jf
cmVhbGxvYywKICAgICAgICAgcGFzX3JlYWxsb2NhdGVfYWxsb3dfaGVhcF90ZWxlcG9ydCwKLSAg
ICAgICAgZnJlZV9tb2RlKS5wdHI7CisgICAgICAgIGZyZWVfbW9kZSkuYmVnaW47CiB9CiAKIFBB
U19DUkVBVEVfVFJZX0FMTE9DQVRFKApAQCAtMTUwLDcgKzE1Niw3IEBAIFBBU19DUkVBVEVfVFJZ
X0FMTE9DQVRFKAogICAgIEJNQUxMT0NfSEVBUF9DT05GSUcsCiAgICAgJmJtYWxsb2NfdHlwZWRf
cnVudGltZV9jb25maWcuYmFzZSwKICAgICAmYm1hbGxvY19hbGxvY2F0b3JfY291bnRzLAotICAg
IHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHRfaWRlbnRpdHkpOworICAgIHBhc19hbGxv
Y2F0aW9uX3Jlc3VsdF9pZGVudGl0eSk7CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lk
KiBibWFsbG9jX3RyeV9pc29fYWxsb2NhdGVfaW5saW5lKHBhc19oZWFwX3JlZiogaGVhcF9yZWYp
CiB7CkBAIC0xNjIsNyArMTY4LDcgQEAgUEFTX0NSRUFURV9UUllfQUxMT0NBVEUoCiAgICAgQk1B
TExPQ19IRUFQX0NPTkZJRywKICAgICAmYm1hbGxvY190eXBlZF9ydW50aW1lX2NvbmZpZy5iYXNl
LAogICAgICZibWFsbG9jX2FsbG9jYXRvcl9jb3VudHMsCi0gICAgcGFzX2ludHJpbnNpY19hbGxv
Y2F0aW9uX3Jlc3VsdF9jcmFzaF9vbl9lcnJvcik7CisgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0
X2NyYXNoX29uX2Vycm9yKTsKIAogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQqIGJtYWxs
b2NfaXNvX2FsbG9jYXRlX2lubGluZShwYXNfaGVhcF9yZWYqIGhlYXBfcmVmKQogewpAQCAtMTc0
LDEyICsxODAsMTIgQEAgUEFTX0NSRUFURV9UUllfQUxMT0NBVEVfUFJJTUlUSVZFKAogICAgIEJN
QUxMT0NfSEVBUF9DT05GSUcsCiAgICAgJmJtYWxsb2NfcHJpbWl0aXZlX3J1bnRpbWVfY29uZmln
LmJhc2UsCiAgICAgJmJtYWxsb2NfYWxsb2NhdG9yX2NvdW50cywKLSAgICBwYXNfaW50cmluc2lj
X2FsbG9jYXRpb25fcmVzdWx0X2lkZW50aXR5KTsKKyAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRf
aWRlbnRpdHkpOwogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogYm1hbGxvY190cnlf
YWxsb2NhdGVfYXV4aWxpYXJ5X2lubGluZShwYXNfcHJpbWl0aXZlX2hlYXBfcmVmKiBoZWFwX3Jl
ZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHNpemVfdCBzaXplKQogewotICAgIHJldHVybiBibWFsbG9jX3RyeV9h
bGxvY2F0ZV9hdXhpbGlhcnlfaW1wbChoZWFwX3JlZiwgc2l6ZSwgMSkucHRyOworICAgIHJldHVy
biAodm9pZCopYm1hbGxvY190cnlfYWxsb2NhdGVfYXV4aWxpYXJ5X2ltcGwoaGVhcF9yZWYsIHNp
emUsIDEpLmJlZ2luOwogfQogCiBQQVNfQ1JFQVRFX1RSWV9BTExPQ0FURV9QUklNSVRJVkUoCkBA
IC0xODcsMjkgKzE5MywyOSBAQCBQQVNfQ1JFQVRFX1RSWV9BTExPQ0FURV9QUklNSVRJVkUoCiAg
ICAgQk1BTExPQ19IRUFQX0NPTkZJRywKICAgICAmYm1hbGxvY19wcmltaXRpdmVfcnVudGltZV9j
b25maWcuYmFzZSwKICAgICAmYm1hbGxvY19hbGxvY2F0b3JfY291bnRzLAotICAgIHBhc19pbnRy
aW5zaWNfYWxsb2NhdGlvbl9yZXN1bHRfY3Jhc2hfb25fZXJyb3IpOworICAgIHBhc19hbGxvY2F0
aW9uX3Jlc3VsdF9jcmFzaF9vbl9lcnJvcik7CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2
b2lkKiBibWFsbG9jX2FsbG9jYXRlX2F1eGlsaWFyeV9pbmxpbmUocGFzX3ByaW1pdGl2ZV9oZWFw
X3JlZiogaGVhcF9yZWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBzaXplKQogewotICAgIHJldHVybiBibWFs
bG9jX2FsbG9jYXRlX2F1eGlsaWFyeV9pbXBsKGhlYXBfcmVmLCBzaXplLCAxKS5wdHI7CisgICAg
cmV0dXJuICh2b2lkKilibWFsbG9jX2FsbG9jYXRlX2F1eGlsaWFyeV9pbXBsKGhlYXBfcmVmLCBz
aXplLCAxKS5iZWdpbjsKIH0KIAogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQqIGJtYWxs
b2NfdHJ5X2FsbG9jYXRlX2F1eGlsaWFyeV96ZXJvZWRfaW5saW5lKAogICAgIHBhc19wcmltaXRp
dmVfaGVhcF9yZWYqIGhlYXBfcmVmLAogICAgIHNpemVfdCBzaXplKQogewotICAgIHJldHVybiBw
YXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0X3plcm8oCisgICAgcmV0dXJuICh2b2lkKilw
YXNfYWxsb2NhdGlvbl9yZXN1bHRfemVybygKICAgICAgICAgYm1hbGxvY190cnlfYWxsb2NhdGVf
YXV4aWxpYXJ5X2ltcGwoaGVhcF9yZWYsIHNpemUsIDEpLAotICAgICAgICBzaXplKS5wdHI7Cisg
ICAgICAgIHNpemUpLmJlZ2luOwogfQogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCog
Ym1hbGxvY19hbGxvY2F0ZV9hdXhpbGlhcnlfemVyb2VkX2lubGluZShwYXNfcHJpbWl0aXZlX2hl
YXBfcmVmKiBoZWFwX3JlZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBzaXplKQogewotICAgIHJl
dHVybiBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0X3plcm8oCisgICAgcmV0dXJuICh2
b2lkKilwYXNfYWxsb2NhdGlvbl9yZXN1bHRfemVybygKICAgICAgICAgYm1hbGxvY19hbGxvY2F0
ZV9hdXhpbGlhcnlfaW1wbChoZWFwX3JlZiwgc2l6ZSwgMSksCi0gICAgICAgIHNpemUpLnB0cjsK
KyAgICAgICAgc2l6ZSkuYmVnaW47CiB9CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lk
KgpAQCAtMjE3LDcgKzIyMyw3IEBAIGJtYWxsb2NfdHJ5X2FsbG9jYXRlX2F1eGlsaWFyeV93aXRo
X2FsaWcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2l6ZV90IHNpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNpemVfdCBhbGlnbm1lbnQpCiB7Ci0gICAgcmV0dXJuIGJtYWxsb2NfdHJ5
X2FsbG9jYXRlX2F1eGlsaWFyeV9pbXBsKGhlYXBfcmVmLCBzaXplLCBhbGlnbm1lbnQpLnB0cjsK
KyAgICByZXR1cm4gKHZvaWQqKWJtYWxsb2NfdHJ5X2FsbG9jYXRlX2F1eGlsaWFyeV9pbXBsKGhl
YXBfcmVmLCBzaXplLCBhbGlnbm1lbnQpLmJlZ2luOwogfQogCiBzdGF0aWMgUEFTX0FMV0FZU19J
TkxJTkUgdm9pZCoKQEAgLTIyNSw3ICsyMzEsNyBAQCBibWFsbG9jX2FsbG9jYXRlX2F1eGlsaWFy
eV93aXRoX2FsaWdubWVuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc2l6ZV90IHNpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc2l6ZV90IGFsaWdubWVudCkKIHsKLSAgICByZXR1cm4gYm1hbGxvY19h
bGxvY2F0ZV9hdXhpbGlhcnlfaW1wbChoZWFwX3JlZiwgc2l6ZSwgYWxpZ25tZW50KS5wdHI7Cisg
ICAgcmV0dXJuICh2b2lkKilibWFsbG9jX2FsbG9jYXRlX2F1eGlsaWFyeV9pbXBsKGhlYXBfcmVm
LCBzaXplLCBhbGlnbm1lbnQpLmJlZ2luOwogfQogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUg
dm9pZCogYm1hbGxvY190cnlfcmVhbGxvY2F0ZV9hdXhpbGlhcnlfaW5saW5lKApAQCAtMjM0LDcg
KzI0MCw3IEBAIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKiBibWFsbG9jX3QKICAgICBz
aXplX3QgbmV3X3NpemUsCiAgICAgcGFzX3JlYWxsb2NhdGVfZnJlZV9tb2RlIGZyZWVfbW9kZSkK
IHsKLSAgICByZXR1cm4gcGFzX3RyeV9yZWFsbG9jYXRlX3ByaW1pdGl2ZSgKKyAgICByZXR1cm4g
KHZvaWQqKXBhc190cnlfcmVhbGxvY2F0ZV9wcmltaXRpdmUoCiAgICAgICAgIG9sZF9wdHIsCiAg
ICAgICAgIGhlYXBfcmVmLAogICAgICAgICBuZXdfc2l6ZSwKQEAgLTI0Miw3ICsyNDgsNyBAQCBz
dGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogYm1hbGxvY190CiAgICAgICAgIGJtYWxsb2Nf
dHJ5X2FsbG9jYXRlX2F1eGlsaWFyeV9pbXBsX2Zvcl9yZWFsbG9jLAogICAgICAgICAmYm1hbGxv
Y19wcmltaXRpdmVfcnVudGltZV9jb25maWcuYmFzZSwKICAgICAgICAgcGFzX3JlYWxsb2NhdGVf
YWxsb3dfaGVhcF90ZWxlcG9ydCwKLSAgICAgICAgZnJlZV9tb2RlKS5wdHI7CisgICAgICAgIGZy
ZWVfbW9kZSkuYmVnaW47CiB9CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKiBibWFs
bG9jX3JlYWxsb2NhdGVfYXV4aWxpYXJ5X2lubGluZSh2b2lkKiBvbGRfcHRyLApAQCAtMjUwLDcg
KzI1Niw3IEBAIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKiBibWFsbG9jX3IKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzaXplX3QgbmV3X3NpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3JlYWxsb2NhdGVfZnJlZV9tb2Rl
IGZyZWVfbW9kZSkKIHsKLSAgICByZXR1cm4gcGFzX3RyeV9yZWFsbG9jYXRlX3ByaW1pdGl2ZSgK
KyAgICByZXR1cm4gKHZvaWQqKXBhc190cnlfcmVhbGxvY2F0ZV9wcmltaXRpdmUoCiAgICAgICAg
IG9sZF9wdHIsCiAgICAgICAgIGhlYXBfcmVmLAogICAgICAgICBuZXdfc2l6ZSwKQEAgLTI1OCw3
ICsyNjQsNyBAQCBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogYm1hbGxvY19yCiAgICAg
ICAgIGJtYWxsb2NfYWxsb2NhdGVfYXV4aWxpYXJ5X2ltcGxfZm9yX3JlYWxsb2MsCiAgICAgICAg
ICZibWFsbG9jX3ByaW1pdGl2ZV9ydW50aW1lX2NvbmZpZy5iYXNlLAogICAgICAgICBwYXNfcmVh
bGxvY2F0ZV9hbGxvd19oZWFwX3RlbGVwb3J0LAotICAgICAgICBmcmVlX21vZGUpLnB0cjsKKyAg
ICAgICAgZnJlZV9tb2RlKS5iZWdpbjsKIH0KIAogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZv
aWQgYm1hbGxvY19kZWFsbG9jYXRlX2lubGluZSh2b2lkKiBwdHIpCkluZGV4OiBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9ob3RiaXRfaGVhcF9jb25maWcuYwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9ob3RiaXRfaGVhcF9jb25maWcuYwko
cmV2aXNpb24gMjc5OTY0KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvaG90
Yml0X2hlYXBfY29uZmlnLmMJKHdvcmtpbmcgY29weSkKQEAgLTM5LDcgKzM5LDggQEAgcGFzX2hl
YXBfY29uZmlnIGhvdGJpdF9oZWFwX2NvbmZpZyA9IEhPVAogCiBQQVNfQkFTSUNfSEVBUF9DT05G
SUdfREVGSU5JVElPTlMoCiAgICAgaG90Yml0LCBIT1RCSVQsCi0gICAgLmFsbG9jYXRlX3BhZ2Vf
c2hvdWxkX3plcm8gPSBmYWxzZSk7CisgICAgLmFsbG9jYXRlX3BhZ2Vfc2hvdWxkX3plcm8gPSBm
YWxzZSwKKyAgICAuaW50cmluc2ljX3ByaW1pdGl2ZV92aWV3X2NhY2hlX2NhcGFjaXR5ID0gcGFz
X2hlYXBfcnVudGltZV9jb25maWdfYWdncmVzc2l2ZV92aWV3X2NhY2hlX2NhcGFjaXR5KTsKIAog
dm9pZCBob3RiaXRfaGVhcF9jb25maWdfYWN0aXZhdGUodm9pZCkKIHsKSW5kZXg6IFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2hvdGJpdF9oZWFwX2NvbmZpZy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2hvdGJpdF9oZWFwX2NvbmZpZy5o
CShyZXZpc2lvbiAyNzk5NjQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9o
b3RiaXRfaGVhcF9jb25maWcuaAkod29ya2luZyBjb3B5KQpAQCAtNTQsNyArNTQsOCBAQCBQQVNf
QVBJIHZvaWQgaG90Yml0X2hlYXBfY29uZmlnX2FjdGl2YXRlCiAgICAgLnNtYWxsX3NlZ3JlZ2F0
ZWRfcGFnZV9zaXplID0gUEFTX1NNQUxMX1BBR0VfREVGQVVMVF9TSVpFLCBcCiAgICAgLnNtYWxs
X3NlZ3JlZ2F0ZWRfd2FzdGVhZ2VfaGFuZGljYXAgPSBQQVNfU01BTExfUEFHRV9IQU5ESUNBUCwg
XAogICAgIC5zbWFsbF9zZWdyZWdhdGVkX2VuYWJsZV9lbXB0eV93b3JkX2VsaWdpYmlsaXR5X29w
dGltaXphdGlvbiA9IHRydWUsIFwKLSAgICAuc21hbGxfdXNlX3JldmVyc2VkX2N1cnJlbnRfd29y
ZCA9IFBBU19BUk02NCwgXAorICAgIC5zbWFsbF9zZWdyZWdhdGVkX3VzZV9yZXZlcnNlZF9jdXJy
ZW50X3dvcmQgPSBQQVNfQVJNNjQsIFwKKyAgICAuZW5hYmxlX3ZpZXdfY2FjaGUgPSB0cnVlLCBc
CiAgICAgLnVzZV9zbWFsbF9iaXRmaXQgPSB0cnVlLCBcCiAgICAgLnNtYWxsX2JpdGZpdF9taW5f
YWxpZ25fc2hpZnQgPSBIT1RCSVRfTUlOQUxJR05fU0hJRlQsIFwKICAgICAuc21hbGxfYml0Zml0
X3BhZ2Vfc2l6ZSA9IFBBU19TTUFMTF9CSVRGSVRfUEFHRV9ERUZBVUxUX1NJWkUsIFwKSW5kZXg6
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2hvdGJpdF9oZWFwX2lubGluZXMuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9ob3RiaXRfaGVh
cF9pbmxpbmVzLmgJKHJldmlzaW9uIDI3OTk2NCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL2hvdGJpdF9oZWFwX2lubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtNDIsNyAr
NDIsNyBAQCBQQVNfQ1JFQVRFX1RSWV9BTExPQ0FURV9JTlRSSU5TSUNfUFJJTUlUCiAgICAgSE9U
QklUX0hFQVBfQ09ORklHLAogICAgICZob3RiaXRfaW50cmluc2ljX3ByaW1pdGl2ZV9ydW50aW1l
X2NvbmZpZy5iYXNlLAogICAgICZob3RiaXRfYWxsb2NhdG9yX2NvdW50cywKLSAgICBwYXNfaW50
cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0X2lkZW50aXR5LAorICAgIHBhc19hbGxvY2F0aW9uX3Jl
c3VsdF9pZGVudGl0eSwKICAgICAmaG90Yml0X2NvbW1vbl9wcmltaXRpdmVfaGVhcCwKICAgICAm
aG90Yml0X2NvbW1vbl9wcmltaXRpdmVfaGVhcF9zdXBwb3J0LAogICAgIHBhc19pbnRyaW5zaWNf
aGVhcF9pc19kZXNpZ25hdGVkKTsKQEAgLTU0LDM0ICs1NCwzNCBAQCBQQVNfQ1JFQVRFX1RSWV9B
TExPQ0FURV9JTlRSSU5TSUNfUFJJTUlUCiAgICAgSE9UQklUX0hFQVBfQ09ORklHLAogICAgICZo
b3RiaXRfaW50cmluc2ljX3ByaW1pdGl2ZV9ydW50aW1lX2NvbmZpZy5iYXNlLAogICAgICZob3Ri
aXRfYWxsb2NhdG9yX2NvdW50cywKLSAgICBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0
X2lkZW50aXR5LAorICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9pZGVudGl0eSwKICAgICAmaG90
Yml0X2NvbW1vbl9wcmltaXRpdmVfaGVhcCwKICAgICAmaG90Yml0X2NvbW1vbl9wcmltaXRpdmVf
aGVhcF9zdXBwb3J0LAogICAgIHBhc19pbnRyaW5zaWNfaGVhcF9pc19ub3RfZGVzaWduYXRlZCk7
CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKiBob3RiaXRfdHJ5X2FsbG9jYXRlX2lu
bGluZShzaXplX3Qgc2l6ZSkKIHsKLSAgICByZXR1cm4gaG90Yml0X3RyeV9hbGxvY2F0ZV9pbXBs
KHNpemUsIDEpLnB0cjsKKyAgICByZXR1cm4gKHZvaWQqKWhvdGJpdF90cnlfYWxsb2NhdGVfaW1w
bChzaXplLCAxKS5iZWdpbjsKIH0KIAogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQqCiBo
b3RiaXRfdHJ5X2FsbG9jYXRlX3dpdGhfYWxpZ25tZW50X2lubGluZShzaXplX3Qgc2l6ZSwgc2l6
ZV90IGFsaWdubWVudCkKIHsKLSAgICByZXR1cm4gaG90Yml0X3RyeV9hbGxvY2F0ZV93aXRoX2Fs
aWdubWVudF9pbXBsKHNpemUsIGFsaWdubWVudCkucHRyOworICAgIHJldHVybiAodm9pZCopaG90
Yml0X3RyeV9hbGxvY2F0ZV93aXRoX2FsaWdubWVudF9pbXBsKHNpemUsIGFsaWdubWVudCkuYmVn
aW47CiB9CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKgogaG90Yml0X3RyeV9yZWFs
bG9jYXRlX2lubGluZSh2b2lkKiBvbGRfcHRyLCBzaXplX3QgbmV3X3NpemUsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwYXNfcmVhbGxvY2F0ZV9mcmVlX21vZGUgZnJlZV9tb2RlKQog
ewotICAgIHJldHVybiBwYXNfdHJ5X3JlYWxsb2NhdGVfaW50cmluc2ljX3ByaW1pdGl2ZSgKKyAg
ICByZXR1cm4gKHZvaWQqKXBhc190cnlfcmVhbGxvY2F0ZV9pbnRyaW5zaWNfcHJpbWl0aXZlKAog
ICAgICAgICBvbGRfcHRyLAogICAgICAgICAmaG90Yml0X2NvbW1vbl9wcmltaXRpdmVfaGVhcCwK
ICAgICAgICAgbmV3X3NpemUsCiAgICAgICAgIEhPVEJJVF9IRUFQX0NPTkZJRywKICAgICAgICAg
aG90Yml0X3RyeV9hbGxvY2F0ZV9pbXBsX2Zvcl9yZWFsbG9jLAogICAgICAgICBwYXNfcmVhbGxv
Y2F0ZV9hbGxvd19oZWFwX3RlbGVwb3J0LAotICAgICAgICBmcmVlX21vZGUpLnB0cjsKKyAgICAg
ICAgZnJlZV9tb2RlKS5iZWdpbjsKIH0KIAogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQg
aG90Yml0X2RlYWxsb2NhdGVfaW5saW5lKHZvaWQqIHB0cikKSW5kZXg6IFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL2lzb19oZWFwX2NvbmZpZy5jCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2lzb19oZWFwX2NvbmZpZy5jCShyZXZpc2lvbiAy
Nzk5NjQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9pc29faGVhcF9jb25m
aWcuYwkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKGMp
IDIwMTktMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KGMpIDIwMTktMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM3LDcgKzM3LDggQEAgcGFzX2hlYXBfY29uZmlnIGlz
b19oZWFwX2NvbmZpZyA9IElTT19IRQogCiBQQVNfQkFTSUNfSEVBUF9DT05GSUdfREVGSU5JVElP
TlMoCiAgICAgaXNvLCBJU08sCi0gICAgLmFsbG9jYXRlX3BhZ2Vfc2hvdWxkX3plcm8gPSBmYWxz
ZSk7CisgICAgLmFsbG9jYXRlX3BhZ2Vfc2hvdWxkX3plcm8gPSBmYWxzZSwKKyAgICAuaW50cmlu
c2ljX3ByaW1pdGl2ZV92aWV3X2NhY2hlX2NhcGFjaXR5ID0gcGFzX2hlYXBfcnVudGltZV9jb25m
aWdfemVyb192aWV3X2NhY2hlX2NhcGFjaXR5KTsKIAogI2VuZGlmIC8qIFBBU19FTkFCTEVfSVNP
ICovCiAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2lzb19oZWFwX2Nv
bmZpZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2lz
b19oZWFwX2NvbmZpZy5oCShyZXZpc2lvbiAyNzk5NjQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9pc29faGVhcF9jb25maWcuaAkod29ya2luZyBjb3B5KQpAQCAtNTIsNyAr
NTIsOCBAQCBQQVNfQkVHSU5fRVhURVJOX0M7CiAgICAgLnNtYWxsX3NlZ3JlZ2F0ZWRfcGFnZV9z
aXplID0gUEFTX1NNQUxMX1BBR0VfREVGQVVMVF9TSVpFLCBcCiAgICAgLnNtYWxsX3NlZ3JlZ2F0
ZWRfd2FzdGVhZ2VfaGFuZGljYXAgPSBQQVNfU01BTExfUEFHRV9IQU5ESUNBUCwgXAogICAgIC5z
bWFsbF9zZWdyZWdhdGVkX2VuYWJsZV9lbXB0eV93b3JkX2VsaWdpYmlsaXR5X29wdGltaXphdGlv
biA9IGZhbHNlLCBcCi0gICAgLnNtYWxsX3VzZV9yZXZlcnNlZF9jdXJyZW50X3dvcmQgPSBQQVNf
QVJNNjQsIFwKKyAgICAuc21hbGxfc2VncmVnYXRlZF91c2VfcmV2ZXJzZWRfY3VycmVudF93b3Jk
ID0gUEFTX0FSTTY0LCBcCisgICAgLmVuYWJsZV92aWV3X2NhY2hlID0gZmFsc2UsIFwKICAgICAu
dXNlX3NtYWxsX2JpdGZpdCA9IHRydWUsIFwKICAgICAuc21hbGxfYml0Zml0X21pbl9hbGlnbl9z
aGlmdCA9IElTT19NSU5BTElHTl9TSElGVCwgXAogICAgIC5zbWFsbF9iaXRmaXRfcGFnZV9zaXpl
ID0gUEFTX1NNQUxMX0JJVEZJVF9QQUdFX0RFRkFVTFRfU0laRSwgXApJbmRleDogU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvaXNvX2hlYXBfaW5saW5lcy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2lzb19oZWFwX2lubGluZXMuaAkocmV2
aXNpb24gMjc5OTY0KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvaXNvX2hl
YXBfaW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC00OCw3ICs0OCw3IEBAIFBBU19DUkVBVEVf
VFJZX0FMTE9DQVRFX0lOVFJJTlNJQ19QUklNSVQKICAgICBJU09fSEVBUF9DT05GSUcsCiAgICAg
Jmlzb19pbnRyaW5zaWNfcHJpbWl0aXZlX3J1bnRpbWVfY29uZmlnLmJhc2UsCiAgICAgJmlzb19h
bGxvY2F0b3JfY291bnRzLAotICAgIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHRfc2V0
X2Vycm5vLAorICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9zZXRfZXJybm8sCiAgICAgJmlzb19j
b21tb25fcHJpbWl0aXZlX2hlYXAsCiAgICAgJmlzb19jb21tb25fcHJpbWl0aXZlX2hlYXBfc3Vw
cG9ydCwKICAgICBwYXNfaW50cmluc2ljX2hlYXBfaXNfbm90X2Rlc2lnbmF0ZWQpOwpAQCAtNjAs
NyArNjAsNyBAQCBQQVNfQ1JFQVRFX1RSWV9BTExPQ0FURV9JTlRSSU5TSUNfUFJJTUlUCiAgICAg
SVNPX0hFQVBfQ09ORklHLAogICAgICZpc29faW50cmluc2ljX3ByaW1pdGl2ZV9ydW50aW1lX2Nv
bmZpZy5iYXNlLAogICAgICZpc29fYWxsb2NhdG9yX2NvdW50cywKLSAgICBwYXNfaW50cmluc2lj
X2FsbG9jYXRpb25fcmVzdWx0X3NldF9lcnJubywKKyAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRf
c2V0X2Vycm5vLAogICAgICZpc29fY29tbW9uX3ByaW1pdGl2ZV9oZWFwLAogICAgICZpc29fY29t
bW9uX3ByaW1pdGl2ZV9oZWFwX3N1cHBvcnQsCiAgICAgcGFzX2ludHJpbnNpY19oZWFwX2lzX25v
dF9kZXNpZ25hdGVkKTsKQEAgLTcwLDcgKzcwLDcgQEAgUEFTX0NSRUFURV9UUllfQUxMT0NBVEVf
SU5UUklOU0lDX1BSSU1JVAogICAgIElTT19IRUFQX0NPTkZJRywKICAgICAmaXNvX2ludHJpbnNp
Y19wcmltaXRpdmVfcnVudGltZV9jb25maWcuYmFzZSwKICAgICAmaXNvX2FsbG9jYXRvcl9jb3Vu
dHMsCi0gICAgcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdF9jcmFzaF9vbl9lcnJvciwK
KyAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfY3Jhc2hfb25fZXJyb3IsCiAgICAgJmlzb19jb21t
b25fcHJpbWl0aXZlX2hlYXAsCiAgICAgJmlzb19jb21tb25fcHJpbWl0aXZlX2hlYXBfc3VwcG9y
dCwKICAgICBwYXNfaW50cmluc2ljX2hlYXBfaXNfbm90X2Rlc2lnbmF0ZWQpOwpAQCAtODAsNzMg
KzgwLDczIEBAIFBBU19DUkVBVEVfVFJZX0FMTE9DQVRFX0lOVFJJTlNJQ19QUklNSVQKICAgICBJ
U09fSEVBUF9DT05GSUcsCiAgICAgJmlzb19pbnRyaW5zaWNfcHJpbWl0aXZlX3J1bnRpbWVfY29u
ZmlnLmJhc2UsCiAgICAgJmlzb19hbGxvY2F0b3JfY291bnRzLAotICAgIHBhc19pbnRyaW5zaWNf
YWxsb2NhdGlvbl9yZXN1bHRfY3Jhc2hfb25fZXJyb3IsCisgICAgcGFzX2FsbG9jYXRpb25fcmVz
dWx0X2NyYXNoX29uX2Vycm9yLAogICAgICZpc29fY29tbW9uX3ByaW1pdGl2ZV9oZWFwLAogICAg
ICZpc29fY29tbW9uX3ByaW1pdGl2ZV9oZWFwX3N1cHBvcnQsCiAgICAgcGFzX2ludHJpbnNpY19o
ZWFwX2lzX25vdF9kZXNpZ25hdGVkKTsKIAogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQq
IGlzb190cnlfYWxsb2NhdGVfY29tbW9uX3ByaW1pdGl2ZV9pbmxpbmUoc2l6ZV90IHNpemUpCiB7
Ci0gICAgcmV0dXJuIGlzb190cnlfYWxsb2NhdGVfY29tbW9uX3ByaW1pdGl2ZV9pbXBsKHNpemUs
IDEpLnB0cjsKKyAgICByZXR1cm4gKHZvaWQqKWlzb190cnlfYWxsb2NhdGVfY29tbW9uX3ByaW1p
dGl2ZV9pbXBsKHNpemUsIDEpLmJlZ2luOwogfQogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUg
dm9pZCoKIGlzb190cnlfYWxsb2NhdGVfY29tbW9uX3ByaW1pdGl2ZV93aXRoX2FsaWdubWVudF9p
bmxpbmUoc2l6ZV90IHNpemUsIHNpemVfdCBhbGlnbm1lbnQpCiB7Ci0gICAgcmV0dXJuIGlzb190
cnlfYWxsb2NhdGVfY29tbW9uX3ByaW1pdGl2ZV93aXRoX2FsaWdubWVudF9pbXBsKHNpemUsIGFs
aWdubWVudCkucHRyOworICAgIHJldHVybiAodm9pZCopaXNvX3RyeV9hbGxvY2F0ZV9jb21tb25f
cHJpbWl0aXZlX3dpdGhfYWxpZ25tZW50X2ltcGwoc2l6ZSwgYWxpZ25tZW50KS5iZWdpbjsKIH0K
IAogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQqIGlzb190cnlfYWxsb2NhdGVfY29tbW9u
X3ByaW1pdGl2ZV96ZXJvZWRfaW5saW5lKHNpemVfdCBzaXplKQogewotICAgIHJldHVybiBwYXNf
aW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0X3plcm8oCisgICAgcmV0dXJuICh2b2lkKilwYXNf
YWxsb2NhdGlvbl9yZXN1bHRfemVybygKICAgICAgICAgaXNvX3RyeV9hbGxvY2F0ZV9jb21tb25f
cHJpbWl0aXZlX2ltcGwoc2l6ZSwgMSksCi0gICAgICAgIHNpemUpLnB0cjsKKyAgICAgICAgc2l6
ZSkuYmVnaW47CiB9CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKiBpc29fYWxsb2Nh
dGVfY29tbW9uX3ByaW1pdGl2ZV9pbmxpbmUoc2l6ZV90IHNpemUpCiB7Ci0gICAgcmV0dXJuIGlz
b19hbGxvY2F0ZV9jb21tb25fcHJpbWl0aXZlX2ltcGwoc2l6ZSwgMSkucHRyOworICAgIHJldHVy
biAodm9pZCopaXNvX2FsbG9jYXRlX2NvbW1vbl9wcmltaXRpdmVfaW1wbChzaXplLCAxKS5iZWdp
bjsKIH0KIAogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQqCiBpc29fYWxsb2NhdGVfY29t
bW9uX3ByaW1pdGl2ZV93aXRoX2FsaWdubWVudF9pbmxpbmUoc2l6ZV90IHNpemUsIHNpemVfdCBh
bGlnbm1lbnQpCiB7Ci0gICAgcmV0dXJuIGlzb19hbGxvY2F0ZV9jb21tb25fcHJpbWl0aXZlX3dp
dGhfYWxpZ25tZW50X2ltcGwoc2l6ZSwgYWxpZ25tZW50KS5wdHI7CisgICAgcmV0dXJuICh2b2lk
Kilpc29fYWxsb2NhdGVfY29tbW9uX3ByaW1pdGl2ZV93aXRoX2FsaWdubWVudF9pbXBsKHNpemUs
IGFsaWdubWVudCkuYmVnaW47CiB9CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKiBp
c29fYWxsb2NhdGVfY29tbW9uX3ByaW1pdGl2ZV96ZXJvZWRfaW5saW5lKHNpemVfdCBzaXplKQog
ewotICAgIHJldHVybiBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0X3plcm8oCisgICAg
cmV0dXJuICh2b2lkKilwYXNfYWxsb2NhdGlvbl9yZXN1bHRfemVybygKICAgICAgICAgaXNvX2Fs
bG9jYXRlX2NvbW1vbl9wcmltaXRpdmVfaW1wbChzaXplLCAxKSwKLSAgICAgICAgc2l6ZSkucHRy
OworICAgICAgICBzaXplKS5iZWdpbjsKIH0KIAogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZv
aWQqCiBpc29fdHJ5X3JlYWxsb2NhdGVfY29tbW9uX3ByaW1pdGl2ZV9pbmxpbmUodm9pZCogb2xk
X3B0ciwgc2l6ZV90IG5ld19zaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHBhc19yZWFsbG9jYXRlX2ZyZWVfbW9kZSBmcmVlX21vZGUpCiB7Ci0gICAgcmV0
dXJuIHBhc190cnlfcmVhbGxvY2F0ZV9pbnRyaW5zaWNfcHJpbWl0aXZlKAorICAgIHJldHVybiAo
dm9pZCopcGFzX3RyeV9yZWFsbG9jYXRlX2ludHJpbnNpY19wcmltaXRpdmUoCiAgICAgICAgIG9s
ZF9wdHIsCiAgICAgICAgICZpc29fY29tbW9uX3ByaW1pdGl2ZV9oZWFwLAogICAgICAgICBuZXdf
c2l6ZSwKICAgICAgICAgSVNPX0hFQVBfQ09ORklHLAogICAgICAgICBpc29fdHJ5X2FsbG9jYXRl
X2NvbW1vbl9wcmltaXRpdmVfaW1wbF9mb3JfcmVhbGxvYywKICAgICAgICAgcGFzX3JlYWxsb2Nh
dGVfYWxsb3dfaGVhcF90ZWxlcG9ydCwKLSAgICAgICAgZnJlZV9tb2RlKS5wdHI7CisgICAgICAg
IGZyZWVfbW9kZSkuYmVnaW47CiB9CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKgog
aXNvX3JlYWxsb2NhdGVfY29tbW9uX3ByaW1pdGl2ZV9pbmxpbmUodm9pZCogb2xkX3B0ciwgc2l6
ZV90IG5ld19zaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFz
X3JlYWxsb2NhdGVfZnJlZV9tb2RlIGZyZWVfbW9kZSkKIHsKLSAgICByZXR1cm4gcGFzX3RyeV9y
ZWFsbG9jYXRlX2ludHJpbnNpY19wcmltaXRpdmUoCisgICAgcmV0dXJuICh2b2lkKilwYXNfdHJ5
X3JlYWxsb2NhdGVfaW50cmluc2ljX3ByaW1pdGl2ZSgKICAgICAgICAgb2xkX3B0ciwKICAgICAg
ICAgJmlzb19jb21tb25fcHJpbWl0aXZlX2hlYXAsCiAgICAgICAgIG5ld19zaXplLAogICAgICAg
ICBJU09fSEVBUF9DT05GSUcsCiAgICAgICAgIGlzb19hbGxvY2F0ZV9jb21tb25fcHJpbWl0aXZl
X2ltcGxfZm9yX3JlYWxsb2MsCiAgICAgICAgIHBhc19yZWFsbG9jYXRlX2FsbG93X2hlYXBfdGVs
ZXBvcnQsCi0gICAgICAgIGZyZWVfbW9kZSkucHRyOworICAgICAgICBmcmVlX21vZGUpLmJlZ2lu
OwogfQogCiBQQVNfQ1JFQVRFX1RSWV9BTExPQ0FURSgKQEAgLTE1NCw3ICsxNTQsNyBAQCBQQVNf
Q1JFQVRFX1RSWV9BTExPQ0FURSgKICAgICBJU09fSEVBUF9DT05GSUcsCiAgICAgJmlzb190eXBl
ZF9ydW50aW1lX2NvbmZpZy5iYXNlLAogICAgICZpc29fYWxsb2NhdG9yX2NvdW50cywKLSAgICBw
YXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0X3NldF9lcnJubyk7CisgICAgcGFzX2FsbG9j
YXRpb25fcmVzdWx0X3NldF9lcnJubyk7CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lk
KiBpc29fdHJ5X2FsbG9jYXRlX2lubGluZShwYXNfaGVhcF9yZWYqIGhlYXBfcmVmKQogewpAQCAt
MTY2LDcgKzE2Niw3IEBAIFBBU19DUkVBVEVfVFJZX0FMTE9DQVRFKAogICAgIElTT19IRUFQX0NP
TkZJRywKICAgICAmaXNvX3R5cGVkX3J1bnRpbWVfY29uZmlnLmJhc2UsCiAgICAgJmlzb19hbGxv
Y2F0b3JfY291bnRzLAotICAgIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHRfY3Jhc2hf
b25fZXJyb3IpOworICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9jcmFzaF9vbl9lcnJvcik7CiAK
IHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKiBpc29fYWxsb2NhdGVfaW5saW5lKHBhc19o
ZWFwX3JlZiogaGVhcF9yZWYpCiB7CkBAIC0xNzgsNyArMTc4LDcgQEAgUEFTX0NSRUFURV9UUllf
QUxMT0NBVEVfQVJSQVkoCiAgICAgSVNPX0hFQVBfQ09ORklHLAogICAgICZpc29fdHlwZWRfcnVu
dGltZV9jb25maWcuYmFzZSwKICAgICAmaXNvX2FsbG9jYXRvcl9jb3VudHMsCi0gICAgcGFzX2lu
dHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdF9zZXRfZXJybm8pOworICAgIHBhc19hbGxvY2F0aW9u
X3Jlc3VsdF9zZXRfZXJybm8pOwogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCoKIGlz
b190cnlfYWxsb2NhdGVfYXJyYXlfaW5saW5lKHBhc19oZWFwX3JlZiogaGVhcF9yZWYsIHNpemVf
dCBjb3VudCwgc2l6ZV90IGFsaWdubWVudCkKQEAgLTE5MSw3ICsxOTEsNyBAQCBQQVNfQ1JFQVRF
X1RSWV9BTExPQ0FURV9BUlJBWSgKICAgICBJU09fSEVBUF9DT05GSUcsCiAgICAgJmlzb190eXBl
ZF9ydW50aW1lX2NvbmZpZy5iYXNlLAogICAgICZpc29fYWxsb2NhdG9yX2NvdW50cywKLSAgICBw
YXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0X2NyYXNoX29uX2Vycm9yKTsKKyAgICBwYXNf
YWxsb2NhdGlvbl9yZXN1bHRfY3Jhc2hfb25fZXJyb3IpOwogCiBzdGF0aWMgUEFTX0FMV0FZU19J
TkxJTkUgdm9pZCoKIGlzb19hbGxvY2F0ZV9hcnJheV9pbmxpbmUocGFzX2hlYXBfcmVmKiBoZWFw
X3JlZiwgc2l6ZV90IGNvdW50LCBzaXplX3QgYWxpZ25tZW50KQpAQCAtMjQ3LDEyICsyNDcsMTIg
QEAgUEFTX0NSRUFURV9UUllfQUxMT0NBVEVfUFJJTUlUSVZFKAogICAgIElTT19IRUFQX0NPTkZJ
RywKICAgICAmaXNvX3ByaW1pdGl2ZV9ydW50aW1lX2NvbmZpZy5iYXNlLAogICAgICZpc29fYWxs
b2NhdG9yX2NvdW50cywKLSAgICBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0X3NldF9l
cnJubyk7CisgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X3NldF9lcnJubyk7CiAKIHN0YXRpYyBQ
QVNfQUxXQVlTX0lOTElORSB2b2lkKiBpc29fdHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZV9pbmxpbmUo
cGFzX3ByaW1pdGl2ZV9oZWFwX3JlZiogaGVhcF9yZWYsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBzaXplKQog
ewotICAgIHJldHVybiBpc29fdHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZV9pbXBsKGhlYXBfcmVmLCBz
aXplLCAxKS5wdHI7CisgICAgcmV0dXJuICh2b2lkKilpc29fdHJ5X2FsbG9jYXRlX3ByaW1pdGl2
ZV9pbXBsKGhlYXBfcmVmLCBzaXplLCAxKS5iZWdpbjsKIH0KIAogUEFTX0NSRUFURV9UUllfQUxM
T0NBVEVfUFJJTUlUSVZFKApAQCAtMjYwLDI4ICsyNjAsMjggQEAgUEFTX0NSRUFURV9UUllfQUxM
T0NBVEVfUFJJTUlUSVZFKAogICAgIElTT19IRUFQX0NPTkZJRywKICAgICAmaXNvX3ByaW1pdGl2
ZV9ydW50aW1lX2NvbmZpZy5iYXNlLAogICAgICZpc29fYWxsb2NhdG9yX2NvdW50cywKLSAgICBw
YXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0X2NyYXNoX29uX2Vycm9yKTsKKyAgICBwYXNf
YWxsb2NhdGlvbl9yZXN1bHRfY3Jhc2hfb25fZXJyb3IpOwogCiBzdGF0aWMgUEFTX0FMV0FZU19J
TkxJTkUgdm9pZCogaXNvX2FsbG9jYXRlX3ByaW1pdGl2ZV9pbmxpbmUocGFzX3ByaW1pdGl2ZV9o
ZWFwX3JlZiogaGVhcF9yZWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHNpemUpCiB7Ci0gICAgcmV0dXJuIGlzb19h
bGxvY2F0ZV9wcmltaXRpdmVfaW1wbChoZWFwX3JlZiwgc2l6ZSwgMSkucHRyOworICAgIHJldHVy
biAodm9pZCopaXNvX2FsbG9jYXRlX3ByaW1pdGl2ZV9pbXBsKGhlYXBfcmVmLCBzaXplLCAxKS5i
ZWdpbjsKIH0KIAogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQqIGlzb190cnlfYWxsb2Nh
dGVfcHJpbWl0aXZlX3plcm9lZF9pbmxpbmUocGFzX3ByaW1pdGl2ZV9oZWFwX3JlZiogaGVhcF9y
ZWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2l6ZSkKIHsKLSAgICByZXR1cm4gcGFzX2ludHJp
bnNpY19hbGxvY2F0aW9uX3Jlc3VsdF96ZXJvKAorICAgIHJldHVybiAodm9pZCopcGFzX2FsbG9j
YXRpb25fcmVzdWx0X3plcm8oCiAgICAgICAgIGlzb190cnlfYWxsb2NhdGVfcHJpbWl0aXZlX2lt
cGwoaGVhcF9yZWYsIHNpemUsIDEpLAotICAgICAgICBzaXplKS5wdHI7CisgICAgICAgIHNpemUp
LmJlZ2luOwogfQogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogaXNvX2FsbG9jYXRl
X3ByaW1pdGl2ZV96ZXJvZWRfaW5saW5lKHBhc19wcmltaXRpdmVfaGVhcF9yZWYqIGhlYXBfcmVm
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzaXplX3Qgc2l6ZSkKIHsKLSAgICByZXR1cm4gcGFzX2ludHJpbnNpY19h
bGxvY2F0aW9uX3Jlc3VsdF96ZXJvKAorICAgIHJldHVybiAodm9pZCopcGFzX2FsbG9jYXRpb25f
cmVzdWx0X3plcm8oCiAgICAgICAgIGlzb19hbGxvY2F0ZV9wcmltaXRpdmVfaW1wbChoZWFwX3Jl
Ziwgc2l6ZSwgMSksCi0gICAgICAgIHNpemUpLnB0cjsKKyAgICAgICAgc2l6ZSkuYmVnaW47CiB9
CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKgpAQCAtMjg5LDcgKzI4OSw3IEBAIGlz
b190cnlfYWxsb2NhdGVfcHJpbWl0aXZlX3dpdGhfYWxpZ25tZW4KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2l6ZSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgYWxpZ25tZW50KQog
ewotICAgIHJldHVybiBpc29fdHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZV9pbXBsKGhlYXBfcmVmLCBz
aXplLCBhbGlnbm1lbnQpLnB0cjsKKyAgICByZXR1cm4gKHZvaWQqKWlzb190cnlfYWxsb2NhdGVf
cHJpbWl0aXZlX2ltcGwoaGVhcF9yZWYsIHNpemUsIGFsaWdubWVudCkuYmVnaW47CiB9CiAKIHN0
YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKgpAQCAtMjk3LDcgKzI5Nyw3IEBAIGlzb19hbGxv
Y2F0ZV9wcmltaXRpdmVfd2l0aF9hbGlnbm1lbnRfaW4KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBzaXplLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGFsaWdubWVudCkKIHsKLSAgICByZXR1cm4g
aXNvX2FsbG9jYXRlX3ByaW1pdGl2ZV9pbXBsKGhlYXBfcmVmLCBzaXplLCBhbGlnbm1lbnQpLnB0
cjsKKyAgICByZXR1cm4gKHZvaWQqKWlzb19hbGxvY2F0ZV9wcmltaXRpdmVfaW1wbChoZWFwX3Jl
Ziwgc2l6ZSwgYWxpZ25tZW50KS5iZWdpbjsKIH0KIAogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5F
IHZvaWQqIGlzb190cnlfcmVhbGxvY2F0ZV9wcmltaXRpdmVfaW5saW5lKHZvaWQqIG9sZF9wdHIs
CkBAIC0zMDUsNyArMzA1LDcgQEAgc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQqIGlzb190
cnlfcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHNpemVfdCBuZXdfc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfcmVhbGxvY2F0
ZV9mcmVlX21vZGUgZnJlZV9tb2RlKQogewotICAgIHJldHVybiBwYXNfdHJ5X3JlYWxsb2NhdGVf
cHJpbWl0aXZlKAorICAgIHJldHVybiAodm9pZCopcGFzX3RyeV9yZWFsbG9jYXRlX3ByaW1pdGl2
ZSgKICAgICAgICAgb2xkX3B0ciwKICAgICAgICAgaGVhcF9yZWYsCiAgICAgICAgIG5ld19zaXpl
LApAQCAtMzEzLDcgKzMxMyw3IEBAIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKiBpc29f
dHJ5X3IKICAgICAgICAgaXNvX3RyeV9hbGxvY2F0ZV9wcmltaXRpdmVfaW1wbF9mb3JfcmVhbGxv
YywKICAgICAgICAgJmlzb19wcmltaXRpdmVfcnVudGltZV9jb25maWcuYmFzZSwKICAgICAgICAg
cGFzX3JlYWxsb2NhdGVfYWxsb3dfaGVhcF90ZWxlcG9ydCwKLSAgICAgICAgZnJlZV9tb2RlKS5w
dHI7CisgICAgICAgIGZyZWVfbW9kZSkuYmVnaW47CiB9CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lO
TElORSB2b2lkKiBpc29fcmVhbGxvY2F0ZV9wcmltaXRpdmVfaW5saW5lKHZvaWQqIG9sZF9wdHIs
CkBAIC0zMjEsNyArMzIxLDcgQEAgc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQqIGlzb19y
ZWFsbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc2l6ZV90IG5ld19zaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3JlYWxsb2NhdGVfZnJlZV9t
b2RlIGZyZWVfbW9kZSkKIHsKLSAgICByZXR1cm4gcGFzX3RyeV9yZWFsbG9jYXRlX3ByaW1pdGl2
ZSgKKyAgICByZXR1cm4gKHZvaWQqKXBhc190cnlfcmVhbGxvY2F0ZV9wcmltaXRpdmUoCiAgICAg
ICAgIG9sZF9wdHIsCiAgICAgICAgIGhlYXBfcmVmLAogICAgICAgICBuZXdfc2l6ZSwKQEAgLTMy
OSw3ICszMjksNyBAQCBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogaXNvX3JlYWxsCiAg
ICAgICAgIGlzb19hbGxvY2F0ZV9wcmltaXRpdmVfaW1wbF9mb3JfcmVhbGxvYywKICAgICAgICAg
Jmlzb19wcmltaXRpdmVfcnVudGltZV9jb25maWcuYmFzZSwKICAgICAgICAgcGFzX3JlYWxsb2Nh
dGVfYWxsb3dfaGVhcF90ZWxlcG9ydCwKLSAgICAgICAgZnJlZV9tb2RlKS5wdHI7CisgICAgICAg
IGZyZWVfbW9kZSkuYmVnaW47CiB9CiAKIFBBU19DUkVBVEVfVFJZX0FMTE9DQVRFX1BSSU1JVElW
RSgKQEAgLTMzNywxNiArMzM3LDE2IEBAIFBBU19DUkVBVEVfVFJZX0FMTE9DQVRFX1BSSU1JVElW
RSgKICAgICBJU09fSEVBUF9DT05GSUcsCiAgICAgJmlzb19vYmpjX3J1bnRpbWVfY29uZmlnLmJh
c2UsCiAgICAgJmlzb19hbGxvY2F0b3JfY291bnRzLAotICAgIHBhc19pbnRyaW5zaWNfYWxsb2Nh
dGlvbl9yZXN1bHRfc2V0X2Vycm5vKTsKKyAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfc2V0X2Vy
cm5vKTsKIAogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQqIGlzb190cnlfYWxsb2NhdGVf
Zm9yX29iamNfaW5saW5lKGNvbnN0IHZvaWQqIGNscywgc2l6ZV90IHNpemUpCiB7Ci0gICAgcmV0
dXJuIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHRfemVybygKKyAgICByZXR1cm4gKHZv
aWQqKXBhc19hbGxvY2F0aW9uX3Jlc3VsdF96ZXJvKAogICAgICAgICBpc29fdHJ5X2FsbG9jYXRl
X2Zvcl9vYmpjX2ltcGwoCiAgICAgICAgICAgICBwYXNfZHluYW1pY19wcmltaXRpdmVfaGVhcF9t
YXBfZmluZCgKICAgICAgICAgICAgICAgICAmaXNvX29iamNfZHluYW1pY19oZWFwX21hcCwgY2xz
LCBzaXplKSwKICAgICAgICAgICAgIHNpemUsIDEpLAotICAgICAgICBzaXplKS5wdHI7CisgICAg
ICAgIHNpemUpLmJlZ2luOwogfQogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgYm9vbCBpc29f
aGFzX29iamVjdF9pbmxpbmUodm9pZCogcHRyKQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvaXNvX3Rlc3RfaGVhcC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL2lzb190ZXN0X2hlYXAuYwkocmV2aXNpb24gMjc5OTY0KQorKysg
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvaXNvX3Rlc3RfaGVhcC5jCSh3b3JraW5n
IGNvcHkpCkBAIC01NSw3ICs1NSw3IEBAIFBBU19DUkVBVEVfVFJZX0FMTE9DQVRFX0lOVFJJTlNJ
Q19QUklNSVQKICAgICBJU09fVEVTVF9IRUFQX0NPTkZJRywKICAgICAmaXNvX3Rlc3RfaW50cmlu
c2ljX3ByaW1pdGl2ZV9ydW50aW1lX2NvbmZpZy5iYXNlLAogICAgICZpc29fYWxsb2NhdG9yX2Nv
dW50cywKLSAgICBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0X2NyYXNoX29uX2Vycm9y
LAorICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9jcmFzaF9vbl9lcnJvciwKICAgICAmaXNvX3Rl
c3RfY29tbW9uX3ByaW1pdGl2ZV9oZWFwLAogICAgICZpc29fdGVzdF9jb21tb25fcHJpbWl0aXZl
X2hlYXBfc3VwcG9ydCwKICAgICBwYXNfaW50cmluc2ljX2hlYXBfaXNfbm90X2Rlc2lnbmF0ZWQp
OwpAQCAtNjUsMTggKzY1LDE4IEBAIFBBU19DUkVBVEVfVFJZX0FMTE9DQVRFKAogICAgIElTT19U
RVNUX0hFQVBfQ09ORklHLAogICAgICZpc29fdGVzdF90eXBlZF9ydW50aW1lX2NvbmZpZy5iYXNl
LAogICAgICZpc29fYWxsb2NhdG9yX2NvdW50cywKLSAgICBwYXNfaW50cmluc2ljX2FsbG9jYXRp
b25fcmVzdWx0X2NyYXNoX29uX2Vycm9yKTsKKyAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfY3Jh
c2hfb25fZXJyb3IpOwogCiBQQVNfQ1JFQVRFX1RSWV9BTExPQ0FURV9BUlJBWSgKICAgICB0ZXN0
X2FsbG9jYXRlX2FycmF5X2ltcGwsCiAgICAgSVNPX1RFU1RfSEVBUF9DT05GSUcsCiAgICAgJmlz
b190ZXN0X3R5cGVkX3J1bnRpbWVfY29uZmlnLmJhc2UsCiAgICAgJmlzb19hbGxvY2F0b3JfY291
bnRzLAotICAgIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHRfY3Jhc2hfb25fZXJyb3Ip
OworICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9jcmFzaF9vbl9lcnJvcik7CiAKIHZvaWQqIGlz
b190ZXN0X2FsbG9jYXRlX2NvbW1vbl9wcmltaXRpdmUoc2l6ZV90IHNpemUpCiB7Ci0gICAgcmV0
dXJuIHRlc3RfYWxsb2NhdGVfY29tbW9uX3ByaW1pdGl2ZShzaXplLCAxKS5wdHI7CisgICAgcmV0
dXJuICh2b2lkKil0ZXN0X2FsbG9jYXRlX2NvbW1vbl9wcmltaXRpdmUoc2l6ZSwgMSkuYmVnaW47
CiB9CiAKIHZvaWQqIGlzb190ZXN0X2FsbG9jYXRlKHBhc19oZWFwX3JlZiogaGVhcF9yZWYpCklu
ZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9pc29fdGVzdF9oZWFwX2NvbmZp
Zy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2lzb190
ZXN0X2hlYXBfY29uZmlnLmMJKHJldmlzaW9uIDI3OTk2NCkKKysrIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL2lzb190ZXN0X2hlYXBfY29uZmlnLmMJKHdvcmtpbmcgY29weSkKQEAg
LTM3LDcgKzM3LDggQEAgcGFzX2hlYXBfY29uZmlnIGlzb190ZXN0X2hlYXBfY29uZmlnID0gSQog
CiBQQVNfQkFTSUNfSEVBUF9DT05GSUdfREVGSU5JVElPTlMoCiAgICAgaXNvX3Rlc3QsIElTT19U
RVNULAotICAgIC5hbGxvY2F0ZV9wYWdlX3Nob3VsZF96ZXJvID0gZmFsc2UpOworICAgIC5hbGxv
Y2F0ZV9wYWdlX3Nob3VsZF96ZXJvID0gZmFsc2UsCisgICAgLmludHJpbnNpY19wcmltaXRpdmVf
dmlld19jYWNoZV9jYXBhY2l0eSA9IHBhc19oZWFwX3J1bnRpbWVfY29uZmlnX3plcm9fdmlld19j
YWNoZV9jYXBhY2l0eSk7CiAKICNlbmRpZiAvKiBQQVNfRU5BQkxFX0lTT19URVNUICovCiAKSW5k
ZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2lzb190ZXN0X2hlYXBfY29uZmln
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvaXNvX3Rl
c3RfaGVhcF9jb25maWcuaAkocmV2aXNpb24gMjc5OTY0KQorKysgU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvaXNvX3Rlc3RfaGVhcF9jb25maWcuaAkod29ya2luZyBjb3B5KQpAQCAt
NTIsNyArNTIsOCBAQCBQQVNfQkVHSU5fRVhURVJOX0M7CiAgICAgLnNtYWxsX3NlZ3JlZ2F0ZWRf
cGFnZV9zaXplID0gUEFTX1NNQUxMX1BBR0VfREVGQVVMVF9TSVpFLCBcCiAgICAgLnNtYWxsX3Nl
Z3JlZ2F0ZWRfd2FzdGVhZ2VfaGFuZGljYXAgPSBQQVNfU01BTExfUEFHRV9IQU5ESUNBUCwgXAog
ICAgIC5zbWFsbF9zZWdyZWdhdGVkX2VuYWJsZV9lbXB0eV93b3JkX2VsaWdpYmlsaXR5X29wdGlt
aXphdGlvbiA9IGZhbHNlLCBcCi0gICAgLnNtYWxsX3VzZV9yZXZlcnNlZF9jdXJyZW50X3dvcmQg
PSBmYWxzZSwgXAorICAgIC5zbWFsbF9zZWdyZWdhdGVkX3VzZV9yZXZlcnNlZF9jdXJyZW50X3dv
cmQgPSBmYWxzZSwgXAorICAgIC5lbmFibGVfdmlld19jYWNoZSA9IGZhbHNlLCBcCiAgICAgLnVz
ZV9zbWFsbF9iaXRmaXQgPSB0cnVlLCBcCiAgICAgLnNtYWxsX2JpdGZpdF9taW5fYWxpZ25fc2hp
ZnQgPSBJU09fVEVTVF9NSU5BTElHTl9TSElGVCwgXAogICAgIC5zbWFsbF9iaXRmaXRfcGFnZV9z
aXplID0gUEFTX1NNQUxMX0JJVEZJVF9QQUdFX0RFRkFVTFRfU0laRSwgXApJbmRleDogU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvaml0X2hlYXAuYwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9qaXRfaGVhcC5jCShyZXZpc2lvbiAyNzk5NjQp
CisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9qaXRfaGVhcC5jCSh3b3JraW5n
IGNvcHkpCkBAIC02MCwxNCArNjAsMTQgQEAgUEFTX0NSRUFURV9UUllfQUxMT0NBVEVfSU5UUklO
U0lDX1BSSU1JVAogICAgIEpJVF9IRUFQX0NPTkZJRywKICAgICAmaml0X2hlYXBfcnVudGltZV9j
b25maWcsCiAgICAgJmppdF9hbGxvY2F0b3JfY291bnRzLAotICAgIHBhc19pbnRyaW5zaWNfYWxs
b2NhdGlvbl9yZXN1bHRfaWRlbnRpdHksCisgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X2lkZW50
aXR5LAogICAgICZqaXRfY29tbW9uX3ByaW1pdGl2ZV9oZWFwLAogICAgICZqaXRfY29tbW9uX3By
aW1pdGl2ZV9oZWFwX3N1cHBvcnQsCiAgICAgcGFzX2ludHJpbnNpY19oZWFwX2lzX25vdF9kZXNp
Z25hdGVkKTsKIAogdm9pZCogaml0X2hlYXBfdHJ5X2FsbG9jYXRlKHNpemVfdCBzaXplKQogewot
ICAgIHJldHVybiBqaXRfdHJ5X2FsbG9jYXRlX2NvbW1vbl9wcmltaXRpdmVfaW1wbChzaXplLCAx
KS5wdHI7CisgICAgcmV0dXJuICh2b2lkKilqaXRfdHJ5X2FsbG9jYXRlX2NvbW1vbl9wcmltaXRp
dmVfaW1wbChzaXplLCAxKS5iZWdpbjsKIH0KIAogdm9pZCBqaXRfaGVhcF9zaHJpbmsodm9pZCog
b2JqZWN0LCBzaXplX3QgbmV3X3NpemUpCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9qaXRfaGVhcF9jb25maWcuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9qaXRfaGVhcF9jb25maWcuYwkocmV2aXNpb24gMjc5OTY0KQorKysg
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvaml0X2hlYXBfY29uZmlnLmMJKHdvcmtp
bmcgY29weSkKQEAgLTk3LDggKzk3LDEwIEBAIHBhc19oZWFwX3J1bnRpbWVfY29uZmlnIGppdF9o
ZWFwX3J1bnRpbWUKICAgICAuaXNfcGFydF9vZl9oZWFwID0gdHJ1ZSwKICAgICAuZGlyZWN0b3J5
X3NpemVfYm91bmRfZm9yX3BhcnRpYWxfdmlld3MgPSAwLAogICAgIC5kaXJlY3Rvcnlfc2l6ZV9i
b3VuZF9mb3JfYmFzZWxpbmVfYWxsb2NhdG9ycyA9IDAsCisgICAgLmRpcmVjdG9yeV9zaXplX2Jv
dW5kX2Zvcl9ub192aWV3X2NhY2hlID0gVUlOVF9NQVgsCiAgICAgLm1heF9zZWdyZWdhdGVkX29i
amVjdF9zaXplID0gMCwKLSAgICAubWF4X2JpdGZpdF9vYmplY3Rfc2l6ZSA9IFVJTlRfTUFYCisg
ICAgLm1heF9iaXRmaXRfb2JqZWN0X3NpemUgPSBVSU5UX01BWCwKKyAgICAudmlld19jYWNoZV9j
YXBhY2l0eV9mb3Jfb2JqZWN0X3NpemUgPSBwYXNfaGVhcF9ydW50aW1lX2NvbmZpZ196ZXJvX3Zp
ZXdfY2FjaGVfY2FwYWNpdHkKIH07CiAKIGppdF9oZWFwX2NvbmZpZ19yb290X2RhdGEgaml0X3Jv
b3RfZGF0YSA9IHsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL21pbmFs
aWduMzJfaGVhcC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL21pbmFsaWduMzJfaGVhcC5jCShyZXZpc2lvbiAyNzk5NjQpCisrKyBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9taW5hbGlnbjMyX2hlYXAuYwkod29ya2luZyBjb3B5KQpAQCAt
NTQsNyArNTQsNyBAQCBQQVNfQ1JFQVRFX1RSWV9BTExPQ0FURV9JTlRSSU5TSUNfUFJJTUlUCiAg
ICAgTUlOQUxJR04zMl9IRUFQX0NPTkZJRywKICAgICAmbWluYWxpZ24zMl9pbnRyaW5zaWNfcHJp
bWl0aXZlX3J1bnRpbWVfY29uZmlnLmJhc2UsCiAgICAgJmlzb19hbGxvY2F0b3JfY291bnRzLAot
ICAgIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHRfY3Jhc2hfb25fZXJyb3IsCisgICAg
cGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyYXNoX29uX2Vycm9yLAogICAgICZtaW5hbGlnbjMyX2Nv
bW1vbl9wcmltaXRpdmVfaGVhcCwKICAgICAmbWluYWxpZ24zMl9jb21tb25fcHJpbWl0aXZlX2hl
YXBfc3VwcG9ydCwKICAgICBwYXNfaW50cmluc2ljX2hlYXBfaXNfZGVzaWduYXRlZCk7CkBAIC02
NCwxOCArNjQsMTggQEAgUEFTX0NSRUFURV9UUllfQUxMT0NBVEUoCiAgICAgTUlOQUxJR04zMl9I
RUFQX0NPTkZJRywKICAgICAmbWluYWxpZ24zMl90eXBlZF9ydW50aW1lX2NvbmZpZy5iYXNlLAog
ICAgICZpc29fYWxsb2NhdG9yX2NvdW50cywKLSAgICBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25f
cmVzdWx0X2NyYXNoX29uX2Vycm9yKTsKKyAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfY3Jhc2hf
b25fZXJyb3IpOwogCiBQQVNfQ1JFQVRFX1RSWV9BTExPQ0FURV9BUlJBWSgKICAgICB0ZXN0X2Fs
bG9jYXRlX2FycmF5X2ltcGwsCiAgICAgTUlOQUxJR04zMl9IRUFQX0NPTkZJRywKICAgICAmbWlu
YWxpZ24zMl90eXBlZF9ydW50aW1lX2NvbmZpZy5iYXNlLAogICAgICZpc29fYWxsb2NhdG9yX2Nv
dW50cywKLSAgICBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0X2NyYXNoX29uX2Vycm9y
KTsKKyAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfY3Jhc2hfb25fZXJyb3IpOwogCiB2b2lkKiBt
aW5hbGlnbjMyX2FsbG9jYXRlX2NvbW1vbl9wcmltaXRpdmUoc2l6ZV90IHNpemUpCiB7Ci0gICAg
cmV0dXJuIHRlc3RfYWxsb2NhdGVfY29tbW9uX3ByaW1pdGl2ZShzaXplLCAxKS5wdHI7CisgICAg
cmV0dXJuICh2b2lkKil0ZXN0X2FsbG9jYXRlX2NvbW1vbl9wcmltaXRpdmUoc2l6ZSwgMSkuYmVn
aW47CiB9CiAKIHZvaWQqIG1pbmFsaWduMzJfYWxsb2NhdGUocGFzX2hlYXBfcmVmKiBoZWFwX3Jl
ZikKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL21pbmFsaWduMzJfaGVh
cF9jb25maWcuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9taW5hbGlnbjMyX2hlYXBfY29uZmlnLmMJKHJldmlzaW9uIDI3OTk2NCkKKysrIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL21pbmFsaWduMzJfaGVhcF9jb25maWcuYwkod29ya2lu
ZyBjb3B5KQpAQCAtMzksNyArMzksOCBAQCBwYXNfaGVhcF9jb25maWcgbWluYWxpZ24zMl9oZWFw
X2NvbmZpZyA9CiAKIFBBU19CQVNJQ19IRUFQX0NPTkZJR19ERUZJTklUSU9OUygKICAgICBtaW5h
bGlnbjMyLCBNSU5BTElHTjMyLAotICAgIC5hbGxvY2F0ZV9wYWdlX3Nob3VsZF96ZXJvID0gZmFs
c2UpOworICAgIC5hbGxvY2F0ZV9wYWdlX3Nob3VsZF96ZXJvID0gZmFsc2UsCisgICAgLmludHJp
bnNpY19wcmltaXRpdmVfdmlld19jYWNoZV9jYXBhY2l0eSA9IHBhc19oZWFwX3J1bnRpbWVfY29u
ZmlnX2FnZ3Jlc3NpdmVfdmlld19jYWNoZV9jYXBhY2l0eSk7CiAKIHZvaWQgbWluYWxpZ24zMl9o
ZWFwX2NvbmZpZ19hY3RpdmF0ZSh2b2lkKQogewpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvbWluYWxpZ24zMl9oZWFwX2NvbmZpZy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL21pbmFsaWduMzJfaGVhcF9jb25maWcuaAkocmV2
aXNpb24gMjc5OTY0KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvbWluYWxp
Z24zMl9oZWFwX2NvbmZpZy5oCSh3b3JraW5nIGNvcHkpCkBAIC01NCw3ICs1NCw4IEBAIFBBU19B
UEkgdm9pZCBtaW5hbGlnbjMyX2hlYXBfY29uZmlnX2FjdGkKICAgICAuc21hbGxfc2VncmVnYXRl
ZF9wYWdlX3NpemUgPSBQQVNfU01BTExfUEFHRV9ERUZBVUxUX1NJWkUsIFwKICAgICAuc21hbGxf
c2VncmVnYXRlZF93YXN0ZWFnZV9oYW5kaWNhcCA9IFBBU19TTUFMTF9QQUdFX0hBTkRJQ0FQLCBc
CiAgICAgLnNtYWxsX3NlZ3JlZ2F0ZWRfZW5hYmxlX2VtcHR5X3dvcmRfZWxpZ2liaWxpdHlfb3B0
aW1pemF0aW9uID0gdHJ1ZSwgXAotICAgIC5zbWFsbF91c2VfcmV2ZXJzZWRfY3VycmVudF93b3Jk
ID0gdHJ1ZSwgXAorICAgIC5zbWFsbF9zZWdyZWdhdGVkX3VzZV9yZXZlcnNlZF9jdXJyZW50X3dv
cmQgPSB0cnVlLCBcCisgICAgLmVuYWJsZV92aWV3X2NhY2hlID0gdHJ1ZSwgXAogICAgIC51c2Vf
c21hbGxfYml0Zml0ID0gdHJ1ZSwgXAogICAgIC5zbWFsbF9iaXRmaXRfbWluX2FsaWduX3NoaWZ0
ID0gTUlOQUxJR04zMl9NSU5BTElHTl9TSElGVCwgXAogICAgIC5zbWFsbF9iaXRmaXRfcGFnZV9z
aXplID0gUEFTX1NNQUxMX0JJVEZJVF9QQUdFX0RFRkFVTFRfU0laRSwgXApJbmRleDogU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFnZXNpemU2NGtfaGVhcC5jCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3BhZ2VzaXplNjRrX2hlYXAuYwko
cmV2aXNpb24gMjc5OTY0KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFn
ZXNpemU2NGtfaGVhcC5jCSh3b3JraW5nIGNvcHkpCkBAIC01NCw3ICs1NCw3IEBAIFBBU19DUkVB
VEVfVFJZX0FMTE9DQVRFX0lOVFJJTlNJQ19QUklNSVQKICAgICBQQUdFU0laRTY0S19IRUFQX0NP
TkZJRywKICAgICAmcGFnZXNpemU2NGtfaW50cmluc2ljX3ByaW1pdGl2ZV9ydW50aW1lX2NvbmZp
Zy5iYXNlLAogICAgICZpc29fYWxsb2NhdG9yX2NvdW50cywKLSAgICBwYXNfaW50cmluc2ljX2Fs
bG9jYXRpb25fcmVzdWx0X2NyYXNoX29uX2Vycm9yLAorICAgIHBhc19hbGxvY2F0aW9uX3Jlc3Vs
dF9jcmFzaF9vbl9lcnJvciwKICAgICAmcGFnZXNpemU2NGtfY29tbW9uX3ByaW1pdGl2ZV9oZWFw
LAogICAgICZwYWdlc2l6ZTY0a19jb21tb25fcHJpbWl0aXZlX2hlYXBfc3VwcG9ydCwKICAgICBw
YXNfaW50cmluc2ljX2hlYXBfaXNfZGVzaWduYXRlZCk7CkBAIC02NCwxOCArNjQsMTggQEAgUEFT
X0NSRUFURV9UUllfQUxMT0NBVEUoCiAgICAgUEFHRVNJWkU2NEtfSEVBUF9DT05GSUcsCiAgICAg
JnBhZ2VzaXplNjRrX3R5cGVkX3J1bnRpbWVfY29uZmlnLmJhc2UsCiAgICAgJmlzb19hbGxvY2F0
b3JfY291bnRzLAotICAgIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHRfY3Jhc2hfb25f
ZXJyb3IpOworICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9jcmFzaF9vbl9lcnJvcik7CiAKIFBB
U19DUkVBVEVfVFJZX0FMTE9DQVRFX0FSUkFZKAogICAgIHRlc3RfYWxsb2NhdGVfYXJyYXlfaW1w
bCwKICAgICBQQUdFU0laRTY0S19IRUFQX0NPTkZJRywKICAgICAmcGFnZXNpemU2NGtfdHlwZWRf
cnVudGltZV9jb25maWcuYmFzZSwKICAgICAmaXNvX2FsbG9jYXRvcl9jb3VudHMsCi0gICAgcGFz
X2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdF9jcmFzaF9vbl9lcnJvcik7CisgICAgcGFzX2Fs
bG9jYXRpb25fcmVzdWx0X2NyYXNoX29uX2Vycm9yKTsKIAogdm9pZCogcGFnZXNpemU2NGtfYWxs
b2NhdGVfY29tbW9uX3ByaW1pdGl2ZShzaXplX3Qgc2l6ZSkKIHsKLSAgICByZXR1cm4gdGVzdF9h
bGxvY2F0ZV9jb21tb25fcHJpbWl0aXZlKHNpemUsIDEpLnB0cjsKKyAgICByZXR1cm4gKHZvaWQq
KXRlc3RfYWxsb2NhdGVfY29tbW9uX3ByaW1pdGl2ZShzaXplLCAxKS5iZWdpbjsKIH0KIAogdm9p
ZCogcGFnZXNpemU2NGtfYWxsb2NhdGUocGFzX2hlYXBfcmVmKiBoZWFwX3JlZikKSW5kZXg6IFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3BhZ2VzaXplNjRrX2hlYXBfY29uZmlnLmMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFnZXNpemU2
NGtfaGVhcF9jb25maWcuYwkocmV2aXNpb24gMjc5OTY0KQorKysgU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFnZXNpemU2NGtfaGVhcF9jb25maWcuYwkod29ya2luZyBjb3B5KQpA
QCAtMzksNyArMzksOCBAQCBwYXNfaGVhcF9jb25maWcgcGFnZXNpemU2NGtfaGVhcF9jb25maWcg
CiAKIFBBU19CQVNJQ19IRUFQX0NPTkZJR19ERUZJTklUSU9OUygKICAgICBwYWdlc2l6ZTY0aywg
UEFHRVNJWkU2NEssCi0gICAgLmFsbG9jYXRlX3BhZ2Vfc2hvdWxkX3plcm8gPSBmYWxzZSk7Cisg
ICAgLmFsbG9jYXRlX3BhZ2Vfc2hvdWxkX3plcm8gPSBmYWxzZSwKKyAgICAuaW50cmluc2ljX3By
aW1pdGl2ZV92aWV3X2NhY2hlX2NhcGFjaXR5ID0gcGFzX2hlYXBfcnVudGltZV9jb25maWdfemVy
b192aWV3X2NhY2hlX2NhcGFjaXR5KTsKIAogdm9pZCBwYWdlc2l6ZTY0a19oZWFwX2NvbmZpZ19h
Y3RpdmF0ZSh2b2lkKQogewpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFnZXNpemU2NGtfaGVhcF9jb25maWcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYWdlc2l6ZTY0a19oZWFwX2NvbmZpZy5oCShyZXZpc2lvbiAyNzk5
NjQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYWdlc2l6ZTY0a19oZWFw
X2NvbmZpZy5oCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw3ICs1Nyw4IEBAIFBBU19BUEkgdm9pZCBw
YWdlc2l6ZTY0a19oZWFwX2NvbmZpZ19hY3QKICAgICAuc21hbGxfc2VncmVnYXRlZF9wYWdlX3Np
emUgPSBQQUdFU0laRTY0S19TTUFMTF9QQUdFX1NJWkUsIFwKICAgICAuc21hbGxfc2VncmVnYXRl
ZF93YXN0ZWFnZV9oYW5kaWNhcCA9IFBBU19TTUFMTF9QQUdFX0hBTkRJQ0FQLCBcCiAgICAgLnNt
YWxsX3NlZ3JlZ2F0ZWRfZW5hYmxlX2VtcHR5X3dvcmRfZWxpZ2liaWxpdHlfb3B0aW1pemF0aW9u
ID0gZmFsc2UsIFwKLSAgICAuc21hbGxfdXNlX3JldmVyc2VkX2N1cnJlbnRfd29yZCA9ICFQQVNf
QVJNNjQsIFwKKyAgICAuc21hbGxfc2VncmVnYXRlZF91c2VfcmV2ZXJzZWRfY3VycmVudF93b3Jk
ID0gIVBBU19BUk02NCwgXAorICAgIC5lbmFibGVfdmlld19jYWNoZSA9IGZhbHNlLCBcCiAgICAg
LnVzZV9zbWFsbF9iaXRmaXQgPSB0cnVlLCBcCiAgICAgLnNtYWxsX2JpdGZpdF9taW5fYWxpZ25f
c2hpZnQgPSBQQUdFU0laRTY0S19NSU5BTElHTl9TSElGVCwgXAogICAgIC5zbWFsbF9iaXRmaXRf
cGFnZV9zaXplID0gUEFHRVNJWkU2NEtfU01BTExfUEFHRV9TSVpFLCBcCkluZGV4OiBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXMuYwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYWxsX2Jp
YXNpbmdfZGlyZWN0b3JpZXMuYwkocmV2aXNpb24gMjc5OTY0KQorKysgU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX2FsbF9iaWFzaW5nX2RpcmVjdG9yaWVzLmMJKG5vbmV4aXN0
ZW50KQpAQCAtMSwxOTggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQot
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKLSAqLwotCi0jaW5jbHVkZSAicGFzX2NvbmZpZy5oIgotCi0jaWYgTElCUEFTX0VOQUJM
RUQKLQotI2luY2x1ZGUgInBhc19hbGxfYmlhc2luZ19kaXJlY3Rvcmllcy5oIgotCi0jaW5jbHVk
ZSAicGFzX2JpYXNpbmdfZGlyZWN0b3J5X2lubGluZXMuaCIKLSNpbmNsdWRlICJwYXNfcGFnZV9z
aGFyaW5nX3Bvb2wuaCIKLSNpbmNsdWRlICJwYXNfc2NhdmVuZ2VyLmgiCi0KLXBhc19hbGxfYmlh
c2luZ19kaXJlY3Rvcmllc19hY3RpdmVfYml0dmVjdG9yIHBhc19hbGxfYmlhc2luZ19kaXJlY3Rv
cmllc19hY3RpdmVfYml0dmVjdG9yX2luc3RhbmNlOwotcGFzX2FsbF9iaWFzaW5nX2RpcmVjdG9y
aWVzX3ZlY3RvciBwYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXNfdmVjdG9yX2luc3RhbmNlOwot
Ci12b2lkIHBhc19hbGxfYmlhc2luZ19kaXJlY3Rvcmllc19hcHBlbmQocGFzX2JpYXNpbmdfZGly
ZWN0b3J5KiBkaXJlY3RvcnkpCi17Ci0gICAgc2l6ZV90IGluZGV4OwotICAgIHNpemVfdCB3b3Jk
X2luZGV4OwotICAgIHBhc19jb21wYWN0X2F0b21pY19iaWFzaW5nX2RpcmVjdG9yeV9wdHIgZGly
ZWN0b3J5X3B0cjsKLQotICAgIHBhc19oZWFwX2xvY2tfYXNzZXJ0X2hlbGQoKTsKLSAgICAKLSAg
ICBpbmRleCA9IHBhc19hbGxfYmlhc2luZ19kaXJlY3Rvcmllc192ZWN0b3JfaW5zdGFuY2Uuc2l6
ZTsKLQotICAgIFBBU19BU1NFUlQoIWRpcmVjdG9yeS0+aW5kZXhfaW5fYWxsKTsKLSAgICBQQVNf
QVNTRVJUKCh1bnNpZ25lZClpbmRleCA9PSBpbmRleCk7Ci0gICAgZGlyZWN0b3J5LT5pbmRleF9p
bl9hbGwgPSAodW5zaWduZWQpaW5kZXg7Ci0KLSAgICBwYXNfY29tcGFjdF9hdG9taWNfYmlhc2lu
Z19kaXJlY3RvcnlfcHRyX3N0b3JlKCZkaXJlY3RvcnlfcHRyLCBkaXJlY3RvcnkpOwotICAgIHBh
c19hbGxfYmlhc2luZ19kaXJlY3Rvcmllc192ZWN0b3JfYXBwZW5kKAotICAgICAgICAmcGFzX2Fs
bF9iaWFzaW5nX2RpcmVjdG9yaWVzX3ZlY3Rvcl9pbnN0YW5jZSwgZGlyZWN0b3J5X3B0ciwgcGFz
X2xvY2tfaXNfaGVsZCk7Ci0gICAgCi0gICAgLyogV2UgaGF2ZSB0byBzdG9yZSB0byB0aGUgYml0
dmVjdG9yIHNlY29uZCwgc28gdGhhdCB3aGVuIHdlIHNlZSBhIGJpdCBzZXQgaW4gdGhlIGJpdHZl
Y3RvciwKLSAgICAgICB3ZSBrbm93IHRoYXQgdGhlIHRoaW5nIGluIHF1ZXN0aW9uIGlzIGFscmVh
ZHkgYXBwZW5kZWQgdG8gdGhlIHZlY3Rvci4gVGhpcyBpcyBhY3R1YWxseQotICAgICAgIG92ZXJr
aWxsIHNpbmNlIHdlIG9ubHkgc3RvcmUgdGhlIGJpdCB1c2luZyBhIENBUyBhbmQgb25seSBhZnRl
ciByZWxlYXNpbmcgdGhlIGhlYXAgbG9jaywgYnV0Ci0gICAgICAgd2hhdGV2ZXIgLSBpdCdzIG5v
dCB3b3J0aCBpdCB0byB0cnkgdG8gYmUgZmFzdCBoZXJlLiAqLwotICAgIHBhc19mZW5jZSgpOwot
Ci0gICAgd29yZF9pbmRleCA9IFBBU19CSVRWRUNUT1JfV09SRF9JTkRFWChpbmRleCk7Ci0KLSAg
ICB3aGlsZSAod29yZF9pbmRleCA+PSBwYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXNfYWN0aXZl
X2JpdHZlY3Rvcl9pbnN0YW5jZS5zaXplKSB7Ci0gICAgICAgIHBhc19hbGxfYmlhc2luZ19kaXJl
Y3Rvcmllc19hY3RpdmVfYml0dmVjdG9yX2FwcGVuZCgKLSAgICAgICAgICAgICZwYXNfYWxsX2Jp
YXNpbmdfZGlyZWN0b3JpZXNfYWN0aXZlX2JpdHZlY3Rvcl9pbnN0YW5jZSwgMCwgcGFzX2xvY2tf
aXNfaGVsZCk7Ci0gICAgfQotfQotCi1ib29sIHBhc19hbGxfYmlhc2luZ19kaXJlY3Rvcmllc19h
Y3RpdmF0ZShwYXNfYmlhc2luZ19kaXJlY3RvcnkqIGRpcmVjdG9yeSkKLXsKLSAgICBzaXplX3Qg
aW5kZXg7Ci0gICAgc2l6ZV90IHdvcmRfaW5kZXg7Ci0gICAgYm9vbCBkaWRfYWN0aXZhdGU7Ci0K
LSAgICBpbmRleCA9IGRpcmVjdG9yeS0+aW5kZXhfaW5fYWxsOwotICAgIAotICAgIHdvcmRfaW5k
ZXggPSBQQVNfQklUVkVDVE9SX1dPUkRfSU5ERVgoaW5kZXgpOwotICAgIAotICAgIFBBU19BU1NF
UlQod29yZF9pbmRleCA8IHBhc19hbGxfYmlhc2luZ19kaXJlY3Rvcmllc19hY3RpdmVfYml0dmVj
dG9yX2luc3RhbmNlLnNpemUpOwotICAgIAotICAgIGRpZF9hY3RpdmF0ZSA9IHBhc19iaXR2ZWN0
b3Jfc2V0X2F0b21pY19pbl93b3JkKAotICAgICAgICBwYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3Jp
ZXNfYWN0aXZlX2JpdHZlY3Rvcl9nZXRfcHRyKAotICAgICAgICAgICAgJnBhc19hbGxfYmlhc2lu
Z19kaXJlY3Rvcmllc19hY3RpdmVfYml0dmVjdG9yX2luc3RhbmNlLAotICAgICAgICAgICAgd29y
ZF9pbmRleCksCi0gICAgICAgIGluZGV4LAotICAgICAgICB0cnVlKTsKLQotICAgIGlmIChkaWRf
YWN0aXZhdGUpCi0gICAgICAgIHBhc19zY2F2ZW5nZXJfZGlkX2NyZWF0ZV9lbGlnaWJsZSgpOwot
Ci0gICAgcmV0dXJuIGRpZF9hY3RpdmF0ZTsKLX0KLQotdHlwZWRlZiBzdHJ1Y3QgewotICAgIGJv
b2wgc2hvdWxkX2dvX2FnYWluOwotICAgIHVuc2lnbmVkKiB3b3JkX3B0cjsKLX0gc2NhdmVuZ2Vf
ZGF0YTsKLQotc3RhdGljIHVuc2lnbmVkIHNjYXZlbmdlX2Zvcl9lYWNoX3NldF9iaXRfYml0c19z
b3VyY2Uoc2l6ZV90IHdvcmRfaW5kZXgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB2b2lkKiBhcmcpCi17Ci0gICAgc2NhdmVuZ2VfZGF0YSog
ZGF0YTsKLQotICAgIFBBU19VTlVTRURfUEFSQU0od29yZF9pbmRleCk7Ci0KLSAgICBkYXRhID0g
YXJnOwotCi0gICAgcmV0dXJuICpkYXRhLT53b3JkX3B0cjsKLX0KLQotc3RhdGljIGJvb2wgc2Nh
dmVuZ2VfZm9yX2VhY2hfc2V0X2JpdF9jYWxsYmFjayhwYXNfZm91bmRfYml0X2luZGV4IGZvdW5k
X2JpdF9pbmRleCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdm9pZCogYXJnKQotewotICAgIHNjYXZlbmdlX2RhdGEqIGRhdGE7Ci0gICAgdW5zaWduZWQg
aW5kZXg7Ci0gICAgdW5zaWduZWQgd29yZDsKLSAgICB1bnNpZ25lZCogd29yZF9wdHI7Ci0gICAg
cGFzX2JpYXNpbmdfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7Ci0gICAgdW5zaWduZWQgY3VycmVudF9o
aWdoX3dhdGVybWFyazsKLSAgICB1aW50cHRyX3QgbGFyZ2VfZWxpZ2libGVfaGlnaF93YXRlcm1h
cms7Ci0gICAgdW5zaWduZWQgZWxpZ2libGVfaGlnaF93YXRlcm1hcms7Ci0KLSAgICBkYXRhID0g
YXJnOwotCi0gICAgaW5kZXggPSAodW5zaWduZWQpZm91bmRfYml0X2luZGV4LmluZGV4OwotICAg
IFBBU19BU1NFUlQoaW5kZXggPT0gZm91bmRfYml0X2luZGV4LmluZGV4KTsKLQotICAgIHdvcmQg
PSBmb3VuZF9iaXRfaW5kZXgud29yZDsKLSAgICB3b3JkX3B0ciA9IGRhdGEtPndvcmRfcHRyOwot
Ci0gICAgUEFTX0FTU0VSVChpbmRleCA8IHBhc19hbGxfYmlhc2luZ19kaXJlY3Rvcmllc192ZWN0
b3JfaW5zdGFuY2Uuc2l6ZSk7Ci0gICAgZGlyZWN0b3J5ID0gcGFzX2NvbXBhY3RfYXRvbWljX2Jp
YXNpbmdfZGlyZWN0b3J5X3B0cl9sb2FkKAotICAgICAgICBwYXNfYWxsX2JpYXNpbmdfZGlyZWN0
b3JpZXNfdmVjdG9yX2dldF9wdHIoCi0gICAgICAgICAgICAmcGFzX2FsbF9iaWFzaW5nX2RpcmVj
dG9yaWVzX3ZlY3Rvcl9pbnN0YW5jZSwgaW5kZXgpKTsKLQotICAgIGN1cnJlbnRfaGlnaF93YXRl
cm1hcmsgPSBkaXJlY3RvcnktPmN1cnJlbnRfaGlnaF93YXRlcm1hcms7Ci0KLSAgICBpZiAoY3Vy
cmVudF9oaWdoX3dhdGVybWFyaykKLSAgICAgICAgZGF0YS0+c2hvdWxkX2dvX2FnYWluID0gdHJ1
ZTsKLSAgICBlbHNlIHsKLSAgICAgICAgLyogV2UndmUgZ290IHRvIGNsZWFyIHRoZSBiaXQgYmVm
b3JlIHdlIGRvIGFueXRoaW5nIGVsc2UuIE90aGVyd2lzZSB0aGVyZSdzIGEgcmFjZSB3aGVyZSB3
ZQotICAgICAgICAgICBtaWdodCBtaXNzIGEgbm90aWZpY2F0aW9uIGFib3V0IGFjdGl2YXRpb24u
ICovCi0gICAgICAgIHBhc19iaXR2ZWN0b3Jfc2V0X2F0b21pY19pbl93b3JkKHdvcmRfcHRyLCBp
bmRleCwgZmFsc2UpOwotICAgIH0KLSAgICAKLSAgICBsYXJnZV9lbGlnaWJsZV9oaWdoX3dhdGVy
bWFyayA9IGRpcmVjdG9yeS0+ZWxpZ2libGVfaGlnaF93YXRlcm1hcmsudmFsdWU7Ci0gICAgZWxp
Z2libGVfaGlnaF93YXRlcm1hcmsgPSAodW5zaWduZWQpbGFyZ2VfZWxpZ2libGVfaGlnaF93YXRl
cm1hcms7Ci0gICAgUEFTX0FTU0VSVChlbGlnaWJsZV9oaWdoX3dhdGVybWFyayA9PSBsYXJnZV9l
bGlnaWJsZV9oaWdoX3dhdGVybWFyayk7Ci0KLSAgICBkaXJlY3RvcnktPnByZXZpb3VzX2hpZ2hf
d2F0ZXJtYXJrID0gY3VycmVudF9oaWdoX3dhdGVybWFyazsKLSAgICBkaXJlY3RvcnktPmN1cnJl
bnRfaGlnaF93YXRlcm1hcmsgPSAwOwotCi0gICAgaWYgKGN1cnJlbnRfaGlnaF93YXRlcm1hcmsg
PCBlbGlnaWJsZV9oaWdoX3dhdGVybWFyaykKLSAgICAgICAgcGFzX2JpYXNpbmdfZGlyZWN0b3J5
X2RpZF9jcmVhdGVfZGVsdGEoZGlyZWN0b3J5KTsKLQotICAgIHJldHVybiB0cnVlOwotfQotCi1z
dGF0aWMgYm9vbCBzY2F2ZW5nZV9iaXR2ZWN0b3Jfd29yZF9jYWxsYmFjayh1bnNpZ25lZCogd29y
ZF9wdHIsIHNpemVfdCB3b3JkX2luZGV4LCB2b2lkKiBhcmcpCi17Ci0gICAgc2NhdmVuZ2VfZGF0
YSogZGF0YTsKLSAgICBib29sIHJlc3VsdDsKLQotICAgIGRhdGEgPSBhcmc7Ci0gICAgZGF0YS0+
d29yZF9wdHIgPSB3b3JkX3B0cjsKLSAgICAKLSAgICByZXN1bHQgPSBwYXNfYml0dmVjdG9yX2Zv
cl9lYWNoX3NldF9iaXQoc2NhdmVuZ2VfZm9yX2VhY2hfc2V0X2JpdF9iaXRzX3NvdXJjZSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd29yZF9pbmRleCwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd29yZF9pbmRleCArIDEs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjYXZlbmdlX2Zv
cl9lYWNoX3NldF9iaXRfY2FsbGJhY2ssCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGRhdGEpOwotICAgIFBBU19BU1NFUlQocmVzdWx0KTsKLSAgICAKLSAgICBy
ZXR1cm4gdHJ1ZTsKLX0KLQotYm9vbCBwYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXNfc2NhdmVu
Z2Uodm9pZCkKLXsKLSAgICBzY2F2ZW5nZV9kYXRhIGRhdGE7Ci0gICAgcGFzX2ZvdW5kX2luZGV4
IHJlc3VsdDsKLQotICAgIGRhdGEuc2hvdWxkX2dvX2FnYWluID0gZmFsc2U7Ci0gICAgZGF0YS53
b3JkX3B0ciA9IE5VTEw7Ci0KLSAgICByZXN1bHQgPSBwYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3Jp
ZXNfYWN0aXZlX2JpdHZlY3Rvcl9pdGVyYXRlKAotICAgICAgICAmcGFzX2FsbF9iaWFzaW5nX2Rp
cmVjdG9yaWVzX2FjdGl2ZV9iaXR2ZWN0b3JfaW5zdGFuY2UsCi0gICAgICAgIDAsCi0gICAgICAg
IHNjYXZlbmdlX2JpdHZlY3Rvcl93b3JkX2NhbGxiYWNrLAotICAgICAgICAmZGF0YSk7Ci0KLSAg
ICBQQVNfQVNTRVJUKCFyZXN1bHQuZGlkX3N1Y2NlZWQpOwotCi0gICAgcmV0dXJuIGRhdGEuc2hv
dWxkX2dvX2FnYWluOwotfQotCi0jZW5kaWYgLyogTElCUEFTX0VOQUJMRUQgKi8KSW5kZXg6IFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19hbGxfYmlhc2luZ19kaXJlY3Rvcmll
cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19h
bGxfYmlhc2luZ19kaXJlY3Rvcmllcy5oCShyZXZpc2lvbiAyNzk5NjQpCisrKyBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXMuaAkobm9u
ZXhpc3RlbnQpCkBAIC0xLDU0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCi0gKi8KLQotI2lmbmRlZiBQQVNfQUxMX0JJQVNJTkdfRElSRUNUT1JJRVNfSAot
I2RlZmluZSBQQVNfQUxMX0JJQVNJTkdfRElSRUNUT1JJRVNfSAotCi0jaW5jbHVkZSAicGFzX2Jp
YXNpbmdfZGlyZWN0b3J5LmgiCi0jaW5jbHVkZSAicGFzX2NvbXBhY3RfYXRvbWljX2JpYXNpbmdf
ZGlyZWN0b3J5X3B0ci5oIgotI2luY2x1ZGUgInBhc19zZWdtZW50ZWRfdmVjdG9yLmgiCi0KLVBB
U19CRUdJTl9FWFRFUk5fQzsKLQotUEFTX0RFQ0xBUkVfU0VHTUVOVEVEX1ZFQ1RPUihwYXNfYWxs
X2JpYXNpbmdfZGlyZWN0b3JpZXNfYWN0aXZlX2JpdHZlY3RvciwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdW5zaWduZWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQpOwot
UEFTX0RFQ0xBUkVfU0VHTUVOVEVEX1ZFQ1RPUihwYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXNf
dmVjdG9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfY29tcGFjdF9hdG9taWNf
Ymlhc2luZ19kaXJlY3RvcnlfcHRyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0KTsK
LQotUEFTX0FQSSBleHRlcm4gcGFzX2FsbF9iaWFzaW5nX2RpcmVjdG9yaWVzX2FjdGl2ZV9iaXR2
ZWN0b3IgcGFzX2FsbF9iaWFzaW5nX2RpcmVjdG9yaWVzX2FjdGl2ZV9iaXR2ZWN0b3JfaW5zdGFu
Y2U7Ci1QQVNfQVBJIGV4dGVybiBwYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXNfdmVjdG9yIHBh
c19hbGxfYmlhc2luZ19kaXJlY3Rvcmllc192ZWN0b3JfaW5zdGFuY2U7Ci0KLVBBU19BUEkgdm9p
ZCBwYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXNfYXBwZW5kKHBhc19iaWFzaW5nX2RpcmVjdG9y
eSogZGlyZWN0b3J5KTsKLQotUEFTX0FQSSBib29sIHBhc19hbGxfYmlhc2luZ19kaXJlY3Rvcmll
c19hY3RpdmF0ZShwYXNfYmlhc2luZ19kaXJlY3RvcnkqIGRpcmVjdG9yeSk7Ci0KLVBBU19BUEkg
Ym9vbCBwYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXNfc2NhdmVuZ2Uodm9pZCk7Ci0KLVBBU19F
TkRfRVhURVJOX0M7Ci0KLSNlbmRpZiAvKiBQQVNfQUxMX0JJQVNJTkdfRElSRUNUT1JJRVNfSCAq
LwotCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYWxsX2hlYXBz
LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2Fs
bF9oZWFwcy5jCShyZXZpc2lvbiAyNzk5NjQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfYWxsX2hlYXBzLmMJKHdvcmtpbmcgY29weSkKQEAgLTM2LDE0ICszNiwxMiBA
QAogI2luY2x1ZGUgImppdF9oZWFwLmgiCiAjaW5jbHVkZSAibWluYWxpZ24zMl9oZWFwLmgiCiAj
aW5jbHVkZSAicGFnZXNpemU2NGtfaGVhcC5oIgotI2luY2x1ZGUgInBhc19iaWFzaW5nX2RpcmVj
dG9yeV9pbmxpbmVzLmgiCiAjaW5jbHVkZSAicGFzX2JpdGZpdF9oZWFwLmgiCiAjaW5jbHVkZSAi
cGFzX2hlYXAuaCIKICNpbmNsdWRlICJwYXNfaGVhcF9sb2NrLmgiCiAjaW5jbHVkZSAicGFzX2xh
cmdlX3V0aWxpdHlfZnJlZV9oZWFwLmgiCiAjaW5jbHVkZSAicGFzX3B0cl9oYXNoX3NldC5oIgog
I2luY2x1ZGUgInBhc19zY2F2ZW5nZXIuaCIKLSNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9iaWFz
aW5nX2RpcmVjdG9yeS5oIgogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2hlYXAuaCIKICNpbmNs
dWRlICJwYXNfdXRpbGl0eV9oZWFwLmgiCiAjaW5jbHVkZSAicGFzX3V0aWxpdHlfaGVhcF9jb25m
aWcuaCIKQEAgLTIyMyw0MyArMjIxLDE4IEBAIHR5cGVkZWYgc3RydWN0IHsKICAgICB2b2lkKiBh
cmc7CiB9IGZvcl9lYWNoX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2RhdGE7CiAKLXN0YXRpYyBib29s
IGZvcl9lYWNoX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dsb2JhbF9zaXplX2RpcmVjdG9yeV9jYWxs
YmFjaygKK3N0YXRpYyBib29sIGZvcl9lYWNoX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3NpemVfZGly
ZWN0b3J5X2NhbGxiYWNrKAogICAgIHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXAsCi0gICAgcGFz
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisgICAgcGFzX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKICAgICB2b2lkKiBhcmcpCiB7CiAg
ICAgZm9yX2VhY2hfc2VncmVnYXRlZF9kaXJlY3RvcnlfZGF0YSogZGF0YTsKLSAgICBwYXNfcGFn
ZV9zaGFyaW5nX3Bvb2wqIHBvb2w7Ci0gICAgc2l6ZV90IGluZGV4OwogCiAgICAgUEFTX1VOVVNF
RF9QQVJBTShoZWFwKTsKIAogICAgIGRhdGEgPSBhcmc7CiAKLSAgICBpZiAoIWRhdGEtPmNhbGxi
YWNrKCZkaXJlY3RvcnktPmJhc2UsIGRhdGEtPmFyZykpCi0gICAgICAgIHJldHVybiBmYWxzZTsK
LQotICAgIHBvb2wgPSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfYmlhc19z
aGFyaW5nX3Bvb2woZGlyZWN0b3J5KTsKLSAgICBmb3IgKGluZGV4ID0gcGFzX3BhZ2Vfc2hhcmlu
Z19wb29sX251bV9wYXJ0aWNpcGFudHMocG9vbCk7IGluZGV4LS07KSB7Ci0gICAgICAgIHBhc19w
YWdlX3NoYXJpbmdfcGFydGljaXBhbnQgcGFydGljaXBhbnQ7Ci0gICAgICAgIHBhc19zZWdyZWdh
dGVkX2JpYXNpbmdfZGlyZWN0b3J5KiBiaWFzaW5nX2RpcmVjdG9yeTsKLQotICAgICAgICBwYXJ0
aWNpcGFudCA9IHBhc19wYWdlX3NoYXJpbmdfcG9vbF9nZXRfcGFydGljaXBhbnQocG9vbCwgaW5k
ZXgpOwotCi0gICAgICAgIGlmICghcGFydGljaXBhbnQpCi0gICAgICAgICAgICBjb250aW51ZTsK
LQotICAgICAgICBQQVNfQVNTRVJUKHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfZ2V0X2tp
bmQocGFydGljaXBhbnQpCi0gICAgICAgICAgICAgICAgICAgPT0gcGFzX3BhZ2Vfc2hhcmluZ19w
YXJ0aWNpcGFudF9iaWFzaW5nX2RpcmVjdG9yeSk7Ci0KLSAgICAgICAgYmlhc2luZ19kaXJlY3Rv
cnkgPSBwYXNfdW53cmFwX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkoCi0gICAgICAgICAg
ICBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2dldF9wdHIocGFydGljaXBhbnQpKTsKLQot
ICAgICAgICBpZiAoIWRhdGEtPmNhbGxiYWNrKCZiaWFzaW5nX2RpcmVjdG9yeS0+YmFzZSwgZGF0
YS0+YXJnKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0gICAgCi0gICAgcmV0
dXJuIHRydWU7CisgICAgcmV0dXJuIGRhdGEtPmNhbGxiYWNrKCZkaXJlY3RvcnktPmJhc2UsIGRh
dGEtPmFyZyk7CiB9CiAKIHN0YXRpYyBib29sIGZvcl9lYWNoX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5
X3NoYXJlZF9wYWdlX2RpcmVjdG9yeV9jYWxsYmFjaygKQEAgLTI4Nyw4ICsyNjAsOCBAQCBzdGF0
aWMgYm9vbCBmb3JfZWFjaF9zZWdyZWdhdGVkX2RpcmVjdG9yCiAKICAgICBkYXRhID0gYXJnOwog
Ci0gICAgaWYgKCFwYXNfc2VncmVnYXRlZF9oZWFwX2Zvcl9lYWNoX2dsb2JhbF9zaXplX2RpcmVj
dG9yeSgKLSAgICAgICAgICAgIGhlYXAsIGZvcl9lYWNoX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2ds
b2JhbF9zaXplX2RpcmVjdG9yeV9jYWxsYmFjaywgZGF0YSkpCisgICAgaWYgKCFwYXNfc2VncmVn
YXRlZF9oZWFwX2Zvcl9lYWNoX3NpemVfZGlyZWN0b3J5KAorICAgICAgICAgICAgaGVhcCwgZm9y
X2VhY2hfc2VncmVnYXRlZF9kaXJlY3Rvcnlfc2l6ZV9kaXJlY3RvcnlfY2FsbGJhY2ssIGRhdGEp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAoIWNvbmZpZy0+Zm9yX2VhY2hfc2hh
cmVkX3BhZ2VfZGlyZWN0b3J5KApAQCAtMzI4LDEzICszMDEsOCBAQCBzdGF0aWMgdm9pZCBkdW1w
X2RpcmVjdG9yeV9uaWNlbHkocGFzX3NlCiAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdl
X2NvbmZpZ19raW5kX2dldF9zdHJpbmcoZGlyZWN0b3J5LT5wYWdlX2NvbmZpZ19raW5kKSwKICAg
ICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9raW5kX2dldF9zdHJpbmcoZGlyZWN0
b3J5LT5kaXJlY3Rvcnlfa2luZCkpOwogICAgIHN3aXRjaCAoZGlyZWN0b3J5LT5kaXJlY3Rvcnlf
a2luZCkgewotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2tp
bmQ6Ci0gICAgICAgIHBhc19sb2coIiwgJXUiLCAoKHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXpl
X2RpcmVjdG9yeSopZGlyZWN0b3J5KS0+b2JqZWN0X3NpemUpOwotICAgICAgICBicmVhazsKLSAg
ICBjYXNlIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5X2tpbmQ6Ci0gICAgICAgIHBh
c19sb2coIiwgJXUiLAotICAgICAgICAgICAgICAgIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZ2xv
YmFsX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKAotICAgICAgICAgICAgICAgICAgICAmKChwYXNf
c2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeSopZGlyZWN0b3J5KS0+cGFyZW50X2dsb2JhbCkt
Pm9iamVjdF9zaXplKTsKKyAgICBjYXNlIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2tp
bmQ6CisgICAgICAgIHBhc19sb2coIiwgJXUiLCAoKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0
b3J5KilkaXJlY3RvcnkpLT5vYmplY3Rfc2l6ZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
cGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5X2tpbmQ6CiAgICAgICAgIGJyZWFr
OwpAQCAtNDQ1LDkgKzQxMyw2IEBAIHN0YXRpYyBib29sIGNvbXB1dGVfdG90YWxfbm9uX3V0aWxp
dHlfc2UKICAgICBzaXplX3QgaW5kZXg7CiAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcq
IHBhZ2VfY29uZmlnOwogCi0gICAgaWYgKGRpcmVjdG9yeS0+ZGlyZWN0b3J5X2tpbmQgPT0gcGFz
X3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3Rvcnlfa2luZCkKLSAgICAgICAgcmV0dXJuIHRydWU7
Ci0KICAgICBpZiAoIXBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfaXNfdXRpbGl0eShk
aXJlY3RvcnktPnBhZ2VfY29uZmlnX2tpbmQpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAK
SW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19hbGxfbWFnYXppbmVz
LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2Fs
bF9tYWdhemluZXMuYwkocmV2aXNpb24gMjc5OTY0KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX2FsbF9tYWdhemluZXMuYwkobm9uZXhpc3RlbnQpCkBAIC0xLDg4ICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMjAtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwot
Ci0jaW5jbHVkZSAicGFzX2NvbmZpZy5oIgotCi0jaWYgTElCUEFTX0VOQUJMRUQKLQotI2luY2x1
ZGUgInBhc19hbGxfbWFnYXppbmVzLmgiCi0KLSNpbmNsdWRlICJwYXNfaGVhcF9sb2NrLmgiCi0j
aW5jbHVkZSAicGFzX21hZ2F6aW5lLmgiCi0jaW5jbHVkZSAicGFzX21vbm90b25pY190aW1lLmgi
Ci0jaW5jbHVkZSAicGFzX3RocmVhZF9sb2NhbF9jYWNoZV9ub2RlLmgiCi0KLSNpZiBkZWZpbmVk
KF9faGFzX2luY2x1ZGUpICYmIF9faGFzX2luY2x1ZGUoPG9zL3RzZC5oPikKLSNpbmNsdWRlIDxv
cy90c2QuaD4KLSNkZWZpbmUgUEFTX0hBVkVfT1NfVFNEIDEKLSNlbHNlCi0jZGVmaW5lIFBBU19I
QVZFX09TX1RTRCAwCi0jZW5kaWYKLQotcGFzX2FsbF9tYWdhemluZXNfdmVjdG9yIHBhc19hbGxf
bWFnYXppbmVzX3ZlY3Rvcl9pbnN0YW5jZSA9IFBBU19JTU1VVEFCTEVfVkVDVE9SX0lOSVRJQUxJ
WkVSOwotdW5zaWduZWQgcGFzX2FsbF9tYWdhemluZXNfZm9yY2VkX2NwdV9udW1iZXIgPSBVSU5U
X01BWDsKLQotcGFzX21hZ2F6aW5lKiBwYXNfYWxsX21hZ2F6aW5lc19nZXRfY3VycmVudCh2b2lk
KQotewotICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKLSAgICAKLSAgICB1
bnNpZ25lZCBjcHU7Ci0gICAgdW5zaWduZWQgc2l6ZTsKLQotICAgIGNwdSA9IHBhc19hbGxfbWFn
YXppbmVzX2ZvcmNlZF9jcHVfbnVtYmVyOwotICAgIGlmIChjcHUgPT0gVUlOVF9NQVgpIHsKLSNp
ZiBQQVNfSEFWRV9PU19UU0QKLSAgICAgICAgY3B1ID0gX29zX2NwdV9udW1iZXIoKTsKLSNlbHNl
Ci0gICAgICAgIGNwdSA9IDA7IC8qIEZJWE1FOiBXZSBzaG91bGQgYmUgYWJsZSB0byBkbyBiZXR0
ZXIgdGhhbiB0aGlzISAqLwotI2VuZGlmCi0gICAgfQotCi0gICAgaWYgKHZlcmJvc2UpCi0gICAg
ICAgIHBhc19sb2coImNwdSA9ICV1XG4iLCBjcHUpOwotCi0gICAgc2l6ZSA9IHBhc19hbGxfbWFn
YXppbmVzX3ZlY3Rvcl9pbnN0YW5jZS5zaXplOwotCi0gICAgaWYgKFBBU19MSUtFTFkoY3B1IDwg
c2l6ZSkpCi0gICAgICAgIHJldHVybiBwYXNfYWxsX21hZ2F6aW5lc192ZWN0b3JfZ2V0KCZwYXNf
YWxsX21hZ2F6aW5lc192ZWN0b3JfaW5zdGFuY2UgKyBwYXNfZGVwZW5kKHNpemUpLCBjcHUpOwot
Ci0gICAgcGFzX2hlYXBfbG9ja19sb2NrKCk7Ci0KLSAgICB3aGlsZSAoY3B1ID49IHBhc19hbGxf
bWFnYXppbmVzX3ZlY3Rvcl9pbnN0YW5jZS5zaXplKSB7Ci0gICAgICAgIHBhc19tYWdhemluZSog
bWFnYXppbmU7Ci0KLSAgICAgICAgbWFnYXppbmUgPSBwYXNfbWFnYXppbmVfY3JlYXRlKHBhc19h
bGxfbWFnYXppbmVzX3ZlY3Rvcl9pbnN0YW5jZS5zaXplKTsKLSAgICAgICAgCi0gICAgICAgIHBh
c19hbGxfbWFnYXppbmVzX3ZlY3Rvcl9hcHBlbmQoJnBhc19hbGxfbWFnYXppbmVzX3ZlY3Rvcl9p
bnN0YW5jZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYWdhemlu
ZSwgcGFzX2xvY2tfaXNfaGVsZCk7Ci0gICAgfQotCi0gICAgcGFzX2hlYXBfbG9ja191bmxvY2so
KTsKLQotICAgIFBBU19BU1NFUlQoY3B1IDwgcGFzX2FsbF9tYWdhemluZXNfdmVjdG9yX2luc3Rh
bmNlLnNpemUpOwotICAgIHJldHVybiBwYXNfYWxsX21hZ2F6aW5lc192ZWN0b3JfZ2V0KCZwYXNf
YWxsX21hZ2F6aW5lc192ZWN0b3JfaW5zdGFuY2UsIGNwdSk7Ci19Ci0KLSNlbmRpZiAvKiBMSUJQ
QVNfRU5BQkxFRCAqLwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X2FsbF9tYWdhemluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfYWxsX21hZ2F6aW5lcy5oCShyZXZpc2lvbiAyNzk5NjQpCisrKyBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYWxsX21hZ2F6aW5lcy5oCShub25leGlzdGVu
dCkKQEAgLTEsNDcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMjAyMC0yMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
Ci0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAotICovCi0KLSNpZm5kZWYgUEFTX0FMTF9NQUdBWklORVNfSAotI2RlZmluZSBQQVNf
QUxMX01BR0FaSU5FU19ICi0KLSNpbmNsdWRlICJwYXNfaW1tdXRhYmxlX3ZlY3Rvci5oIgotCi1Q
QVNfQkVHSU5fRVhURVJOX0M7Ci0KLXN0cnVjdCBwYXNfbWFnYXppbmU7Ci10eXBlZGVmIHN0cnVj
dCBwYXNfbWFnYXppbmUgcGFzX21hZ2F6aW5lOwotCi1QQVNfREVDTEFSRV9JTU1VVEFCTEVfVkVD
VE9SKHBhc19hbGxfbWFnYXppbmVzX3ZlY3RvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcGFzX21hZ2F6aW5lKik7Ci0KLVBBU19BUEkgZXh0ZXJuIHBhc19hbGxfbWFnYXppbmVzX3Zl
Y3RvciBwYXNfYWxsX21hZ2F6aW5lc192ZWN0b3JfaW5zdGFuY2U7Ci1QQVNfQVBJIGV4dGVybiB1
bnNpZ25lZCBwYXNfYWxsX21hZ2F6aW5lc19mb3JjZWRfY3B1X251bWJlcjsKLQotUEFTX0FQSSBw
YXNfbWFnYXppbmUqIHBhc19hbGxfbWFnYXppbmVzX2dldF9jdXJyZW50KHZvaWQpOwotCi1QQVNf
RU5EX0VYVEVSTl9DOwotCi0jZW5kaWYgLyogUEFTX0FMTF9NQUdBWklORVNfSCAqLwotCkluZGV4
OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYWxsb2NhdGlvbl9yZXN1bHQu
Ywo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYWxs
b2NhdGlvbl9yZXN1bHQuYwkocmV2aXNpb24gMjc5OTY0KQorKysgU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX2FsbG9jYXRpb25fcmVzdWx0LmMJKG5vbmV4aXN0ZW50KQpAQCAt
MSw0MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICov
Ci0KLSNpbmNsdWRlICJwYXNfY29uZmlnLmgiCi0KLSNpZiBMSUJQQVNfRU5BQkxFRAotCi0jaW5j
bHVkZSAicGFzX2FsbG9jYXRpb25fcmVzdWx0LmgiCi0KLXZvaWQgcGFzX2FsbG9jYXRpb25fcmVz
dWx0X3plcm8ocGFzX2FsbG9jYXRpb25fcmVzdWx0KiByZXN1bHQsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHNpemVfdCBzaXplKQotewotICAgIGlmICghcmVzdWx0LT56ZXJvX21v
ZGUgJiYgcmVzdWx0LT5kaWRfc3VjY2VlZCkgewotICAgICAgICBwYXNfemVyb19tZW1vcnkoKHZv
aWQqKXJlc3VsdC0+YmVnaW4sIHNpemUpOwotICAgICAgICByZXN1bHQtPnplcm9fbW9kZSA9IHBh
c196ZXJvX21vZGVfaXNfYWxsX3plcm87Ci0gICAgfQotfQotCi0jZW5kaWYgLyogTElCUEFTX0VO
QUJMRUQgKi8KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19hbGxv
Y2F0aW9uX3Jlc3VsdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19hbGxvY2F0aW9uX3Jlc3VsdC5oCShyZXZpc2lvbiAyNzk5NjQpCisrKyBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYWxsb2NhdGlvbl9yZXN1bHQuaAkod29y
a2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKGMpIDIwMTgt
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgUEFTX0FMTE9DQVRJT05fUkVT
VUxUX0gKICNkZWZpbmUgUEFTX0FMTE9DQVRJT05fUkVTVUxUX0gKIAorI2luY2x1ZGUgPGVycm5v
Lmg+CiAjaW5jbHVkZSAicGFzX3V0aWxzLmgiCiAjaW5jbHVkZSAicGFzX3plcm9fbW9kZS5oIgog
CkBAIC0zOCwxMSArMzksMTMgQEAgdHlwZWRlZiBzdHJ1Y3QgcGFzX2FsbG9jYXRpb25fcmVzdWx0
IHBhcwogICAgdG8gc2VwYXJhdGUgb3V0IHRoZSBhbGxvY2F0aW9uIHJlc3VsdCBzdGF0dXMgZnJv
bSB0aGUgcG9pbnRlciB0byBtYWtlIGNvbXBpbGVyIHRyYW5zZm9ybWF0aW9ucwogICAgb24gdGhl
IGFsbG9jYXRpb24gZmFzdCBwYXRoIHdvcmsuICovCiBzdHJ1Y3QgcGFzX2FsbG9jYXRpb25fcmVz
dWx0IHsKKyAgICB1aW50cHRyX3QgYmVnaW47CiAgICAgYm9vbCBkaWRfc3VjY2VlZDsKICAgICBw
YXNfemVyb19tb2RlIHplcm9fbW9kZTsKLSAgICB1aW50cHRyX3QgYmVnaW47CiB9OwogCit0eXBl
ZGVmIHBhc19hbGxvY2F0aW9uX3Jlc3VsdCAoKnBhc19hbGxvY2F0aW9uX3Jlc3VsdF9maWx0ZXIp
KHBhc19hbGxvY2F0aW9uX3Jlc3VsdCByZXN1bHQpOworCiBzdGF0aWMgaW5saW5lIHBhc19hbGxv
Y2F0aW9uX3Jlc3VsdCBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX2ZhaWx1cmUodm9pZCkK
IHsKICAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgcmVzdWx0OwpAQCAtNjksOCArNzIsMzkgQEAg
c3RhdGljIGlubGluZSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgcGFzXwogICAgICAgICBiZWdpbiwg
cGFzX3plcm9fbW9kZV9tYXlfaGF2ZV9ub25femVybyk7CiB9CiAKLVBBU19BUEkgdm9pZCBwYXNf
YWxsb2NhdGlvbl9yZXN1bHRfemVybyhwYXNfYWxsb2NhdGlvbl9yZXN1bHQqIHJlc3VsdCwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2l6ZSk7CitzdGF0
aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2FsbG9jYXRpb25fcmVzdWx0CitwYXNfYWxsb2NhdGlv
bl9yZXN1bHRfaWRlbnRpdHkocGFzX2FsbG9jYXRpb25fcmVzdWx0IHJlc3VsdCkKK3sKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorCitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2FsbG9jYXRp
b25fcmVzdWx0CitwYXNfYWxsb2NhdGlvbl9yZXN1bHRfemVybyhwYXNfYWxsb2NhdGlvbl9yZXN1
bHQgcmVzdWx0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHNpemUpCit7Cisg
ICAgaWYgKHJlc3VsdC5kaWRfc3VjY2VlZAorICAgICAgICAmJiByZXN1bHQuemVyb19tb2RlID09
IHBhc196ZXJvX21vZGVfbWF5X2hhdmVfbm9uX3plcm8pIHsKKyAgICAgICAgcGFzX3plcm9fbWVt
b3J5KCh2b2lkKilyZXN1bHQuYmVnaW4sIHNpemUpOworICAgICAgICByZXR1cm4gcGFzX2FsbG9j
YXRpb25fcmVzdWx0X2NyZWF0ZV9zdWNjZXNzX3dpdGhfemVyb19tb2RlKAorICAgICAgICAgICAg
cmVzdWx0LmJlZ2luLCBwYXNfemVyb19tb2RlX2lzX2FsbF96ZXJvKTsKKyAgICB9CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KKworc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19hbGxvY2F0aW9u
X3Jlc3VsdAorcGFzX2FsbG9jYXRpb25fcmVzdWx0X3NldF9lcnJubyhwYXNfYWxsb2NhdGlvbl9y
ZXN1bHQgcmVzdWx0KQoreworICAgIGlmICghcmVzdWx0LmRpZF9zdWNjZWVkKQorICAgICAgICBl
cnJubyA9IEVOT01FTTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitzdGF0aWMgUEFTX0FMV0FZ
U19JTkxJTkUgcGFzX2FsbG9jYXRpb25fcmVzdWx0CitwYXNfYWxsb2NhdGlvbl9yZXN1bHRfY3Jh
c2hfb25fZXJyb3IocGFzX2FsbG9jYXRpb25fcmVzdWx0IHJlc3VsdCkKK3sKKyAgICBQQVNfQVNT
RVJUKHJlc3VsdC5kaWRfc3VjY2VlZCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KIAogUEFTX0VO
RF9FWFRFUk5fQzsKIApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X2Jhc2VsaW5lX2FsbG9jYXRvci5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc19iYXNlbGluZV9hbGxvY2F0b3IuYwkocmV2aXNpb24gMjc5OTY0KQor
KysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2Jhc2VsaW5lX2FsbG9jYXRv
ci5jCSh3b3JraW5nIGNvcHkpCkBAIC0yOSwxNiArMjksMTYgQEAKIAogI2luY2x1ZGUgInBhc19i
YXNlbGluZV9hbGxvY2F0b3IuaCIKIAotI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeS5oIgorI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
LmgiCiAKIHZvaWQgcGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl9hdHRhY2hfZGlyZWN0b3J5KHBhc19i
YXNlbGluZV9hbGxvY2F0b3IqIGFsbG9jYXRvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSog
ZGlyZWN0b3J5KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSkKIHsKICAgICBQQVNfQVNT
RVJUKCFhbGxvY2F0b3ItPnUuYWxsb2NhdG9yLnZpZXcpOwogICAgIAogICAgIFBBU19BU1NFUlQo
CiAgICAgICAgIFBBU19CQVNFTElORV9MT0NBTF9BTExPQ0FUT1JfU0laRQotICAgICAgICA+PSBw
YXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfbG9jYWxfYWxsb2NhdG9yX3NpemUo
ZGlyZWN0b3J5KSk7CisgICAgICAgID49IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2xv
Y2FsX2FsbG9jYXRvcl9zaXplKGRpcmVjdG9yeSkpOwogICAgIAogICAgIHBhc19sb2NhbF9hbGxv
Y2F0b3JfY29uc3RydWN0KCZhbGxvY2F0b3ItPnUuYWxsb2NhdG9yLCBkaXJlY3RvcnkpOwogfQpA
QCAtNTAsNyArNTAsNiBAQCB2b2lkIHBhc19iYXNlbGluZV9hbGxvY2F0b3JfZGV0YWNoX2RpcmVj
CiAgICAgICAgICZhbGxvY2F0b3ItPnUuYWxsb2NhdG9yLAogICAgICAgICBwYXNfbG9ja19sb2Nr
X21vZGVfbG9jaywKICAgICAgICAgcGFzX2xvY2tfaXNfbm90X2hlbGQpOwotICAgIHBhc19sb2Nh
bF9hbGxvY2F0b3JfZGVzdHJ1Y3QoJmFsbG9jYXRvci0+dS5hbGxvY2F0b3IpOwogICAgIHBhc196
ZXJvX21lbW9yeSgmYWxsb2NhdG9yLT51LmFsbG9jYXRvciwgc2l6ZW9mKHBhc19sb2NhbF9hbGxv
Y2F0b3IpKTsgLyogRG9lcyBub3QgemVybyB0aGUgYml0cywKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHdoaWNoIGlzIE9LLiAqLwogfQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX2Jhc2VsaW5lX2FsbG9jYXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iYXNlbGluZV9hbGxvY2F0b3IuaAkocmV2aXNpb24gMjc5
OTY0KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2Jhc2VsaW5lX2Fs
bG9jYXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC01NSw3ICs1NSw3IEBAIHN0cnVjdCBwYXNfYmFz
ZWxpbmVfYWxsb2NhdG9yIHsKICAgICB9KQogCiBQQVNfQVBJIHZvaWQgcGFzX2Jhc2VsaW5lX2Fs
bG9jYXRvcl9hdHRhY2hfZGlyZWN0b3J5KHBhc19iYXNlbGluZV9hbGxvY2F0b3IqIGFsbG9jYXRv
ciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KTsKIAogUEFTX0FQSSB2b2lkIHBhc19iYXNl
bGluZV9hbGxvY2F0b3JfZGV0YWNoX2RpcmVjdG9yeShwYXNfYmFzZWxpbmVfYWxsb2NhdG9yKiBh
bGxvY2F0b3IpOwogCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
Ymlhc2luZ19kaXJlY3RvcnkuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfYmlhc2luZ19kaXJlY3RvcnkuYwkocmV2aXNpb24gMjc5OTY0KQorKysg
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpYXNpbmdfZGlyZWN0b3J5LmMJ
KG5vbmV4aXN0ZW50KQpAQCAtMSwxNDcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMjAy
MC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
LSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRlICJwYXNfY29uZmlnLmgiCi0KLSNp
ZiBMSUJQQVNfRU5BQkxFRAotCi0jaW5jbHVkZSAicGFzX2JpYXNpbmdfZGlyZWN0b3J5LmgiCi0K
LSNpbmNsdWRlICJwYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXMuaCIKLSNpbmNsdWRlICJwYXNf
Ymlhc2luZ19kaXJlY3RvcnlfaW5saW5lcy5oIgotI2luY2x1ZGUgInBhc19iaXRmaXRfZ2xvYmFs
X2RpcmVjdG9yeS5oIgotI2luY2x1ZGUgInBhc19wYWdlX3NoYXJpbmdfcG9vbC5oIgotI2luY2x1
ZGUgInBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeS5oIgotCi12b2lkIHBhc19i
aWFzaW5nX2RpcmVjdG9yeV9jb25zdHJ1Y3QocGFzX2JpYXNpbmdfZGlyZWN0b3J5KiBkaXJlY3Rv
cnksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2JpYXNpbmdfZGly
ZWN0b3J5X2tpbmQga2luZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1
bnNpZ25lZCBtYWdhemluZV9pbmRleCkKLXsKLSAgICBwYXNfdmVyc2lvbmVkX2ZpZWxkX2NvbnN0
cnVjdCgmZGlyZWN0b3J5LT5lbGlnaWJsZV9oaWdoX3dhdGVybWFyaywgMCk7Ci0gICAgCi0gICAg
cGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9wYXlsb2FkX3dpdGhfdXNlX2Vwb2NoX2NvbnN0
cnVjdCgmZGlyZWN0b3J5LT5iaWFzX3NoYXJpbmdfcGF5bG9hZCk7Ci0KLSAgICBkaXJlY3Rvcnkt
PmN1cnJlbnRfaGlnaF93YXRlcm1hcmsgPSAwOwotICAgIGRpcmVjdG9yeS0+cHJldmlvdXNfaGln
aF93YXRlcm1hcmsgPSAwOwotCi0gICAgZGlyZWN0b3J5LT5pbmRleF9pbl9hbGwgPSAwOwotICAg
IAotICAgIGRpcmVjdG9yeS0+a2luZCA9IGtpbmQ7Ci0KLSAgICBwYXNfYWxsX2JpYXNpbmdfZGly
ZWN0b3JpZXNfYXBwZW5kKGRpcmVjdG9yeSk7Ci0KLSAgICBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xf
YWRkX2F0X2luZGV4KAotICAgICAgICBwYXNfYmlhc2luZ19kaXJlY3RvcnlfZ2V0X3NoYXJpbmdf
cG9vbChkaXJlY3RvcnkpLAotICAgICAgICBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2Ny
ZWF0ZSgKLSAgICAgICAgICAgIGRpcmVjdG9yeSwgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFu
dF9iaWFzaW5nX2RpcmVjdG9yeSksCi0gICAgICAgIG1hZ2F6aW5lX2luZGV4KTsKLX0KLQotcGFz
X3BhZ2Vfc2hhcmluZ19wb29sKiBwYXNfYmlhc2luZ19kaXJlY3RvcnlfZ2V0X3NoYXJpbmdfcG9v
bChwYXNfYmlhc2luZ19kaXJlY3RvcnkqIGRpcmVjdG9yeSkKLXsKLSAgICBpZiAocGFzX2lzX3Nl
Z3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkoZGlyZWN0b3J5KSkgewotICAgICAgICByZXR1cm4g
cGFzX2NvbXBhY3RfYXRvbWljX3BhZ2Vfc2hhcmluZ19wb29sX3B0cl9sb2FkX25vbl9udWxsKAot
ICAgICAgICAgICAgJnBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhX3B0
cl9sb2FkX25vbl9udWxsKAotICAgICAgICAgICAgICAgICZwYXNfY29tcGFjdF9zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgKLSAgICAgICAgICAgICAg
ICAgICAgJnBhc191bndyYXBfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeSgKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGRpcmVjdG9yeSktPnBhcmVudF9nbG9iYWwpLT5kYXRhKS0+Ymlhc19z
aGFyaW5nX3Bvb2wpOwotICAgIH0KLQotICAgIHJldHVybiBwYXNfY29tcGFjdF9hdG9taWNfcGFn
ZV9zaGFyaW5nX3Bvb2xfcHRyX2xvYWRfbm9uX251bGwoCi0gICAgICAgICZwYXNfY29tcGFjdF9i
aXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgKLSAgICAgICAgICAgICZw
YXNfdW53cmFwX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeSgKLSAgICAgICAgICAgICAgICBkaXJl
Y3RvcnkpLT5wYXJlbnRfZ2xvYmFsKS0+Ymlhc19zaGFyaW5nX3Bvb2wpOwotfQotCi12b2lkIHBh
c19iaWFzaW5nX2RpcmVjdG9yeV9kaWRfY3JlYXRlX2RlbHRhKHBhc19iaWFzaW5nX2RpcmVjdG9y
eSogZGlyZWN0b3J5KQotewotICAgIHBhc19wYWdlX3NoYXJpbmdfcG9vbCogcG9vbDsKLSAgICAK
LSAgICBwb29sID0gcGFzX2JpYXNpbmdfZGlyZWN0b3J5X2dldF9zaGFyaW5nX3Bvb2woZGlyZWN0
b3J5KTsKLSAgICAKLSAgICBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfZGlkX2NyZWF0ZV9kZWx0YSgK
LSAgICAgICAgcG9vbCwKLSAgICAgICAgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9jcmVh
dGUoCi0gICAgICAgICAgICBkaXJlY3RvcnksCi0gICAgICAgICAgICBwYXNfcGFnZV9zaGFyaW5n
X3BhcnRpY2lwYW50X2JpYXNpbmdfZGlyZWN0b3J5KSk7Ci19Ci0KLXBhc19wYWdlX3NoYXJpbmdf
cG9vbF90YWtlX3Jlc3VsdCBwYXNfYmlhc2luZ19kaXJlY3RvcnlfdGFrZV9sYXN0X3VudXNlZCgK
LSAgICBwYXNfYmlhc2luZ19kaXJlY3RvcnkqIGRpcmVjdG9yeSkKLXsKLSAgICBpZiAocGFzX2lz
X3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkoZGlyZWN0b3J5KSkgewotICAgICAgICByZXR1
cm4gcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnlfdGFrZV9sYXN0X3VudXNlZCgKLSAg
ICAgICAgICAgIHBhc191bndyYXBfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeShkaXJlY3Rv
cnkpKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeV90
YWtlX2xhc3RfdW51c2VkKAotICAgICAgICBwYXNfdW53cmFwX2JpdGZpdF9iaWFzaW5nX2RpcmVj
dG9yeShkaXJlY3RvcnkpKTsKLX0KLQotdm9pZCBwYXNfYmlhc2luZ19kaXJlY3RvcnlfZGlkX3Vz
ZV9pbmRleF9zbG93KHBhc19iaWFzaW5nX2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBpbmRleCkKLXsKLSAg
ICBzaXplX3QgbGFyZ2VfaW5kZXhfcGx1c19vbmU7Ci0gICAgdW5zaWduZWQgaW5kZXhfcGx1c19v
bmU7Ci0gICAgYm9vbCBkaWRfb3ZlcmZsb3c7Ci0KLSAgICBkaWRfb3ZlcmZsb3cgPSBfX2J1aWx0
aW5fYWRkX292ZXJmbG93KGluZGV4LCAxLCAmbGFyZ2VfaW5kZXhfcGx1c19vbmUpOwotICAgIFBB
U19BU1NFUlQoIWRpZF9vdmVyZmxvdyk7Ci0gICAgaW5kZXhfcGx1c19vbmUgPSAodW5zaWduZWQp
bGFyZ2VfaW5kZXhfcGx1c19vbmU7Ci0gICAgUEFTX0FTU0VSVChpbmRleF9wbHVzX29uZSA9PSBs
YXJnZV9pbmRleF9wbHVzX29uZSk7Ci0gICAgZGlyZWN0b3J5LT5jdXJyZW50X2hpZ2hfd2F0ZXJt
YXJrID0gaW5kZXhfcGx1c19vbmU7Ci0gICAgcGFzX2ZlbmNlKCk7Ci0gICAgcGFzX2FsbF9iaWFz
aW5nX2RpcmVjdG9yaWVzX2FjdGl2YXRlKGRpcmVjdG9yeSk7Ci19Ci0KLXZvaWQgcGFzX2JpYXNp
bmdfZGlyZWN0b3J5X2luZGV4X2RpZF9iZWNvbWVfZWxpZ2libGUocGFzX2JpYXNpbmdfZGlyZWN0
b3J5KiBkaXJlY3RvcnksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNpemVfdCBpbmRleCkKLXsKLSAgICBzaXplX3Qgd2F0ZXJtYXJrX2luZGV4
OwotICAgIGJvb2wgZGlkX292ZXJmbG93OwotICAgIGJvb2wgc2hvdWxkX25vdGlmeV9kZWx0YTsK
LQotICAgIGRpZF9vdmVyZmxvdyA9IF9fYnVpbHRpbl9hZGRfb3ZlcmZsb3coaW5kZXgsIDEsICZ3
YXRlcm1hcmtfaW5kZXgpOwotICAgIFBBU19BU1NFUlQoIWRpZF9vdmVyZmxvdyk7Ci0KLSAgICBz
aG91bGRfbm90aWZ5X2RlbHRhID0KLSAgICAgICAgcGFzX3ZlcnNpb25lZF9maWVsZF9tYXhpbWl6
ZSgKLSAgICAgICAgICAgICZkaXJlY3RvcnktPmVsaWdpYmxlX2hpZ2hfd2F0ZXJtYXJrLCB3YXRl
cm1hcmtfaW5kZXgpCi0gICAgICAgIDwgd2F0ZXJtYXJrX2luZGV4OwotCi0gICAgaWYgKHNob3Vs
ZF9ub3RpZnlfZGVsdGEpIHsKLSAgICAgICAgcGFzX3BhZ2Vfc2hhcmluZ19wb29sKiBwb29sOwot
Ci0gICAgICAgIHBvb2wgPSBwYXNfYmlhc2luZ19kaXJlY3RvcnlfZ2V0X3NoYXJpbmdfcG9vbChk
aXJlY3RvcnkpOwotCi0gICAgICAgIHBhc19wYWdlX3NoYXJpbmdfcG9vbF9kaWRfY3JlYXRlX2Rl
bHRhKAotICAgICAgICAgICAgcG9vbCwKLSAgICAgICAgICAgIHBhc19wYWdlX3NoYXJpbmdfcGFy
dGljaXBhbnRfY3JlYXRlKAotICAgICAgICAgICAgICAgIGRpcmVjdG9yeSwKLSAgICAgICAgICAg
ICAgICBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2JpYXNpbmdfZGlyZWN0b3J5KSk7Ci0g
ICAgfQotfQotCi0jZW5kaWYgLyogTElCUEFTX0VOQUJMRUQgKi8KSW5kZXg6IFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaWFzaW5nX2RpcmVjdG9yeS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaWFzaW5nX2RpcmVjdG9y
eS5oCShyZXZpc2lvbiAyNzk5NjQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfYmlhc2luZ19kaXJlY3RvcnkuaAkobm9uZXhpc3RlbnQpCkBAIC0xLDEyMyArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChjKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
LSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2lm
bmRlZiBQQVNfQklBU0lOR19ESVJFQ1RPUllfSAotI2RlZmluZSBQQVNfQklBU0lOR19ESVJFQ1RP
UllfSAotCi0jaW5jbHVkZSAicGFzX2JpYXNpbmdfZGlyZWN0b3J5X2tpbmQuaCIKLSNpbmNsdWRl
ICJwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50LmgiCi0jaW5jbHVkZSAicGFzX3ZlcnNpb25l
ZF9maWVsZC5oIgotCi1QQVNfQkVHSU5fRVhURVJOX0M7Ci0KLXN0cnVjdCBwYXNfYmlhc2luZ19k
aXJlY3Rvcnk7Ci1zdHJ1Y3QgcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeTsKLXN0cnVjdCBw
YXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeTsKLXR5cGVkZWYgc3RydWN0IHBhc19iaWFz
aW5nX2RpcmVjdG9yeSBwYXNfYmlhc2luZ19kaXJlY3Rvcnk7Ci10eXBlZGVmIHN0cnVjdCBwYXNf
Yml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5IHBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3Rvcnk7Ci10
eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeSBwYXNfc2VncmVn
YXRlZF9iaWFzaW5nX2RpcmVjdG9yeTsKLQotc3RydWN0IHBhc19iaWFzaW5nX2RpcmVjdG9yeSB7
Ci0gICAgcGFzX3ZlcnNpb25lZF9maWVsZCBlbGlnaWJsZV9oaWdoX3dhdGVybWFyazsKLSAgICBw
YXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X3BheWxvYWRfd2l0aF91c2VfZXBvY2ggYmlhc19z
aGFyaW5nX3BheWxvYWQ7Ci0gICAgdW5zaWduZWQgY3VycmVudF9oaWdoX3dhdGVybWFyazsKLSAg
ICB1bnNpZ25lZCBwcmV2aW91c19oaWdoX3dhdGVybWFyazsKLSAgICB1bnNpZ25lZCBpbmRleF9p
bl9hbGwgOiAzMTsKLSAgICBwYXNfYmlhc2luZ19kaXJlY3Rvcnlfa2luZCBraW5kIDogMTsKLX07
Ci0KLVBBU19BUEkgdm9pZCBwYXNfYmlhc2luZ19kaXJlY3RvcnlfY29uc3RydWN0KHBhc19iaWFz
aW5nX2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcGFzX2JpYXNpbmdfZGlyZWN0b3J5X2tpbmQga2luZCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIG1hZ2F6aW5lX2lu
ZGV4KTsKLQotc3RhdGljIGlubGluZSBib29sIHBhc19pc19zZWdyZWdhdGVkX2JpYXNpbmdfZGly
ZWN0b3J5KHBhc19iaWFzaW5nX2RpcmVjdG9yeSogZGlyZWN0b3J5KQotewotICAgIHJldHVybiBk
aXJlY3RvcnktPmtpbmQgPT0gcGFzX2JpYXNpbmdfZGlyZWN0b3J5X3NlZ3JlZ2F0ZWRfa2luZDsK
LX0KLQotc3RhdGljIGlubGluZSBib29sIHBhc19pc19iaXRmaXRfYmlhc2luZ19kaXJlY3Rvcnko
cGFzX2JpYXNpbmdfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCi17Ci0gICAgcmV0dXJuICFwYXNfaXNf
c2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeShkaXJlY3RvcnkpOwotfQotCi1zdGF0aWMgaW5s
aW5lIHVuc2lnbmVkIHBhc19iaWFzaW5nX2RpcmVjdG9yeV9tYWdhemluZV9pbmRleChwYXNfYmlh
c2luZ19kaXJlY3RvcnkqIGRpcmVjdG9yeSkKLXsKLSAgICByZXR1cm4gZGlyZWN0b3J5LT5iaWFz
X3NoYXJpbmdfcGF5bG9hZC5iYXNlLmluZGV4X2luX3NoYXJpbmdfcG9vbDsKLX0KLQotLyogQWxs
IHZpZXdzIGF0IGluZGljZXMgYmVsb3cgdGhlIG93bmVyc2hpcCB0aHJlc2hvbGQgYXJlIGdvaW5n
IHRvIGJlIGtlcHQgZnJvbSB0aGUgZ2xvYmFsCi0gICBkaXJlY3RvcnkuICovCi1zdGF0aWMgaW5s
aW5lIHVuc2lnbmVkIHBhc19iaWFzaW5nX2RpcmVjdG9yeV9vd25lcnNoaXBfdGhyZXNob2xkKHBh
c19iaWFzaW5nX2RpcmVjdG9yeSogZGlyZWN0b3J5KQotewotICAgIHJldHVybiBQQVNfTUFYKGRp
cmVjdG9yeS0+Y3VycmVudF9oaWdoX3dhdGVybWFyaywKLSAgICAgICAgICAgICAgICAgICBkaXJl
Y3RvcnktPnByZXZpb3VzX2hpZ2hfd2F0ZXJtYXJrKTsKLX0KLQotc3RhdGljIGlubGluZSB1bnNp
Z25lZCBwYXNfYmlhc2luZ19kaXJlY3RvcnlfdW51c2VkX3NwYW5fc2l6ZShwYXNfYmlhc2luZ19k
aXJlY3RvcnkqIGRpcmVjdG9yeSkKLXsKLSAgICB1bnNpZ25lZCBvd25lcnNoaXBfdGhyZXNob2xk
OwotICAgIHNpemVfdCBlbGlnaWJsZV90aHJlc2hvbGQ7Ci0gICAgdW5zaWduZWQgc21hbGxfZWxp
Z2libGVfdGhyZXNob2xkOwotCi0gICAgLyogVGhpcyBpcyB3cml0dGVuIHNvIHRoYXQgaXQgcmV0
dXJucyBzb21ldGhpbmcgc2Vuc2libGUgZXZlbiBpbiBjYXNlIG9mIHJhY2VzLiAqLwotICAgIG93
bmVyc2hpcF90aHJlc2hvbGQgPSBwYXNfYmlhc2luZ19kaXJlY3Rvcnlfb3duZXJzaGlwX3RocmVz
aG9sZChkaXJlY3RvcnkpOwotICAgIGVsaWdpYmxlX3RocmVzaG9sZCA9IGRpcmVjdG9yeS0+ZWxp
Z2libGVfaGlnaF93YXRlcm1hcmsudmFsdWU7Ci0KLSAgICBzbWFsbF9lbGlnaWJsZV90aHJlc2hv
bGQgPSAodW5zaWduZWQpZWxpZ2libGVfdGhyZXNob2xkOwotICAgIFBBU19BU1NFUlQoc21hbGxf
ZWxpZ2libGVfdGhyZXNob2xkID09IGVsaWdpYmxlX3RocmVzaG9sZCk7Ci0KLSAgICBpZiAob3du
ZXJzaGlwX3RocmVzaG9sZCA+IHNtYWxsX2VsaWdpYmxlX3RocmVzaG9sZCkKLSAgICAgICAgcmV0
dXJuIDA7IC8qIFRoaXMgaXMgdG90YWxseSBwb3NzaWJsZSAtIG93bmVyc2hpcCBhbmQgZWxpZ2li
bGl0eSBmbG9hdCBpbmRlcGVuZGVudGx5LiAqLwotCi0gICAgcmV0dXJuIHNtYWxsX2VsaWdpYmxl
X3RocmVzaG9sZCAtIG93bmVyc2hpcF90aHJlc2hvbGQ7Ci19Ci0KLVBBU19BUEkgcGFzX3BhZ2Vf
c2hhcmluZ19wb29sKiBwYXNfYmlhc2luZ19kaXJlY3RvcnlfZ2V0X3NoYXJpbmdfcG9vbChwYXNf
Ymlhc2luZ19kaXJlY3RvcnkqIGRpcmVjdG9yeSk7Ci0KLVBBU19BUEkgdm9pZCBwYXNfYmlhc2lu
Z19kaXJlY3RvcnlfZGlkX2NyZWF0ZV9kZWx0YShwYXNfYmlhc2luZ19kaXJlY3RvcnkqIGRpcmVj
dG9yeSk7Ci0KLVBBU19BUEkgcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2VfcmVzdWx0IHBhc19i
aWFzaW5nX2RpcmVjdG9yeV90YWtlX2xhc3RfdW51c2VkKAotICAgIHBhc19iaWFzaW5nX2RpcmVj
dG9yeSogZGlyZWN0b3J5KTsKLQotUEFTX0FQSSB2b2lkIHBhc19iaWFzaW5nX2RpcmVjdG9yeV9k
aWRfdXNlX2luZGV4X3Nsb3cocGFzX2JpYXNpbmdfZGlyZWN0b3J5KiBkaXJlY3RvcnksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qg
aW5kZXgpOwotCi1zdGF0aWMgaW5saW5lIHZvaWQgcGFzX2JpYXNpbmdfZGlyZWN0b3J5X2RpZF91
c2VfaW5kZXgocGFzX2JpYXNpbmdfZGlyZWN0b3J5KiBkaXJlY3RvcnksCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGluZGV4LAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVp
bnQ2NF90IGVwb2NoKQotewotICAgIGlmIChQQVNfVU5MSUtFTFkoaW5kZXggPj0gZGlyZWN0b3J5
LT5jdXJyZW50X2hpZ2hfd2F0ZXJtYXJrKSkKLSAgICAgICAgcGFzX2JpYXNpbmdfZGlyZWN0b3J5
X2RpZF91c2VfaW5kZXhfc2xvdyhkaXJlY3RvcnksIGluZGV4KTsKLQotICAgIGRpcmVjdG9yeS0+
Ymlhc19zaGFyaW5nX3BheWxvYWQudXNlX2Vwb2NoID0gZXBvY2g7Ci19Ci0KLVBBU19BUEkgdm9p
ZCBwYXNfYmlhc2luZ19kaXJlY3RvcnlfaW5kZXhfZGlkX2JlY29tZV9lbGlnaWJsZShwYXNfYmlh
c2luZ19kaXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgaW5kZXgpOwotCi1QQVNfRU5E
X0VYVEVSTl9DOwotCi0jZW5kaWYgLyogUEFTX0JJQVNJTkdfRElSRUNUT1JZX0ggKi8KLQpJbmRl
eDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpYXNpbmdfZGlyZWN0b3J5
X2lubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfYmlhc2luZ19kaXJlY3RvcnlfaW5saW5lcy5oCShyZXZpc2lvbiAyNzk5NjQpCisrKyBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYmlhc2luZ19kaXJlY3RvcnlfaW5s
aW5lcy5oCShub25leGlzdGVudCkKQEAgLTEsNTQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
YykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
Ci0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaWZuZGVmIFBBU19CSUFTSU5HX0RJUkVDVE9S
WV9JTkxJTkVTX0gKLSNkZWZpbmUgUEFTX0JJQVNJTkdfRElSRUNUT1JZX0lOTElORVNfSAotCi0j
aW5jbHVkZSAicGFzX2JpYXNpbmdfZGlyZWN0b3J5LmgiCi0jaW5jbHVkZSAicGFzX2JpdGZpdF9i
aWFzaW5nX2RpcmVjdG9yeS5oIgotI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGly
ZWN0b3J5LmgiCi0KLVBBU19CRUdJTl9FWFRFUk5fQzsKLQotc3RhdGljIGlubGluZSBwYXNfc2Vn
cmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeSogcGFzX3Vud3JhcF9zZWdyZWdhdGVkX2JpYXNpbmdf
ZGlyZWN0b3J5KAotICAgIHBhc19iaWFzaW5nX2RpcmVjdG9yeSogZGlyZWN0b3J5KQotewotICAg
IFBBU19BU1NFUlQocGFzX2lzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkoZGlyZWN0b3J5
KSk7Ci0gICAgcmV0dXJuIChwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeSopKAotICAg
ICAgICAodWludHB0cl90KWRpcmVjdG9yeSAtIFBBU19PRkZTRVRPRihwYXNfc2VncmVnYXRlZF9i
aWFzaW5nX2RpcmVjdG9yeSwgYmlhc2luZ19iYXNlKSk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgcGFz
X2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeSogcGFzX3Vud3JhcF9iaXRmaXRfYmlhc2luZ19kaXJl
Y3RvcnkoCi0gICAgcGFzX2JpYXNpbmdfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCi17Ci0gICAgUEFT
X0FTU0VSVChwYXNfaXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5KGRpcmVjdG9yeSkpOwotICAg
IHJldHVybiAocGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeSopKAotICAgICAgICAodWludHB0
cl90KWRpcmVjdG9yeSAtIFBBU19PRkZTRVRPRihwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5
LCBiaWFzaW5nX2Jhc2UpKTsKLX0KLQotUEFTX0VORF9FWFRFUk5fQzsKLQotI2VuZGlmIC8qIFBB
U19CSUFTSU5HX0RJUkVDVE9SWV9JTkxJTkVTX0ggKi8KLQpJbmRleDogU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9hbGxvY2F0b3IuYwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2FsbG9jYXRvci5jCShy
ZXZpc2lvbiAyNzk5NjQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
Yml0Zml0X2FsbG9jYXRvci5jCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3ICszNCw2IEBACiAjaW5j
bHVkZSAicGFzX2JpdGZpdF9zaXplX2NsYXNzLmgiCiAjaW5jbHVkZSAicGFzX2JpdGZpdF92aWV3
X2lubGluZXMuaCIKICNpbmNsdWRlICJwYXNfZXBvY2guaCIKLSNpbmNsdWRlICJwYXNfc3VicGFn
ZV9tYXAuaCIKIAogYm9vbCBwYXNfYml0Zml0X2FsbG9jYXRvcl9jb21taXRfdmlldyhwYXNfYml0
Zml0X3ZpZXcqIHZpZXcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBh
c19sb2NhbF9hbGxvY2F0b3IqIGxvY2FsLApAQCAtNDMsMTAgKzQyLDkgQEAgYm9vbCBwYXNfYml0
Zml0X2FsbG9jYXRvcl9jb21taXRfdmlldyhwYQogewogICAgIHN0YXRpYyBjb25zdCBib29sIHZl
cmJvc2UgPSBmYWxzZTsKICAgICAKLSAgICBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkqIGRp
cmVjdG9yeTsKLSAgICBib29sIHVzZXNfc3VicGFnZXM7CisgICAgcGFzX2JpdGZpdF9kaXJlY3Rv
cnkqIGRpcmVjdG9yeTsKIAotICAgIGRpcmVjdG9yeSA9IHBhc19jb21wYWN0X2JpdGZpdF9nbG9i
YWxfZGlyZWN0b3J5X3B0cl9sb2FkKCZ2aWV3LT5nbG9iYWxfZGlyZWN0b3J5KTsKKyAgICBkaXJl
Y3RvcnkgPSBwYXNfY29tcGFjdF9iaXRmaXRfZGlyZWN0b3J5X3B0cl9sb2FkKCZ2aWV3LT5kaXJl
Y3RvcnkpOwogCiAgICAgLyogV2UncmUgYWxtb3N0IGNlcnRhaW5seSBnb25uYSBjb21taXQgYSBw
YWdlLCBzbyBsZXQncyBqdXN0IGdldCB0aGlzIG91dCBvZiB0aGUgd2F5LiBXZSBuZWVkIHRvCiAg
ICAgICAgcmVsZWFzZSB0aGUgb3duZXJzaGlwIGxvY2sgdG8gZG8gdGhpcy4gQnV0LCB3ZSBjYW4n
dCBkbyBpdCBhdCBhbGwgaWYgd2UgYWxyZWFkeSBob2xkIHRoZSBjb21taXQKQEAgLTU1LDE2ICs1
MywxMyBAQCBib29sIHBhc19iaXRmaXRfYWxsb2NhdG9yX2NvbW1pdF92aWV3KHBhCiAgICAgICAg
IHBhc19sb2NrX3VubG9jaygmdmlldy0+b3duZXJzaGlwX2xvY2spOwogICAgICAgICBwYXNfcGh5
c2ljYWxfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9mb3JfcGFnZV9jb25maWcoCiAgICAgICAgICAg
ICBjb25maWctPmJhc2UucGFnZV9zaXplLCAmY29uZmlnLT5iYXNlLCBwYXNfbG9ja19pc19ub3Rf
aGVsZCwgTlVMTCwgMCk7Ci0gICAgICAgIHBhc19iaXRmaXRfdmlld19sb2NrX293bmVyc2hpcF9s
b2NrKHZpZXcpOworICAgICAgICBwYXNfbG9ja19sb2NrKCZ2aWV3LT5vd25lcnNoaXBfbG9jayk7
CiAgICAgfQogCi0gICAgdXNlc19zdWJwYWdlcyA9IHBhc19iaXRmaXRfcGFnZV9jb25maWdfdXNl
c19zdWJwYWdlcygqY29uZmlnKTsKLQogICAgIGlmICh2ZXJib3NlKQogICAgICAgICBwYXNfbG9n
KCJjb21taXR0aW5nIGJpdGZpdCB2aWV3IVxuIik7CiAKICAgICBmb3IgKDs7KSB7Ci0gICAgICAg
IHBhc19zdWJwYWdlX21hcF9lbnRyeSogc3VicGFnZV9lbnRyeTsKICAgICAgICAgcGFzX2xvY2sq
IGNvbW1pdF9sb2NrOwogICAgICAgICBib29sIGhhc19wYWdlX2JvdW5kYXJ5OwogICAgICAgICAK
QEAgLTkxLDcgKzg2LDcgQEAgYm9vbCBwYXNfYml0Zml0X2FsbG9jYXRvcl9jb21taXRfdmlldyhw
YQogICAgICAgICAgICAgICAgIHBhc19sb2coIm5lZWQgdG8gYWxsb2NhdGUgbmV3IHBhZ2UuXG4i
KTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgcGFzX2hlYXBfbG9ja19sb2NrKCk7Ci0gICAg
ICAgICAgICBwYXNfYml0Zml0X3ZpZXdfbG9ja19vd25lcnNoaXBfbG9jayh2aWV3KTsKKyAgICAg
ICAgICAgIHBhc19sb2NrX2xvY2soJnZpZXctPm93bmVyc2hpcF9sb2NrKTsKICAgICAgICAgICAg
IGlmICh2aWV3LT5wYWdlX2JvdW5kYXJ5KSB7CiAgICAgICAgICAgICAgICAgcGFzX2hlYXBfbG9j
a191bmxvY2soKTsKICAgICAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTEwNywyMyArMTAyLDE0
IEBAIGJvb2wgcGFzX2JpdGZpdF9hbGxvY2F0b3JfY29tbWl0X3ZpZXcocGEKICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIAogICAgICAgICAgICAgdmlldy0+cGFnZV9ib3VuZGFyeSA9IGNvbmZp
Zy0+YmFzZS5wYWdlX2FsbG9jYXRvcigKLSAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF92
aWV3X2dldF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkobG9jYWwtPnZpZXcpLT5oZWFwKTsKKyAgICAg
ICAgICAgICAgICBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9zaXplX2RpcmVjdG9yeShsb2NhbC0+
dmlldyktPmhlYXApOwogICAgICAgICAgICAgZGlkX3N1Y2NlZWQgPSAhIXZpZXctPnBhZ2VfYm91
bmRhcnk7CiAKICAgICAgICAgICAgIGlmICh2ZXJib3NlKQogICAgICAgICAgICAgICAgIHBhc19s
b2coInBhZ2VfYm91bmRhcnkgPSAlcCwgZGlkX3N1Y2NlZWQgPSAlZFxuIiwgdmlldy0+cGFnZV9i
b3VuZGFyeSwgZGlkX3N1Y2NlZWQpOwogICAgICAgICAgICAgCi0gICAgICAgICAgICBpZiAoZGlk
X3N1Y2NlZWQpIHsKKyAgICAgICAgICAgIGlmIChkaWRfc3VjY2VlZCkKICAgICAgICAgICAgICAg
ICBjb25maWctPmJhc2UuY3JlYXRlX3BhZ2VfaGVhZGVyKHZpZXctPnBhZ2VfYm91bmRhcnksIHBh
c19sb2NrX2lzX2hlbGQpOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGlmICh1
c2VzX3N1YnBhZ2VzKSB7Ci0gICAgICAgICAgICAgICAgICAgIHBhc19zdWJwYWdlX21hcF9hZGQo
Ci0gICAgICAgICAgICAgICAgICAgICAgICB2aWV3LT5wYWdlX2JvdW5kYXJ5LAotICAgICAgICAg
ICAgICAgICAgICAgICAgY29uZmlnLT5iYXNlLnBhZ2Vfc2l6ZSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHBhc19jb21taXR0ZWQsCi0gICAgICAgICAgICAgICAgICAgICAgICBwYXNfbG9ja19p
c19oZWxkKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9CiAgICAgICAgICAgICAK
ICAgICAgICAgICAgIHBhc19oZWFwX2xvY2tfdW5sb2NrKCk7CiAKQEAgLTEzNywxNiArMTIzLDcg
QEAgYm9vbCBwYXNfYml0Zml0X2FsbG9jYXRvcl9jb21taXRfdmlldyhwYQogICAgICAgICAgICAg
cmV0dXJuIGRpZF9zdWNjZWVkOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKHVzZXNfc3VicGFn
ZXMpIHsKLSAgICAgICAgICAgIC8qIEl0J3Mgbm90IGdyZWF0IHRoYXQgdGhpcyBoYXMgdG8gYWNx
dWlyZSB0aGUgaGVhcCBsb2NrLCBidXQgdGhlbiBhZ2FpbiBpZiB3ZSdyZQotICAgICAgICAgICAg
ICAgaGVyZSB0aGVuIHdlJ3JlIGNvbW1pdHRlZCB0byBjb21taXR0aW5nIHRoZSBwYWdlLCBzbyBp
dCdzIHByb2JhYmx5IGZpbmUuICovCi0gICAgICAgICAgICBzdWJwYWdlX2VudHJ5ID0gcGFzX3N1
YnBhZ2VfbWFwX2dldCgKLSAgICAgICAgICAgICAgICB2aWV3LT5wYWdlX2JvdW5kYXJ5LCBjb25m
aWctPmJhc2UucGFnZV9zaXplLCBwYXNfbG9ja19pc19ub3RfaGVsZCk7Ci0gICAgICAgICAgICBj
b21taXRfbG9jayA9ICZzdWJwYWdlX2VudHJ5LT5jb21taXRfbG9jazsKLSAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgIHN1YnBhZ2VfZW50cnkgPSBOVUxMOwotICAgICAgICAgICAgY29tbWl0
X2xvY2sgPSAmdmlldy0+Y29tbWl0X2xvY2s7Ci0gICAgICAgIH0KKyAgICAgICAgY29tbWl0X2xv
Y2sgPSAmdmlldy0+Y29tbWl0X2xvY2s7CiAKICAgICAgICAgcGFzX2xvY2tfbG9ja19jb25kaXRp
b25hbGx5KGNvbW1pdF9sb2NrLCBjb21taXRfbG9ja19ob2xkX21vZGUpOwogCkBAIC0xNjksMTgg
KzE0NiwxMSBAQCBib29sIHBhc19iaXRmaXRfYWxsb2NhdG9yX2NvbW1pdF92aWV3KHBhCiAgICAg
ICAgIFBBU19BU1NFUlQodmlldy0+cGFnZV9ib3VuZGFyeSk7CiAgICAgICAgIFBBU19BU1NFUlQo
IXZpZXctPmlzX293bmVkKTsKIAotICAgICAgICBpZiAodXNlc19zdWJwYWdlcykgewotICAgICAg
ICAgICAgcGFzX3N1YnBhZ2VfbWFwX2VudHJ5X2NvbW1pdCgKLSAgICAgICAgICAgICAgICBzdWJw
YWdlX2VudHJ5LAotICAgICAgICAgICAgICAgIHZpZXctPnBhZ2VfYm91bmRhcnksCi0gICAgICAg
ICAgICAgICAgY29uZmlnLT5iYXNlLnBhZ2Vfc2l6ZSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICBwYXNfcGFnZV9tYWxsb2NfY29tbWl0KAotICAgICAgICAgICAgICAgIHZpZXctPnBh
Z2VfYm91bmRhcnksIGNvbmZpZy0+YmFzZS5wYWdlX3NpemUpOwotICAgICAgICB9CisgICAgICAg
IHBhc19wYWdlX21hbGxvY19jb21taXQoCisgICAgICAgICAgICB2aWV3LT5wYWdlX2JvdW5kYXJ5
LCBjb25maWctPmJhc2UucGFnZV9zaXplKTsKICAgICAgICAgY29uZmlnLT5iYXNlLmNyZWF0ZV9w
YWdlX2hlYWRlcih2aWV3LT5wYWdlX2JvdW5kYXJ5LCBwYXNfbG9ja19pc19ub3RfaGVsZCk7CiAK
LSAgICAgICAgcGFzX2JpdGZpdF92aWV3X2xvY2tfb3duZXJzaGlwX2xvY2sodmlldyk7CisgICAg
ICAgIHBhc19sb2NrX2xvY2soJnZpZXctPm93bmVyc2hpcF9sb2NrKTsKIAogICAgICAgICBQQVNf
QVNTRVJUKCF2aWV3LT5pc19vd25lZCk7CiAKQEAgLTE5NCw3ICsxNjQsNyBAQCBib29sIHBhc19i
aXRmaXRfYWxsb2NhdG9yX2NvbW1pdF92aWV3KHBhCiAgICAgICAgIGlmIChQQVNfREVCVUdfU1BF
Q1RSVU1fVVNFX0ZPUl9DT01NSVQpIHsKICAgICAgICAgICAgIHBhc19oZWFwX2xvY2tfbG9jaygp
OwogICAgICAgICAgICAgcGFzX2RlYnVnX3NwZWN0cnVtX2FkZCgKLSAgICAgICAgICAgICAgICBk
aXJlY3RvcnksIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9kdW1wX2Zvcl9zcGVjdHJ1bSwg
Y29uZmlnLT5iYXNlLnBhZ2Vfc2l6ZSk7CisgICAgICAgICAgICAgICAgZGlyZWN0b3J5LCBwYXNf
Yml0Zml0X2RpcmVjdG9yeV9kdW1wX2Zvcl9zcGVjdHJ1bSwgY29uZmlnLT5iYXNlLnBhZ2Vfc2l6
ZSk7CiAgICAgICAgICAgICBwYXNfaGVhcF9sb2NrX3VubG9jaygpOwogICAgICAgICB9CiAgICAg
ICAgIApAQCAtMjEyLDcgKzE4Miw3IEBAIHBhc19iaXRmaXRfdmlldyogcGFzX2JpdGZpdF9hbGxv
Y2F0b3JfZmkKICAgICBwYXNfYml0Zml0X2RpcmVjdG9yeSogZGlyZWN0b3J5OwogICAgIHBhc19i
aXRmaXRfc2l6ZV9jbGFzcyogc2l6ZV9jbGFzczsKICAgICBwYXNfYml0Zml0X3ZpZXcqIG5ld192
aWV3OwotICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5X2FuZF9pbmRleCB2aWV3X2RpcmVjdG9yeV9h
bmRfaW5kZXg7CisgICAgdW5zaWduZWQgdmlld19pbmRleDsKIAogICAgIFBBU19VTlVTRURfUEFS
QU0oYWxpZ25tZW50KTsKIApAQCAtMjIyLDE0ICsxOTIsOSBAQCBwYXNfYml0Zml0X3ZpZXcqIHBh
c19iaXRmaXRfYWxsb2NhdG9yX2ZpCiAKICAgICBkaXJlY3RvcnkgPSBwYXNfY29tcGFjdF9iaXRm
aXRfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKCZzaXplX2NsYXNzLT5kaXJlY3RvcnkpOwog
Ci0gICAgLyogSWYgd2UncmUgaW4gdGhlIHdyb25nIGRpcmVjdG9yeSwgdGhlbiByZWdhcmRsZXNz
IG9mIGFueXRoaW5nIGVsc2UgKGFsaWdubWVudCBldGMpIHdlIHNob3VsZAotICAgICAgIGp1c3Qg
Y2xlYW4gdXAgdGhlIGFsbG9jYXRvciBhbmQgYmFpbC4gKi8KLSAgICB2aWV3X2RpcmVjdG9yeV9h
bmRfaW5kZXggPSBwYXNfYml0Zml0X3ZpZXdfY3VycmVudF9kaXJlY3RvcnlfYW5kX2luZGV4KHZp
ZXcpOwotICAgIGlmIChkaXJlY3RvcnkgIT0gdmlld19kaXJlY3RvcnlfYW5kX2luZGV4LmRpcmVj
dG9yeSkgewotICAgICAgICBwYXNfYml0Zml0X2FsbG9jYXRvcl9yZXNldChhbGxvY2F0b3IpOwot
ICAgICAgICBwYXNfbG9ja191bmxvY2soJnZpZXctPm93bmVyc2hpcF9sb2NrKTsKLSAgICAgICAg
cmV0dXJuIE5VTEw7Ci0gICAgfQorICAgIFBBU19BU1NFUlQocGFzX2NvbXBhY3RfYml0Zml0X2Rp
cmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgmdmlldy0+ZGlyZWN0b3J5KSA9PSBkaXJlY3Rvcnkp
OworCisgICAgdmlld19pbmRleCA9IHZpZXctPmluZGV4OwogCiAgICAgLyogSWYgd2UncmUgc3Rp
bGwgb24gdGhlIHZpZXcgdGhhdCB0aGUgYWxsb2NhdG9yIHdhcyBvbiBhbmQgd2UgZm91bmQgdGhh
dCB0aGlzIHZpZXcgbm8gbG9uZ2VyCiAgICAgICAgaGFzIGVub3VnaCBtYXhfZnJlZSBmb3Igb3Vy
IHNpemUgY2xhc3MsIHRoZW4gdGVsbCBldmVyeW9uZSBhYm91dCB0aGlzIGFuZCBiYWlsLgpAQCAt
MjQ2LDcgKzIxMSw3IEBAIHBhc19iaXRmaXRfdmlldyogcGFzX2JpdGZpdF9hbGxvY2F0b3JfZmkK
ICAgICAgICAgUEFTX0FTU0VSVCh2aWV3LT5wYWdlX2JvdW5kYXJ5KTsKICAgICAgICAgcGFzX2Jp
dGZpdF9wYWdlX2Zvcl9ib3VuZGFyeSh2aWV3LT5wYWdlX2JvdW5kYXJ5LCAqY29uZmlnKS0+ZGlk
X25vdGVfbWF4X2ZyZWUgPSBmYWxzZTsKICAgICAgICAgCi0gICAgICAgIGluZGV4ID0gdmlld19k
aXJlY3RvcnlfYW5kX2luZGV4LmluZGV4OworICAgICAgICBpbmRleCA9IHZpZXdfaW5kZXg7CiAg
ICAgICAgIAogICAgICAgICBwYXNfYml0Zml0X2RpcmVjdG9yeV9zZXRfcHJvY2Vzc2VkX21heF9m
cmVlKAogICAgICAgICAgICAgZGlyZWN0b3J5LCBpbmRleCwgbGFyZ2VzdF9hdmFpbGFibGUgPj4g
Y29uZmlnLT5iYXNlLm1pbl9hbGlnbl9zaGlmdCwKQEAgLTI5Miw4ICsyNTcsNyBAQCBwYXNfYml0
Zml0X3ZpZXcqIHBhc19iaXRmaXRfYWxsb2NhdG9yX2ZpCiAgICAgICAgVGhpcyBpcyBhbiB1bnVz
dWFsIGRlZ2VuZXJhdGUgY2FzZSB0aGF0IGhhcHBlbnMgb25seSBmb3IgbWVtYWxpZ24uICovCiAg
ICAgUEFTX0FTU0VSVCgodW5zaWduZWQpc2l6ZSA9PSBzaXplKTsKICAgICBuZXdfdmlldyA9IHBh
c19iaXRmaXRfZGlyZWN0b3J5X2dldF9maXJzdF9mcmVlX3ZpZXcoCi0gICAgICAgIGRpcmVjdG9y
eSwgYWxsb2NhdG9yLT5nbG9iYWxfc2l6ZV9jbGFzcywKLSAgICAgICAgdmlld19kaXJlY3Rvcnlf
YW5kX2luZGV4LmluZGV4ICsgMSwgKHVuc2lnbmVkKXNpemUsIGNvbmZpZykudmlldzsKKyAgICAg
ICAgZGlyZWN0b3J5LCB2aWV3X2luZGV4ICsgMSwgKHVuc2lnbmVkKXNpemUsIGNvbmZpZykudmll
dzsKICAgICBQQVNfQVNTRVJUKG5ld192aWV3KTsKICAgICByZXR1cm4gbmV3X3ZpZXc7CiB9Cklu
ZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2FsbG9jYXRv
ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19i
aXRmaXRfYWxsb2NhdG9yLmgJKHJldmlzaW9uIDI3OTk2NCkKKysrIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfYWxsb2NhdG9yLmgJKHdvcmtpbmcgY29weSkKQEAg
LTMxLDE4ICszMSwxNyBAQAogUEFTX0JFR0lOX0VYVEVSTl9DOwogCiBzdHJ1Y3QgcGFzX2JpdGZp
dF9hbGxvY2F0b3I7Ci1zdHJ1Y3QgcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzczsKK3N0cnVj
dCBwYXNfYml0Zml0X3NpemVfY2xhc3M7CiBzdHJ1Y3QgcGFzX2JpdGZpdF9wYWdlOwogc3RydWN0
IHBhc19iaXRmaXRfc2l6ZV9jbGFzczsKIHN0cnVjdCBwYXNfYml0Zml0X3ZpZXc7CiB0eXBlZGVm
IHN0cnVjdCBwYXNfYml0Zml0X2FsbG9jYXRvciBwYXNfYml0Zml0X2FsbG9jYXRvcjsKLXR5cGVk
ZWYgc3RydWN0IHBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3MgcGFzX2JpdGZpdF9nbG9iYWxf
c2l6ZV9jbGFzczsKK3R5cGVkZWYgc3RydWN0IHBhc19iaXRmaXRfc2l6ZV9jbGFzcyBwYXNfYml0
Zml0X3NpemVfY2xhc3M7CiB0eXBlZGVmIHN0cnVjdCBwYXNfYml0Zml0X3BhZ2UgcGFzX2JpdGZp
dF9wYWdlOwogdHlwZWRlZiBzdHJ1Y3QgcGFzX2JpdGZpdF9zaXplX2NsYXNzIHBhc19iaXRmaXRf
c2l6ZV9jbGFzczsKIHR5cGVkZWYgc3RydWN0IHBhc19iaXRmaXRfdmlldyBwYXNfYml0Zml0X3Zp
ZXc7CiAKIHN0cnVjdCBwYXNfYml0Zml0X2FsbG9jYXRvciB7Ci0gICAgcGFzX2JpdGZpdF9nbG9i
YWxfc2l6ZV9jbGFzcyogZ2xvYmFsX3NpemVfY2xhc3M7CiAgICAgcGFzX2JpdGZpdF9zaXplX2Ns
YXNzKiBzaXplX2NsYXNzOwogICAgIHBhc19iaXRmaXRfdmlldyogdmlldzsKICAgICB1bnNpZ25l
ZCBjb3VudGRvd247CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
Yml0Zml0X2FsbG9jYXRvcl9pbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9hbGxvY2F0b3JfaW5saW5lcy5oCShyZXZpc2lv
biAyNzk5NjQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0
X2FsbG9jYXRvcl9pbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDI3ICsyOCwyNyBAQAog
CiAjaW5jbHVkZSAicGFzX2JpdGZpdF9hbGxvY2F0aW9uX3Jlc3VsdC5oIgogI2luY2x1ZGUgInBh
c19iaXRmaXRfYWxsb2NhdG9yLmgiCi0jaW5jbHVkZSAicGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0
b3J5LmgiCi0jaW5jbHVkZSAicGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzcy5oIgorI2luY2x1
ZGUgInBhc19iaXRmaXRfZGlyZWN0b3J5LmgiCisjaW5jbHVkZSAicGFzX2JpdGZpdF9zaXplX2Ns
YXNzLmgiCiAjaW5jbHVkZSAicGFzX2JpdGZpdF9wYWdlX2lubGluZXMuaCIKICNpbmNsdWRlICJw
YXNfYml0Zml0X3ZpZXcuaCIKICNpbmNsdWRlICJwYXNfZGVidWdfc3BlY3RydW0uaCIKICNpbmNs
dWRlICJwYXNfZXBvY2guaCIKICNpbmNsdWRlICJwYXNfZmFzdF9wYXRoX2FsbG9jYXRpb25fcmVz
dWx0LmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2lu
bGluZXMuaCIKKyNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9pbmxpbmVz
LmgiCiAKIFBBU19CRUdJTl9FWFRFUk5fQzsKIAogc3RhdGljIGlubGluZSB2b2lkIHBhc19iaXRm
aXRfYWxsb2NhdG9yX3Jlc2V0KHBhc19iaXRmaXRfYWxsb2NhdG9yKiBhbGxvY2F0b3IpCiB7Ci0g
ICAgYWxsb2NhdG9yLT5nbG9iYWxfc2l6ZV9jbGFzcyA9IE5VTEw7CisgICAgYWxsb2NhdG9yLT5z
aXplX2NsYXNzID0gTlVMTDsKICAgICBhbGxvY2F0b3ItPnNpemVfY2xhc3MgPSBOVUxMOwogICAg
IGFsbG9jYXRvci0+dmlldyA9IE5VTEw7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBwYXNfYml0
Zml0X2FsbG9jYXRvcl9hc3NlcnRfcmVzZXQocGFzX2JpdGZpdF9hbGxvY2F0b3IqIGFsbG9jYXRv
cikKIHsKLSAgICBQQVNfVEVTVElOR19BU1NFUlQoIWFsbG9jYXRvci0+Z2xvYmFsX3NpemVfY2xh
c3MpOworICAgIFBBU19URVNUSU5HX0FTU0VSVCghYWxsb2NhdG9yLT5zaXplX2NsYXNzKTsKICAg
ICBQQVNfVEVTVElOR19BU1NFUlQoIWFsbG9jYXRvci0+c2l6ZV9jbGFzcyk7CiAgICAgUEFTX1RF
U1RJTkdfQVNTRVJUKCFhbGxvY2F0b3ItPnZpZXcpOwogfQpAQCAtMTE4LDcgKzExOCw3IEBAIHBh
c19iaXRmaXRfYWxsb2NhdG9yX3RyeV9hbGxvY2F0ZShwYXNfYmkKICAgICAgICAgICAgICAgICBw
YXNfbG9ja19sb2NrKCZ2aWV3LT5jb21taXRfbG9jayk7CiAgICAgICAgICAgICB9CiAKLSAgICAg
ICAgICAgIHBhc19iaXRmaXRfdmlld19sb2NrX293bmVyc2hpcF9sb2NrKHZpZXcpOworICAgICAg
ICAgICAgcGFzX2xvY2tfbG9jaygmdmlldy0+b3duZXJzaGlwX2xvY2spOwogCiAgICAgICAgICAg
ICBpZiAoUEFTX1VOTElLRUxZKCF2aWV3LT5pc19vd25lZCkpIHsKICAgICAgICAgICAgICAgICAv
KiBOb3RlIHRoYXQgdGhpcyB3b3VsZCBoYXZlIGZsYXNoZWQgdGhlIG93bmVyc2hpcCBsb2NrIHBv
c3NpYmx5LiAqLwpAQCAtMTg1LDggKzE4NSw4IEBAIHBhc19iaXRmaXRfYWxsb2NhdG9yX3RyeV9h
bGxvY2F0ZShwYXNfYmkKICAgICAgICAgaWYgKFBBU19ERUJVR19TUEVDVFJVTV9VU0VfRk9SX0NP
TU1JVCAmJiBieXRlc19jb21taXR0ZWQpIHsKICAgICAgICAgICAgIHBhc19oZWFwX2xvY2tfbG9j
aygpOwogICAgICAgICAgICAgcGFzX2RlYnVnX3NwZWN0cnVtX2FkZCgKLSAgICAgICAgICAgICAg
ICBwYXNfY29tcGFjdF9iaXRmaXRfZGlyZWN0b3J5X3B0cl9sb2FkKCZhbGxvY2F0b3ItPmdsb2Jh
bF9zaXplX2NsYXNzLT5iYXNlLmRpcmVjdG9yeSksCi0gICAgICAgICAgICAgICAgcGFzX2JpdGZp
dF9nbG9iYWxfZGlyZWN0b3J5X2R1bXBfZm9yX3NwZWN0cnVtLAorICAgICAgICAgICAgICAgIHBh
c19jb21wYWN0X2JpdGZpdF9kaXJlY3RvcnlfcHRyX2xvYWQoJmFsbG9jYXRvci0+c2l6ZV9jbGFz
cy0+ZGlyZWN0b3J5KSwKKyAgICAgICAgICAgICAgICBwYXNfYml0Zml0X2RpcmVjdG9yeV9kdW1w
X2Zvcl9zcGVjdHJ1bSwKICAgICAgICAgICAgICAgICBieXRlc19jb21taXR0ZWQpOwogICAgICAg
ICAgICAgcGFzX2hlYXBfbG9ja191bmxvY2soKTsKICAgICAgICAgfQpJbmRleDogU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeS5jCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRf
Ymlhc2luZ19kaXJlY3RvcnkuYwkocmV2aXNpb24gMjc5OTY0KQorKysgU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeS5jCShub25leGlz
dGVudCkKQEAgLTEsMTY3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
LSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgInBhc19jb25maWcuaCIKLQotI2lmIExJQlBBU19FTkFC
TEVECi0KLSNpbmNsdWRlICJwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5LmgiCi0KLSNpbmNs
dWRlICJwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkuaCIKLSNpbmNsdWRlICJwYXNfYml0Zml0
X3BhZ2VfY29uZmlnLmgiCi0jaW5jbHVkZSAicGFzX2JpdGZpdF92aWV3X2lubGluZXMuaCIKLSNp
bmNsdWRlICJwYXNfaW1tb3J0YWxfaGVhcC5oIgotCi1wYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0
b3J5KiBwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5X2NyZWF0ZSgKLSAgICBwYXNfYml0Zml0
X2dsb2JhbF9kaXJlY3RvcnkqIHBhcmVudF9nbG9iYWwsCi0gICAgdW5zaWduZWQgbWFnYXppbmVf
aW5kZXgpCi17Ci0gICAgcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeSogcmVzdWx0OwotICAg
IHBhc19iaXRmaXRfcGFnZV9jb25maWcqIGNvbmZpZ19wdHI7Ci0KLSAgICBjb25maWdfcHRyID0g
cGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19raW5kX2dldF9jb25maWcocGFyZW50X2dsb2JhbC0+YmFz
ZS5jb25maWdfa2luZCk7Ci0KLSAgICByZXN1bHQgPSBwYXNfaW1tb3J0YWxfaGVhcF9hbGxvY2F0
ZV93aXRoX2FsaWdubWVudCgKLSAgICAgICAgc2l6ZW9mKHBhc19iaXRmaXRfYmlhc2luZ19kaXJl
Y3RvcnkpLAotICAgICAgICBhbGlnbm9mKHBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkpLAot
ICAgICAgICAicGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeSIsCi0gICAgICAgIHBhc19vYmpl
Y3RfYWxsb2NhdGlvbik7Ci0gICAgCi0gICAgcGFzX2NvbXBhY3RfYml0Zml0X2dsb2JhbF9kaXJl
Y3RvcnlfcHRyX3N0b3JlKCZyZXN1bHQtPnBhcmVudF9nbG9iYWwsIHBhcmVudF9nbG9iYWwpOwot
ICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5X2NvbnN0cnVjdCgmcmVzdWx0LT5iYXNlLCBwYXNfYml0
Zml0X2JpYXNpbmdfZGlyZWN0b3J5X2tpbmQsIGNvbmZpZ19wdHIpOwotICAgIHBhc19iaWFzaW5n
X2RpcmVjdG9yeV9jb25zdHJ1Y3QoCi0gICAgICAgICZyZXN1bHQtPmJpYXNpbmdfYmFzZSwgcGFz
X2JpYXNpbmdfZGlyZWN0b3J5X2JpdGZpdF9raW5kLCBtYWdhemluZV9pbmRleCk7Ci0KLSAgICBy
ZXR1cm4gcmVzdWx0OwotfQotCi1wYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9yZXN1bHQgcGFz
X2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeV90YWtlX2xhc3RfdW51c2VkKAotICAgIHBhc19iaXRm
aXRfYmlhc2luZ19kaXJlY3RvcnkqIGRpcmVjdG9yeSkKLXsKLSAgICBzdGF0aWMgY29uc3QgYm9v
bCB2ZXJib3NlID0gZmFsc2U7Ci0gICAgCi0gICAgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5
KiBnbG9iYWxfZGlyZWN0b3J5OwotICAgIHVuc2lnbmVkIG93bmVyc2hpcF90aHJlc2hvbGQ7Ci0g
ICAgYm9vbCBkaWRfZmluZF9lbGlnaWJsZV9wYWdlOwotICAgIHNpemVfdCBpbmRleDsKLSAgICBw
YXNfdmVyc2lvbmVkX2ZpZWxkIGVsaWdpYmxlX2hpZ2hfd2F0ZXJtYXJrOwotICAgIHNpemVfdCBu
ZXdfZWxpZ2libGVfd2F0ZXJtYXJrOwotICAgIHBhc19iaXRmaXRfcGFnZV9jb25maWcgcGFnZV9j
b25maWc7Ci0KLSAgICBwYWdlX2NvbmZpZyA9ICpwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmRf
Z2V0X2NvbmZpZyhkaXJlY3RvcnktPmJhc2UuY29uZmlnX2tpbmQpOwotCi0gICAgZ2xvYmFsX2Rp
cmVjdG9yeSA9Ci0gICAgICAgIHBhc19jb21wYWN0X2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X3B0
cl9sb2FkX25vbl9udWxsKCZkaXJlY3RvcnktPnBhcmVudF9nbG9iYWwpOwotCi0gICAgb3duZXJz
aGlwX3RocmVzaG9sZCA9IHBhc19iaWFzaW5nX2RpcmVjdG9yeV9vd25lcnNoaXBfdGhyZXNob2xk
KCZkaXJlY3RvcnktPmJpYXNpbmdfYmFzZSk7Ci0KLSAgICAvKiBSZWFkIHRvIHdhdGNoIHNvIHRo
YXQgaWYgYW55b25lIHVwZGF0ZXMgdGhlIGVsaWdpYmxlX2hpZ2hfd2F0ZXJtYXJrIGR1cmluZyBv
dXIgc2Nhbiwgd2Ugd29uJ3QKLSAgICAgICBvdmVyd3JpdGUgaXQuICovCi0gICAgZWxpZ2libGVf
aGlnaF93YXRlcm1hcmsgPSBwYXNfdmVyc2lvbmVkX2ZpZWxkX3JlYWRfdG9fd2F0Y2goCi0gICAg
ICAgICZkaXJlY3RvcnktPmJpYXNpbmdfYmFzZS5lbGlnaWJsZV9oaWdoX3dhdGVybWFyayk7Ci0K
LSAgICBQQVNfQVNTRVJUKGVsaWdpYmxlX2hpZ2hfd2F0ZXJtYXJrLnZhbHVlIDw9IHBhc19iaXRm
aXRfZGlyZWN0b3J5X3NpemUoJmRpcmVjdG9yeS0+YmFzZSkpOwotCi0gICAgaWYgKChzaXplX3Qp
b3duZXJzaGlwX3RocmVzaG9sZCA+PSBlbGlnaWJsZV9oaWdoX3dhdGVybWFyay52YWx1ZSkKLSAg
ICAgICAgcmV0dXJuIHBhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtlX25vbmVfYXZhaWxhYmxlOwot
Ci0gICAgZGlkX2ZpbmRfZWxpZ2libGVfcGFnZSA9IGZhbHNlOwotCi0gICAgbmV3X2VsaWdpYmxl
X3dhdGVybWFyayA9IG93bmVyc2hpcF90aHJlc2hvbGQ7Ci0KLSAgICBmb3IgKGluZGV4ID0gb3du
ZXJzaGlwX3RocmVzaG9sZDsgaW5kZXggPCBlbGlnaWJsZV9oaWdoX3dhdGVybWFyay52YWx1ZTsg
KytpbmRleCkgewotICAgICAgICBwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X3ZpZXdfcHRyKiB2
aWV3X3B0cjsKLSAgICAgICAgcGFzX2JpdGZpdF92aWV3KiB2aWV3OwotCi0gICAgICAgIHZpZXdf
cHRyID0gcGFzX2JpdGZpdF9kaXJlY3RvcnlfZ2V0X3ZpZXdfcHRyKCZkaXJlY3RvcnktPmJhc2Us
IGluZGV4KTsKLSAgICAgICAgZm9yICg7OykgewotICAgICAgICAgICAgdmlldyA9IHBhc19jb21w
YWN0X2F0b21pY19iaXRmaXRfdmlld19wdHJfbG9hZCh2aWV3X3B0cik7Ci0gICAgICAgICAgICBp
ZiAoIXZpZXcpCi0gICAgICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgICAgIGRpZF9maW5k
X2VsaWdpYmxlX3BhZ2UgPSB0cnVlOwotCi0gICAgICAgICAgICBQQVNfQVNTRVJUKHBhc19jb21w
YWN0X2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKCZ2aWV3LT5nbG9i
YWxfZGlyZWN0b3J5KQotICAgICAgICAgICAgICAgICAgICAgICA9PSBnbG9iYWxfZGlyZWN0b3J5
KTsKLQotICAgICAgICAgICAgcGFzX2xvY2tfbG9jaygmdmlldy0+b3duZXJzaGlwX2xvY2spOwot
ICAgICAgICAgICAgaWYgKHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfYmlhc2luZ19kaXJlY3Rv
cnlfcHRyX2xvYWQoJnZpZXctPmJpYXNpbmdfZGlyZWN0b3J5KQotICAgICAgICAgICAgICAgID09
IGRpcmVjdG9yeSkgewotICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKQotICAgICAgICAgICAg
ICAgICAgICBwYXNfbG9nKCJVbmJpYXNpbmcgdmlldyAlcCBmcm9tICVwOiV6dVxuIiwgdmlldywg
ZGlyZWN0b3J5LCBpbmRleCk7Ci0KLSAgICAgICAgICAgICAgICAvKiBJdCdzIHBvc3NpYmxlIHRo
YXQgdGhpcyBwYXJ0aWN1bGFyIHZpZXcgZ290IHVuYmlhc2VkIGFuZCB0aGVuIHJlYmlhc2VkIGF0
IGEgZGlmZmVyZW50Ci0gICAgICAgICAgICAgICAgICAgaW5kZXggYWxyZWFkeS4gKi8KLSAgICAg
ICAgICAgICAgICBpZiAodmlldy0+aW5kZXhfaW5fYmlhc2luZyAhPSBpbmRleCkgewotICAgICAg
ICAgICAgICAgICAgICBwYXNfbG9ja191bmxvY2soJnZpZXctPm93bmVyc2hpcF9sb2NrKTsKLSAg
ICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgICAgIAotICAgICAgICAgICAgICAgIFBBU19BU1NFUlQodmlldy0+aW5kZXhfaW5fYmlhc2lu
ZyA9PSBpbmRleCk7Ci0KLSAgICAgICAgICAgICAgICAvKiBJZiB0aGUgdmlldyBiZWxpZXZlcyB0
aGF0IGl0IGlzIGJpYXNlZCB0byB0aGlzIGluZGV4LCB0aGVuIHRoZSBkaXJlY3RvcnkgbXVzdCBh
bHNvCi0gICAgICAgICAgICAgICAgICAgYWdyZWUgd2l0aCB0aGlzLiAqLwotICAgICAgICAgICAg
ICAgIFBBU19BU1NFUlQocGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF92aWV3X3B0cl9sb2FkKHZp
ZXdfcHRyKSA9PSB2aWV3KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIC8qIFdlIHNh
eSB0aGF0IHVuYmlhc2VkIGVudHJpZXMgYXJlIGVtcHR5LCBub3QgdW5wcm9jZXNzZWQuICovCi0g
ICAgICAgICAgICAgICAgcGFzX2JpdGZpdF9kaXJlY3RvcnlfbWF4X2ZyZWVfZGlkX2JlY29tZV9l
bXB0eV93aXRob3V0X2JpYXNpbmdfdXBkYXRlKAotICAgICAgICAgICAgICAgICAgICAmZGlyZWN0
b3J5LT5iYXNlLCBpbmRleCwgImJlY29taW5nIGVtcHR5IG9uIG5vcm1hbCB1bmJpYXMiKTsKLQot
ICAgICAgICAgICAgICAgIC8qIE5lZWQgYSBmZW5jZSBoZXJlIGJlY2F1c2UgYXMgc29vbiBhcyB3
ZSBzdGFydCBjbGVhcmluZyBvdXQgdGhlIHZpZXcgZnJvbSB0aGUgYmlhc2luZwotICAgICAgICAg
ICAgICAgICAgIGRpcmVjdG9yeSwgaXQncyBwb3NzaWJsZSBmb3Igc29tZW9uZSBlbHNlIHRvIHN0
YXJ0IG1lc3Npbmcgd2l0aCB0aGlzIG1heF9mcmVlIGVudHJ5Ci0gICAgICAgICAgICAgICAgICAg
aW4gdGhlIGJpYXNpbmcgZGlyZWN0b3J5LiBTbyB0aGUgc3RvcmUgYWJvdmUgaGFzIHRvIGhhcHBl
biBiZWZvcmUgYW55IG9mIHRoaXMuICovCi0gICAgICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRv
bWljX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeV9wdHJfc3RvcmUoJnZpZXctPmJpYXNpbmdfZGly
ZWN0b3J5LCBOVUxMKTsKLSAgICAgICAgICAgICAgICB2aWV3LT5pbmRleF9pbl9iaWFzaW5nID0g
MDsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIC8qIE1ha2Ugc3VyZSB0aGF0IHdlIGRv
bid0IGNsZWFyIHRoZSB2aWV3IG91dCBvZiB0aGUgZGlyZWN0b3J5IHVudGlsIHdlJ3JlIGRvbmUg
dGVsbGluZyB0aGUKLSAgICAgICAgICAgICAgICAgICB2aWV3IHRoYXQgaXQncyBub3QgYmlhc2Vk
LiAqLwotICAgICAgICAgICAgICAgIHBhc19mZW5jZSgpOwotICAgICAgICAgICAgICAgIHBhc19j
b21wYWN0X2F0b21pY19iaXRmaXRfdmlld19wdHJfc3RvcmUodmlld19wdHIsIE5VTEwpOwotCi0g
ICAgICAgICAgICAgICAgaWYgKHBhc19iaXRmaXRfdmlld19pc19lbXB0eSh2aWV3LCBwYWdlX2Nv
bmZpZykpIHsKLSAgICAgICAgICAgICAgICAgICAgcGFzX2JpdGZpdF9kaXJlY3RvcnlfbWF4X2Zy
ZWVfZGlkX2JlY29tZV9lbXB0eSgKLSAgICAgICAgICAgICAgICAgICAgICAgICZnbG9iYWxfZGly
ZWN0b3J5LT5iYXNlLCB2aWV3LT5pbmRleF9pbl9nbG9iYWwsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAiaW5pdGlhbGl6ZSB0byBlbXB0eSBpbiBnbG9iYWwgb24gbm9ybWFsIHVuYmlhcyIpOwot
ICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIHBhc19iaXRmaXRf
ZGlyZWN0b3J5X21heF9mcmVlX2RpZF9iZWNvbWVfdW5wcm9jZXNzZWQoCi0gICAgICAgICAgICAg
ICAgICAgICAgICAmZ2xvYmFsX2RpcmVjdG9yeS0+YmFzZSwgdmlldy0+aW5kZXhfaW5fZ2xvYmFs
LAotICAgICAgICAgICAgICAgICAgICAgICAgImluaXRpYWxpemUgdG8gdW5wcm9jZXNzZWQgaW4g
Z2xvYmFsIG9uIG5vcm1hbCB1bmJpYXMiKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICAgICBwYXNfbG9ja191bmxvY2soJnZpZXctPm93bmVyc2hpcF9sb2NrKTsK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgfQotICAgIAotICAgIHBhc192ZXJz
aW9uZWRfZmllbGRfdHJ5X3dyaXRlKAotICAgICAgICAmZGlyZWN0b3J5LT5iaWFzaW5nX2Jhc2Uu
ZWxpZ2libGVfaGlnaF93YXRlcm1hcmssCi0gICAgICAgIGVsaWdpYmxlX2hpZ2hfd2F0ZXJtYXJr
LCBuZXdfZWxpZ2libGVfd2F0ZXJtYXJrKTsKLQotICAgIHJldHVybiBkaWRfZmluZF9lbGlnaWJs
ZV9wYWdlCi0gICAgICAgID8gcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2Vfc3VjY2VzcwotICAg
ICAgICA6IHBhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtlX25vbmVfYXZhaWxhYmxlOwotfQotCi0j
ZW5kaWYgLyogTElCUEFTX0VOQUJMRUQgKi8KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0
b3J5LmgJKHJldmlzaW9uIDI3OTk2NCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkuaAkobm9uZXhpc3RlbnQpCkBAIC0xLDU2
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQot
I2lmbmRlZiBQQVNfQklURklUX0JJQVNJTkdfRElSRUNUT1JZX0gKLSNkZWZpbmUgUEFTX0JJVEZJ
VF9CSUFTSU5HX0RJUkVDVE9SWV9ICi0KLSNpbmNsdWRlICJwYXNfYmlhc2luZ19kaXJlY3Rvcnku
aCIKLSNpbmNsdWRlICJwYXNfYml0Zml0X2RpcmVjdG9yeS5oIgotI2luY2x1ZGUgInBhc19jb21w
YWN0X2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X3B0ci5oIgotI2luY2x1ZGUgInBhc19wYWdlX3No
YXJpbmdfcG9vbF90YWtlX3Jlc3VsdC5oIgotCi1QQVNfQkVHSU5fRVhURVJOX0M7Ci0KLXN0cnVj
dCBwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5OwotdHlwZWRlZiBzdHJ1Y3QgcGFzX2JpdGZp
dF9iaWFzaW5nX2RpcmVjdG9yeSBwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5OwotCi1zdHJ1
Y3QgUEFTX0FMSUdORUQoc2l6ZW9mKHVpbnRwdHJfdCkgKiAyKSBwYXNfYml0Zml0X2JpYXNpbmdf
ZGlyZWN0b3J5IHsKLSAgICBwYXNfYml0Zml0X2RpcmVjdG9yeSBiYXNlOwotICAgIHBhc19iaWFz
aW5nX2RpcmVjdG9yeSBiaWFzaW5nX2Jhc2U7Ci0gICAgcGFzX2NvbXBhY3RfYml0Zml0X2dsb2Jh
bF9kaXJlY3RvcnlfcHRyIHBhcmVudF9nbG9iYWw7Ci19OwotCi1QQVNfQVBJIHBhc19iaXRmaXRf
Ymlhc2luZ19kaXJlY3RvcnkqIHBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnlfY3JlYXRlKAot
ICAgIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSogcGFyZW50X2dsb2JhbCwKLSAgICB1bnNp
Z25lZCBtYWdhemluZV9pbmRleCk7Ci0KLVBBU19BUEkgcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rh
a2VfcmVzdWx0IHBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnlfdGFrZV9sYXN0X3VudXNlZCgK
LSAgICBwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5KiBkaXJlY3RvcnkpOwotCi1QQVNfRU5E
X0VYVEVSTl9DOwotCi0jZW5kaWYgLyogUEFTX0JJVEZJVF9CSUFTSU5HX0RJUkVDVE9SWV9IICov
Ci0KLQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9k
aXJlY3RvcnkuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfYml0Zml0X2RpcmVjdG9yeS5jCShyZXZpc2lvbiAyNzk5NjQpCisrKyBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2RpcmVjdG9yeS5jCSh3b3JraW5nIGNv
cHkpCkBAIC0zMCw0MyArMzAsNDQgQEAKICNpbmNsdWRlICJwYXNfYml0Zml0X2RpcmVjdG9yeS5o
IgogCiAjaW5jbHVkZSAicGFzX2JpdGZpdF9kaXJlY3RvcnlfaW5saW5lcy5oIgotI2luY2x1ZGUg
InBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3MuaCIKKyNpbmNsdWRlICJwYXNfYml0Zml0X3Np
emVfY2xhc3MuaCIKICNpbmNsdWRlICJwYXNfYml0Zml0X3ZpZXdfaW5saW5lcy5oIgorI2luY2x1
ZGUgInBhc19kZWZlcnJlZF9kZWNvbW1pdF9sb2cuaCIKICNpbmNsdWRlICJwYXNfZXBvY2guaCIK
KyNpbmNsdWRlICJwYXNfZnJlZV9ncmFudWxlcy5oIgogI2luY2x1ZGUgInBhc19oZWFwX2xvY2su
aCIKICNpbmNsdWRlICJwYXNfcGFnZV9zaGFyaW5nX3Bvb2wuaCIKKyNpbmNsdWRlICJwYXNfc2Vn
cmVnYXRlZF9oZWFwLmgiCisjaW5jbHVkZSAicGFzX3N0cmVhbS5oIgogCiB2b2lkIHBhc19iaXRm
aXRfZGlyZWN0b3J5X2NvbnN0cnVjdChwYXNfYml0Zml0X2RpcmVjdG9yeSogZGlyZWN0b3J5LAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2JpdGZpdF9kaXJlY3Rvcnlf
a2luZCBkaXJlY3Rvcnlfa2luZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHBhc19iaXRmaXRfcGFnZV9jb25maWcqIGNvbmZpZykKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHBhc19iaXRmaXRfcGFnZV9jb25maWcqIGNvbmZpZywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXApCiB7CiAg
ICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogCi0gICAgaWYgKHZlcmJvc2Up
IHsKLSAgICAgICAgcGFzX2xvZygiQ3JlYXRpbmcgZGlyZWN0b3J5ICVwICglcylcbiIsCi0gICAg
ICAgICAgICAgICAgZGlyZWN0b3J5LCBwYXNfYml0Zml0X2RpcmVjdG9yeV9raW5kX2dldF9zdHJp
bmcoZGlyZWN0b3J5X2tpbmQpKTsKLSAgICB9CisgICAgaWYgKHZlcmJvc2UpCisgICAgICAgIHBh
c19sb2coIkNyZWF0aW5nIGRpcmVjdG9yeSAlcFxuIiwgZGlyZWN0b3J5KTsKICAgICAKICAgICBw
YXNfdmVyc2lvbmVkX2ZpZWxkX2NvbnN0cnVjdCgmZGlyZWN0b3J5LT5maXJzdF91bnByb2Nlc3Nl
ZF9mcmVlLCAwKTsKICAgICBwYXNfdmVyc2lvbmVkX2ZpZWxkX2NvbnN0cnVjdCgmZGlyZWN0b3J5
LT5maXJzdF9lbXB0eSwgMCk7CiAgICAgcGFzX2JpdGZpdF9kaXJlY3RvcnlfbWF4X2ZyZWVfdmVj
dG9yX2NvbnN0cnVjdCgmZGlyZWN0b3J5LT5tYXhfZnJlZXMpOwogICAgIHBhc19iaXRmaXRfZGly
ZWN0b3J5X3ZpZXdfdmVjdG9yX2NvbnN0cnVjdCgmZGlyZWN0b3J5LT52aWV3cyk7CiAgICAgcGFz
X2NvbXBhY3RfYXRvbWljX2JpdGZpdF9zaXplX2NsYXNzX3B0cl9zdG9yZSgmZGlyZWN0b3J5LT5s
YXJnZXN0X3NpemVfY2xhc3MsIE5VTEwpOwotICAgIGRpcmVjdG9yeS0+ZGlyZWN0b3J5X2tpbmQg
PSBkaXJlY3Rvcnlfa2luZDsKICAgICBkaXJlY3RvcnktPmNvbmZpZ19raW5kID0gY29uZmlnLT5r
aW5kOwotfQogCi12b2lkIHBhc19iaXRmaXRfZGlyZWN0b3J5X3VwZGF0ZV9iaWFzaW5nX2VsaWdp
YmlsaXR5KHBhc19iaXRmaXRfZGlyZWN0b3J5KiBkaXJlY3RvcnksCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBpbmRleCkKLXsKLSAg
ICBwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5KiBiaWFzaW5nX2RpcmVjdG9yeTsKLSAgICAK
LSAgICBpZiAoZGlyZWN0b3J5LT5kaXJlY3Rvcnlfa2luZCAhPSBwYXNfYml0Zml0X2JpYXNpbmdf
ZGlyZWN0b3J5X2tpbmQpCi0gICAgICAgIHJldHVybjsKLQotICAgIGJpYXNpbmdfZGlyZWN0b3J5
ID0gKHBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkqKWRpcmVjdG9yeTsKLQotICAgIHBhc19i
aWFzaW5nX2RpcmVjdG9yeV9pbmRleF9kaWRfYmVjb21lX2VsaWdpYmxlKCZiaWFzaW5nX2RpcmVj
dG9yeS0+Ymlhc2luZ19iYXNlLCBpbmRleCk7CisgICAgZGlyZWN0b3J5LT5oZWFwID0gaGVhcDsK
KyAgICBwYXNfYml0Zml0X2RpcmVjdG9yeV9zZWdtZW50ZWRfYml0dmVjdG9yc19jb25zdHJ1Y3Qo
JmRpcmVjdG9yeS0+Yml0dmVjdG9ycyk7CisgICAgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFu
dF9wYXlsb2FkX2NvbnN0cnVjdCgmZGlyZWN0b3J5LT5waHlzaWNhbF9zaGFyaW5nX3BheWxvYWQp
OworCisgICAgLyogV2UgY291bGQgaGF2ZSBiZWVuIGxhenkgYWJvdXQgdGhpcyAtIGJ1dCBpdCdz
IHByb2JhYmx5IG5vdCBzdXBlciBuZWNlc3Nhcnkgc2luY2UgdGhlIHBvaW50CisgICAgICAgb2Yg
Yml0Zml0IGdsb2JhbCBkaXJlY3RvcmllcyBpcyB0aGF0IHRoZXJlIHdvbid0IGJlIHRvbyBtYW55
IG9mIHRoZW0uICovCisgICAgaWYgKHBhc19iaXRmaXRfZGlyZWN0b3J5X2RvZXNfc2hhcmluZyhk
aXJlY3RvcnkpKSB7CisgICAgICAgIHBhc19wYWdlX3NoYXJpbmdfcG9vbF9hZGQoCisgICAgICAg
ICAgICAmcGFzX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19wb29sLAorICAgICAgICAgICAgcGFzX3Bh
Z2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9jcmVhdGUoCisgICAgICAgICAgICAgICAgZGlyZWN0b3J5
LCBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2JpdGZpdF9kaXJlY3RvcnkpKTsKKyAgICB9
CiB9CiAKIHZvaWQgcGFzX2JpdGZpdF9kaXJlY3RvcnlfbWF4X2ZyZWVfZGlkX2JlY29tZV91bnBy
b2Nlc3NlZChwYXNfYml0Zml0X2RpcmVjdG9yeSogZGlyZWN0b3J5LApAQCAtNzUsNyArNzYsNiBA
QCB2b2lkIHBhc19iaXRmaXRfZGlyZWN0b3J5X21heF9mcmVlX2RpZF9iCiB7CiAgICAgcGFzX2Jp
dGZpdF9kaXJlY3Rvcnlfc2V0X3VucHJvY2Vzc2VkX21heF9mcmVlKGRpcmVjdG9yeSwgaW5kZXgs
IHJlYXNvbik7CiAgICAgcGFzX3ZlcnNpb25lZF9maWVsZF9taW5pbWl6ZSgmZGlyZWN0b3J5LT5m
aXJzdF91bnByb2Nlc3NlZF9mcmVlLCBpbmRleCk7Ci0gICAgcGFzX2JpdGZpdF9kaXJlY3Rvcnlf
dXBkYXRlX2JpYXNpbmdfZWxpZ2liaWxpdHkoZGlyZWN0b3J5LCBpbmRleCk7CiB9CiAKIHZvaWQg
cGFzX2JpdGZpdF9kaXJlY3RvcnlfbWF4X2ZyZWVfZGlkX2JlY29tZV91bnByb2Nlc3NlZF91bmNo
ZWNrZWQocGFzX2JpdGZpdF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKQEAgLTg0LDEwICs4NCw5IEBA
IHZvaWQgcGFzX2JpdGZpdF9kaXJlY3RvcnlfbWF4X2ZyZWVfZGlkX2IKIHsKICAgICBwYXNfYml0
Zml0X2RpcmVjdG9yeV9zZXRfdW5wcm9jZXNzZWRfbWF4X2ZyZWVfdW5jaGVja2VkKGRpcmVjdG9y
eSwgaW5kZXgsIHJlYXNvbik7CiAgICAgcGFzX3ZlcnNpb25lZF9maWVsZF9taW5pbWl6ZSgmZGly
ZWN0b3J5LT5maXJzdF91bnByb2Nlc3NlZF9mcmVlLCBpbmRleCk7Ci0gICAgcGFzX2JpdGZpdF9k
aXJlY3RvcnlfdXBkYXRlX2JpYXNpbmdfZWxpZ2liaWxpdHkoZGlyZWN0b3J5LCBpbmRleCk7CiB9
CiAKLXZvaWQgcGFzX2JpdGZpdF9kaXJlY3RvcnlfbWF4X2ZyZWVfZGlkX2JlY29tZV9lbXB0eV93
aXRob3V0X2JpYXNpbmdfdXBkYXRlKAordm9pZCBwYXNfYml0Zml0X2RpcmVjdG9yeV9tYXhfZnJl
ZV9kaWRfYmVjb21lX2VtcHR5KAogICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5KiBkaXJlY3Rvcnks
CiAgICAgc2l6ZV90IGluZGV4LAogICAgIGNvbnN0IGNoYXIqIHJlYXNvbikKQEAgLTk2LDE3ICs5
NSw4IEBAIHZvaWQgcGFzX2JpdGZpdF9kaXJlY3RvcnlfbWF4X2ZyZWVfZGlkX2IKICAgICBwYXNf
dmVyc2lvbmVkX2ZpZWxkX21pbmltaXplKCZkaXJlY3RvcnktPmZpcnN0X2VtcHR5LCBpbmRleCk7
CiB9CiAKLXZvaWQgcGFzX2JpdGZpdF9kaXJlY3RvcnlfbWF4X2ZyZWVfZGlkX2JlY29tZV9lbXB0
eShwYXNfYml0Zml0X2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBpbmRleCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiByZWFz
b24pCi17Ci0gICAgcGFzX2JpdGZpdF9kaXJlY3RvcnlfbWF4X2ZyZWVfZGlkX2JlY29tZV9lbXB0
eV93aXRob3V0X2JpYXNpbmdfdXBkYXRlKGRpcmVjdG9yeSwgaW5kZXgsIHJlYXNvbik7Ci0gICAg
cGFzX2JpdGZpdF9kaXJlY3RvcnlfdXBkYXRlX2JpYXNpbmdfZWxpZ2liaWxpdHkoZGlyZWN0b3J5
LCBpbmRleCk7Ci19Ci0KIHBhc19iaXRmaXRfdmlld19hbmRfaW5kZXgKIHBhc19iaXRmaXRfZGly
ZWN0b3J5X2dldF9maXJzdF9mcmVlX3ZpZXcocGFzX2JpdGZpdF9kaXJlY3RvcnkqIGRpcmVjdG9y
eSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2JpdGZpdF9n
bG9iYWxfc2l6ZV9jbGFzcyogc2l6ZV9jbGFzcywKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdW5zaWduZWQgc3RhcnRfaW5kZXgsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIHNpemUsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBhc19iaXRmaXRfcGFnZV9jb25maWcqIHBhZ2VfY29uZmln
KQpAQCAtMTE4LDE5ICsxMDgsNiBAQCBwYXNfYml0Zml0X2RpcmVjdG9yeV9nZXRfZmlyc3RfZnJl
ZV92aWV3CiAgICAgICAgIHNpemVfdCBtYXhfZnJlZXNfc2l6ZTsKICAgICAgICAgcGFzX2JpdGZp
dF92aWV3KiB2aWV3OwogCi0gICAgICAgIGlmIChkaXJlY3RvcnktPmRpcmVjdG9yeV9raW5kID09
IHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9raW5kKSB7Ci0gICAgICAgICAgICBwYXNfYml0
Zml0X2dsb2JhbF9kaXJlY3RvcnkqIGdsb2JhbF9kaXJlY3Rvcnk7Ci0gICAgICAgICAgICBwYXNf
cGFnZV9zaGFyaW5nX3Bvb2wqIGJpYXNfcG9vbDsKLSAgICAgICAgICAgIAotICAgICAgICAgICAg
Z2xvYmFsX2RpcmVjdG9yeSA9IChwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkqKWRpcmVjdG9y
eTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgYmlhc19wb29sID0gcGFzX2NvbXBhY3RfYXRv
bWljX3BhZ2Vfc2hhcmluZ19wb29sX3B0cl9sb2FkKAotICAgICAgICAgICAgICAgICZnbG9iYWxf
ZGlyZWN0b3J5LT5iaWFzX3NoYXJpbmdfcG9vbCk7Ci0KLSAgICAgICAgICAgIGlmIChiaWFzX3Bv
b2wpCi0gICAgICAgICAgICAgICAgcGFzX2JpYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZShiaWFz
X3Bvb2wpOwotICAgICAgICB9Ci0KICAgICAgICAgdmlldyA9IE5VTEw7CiAKICAgICAgICAgbWF4
X2ZyZWVzX3NpemUgPSBkaXJlY3RvcnktPm1heF9mcmVlcy5zaXplOwpAQCAtMTc1LDIyICsxNTIs
MTYgQEAgcGFzX2JpdGZpdF9kaXJlY3RvcnlfZ2V0X2ZpcnN0X2ZyZWVfdmlldwogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGRpcmVjdG9yeSwgZGlyZWN0b3J5LT52aWV3cy5zaXplLCBkaXJl
Y3RvcnktPm1heF9mcmVlcy5zaXplKTsKICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAg
ICAgICBpZiAoZGlyZWN0b3J5LT5kaXJlY3Rvcnlfa2luZCA9PSBwYXNfYml0Zml0X2dsb2JhbF9k
aXJlY3Rvcnlfa2luZCkgewotICAgICAgICAgICAgICAgICAgICBwYXNfYml0Zml0X2dsb2JhbF9k
aXJlY3RvcnkqIGdsb2JhbF9kaXJlY3Rvcnk7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAg
ICAgICAgICAgIGdsb2JhbF9kaXJlY3RvcnkgPSAocGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5
KilkaXJlY3Rvcnk7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgIGlmIChQ
QVNfQklUVkVDVE9SX05VTV9XT1JEUyhkaXJlY3RvcnktPnZpZXdzLnNpemUpCi0gICAgICAgICAg
ICAgICAgICAgICAgICAhPSBnbG9iYWxfZGlyZWN0b3J5LT5iaXR2ZWN0b3JzLnNpemUpIHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIFBBU19BU1NFUlQoUEFTX0JJVFZFQ1RPUl9OVU1fV09SRFMo
ZGlyZWN0b3J5LT52aWV3cy5zaXplKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA9PSBnbG9iYWxfZGlyZWN0b3J5LT5iaXR2ZWN0b3JzLnNpemUgKyAxKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9zZWdtZW50ZWRfYml0dmVj
dG9yc19hcHBlbmQoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJmdsb2JhbF9kaXJlY3Rv
cnktPmJpdHZlY3RvcnMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgUEFTX0JJVEZJVF9H
TE9CQUxfRElSRUNUT1JZX0JJVFZFQ1RPUl9TRUdNRU5UX0lOSVRJQUxJWkVSLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHBhc19sb2NrX2lzX2hlbGQpOwotICAgICAgICAgICAgICAgICAg
ICAgICAgUEFTX0FTU0VSVChQQVNfQklUVkVDVE9SX05VTV9XT1JEUyhkaXJlY3RvcnktPnZpZXdz
LnNpemUpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID09IGdsb2JhbF9kaXJl
Y3RvcnktPmJpdHZlY3RvcnMuc2l6ZSk7Ci0gICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICBpZiAoUEFTX0JJVFZFQ1RPUl9OVU1fV09SRFMoZGlyZWN0b3J5LT52aWV3cy5zaXpl
KQorICAgICAgICAgICAgICAgICAgICAhPSBkaXJlY3RvcnktPmJpdHZlY3RvcnMuc2l6ZSkgewor
ICAgICAgICAgICAgICAgICAgICBQQVNfQVNTRVJUKFBBU19CSVRWRUNUT1JfTlVNX1dPUkRTKGRp
cmVjdG9yeS0+dmlld3Muc2l6ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSBk
aXJlY3RvcnktPmJpdHZlY3RvcnMuc2l6ZSArIDEpOworICAgICAgICAgICAgICAgICAgICBwYXNf
Yml0Zml0X2RpcmVjdG9yeV9zZWdtZW50ZWRfYml0dmVjdG9yc19hcHBlbmQoCisgICAgICAgICAg
ICAgICAgICAgICAgICAmZGlyZWN0b3J5LT5iaXR2ZWN0b3JzLAorICAgICAgICAgICAgICAgICAg
ICAgICAgUEFTX0JJVEZJVF9ESVJFQ1RPUllfQklUVkVDVE9SX1NFR01FTlRfSU5JVElBTElaRVIs
CisgICAgICAgICAgICAgICAgICAgICAgICBwYXNfbG9ja19pc19oZWxkKTsKKyAgICAgICAgICAg
ICAgICAgICAgUEFTX0FTU0VSVChQQVNfQklUVkVDVE9SX05VTV9XT1JEUyhkaXJlY3RvcnktPnZp
ZXdzLnNpemUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT0gZGlyZWN0b3J5LT5i
aXR2ZWN0b3JzLnNpemUpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAg
ICAgICAgICAgIHBhc19oZWFwX2xvY2tfdW5sb2NrKCk7CkBAIC0yMDcsMTI2ICsxNzgsMjMgQEAg
cGFzX2JpdGZpdF9kaXJlY3RvcnlfZ2V0X2ZpcnN0X2ZyZWVfdmlldwogICAgICAgICAgICAgICAg
ICAgICBkaXJlY3RvcnksICh1bnNpZ25lZClmb3VuZF9pbmRleC5pbmRleCwgdmlldyk7CiAgICAg
ICAgIH0KIAotICAgICAgICBzd2l0Y2ggKGRpcmVjdG9yeS0+ZGlyZWN0b3J5X2tpbmQpIHsKLSAg
ICAgICAgY2FzZSBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3Rvcnlfa2luZDogewotICAgICAgICAg
ICAgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5KiBnbG9iYWxfZGlyZWN0b3J5OwotICAgICAg
ICAgICAgCi0gICAgICAgICAgICBnbG9iYWxfZGlyZWN0b3J5ID0gKHBhc19iaXRmaXRfZ2xvYmFs
X2RpcmVjdG9yeSopZGlyZWN0b3J5OwotICAgICAgICAgICAgCisgICAgICAgIGlmICghdmlldykg
eworICAgICAgICAgICAgcGFzX2hlYXBfbG9ja19sb2NrKCk7CisgICAgICAgICAgICB2aWV3ID0g
cGFzX2JpdGZpdF9kaXJlY3RvcnlfZ2V0X3ZpZXcoZGlyZWN0b3J5LCBmb3VuZF9pbmRleC5pbmRl
eCk7CiAgICAgICAgICAgICBpZiAoIXZpZXcpIHsKLSAgICAgICAgICAgICAgICBwYXNfaGVhcF9s
b2NrX2xvY2soKTsKLSAgICAgICAgICAgICAgICB2aWV3ID0gcGFzX2JpdGZpdF9kaXJlY3Rvcnlf
Z2V0X3ZpZXcoZGlyZWN0b3J5LCBmb3VuZF9pbmRleC5pbmRleCk7Ci0gICAgICAgICAgICAgICAg
aWYgKCF2aWV3KSB7Ci0gICAgICAgICAgICAgICAgICAgIFBBU19BU1NFUlQoKHVuc2lnbmVkKWZv
dW5kX2luZGV4LmluZGV4ID09IGZvdW5kX2luZGV4LmluZGV4KTsKLSAgICAgICAgICAgICAgICAg
ICAgdmlldyA9IHBhc19iaXRmaXRfdmlld19jcmVhdGUoZ2xvYmFsX2RpcmVjdG9yeSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVuc2lnbmVkKWZv
dW5kX2luZGV4LmluZGV4KTsKLSAgICAgICAgICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWlj
X2JpdGZpdF92aWV3X3B0cl9zdG9yZSgKLSAgICAgICAgICAgICAgICAgICAgICAgIHBhc19iaXRm
aXRfZGlyZWN0b3J5X2dldF92aWV3X3B0cihkaXJlY3RvcnksIGZvdW5kX2luZGV4LmluZGV4KSwg
dmlldyk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHBhc19oZWFwX2xvY2tf
dW5sb2NrKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIFBBU19U
RVNUSU5HX0FTU0VSVCgKLSAgICAgICAgICAgICAgICBwYXNfY29tcGFjdF9iaXRmaXRfZ2xvYmFs
X2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgmdmlldy0+Z2xvYmFsX2RpcmVjdG9yeSkKLSAg
ICAgICAgICAgICAgICA9PSBnbG9iYWxfZGlyZWN0b3J5KTsKLSAgICAgICAgICAgIFBBU19URVNU
SU5HX0FTU0VSVCh2aWV3LT5pbmRleF9pbl9nbG9iYWwgPT0gZm91bmRfaW5kZXguaW5kZXgpOwot
Ci0gICAgICAgICAgICAvKiBOb3RlOiBpdCdzIHBvc3NpYmxlIGZvciB0aGlzIHRvIG5vdyBoYXZl
IGJlY29tZSBhIGJpYXNlZCB2aWV3LiBJdCBzaG91bGQgbm90IGhhcHBlbgotICAgICAgICAgICAg
ICAgb2Z0ZW4uIElmIGl0IGlzIG5vdyBhIGJpYXNlZCB2aWV3LCB0aGVuIGl0IG11c3QgaGF2ZSBl
YXJsaWVyIGhhZCBpdHMgbWF4X2ZyZWUKLSAgICAgICAgICAgICAgIHplcm9lZC4gKi8KLSAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0KLSAgICAgICAgY2FzZSBwYXNfYml0Zml0X2JpYXNp
bmdfZGlyZWN0b3J5X2tpbmQ6IHsKLSAgICAgICAgICAgIHBhc19iaXRmaXRfYmlhc2luZ19kaXJl
Y3RvcnkqIGJpYXNpbmdfZGlyZWN0b3J5OwotICAgICAgICAgICAgcGFzX2JpdGZpdF9nbG9iYWxf
ZGlyZWN0b3J5KiBnbG9iYWxfZGlyZWN0b3J5OwotCi0gICAgICAgICAgICBiaWFzaW5nX2RpcmVj
dG9yeSA9IChwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5KilkaXJlY3Rvcnk7Ci0gICAgICAg
ICAgICAKLSAgICAgICAgICAgIGlmICh2aWV3KSB7Ci0gICAgICAgICAgICAgICAgLyogSWYgdGhl
cmUgd2FzIGFueSB2aWV3IGF0IGFsbCB0aGVuIGl0IG11c3QgaGF2ZSBiZWVuIGJpYXNlZCB0byB0
aGlzIGRpcmVjdG9yeSBhdAotICAgICAgICAgICAgICAgICAgIHNvbWUgcG9pbnQgb3IgYW5vdGhl
ci4gT2YgY291cnNlIGl0IGNvdWxkIGJlIHVuYmlhc2VkIGF0IGFueSBtb21lbnQsIGJ1dCBpdCBj
b3VsZAotICAgICAgICAgICAgICAgICAgIGV2ZW4gYmUgdW5iaWFzZWQgcmlnaHQgYWZ0ZXIgd2Ug
dmVyaWZ5IHRoYXQgaXQgaXMgb3Vycy4gKi8KLSAgICAgICAgICAgICAgICBwYXNfYmlhc2luZ19k
aXJlY3RvcnlfZGlkX3VzZV9pbmRleCgmYmlhc2luZ19kaXJlY3RvcnktPmJpYXNpbmdfYmFzZSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3Vu
ZF9pbmRleC5pbmRleCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwYXNfZ2V0X2Vwb2NoKCkpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICAgICAgfQotCi0gICAgICAgICAgICBnbG9iYWxfZGlyZWN0b3J5ID0KLSAgICAgICAgICAg
ICAgICBwYXNfY29tcGFjdF9iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVs
bCgKLSAgICAgICAgICAgICAgICAgICAgJmJpYXNpbmdfZGlyZWN0b3J5LT5wYXJlbnRfZ2xvYmFs
KTsKLSAgICAgICAgICAgIFBBU19URVNUSU5HX0FTU0VSVCgKLSAgICAgICAgICAgICAgICAmZ2xv
YmFsX2RpcmVjdG9yeS0+YmFzZQotICAgICAgICAgICAgICAgID09IHBhc19jb21wYWN0X2JpdGZp
dF9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoJnNpemVfY2xhc3MtPmJhc2UuZGlyZWN0b3J5
KSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGZvciAoOzspIHsKLSAgICAgICAgICAgICAg
ICBwYXNfYml0Zml0X3ZpZXcqIHByZXZpb3VzX3ZpZXc7Ci0gICAgICAgICAgICAgICAgCi0gICAg
ICAgICAgICAgICAgdmlldyA9IHBhc19iaXRmaXRfc2l6ZV9jbGFzc19nZXRfZmlyc3RfZnJlZV92
aWV3KAotICAgICAgICAgICAgICAgICAgICAmc2l6ZV9jbGFzcy0+YmFzZSwgc2l6ZV9jbGFzcywg
cGFnZV9jb25maWcpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgUEFTX1RFU1RJTkdf
QVNTRVJUKAotICAgICAgICAgICAgICAgICAgICBwYXNfY29tcGFjdF9iaXRmaXRfZ2xvYmFsX2Rp
cmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgmdmlldy0+Z2xvYmFsX2RpcmVjdG9yeSkKLSAgICAg
ICAgICAgICAgICAgICAgPT0gZ2xvYmFsX2RpcmVjdG9yeSk7Ci0KLSAgICAgICAgICAgICAgICBw
YXNfbG9ja19sb2NrKCZ2aWV3LT5vd25lcnNoaXBfbG9jayk7Ci0gICAgICAgICAgICAgICAgLyog
V2Ugc2hvdWxkIG5vdCBiaWFzIGEgdmlldyB0aGF0IGlzIGFscmVhZHkgYmlhc2VkLiBUaGUgZ2xv
YmFsIGRpcmVjdG9yeSB3b3VsZCBub3QgaGF2ZQotICAgICAgICAgICAgICAgICAgIGdpdmVuIHVz
IGEgdmlldyB0aGF0IHdhcyBhbHJlYWR5IGJpYXNlZCBpZiBpdCBrbmV3IHRoYXQgaXQgd2FzIGJp
YXNlZCBhdCB0aGUgdGltZSBvZgotICAgICAgICAgICAgICAgICAgIHRoZSBzZWFyY2guICovCi0g
ICAgICAgICAgICAgICAgaWYgKCFwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X2JpYXNpbmdfZGly
ZWN0b3J5X3B0cl9pc19udWxsKCZ2aWV3LT5iaWFzaW5nX2RpcmVjdG9yeSkpIHsKLSAgICAgICAg
ICAgICAgICAgICAgcGFzX2xvY2tfdW5sb2NrKCZ2aWV3LT5vd25lcnNoaXBfbG9jayk7Ci0gICAg
ICAgICAgICAgICAgICAgIC8qIFNlYXJjaCB0aGUgZ2xvYmFsIGRpcmVjdG9yeSBhZ2Fpbi4gKi8K
LSAgICAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpIHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIHBhc19sb2coIiVwOiV1OiBmb3VuZCBhbHJlYWR5IGJpYXNlZCB2aWV3ID0gJXAuXG4iLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3RvcnksICh1bnNpZ25lZClmb3Vu
ZF9pbmRleC5pbmRleCwgdmlldyk7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAg
cHJldmlvdXNfdmlldyA9IHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfdmlld19wdHJfc3Ryb25n
X2NhcygKLSAgICAgICAgICAgICAgICAgICAgcGFzX2JpdGZpdF9kaXJlY3RvcnlfZ2V0X3ZpZXdf
cHRyKGRpcmVjdG9yeSwgZm91bmRfaW5kZXguaW5kZXgpLAotICAgICAgICAgICAgICAgICAgICBO
VUxMLCB2aWV3KTsKLSAgICAgICAgICAgICAgICBpZiAocHJldmlvdXNfdmlldykgewotICAgICAg
ICAgICAgICAgICAgICAvKiBUaGlzIGlzIGFuIHVubGlrZWx5IHJhY2UgY29uZGl0aW9uIHNpbmNl
IGJpYXNpbmcgZGlyZWN0b3JpZXMgYXJlIHVzdWFsbHkgb3duZWQKLSAgICAgICAgICAgICAgICAg
ICAgICAgYnkgYSB0aHJlYWQuIE5vdGUgdGhhdCB0aGUgcHJldmlvdXNfdmlldyBjYW5ub3QgYmUg
b3VyIHZpZXcsIHNpbmNlIHdlIGhhZCBqdXN0Ci0gICAgICAgICAgICAgICAgICAgICAgIGRldGVj
dGVkIHRoYXQgb3VyIHZpZXcgd2FzIG5vdCBiaWFzZWQsIGFuZCB3ZSBzdGlsbCBob2xkIGl0cyBs
b2NrLiAqLwotICAgICAgICAgICAgICAgICAgICBQQVNfQVNTRVJUKHByZXZpb3VzX3ZpZXcgIT0g
dmlldyk7Ci0gICAgICAgICAgICAgICAgICAgIHBhc19sb2NrX3VubG9jaygmdmlldy0+b3duZXJz
aGlwX2xvY2spOwotICAgICAgICAgICAgICAgICAgICB2aWV3ID0gcHJldmlvdXNfdmlldzsKLSAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAg
ICAgICAgaWYgKHZlcmJvc2UpCi0gICAgICAgICAgICAgICAgICAgIHBhc19sb2coIkJpYXNpbmcg
dmlldyAlcCB0byAlcDoldVxuIiwgdmlldywgZGlyZWN0b3J5LCAodW5zaWduZWQpZm91bmRfaW5k
ZXguaW5kZXgpOwotCi0gICAgICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9i
aWFzaW5nX2RpcmVjdG9yeV9wdHJfc3RvcmUoCi0gICAgICAgICAgICAgICAgICAgICZ2aWV3LT5i
aWFzaW5nX2RpcmVjdG9yeSwgYmlhc2luZ19kaXJlY3RvcnkpOwogICAgICAgICAgICAgICAgIFBB
U19BU1NFUlQoKHVuc2lnbmVkKWZvdW5kX2luZGV4LmluZGV4ID09IGZvdW5kX2luZGV4LmluZGV4
KTsKLSAgICAgICAgICAgICAgICB2aWV3LT5pbmRleF9pbl9iaWFzaW5nID0gKHVuc2lnbmVkKWZv
dW5kX2luZGV4LmluZGV4OwotCi0gICAgICAgICAgICAgICAgLyogV2UgYXZvaWQgdGhlIGNoZWNr
aW5nIGhlcmUgYmVjYXVzZSB0aGlzIG1pZ2h0IGhhdmUgYmVlbiBlbXB0eSwgYW5kIHRoYXQncyBP
Sy4gKi8KLSAgICAgICAgICAgICAgICBwYXNfYml0Zml0X2RpcmVjdG9yeV9zZXRfbWF4X2ZyZWVf
dW5jaGVja2VkKAotICAgICAgICAgICAgICAgICAgICAmZ2xvYmFsX2RpcmVjdG9yeS0+YmFzZSwg
dmlldy0+aW5kZXhfaW5fZ2xvYmFsLCAwLCAiY2xlYXJpbmcgZ2xvYmFsIG9uIGJpYXMiKTsKLSAg
ICAgICAgICAgIAotICAgICAgICAgICAgICAgIGlmIChwYXNfYml0Zml0X3ZpZXdfaXNfZW1wdHko
dmlldywgKnBhZ2VfY29uZmlnKSkgewotICAgICAgICAgICAgICAgICAgICAvKiBUaGlzIGhlbHBz
IHByZXNlcnZlIGNvbnNpc3RlbmN5IGJ1dCBpdCdzIG5vdCBzdXBlciBpbnRlcmVzdGluZzsgYXMg
c29vbiBhcyB3ZQotICAgICAgICAgICAgICAgICAgICAgICBhbGxvY2F0ZSB3ZSB3aWxsIG1hcmsg
dGhpcyB1bnByb2Nlc3NlZC4gKi8KLSAgICAgICAgICAgICAgICAgICAgcGFzX2JpdGZpdF9kaXJl
Y3RvcnlfbWF4X2ZyZWVfZGlkX2JlY29tZV9lbXB0eSgKLSAgICAgICAgICAgICAgICAgICAgICAg
IGRpcmVjdG9yeSwgZm91bmRfaW5kZXguaW5kZXgsICJpbml0aWFsaXplIHRvIGVtcHR5IG9uIGJp
YXMiKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBwYXNf
Yml0Zml0X2RpcmVjdG9yeV9tYXhfZnJlZV9kaWRfYmVjb21lX3VucHJvY2Vzc2VkX3VuY2hlY2tl
ZCgKLSAgICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdG9yeSwgZm91bmRfaW5kZXguaW5kZXgs
ICJpbml0aWFsaXplIHRvIHVucHJvY2Vzc2VkIG9uIGJpYXMiKTsKLSAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgICAgcGFzX2xvY2tfdW5sb2NrKCZ2aWV3LT5vd25lcnNoaXBfbG9jayk7
Ci0gICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgdmlldyA9IHBhc19iaXRm
aXRfdmlld19jcmVhdGUoZGlyZWN0b3J5LCAodW5zaWduZWQpZm91bmRfaW5kZXguaW5kZXgpOwor
ICAgICAgICAgICAgICAgIHBhc19zdG9yZV9zdG9yZV9mZW5jZSgpOworICAgICAgICAgICAgICAg
IHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfdmlld19wdHJfc3RvcmUoCisgICAgICAgICAgICAg
ICAgICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5X2dldF92aWV3X3B0cihkaXJlY3RvcnksIGZvdW5k
X2luZGV4LmluZGV4KSwgdmlldyk7CiAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHBhc19i
aWFzaW5nX2RpcmVjdG9yeV9kaWRfdXNlX2luZGV4KAotICAgICAgICAgICAgICAgICZiaWFzaW5n
X2RpcmVjdG9yeS0+Ymlhc2luZ19iYXNlLCBmb3VuZF9pbmRleC5pbmRleCwgcGFzX2dldF9lcG9j
aCgpKTsKLQotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0gfQorICAgICAgICAgICAgcGFz
X2hlYXBfbG9ja191bmxvY2soKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgUEFTX1RF
U1RJTkdfQVNTRVJUKAorICAgICAgICAgICAgcGFzX2NvbXBhY3RfYml0Zml0X2RpcmVjdG9yeV9w
dHJfbG9hZF9ub25fbnVsbCgmdmlldy0+ZGlyZWN0b3J5KQorICAgICAgICAgICAgPT0gZGlyZWN0
b3J5KTsKKyAgICAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKHZpZXctPmluZGV4ID09IGZvdW5kX2lu
ZGV4LmluZGV4KTsKIAogICAgICAgICByZXR1cm4gcGFzX2JpdGZpdF92aWV3X2FuZF9pbmRleF9j
cmVhdGUodmlldywgZm91bmRfaW5kZXguaW5kZXgpOwogICAgIH0KQEAgLTM5Nyw0ICsyNjUsMjkx
IEBAIGJvb2wgcGFzX2JpdGZpdF9kaXJlY3RvcnlfZm9yX2VhY2hfbGl2ZV8KICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAorYm9vbCBwYXNfYml0Zml0X2RpcmVjdG9yeV9kb2VzX3NoYXJpbmcocGFzX2Jp
dGZpdF9kaXJlY3RvcnkqIGRpcmVjdG9yeSkKK3sKKyAgICByZXR1cm4gcGFzX3BhZ2Vfc2hhcmlu
Z19tb2RlX2RvZXNfc2hhcmluZygKKyAgICAgICAgZGlyZWN0b3J5LT5oZWFwLT5ydW50aW1lX2Nv
bmZpZy0+c2hhcmluZ19tb2RlKTsKK30KKyAgICAKK3VpbnQ2NF90IHBhc19iaXRmaXRfZGlyZWN0
b3J5X2dldF91c2VfZXBvY2gocGFzX2JpdGZpdF9kaXJlY3RvcnkqIGRpcmVjdG9yeSkKK3sKKyAg
ICB1aW50cHRyX3QgbGFzdF9lbXB0eV9wbHVzX29uZTsKKyAgICBzaXplX3QgaW5kZXg7CisgICAg
cGFzX2JpdGZpdF9wYWdlX2NvbmZpZyBjb25maWc7CisKKyAgICBsYXN0X2VtcHR5X3BsdXNfb25l
ID0gZGlyZWN0b3J5LT5sYXN0X2VtcHR5X3BsdXNfb25lLnZhbHVlOworICAgIGNvbmZpZyA9ICpw
YXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmRfZ2V0X2NvbmZpZyhkaXJlY3RvcnktPmNvbmZpZ19r
aW5kKTsKKworICAgIGZvciAoaW5kZXggPSBsYXN0X2VtcHR5X3BsdXNfb25lOyBpbmRleC0tOykg
eworICAgICAgICBwYXNfYml0Zml0X3ZpZXcqIHZpZXc7CisgICAgICAgIHVpbnQ2NF90IGVwb2No
OworCisgICAgICAgIC8qIFByb3RlY3QgYWdhaW5zdCB1bnNldCBlcG9jaHMuICovCisgICAgICAg
IGlmICghcGFzX2JpdGZpdF9kaXJlY3RvcnlfZ2V0X2VtcHR5X2JpdF9hdF9pbmRleChkaXJlY3Rv
cnksIGluZGV4KSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIHZpZXcgPSBwYXNf
Yml0Zml0X2RpcmVjdG9yeV9nZXRfdmlldyhkaXJlY3RvcnksIGluZGV4KTsKKyAgICAgICAgaWYg
KCF2aWV3KQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgcGFzX2xvY2tfbG9jaygm
dmlldy0+b3duZXJzaGlwX2xvY2spOworICAgICAgICBlcG9jaCA9IDA7CisgICAgICAgIGlmICh2
aWV3LT5pc19vd25lZCkgeworICAgICAgICAgICAgcGFzX2JpdGZpdF9wYWdlKiBwYWdlOworICAg
ICAgICAgICAgcGFnZSA9IHBhc19iaXRmaXRfcGFnZV9mb3JfYm91bmRhcnkodmlldy0+cGFnZV9i
b3VuZGFyeSwgY29uZmlnKTsKKyAgICAgICAgICAgIGlmICghcGFnZS0+bnVtX2xpdmVfYml0cykg
eworICAgICAgICAgICAgICAgIGVwb2NoID0gcGFnZS0+dXNlX2Vwb2NoOworICAgICAgICAgICAg
ICAgIFBBU19BU1NFUlQoZXBvY2gpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAg
IHBhc19sb2NrX3VubG9jaygmdmlldy0+b3duZXJzaGlwX2xvY2spOworCisgICAgICAgIGlmIChl
cG9jaCkKKyAgICAgICAgICAgIHJldHVybiBlcG9jaDsKKyAgICB9CisKKyAgICByZXR1cm4gMDsK
K30KKworYm9vbCBwYXNfYml0Zml0X2RpcmVjdG9yeV9nZXRfZW1wdHlfYml0X2F0X2luZGV4KAor
ICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisgICAgc2l6ZV90IGluZGV4KQor
eworICAgIHJldHVybiBwYXNfYml0dmVjdG9yX2dldF9mcm9tX3dvcmQoCisgICAgICAgIHBhc19i
aXRmaXRfZGlyZWN0b3J5X3NlZ21lbnRlZF9iaXR2ZWN0b3JzX2dldF9wdHJfY2hlY2tlZCgKKyAg
ICAgICAgICAgICZkaXJlY3RvcnktPmJpdHZlY3RvcnMsIFBBU19CSVRWRUNUT1JfV09SRF9JTkRF
WChpbmRleCkpLT5lbXB0eV9iaXRzLAorICAgICAgICBpbmRleCk7Cit9CisKKy8qIFJldHVybnMg
d2hldGhlciB3ZSBjaGFuZ2VkIHRoZSB2YWx1ZS4gKi8KK2Jvb2wgcGFzX2JpdGZpdF9kaXJlY3Rv
cnlfc2V0X2VtcHR5X2JpdF9hdF9pbmRleCgKKyAgICBwYXNfYml0Zml0X2RpcmVjdG9yeSogZGly
ZWN0b3J5LAorICAgIHNpemVfdCBpbmRleCwKKyAgICBib29sIHZhbHVlKQoreworICAgIHJldHVy
biBwYXNfYml0dmVjdG9yX3NldF9hdG9taWNfaW5fd29yZCgKKyAgICAgICAgJnBhc19iaXRmaXRf
ZGlyZWN0b3J5X3NlZ21lbnRlZF9iaXR2ZWN0b3JzX2dldF9wdHJfY2hlY2tlZCgKKyAgICAgICAg
ICAgICZkaXJlY3RvcnktPmJpdHZlY3RvcnMsIFBBU19CSVRWRUNUT1JfV09SRF9JTkRFWChpbmRl
eCkpLT5lbXB0eV9iaXRzLAorICAgICAgICBpbmRleCwKKyAgICAgICAgdmFsdWUpOworfQorCit2
b2lkIHBhc19iaXRmaXRfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbXB0eV9hdF9pbmRleCgK
KyAgICBwYXNfYml0Zml0X2RpcmVjdG9yeSogZGlyZWN0b3J5LAorICAgIHNpemVfdCBpbmRleCkK
K3sKKyAgICBpZiAoIXBhc19iaXRmaXRfZGlyZWN0b3J5X3NldF9lbXB0eV9iaXRfYXRfaW5kZXgo
ZGlyZWN0b3J5LCBpbmRleCwgdHJ1ZSkpCisgICAgICAgIHJldHVybjsKKworICAgIC8qIElmIHdl
IGFscmVhZHkga25ldyBhYm91dCBlbXB0aWVzLCB0aGVuIHdlIGhhdmUgbm90aGluZyBtb3JlIHRv
IGRvLiAqLworICAgIGlmIChwYXNfdmVyc2lvbmVkX2ZpZWxkX21heGltaXplKCZkaXJlY3Rvcnkt
Pmxhc3RfZW1wdHlfcGx1c19vbmUsIGluZGV4ICsgMSkpCisgICAgICAgIHJldHVybjsKKworICAg
IGlmICghcGFzX2JpdGZpdF9kaXJlY3RvcnlfZG9lc19zaGFyaW5nKGRpcmVjdG9yeSkpCisgICAg
ICAgIHJldHVybjsKKyAgICAKKyAgICBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfZGlkX2NyZWF0ZV9k
ZWx0YSgKKyAgICAgICAgJnBhc19waHlzaWNhbF9wYWdlX3NoYXJpbmdfcG9vbCwKKyAgICAgICAg
cGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9jcmVhdGUoCisgICAgICAgICAgICBkaXJlY3Rv
cnksIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfYml0Zml0X2RpcmVjdG9yeSkpOworfQor
Cit2b2lkIHBhc19iaXRmaXRfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbXB0eSgKKyAgICBw
YXNfYml0Zml0X2RpcmVjdG9yeSogZGlyZWN0b3J5LAorICAgIHBhc19iaXRmaXRfdmlldyogdmll
dykKK3sKKyAgICBQQVNfVEVTVElOR19BU1NFUlQoCisgICAgICAgIHBhc19jb21wYWN0X2JpdGZp
dF9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoJnZpZXctPmRpcmVjdG9yeSkKKyAgICAgICAg
PT0gZGlyZWN0b3J5KTsKKyAgICBwYXNfYml0Zml0X2RpcmVjdG9yeV92aWV3X2RpZF9iZWNvbWVf
ZW1wdHlfYXRfaW5kZXgoCisgICAgICAgIGRpcmVjdG9yeSwgdmlldy0+aW5kZXgpOworfQorCitw
YXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9yZXN1bHQgcGFzX2JpdGZpdF9kaXJlY3RvcnlfdGFr
ZV9sYXN0X2VtcHR5KAorICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisgICAg
cGFzX2RlZmVycmVkX2RlY29tbWl0X2xvZyogZGVjb21taXRfbG9nLAorICAgIHBhc19sb2NrX2hv
bGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9tb2RlKQoreworICAgIHN0YXRpYyBjb25zdCBib29sIHZl
cmJvc2UgPSBmYWxzZTsKKyAgICAKKyAgICBwYXNfdmVyc2lvbmVkX2ZpZWxkIGxhc3RfZW1wdHlf
cGx1c19vbmVfdmFsdWU7CisgICAgc2l6ZV90IGluZGV4OworICAgIHBhc19iaXRmaXRfcGFnZV9j
b25maWcqIHBhZ2VfY29uZmlnOworICAgIHNpemVfdCBudW1fZ3JhbnVsZXM7CisKKyAgICBsYXN0
X2VtcHR5X3BsdXNfb25lX3ZhbHVlID0gcGFzX3ZlcnNpb25lZF9maWVsZF9yZWFkKCZkaXJlY3Rv
cnktPmxhc3RfZW1wdHlfcGx1c19vbmUpOworCisgICAgcGFnZV9jb25maWcgPSBwYXNfYml0Zml0
X3BhZ2VfY29uZmlnX2tpbmRfZ2V0X2NvbmZpZyhkaXJlY3RvcnktPmNvbmZpZ19raW5kKTsKKyAg
ICBudW1fZ3JhbnVsZXMgPSBwYWdlX2NvbmZpZy0+YmFzZS5wYWdlX3NpemUgLyBwYWdlX2NvbmZp
Zy0+YmFzZS5ncmFudWxlX3NpemU7CisKKyAgICBmb3IgKGluZGV4ID0gbGFzdF9lbXB0eV9wbHVz
X29uZV92YWx1ZS52YWx1ZTsgaW5kZXgtLTspIHsKKyAgICAgICAgcGFzX2JpdGZpdF92aWV3KiB2
aWV3OworICAgICAgICBwYXNfYml0Zml0X3BhZ2UqIHBhZ2U7CisgICAgICAgIHVpbnRwdHJfdCBi
YXNlOworICAgICAgICBwYXNfbG9jayogY29tbWl0X2xvY2s7CisgICAgICAgIGJvb2wgcGFnZV9p
c19kZWFkOworICAgICAgICBwYXNfYml0Zml0X21heF9mcmVlIG1heF9mcmVlOworICAgICAgICAK
KyAgICAgICAgaWYgKCFwYXNfYml0Zml0X2RpcmVjdG9yeV9zZXRfZW1wdHlfYml0X2F0X2luZGV4
KGRpcmVjdG9yeSwgaW5kZXgsIGZhbHNlKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAg
ICAgIHZpZXcgPSBwYXNfYml0Zml0X2RpcmVjdG9yeV9nZXRfdmlldyhkaXJlY3RvcnksIGluZGV4
KTsKKworICAgICAgICBQQVNfQVNTRVJUKHZpZXcpOworICAgICAgICBQQVNfQVNTRVJUKHZpZXct
PnBhZ2VfYm91bmRhcnkpOyAvKiBZb3UgZG9uJ3QgYmVjb21lIGVtcHR5IHVudGlsIHlvdSBoYXZl
IGEgcGFnZSBhbmQgdGhlbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB5b3UgbmV2ZXIgbG9zZSB0aGUgcGFnZS4gKi8KKyAgICAgICAgUEFTX0FTU0VSVChwYXNf
Y29tcGFjdF9iaXRmaXRfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKCZ2aWV3LT5kaXJlY3Rv
cnkpID09IGRpcmVjdG9yeSk7CisgICAgICAgIFBBU19BU1NFUlQodmlldy0+aW5kZXggPT0gaW5k
ZXgpOworCisgICAgICAgIGNvbW1pdF9sb2NrID0gJnZpZXctPmNvbW1pdF9sb2NrOworCisgICAg
ICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAgcGFzX2xvZygiR3JhYmJpbmcgY29tbWl0IGxv
Y2sgJXBcbiIsIGNvbW1pdF9sb2NrKTsKKyAgICAgICAgaWYgKCFwYXNfZGVmZXJyZWRfZGVjb21t
aXRfbG9nX2xvY2tfZm9yX2FkZGluZygKKyAgICAgICAgICAgICAgICBkZWNvbW1pdF9sb2csIGNv
bW1pdF9sb2NrLCBoZWFwX2xvY2tfaG9sZF9tb2RlKSkgeworICAgICAgICAgICAgcGFzX2JpdGZp
dF9kaXJlY3Rvcnlfdmlld19kaWRfYmVjb21lX2VtcHR5X2F0X2luZGV4KGRpcmVjdG9yeSwgaW5k
ZXgpOworICAgICAgICAgICAgcmV0dXJuIHBhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtlX2xvY2tz
X3VuYXZhaWxhYmxlOworICAgICAgICB9CisKKyAgICAgICAgcGFzX2xvY2tfbG9jaygmdmlldy0+
b3duZXJzaGlwX2xvY2spOworCisgICAgICAgIGlmICghdmlldy0+aXNfb3duZWQpIHsKKyAgICAg
ICAgICAgIHBhc19sb2NrX3VubG9jaygmdmlldy0+b3duZXJzaGlwX2xvY2spOworICAgICAgICAg
ICAgcGFzX2RlZmVycmVkX2RlY29tbWl0X2xvZ191bmxvY2tfYWZ0ZXJfYWJvcnRlZF9hZGQoZGVj
b21taXRfbG9nLCBjb21taXRfbG9jayk7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAg
fQorCisgICAgICAgIGJhc2UgPSAodWludHB0cl90KXZpZXctPnBhZ2VfYm91bmRhcnk7CisgICAg
ICAgIFBBU19BU1NFUlQoYmFzZSk7CisgICAgICAgIHBhZ2UgPSBwYXNfYml0Zml0X3BhZ2VfZm9y
X2JvdW5kYXJ5KCh2b2lkKiliYXNlLCAqcGFnZV9jb25maWcpOworICAgICAgICBQQVNfQVNTRVJU
KHBhZ2UpOworCisgICAgICAgIHBhZ2VfaXNfZGVhZCA9ICFwYWdlLT5udW1fbGl2ZV9iaXRzOwor
CisgICAgICAgIG1heF9mcmVlID0gcGFzX2JpdGZpdF9kaXJlY3RvcnlfZ2V0X21heF9mcmVlKGRp
cmVjdG9yeSwgaW5kZXgpOworICAgICAgICBpZiAocGFnZV9pc19kZWFkKSB7CisgICAgICAgICAg
ICAvKiBJZiBhIHBhZ2UncyBudW1fbGl2ZV9iaXRzIGRyb3BzIHRvIHplcm8gdGhlbiB3ZSB3aWxs
IG1hcmsgaXQgZW1wdHkgaW4gdGhlIGRpcmVjdG9yeSB0aGF0CisgICAgICAgICAgICAgICBvd25z
IGl0IHdoaWxlIGhvbGRpbmcgdGhlIGxvY2suIE5ld2x5IGNyZWF0ZWQgcGFnZXMgc3RhcnQgb3V0
IGVtcHR5LiAgKi8KKyAgICAgICAgICAgIGlmIChtYXhfZnJlZSAhPSBQQVNfQklURklUX01BWF9G
UkVFX0VNUFRZKSB7CisgICAgICAgICAgICAgICAgcGFzX2xvZygiJXA6JXU6IGZvdW5kIG5vbi1l
bXB0eSBwYWdlIHRoYXQgaXMgZGVhZCB3aGVuIHRha2luZyBsYXN0IGVtcHR5LlxuIik7CisgICAg
ICAgICAgICAgICAgUEFTX0FTU0VSVChtYXhfZnJlZSA9PSBQQVNfQklURklUX01BWF9GUkVFX0VN
UFRZKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8qIElm
IGEgcGFnZSdzIG51bV9saXZlX2JpdHMgZ29lcyBhYm92ZSB6ZXJvIHRoZW4gd2UgbWFyayBpdCB1
bnByb2Nlc3NlZCB3aGlsZSBob2xkaW5nIHRoZQorICAgICAgICAgICAgICAgbG9jay4gKi8KKyAg
ICAgICAgICAgIGlmIChtYXhfZnJlZSA9PSBQQVNfQklURklUX01BWF9GUkVFX0VNUFRZKSB7Cisg
ICAgICAgICAgICAgICAgcGFzX2xvZygiJXA6JXU6IGZvdW5kIGVtcHR5IHBhZ2UgdGhhdCBpcyBu
b3QgZGVhZCB3aGVuIHRha2luZyBsYXN0IGVtcHR5LlxuIik7CisgICAgICAgICAgICAgICAgUEFT
X0FTU0VSVChtYXhfZnJlZSAhPSBQQVNfQklURklUX01BWF9GUkVFX0VNUFRZKTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKG51bV9ncmFudWxlcyA+IDEp
IHsKKyAgICAgICAgICAgIHBhc19mcmVlX2dyYW51bGVzIGZyZWVfZ3JhbnVsZXM7CisgICAgICAg
ICAgICBwYXNfcGFnZV9ncmFudWxlX3VzZV9jb3VudCogdXNlX2NvdW50czsKKyAgICAgICAgICAg
IAorICAgICAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICAgICAgcGFzX2xvZygiRGVj
b21taXR0aW5nIGdyYW51bGVzIGZvciBwYWdlICVwXG4iLCBwYWdlKTsKKyAgICAgICAgICAgIHVz
ZV9jb3VudHMgPSBwYXNfYml0Zml0X3BhZ2VfZ2V0X2dyYW51bGVfdXNlX2NvdW50cyhwYWdlLCAq
cGFnZV9jb25maWcpOworICAgICAgICAgICAgCisgICAgICAgICAgICBwYXNfZnJlZV9ncmFudWxl
c19jb21wdXRlX2FuZF9tYXJrX2RlY29tbWl0dGVkKAorICAgICAgICAgICAgICAgICZmcmVlX2dy
YW51bGVzLCB1c2VfY291bnRzLCBudW1fZ3JhbnVsZXMpOworCisgICAgICAgICAgICBpZiAocGFn
ZV9pc19kZWFkICE9ICgoZnJlZV9ncmFudWxlcy5udW1fYWxyZWFkeV9kZWNvbW1pdHRlZF9ncmFu
dWxlcyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJlZV9ncmFudWxlcy5u
dW1fZnJlZV9ncmFudWxlcykgPT0gbnVtX2dyYW51bGVzKSkgeworICAgICAgICAgICAgICAgIHBh
c19sb2coInBhZ2VfaXNfZGVhZCA9ICVkXG4iLCBwYWdlX2lzX2RlYWQpOworICAgICAgICAgICAg
ICAgIHBhc19sb2coImZyZWVfZ3JhbnVsZXMubnVtX2ZyZWVfZ3JhbnVsZXMgPSAlenVcbiIsCisg
ICAgICAgICAgICAgICAgICAgICAgICBmcmVlX2dyYW51bGVzLm51bV9mcmVlX2dyYW51bGVzKTsK
KyAgICAgICAgICAgICAgICBwYXNfbG9nKCJmcmVlX2dyYW51bGVzLm51bV9hbHJlYWR5X2RlY29t
bWl0dGVkX2dyYW51bGVzID0gJXp1XG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgZnJlZV9n
cmFudWxlcy5udW1fYWxyZWFkeV9kZWNvbW1pdHRlZF9ncmFudWxlcyk7CisgICAgICAgICAgICAg
ICAgUEFTX0FTU0VSVCghInBhZ2VfaXNfZGVhZCBkb2VzIG5vdCBtYXRjaCBmcmVlX2dyYW51bGVz
Iik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFBBU19BU1NFUlQo
ZnJlZV9ncmFudWxlcy5udW1fZnJlZV9ncmFudWxlcyA8PSBudW1fZ3JhbnVsZXMpOworCisgICAg
ICAgICAgICBpZiAoIWZyZWVfZ3JhbnVsZXMubnVtX2ZyZWVfZ3JhbnVsZXMpIHsKKyAgICAgICAg
ICAgICAgICBwYXNfbG9ja191bmxvY2soJnZpZXctPm93bmVyc2hpcF9sb2NrKTsKKyAgICAgICAg
ICAgICAgICBwYXNfZGVmZXJyZWRfZGVjb21taXRfbG9nX3VubG9ja19hZnRlcl9hYm9ydGVkX2Fk
ZChkZWNvbW1pdF9sb2csIGNvbW1pdF9sb2NrKTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKHBhZ2VfaXNfZGVh
ZCkKKyAgICAgICAgICAgICAgICB2aWV3LT5pc19vd25lZCA9IGZhbHNlOworICAgICAgICAgICAg
CisgICAgICAgICAgICAvKiBXZSBoYXZlIHRvIHJlbGVhc2UgdGhlIG93bmVyc2hpcCBsb2NrIHRv
IGRlY29tbWl0IGJlY2F1c2UgZGVjb21taXQgd2FudHMgdGhlIGhlYXAKKyAgICAgICAgICAgICAg
IGxvY2suIFRoYXQncyBzYWZlIHNpbmNlIHdlJ3ZlIGFscmVhZHkgbWFya2VkIHRoZSBzdHVmZiBk
ZWNvbW1pdHRlZC4gVGhhdCBtZWFucworICAgICAgICAgICAgICAgdGhhdCBhbnkgYXR0ZW1wdCB0
byB1c2UgdGhvc2UgZ3JhbnVsZXMgd2lsbCBoYXZlIHRvIGdyYWIgdGhlIGNvbW1pdCBsb2NrLCB3
aGljaAorICAgICAgICAgICAgICAgd2UgaG9sZC4gKi8KKyAgICAgICAgICAgIHBhc19sb2NrX3Vu
bG9jaygmdmlldy0+b3duZXJzaGlwX2xvY2spOworICAgICAgICAgICAgCisgICAgICAgICAgICBp
ZiAodmVyYm9zZSkKKyAgICAgICAgICAgICAgICBwYXNfbG9nKCJEb2luZyBmcmVlIGdyYW51bGUg
ZGVjb21taXQgd2l0aCBsb2NrICVwXG4iLCBjb21taXRfbG9jayk7CisgICAgICAgICAgICBwYXNf
ZnJlZV9ncmFudWxlc19kZWNvbW1pdF9hZnRlcl9sb2NraW5nX3JhbmdlKAorICAgICAgICAgICAg
ICAgICZmcmVlX2dyYW51bGVzLCAmcGFnZS0+YmFzZSwgZGVjb21taXRfbG9nLCBjb21taXRfbG9j
aywgJnBhZ2VfY29uZmlnLT5iYXNlLAorICAgICAgICAgICAgICAgIGhlYXBfbG9ja19ob2xkX21v
ZGUpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAg
ICAgICBwYXNfbG9nKCJEb25lLCBzdWNjZXNzIVxuIik7CisgICAgICAgICAgICAKKyAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgIGlmICghcGFnZV9pc19kZWFkKSB7CisgICAgICAgICAgICAg
ICAgcGFzX2xvY2tfdW5sb2NrKCZ2aWV3LT5vd25lcnNoaXBfbG9jayk7CisgICAgICAgICAgICAg
ICAgcGFzX2RlZmVycmVkX2RlY29tbWl0X2xvZ191bmxvY2tfYWZ0ZXJfYWJvcnRlZF9hZGQoZGVj
b21taXRfbG9nLCBjb21taXRfbG9jayk7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgIC8qIFdlIGRvIHRoaXMgd2hpbGUgaG9sZGluZyBib3Ro
IGxvY2tzLiBXaGVuIHdlIHJlbGVhc2UgdGhlIG93bmVyc2hpcCBsb2NrLCB0aGVuIGlmIHNvbWVv
bmUKKyAgICAgICAgICAgICAgIGVsc2UgZ2V0cyBpdCwgdGhleSB3aWxsIGltbWVkaWF0ZWx5IHJl
bGVhc2UgaXQgdG8gdHJ5IHRvIGNvbXBldGUgZm9yIHRoZSBjb21taXQgbG9jaywKKyAgICAgICAg
ICAgICAgIHdoaWNoIHdlIGhvbGQuICovCisgICAgICAgICAgICB2aWV3LT5pc19vd25lZCA9IGZh
bHNlOworCisgICAgICAgICAgICAvKiBBbmQgd2UgaGF2ZSB0byByZWxlYXNlIHRoZSBvd25lcnNo
aXAgbG9jayBiZWNhdXNlIGRlY29tbWl0dGluZyBtYXkgbmVlZCB0byBob2xkIHRoZSBoZWFwCisg
ICAgICAgICAgICAgICBsb2NrLCBhbmQgdGhlIGhlYXAgbG9jayBpcyBvdXRlciB0byB0aGUgb3du
ZXJzaGlwIGxvY2suICovCisgICAgICAgICAgICBwYXNfbG9ja191bmxvY2soJnZpZXctPm93bmVy
c2hpcF9sb2NrKTsKKworICAgICAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICAgICAg
cGFzX2xvZygiRGVjb21pdHRpbmcgcGFnZSAlcFxuIiwgcGFnZSk7CisKKyAgICAgICAgICAgIHBh
c19kZWZlcnJlZF9kZWNvbW1pdF9sb2dfYWRkX2FscmVhZHlfbG9ja2VkKAorICAgICAgICAgICAg
ICAgIGRlY29tbWl0X2xvZywKKyAgICAgICAgICAgICAgICBwYXNfdmlydHVhbF9yYW5nZV9jcmVh
dGUoYmFzZSwgYmFzZSArIHBhZ2VfY29uZmlnLT5iYXNlLnBhZ2Vfc2l6ZSwgY29tbWl0X2xvY2sp
LAorICAgICAgICAgICAgICAgIGhlYXBfbG9ja19ob2xkX21vZGUpOworICAgICAgICB9CisgICAg
ICAgIAorICAgICAgICBwYXNfdmVyc2lvbmVkX2ZpZWxkX3RyeV93cml0ZSgmZGlyZWN0b3J5LT5s
YXN0X2VtcHR5X3BsdXNfb25lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBsYXN0X2VtcHR5X3BsdXNfb25lX3ZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbmRleCk7CisgICAgICAgIAorICAgICAgICBpZiAocGFnZV9pc19kZWFkKQor
ICAgICAgICAgICAgcGFnZV9jb25maWctPmJhc2UuZGVzdHJveV9wYWdlX2hlYWRlcigmcGFnZS0+
YmFzZSwgaGVhcF9sb2NrX2hvbGRfbW9kZSk7CisKKyAgICAgICAgUEFTX0FTU0VSVChwYXNfYml0
Zml0X2RpcmVjdG9yeV9kb2VzX3NoYXJpbmcoZGlyZWN0b3J5KSk7CisgICAgICAgIAorICAgICAg
ICBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfZGlkX2NyZWF0ZV9kZWx0YSgKKyAgICAgICAgICAgICZw
YXNfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX3Bvb2wsCisgICAgICAgICAgICBwYXNfcGFnZV9zaGFy
aW5nX3BhcnRpY2lwYW50X2NyZWF0ZSgKKyAgICAgICAgICAgICAgICBkaXJlY3RvcnksIHBhc19w
YWdlX3NoYXJpbmdfcGFydGljaXBhbnRfYml0Zml0X2RpcmVjdG9yeSkpOworICAgICAgICAKKyAg
ICAgICAgcmV0dXJuIHBhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtlX3N1Y2Nlc3M7CisgICAgfQor
CisgICAgcGFzX3ZlcnNpb25lZF9maWVsZF90cnlfd3JpdGUoJmRpcmVjdG9yeS0+bGFzdF9lbXB0
eV9wbHVzX29uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXN0X2VtcHR5
X3BsdXNfb25lX3ZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDApOwor
ICAgIAorICAgIHJldHVybiBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9ub25lX2F2YWlsYWJs
ZTsKK30KKwordm9pZCBwYXNfYml0Zml0X2RpcmVjdG9yeV9kdW1wX3JlZmVyZW5jZSgKKyAgICBw
YXNfYml0Zml0X2RpcmVjdG9yeSogZGlyZWN0b3J5LCBwYXNfc3RyZWFtKiBzdHJlYW0pCit7Cisg
ICAgcGFzX3N0cmVhbV9wcmludGYoCisgICAgICAgIHN0cmVhbSwgIiVwKGJpdGZpdF9kaXJlY3Rv
cnksICVzKSIsCisgICAgICAgIGRpcmVjdG9yeSwgcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19raW5k
X2dldF9zdHJpbmcoZGlyZWN0b3J5LT5jb25maWdfa2luZCkpOworfQorCit2b2lkIHBhc19iaXRm
aXRfZGlyZWN0b3J5X2R1bXBfZm9yX3NwZWN0cnVtKHBhc19zdHJlYW0qIHN0cmVhbSwgdm9pZCog
ZGlyZWN0b3J5KQoreworICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5X2R1bXBfcmVmZXJlbmNlKGRp
cmVjdG9yeSwgc3RyZWFtKTsKK30KKwogI2VuZGlmIC8qIExJQlBBU19FTkFCTEVEICovCkluZGV4
OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2RpcmVjdG9yeS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRm
aXRfZGlyZWN0b3J5LmgJKHJldmlzaW9uIDI3OTk2NCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfZGlyZWN0b3J5LmgJKHdvcmtpbmcgY29weSkKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChjKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAyMC0yMDIxIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjYsMjYg
KzI2LDMwIEBACiAjaWZuZGVmIFBBU19CSVRGSVRfRElSRUNUT1JZX0gKICNkZWZpbmUgUEFTX0JJ
VEZJVF9ESVJFQ1RPUllfSAogCi0jaW5jbHVkZSAicGFzX2JpdGZpdF9kaXJlY3Rvcnlfa2luZC5o
IgogI2luY2x1ZGUgInBhc19iaXRmaXRfbWF4X2ZyZWUuaCIKICNpbmNsdWRlICJwYXNfYml0Zml0
X3BhZ2VfY29uZmlnX2tpbmQuaCIKICNpbmNsdWRlICJwYXNfYml0Zml0X3ZpZXdfYW5kX2luZGV4
LmgiCiAjaW5jbHVkZSAicGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9zaXplX2NsYXNzX3B0ci5o
IgogI2luY2x1ZGUgInBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfdmlld19wdHIuaCIKICNpbmNs
dWRlICJwYXNfaGVhcF9zdW1tYXJ5LmgiCisjaW5jbHVkZSAicGFzX3BhZ2Vfc2hhcmluZ19wYXJ0
aWNpcGFudC5oIgogI2luY2x1ZGUgInBhc19zZWdtZW50ZWRfdmVjdG9yLmgiCiAjaW5jbHVkZSAi
cGFzX3ZlcnNpb25lZF9maWVsZC5oIgogCiBQQVNfQkVHSU5fRVhURVJOX0M7CiAKIHN0cnVjdCBw
YXNfYml0Zml0X2RpcmVjdG9yeTsKLXN0cnVjdCBwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNz
Oworc3RydWN0IHBhc19iaXRmaXRfZGlyZWN0b3J5X2JpdHZlY3Rvcl9zZWdtZW50Oworc3RydWN0
IHBhc19iaXRmaXRfc2l6ZV9jbGFzczsKIHN0cnVjdCBwYXNfYml0Zml0X3BhZ2U7CiBzdHJ1Y3Qg
cGFzX2JpdGZpdF92aWV3Oworc3RydWN0IHBhc19zZWdyZWdhdGVkX2hlYXA7CiB0eXBlZGVmIHN0
cnVjdCBwYXNfYml0Zml0X2RpcmVjdG9yeSBwYXNfYml0Zml0X2RpcmVjdG9yeTsKLXR5cGVkZWYg
c3RydWN0IHBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3MgcGFzX2JpdGZpdF9nbG9iYWxfc2l6
ZV9jbGFzczsKK3R5cGVkZWYgc3RydWN0IHBhc19iaXRmaXRfZGlyZWN0b3J5X2JpdHZlY3Rvcl9z
ZWdtZW50IHBhc19iaXRmaXRfZGlyZWN0b3J5X2JpdHZlY3Rvcl9zZWdtZW50OwordHlwZWRlZiBz
dHJ1Y3QgcGFzX2JpdGZpdF9zaXplX2NsYXNzIHBhc19iaXRmaXRfc2l6ZV9jbGFzczsKIHR5cGVk
ZWYgc3RydWN0IHBhc19iaXRmaXRfcGFnZSBwYXNfYml0Zml0X3BhZ2U7CiB0eXBlZGVmIHN0cnVj
dCBwYXNfYml0Zml0X3ZpZXcgcGFzX2JpdGZpdF92aWV3OwordHlwZWRlZiBzdHJ1Y3QgcGFzX3Nl
Z3JlZ2F0ZWRfaGVhcCBwYXNfc2VncmVnYXRlZF9oZWFwOwogCiAjZGVmaW5lIFBBU19CSVRGSVRf
RElSRUNUT1JZX1ZFUkJPU0VfTUFYX0ZSRUUgZmFsc2UKIApAQCAtNTcsMTkgKzYxLDM1IEBAIFBB
U19ERUNMQVJFX1NFR01FTlRFRF9WRUNUT1IocGFzX2JpdGZpdF8KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF92aWV3X3B0ciwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgOCk7CiAKK3N0cnVjdCBwYXNfYml0Zml0X2RpcmVjdG9yeV9i
aXR2ZWN0b3Jfc2VnbWVudCB7CisgICAgdW5zaWduZWQgZW1wdHlfYml0czsKK307CisKKyNkZWZp
bmUgUEFTX0JJVEZJVF9ESVJFQ1RPUllfQklUVkVDVE9SX1NFR01FTlRfSU5JVElBTElaRVIgXAor
ICAgICgocGFzX2JpdGZpdF9kaXJlY3RvcnlfYml0dmVjdG9yX3NlZ21lbnQpeyBcCisgICAgICAg
ICAuZW1wdHlfYml0cyA9IDAsIFwKKyAgICAgfSkKKworUEFTX0RFQ0xBUkVfU0VHTUVOVEVEX1ZF
Q1RPUihwYXNfYml0Zml0X2RpcmVjdG9yeV9zZWdtZW50ZWRfYml0dmVjdG9ycywKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcGFzX2JpdGZpdF9kaXJlY3RvcnlfYml0dmVjdG9yX3NlZ21l
bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQpOworCiBzdHJ1Y3QgUEFTX0FMSUdO
RUQoc2l6ZW9mKHBhc192ZXJzaW9uZWRfZmllbGQpKSBwYXNfYml0Zml0X2RpcmVjdG9yeSB7CiAg
ICAgcGFzX3ZlcnNpb25lZF9maWVsZCBmaXJzdF91bnByb2Nlc3NlZF9mcmVlOwogICAgIHBhc192
ZXJzaW9uZWRfZmllbGQgZmlyc3RfZW1wdHk7CisgICAgcGFzX3ZlcnNpb25lZF9maWVsZCBsYXN0
X2VtcHR5X3BsdXNfb25lOyAvKiBaZXJvIG1lYW5zIHRoZXJlIGFyZW4ndCBhbnkuICovCisgICAg
cGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcDsKKyAgICBwYXNfYml0Zml0X2RpcmVjdG9yeV9zZWdt
ZW50ZWRfYml0dmVjdG9ycyBiaXR2ZWN0b3JzOwogICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5X21h
eF9mcmVlX3ZlY3RvciBtYXhfZnJlZXM7CiAgICAgcGFzX2JpdGZpdF9kaXJlY3Rvcnlfdmlld192
ZWN0b3Igdmlld3M7CisgICAgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9wYXlsb2FkIHBo
eXNpY2FsX3NoYXJpbmdfcGF5bG9hZDsKICAgICBwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X3Np
emVfY2xhc3NfcHRyIGxhcmdlc3Rfc2l6ZV9jbGFzczsKLSAgICBwYXNfYml0Zml0X2RpcmVjdG9y
eV9raW5kIGRpcmVjdG9yeV9raW5kIDogODsKICAgICBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tp
bmQgY29uZmlnX2tpbmQgOiA4OwogfTsKIAogUEFTX0FQSSB2b2lkIHBhc19iaXRmaXRfZGlyZWN0
b3J5X2NvbnN0cnVjdChwYXNfYml0Zml0X2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfYml0Zml0X2RpcmVjdG9yeV9r
aW5kIGRpcmVjdG9yeV9raW5kLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwYXNfYml0Zml0X3BhZ2VfY29uZmlnKiBjb25maWcpOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfYml0Zml0X3BhZ2VfY29uZmlnKiBjb25m
aWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdy
ZWdhdGVkX2hlYXAqIGhlYXApOwogCiBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIHBhc19iaXRmaXRf
ZGlyZWN0b3J5X3NpemUocGFzX2JpdGZpdF9kaXJlY3RvcnkqIGRpcmVjdG9yeSkKIHsKQEAgLTE5
NSw3ICsyMTUsNiBAQCBzdGF0aWMgaW5saW5lIHBhc19iaXRmaXRfdmlldyogcGFzX2JpdGZpCiAg
ICBzaXplX2NsYXNzJ3MgdmVyc2lvbiBvZiB0aGlzIGZ1bmN0aW9uLiAqLwogUEFTX0FQSSBwYXNf
Yml0Zml0X3ZpZXdfYW5kX2luZGV4CiBwYXNfYml0Zml0X2RpcmVjdG9yeV9nZXRfZmlyc3RfZnJl
ZV92aWV3KHBhc19iaXRmaXRfZGlyZWN0b3J5KiBkaXJlY3RvcnksCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3MqIHNp
emVfY2xhc3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2ln
bmVkIHN0YXJ0X2luZGV4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB1bnNpZ25lZCBzaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwYXNfYml0Zml0X3BhZ2VfY29uZmlnKiBwYWdlX2NvbmZpZyk7CkBAIC0yMTQsNiArMjMzLDM3
IEBAIFBBU19BUEkgYm9vbCBwYXNfYml0Zml0X2RpcmVjdG9yeV9mb3JfZWEKICAgICBwYXNfYml0
Zml0X2RpcmVjdG9yeV9mb3JfZWFjaF9saXZlX29iamVjdF9jYWxsYmFjayBjYWxsYmFjaywKICAg
ICB2b2lkKiBhcmcpOwogCitQQVNfQVBJIGJvb2wgcGFzX2JpdGZpdF9kaXJlY3RvcnlfZG9lc19z
aGFyaW5nKHBhc19iaXRmaXRfZGlyZWN0b3J5KiBkaXJlY3RvcnkpOworCitQQVNfQVBJIHVpbnQ2
NF90IHBhc19iaXRmaXRfZGlyZWN0b3J5X2dldF91c2VfZXBvY2gocGFzX2JpdGZpdF9kaXJlY3Rv
cnkqIGRpcmVjdG9yeSk7CisKK1BBU19BUEkgYm9vbCBwYXNfYml0Zml0X2RpcmVjdG9yeV9nZXRf
ZW1wdHlfYml0X2F0X2luZGV4KAorICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5KiBkaXJlY3Rvcnks
CisgICAgc2l6ZV90IGluZGV4KTsKKworLyogUmV0dXJucyB3aGV0aGVyIHdlIGNoYW5nZWQgdGhl
IHZhbHVlLiAqLworUEFTX0FQSSBib29sIHBhc19iaXRmaXRfZGlyZWN0b3J5X3NldF9lbXB0eV9i
aXRfYXRfaW5kZXgoCisgICAgcGFzX2JpdGZpdF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKKyAgICBz
aXplX3QgaW5kZXgsCisgICAgYm9vbCB2YWx1ZSk7CisKK1BBU19BUEkgdm9pZCBwYXNfYml0Zml0
X2RpcmVjdG9yeV92aWV3X2RpZF9iZWNvbWVfZW1wdHlfYXRfaW5kZXgoCisgICAgcGFzX2JpdGZp
dF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKKyAgICBzaXplX3QgaW5kZXgpOworUEFTX0FQSSB2b2lk
IHBhc19iaXRmaXRfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbXB0eSgKKyAgICBwYXNfYml0
Zml0X2RpcmVjdG9yeSogZGlyZWN0b3J5LAorICAgIHBhc19iaXRmaXRfdmlldyogdmlldyk7CisK
K1BBU19BUEkgcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2VfcmVzdWx0IHBhc19iaXRmaXRfZGly
ZWN0b3J5X3Rha2VfbGFzdF9lbXB0eSgKKyAgICBwYXNfYml0Zml0X2RpcmVjdG9yeSogZGlyZWN0
b3J5LAorICAgIHBhc19kZWZlcnJlZF9kZWNvbW1pdF9sb2cqIGRlY29tbWl0X2xvZywKKyAgICBw
YXNfbG9ja19ob2xkX21vZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSk7CisKK1BBU19BUEkgdm9pZCBw
YXNfYml0Zml0X2RpcmVjdG9yeV9kdW1wX3JlZmVyZW5jZSgKKyAgICBwYXNfYml0Zml0X2RpcmVj
dG9yeSogZGlyZWN0b3J5LCBwYXNfc3RyZWFtKiBzdHJlYW0pOworCitQQVNfQVBJIHZvaWQgcGFz
X2JpdGZpdF9kaXJlY3RvcnlfZHVtcF9mb3Jfc3BlY3RydW0ocGFzX3N0cmVhbSogc3RyZWFtLCB2
b2lkKiBkaXJlY3RvcnkpOworCiBQQVNfRU5EX0VYVEVSTl9DOwogCiAjZW5kaWYgLyogUEFTX0JJ
VEZJVF9ESVJFQ1RPUllfSCAqLwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX2JpdGZpdF9kaXJlY3RvcnlfYW5kX2luZGV4LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9kaXJlY3RvcnlfYW5kX2luZGV4
LmgJKHJldmlzaW9uIDI3OTk2NCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19iaXRmaXRfZGlyZWN0b3J5X2FuZF9pbmRleC5oCShub25leGlzdGVudCkKQEAgLTEsNTcg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0j
aWZuZGVmIFBBU19CSVRGSVRfRElSRUNUT1JZX0FORF9JTkRFWF9ICi0jZGVmaW5lIFBBU19CSVRG
SVRfRElSRUNUT1JZX0FORF9JTkRFWF9ICi0KLSNpbmNsdWRlICJwYXNfYml0Zml0X2RpcmVjdG9y
eV9raW5kLmgiCi0KLVBBU19CRUdJTl9FWFRFUk5fQzsKLQotc3RydWN0IHBhc19iaXRmaXRfZGly
ZWN0b3J5Owotc3RydWN0IHBhc19iaXRmaXRfZGlyZWN0b3J5X2FuZF9pbmRleDsKLXR5cGVkZWYg
c3RydWN0IHBhc19iaXRmaXRfZGlyZWN0b3J5IHBhc19iaXRmaXRfZGlyZWN0b3J5OwotdHlwZWRl
ZiBzdHJ1Y3QgcGFzX2JpdGZpdF9kaXJlY3RvcnlfYW5kX2luZGV4IHBhc19iaXRmaXRfZGlyZWN0
b3J5X2FuZF9pbmRleDsKLQotc3RydWN0IHBhc19iaXRmaXRfZGlyZWN0b3J5X2FuZF9pbmRleCB7
Ci0gICAgcGFzX2JpdGZpdF9kaXJlY3RvcnkqIGRpcmVjdG9yeTsKLSAgICB1bnNpZ25lZCBpbmRl
eDsKLSAgICBwYXNfYml0Zml0X2RpcmVjdG9yeV9raW5kIGtpbmQ7Ci19OwotCi1zdGF0aWMgaW5s
aW5lIHBhc19iaXRmaXRfZGlyZWN0b3J5X2FuZF9pbmRleCBwYXNfYml0Zml0X2RpcmVjdG9yeV9h
bmRfaW5kZXhfY3JlYXRlKAotICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5KiBkaXJlY3RvcnksIHVu
c2lnbmVkIGluZGV4LCBwYXNfYml0Zml0X2RpcmVjdG9yeV9raW5kIGtpbmQpCi17Ci0gICAgcGFz
X2JpdGZpdF9kaXJlY3RvcnlfYW5kX2luZGV4IHJlc3VsdDsKLSAgICByZXN1bHQuZGlyZWN0b3J5
ID0gZGlyZWN0b3J5OwotICAgIHJlc3VsdC5pbmRleCA9IGluZGV4OwotICAgIHJlc3VsdC5raW5k
ID0ga2luZDsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi1QQVNfRU5EX0VYVEVSTl9DOwotCi0j
ZW5kaWYgLyogUEFTX0JJVEZJVF9ESVJFQ1RPUllfQU5EX0lOREVYX0ggKi8KLQpJbmRleDogU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9kaXJlY3RvcnlfaW5saW5l
cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19i
aXRmaXRfZGlyZWN0b3J5X2lubGluZXMuaAkocmV2aXNpb24gMjc5OTY0KQorKysgU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9kaXJlY3RvcnlfaW5saW5lcy5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yNiwyNyArMjYsMTEgQEAKICNpZm5kZWYgUEFTX0JJVEZJVF9ESVJF
Q1RPUllfSU5MSU5FU19ICiAjZGVmaW5lIFBBU19CSVRGSVRfRElSRUNUT1JZX0lOTElORVNfSAog
Ci0jaW5jbHVkZSAicGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeS5oIgogI2luY2x1ZGUgInBh
c19iaXRmaXRfZGlyZWN0b3J5LmgiCi0jaW5jbHVkZSAicGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0
b3J5LmgiCiAjaW5jbHVkZSAicGFzX2JpdGZpdF9wYWdlX2NvbmZpZy5oIgogCiBQQVNfQkVHSU5f
RVhURVJOX0M7CiAKLXN0YXRpYyBpbmxpbmUgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5Kgot
cGFzX2JpdGZpdF9kaXJlY3RvcnlfZ2V0X2dsb2JhbChwYXNfYml0Zml0X2RpcmVjdG9yeSogZGly
ZWN0b3J5KQotewotICAgIHN3aXRjaCAoZGlyZWN0b3J5LT5kaXJlY3Rvcnlfa2luZCkgewotICAg
IGNhc2UgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X2tpbmQ6Ci0gICAgICAgIHJldHVybiAo
cGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5KilkaXJlY3Rvcnk7Ci0gICAgY2FzZSBwYXNfYml0
Zml0X2JpYXNpbmdfZGlyZWN0b3J5X2tpbmQ6Ci0gICAgICAgIHJldHVybiBwYXNfY29tcGFjdF9i
aXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgKLSAgICAgICAgICAgICYo
KHBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkqKWRpcmVjdG9yeSktPnBhcmVudF9nbG9iYWwp
OwotICAgIH0KLSAgICBQQVNfQVNTRVJUKCEiU2hvdWxkIG5vdCBiZSByZWFjaGVkIik7Ci0gICAg
cmV0dXJuIE5VTEw7Ci19Ci0KIHR5cGVkZWYgc3RydWN0IHsKICAgICB1bnNpZ25lZCBudW1fYml0
czsKIH0gcGFzX2JpdGZpdF9kaXJlY3RvcnlfZmluZF9maXJzdF9mcmVlX2Zvcl9udW1fYml0c19p
dGVyYXRlX2RhdGE7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
Yml0Zml0X2RpcmVjdG9yeV9raW5kLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9kaXJlY3Rvcnlfa2luZC5oCShyZXZpc2lvbiAyNzk5
NjQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2RpcmVj
dG9yeV9raW5kLmgJKG5vbmV4aXN0ZW50KQpAQCAtMSw2NCArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChjKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5kZWYgUEFTX0JJVEZJVF9ESVJF
Q1RPUllfS0lORF9ICi0jZGVmaW5lIFBBU19CSVRGSVRfRElSRUNUT1JZX0tJTkRfSAotCi0jaW5j
bHVkZSAicGFzX3V0aWxzLmgiCi0KLVBBU19CRUdJTl9FWFRFUk5fQzsKLQotLyogQml0Zml0IGRp
cmVjdG9yaWVzIGZvcm0gYSB0eXBlIGhpZXJhcmNoeSBsaWtlIHNvOgotICAgCi0gICAgICAgLSBk
aXJlY3RvcnkKLSAgICAgICAgICAgLSBnbG9iYWwgZGlyZWN0b3J5Ci0gICAgICAgICAgIC0gYmlh
c2luZyBkaXJlY3RvcnkKLSAgIAotICAgT25seSB0aGUgdHlwZXMgYXQgdGhlIGxlYXZlcyBhcmUg
aW5zdGFudGlhYmxlLiBUaGUgcGFzX2JpdGZpdF9kaXJlY3Rvcnlfa2luZCBlbnVtIGlzIGZvcgot
ICAgZGVzY3JpYmluZyB0aGUgaW5zdGFudGlhYmxlIGxlYXZlcy4gKi8KLQotZW51bSBwYXNfYml0
Zml0X2RpcmVjdG9yeV9raW5kIHsKLSAgICBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3Rvcnlfa2lu
ZCwKLSAgICBwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5X2tpbmQKLX07Ci0KLXR5cGVkZWYg
ZW51bSBwYXNfYml0Zml0X2RpcmVjdG9yeV9raW5kIHBhc19iaXRmaXRfZGlyZWN0b3J5X2tpbmQ7
Ci0KLXN0YXRpYyBpbmxpbmUgY29uc3QgY2hhciogcGFzX2JpdGZpdF9kaXJlY3Rvcnlfa2luZF9n
ZXRfc3RyaW5nKHBhc19iaXRmaXRfZGlyZWN0b3J5X2tpbmQga2luZCkKLXsKLSAgICBzd2l0Y2gg
KGtpbmQpIHsKLSAgICBjYXNlIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9raW5kOgotICAg
ICAgICByZXR1cm4gImJpdGZpdF9nbG9iYWxfZGlyZWN0b3J5IjsKLSAgICBjYXNlIHBhc19iaXRm
aXRfYmlhc2luZ19kaXJlY3Rvcnlfa2luZDoKLSAgICAgICAgcmV0dXJuICJiaXRmaXRfYmlhc2lu
Z19kaXJlY3RvcnkiOwotICAgIH0KLSAgICBQQVNfQVNTRVJUKCEiU2hvdWxkIG5vdCBiZSByZWFj
aGVkIik7Ci0gICAgcmV0dXJuIE5VTEw7Ci19Ci0KLVBBU19FTkRfRVhURVJOX0M7Ci0KLSNlbmRp
ZiAvKiBQQVNfQklURklUX0RJUkVDVE9SWV9LSU5EX0ggKi8KLQpJbmRleDogU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5LmMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9nbG9i
YWxfZGlyZWN0b3J5LmMJKHJldmlzaW9uIDI3OTk2NCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeS5jCShub25leGlzdGVudCkK
QEAgLTEsNDAzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMjAtMjAyMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQot
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKLSAqLwotCi0jaW5jbHVkZSAicGFzX2NvbmZpZy5oIgotCi0jaWYgTElCUEFTX0VOQUJM
RUQKLQotI2luY2x1ZGUgInBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeS5oIgotCi0jaW5jbHVk
ZSAicGFzX2JpdGZpdF9wYWdlLmgiCi0jaW5jbHVkZSAicGFzX2JpdGZpdF92aWV3X2lubGluZXMu
aCIKLSNpbmNsdWRlICJwYXNfZGVmZXJyZWRfZGVjb21taXRfbG9nLmgiCi0jaW5jbHVkZSAicGFz
X2ZyZWVfZ3JhbnVsZXMuaCIKLSNpbmNsdWRlICJwYXNfcGFnZV9zaGFyaW5nX3Bvb2wuaCIKLSNp
bmNsdWRlICJwYXNfc2VncmVnYXRlZF9oZWFwLmgiCi0jaW5jbHVkZSAicGFzX3N0cmVhbS5oIgot
I2luY2x1ZGUgInBhc19zdWJwYWdlX21hcC5oIgotCi1ib29sIHBhc19iaXRmaXRfZ2xvYmFsX2Rp
cmVjdG9yeV9jYW5fZXhwbG9kZSA9IHRydWU7Ci1ib29sIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVj
dG9yeV9mb3JjZV9leHBsb2RlID0gZmFsc2U7Ci0KLXZvaWQgcGFzX2JpdGZpdF9nbG9iYWxfZGly
ZWN0b3J5X2NvbnN0cnVjdChwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfYml0Zml0X3Bh
Z2VfY29uZmlnKiBjb25maWcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCkKLXsKLSAgICBwYXNfYml0Zml0X2RpcmVj
dG9yeV9jb25zdHJ1Y3QoJmRpcmVjdG9yeS0+YmFzZSwgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0
b3J5X2tpbmQsIGNvbmZpZyk7Ci0gICAgZGlyZWN0b3J5LT5oZWFwID0gaGVhcDsKLSAgICBwYXNf
Yml0Zml0X2dsb2JhbF9kaXJlY3Rvcnlfc2VnbWVudGVkX2JpdHZlY3RvcnNfY29uc3RydWN0KCZk
aXJlY3RvcnktPmJpdHZlY3RvcnMpOwotICAgIHBhc19jb21wYWN0X2F0b21pY19wYWdlX3NoYXJp
bmdfcG9vbF9wdHJfc3RvcmUoJmRpcmVjdG9yeS0+Ymlhc19zaGFyaW5nX3Bvb2wsIE5VTEwpOwot
ICAgIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfcGF5bG9hZF9jb25zdHJ1Y3QoJmRpcmVj
dG9yeS0+cGh5c2ljYWxfc2hhcmluZ19wYXlsb2FkKTsKLSAgICBkaXJlY3RvcnktPmNvbnRlbnRp
b25fZGlkX3RyaWdnZXJfZXhwbG9zaW9uID0KLSAgICAgICAgcGFzX2JpdGZpdF9nbG9iYWxfZGly
ZWN0b3J5X2Nhbl9leHBsb2RlICYgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X2ZvcmNlX2V4
cGxvZGU7Ci0KLSAgICAvKiBXZSBjb3VsZCBoYXZlIGJlZW4gbGF6eSBhYm91dCB0aGlzIC0gYnV0
IGl0J3MgcHJvYmFibHkgbm90IHN1cGVyIG5lY2Vzc2FyeSBzaW5jZSB0aGUgcG9pbnQKLSAgICAg
ICBvZiBiaXRmaXQgZ2xvYmFsIGRpcmVjdG9yaWVzIGlzIHRoYXQgdGhlcmUgd29uJ3QgYmUgdG9v
IG1hbnkgb2YgdGhlbS4gKi8KLSAgICBpZiAocGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X2Rv
ZXNfc2hhcmluZyhkaXJlY3RvcnkpKSB7Ci0gICAgICAgIHBhc19wYWdlX3NoYXJpbmdfcG9vbF9h
ZGQoCi0gICAgICAgICAgICAmcGFzX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19wb29sLAotICAgICAg
ICAgICAgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9jcmVhdGUoCi0gICAgICAgICAgICAg
ICAgZGlyZWN0b3J5LCBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2JpdGZpdF9kaXJlY3Rv
cnkpKTsKLSAgICB9Ci19Ci0KLWJvb2wgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X2RvZXNf
c2hhcmluZyhwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkqIGRpcmVjdG9yeSkKLXsKLSAgICBy
ZXR1cm4gcGFzX3BhZ2Vfc2hhcmluZ19tb2RlX2RvZXNfc2hhcmluZygKLSAgICAgICAgZGlyZWN0
b3J5LT5oZWFwLT5ydW50aW1lX2NvbmZpZy0+c2hhcmluZ19tb2RlKTsKLX0KLSAgICAKLXVpbnQ2
NF90IHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9nZXRfdXNlX2Vwb2NoKHBhc19iaXRmaXRf
Z2xvYmFsX2RpcmVjdG9yeSogZGlyZWN0b3J5KQotewotICAgIHVpbnRwdHJfdCBsYXN0X2VtcHR5
X3BsdXNfb25lOwotICAgIHNpemVfdCBpbmRleDsKLSAgICBwYXNfYml0Zml0X3BhZ2VfY29uZmln
IGNvbmZpZzsKLQotICAgIGxhc3RfZW1wdHlfcGx1c19vbmUgPSBkaXJlY3RvcnktPmxhc3RfZW1w
dHlfcGx1c19vbmUudmFsdWU7Ci0gICAgY29uZmlnID0gKnBhc19iaXRmaXRfcGFnZV9jb25maWdf
a2luZF9nZXRfY29uZmlnKGRpcmVjdG9yeS0+YmFzZS5jb25maWdfa2luZCk7Ci0KLSAgICBmb3Ig
KGluZGV4ID0gbGFzdF9lbXB0eV9wbHVzX29uZTsgaW5kZXgtLTspIHsKLSAgICAgICAgcGFzX2Jp
dGZpdF92aWV3KiB2aWV3OwotICAgICAgICB1aW50NjRfdCBlcG9jaDsKLQotICAgICAgICAvKiBQ
cm90ZWN0IGFnYWluc3QgdW5zZXQgZXBvY2hzLiAqLwotICAgICAgICBpZiAoIXBhc19iaXRmaXRf
Z2xvYmFsX2RpcmVjdG9yeV9nZXRfZW1wdHlfYml0X2F0X2luZGV4KGRpcmVjdG9yeSwgaW5kZXgp
KQotICAgICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAgdmlldyA9IHBhc19iaXRmaXRfZGly
ZWN0b3J5X2dldF92aWV3KCZkaXJlY3RvcnktPmJhc2UsIGluZGV4KTsKLSAgICAgICAgaWYgKCF2
aWV3KQotICAgICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAgcGFzX2xvY2tfbG9jaygmdmll
dy0+b3duZXJzaGlwX2xvY2spOwotICAgICAgICBlcG9jaCA9IDA7Ci0gICAgICAgIGlmICh2aWV3
LT5pc19vd25lZCkgewotICAgICAgICAgICAgcGFzX2JpdGZpdF9wYWdlKiBwYWdlOwotICAgICAg
ICAgICAgcGFnZSA9IHBhc19iaXRmaXRfcGFnZV9mb3JfYm91bmRhcnkodmlldy0+cGFnZV9ib3Vu
ZGFyeSwgY29uZmlnKTsKLSAgICAgICAgICAgIGlmICghcGFnZS0+bnVtX2xpdmVfYml0cykgewot
ICAgICAgICAgICAgICAgIGVwb2NoID0gcGFnZS0+dXNlX2Vwb2NoOwotICAgICAgICAgICAgICAg
IFBBU19BU1NFUlQoZXBvY2gpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIHBh
c19sb2NrX3VubG9jaygmdmlldy0+b3duZXJzaGlwX2xvY2spOwotCi0gICAgICAgIGlmIChlcG9j
aCkKLSAgICAgICAgICAgIHJldHVybiBlcG9jaDsKLSAgICB9Ci0KLSAgICByZXR1cm4gMDsKLX0K
LQotYm9vbCBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfZ2V0X2VtcHR5X2JpdF9hdF9pbmRl
eCgKLSAgICBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAgICBzaXpl
X3QgaW5kZXgpCi17Ci0gICAgcmV0dXJuIHBhc19iaXR2ZWN0b3JfZ2V0X2Zyb21fd29yZCgKLSAg
ICAgICAgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X3NlZ21lbnRlZF9iaXR2ZWN0b3JzX2dl
dF9wdHJfY2hlY2tlZCgKLSAgICAgICAgICAgICZkaXJlY3RvcnktPmJpdHZlY3RvcnMsIFBBU19C
SVRWRUNUT1JfV09SRF9JTkRFWChpbmRleCkpLT5lbXB0eV9iaXRzLAotICAgICAgICBpbmRleCk7
Ci19Ci0KLS8qIFJldHVybnMgd2hldGhlciB3ZSBjaGFuZ2VkIHRoZSB2YWx1ZS4gKi8KLWJvb2wg
cGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X3NldF9lbXB0eV9iaXRfYXRfaW5kZXgoCi0gICAg
cGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5KiBkaXJlY3RvcnksCi0gICAgc2l6ZV90IGluZGV4
LAotICAgIGJvb2wgdmFsdWUpCi17Ci0gICAgcmV0dXJuIHBhc19iaXR2ZWN0b3Jfc2V0X2F0b21p
Y19pbl93b3JkKAotICAgICAgICAmcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X3NlZ21lbnRl
ZF9iaXR2ZWN0b3JzX2dldF9wdHJfY2hlY2tlZCgKLSAgICAgICAgICAgICZkaXJlY3RvcnktPmJp
dHZlY3RvcnMsIFBBU19CSVRWRUNUT1JfV09SRF9JTkRFWChpbmRleCkpLT5lbXB0eV9iaXRzLAot
ICAgICAgICBpbmRleCwKLSAgICAgICAgdmFsdWUpOwotfQotCi12b2lkIHBhc19iaXRmaXRfZ2xv
YmFsX2RpcmVjdG9yeV92aWV3X2RpZF9iZWNvbWVfZW1wdHlfYXRfaW5kZXgoCi0gICAgcGFzX2Jp
dGZpdF9nbG9iYWxfZGlyZWN0b3J5KiBkaXJlY3RvcnksCi0gICAgc2l6ZV90IGluZGV4KQotewot
ICAgIGlmICghcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X3NldF9lbXB0eV9iaXRfYXRfaW5k
ZXgoZGlyZWN0b3J5LCBpbmRleCwgdHJ1ZSkpCi0gICAgICAgIHJldHVybjsKLQotICAgIC8qIElm
IHdlIGFscmVhZHkga25ldyBhYm91dCBlbXB0aWVzLCB0aGVuIHdlIGhhdmUgbm90aGluZyBtb3Jl
IHRvIGRvLiAqLwotICAgIGlmIChwYXNfdmVyc2lvbmVkX2ZpZWxkX21heGltaXplKCZkaXJlY3Rv
cnktPmxhc3RfZW1wdHlfcGx1c19vbmUsIGluZGV4ICsgMSkpCi0gICAgICAgIHJldHVybjsKLQot
ICAgIGlmICghcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X2RvZXNfc2hhcmluZyhkaXJlY3Rv
cnkpKQotICAgICAgICByZXR1cm47Ci0gICAgCi0gICAgcGFzX3BhZ2Vfc2hhcmluZ19wb29sX2Rp
ZF9jcmVhdGVfZGVsdGEoCi0gICAgICAgICZwYXNfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX3Bvb2ws
Ci0gICAgICAgIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfY3JlYXRlKAotICAgICAgICAg
ICAgZGlyZWN0b3J5LCBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2JpdGZpdF9kaXJlY3Rv
cnkpKTsKLX0KLQotdm9pZCBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3Rvcnlfdmlld19kaWRfYmVj
b21lX2VtcHR5KAotICAgIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSogZGlyZWN0b3J5LAot
ICAgIHBhc19iaXRmaXRfdmlldyogdmlldykKLXsKLSAgICBQQVNfVEVTVElOR19BU1NFUlQoCi0g
ICAgICAgIHBhc19jb21wYWN0X2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9u
dWxsKCZ2aWV3LT5nbG9iYWxfZGlyZWN0b3J5KQotICAgICAgICA9PSBkaXJlY3RvcnkpOwotICAg
IHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV92aWV3X2RpZF9iZWNvbWVfZW1wdHlfYXRfaW5k
ZXgoCi0gICAgICAgIGRpcmVjdG9yeSwgdmlldy0+aW5kZXhfaW5fZ2xvYmFsKTsKLX0KLQotcGFz
X3BhZ2Vfc2hhcmluZ19wb29sX3Rha2VfcmVzdWx0IHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9y
eV90YWtlX2xhc3RfZW1wdHkoCi0gICAgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5KiBnbG9i
YWxfZGlyZWN0b3J5LAotICAgIHBhc19kZWZlcnJlZF9kZWNvbW1pdF9sb2cqIGRlY29tbWl0X2xv
ZywKLSAgICBwYXNfbG9ja19ob2xkX21vZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSkKLXsKLSAgICBz
dGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7Ci0gICAgCi0gICAgcGFzX2JpdGZpdF9k
aXJlY3RvcnkqIGRpcmVjdG9yeTsKLSAgICBwYXNfdmVyc2lvbmVkX2ZpZWxkIGxhc3RfZW1wdHlf
cGx1c19vbmVfdmFsdWU7Ci0gICAgc2l6ZV90IGluZGV4OwotICAgIHBhc19iaXRmaXRfcGFnZV9j
b25maWcqIHBhZ2VfY29uZmlnOwotICAgIHNpemVfdCBudW1fZ3JhbnVsZXM7Ci0gICAgYm9vbCB1
c2VzX3N1YnBhZ2VzOwotCi0gICAgZGlyZWN0b3J5ID0gJmdsb2JhbF9kaXJlY3RvcnktPmJhc2U7
Ci0KLSAgICBsYXN0X2VtcHR5X3BsdXNfb25lX3ZhbHVlID0gcGFzX3ZlcnNpb25lZF9maWVsZF9y
ZWFkKCZnbG9iYWxfZGlyZWN0b3J5LT5sYXN0X2VtcHR5X3BsdXNfb25lKTsKLQotICAgIHBhZ2Vf
Y29uZmlnID0gcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19raW5kX2dldF9jb25maWcoZGlyZWN0b3J5
LT5jb25maWdfa2luZCk7Ci0gICAgbnVtX2dyYW51bGVzID0gcGFnZV9jb25maWctPmJhc2UucGFn
ZV9zaXplIC8gcGFnZV9jb25maWctPmJhc2UuZ3JhbnVsZV9zaXplOwotICAgIHVzZXNfc3VicGFn
ZXMgPSBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX3VzZXNfc3VicGFnZXMoKnBhZ2VfY29uZmlnKTsK
LQotICAgIGZvciAoaW5kZXggPSBsYXN0X2VtcHR5X3BsdXNfb25lX3ZhbHVlLnZhbHVlOyBpbmRl
eC0tOykgewotICAgICAgICBwYXNfYml0Zml0X3ZpZXcqIHZpZXc7Ci0gICAgICAgIHBhc19iaXRm
aXRfcGFnZSogcGFnZTsKLSAgICAgICAgdWludHB0cl90IGJhc2U7Ci0gICAgICAgIHBhc19zdWJw
YWdlX21hcF9lbnRyeSogc3VicGFnZV9lbnRyeTsKLSAgICAgICAgcGFzX2xvY2sqIGNvbW1pdF9s
b2NrOwotICAgICAgICBib29sIHBhZ2VfaXNfZGVhZDsKLSAgICAgICAgcGFzX2JpdGZpdF9kaXJl
Y3RvcnlfYW5kX2luZGV4IGRpcmVjdG9yeV9hbmRfaW5kZXg7Ci0gICAgICAgIHBhc19iaXRmaXRf
bWF4X2ZyZWUgbWF4X2ZyZWU7Ci0gICAgICAgIAotICAgICAgICBpZiAoIXBhc19iaXRmaXRfZ2xv
YmFsX2RpcmVjdG9yeV9zZXRfZW1wdHlfYml0X2F0X2luZGV4KGdsb2JhbF9kaXJlY3RvcnksIGlu
ZGV4LCBmYWxzZSkpCi0gICAgICAgICAgICBjb250aW51ZTsKLQotICAgICAgICB2aWV3ID0gcGFz
X2JpdGZpdF9kaXJlY3RvcnlfZ2V0X3ZpZXcoZGlyZWN0b3J5LCBpbmRleCk7Ci0KLSAgICAgICAg
UEFTX0FTU0VSVCh2aWV3KTsKLSAgICAgICAgUEFTX0FTU0VSVCh2aWV3LT5wYWdlX2JvdW5kYXJ5
KTsgLyogWW91IGRvbid0IGJlY29tZSBlbXB0eSB1bnRpbCB5b3UgaGF2ZSBhIHBhZ2UgYW5kIHRo
ZW4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeW91IG5ldmVy
IGxvc2UgdGhlIHBhZ2UuICovCi0KLSAgICAgICAgaWYgKHVzZXNfc3VicGFnZXMpIHsKLSAgICAg
ICAgICAgIHN1YnBhZ2VfZW50cnkgPSBwYXNfc3VicGFnZV9tYXBfZ2V0KAotICAgICAgICAgICAg
ICAgIHZpZXctPnBhZ2VfYm91bmRhcnksIHBhZ2VfY29uZmlnLT5iYXNlLnBhZ2Vfc2l6ZSwgaGVh
cF9sb2NrX2hvbGRfbW9kZSk7Ci0gICAgICAgICAgICBjb21taXRfbG9jayA9ICZzdWJwYWdlX2Vu
dHJ5LT5jb21taXRfbG9jazsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHN1YnBhZ2Vf
ZW50cnkgPSBOVUxMOwotICAgICAgICAgICAgY29tbWl0X2xvY2sgPSAmdmlldy0+Y29tbWl0X2xv
Y2s7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAodmVyYm9zZSkKLSAgICAgICAgICAgIHBhc19s
b2coIkdyYWJiaW5nIGNvbW1pdCBsb2NrICVwXG4iLCBjb21taXRfbG9jayk7Ci0gICAgICAgIGlm
ICghcGFzX2RlZmVycmVkX2RlY29tbWl0X2xvZ19sb2NrX2Zvcl9hZGRpbmcoCi0gICAgICAgICAg
ICAgICAgZGVjb21taXRfbG9nLCBjb21taXRfbG9jaywgaGVhcF9sb2NrX2hvbGRfbW9kZSkpIHsK
LSAgICAgICAgICAgIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV92aWV3X2RpZF9iZWNvbWVf
ZW1wdHlfYXRfaW5kZXgoZ2xvYmFsX2RpcmVjdG9yeSwgaW5kZXgpOwotICAgICAgICAgICAgcmV0
dXJuIHBhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtlX2xvY2tzX3VuYXZhaWxhYmxlOwotICAgICAg
ICB9Ci0KLSAgICAgICAgcGFzX2xvY2tfbG9jaygmdmlldy0+b3duZXJzaGlwX2xvY2spOwotCi0g
ICAgICAgIGlmICghdmlldy0+aXNfb3duZWQpIHsKLSAgICAgICAgICAgIHBhc19sb2NrX3VubG9j
aygmdmlldy0+b3duZXJzaGlwX2xvY2spOwotICAgICAgICAgICAgcGFzX2RlZmVycmVkX2RlY29t
bWl0X2xvZ191bmxvY2tfYWZ0ZXJfYWJvcnRlZF9hZGQoZGVjb21taXRfbG9nLCBjb21taXRfbG9j
ayk7Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgfQotCi0gICAgICAgIGJhc2UgPSAo
dWludHB0cl90KXZpZXctPnBhZ2VfYm91bmRhcnk7Ci0gICAgICAgIFBBU19BU1NFUlQoYmFzZSk7
Ci0gICAgICAgIHBhZ2UgPSBwYXNfYml0Zml0X3BhZ2VfZm9yX2JvdW5kYXJ5KCh2b2lkKiliYXNl
LCAqcGFnZV9jb25maWcpOwotICAgICAgICBQQVNfQVNTRVJUKHBhZ2UpOwotCi0gICAgICAgIHBh
Z2VfaXNfZGVhZCA9ICFwYWdlLT5udW1fbGl2ZV9iaXRzOwotCi0gICAgICAgIGRpcmVjdG9yeV9h
bmRfaW5kZXggPSBwYXNfYml0Zml0X3ZpZXdfY3VycmVudF9kaXJlY3RvcnlfYW5kX2luZGV4KHZp
ZXcpOwotICAgICAgICBtYXhfZnJlZSA9IHBhc19iaXRmaXRfZGlyZWN0b3J5X2dldF9tYXhfZnJl
ZShkaXJlY3RvcnlfYW5kX2luZGV4LmRpcmVjdG9yeSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlyZWN0b3J5X2FuZF9pbmRleC5pbmRleCk7
Ci0gICAgICAgIGlmIChwYWdlX2lzX2RlYWQpIHsKLSAgICAgICAgICAgIC8qIElmIGEgcGFnZSdz
IG51bV9saXZlX2JpdHMgZHJvcHMgdG8gemVybyB0aGVuIHdlIHdpbGwgbWFyayBpdCBlbXB0eSBp
biB0aGUgZGlyZWN0b3J5IHRoYXQKLSAgICAgICAgICAgICAgIG93bnMgaXQgd2hpbGUgaG9sZGlu
ZyB0aGUgbG9jay4gTmV3bHkgY3JlYXRlZCBwYWdlcyBzdGFydCBvdXQgZW1wdHkuCi0gICAgICAg
ICAgICAKLSAgICAgICAgICAgICAgIFRoZSBmYWN0IHRoYXQgZGVhZCBwYWdlcyBhcmUgZW1wdHkg
aW4gYmlhc2luZyBkaXJlY3RvcmllcyBoYXMgYW4gaW50ZXJlc3RpbmcgY29uc2VxdWVuY2UuCi0g
ICAgICAgICAgICAgICBJdCBtZWFucyB0aGF0IHdoZW4gd2UgZGVjb21taXQgaXQgdGhlbiB0aGUg
Ymlhc2luZyBkaXJlY3Rvcnkgd2lsbCBza2lwIHRoaXMgcGFnZS4gV2UgYWxzbwotICAgICAgICAg
ICAgICAgdW5iaWFzIGl0IHNvIHRoYXQgaWYgd2UgZG8gY29tZSBiYWNrIHRvIGl0LCB3ZSdsbCBn
ZXQgYSBmcmVzaCBwYWdlIGZyb20gdGhlIGdsb2JhbAotICAgICAgICAgICAgICAgZGlyZWN0b3J5
IHJhdGhlciB0aGFuIHRyeWluZyB0byBjb21taXQgdGhpcyBvbmUuICAqLwotICAgICAgICAgICAg
aWYgKG1heF9mcmVlICE9IFBBU19CSVRGSVRfTUFYX0ZSRUVfRU1QVFkpIHsKLSAgICAgICAgICAg
ICAgICBwYXNfbG9nKCIlcDoldTogZm91bmQgbm9uLWVtcHR5IHBhZ2UgdGhhdCBpcyBkZWFkIHdo
ZW4gdGFraW5nIGxhc3QgZW1wdHkuXG4iKTsKLSAgICAgICAgICAgICAgICBQQVNfQVNTRVJUKG1h
eF9mcmVlID09IFBBU19CSVRGSVRfTUFYX0ZSRUVfRU1QVFkpOwotICAgICAgICAgICAgfQotCi0g
ICAgICAgICAgICBpZiAoZGlyZWN0b3J5X2FuZF9pbmRleC5raW5kID09IHBhc19iaXRmaXRfYmlh
c2luZ19kaXJlY3Rvcnlfa2luZCkgewotICAgICAgICAgICAgICAgIHZpZXctPmluZGV4X2luX2Jp
YXNpbmcgPSAwOwotICAgICAgICAgICAgICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5X21heF9mcmVl
X2RpZF9iZWNvbWVfZW1wdHkoCi0gICAgICAgICAgICAgICAgICAgIGRpcmVjdG9yeSwgaW5kZXgs
ICJiZWNvbWUgZW1wdHkgaW4gZ2xvYmFsIG9uIHVuYmlhcyBkdXJpbmcgcGFnZSB0YWtlIik7Ci0g
ICAgICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9y
eV9wdHJfc3RvcmUoJnZpZXctPmJpYXNpbmdfZGlyZWN0b3J5LCBOVUxMKTsKLSAgICAgICAgICAg
ICAgICAKLSAgICAgICAgICAgICAgICAvKiBNYWtlIHN1cmUgdGhhdCB3ZSBkb24ndCBjbGVhciB0
aGUgdmlldyBvdXQgb2YgdGhlIGRpcmVjdG9yeSB1bnRpbCB3ZSdyZSBkb25lIHRlbGxpbmcKLSAg
ICAgICAgICAgICAgICAgICB0aGUgdmlldyB0aGF0IGl0J3Mgbm90IGJpYXNlZC4gKi8KLSAgICAg
ICAgICAgICAgICBwYXNfZmVuY2UoKTsKLSAgICAgICAgICAgICAgICBwYXNfY29tcGFjdF9hdG9t
aWNfYml0Zml0X3ZpZXdfcHRyX3N0b3JlKAotICAgICAgICAgICAgICAgICAgICBwYXNfYml0Zml0
X2RpcmVjdG9yeV9nZXRfdmlld19wdHIoZGlyZWN0b3J5X2FuZF9pbmRleC5kaXJlY3RvcnksCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJl
Y3RvcnlfYW5kX2luZGV4LmluZGV4KSwKLSAgICAgICAgICAgICAgICAgICAgTlVMTCk7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAvKiBJZiBhIHBhZ2UncyBu
dW1fbGl2ZV9iaXRzIGdvZXMgYWJvdmUgemVybyB0aGVuIHdlIG1hcmsgaXQgdW5wcm9jZXNzZWQg
d2hpbGUgaG9sZGluZyB0aGUKLSAgICAgICAgICAgICAgIGxvY2suICovCi0gICAgICAgICAgICBp
ZiAobWF4X2ZyZWUgPT0gUEFTX0JJVEZJVF9NQVhfRlJFRV9FTVBUWSkgewotICAgICAgICAgICAg
ICAgIHBhc19sb2coIiVwOiV1OiBmb3VuZCBlbXB0eSBwYWdlIHRoYXQgaXMgbm90IGRlYWQgd2hl
biB0YWtpbmcgbGFzdCBlbXB0eS5cbiIpOwotICAgICAgICAgICAgICAgIFBBU19BU1NFUlQobWF4
X2ZyZWUgIT0gUEFTX0JJVEZJVF9NQVhfRlJFRV9FTVBUWSk7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgIH0KLSAgICAgICAgCi0gICAgICAgIGlmIChudW1fZ3JhbnVsZXMgPiAxKSB7Ci0gICAgICAg
ICAgICBwYXNfZnJlZV9ncmFudWxlcyBmcmVlX2dyYW51bGVzOwotICAgICAgICAgICAgcGFzX3Bh
Z2VfZ3JhbnVsZV91c2VfY291bnQqIHVzZV9jb3VudHM7Ci0gICAgICAgICAgICAKLSAgICAgICAg
ICAgIFBBU19BU1NFUlQoIXVzZXNfc3VicGFnZXMpOyAvKiBXZSBzaG91bGQgbmV2ZXIgc2V0IHVw
IHN1YnBhZ2VzIGZvciBhIHBhZ2Ugd2l0aAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGdyYW51bGVzLiBXZSBjb3VsZCBjaGFuZ2UgdGhhdCAoYnkgYWRkaW5nIGEg
Yml0Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9yZSBsb2dp
YykgYnV0IGZvciBub3cgaXQgbWFrZXMgbm8gc2Vuc2UuIEl0IHdvdWxkCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25seSBtYWtlIHNlbnNlIGlmIHdlIGhhZCB0
byBkZWFsIHdpdGggYSBkeW5hbWljCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc3lzdGVtIHBhZ2Ugc2l6ZSBhbmQgd2UgZGlkbid0IHdhbnQgdG8gYWNoaWV2ZSB0
aGF0Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnkgc2hpcHBp
bmcgbXVsdGlwbGUgY29uZmlncy4gKi8KLSAgICAgICAgICAgIAotICAgICAgICAgICAgaWYgKHZl
cmJvc2UpCi0gICAgICAgICAgICAgICAgcGFzX2xvZygiRGVjb21taXR0aW5nIGdyYW51bGVzIGZv
ciBwYWdlICVwXG4iLCBwYWdlKTsKLSAgICAgICAgICAgIHVzZV9jb3VudHMgPSBwYXNfYml0Zml0
X3BhZ2VfZ2V0X2dyYW51bGVfdXNlX2NvdW50cyhwYWdlLCAqcGFnZV9jb25maWcpOwotICAgICAg
ICAgICAgCi0gICAgICAgICAgICBwYXNfZnJlZV9ncmFudWxlc19jb21wdXRlX2FuZF9tYXJrX2Rl
Y29tbWl0dGVkKAotICAgICAgICAgICAgICAgICZmcmVlX2dyYW51bGVzLCB1c2VfY291bnRzLCBu
dW1fZ3JhbnVsZXMpOwotCi0gICAgICAgICAgICBpZiAocGFnZV9pc19kZWFkICE9ICgoZnJlZV9n
cmFudWxlcy5udW1fYWxyZWFkeV9kZWNvbW1pdHRlZF9ncmFudWxlcyArCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZnJlZV9ncmFudWxlcy5udW1fZnJlZV9ncmFudWxlcykgPT0g
bnVtX2dyYW51bGVzKSkgewotICAgICAgICAgICAgICAgIHBhc19sb2coInBhZ2VfaXNfZGVhZCA9
ICVkXG4iLCBwYWdlX2lzX2RlYWQpOwotICAgICAgICAgICAgICAgIHBhc19sb2coImZyZWVfZ3Jh
bnVsZXMubnVtX2ZyZWVfZ3JhbnVsZXMgPSAlenVcbiIsCi0gICAgICAgICAgICAgICAgICAgICAg
ICBmcmVlX2dyYW51bGVzLm51bV9mcmVlX2dyYW51bGVzKTsKLSAgICAgICAgICAgICAgICBwYXNf
bG9nKCJmcmVlX2dyYW51bGVzLm51bV9hbHJlYWR5X2RlY29tbWl0dGVkX2dyYW51bGVzID0gJXp1
XG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgZnJlZV9ncmFudWxlcy5udW1fYWxyZWFkeV9k
ZWNvbW1pdHRlZF9ncmFudWxlcyk7Ci0gICAgICAgICAgICAgICAgUEFTX0FTU0VSVCghInBhZ2Vf
aXNfZGVhZCBkb2VzIG5vdCBtYXRjaCBmcmVlX2dyYW51bGVzIik7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAKLSAgICAgICAgICAgIFBBU19BU1NFUlQoZnJlZV9ncmFudWxlcy5udW1fZnJl
ZV9ncmFudWxlcyA8PSBudW1fZ3JhbnVsZXMpOwotCi0gICAgICAgICAgICBpZiAoIWZyZWVfZ3Jh
bnVsZXMubnVtX2ZyZWVfZ3JhbnVsZXMpIHsKLSAgICAgICAgICAgICAgICBwYXNfbG9ja191bmxv
Y2soJnZpZXctPm93bmVyc2hpcF9sb2NrKTsKLSAgICAgICAgICAgICAgICBwYXNfZGVmZXJyZWRf
ZGVjb21taXRfbG9nX3VubG9ja19hZnRlcl9hYm9ydGVkX2FkZChkZWNvbW1pdF9sb2csIGNvbW1p
dF9sb2NrKTsKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIAotICAgICAgICAgICAgaWYgKHBhZ2VfaXNfZGVhZCkKLSAgICAgICAgICAgICAgICB2
aWV3LT5pc19vd25lZCA9IGZhbHNlOwotICAgICAgICAgICAgCi0gICAgICAgICAgICAvKiBXZSBo
YXZlIHRvIHJlbGVhc2UgdGhlIG93bmVyc2hpcCBsb2NrIHRvIGRlY29tbWl0IGJlY2F1c2UgZGVj
b21taXQgd2FudHMgdGhlIGhlYXAKLSAgICAgICAgICAgICAgIGxvY2suIFRoYXQncyBzYWZlIHNp
bmNlIHdlJ3ZlIGFscmVhZHkgbWFya2VkIHRoZSBzdHVmZiBkZWNvbW1pdHRlZC4gVGhhdCBtZWFu
cwotICAgICAgICAgICAgICAgdGhhdCBhbnkgYXR0ZW1wdCB0byB1c2UgdGhvc2UgZ3JhbnVsZXMg
d2lsbCBoYXZlIHRvIGdyYWIgdGhlIGNvbW1pdCBsb2NrLCB3aGljaAotICAgICAgICAgICAgICAg
d2UgaG9sZC4gKi8KLSAgICAgICAgICAgIHBhc19sb2NrX3VubG9jaygmdmlldy0+b3duZXJzaGlw
X2xvY2spOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpZiAodmVyYm9zZSkKLSAgICAgICAg
ICAgICAgICBwYXNfbG9nKCJEb2luZyBmcmVlIGdyYW51bGUgZGVjb21taXQgd2l0aCBsb2NrICVw
XG4iLCBjb21taXRfbG9jayk7Ci0gICAgICAgICAgICBwYXNfZnJlZV9ncmFudWxlc19kZWNvbW1p
dF9hZnRlcl9sb2NraW5nX3JhbmdlKAotICAgICAgICAgICAgICAgICZmcmVlX2dyYW51bGVzLCAm
cGFnZS0+YmFzZSwgZGVjb21taXRfbG9nLCBjb21taXRfbG9jaywgJnBhZ2VfY29uZmlnLT5iYXNl
LAotICAgICAgICAgICAgICAgIGhlYXBfbG9ja19ob2xkX21vZGUpOwotICAgICAgICAgICAgCi0g
ICAgICAgICAgICBpZiAodmVyYm9zZSkKLSAgICAgICAgICAgICAgICBwYXNfbG9nKCJEb25lLCBz
dWNjZXNzIVxuIik7Ci0gICAgICAgICAgICAKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAg
IGlmICghcGFnZV9pc19kZWFkKSB7Ci0gICAgICAgICAgICAgICAgcGFzX2xvY2tfdW5sb2NrKCZ2
aWV3LT5vd25lcnNoaXBfbG9jayk7Ci0gICAgICAgICAgICAgICAgcGFzX2RlZmVycmVkX2RlY29t
bWl0X2xvZ191bmxvY2tfYWZ0ZXJfYWJvcnRlZF9hZGQoZGVjb21taXRfbG9nLCBjb21taXRfbG9j
ayk7Ci0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAg
ICAgIC8qIFdlIGRvIHRoaXMgd2hpbGUgaG9sZGluZyBib3RoIGxvY2tzLiBXaGVuIHdlIHJlbGVh
c2UgdGhlIG93bmVyc2hpcCBsb2NrLCB0aGVuIGlmIHNvbWVvbmUKLSAgICAgICAgICAgICAgIGVs
c2UgZ2V0cyBpdCwgdGhleSB3aWxsIGltbWVkaWF0ZWx5IHJlbGVhc2UgaXQgdG8gdHJ5IHRvIGNv
bXBldGUgZm9yIHRoZSBjb21taXQgbG9jaywKLSAgICAgICAgICAgICAgIHdoaWNoIHdlIGhvbGQu
ICovCi0gICAgICAgICAgICB2aWV3LT5pc19vd25lZCA9IGZhbHNlOwotCi0gICAgICAgICAgICAv
KiBBbmQgd2UgaGF2ZSB0byByZWxlYXNlIHRoZSBvd25lcnNoaXAgbG9jayBiZWNhdXNlIGRlY29t
bWl0dGluZyBtYXkgbmVlZCB0byBob2xkIHRoZSBoZWFwCi0gICAgICAgICAgICAgICBsb2NrLCBh
bmQgdGhlIGhlYXAgbG9jayBpcyBvdXRlciB0byB0aGUgb3duZXJzaGlwIGxvY2suICovCi0gICAg
ICAgICAgICBwYXNfbG9ja191bmxvY2soJnZpZXctPm93bmVyc2hpcF9sb2NrKTsKLQotICAgICAg
ICAgICAgaWYgKHZlcmJvc2UpCi0gICAgICAgICAgICAgICAgcGFzX2xvZygiRGVjb21pdHRpbmcg
cGFnZSAlcFxuIiwgcGFnZSk7Ci0KLSAgICAgICAgICAgIGlmICh1c2VzX3N1YnBhZ2VzKSB7Ci0g
ICAgICAgICAgICAgICAgcGFzX3N1YnBhZ2VfbWFwX2VudHJ5X2RlY29tbWl0KAotICAgICAgICAg
ICAgICAgICAgICBzdWJwYWdlX2VudHJ5LAotICAgICAgICAgICAgICAgICAgICAodm9pZCopYmFz
ZSwKLSAgICAgICAgICAgICAgICAgICAgcGFnZV9jb25maWctPmJhc2UucGFnZV9zaXplLAotICAg
ICAgICAgICAgICAgICAgICBkZWNvbW1pdF9sb2csCi0gICAgICAgICAgICAgICAgICAgIGhlYXBf
bG9ja19ob2xkX21vZGUpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBw
YXNfZGVmZXJyZWRfZGVjb21taXRfbG9nX2FkZF9hbHJlYWR5X2xvY2tlZCgKLSAgICAgICAgICAg
ICAgICAgICAgZGVjb21taXRfbG9nLAotICAgICAgICAgICAgICAgICAgICBwYXNfdmlydHVhbF9y
YW5nZV9jcmVhdGUoYmFzZSwgYmFzZSArIHBhZ2VfY29uZmlnLT5iYXNlLnBhZ2Vfc2l6ZSwgY29t
bWl0X2xvY2spLAotICAgICAgICAgICAgICAgICAgICBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgcGFzX3ZlcnNpb25lZF9m
aWVsZF90cnlfd3JpdGUoJmdsb2JhbF9kaXJlY3RvcnktPmxhc3RfZW1wdHlfcGx1c19vbmUsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RfZW1wdHlfcGx1c19vbmVf
dmFsdWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4KTsKLSAg
ICAgICAgCi0gICAgICAgIGlmIChwYWdlX2lzX2RlYWQpCi0gICAgICAgICAgICBwYWdlX2NvbmZp
Zy0+YmFzZS5kZXN0cm95X3BhZ2VfaGVhZGVyKCZwYWdlLT5iYXNlLCBoZWFwX2xvY2tfaG9sZF9t
b2RlKTsKLQotICAgICAgICBQQVNfQVNTRVJUKHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9k
b2VzX3NoYXJpbmcoZ2xvYmFsX2RpcmVjdG9yeSkpOwotICAgICAgICAKLSAgICAgICAgcGFzX3Bh
Z2Vfc2hhcmluZ19wb29sX2RpZF9jcmVhdGVfZGVsdGEoCi0gICAgICAgICAgICAmcGFzX3BoeXNp
Y2FsX3BhZ2Vfc2hhcmluZ19wb29sLAotICAgICAgICAgICAgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0
aWNpcGFudF9jcmVhdGUoCi0gICAgICAgICAgICAgICAgZ2xvYmFsX2RpcmVjdG9yeSwgcGFzX3Bh
Z2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9iaXRmaXRfZGlyZWN0b3J5KSk7Ci0gICAgICAgIAotICAg
ICAgICByZXR1cm4gcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2Vfc3VjY2VzczsKLSAgICB9Ci0K
LSAgICBwYXNfdmVyc2lvbmVkX2ZpZWxkX3RyeV93cml0ZSgmZ2xvYmFsX2RpcmVjdG9yeS0+bGFz
dF9lbXB0eV9wbHVzX29uZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXN0
X2VtcHR5X3BsdXNfb25lX3ZhbHVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDApOwotICAgIAotICAgIHJldHVybiBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9ub25lX2F2
YWlsYWJsZTsKLX0KLQotdm9pZCBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfZHVtcF9yZWZl
cmVuY2UoCi0gICAgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5KiBkaXJlY3RvcnksIHBhc19z
dHJlYW0qIHN0cmVhbSkKLXsKLSAgICBwYXNfc3RyZWFtX3ByaW50ZigKLSAgICAgICAgc3RyZWFt
LCAiJXAoYml0Zml0X2dsb2JhbF9kaXJlY3RvcnksICVzKSIsCi0gICAgICAgIGRpcmVjdG9yeSwg
cGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19raW5kX2dldF9zdHJpbmcoZGlyZWN0b3J5LT5iYXNlLmNv
bmZpZ19raW5kKSk7Ci19Ci0KLXZvaWQgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X2R1bXBf
Zm9yX3NwZWN0cnVtKHBhc19zdHJlYW0qIHN0cmVhbSwgdm9pZCogZGlyZWN0b3J5KQotewotICAg
IHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9kdW1wX3JlZmVyZW5jZShkaXJlY3RvcnksIHN0
cmVhbSk7Ci19Ci0KLSNlbmRpZiAvKiBMSUJQQVNfRU5BQkxFRCAqLwpJbmRleDogU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9n
bG9iYWxfZGlyZWN0b3J5LmgJKHJldmlzaW9uIDI3OTk2NCkKKysrIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeS5oCShub25leGlzdGVu
dCkKQEAgLTEsMTA3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMjAtMjAyMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKLSAqLwotCi0jaWZuZGVmIFBBU19CSVRGSVRfR0xPQkFMX0RJUkVDVE9SWV9ICi0j
ZGVmaW5lIFBBU19CSVRGSVRfR0xPQkFMX0RJUkVDVE9SWV9ICi0KLSNpbmNsdWRlICJwYXNfYml0
Zml0X2RpcmVjdG9yeS5oIgotI2luY2x1ZGUgInBhc19jb21wYWN0X2F0b21pY19wYWdlX3NoYXJp
bmdfcG9vbF9wdHIuaCIKLSNpbmNsdWRlICJwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50Lmgi
Ci0KLVBBU19CRUdJTl9FWFRFUk5fQzsKLQotc3RydWN0IHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVj
dG9yeTsKLXN0cnVjdCBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfYml0dmVjdG9yX3NlZ21l
bnQ7Ci1zdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfaGVhcDsKLXR5cGVkZWYgc3RydWN0IHBhc19iaXRm
aXRfZ2xvYmFsX2RpcmVjdG9yeSBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3Rvcnk7Ci10eXBlZGVm
IHN0cnVjdCBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfYml0dmVjdG9yX3NlZ21lbnQgcGFz
X2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X2JpdHZlY3Rvcl9zZWdtZW50OwotdHlwZWRlZiBzdHJ1
Y3QgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCBwYXNfc2VncmVnYXRlZF9oZWFwOwotCi1zdHJ1Y3QgcGFz
X2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X2JpdHZlY3Rvcl9zZWdtZW50IHsKLSAgICB1bnNpZ25l
ZCBlbXB0eV9iaXRzOwotfTsKLQotI2RlZmluZSBQQVNfQklURklUX0dMT0JBTF9ESVJFQ1RPUllf
QklUVkVDVE9SX1NFR01FTlRfSU5JVElBTElaRVIgXAotICAgICgocGFzX2JpdGZpdF9nbG9iYWxf
ZGlyZWN0b3J5X2JpdHZlY3Rvcl9zZWdtZW50KXsgXAotICAgICAgICAgLmVtcHR5X2JpdHMgPSAw
LCBcCi0gICAgIH0pCi0KLVBBU19ERUNMQVJFX1NFR01FTlRFRF9WRUNUT1IocGFzX2JpdGZpdF9n
bG9iYWxfZGlyZWN0b3J5X3NlZ21lbnRlZF9iaXR2ZWN0b3JzLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfYml0dmVjdG9yX3NlZ21lbnQs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQpOwotCi1zdHJ1Y3QgUEFTX0FMSUdORUQo
c2l6ZW9mKHBhc192ZXJzaW9uZWRfZmllbGQpKSBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3Rvcnkg
ewotICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5IGJhc2U7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfaGVh
cCogaGVhcDsKLSAgICBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3Rvcnlfc2VnbWVudGVkX2JpdHZl
Y3RvcnMgYml0dmVjdG9yczsKLSAgICBwYXNfdmVyc2lvbmVkX2ZpZWxkIGxhc3RfZW1wdHlfcGx1
c19vbmU7IC8qIFplcm8gbWVhbnMgdGhlcmUgYXJlbid0IGFueS4gKi8KLSAgICBwYXNfcGFnZV9z
aGFyaW5nX3BhcnRpY2lwYW50X3BheWxvYWQgcGh5c2ljYWxfc2hhcmluZ19wYXlsb2FkOwotICAg
IHBhc19jb21wYWN0X2F0b21pY19wYWdlX3NoYXJpbmdfcG9vbF9wdHIgYmlhc19zaGFyaW5nX3Bv
b2w7Ci0gICAgYm9vbCBjb250ZW50aW9uX2RpZF90cmlnZ2VyX2V4cGxvc2lvbjsKLX07Ci0KLWV4
dGVybiBQQVNfQVBJIGJvb2wgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X2Nhbl9leHBsb2Rl
OwotZXh0ZXJuIFBBU19BUEkgYm9vbCBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfZm9yY2Vf
ZXhwbG9kZTsKLQotUEFTX0FQSSB2b2lkIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9jb25z
dHJ1Y3QocGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5KiBkaXJlY3RvcnksCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfYml0Zml0X3BhZ2Vf
Y29uZmlnKiBjb25maWcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9oZWFwKiBzZWdyZWdhdGVkX2hlYXApOwotCi1QQVNf
QVBJIGJvb2wgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X2RvZXNfc2hhcmluZyhwYXNfYml0
Zml0X2dsb2JhbF9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7Ci0KLVBBU19BUEkgdWludDY0X3QgcGFz
X2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X2dldF91c2VfZXBvY2gocGFzX2JpdGZpdF9nbG9iYWxf
ZGlyZWN0b3J5KiBkaXJlY3RvcnkpOwotCi1QQVNfQVBJIGJvb2wgcGFzX2JpdGZpdF9nbG9iYWxf
ZGlyZWN0b3J5X2dldF9lbXB0eV9iaXRfYXRfaW5kZXgoCi0gICAgcGFzX2JpdGZpdF9nbG9iYWxf
ZGlyZWN0b3J5KiBkaXJlY3RvcnksCi0gICAgc2l6ZV90IGluZGV4KTsKLQotLyogUmV0dXJucyB3
aGV0aGVyIHdlIGNoYW5nZWQgdGhlIHZhbHVlLiAqLwotUEFTX0FQSSBib29sIHBhc19iaXRmaXRf
Z2xvYmFsX2RpcmVjdG9yeV9zZXRfZW1wdHlfYml0X2F0X2luZGV4KAotICAgIHBhc19iaXRmaXRf
Z2xvYmFsX2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgIHNpemVfdCBpbmRleCwKLSAgICBib29s
IHZhbHVlKTsKLQotUEFTX0FQSSB2b2lkIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV92aWV3
X2RpZF9iZWNvbWVfZW1wdHlfYXRfaW5kZXgoCi0gICAgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0
b3J5KiBkaXJlY3RvcnksCi0gICAgc2l6ZV90IGluZGV4KTsKLVBBU19BUEkgdm9pZCBwYXNfYml0
Zml0X2dsb2JhbF9kaXJlY3Rvcnlfdmlld19kaWRfYmVjb21lX2VtcHR5KAotICAgIHBhc19iaXRm
aXRfZ2xvYmFsX2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgIHBhc19iaXRmaXRfdmlldyogdmll
dyk7Ci0KLVBBU19BUEkgcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2VfcmVzdWx0IHBhc19iaXRm
aXRfZ2xvYmFsX2RpcmVjdG9yeV90YWtlX2xhc3RfZW1wdHkoCi0gICAgcGFzX2JpdGZpdF9nbG9i
YWxfZGlyZWN0b3J5KiBkaXJlY3RvcnksCi0gICAgcGFzX2RlZmVycmVkX2RlY29tbWl0X2xvZyog
ZGVjb21taXRfbG9nLAotICAgIHBhc19sb2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9tb2Rl
KTsKLQotUEFTX0FQSSB2b2lkIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9kdW1wX3JlZmVy
ZW5jZSgKLSAgICBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwgcGFzX3N0
cmVhbSogc3RyZWFtKTsKLQotUEFTX0FQSSB2b2lkIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9y
eV9kdW1wX2Zvcl9zcGVjdHJ1bShwYXNfc3RyZWFtKiBzdHJlYW0sIHZvaWQqIGRpcmVjdG9yeSk7
Ci0KLVBBU19FTkRfRVhURVJOX0M7Ci0KLSNlbmRpZiAvKiBQQVNfQklURklUX0dMT0JBTF9ESVJF
Q1RPUllfSCAqLwotCi0KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3MuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzLmMJKHJldmlz
aW9uIDI3OTk2NCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRm
aXRfZ2xvYmFsX3NpemVfY2xhc3MuYwkobm9uZXhpc3RlbnQpCkBAIC0xLDE2NCArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChjKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
Ci0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1
ZGUgInBhc19jb25maWcuaCIKLQotI2lmIExJQlBBU19FTkFCTEVECi0KLSNpbmNsdWRlICJwYXNf
Yml0Zml0X2dsb2JhbF9zaXplX2NsYXNzLmgiCi0KLSNpbmNsdWRlICJwYXNfYmlhc2luZ19kaXJl
Y3RvcnlfaW5saW5lcy5oIgotI2luY2x1ZGUgInBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3Rvcnku
aCIKLSNpbmNsdWRlICJwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkuaCIKLSNpbmNsdWRlICJw
YXNfaGVhcF9sb2NrLmgiCi0jaW5jbHVkZSAicGFzX2ltbW9ydGFsX2hlYXAuaCIKLSNpbmNsdWRl
ICJwYXNfbWFnYXppbmUuaCIKLSNpbmNsdWRlICJwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50
LmgiCi0jaW5jbHVkZSAicGFzX3BhZ2Vfc2hhcmluZ19wb29sLmgiCi0KLXBhc19iaXRmaXRfZ2xv
YmFsX3NpemVfY2xhc3MqIHBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3NfY3JlYXRlKAotICAg
IHVuc2lnbmVkIHNpemUsCi0gICAgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5KiBkaXJlY3Rv
cnksCi0gICAgcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9zaXplX2NsYXNzX3B0ciogaW5zZXJ0
aW9uX3BvaW50KQotewotICAgIHBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3MqIHJlc3VsdDsK
LQotICAgIHJlc3VsdCA9IHBhc19pbW1vcnRhbF9oZWFwX2FsbG9jYXRlX3dpdGhfYWxpZ25tZW50
KAotICAgICAgICBzaXplb2YocGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzcyksCi0gICAgICAg
IGFsaWdub2YocGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzcyksCi0gICAgICAgICJwYXNfYml0
Zml0X2dsb2JhbF9zaXplX2NsYXNzIiwKLSAgICAgICAgcGFzX29iamVjdF9hbGxvY2F0aW9uKTsK
LQotICAgIHBhc19iaXRmaXRfc2l6ZV9jbGFzc19jb25zdHJ1Y3QoJnJlc3VsdC0+YmFzZSwgc2l6
ZSwgJmRpcmVjdG9yeS0+YmFzZSwgaW5zZXJ0aW9uX3BvaW50KTsKLSAgICBwYXNfYml0Zml0X2ds
b2JhbF9zaXplX2NsYXNzX2JpYXNpbmdfdmVjdG9yX2NvbnN0cnVjdCgmcmVzdWx0LT5iaWFzaW5n
X3ZlY3Rvcik7Ci0KLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi1wYXNfYml0Zml0X3NpemVfY2xh
c3MqCi1wYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzX3NlbGVjdF9mb3JfbWFnYXppbmUocGFz
X2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzcyogZ2xvYmFsX3NpemVfY2xhc3MsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX21hZ2F6aW5lKiBtYWdh
emluZSkKLXsKLSAgICBwYXNfYml0Zml0X2RpcmVjdG9yeSogZGlyZWN0b3J5OwotICAgIHBhc19i
aXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSogZ2xvYmFsX2RpcmVjdG9yeTsKLSAgICBwYXNfcGFnZV9z
aGFyaW5nX3BhcnRpY2lwYW50IHBhcnRpY2lwYW50OwotICAgIHBhc19iaXRmaXRfc2l6ZV9jbGFz
cyogcmVzdWx0OwotICAgIHBhc19wYWdlX3NoYXJpbmdfcG9vbCogcG9vbDsKLSAgICBwYXNfYml0
Zml0X2JpYXNpbmdfZGlyZWN0b3J5KiBiaWFzaW5nX2RpcmVjdG9yeTsKLSAgICBwYXNfY29tcGFj
dF9hdG9taWNfYml0Zml0X3NpemVfY2xhc3NfcHRyKiBzaXplX2NsYXNzX3B0cjsKLSAgICB1bnNp
Z25lZCBtYWdhemluZV9pbmRleDsKLQotICAgIGRpcmVjdG9yeSA9IHBhc19jb21wYWN0X2JpdGZp
dF9kaXJlY3RvcnlfcHRyX2xvYWQoJmdsb2JhbF9zaXplX2NsYXNzLT5iYXNlLmRpcmVjdG9yeSk7
Ci0gICAgZ2xvYmFsX2RpcmVjdG9yeSA9IChwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkqKWRp
cmVjdG9yeTsKLSAgICAKLSAgICBpZiAoIWdsb2JhbF9kaXJlY3RvcnktPmNvbnRlbnRpb25fZGlk
X3RyaWdnZXJfZXhwbG9zaW9uIHx8ICFtYWdhemluZSkKLSAgICAgICAgcmV0dXJuICZnbG9iYWxf
c2l6ZV9jbGFzcy0+YmFzZTsKLSAgICAKLSAgICBQQVNfQVNTRVJUKHBhc19iaXRmaXRfZ2xvYmFs
X2RpcmVjdG9yeV9jYW5fZXhwbG9kZSk7Ci0gICAgbWFnYXppbmVfaW5kZXggPSBtYWdhemluZS0+
bWFnYXppbmVfaW5kZXg7Ci0KLSAgICBpZiAobWFnYXppbmVfaW5kZXggPCBnbG9iYWxfc2l6ZV9j
bGFzcy0+Ymlhc2luZ192ZWN0b3Iuc2l6ZSkgewotICAgICAgICByZXN1bHQgPSBwYXNfY29tcGFj
dF9hdG9taWNfYml0Zml0X3NpemVfY2xhc3NfcHRyX2xvYWQoCi0gICAgICAgICAgICBwYXNfYml0
Zml0X2dsb2JhbF9zaXplX2NsYXNzX2JpYXNpbmdfdmVjdG9yX2dldF9wdHIoCi0gICAgICAgICAg
ICAgICAgJmdsb2JhbF9zaXplX2NsYXNzLT5iaWFzaW5nX3ZlY3RvciwgbWFnYXppbmVfaW5kZXgp
KTsKLSAgICAgICAgaWYgKHJlc3VsdCkKLSAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAg
fQotCi0gICAgcG9vbCA9IHBhc19jb21wYWN0X2F0b21pY19wYWdlX3NoYXJpbmdfcG9vbF9wdHJf
bG9hZCgmZ2xvYmFsX2RpcmVjdG9yeS0+Ymlhc19zaGFyaW5nX3Bvb2wpOwotICAgIGlmICghcG9v
bCkgewotICAgICAgICBwYXNfaGVhcF9sb2NrX2xvY2soKTsKLQotICAgICAgICBwb29sID0gcGFz
X2NvbXBhY3RfYXRvbWljX3BhZ2Vfc2hhcmluZ19wb29sX3B0cl9sb2FkKCZnbG9iYWxfZGlyZWN0
b3J5LT5iaWFzX3NoYXJpbmdfcG9vbCk7Ci0gICAgICAgIGlmICghcG9vbCkgewotICAgICAgICAg
ICAgcG9vbCA9IHBhc19pbW1vcnRhbF9oZWFwX2FsbG9jYXRlX3dpdGhfYWxpZ25tZW50KAotICAg
ICAgICAgICAgICAgIHNpemVvZihwYXNfcGFnZV9zaGFyaW5nX3Bvb2wpLAotICAgICAgICAgICAg
ICAgIGFsaWdub2YocGFzX3BhZ2Vfc2hhcmluZ19wb29sKSwKLSAgICAgICAgICAgICAgICAicGFz
X2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzcy9iaWFzX3NoYXJpbmdfcG9vbCIsCi0gICAgICAgICAg
ICAgICAgcGFzX29iamVjdF9hbGxvY2F0aW9uKTsKLSAgICAgICAgICAgIHBhc19wYWdlX3NoYXJp
bmdfcG9vbF9jb25zdHJ1Y3QocG9vbCk7Ci0gICAgICAgICAgICBwYXNfY29tcGFjdF9hdG9taWNf
cGFnZV9zaGFyaW5nX3Bvb2xfcHRyX3N0b3JlKAotICAgICAgICAgICAgICAgICZnbG9iYWxfZGly
ZWN0b3J5LT5iaWFzX3NoYXJpbmdfcG9vbCwgcG9vbCk7Ci0gICAgICAgIH0KLQotICAgICAgICBw
YXNfaGVhcF9sb2NrX3VubG9jaygpOwotCi0gICAgICAgIFBBU19BU1NFUlQoCi0gICAgICAgICAg
ICBwYXNfY29tcGFjdF9hdG9taWNfcGFnZV9zaGFyaW5nX3Bvb2xfcHRyX2xvYWQoJmdsb2JhbF9k
aXJlY3RvcnktPmJpYXNfc2hhcmluZ19wb29sKQotICAgICAgICAgICAgPT0gcG9vbCk7Ci0gICAg
fQotCi0gICAgUEFTX0FTU0VSVChwb29sKTsKLQotICAgIHBhcnRpY2lwYW50ID0gcGFzX3BhZ2Vf
c2hhcmluZ19wb29sX2dldF9wYXJ0aWNpcGFudChwb29sLCBtYWdhemluZV9pbmRleCk7Ci0gICAg
aWYgKCFwYXJ0aWNpcGFudCkgewotICAgICAgICBiaWFzaW5nX2RpcmVjdG9yeSA9IE5VTEw7Ci0g
ICAgICAgIHBhc19oZWFwX2xvY2tfbG9jaygpOwotICAgICAgICBwYXJ0aWNpcGFudCA9IHBhc19w
YWdlX3NoYXJpbmdfcG9vbF9nZXRfcGFydGljaXBhbnQocG9vbCwgbWFnYXppbmVfaW5kZXgpOwot
ICAgICAgICBpZiAoIXBhcnRpY2lwYW50KSB7Ci0gICAgICAgICAgICBiaWFzaW5nX2RpcmVjdG9y
eSA9IHBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnlfY3JlYXRlKAotICAgICAgICAgICAgICAg
IGdsb2JhbF9kaXJlY3RvcnksIG1hZ2F6aW5lX2luZGV4KTsKLSAgICAgICAgfQotICAgICAgICBw
YXNfaGVhcF9sb2NrX3VubG9jaygpOwotCi0gICAgICAgIGlmICghcGFydGljaXBhbnQpIHsKLSAg
ICAgICAgICAgIHBhcnRpY2lwYW50ID0gcGFzX3BhZ2Vfc2hhcmluZ19wb29sX2dldF9wYXJ0aWNp
cGFudChwb29sLCBtYWdhemluZV9pbmRleCk7Ci0gICAgICAgICAgICBQQVNfQVNTRVJUKAotICAg
ICAgICAgICAgICAgIHBhcnRpY2lwYW50ID0gcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9j
cmVhdGUoCi0gICAgICAgICAgICAgICAgICAgICZiaWFzaW5nX2RpcmVjdG9yeS0+Ymlhc2luZ19i
YXNlLAotICAgICAgICAgICAgICAgICAgICBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2Jp
YXNpbmdfZGlyZWN0b3J5KSk7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgCi0gICAgUEFTX0FTU0VS
VChwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2dldF9raW5kKHBhcnRpY2lwYW50KQotICAg
ICAgICAgICAgICAgPT0gcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9iaWFzaW5nX2RpcmVj
dG9yeSk7Ci0KLSAgICBiaWFzaW5nX2RpcmVjdG9yeSA9IHBhc191bndyYXBfYml0Zml0X2JpYXNp
bmdfZGlyZWN0b3J5KAotICAgICAgICBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2dldF9w
dHIocGFydGljaXBhbnQpKTsKLQotICAgIHBhc19oZWFwX2xvY2tfbG9jaygpOwotCi0gICAgd2hp
bGUgKG1hZ2F6aW5lX2luZGV4ID49IGdsb2JhbF9zaXplX2NsYXNzLT5iaWFzaW5nX3ZlY3Rvci5z
aXplKSB7Ci0gICAgICAgIHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfc2l6ZV9jbGFzc19wdHIg
bnVsbF9wdHIgPSBQQVNfQ09NUEFDVF9BVE9NSUNfUFRSX0lOSVRJQUxJWkVSOwotICAgICAgICBw
YXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzX2JpYXNpbmdfdmVjdG9yX2FwcGVuZCgKLSAgICAg
ICAgICAgICZnbG9iYWxfc2l6ZV9jbGFzcy0+Ymlhc2luZ192ZWN0b3IsIG51bGxfcHRyLCBwYXNf
bG9ja19pc19oZWxkKTsKLSAgICB9Ci0KLSAgICBzaXplX2NsYXNzX3B0ciA9IHBhc19iaXRmaXRf
Z2xvYmFsX3NpemVfY2xhc3NfYmlhc2luZ192ZWN0b3JfZ2V0X3B0cigKLSAgICAgICAgJmdsb2Jh
bF9zaXplX2NsYXNzLT5iaWFzaW5nX3ZlY3RvciwgbWFnYXppbmVfaW5kZXgpOwotICAgIHJlc3Vs
dCA9IHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfc2l6ZV9jbGFzc19wdHJfbG9hZChzaXplX2Ns
YXNzX3B0cik7Ci0gICAgaWYgKCFyZXN1bHQpIHsKLSAgICAgICAgcmVzdWx0ID0gcGFzX2JpdGZp
dF9zaXplX2NsYXNzX2NyZWF0ZSgKLSAgICAgICAgICAgIGdsb2JhbF9zaXplX2NsYXNzLT5iYXNl
LnNpemUsICZiaWFzaW5nX2RpcmVjdG9yeS0+YmFzZSk7Ci0gICAgICAgIHBhc19mZW5jZSgpOwot
ICAgICAgICBwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X3NpemVfY2xhc3NfcHRyX3N0b3JlKHNp
emVfY2xhc3NfcHRyLCByZXN1bHQpOwotICAgIH0KLQotICAgIHBhc19oZWFwX2xvY2tfdW5sb2Nr
KCk7Ci0KLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi0jZW5kaWYgLyogTElCUEFTX0VOQUJMRUQg
Ki8KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfZ2xv
YmFsX3NpemVfY2xhc3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzLmgJKHJldmlzaW9uIDI3OTk2NCkK
KysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfZ2xvYmFsX3Np
emVfY2xhc3MuaAkobm9uZXhpc3RlbnQpCkBAIC0xLDYyICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKGMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2lmbmRlZiBQQVNfQklURklUX0dMT0JB
TF9TSVpFX0NMQVNTX0gKLSNkZWZpbmUgUEFTX0JJVEZJVF9HTE9CQUxfU0laRV9DTEFTU19ICi0K
LSNpbmNsdWRlICJwYXNfYml0Zml0X3NpemVfY2xhc3MuaCIKLSNpbmNsdWRlICJwYXNfc2VnbWVu
dGVkX3ZlY3Rvci5oIgotCi1QQVNfQkVHSU5fRVhURVJOX0M7Ci0KLXN0cnVjdCBwYXNfYml0Zml0
X2dsb2JhbF9kaXJlY3Rvcnk7Ci1zdHJ1Y3QgcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzczsK
LXN0cnVjdCBwYXNfbWFnYXppbmU7Ci10eXBlZGVmIHN0cnVjdCBwYXNfYml0Zml0X2dsb2JhbF9k
aXJlY3RvcnkgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5OwotdHlwZWRlZiBzdHJ1Y3QgcGFz
X2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzcyBwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzOwot
dHlwZWRlZiBzdHJ1Y3QgcGFzX21hZ2F6aW5lIHBhc19tYWdhemluZTsKLQotUEFTX0RFQ0xBUkVf
U0VHTUVOVEVEX1ZFQ1RPUihwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzX2JpYXNpbmdfdmVj
dG9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfY29tcGFjdF9hdG9taWNfYml0
Zml0X3NpemVfY2xhc3NfcHRyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0KTsKLQot
c3RydWN0IFBBU19BTElHTkVEKHNpemVvZihwYXNfdmVyc2lvbmVkX2ZpZWxkKSkgcGFzX2JpdGZp
dF9nbG9iYWxfc2l6ZV9jbGFzcyB7Ci0gICAgcGFzX2JpdGZpdF9zaXplX2NsYXNzIGJhc2U7Ci0g
ICAgcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzc19iaWFzaW5nX3ZlY3RvciBiaWFzaW5nX3Zl
Y3RvcjsKLX07Ci0KLVBBU19BUEkgcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzcyogcGFzX2Jp
dGZpdF9nbG9iYWxfc2l6ZV9jbGFzc19jcmVhdGUoCi0gICAgdW5zaWduZWQgc2l6ZSwKLSAgICBw
YXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAgICBwYXNfY29tcGFjdF9h
dG9taWNfYml0Zml0X3NpemVfY2xhc3NfcHRyKiBpbnNlcnRpb25fcG9pbnQpOwotCi1QQVNfQVBJ
IHBhc19iaXRmaXRfc2l6ZV9jbGFzcyoKLXBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3Nfc2Vs
ZWN0X2Zvcl9tYWdhemluZShwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzKiBzaXplX2NsYXNz
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19t
YWdhemluZSogbWFnYXppbmUpOwotCi1QQVNfRU5EX0VYVEVSTl9DOwotCi0jZW5kaWYgLyogUEFT
X0JJVEZJVF9HTE9CQUxfU0laRV9DTEFTU19IICovCi0KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfaGVhcC5jCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfaGVhcC5jCShyZXZpc2lvbiAyNzk5
NjQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2hlYXAu
Ywkod29ya2luZyBjb3B5KQpAQCAtMjksMTMgKzI5LDEzIEBACiAKICNpbmNsdWRlICJwYXNfYml0
Zml0X2hlYXAuaCIKIAotI2luY2x1ZGUgInBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeS5oIgot
I2luY2x1ZGUgInBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3MuaCIKKyNpbmNsdWRlICJwYXNf
Yml0Zml0X2RpcmVjdG9yeS5oIgorI2luY2x1ZGUgInBhc19iaXRmaXRfc2l6ZV9jbGFzcy5oIgog
I2luY2x1ZGUgInBhc19iaXRmaXRfcGFnZS5oIgogI2luY2x1ZGUgInBhc19iaXRmaXRfdmlldy5o
IgogI2luY2x1ZGUgInBhc19oZWFwX2NvbmZpZy5oIgogI2luY2x1ZGUgInBhc19pbW1vcnRhbF9o
ZWFwLmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5Lmgi
CisjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkuaCIKIAogcGFzX2JpdGZp
dF9oZWFwKiBwYXNfYml0Zml0X2hlYXBfY3JlYXRlKHBhc19zZWdyZWdhdGVkX2hlYXAqIHNlZ3Jl
Z2F0ZWRfaGVhcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNf
aGVhcF9jb25maWcqIGhlYXBfY29uZmlnKQpAQCAtNTAsNyArNTAsNyBAQCBwYXNfYml0Zml0X2hl
YXAqIHBhc19iaXRmaXRfaGVhcF9jcmVhdGUoCiAgICAgICAgIHBhc19vYmplY3RfYWxsb2NhdGlv
bik7CiAKICAgICBmb3IgKFBBU19FQUNIX0JJVEZJVF9QQUdFX0NPTkZJR19WQVJJQU5UX0FTQ0VO
RElORyh2YXJpYW50KSkgewotICAgICAgICBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfY29u
c3RydWN0KAorICAgICAgICBwYXNfYml0Zml0X2RpcmVjdG9yeV9jb25zdHJ1Y3QoCiAgICAgICAg
ICAgICBwYXNfYml0Zml0X2hlYXBfZ2V0X2RpcmVjdG9yeShyZXN1bHQsIHZhcmlhbnQpLAogICAg
ICAgICAgICAgcGFzX2hlYXBfY29uZmlnX2JpdGZpdF9wYWdlX2NvbmZpZ19wdHJfZm9yX3Zhcmlh
bnQoaGVhcF9jb25maWcsIHZhcmlhbnQpLAogICAgICAgICAgICAgc2VncmVnYXRlZF9oZWFwKTsK
QEAgLTEwNywxNSArMTA3LDE1IEBAIHBhc19iaXRmaXRfdmFyaWFudF9zZWxlY3Rpb24gcGFzX2Jp
dGZpdF8KICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1wYXNfYml0Zml0X2dsb2JhbF9zaXplX2Ns
YXNzKgotcGFzX2JpdGZpdF9oZWFwX2Vuc3VyZV9nbG9iYWxfc2l6ZV9jbGFzcyhwYXNfYml0Zml0
X2hlYXAqIGhlYXAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBh
c19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAorcGFzX2JpdGZp
dF9zaXplX2NsYXNzKgorcGFzX2JpdGZpdF9oZWFwX2Vuc3VyZV9zaXplX2NsYXNzKHBhc19iaXRm
aXRfaGVhcCogaGVhcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2hlYXBfY29uZmlnKiBjb25maWcsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19sb2NrX2hvbGRfbW9kZSBo
ZWFwX2xvY2tfaG9sZF9tb2RlKQogewogICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBm
YWxzZTsKICAgICAKLSAgICBwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzKiByZXN1bHQ7Cisg
ICAgcGFzX2JpdGZpdF9zaXplX2NsYXNzKiByZXN1bHQ7CiAgICAgcGFzX2JpdGZpdF92YXJpYW50
X3NlbGVjdGlvbiBiZXN0OwogCiAgICAgaWYgKHZlcmJvc2UpIHsKQEAgLTEzMywxMCArMTMzLDEw
IEBAIHBhc19iaXRmaXRfaGVhcF9lbnN1cmVfZ2xvYmFsX3NpemVfY2xhc3MKICAgICAgICAgICAg
ICAgICAiKGRpcmVjdG9yeSBzaXplID0gJXUsIGJlc3Qgb2JqZWN0IHNpemUgPSAldSkuXG4iLAog
ICAgICAgICAgICAgICAgIGhlYXAsIGRpcmVjdG9yeSwgZGlyZWN0b3J5LT5vYmplY3Rfc2l6ZSwg
YmVzdC5vYmplY3Rfc2l6ZSk7CiAgICAgfQotICAgIHJlc3VsdCA9IHBhc19jb21wYWN0X2F0b21p
Y19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3NfcHRyX2xvYWQoJmRpcmVjdG9yeS0+Yml0Zml0X3Np
emVfY2xhc3MpOworICAgIHJlc3VsdCA9IHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfc2l6ZV9j
bGFzc19wdHJfbG9hZCgmZGlyZWN0b3J5LT5iaXRmaXRfc2l6ZV9jbGFzcyk7CiAgICAgaWYgKCFy
ZXN1bHQpIHsKICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9zaXplX2NsYXNzX3B0
ciogaW5zZXJ0aW9uX3BvaW50OwotICAgICAgICBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3Rvcnkq
IGJpdGZpdF9kaXJlY3Rvcnk7CisgICAgICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5KiBiaXRmaXRf
ZGlyZWN0b3J5OwogICAgICAgICBwYXNfYml0Zml0X3NpemVfY2xhc3MqIHNpemVfY2xhc3M7CiAK
ICAgICAgICAgaWYgKHZlcmJvc2UpCkBAIC0xNDUsNyArMTQ1LDcgQEAgcGFzX2JpdGZpdF9oZWFw
X2Vuc3VyZV9nbG9iYWxfc2l6ZV9jbGFzcwogICAgICAgICBiaXRmaXRfZGlyZWN0b3J5ID0gcGFz
X2JpdGZpdF9oZWFwX2dldF9kaXJlY3RvcnkoaGVhcCwgYmVzdC52YXJpYW50KTsKIAogICAgICAg
ICBpbnNlcnRpb25fcG9pbnQgPSBwYXNfYml0Zml0X3NpemVfY2xhc3NfZmluZF9pbnNlcnRpb25f
cG9pbnQoCi0gICAgICAgICAgICAmYml0Zml0X2RpcmVjdG9yeS0+YmFzZSwgYmVzdC5vYmplY3Rf
c2l6ZSk7CisgICAgICAgICAgICBiaXRmaXRfZGlyZWN0b3J5LCBiZXN0Lm9iamVjdF9zaXplKTsK
ICAgICAgICAgaWYgKGluc2VydGlvbl9wb2ludCkKICAgICAgICAgICAgIHNpemVfY2xhc3MgPSBw
YXNfY29tcGFjdF9hdG9taWNfYml0Zml0X3NpemVfY2xhc3NfcHRyX2xvYWQoaW5zZXJ0aW9uX3Bv
aW50KTsKICAgICAgICAgZWxzZQpAQCAtMTU0LDEzICsxNTQsMTMgQEAgcGFzX2JpdGZpdF9oZWFw
X2Vuc3VyZV9nbG9iYWxfc2l6ZV9jbGFzcwogICAgICAgICBpZiAoc2l6ZV9jbGFzcyAmJiBzaXpl
X2NsYXNzLT5zaXplID09IGJlc3Qub2JqZWN0X3NpemUpIHsKICAgICAgICAgICAgIGlmICh2ZXJi
b3NlKQogICAgICAgICAgICAgICAgIHBhc19sb2coIkFjdHVhbGx5IGl0IGRvZXMhXG4iKTsKLSAg
ICAgICAgICAgIHJlc3VsdCA9IChwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzKilzaXplX2Ns
YXNzOworICAgICAgICAgICAgcmVzdWx0ID0gKHBhc19iaXRmaXRfc2l6ZV9jbGFzcyopc2l6ZV9j
bGFzczsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHJlc3VsdCA9IHBhc19iaXRmaXRf
Z2xvYmFsX3NpemVfY2xhc3NfY3JlYXRlKAorICAgICAgICAgICAgcmVzdWx0ID0gcGFzX2JpdGZp
dF9zaXplX2NsYXNzX2NyZWF0ZSgKICAgICAgICAgICAgICAgICBiZXN0Lm9iamVjdF9zaXplLCBi
aXRmaXRfZGlyZWN0b3J5LCBpbnNlcnRpb25fcG9pbnQpOwogICAgICAgICB9CiAgICAgICAgIAot
ICAgICAgICBwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzX3B0cl9z
dG9yZSgKKyAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9zaXplX2NsYXNzX3B0cl9z
dG9yZSgKICAgICAgICAgICAgICZkaXJlY3RvcnktPmJpdGZpdF9zaXplX2NsYXNzLCByZXN1bHQp
OwogICAgIH0KICAgICBwYXNfaGVhcF9sb2NrX3VubG9ja19jb25kaXRpb25hbGx5KGhlYXBfbG9j
a19ob2xkX21vZGUpOwpAQCAtMTc4LDggKzE3OCw3IEBAIHBhc19oZWFwX3N1bW1hcnkgcGFzX2Jp
dGZpdF9oZWFwX2NvbXB1dGUKICAgICBmb3IgKFBBU19FQUNIX0JJVEZJVF9QQUdFX0NPTkZJR19W
QVJJQU5UX0FTQ0VORElORyh2YXJpYW50KSkgewogICAgICAgICByZXN1bHQgPSBwYXNfaGVhcF9z
dW1tYXJ5X2FkZCgKICAgICAgICAgICAgIHJlc3VsdCwKLSAgICAgICAgICAgIHBhc19iaXRmaXRf
ZGlyZWN0b3J5X2NvbXB1dGVfc3VtbWFyeSgKLSAgICAgICAgICAgICAgICAmcGFzX2JpdGZpdF9o
ZWFwX2dldF9kaXJlY3RvcnkoaGVhcCwgdmFyaWFudCktPmJhc2UpKTsKKyAgICAgICAgICAgIHBh
c19iaXRmaXRfZGlyZWN0b3J5X2NvbXB1dGVfc3VtbWFyeShwYXNfYml0Zml0X2hlYXBfZ2V0X2Rp
cmVjdG9yeShoZWFwLCB2YXJpYW50KSkpOwogICAgIH0KIAogICAgIHJldHVybiByZXN1bHQ7CkBA
IC0yMTcsMTUgKzIxNiwxNSBAQCBib29sIHBhc19iaXRmaXRfaGVhcF9mb3JfZWFjaF9saXZlX29i
amVjCiAgICAgZGF0YS5hcmcgPSBhcmc7CiAKICAgICBmb3IgKFBBU19FQUNIX0JJVEZJVF9QQUdF
X0NPTkZJR19WQVJJQU5UX0FTQ0VORElORyh2YXJpYW50KSkgewotICAgICAgICBwYXNfYml0Zml0
X2dsb2JhbF9kaXJlY3RvcnkqIGRpcmVjdG9yeTsKKyAgICAgICAgcGFzX2JpdGZpdF9kaXJlY3Rv
cnkqIGRpcmVjdG9yeTsKICAgICAgICAgc2l6ZV90IGluZGV4OwogCiAgICAgICAgIGRpcmVjdG9y
eSA9IHBhc19iaXRmaXRfaGVhcF9nZXRfZGlyZWN0b3J5KGhlYXAsIHZhcmlhbnQpOwogCi0gICAg
ICAgIGZvciAoaW5kZXggPSAwOyBpbmRleCA8IHBhc19iaXRmaXRfZGlyZWN0b3J5X3NpemUoJmRp
cmVjdG9yeS0+YmFzZSk7ICsraW5kZXgpIHsKKyAgICAgICAgZm9yIChpbmRleCA9IDA7IGluZGV4
IDwgcGFzX2JpdGZpdF9kaXJlY3Rvcnlfc2l6ZShkaXJlY3RvcnkpOyArK2luZGV4KSB7CiAgICAg
ICAgICAgICBwYXNfYml0Zml0X3ZpZXcqIHZpZXc7CiAKLSAgICAgICAgICAgIHZpZXcgPSBwYXNf
Yml0Zml0X2RpcmVjdG9yeV9nZXRfdmlldygmZGlyZWN0b3J5LT5iYXNlLCBpbmRleCk7CisgICAg
ICAgICAgICB2aWV3ID0gcGFzX2JpdGZpdF9kaXJlY3RvcnlfZ2V0X3ZpZXcoZGlyZWN0b3J5LCBp
bmRleCk7CiAgICAgICAgICAgICBpZiAoIXZpZXcpCiAgICAgICAgICAgICAgICAgY29udGludWU7
CiAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfaGVh
cC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19i
aXRmaXRfaGVhcC5oCShyZXZpc2lvbiAyNzk5NjQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfYml0Zml0X2hlYXAuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsMjggKzI2
LDI4IEBACiAjaWZuZGVmIFBBU19CSVRGSVRfSEVBUF9ICiAjZGVmaW5lIFBBU19CSVRGSVRfSEVB
UF9ICiAKLSNpbmNsdWRlICJwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkuaCIKKyNpbmNsdWRl
ICJwYXNfYml0Zml0X2RpcmVjdG9yeS5oIgogI2luY2x1ZGUgInBhc19iaXRmaXRfcGFnZV9jb25m
aWdfdmFyaWFudC5oIgogCiBQQVNfQkVHSU5fRVhURVJOX0M7CiAKIHN0cnVjdCBwYXNfYml0Zml0
X2hlYXA7CiBzdHJ1Y3QgcGFzX2hlYXBfY29uZmlnOwotc3RydWN0IHBhc19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeTsKK3N0cnVjdCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eTsKIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9oZWFwOwogdHlwZWRlZiBzdHJ1Y3QgcGFzX2JpdGZp
dF9oZWFwIHBhc19iaXRmaXRfaGVhcDsKIHR5cGVkZWYgc3RydWN0IHBhc19oZWFwX2NvbmZpZyBw
YXNfaGVhcF9jb25maWc7Ci10eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnkgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5OwordHlwZWRl
ZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkgcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3Rvcnk7CiB0eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9oZWFwIHBhc19zZWdy
ZWdhdGVkX2hlYXA7CiAKIHN0cnVjdCBQQVNfQUxJR05FRChzaXplb2YocGFzX3ZlcnNpb25lZF9m
aWVsZCkpIHBhc19iaXRmaXRfaGVhcCB7Ci0gICAgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5
IGRpcmVjdG9yaWVzW1BBU19OVU1fQklURklUX1BBR0VfQ09ORklHX1ZBUklBTlRTXTsKKyAgICBw
YXNfYml0Zml0X2RpcmVjdG9yeSBkaXJlY3Rvcmllc1tQQVNfTlVNX0JJVEZJVF9QQUdFX0NPTkZJ
R19WQVJJQU5UU107CiB9OwogCiBQQVNfQVBJIHBhc19iaXRmaXRfaGVhcCogcGFzX2JpdGZpdF9o
ZWFwX2NyZWF0ZShwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2hlYXBfY29uZmlnKiBoZWFwX2NvbmZp
Zyk7CiAKLXN0YXRpYyBpbmxpbmUgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5KiBwYXNfYml0
Zml0X2hlYXBfZ2V0X2RpcmVjdG9yeSgKK3N0YXRpYyBpbmxpbmUgcGFzX2JpdGZpdF9kaXJlY3Rv
cnkqIHBhc19iaXRmaXRfaGVhcF9nZXRfZGlyZWN0b3J5KAogICAgIHBhc19iaXRmaXRfaGVhcCog
aGVhcCwKICAgICBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX3ZhcmlhbnQgdmFyaWFudCkKIHsKQEAg
LTYzLDkgKzYzLDkgQEAgdHlwZWRlZiBzdHJ1Y3QgewogUEFTX0FQSSBwYXNfYml0Zml0X3Zhcmlh
bnRfc2VsZWN0aW9uCiBwYXNfYml0Zml0X2hlYXBfc2VsZWN0X3ZhcmlhbnQoc2l6ZV90IG9iamVj
dF9zaXplLCBwYXNfaGVhcF9jb25maWcqIGNvbmZpZyk7CiAKLVBBU19BUEkgcGFzX2JpdGZpdF9n
bG9iYWxfc2l6ZV9jbGFzcyoKLXBhc19iaXRmaXRfaGVhcF9lbnN1cmVfZ2xvYmFsX3NpemVfY2xh
c3MocGFzX2JpdGZpdF9oZWFwKiBoZWFwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9y
eSwKK1BBU19BUEkgcGFzX2JpdGZpdF9zaXplX2NsYXNzKgorcGFzX2JpdGZpdF9oZWFwX2Vuc3Vy
ZV9zaXplX2NsYXNzKHBhc19iaXRmaXRfaGVhcCogaGVhcCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVj
dG9yeSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2hlYXBf
Y29uZmlnKiBjb25maWcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHBhc19sb2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKIApJbmRleDogU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9wYWdlLmMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9wYWdlLmMJKHJl
dmlzaW9uIDI3OTk2NCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19i
aXRmaXRfcGFnZS5jCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBACiAKICNpbmNsdWRl
ICJwYXNfYml0Zml0X3BhZ2UuaCIKIAotI2luY2x1ZGUgInBhc19iaXRmaXRfZ2xvYmFsX2RpcmVj
dG9yeS5oIgorI2luY2x1ZGUgInBhc19iaXRmaXRfZGlyZWN0b3J5LmgiCiAjaW5jbHVkZSAicGFz
X2JpdGZpdF92aWV3LmgiCiAjaW5jbHVkZSAicGFzX2Vwb2NoLmgiCiAjaW5jbHVkZSAicGFzX2xv
Zy5oIgpAQCAtMTI1LDkgKzEyNSw5IEBAIHZvaWQgcGFzX2JpdGZpdF9wYWdlX2NvbnN0cnVjdChw
YXNfYml0ZmkKIHBhc19iaXRmaXRfcGFnZV9jb25maWcqIHBhc19iaXRmaXRfcGFnZV9nZXRfY29u
ZmlnKHBhc19iaXRmaXRfcGFnZSogcGFnZSkKIHsKICAgICByZXR1cm4gcGFzX2JpdGZpdF9wYWdl
X2NvbmZpZ19raW5kX2dldF9jb25maWcoCi0gICAgICAgIHBhc19jb21wYWN0X2JpdGZpdF9nbG9i
YWxfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKAorICAgICAgICBwYXNfY29tcGFjdF9iaXRm
aXRfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKAogICAgICAgICAgICAgJnBhc19jb21wYWN0
X2F0b21pY19iaXRmaXRfdmlld19wdHJfbG9hZF9ub25fbnVsbCgKLSAgICAgICAgICAgICAgICAm
cGFnZS0+b3duZXIpLT5nbG9iYWxfZGlyZWN0b3J5KS0+YmFzZS5jb25maWdfa2luZCk7CisgICAg
ICAgICAgICAgICAgJnBhZ2UtPm93bmVyKS0+ZGlyZWN0b3J5KS0+Y29uZmlnX2tpbmQpOwogfQog
CiB2b2lkIHBhc19iaXRmaXRfcGFnZV9sb2dfYml0cygKQEAgLTIwMSw4ICsyMDEsOCBAQCBib29s
IHBhc19iaXRmaXRfcGFnZV9mb3JfZWFjaF9saXZlX29iamVjCiAKICAgICB2aWV3ID0gcGFzX2Nv
bXBhY3RfYXRvbWljX2JpdGZpdF92aWV3X3B0cl9sb2FkKCZwYWdlLT5vd25lcik7CiAgICAgY29u
ZmlnX3B0ciA9IHBhc19iaXRmaXRfcGFnZV9jb25maWdfa2luZF9nZXRfY29uZmlnKAotICAgICAg
ICBwYXNfY29tcGFjdF9iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgK
LSAgICAgICAgICAgICZ2aWV3LT5nbG9iYWxfZGlyZWN0b3J5KS0+YmFzZS5jb25maWdfa2luZCk7
CisgICAgICAgIHBhc19jb21wYWN0X2JpdGZpdF9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwo
CisgICAgICAgICAgICAmdmlldy0+ZGlyZWN0b3J5KS0+Y29uZmlnX2tpbmQpOwogICAgIGNvbmZp
ZyA9ICpjb25maWdfcHRyOwogCiAgICAgYm91bmRhcnkgPSBwYXNfYml0Zml0X3BhZ2VfYm91bmRh
cnkocGFnZSwgY29uZmlnKTsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19iaXRmaXRfcGFnZV9jb25maWcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X3BhZ2VfY29uZmlnLmgJKHJldmlzaW9uIDI3OTk2
NCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfcGFnZV9j
b25maWcuaAkod29ya2luZyBjb3B5KQpAQCAtMTY2LDEyICsxNjYsNiBAQCBwYXNfYml0Zml0X3Bh
Z2VfY29uZmlnX2J5dGVfb2Zmc2V0X2Zvcl9vCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZy5iYXNlLm1pbl9hbGlnbl9z
aGlmdCk7CiB9CiAKLXN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBib29sCi1wYXNfYml0Zml0X3Bh
Z2VfY29uZmlnX3VzZXNfc3VicGFnZXMocGFzX2JpdGZpdF9wYWdlX2NvbmZpZyBjb25maWcpCi17
Ci0gICAgcmV0dXJuIGNvbmZpZy5iYXNlLnBhZ2Vfc2l6ZSA8IHBhc19wYWdlX21hbGxvY19hbGln
bm1lbnQoKTsKLX0KLQogUEFTX0VORF9FWFRFUk5fQzsKIAogI2VuZGlmIC8qIFBBU19CSVRGSVRf
UEFHRV9DT05GSUdfSCAqLwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX2JpdGZpdF9wYWdlX2lubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X3BhZ2VfaW5saW5lcy5oCShyZXZpc2lvbiAyNzk5
NjQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X3BhZ2Vf
aW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC01OTksNyArNTk5LDcgQEAgc3RhdGljIFBBU19B
TFdBWVNfSU5MSU5FIHVpbnRwdHJfdCBwYXNfYgogICAgICAgICAKICAgICBjYXNlIHBhc19iaXRm
aXRfcGFnZV9kZWFsbG9jYXRlX3dpdGhfcGFnZV9pbXBsX2RlYWxsb2NhdGVfbW9kZToKICAgICBj
YXNlIHBhc19iaXRmaXRfcGFnZV9kZWFsbG9jYXRlX3dpdGhfcGFnZV9pbXBsX3Nocmlua19tb2Rl
OgotICAgICAgICBwYXNfYml0Zml0X3ZpZXdfbG9ja19vd25lcnNoaXBfbG9jayhvd25lcik7Cisg
ICAgICAgIHBhc19sb2NrX2xvY2soJm93bmVyLT5vd25lcnNoaXBfbG9jayk7CiAgICAgICAgIAog
ICAgICAgICBwYXNfYml0Zml0X3BhZ2VfdGVzdGluZ192ZXJpZnkocGFnZSk7CiAKSW5kZXg6IFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfc2l6ZV9jbGFzcy5jCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRf
c2l6ZV9jbGFzcy5jCShyZXZpc2lvbiAyNzk5NjQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfYml0Zml0X3NpemVfY2xhc3MuYwkod29ya2luZyBjb3B5KQpAQCAtNzUs
OCArNzUsMTAgQEAgdm9pZCBwYXNfYml0Zml0X3NpemVfY2xhc3NfY29uc3RydWN0KHBhcwogICAg
IHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfc2l6ZV9jbGFzc19wdHJfc3RvcmUoaW5zZXJ0aW9u
X3BvaW50LCBzaXplX2NsYXNzKTsKIH0KIAotcGFzX2JpdGZpdF9zaXplX2NsYXNzKiBwYXNfYml0
Zml0X3NpemVfY2xhc3NfY3JlYXRlKHVuc2lnbmVkIHNpemUsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2JpdGZpdF9kaXJlY3RvcnkqIGRp
cmVjdG9yeSkKK3Bhc19iaXRmaXRfc2l6ZV9jbGFzcyogcGFzX2JpdGZpdF9zaXplX2NsYXNzX2Ny
ZWF0ZSgKKyAgICB1bnNpZ25lZCBzaXplLAorICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5KiBkaXJl
Y3RvcnksCisgICAgcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9zaXplX2NsYXNzX3B0ciogaW5z
ZXJ0aW9uX3BvaW50KQogewogICAgIHBhc19iaXRmaXRfc2l6ZV9jbGFzcyogcmVzdWx0OwogCkBA
IC04NiwxNiArODgsMTMgQEAgcGFzX2JpdGZpdF9zaXplX2NsYXNzKiBwYXNfYml0Zml0X3NpemVf
YwogICAgICAgICAicGFzX2JpdGZpdF9zaXplX2NsYXNzIiwKICAgICAgICAgcGFzX29iamVjdF9h
bGxvY2F0aW9uKTsKIAotICAgIHBhc19iaXRmaXRfc2l6ZV9jbGFzc19jb25zdHJ1Y3QoCi0gICAg
ICAgIHJlc3VsdCwgc2l6ZSwgZGlyZWN0b3J5LAotICAgICAgICBwYXNfYml0Zml0X3NpemVfY2xh
c3NfZmluZF9pbnNlcnRpb25fcG9pbnQoZGlyZWN0b3J5LCBzaXplKSk7CisgICAgcGFzX2JpdGZp
dF9zaXplX2NsYXNzX2NvbnN0cnVjdChyZXN1bHQsIHNpemUsIGRpcmVjdG9yeSwgaW5zZXJ0aW9u
X3BvaW50KTsKIAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKIHBhc19iaXRmaXRfdmlldyoKIHBh
c19iaXRmaXRfc2l6ZV9jbGFzc19nZXRfZmlyc3RfZnJlZV92aWV3KHBhc19iaXRmaXRfc2l6ZV9j
bGFzcyogc2l6ZV9jbGFzcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3MqIGdsb2JhbF9zaXplX2NsYXNzLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2JpdGZpdF9wYWdlX2Nv
bmZpZyogcGFnZV9jb25maWcpCiB7CiAgICAgcGFzX2JpdGZpdF9kaXJlY3RvcnkqIGRpcmVjdG9y
eTsKQEAgLTExNCw3ICsxMTMsNyBAQCBwYXNfYml0Zml0X3NpemVfY2xhc3NfZ2V0X2ZpcnN0X2Zy
ZWVfdmllCiAgICAgUEFTX0FTU0VSVCgodW5zaWduZWQpc3RhcnRfaW5kZXggPT0gc3RhcnRfaW5k
ZXgpOwogICAgIAogICAgIHZpZXdfYW5kX2luZGV4ID0gcGFzX2JpdGZpdF9kaXJlY3RvcnlfZ2V0
X2ZpcnN0X2ZyZWVfdmlldygKLSAgICAgICAgZGlyZWN0b3J5LCBnbG9iYWxfc2l6ZV9jbGFzcywg
KHVuc2lnbmVkKXN0YXJ0X2luZGV4LCBzaXplX2NsYXNzLT5zaXplLCBwYWdlX2NvbmZpZyk7Cisg
ICAgICAgIGRpcmVjdG9yeSwgKHVuc2lnbmVkKXN0YXJ0X2luZGV4LCBzaXplX2NsYXNzLT5zaXpl
LCBwYWdlX2NvbmZpZyk7CiAKICAgICBQQVNfQVNTRVJUKHZpZXdfYW5kX2luZGV4LnZpZXcpOwog
CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X3NpemVf
Y2xhc3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfYml0Zml0X3NpemVfY2xhc3MuaAkocmV2aXNpb24gMjc5OTY0KQorKysgU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9zaXplX2NsYXNzLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTMzLDExICszMywxMSBAQAogCiBQQVNfQkVHSU5fRVhURVJOX0M7CiAKLXN0cnVjdCBw
YXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzOworc3RydWN0IHBhc19iaXRmaXRfc2l6ZV9jbGFz
czsKIHN0cnVjdCBwYXNfYml0Zml0X3BhZ2VfY29uZmlnOwogc3RydWN0IHBhc19iaXRmaXRfc2l6
ZV9jbGFzczsKIHN0cnVjdCBwYXNfYml0Zml0X3ZpZXc7Ci10eXBlZGVmIHN0cnVjdCBwYXNfYml0
Zml0X2dsb2JhbF9zaXplX2NsYXNzIHBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3M7Cit0eXBl
ZGVmIHN0cnVjdCBwYXNfYml0Zml0X3NpemVfY2xhc3MgcGFzX2JpdGZpdF9zaXplX2NsYXNzOwog
dHlwZWRlZiBzdHJ1Y3QgcGFzX2JpdGZpdF9wYWdlX2NvbmZpZyBwYXNfYml0Zml0X3BhZ2VfY29u
ZmlnOwogdHlwZWRlZiBzdHJ1Y3QgcGFzX2JpdGZpdF9zaXplX2NsYXNzIHBhc19iaXRmaXRfc2l6
ZV9jbGFzczsKIHR5cGVkZWYgc3RydWN0IHBhc19iaXRmaXRfdmlldyBwYXNfYml0Zml0X3ZpZXc7
CkBAIC01OSwxMiArNTksMTMgQEAgUEFTX0FQSSB2b2lkIHBhc19iaXRmaXRfc2l6ZV9jbGFzc19j
b25zdAogICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5KiBkaXJlY3RvcnksCiAgICAgcGFzX2NvbXBh
Y3RfYXRvbWljX2JpdGZpdF9zaXplX2NsYXNzX3B0ciogaW5zZXJ0aW9uX3BvaW50KTsKIAotUEFT
X0FQSSBwYXNfYml0Zml0X3NpemVfY2xhc3MqIHBhc19iaXRmaXRfc2l6ZV9jbGFzc19jcmVhdGUo
dW5zaWduZWQgc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5KiBkaXJlY3RvcnkpOworUEFT
X0FQSSBwYXNfYml0Zml0X3NpemVfY2xhc3MqIHBhc19iaXRmaXRfc2l6ZV9jbGFzc19jcmVhdGUo
CisgICAgdW5zaWduZWQgc2l6ZSwKKyAgICBwYXNfYml0Zml0X2RpcmVjdG9yeSogZGlyZWN0b3J5
LAorICAgIHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfc2l6ZV9jbGFzc19wdHIqIGluc2VydGlv
bl9wb2ludCk7CiAKIFBBU19BUEkgcGFzX2JpdGZpdF92aWV3KgogcGFzX2JpdGZpdF9zaXplX2Ns
YXNzX2dldF9maXJzdF9mcmVlX3ZpZXcocGFzX2JpdGZpdF9zaXplX2NsYXNzKiBzaXplX2NsYXNz
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2JpdGZpdF9n
bG9iYWxfc2l6ZV9jbGFzcyogZ2xvYmFsX3NpemVfY2xhc3MsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwYXNfYml0Zml0X3BhZ2VfY29uZmlnKiBwYWdlX2NvbmZp
Zyk7CiAKIFBBU19FTkRfRVhURVJOX0M7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfYml0Zml0X3ZpZXcuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X3ZpZXcuYwkocmV2aXNpb24gMjc5OTY0KQorKysg
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF92aWV3LmMJKHdvcmtp
bmcgY29weSkKQEAgLTI5LDEzICsyOSwxNCBAQAogCiAjaW5jbHVkZSAicGFzX2JpdGZpdF92aWV3
LmgiCiAKKyNpbmNsdWRlICJwYXNfYml0Zml0X2RpcmVjdG9yeS5oIgogI2luY2x1ZGUgInBhc19i
aXRmaXRfcGFnZS5oIgogI2luY2x1ZGUgInBhc19iaXRmaXRfdmlld19pbmxpbmVzLmgiCiAjaW5j
bHVkZSAicGFzX2Vwb2NoLmgiCiAjaW5jbHVkZSAicGFzX3BhZ2Vfc2hhcmluZ19wb29sLmgiCiAK
LXBhc19iaXRmaXRfdmlldyogcGFzX2JpdGZpdF92aWV3X2NyZWF0ZShwYXNfYml0Zml0X2dsb2Jh
bF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB1bnNpZ25lZCBpbmRleF9pbl9nbG9iYWwpCitwYXNfYml0Zml0X3ZpZXcqIHBhc19i
aXRmaXRfdmlld19jcmVhdGUocGFzX2JpdGZpdF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbmRleCkKIHsKICAg
ICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CiAgICAgCkBAIC00OCw0MiArNDks
MjQgQEAgcGFzX2JpdGZpdF92aWV3KiBwYXNfYml0Zml0X3ZpZXdfY3JlYXRlKAogCiAgICAgaWYg
KHZlcmJvc2UpIHsKICAgICAgICAgcGFzX2xvZygiQ3JlYXRpbmcgdmlldyAlcCB3aXRoIGNvbmZp
ZyAlc1xuIiwKLSAgICAgICAgICAgICAgICByZXN1bHQsIHBhc19iaXRmaXRfcGFnZV9jb25maWdf
a2luZF9nZXRfc3RyaW5nKGRpcmVjdG9yeS0+YmFzZS5jb25maWdfa2luZCkpOworICAgICAgICAg
ICAgICAgIHJlc3VsdCwgcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19raW5kX2dldF9zdHJpbmcoZGly
ZWN0b3J5LT5jb25maWdfa2luZCkpOwogICAgIH0KIAogICAgIHJlc3VsdC0+cGFnZV9ib3VuZGFy
eSA9IE5VTEw7Ci0gICAgcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9y
eV9wdHJfc3RvcmUoJnJlc3VsdC0+Ymlhc2luZ19kaXJlY3RvcnksIE5VTEwpOwotICAgIHBhc19j
b21wYWN0X2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X3B0cl9zdG9yZSgmcmVzdWx0LT5nbG9iYWxf
ZGlyZWN0b3J5LCBkaXJlY3RvcnkpOworICAgIHBhc19jb21wYWN0X2JpdGZpdF9kaXJlY3Rvcnlf
cHRyX3N0b3JlKCZyZXN1bHQtPmRpcmVjdG9yeSwgZGlyZWN0b3J5KTsKICAgICByZXN1bHQtPmlz
X293bmVkID0gZmFsc2U7Ci0gICAgcmVzdWx0LT5pbmRleF9pbl9nbG9iYWwgPSBpbmRleF9pbl9n
bG9iYWw7Ci0gICAgcmVzdWx0LT5pbmRleF9pbl9iaWFzaW5nID0gMDsKKyAgICByZXN1bHQtPmlu
ZGV4ID0gaW5kZXg7CiAgICAgcGFzX2xvY2tfY29uc3RydWN0KCZyZXN1bHQtPm93bmVyc2hpcF9s
b2NrKTsKLQotICAgIGlmIChwYXNfYml0Zml0X3BhZ2VfY29uZmlnX3VzZXNfc3VicGFnZXMoCi0g
ICAgICAgICAgICAqcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19raW5kX2dldF9jb25maWcoZGlyZWN0
b3J5LT5iYXNlLmNvbmZpZ19raW5kKSkpCi0gICAgICAgIHBhc19sb2NrX2NvbnN0cnVjdF9kaXNh
YmxlZCgmcmVzdWx0LT5jb21taXRfbG9jayk7Ci0gICAgZWxzZQotICAgICAgICBwYXNfbG9ja19j
b25zdHJ1Y3QoJnJlc3VsdC0+Y29tbWl0X2xvY2spOworICAgIHBhc19sb2NrX2NvbnN0cnVjdCgm
cmVzdWx0LT5jb21taXRfbG9jayk7CiAKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi12b2lkIHBh
c19iaXRmaXRfdmlld19sb2NrX293bmVyc2hpcF9sb2NrX3Nsb3cocGFzX2JpdGZpdF92aWV3KiB2
aWV3KQotewotICAgIHBhc19jb21wYWN0X2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X3B0cl9sb2Fk
KAotICAgICAgICAmdmlldy0+Z2xvYmFsX2RpcmVjdG9yeSktPmNvbnRlbnRpb25fZGlkX3RyaWdn
ZXJfZXhwbG9zaW9uID0KLSAgICAgICAgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X2Nhbl9l
eHBsb2RlOwotICAgIHBhc19sb2NrX2xvY2soJnZpZXctPm93bmVyc2hpcF9sb2NrKTsKLX0KLQog
dm9pZCBwYXNfYml0Zml0X3ZpZXdfbm90ZV9ub25lbXB0aW5lc3MocGFzX2JpdGZpdF92aWV3KiB2
aWV3KQogewotICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5X2FuZF9pbmRleCBkaXJlY3RvcnlfYW5k
X2luZGV4OwotICAgIAotICAgIGRpcmVjdG9yeV9hbmRfaW5kZXggPSBwYXNfYml0Zml0X3ZpZXdf
Y3VycmVudF9kaXJlY3RvcnlfYW5kX2luZGV4KHZpZXcpOwogICAgIHBhc19iaXRmaXRfZGlyZWN0
b3J5X21heF9mcmVlX2RpZF9iZWNvbWVfdW5wcm9jZXNzZWRfdW5jaGVja2VkKAotICAgICAgICBk
aXJlY3RvcnlfYW5kX2luZGV4LmRpcmVjdG9yeSwKLSAgICAgICAgZGlyZWN0b3J5X2FuZF9pbmRl
eC5pbmRleCwKKyAgICAgICAgcGFzX2NvbXBhY3RfYml0Zml0X2RpcmVjdG9yeV9wdHJfbG9hZF9u
b25fbnVsbCgmdmlldy0+ZGlyZWN0b3J5KSwKKyAgICAgICAgdmlldy0+aW5kZXgsCiAgICAgICAg
ICJiZWNvbWUgdW5wcm9jZXNzZWQgb24gbm90ZV9ub25lbXB0aW5lc3MiKTsKIH0KIApAQCAtOTEs
MjAgKzc0LDE3IEBAIHN0YXRpYyB2b2lkIGRpZF9iZWNvbWVfZW1wdHlfZm9yX2JpdHMocGEKIHsK
ICAgICBwYWdlLT51c2VfZXBvY2ggPSBwYXNfZ2V0X2Vwb2NoKCk7CiAKLSAgICBwYXNfYml0Zml0
X2dsb2JhbF9kaXJlY3Rvcnlfdmlld19kaWRfYmVjb21lX2VtcHR5KAotICAgICAgICBwYXNfY29t
cGFjdF9iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgmdmlldy0+Z2xv
YmFsX2RpcmVjdG9yeSksIHZpZXcpOworICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5X3ZpZXdfZGlk
X2JlY29tZV9lbXB0eSgKKyAgICAgICAgcGFzX2NvbXBhY3RfYml0Zml0X2RpcmVjdG9yeV9wdHJf
bG9hZF9ub25fbnVsbCgmdmlldy0+ZGlyZWN0b3J5KSwgdmlldyk7CiB9CiAKIHZvaWQgcGFzX2Jp
dGZpdF92aWV3X25vdGVfZnVsbF9lbXB0aW5lc3MocGFzX2JpdGZpdF92aWV3KiB2aWV3LCBwYXNf
Yml0Zml0X3BhZ2UqIHBhZ2UpCiB7Ci0gICAgcGFzX2JpdGZpdF9kaXJlY3RvcnlfYW5kX2luZGV4
IGRpcmVjdG9yeV9hbmRfaW5kZXg7Ci0KICAgICBkaWRfYmVjb21lX2VtcHR5X2Zvcl9iaXRzKHZp
ZXcsIHBhZ2UpOwogICAgIAotICAgIGRpcmVjdG9yeV9hbmRfaW5kZXggPSBwYXNfYml0Zml0X3Zp
ZXdfY3VycmVudF9kaXJlY3RvcnlfYW5kX2luZGV4KHZpZXcpOwogICAgIHBhc19iaXRmaXRfZGly
ZWN0b3J5X21heF9mcmVlX2RpZF9iZWNvbWVfZW1wdHkoCi0gICAgICAgIGRpcmVjdG9yeV9hbmRf
aW5kZXguZGlyZWN0b3J5LAotICAgICAgICBkaXJlY3RvcnlfYW5kX2luZGV4LmluZGV4LAorICAg
ICAgICBwYXNfY29tcGFjdF9iaXRmaXRfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKCZ2aWV3
LT5kaXJlY3RvcnkpLAorICAgICAgICB2aWV3LT5pbmRleCwKICAgICAgICAgImJlY29tZSBlbXB0
eSBvbiBub3RlX2VtcHRpbmVzcyIpOwogfQogCkBAIC0xMTUsMTEgKzk1LDkgQEAgdm9pZCBwYXNf
Yml0Zml0X3ZpZXdfbm90ZV9wYXJ0aWFsX2VtcHRpbgogCiB2b2lkIHBhc19iaXRmaXRfdmlld19u
b3RlX21heF9mcmVlKHBhc19iaXRmaXRfdmlldyogdmlldykKIHsKLSAgICBwYXNfYml0Zml0X2Rp
cmVjdG9yeV9hbmRfaW5kZXggZGlyZWN0b3J5X2FuZF9pbmRleDsKLSAgICBkaXJlY3RvcnlfYW5k
X2luZGV4ID0gcGFzX2JpdGZpdF92aWV3X2N1cnJlbnRfZGlyZWN0b3J5X2FuZF9pbmRleCh2aWV3
KTsKICAgICBwYXNfYml0Zml0X2RpcmVjdG9yeV9tYXhfZnJlZV9kaWRfYmVjb21lX3VucHJvY2Vz
c2VkKAotICAgICAgICBkaXJlY3RvcnlfYW5kX2luZGV4LmRpcmVjdG9yeSwKLSAgICAgICAgZGly
ZWN0b3J5X2FuZF9pbmRleC5pbmRleCwKKyAgICAgICAgcGFzX2NvbXBhY3RfYml0Zml0X2RpcmVj
dG9yeV9wdHJfbG9hZF9ub25fbnVsbCgmdmlldy0+ZGlyZWN0b3J5KSwKKyAgICAgICAgdmlldy0+
aW5kZXgsCiAgICAgICAgICJiZWNvbWUgdW5wcm9jZXNzZWQgb24gbm90ZV9tYXhfZnJlZSIpOwog
fQogCkBAIC0xMzcsOCArMTE1LDggQEAgc3RhdGljIHBhc19oZWFwX3N1bW1hcnkgY29tcHV0ZV9z
dW1tYXJ5KAogICAgIHNpemVfdCBvZmZzZXQ7CiAKICAgICBjb25maWdfcHRyID0gcGFzX2JpdGZp
dF9wYWdlX2NvbmZpZ19raW5kX2dldF9jb25maWcoCi0gICAgICAgIHBhc19jb21wYWN0X2JpdGZp
dF9nbG9iYWxfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKAotICAgICAgICAgICAgJnZpZXct
Pmdsb2JhbF9kaXJlY3RvcnkpLT5iYXNlLmNvbmZpZ19raW5kKTsKKyAgICAgICAgcGFzX2NvbXBh
Y3RfYml0Zml0X2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgKKyAgICAgICAgICAgICZ2aWV3
LT5kaXJlY3RvcnkpLT5jb25maWdfa2luZCk7CiAgICAgY29uZmlnID0gKmNvbmZpZ19wdHI7CiAK
ICAgICByZXN1bHQgPSBwYXNfaGVhcF9zdW1tYXJ5X2NyZWF0ZV9lbXB0eSgpOwpAQCAtMjI5LDgg
KzIwNyw3IEBAIHN0YXRpYyBib29sIGZvcl9lYWNoX2xpdmVfb2JqZWN0KAogICAgICAgICByZXR1
cm4gdHJ1ZTsKIAogICAgIGNvbmZpZ19wdHIgPSBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmRf
Z2V0X2NvbmZpZygKLSAgICAgICAgcGFzX2NvbXBhY3RfYml0Zml0X2dsb2JhbF9kaXJlY3Rvcnlf
cHRyX2xvYWRfbm9uX251bGwoCi0gICAgICAgICAgICAmdmlldy0+Z2xvYmFsX2RpcmVjdG9yeSkt
PmJhc2UuY29uZmlnX2tpbmQpOworICAgICAgICBwYXNfY29tcGFjdF9iaXRmaXRfZGlyZWN0b3J5
X3B0cl9sb2FkX25vbl9udWxsKCZ2aWV3LT5kaXJlY3RvcnkpLT5jb25maWdfa2luZCk7CiAgICAg
Y29uZmlnID0gKmNvbmZpZ19wdHI7CiAKICAgICBib3VuZGFyeSA9IHZpZXctPnBhZ2VfYm91bmRh
cnk7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X3Zp
ZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
Yml0Zml0X3ZpZXcuaAkocmV2aXNpb24gMjc5OTY0KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX2JpdGZpdF92aWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDQyICsy
NywzMCBAQAogI2RlZmluZSBQQVNfQklURklUX1ZJRVdfSAogCiAjaW5jbHVkZSAicGFzX2JpdGZp
dF9wYWdlX2NvbmZpZy5oIgotI2luY2x1ZGUgInBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfYmlh
c2luZ19kaXJlY3RvcnlfcHRyLmgiCi0jaW5jbHVkZSAicGFzX2NvbXBhY3RfYml0Zml0X2dsb2Jh
bF9kaXJlY3RvcnlfcHRyLmgiCisjaW5jbHVkZSAicGFzX2NvbXBhY3RfYml0Zml0X2RpcmVjdG9y
eV9wdHIuaCIKICNpbmNsdWRlICJwYXNfaGVhcF9zdW1tYXJ5LmgiCiAjaW5jbHVkZSAicGFzX2xv
Y2suaCIKIAogUEFTX0JFR0lOX0VYVEVSTl9DOwogCi1zdHJ1Y3QgcGFzX2JpdGZpdF9nbG9iYWxf
ZGlyZWN0b3J5Oworc3RydWN0IHBhc19iaXRmaXRfZGlyZWN0b3J5Owogc3RydWN0IHBhc19iaXRm
aXRfcGFnZTsKIHN0cnVjdCBwYXNfYml0Zml0X3ZpZXc7Ci10eXBlZGVmIHN0cnVjdCBwYXNfYml0
Zml0X2dsb2JhbF9kaXJlY3RvcnkgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5OwordHlwZWRl
ZiBzdHJ1Y3QgcGFzX2JpdGZpdF9kaXJlY3RvcnkgcGFzX2JpdGZpdF9kaXJlY3Rvcnk7CiB0eXBl
ZGVmIHN0cnVjdCBwYXNfYml0Zml0X3BhZ2UgcGFzX2JpdGZpdF9wYWdlOwogdHlwZWRlZiBzdHJ1
Y3QgcGFzX2JpdGZpdF92aWV3IHBhc19iaXRmaXRfdmlldzsKIAogc3RydWN0IHBhc19iaXRmaXRf
dmlldyB7CiAgICAgdm9pZCogcGFnZV9ib3VuZGFyeTsKLSAgICBwYXNfY29tcGFjdF9hdG9taWNf
Yml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5X3B0ciBiaWFzaW5nX2RpcmVjdG9yeTsKLSAgICBwYXNf
Y29tcGFjdF9iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9wdHIgZ2xvYmFsX2RpcmVjdG9yeTsKKyAg
ICBwYXNfY29tcGFjdF9iaXRmaXRfZGlyZWN0b3J5X3B0ciBkaXJlY3Rvcnk7CiAgICAgYm9vbCBp
c19vd25lZDsKLSAgICB1bnNpZ25lZCBpbmRleF9pbl9nbG9iYWw7Ci0gICAgdW5zaWduZWQgaW5k
ZXhfaW5fYmlhc2luZzsKKyAgICB1bnNpZ25lZCBpbmRleDsKICAgICBwYXNfbG9jayBvd25lcnNo
aXBfbG9jazsKICAgICBwYXNfbG9jayBjb21taXRfbG9jazsKIH07CiAKLVBBU19BUEkgcGFzX2Jp
dGZpdF92aWV3KiBwYXNfYml0Zml0X3ZpZXdfY3JlYXRlKHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVj
dG9yeSogZGlyZWN0b3J5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdW5zaWduZWQgaW5kZXhfaW5fZ2xvYmFsKTsKLQotUEFTX0FQSSB2b2lkIHBhc19i
aXRmaXRfdmlld19sb2NrX293bmVyc2hpcF9sb2NrX3Nsb3cocGFzX2JpdGZpdF92aWV3KiB2aWV3
KTsKLQotc3RhdGljIGlubGluZSB2b2lkIHBhc19iaXRmaXRfdmlld19sb2NrX293bmVyc2hpcF9s
b2NrKHBhc19iaXRmaXRfdmlldyogdmlldykKLXsKLSAgICBpZiAocGFzX2xvY2tfdHJ5X2xvY2so
JnZpZXctPm93bmVyc2hpcF9sb2NrKSkKLSAgICAgICAgcmV0dXJuOwotICAgIHBhc19iaXRmaXRf
dmlld19sb2NrX293bmVyc2hpcF9sb2NrX3Nsb3codmlldyk7Ci19CitQQVNfQVBJIHBhc19iaXRm
aXRfdmlldyogcGFzX2JpdGZpdF92aWV3X2NyZWF0ZShwYXNfYml0Zml0X2RpcmVjdG9yeSogZGly
ZWN0b3J5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dW5zaWduZWQgaW5kZXgpOwogCiBQQVNfQVBJIHZvaWQgcGFzX2JpdGZpdF92aWV3X25vdGVfbm9u
ZW1wdGluZXNzKHBhc19iaXRmaXRfdmlldyogdmlldyk7CiBQQVNfQVBJIHZvaWQgcGFzX2JpdGZp
dF92aWV3X25vdGVfZnVsbF9lbXB0aW5lc3MocGFzX2JpdGZpdF92aWV3KiB2aWV3LCBwYXNfYml0
Zml0X3BhZ2UqIHBhZ2UpOwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX2JpdGZpdF92aWV3X2lubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X3ZpZXdfaW5saW5lcy5oCShyZXZpc2lvbiAyNzk5
NjQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X3ZpZXdf
aW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiwzOSArMjYsMTEgQEAKICNpZm5kZWYgUEFT
X0JJVEZJVF9WSUVXX0lOTElORVNfSAogI2RlZmluZSBQQVNfQklURklUX1ZJRVdfSU5MSU5FU19I
CiAKLSNpbmNsdWRlICJwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5LmgiCi0jaW5jbHVkZSAi
cGFzX2JpdGZpdF9kaXJlY3RvcnlfYW5kX2luZGV4LmgiCi0jaW5jbHVkZSAicGFzX2JpdGZpdF9n
bG9iYWxfZGlyZWN0b3J5LmgiCiAjaW5jbHVkZSAicGFzX2JpdGZpdF9wYWdlLmgiCiAjaW5jbHVk
ZSAicGFzX2JpdGZpdF92aWV3LmgiCiAKIFBBU19CRUdJTl9FWFRFUk5fQzsKIAotc3RhdGljIGlu
bGluZSBwYXNfYml0Zml0X2RpcmVjdG9yeV9hbmRfaW5kZXgKLXBhc19iaXRmaXRfdmlld19jdXJy
ZW50X2RpcmVjdG9yeV9hbmRfaW5kZXgocGFzX2JpdGZpdF92aWV3KiB2aWV3KQotewotICAgIHBh
c19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkqIGRpcmVjdG9yeTsKLSAgICBkaXJlY3RvcnkgPSBw
YXNfY29tcGFjdF9hdG9taWNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5X3B0cl9sb2FkKCZ2aWV3
LT5iaWFzaW5nX2RpcmVjdG9yeSk7Ci0gICAgaWYgKGRpcmVjdG9yeSkgewotICAgICAgICByZXR1
cm4gcGFzX2JpdGZpdF9kaXJlY3RvcnlfYW5kX2luZGV4X2NyZWF0ZSgKLSAgICAgICAgICAgICZk
aXJlY3RvcnktPmJhc2UsIHZpZXctPmluZGV4X2luX2JpYXNpbmcsIHBhc19iaXRmaXRfYmlhc2lu
Z19kaXJlY3Rvcnlfa2luZCk7Ci0gICAgfQotICAgIHJldHVybiBwYXNfYml0Zml0X2RpcmVjdG9y
eV9hbmRfaW5kZXhfY3JlYXRlKAotICAgICAgICAmcGFzX2NvbXBhY3RfYml0Zml0X2dsb2JhbF9k
aXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoJnZpZXctPmdsb2JhbF9kaXJlY3RvcnkpLT5iYXNl
LAotICAgICAgICB2aWV3LT5pbmRleF9pbl9nbG9iYWwsIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVj
dG9yeV9raW5kKTsKLX0KLQotc3RhdGljIGlubGluZSBwYXNfYml0Zml0X2RpcmVjdG9yeSogcGFz
X2JpdGZpdF92aWV3X2N1cnJlbnRfZGlyZWN0b3J5KHBhc19iaXRmaXRfdmlldyogdmlldykKLXsK
LSAgICByZXR1cm4gcGFzX2JpdGZpdF92aWV3X2N1cnJlbnRfZGlyZWN0b3J5X2FuZF9pbmRleCh2
aWV3KS5kaXJlY3Rvcnk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdW5zaWduZWQgcGFzX2JpdGZpdF92
aWV3X2luZGV4X2luX2N1cnJlbnQocGFzX2JpdGZpdF92aWV3KiB2aWV3KQotewotICAgIHJldHVy
biBwYXNfYml0Zml0X3ZpZXdfY3VycmVudF9kaXJlY3RvcnlfYW5kX2luZGV4KHZpZXcpLmluZGV4
OwotfQotCi0KIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBib29sIHBhc19iaXRmaXRfdmlld19p
c19lbXB0eShwYXNfYml0Zml0X3ZpZXcqIHZpZXcsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2JpdGZpdF9wYWdlX2NvbmZpZyBwYWdl
X2NvbmZpZykKIHsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19j
b21wYWN0X2F0b21pY19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3NfcHRyLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbXBhY3RfYXRvbWljX2Jp
dGZpdF9nbG9iYWxfc2l6ZV9jbGFzc19wdHIuaAkocmV2aXNpb24gMjc5OTY0KQorKysgU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9nbG9i
YWxfc2l6ZV9jbGFzc19wdHIuaAkod29ya2luZyBjb3B5KQpAQCAtMzAsMTEgKzMwLDExIEBACiAK
IFBBU19CRUdJTl9FWFRFUk5fQzsKIAotc3RydWN0IHBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xh
c3M7Ci10eXBlZGVmIHN0cnVjdCBwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzIHBhc19iaXRm
aXRfZ2xvYmFsX3NpemVfY2xhc3M7CitzdHJ1Y3QgcGFzX2JpdGZpdF9zaXplX2NsYXNzOwordHlw
ZWRlZiBzdHJ1Y3QgcGFzX2JpdGZpdF9zaXplX2NsYXNzIHBhc19iaXRmaXRfc2l6ZV9jbGFzczsK
IAotUEFTX0RFRklORV9DT01QQUNUX0FUT01JQ19QVFIocGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9j
bGFzcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19jb21wYWN0X2F0b21pY19i
aXRmaXRfZ2xvYmFsX3NpemVfY2xhc3NfcHRyKTsKK1BBU19ERUZJTkVfQ09NUEFDVF9BVE9NSUNf
UFRSKHBhc19iaXRmaXRfc2l6ZV9jbGFzcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfc2l6ZV9jbGFzc19wdHIpOwogCiBQQVNfRU5EX0VY
VEVSTl9DOwogCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfY29t
cGFjdF9hdG9taWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbXBhY3RfYXRv
bWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0ci5oCShyZXZpc2lvbiAyNzk5
NjQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tcGFjdF9hdG9t
aWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyLmgJKG5vbmV4aXN0ZW50KQpA
QCAtMSw0MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgot
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAot
ICovCi0KLSNpZm5kZWYgUEFTX0NPTVBBQ1RfQVRPTUlDX1NFR1JFR0FURURfR0xPQkFMX1NJWkVf
RElSRUNUT1JZX1BUUl9ICi0jZGVmaW5lIFBBU19DT01QQUNUX0FUT01JQ19TRUdSRUdBVEVEX0dM
T0JBTF9TSVpFX0RJUkVDVE9SWV9QVFJfSAotCi0jaW5jbHVkZSAicGFzX2NvbXBhY3RfYXRvbWlj
X3B0ci5oIgotCi1QQVNfQkVHSU5fRVhURVJOX0M7Ci0KLXN0cnVjdCBwYXNfc2VncmVnYXRlZF9n
bG9iYWxfc2l6ZV9kaXJlY3Rvcnk7Ci10eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnkgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5Owot
Ci1QQVNfREVGSU5FX0NPTVBBQ1RfQVRPTUlDX1BUUihwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfY29tcGFjdF9h
dG9taWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyKTsKLQotUEFTX0VORF9F
WFRFUk5fQzsKLQotI2VuZGlmIC8qIFBBU19DT01QQUNUX0FUT01JQ19TRUdSRUdBVEVEX0dMT0JB
TF9TSVpFX0RJUkVDVE9SWV9QVFJfSCAqLwotCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9w
dHIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
Y29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIuaAkobm9uZXhpc3Rl
bnQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tcGFjdF9hdG9t
aWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIuaAkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNpZm5kZWYgUEFTX0NPTVBBQ1RfQVRPTUlDX1NFR1JFR0FURURfU0laRV9ESVJFQ1RPUllfUFRS
X0gKKyNkZWZpbmUgUEFTX0NPTVBBQ1RfQVRPTUlDX1NFR1JFR0FURURfU0laRV9ESVJFQ1RPUllf
UFRSX0gKKworI2luY2x1ZGUgInBhc19jb21wYWN0X2F0b21pY19wdHIuaCIKKworUEFTX0JFR0lO
X0VYVEVSTl9DOworCitzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnk7Cit0eXBl
ZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSBwYXNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeTsKKworUEFTX0RFRklORV9DT01QQUNUX0FUT01JQ19QVFIocGFzX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNf
Y29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIpOworCitQQVNfRU5E
X0VYVEVSTl9DOworCisjZW5kaWYgLyogUEFTX0NPTVBBQ1RfQVRPTUlDX1NFR1JFR0FURURfU0la
RV9ESVJFQ1RPUllfUFRSX0ggKi8KKwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19wdHIuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tcGFjdF9zZWdy
ZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X3B0ci5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3Zp
ZXdfcHRyLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoYykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFBBU19DT01QQUNUX1NFR1JF
R0FURURfRVhDTFVTSVZFX1ZJRVdfUFRSX0gKKyNkZWZpbmUgUEFTX0NPTVBBQ1RfU0VHUkVHQVRF
RF9FWENMVVNJVkVfVklFV19QVFJfSAorCisjaW5jbHVkZSAicGFzX2NvbXBhY3RfcHRyLmgiCisK
K1BBU19CRUdJTl9FWFRFUk5fQzsKKworc3RydWN0IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92
aWV3OwordHlwZWRlZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcgcGFzX3Nl
Z3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXc7CisKK1BBU19ERUZJTkVfQ09NUEFDVF9QVFIocGFzX3Nl
Z3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcsCisgICAgICAgICAgICAgICAgICAgICAgIHBhc19jb21w
YWN0X3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyKTsKKworUEFTX0VORF9FWFRFUk5fQzsK
KworI2VuZGlmIC8qIFBBU19DT01QQUNUX1NFR1JFR0FURURfRVhDTFVTSVZFX1ZJRVdfUFRSX0gg
Ki8KKwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbXBhY3Rf
c2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnlfcHRyLmgJKHJldmlzaW9uIDI3OTk2NCkKKysrIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVf
ZGlyZWN0b3J5X3B0ci5oCShub25leGlzdGVudCkKQEAgLTEsNDIgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoYykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
Ci0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaWZuZGVmIFBBU19DT01QQUNU
X1NFR1JFR0FURURfR0xPQkFMX1NJWkVfRElSRUNUT1JZX1BUUl9ICi0jZGVmaW5lIFBBU19DT01Q
QUNUX1NFR1JFR0FURURfR0xPQkFMX1NJWkVfRElSRUNUT1JZX1BUUl9ICi0KLSNpbmNsdWRlICJw
YXNfY29tcGFjdF9wdHIuaCIKLQotUEFTX0JFR0lOX0VYVEVSTl9DOwotCi1zdHJ1Y3QgcGFzX3Nl
Z3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5OwotdHlwZWRlZiBzdHJ1Y3QgcGFzX3NlZ3Jl
Z2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2Rp
cmVjdG9yeTsKLQotUEFTX0RFRklORV9DT01QQUNUX1BUUihwYXNfc2VncmVnYXRlZF9nbG9iYWxf
c2l6ZV9kaXJlY3RvcnksCi0gICAgICAgICAgICAgICAgICAgICAgIHBhc19jb21wYWN0X3NlZ3Jl
Z2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cik7Ci0KLVBBU19FTkRfRVhURVJOX0M7Ci0K
LSNlbmRpZiAvKiBQQVNfQ09NUEFDVF9TRUdSRUdBVEVEX0dMT0JBTF9TSVpFX0RJUkVDVE9SWV9Q
VFJfSCAqLwotCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfY29t
cGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0ci5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3RvcnlfcHRyLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIuaAkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgUEFTX0NPTVBBQ1RfU0VHUkVHQVRFRF9TSVpFX0RJ
UkVDVE9SWV9QVFJfSAorI2RlZmluZSBQQVNfQ09NUEFDVF9TRUdSRUdBVEVEX1NJWkVfRElSRUNU
T1JZX1BUUl9ICisKKyNpbmNsdWRlICJwYXNfY29tcGFjdF9wdHIuaCIKKworUEFTX0JFR0lOX0VY
VEVSTl9DOworCitzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnk7Cit0eXBlZGVm
IHN0cnVjdCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSBwYXNfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeTsKKworUEFTX0RFRklORV9DT01QQUNUX1BUUihwYXNfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeSwKKyAgICAgICAgICAgICAgICAgICAgICAgcGFzX2NvbXBhY3Rfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeV9wdHIpOworCitQQVNfRU5EX0VYVEVSTl9DOworCisjZW5kaWYgLyog
UEFTX0NPTVBBQ1RfU0VHUkVHQVRFRF9TSVpFX0RJUkVDVE9SWV9QVFJfSCAqLworCkluZGV4OiBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tcGFjdF9zdWJwYWdlX21hcF9l
bnRyeV9wdHIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfY29tcGFjdF9zdWJwYWdlX21hcF9lbnRyeV9wdHIuaAkocmV2aXNpb24gMjc5OTY0KQor
KysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbXBhY3Rfc3VicGFnZV9t
YXBfZW50cnlfcHRyLmgJKG5vbmV4aXN0ZW50KQpAQCAtMSw0MSArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChjKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
LSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5kZWYgUEFTX0NPTVBBQ1Rf
U1VCUEFHRV9NQVBfRU5UUllfUFRSX0gKLSNkZWZpbmUgUEFTX0NPTVBBQ1RfU1VCUEFHRV9NQVBf
RU5UUllfUFRSX0gKLQotI2luY2x1ZGUgInBhc19jb21wYWN0X3B0ci5oIgotCi1QQVNfQkVHSU5f
RVhURVJOX0M7Ci0KLXN0cnVjdCBwYXNfc3VicGFnZV9tYXBfZW50cnk7Ci10eXBlZGVmIHN0cnVj
dCBwYXNfc3VicGFnZV9tYXBfZW50cnkgcGFzX3N1YnBhZ2VfbWFwX2VudHJ5OwotCi1QQVNfREVG
SU5FX0NPTVBBQ1RfUFRSKHBhc19zdWJwYWdlX21hcF9lbnRyeSwgcGFzX2NvbXBhY3Rfc3VicGFn
ZV9tYXBfZW50cnlfcHRyKTsKLQotUEFTX0VORF9FWFRFUk5fQzsKLQotI2VuZGlmIC8qIFBBU19D
T01QQUNUX1NVQlBBR0VfTUFQX0VOVFJZX1BUUl9IICovCi0KSW5kZXg6IFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19kZWFsbG9jYXRlLmMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2RlYWxsb2NhdGUuYwkocmV2aXNpb24gMjc5
OTY0KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2RlYWxsb2NhdGUu
Ywkod29ya2luZyBjb3B5KQpAQCAtODMsNyArODMsOCBAQCBzdGF0aWMgdm9pZCBkZWFsbG9jYXRl
X3NlZ3JlZ2F0ZWQodWludHB0CiB7CiAgICAgcGFzX2xvY2sqIGhlbGRfbG9jazsKICAgICBoZWxk
X2xvY2sgPSBOVUxMOwotICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfZGVhbGxvY2F0ZShiZWdpbiwg
JmhlbGRfbG9jaywgKnBhZ2VfY29uZmlnKTsKKyAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2RlYWxs
b2NhdGUoCisgICAgICAgIGJlZ2luLCAmaGVsZF9sb2NrLCBwYXNfc2VncmVnYXRlZF9kZWFsbG9j
YXRpb25fZGlyZWN0X21vZGUsIE5VTEwsICpwYWdlX2NvbmZpZyk7CiAgICAgcGFzX2xvY2tfc3dp
dGNoKCZoZWxkX2xvY2ssIE5VTEwpOwogfQogCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfZGVhbGxvY2F0b3Jfc2NhdmVuZ2VfYWN0aW9uLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2RlYWxsb2NhdG9yX3NjYXZl
bmdlX2FjdGlvbi5oCShyZXZpc2lvbiAyNzk5NjQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfZGVhbGxvY2F0b3Jfc2NhdmVuZ2VfYWN0aW9uLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChjKSAyMDE5IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAxOS0yMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtMzIsNiArMzIsNyBAQCBQQVNfQkVHSU5fRVhURVJOX0M7CiAKIGVudW0gcGFzX2RlYWxsb2Nh
dG9yX3NjYXZlbmdlX2FjdGlvbiB7CiAgICAgcGFzX2RlYWxsb2NhdG9yX3NjYXZlbmdlX25vX2Fj
dGlvbiwKKyAgICBwYXNfZGVhbGxvY2F0b3Jfc2NhdmVuZ2VfZmx1c2hfbG9nX2lmX2NsZWFuX2Fj
dGlvbiwKICAgICBwYXNfZGVhbGxvY2F0b3Jfc2NhdmVuZ2VfZmx1c2hfbG9nX2FjdGlvbgogfTsK
IApAQCAtNDQsNiArNDUsOCBAQCBwYXNfZGVhbGxvY2F0b3Jfc2NhdmVuZ2VfYWN0aW9uX2dldF9z
dHJpCiAgICAgewogICAgIGNhc2UgcGFzX2RlYWxsb2NhdG9yX3NjYXZlbmdlX25vX2FjdGlvbjoK
ICAgICAgICAgcmV0dXJuICJub19hY3Rpb24iOworICAgIGNhc2UgcGFzX2RlYWxsb2NhdG9yX3Nj
YXZlbmdlX2ZsdXNoX2xvZ19pZl9jbGVhbl9hY3Rpb246CisgICAgICAgIHJldHVybiAiZmx1c2hf
bG9nX2lmX2NsZWFuX2FjdGlvbiI7CiAgICAgY2FzZSBwYXNfZGVhbGxvY2F0b3Jfc2NhdmVuZ2Vf
Zmx1c2hfbG9nX2FjdGlvbjoKICAgICAgICAgcmV0dXJuICJmbHVzaF9sb2dfYWN0aW9uIjsKICAg
ICB9CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZGVzaWduYXRl
ZF9pbnRyaW5zaWNfaGVhcC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19kZXNpZ25hdGVkX2ludHJpbnNpY19oZWFwLmMJKHJldmlzaW9uIDI3OTk2
NCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19kZXNpZ25hdGVkX2lu
dHJpbnNpY19oZWFwLmMJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDcgKzQ4LDcgQEAgc3RhdGljIHZv
aWQgc2V0X3VwX3JhbmdlKGluaXRpYWxpemVfZGF0YQogICAgICAgICAgICAgICAgICAgICAgICAg
IHNpemVfdCBzaXplKQogewogICAgIHBhc19hbGxvY2F0b3JfaW5kZXggZGVzaWduYXRlZF9pbmRl
eDsKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeTsK
KyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5OwogICAgIHBhc19h
bGxvY2F0b3JfaW5kZXggZGVzaWduYXRlZF9lbmQ7CiAKICAgICBQQVNfQVNTRVJUKApAQCAtODgs
MTcgKzg4LDIyIEBAIHN0YXRpYyB2b2lkIHNldF91cF9yYW5nZShpbml0aWFsaXplX2RhdGEKICAg
ICAgICAgICAgIFBBU19BU1NFUlQoIWRpcmVjdG9yeSk7CiAgICAgICAgICAgICAKICAgICAgICAg
ICAgIGRpcmVjdG9yeSA9IHBhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJlX3NpemVfZGlyZWN0b3J5
X2Zvcl9jb3VudCgKLSAgICAgICAgICAgICAgICBkYXRhLT5oZWFwLCBzaXplLCAxLCBwYXNfZm9y
Y2VfY291bnRfbG9va3VwLCBkYXRhLT5jb25maWdfcHRyLCBOVUxMKTsKKyAgICAgICAgICAgICAg
ICBkYXRhLT5oZWFwLCBzaXplLCAxLCBwYXNfZm9yY2VfY291bnRfbG9va3VwLCBkYXRhLT5jb25m
aWdfcHRyLCBOVUxMLAorICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0
b3J5X2luaXRpYWxfY3JlYXRpb25fbW9kZSk7CisKKyAgICAgICAgICAgIFBBU19BU1NFUlQoCisg
ICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfbnVtX2FsbG9jYXRv
cl9pbmRpY2VzKGRpcmVjdG9yeSkKKyAgICAgICAgICAgICAgICA8PSBwYXNfZGVzaWduYXRlZF9p
bnRyaW5zaWNfaGVhcF9udW1fYWxsb2NhdG9yX2luZGljZXMoKmRhdGEtPmNvbmZpZ19wdHIpKTsK
ICAgICAgICAgICAgIAogICAgICAgICAgICAgLyogVGhpcyBpcyBhIHdlaXJkIGFzc2VydCAtIGlm
IGl0IHdhcyBmYWxzZSB0aGVuIGl0IGRvZXNuJ3QgbGl0ZXJhbGx5IG1ha2UgdGhpcyBicm9rZW4u
CiAgICAgICAgICAgICAgICBJdCBqdXN0IG1lYW5zIHRoYXQgdGhlcmUgaXMgYSBjaGFuY2Ugb2Yg
bWVtb3J5IHdhc3RlYWdlLiBTbywgaWYgd2UgaGl0IGl0LCB0aGVuCiAgICAgICAgICAgICAgICBt
YXliZSB3ZSBjYW4ganVzdCBzYXkgdGhhdCB0aGF0J3MgT0sgYW5kIHJlbW92ZSB0aGUgYXNzZXJ0
PyAqLwogICAgICAgICAgICAgUEFTX0FTU0VSVChkaXJlY3RvcnktPm9iamVjdF9zaXplID09IHNp
emUpOwogICAgICAgICAgICAgCi0gICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnlfY3JlYXRlX3RsY19hbGxvY2F0b3IoZGlyZWN0b3J5KTsKKyAgICAgICAgICAg
IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2NyZWF0ZV90bGNfYWxsb2NhdG9yKGRpcmVj
dG9yeSk7CiAKICAgICAgICAgICAgIFBBU19BU1NFUlQoCi0gICAgICAgICAgICAgICAgcGFzX3Nl
Z3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2RhdGFfcHRyX2xvYWQoJmRpcmVjdG9yeS0+
ZGF0YSktPmFsbG9jYXRvcl9pbmRleAorICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5X2RhdGFfcHRyX2xvYWQoJmRpcmVjdG9yeS0+ZGF0YSktPmFsbG9jYXRvcl9p
bmRleAogICAgICAgICAgICAgICAgID09IHRhcmdldF9hbGxvY2F0b3JfaW5kZXgpOwogICAgICAg
ICB9IGVsc2UgewogICAgICAgICAgICAgcGFzX2FsbG9jYXRvcl9pbmRleCByZXN1bHRpbmdfaW5k
ZXg7CkBAIC0xMDksMTAgKzExNCwxMCBAQCBzdGF0aWMgdm9pZCBzZXRfdXBfcmFuZ2UoaW5pdGlh
bGl6ZV9kYXRhCiAgICAgICAgICAgICBQQVNfQVNTRVJUKHJlc3VsdGluZ19pbmRleCA9PSB0YXJn
ZXRfYWxsb2NhdG9yX2luZGV4KTsKICAgICAgICAgICAgIFBBU19BU1NFUlQocGFzX3RocmVhZF9s
b2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfZGlyZWN0b3J5KAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbGFzdF9ub2RlKSA9PSBkaXJl
Y3RvcnkpOwotICAgICAgICAgICAgUEFTX0FTU0VSVChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xh
eW91dF9ub2RlX2dldF9hbGxvY2F0b3JfaW5kZXgoCisgICAgICAgICAgICBQQVNfQVNTRVJUKHBh
c190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X2FsbG9jYXRvcl9pbmRleF9mb3Jf
YWxsb2NhdG9yKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9sYXlvdXRfbGFzdF9ub2RlKSA9PSB0YXJnZXRfYWxsb2NhdG9yX2luZGV4KTsKICAgICAg
ICAgICAgIFBBU19BU1NFUlQoCi0gICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5X2RhdGFfcHRyX2xvYWQoJmRpcmVjdG9yeS0+ZGF0YSktPmFsbG9jYXRv
cl9pbmRleAorICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2Rh
dGFfcHRyX2xvYWQoJmRpcmVjdG9yeS0+ZGF0YSktPmFsbG9jYXRvcl9pbmRleAogICAgICAgICAg
ICAgICAgID09IGRlc2lnbmF0ZWRfYmVnaW4gKiBkYXRhLT5udW1fYWxsb2NhdG9yX2luZGljZXMp
OwogICAgICAgICB9CiAgICAgfQpAQCAtMTI1LDYgKzEzMCw3IEBAIHZvaWQgcGFzX2Rlc2lnbmF0
ZWRfaW50cmluc2ljX2hlYXBfaW5pdGkKIHsKICAgICBwYXNfaGVhcF9jb25maWcgY29uZmlnOwog
ICAgIGluaXRpYWxpemVfZGF0YSBkYXRhOworICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5
b3V0X25vZGUgbGF5b3V0X25vZGU7CiAKICAgICBjb25maWcgPSAqY29uZmlnX3B0cjsKIApAQCAt
MTMyLDcgKzEzOCw3IEBAIHZvaWQgcGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXBfaW5pdGkK
ICAgICBwYXNfaGVhcF9sb2NrX2Fzc2VydF9oZWxkKCk7CiAgICAgUEFTX0FTU0VSVCghcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9ub2RlX2ZpcnN0KTsKICAgICBQQVNfQVNTRVJUKCFwYXNfdGhyZWFk
X2xvY2FsX2NhY2hlX2xheW91dF9uZXh0X2FsbG9jYXRvcl9pbmRleCk7Ci0gICAgUEFTX0FTU0VS
VChwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRy
X2lzX251bGwoCisgICAgUEFTX0FTU0VSVChwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeV9wdHJfaXNfbnVsbCgKICAgICAgICAgICAgICAgICAgICAmaGVhcC0+YmFz
aWNfc2l6ZV9kaXJlY3RvcnlfYW5kX2hlYWQpKTsKIAogICAgIGRhdGEuaGVhcCA9IGhlYXA7CkBA
IC0yMDEsNiArMjA3LDE0IEBAIHZvaWQgcGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXBfaW5p
dGkKICAgICAgICAgYnJlYWs7CiAgICAgfQogCisgICAgLyogQ2F1c2UgdGhlIGFsbG9jYXRpb24g
b2YgdmlldyBjYWNoZXMgdG8gaGFwcGVuIGFmdGVyIHdlIGhhdmUgbGFpZCBvdXQgYWxsIG9mIHRo
ZSBsb2NhbCBhbGxvY2F0b3JzLiAqLworICAgIGZvciAoUEFTX1RIUkVBRF9MT0NBTF9DQUNIRV9M
QVlPVVRfRUFDSF9BTExPQ0FUT1IobGF5b3V0X25vZGUpKSB7CisgICAgICAgIGlmICghcGFzX2lz
X3dyYXBwZWRfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeShsYXlvdXRfbm9kZSkpCisgICAgICAg
ICAgICBjb250aW51ZTsKKworICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9m
aW5pc2hfY3JlYXRpb24ocGFzX3Vud3JhcF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KGxheW91
dF9ub2RlKSk7CisgICAgfQorCiAgICAgaWYgKFBBU19FTkFCTEVfVEVTVElORykgewogICAgICAg
ICAvKiBDaGVjayB0aGF0IHdlIHdvbid0IHJldHVybiBhIGRlc2lnbmF0ZWQgaW5kZXggdGhhdCBp
cyBpbnZhbGlkLiAqLwogCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfZGVzaWduYXRlZF9pbnRyaW5zaWNfaGVhcF9pbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hl
YXBfaW5saW5lcy5oCShyZXZpc2lvbiAyNzk5NjQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfZGVzaWduYXRlZF9pbnRyaW5zaWNfaGVhcF9pbmxpbmVzLmgJKHdvcmtp
bmcgY29weSkKQEAgLTI3LDcgKzI3LDcgQEAKICNkZWZpbmUgUEFTX0RFU0lHTkFURURfSU5UUklO
U0lDX0hFQVBfSU5MSU5FU19ICiAKICNpbmNsdWRlICJwYXNfZGVzaWduYXRlZF9pbnRyaW5zaWNf
aGVhcC5oIgotI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9p
bmxpbmVzLmgiCisjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfaW5saW5l
cy5oIgogCiBQQVNfQkVHSU5fRVhURVJOX0M7CiAKQEAgLTM1LDEwICszNSw4IEBAIHN0YXRpYyBQ
QVNfQUxXQVlTX0lOTElORSBwYXNfYWxsb2NhdG9yX2kKIHBhc19kZXNpZ25hdGVkX2ludHJpbnNp
Y19oZWFwX251bV9hbGxvY2F0b3JfaW5kaWNlcyhwYXNfaGVhcF9jb25maWcgY29uZmlnKQogewog
ICAgIHJldHVybiBQQVNfTUFYKAotICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9k
aXJlY3RvcnlfbnVtX2FsbG9jYXRvcl9pbmRpY2VzX2Zvcl9jb25maWcoCi0gICAgICAgICAgICBj
b25maWcuc21hbGxfc2VncmVnYXRlZF9jb25maWcpLAotICAgICAgICBwYXNfc2VncmVnYXRlZF9n
bG9iYWxfc2l6ZV9kaXJlY3RvcnlfbnVtX2FsbG9jYXRvcl9pbmRpY2VzX2Zvcl9jb25maWcoCi0g
ICAgICAgICAgICBjb25maWcubWVkaXVtX3NlZ3JlZ2F0ZWRfY29uZmlnKSk7CisgICAgICAgIHBh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X251bV9hbGxvY2F0b3JfaW5kaWNlc19mb3JfY29u
ZmlnKGNvbmZpZy5zbWFsbF9zZWdyZWdhdGVkX2NvbmZpZyksCisgICAgICAgIHBhc19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5X251bV9hbGxvY2F0b3JfaW5kaWNlc19mb3JfY29uZmlnKGNvbmZp
Zy5tZWRpdW1fc2VncmVnYXRlZF9jb25maWcpKTsKIH0KIAogdHlwZWRlZiBzdHJ1Y3QgewpAQCAt
NjUsMTEgKzYzLDEyIEBAIHBhc19kZXNpZ25hdGVkX2luZGV4X3Jlc3VsdF9jcmVhdGVfc3VjY2UK
IH0KIAogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHNpemVfdAotcGFzX2Rlc2lnbmF0ZWRfaW50
cmluc2ljX2hlYXBfbnVtX2Rlc2lnbmF0ZWRfaW5kaWNlcyhwYXNfaGVhcF9jb25maWcgY29uZmln
KQorcGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXBfbnVtX2Rlc2lnbmF0ZWRfaW5kaWNlc19m
b3Jfc21hbGxfY29uZmlnKAorICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnIHNtYWxsX2Nv
bmZpZykKIHsKICAgICAvKiBGSVhNRTogVGhlc2UgY29uc3RhbnRzIGhhdmUgdG8gbWF0Y2ggd2hh
dCB3ZSBkbyB3aXRoIHNldF91cF9yYW5nZSBpbgogICAgICAgIHBhc19kZXNpZ25hdGVkX2ludHJp
bnNpY19oZWFwX2luaXRpYWxpemUuICovCi0gICAgc3dpdGNoIChwYXNfc2VncmVnYXRlZF9wYWdl
X2NvbmZpZ19taW5fYWxpZ24oY29uZmlnLnNtYWxsX3NlZ3JlZ2F0ZWRfY29uZmlnKSkgeworICAg
IHN3aXRjaCAocGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfbWluX2FsaWduKHNtYWxsX2NvbmZp
ZykpIHsKICAgICBjYXNlIDg6CiAgICAgICAgIHJldHVybiAzODsKICAgICBjYXNlIDE2OgpAQCAt
ODIsMjIgKzgxLDM5IEBAIHBhc19kZXNpZ25hdGVkX2ludHJpbnNpY19oZWFwX251bV9kZXNpZ24K
ICAgICB9CiB9CiAKLXN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfZGVzaWduYXRlZF9pbmRl
eF9yZXN1bHQgcGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXBfZGVzaWduYXRlZF9pbmRleCgK
K3N0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfZGVzaWduYXRlZF9pbmRleF9yZXN1bHQKK3Bh
c19kZXNpZ25hdGVkX2ludHJpbnNpY19oZWFwX2Rlc2lnbmF0ZWRfaW5kZXhfZm9yX3NtYWxsX2Nv
bmZpZygKICAgICBzaXplX3QgaW5kZXgsCiAgICAgcGFzX2ludHJpbnNpY19oZWFwX2Rlc2lnbmF0
aW9uX21vZGUgZGVzaWduYXRpb25fbW9kZSwKLSAgICBwYXNfaGVhcF9jb25maWcgY29uZmlnKQor
ICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnIHNtYWxsX2NvbmZpZykKIHsKICAgICBpZiAo
IWRlc2lnbmF0aW9uX21vZGUpCiAgICAgICAgIHJldHVybiBwYXNfZGVzaWduYXRlZF9pbmRleF9y
ZXN1bHRfY3JlYXRlX2ZhaWx1cmUoKTsKIAogICAgIC8qIE5PVEU6IFdlIGNvdWxkIGRvIG1hdGgg
aGVyZS4gV2UgY2hvb3NlIG5vdCB0byBiZWNhdXNlIHNvIGZhciB0aGF0IGhhcyBwcm92ZWQgdG8g
YmUKICAgICAgICBhIHBlcmYgcHJvYmxlbS4gKi8KLSAgICBpZiAoaW5kZXggPD0gcGFzX2Rlc2ln
bmF0ZWRfaW50cmluc2ljX2hlYXBfbnVtX2Rlc2lnbmF0ZWRfaW5kaWNlcyhjb25maWcpKQorICAg
IGlmIChpbmRleCA8PSBwYXNfZGVzaWduYXRlZF9pbnRyaW5zaWNfaGVhcF9udW1fZGVzaWduYXRl
ZF9pbmRpY2VzX2Zvcl9zbWFsbF9jb25maWcoc21hbGxfY29uZmlnKSkKICAgICAgICAgcmV0dXJu
IHBhc19kZXNpZ25hdGVkX2luZGV4X3Jlc3VsdF9jcmVhdGVfc3VjY2VzcyhpbmRleCk7CiAKICAg
ICByZXR1cm4gcGFzX2Rlc2lnbmF0ZWRfaW5kZXhfcmVzdWx0X2NyZWF0ZV9mYWlsdXJlKCk7CiB9
CiAKK3N0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBzaXplX3QKK3Bhc19kZXNpZ25hdGVkX2ludHJp
bnNpY19oZWFwX251bV9kZXNpZ25hdGVkX2luZGljZXMocGFzX2hlYXBfY29uZmlnIGNvbmZpZykK
K3sKKyAgICByZXR1cm4gcGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXBfbnVtX2Rlc2lnbmF0
ZWRfaW5kaWNlc19mb3Jfc21hbGxfY29uZmlnKAorICAgICAgICBjb25maWcuc21hbGxfc2VncmVn
YXRlZF9jb25maWcpOworfQorCitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2Rlc2lnbmF0
ZWRfaW5kZXhfcmVzdWx0IHBhc19kZXNpZ25hdGVkX2ludHJpbnNpY19oZWFwX2Rlc2lnbmF0ZWRf
aW5kZXgoCisgICAgc2l6ZV90IGluZGV4LAorICAgIHBhc19pbnRyaW5zaWNfaGVhcF9kZXNpZ25h
dGlvbl9tb2RlIGRlc2lnbmF0aW9uX21vZGUsCisgICAgcGFzX2hlYXBfY29uZmlnIGNvbmZpZykK
K3sKKyAgICByZXR1cm4gcGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXBfZGVzaWduYXRlZF9p
bmRleF9mb3Jfc21hbGxfY29uZmlnKAorICAgICAgICBpbmRleCwgZGVzaWduYXRpb25fbW9kZSwg
Y29uZmlnLnNtYWxsX3NlZ3JlZ2F0ZWRfY29uZmlnKTsKK30KKwogUEFTX0VORF9FWFRFUk5fQzsK
IAogI2VuZGlmIC8qIFBBU19ERVNJR05BVEVEX0lOVFJJTlNJQ19IRUFQX0lOTElORVNfSCAqLwpJ
bmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2VudW1lcmF0ZV9iaXRm
aXRfaGVhcHMuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfZW51bWVyYXRlX2JpdGZpdF9oZWFwcy5jCShyZXZpc2lvbiAyNzk5NjQpCisrKyBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZW51bWVyYXRlX2JpdGZpdF9oZWFwcy5j
CSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBACiAKICNpbmNsdWRlICJwYXNfZW51bWVy
YXRlX2JpdGZpdF9oZWFwcy5oIgogCi0jaW5jbHVkZSAicGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0
b3J5LmgiCisjaW5jbHVkZSAicGFzX2JpdGZpdF9kaXJlY3RvcnkuaCIKICNpbmNsdWRlICJwYXNf
Yml0Zml0X2hlYXAuaCIKICNpbmNsdWRlICJwYXNfYml0Zml0X3BhZ2UuaCIKICNpbmNsdWRlICJw
YXNfYml0Zml0X3ZpZXcuaCIKQEAgLTQzLDcgKzQzLDcgQEAgc3RhdGljIGJvb2wgdmlld19jYWxs
YmFjayhwYXNfZW51bWVyYXRvcgogICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxz
ZTsKICAgICAKICAgICBwYXNfYml0Zml0X3ZpZXcqIHZpZXc7Ci0gICAgcGFzX2JpdGZpdF9nbG9i
YWxfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7CisgICAgcGFzX2JpdGZpdF9kaXJlY3RvcnkqIGRpcmVj
dG9yeTsKICAgICBwYXNfYml0Zml0X3BhZ2VfY29uZmlnKiBwYWdlX2NvbmZpZzsKICAgICB1aW50
cHRyX3QgcGFnZV9ib3VuZGFyeTsKICAgICBwYXNfYml0Zml0X3BhZ2UqIHBhZ2U7CkBAIC02NCw3
ICs2NCw3IEBAIHN0YXRpYyBib29sIHZpZXdfY2FsbGJhY2socGFzX2VudW1lcmF0b3IKICAgICAg
ICAgcmV0dXJuIHRydWU7CiAKICAgICBwYWdlX2JvdW5kYXJ5ID0gKHVpbnRwdHJfdCl2aWV3LT5w
YWdlX2JvdW5kYXJ5OwotICAgIHBhZ2VfY29uZmlnID0gcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19r
aW5kX2dldF9jb25maWcoZGlyZWN0b3J5LT5iYXNlLmNvbmZpZ19raW5kKTsKKyAgICBwYWdlX2Nv
bmZpZyA9IHBhc19iaXRmaXRfcGFnZV9jb25maWdfa2luZF9nZXRfY29uZmlnKGRpcmVjdG9yeS0+
Y29uZmlnX2tpbmQpOwogICAgIAogICAgIGlmIChwYWdlX2JvdW5kYXJ5KSB7CiAgICAgICAgIHBh
c19lbnVtZXJhdG9yX2V4Y2x1ZGVfYWNjb3VudGVkX3BhZ2VzKApAQCAtMTQ2LDEwICsxNDYsMTAg
QEAgc3RhdGljIGJvb2wgdmlld19jYWxsYmFjayhwYXNfZW51bWVyYXRvcgogfQogCiBzdGF0aWMg
Ym9vbCBlbnVtZXJhdGVfYml0Zml0X2RpcmVjdG9yeShwYXNfZW51bWVyYXRvciogZW51bWVyYXRv
ciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19iaXRmaXRfZ2xv
YmFsX2RpcmVjdG9yeSogZGlyZWN0b3J5KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcGFzX2JpdGZpdF9kaXJlY3RvcnkqIGRpcmVjdG9yeSkKIHsKICAgICByZXR1cm4g
cGFzX2JpdGZpdF9kaXJlY3Rvcnlfdmlld192ZWN0b3JfaXRlcmF0ZV9yZW1vdGUoCi0gICAgICAg
ICZkaXJlY3RvcnktPmJhc2Uudmlld3MsIGVudW1lcmF0b3IsIDAsIHZpZXdfY2FsbGJhY2ssIGRp
cmVjdG9yeSk7CisgICAgICAgICZkaXJlY3RvcnktPnZpZXdzLCBlbnVtZXJhdG9yLCAwLCB2aWV3
X2NhbGxiYWNrLCBkaXJlY3RvcnkpOwogfQogCiBzdGF0aWMgYm9vbCBlbnVtZXJhdGVfYml0Zml0
X2hlYXBfY2FsbGJhY2socGFzX2VudW1lcmF0b3IqIGVudW1lcmF0b3IsCkluZGV4OiBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZW51bWVyYXRlX3NlZ3JlZ2F0ZWRfaGVhcHMu
Ywo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZW51
bWVyYXRlX3NlZ3JlZ2F0ZWRfaGVhcHMuYwkocmV2aXNpb24gMjc5OTY0KQorKysgU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2VudW1lcmF0ZV9zZWdyZWdhdGVkX2hlYXBzLmMJ
KHdvcmtpbmcgY29weSkKQEAgLTMzLDExICszMywxMiBAQAogI2luY2x1ZGUgInBhc19lbnVtZXJh
dG9yX2ludGVybmFsLmgiCiAjaW5jbHVkZSAicGFzX2Z1bGxfYWxsb2NfYml0cy5oIgogI2luY2x1
ZGUgInBhc19oYXNodGFibGUuaCIKKyNpbmNsdWRlICJwYXNfbG9jYWxfdmlld19jYWNoZV9ub2Rl
LmgiCiAjaW5jbHVkZSAicGFzX3B0cl9oYXNoX3NldC5oIgogI2luY2x1ZGUgInBhc19yZWR1bmRh
bnRfbG9jYWxfYWxsb2NhdG9yX25vZGUuaCIKICNpbmNsdWRlICJwYXNfcm9vdC5oIgogI2luY2x1
ZGUgInBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3LmgiCi0jaW5jbHVkZSAicGFzX3NlZ3Jl
Z2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5LmgiCisjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnkuaCIKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXcu
aCIKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9zaGFyZWRfaGFuZGxlLmgiCiAjaW5jbHVkZSAi
cGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXcuaCIKQEAgLTIyOCw3ICsyMjksNyBAQCBzdGF0aWMg
dm9pZCByZWNvcmRfcGFnZV9wYXlsb2FkX2FuZF9tZXRhCiAKIHN0YXRpYyB2b2lkIHJlY29yZF9w
YWdlX29iamVjdHMocGFzX2VudW1lcmF0b3IqIGVudW1lcmF0b3IsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGVudW1lcmF0aW9uX2NvbnRleHQqIGNvbnRleHQsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9y
eSogZGlyZWN0b3J5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyogcGFnZV9jb25maWcsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnRwdHJfdCBwYWdlX2JvdW5kYXJ5LAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlKiBwYWdlLApAQCAt
MzE0LDE2ICszMTUsMTYgQEAgc3RhdGljIGJvb2wgZW51bWVyYXRlX2V4Y2x1c2l2ZV92aWV3KHBh
cwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2V4
Y2x1c2l2ZV92aWV3KiB2aWV3LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGVudW1lcmF0aW9uX2NvbnRleHQqIGNvbnRleHQpCiB7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xv
YmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3RvcnkqIGRpcmVjdG9yeTsKICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyogcGFn
ZV9jb25maWc7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2RhdGEq
IGRhdGE7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YSogZGF0YTsKICAg
ICB1aW50cHRyX3QgcGFnZV9ib3VuZGFyeTsKICAgICBwYXNfc2VncmVnYXRlZF9wYWdlKiBwYWdl
OwogICAgIGxvY2FsX2FsbG9jYXRvcl9ub2RlKiBhbGxvY2F0b3Jfbm9kZTsKICAgICBwYXNfbG9j
YWxfYWxsb2NhdG9yKiBhbGxvY2F0b3I7CiAgICAgcGFzX2Z1bGxfYWxsb2NfYml0cyBhbGxvY19i
aXRzOwogCi0gICAgZGlyZWN0b3J5ID0gcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnlfcHRyX2xvYWRfcmVtb3RlKGVudW1lcmF0b3IsICZ2aWV3LT5kaXJlY3Rvcnkp
OworICAgIGRpcmVjdG9yeSA9IHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlf
cHRyX2xvYWRfcmVtb3RlKGVudW1lcmF0b3IsICZ2aWV3LT5kaXJlY3RvcnkpOwogICAgIHBhZ2Vf
Y29uZmlnID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZF9nZXRfY29uZmlnKGRpcmVj
dG9yeS0+YmFzZS5wYWdlX2NvbmZpZ19raW5kKTsKIAogICAgIHBhZ2VfYm91bmRhcnkgPSAodWlu
dHB0cl90KXZpZXctPnBhZ2VfYm91bmRhcnk7CkBAIC0zMzQsMTAgKzMzNSwxMCBAQCBzdGF0aWMg
Ym9vbCBlbnVtZXJhdGVfZXhjbHVzaXZlX3ZpZXcocGFzCiAgICAgcGFzX2VudW1lcmF0b3JfZXhj
bHVkZV9hY2NvdW50ZWRfcGFnZXMoCiAgICAgICAgIGVudW1lcmF0b3IsICh2b2lkKilwYWdlX2Jv
dW5kYXJ5LCBwYWdlX2NvbmZpZy0+YmFzZS5wYWdlX3NpemUpOwogICAgIAotICAgIGlmICghcGFz
X3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlwX2tpbmRfaXNfb3duZWQodmlldy0+
b3duZXJzaGlwX2tpbmQpKQorICAgIGlmICghdmlldy0+aXNfb3duZWQpCiAgICAgICAgIHJldHVy
biB0cnVlOwogCi0gICAgZGF0YSA9IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9y
eV9kYXRhX3B0cl9sb2FkX3JlbW90ZShlbnVtZXJhdG9yLCAmZGlyZWN0b3J5LT5kYXRhKTsKKyAg
ICBkYXRhID0gcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJfbG9hZF9yZW1v
dGUoZW51bWVyYXRvciwgJmRpcmVjdG9yeS0+ZGF0YSk7CiAKICAgICBwYWdlID0gKHBhc19zZWdy
ZWdhdGVkX3BhZ2UqKXBhZ2VfY29uZmlnLT5iYXNlLnBhZ2VfaGVhZGVyX2Zvcl9ib3VuZGFyeV9y
ZW1vdGUoCiAgICAgICAgIGVudW1lcmF0b3IsICh2b2lkKilwYWdlX2JvdW5kYXJ5KTsKQEAgLTQ0
OCw3ICs0NDksNyBAQCBzdGF0aWMgYm9vbCBlbnVtZXJhdGVfcGFydGlhbF92aWV3KHBhc19lCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxf
dmlldyogdmlldywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bWVyYXRp
b25fY29udGV4dCogY29udGV4dCkKIHsKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9k
aXJlY3RvcnkqIGRpcmVjdG9yeTsKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSog
ZGlyZWN0b3J5OwogICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnKiBwYWdlX2NvbmZpZzsK
ICAgICBwYXNfc2VncmVnYXRlZF9zaGFyZWRfdmlldyogc2hhcmVkX3ZpZXc7CiAgICAgcGFzX3No
YXJlZF9oYW5kbGVfb3JfcGFnZV9ib3VuZGFyeSBzaGFyZWRfaGFuZGxlX29yX3BhZ2VfYm91bmRh
cnk7CkBAIC00NjIsNyArNDYzLDcgQEAgc3RhdGljIGJvb2wgZW51bWVyYXRlX3BhcnRpYWxfdmll
dyhwYXNfZQogICAgIGlmICghdmlldy0+aXNfYXR0YWNoZWRfdG9fc2hhcmVkX2hhbmRsZSkKICAg
ICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBkaXJlY3RvcnkgPSBwYXNfY29tcGFjdF9zZWdyZWdh
dGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9yZW1vdGUoZW51bWVyYXRvciwgJnZp
ZXctPmRpcmVjdG9yeSk7CisgICAgZGlyZWN0b3J5ID0gcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeV9wdHJfbG9hZF9yZW1vdGUoZW51bWVyYXRvciwgJnZpZXctPmRpcmVjdG9y
eSk7CiAgICAgcGFnZV9jb25maWcgPSBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX2dl
dF9jb25maWcoZGlyZWN0b3J5LT5iYXNlLnBhZ2VfY29uZmlnX2tpbmQpOwogCiAgICAgc2hhcmVk
X3ZpZXcgPSBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NoYXJlZF92aWV3X3B0cl9sb2FkX3JlbW90
ZShlbnVtZXJhdG9yLCAmdmlldy0+c2hhcmVkX3ZpZXcpOwpAQCAtNTY2LDE0ICs1NjcsMTQgQEAg
c3RhdGljIGJvb2wgZW51bWVyYXRlX3NlZ3JlZ2F0ZWRfaGVhcF9jYQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkKiBhcmcpCiB7CiAgICAgZW51bWVy
YXRpb25fY29udGV4dCogY29udGV4dDsKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9k
aXJlY3RvcnkqIGRpcmVjdG9yeTsKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSog
ZGlyZWN0b3J5OwogCiAgICAgY29udGV4dCA9IGFyZzsKIAotICAgIGZvciAoZGlyZWN0b3J5ID0g
cGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9s
b2FkX3JlbW90ZSgKKyAgICBmb3IgKGRpcmVjdG9yeSA9IHBhc19jb21wYWN0X2F0b21pY19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkX3JlbW90ZSgKICAgICAgICAgICAgICBlbnVt
ZXJhdG9yLCAmaGVhcC0+c2VncmVnYXRlZF9oZWFwLmJhc2ljX3NpemVfZGlyZWN0b3J5X2FuZF9o
ZWFkKTsKICAgICAgICAgIGRpcmVjdG9yeTsKLSAgICAgICAgIGRpcmVjdG9yeSA9IHBhc19jb21w
YWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9yZW1v
dGUoCisgICAgICAgICBkaXJlY3RvcnkgPSBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeV9wdHJfbG9hZF9yZW1vdGUoCiAgICAgICAgICAgICAgZW51bWVyYXRvciwg
JmRpcmVjdG9yeS0+bmV4dF9mb3JfaGVhcCkpCiAgICAgICAgIGZvcl9lYWNoX3ZpZXcoZW51bWVy
YXRvciwgJmRpcmVjdG9yeS0+YmFzZSwgc2l6ZV9kaXJlY3Rvcnlfdmlld19jYWxsYmFjaywgY29u
dGV4dCk7CiAgICAgCkBAIC02NzgsMjMgKzY3OSwyNCBAQCBib29sIHBhc19lbnVtZXJhdGVfc2Vn
cmVnYXRlZF9oZWFwcyhwYXNfCiAKICAgICAgICAgbGF5b3V0X25vZGUgPSBwYXNfZW51bWVyYXRv
cl9yZWFkX2NvbXBhY3QoZW51bWVyYXRvciwgKnRsY19sYXlvdXRfZmlyc3Rfbm9kZV9wdHIpOwog
ICAgICAgICB3aGlsZSAobGF5b3V0X25vZGUpIHsKKyAgICAgICAgICAgIGJvb2wgaGFzX2FsbG9j
YXRvcjsKICAgICAgICAgICAgIHVuc2lnbmVkIGFsbG9jYXRvcl9pbmRleDsKLSAgICAgICAgICAg
IHBhc19sb2NhbF9hbGxvY2F0b3IqIGFsbG9jYXRvcjsKICAgICAgICAgICAgIAotICAgICAgICAg
ICAgaWYgKHBhc19pc193cmFwcGVkX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KGxh
eW91dF9ub2RlKSkgewotICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXpl
X2RpcmVjdG9yeSogZGlyZWN0b3J5OwotICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhKiBkYXRhOworICAgICAgICAgICAgaWYgKHBhc19pc193
cmFwcGVkX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkobGF5b3V0X25vZGUpKSB7CisgICAgICAg
ICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeTsKKyAgICAg
ICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhKiBkYXRhOwogCi0g
ICAgICAgICAgICAgICAgZGlyZWN0b3J5ID0gcGFzX3Vud3JhcF9zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeShsYXlvdXRfbm9kZSk7CisgICAgICAgICAgICAgICAgZGlyZWN0b3J5ID0g
cGFzX3Vud3JhcF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KGxheW91dF9ub2RlKTsKIAotICAg
ICAgICAgICAgICAgIGRhdGEgPSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnlf
ZGF0YV9wdHJfbG9hZF9yZW1vdGUoCisgICAgICAgICAgICAgICAgZGF0YSA9IHBhc19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5X2RhdGFfcHRyX2xvYWRfcmVtb3RlKAogICAgICAgICAgICAgICAg
ICAgICBlbnVtZXJhdG9yLCAmZGlyZWN0b3J5LT5kYXRhKTsKIAogICAgICAgICAgICAgICAgIGxh
eW91dF9ub2RlID0gcGFzX2NvbXBhY3RfYXRvbWljX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRf
bm9kZV9sb2FkX3JlbW90ZSgKICAgICAgICAgICAgICAgICAgICAgZW51bWVyYXRvciwgJmRhdGEt
Pm5leHRfZm9yX2xheW91dCk7CiAKICAgICAgICAgICAgICAgICBhbGxvY2F0b3JfaW5kZXggPSBk
YXRhLT5hbGxvY2F0b3JfaW5kZXg7Ci0gICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg
ICAgIGhhc19hbGxvY2F0b3IgPSB0cnVlOworICAgICAgICAgICAgfSBlbHNlIGlmIChwYXNfaXNf
d3JhcHBlZF9yZWR1bmRhbnRfbG9jYWxfYWxsb2NhdG9yX25vZGUobGF5b3V0X25vZGUpKSB7CiAg
ICAgICAgICAgICAgICAgcGFzX3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZSogcmVkdW5k
YW50X25vZGU7CiAKICAgICAgICAgICAgICAgICByZWR1bmRhbnRfbm9kZSA9IHBhc191bndyYXBf
cmVkdW5kYW50X2xvY2FsX2FsbG9jYXRvcl9ub2RlKGxheW91dF9ub2RlKTsKQEAgLTcwMywxNCAr
NzA1LDMxIEBAIGJvb2wgcGFzX2VudW1lcmF0ZV9zZWdyZWdhdGVkX2hlYXBzKHBhc18KICAgICAg
ICAgICAgICAgICAgICAgZW51bWVyYXRvciwgJnJlZHVuZGFudF9ub2RlLT5uZXh0KTsKIAogICAg
ICAgICAgICAgICAgIGFsbG9jYXRvcl9pbmRleCA9IHJlZHVuZGFudF9ub2RlLT5hbGxvY2F0b3Jf
aW5kZXg7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaGFzX2FsbG9jYXRvciA9IHRy
dWU7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHBhc19sb2NhbF92aWV3
X2NhY2hlX25vZGUqIGNhY2hlX25vZGU7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAg
ICAgUEFTX0FTU0VSVChwYXNfaXNfd3JhcHBlZF9sb2NhbF92aWV3X2NhY2hlX25vZGUobGF5b3V0
X25vZGUpKTsKIAotICAgICAgICAgICAgaWYgKGFsbG9jYXRvcl9pbmRleCA+PSB0bGMtPmFsbG9j
YXRvcl9pbmRleF91cHBlcl9ib3VuZCkKLSAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgICAgICBjYWNoZV9ub2RlID0gcGFzX3Vud3JhcF9sb2NhbF92aWV3X2NhY2hlX25vZGUobGF5
b3V0X25vZGUpOwogCi0gICAgICAgICAgICBhbGxvY2F0b3IgPSBwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX2dldF9sb2NhbF9hbGxvY2F0b3JfaW1wbCh0bGMsIGFsbG9jYXRvcl9pbmRleCk7CisgICAg
ICAgICAgICAgICAgbGF5b3V0X25vZGUgPSBwYXNfY29tcGFjdF9hdG9taWNfdGhyZWFkX2xvY2Fs
X2NhY2hlX2xheW91dF9ub2RlX2xvYWRfcmVtb3RlKAorICAgICAgICAgICAgICAgICAgICBlbnVt
ZXJhdG9yLCAmY2FjaGVfbm9kZS0+bmV4dCk7CiAKLSAgICAgICAgICAgIGNvbnNpZGVyX2FsbG9j
YXRvcihlbnVtZXJhdG9yLCAmY29udGV4dCwgYWxsb2NhdG9yKTsKKyAgICAgICAgICAgICAgICBh
bGxvY2F0b3JfaW5kZXggPSBVSU5UX01BWDsKKyAgICAgICAgICAgICAgICBoYXNfYWxsb2NhdG9y
ID0gZmFsc2U7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChoYXNfYWxsb2NhdG9y
KSB7CisgICAgICAgICAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvciogYWxsb2NhdG9yOworICAg
ICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChhbGxvY2F0b3JfaW5kZXggPj0gdGxj
LT5hbGxvY2F0b3JfaW5kZXhfdXBwZXJfYm91bmQpCisgICAgICAgICAgICAgICAgICAgIGJyZWFr
OworCisgICAgICAgICAgICAgICAgYWxsb2NhdG9yID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9n
ZXRfbG9jYWxfYWxsb2NhdG9yX2ltcGwodGxjLCBhbGxvY2F0b3JfaW5kZXgpOworICAgICAgICAg
ICAgICAgIAorICAgICAgICAgICAgICAgIGNvbnNpZGVyX2FsbG9jYXRvcihlbnVtZXJhdG9yLCAm
Y29udGV4dCwgYWxsb2NhdG9yKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KIApJ
bmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2V4Y2x1c2l2ZV92aWV3
X3RlbXBsYXRlX21lbW9fdGFibGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfZXhjbHVzaXZlX3ZpZXdfdGVtcGxhdGVfbWVtb190YWJsZS5oCShy
ZXZpc2lvbiAyNzk5NjQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
ZXhjbHVzaXZlX3ZpZXdfdGVtcGxhdGVfbWVtb190YWJsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
OSw3ICsyOSw3IEBACiAjaW5jbHVkZSAicGFzX2NvbmZpZy5oIgogCiAjaW5jbHVkZSAicGFzX2hh
c2h0YWJsZS5oIgotI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9y
eS5oIgorI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5LmgiCiAKIFBBU19C
RUdJTl9FWFRFUk5fQzsKIApAQCAtNTIsNyArNTIsNyBAQCBwYXNfZXhjbHVzaXZlX3ZpZXdfdGVt
cGxhdGVfbWVtb19rZXlfY3JlCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotdHlwZWRlZiBwYXNf
c2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIHBhc19leGNsdXNpdmVfdmlld190ZW1w
bGF0ZV9tZW1vX2VudHJ5OwordHlwZWRlZiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSog
cGFzX2V4Y2x1c2l2ZV92aWV3X3RlbXBsYXRlX21lbW9fZW50cnk7CiAKIHN0YXRpYyBpbmxpbmUg
cGFzX2V4Y2x1c2l2ZV92aWV3X3RlbXBsYXRlX21lbW9fZW50cnkKIHBhc19leGNsdXNpdmVfdmll
d190ZW1wbGF0ZV9tZW1vX2VudHJ5X2NyZWF0ZV9lbXB0eSh2b2lkKQpJbmRleDogU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2Z1bGxfYWxsb2NfYml0c19pbmxpbmVzLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2Z1bGxfYWxs
b2NfYml0c19pbmxpbmVzLmgJKHJldmlzaW9uIDI3OTk2NCkKKysrIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19mdWxsX2FsbG9jX2JpdHNfaW5saW5lcy5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zMCwxOSArMzAsMTkgQEAKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9leGNsdXNp
dmVfdmlldy5oIgogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnLmgiCiAjaW5j
bHVkZSAicGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3LmgiCi0jaW5jbHVkZSAicGFzX3NlZ3Jl
Z2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5LmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRf
dmlld19pbmxpbmVzLmgiCisjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnku
aCIKKyNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF92aWV3LmgiCiAKIFBBU19CRUdJTl9FWFRFUk5f
QzsKIAogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19mdWxsX2FsbG9jX2JpdHMKIHBhc19m
dWxsX2FsbG9jX2JpdHNfY3JlYXRlX2Zvcl9leGNsdXNpdmUoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRf
Z2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBw
YWdlX2NvbmZpZykKIHsKICAgICByZXR1cm4gcGFzX2Z1bGxfYWxsb2NfYml0c19jcmVhdGUoCiAg
ICAgICAgIHBhc19jb21wYWN0X3RhZ2dlZF91bnNpZ25lZF9wdHJfbG9hZF9ub25fbnVsbCgKLSAg
ICAgICAgICAgICZwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJf
bG9hZF9ub25fbnVsbCgKKyAgICAgICAgICAgICZwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eV9kYXRhX3B0cl9sb2FkX25vbl9udWxsKAogICAgICAgICAgICAgICAgICZkaXJlY3RvcnktPmRh
dGEpLT5mdWxsX2FsbG9jX2JpdHMpLAogICAgICAgICAwLAogICAgICAgICAodW5zaWduZWQpcGFz
X3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfbnVtX2FsbG9jX3dvcmRzKHBhZ2VfY29uZmlnKSk7CkBA
IC02NCwxMCArNjQsMTAgQEAgcGFzX2Z1bGxfYWxsb2NfYml0c19jcmVhdGVfZm9yX3BhcnRpYWwo
cAogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19mdWxsX2FsbG9jX2JpdHMKIHBhc19mdWxs
X2FsbG9jX2JpdHNfY3JlYXRlX2Zvcl92aWV3X2FuZF9kaXJlY3RvcnkoCiAgICAgcGFzX3NlZ3Jl
Z2F0ZWRfdmlldyB2aWV3LAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9y
eSogZGlyZWN0b3J5LAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rv
cnksCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcgcGFnZV9jb25maWcpCiB7Ci0gICAg
aWYgKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfZXhjbHVzaXZlX2lzaCh2aWV3KSkKKyAgICBpZiAo
cGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19zb21lX2V4Y2x1c2l2ZSh2aWV3KSkKICAgICAgICAgcmV0
dXJuIHBhc19mdWxsX2FsbG9jX2JpdHNfY3JlYXRlX2Zvcl9leGNsdXNpdmUoZGlyZWN0b3J5LCBw
YWdlX2NvbmZpZyk7CiAKICAgICByZXR1cm4gcGFzX2Z1bGxfYWxsb2NfYml0c19jcmVhdGVfZm9y
X3BhcnRpYWwodmlldyk7CkBAIC03OCw5ICs3OCw5IEBAIHBhc19mdWxsX2FsbG9jX2JpdHNfY3Jl
YXRlX2Zvcl92aWV3KAogICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldywKICAgICBwYXNfc2Vn
cmVnYXRlZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZpZykKIHsKLSAgICBpZiAocGFzX3NlZ3JlZ2F0
ZWRfdmlld19pc19leGNsdXNpdmVfaXNoKHZpZXcpKSB7Ci0gICAgICAgIHBhc19zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeSogc2l6ZV9kaXJlY3Rvcnk7Ci0gICAgICAgIHNpemVfZGly
ZWN0b3J5ID0gcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRy
X2xvYWRfbm9uX251bGwoCisgICAgaWYgKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfc29tZV9leGNs
dXNpdmUodmlldykpIHsKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIHNp
emVfZGlyZWN0b3J5OworICAgICAgICBzaXplX2RpcmVjdG9yeSA9IHBhc19jb21wYWN0X3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoCiAgICAgICAgICAgICAmcGFz
X3NlZ3JlZ2F0ZWRfdmlld19nZXRfZXhjbHVzaXZlKHZpZXcpLT5kaXJlY3RvcnkpOwogICAgICAg
ICByZXR1cm4gcGFzX2Z1bGxfYWxsb2NfYml0c19jcmVhdGVfZm9yX2V4Y2x1c2l2ZShzaXplX2Rp
cmVjdG9yeSwgcGFnZV9jb25maWcpOwogICAgIH0KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc19nZXRfaGVhcC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19nZXRfaGVhcC5oCShyZXZpc2lvbiAyNzk5NjQpCisrKyBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZ2V0X2hlYXAuaAkod29ya2luZyBj
b3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTktMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKGMpIDIwMTktMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTI2LDcgKzI2LDcgQEAKICNpZm5kZWYgUEFTX0dFVF9IRUFQX0gKICNkZWZpbmUg
UEFTX0dFVF9IRUFQX0gKIAotI2luY2x1ZGUgInBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeS5o
IgorI2luY2x1ZGUgInBhc19iaXRmaXRfZGlyZWN0b3J5LmgiCiAjaW5jbHVkZSAicGFzX2hlYXAu
aCIKICNpbmNsdWRlICJwYXNfaGVhcF9jb25maWcuaCIKICNpbmNsdWRlICJwYXNfbGFyZ2VfbWFw
LmgiCkBAIC01OCwxMCArNTgsMTAgQEAgc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19oZWFw
KiBwYXNfZwogICAgICAgICAgICAgICAgIGJlZ2luLCBjb25maWcuc21hbGxfc2VncmVnYXRlZF9j
b25maWcpLT5oZWFwKTsKICAgICBjYXNlIHBhc19zbWFsbF9iaXRmaXRfZmFzdF9tZWdhcGFnZV9r
aW5kOgogICAgICAgICByZXR1cm4gcGFzX2hlYXBfZm9yX3NlZ3JlZ2F0ZWRfaGVhcCgKLSAgICAg
ICAgICAgIHBhc19jb21wYWN0X2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9u
dWxsKAorICAgICAgICAgICAgcGFzX2NvbXBhY3RfYml0Zml0X2RpcmVjdG9yeV9wdHJfbG9hZF9u
b25fbnVsbCgKICAgICAgICAgICAgICAgICAmcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF92aWV3
X3B0cl9sb2FkX25vbl9udWxsKAogICAgICAgICAgICAgICAgICAgICAmcGFzX2JpdGZpdF9wYWdl
X2Zvcl9hZGRyZXNzX2FuZF9wYWdlX2NvbmZpZygKLSAgICAgICAgICAgICAgICAgICAgICAgIGJl
Z2luLCBjb25maWcuc21hbGxfYml0Zml0X2NvbmZpZyktPm93bmVyKS0+Z2xvYmFsX2RpcmVjdG9y
eSktPmhlYXApOworICAgICAgICAgICAgICAgICAgICAgICAgYmVnaW4sIGNvbmZpZy5zbWFsbF9i
aXRmaXRfY29uZmlnKS0+b3duZXIpLT5kaXJlY3RvcnkpLT5oZWFwKTsKICAgICBjYXNlIHBhc19u
b3RfYV9mYXN0X21lZ2FwYWdlX2tpbmQ6IHsKICAgICAgICAgcGFzX3BhZ2VfYmFzZSogcGFnZV9i
YXNlOwogICAgICAgICBwYXNfbGFyZ2VfbWFwX2VudHJ5IGVudHJ5OwpAQCAtODUsOSArODUsOSBA
QCBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2hlYXAqIHBhc19nCiAgICAgICAgICAgICBj
YXNlIHBhc19tZWRpdW1fYml0Zml0X3BhZ2Vfa2luZDoKICAgICAgICAgICAgIGNhc2UgcGFzX21h
cmdlX2JpdGZpdF9wYWdlX2tpbmQ6CiAgICAgICAgICAgICAgICAgcmV0dXJuIHBhc19oZWFwX2Zv
cl9zZWdyZWdhdGVkX2hlYXAoCi0gICAgICAgICAgICAgICAgICAgIHBhc19jb21wYWN0X2JpdGZp
dF9nbG9iYWxfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKAorICAgICAgICAgICAgICAgICAg
ICBwYXNfY29tcGFjdF9iaXRmaXRfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKAogICAgICAg
ICAgICAgICAgICAgICAgICAgJnBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfdmlld19wdHJfbG9h
ZF9ub25fbnVsbCgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcGFzX3BhZ2VfYmFzZV9n
ZXRfYml0Zml0KHBhZ2VfYmFzZSktPm93bmVyKS0+Z2xvYmFsX2RpcmVjdG9yeSktPmhlYXApOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICZwYXNfcGFnZV9iYXNlX2dldF9iaXRmaXQocGFn
ZV9iYXNlKS0+b3duZXIpLT5kaXJlY3RvcnkpLT5oZWFwKTsKICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIFBBU19BU1NFUlQoISJCYWQgcGFnZSBraW5kIik7CiAgICAgICAgICAgICByZXR1cm4g
TlVMTDsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwLmMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXAu
YwkocmV2aXNpb24gMjc5OTY0KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX2hlYXAuYwkod29ya2luZyBjb3B5KQpAQCAtMzgsNyArMzgsNyBAQAogI2luY2x1ZGUgInBh
c19sb2cuaCIKICNpbmNsdWRlICJwYXNfbW9ub3RvbmljX3RpbWUuaCIKICNpbmNsdWRlICJwYXNf
cHJpbWl0aXZlX2hlYXBfcmVmLmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3Np
emVfZGlyZWN0b3J5LmgiCisjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnku
aCIKIAogcGFzX2hlYXAqIHBhc19oZWFwX2NyZWF0ZShwYXNfaGVhcF9yZWYqIGhlYXBfcmVmLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfaGVhcF9yZWZfa2luZCBoZWFwX3JlZl9raW5k
LApAQCAtMTgyLDcgKzE4Miw3IEBAIHZvaWQgcGFzX2hlYXBfcmVzZXRfaGVhcF9yZWYocGFzX2hl
YXAqIGgKICAgICBQQVNfQVNTRVJUKCEiU2hvdWxkIG5vdCBiZSByZWFjaGVkIik7CiB9CiAKLXBh
c19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSoKK3Bhc19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5KgogcGFzX2hlYXBfZW5zdXJlX3NpemVfZGlyZWN0b3J5X2Zvcl9jb3VudF9zbG93
KAogICAgIHBhc19oZWFwKiBoZWFwLAogICAgIHNpemVfdCBjb3VudCwKQEAgLTE5MSwxMSArMTkx
LDEyIEBAIHBhc19oZWFwX2Vuc3VyZV9zaXplX2RpcmVjdG9yeV9mb3JfY291bnQKICAgICBwYXNf
aGVhcF9jb25maWcqIGNvbmZpZywKICAgICB1bnNpZ25lZCogY2FjaGVkX2luZGV4KQogewotICAg
IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogcmVzdWx0OworICAgIHBhc19z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiByZXN1bHQ7CiAgICAgCiAgICAgcGFzX2hlYXBfbG9j
a19sb2NrKCk7CiAgICAgcmVzdWx0ID0gcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1cmVfc2l6ZV9k
aXJlY3RvcnlfZm9yX2NvdW50KAotICAgICAgICAmaGVhcC0+c2VncmVnYXRlZF9oZWFwLCBjb3Vu
dCwgYWxpZ25tZW50LCBmb3JjZV9jb3VudF9sb29rdXAsIGNvbmZpZywgY2FjaGVkX2luZGV4KTsK
KyAgICAgICAgJmhlYXAtPnNlZ3JlZ2F0ZWRfaGVhcCwgY291bnQsIGFsaWdubWVudCwgZm9yY2Vf
Y291bnRfbG9va3VwLCBjb25maWcsIGNhY2hlZF9pbmRleCwKKyAgICAgICAgcGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnlfZnVsbF9jcmVhdGlvbl9tb2RlKTsKICAgICBwYXNfaGVhcF9sb2Nr
X3VubG9jaygpOwogICAgIAogICAgIHJldHVybiByZXN1bHQ7CkluZGV4OiBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwLmgJKHJldmlzaW9uIDI3OTk2NCkKKysrIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwLmgJKHdvcmtpbmcgY29weSkK
QEAgLTM1LDExICszNSwxMSBAQCBQQVNfQkVHSU5fRVhURVJOX0M7CiAKIHN0cnVjdCBwYXNfaGVh
cDsKIHN0cnVjdCBwYXNfaGVhcF9yZWY7Ci1zdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3Np
emVfZGlyZWN0b3J5Oworc3RydWN0IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5Owogc3Ry
dWN0IHBhc19zZWdyZWdhdGVkX3BhZ2U7CiB0eXBlZGVmIHN0cnVjdCBwYXNfaGVhcCBwYXNfaGVh
cDsKIHR5cGVkZWYgc3RydWN0IHBhc19oZWFwX3JlZiBwYXNfaGVhcF9yZWY7Ci10eXBlZGVmIHN0
cnVjdCBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkgcGFzX3NlZ3JlZ2F0ZWRf
Z2xvYmFsX3NpemVfZGlyZWN0b3J5OwordHlwZWRlZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnkgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnk7CiB0eXBlZGVmIHN0cnVj
dCBwYXNfc2VncmVnYXRlZF9wYWdlIHBhc19zZWdyZWdhdGVkX3BhZ2U7CiAKIHN0cnVjdCBwYXNf
aGVhcCB7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9j
b25maWcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfaGVhcF9jb25maWcuaAkocmV2aXNpb24gMjc5OTY0KQorKysgU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX2hlYXBfY29uZmlnLmgJKHdvcmtpbmcgY29weSkKQEAgLTM5LDcg
KzM5LDcgQEAKICNpbmNsdWRlICJwYXNfaGVhcF9jb25maWdfa2luZC5oIgogI2luY2x1ZGUgInBh
c19oZWFwX3JlZi5oIgogI2luY2x1ZGUgInBhc19oZWFwX3JlZl9raW5kLmgiCi0jaW5jbHVkZSAi
cGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdC5oIgorI2luY2x1ZGUgInBhc19hbGxvY2F0
aW9uX3Jlc3VsdC5oIgogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2hlYXBfbG9va3VwX2tpbmQu
aCIKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZy5oIgogI2luY2x1ZGUgInBh
c191dGlscy5oIgpAQCAtODYsNyArODYsOCBAQCB0eXBlZGVmIGJvb2wgKCpwYXNfaGVhcF9jb25m
aWdfZm9yX2VhY2hfCiB0eXBlZGVmIHBhc19hbGxvY2F0aW9uX3Jlc3VsdAogKCpwYXNfaGVhcF9j
b25maWdfc3BlY2lhbGl6ZWRfbG9jYWxfYWxsb2NhdG9yX3RyeV9hbGxvY2F0ZV9zbWFsbF9zZWdy
ZWdhdGVkX3Nsb3cpKAogICAgIHBhc19sb2NhbF9hbGxvY2F0b3IqIGFsbG9jYXRvciwKLSAgICBw
YXNfYWxsb2NhdG9yX2NvdW50cyogY291bnRzKTsKKyAgICBwYXNfYWxsb2NhdG9yX2NvdW50cyog
Y291bnRzLAorICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9maWx0ZXIgcmVzdWx0X2ZpbHRlcik7
CiB0eXBlZGVmIHBhc19hbGxvY2F0aW9uX3Jlc3VsdAogKCpwYXNfaGVhcF9jb25maWdfc3BlY2lh
bGl6ZWRfbG9jYWxfYWxsb2NhdG9yX3RyeV9hbGxvY2F0ZV9tZWRpdW1fc2VncmVnYXRlZF93aXRo
X2ZyZWVfYml0cykoCiAgICAgcGFzX2xvY2FsX2FsbG9jYXRvciogYWxsb2NhdG9yKTsKQEAgLTk2
LDggKzk3LDkgQEAgdHlwZWRlZiBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgKCpwYXNfaGVhcAogICAg
IHBhc19sb2NhbF9hbGxvY2F0b3IqIGFsbG9jYXRvciwKICAgICBzaXplX3Qgc2l6ZSwKICAgICBz
aXplX3QgYWxpZ25tZW50LAotICAgIHBhc19hbGxvY2F0b3JfY291bnRzKiBjb3VudHMpOwotdHlw
ZWRlZiBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0ICgqcGFzX2hlYXBfY29uZmlnX3Nw
ZWNpYWxpemVkX3RyeV9hbGxvY2F0ZV9jb21tb25faW1wbF9zbG93KSgKKyAgICBwYXNfYWxsb2Nh
dG9yX2NvdW50cyogY291bnRzLAorICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9maWx0ZXIgcmVz
dWx0X2ZpbHRlcik7Cit0eXBlZGVmIHBhc19hbGxvY2F0aW9uX3Jlc3VsdCAoKnBhc19oZWFwX2Nv
bmZpZ19zcGVjaWFsaXplZF90cnlfYWxsb2NhdGVfY29tbW9uX2ltcGxfc2xvdykoCiAgICAgcGFz
X2hlYXBfcmVmKiBoZWFwX3JlZiwKICAgICBwYXNfaGVhcF9yZWZfa2luZCBoZWFwX3JlZl9raW5k
LAogICAgIHNpemVfdCBhbGlnbmVkX2NvdW50LCAvKiBNdXN0IGJlID0gcm91bmRfdXAoY291bnQg
KiB0eXBlX3NpemUsIGFsaWdubWVudCkgLyB0eXBlX3NpemUgKi8KQEAgLTIwMCw3ICsyMDIsOCBA
QCBzdHJ1Y3QgcGFzX2hlYXBfY29uZmlnIHsKICNkZWZpbmUgUEFTX0hFQVBfQ09ORklHX1NQRUNJ
QUxJWkFUSU9OX0RFQ0xBUkFUSU9OUyhsb3dlcl9jYXNlX2hlYXBfY29uZmlnX25hbWUpIFwKICAg
ICBQQVNfQVBJIHBhc19hbGxvY2F0aW9uX3Jlc3VsdCBcCiAgICAgbG93ZXJfY2FzZV9oZWFwX2Nv
bmZpZ19uYW1lICMjIF9zcGVjaWFsaXplZF9sb2NhbF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRlX3Nt
YWxsX3NlZ3JlZ2F0ZWRfc2xvdyggXAotICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxv
Y2F0b3IsIHBhc19hbGxvY2F0b3JfY291bnRzKiBjb3VudCk7IFwKKyAgICAgICAgcGFzX2xvY2Fs
X2FsbG9jYXRvciogYWxsb2NhdG9yLCBwYXNfYWxsb2NhdG9yX2NvdW50cyogY291bnQsIFwKKyAg
ICAgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X2ZpbHRlciByZXN1bHRfZmlsdGVyKTsgXAogICAg
IFBBU19BUEkgcGFzX2FsbG9jYXRpb25fcmVzdWx0IFwKICAgICBsb3dlcl9jYXNlX2hlYXBfY29u
ZmlnX25hbWUgIyMgX3NwZWNpYWxpemVkX2xvY2FsX2FsbG9jYXRvcl90cnlfYWxsb2NhdGVfaW5s
aW5lX2Nhc2VzKCBcCiAgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3IqIGFsbG9jYXRvcik7IFwK
QEAgLTIxMiw4ICsyMTUsOSBAQCBzdHJ1Y3QgcGFzX2hlYXBfY29uZmlnIHsKICAgICAgICAgcGFz
X2xvY2FsX2FsbG9jYXRvciogYWxsb2NhdG9yLCBcCiAgICAgICAgIHNpemVfdCBzaXplLCBcCiAg
ICAgICAgIHNpemVfdCBhbGlnbm1lbnQsIFwKLSAgICAgICAgcGFzX2FsbG9jYXRvcl9jb3VudHMq
IGNvdW50cyk7IFwKLSAgICBQQVNfQVBJIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQg
XAorICAgICAgICBwYXNfYWxsb2NhdG9yX2NvdW50cyogY291bnRzLCBcCisgICAgICAgIHBhc19h
bGxvY2F0aW9uX3Jlc3VsdF9maWx0ZXIgcmVzdWx0X2ZpbHRlcik7IFwKKyAgICBQQVNfQVBJIHBh
c19hbGxvY2F0aW9uX3Jlc3VsdCBcCiAgICAgbG93ZXJfY2FzZV9oZWFwX2NvbmZpZ19uYW1lICMj
IF9zcGVjaWFsaXplZF90cnlfYWxsb2NhdGVfY29tbW9uX2ltcGxfc2xvdyggXAogICAgICAgICBw
YXNfaGVhcF9yZWYqIGhlYXBfcmVmLCBcCiAgICAgICAgIHBhc19oZWFwX3JlZl9raW5kIGhlYXBf
cmVmX2tpbmQsIFwKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19o
ZWFwX2NvbmZpZ19pbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX2hlYXBfY29uZmlnX2lubGluZXMuaAkocmV2aXNpb24gMjc5OTY0KQor
KysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXBfY29uZmlnX2lubGlu
ZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsMTAgKzM2LDExIEBAIFBBU19CRUdJTl9FWFRFUk5f
QzsKICNkZWZpbmUgUEFTX0hFQVBfQ09ORklHX1NQRUNJQUxJWkFUSU9OX0RFRklOSVRJT05TKGxv
d2VyX2Nhc2VfaGVhcF9jb25maWdfbmFtZSwgaGVhcF9jb25maWdfdmFsdWUpIFwKICAgICBQQVNf
TkVWRVJfSU5MSU5FIHBhc19hbGxvY2F0aW9uX3Jlc3VsdCBcCiAgICAgbG93ZXJfY2FzZV9oZWFw
X2NvbmZpZ19uYW1lICMjIF9zcGVjaWFsaXplZF9sb2NhbF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRl
X3NtYWxsX3NlZ3JlZ2F0ZWRfc2xvdyggXAotICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yKiBh
bGxvY2F0b3IsIHBhc19hbGxvY2F0b3JfY291bnRzKiBjb3VudCkgXAorICAgICAgICBwYXNfbG9j
YWxfYWxsb2NhdG9yKiBhbGxvY2F0b3IsIHBhc19hbGxvY2F0b3JfY291bnRzKiBjb3VudCwgXAor
ICAgICAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfZmlsdGVyIHJlc3VsdF9maWx0ZXIpIFwKICAg
ICB7IFwKICAgICAgICAgcmV0dXJuIHBhc19sb2NhbF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRlX3Nt
YWxsX3NlZ3JlZ2F0ZWRfc2xvdyggXAotICAgICAgICAgICAgYWxsb2NhdG9yLCAoaGVhcF9jb25m
aWdfdmFsdWUpLCBjb3VudCk7IFwKKyAgICAgICAgICAgIGFsbG9jYXRvciwgKGhlYXBfY29uZmln
X3ZhbHVlKSwgY291bnQsIHJlc3VsdF9maWx0ZXIpOyBcCiAgICAgfSBcCiAgICAgXAogICAgIFBB
U19ORVZFUl9JTkxJTkUgcGFzX2FsbG9jYXRpb25fcmVzdWx0IFwKQEAgLTYyLDEzICs2MywxNCBA
QCBQQVNfQkVHSU5fRVhURVJOX0M7CiAgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3IqIGFsbG9j
YXRvciwgXAogICAgICAgICBzaXplX3Qgc2l6ZSwgXAogICAgICAgICBzaXplX3QgYWxpZ25tZW50
LCBcCi0gICAgICAgIHBhc19hbGxvY2F0b3JfY291bnRzKiBjb3VudHMpIFwKKyAgICAgICAgcGFz
X2FsbG9jYXRvcl9jb3VudHMqIGNvdW50cywgXAorICAgICAgICBwYXNfYWxsb2NhdGlvbl9yZXN1
bHRfZmlsdGVyIHJlc3VsdF9maWx0ZXIpIFwKICAgICB7IFwKICAgICAgICAgcmV0dXJuIHBhc19s
b2NhbF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRlX3Nsb3coIFwKLSAgICAgICAgICAgIGFsbG9jYXRv
ciwgc2l6ZSwgYWxpZ25tZW50LCAoaGVhcF9jb25maWdfdmFsdWUpLCBjb3VudHMpOyBcCisgICAg
ICAgICAgICBhbGxvY2F0b3IsIHNpemUsIGFsaWdubWVudCwgKGhlYXBfY29uZmlnX3ZhbHVlKSwg
Y291bnRzLCByZXN1bHRfZmlsdGVyKTsgXAogICAgIH0gXAogICAgIFwKLSAgICBQQVNfTkVWRVJf
SU5MSU5FIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQgXAorICAgIFBBU19ORVZFUl9J
TkxJTkUgcGFzX2FsbG9jYXRpb25fcmVzdWx0IFwKICAgICBsb3dlcl9jYXNlX2hlYXBfY29uZmln
X25hbWUgIyMgX3NwZWNpYWxpemVkX3RyeV9hbGxvY2F0ZV9jb21tb25faW1wbF9zbG93KCBcCiAg
ICAgICAgIHBhc19oZWFwX3JlZiogaGVhcF9yZWYsIFwKICAgICAgICAgcGFzX2hlYXBfcmVmX2tp
bmQgaGVhcF9yZWZfa2luZCwgXApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX2hlYXBfY29uZmlnX3V0aWxzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXBfY29uZmlnX3V0aWxzLmgJKHJldmlzaW9uIDI3OTk2
NCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwX2NvbmZpZ191
dGlscy5oCSh3b3JraW5nIGNvcHkpCkBAIC03MCw3ICs3MCw4IEBAIHR5cGVkZWYgc3RydWN0IHsK
ICAgICBzaXplX3Qgc21hbGxfc2VncmVnYXRlZF9wYWdlX3NpemU7CiAgICAgZG91YmxlIHNtYWxs
X3NlZ3JlZ2F0ZWRfd2FzdGVhZ2VfaGFuZGljYXA7CiAgICAgYm9vbCBzbWFsbF9zZWdyZWdhdGVk
X2VuYWJsZV9lbXB0eV93b3JkX2VsaWdpYmlsaXR5X29wdGltaXphdGlvbjsKLSAgICBib29sIHNt
YWxsX3VzZV9yZXZlcnNlZF9jdXJyZW50X3dvcmQ7CisgICAgYm9vbCBzbWFsbF9zZWdyZWdhdGVk
X3VzZV9yZXZlcnNlZF9jdXJyZW50X3dvcmQ7CisgICAgYm9vbCBlbmFibGVfdmlld19jYWNoZTsK
ICAgICBib29sIHVzZV9zbWFsbF9iaXRmaXQ7CiAgICAgdWludDhfdCBzbWFsbF9iaXRmaXRfbWlu
X2FsaWduX3NoaWZ0OwogICAgIHNpemVfdCBzbWFsbF9iaXRmaXRfcGFnZV9zaXplOwpAQCAtMTM0
LDEwICsxMzUsMTIgQEAgdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgICAgICAgKChwYXNfYmFzaWNf
aGVhcF9jb25maWdfYXJndW1lbnRzKXtfX1ZBX0FSR1NfX30pLnNtYWxsX3NlZ3JlZ2F0ZWRfd2Fz
dGVhZ2VfaGFuZGljYXAsIFwKICAgICAgICAgLmRlYWxsb2NfZnVuYyA9IG5hbWUgIyMgX3NtYWxs
X3NlZ3JlZ2F0ZWRfZGVhbGxvY19mdW5jLCBcCiAgICAgICAgIC51c2VfcmV2ZXJzZWRfY3VycmVu
dF93b3JkID0gXAotICAgICAgICAgICAgKChwYXNfYmFzaWNfaGVhcF9jb25maWdfYXJndW1lbnRz
KXtfX1ZBX0FSR1NfX30pLnNtYWxsX3VzZV9yZXZlcnNlZF9jdXJyZW50X3dvcmQsIFwKKyAgICAg
ICAgICAgICgocGFzX2Jhc2ljX2hlYXBfY29uZmlnX2FyZ3VtZW50cyl7X19WQV9BUkdTX199KS5z
bWFsbF9zZWdyZWdhdGVkX3VzZV9yZXZlcnNlZF9jdXJyZW50X3dvcmQsIFwKICAgICAgICAgLmNo
ZWNrX2RlYWxsb2NhdGlvbiA9ICgocGFzX2Jhc2ljX2hlYXBfY29uZmlnX2FyZ3VtZW50cyl7X19W
QV9BUkdTX199KS5jaGVja19kZWFsbG9jYXRpb24sIFwKICAgICAgICAgLmVuYWJsZV9lbXB0eV93
b3JkX2VsaWdpYmlsaXR5X29wdGltaXphdGlvbiA9IFwKICAgICAgICAgICAgICgocGFzX2Jhc2lj
X2hlYXBfY29uZmlnX2FyZ3VtZW50cyl7X19WQV9BUkdTX199KS5zbWFsbF9zZWdyZWdhdGVkX2Vu
YWJsZV9lbXB0eV93b3JkX2VsaWdpYmlsaXR5X29wdGltaXphdGlvbiwgXAorICAgICAgICAuZW5h
YmxlX3ZpZXdfY2FjaGUgPSBcCisgICAgICAgICAgICAoKHBhc19iYXNpY19oZWFwX2NvbmZpZ19h
cmd1bWVudHMpe19fVkFfQVJHU19ffSkuZW5hYmxlX3ZpZXdfY2FjaGUsIFwKICAgICAgICAgLnNo
YXJlZF9wYWdlX2RpcmVjdG9yeV9zZWxlY3RvciA9IFwKICAgICAgICAgICAgIG5hbWUgIyMgX3Nt
YWxsX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfc2VsZWN0X3NoYXJlZF9wYWdlX2RpcmVjdG9yeSwg
XAogICAgICAgICBQQVNfU0VHUkVHQVRFRF9QQUdFX0NPTkZJR19TUEVDSUFMSVpBVElPTlMobmFt
ZSAjIyBfc21hbGxfc2VncmVnYXRlZF9wYWdlX2NvbmZpZykgXApAQCAtMTg1LDYgKzE4OCw4IEBA
IHR5cGVkZWYgc3RydWN0IHsKICAgICAgICAgLnVzZV9yZXZlcnNlZF9jdXJyZW50X3dvcmQgPSBm
YWxzZSwgXAogICAgICAgICAuY2hlY2tfZGVhbGxvY2F0aW9uID0gKChwYXNfYmFzaWNfaGVhcF9j
b25maWdfYXJndW1lbnRzKXtfX1ZBX0FSR1NfX30pLmNoZWNrX2RlYWxsb2NhdGlvbiwgXAogICAg
ICAgICAuZW5hYmxlX2VtcHR5X3dvcmRfZWxpZ2liaWxpdHlfb3B0aW1pemF0aW9uID0gZmFsc2Us
IFwKKyAgICAgICAgLmVuYWJsZV92aWV3X2NhY2hlID0gXAorICAgICAgICAgICAgKChwYXNfYmFz
aWNfaGVhcF9jb25maWdfYXJndW1lbnRzKXtfX1ZBX0FSR1NfX30pLmVuYWJsZV92aWV3X2NhY2hl
LCBcCiAgICAgICAgIC5zaGFyZWRfcGFnZV9kaXJlY3Rvcnlfc2VsZWN0b3IgPSBcCiAgICAgICAg
ICAgICBuYW1lICMjIF9tZWRpdW1fc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19zZWxlY3Rfc2hhcmVk
X3BhZ2VfZGlyZWN0b3J5LCBcCiAgICAgICAgIFBBU19TRUdSRUdBVEVEX1BBR0VfQ09ORklHX1NQ
RUNJQUxJWkFUSU9OUyhuYW1lICMjIF9tZWRpdW1fc2VncmVnYXRlZF9wYWdlX2NvbmZpZykgXApJ
bmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXBfY29uZmlnX3V0
aWxzX2lubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfaGVhcF9jb25maWdfdXRpbHNfaW5saW5lcy5oCShyZXZpc2lvbiAyNzk5NjQpCisr
KyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9jb25maWdfdXRpbHNf
aW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC00OCw2ICs0OCw3IEBAIFBBU19BUEkgdm9pZCog
cGFzX2hlYXBfY29uZmlnX3V0aWxzX3ByZXAKIAogdHlwZWRlZiBzdHJ1Y3QgewogICAgIGJvb2wg
YWxsb2NhdGVfcGFnZV9zaG91bGRfemVybzsKKyAgICBwYXNfaGVhcF9ydW50aW1lX2NvbmZpZ192
aWV3X2NhY2hlX2NhcGFjaXR5X2Zvcl9vYmplY3Rfc2l6ZV9jYWxsYmFjayBpbnRyaW5zaWNfcHJp
bWl0aXZlX3ZpZXdfY2FjaGVfY2FwYWNpdHk7CiB9IHBhc19iYXNpY19oZWFwX2NvbmZpZ19kZWZp
bml0aW9uc19hcmd1bWVudHM7CiAKICNkZWZpbmUgUEFTX0JBU0lDX0hFQVBfQ09ORklHX0RFRklO
SVRJT05TKG5hbWUsIHVwY2FzZV9uYW1lLCAuLi4pIFwKQEAgLTY1LDEwICs2NiwxNCBAQCB0eXBl
ZGVmIHN0cnVjdCB7CiAgICAgICAgICAgICAgICAgUEFTX0lOVFJJTlNJQ19QUklNSVRJVkVfQk9V
TkRfRk9SX1BBUlRJQUxfVklFV1MsIFwKICAgICAgICAgICAgIC5kaXJlY3Rvcnlfc2l6ZV9ib3Vu
ZF9mb3JfYmFzZWxpbmVfYWxsb2NhdG9ycyA9IFwKICAgICAgICAgICAgICAgICBQQVNfSU5UUklO
U0lDX1BSSU1JVElWRV9CT1VORF9GT1JfQkFTRUxJTkVfQUxMT0NBVE9SUywgXAorICAgICAgICAg
ICAgLmRpcmVjdG9yeV9zaXplX2JvdW5kX2Zvcl9ub192aWV3X2NhY2hlID0gXAorICAgICAgICAg
ICAgICAgIFBBU19JTlRSSU5TSUNfUFJJTUlUSVZFX0JPVU5EX0ZPUl9OT19WSUVXX0NBQ0hFLCBc
CiAgICAgICAgICAgICAubWF4X3NlZ3JlZ2F0ZWRfb2JqZWN0X3NpemUgPSBcCiAgICAgICAgICAg
ICAgICAgUEFTX0lOVFJJTlNJQ19QUklNSVRJVkVfTUFYX1NFR1JFR0FURURfT0JKRUNUX1NJWkUs
IFwKICAgICAgICAgICAgIC5tYXhfYml0Zml0X29iamVjdF9zaXplID0gXAotICAgICAgICAgICAg
ICAgIFBBU19JTlRSSU5TSUNfUFJJTUlUSVZFX01BWF9CSVRGSVRfT0JKRUNUX1NJWkUgXAorICAg
ICAgICAgICAgICAgIFBBU19JTlRSSU5TSUNfUFJJTUlUSVZFX01BWF9CSVRGSVRfT0JKRUNUX1NJ
WkUsIFwKKyAgICAgICAgICAgIC52aWV3X2NhY2hlX2NhcGFjaXR5X2Zvcl9vYmplY3Rfc2l6ZSA9
IFwKKyAgICAgICAgICAgICAgICAoKHBhc19iYXNpY19oZWFwX2NvbmZpZ19kZWZpbml0aW9uc19h
cmd1bWVudHMpe19fVkFfQVJHU19ffSkuaW50cmluc2ljX3ByaW1pdGl2ZV92aWV3X2NhY2hlX2Nh
cGFjaXR5LCBcCiAgICAgICAgIH0sIFwKICAgICAgICAgLnBhZ2VfY2FjaGVzID0gJm5hbWUgIyMg
X3BhZ2VfY2FjaGVzIFwKICAgICB9OyBcCkBAIC04MywxMCArODgsMTMgQEAgdHlwZWRlZiBzdHJ1
Y3QgewogICAgICAgICAgICAgICAgIFBBU19QUklNSVRJVkVfQk9VTkRfRk9SX1BBUlRJQUxfVklF
V1MsIFwKICAgICAgICAgICAgIC5kaXJlY3Rvcnlfc2l6ZV9ib3VuZF9mb3JfYmFzZWxpbmVfYWxs
b2NhdG9ycyA9IFwKICAgICAgICAgICAgICAgICBQQVNfUFJJTUlUSVZFX0JPVU5EX0ZPUl9CQVNF
TElORV9BTExPQ0FUT1JTLCBcCisgICAgICAgICAgICAuZGlyZWN0b3J5X3NpemVfYm91bmRfZm9y
X25vX3ZpZXdfY2FjaGUgPSBcCisgICAgICAgICAgICAgICAgUEFTX1BSSU1JVElWRV9CT1VORF9G
T1JfTk9fVklFV19DQUNIRSwgXAogICAgICAgICAgICAgLm1heF9zZWdyZWdhdGVkX29iamVjdF9z
aXplID0gXAogICAgICAgICAgICAgICAgIFBBU19QUklNSVRJVkVfTUFYX1NFR1JFR0FURURfT0JK
RUNUX1NJWkUsIFwKICAgICAgICAgICAgIC5tYXhfYml0Zml0X29iamVjdF9zaXplID0gXAotICAg
ICAgICAgICAgICAgIFBBU19QUklNSVRJVkVfTUFYX0JJVEZJVF9PQkpFQ1RfU0laRSBcCisgICAg
ICAgICAgICAgICAgUEFTX1BSSU1JVElWRV9NQVhfQklURklUX09CSkVDVF9TSVpFLCBcCisgICAg
ICAgICAgICAudmlld19jYWNoZV9jYXBhY2l0eV9mb3Jfb2JqZWN0X3NpemUgPSBwYXNfaGVhcF9y
dW50aW1lX2NvbmZpZ196ZXJvX3ZpZXdfY2FjaGVfY2FwYWNpdHksIFwKICAgICAgICAgfSwgXAog
ICAgICAgICAucGFnZV9jYWNoZXMgPSAmbmFtZSAjIyBfcGFnZV9jYWNoZXMgXAogICAgIH07IFwK
QEAgLTEwMSwxMCArMTA5LDEzIEBAIHR5cGVkZWYgc3RydWN0IHsKICAgICAgICAgICAgICAgICBQ
QVNfVFlQRURfQk9VTkRfRk9SX1BBUlRJQUxfVklFV1MsIFwKICAgICAgICAgICAgIC5kaXJlY3Rv
cnlfc2l6ZV9ib3VuZF9mb3JfYmFzZWxpbmVfYWxsb2NhdG9ycyA9IFwKICAgICAgICAgICAgICAg
ICBQQVNfVFlQRURfQk9VTkRfRk9SX0JBU0VMSU5FX0FMTE9DQVRPUlMsIFwKKyAgICAgICAgICAg
IC5kaXJlY3Rvcnlfc2l6ZV9ib3VuZF9mb3Jfbm9fdmlld19jYWNoZSA9IFwKKyAgICAgICAgICAg
ICAgICBQQVNfVFlQRURfQk9VTkRfRk9SX05PX1ZJRVdfQ0FDSEUsIFwKICAgICAgICAgICAgIC5t
YXhfc2VncmVnYXRlZF9vYmplY3Rfc2l6ZSA9IFwKICAgICAgICAgICAgICAgICBQQVNfVFlQRURf
TUFYX1NFR1JFR0FURURfT0JKRUNUX1NJWkUsIFwKICAgICAgICAgICAgIC5tYXhfYml0Zml0X29i
amVjdF9zaXplID0gXAotICAgICAgICAgICAgICAgIFBBU19UWVBFRF9NQVhfQklURklUX09CSkVD
VF9TSVpFIFwKKyAgICAgICAgICAgICAgICBQQVNfVFlQRURfTUFYX0JJVEZJVF9PQkpFQ1RfU0la
RSwgXAorICAgICAgICAgICAgLnZpZXdfY2FjaGVfY2FwYWNpdHlfZm9yX29iamVjdF9zaXplID0g
cGFzX2hlYXBfcnVudGltZV9jb25maWdfemVyb192aWV3X2NhY2hlX2NhcGFjaXR5LCBcCiAgICAg
ICAgIH0sIFwKICAgICAgICAgLnBhZ2VfY2FjaGVzID0gJm5hbWUgIyMgX3BhZ2VfY2FjaGVzIFwK
ICAgICB9OyBcCkBAIC0xMTksMTAgKzEzMCwxMyBAQCB0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAg
ICAgICAgICAgUEFTX09CSkNfQk9VTkRfRk9SX1BBUlRJQUxfVklFV1MsIFwKICAgICAgICAgICAg
IC5kaXJlY3Rvcnlfc2l6ZV9ib3VuZF9mb3JfYmFzZWxpbmVfYWxsb2NhdG9ycyA9IFwKICAgICAg
ICAgICAgICAgICBQQVNfT0JKQ19CT1VORF9GT1JfQkFTRUxJTkVfQUxMT0NBVE9SUywgXAorICAg
ICAgICAgICAgLmRpcmVjdG9yeV9zaXplX2JvdW5kX2Zvcl9ub192aWV3X2NhY2hlID0gXAorICAg
ICAgICAgICAgICAgIFBBU19PQkpDX0JPVU5EX0ZPUl9OT19WSUVXX0NBQ0hFLCBcCiAgICAgICAg
ICAgICAubWF4X3NlZ3JlZ2F0ZWRfb2JqZWN0X3NpemUgPSBcCiAgICAgICAgICAgICAgICAgUEFT
X09CSkNfTUFYX1NFR1JFR0FURURfT0JKRUNUX1NJWkUsIFwKICAgICAgICAgICAgIC5tYXhfYml0
Zml0X29iamVjdF9zaXplID0gXAotICAgICAgICAgICAgICAgIFBBU19PQkpDX01BWF9CSVRGSVRf
T0JKRUNUX1NJWkUgXAorICAgICAgICAgICAgICAgIFBBU19PQkpDX01BWF9CSVRGSVRfT0JKRUNU
X1NJWkUsIFwKKyAgICAgICAgICAgIC52aWV3X2NhY2hlX2NhcGFjaXR5X2Zvcl9vYmplY3Rfc2l6
ZSA9IHBhc19oZWFwX3J1bnRpbWVfY29uZmlnX3plcm9fdmlld19jYWNoZV9jYXBhY2l0eSwgXAog
ICAgICAgICB9LCBcCiAgICAgICAgIC5wYWdlX2NhY2hlcyA9ICZuYW1lICMjIF9wYWdlX2NhY2hl
cyBcCiAgICAgfTsgXApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X2hlYXBfaW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19oZWFwX2lubGluZXMuaAkocmV2aXNpb24gMjc5OTY0KQorKysgU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXBfaW5saW5lcy5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zNCw3ICszNCw3IEBACiAKIFBBU19CRUdJTl9FWFRFUk5fQzsKIAotUEFTX0FQSSBwYXNf
c2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqCitQQVNfQVBJIHBhc19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5KgogcGFzX2hlYXBfZW5zdXJlX3NpemVfZGlyZWN0b3J5X2Zvcl9jb3Vu
dF9zbG93KAogICAgIHBhc19oZWFwKiBoZWFwLAogICAgIHNpemVfdCBjb3VudCwKQEAgLTQzLDcg
KzQzLDcgQEAgcGFzX2hlYXBfZW5zdXJlX3NpemVfZGlyZWN0b3J5X2Zvcl9jb3VudAogICAgIHBh
c19oZWFwX2NvbmZpZyogY29uZmlnLAogICAgIHVuc2lnbmVkKiBjYWNoZWRfaW5kZXgpOwogCi1z
dGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0
b3J5Kgorc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0
b3J5KgogcGFzX2hlYXBfZW5zdXJlX3NpemVfZGlyZWN0b3J5X2Zvcl9jb3VudCgKICAgICBwYXNf
aGVhcCogaGVhcCwKICAgICBzaXplX3QgY291bnQsCkBAIC01NSw3ICs1NSw3IEBAIHBhc19oZWFw
X2Vuc3VyZV9zaXplX2RpcmVjdG9yeV9mb3JfY291bnQKIHsKICAgICBzdGF0aWMgY29uc3QgYm9v
bCB2ZXJib3NlID0gZmFsc2U7CiAKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJl
Y3RvcnkqIHJlc3VsdDsKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogcmVzdWx0
OwogCiAgICAgUEFTX1VOVVNFRF9QQVJBTShjb3VudHMpOwogICAgIApAQCAtNjYsNyArNjYsNyBA
QCBwYXNfaGVhcF9lbnN1cmVfc2l6ZV9kaXJlY3RvcnlfZm9yX2NvdW50CiAgICAgCiAgICAgcmVz
dWx0ID0gcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9zaXplX2RpcmVjdG9yeV9mb3JfY291bnQoCiAgICAg
ICAgICZoZWFwLT5zZWdyZWdhdGVkX2hlYXAsIGNvdW50LCBjb25maWcsIGNhY2hlZF9pbmRleCk7
Ci0gICAgaWYgKHJlc3VsdCAmJiBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnlf
YWxpZ25tZW50KHJlc3VsdCkgPj0gYWxpZ25tZW50KQorICAgIGlmIChyZXN1bHQgJiYgcGFzX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfYWxpZ25tZW50KHJlc3VsdCkgPj0gYWxpZ25tZW50KQog
ICAgICAgICByZXR1cm4gcmVzdWx0OwogCiAjaWYgUEFTX0VOQUJMRV9URVNUSU5HCkluZGV4OiBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9ydW50aW1lX2NvbmZpZy5j
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFw
X3J1bnRpbWVfY29uZmlnLmMJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX2hlYXBfcnVudGltZV9jb25maWcuYwkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICov
CisKKyNpbmNsdWRlICJwYXNfY29uZmlnLmgiCisKKyNpZiBMSUJQQVNfRU5BQkxFRAorCisjaW5j
bHVkZSAicGFzX2hlYXBfcnVudGltZV9jb25maWcuaCIKKworI2luY2x1ZGUgInBhc19kZXNpZ25h
dGVkX2ludHJpbnNpY19oZWFwX2lubGluZXMuaCIKKwordWludDhfdCBwYXNfaGVhcF9ydW50aW1l
X2NvbmZpZ192aWV3X2NhY2hlX2NhcGFjaXR5X2Zvcl9vYmplY3Rfc2l6ZSgKKyAgICBwYXNfaGVh
cF9ydW50aW1lX2NvbmZpZyogY29uZmlnLAorICAgIHNpemVfdCBvYmplY3Rfc2l6ZSwKKyAgICBw
YXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyogcGFnZV9jb25maWcpCit7CisgICAgc2l6ZV90IHJl
c3VsdDsKKworICAgIHJlc3VsdCA9IGNvbmZpZy0+dmlld19jYWNoZV9jYXBhY2l0eV9mb3Jfb2Jq
ZWN0X3NpemUob2JqZWN0X3NpemUsIHBhZ2VfY29uZmlnKTsKKworICAgIFBBU19BU1NFUlQoKHVp
bnQ4X3QpcmVzdWx0ID09IHJlc3VsdCk7CisgICAgcmV0dXJuICh1aW50OF90KXJlc3VsdDsKK30K
Kworc2l6ZV90IHBhc19oZWFwX3J1bnRpbWVfY29uZmlnX3plcm9fdmlld19jYWNoZV9jYXBhY2l0
eSgKKyAgICBzaXplX3Qgb2JqZWN0X3NpemUsIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnKiBw
YWdlX2NvbmZpZykKK3sKKyAgICBQQVNfVU5VU0VEX1BBUkFNKG9iamVjdF9zaXplKTsKKyAgICBQ
QVNfVU5VU0VEX1BBUkFNKHBhZ2VfY29uZmlnKTsKKyAgICByZXR1cm4gMDsKK30KKworc2l6ZV90
IHBhc19oZWFwX3J1bnRpbWVfY29uZmlnX2FnZ3Jlc3NpdmVfdmlld19jYWNoZV9jYXBhY2l0eSgK
KyAgICBzaXplX3Qgb2JqZWN0X3NpemUsIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnKiBwYWdl
X2NvbmZpZykKK3sKKyAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IGNhY2hlX3NpemUgPSAxNjM4NDAw
OworCisgICAgUEFTX1VOVVNFRF9QQVJBTShvYmplY3Rfc2l6ZSk7CisKKyAgICBQQVNfQVNTRVJU
KHBhZ2VfY29uZmlnLT5iYXNlLnBhZ2Vfc2l6ZSA8IGNhY2hlX3NpemUpOworCisgICAgcmV0dXJu
IGNhY2hlX3NpemUgLyBwYWdlX2NvbmZpZy0+YmFzZS5wYWdlX3NpemU7Cit9CisKKyNlbmRpZiAv
KiBMSUJQQVNfRU5BQkxFRCAqLworCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfaGVhcF9ydW50aW1lX2NvbmZpZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwX3J1bnRpbWVfY29uZmlnLmgJKHJldmlzaW9u
IDI3OTk2NCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwX3J1
bnRpbWVfY29uZmlnLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDEyICsyOCwxOCBAQAogCiAjaW5j
bHVkZSAicGFzX3BhZ2Vfc2hhcmluZ19tb2RlLmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRf
aGVhcF9sb29rdXBfa2luZC5oIgorI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmln
X3ZhcmlhbnQuaCIKICNpbmNsdWRlICJwYXNfdXRpbHMuaCIKIAogUEFTX0JFR0lOX0VYVEVSTl9D
OwogCiBzdHJ1Y3QgcGFzX2hlYXBfcnVudGltZV9jb25maWc7CitzdHJ1Y3QgcGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9jb25maWc7CiB0eXBlZGVmIHN0cnVjdCBwYXNfaGVhcF9ydW50aW1lX2NvbmZpZyBw
YXNfaGVhcF9ydW50aW1lX2NvbmZpZzsKK3R5cGVkZWYgc3RydWN0IHBhc19zZWdyZWdhdGVkX3Bh
Z2VfY29uZmlnIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnOworCit0eXBlZGVmIHNpemVfdCAo
KnBhc19oZWFwX3J1bnRpbWVfY29uZmlnX3ZpZXdfY2FjaGVfY2FwYWNpdHlfZm9yX29iamVjdF9z
aXplX2NhbGxiYWNrKSgKKyAgICBzaXplX3Qgb2JqZWN0X3NpemUsIHBhc19zZWdyZWdhdGVkX3Bh
Z2VfY29uZmlnKiBwYWdlX2NvbmZpZyk7CiAKIHN0cnVjdCBwYXNfaGVhcF9ydW50aW1lX2NvbmZp
ZyB7CiAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9sb29rdXBfa2luZCBsb29rdXBfa2luZCA6IDg7
CkBAIC00NCwxMiArNTAsMjggQEAgc3RydWN0IHBhc19oZWFwX3J1bnRpbWVfY29uZmlnIHsKICAg
ICAKICAgICB1bnNpZ25lZCBkaXJlY3Rvcnlfc2l6ZV9ib3VuZF9mb3JfcGFydGlhbF92aWV3czsK
ICAgICB1bnNpZ25lZCBkaXJlY3Rvcnlfc2l6ZV9ib3VuZF9mb3JfYmFzZWxpbmVfYWxsb2NhdG9y
czsKKyAgICB1bnNpZ25lZCBkaXJlY3Rvcnlfc2l6ZV9ib3VuZF9mb3Jfbm9fdmlld19jYWNoZTsK
IAogICAgIC8qIEl0J3MgT0sgdG8gc2V0IHRoZXNlIHRvIFVJTlRfTUFYLCBpbiB3aGljaCBjYXNl
IHRoZSBtYXhpbXVtIGlzIGRlY2lkZWQgYnkgdGhlIGhlYXBfY29uZmlnLiAqLwogICAgIHVuc2ln
bmVkIG1heF9zZWdyZWdhdGVkX29iamVjdF9zaXplOwogICAgIHVuc2lnbmVkIG1heF9iaXRmaXRf
b2JqZWN0X3NpemU7CisKKyAgICBwYXNfaGVhcF9ydW50aW1lX2NvbmZpZ192aWV3X2NhY2hlX2Nh
cGFjaXR5X2Zvcl9vYmplY3Rfc2l6ZV9jYWxsYmFjayB2aWV3X2NhY2hlX2NhcGFjaXR5X2Zvcl9v
YmplY3Rfc2l6ZTsKIH07CiAKK1BBU19BUEkgdWludDhfdCBwYXNfaGVhcF9ydW50aW1lX2NvbmZp
Z192aWV3X2NhY2hlX2NhcGFjaXR5X2Zvcl9vYmplY3Rfc2l6ZSgKKyAgICBwYXNfaGVhcF9ydW50
aW1lX2NvbmZpZyogY29uZmlnLAorICAgIHNpemVfdCBvYmplY3Rfc2l6ZSwKKyAgICBwYXNfc2Vn
cmVnYXRlZF9wYWdlX2NvbmZpZyogcGFnZV9jb25maWcpOworCitQQVNfQVBJIHNpemVfdCBwYXNf
aGVhcF9ydW50aW1lX2NvbmZpZ196ZXJvX3ZpZXdfY2FjaGVfY2FwYWNpdHkoCisgICAgc2l6ZV90
IG9iamVjdF9zaXplLAorICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnKiBwYWdlX2NvbmZp
Zyk7CisKK1BBU19BUEkgc2l6ZV90IHBhc19oZWFwX3J1bnRpbWVfY29uZmlnX2FnZ3Jlc3NpdmVf
dmlld19jYWNoZV9jYXBhY2l0eSgKKyAgICBzaXplX3Qgb2JqZWN0X3NpemUsCisgICAgcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZV9jb25maWcqIHBhZ2VfY29uZmlnKTsKKwogUEFTX0VORF9FWFRFUk5fQzsK
IAogI2VuZGlmIC8qIFBBU19IRUFQX1JVTlRJTUVfQ09ORklHX0ggKi8KSW5kZXg6IFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19pbnRlcm5hbF9jb25maWcuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaW50ZXJuYWxfY29uZmln
LmgJKHJldmlzaW9uIDI3OTk2NCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19pbnRlcm5hbF9jb25maWcuaAkod29ya2luZyBjb3B5KQpAQCAtMTQ4LDI2ICsxNDgsMzEg
QEAKIAogI2RlZmluZSBQQVNfVVRJTElUWV9CT1VORF9GT1JfUEFSVElBTF9WSUVXUyAgICAgICAg
ICAgICAgICAgICAgIDAKICNkZWZpbmUgUEFTX1VUSUxJVFlfQk9VTkRfRk9SX0JBU0VMSU5FX0FM
TE9DQVRPUlMgICAgICAgICAgICAgICAwCisjZGVmaW5lIFBBU19VVElMSVRZX0JPVU5EX0ZPUl9O
T19WSUVXX0NBQ0hFICAgICAgICAgICAgICAgICAgICAgVUlOVF9NQVgKICNkZWZpbmUgUEFTX1VU
SUxJVFlfTUFYX1NFR1JFR0FURURfT0JKRUNUX1NJWkUgICAgICAgICAgICAgICAgICBVSU5UX01B
WAogI2RlZmluZSBQQVNfVVRJTElUWV9NQVhfQklURklUX09CSkVDVF9TSVpFICAgICAgICAgICAg
ICAgICAgICAgIDAKIAogI2RlZmluZSBQQVNfSU5UUklOU0lDX1BSSU1JVElWRV9CT1VORF9GT1Jf
UEFSVElBTF9WSUVXUyAgICAgICAgIDAKICNkZWZpbmUgUEFTX0lOVFJJTlNJQ19QUklNSVRJVkVf
Qk9VTkRfRk9SX0JBU0VMSU5FX0FMTE9DQVRPUlMgICAwCisjZGVmaW5lIFBBU19JTlRSSU5TSUNf
UFJJTUlUSVZFX0JPVU5EX0ZPUl9OT19WSUVXX0NBQ0hFICAgICAgICAgMAogI2RlZmluZSBQQVNf
SU5UUklOU0lDX1BSSU1JVElWRV9NQVhfU0VHUkVHQVRFRF9PQkpFQ1RfU0laRSAgICAgIFVJTlRf
TUFYCiAjZGVmaW5lIFBBU19JTlRSSU5TSUNfUFJJTUlUSVZFX01BWF9CSVRGSVRfT0JKRUNUX1NJ
WkUgICAgICAgICAgVUlOVF9NQVgKIAogI2RlZmluZSBQQVNfUFJJTUlUSVZFX0JPVU5EX0ZPUl9Q
QVJUSUFMX1ZJRVdTICAgICAgICAgICAgICAgICAgIDAKICNkZWZpbmUgUEFTX1BSSU1JVElWRV9C
T1VORF9GT1JfQkFTRUxJTkVfQUxMT0NBVE9SUyAgICAgICAgICAgICAwCisjZGVmaW5lIFBBU19Q
UklNSVRJVkVfQk9VTkRfRk9SX05PX1ZJRVdfQ0FDSEUgICAgICAgICAgICAgICAgICAgVUlOVF9N
QVgKICNkZWZpbmUgUEFTX1BSSU1JVElWRV9NQVhfU0VHUkVHQVRFRF9PQkpFQ1RfU0laRSAgICAg
ICAgICAgICAgICBVSU5UX01BWAogI2RlZmluZSBQQVNfUFJJTUlUSVZFX01BWF9CSVRGSVRfT0JK
RUNUX1NJWkUgICAgICAgICAgICAgICAgICAgIFVJTlRfTUFYCiAKICNkZWZpbmUgUEFTX1RZUEVE
X0JPVU5EX0ZPUl9QQVJUSUFMX1ZJRVdTICAgICAgICAgICAgICAgICAgICAgICAxMAogI2RlZmlu
ZSBQQVNfVFlQRURfQk9VTkRfRk9SX0JBU0VMSU5FX0FMTE9DQVRPUlMgICAgICAgICAgICAgICAg
IDAKKyNkZWZpbmUgUEFTX1RZUEVEX0JPVU5EX0ZPUl9OT19WSUVXX0NBQ0hFICAgICAgICAgICAg
ICAgICAgICAgICBVSU5UX01BWAogI2RlZmluZSBQQVNfVFlQRURfTUFYX1NFR1JFR0FURURfT0JK
RUNUX1NJWkUgICAgICAgICAgICAgICAgICAgIFVJTlRfTUFYCiAjZGVmaW5lIFBBU19UWVBFRF9N
QVhfQklURklUX09CSkVDVF9TSVpFICAgICAgICAgICAgICAgICAgICAgICAgMAogCiAjZGVmaW5l
IFBBU19PQkpDX0JPVU5EX0ZPUl9QQVJUSUFMX1ZJRVdTICAgICAgICAgICAgICAgICAgICAgICAg
MTAKICNkZWZpbmUgUEFTX09CSkNfQk9VTkRfRk9SX0JBU0VMSU5FX0FMTE9DQVRPUlMgICAgICAg
ICAgICAgICAgICAxMAorI2RlZmluZSBQQVNfT0JKQ19CT1VORF9GT1JfTk9fVklFV19DQUNIRSAg
ICAgICAgICAgICAgICAgICAgICAgIFVJTlRfTUFYCiAjZGVmaW5lIFBBU19PQkpDX01BWF9TRUdS
RUdBVEVEX09CSkVDVF9TSVpFICAgICAgICAgICAgICAgICAgICAgVUlOVF9NQVgKICNkZWZpbmUg
UEFTX09CSkNfTUFYX0JJVEZJVF9PQkpFQ1RfU0laRSAgICAgICAgICAgICAgICAgICAgICAgICAw
CiAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19pbnRyaW5zaWNf
YWxsb2NhdGlvbl9yZXN1bHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0LmgJKHJldmlzaW9uIDI3
OTk2NCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19pbnRyaW5zaWNf
YWxsb2NhdGlvbl9yZXN1bHQuaAkobm9uZXhpc3RlbnQpCkBAIC0xLDEwOSArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChjKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
Ci0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5kZWYgUEFTX0lO
VFJJTlNJQ19BTExPQ0FUSU9OX1JFU1VMVF9ICi0jZGVmaW5lIFBBU19JTlRSSU5TSUNfQUxMT0NB
VElPTl9SRVNVTFRfSAotCi0jaW5jbHVkZSA8ZXJybm8uaD4KLSNpbmNsdWRlICJwYXNfYWxsb2Nh
dGlvbl9yZXN1bHQuaCIKLSNpbmNsdWRlICJwYXNfY29uZmlnLmgiCi0jaW5jbHVkZSAicGFzX3V0
aWxzLmgiCi0jaW5jbHVkZSAicGFzX3plcm9fbW9kZS5oIgotCi1QQVNfQkVHSU5fRVhURVJOX0M7
Ci0KLS8qIFdlIGtlZXAgdGhpcyBzZXBhcmF0ZSBmcm9tIHBhc19hbGxvY2F0aW9uX3Jlc3VsdCBz
aW5jZSB0aGlzIGlzIHN1cHBvc2VkIHRvIGJlIGFibGUgdG8KLSAgIGNvbW11bmljYXRlIGFueSBv
dGhlciBtZXRhLWRhdGEgdGhhdCB0aGUgaW50cmluc2ljL3ByaW1pdGl2ZSBhbGxvY2F0b3IgaGFz
IGF2YWlsYWJsZS4gQXQKLSAgIG9uZSBwb2ludCB0aGF0IGluY2x1ZGVkIHRoZSBvYmplY3Rfc2l6
ZV9tb2RlLCBidXQgdGhhdCdzIG5vIGxvbmdlciB0aGUgY2FzZS4KLQotICAgSWYgd2UgZ28gYSBs
b25nIHRpbWUgd2l0aG91dCBhZGRpbmcgYWRkaXRpb25hbCBmaWVsZHMgdG8gdGhpcyB0byBkaXN0
aW5ndWlzaCBpdCBmcm9tCi0gICBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgdGhlbiB3ZSBzaG91bGQg
cHJvYmFibHkgZ2V0IHJpZCBvZiB0aGlzLiAqLwotCi1zdHJ1Y3QgcGFzX2ludHJpbnNpY19hbGxv
Y2F0aW9uX3Jlc3VsdDsKLXR5cGVkZWYgc3RydWN0IHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9y
ZXN1bHQgcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdDsKLQotc3RydWN0IHBhc19pbnRy
aW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQgewotICAgIHZvaWQqIHB0cjsKLSAgICBib29sIGRpZF9z
dWNjZWVkOwotICAgIHBhc196ZXJvX21vZGUgemVyb19tb2RlOwotfTsKLQotc3RhdGljIFBBU19B
TFdBWVNfSU5MSU5FIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQKLXBhc19pbnRyaW5z
aWNfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX2VtcHR5KHZvaWQpCi17Ci0gICAgcGFzX2ludHJp
bnNpY19hbGxvY2F0aW9uX3Jlc3VsdCByZXN1bHQ7Ci0gICAgcmVzdWx0LmRpZF9zdWNjZWVkID0g
ZmFsc2U7Ci0gICAgcmVzdWx0Lnplcm9fbW9kZSA9IHBhc196ZXJvX21vZGVfbWF5X2hhdmVfbm9u
X3plcm87Ci0gICAgcmVzdWx0LnB0ciA9IE5VTEw7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQot
c3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQK
LXBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlKHBhc19hbGxvY2F0aW9uX3Jl
c3VsdCBhbGxvY2F0aW9uX3Jlc3VsdCkKLXsKLSAgICBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25f
cmVzdWx0IHJlc3VsdDsKLSAgICByZXN1bHQucHRyID0gKHZvaWQqKWFsbG9jYXRpb25fcmVzdWx0
LmJlZ2luOwotICAgIHJlc3VsdC5kaWRfc3VjY2VlZCA9IGFsbG9jYXRpb25fcmVzdWx0LmRpZF9z
dWNjZWVkOwotICAgIHJlc3VsdC56ZXJvX21vZGUgPSBhbGxvY2F0aW9uX3Jlc3VsdC56ZXJvX21v
ZGU7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBh
c19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQKLXBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9y
ZXN1bHRfaWRlbnRpdHkocGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdCByZXN1bHQpCi17
Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19p
bnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQKLXBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1
bHRfemVybyhwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0IHJlc3VsdCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2l6ZSkKLXsKLSAgICBpZiAocmVz
dWx0LmRpZF9zdWNjZWVkCi0gICAgICAgICYmIHJlc3VsdC56ZXJvX21vZGUgPT0gcGFzX3plcm9f
bW9kZV9tYXlfaGF2ZV9ub25femVybykKLSAgICAgICAgcGFzX3plcm9fbWVtb3J5KHJlc3VsdC5w
dHIsIHNpemUpOwotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLXN0YXRpYyBQQVNfQUxXQVlTX0lO
TElORSBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0Ci1wYXNfaW50cmluc2ljX2FsbG9j
YXRpb25fcmVzdWx0X3NldF9lcnJubygKLSAgICBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVz
dWx0IHJlc3VsdCkKLXsKLSAgICBpZiAoIXJlc3VsdC5kaWRfc3VjY2VlZCkKLSAgICAgICAgZXJy
bm8gPSBFTk9NRU07Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotc3RhdGljIFBBU19BTFdBWVNf
SU5MSU5FIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQKLXBhc19pbnRyaW5zaWNfYWxs
b2NhdGlvbl9yZXN1bHRfY3Jhc2hfb25fZXJyb3IoCi0gICAgcGFzX2ludHJpbnNpY19hbGxvY2F0
aW9uX3Jlc3VsdCByZXN1bHQpCi17Ci0gICAgUEFTX0FTU0VSVChyZXN1bHQuZGlkX3N1Y2NlZWQp
OwotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLVBBU19FTkRfRVhURVJOX0M7Ci0KLSNlbmRpZiAv
KiBQQVNfSU5UUklOU0lDX0FMTE9DQVRJT05fUkVTVUxUX0ggKi8KLQpJbmRleDogU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2ludHJpbnNpY19oZWFwX3N1cHBvcnQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaW50cmluc2lj
X2hlYXBfc3VwcG9ydC5oCShyZXZpc2lvbiAyNzk5NjQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfaW50cmluc2ljX2hlYXBfc3VwcG9ydC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yNyw3ICsyNyw3IEBACiAjZGVmaW5lIFBBU19JTlRSSU5TSUNfSEVBUF9TVVBQT1JUX0gK
IAogI2luY2x1ZGUgInBhc19hbGxvY2F0b3JfaW5kZXguaCIKLSNpbmNsdWRlICJwYXNfY29tcGFj
dF9hdG9taWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyLmgiCisjaW5jbHVk
ZSAicGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyLmgiCiAj
aW5jbHVkZSAicGFzX2ludGVybmFsX2NvbmZpZy5oIgogI2luY2x1ZGUgInBhc191dGlscy5oIgog
CkBAIC0zNyw3ICszNyw3IEBAIHN0cnVjdCBwYXNfaW50cmluc2ljX2hlYXBfc3VwcG9ydDsKIHR5
cGVkZWYgc3RydWN0IHBhc19pbnRyaW5zaWNfaGVhcF9zdXBwb3J0IHBhc19pbnRyaW5zaWNfaGVh
cF9zdXBwb3J0OwogCiBzdHJ1Y3QgcGFzX2ludHJpbnNpY19oZWFwX3N1cHBvcnQgewotICAgIHBh
c19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHIgaW5k
ZXhfdG9fc2l6ZV9kaXJlY3RvcnlbCisgICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnlfcHRyIGluZGV4X3RvX3NpemVfZGlyZWN0b3J5WwogICAgICAgICBQQVNf
TlVNX0lOVFJJTlNJQ19TSVpFX0NMQVNTRVNdOwogICAgIHBhc19hbGxvY2F0b3JfaW5kZXggaW5k
ZXhfdG9fYWxsb2NhdG9yX2luZGV4W1BBU19OVU1fSU5UUklOU0lDX1NJWkVfQ0xBU1NFU107CiB9
OwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xhcmdlX2hlYXBf
cGh5c2ljYWxfcGFnZV9zaGFyaW5nX2NhY2hlLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xhcmdlX2hlYXBfcGh5c2ljYWxfcGFnZV9zaGFyaW5n
X2NhY2hlLmMJKHJldmlzaW9uIDI3OTk2NCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19sYXJnZV9oZWFwX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19jYWNoZS5jCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMDksNyArMTA5LDcgQEAgc3RhdGljIHBhc19hbGlnbmVkX2FsbG9jYXRp
b25fcmVzdWx0IGxhcgogICAgICAgICAgICAgICAgICAgICAoY2hhciopYWxsb2NhdGlvbl9yZXN1
bHQuYmVnaW4gKyBhbGlnbmVkX3NpemUpOwogICAgICAgICB9CiAgICAgICAgIAotICAgICAgICBw
YXNfYWxsb2NhdGlvbl9yZXN1bHRfemVybygmYWxsb2NhdGlvbl9yZXN1bHQsIGFsaWduZWRfc2l6
ZSk7CisgICAgICAgIGFsbG9jYXRpb25fcmVzdWx0ID0gcGFzX2FsbG9jYXRpb25fcmVzdWx0X3pl
cm8oYWxsb2NhdGlvbl9yZXN1bHQsIGFsaWduZWRfc2l6ZSk7CiAgICAgfQogCiAgICAgcGFzX2Vu
dW1lcmFibGVfcmFuZ2VfbGlzdF9hcHBlbmQoCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9yLmMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvci5jCShyZXZpc2lvbiAy
Nzk5NjQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxs
b2NhdG9yLmMJKHdvcmtpbmcgY29weSkKQEAgLTMzLDE2ICszMywyMyBAQAogI2luY2x1ZGUgInBh
c19sb2NhbF9hbGxvY2F0b3JfaW5saW5lcy5oIgogI2luY2x1ZGUgInBhc19yYWNlX3Rlc3RfaG9v
a3MuaCIKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9wYWdlLmgiCi0jaW5jbHVkZSAicGFzX3Nl
Z3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5LmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0
ZWRfdmlld19pbmxpbmVzLmgiCisjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnkuaCIKKyNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF92aWV3LmgiCiAjaW5jbHVkZSAicGFzX3V0
aWxpdHlfaGVhcC5oIgogCi11aW50OF90IHBhc19sb2NhbF9hbGxvY2F0b3Jfc2hvdWxkX3N0b3Bf
Y291bnRfZm9yX3N1c3BlbmQgPSA1OworI2lmIFBBU19MT0NBTF9BTExPQ0FUT1JfTUVBU1VSRV9S
RUZJTExfRUZGSUNJRU5DWQorZG91YmxlIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVmaWxsX2VmZmlj
aWVuY3lfc3VtID0gMC47Citkb3VibGUgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZWZpbGxfZWZmaWNp
ZW5jeV9uID0gMC47CitQQVNfREVGSU5FX0xPQ0socGFzX2xvY2FsX2FsbG9jYXRvcl9yZWZpbGxf
ZWZmaWNpZW5jeSk7CisjZW5kaWYgLyogUEFTX0xPQ0FMX0FMTE9DQVRPUl9NRUFTVVJFX1JFRklM
TF9FRkZJQ0lFTkNZICovCiAKIHZvaWQgcGFzX2xvY2FsX2FsbG9jYXRvcl9jb25zdHJ1Y3QocGFz
X2xvY2FsX2FsbG9jYXRvciogYWxsb2NhdG9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3RvcnkqIGRpcmVjdG9yeSkKIHsKICAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0g
ZmFsc2U7CisKKyAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhX2NvbnN0cnVj
dCgKKyAgICAgICAgJmFsbG9jYXRvci0+c2NhdmVuZ2VyX2RhdGEsIHBhc19sb2NhbF9hbGxvY2F0
b3JfYWxsb2NhdG9yX2tpbmQpOwogICAgIAogICAgIGFsbG9jYXRvci0+cGF5bG9hZF9lbmQgPSAw
OwogICAgIGFsbG9jYXRvci0+cmVtYWluaW5nID0gMDsKQEAgLTU2LDMwICs2MywyMyBAQCB2b2lk
IHBhc19sb2NhbF9hbGxvY2F0b3JfY29uc3RydWN0KHBhc19sCiAgICAgYWxsb2NhdG9yLT5jdXJy
ZW50X29mZnNldCA9IDA7CiAgICAgYWxsb2NhdG9yLT5lbmRfb2Zmc2V0ID0gMDsKICAgICAKLSAg
ICBhbGxvY2F0b3ItPnZpZXcgPSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnlf
YXNfdmlldyhkaXJlY3RvcnkpOworICAgIGFsbG9jYXRvci0+dmlldyA9IHBhc19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5X2FzX3ZpZXcoZGlyZWN0b3J5KTsKICAgICBhbGxvY2F0b3ItPmNvbmZp
Z19raW5kID0gcGFzX2xvY2FsX2FsbG9jYXRvcl9jb25maWdfa2luZF9jcmVhdGVfbm9ybWFsKAog
ICAgICAgICBkaXJlY3RvcnktPmJhc2UucGFnZV9jb25maWdfa2luZCk7CiAgICAgaWYgKHZlcmJv
c2UpIHsKLSAgICAgICAgcGFzX2xvZygiYWxsb2NhdG9yICVwIGhhcyBraW5kICVzXG4iLAotICAg
ICAgICAgICAgICAgIGFsbG9jYXRvciwgcGFzX2xvY2FsX2FsbG9jYXRvcl9jb25maWdfa2luZF9n
ZXRfc3RyaW5nKGFsbG9jYXRvci0+Y29uZmlnX2tpbmQpLCAiXG4iKTsKKyAgICAgICAgcGFzX2xv
ZygiYWxsb2NhdG9yICVwIGhhcyBraW5kICVzLCBlbmRzIGF0ICVwXG4iLAorICAgICAgICAgICAg
ICAgIGFsbG9jYXRvciwgcGFzX2xvY2FsX2FsbG9jYXRvcl9jb25maWdfa2luZF9nZXRfc3RyaW5n
KGFsbG9jYXRvci0+Y29uZmlnX2tpbmQpLAorICAgICAgICAgICAgICAgIChjaGFyKilhbGxvY2F0
b3IgKyBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9sb2NhbF9hbGxvY2F0b3Jfc2l6ZShk
aXJlY3RvcnkpKTsKICAgICB9CiAgICAgCi0gICAgYWxsb2NhdG9yLT5pc19pbl91c2UgPSBmYWxz
ZTsKLSAgICBhbGxvY2F0b3ItPnNob3VsZF9zdG9wX2NvdW50ID0gMDsKLSAgICBhbGxvY2F0b3It
PmRpcnR5ID0gZmFsc2U7CiAgICAgYWxsb2NhdG9yLT5jdXJyZW50X3dvcmRfaXNfdmFsaWQgPSBm
YWxzZTsKIH0KIAotdm9pZCBwYXNfbG9jYWxfYWxsb2NhdG9yX2Rlc3RydWN0KHBhc19sb2NhbF9h
bGxvY2F0b3IqIGFsbG9jYXRvcikKLXsKLSAgICBQQVNfVU5VU0VEX1BBUkFNKGFsbG9jYXRvcik7
Ci19Ci0KIHZvaWQgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZXNldChwYXNfbG9jYWxfYWxsb2NhdG9y
KiBhbGxvY2F0b3IpCiB7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
KiBkaXJlY3Rvcnk7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9y
eTsKIAotICAgIGRpcmVjdG9yeSA9IHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2dsb2JhbF9zaXpl
X2RpcmVjdG9yeShhbGxvY2F0b3ItPnZpZXcpOworICAgIGRpcmVjdG9yeSA9IHBhc19zZWdyZWdh
dGVkX3ZpZXdfZ2V0X3NpemVfZGlyZWN0b3J5KGFsbG9jYXRvci0+dmlldyk7CiAKICAgICBwYXNf
bG9jYWxfYWxsb2NhdG9yX3Jlc2V0X2ltcGwoYWxsb2NhdG9yLCBkaXJlY3RvcnksIGRpcmVjdG9y
eS0+YmFzZS5wYWdlX2NvbmZpZ19raW5kKTsKIH0KQEAgLTg4LDEzICs4OCwxMyBAQCB2b2lkIHBh
c19sb2NhbF9hbGxvY2F0b3JfbW92ZShwYXNfbG9jYWxfCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yKiBzcmMpCiB7CiAgICAgc2l6ZV90IHNpemU7Ci0g
ICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7CisgICAg
cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeTsKICAgICBwYXNfc2VncmVn
YXRlZF9wYXJ0aWFsX3ZpZXcqIHBhcnRpYWxfdmlldzsKICAgICBwYXNfc2VncmVnYXRlZF9zaGFy
ZWRfdmlldyogc2hhcmVkX3ZpZXc7CiAKLSAgICBkaXJlY3RvcnkgPSBwYXNfc2VncmVnYXRlZF92
aWV3X2dldF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnkoc3JjLT52aWV3KTsKKyAgICBkaXJlY3Rvcnkg
PSBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9zaXplX2RpcmVjdG9yeShzcmMtPnZpZXcpOwogICAg
IAotICAgIHNpemUgPSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfbG9jYWxf
YWxsb2NhdG9yX3NpemUoZGlyZWN0b3J5KTsKKyAgICBzaXplID0gcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnlfbG9jYWxfYWxsb2NhdG9yX3NpemUoZGlyZWN0b3J5KTsKICAgICAKICAgICBt
ZW1jcHkoZHN0LCBzcmMsIHNpemUpOwogCkBAIC0xMzEsMTMgKzEzMSwxMSBAQCBib29sIHBhc19s
b2NhbF9hbGxvY2F0b3JfcmVmaWxsX3dpdGhfYml0CiAKIHZvaWQgcGFzX2xvY2FsX2FsbG9jYXRv
cl9maW5pc2hfcmVmaWxsX3dpdGhfYml0Zml0KAogICAgIHBhc19sb2NhbF9hbGxvY2F0b3IqIGFs
bG9jYXRvciwKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIHNpemVf
ZGlyZWN0b3J5LAotICAgIHBhc19tYWdhemluZSogbWFnYXppbmUpCisgICAgcGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnkqIHNpemVfZGlyZWN0b3J5KQogewogICAgIHN0YXRpYyBjb25zdCBi
b29sIHZlcmJvc2UgPSBmYWxzZTsKICAgICAKICAgICBwYXNfYml0Zml0X2FsbG9jYXRvciogYml0
Zml0OwotICAgIHBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3MqIGdsb2JhbF9zaXplX2NsYXNz
OwogICAgIHBhc19iaXRmaXRfc2l6ZV9jbGFzcyogc2l6ZV9jbGFzczsKICAgICBwYXNfYml0Zml0
X3ZpZXcqIGJpdGZpdF92aWV3OwogICAgIHBhc19iaXRmaXRfcGFnZV9jb25maWdfa2luZCBiaXRm
aXRfa2luZDsKQEAgLTE0OCwyOCArMTQ2LDIxIEBAIHZvaWQgcGFzX2xvY2FsX2FsbG9jYXRvcl9m
aW5pc2hfcmVmaWxsX3cKICAgICAgICAgICAgICAgICBhbGxvY2F0b3IsIHNpemVfZGlyZWN0b3J5
KTsKICAgICB9CiAgICAgCi0gICAgZ2xvYmFsX3NpemVfY2xhc3MgPSBwYXNfY29tcGFjdF9hdG9t
aWNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzX3B0cl9sb2FkX25vbl9udWxsKAorICAgIHNpemVf
Y2xhc3MgPSBwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X3NpemVfY2xhc3NfcHRyX2xvYWRfbm9u
X251bGwoCiAgICAgICAgICZzaXplX2RpcmVjdG9yeS0+Yml0Zml0X3NpemVfY2xhc3MpOwogICAg
IAotICAgIGJpdGZpdF9raW5kID0gcGFzX2NvbXBhY3RfYml0Zml0X2RpcmVjdG9yeV9wdHJfbG9h
ZF9ub25fbnVsbCgKLSAgICAgICAgJmdsb2JhbF9zaXplX2NsYXNzLT5iYXNlLmRpcmVjdG9yeSkt
PmNvbmZpZ19raW5kOworICAgIGJpdGZpdF9raW5kID0gcGFzX2NvbXBhY3RfYml0Zml0X2RpcmVj
dG9yeV9wdHJfbG9hZF9ub25fbnVsbCgmc2l6ZV9jbGFzcy0+ZGlyZWN0b3J5KS0+Y29uZmlnX2tp
bmQ7CiAgICAgCiAgICAgYWxsb2NhdG9yLT5jb25maWdfa2luZCA9IHBhc19sb2NhbF9hbGxvY2F0
b3JfY29uZmlnX2tpbmRfY3JlYXRlX2JpdGZpdChiaXRmaXRfa2luZCk7CiAgICAgCiAgICAgYml0
Zml0ID0gcGFzX2xvY2FsX2FsbG9jYXRvcl9nZXRfYml0Zml0KGFsbG9jYXRvcik7CiAgICAgCi0g
ICAgc2l6ZV9jbGFzcyA9IHBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3Nfc2VsZWN0X2Zvcl9t
YWdhemluZShnbG9iYWxfc2l6ZV9jbGFzcywgbWFnYXppbmUpOwotICAgIAotICAgIFBBU19BU1NF
UlQoc2l6ZV9jbGFzcyk7Ci0gICAgCiAgICAgYml0Zml0X2NvbmZpZyA9IHBhc19iaXRmaXRfcGFn
ZV9jb25maWdfa2luZF9nZXRfY29uZmlnKGJpdGZpdF9raW5kKTsKICAgICAKLSAgICBiaXRmaXRf
dmlldyA9IHBhc19iaXRmaXRfc2l6ZV9jbGFzc19nZXRfZmlyc3RfZnJlZV92aWV3KAotICAgICAg
ICBzaXplX2NsYXNzLCBnbG9iYWxfc2l6ZV9jbGFzcywgYml0Zml0X2NvbmZpZyk7CisgICAgYml0
Zml0X3ZpZXcgPSBwYXNfYml0Zml0X3NpemVfY2xhc3NfZ2V0X2ZpcnN0X2ZyZWVfdmlldyhzaXpl
X2NsYXNzLCBiaXRmaXRfY29uZmlnKTsKICAgICAKICAgICBQQVNfQVNTRVJUKGJpdGZpdF92aWV3
KTsKICAgICAKLSAgICBiaXRmaXQtPmdsb2JhbF9zaXplX2NsYXNzID0gZ2xvYmFsX3NpemVfY2xh
c3M7CiAgICAgYml0Zml0LT5zaXplX2NsYXNzID0gc2l6ZV9jbGFzczsKICAgICBiaXRmaXQtPnZp
ZXcgPSBiaXRmaXRfdmlldzsKIH0KQEAgLTE4Myw3ICsxNzQsNyBAQCBzdGF0aWMgYm9vbCBzdG9w
X2ltcGwoCiAgICAgCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3OwogICAgIHBhc19zZWdy
ZWdhdGVkX3BhZ2UqIHBhZ2U7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0
b3J5KiBkaXJlY3Rvcnk7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVj
dG9yeTsKICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZpZzsKICAgICBw
YXNfbG9jayogaGVsZF9sb2NrOwogCkBAIC0xOTMsOCArMTg0LDEwIEBAIHN0YXRpYyBib29sIHN0
b3BfaW1wbCgKICAgICBpZiAoIWFsbG9jYXRvci0+cGFnZV9pc2gpCiAgICAgICAgIHJldHVybiB0
cnVlOwogCisgICAgaGVsZF9sb2NrID0gTlVMTDsKKwogICAgIHZpZXcgPSBhbGxvY2F0b3ItPnZp
ZXc7Ci0gICAgZGlyZWN0b3J5ID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfZ2xvYmFsX3NpemVf
ZGlyZWN0b3J5KHZpZXcpOworICAgIGRpcmVjdG9yeSA9IHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0
X3NpemVfZGlyZWN0b3J5KHZpZXcpOwogCiAgICAgcGFnZV9jb25maWcgPSAqcGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9jb25maWdfa2luZF9nZXRfY29uZmlnKGRpcmVjdG9yeS0+YmFzZS5wYWdlX2NvbmZp
Z19raW5kKTsKIApAQCAtMjAyLDI5ICsxOTUsMjggQEAgc3RhdGljIGJvb2wgc3RvcF9pbXBsKAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb2NhdG9y
LCBwYWdlX2NvbmZpZyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHBhZ2VfY29uZmlnKTsKICAgICAKLSAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19n
bG9iYWxfc2l6ZV9kaXJlY3RvcnkodmlldykpIHsKKyAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfdmll
d19pc19zaXplX2RpcmVjdG9yeSh2aWV3KSkgewogICAgICAgICB2aWV3ID0gcGFnZS0+b3duZXI7
Ci0gICAgICAgIFBBU19BU1NFUlQocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19leGNsdXNpdmVfaXNo
KHZpZXcpKTsKKyAgICAgICAgUEFTX0FTU0VSVChwYXNfc2VncmVnYXRlZF92aWV3X2lzX3NvbWVf
ZXhjbHVzaXZlKHZpZXcpKTsKICAgICB9IGVsc2UKICAgICAgICAgUEFTX0FTU0VSVChwYXNfc2Vn
cmVnYXRlZF92aWV3X2lzX3BhcnRpYWwodmlldykpOwotCi0gICAgaGVsZF9sb2NrID0gTlVMTDsK
KyAgICAKICAgICBpZiAoIXBhc19zZWdyZWdhdGVkX3BhZ2Vfc3dpdGNoX2xvY2tfd2l0aF9tb2Rl
KHBhZ2UsICZoZWxkX2xvY2ssIHBhZ2VfbG9ja19tb2RlLCBwYWdlX2NvbmZpZykpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAKICAgICBwYWdlX2NvbmZpZy5zcGVjaWFsaXplZF9sb2NhbF9h
bGxvY2F0b3JfcmV0dXJuX21lbW9yeV90b19wYWdlKAogICAgICAgICBhbGxvY2F0b3IsIHZpZXcs
IHBhZ2UsIGRpcmVjdG9yeSwgaGVhcF9sb2NrX2hvbGRfbW9kZSk7Ci0KKyAgICAKICAgICBwYXNf
cmFjZV90ZXN0X2hvb2socGFzX3JhY2VfdGVzdF9ob29rX2xvY2FsX2FsbG9jYXRvcl9zdG9wX2Jl
Zm9yZV9kaWRfc3RvcF9hbGxvY2F0aW5nKTsKICAgICAKICAgICBwYXNfc2VncmVnYXRlZF92aWV3
X2RpZF9zdG9wX2FsbG9jYXRpbmcodmlldywgcGFnZSwgcGFnZV9jb25maWcpOwogICAgIAogICAg
IHBhc19yYWNlX3Rlc3RfaG9vayhwYXNfcmFjZV90ZXN0X2hvb2tfbG9jYWxfYWxsb2NhdG9yX3N0
b3BfYmVmb3JlX3VubG9jayk7Ci0KLSAgICBwYXNfbG9ja19zd2l0Y2goJmhlbGRfbG9jaywgTlVM
TCk7CiAgICAgCiAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZXNldChhbGxvY2F0b3IpOwogICAg
IAorICAgIHBhc19sb2NrX3N3aXRjaCgmaGVsZF9sb2NrLCBOVUxMKTsKKyAgICAKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIApAQCAtMjM5LDkgKzIzMSw5IEBAIGJvb2wgcGFzX2xvY2FsX2FsbG9jYXRv
cl9zdG9wKAogICAgIAogICAgIGJvb2wgcmVzdWx0OwogCi0gICAgUEFTX0FTU0VSVCghYWxsb2Nh
dG9yLT5pc19pbl91c2UpOworICAgIFBBU19BU1NFUlQoIWFsbG9jYXRvci0+c2NhdmVuZ2VyX2Rh
dGEuaXNfaW5fdXNlKTsKIAotICAgIGFsbG9jYXRvci0+aXNfaW5fdXNlID0gdHJ1ZTsKKyAgICBh
bGxvY2F0b3ItPnNjYXZlbmdlcl9kYXRhLmlzX2luX3VzZSA9IHRydWU7CiAgICAgcGFzX2NvbXBp
bGVyX2ZlbmNlKCk7CiAKICAgICByZXN1bHQgPSBzdG9wX2ltcGwoYWxsb2NhdG9yLCBwYWdlX2xv
Y2tfbW9kZSwgaGVhcF9sb2NrX2hvbGRfbW9kZSk7CkBAIC0yNDksMTEgKzI0MSwxMSBAQCBib29s
IHBhc19sb2NhbF9hbGxvY2F0b3Jfc3RvcCgKICAgICBpZiAocmVzdWx0KSB7CiAgICAgICAgIGlm
ICh2ZXJib3NlKQogICAgICAgICAgICAgcGFzX2xvZygiRGlkIHN0b3AgYWxsb2NhdG9yICVwXG4i
LCBhbGxvY2F0b3IpOwotICAgICAgICBhbGxvY2F0b3ItPnNob3VsZF9zdG9wX2NvdW50ID0gMDsK
KyAgICAgICAgYWxsb2NhdG9yLT5zY2F2ZW5nZXJfZGF0YS5zaG91bGRfc3RvcF9jb3VudCA9IDA7
CiAgICAgfQogICAgIAogICAgIHBhc19jb21waWxlcl9mZW5jZSgpOwotICAgIGFsbG9jYXRvci0+
aXNfaW5fdXNlID0gZmFsc2U7CisgICAgYWxsb2NhdG9yLT5zY2F2ZW5nZXJfZGF0YS5pc19pbl91
c2UgPSBmYWxzZTsKIAogICAgIHJldHVybiByZXN1bHQ7CiB9CkBAIC0yNjcsOCArMjU5LDggQEAg
Ym9vbCBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlKHBhc19sbwogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgCiAgICAgaWYgKGFjdGlvbiA9PSBwYXNfYWxsb2NhdG9yX3NjYXZlbmdlX3Jl
cXVlc3Rfc3RvcF9hY3Rpb24pIHsKLSAgICAgICAgaWYgKGFsbG9jYXRvci0+ZGlydHkpIHsKLSAg
ICAgICAgICAgIGFsbG9jYXRvci0+ZGlydHkgPSBmYWxzZTsKKyAgICAgICAgaWYgKGFsbG9jYXRv
ci0+c2NhdmVuZ2VyX2RhdGEuZGlydHkpIHsKKyAgICAgICAgICAgIGFsbG9jYXRvci0+c2NhdmVu
Z2VyX2RhdGEuZGlydHkgPSBmYWxzZTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAg
ICB9CiAgICAgfQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xv
Y2FsX2FsbG9jYXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3IuaAkocmV2aXNpb24gMjc5OTY0KQorKysgU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvci5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zMSw3ICszMSw3IEBACiAjaW5jbHVkZSAicGFzX2JpdGZpdF9hbGxvY2F0b3Iu
aCIKICNpbmNsdWRlICJwYXNfY29uZmlnLmgiCiAjaW5jbHVkZSAicGFzX2xvY2FsX2FsbG9jYXRv
cl9jb25maWdfa2luZC5oIgotI2luY2x1ZGUgInBhc19sb2NhbF9hbGxvY2F0b3JfbGluZS5oIgor
I2luY2x1ZGUgInBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEuaCIKICNpbmNsdWRl
ICJwYXNfbG9jay5oIgogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnLmgiCiAj
aW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfdmlldy5oIgpAQCAtNTAsNiArNTAsMTIgQEAgdHlwZWRl
ZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCBwYXNfcwogdHlwZWRlZiBzdHJ1Y3QgcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZSBwYXNfc2VncmVnYXRlZF9wYWdlOwogCiBzdHJ1Y3QgcGFzX2xvY2FsX2Fs
bG9jYXRvciB7CisgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YSBzY2F2ZW5n
ZXJfZGF0YTsKKyAgICAKKyAgICB1aW50OF90IGFsaWdubWVudF9zaGlmdDsKKyAgICBwYXNfbG9j
YWxfYWxsb2NhdG9yX2NvbmZpZ19raW5kIGNvbmZpZ19raW5kIDogODsKKyAgICBib29sIGN1cnJl
bnRfd29yZF9pc192YWxpZDsgLyogVGhpcyBpcyBqdXN0IHVzZWQgYnkgZW51bWVyYXRpb24uICov
CisKICAgICAvKiBUaGlzIGhhcyB0byBoYXZlIGEgcG9pbnRlciB0byBvdXIgaW5kZXggd2l0aGlu
IHRoZSB2aWV3LiBXZSBjYW4gZ2V0IHRvIHRoZSB2aWV3IHVzaW5nCiAgICAgICAgcGFnZV9pc2gu
IE1heWJlIHdvcnRoIHJlY29uc2lkZXJpbmcgdGhhdCwgYnV0IHRoZW4gYWdhaW4gbWF5YmUgaXQn
cyBnb29kIGVub3VnaC4gCiAgICAgCkBAIC03MSwxNyArNzcsMTIgQEAgc3RydWN0IHBhc19sb2Nh
bF9hbGxvY2F0b3IgewogICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldzsgLyogcG9pbnRzIHRv
IGEgcGFydGlhbCB2aWV3IGlmIHdlJ3JlIGluIHBhcnRpYWwgbW9kZSBvciB0aGUgc2l6ZQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlyZWN0b3J5IG90aGVyd2lzZS4gVGhpcyB3
aWxsIHBvaW50IHRvIGEgcGFydGlhbCB2aWV3IGluIGVpdGhlcgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcHJpbW9yZGlhbCBwYXJ0aWFsIG1vZGUgb3IgaW4gbm9ybWFsIHBhcnRp
YWwgbW9kZS4gKi8KLSAgICB1aW50MTZfdCBudW1fbGluZXM7Ci0gICAgdWludDhfdCBhbGlnbm1l
bnRfc2hpZnQ7Ci0gICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9jb25maWdfa2luZCBjb25maWdfa2lu
ZCA6IDg7Ci0gICAgYm9vbCBpc19pbl91c2U7Ci0gICAgdWludDhfdCBzaG91bGRfc3RvcF9jb3Vu
dDsKLSAgICBib29sIGRpcnR5OwotICAgIGJvb2wgY3VycmVudF93b3JkX2lzX3ZhbGlkOyAvKiBU
aGlzIGlzIGp1c3QgdXNlZCBieSBlbnVtZXJhdGlvbi4gKi8KICAgICB1aW50NjRfdCBiaXRzWzFd
OwogfTsKIAogI2RlZmluZSBQQVNfTE9DQUxfQUxMT0NBVE9SX05VTExfSU5JVElBTElaRVIgKChw
YXNfbG9jYWxfYWxsb2NhdG9yKXsgXAorICAgICAgICAuc2NhdmVuZ2VyX2RhdGEgPSBcCisgICAg
ICAgICAgICBQQVNfTE9DQUxfQUxMT0NBVE9SX1NDQVZFTkdFUl9EQVRBX0lOSVRJQUxJWkVSKHBh
c19sb2NhbF9hbGxvY2F0b3JfYWxsb2NhdG9yX2tpbmQpLCBcCiAgICAgICAgIC5wYXlsb2FkX2Vu
ZCA9IDAsIFwKICAgICAgICAgLnJlbWFpbmluZyA9IDAsIFwKICAgICAgICAgLm9iamVjdF9zaXpl
ID0gMCwgXApAQCAtODksMTAgKzkwLDcgQEAgc3RydWN0IHBhc19sb2NhbF9hbGxvY2F0b3Igewog
ICAgICAgICAuY3VycmVudF9vZmZzZXQgPSAwLCBcCiAgICAgICAgIC5lbmRfb2Zmc2V0ID0gMCwg
XAogICAgICAgICAudmlldyA9IE5VTEwsIFwKLSAgICAgICAgLmNvbmZpZ19raW5kID0gcGFzX2xv
Y2FsX2FsbG9jYXRvcl9jb25maWdfa2luZF9ub3JtYWxfbnVsbCwgXAotICAgICAgICAuaXNfaW5f
dXNlID0gZmFsc2UsIFwKLSAgICAgICAgLnNob3VsZF9zdG9wX2NvdW50ID0gMCwgXAotICAgICAg
ICAuZGlydHkgPSBmYWxzZSBcCisgICAgICAgIC5jb25maWdfa2luZCA9IHBhc19sb2NhbF9hbGxv
Y2F0b3JfY29uZmlnX2tpbmRfbm9ybWFsX251bGwgXAogICAgIH0pCiAKICNkZWZpbmUgUEFTX0xP
Q0FMX0FMTE9DQVRPUl9TSVpFKG51bV9hbGxvY19iaXRzKSBcCkBAIC0xMDEsNyArOTksMTMgQEAg
c3RydWN0IHBhc19sb2NhbF9hbGxvY2F0b3IgewogICAgICAgICAgc2l6ZW9mKHVpbnQ2NF90KSAq
IFBBU19CSVRWRUNUT1JfTlVNX1dPUkRTNjQobnVtX2FsbG9jX2JpdHMpLCBcCiAgICAgICAgICBQ
QVNfUk9VTkRfVVBfVE9fUE9XRVJfT0ZfMihzaXplb2YocGFzX2JpdGZpdF9hbGxvY2F0b3IpLCBz
aXplb2YodWludDY0X3QpKSkpCiAKLVBBU19BUEkgZXh0ZXJuIHVpbnQ4X3QgcGFzX2xvY2FsX2Fs
bG9jYXRvcl9zaG91bGRfc3RvcF9jb3VudF9mb3Jfc3VzcGVuZDsKKyNkZWZpbmUgUEFTX0xPQ0FM
X0FMTE9DQVRPUl9NRUFTVVJFX1JFRklMTF9FRkZJQ0lFTkNZIDAKKworI2lmIFBBU19MT0NBTF9B
TExPQ0FUT1JfTUVBU1VSRV9SRUZJTExfRUZGSUNJRU5DWQorUEFTX0FQSSBleHRlcm4gZG91Ymxl
IHBhc19sb2NhbF9hbGxvY2F0b3JfcmVmaWxsX2VmZmljaWVuY3lfc3VtOworUEFTX0FQSSBleHRl
cm4gZG91YmxlIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVmaWxsX2VmZmljaWVuY3lfbjsKK1BBU19E
RUNMQVJFX0xPQ0socGFzX2xvY2FsX2FsbG9jYXRvcl9yZWZpbGxfZWZmaWNpZW5jeSk7CisjZW5k
aWYgLyogUEFTX0xPQ0FMX0FMTE9DQVRPUl9NRUFTVVJFX1JFRklMTF9FRkZJQ0lFTkNZICovCiAK
IHN0YXRpYyBpbmxpbmUgYm9vbCBwYXNfbG9jYWxfYWxsb2NhdG9yX2lzX251bGwocGFzX2xvY2Fs
X2FsbG9jYXRvciogYWxsb2NhdG9yKQogewpAQCAtMTM0LDkgKzEzOCw3IEBAIHN0YXRpYyBpbmxp
bmUgdWludHB0cl90IHBhc19sb2NhbF9hbGxvY2EKIH0KIAogUEFTX0FQSSB2b2lkIHBhc19sb2Nh
bF9hbGxvY2F0b3JfY29uc3RydWN0KHBhc19sb2NhbF9hbGxvY2F0b3IqIGFsbG9jYXRvciwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9n
bG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7Ci0KLVBBU19BUEkgdm9pZCBwYXNfbG9j
YWxfYWxsb2NhdG9yX2Rlc3RydWN0KHBhc19sb2NhbF9hbGxvY2F0b3IqIGFsbG9jYXRvcik7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7CiAKIFBBU19BUEkgdm9pZCBwYXNfbG9jYWxfYWxs
b2NhdG9yX3Jlc2V0KHBhc19sb2NhbF9hbGxvY2F0b3IqIGFsbG9jYXRvcik7CiAKSW5kZXg6IFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3JfaW5saW5l
cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19s
b2NhbF9hbGxvY2F0b3JfaW5saW5lcy5oCShyZXZpc2lvbiAyNzk5NjQpCisrKyBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9yX2lubGluZXMuaAkod29y
a2luZyBjb3B5KQpAQCAtMjYsMTcgKzI2LDE2IEBACiAjaWZuZGVmIFBBU19MT0NBTF9BTExPQ0FU
T1JfSU5MSU5FU19ICiAjZGVmaW5lIFBBU19MT0NBTF9BTExPQ0FUT1JfSU5MSU5FU19ICiAKLSNp
bmNsdWRlICJwYXNfYWxsX21hZ2F6aW5lcy5oIgogI2luY2x1ZGUgInBhc19hbGxvY2F0b3JfY291
bnRzLmgiCiAjaW5jbHVkZSAicGFzX2JpdGZpdF9hbGxvY2F0b3JfaW5saW5lcy5oIgogI2luY2x1
ZGUgInBhc19iaXRmaXRfZGlyZWN0b3J5LmgiCi0jaW5jbHVkZSAicGFzX2JpdGZpdF9nbG9iYWxf
c2l6ZV9jbGFzcy5oIgorI2luY2x1ZGUgInBhc19iaXRmaXRfc2l6ZV9jbGFzcy5oIgogI2luY2x1
ZGUgInBhc19jb25maWcuaCIKICNpbmNsdWRlICJwYXNfZXBvY2guaCIKICNpbmNsdWRlICJwYXNf
ZnVsbF9hbGxvY19iaXRzX2lubGluZXMuaCIKICNpbmNsdWRlICJwYXNfc2NhdmVuZ2VyLmgiCiAj
aW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfaW5saW5lcy5oIgotI2luY2x1
ZGUgInBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9pbmxpbmVzLmgiCisjaW5j
bHVkZSAicGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfaW5saW5lcy5oIgogI2luY2x1ZGUg
InBhc19zZWdyZWdhdGVkX2hlYXAuaCIKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9wYWdlX2lu
bGluZXMuaCIKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXdfaW5saW5lcy5o
IgpAQCAtNTEsNyArNTAsNyBAQAogUEFTX0JFR0lOX0VYVEVSTl9DOwogCiBzdGF0aWMgaW5saW5l
IHZvaWQgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZXNldF9pbXBsKHBhc19sb2NhbF9hbGxvY2F0b3Iq
IGFsbG9jYXRvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tp
bmQga2luZCkKIHsKICAgICBhbGxvY2F0b3ItPnBhZ2VfaXNoID0gMDsKQEAgLTU5LDExICs1OCwx
MCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgcGFzX2xvY2FsX2FsbG9jYXRvcl9yCiAgICAgYWxsb2Nh
dG9yLT5jdXJyZW50X3dvcmRfaXNfdmFsaWQgPSBmYWxzZTsKICAgICBhbGxvY2F0b3ItPnBheWxv
YWRfZW5kID0gMDsKICAgICBhbGxvY2F0b3ItPnJlbWFpbmluZyA9IDA7Ci0gICAgYWxsb2NhdG9y
LT5udW1fbGluZXMgPSAwOwogICAgIGFsbG9jYXRvci0+Y3VycmVudF9vZmZzZXQgPSAwOwogICAg
IGFsbG9jYXRvci0+ZW5kX29mZnNldCA9IDA7CiAgICAgYWxsb2NhdG9yLT5jdXJyZW50X3dvcmQg
PSAwOwotICAgIGFsbG9jYXRvci0+dmlldyA9IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2Rp
cmVjdG9yeV9hc192aWV3KGRpcmVjdG9yeSk7CisgICAgYWxsb2NhdG9yLT52aWV3ID0gcGFzX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfYXNfdmlldyhkaXJlY3RvcnkpOwogICAgIGFsbG9jYXRv
ci0+Y29uZmlnX2tpbmQgPSBwYXNfbG9jYWxfYWxsb2NhdG9yX2NvbmZpZ19raW5kX2NyZWF0ZV9u
b3JtYWwoa2luZCk7CiB9CiAKQEAgLTcyLDkgKzcwLDkgQEAgc3RhdGljIGlubGluZSB2b2lkIHBh
c19sb2NhbF9hbGxvY2F0b3JfcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdWludHB0cl90IGJlZ2luLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludHB0cl90IGVuZCkKIHsKKyAgICBQQVNfVEVT
VElOR19BU1NFUlQoZW5kKTsKICAgICBhbGxvY2F0b3ItPnBheWxvYWRfZW5kID0gZW5kOwogICAg
IGFsbG9jYXRvci0+cmVtYWluaW5nID0gKHVuc2lnbmVkKShlbmQgLSBiZWdpbik7Ci0gICAgYWxs
b2NhdG9yLT5udW1fbGluZXMgPSAwOwogICAgIGFsbG9jYXRvci0+Y3VycmVudF9vZmZzZXQgPSAw
OwogICAgIGFsbG9jYXRvci0+ZW5kX29mZnNldCA9IDA7CiAgICAgYWxsb2NhdG9yLT5jdXJyZW50
X3dvcmQgPSAwOwpAQCAtMTIyLDcgKzEyMCw3IEBAIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBi
b29sIHBhc19sb2NhbF8KIAogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQgcGFzX2xvY2Fs
X2FsbG9jYXRvcl9zY2FuX2JpdHNfdG9fc2V0X3VwX2ZyZWVfYml0cygKICAgICBwYXNfbG9jYWxf
YWxsb2NhdG9yKiBhbGxvY2F0b3IsCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGly
ZWN0b3J5KiBkaXJlY3RvcnksCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRp
cmVjdG9yeSwKICAgICBwYXNfc2VncmVnYXRlZF9wYWdlKiBwYWdlLAogICAgIHVpbnRwdHJfdCBw
YWdlX2JvdW5kYXJ5LAogICAgIHVuc2lnbmVkIGN1cnJlbnRfb2Zmc2V0LApAQCAtMTM5LDYgKzEz
NywxMSBAQCBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCBwYXNfbG9jYWxfCiAgICAgcGFz
X2xvY2FsX2FsbG9jYXRvcl9zY2FuX2JpdHNfdG9fc2V0X3VwX3VzZV9jb3VudHNfZGF0YSBkYXRh
OwogICAgIHVuc2lnbmVkIG9iamVjdF9zaXplOwogCisjaWYgUEFTX0xPQ0FMX0FMTE9DQVRPUl9N
RUFTVVJFX1JFRklMTF9FRkZJQ0lFTkNZCisgICAgdW5zaWduZWQgbnVtX3RvdGFsX29iamVjdHM7
CisgICAgdW5zaWduZWQgbnVtX3Rha2VuX29iamVjdHM7CisjZW5kaWYgLyogUEFTX0xPQ0FMX0FM
TE9DQVRPUl9NRUFTVVJFX1JFRklMTF9FRkZJQ0lFTkNZICovCisKICAgICBQQVNfQVNTRVJUKHBh
Z2VfY29uZmlnLmJhc2UuaXNfZW5hYmxlZCk7CiAgICAgUEFTX1VOVVNFRF9QQVJBTShkaXJlY3Rv
cnkpOwogCkBAIC0xOTMsNiArMTk2LDExIEBAIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lk
IHBhc19sb2NhbF8KIAogICAgIHBhc19jb21waWxlcl9mZW5jZSgpOwogCisjaWYgUEFTX0xPQ0FM
X0FMTE9DQVRPUl9NRUFTVVJFX1JFRklMTF9FRkZJQ0lFTkNZCisgICAgbnVtX3RvdGFsX29iamVj
dHMgPSAwOworICAgIG51bV90YWtlbl9vYmplY3RzID0gMDsKKyNlbmRpZiAvKiBQQVNfTE9DQUxf
QUxMT0NBVE9SX01FQVNVUkVfUkVGSUxMX0VGRklDSUVOQ1kgKi8KKwogICAgIGZvciAoaW5kZXgg
PSBmdWxsX2FsbG9jX2JpdHMud29yZF9pbmRleF9iZWdpbjsgaW5kZXggPCBmdWxsX2FsbG9jX2Jp
dHMud29yZF9pbmRleF9lbmQ7ICsraW5kZXgpIHsKICAgICAgICAgdW5zaWduZWQgZnVsbDsKICAg
ICAgICAgdW5zaWduZWQgYWxsb2M7CkBAIC0yMDIsNiArMjEwLDEyIEBAIHN0YXRpYyBQQVNfQUxX
QVlTX0lOTElORSB2b2lkIHBhc19sb2NhbF8KICAgICAgICAgYWxsb2MgPSBhbGxvY19iaXRzW2lu
ZGV4XTsKICAgICAgICAgZnJlZSA9IGZ1bGwgJiB+YWxsb2M7CiAgICAgICAgICgodW5zaWduZWQq
KWFsbG9jYXRvci0+Yml0cylbaW5kZXhdID0gZnJlZTsKKworI2lmIFBBU19MT0NBTF9BTExPQ0FU
T1JfTUVBU1VSRV9SRUZJTExfRUZGSUNJRU5DWQorICAgICAgICBudW1fdG90YWxfb2JqZWN0cyAr
PSBfX2J1aWx0aW5fcG9wY291bnQoZnVsbCk7CisgICAgICAgIG51bV90YWtlbl9vYmplY3RzICs9
IF9fYnVpbHRpbl9wb3Bjb3VudChmcmVlKTsKKyNlbmRpZiAvKiBQQVNfTE9DQUxfQUxMT0NBVE9S
X01FQVNVUkVfUkVGSUxMX0VGRklDSUVOQ1kgKi8KKyAgICAgICAgCiAgICAgICAgIHBhc19jb21w
aWxlcl9mZW5jZSgpOwogICAgICAgICBhbGxvY19iaXRzW2luZGV4XSA9IGFsbG9jIHwgZnVsbDsK
ICAgICAgICAgc3dpdGNoICh2aWV3X2tpbmQpIHsKQEAgLTI0Myw2ICsyNTcsMTUgQEAgc3RhdGlj
IFBBU19BTFdBWVNfSU5MSU5FIHZvaWQgcGFzX2xvY2FsXwogICAgICAgICB9CiAgICAgfQogCisj
aWYgUEFTX0xPQ0FMX0FMTE9DQVRPUl9NRUFTVVJFX1JFRklMTF9FRkZJQ0lFTkNZCisgICAgUEFT
X0FTU0VSVChudW1fdGFrZW5fb2JqZWN0cyA8PSBudW1fdG90YWxfb2JqZWN0cyk7CisKKyAgICBw
YXNfbG9jYWxfYWxsb2NhdG9yX3JlZmlsbF9lZmZpY2llbmN5X2xvY2tfbG9jaygpOworICAgIHBh
c19sb2NhbF9hbGxvY2F0b3JfcmVmaWxsX2VmZmljaWVuY3lfc3VtICs9IChkb3VibGUpbnVtX3Rh
a2VuX29iamVjdHMgLyAoZG91YmxlKW51bV90b3RhbF9vYmplY3RzOworICAgIHBhc19sb2NhbF9h
bGxvY2F0b3JfcmVmaWxsX2VmZmljaWVuY3lfbisrOworICAgIHBhc19sb2NhbF9hbGxvY2F0b3Jf
cmVmaWxsX2VmZmljaWVuY3lfbG9ja191bmxvY2soKTsKKyNlbmRpZiAvKiBQQVNfTE9DQUxfQUxM
T0NBVE9SX01FQVNVUkVfUkVGSUxMX0VGRklDSUVOQ1kgKi8KKwogICAgIGlmIChwYWdlX2NvbmZp
Zy51c2VfcmV2ZXJzZWRfY3VycmVudF93b3JkKSB7CiAgICAgICAgIFBBU19BU1NFUlQocGFnZV9j
b25maWcudmFyaWFudCA9PSBwYXNfc21hbGxfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ192YXJpYW50
KTsKICAgICAgICAgYWxsb2NhdG9yLT5jdXJyZW50X3dvcmQgPSBwYXNfcmV2ZXJzZTY0KGFsbG9j
YXRvci0+Yml0c1tjdXJyZW50X29mZnNldF0pOwpAQCAtMjYyLDcgKzI4NSw3IEBAIHN0YXRpYyBQ
QVNfQUxXQVlTX0lOTElORSB2b2lkIHBhc19sb2NhbF8KICAgICBzd2l0Y2ggKHZpZXdfa2luZCkg
ewogICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfa2luZDoKICAgICAgICAg
cGFnZS0+bnVtX25vbl9lbXB0eV93b3JkcyA9Ci0gICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9n
bG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJfbG9hZF9ub25fbnVsbCgKKyAgICAgICAgICAg
IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGFfcHRyX2xvYWRfbm9uX251bGwoCiAg
ICAgICAgICAgICAgICAgJmRpcmVjdG9yeS0+ZGF0YSktPmZ1bGxfbnVtX25vbl9lbXB0eV93b3Jk
czsKICAgICAgICAgYnJlYWs7CiAgICAgICAgIApAQCAtMjgwLDcgKzMwMyw3IEBAIHN0YXRpYyBQ
QVNfQUxXQVlTX0lOTElORSB2b2lkCiBwYXNfbG9jYWxfYWxsb2NhdG9yX3NldF91cF9mcmVlX2Jp
dHMocGFzX2xvY2FsX2FsbG9jYXRvciogYWxsb2NhdG9yLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3ZpZXdfa2luZCB2aWV3X2tpbmQsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCogdmlldywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJl
Y3RvcnkqIGRpcmVjdG9yeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
YXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2UqIHBhZ2UsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludHB0cl90IHBhZ2VfYm91bmRhcnksCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9j
b25maWcgcGFnZV9jb25maWcpCkBAIC0zMDQsNyArMzI3LDcgQEAgcGFzX2xvY2FsX2FsbG9jYXRv
cl9zZXRfdXBfZnJlZV9iaXRzKHBhcwogCiAgICAgICAgIGJlZ2luX29mZnNldCA9IHBhc19zZWdy
ZWdhdGVkX3BhZ2Vfb2Zmc2V0X2Zyb21fcGFnZV9ib3VuZGFyeV90b19maXJzdF9vYmplY3QoCiAg
ICAgICAgICAgICBwYWdlLCBkaXJlY3RvcnksIHBhZ2VfY29uZmlnKTsKLSAgICAgICAgZW5kX29m
ZnNldCA9IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhX3B0cl9sb2Fk
X25vbl9udWxsKAorICAgICAgICBlbmRfb2Zmc2V0ID0gcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnlfZGF0YV9wdHJfbG9hZF9ub25fbnVsbCgKICAgICAgICAgICAgICZkaXJlY3RvcnktPmRh
dGEpLT5vZmZzZXRfZnJvbV9wYWdlX2JvdW5kYXJ5X3RvX2VuZF9vZl9sYXN0X29iamVjdDsKIAog
ICAgICAgICBiZWdpbl9vZmZzZXQgPSBQQVNfQklUVkVDVE9SX1dPUkQ2NF9JTkRFWCgKQEAgLTM1
Myw3ICszNzYsNyBAQCBwYXNfbG9jYWxfYWxsb2NhdG9yX3ByZXBhcmVfdG9fYWxsb2NhdGUoCiAg
ICAgcGFzX3NlZ3JlZ2F0ZWRfdmlld19raW5kIHZpZXdfa2luZCwKICAgICB2b2lkKiB2aWV3LAog
ICAgIHBhc19zZWdyZWdhdGVkX3BhZ2UqIHBhZ2UsCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnkqIGRpcmVjdG9yeSwKICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBwYWdlX2Nv
bmZpZykKIHsKICAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CkBAIC0zNzUs
NyArMzk4LDcgQEAgcGFzX2xvY2FsX2FsbG9jYXRvcl9wcmVwYXJlX3RvX2FsbG9jYXRlKAogICAg
IGlmICh2aWV3X2tpbmQgPT0gcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfa2luZCAmJiAh
cGFnZS0+bnVtX25vbl9lbXB0eV93b3JkcykgewogICAgICAgICB1aW50cHRyX3QgcGF5bG9hZF9i
ZWdpbjsKICAgICAgICAgdWludHB0cl90IHBheWxvYWRfZW5kOwotICAgICAgICBwYXNfc2VncmVn
YXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YSogZGF0YTsKKyAgICAgICAgcGFzX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YSogZGF0YTsKIAogICAgICAgICBpZiAodmVyYm9zZSkK
ICAgICAgICAgICAgIHBhc19sb2coIlJlZmlsbGluZyB3aXRoIGJ1bXAuXG4iKTsKQEAgLTM4Myw3
ICs0MDYsNyBAQCBwYXNfbG9jYWxfYWxsb2NhdG9yX3ByZXBhcmVfdG9fYWxsb2NhdGUoCiAgICAg
ICAgIGlmIChwYWdlX2NvbmZpZy5iYXNlLnBhZ2Vfc2l6ZSA+IHBhZ2VfY29uZmlnLmJhc2UuZ3Jh
bnVsZV9zaXplKQogICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfaW5z
dGFsbF9mdWxsX3VzZV9jb3VudHMoKHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3Kil2aWV3
KTsKIAotICAgICAgICBkYXRhID0gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
X2RhdGFfcHRyX2xvYWRfbm9uX251bGwoJmRpcmVjdG9yeS0+ZGF0YSk7CisgICAgICAgIGRhdGEg
PSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhX3B0cl9sb2FkX25vbl9udWxsKCZk
aXJlY3RvcnktPmRhdGEpOwogICAgICAgICAKICAgICAgICAgcGF5bG9hZF9iZWdpbiA9IHBhZ2Vf
Ym91bmRhcnkgKyBkYXRhLT5vZmZzZXRfZnJvbV9wYWdlX2JvdW5kYXJ5X3RvX2ZpcnN0X29iamVj
dDsKICAgICAgICAgcGF5bG9hZF9lbmQgPSBwYWdlX2JvdW5kYXJ5ICsgZGF0YS0+b2Zmc2V0X2Zy
b21fcGFnZV9ib3VuZGFyeV90b19lbmRfb2ZfbGFzdF9vYmplY3Q7CkBAIC0zOTgsNiArNDIxLDEz
IEBAIHBhc19sb2NhbF9hbGxvY2F0b3JfcHJlcGFyZV90b19hbGxvY2F0ZSgKICAgICAgICAgbWVt
Y3B5KHBhZ2UtPmFsbG9jX2JpdHMsIHBhc19jb21wYWN0X3RhZ2dlZF91bnNpZ25lZF9wdHJfbG9h
ZF9ub25fbnVsbCgmZGF0YS0+ZnVsbF9hbGxvY19iaXRzKSwKICAgICAgICAgICAgICAgIHBhc19z
ZWdyZWdhdGVkX3BhZ2VfY29uZmlnX251bV9hbGxvY19ieXRlcyhwYWdlX2NvbmZpZykpOwogCisj
aWYgUEFTX0xPQ0FMX0FMTE9DQVRPUl9NRUFTVVJFX1JFRklMTF9FRkZJQ0lFTkNZCisgICAgICAg
IHBhc19sb2NhbF9hbGxvY2F0b3JfcmVmaWxsX2VmZmljaWVuY3lfbG9ja19sb2NrKCk7CisgICAg
ICAgIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVmaWxsX2VmZmljaWVuY3lfc3VtKys7CisgICAgICAg
IHBhc19sb2NhbF9hbGxvY2F0b3JfcmVmaWxsX2VmZmljaWVuY3lfbisrOworICAgICAgICBwYXNf
bG9jYWxfYWxsb2NhdG9yX3JlZmlsbF9lZmZpY2llbmN5X2xvY2tfdW5sb2NrKCk7CisjZW5kaWYg
LyogUEFTX0xPQ0FMX0FMTE9DQVRPUl9NRUFTVVJFX1JFRklMTF9FRkZJQ0lFTkNZICovCisgICAg
ICAgIAogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIApAQCAtNTMyLDcgKzU2Miw3IEBAIHN0
YXRpYyBQQVNfQUxXQVlTX0lOTElORSBib29sCiBwYXNfbG9jYWxfYWxsb2NhdG9yX3N0YXJ0X2Fs
bG9jYXRpbmdfaW5fcHJpbW9yZGlhbF9wYXJ0aWFsX3ZpZXcoCiAgICAgcGFzX2xvY2FsX2FsbG9j
YXRvciogYWxsb2NhdG9yLAogICAgIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlldyogdmlldywK
LSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIHNpemVfZGlyZWN0b3J5
LAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBzaXplX2RpcmVjdG9yeSwKICAg
ICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZpZykKIHsKICAgICBzdGF0aWMg
Y29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CkBAIC04MjEsOCArODUxLDcgQEAgUEFTX0FQSSBi
b29sIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVmaWxsXwogCiBQQVNfQVBJIHZvaWQgcGFzX2xvY2Fs
X2FsbG9jYXRvcl9maW5pc2hfcmVmaWxsX3dpdGhfYml0Zml0KAogICAgIHBhc19sb2NhbF9hbGxv
Y2F0b3IqIGFsbG9jYXRvciwKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnkqIHNpemVfZGlyZWN0b3J5LAotICAgIHBhc19tYWdhemluZSogbWFnYXppbmUpOworICAgIHBh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBzaXplX2RpcmVjdG9yeSk7CiAKIHN0YXRpYyBQ
QVNfQUxXQVlTX0lOTElORSBib29sCiBwYXNfbG9jYWxfYWxsb2NhdG9yX3JlZmlsbF93aXRoX2tu
b3duX2NvbmZpZygKQEAgLTgzOCwxNCArODY3LDE1IEBAIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVm
aWxsX3dpdGhfa25vd25fY28KICAgICBwYXNfbG9jayogaGVsZF9sb2NrOwogICAgIHBhc19zZWdy
ZWdhdGVkX3BhZ2UqIG9sZF9wYWdlOwogICAgIHBhc19zZWdyZWdhdGVkX3BhZ2UqIG5ld19wYWdl
OwotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogc2l6ZV9kaXJlY3Rv
cnk7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIHNpemVfZGlyZWN0b3J5Owog
ICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeSogZGlyZWN0b3J5OwotICAgIHBhc19tYWdhemlu
ZSogbWFnYXppbmU7CisgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9ub2RlKiBjYWNoZV9ub2Rl
OwogICAgIGJvb2wgZGlkX2luaXRpYWxpemVfYml0Zml0OwogICAgIHBhc19zZWdyZWdhdGVkX2V4
Y2x1c2l2ZV92aWV3KiBleGNsdXNpdmU7CiAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3
KiBwYXJ0aWFsOwogICAgIHBhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3KiBzaGFyZWQ7CiAgICAg
Ym9vbCBlbmFibGVfc2VncmVnYXRlZDsKKyAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiBjYWNo
ZTsKIAogICAgIFBBU19VTlVTRURfUEFSQU0oY291bnRzKTsKIApAQCAtODU2LDcgKzg4Niw3IEBA
IHBhc19sb2NhbF9hbGxvY2F0b3JfcmVmaWxsX3dpdGhfa25vd25fY28KICAgICBpZiAoc2tpcF9i
aXRmaXQpCiAgICAgICAgIFBBU19BU1NFUlQoZW5hYmxlX3NlZ3JlZ2F0ZWQpOwogICAgIAotICAg
IHNpemVfZGlyZWN0b3J5ID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfZ2xvYmFsX3NpemVfZGly
ZWN0b3J5KGFsbG9jYXRvci0+dmlldyk7CisgICAgc2l6ZV9kaXJlY3RvcnkgPSBwYXNfc2VncmVn
YXRlZF92aWV3X2dldF9zaXplX2RpcmVjdG9yeShhbGxvY2F0b3ItPnZpZXcpOwogICAgIGRpcmVj
dG9yeSA9ICZzaXplX2RpcmVjdG9yeS0+YmFzZTsKIAogICAgIGlmICh2ZXJib3NlKSB7CkBAIC04
NzcsMTAgKzkwNyw5IEBAIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVmaWxsX3dpdGhfa25vd25fY28K
ICAgICAgICAgcGFzX2JpdGZpdF9hbGxvY2F0b3JfYXNzZXJ0X3Jlc2V0KGJpdGZpdCk7CiAgICAg
fQogCi0gICAgaWYgKCFhbGxvY2F0b3ItPmRpcnR5ICYmIHZlcmJvc2UpCisgICAgaWYgKCFhbGxv
Y2F0b3ItPnNjYXZlbmdlcl9kYXRhLmRpcnR5ICYmIHZlcmJvc2UpCiAgICAgICAgIHBhc19sb2co
IlVzaW5nIGFsbG9jYXRvciAlcFxuIiwgYWxsb2NhdG9yKTsKLSAgICBhbGxvY2F0b3ItPmRpcnR5
ID0gdHJ1ZTsKLSAgICBhbGxvY2F0b3ItPnNob3VsZF9zdG9wX2NvdW50ID0gMDsKKyAgICBwYXNf
bG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhX2RpZF91c2VfZm9yX2FsbG9jYXRpb24oJmFs
bG9jYXRvci0+c2NhdmVuZ2VyX2RhdGEpOwogICAgIAogICAgIGlmIChwYXNfc2NhdmVuZ2VyX2Rp
ZF9jcmVhdGVfZWxpZ2libGUoKSkgewogICAgICAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfcGFnZV9j
b25maWdfaGVhcF9sb2NrX2hvbGRfbW9kZShwYWdlX2NvbmZpZykgPT0gcGFzX2xvY2tfaXNfbm90
X2hlbGQpCkBAIC04OTcsNyArOTI2LDcgQEAgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZWZpbGxfd2l0
aF9rbm93bl9jbwogICAgICAgICBvbGRfcGFnZSA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfZm9yX2Jv
dW5kYXJ5KAogICAgICAgICAgICAgKHZvaWQqKXBhc19sb2NhbF9hbGxvY2F0b3JfcGFnZV9ib3Vu
ZGFyeShhbGxvY2F0b3IsIHBhZ2VfY29uZmlnKSwgcGFnZV9jb25maWcpOwogICAgICAgICBvbGRf
dmlldyA9IG9sZF9wYWdlLT5vd25lcjsKLSAgICAgICAgaWYgKCFwYXNfc2VncmVnYXRlZF92aWV3
X2lzX2V4Y2x1c2l2ZV9pc2gob2xkX3ZpZXcpKSB7CisgICAgICAgIGlmICghcGFzX3NlZ3JlZ2F0
ZWRfdmlld19pc19zb21lX2V4Y2x1c2l2ZShvbGRfdmlldykpIHsKICAgICAgICAgICAgIFBBU19B
U1NFUlQocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19zaGFyZWRfaGFuZGxlKG9sZF92aWV3KSk7CiAg
ICAgICAgICAgICBvbGRfdmlldyA9IGFsbG9jYXRvci0+dmlldzsKICAgICAgICAgICAgIFBBU19B
U1NFUlQocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19wYXJ0aWFsKG9sZF92aWV3KSk7CkBAIC05MTgs
MzQgKzk0NywyOSBAQCBwYXNfbG9jYWxfYWxsb2NhdG9yX3JlZmlsbF93aXRoX2tub3duX2NvCiAg
ICAgICAgIGNvdW50cy0+c2xvd19yZWZpbGxzKys7CiAjZW5kaWYgLyogUEFTX0VOQUJMRV9URVNU
SU5HICovCiAKLSAgICBtYWdhemluZSA9IE5VTEw7CisgICAgY2FjaGUgPSBOVUxMOworICAgIGNh
Y2hlX25vZGUgPSBOVUxMOwogICAgIAogICAgIGlmICghcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25m
aWdfaXNfdXRpbGl0eShwYWdlX2NvbmZpZykpIHsKLSAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9j
YWNoZSogY2FjaGU7Ci0gICAgICAgIAogICAgICAgICBjYWNoZSA9IHBhc190aHJlYWRfbG9jYWxf
Y2FjaGVfdHJ5X2dldCgpOwogICAgICAgICAKICAgICAgICAgaWYgKGNhY2hlKSB7CisgICAgICAg
ICAgICBjYWNoZV9ub2RlID0gY2FjaGUtPm5vZGU7CisgICAgICAgICAgICAKICAgICAgICAgICAg
IC8qIERvaW5nIHRoaXMgaGVyZSBoYXMgc29tZSBzcGVjaWFsIHByb3BlcnRpZXMuIEZvciBleGFt
cGxlLCBpdCBkb2Vzbid0IHByZXZlbnQgZmFzdCByZXVzZQogICAgICAgICAgICAgICAgb2YgdGhl
IHBhZ2Ugd2UganVzdCBmaW5pc2hlZCBhbGxvY2F0aW5nIG91dCBvZi4gKi8KICAgICAgICAgICAg
IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfc3RvcF9sb2NhbF9hbGxvY2F0b3JzX2lmX25lY2Vzc2Fy
eSgKICAgICAgICAgICAgICAgICBjYWNoZSwgYWxsb2NhdG9yLCBwYXNfbG9ja19pc19ub3RfaGVs
ZCk7CiAgICAgICAgIH0KLQotICAgICAgICAvKiBOT1RFOiBUaGlzIGlzIHJhY3ksIGFuZCB0aGF0
J3MgT0suIE1hZ2F6aW5lcyBhcmUgZGVzaWduZWQgc28gdGhhdCBpZiBhIHRocmVhZCBhY2Nlc3Nl
cyBpdAotICAgICAgICAgICBmcm9tIHRoZSB3cm9uZyBjb3JlIHRoZW4gdGhlIHdvcnN0IHRoaW5n
IHRoYXQgd2lsbCBoYXBwZW4gaXMgYSBiaXQgb2YgY29udGVudGlvbi4gKi8KLSAgICAgICAgbWFn
YXppbmUgPSBwYXNfYWxsX21hZ2F6aW5lc19nZXRfY3VycmVudCgpOwogICAgIH0KIAogICAgIGlm
ICh2ZXJib3NlKSB7CiAgICAgICAgIHBhc19sb2coIm9sZF92aWV3ID0gJXAuXG4iLCBvbGRfdmll
dyk7CiAgICAgICAgIGlmIChvbGRfdmlldykgewotICAgICAgICAgICAgcGFzX2xvZygiICAgIHNo
b3VsZCByZXN0YXJ0ID0gJWQsIGluZGV4ID0gJXp1LCBmaXJzdF9lbGlnaWJsZV9idXRfbm90X3Rh
YmxlZCA9ICV6dS5cbiIsCi0gICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3ZpZXdf
c2hvdWxkX3Jlc3RhcnQob2xkX3ZpZXcsIG1hZ2F6aW5lKSwKKyAgICAgICAgICAgIHBhc19sb2co
IiAgICBpbmRleCA9ICV6dSwgZmlyc3RfZWxpZ2libGUgPSAlenUuXG4iLAogICAgICAgICAgICAg
ICAgICAgICBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9pbmRleChvbGRfdmlldyksCiAgICAgICAg
ICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9nZXRfZmlyc3RfZWxpZ2libGUo
Ci0gICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9zaXplX2Rp
cmVjdG9yeShvbGRfdmlldyksCi0gICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRl
ZF9kaXJlY3RvcnlfZmlyc3RfZWxpZ2libGVfYnV0X25vdF90YWJsZWRfa2luZCkudmFsdWUpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgJnBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3NpemVfZGly
ZWN0b3J5KG9sZF92aWV3KS0+YmFzZSkudmFsdWUpOwogICAgICAgICB9CiAgICAgfQogCkBAIC05
NjksMzggKzk5MywxNCBAQCBwYXNfbG9jYWxfYWxsb2NhdG9yX3JlZmlsbF93aXRoX2tub3duX2Nv
CiAgICAgICAgICAgICBuZXdfcGFnZSA9IG9sZF9wYWdlOwogICAgICAgICAgICAgCiAgICAgICAg
ICAgICBleGNsdXNpdmUgPSAocGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcqKXBhc19zZWdy
ZWdhdGVkX3ZpZXdfZ2V0X3B0cihuZXdfdmlldyk7Ci0KLSAgICAgICAgICAgIGdvdG8gcmVzdGFy
dF9leGNsdXNpdmU7Ci0gICAgICAgIH0KLQotICAgICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2Jp
YXNpbmdfdmlld19raW5kOiB7Ci0gICAgICAgICAgICBpZiAobWFnYXppbmUpIHsKLSAgICAgICAg
ICAgICAgICBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcqIGJpYXNpbmc7Ci0gICAgICAgICAg
ICAgICAgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkqIGJpYXNpbmdfZGlyZWN0b3J5
OwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGJpYXNpbmcgPSAocGFzX3NlZ3Jl
Z2F0ZWRfYmlhc2luZ192aWV3KilwYXNfc2VncmVnYXRlZF92aWV3X2dldF9wdHIob2xkX3ZpZXcp
OwotICAgICAgICAgICAgICAgIGJpYXNpbmdfZGlyZWN0b3J5ID0gcGFzX2NvbXBhY3Rfc2VncmVn
YXRlZF9iaWFzaW5nX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgKLSAgICAgICAgICAgICAg
ICAgICAgJmJpYXNpbmctPmRpcmVjdG9yeSk7Ci0gICAgICAgICAgICAgICAgaWYgKHBhc19zZWdy
ZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5X21hZ2F6aW5lX2luZGV4KGJpYXNpbmdfZGlyZWN0b3J5
KQotICAgICAgICAgICAgICAgICAgICA9PSBtYWdhemluZS0+bWFnYXppbmVfaW5kZXgpIHsKLSAg
ICAgICAgICAgICAgICAgICAgdWludDY0X3QgZXBvY2g7Ci0gICAgICAgICAgICAgICAgICAgIAot
ICAgICAgICAgICAgICAgICAgICBuZXdfdmlldyA9IG9sZF92aWV3OwotICAgICAgICAgICAgICAg
ICAgICBuZXdfcGFnZSA9IG9sZF9wYWdlOwotCi0gICAgICAgICAgICAgICAgICAgIGVwb2NoID0g
cGFzX2dldF9lcG9jaCgpOwotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAg
ICAgcGFzX2JpYXNpbmdfZGlyZWN0b3J5X2RpZF91c2VfaW5kZXgoCi0gICAgICAgICAgICAgICAg
ICAgICAgICAmYmlhc2luZ19kaXJlY3RvcnktPmJpYXNpbmdfYmFzZSwgYmlhc2luZy0+aW5kZXgs
IGVwb2NoKTsKLQotICAgICAgICAgICAgICAgICAgICBleGNsdXNpdmUgPQotICAgICAgICAgICAg
ICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdf
cHRyX2xvYWRfbm9uX251bGwoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJmJpYXNpbmct
PmV4Y2x1c2l2ZSk7Ci0gICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICBn
b3RvIHJlc3RhcnRfZXhjbHVzaXZlOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAodmVyYm9z
ZSkKKyAgICAgICAgICAgICAgICBwYXNfbG9nKCJSZXN0YXJ0aW5nIG9uIHNhbWUgcGFnZSBhcyBi
ZWZvcmUuXG4iKTsKKyAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2Vfc3dpdGNoX2xvY2tf
YW5kX3JlYmlhc193aGlsZV9pbmVsaWdpYmxlKAorICAgICAgICAgICAgICAgIG5ld19wYWdlLCAm
aGVsZF9sb2NrLCBjYWNoZV9ub2RlLCBwYWdlX2NvbmZpZyk7CisgICAgICAgICAgICBuZXdfcGFn
ZS0+b3duZXIgPSBwYXNfc2VncmVnYXRlZF92aWV3X2FzX2luZWxpZ2libGUobmV3X3ZpZXcpOwor
ICAgICAgICAgICAgbmV3X3BhZ2UtPmVsaWdpYmlsaXR5X25vdGlmaWNhdGlvbl9oYXNfYmVlbl9k
ZWZlcnJlZCA9IGZhbHNlOworICAgICAgICAgICAgZ290byBwcmVwYXJlX2V4Y2x1c2l2ZTsKICAg
ICAgICAgfQogCiAgICAgICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X2tpbmQ6
IHsKQEAgLTEwMjQsMjggKzEwMjQsODUgQEAgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZWZpbGxfd2l0
aF9rbm93bl9jbwogICAgIGlmICh2ZXJib3NlKQogICAgICAgICBwYXNfbG9nKCJGaW5kaW5nIGEg
ZGlmZmVyZW50IHBhZ2UuXG4iKTsKIAorICAgIG5ld192aWV3ID0gTlVMTDsKKyAgICBuZXdfcGFn
ZSA9IE5VTEw7CisgICAgCiAgICAgaWYgKGVuYWJsZV9zZWdyZWdhdGVkKSB7Ci0gICAgICAgIG5l
d192aWV3ID0gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3Rha2VfZmlyc3Rf
ZWxpZ2libGUoc2l6ZV9kaXJlY3RvcnksIG1hZ2F6aW5lKTsKLSAgICAgICAgaWYgKHZlcmJvc2Up
Ci0gICAgICAgICAgICBwYXNfbG9nKCJHb3QgYSBuZXcgdmlldyAlcFxuIiwgbmV3X3ZpZXcpOwot
ICAgICAgICBpZiAobmV3X3ZpZXcpCi0gICAgICAgICAgICBuZXdfdmlldyA9IHBhc19zZWdyZWdh
dGVkX3ZpZXdfd2lsbF9zdGFydF9hbGxvY2F0aW5nKG5ld192aWV3LCBwYWdlX2NvbmZpZyk7Ci0g
ICAgICAgIGlmICh2ZXJib3NlKSB7Ci0gICAgICAgICAgICBwYXNfbG9nKCJBbmQgYWZ0ZXIgd2ls
bF9zdGFydCBnb3QgYSBuZXcgdmlldyAlcCwgcGFnZSA9ICVwLCBib3VuZGFyeSA9ICVwXG4iLAot
ICAgICAgICAgICAgICAgICAgICBuZXdfdmlldywKLSAgICAgICAgICAgICAgICAgICAgcGFzX3Nl
Z3JlZ2F0ZWRfdmlld19nZXRfcGFnZShuZXdfdmlldyksCi0gICAgICAgICAgICAgICAgICAgIHBh
c19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3BhZ2VfYm91bmRhcnkobmV3X3ZpZXcpKTsKKyAgICAgICAg
Ym9vbCBkaWRfZ2V0X3ZpZXc7CisKKyAgICAgICAgZGlkX2dldF92aWV3ID0gZmFsc2U7CisKKyAg
ICAgICAgaWYgKHBhZ2VfY29uZmlnLmVuYWJsZV92aWV3X2NhY2hlICYmIGNhY2hlKSB7CisgICAg
ICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3VsdCB2aWV3X2NhY2hlX3Jlc3VsdDsKKwor
ICAgICAgICAgICAgUEFTX0FTU0VSVCghcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfaXNfdXRp
bGl0eShwYWdlX2NvbmZpZykpOworCisgICAgICAgICAgICB2aWV3X2NhY2hlX3Jlc3VsdCA9IHBh
c190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRvcigKKyAgICAgICAgICAgICAg
ICBjYWNoZSwgc2l6ZV9kaXJlY3RvcnktPnZpZXdfY2FjaGVfaW5kZXgsIHBhc19sb2NrX2lzX25v
dF9oZWxkKTsKKyAgICAgICAgICAgIGNhY2hlID0gTlVMTDsgLyogVGhlIGNhY2hlIGNvdWxkIGhh
dmUgYmVlbiByZXNpemVkLCBzbyB3ZSBkb24ndCB3YW50IHRvIHVzZSB0aGlzIHBvaW50ZXIKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYW55bW9yZS4gKi8KKyAgICAgICAgICAgIGlmICh2
aWV3X2NhY2hlX3Jlc3VsdC5kaWRfc3VjY2VlZCkgeworICAgICAgICAgICAgICAgIHBhc19sb2Nh
bF92aWV3X2NhY2hlKiB2aWV3X2NhY2hlOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAg
ICAgIHZpZXdfY2FjaGUgPSAocGFzX2xvY2FsX3ZpZXdfY2FjaGUqKXZpZXdfY2FjaGVfcmVzdWx0
LmFsbG9jYXRvcjsKKworICAgICAgICAgICAgICAgIFBBU19URVNUSU5HX0FTU0VSVCghdmlld19j
YWNoZS0+c2NhdmVuZ2VyX2RhdGEuaXNfaW5fdXNlKTsKKyAgICAgICAgICAgICAgICAKKyAgICAg
ICAgICAgICAgICB2aWV3X2NhY2hlLT5zY2F2ZW5nZXJfZGF0YS5pc19pbl91c2UgPSB0cnVlOwor
ICAgICAgICAgICAgICAgIHBhc19jb21waWxlcl9mZW5jZSgpOworCisgICAgICAgICAgICAgICAg
cGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YV9kaWRfdXNlX2Zvcl9hbGxvY2F0aW9u
KCZ2aWV3X2NhY2hlLT5zY2F2ZW5nZXJfZGF0YSk7CisgICAgICAgICAgICAgICAgCisgICAgICAg
ICAgICAgICAgaWYgKCFwYXNfbG9jYWxfdmlld19jYWNoZV9pc19lbXB0eSh2aWV3X2NhY2hlKSkg
eworICAgICAgICAgICAgICAgICAgICBuZXdfdmlldyA9IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2
ZV92aWV3X2FzX3ZpZXcocGFzX2xvY2FsX3ZpZXdfY2FjaGVfcG9wKHZpZXdfY2FjaGUpKTsKKyAg
ICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIFBBU19URVNUSU5HX0FTU0VS
VChwYXNfc2VncmVnYXRlZF92aWV3X2lzX3NvbWVfZXhjbHVzaXZlKG5ld192aWV3KSk7CisgICAg
ICAgICAgICAgICAgICAgIFBBU19URVNUSU5HX0FTU0VSVChwYXNfc2VncmVnYXRlZF92aWV3X2lz
X293bmVkKG5ld192aWV3KSk7CisgICAgICAgICAgICAgICAgICAgIFBBU19URVNUSU5HX0FTU0VS
VCghcGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19lbGlnaWJsZShuZXdfdmlldykpOworICAgICAgICAg
ICAgICAgICAgICBQQVNfVEVTVElOR19BU1NFUlQocGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcGFn
ZShuZXdfdmlldyktPmlzX2luX3VzZV9mb3JfYWxsb2NhdGlvbik7CisgICAgICAgICAgICAgICAg
ICAgIAorICAgICAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHBhc19sb2coIiVwLCBhPSVwLCB2Yz0lcDogR290IGZyb20gY2FjaGUgKCV1KS5cbiIs
IGNhY2hlX25vZGUsIGFsbG9jYXRvciwgdmlld19jYWNoZSwgYWxsb2NhdG9yLT5vYmplY3Rfc2l6
ZSk7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBkaWRfZ2V0X3Zp
ZXcgPSB0cnVlOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHBhc19jb21w
aWxlcl9mZW5jZSgpOworICAgICAgICAgICAgICAgIHZpZXdfY2FjaGUtPnNjYXZlbmdlcl9kYXRh
LmlzX2luX3VzZSA9IGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAg
aWYgKCFkaWRfZ2V0X3ZpZXcpIHsKKyAgICAgICAgICAgIG5ld192aWV3ID0gcGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnlfdGFrZV9maXJzdF9lbGlnaWJsZShzaXplX2RpcmVjdG9yeSk7Cisg
ICAgICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgICAgICBwYXNfbG9nKCJHb3QgYSBu
ZXcgdmlldyAlcFxuIiwgbmV3X3ZpZXcpOworICAgICAgICAgICAgCisgICAgICAgICAgICBQQVNf
VEVTVElOR19BU1NFUlQoIXBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfZWxpZ2libGUobmV3X3ZpZXcp
KTsKKyAgICAgICAgICAgIGlmIChwYXNfc2VncmVnYXRlZF92aWV3X2lzX3NvbWVfZXhjbHVzaXZl
KG5ld192aWV3KSkgeworICAgICAgICAgICAgICAgIFBBU19URVNUSU5HX0FTU0VSVCgKKyAgICAg
ICAgICAgICAgICAgICAgIXBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfb3duZWQobmV3X3ZpZXcpCisg
ICAgICAgICAgICAgICAgICAgIHx8ICFwYXNfc2VncmVnYXRlZF92aWV3X2dldF9wYWdlKG5ld192
aWV3KS0+aXNfaW5fdXNlX2Zvcl9hbGxvY2F0aW9uKTsKKyAgICAgICAgICAgIH0KKworICAgICAg
ICAgICAgaWYgKG5ld192aWV3KSB7CisgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCisgICAg
ICAgICAgICAgICAgICAgIHBhc19sb2coIiVwLCAlcDogR290IGZyb20gZGlyZWN0b3J5ICgldSku
XG4iLCBjYWNoZV9ub2RlLCBhbGxvY2F0b3IsIGFsbG9jYXRvci0+b2JqZWN0X3NpemUpOworICAg
ICAgICAgICAgICAgIG5ld192aWV3ID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld193aWxsX3N0YXJ0X2Fs
bG9jYXRpbmcobmV3X3ZpZXcsIHBhZ2VfY29uZmlnKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIGlmICh2ZXJib3NlKSB7CisgICAgICAgICAgICAgICAgcGFzX2xvZygiQW5kIGFmdGVyIHdp
bGxfc3RhcnQgZ290IGEgbmV3IHZpZXcgJXAsIHBhZ2UgPSAlcCwgYm91bmRhcnkgPSAlcFxuIiwK
KyAgICAgICAgICAgICAgICAgICAgICAgIG5ld192aWV3LAorICAgICAgICAgICAgICAgICAgICAg
ICAgcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcGFnZShuZXdfdmlldyksCisgICAgICAgICAgICAg
ICAgICAgICAgICBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9wYWdlX2JvdW5kYXJ5KG5ld192aWV3
KSk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9IGVsc2UgewotICAgICAgICBwYXNf
bG9jYWxfYWxsb2NhdG9yX2ZpbmlzaF9yZWZpbGxfd2l0aF9iaXRmaXQoYWxsb2NhdG9yLCBzaXpl
X2RpcmVjdG9yeSwgbWFnYXppbmUpOworICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX2Zpbmlz
aF9yZWZpbGxfd2l0aF9iaXRmaXQoYWxsb2NhdG9yLCBzaXplX2RpcmVjdG9yeSk7CiAgICAgICAg
IGlmICh2ZXJib3NlKQogICAgICAgICAgICAgcGFzX2xvZygiaW5pdGlhbGl6ZWQgYml0Zml0IVxu
Iik7CiAgICAgICAgIGRpZF9pbml0aWFsaXplX2JpdGZpdCA9IHRydWU7Ci0gICAgICAgIG5ld192
aWV3ID0gTlVMTDsKICAgICB9CiAKLSAgICBuZXdfcGFnZSA9IE5VTEw7Ci0gICAgCiAgICAgLyog
QXQgdGhpcyBwb2ludCB3ZSBuZWVkIHRvIGdldCB0aGUgcGFnZS4gV2UgY2FuJ3QgZG8gdGhhdCBm
b3IgcHJpbW9yZGlhbCBwYXJ0aWFsIHZpZXdzLAogICAgICAgIHRob3VnaC4gKi8KICAgICAKQEAg
LTEwNzAsMTQgKzExMjcsMTQgQEAgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZWZpbGxfd2l0aF9rbm93
bl9jbwogCiAgICAgUEFTX0FTU0VSVChlbmFibGVfc2VncmVnYXRlZCk7CiAKLSAgICBpZiAocGFz
X3NlZ3JlZ2F0ZWRfdmlld19pc19leGNsdXNpdmVfaXNoKG5ld192aWV3KSkgeworICAgIGlmIChw
YXNfc2VncmVnYXRlZF92aWV3X2lzX3NvbWVfZXhjbHVzaXZlKG5ld192aWV3KSkgewogICAgICAg
ICBleGNsdXNpdmUgPSBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9leGNsdXNpdmUobmV3X3ZpZXcp
OwogICAgICAgICBuZXdfcGFnZSA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfZm9yX2JvdW5kYXJ5KGV4
Y2x1c2l2ZS0+cGFnZV9ib3VuZGFyeSwgcGFnZV9jb25maWcpOwogCi0gICAgICAgIHBhc19zZWdy
ZWdhdGVkX3BhZ2Vfc3dpdGNoX2xvY2tfYW5kX3JlYmlhc190b19tYWdhemluZV93aGlsZV9pbmVs
aWdpYmxlKAotICAgICAgICAgICAgbmV3X3BhZ2UsICZoZWxkX2xvY2ssIG1hZ2F6aW5lLCBwYWdl
X2NvbmZpZyk7CisgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2Vfc3dpdGNoX2xvY2tfYW5kX3Jl
Ymlhc193aGlsZV9pbmVsaWdpYmxlKAorICAgICAgICAgICAgbmV3X3BhZ2UsICZoZWxkX2xvY2ss
IGNhY2hlX25vZGUsIHBhZ2VfY29uZmlnKTsKIAotICAgICAgICBwYXNfc2VncmVnYXRlZF9leGNs
dXNpdmVfaXNoX3ZpZXdfZGlkX3N0YXJ0X2FsbG9jYXRpbmcoCisgICAgICAgIHBhc19zZWdyZWdh
dGVkX2V4Y2x1c2l2ZV92aWV3X2RpZF9zdGFydF9hbGxvY2F0aW5nKAogICAgICAgICAgICAgZXhj
bHVzaXZlLCBuZXdfdmlldywgc2l6ZV9kaXJlY3RvcnksIG5ld19wYWdlLCAmaGVsZF9sb2NrLCBw
YWdlX2NvbmZpZyk7CiAgICAgICAgIGdvdG8gcHJlcGFyZV9leGNsdXNpdmU7CiAgICAgfQpAQCAt
MTEwNiwxNCArMTE2Myw2IEBAIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVmaWxsX3dpdGhfa25vd25f
Y28KICAgICBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXdfZGlkX3N0YXJ0X2FsbG9jYXRpbmco
cGFydGlhbCwgc2hhcmVkLCBwYWdlX2NvbmZpZyk7CiAgICAgZ290byBwcmVwYXJlX3BhcnRpYWw7
CiAgICAgCi1yZXN0YXJ0X2V4Y2x1c2l2ZToKLSAgICBpZiAodmVyYm9zZSkKLSAgICAgICAgcGFz
X2xvZygiUmVzdGFydGluZyBvbiBzYW1lIHBhZ2UgYXMgYmVmb3JlLlxuIik7Ci0gICAgcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZV9zd2l0Y2hfbG9ja19hbmRfcmViaWFzX3RvX21hZ2F6aW5lX3doaWxlX2lu
ZWxpZ2libGUoCi0gICAgICAgIG5ld19wYWdlLCAmaGVsZF9sb2NrLCBtYWdhemluZSwgcGFnZV9j
b25maWcpOwotICAgIG5ld19wYWdlLT5vd25lciA9IHBhc19zZWdyZWdhdGVkX3ZpZXdfYXNfaW5l
bGlnaWJsZShuZXdfdmlldyk7Ci0gICAgbmV3X3BhZ2UtPmVsaWdpYmlsaXR5X25vdGlmaWNhdGlv
bl9oYXNfYmVlbl9kZWZlcnJlZCA9IGZhbHNlOwotICAgIAogcHJlcGFyZV9leGNsdXNpdmU6CiAg
ICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9wcmVwYXJlX3RvX2FsbG9jYXRlKAogICAgICAgICBhbGxv
Y2F0b3IsIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2tpbmQsIGV4Y2x1c2l2ZSwgbmV3
X3BhZ2UsIHNpemVfZGlyZWN0b3J5LApAQCAtMTE3MCw3ICsxMjE5LDggQEAgcGFzX2xvY2FsX2Fs
bG9jYXRvcl9yZXR1cm5fbWVtb3J5X3RvX3BhZwogICAgIG9iamVjdCA9IGRhdGEtPnBhZ2VfYm91
bmRhcnkgKyBwYXNfcGFnZV9iYXNlX29iamVjdF9vZmZzZXRfZnJvbV9wYWdlX2JvdW5kYXJ5X2F0
X2luZGV4KAogICAgICAgICAodW5zaWduZWQpaW5kZXguaW5kZXgsIGRhdGEtPnBhZ2VfY29uZmln
LmJhc2UpOwogCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9kZWFsbG9jYXRlX3dpdGhfcGFnZShk
YXRhLT5wYWdlLCBvYmplY3QsIGRhdGEtPnBhZ2VfY29uZmlnKTsKKyAgICBwYXNfc2VncmVnYXRl
ZF9wYWdlX2RlYWxsb2NhdGVfd2l0aF9wYWdlKAorICAgICAgICBkYXRhLT5wYWdlLCBvYmplY3Qs
IHBhc19zZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl9kaXJlY3RfbW9kZSwgTlVMTCwgZGF0YS0+cGFn
ZV9jb25maWcpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC0xMTc5LDcgKzEyMjksNyBAQCBz
dGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZAogcGFzX2xvY2FsX2FsbG9jYXRvcl9yZXR1cm5f
bWVtb3J5X3RvX3BhZ2UocGFzX2xvY2FsX2FsbG9jYXRvciogYWxsb2NhdG9yLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0
ZWRfcGFnZSogcGFnZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3RvcnkqIGRpcmVjdG9yeSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHBhc19sb2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9tb2RlLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25m
aWcgcGFnZV9jb25maWcpCiB7CkBAIC0xMTk0LDggKzEyNDQsNiBAQCBwYXNfbG9jYWxfYWxsb2Nh
dG9yX3JldHVybl9tZW1vcnlfdG9fcGFnCiAKICAgICBQQVNfQVNTRVJUKHBhZ2VfY29uZmlnLmJh
c2UuaXNfZW5hYmxlZCk7CiAKLSAgICBwYWdlLT5hdm9pZF9saW5lX2FsbG9jYXRvciA9IHRydWU7
Ci0KICAgICBpZiAoIXBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2lzX3V0aWxpdHkocGFnZV9j
b25maWcpKQogICAgICAgICBwYXNfbG9ja19hc3NlcnRfaGVsZChwYWdlLT5sb2NrX3B0cik7CiAK
QEAgLTEyMTgsOCArMTI2NiwxMCBAQCBwYXNfbG9jYWxfYWxsb2NhdG9yX3JldHVybl9tZW1vcnlf
dG9fcGFnCiAgICAgICAgIGJlZ2luID0gYWxsb2NhdG9yLT5wYXlsb2FkX2VuZCAtIGFsbG9jYXRv
ci0+cmVtYWluaW5nOwogICAgICAgICBlbmQgPSBhbGxvY2F0b3ItPnBheWxvYWRfZW5kOwogICAg
ICAgICAKLSAgICAgICAgZm9yIChvYmplY3QgPSBiZWdpbjsgb2JqZWN0IDwgZW5kOyBvYmplY3Qg
Kz0gb2JqZWN0X3NpemUpCi0gICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2RlYWxsb2Nh
dGVfd2l0aF9wYWdlKHBhZ2UsIG9iamVjdCwgcGFnZV9jb25maWcpOworICAgICAgICBmb3IgKG9i
amVjdCA9IGJlZ2luOyBvYmplY3QgPCBlbmQ7IG9iamVjdCArPSBvYmplY3Rfc2l6ZSkgeworICAg
ICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9kZWFsbG9jYXRlX3dpdGhfcGFnZSgKKyAgICAg
ICAgICAgICAgICBwYWdlLCBvYmplY3QsIHBhc19zZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl9kaXJl
Y3RfbW9kZSwgTlVMTCwgcGFnZV9jb25maWcpOworICAgICAgICB9CiAgICAgfQogICAgIAogICAg
IGlmIChhbGxvY2F0b3ItPmN1cnJlbnRfb2Zmc2V0ID09IGFsbG9jYXRvci0+ZW5kX29mZnNldCkK
QEAgLTEzMTEsMTggKzEzNjEsMjQgQEAgcGFzX2xvY2FsX2FsbG9jYXRvcl90cnlfYWxsb2NhdGVf
d2l0aF9mcgogICAgIGlmIChQQVNfVU5MSUtFTFkoIWN1cnJlbnRfd29yZCkpIHsKICAgICAgICAg
dW5zaWduZWQgZW5kX29mZnNldDsKIAorICAgICAgICBlbmRfb2Zmc2V0ID0gYWxsb2NhdG9yLT5l
bmRfb2Zmc2V0OworCiAgICAgICAgIGlmICh1c2VfY3VycmVudF93b3JkKSB7CiAgICAgICAgICAg
ICBpZiAoYWxsb2NhdG9yLT5jb25maWdfa2luZAogICAgICAgICAgICAgICAgICE9IHBhc19sb2Nh
bF9hbGxvY2F0b3JfY29uZmlnX2tpbmRfY3JlYXRlX25vcm1hbChwYWdlX2NvbmZpZy5raW5kKSkK
ICAgICAgICAgICAgICAgICByZXR1cm4gcGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0ZV9mYWls
dXJlKCk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGN1cnJlbnRfb2Zmc2V0ID0gYWxsb2Nh
dG9yLT5jdXJyZW50X29mZnNldDsKKyAgICAgICAgICAgIGlmIChjdXJyZW50X29mZnNldCA+PSBl
bmRfb2Zmc2V0KQorICAgICAgICAgICAgICAgIHJldHVybiBwYXNfYWxsb2NhdGlvbl9yZXN1bHRf
Y3JlYXRlX2ZhaWx1cmUoKTsKICAgICAgICAgICAgIAorICAgICAgICAgICAgUEFTX1RFU1RJTkdf
QVNTRVJUKGN1cnJlbnRfb2Zmc2V0IDwgUEFTX0JJVFZFQ1RPUl9OVU1fV09SRFM2NChwYWdlX2Nv
bmZpZy5udW1fYWxsb2NfYml0cykpOworCisgICAgICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAg
ICAgICAgICAgICBwYXNfbG9nKCJaZXJvaW5nICVwXG4iLCBhbGxvY2F0b3ItPmJpdHMgKyBjdXJy
ZW50X29mZnNldCk7CiAgICAgICAgICAgICBhbGxvY2F0b3ItPmJpdHNbY3VycmVudF9vZmZzZXRd
ID0gMDsKICAgICAgICAgfQogICAgICAgICAKLSAgICAgICAgZW5kX29mZnNldCA9IGFsbG9jYXRv
ci0+ZW5kX29mZnNldDsKLQogICAgICAgICBkbyB7CiAgICAgICAgICAgICArK2N1cnJlbnRfb2Zm
c2V0OwogICAgICAgICAgICAgcGFnZV9pc2ggKz0gNjQgPDwgcGFnZV9jb25maWcuYmFzZS5taW5f
YWxpZ25fc2hpZnQ7CkBAIC0xMzY5LDcgKzE0MjUsNyBAQCBwYXNfbG9jYWxfYWxsb2NhdG9yX3Ry
eV9hbGxvY2F0ZV93aXRoX2ZyCiAgICAgICAgIHBhc19sb2coCiAgICAgICAgICAgICAiJXAoJXAp
OiBSZXR1cm5pbmcgcmVzdWx0IHVzaW5nIGZyZWUgYml0czogJXAuXG4iLAogICAgICAgICAgICAg
YWxsb2NhdG9yLAotICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfZ2xvYmFsX3Np
emVfZGlyZWN0b3J5KGFsbG9jYXRvci0+dmlldyksCisgICAgICAgICAgICBwYXNfc2VncmVnYXRl
ZF92aWV3X2dldF9zaXplX2RpcmVjdG9yeShhbGxvY2F0b3ItPnZpZXcpLAogICAgICAgICAgICAg
KHZvaWQqKXJlc3VsdCk7CiAgICAgfQogICAgIApAQCAtMTM5NCw3ICsxNDUwLDExIEBAIHBhc19s
b2NhbF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRlX2lubGluZV8KICAgICAKICAgICBpZiAocmVtYWlu
aW5nKSB7CiAgICAgICAgIHVpbnRwdHJfdCByZXN1bHQ7CisKKyAgICAgICAgaWYgKHZlcmJvc2Up
CisgICAgICAgICAgICBwYXNfbG9nKCJwYXlsb2FkX2VuZCA9ICVwXG4iLCBhbGxvY2F0b3ItPnBh
eWxvYWRfZW5kKTsKICAgICAgICAgCisgICAgICAgIFBBU19URVNUSU5HX0FTU0VSVChhbGxvY2F0
b3ItPnBheWxvYWRfZW5kKTsKICAgICAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKHJlbWFpbmluZyAt
IG9iamVjdF9zaXplIDwgYWxsb2NhdG9yLT5yZW1haW5pbmcpOwogICAgICAgICAKICAgICAgICAg
LyogVGhpcyBpcyB0aGUgZmFzdGVzdCBmYXN0IHBhdGggZm9yIGFsbG9jYXRpb24uIEl0IHdpbGwg
aGFwcGVuIGlmOgpAQCAtMTQ1OCwxNiArMTUxOCwxNyBAQCBzdGF0aWMgUEFTX0FMV0FZU19JTkxJ
TkUgcGFzX2FsbG9jYXRpb25fCiBwYXNfbG9jYWxfYWxsb2NhdG9yX3RyeV9hbGxvY2F0ZV9zbWFs
bF9zZWdyZWdhdGVkX3Nsb3coCiAgICAgcGFzX2xvY2FsX2FsbG9jYXRvciogYWxsb2NhdG9yLAog
ICAgIHBhc19oZWFwX2NvbmZpZyBjb25maWcsCi0gICAgcGFzX2FsbG9jYXRvcl9jb3VudHMqIGNv
dW50cykKKyAgICBwYXNfYWxsb2NhdG9yX2NvdW50cyogY291bnRzLAorICAgIHBhc19hbGxvY2F0
aW9uX3Jlc3VsdF9maWx0ZXIgcmVzdWx0X2ZpbHRlcikKIHsKICAgICBwYXNfYWxsb2NhdGlvbl9y
ZXN1bHQgcmVzdWx0OwogCiAgICAgcmVzdWx0ID0gcGFzX2xvY2FsX2FsbG9jYXRvcl90cnlfYWxs
b2NhdGVfc21hbGxfc2VncmVnYXRlZF9zbG93X2ltcGwoYWxsb2NhdG9yLCBjb25maWcsIGNvdW50
cyk7CiAKICAgICBwYXNfY29tcGlsZXJfZmVuY2UoKTsKLSAgICBhbGxvY2F0b3ItPmlzX2luX3Vz
ZSA9IGZhbHNlOworICAgIGFsbG9jYXRvci0+c2NhdmVuZ2VyX2RhdGEuaXNfaW5fdXNlID0gZmFs
c2U7CiAKLSAgICByZXR1cm4gcmVzdWx0OworICAgIHJldHVybiByZXN1bHRfZmlsdGVyKHJlc3Vs
dCk7CiB9CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfZmFzdF9wYXRoX2FsbG9jYXRp
b25fcmVzdWx0CkBAIC0xNTk0LDcgKzE2NTUsOCBAQCBwYXNfbG9jYWxfYWxsb2NhdG9yX3RyeV9h
bGxvY2F0ZV9zbG93KHBhCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNp
emVfdCBzaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qg
YWxpZ25tZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfaGVh
cF9jb25maWcgY29uZmlnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
YXNfYWxsb2NhdG9yX2NvdW50cyogY291bnRzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwYXNfYWxsb2NhdG9yX2NvdW50cyogY291bnRzLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfZmlsdGVyIHJlc3Vs
dF9maWx0ZXIpCiB7CiAgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0IHJlc3VsdDsKIApAQCAtMTYw
Miw5ICsxNjY0LDQ3IEBAIHBhc19sb2NhbF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRlX3Nsb3cocGEK
ICAgICAgICAgYWxsb2NhdG9yLCBzaXplLCBhbGlnbm1lbnQsIGNvbmZpZywgY291bnRzKTsKIAog
ICAgIHBhc19jb21waWxlcl9mZW5jZSgpOwotICAgIGFsbG9jYXRvci0+aXNfaW5fdXNlID0gZmFs
c2U7CisgICAgYWxsb2NhdG9yLT5zY2F2ZW5nZXJfZGF0YS5pc19pbl91c2UgPSBmYWxzZTsKIAot
ICAgIHJldHVybiByZXN1bHQ7CisgICAgcmV0dXJuIHJlc3VsdF9maWx0ZXIocmVzdWx0KTsKK30K
Kworc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19hbGxvY2F0aW9uX3Jlc3VsdAorcGFzX2xv
Y2FsX2FsbG9jYXRvcl90cnlfYWxsb2NhdGVfaW5saW5lX29ubHkocGFzX2xvY2FsX2FsbG9jYXRv
ciogYWxsb2NhdG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcGFzX2hlYXBfY29uZmlnIGNvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9maWx0ZXIgcmVzdWx0X2ZpbHRl
cikKK3sKKyAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CisgICAgcGFzX2Fs
bG9jYXRpb25fcmVzdWx0IHJlc3VsdDsKKworICAgIGlmICh2ZXJib3NlKSB7CisgICAgICAgIHBh
c19sb2coIkFsbG9jYXRvciAlcCAoJXMpIGFsbG9jYXRpbmcgaW5saW5lIG9ubHkuXG4iLAorICAg
ICAgICAgICAgICAgIGFsbG9jYXRvciwgcGFzX2xvY2FsX2FsbG9jYXRvcl9jb25maWdfa2luZF9n
ZXRfc3RyaW5nKGFsbG9jYXRvci0+Y29uZmlnX2tpbmQpKTsKKyAgICB9CisgICAgCisgICAgYWxs
b2NhdG9yLT5zY2F2ZW5nZXJfZGF0YS5pc19pbl91c2UgPSB0cnVlOworICAgIHBhc19jb21waWxl
cl9mZW5jZSgpOworCisgICAgcmVzdWx0ID0gcGFzX2xvY2FsX2FsbG9jYXRvcl90cnlfYWxsb2Nh
dGVfaW5saW5lX2Nhc2VzKGFsbG9jYXRvciwgY29uZmlnKTsKKyAgICBpZiAocmVzdWx0LmRpZF9z
dWNjZWVkKSB7CisgICAgICAgIHBhc19jb21waWxlcl9mZW5jZSgpOworICAgICAgICBhbGxvY2F0
b3ItPnNjYXZlbmdlcl9kYXRhLmlzX2luX3VzZSA9IGZhbHNlOworICAgICAgICAKKyAgICAgICAg
aWYgKHZlcmJvc2UpIHsKKyAgICAgICAgICAgIHBhc19sb2coIkFsbG9jYXRvciAlcCAoJXMpIGFs
bG9jYXRlZCAlcCAoaW5saW5lIGNhc2VzKS5cbiIsCisgICAgICAgICAgICAgICAgICAgIGFsbG9j
YXRvciwgcGFzX2xvY2FsX2FsbG9jYXRvcl9jb25maWdfa2luZF9nZXRfc3RyaW5nKGFsbG9jYXRv
ci0+Y29uZmlnX2tpbmQpLAorICAgICAgICAgICAgICAgICAgICAodm9pZCopcmVzdWx0LmJlZ2lu
KTsKKyAgICAgICAgfQorICAgIAorICAgICAgICByZXR1cm4gcmVzdWx0X2ZpbHRlcigKKyAgICAg
ICAgICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGVfc3VjY2Vzc193aXRoX3plcm9fbW9k
ZShyZXN1bHQuYmVnaW4sIHJlc3VsdC56ZXJvX21vZGUpKTsKKyAgICB9CisKKyAgICBwYXNfY29t
cGlsZXJfZmVuY2UoKTsKKyAgICBhbGxvY2F0b3ItPnNjYXZlbmdlcl9kYXRhLmlzX2luX3VzZSA9
IGZhbHNlOworCisgICAgLyogTk9URTogSXQncyBpbnRlbnRpb25hbCB0aGF0IHdlIG9ubHkgYXBw
bHkgdGhlIHJlc3VsdCBmaWx0ZXIgb24gdGhlIHN1Y2Nlc3MgY2FzZS4gKi8KKyAgICByZXR1cm4g
cGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0ZV9mYWlsdXJlKCk7CiB9CiAKIHN0YXRpYyBQQVNf
QUxXQVlTX0lOTElORSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQKQEAgLTE2MTMsMTIgKzE3MTMsMTMg
QEAgcGFzX2xvY2FsX2FsbG9jYXRvcl90cnlfYWxsb2NhdGUocGFzX2xvYwogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdm9pZCogc2l6ZV90aHVua19hcmcsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzaXplX3QgYWxpZ25tZW50LAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcGFzX2hlYXBfY29uZmlnIGNvbmZpZywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHBhc19hbGxvY2F0b3JfY291bnRzKiBjb3VudHMpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwYXNfYWxsb2NhdG9yX2NvdW50cyogY291bnRzLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X2ZpbHRl
ciByZXN1bHRfZmlsdGVyKQogewogICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxz
ZTsKICAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgcmVzdWx0OwogCi0gICAgUEFTX1RFU1RJTkdf
QVNTRVJUKCFhbGxvY2F0b3ItPmlzX2luX3VzZSk7CisgICAgUEFTX1RFU1RJTkdfQVNTRVJUKCFh
bGxvY2F0b3ItPnNjYXZlbmdlcl9kYXRhLmlzX2luX3VzZSk7CiAKICAgICBpZiAodmVyYm9zZSkg
ewogICAgICAgICBwYXNfbG9nKCJBbGxvY2F0b3IgJXAgKCVzKSBhbGxvY2F0aW5nIHNpemUgPSAl
enUsIGFsaWdubWVudCA9ICV6dS5cbiIsCkBAIC0xNjI2LDEzICsxNzI3LDEzIEBAIHBhc19sb2Nh
bF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRlKHBhc19sb2MKICAgICAgICAgICAgICAgICBzaXplX3Ro
dW5rKHNpemVfdGh1bmtfYXJnKSwgYWxpZ25tZW50KTsKICAgICB9CiAgICAgCi0gICAgYWxsb2Nh
dG9yLT5pc19pbl91c2UgPSB0cnVlOworICAgIGFsbG9jYXRvci0+c2NhdmVuZ2VyX2RhdGEuaXNf
aW5fdXNlID0gdHJ1ZTsKICAgICBwYXNfY29tcGlsZXJfZmVuY2UoKTsKIAogICAgIHJlc3VsdCA9
IHBhc19sb2NhbF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRlX2lubGluZV9jYXNlcyhhbGxvY2F0b3Is
IGNvbmZpZyk7CiAgICAgaWYgKHJlc3VsdC5kaWRfc3VjY2VlZCkgewogICAgICAgICBwYXNfY29t
cGlsZXJfZmVuY2UoKTsKLSAgICAgICAgYWxsb2NhdG9yLT5pc19pbl91c2UgPSBmYWxzZTsKKyAg
ICAgICAgYWxsb2NhdG9yLT5zY2F2ZW5nZXJfZGF0YS5pc19pbl91c2UgPSBmYWxzZTsKICAgICAg
ICAgCiAgICAgICAgIGlmICh2ZXJib3NlKSB7CiAgICAgICAgICAgICBwYXNfbG9nKCJBbGxvY2F0
b3IgJXAgKCVzKSBhbGxvY2F0ZWQgJXAgKGlubGluZSBjYXNlcykuXG4iLApAQCAtMTY0MCw3ICsx
NzQxLDggQEAgcGFzX2xvY2FsX2FsbG9jYXRvcl90cnlfYWxsb2NhdGUocGFzX2xvYwogICAgICAg
ICAgICAgICAgICAgICAodm9pZCopcmVzdWx0LmJlZ2luKTsKICAgICAgICAgfQogICAgIAotICAg
ICAgICByZXR1cm4gcGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0ZV9zdWNjZXNzX3dpdGhfemVy
b19tb2RlKHJlc3VsdC5iZWdpbiwgcmVzdWx0Lnplcm9fbW9kZSk7CisgICAgICAgIHJldHVybiBy
ZXN1bHRfZmlsdGVyKAorICAgICAgICAgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0ZV9z
dWNjZXNzX3dpdGhfemVyb19tb2RlKHJlc3VsdC5iZWdpbiwgcmVzdWx0Lnplcm9fbW9kZSkpOwog
ICAgIH0KIAogICAgIGlmIChjb25maWcuc21hbGxfc2VncmVnYXRlZF9jb25maWcuYmFzZS5pc19l
bmFibGVkICYmCkBAIC0xNjUzLDMyICsxNzU1LDE4IEBAIHBhc19sb2NhbF9hbGxvY2F0b3JfdHJ5
X2FsbG9jYXRlKHBhc19sb2MKICAgICAgICAgICAgICAgICAgICAgYWxsb2NhdG9yLCBwYXNfbG9j
YWxfYWxsb2NhdG9yX2NvbmZpZ19raW5kX2dldF9zdHJpbmcoYWxsb2NhdG9yLT5jb25maWdfa2lu
ZCkpOwogICAgICAgICB9CiAKLSAgICAgICAgcmV0dXJuIGNvbmZpZy5zcGVjaWFsaXplZF9sb2Nh
bF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRlX3NtYWxsX3NlZ3JlZ2F0ZWRfc2xvdygKLSAgICAgICAg
ICAgIGFsbG9jYXRvciwgY291bnRzKTsKKyAgICAgICAgcmVzdWx0ID0gY29uZmlnLnNwZWNpYWxp
emVkX2xvY2FsX2FsbG9jYXRvcl90cnlfYWxsb2NhdGVfc21hbGxfc2VncmVnYXRlZF9zbG93KAor
ICAgICAgICAgICAgYWxsb2NhdG9yLCBjb3VudHMsIHJlc3VsdF9maWx0ZXIpOworICAgICAgICBp
ZiAodmVyYm9zZSkKKyAgICAgICAgICAgIHBhc19sb2coImluIHNtYWxsIHNlZ3JlZ2F0ZWQgc2xv
dyByZXR1cm4gLSByZXN1bHQuYmVnaW4gPSAlcFxuIiwgKHZvaWQqKXJlc3VsdC5iZWdpbik7Cisg
ICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogCiAgICAgcmVzdWx0ID0gY29uZmlnLnNwZWNp
YWxpemVkX2xvY2FsX2FsbG9jYXRvcl90cnlfYWxsb2NhdGVfc2xvdygKLSAgICAgICAgYWxsb2Nh
dG9yLCBzaXplX3RodW5rKHNpemVfdGh1bmtfYXJnKSwgYWxpZ25tZW50LCBjb3VudHMpOwotICAg
IGlmIChyZXN1bHQuZGlkX3N1Y2NlZWQpIHsKLSAgICAgICAgcGFzX2NvbXBpbGVyX2ZlbmNlKCk7
Ci0KLSAgICAgICAgaWYgKHZlcmJvc2UpIHsKLSAgICAgICAgICAgIHBhc19sb2coIkFsbG9jYXRv
ciAlcCAoJXMpIGFsbG9jYXRlZCAlcCAoc2xvdykuXG4iLAotICAgICAgICAgICAgICAgICAgICBh
bGxvY2F0b3IsIHBhc19sb2NhbF9hbGxvY2F0b3JfY29uZmlnX2tpbmRfZ2V0X3N0cmluZyhhbGxv
Y2F0b3ItPmNvbmZpZ19raW5kKSwKLSAgICAgICAgICAgICAgICAgICAgKHZvaWQqKXJlc3VsdC5i
ZWdpbik7Ci0gICAgICAgIH0KLSAgICAKLSAgICAgICAgcmV0dXJuIHBhc19hbGxvY2F0aW9uX3Jl
c3VsdF9jcmVhdGVfc3VjY2Vzc193aXRoX3plcm9fbW9kZShyZXN1bHQuYmVnaW4sIHJlc3VsdC56
ZXJvX21vZGUpOwotICAgIH0KLQotICAgIHBhc19jb21waWxlcl9mZW5jZSgpOwotICAgIAotICAg
IGlmICh2ZXJib3NlKSB7Ci0gICAgICAgIHBhc19sb2coIkFsbG9jYXRvciAlcCAoJXMpIGZhaWxl
ZC5cbiIsCi0gICAgICAgICAgICAgICAgYWxsb2NhdG9yLCBwYXNfbG9jYWxfYWxsb2NhdG9yX2Nv
bmZpZ19raW5kX2dldF9zdHJpbmcoYWxsb2NhdG9yLT5jb25maWdfa2luZCkpOwotICAgIH0KLSAg
ICAKLSAgICByZXR1cm4gcGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0ZV9mYWlsdXJlKCk7Cisg
ICAgICAgIGFsbG9jYXRvciwgc2l6ZV90aHVuayhzaXplX3RodW5rX2FyZyksIGFsaWdubWVudCwg
Y291bnRzLCByZXN1bHRfZmlsdGVyKTsKKyAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgcGFzX2xv
ZygiaW4gZ2VuZXJpYyByZXR1cm4gLSByZXN1bHQuYmVnaW4gPSAlcFxuIiwgKHZvaWQqKXJlc3Vs
dC5iZWdpbik7CisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogUEFTX0VORF9FWFRFUk5fQzsKSW5k
ZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3Jf
a2luZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19sb2NhbF9hbGxvY2F0b3Jfa2luZC5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3Jfa2luZC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMjEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCisgKi8KKworI2lmbmRlZiBQQVNfTE9DQUxfQUxMT0NBVE9SX0tJTkQKKyNkZWZpbmUgUEFT
X0xPQ0FMX0FMTE9DQVRPUl9LSU5ECisKKyNpbmNsdWRlICJwYXNfdXRpbHMuaCIKKworUEFTX0JF
R0lOX0VYVEVSTl9DOworCitlbnVtIHBhc19sb2NhbF9hbGxvY2F0b3Jfa2luZCB7CisgICAgcGFz
X2xvY2FsX2FsbG9jYXRvcl9hbGxvY2F0b3Jfa2luZCwKKyAgICBwYXNfbG9jYWxfYWxsb2NhdG9y
X3ZpZXdfY2FjaGVfa2luZAorfTsKKwordHlwZWRlZiBlbnVtIHBhc19sb2NhbF9hbGxvY2F0b3Jf
a2luZCBwYXNfbG9jYWxfYWxsb2NhdG9yX2tpbmQ7CisKK3N0YXRpYyBpbmxpbmUgY29uc3QgY2hh
ciogcGFzX2xvY2FsX2FsbG9jYXRvcl9raW5kX2dldF9zdHJpbmcocGFzX2xvY2FsX2FsbG9jYXRv
cl9raW5kIGtpbmQpCit7CisgICAgc3dpdGNoIChraW5kKSB7CisgICAgY2FzZSBwYXNfbG9jYWxf
YWxsb2NhdG9yX2FsbG9jYXRvcl9raW5kOgorICAgICAgICByZXR1cm4gImFsbG9jYXRvciI7Cisg
ICAgY2FzZSBwYXNfbG9jYWxfYWxsb2NhdG9yX3ZpZXdfY2FjaGVfa2luZDoKKyAgICAgICAgcmV0
dXJuICJ2aWV3X2NhY2hlIjsKKyAgICB9CisgICAgUEFTX0FTU0VSVCghIlNob3VsZCBub3QgYmUg
cmVhY2hlZCIpOworICAgIHJldHVybiBOVUxMOworfQorCitQQVNfRU5EX0VYVEVSTl9DOworCisj
ZW5kaWYgLyogUEFTX0xPQ0FMX0FMTE9DQVRPUl9LSU5EICovCisKSW5kZXg6IFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3JfbGluZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0
b3JfbGluZS5oCShyZXZpc2lvbiAyNzk5NjQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9yX2xpbmUuaAkobm9uZXhpc3RlbnQpCkBAIC0xLDEx
NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0K
LSNpZm5kZWYgUEFTX0xPQ0FMX0FMTE9DQVRPUl9MSU5FX0gKLSNkZWZpbmUgUEFTX0xPQ0FMX0FM
TE9DQVRPUl9MSU5FX0gKLQotI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnLmgi
Ci0KLVBBU19CRUdJTl9FWFRFUk5fQzsKLQotc3RydWN0IHBhc19sb2NhbF9hbGxvY2F0b3JfbGlu
ZTsKLXR5cGVkZWYgc3RydWN0IHBhc19sb2NhbF9hbGxvY2F0b3JfbGluZSBwYXNfbG9jYWxfYWxs
b2NhdG9yX2xpbmU7Ci0KLXN0cnVjdCBwYXNfbG9jYWxfYWxsb2NhdG9yX2xpbmUgewotICAgIHVp
bnQxNl90IGVuY29kZWRfcmVtYWluaW5nOwotICAgIHVpbnQxNl90IGVuY29kZWRfcGF5bG9hZF9l
bmRfZGVsdGE7Ci19OwotCi1zdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgYm9vbCBwYXNfbG9jYWxf
YWxsb2NhdG9yX2xpbmVfZml0c193aXRob3V0X3NoaWZ0KAotICAgIHBhc19zZWdyZWdhdGVkX3Bh
Z2VfY29uZmlnIHBhZ2VfY29uZmlnKQotewotICAgIHNpemVfdCBtYXhfcGFnZV9vZmZzZXQ7Ci0g
ICAgc2l6ZV90IHNoaWZ0ZWQ7Ci0KLSAgICBtYXhfcGFnZV9vZmZzZXQgPSBwYWdlX2NvbmZpZy5i
YXNlLnBhZ2Vfc2l6ZSAtIDE7Ci0KLSAgICBpZiAoKHVpbnQxNl90KW1heF9wYWdlX29mZnNldCA9
PSBtYXhfcGFnZV9vZmZzZXQpCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgc2hpZnRlZCA9
IG1heF9wYWdlX29mZnNldCA+PiBwYWdlX2NvbmZpZy5iYXNlLm1pbl9hbGlnbl9zaGlmdDsKLQot
ICAgIFBBU19BU1NFUlQoKHVpbnQxNl90KXNoaWZ0ZWQgPT0gc2hpZnRlZCk7Ci0gICAgcmV0dXJu
IGZhbHNlOwotfQotCi1zdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgc2l6ZV90IHBhc19sb2NhbF9h
bGxvY2F0b3JfbGluZV9kZWNvZGUodWludDE2X3QgdmFsdWUsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9jb25maWcgcGFnZV9jb25maWcpCi17Ci0gICAgaWYgKHBhc19sb2NhbF9hbGxvY2F0
b3JfbGluZV9maXRzX3dpdGhvdXRfc2hpZnQocGFnZV9jb25maWcpKQotICAgICAgICByZXR1cm4g
dmFsdWU7Ci0gICAgcmV0dXJuIChzaXplX3QpdmFsdWUgPDwgcGFnZV9jb25maWcuYmFzZS5taW5f
YWxpZ25fc2hpZnQ7Ci19Ci0KLXN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB1aW50MTZfdCBwYXNf
bG9jYWxfYWxsb2NhdG9yX2xpbmVfZW5jb2RlKHNpemVfdCB2YWx1ZSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19z
ZWdyZWdhdGVkX3BhZ2VfY29uZmlnIHBhZ2VfY29uZmlnKQotewotICAgIHVpbnQxNl90IGVuY29k
ZWQ7Ci0gICAgCi0gICAgaWYgKHBhc19sb2NhbF9hbGxvY2F0b3JfbGluZV9maXRzX3dpdGhvdXRf
c2hpZnQocGFnZV9jb25maWcpKQotICAgICAgICBlbmNvZGVkID0gKHVpbnQxNl90KXZhbHVlOwot
ICAgIGVsc2UKLSAgICAgICAgZW5jb2RlZCA9ICh1aW50MTZfdCkodmFsdWUgPj4gcGFnZV9jb25m
aWcuYmFzZS5taW5fYWxpZ25fc2hpZnQpOwotCi0gICAgUEFTX1RFU1RJTkdfQVNTRVJUKHBhc19s
b2NhbF9hbGxvY2F0b3JfbGluZV9kZWNvZGUoZW5jb2RlZCwgcGFnZV9jb25maWcpID09IHZhbHVl
KTsKLQotICAgIHJldHVybiBlbmNvZGVkOwotfQotCi1zdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUg
c2l6ZV90IHBhc19sb2NhbF9hbGxvY2F0b3JfbGluZV9yZW1haW5pbmcoCi0gICAgcGFzX2xvY2Fs
X2FsbG9jYXRvcl9saW5lIGxpbmUsCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcgcGFn
ZV9jb25maWcpCi17Ci0gICAgcmV0dXJuIHBhc19sb2NhbF9hbGxvY2F0b3JfbGluZV9kZWNvZGUo
bGluZS5lbmNvZGVkX3JlbWFpbmluZywgcGFnZV9jb25maWcpOwotfQotCi1zdGF0aWMgUEFTX0FM
V0FZU19JTkxJTkUgdm9pZCBwYXNfbG9jYWxfYWxsb2NhdG9yX2xpbmVfc2V0X3JlbWFpbmluZygK
LSAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX2xpbmUqIGxpbmUsCi0gICAgc2l6ZV90IHJlbWFpbmlu
ZywKLSAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZpZykKLXsKLSAgICBs
aW5lLT5lbmNvZGVkX3JlbWFpbmluZyA9IHBhc19sb2NhbF9hbGxvY2F0b3JfbGluZV9lbmNvZGUo
cmVtYWluaW5nLCBwYWdlX2NvbmZpZyk7Ci19Ci0KLXN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBz
aXplX3QgcGFzX2xvY2FsX2FsbG9jYXRvcl9saW5lX3BheWxvYWRfZW5kX2RlbHRhKAotICAgIHBh
c19sb2NhbF9hbGxvY2F0b3JfbGluZSBsaW5lLAotICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29u
ZmlnIHBhZ2VfY29uZmlnKQotewotICAgIHJldHVybiBwYXNfbG9jYWxfYWxsb2NhdG9yX2xpbmVf
ZGVjb2RlKGxpbmUuZW5jb2RlZF9wYXlsb2FkX2VuZF9kZWx0YSwgcGFnZV9jb25maWcpOwotfQot
Ci1zdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCBwYXNfbG9jYWxfYWxsb2NhdG9yX2xpbmVf
c2V0X3BheWxvYWRfZW5kX2RlbHRhKAotICAgIHBhc19sb2NhbF9hbGxvY2F0b3JfbGluZSogbGlu
ZSwKLSAgICBzaXplX3QgcGF5bG9hZF9lbmRfZGVsdGEsCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9jb25maWcgcGFnZV9jb25maWcpCi17Ci0gICAgbGluZS0+ZW5jb2RlZF9wYXlsb2FkX2VuZF9k
ZWx0YSA9IHBhc19sb2NhbF9hbGxvY2F0b3JfbGluZV9lbmNvZGUocGF5bG9hZF9lbmRfZGVsdGEs
IHBhZ2VfY29uZmlnKTsKLX0KLQotUEFTX0VORF9FWFRFUk5fQzsKLQotI2VuZGlmIC8qIFBBU19M
T0NBTF9BTExPQ0FUT1JfTElORV9IICovCi0KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3JfcmVzdWx0LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvcl9yZXN1bHQu
aAkocmV2aXNpb24gMjc5OTY0KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX2xvY2FsX2FsbG9jYXRvcl9yZXN1bHQuaAkod29ya2luZyBjb3B5KQpAQCAtMzAsMTUgKzMw
LDEzIEBACiAKIFBBU19CRUdJTl9FWFRFUk5fQzsKIAotc3RydWN0IHBhc19sb2NhbF9hbGxvY2F0
b3I7CiBzdHJ1Y3QgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZXN1bHQ7Ci10eXBlZGVmIHN0cnVjdCBw
YXNfbG9jYWxfYWxsb2NhdG9yIHBhc19sb2NhbF9hbGxvY2F0b3I7CiB0eXBlZGVmIHN0cnVjdCBw
YXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3VsdCBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3VsdDsKIAog
LyogVGhpcyBleGlzdHMgdG8gYWxsb3cganVtcC10aHJlYWRpbmcgb2Ygc3VjY2Vzcy4gKi8KIHN0
cnVjdCBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3VsdCB7CiAgICAgYm9vbCBkaWRfc3VjY2VlZDsK
LSAgICBwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0b3I7CisgICAgdm9pZCogYWxsb2NhdG9y
OyAvKiBDb3VsZCByZWFsbHkgYmUgYSBsb2NhbF9hbGxvY2F0b3Igb3IgYSBsb2NhbF92aWV3X2Nh
Y2hlLiAqLwogfTsKIAogc3RhdGljIGlubGluZSBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3VsdCBw
YXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3VsdF9jcmVhdGVfZmFpbHVyZSh2b2lkKQpAQCAtNDksNyAr
NDcsNyBAQCBzdGF0aWMgaW5saW5lIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVzdWx0CiAgICAgcmV0
dXJuIHJlc3VsdDsKIH0KIAotc3RhdGljIGlubGluZSBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3Vs
dCBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3VsdF9jcmVhdGVfc3VjY2VzcyhwYXNfbG9jYWxfYWxs
b2NhdG9yKiBhbGxvY2F0b3IpCitzdGF0aWMgaW5saW5lIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVz
dWx0IHBhc19sb2NhbF9hbGxvY2F0b3JfcmVzdWx0X2NyZWF0ZV9zdWNjZXNzKHZvaWQqIGFsbG9j
YXRvcikKIHsKICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3VsdCByZXN1bHQ7CiAgICAgcmVz
dWx0LmRpZF9zdWNjZWVkID0gdHJ1ZTsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEuYwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9yX3Nj
YXZlbmdlcl9kYXRhLmMJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YS5jCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMjEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCisgKi8KKworI2luY2x1ZGUgInBhc19jb25maWcuaCIKKworI2lmIExJQlBBU19FTkFCTEVE
CisKKyNpbmNsdWRlICJwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhLmgiCisKKyNp
bmNsdWRlICJwYXNfbG9jYWxfYWxsb2NhdG9yLmgiCisjaW5jbHVkZSAicGFzX2xvY2FsX3ZpZXdf
Y2FjaGUuaCIKKwordWludDhfdCBwYXNfbG9jYWxfYWxsb2NhdG9yX3Nob3VsZF9zdG9wX2NvdW50
X2Zvcl9zdXNwZW5kID0gNTsKKworYm9vbCBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9k
YXRhX2lzX2FjdGl2ZShwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhKiBkYXRhKQor
eworICAgIHN3aXRjaCAoZGF0YS0+a2luZCkgeworICAgIGNhc2UgcGFzX2xvY2FsX2FsbG9jYXRv
cl9hbGxvY2F0b3Jfa2luZDoKKyAgICAgICAgcmV0dXJuIHBhc19sb2NhbF9hbGxvY2F0b3JfaXNf
YWN0aXZlKChwYXNfbG9jYWxfYWxsb2NhdG9yKilkYXRhKTsKKyAgICBjYXNlIHBhc19sb2NhbF9h
bGxvY2F0b3Jfdmlld19jYWNoZV9raW5kOgorICAgICAgICByZXR1cm4gIXBhc19sb2NhbF92aWV3
X2NhY2hlX2lzX2VtcHR5KChwYXNfbG9jYWxfdmlld19jYWNoZSopZGF0YSk7CisgICAgfQorICAg
IFBBU19BU1NFUlQoISJTaG91bGQgbm90IGJlIHJlYWNoZWQiKTsKKyAgICByZXR1cm4gZmFsc2U7
Cit9CisKK2Jvb2wgcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YV9zdG9wKAorICAg
IHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEqIGRhdGEsCisgICAgcGFzX2xvY2tf
bG9ja19tb2RlIHBhZ2VfbG9ja19tb2RlLAorICAgIHBhc19sb2NrX2hvbGRfbW9kZSBoZWFwX2xv
Y2tfaG9sZF9tb2RlKQoreworICAgIHN3aXRjaCAoZGF0YS0+a2luZCkgeworICAgIGNhc2UgcGFz
X2xvY2FsX2FsbG9jYXRvcl9hbGxvY2F0b3Jfa2luZDoKKyAgICAgICAgcmV0dXJuIHBhc19sb2Nh
bF9hbGxvY2F0b3Jfc3RvcCgocGFzX2xvY2FsX2FsbG9jYXRvciopZGF0YSwgcGFnZV9sb2NrX21v
ZGUsIGhlYXBfbG9ja19ob2xkX21vZGUpOworICAgIGNhc2UgcGFzX2xvY2FsX2FsbG9jYXRvcl92
aWV3X2NhY2hlX2tpbmQ6CisgICAgICAgIHJldHVybiBwYXNfbG9jYWxfdmlld19jYWNoZV9zdG9w
KChwYXNfbG9jYWxfdmlld19jYWNoZSopZGF0YSwgcGFnZV9sb2NrX21vZGUpOworICAgIH0KKyAg
ICBQQVNfQVNTRVJUKCEiU2hvdWxkIG5vdCBiZSByZWFjaGVkIik7CisgICAgcmV0dXJuIGZhbHNl
OworfQorCisjZW5kaWYgLyogTElCUEFTX0VOQUJMRUQgKi8KKworCkluZGV4OiBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRh
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xv
Y2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YS5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2Rh
dGEuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDc4IEBACisvKgorICogQ29weXJpZ2h0IChj
KSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgUEFTX0xPQ0FMX0FMTE9DQVRPUl9T
Q0FWRU5HRVJfREFUQV9ICisjZGVmaW5lIFBBU19MT0NBTF9BTExPQ0FUT1JfU0NBVkVOR0VSX0RB
VEFfSAorCisjaW5jbHVkZSAicGFzX2xvY2FsX2FsbG9jYXRvcl9raW5kLmgiCisjaW5jbHVkZSAi
cGFzX2xvY2suaCIKKworUEFTX0JFR0lOX0VYVEVSTl9DOworCitzdHJ1Y3QgcGFzX2xvY2FsX2Fs
bG9jYXRvcl9zY2F2ZW5nZXJfZGF0YTsKK3R5cGVkZWYgc3RydWN0IHBhc19sb2NhbF9hbGxvY2F0
b3Jfc2NhdmVuZ2VyX2RhdGEgcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YTsKKwor
LyogVGhpcyBzaG91bGQganVzdCBiZSAzMi1iaXQuICovCitzdHJ1Y3QgcGFzX2xvY2FsX2FsbG9j
YXRvcl9zY2F2ZW5nZXJfZGF0YSB7CisgICAgYm9vbCBpc19pbl91c2U7CisgICAgdWludDhfdCBz
aG91bGRfc3RvcF9jb3VudDsKKyAgICBib29sIGRpcnR5OworICAgIHBhc19sb2NhbF9hbGxvY2F0
b3Jfa2luZCBraW5kIDogODsKK307CisKKyNkZWZpbmUgUEFTX0xPQ0FMX0FMTE9DQVRPUl9TQ0FW
RU5HRVJfREFUQV9JTklUSUFMSVpFUihwYXNzZWRfa2luZCkgXAorICAgICgocGFzX2xvY2FsX2Fs
bG9jYXRvcl9zY2F2ZW5nZXJfZGF0YSl7IFwKKyAgICAgICAgIC5pc19pbl91c2UgPSBmYWxzZSwg
XAorICAgICAgICAgLnNob3VsZF9zdG9wX2NvdW50ID0gMCwgXAorICAgICAgICAgLmRpcnR5ID0g
ZmFsc2UsIFwKKyAgICAgICAgIC5raW5kID0gKHBhc3NlZF9raW5kKSBcCisgICAgIH0pCisKK1BB
U19BUEkgZXh0ZXJuIHVpbnQ4X3QgcGFzX2xvY2FsX2FsbG9jYXRvcl9zaG91bGRfc3RvcF9jb3Vu
dF9mb3Jfc3VzcGVuZDsKKworc3RhdGljIGlubGluZSB2b2lkIHBhc19sb2NhbF9hbGxvY2F0b3Jf
c2NhdmVuZ2VyX2RhdGFfY29uc3RydWN0KHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2Rh
dGEqIGRhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9raW5kIGtpbmQpCit7CisgICAg
KmRhdGEgPSBQQVNfTE9DQUxfQUxMT0NBVE9SX1NDQVZFTkdFUl9EQVRBX0lOSVRJQUxJWkVSKGtp
bmQpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5n
ZXJfZGF0YV9kaWRfdXNlX2Zvcl9hbGxvY2F0aW9uKAorICAgIHBhc19sb2NhbF9hbGxvY2F0b3Jf
c2NhdmVuZ2VyX2RhdGEqIGRhdGEpCit7CisgICAgZGF0YS0+ZGlydHkgPSB0cnVlOworICAgIGRh
dGEtPnNob3VsZF9zdG9wX2NvdW50ID0gMDsKK30KKworUEFTX0FQSSBib29sIHBhc19sb2NhbF9h
bGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGFfaXNfYWN0aXZlKHBhc19sb2NhbF9hbGxvY2F0b3Jfc2Nh
dmVuZ2VyX2RhdGEqIGRhdGEpOworCitQQVNfQVBJIGJvb2wgcGFzX2xvY2FsX2FsbG9jYXRvcl9z
Y2F2ZW5nZXJfZGF0YV9zdG9wKAorICAgIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2Rh
dGEqIGRhdGEsCisgICAgcGFzX2xvY2tfbG9ja19tb2RlIHBhZ2VfbG9ja19tb2RlLAorICAgIHBh
c19sb2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKKworUEFTX0VORF9FWFRFUk5f
QzsKKworI2VuZGlmIC8qIFBBU19MT0NBTF9BTExPQ0FUT1JfU0NBVkVOR0VSX0RBVEFfSCAqLwor
CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfdmlld19j
YWNoZS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19sb2NhbF92aWV3X2NhY2hlLmMJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX3ZpZXdfY2FjaGUuYwkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDEyNyBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAq
LworCisjaW5jbHVkZSAicGFzX2NvbmZpZy5oIgorCisjaWYgTElCUEFTX0VOQUJMRUQKKworI2lu
Y2x1ZGUgInBhc19sb2NhbF92aWV3X2NhY2hlLmgiCisKKyNpbmNsdWRlICJwYXNfc2VncmVnYXRl
ZF9leGNsdXNpdmVfdmlld19pbmxpbmVzLmgiCisjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9pbmxpbmVzLmgiCisjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkuaCIK
Kwordm9pZCBwYXNfbG9jYWxfdmlld19jYWNoZV9jb25zdHJ1Y3QocGFzX2xvY2FsX3ZpZXdfY2Fj
aGUqIGNhY2hlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCBj
YXBhY2l0eSkKK3sKKyAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhX2NvbnN0
cnVjdCgKKyAgICAgICAgJmNhY2hlLT5zY2F2ZW5nZXJfZGF0YSwgcGFzX2xvY2FsX2FsbG9jYXRv
cl92aWV3X2NhY2hlX2tpbmQpOworICAgIAorICAgIGNhY2hlLT5jYXBhY2l0eSA9IGNhcGFjaXR5
OworICAgIGNhY2hlLT5ib3R0b21faW5kZXggPSAwOworICAgIGNhY2hlLT50b3BfaW5kZXggPSAw
OworICAgIGNhY2hlLT5pc19mdWxsID0gZmFsc2U7CisKKyAgICBpZiAoUEFTX0VOQUJMRV9URVNU
SU5HKSB7CisgICAgICAgIHVpbnQ4X3QgaW5kZXg7CisKKyAgICAgICAgZm9yIChpbmRleCA9IGNh
cGFjaXR5OyBpbmRleC0tOykKKyAgICAgICAgICAgIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZXhj
bHVzaXZlX3ZpZXdfcHRyX3N0b3JlKGNhY2hlLT52aWV3cyArIGluZGV4LCBOVUxMKTsKKyAgICB9
Cit9CisKK3ZvaWQgcGFzX2xvY2FsX3ZpZXdfY2FjaGVfbW92ZShwYXNfbG9jYWxfdmlld19jYWNo
ZSogZGVzdGluYXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2xvY2Fs
X3ZpZXdfY2FjaGUqIHNvdXJjZSkKK3sKKyAgICBtZW1jcHkoZGVzdGluYXRpb24sIHNvdXJjZSwg
UEFTX0xPQ0FMX1ZJRVdfQ0FDSEVfU0laRShzb3VyY2UtPmNhcGFjaXR5KSk7Cit9CisKK3N0YXRp
YyBib29sIHN0b3BfaW1wbChwYXNfbG9jYWxfdmlld19jYWNoZSogY2FjaGUsCisgICAgICAgICAg
ICAgICAgICAgICAgcGFzX2xvY2tfbG9ja19tb2RlIHBhZ2VfbG9ja19tb2RlKQoreworICAgIHBh
c19sb2NrKiBoZWxkX2xvY2s7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRp
cmVjdG9yeTsKKyAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZpZzsKKyAg
ICAKKyAgICBkaXJlY3RvcnkgPSBOVUxMOworICAgIHBhZ2VfY29uZmlnID0gKHBhc19zZWdyZWdh
dGVkX3BhZ2VfY29uZmlnKXsgfTsKKyAgICBoZWxkX2xvY2sgPSBOVUxMOworICAgIAorICAgIHdo
aWxlICghcGFzX2xvY2FsX3ZpZXdfY2FjaGVfaXNfZW1wdHkoY2FjaGUpKSB7CisgICAgICAgIHBh
c19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3KiBjYWNoZWRfdmlldzsKKyAgICAgICAgcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZSogcGFnZTsKKyAgICAgICAgYm9vbCBzaG91bGRfbm90aWZ5X2VsaWdpYmls
aXR5OworICAgICAgICAKKyAgICAgICAgY2FjaGVkX3ZpZXcgPSBwYXNfbG9jYWxfdmlld19jYWNo
ZV9wb3AoY2FjaGUpOworICAgICAgICAKKyAgICAgICAgaWYgKGRpcmVjdG9yeSkgeworICAgICAg
ICAgICAgUEFTX0FTU0VSVCgKKyAgICAgICAgICAgICAgICBwYXNfY29tcGFjdF9zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKCZjYWNoZWRfdmlldy0+ZGlyZWN0b3J5
KQorICAgICAgICAgICAgICAgID09IGRpcmVjdG9yeSk7CisgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICBkaXJlY3RvcnkgPSBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
X3B0cl9sb2FkX25vbl9udWxsKCZjYWNoZWRfdmlldy0+ZGlyZWN0b3J5KTsKKyAgICAgICAgICAg
IHBhZ2VfY29uZmlnID0gKnBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfZ2V0X2NvbmZp
ZyhkaXJlY3RvcnktPmJhc2UucGFnZV9jb25maWdfa2luZCk7CisgICAgICAgIH0KKyAgICAgICAg
CisgICAgICAgIHBhZ2UgPSBwYXNfc2VncmVnYXRlZF9wYWdlX2Zvcl9ib3VuZGFyeShjYWNoZWRf
dmlldy0+cGFnZV9ib3VuZGFyeSwgcGFnZV9jb25maWcpOworICAgICAgICAKKyAgICAgICAgaWYg
KCFwYXNfc2VncmVnYXRlZF9wYWdlX3N3aXRjaF9sb2NrX3dpdGhfbW9kZShwYWdlLCAmaGVsZF9s
b2NrLCBwYWdlX2xvY2tfbW9kZSwgcGFnZV9jb25maWcpKSB7CisgICAgICAgICAgICBQQVNfQVNT
RVJUKCFwYXNfbG9jYWxfdmlld19jYWNoZV9pc19mdWxsKGNhY2hlKSk7CisgICAgICAgICAgICBw
YXNfbG9jYWxfdmlld19jYWNoZV9wdXNoKGNhY2hlLCBjYWNoZWRfdmlldyk7CisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHNob3VsZF9ub3Rp
ZnlfZWxpZ2liaWxpdHkgPSB0cnVlOworICAgICAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVf
dmlld19kaWRfc3RvcF9hbGxvY2F0aW5nKAorICAgICAgICAgICAgY2FjaGVkX3ZpZXcsIGRpcmVj
dG9yeSwgcGFnZSwgcGFnZV9jb25maWcsIHNob3VsZF9ub3RpZnlfZWxpZ2liaWxpdHkpOworICAg
IH0KKworICAgIHBhc19sb2NrX3N3aXRjaCgmaGVsZF9sb2NrLCBOVUxMKTsKKyAgICByZXR1cm4g
dHJ1ZTsKK30KKworYm9vbCBwYXNfbG9jYWxfdmlld19jYWNoZV9zdG9wKHBhc19sb2NhbF92aWV3
X2NhY2hlKiBjYWNoZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfbG9ja19s
b2NrX21vZGUgcGFnZV9sb2NrX21vZGUpCit7CisgICAgYm9vbCByZXN1bHQ7CisKKyAgICBQQVNf
QVNTRVJUKCFjYWNoZS0+c2NhdmVuZ2VyX2RhdGEuaXNfaW5fdXNlKTsKKworICAgIGNhY2hlLT5z
Y2F2ZW5nZXJfZGF0YS5pc19pbl91c2UgPSB0cnVlOworICAgIHBhc19jb21waWxlcl9mZW5jZSgp
OworCisgICAgcmVzdWx0ID0gc3RvcF9pbXBsKGNhY2hlLCBwYWdlX2xvY2tfbW9kZSk7CisKKyAg
ICBpZiAocmVzdWx0KQorICAgICAgICBjYWNoZS0+c2NhdmVuZ2VyX2RhdGEuc2hvdWxkX3N0b3Bf
Y291bnQgPSAwOworCisgICAgcGFzX2NvbXBpbGVyX2ZlbmNlKCk7CisgICAgY2FjaGUtPnNjYXZl
bmdlcl9kYXRhLmlzX2luX3VzZSA9IGZhbHNlOworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwor
I2VuZGlmIC8qIExJQlBBU19FTkFCTEVEICovCisKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc19sb2NhbF92aWV3X2NhY2hlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX3ZpZXdfY2FjaGUuaAkobm9uZXhp
c3RlbnQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfdmll
d19jYWNoZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTY4IEBACisvKgorICogQ29weXJp
Z2h0IChjKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgUEFTX0xPQ0FMX1ZJRVdf
Q0FDSEVfSAorI2RlZmluZSBQQVNfTE9DQUxfVklFV19DQUNIRV9ICisKKyNpbmNsdWRlICJwYXNf
Y29tcGFjdF9zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X3B0ci5oIgorI2luY2x1ZGUgInBhc19s
b2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEuaCIKKyNpbmNsdWRlICJwYXNfbG9jay5oIgor
I2luY2x1ZGUgInBhc19sb2cuaCIKKworUEFTX0JFR0lOX0VYVEVSTl9DOworCitzdHJ1Y3QgcGFz
X2xvY2FsX3ZpZXdfY2FjaGU7Cit0eXBlZGVmIHN0cnVjdCBwYXNfbG9jYWxfdmlld19jYWNoZSBw
YXNfbG9jYWxfdmlld19jYWNoZTsKKworc3RydWN0IHBhc19sb2NhbF92aWV3X2NhY2hlIHsKKyAg
ICBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhIHNjYXZlbmdlcl9kYXRhOworICAg
IHVpbnQ4X3QgY2FwYWNpdHk7CisgICAgLyogYm90dG9tX2luZGV4IGFuZCB0b3BfaW5kZXggbXVz
dCBiZSA8IGNhcGFjaXR5LiAqLworICAgIHVpbnQ4X3QgYm90dG9tX2luZGV4OworICAgIHVpbnQ4
X3QgdG9wX2luZGV4OworICAgIGJvb2wgaXNfZnVsbDsKKyAgICBwYXNfY29tcGFjdF9zZWdyZWdh
dGVkX2V4Y2x1c2l2ZV92aWV3X3B0ciB2aWV3c1sxXTsKK307CisKKyNkZWZpbmUgUEFTX0xPQ0FM
X1ZJRVdfQ0FDSEVfU0laRShjYXBhY2l0eSkgXAorICAgIFBBU19ST1VORF9VUF9UT19QT1dFUl9P
Rl8yKChQQVNfT0ZGU0VUT0YocGFzX2xvY2FsX3ZpZXdfY2FjaGUsIHZpZXdzKSArIFwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YocGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9l
eGNsdXNpdmVfdmlld19wdHIpICogKGNhcGFjaXR5KSksIFwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzaXplb2YodWludDY0X3QpKQorCitQQVNfQVBJIHZvaWQgcGFzX2xvY2FsX3Zp
ZXdfY2FjaGVfY29uc3RydWN0KHBhc19sb2NhbF92aWV3X2NhY2hlKiBjYWNoZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCBjYXBhY2l0eSk7CisK
K3N0YXRpYyBpbmxpbmUgYm9vbCBwYXNfbG9jYWxfdmlld19jYWNoZV9pc19lbXB0eShwYXNfbG9j
YWxfdmlld19jYWNoZSogY2FjaGUpCit7CisgICAgUEFTX1RFU1RJTkdfQVNTRVJUKGNhY2hlLT5i
b3R0b21faW5kZXggPCBjYWNoZS0+Y2FwYWNpdHkpOworICAgIFBBU19URVNUSU5HX0FTU0VSVChj
YWNoZS0+dG9wX2luZGV4IDwgY2FjaGUtPmNhcGFjaXR5KTsKKyAgICBQQVNfVEVTVElOR19BU1NF
UlQoIWNhY2hlLT5pc19mdWxsIHx8IGNhY2hlLT5ib3R0b21faW5kZXggPT0gY2FjaGUtPnRvcF9p
bmRleCk7CisKKyAgICByZXR1cm4gY2FjaGUtPnRvcF9pbmRleCA9PSBjYWNoZS0+Ym90dG9tX2lu
ZGV4ICYmICFjYWNoZS0+aXNfZnVsbDsKK30KKworc3RhdGljIGlubGluZSBwYXNfc2VncmVnYXRl
ZF9leGNsdXNpdmVfdmlldyogcGFzX2xvY2FsX3ZpZXdfY2FjaGVfcG9wKHBhc19sb2NhbF92aWV3
X2NhY2hlKiBjYWNoZSkKK3sKKyAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7
CisgICAgc3RhdGljIGNvbnN0IGJvb2wgdGFrZV9maXJzdCA9IHRydWU7IC8qIElmIHNldHRpbmcg
dGhpcyB0byBmYWxzZSB3YXMgcHJvZml0YWJsZSwgdGhlbiB0aGlzIHdvdWxkCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJlIHdyaXR0ZW4gYXMgYSBzdGFjay4g
SSBrZWVwIHRoaXMgb3B0aW9uIGhlcmUganVzdCBzbworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBJIGNhbiBvY2Nhc2lvbmFsbHkgdGVzdCBpZiBpdCBtYXR0ZXJz
LiAqLworICAgIAorICAgIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3KiByZXN1bHQ7Cisg
ICAgdWludDhfdCBwb3BfaW5kZXg7CisKKyAgICBQQVNfVEVTVElOR19BU1NFUlQoY2FjaGUtPmJv
dHRvbV9pbmRleCA8IGNhY2hlLT5jYXBhY2l0eSk7CisgICAgUEFTX1RFU1RJTkdfQVNTRVJUKGNh
Y2hlLT50b3BfaW5kZXggPCBjYWNoZS0+Y2FwYWNpdHkpOworICAgIFBBU19URVNUSU5HX0FTU0VS
VCghcGFzX2xvY2FsX3ZpZXdfY2FjaGVfaXNfZW1wdHkoY2FjaGUpKTsKKworICAgIGlmICh0YWtl
X2ZpcnN0KSB7CisgICAgICAgIHVpbnQ4X3QgYm90dG9tX2luZGV4OworICAgICAgICB1aW50OF90
IG5leHRfYm90dG9tX2luZGV4OworCisgICAgICAgIGJvdHRvbV9pbmRleCA9IGNhY2hlLT5ib3R0
b21faW5kZXg7CisgICAgICAgIG5leHRfYm90dG9tX2luZGV4ID0gYm90dG9tX2luZGV4ICsgMTsK
KyAgICAgICAgaWYgKG5leHRfYm90dG9tX2luZGV4ID49IGNhY2hlLT5jYXBhY2l0eSkgeworICAg
ICAgICAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKG5leHRfYm90dG9tX2luZGV4ID09IGNhY2hlLT5j
YXBhY2l0eSk7CisgICAgICAgICAgICBuZXh0X2JvdHRvbV9pbmRleCA9IDA7CisgICAgICAgIH0K
KyAgICAgICAgCisgICAgICAgIHBvcF9pbmRleCA9IGJvdHRvbV9pbmRleDsKKworICAgICAgICBj
YWNoZS0+Ym90dG9tX2luZGV4ID0gbmV4dF9ib3R0b21faW5kZXg7CisgICAgfSBlbHNlIHsKKyAg
ICAgICAgdWludDhfdCB0b3BfaW5kZXg7CisgICAgICAgIAorICAgICAgICB0b3BfaW5kZXggPSBj
YWNoZS0+dG9wX2luZGV4OworICAgICAgICAKKyAgICAgICAgaWYgKCF0b3BfaW5kZXgpCisgICAg
ICAgICAgICB0b3BfaW5kZXggPSBjYWNoZS0+Y2FwYWNpdHkgLSAxOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICB0b3BfaW5kZXgtLTsKKworICAgICAgICBwb3BfaW5kZXggPSB0b3BfaW5kZXg7
CisgICAgICAgIAorICAgICAgICBjYWNoZS0+dG9wX2luZGV4ID0gdG9wX2luZGV4OworICAgIH0K
KyAgICAKKyAgICByZXN1bHQgPSBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3
X3B0cl9sb2FkX25vbl9udWxsKGNhY2hlLT52aWV3cyArIHBvcF9pbmRleCk7CisgICAgCisgICAg
aWYgKFBBU19FTkFCTEVfVEVTVElORykKKyAgICAgICAgcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9l
eGNsdXNpdmVfdmlld19wdHJfc3RvcmUoY2FjaGUtPnZpZXdzICsgcG9wX2luZGV4LCBOVUxMKTsK
KyAgICAKKyAgICBjYWNoZS0+aXNfZnVsbCA9IGZhbHNlOworICAgIAorICAgIGlmICh2ZXJib3Nl
KQorICAgICAgICBwYXNfbG9nKCIlcDogcG9wcGVkICVwLlxuIiwgY2FjaGUsIHJlc3VsdCk7CisK
KyAgICByZXR1cm4gcmVzdWx0OworfQorCitzdGF0aWMgaW5saW5lIGJvb2wgcGFzX2xvY2FsX3Zp
ZXdfY2FjaGVfaXNfZnVsbChwYXNfbG9jYWxfdmlld19jYWNoZSogY2FjaGUpCit7CisgICAgcmV0
dXJuIGNhY2hlLT5pc19mdWxsOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgcGFzX2xvY2FsX3Zp
ZXdfY2FjaGVfcHVzaCgKKyAgICBwYXNfbG9jYWxfdmlld19jYWNoZSogY2FjaGUsCisgICAgcGFz
X3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcqIHZpZXcpCit7CisgICAgc3RhdGljIGNvbnN0IGJv
b2wgdmVyYm9zZSA9IGZhbHNlOworICAgIAorICAgIHVpbnQ4X3QgdG9wX2luZGV4OworICAgIHVp
bnQ4X3QgbmV4dF90b3BfaW5kZXg7CisKKyAgICBQQVNfVEVTVElOR19BU1NFUlQoY2FjaGUtPmJv
dHRvbV9pbmRleCA8IGNhY2hlLT5jYXBhY2l0eSk7CisgICAgUEFTX1RFU1RJTkdfQVNTRVJUKGNh
Y2hlLT50b3BfaW5kZXggPCBjYWNoZS0+Y2FwYWNpdHkpOworICAgIFBBU19URVNUSU5HX0FTU0VS
VCghcGFzX2xvY2FsX3ZpZXdfY2FjaGVfaXNfZnVsbChjYWNoZSkpOworICAgIFBBU19URVNUSU5H
X0FTU0VSVCh2aWV3KTsKKworICAgIGlmICh2ZXJib3NlKQorICAgICAgICBwYXNfbG9nKCIlcDog
cHVzaGluZyAlcC5cbiIsIGNhY2hlLCB2aWV3KTsKKworICAgIHRvcF9pbmRleCA9IGNhY2hlLT50
b3BfaW5kZXg7CisgICAgbmV4dF90b3BfaW5kZXggPSB0b3BfaW5kZXggKyAxOworICAgIGlmIChu
ZXh0X3RvcF9pbmRleCA+PSBjYWNoZS0+Y2FwYWNpdHkpIHsKKyAgICAgICAgUEFTX1RFU1RJTkdf
QVNTRVJUKG5leHRfdG9wX2luZGV4ID09IGNhY2hlLT5jYXBhY2l0eSk7CisgICAgICAgIG5leHRf
dG9wX2luZGV4ID0gMDsKKyAgICB9CisKKyAgICBpZiAobmV4dF90b3BfaW5kZXggPT0gY2FjaGUt
PmJvdHRvbV9pbmRleCkKKyAgICAgICAgY2FjaGUtPmlzX2Z1bGwgPSB0cnVlOworICAgIAorICAg
IFBBU19URVNUSU5HX0FTU0VSVChwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3
X3B0cl9pc19udWxsKGNhY2hlLT52aWV3cyArIHRvcF9pbmRleCkpOworCisgICAgcGFzX2NvbXBh
Y3Rfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19wdHJfc3RvcmUoY2FjaGUtPnZpZXdzICsgdG9w
X2luZGV4LCB2aWV3KTsKKyAgICBjYWNoZS0+dG9wX2luZGV4ID0gbmV4dF90b3BfaW5kZXg7Cit9
CisKK1BBU19BUEkgdm9pZCBwYXNfbG9jYWxfdmlld19jYWNoZV9tb3ZlKHBhc19sb2NhbF92aWV3
X2NhY2hlKiBkZXN0aW5hdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHBhc19sb2NhbF92aWV3X2NhY2hlKiBzb3VyY2UpOworCitQQVNfQVBJIGJvb2wgcGFzX2xv
Y2FsX3ZpZXdfY2FjaGVfc3RvcChwYXNfbG9jYWxfdmlld19jYWNoZSogY2FjaGUsIHBhc19sb2Nr
X2xvY2tfbW9kZSBwYWdlX2xvY2tfbW9kZSk7CisKK1BBU19FTkRfRVhURVJOX0M7CisKKyNlbmRp
ZiAvKiBQQVNfTE9DQUxfVklFV19DQUNIRV9IICovCisKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF92aWV3X2NhY2hlX25vZGUuYwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfdmlld19jYWNoZV9u
b2RlLmMJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZS5jCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTAg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1
ZGUgInBhc19jb25maWcuaCIKKworI2lmIExJQlBBU19FTkFCTEVECisKKyNpbmNsdWRlICJwYXNf
bG9jYWxfdmlld19jYWNoZV9ub2RlLmgiCisKKyNpbmNsdWRlICJwYXNfaW1tb3J0YWxfaGVhcC5o
IgorCitwYXNfbG9jYWxfdmlld19jYWNoZV9ub2RlKgorcGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm9k
ZV9jcmVhdGUocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSkKK3sKKyAg
ICBwYXNfbG9jYWxfdmlld19jYWNoZV9ub2RlKiByZXN1bHQ7CisKKyAgICByZXN1bHQgPSBwYXNf
aW1tb3J0YWxfaGVhcF9hbGxvY2F0ZSgKKyAgICAgICAgc2l6ZW9mKHBhc19sb2NhbF92aWV3X2Nh
Y2hlX25vZGUpLAorICAgICAgICAicGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZSIsCisgICAgICAg
IHBhc19vYmplY3RfYWxsb2NhdGlvbik7CisKKyAgICBwYXNfY29tcGFjdF9hdG9taWNfdGhyZWFk
X2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX3N0b3JlKCZyZXN1bHQtPm5leHQsIE5VTEwpOworICAg
IHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX3N0b3JlKCZyZXN1bHQt
PmRpcmVjdG9yeSwgZGlyZWN0b3J5KTsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKKyNlbmRp
ZiAvKiBMSUJQQVNfRU5BQkxFRCAqLwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF92aWV3X2NhY2hlX25vZGUuaAkobm9u
ZXhpc3RlbnQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxf
dmlld19jYWNoZV9ub2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAq
IENvcHlyaWdodCAoYykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFBBU19MT0NB
TF9WSUVXX0NBQ0hFX05PREVfSAorI2RlZmluZSBQQVNfTE9DQUxfVklFV19DQUNIRV9OT0RFX0gK
KworI2luY2x1ZGUgInBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyLmgi
CisjaW5jbHVkZSAicGFzX2NvbXBhY3RfYXRvbWljX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRf
bm9kZS5oIgorI2luY2x1ZGUgInBhc19hbGxvY2F0b3JfaW5kZXguaCIKKworUEFTX0JFR0lOX0VY
VEVSTl9DOworCitzdHJ1Y3QgcGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZTsKK3R5cGVkZWYgc3Ry
dWN0IHBhc19sb2NhbF92aWV3X2NhY2hlX25vZGUgcGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZTsK
Kworc3RydWN0IHBhc19sb2NhbF92aWV3X2NhY2hlX25vZGUgeworICAgIHBhc19jb21wYWN0X2F0
b21pY190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgbmV4dDsKKyAgICBwYXNfY29tcGFj
dF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0ciBkaXJlY3Rvcnk7Cit9OworCitQQVNfQVBJ
IHBhc19sb2NhbF92aWV3X2NhY2hlX25vZGUqCitwYXNfbG9jYWxfdmlld19jYWNoZV9ub2RlX2Ny
ZWF0ZShwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KTsKKworUEFTX0VO
RF9FWFRFUk5fQzsKKworI2VuZGlmIC8qIFBBU19MT0NBTF9WSUVXX0NBQ0hFX05PREVfSCAqLwor
CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9ja19mcmVlX3Jl
YWRfcHRyX3B0cl9oYXNodGFibGUuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfbG9ja19mcmVlX3JlYWRfcHRyX3B0cl9oYXNodGFibGUuYwkocmV2
aXNpb24gMjc5OTY0KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xv
Y2tfZnJlZV9yZWFkX3B0cl9wdHJfaGFzaHRhYmxlLmMJKHdvcmtpbmcgY29weSkKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChjKSAyMDE5LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChjKSAyMDE5LTIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMyw2
ICszMywxMCBAQAogI2luY2x1ZGUgInBhc19oYXNodGFibGUuaCIKICNpbmNsdWRlICJwYXNfaGVh
cF9sb2NrLmgiCiAKKyNpZiBQQVNfTE9DS19GUkVFX1JFQURfUFRSX1BUUl9IQVNIVEFCTEVfRU5B
QkxFX0NPTExJU0lPTl9DT1VOVAordWludDY0X3QgcGFzX2xvY2tfZnJlZV9yZWFkX3B0cl9wdHJf
aGFzaHRhYmxlX2NvbGxpc2lvbl9jb3VudDsKKyNlbmRpZiAvKiBQQVNfTE9DS19GUkVFX1JFQURf
UFRSX1BUUl9IQVNIVEFCTEVfRU5BQkxFX0NPTExJU0lPTl9DT1VOVCAqLworCiB2b2lkIHBhc19s
b2NrX2ZyZWVfcmVhZF9wdHJfcHRyX2hhc2h0YWJsZV9zZXQoCiAgICAgcGFzX2xvY2tfZnJlZV9y
ZWFkX3B0cl9wdHJfaGFzaHRhYmxlKiBoYXNodGFibGUsCiAgICAgdW5zaWduZWQgKCpoYXNoX2tl
eSkoY29uc3Qgdm9pZCoga2V5LCB2b2lkKiBhcmcpLApJbmRleDogU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX2xvY2tfZnJlZV9yZWFkX3B0cl9wdHJfaGFzaHRhYmxlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2tfZnJl
ZV9yZWFkX3B0cl9wdHJfaGFzaHRhYmxlLmgJKHJldmlzaW9uIDI3OTk2NCkKKysrIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NrX2ZyZWVfcmVhZF9wdHJfcHRyX2hhc2h0
YWJsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
YykgMjAxOS0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoYykgMjAxOS0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjYsNyArMjYsOSBAQAogI2lmbmRlZiBQQVNfTE9D
S19GUkVFX1JFQURfUFRSX1BUUl9IQVNIVEFCTEVfSAogI2RlZmluZSBQQVNfTE9DS19GUkVFX1JF
QURfUFRSX1BUUl9IQVNIVEFCTEVfSAogCisjaW5jbHVkZSAicGFzX2xvZy5oIgogI2luY2x1ZGUg
InBhc191dGlscy5oIgorI2luY2x1ZGUgPHVuaXN0ZC5oPgogCiBQQVNfQkVHSU5fRVhURVJOX0M7
CiAKQEAgLTUyLDYgKzU0LDEyIEBAIHN0cnVjdCBQQVNfQUxJR05FRChzaXplb2YocGFzX3BhaXIp
KSBwYXMKICAgICAgICAgIC50YWJsZSA9IE5VTEwgXAogICAgICB9KQogCisjZGVmaW5lIFBBU19M
T0NLX0ZSRUVfUkVBRF9QVFJfUFRSX0hBU0hUQUJMRV9FTkFCTEVfQ09MTElTSU9OX0NPVU5UIDAK
KworI2lmIFBBU19MT0NLX0ZSRUVfUkVBRF9QVFJfUFRSX0hBU0hUQUJMRV9FTkFCTEVfQ09MTElT
SU9OX0NPVU5UCitQQVNfQVBJIGV4dGVybiB1aW50NjRfdCBwYXNfbG9ja19mcmVlX3JlYWRfcHRy
X3B0cl9oYXNodGFibGVfY29sbGlzaW9uX2NvdW50OworI2VuZGlmIC8qIFBBU19MT0NLX0ZSRUVf
UkVBRF9QVFJfUFRSX0hBU0hUQUJMRV9FTkFCTEVfQ09MTElTSU9OX0NPVU5UICovCisKIHN0YXRp
YyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKiBwYXNfbG9ja19mcmVlX3JlYWRfcHRyX3B0cl9oYXNo
dGFibGVfZmluZCgKICAgICBwYXNfbG9ja19mcmVlX3JlYWRfcHRyX3B0cl9oYXNodGFibGUqIGhh
c2h0YWJsZSwKICAgICB1bnNpZ25lZCAoKmhhc2hfa2V5KShjb25zdCB2b2lkKiBrZXksIHZvaWQq
IGFyZyksCkBAIC04NSw2ICs5MywyNCBAQCBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCog
cGFzX2xvY2tfCiAKICAgICAgICAgaWYgKGxvYWRlZF9rZXkgPT0gVUlOVFBUUl9NQVgpCiAgICAg
ICAgICAgICByZXR1cm4gTlVMTDsKKworI2lmIFBBU19MT0NLX0ZSRUVfUkVBRF9QVFJfUFRSX0hB
U0hUQUJMRV9FTkFCTEVfQ09MTElTSU9OX0NPVU5UCisgICAgICAgIGZvciAoOzspIHsKKyAgICAg
ICAgICAgIHVpbnQ2NF90IG9sZF9jb2xsaXNpb25fY291bnQ7CisgICAgICAgICAgICB1aW50NjRf
dCBuZXdfY29sbGlzaW9uX2NvdW50OworCisgICAgICAgICAgICBvbGRfY29sbGlzaW9uX2NvdW50
ID0gcGFzX2xvY2tfZnJlZV9yZWFkX3B0cl9wdHJfaGFzaHRhYmxlX2NvbGxpc2lvbl9jb3VudDsK
KyAgICAgICAgICAgIG5ld19jb2xsaXNpb25fY291bnQgPSBvbGRfY29sbGlzaW9uX2NvdW50ICsg
MTsKKworICAgICAgICAgICAgaWYgKHBhc19jb21wYXJlX2FuZF9zd2FwX3VpbnQ2NF93ZWFrKAor
ICAgICAgICAgICAgICAgICAgICAmcGFzX2xvY2tfZnJlZV9yZWFkX3B0cl9wdHJfaGFzaHRhYmxl
X2NvbGxpc2lvbl9jb3VudCwKKyAgICAgICAgICAgICAgICAgICAgb2xkX2NvbGxpc2lvbl9jb3Vu
dCwgbmV3X2NvbGxpc2lvbl9jb3VudCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoIShuZXdfY29s
bGlzaW9uX2NvdW50ICUgMTAwMDApKQorICAgICAgICAgICAgICAgICAgICBwYXNfbG9nKCIlZDog
U2F3ICVsbHUgY29sbGlzaW9ucy5cbiIsIGdldHBpZCgpLCBuZXdfY29sbGlzaW9uX2NvdW50KTsK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorI2VuZGlm
IC8qIFBBU19MT0NLX0ZSRUVfUkVBRF9QVFJfUFRSX0hBU0hUQUJMRV9FTkFCTEVfQ09MTElTSU9O
X0NPVU5UICovCiAgICAgfQogfQogCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfbWFnYXppbmUuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfbWFnYXppbmUuYwkocmV2aXNpb24gMjc5OTY0KQorKysgU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX21hZ2F6aW5lLmMJKG5vbmV4aXN0ZW50KQpAQCAt
MSw1MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
Ci0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4g
Ci0gKi8KLQotI2luY2x1ZGUgInBhc19jb25maWcuaCIKLQotI2lmIExJQlBBU19FTkFCTEVECi0K
LSNpbmNsdWRlICJwYXNfbWFnYXppbmUuaCIKLQotI2luY2x1ZGUgInBhc19pbW1vcnRhbF9oZWFw
LmgiCi0KLXBhc19tYWdhemluZSogcGFzX21hZ2F6aW5lX2NyZWF0ZSh1bnNpZ25lZCBtYWdhemlu
ZV9pbmRleCkKLXsKLSAgICBwYXNfbWFnYXppbmUqIHJlc3VsdDsKLQotICAgIHJlc3VsdCA9IHBh
c19pbW1vcnRhbF9oZWFwX2FsbG9jYXRlKAotICAgICAgICBzaXplb2YocGFzX21hZ2F6aW5lKSwK
LSAgICAgICAgInBhc19tYWdhemluZSIsCi0gICAgICAgIHBhc19vYmplY3RfYWxsb2NhdGlvbik7
Ci0KLSAgICBwYXNfbG9ja19jb25zdHJ1Y3QoJnJlc3VsdC0+bG9jayk7Ci0KLSAgICByZXN1bHQt
Pm1hZ2F6aW5lX2luZGV4ID0gbWFnYXppbmVfaW5kZXg7Ci0KLSAgICByZXR1cm4gcmVzdWx0Owot
fQotCi0jZW5kaWYgLyogTElCUEFTX0VOQUJMRUQgKi8KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19tYWdhemluZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19tYWdhemluZS5oCShyZXZpc2lvbiAyNzk5NjQpCisr
KyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbWFnYXppbmUuaAkobm9uZXhp
c3RlbnQpCkBAIC0xLDU4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMjAtMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKLSAqLwotCi0jaWZuZGVmIFBBU19NQUdBWklORV9ICi0jZGVmaW5lIFBBU19N
QUdBWklORV9ICi0KLSNpbmNsdWRlICJwYXNfbG9jay5oIgotI2luY2x1ZGUgInBhc191dGlscy5o
IgotCi1QQVNfQkVHSU5fRVhURVJOX0M7Ci0KLXN0cnVjdCBwYXNfbWFnYXppbmU7Ci1zdHJ1Y3Qg
cGFzX3RocmVhZF9sb2NhbF9jYWNoZV9ub2RlOwotdHlwZWRlZiBzdHJ1Y3QgcGFzX21hZ2F6aW5l
IHBhc19tYWdhemluZTsKLXR5cGVkZWYgc3RydWN0IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbm9k
ZSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX25vZGU7Ci0KLXN0cnVjdCBwYXNfbWFnYXppbmUgewot
ICAgIC8qIFRoaXMgaXMgdGhlIGxvY2sgdGhhdCB3ZSBiaWFzIHBhZ2VzIHRvLgotICAgICAKLSAg
ICAgICBGb3IgbG9jayBvcmRlcmluZywgd2Ugc2F5IHRoYXQ6Ci0gICAgCi0gICAgICAgLSBNYWdh
emluZSBsb2NrcyBhcmUgYWNxdWlyZWQgYmVmb3JlIHBhZ2Ugb3duZXJzaGlwIGxvY2tzLgotICAg
IAotICAgICAgIC0gTWFnYXppbmUgbG9ja3MgYXJlIGFjcXVpcmVkIGluIHBvaW50ZXItYXMtaW50
ZWdlciBvcmRlciByZWxhdGl2ZSB0byBvbmUgYW5vdGhlci4gKi8KLSAgICBwYXNfbG9jayBsb2Nr
OwotCi0gICAgLyogVGhpcyBnZXRzIHVzZWQgYXMgYW4gaW5kZXggaW4gYmlhc2luZyBkaXJlY3Rv
cmllcy4gKi8KLSAgICB1bnNpZ25lZCBtYWdhemluZV9pbmRleDsKLX07Ci0KLVBBU19BUEkgcGFz
X21hZ2F6aW5lKiBwYXNfbWFnYXppbmVfY3JlYXRlKHVuc2lnbmVkIG1hZ2F6aW5lX2luZGV4KTsK
LQotUEFTX0VORF9FWFRFUk5fQzsKLQotI2VuZGlmIC8qIFBBU19NQUdBWklORV9IICovCi0KSW5k
ZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19wYWdlX2Jhc2VfY29uZmln
X3V0aWxzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX3BhZ2VfYmFzZV9jb25maWdfdXRpbHMuaAkocmV2aXNpb24gMjc5OTY0KQorKysgU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3BhZ2VfYmFzZV9jb25maWdfdXRpbHMuaAko
d29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNyBAQAogCiBQQVNfQkVHSU5fRVhURVJOX0M7CiAK
LSNkZWZpbmUgUEFTX0JBU0lDX1BBR0VfQkFTRV9DT05GSUdfRk9SV0FSRF9ERUNMQVJBVElPTlMo
bmFtZSkgICAgIFwKKyNkZWZpbmUgUEFTX0JBU0lDX1BBR0VfQkFTRV9DT05GSUdfRk9SV0FSRF9E
RUNMQVJBVElPTlMobmFtZSkgXAogICAgIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfcGFn
ZV9iYXNlKiBcCiAgICAgbmFtZSAjIyBfcGFnZV9oZWFkZXJfZm9yX2JvdW5kYXJ5KHZvaWQqIGJv
dW5kYXJ5KTsgXAogICAgIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKiBcCkluZGV4OiBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfcGFnZV9oZWFkZXJfdGFibGUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfcGFnZV9o
ZWFkZXJfdGFibGUuaAkocmV2aXNpb24gMjc5OTY0KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX3BhZ2VfaGVhZGVyX3RhYmxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTU2
LDcgKzU2LDcgQEAgc3RhdGljIGlubGluZSB1bnNpZ25lZCBwYXNfcGFnZV9oZWFkZXJfdAogCiAg
ICAgcGFnZV9zaXplID0gKHNpemVfdClhcmc7CiAKLSAgICByZXR1cm4gKHVuc2lnbmVkKSgodWlu
dHB0cl90KWtleSAvIHBhZ2Vfc2l6ZSk7CisgICAgcmV0dXJuIHBhc19oYXNoMzIoKHVuc2lnbmVk
KSgodWludHB0cl90KWtleSAvIHBhZ2Vfc2l6ZSkpOwogfQogCiBQQVNfQVBJIHBhc19wYWdlX2Jh
c2UqIHBhc19wYWdlX2hlYWRlcl90YWJsZV9hZGQocGFzX3BhZ2VfaGVhZGVyX3RhYmxlKiB0YWJs
ZSwKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19wYWdlX3NoYXJp
bmdfcGFydGljaXBhbnQuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50LmMJKHJldmlzaW9uIDI3OTk2NCkK
KysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19wYWdlX3NoYXJpbmdfcGFy
dGljaXBhbnQuYwkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKGMpIDIwMTktMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKGMpIDIwMTktMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI5LDEzICsyOSwxMiBAQAogCiAjaW5jbHVk
ZSAicGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudC5oIgogCi0jaW5jbHVkZSAicGFzX2JpYXNp
bmdfZGlyZWN0b3J5LmgiCi0jaW5jbHVkZSAicGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5Lmgi
CisjaW5jbHVkZSAicGFzX2JpdGZpdF9kaXJlY3RvcnkuaCIKICNpbmNsdWRlICJwYXNfZXBvY2gu
aCIKICNpbmNsdWRlICJwYXNfaGVhcF9sb2NrLmgiCiAjaW5jbHVkZSAicGFzX2xhcmdlX3NoYXJp
bmdfcG9vbC5oIgogI2luY2x1ZGUgInBhc19wYWdlX3NoYXJpbmdfcG9vbC5oIgotI2luY2x1ZGUg
InBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeS5oIgorI2luY2x1ZGUgInBhc19z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5LmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfc2hh
cmVkX3BhZ2VfZGlyZWN0b3J5LmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnkuaCIKIApAQCAtNjYsOSArNjUsNyBAQCBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50
X2dldF9wYXlsb2FkCiAgICAgICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZGF0
YV90cnlfZ2V0X3NoYXJpbmdfcGF5bG9hZCgKICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2Rp
cmVjdG9yeV9kYXRhX3B0cl9sb2FkKCYoKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeSopcHRyKS0+
ZGF0YSkpOwogICAgIGNhc2UgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9iaXRmaXRfZGly
ZWN0b3J5OgotICAgICAgICByZXR1cm4gJigocGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5Kilw
dHIpLT5waHlzaWNhbF9zaGFyaW5nX3BheWxvYWQ7Ci0gICAgY2FzZSBwYXNfcGFnZV9zaGFyaW5n
X3BhcnRpY2lwYW50X2JpYXNpbmdfZGlyZWN0b3J5OgotICAgICAgICByZXR1cm4gJigocGFzX2Jp
YXNpbmdfZGlyZWN0b3J5KilwdHIpLT5iaWFzX3NoYXJpbmdfcGF5bG9hZC5iYXNlOworICAgICAg
ICByZXR1cm4gJigocGFzX2JpdGZpdF9kaXJlY3RvcnkqKXB0ciktPnBoeXNpY2FsX3NoYXJpbmdf
cGF5bG9hZDsKICAgICBjYXNlIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfbGFyZ2Vfc2hh
cmluZ19wb29sOgogICAgICAgICByZXR1cm4gJnBhc19sYXJnZV9zaGFyaW5nX3BhcnRpY2lwYW50
X3BheWxvYWQuYmFzZTsKICAgICB9CkBAIC05OCw5ICs5NSw3IEBAIHVpbnQ2NF90IHBhc19wYWdl
X3NoYXJpbmdfcGFydGljaXBhbnRfZ2UKICAgICBjYXNlIHBhc19wYWdlX3NoYXJpbmdfcGFydGlj
aXBhbnRfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeToKICAgICAgICAgcmV0dXJuIHBhc19zZWdy
ZWdhdGVkX2RpcmVjdG9yeV9nZXRfdXNlX2Vwb2NoKHB0cik7CiAgICAgY2FzZSBwYXNfcGFnZV9z
aGFyaW5nX3BhcnRpY2lwYW50X2JpdGZpdF9kaXJlY3Rvcnk6Ci0gICAgICAgIHJldHVybiBwYXNf
Yml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfZ2V0X3VzZV9lcG9jaChwdHIpOwotICAgIGNhc2UgcGFz
X3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9iaWFzaW5nX2RpcmVjdG9yeToKLSAgICAgICAgcmV0
dXJuICgocGFzX2JpYXNpbmdfZGlyZWN0b3J5KilwdHIpLT5iaWFzX3NoYXJpbmdfcGF5bG9hZC51
c2VfZXBvY2g7CisgICAgICAgIHJldHVybiBwYXNfYml0Zml0X2RpcmVjdG9yeV9nZXRfdXNlX2Vw
b2NoKHB0cik7CiAgICAgY2FzZSBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2xhcmdlX3No
YXJpbmdfcG9vbDoKICAgICAgICAgcmV0dXJuIHBhc19sYXJnZV9zaGFyaW5nX3BhcnRpY2lwYW50
X3BheWxvYWQudXNlX2Vwb2NoOwogICAgIH0KQEAgLTEyOSw4ICsxMjQsNiBAQCBwYXNfcGFnZV9z
aGFyaW5nX3BhcnRpY2lwYW50X2dldF9wYXJlbnRfCiAgICAgY2FzZSBwYXNfcGFnZV9zaGFyaW5n
X3BhcnRpY2lwYW50X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnk6CiAgICAgY2FzZSBwYXNfcGFn
ZV9zaGFyaW5nX3BhcnRpY2lwYW50X2JpdGZpdF9kaXJlY3Rvcnk6CiAgICAgICAgIHJldHVybiAm
cGFzX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19wb29sOwotICAgIGNhc2UgcGFzX3BhZ2Vfc2hhcmlu
Z19wYXJ0aWNpcGFudF9iaWFzaW5nX2RpcmVjdG9yeToKLSAgICAgICAgcmV0dXJuIHBhc19iaWFz
aW5nX2RpcmVjdG9yeV9nZXRfc2hhcmluZ19wb29sKHB0cik7CiAgICAgY2FzZSBwYXNfcGFnZV9z
aGFyaW5nX3BhcnRpY2lwYW50X2xhcmdlX3NoYXJpbmdfcG9vbDoKICAgICAgICAgcmV0dXJuICZw
YXNfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX3Bvb2w7CiAgICAgfQpAQCAtMTUyLDkgKzE0NSw3IEBA
IGJvb2wgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9pc19lbGkKICAgICBjYXNlIHBhc19w
YWdlX3NoYXJpbmdfcGFydGljaXBhbnRfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeToKICAgICAg
ICAgcmV0dXJuICEhcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dldF9sYXN0X2VtcHR5X3BsdXNf
b25lKHB0cikudmFsdWU7CiAgICAgY2FzZSBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2Jp
dGZpdF9kaXJlY3Rvcnk6Ci0gICAgICAgIHJldHVybiAhISgocGFzX2JpdGZpdF9nbG9iYWxfZGly
ZWN0b3J5KilwdHIpLT5sYXN0X2VtcHR5X3BsdXNfb25lLnZhbHVlOwotICAgIGNhc2UgcGFzX3Bh
Z2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9iaWFzaW5nX2RpcmVjdG9yeToKLSAgICAgICAgcmV0dXJu
ICEhcGFzX2JpYXNpbmdfZGlyZWN0b3J5X3VudXNlZF9zcGFuX3NpemUocHRyKTsKKyAgICAgICAg
cmV0dXJuICEhKChwYXNfYml0Zml0X2RpcmVjdG9yeSopcHRyKS0+bGFzdF9lbXB0eV9wbHVzX29u
ZS52YWx1ZTsKICAgICBjYXNlIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfbGFyZ2Vfc2hh
cmluZ19wb29sOgogICAgICAgICByZXR1cm4gISFwYXNfbGFyZ2Vfc2hhcmluZ19taW5faGVhcF9p
bnN0YW5jZS5zaXplOwogICAgIH0KQEAgLTE3OSw3ICsxNzAsNyBAQCBwYXNfcGFnZV9zaGFyaW5n
X3BhcnRpY2lwYW50X3Rha2VfbGVhc3RfCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAg
CiAgICAgY2FzZSBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3Rvcnk6Ci0gICAgICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJl
Y3RvcnlfdGFrZV9sYXN0X2VtcHR5KAorICAgICAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnlfdGFrZV9sYXN0X2VtcHR5KAogICAgICAgICAgICAgcHRyLCBkZWNvbW1pdF9s
b2csIGhlYXBfbG9ja19ob2xkX21vZGUpOwogCiAgICAgY2FzZSBwYXNfcGFnZV9zaGFyaW5nX3Bh
cnRpY2lwYW50X3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5OgpAQCAtMTg5LDEyICsx
ODAsNyBAQCBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X3Rha2VfbGVhc3RfCiAKICAgICBj
YXNlIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfYml0Zml0X2RpcmVjdG9yeToKICAgICAg
ICAgUEFTX0FTU0VSVChkZWNvbW1pdF9sb2cpOwotICAgICAgICByZXR1cm4gcGFzX2JpdGZpdF9n
bG9iYWxfZGlyZWN0b3J5X3Rha2VfbGFzdF9lbXB0eShwdHIsIGRlY29tbWl0X2xvZywgaGVhcF9s
b2NrX2hvbGRfbW9kZSk7Ci0gICAgICAgIAotICAgIGNhc2UgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0
aWNpcGFudF9iaWFzaW5nX2RpcmVjdG9yeToKLSAgICAgICAgUEFTX0FTU0VSVCghZGVjb21taXRf
bG9nKTsKLSAgICAgICAgUEFTX0FTU0VSVChoZWFwX2xvY2tfaG9sZF9tb2RlID09IHBhc19sb2Nr
X2lzX25vdF9oZWxkKTsKLSAgICAgICAgcmV0dXJuIHBhc19iaWFzaW5nX2RpcmVjdG9yeV90YWtl
X2xhc3RfdW51c2VkKHB0cik7CisgICAgICAgIHJldHVybiBwYXNfYml0Zml0X2RpcmVjdG9yeV90
YWtlX2xhc3RfZW1wdHkocHRyLCBkZWNvbW1pdF9sb2csIGhlYXBfbG9ja19ob2xkX21vZGUpOwog
ICAgICAgICAKICAgICBjYXNlIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfbGFyZ2Vfc2hh
cmluZ19wb29sOgogICAgICAgICBQQVNfQVNTRVJUKGRlY29tbWl0X2xvZyk7CkluZGV4OiBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3Bh
Z2Vfc2hhcmluZ19wYXJ0aWNpcGFudC5oCShyZXZpc2lvbiAyNzk5NjQpCisrKyBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50LmgJKHdv
cmtpbmcgY29weSkKQEAgLTY1LDcgKzY1LDkgQEAgc3RydWN0IHBhc19wYWdlX3NoYXJpbmdfcGFy
dGljaXBhbnRfcGF5bAogICAgICAgIAogICAgICAgIElmIHRoaXMgaXMgdHJ1ZSB0aGVuOgogICAg
ICAgIAotICAgICAgIC0gd2UgbXVzdCBiZSB0cmFja2VkIGFzIGEgZGVsdGEuICovCisgICAgICAg
LSB3ZSBtdXN0IGJlIHRyYWNrZWQgYXMgYSBkZWx0YS4KKyAgICAKKyAgICAgICBGSVhNRTogVGhl
cmUncyBhIHByZXR0eSBvYnZpb3VzIHNpemUgd2luIHRvIGJlIGhhZCBqdXN0IGZyb20gcmVtb3Zp
bmcgdGhpcyBmaWVsZC4gKi8KICAgICBib29sIGRlbHRhX2hhc19iZWVuX25vdGVkOwogfTsKIApJ
bmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3BhZ2Vfc2hhcmluZ19w
YXJ0aWNpcGFudF9raW5kLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9raW5kLmgJKHJldmlzaW9uIDI3
OTk2NCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19wYWdlX3NoYXJp
bmdfcGFydGljaXBhbnRfa2luZC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw3ICszNiw2IEBAIGVu
dW0gcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9raW5kIHsKICAgICBwYXNfcGFnZV9zaGFy
aW5nX3BhcnRpY2lwYW50X3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5LAogICAgIHBh
c19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSwKICAg
ICBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2JpdGZpdF9kaXJlY3RvcnksCi0gICAgcGFz
X3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9iaWFzaW5nX2RpcmVjdG9yeSwKICAgICBwYXNfcGFn
ZV9zaGFyaW5nX3BhcnRpY2lwYW50X2xhcmdlX3NoYXJpbmdfcG9vbAogfTsKIApAQCAtNDksMTQg
KzQ4LDEwIEBAIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfa2luZF9zZWxlY3QKICAgICBw
YXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfa2luZCBkaXJlY3Rvcnlfa2luZCkKIHsKICAgICBzd2l0
Y2ggKGRpcmVjdG9yeV9raW5kKSB7Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3Rvcnlfa2luZDoKKyAgICBjYXNlIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
X2tpbmQ6CiAgICAgICAgIHJldHVybiBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3Rvcnk7CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9zaGFyZWRfcGFn
ZV9kaXJlY3Rvcnlfa2luZDoKICAgICAgICAgcmV0dXJuIHBhc19wYWdlX3NoYXJpbmdfcGFydGlj
aXBhbnRfc2VncmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJlY3Rvcnk7Ci0gICAgY2FzZSBwYXNfc2Vn
cmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeV9raW5kOgotICAgICAgICBQQVNfQVNTRVJUKCEiU2hv
dWxkIG5vdCB1c2Ugc2VncmVnYXRlZCBiaWFzaW5nIGRpcmVjdG9yaWVzIGFzIHNoYXJpbmcgcGFy
dGljaXBhbnRzIGV4Y2VwdCAiCi0gICAgICAgICAgICAgICAgICAgInZpYSB0aGUgYmlhc2luZyBk
aXJlY3RvcnkgYmFzZSIpOwotICAgICAgICByZXR1cm4gcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNp
cGFudF9udWxsOwogICAgIH0KICAgICBQQVNfQVNTRVJUKCEiU2hvdWxkIG5vdCBiZSByZWFjaGVk
Iik7CiAgICAgcmV0dXJuIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfbnVsbDsKQEAgLTc0
LDggKzY5LDYgQEAgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9raW5kX2dldF9zdAogICAg
ICAgICByZXR1cm4gInNlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkiOwogICAgIGNhc2UgcGFzX3Bh
Z2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9iaXRmaXRfZGlyZWN0b3J5OgogICAgICAgICByZXR1cm4g
ImJpdGZpdF9kaXJlY3RvcnkiOwotICAgIGNhc2UgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFu
dF9iaWFzaW5nX2RpcmVjdG9yeToKLSAgICAgICAgcmV0dXJuICJiaWFzaW5nX2RpcmVjdG9yeSI7
CiAgICAgY2FzZSBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2xhcmdlX3NoYXJpbmdfcG9v
bDoKICAgICAgICAgcmV0dXJuICJsYXJnZV9zaGFyaW5nX3Bvb2wiOwogICAgIH0KSW5kZXg6IFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19wYWdlX3NoYXJpbmdfcG9vbC5jCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19wYWdlX3No
YXJpbmdfcG9vbC5jCShyZXZpc2lvbiAyNzk5NjQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfcGFnZV9zaGFyaW5nX3Bvb2wuYwkod29ya2luZyBjb3B5KQpAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTktMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKGMpIDIwMTktMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTcz
OSwxNiArNzM5LDE5IEBAIHZvaWQgcGFzX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2UK
ICAgICBhdG9taWNfYWRkX2JhbGFuY2UoYmFsYW5jZV9hZGRlbmQpOwogfQogCi1wYXNfcGFnZV9z
aGFyaW5nX3Bvb2xfdGFrZV9yZXN1bHQKK3Bhc19wYWdlX3NoYXJpbmdfcG9vbF9zY2F2ZW5nZV9y
ZXN1bHQKIHBhc19waHlzaWNhbF9wYWdlX3NoYXJpbmdfcG9vbF9zY2F2ZW5nZSh1aW50NjRfdCBt
YXhfZXBvY2gpCiB7CiAgICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwotICAg
IAorCiAgICAgcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2VfcmVzdWx0IHRha2VfcmVzdWx0Owog
ICAgIHBhc19waHlzaWNhbF9tZW1vcnlfdHJhbnNhY3Rpb24gdHJhbnNhY3Rpb247CisgICAgc2l6
ZV90IHRvdGFsX2J5dGVzOwogICAgIAogICAgIGlmICh2ZXJib3NlKQogICAgICAgICBwYXNfbG9n
KCJEb2luZyBzY2F2ZW5nZSB1cCB0byAlbGx1XG4iLCBtYXhfZXBvY2gpOworCisgICAgdG90YWxf
Ynl0ZXMgPSAwOwogICAgIAogICAgIHBhc19waHlzaWNhbF9tZW1vcnlfdHJhbnNhY3Rpb25fY29u
c3RydWN0KCZ0cmFuc2FjdGlvbik7CiAgICAgZG8gewpAQCAtNzcyLDYgKzc3NSw4IEBAIHBhc19w
aHlzaWNhbF9wYWdlX3NoYXJpbmdfcG9vbF9zY2F2ZW5nZSgKICAgICAgICAgICAgICAgICAgICAg
ICAgIHBhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtlX3Jlc3VsdF9nZXRfc3RyaW5nKHRha2VfcmVz
dWx0KSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gd2hpbGUgKHRha2VfcmVzdWx0ID09IHBh
c19wYWdlX3NoYXJpbmdfcG9vbF90YWtlX3N1Y2Nlc3MpOworCisgICAgICAgIHRvdGFsX2J5dGVz
ICs9IGRlY29tbWl0X2xvZy50b3RhbDsKICAgICAgICAgCiAgICAgICAgIGZvciAoOzspIHsKICAg
ICAgICAgICAgIGludHB0cl90IGJhbGFuY2U7CkBAIC04MDEsNyArODA2LDcgQEAgcGFzX3BoeXNp
Y2FsX3BhZ2Vfc2hhcmluZ19wb29sX3NjYXZlbmdlKAogICAgIFBBU19BU1NFUlQodGFrZV9yZXN1
bHQgIT0gcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2VfbG9ja3NfdW5hdmFpbGFibGUpOwogICAg
IFBBU19BU1NFUlQodGFrZV9yZXN1bHQgIT0gcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2Vfc3Vj
Y2Vzcyk7CiAgICAgCi0gICAgcmV0dXJuIHRha2VfcmVzdWx0OworICAgIHJldHVybiBwYXNfcGFn
ZV9zaGFyaW5nX3Bvb2xfc2NhdmVuZ2VfcmVzdWx0X2NyZWF0ZSh0YWtlX3Jlc3VsdCwgdG90YWxf
Ynl0ZXMpOwogfQogCiB2b2lkIHBhc19waHlzaWNhbF9wYWdlX3NoYXJpbmdfcG9vbF90YWtlX2xh
dGVyKHNpemVfdCBieXRlcykKQEAgLTg1MSwxOSArODU2LDYgQEAgdm9pZCBwYXNfcGh5c2ljYWxf
cGFnZV9zaGFyaW5nX3Bvb2xfdGFrZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGxvY2tzX2FscmVhZHlfaGVsZCwgbnVtX2xvY2tzX2FscmVhZHlfaGVsZCk7CiB9CiAK
LWJvb2wgcGFzX2JpYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZShwYXNfcGFnZV9zaGFyaW5nX3Bv
b2wqIHBvb2wpCi17Ci0gICAgc3dpdGNoIChwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9sZWFz
dF9yZWNlbnRseV91c2VkKHBvb2wsIE5VTEwsIHBhc19sb2NrX2lzX25vdF9oZWxkLCAwKSkgewot
ICAgIGNhc2UgcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2Vfbm9uZV9hdmFpbGFibGU6Ci0gICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICBjYXNlIHBhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtlX3N1
Y2Nlc3M6Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIFBBU19B
U1NFUlQoISJTaG91bGQgbm90IGJlIHJlYWNoZWQiKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIH0KLX0KLQogdm9pZCBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfZGlkX2NyZWF0ZV9kZWx0YShw
YXNfcGFnZV9zaGFyaW5nX3Bvb2wqIHBvb2wsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnQgcGFydGljaXBhbnQp
CiB7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfcGFnZV9zaGFy
aW5nX3Bvb2wuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfcGFnZV9zaGFyaW5nX3Bvb2wuaAkocmV2aXNpb24gMjc5OTY0KQorKysgU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3BhZ2Vfc2hhcmluZ19wb29sLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJwYXNfbG9jay5oIgogI2luY2x1ZGUg
InBhc19taW5faGVhcC5oIgogI2luY2x1ZGUgInBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnQu
aCIKKyNpbmNsdWRlICJwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfc2NhdmVuZ2VfcmVzdWx0LmgiCiAj
aW5jbHVkZSAicGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2VfcmVzdWx0LmgiCiAjaW5jbHVkZSAi
cGFzX3NlZ21lbnRlZF92ZWN0b3IuaCIKICNpbmNsdWRlICJwYXNfdXRpbHMuaCIKQEAgLTEyMSw3
ICsxMjIsNyBAQCBQQVNfQVBJIHZvaWQgcGFzX3BhZ2Vfc2hhcmluZ19wb29sX2FkZChwCiAKIC8q
IFRoaXMgaXMgdGhlIGxvdy1sZXZlbCBpbnRlcmZhY2UgZm9yIHRha2luZyB0aGluZ3MgZnJvbSB0
aGUgc2hhcmluZyBwb29sLiBVc3VhbGx5IHlvdSB3YW50IHRvIGNhbGwKICAgIHBhc19waHlzaWNh
bF9wYWdlX3NoYXJpbmdfcG9vbF90YWtlLCBwYXNfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX3Bvb2xf
c2NhdmVuZ2UsCi0gICBwYXNfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9mb3JfcGFn
ZV9jb25maWcsIG9yIHBhc19iaWFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2UuCisgICBvciBwYXNf
cGh5c2ljYWxfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9mb3JfcGFnZV9jb25maWcuCiAgICAKICAg
IFRoaXMganVzdCB0YWtlcyB0aGUgbGVhc3QgcmVjZW50bHkgdXNlZCBwaWVjZSBvZiBtZW1vcnkg
KGNvdWxkIGJlIGEgcGFnZSwgYSBzcGFuIG9mIG11bHRpcGxlIHBhZ2VzLAogICAgb3IgZXZlbiBh
IHNldCBvZiBkaXNqb2ludCBwYWdlcykuIFRoZSBhbW91bnQgb2YgbWVtb3J5IHJldHVybmVkIGlz
IGdvaW5nIHRvIGJlIHdoYXRldmVyIGlzCkBAIC0xNTAsNyArMTUxLDcgQEAgUEFTX0FQSSB2b2lk
IHBhc19waHlzaWNhbF9wYWdlX3NoYXJpbmdfcAogICAgIHNpemVfdCBudW1fbG9ja3NfYWxyZWFk
eV9oZWxkKTsKIAogLyogVGhpcyByZXR1cm5zIHRoZSBleGN1c2UgZm9yIHdoeSBpdCBzdG9wcGVk
IHNjYXZlbmdpbmcuICovCi1QQVNfQVBJIHBhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtlX3Jlc3Vs
dAorUEFTX0FQSSBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfc2NhdmVuZ2VfcmVzdWx0CiBwYXNfcGh5
c2ljYWxfcGFnZV9zaGFyaW5nX3Bvb2xfc2NhdmVuZ2UodWludDY0X3QgbWF4X2Vwb2NoKTsKIAog
UEFTX0FQSSB2b2lkIHBhc19waHlzaWNhbF9wYWdlX3NoYXJpbmdfcG9vbF90YWtlX2xhdGVyKHNp
emVfdCBieXRlcyk7CkBAIC0xNjMsOCArMTY0LDYgQEAgUEFTX0FQSSB2b2lkIHBhc19waHlzaWNh
bF9wYWdlX3NoYXJpbmdfcAogICAgIHBhc19sb2NrKiogbG9ja3NfYWxyZWFkeV9oZWxkLAogICAg
IHNpemVfdCBudW1fbG9ja3NfYWxyZWFkeV9oZWxkKTsKIAotUEFTX0FQSSBib29sIHBhc19iaWFz
X3BhZ2Vfc2hhcmluZ19wb29sX3Rha2UocGFzX3BhZ2Vfc2hhcmluZ19wb29sKiBwb29sKTsKLQog
UEFTX0FQSSB2b2lkIHBhc19wYWdlX3NoYXJpbmdfcG9vbF9kaWRfY3JlYXRlX2RlbHRhKHBhc19w
YWdlX3NoYXJpbmdfcG9vbCogcG9vbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50IHBhcnRpY2lw
YW50KTsKIApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3BhZ2Vf
c2hhcmluZ19wb29sX3NjYXZlbmdlX3Jlc3VsdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19wYWdlX3NoYXJpbmdfcG9vbF9zY2F2ZW5nZV9yZXN1
bHQuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfcGFnZV9zaGFyaW5nX3Bvb2xfc2NhdmVuZ2VfcmVzdWx0LmgJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAq
LworCisjaWZuZGVmIFBBU19QQUdFX1NIQVJJTkdfUE9PTF9TQ0FWRU5HRV9SRVNVTFRfSAorI2Rl
ZmluZSBQQVNfUEFHRV9TSEFSSU5HX1BPT0xfU0NBVkVOR0VfUkVTVUxUX0gKKworI2luY2x1ZGUg
InBhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtlX3Jlc3VsdC5oIgorCitQQVNfQkVHSU5fRVhURVJO
X0M7CisKK3N0cnVjdCBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfc2NhdmVuZ2VfcmVzdWx0OwordHlw
ZWRlZiBzdHJ1Y3QgcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3NjYXZlbmdlX3Jlc3VsdCBwYXNfcGFn
ZV9zaGFyaW5nX3Bvb2xfc2NhdmVuZ2VfcmVzdWx0OworCitzdHJ1Y3QgcGFzX3BhZ2Vfc2hhcmlu
Z19wb29sX3NjYXZlbmdlX3Jlc3VsdCB7CisgICAgcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2Vf
cmVzdWx0IHRha2VfcmVzdWx0OworICAgIHNpemVfdCB0b3RhbF9ieXRlczsKK307CisKK3N0YXRp
YyBpbmxpbmUgcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3NjYXZlbmdlX3Jlc3VsdCBwYXNfcGFnZV9z
aGFyaW5nX3Bvb2xfc2NhdmVuZ2VfcmVzdWx0X2NyZWF0ZSgKKyAgICBwYXNfcGFnZV9zaGFyaW5n
X3Bvb2xfdGFrZV9yZXN1bHQgdGFrZV9yZXN1bHQsCisgICAgc2l6ZV90IHRvdGFsX2J5dGVzKQor
eworICAgIHBhc19wYWdlX3NoYXJpbmdfcG9vbF9zY2F2ZW5nZV9yZXN1bHQgcmVzdWx0OworICAg
IHJlc3VsdC50YWtlX3Jlc3VsdCA9IHRha2VfcmVzdWx0OworICAgIHJlc3VsdC50b3RhbF9ieXRl
cyA9IHRvdGFsX2J5dGVzOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK1BBU19FTkRfRVhURVJO
X0M7CisKKyNlbmRpZiAvKiBQQVNfUEFHRV9TSEFSSU5HX1BPT0xfU0NBVkVOR0VfUkVTVUxUX0gg
Ki8KKwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3JlZHVuZGFu
dF9sb2NhbF9hbGxvY2F0b3Jfbm9kZS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19yZWR1bmRhbnRfbG9jYWxfYWxsb2NhdG9yX25vZGUuYwkocmV2
aXNpb24gMjc5OTY0KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3Jl
ZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZS5jCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw3ICsz
Miw3IEBACiAjaW5jbHVkZSAicGFzX2ltbW9ydGFsX2hlYXAuaCIKIAogcGFzX3JlZHVuZGFudF9s
b2NhbF9hbGxvY2F0b3Jfbm9kZSoKLXBhc19yZWR1bmRhbnRfbG9jYWxfYWxsb2NhdG9yX25vZGVf
Y3JlYXRlKHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KQor
cGFzX3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZV9jcmVhdGUocGFzX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSkKIHsKICAgICBwYXNfcmVkdW5kYW50X2xvY2FsX2Fs
bG9jYXRvcl9ub2RlKiByZXN1bHQ7CiAKQEAgLTQyLDcgKzQyLDcgQEAgcGFzX3JlZHVuZGFudF9s
b2NhbF9hbGxvY2F0b3Jfbm9kZV9jcmVhdAogICAgICAgICBwYXNfb2JqZWN0X2FsbG9jYXRpb24p
OwogCiAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9k
ZV9zdG9yZSgmcmVzdWx0LT5uZXh0LCBOVUxMKTsKLSAgICBwYXNfY29tcGFjdF9zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfc3RvcmUoJnJlc3VsdC0+ZGlyZWN0b3J5LCBkaXJl
Y3RvcnkpOworICAgIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX3N0
b3JlKCZyZXN1bHQtPmRpcmVjdG9yeSwgZGlyZWN0b3J5KTsKICAgICByZXN1bHQtPmFsbG9jYXRv
cl9pbmRleCA9IChwYXNfYWxsb2NhdG9yX2luZGV4KVVJTlRfTUFYOwogCiAgICAgcmV0dXJuIHJl
c3VsdDsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19yZWR1bmRh
bnRfbG9jYWxfYWxsb2NhdG9yX25vZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfcmVkdW5kYW50X2xvY2FsX2FsbG9jYXRvcl9ub2RlLmgJKHJl
dmlzaW9uIDI3OTk2NCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19y
ZWR1bmRhbnRfbG9jYWxfYWxsb2NhdG9yX25vZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsNyAr
MjYsNyBAQAogI2lmbmRlZiBQQVNfUkVEVU5EQU5UX0xPQ0FMX0FMTE9DQVRPUl9OT0RFX0gKICNk
ZWZpbmUgUEFTX1JFRFVOREFOVF9MT0NBTF9BTExPQ0FUT1JfTk9ERV9ICiAKLSNpbmNsdWRlICJw
YXNfY29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHIuaCIKKyNpbmNs
dWRlICJwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0ci5oIgogI2luY2x1
ZGUgInBhc19jb21wYWN0X2F0b21pY190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUuaCIK
ICNpbmNsdWRlICJwYXNfYWxsb2NhdG9yX2luZGV4LmgiCiAKQEAgLTM3LDEyICszNywxMiBAQCB0
eXBlZGVmIHN0cnVjdCBwYXNfcmVkdW5kYW50X2xvY2FsX2FsbG9jCiAKIHN0cnVjdCBwYXNfcmVk
dW5kYW50X2xvY2FsX2FsbG9jYXRvcl9ub2RlIHsKICAgICBwYXNfY29tcGFjdF9hdG9taWNfdGhy
ZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIG5leHQ7Ci0gICAgcGFzX2NvbXBhY3Rfc2VncmVn
YXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyIGRpcmVjdG9yeTsKKyAgICBwYXNfY29tcGFj
dF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0ciBkaXJlY3Rvcnk7CiAgICAgcGFzX2FsbG9j
YXRvcl9pbmRleCBhbGxvY2F0b3JfaW5kZXg7CiB9OwogCiBQQVNfQVBJIHBhc19yZWR1bmRhbnRf
bG9jYWxfYWxsb2NhdG9yX25vZGUqCi1wYXNfcmVkdW5kYW50X2xvY2FsX2FsbG9jYXRvcl9ub2Rl
X2NyZWF0ZShwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7
CitwYXNfcmVkdW5kYW50X2xvY2FsX2FsbG9jYXRvcl9ub2RlX2NyZWF0ZShwYXNfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KTsKIAogUEFTX0VORF9FWFRFUk5fQzsKIApJbmRl
eDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NjYXZlbmdlci5jCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zY2F2ZW5nZXIu
YwkocmV2aXNpb24gMjc5OTY0KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX3NjYXZlbmdlci5jCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw2IEBACiAjaW5jbHVk
ZSAicGFzX3NjYXZlbmdlci5oIgogCiAjaW5jbHVkZSA8bWF0aC5oPgotI2luY2x1ZGUgInBhc19h
bGxfYmlhc2luZ19kaXJlY3Rvcmllcy5oIgogI2luY2x1ZGUgInBhc19hbGxfaGVhcHMuaCIKICNp
bmNsdWRlICJwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX3RhYmxlLmgiCiAjaW5jbHVkZSAicGFzX2Rl
ZmVycmVkX2RlY29tbWl0X2xvZy5oIgpAQCAtNDUsNiArNDQsNyBAQAogI2luY2x1ZGUgInBhc191
dGlsaXR5X2hlYXAuaCIKICNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgPHN5cy90aW1lLmg+
CisjaW5jbHVkZSA8dW5pc3RkLmg+CiAKIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxz
ZTsKIApAQCAtMTQwLDcgKzE0MCw2IEBAIHN0YXRpYyB2b2lkKiBzY2F2ZW5nZXJfdGhyZWFkX21h
aW4odm9pZCoKIAogICAgIGlmICh2ZXJib3NlKQogICAgICAgICBwYXNfbG9nKCJTY2F2ZW5nZXIg
aXMgcnVubmluZyBpbiB0aHJlYWQgJXBcbiIsIHB0aHJlYWRfc2VsZigpKTsKLSAgICBwdGhyZWFk
X3NldG5hbWVfbnAoIkphdmFTY3JpcHRDb3JlIGxpYnBhcyBzY2F2ZW5nZXIiKTsKIAogICAgIGRp
ZF9zdGFydF9jYWxsYmFjayA9IHBhc19zY2F2ZW5nZXJfZGlkX3N0YXJ0X2NhbGxiYWNrOwogICAg
IGlmIChkaWRfc3RhcnRfY2FsbGJhY2spCkBAIC0xNDksNyArMTQ4LDcgQEAgc3RhdGljIHZvaWQq
IHNjYXZlbmdlcl90aHJlYWRfbWFpbih2b2lkKgogICAgIGRhdGEgPSBlbnN1cmVfZGF0YV9pbnN0
YW5jZShwYXNfbG9ja19pc19ub3RfaGVsZCk7CiAgICAgCiAgICAgZm9yICg7OykgewotICAgICAg
ICBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9yZXN1bHQgdGFrZV9yZXN1bHQ7CisgICAgICAg
IHBhc19wYWdlX3NoYXJpbmdfcG9vbF9zY2F2ZW5nZV9yZXN1bHQgc2NhdmVuZ2VfcmVzdWx0Owog
ICAgICAgICBib29sIHNob3VsZF9zaHV0X2Rvd247CiAgICAgICAgIGRvdWJsZSB0aW1lX2luX21p
bGxpc2Vjb25kczsKICAgICAgICAgZG91YmxlIGFic29sdXRlX3RpbWVvdXRfaW5fbWlsbGlzZWNv
bmRzX2Zvcl9wZXJpb2Rfc2xlZXA7CkBAIC0xNjYsNiArMTY1LDE0IEBAIHN0YXRpYyB2b2lkKiBz
Y2F2ZW5nZXJfdGhyZWFkX21haW4odm9pZCoKICAgICAgICAgCiAgICAgICAgIGlmICh2ZXJib3Nl
KQogICAgICAgICAgICAgcHJpbnRmKCJTY2F2ZW5nZXIgaXMgcnVubmluZy5cbiIpOworCisjaWYg
UEFTX0xPQ0FMX0FMTE9DQVRPUl9NRUFTVVJFX1JFRklMTF9FRkZJQ0lFTkNZCisgICAgICAgIHBh
c19sb2NhbF9hbGxvY2F0b3JfcmVmaWxsX2VmZmljaWVuY3lfbG9ja19sb2NrKCk7CisgICAgICAg
IHBhc19sb2coIiVkOiBSZWZpbGwgZWZmaWNpZW5jeTogJWxmXG4iLAorICAgICAgICAgICAgICAg
IGdldHBpZCgpLAorICAgICAgICAgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVmaWxsX2Vm
ZmljaWVuY3lfc3VtIC8gcGFzX2xvY2FsX2FsbG9jYXRvcl9yZWZpbGxfZWZmaWNpZW5jeV9uKTsK
KyAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZWZpbGxfZWZmaWNpZW5jeV9sb2NrX3VubG9j
aygpOworI2VuZGlmIC8qIFBBU19MT0NBTF9BTExPQ0FUT1JfTUVBU1VSRV9SRUZJTExfRUZGSUNJ
RU5DWSAqLwogICAgICAgICAKICAgICAgICAgc2hvdWxkX2dvX2FnYWluIHw9CiAgICAgICAgICAg
ICBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX3RhYmxlX2Zvcl9hbGwocGFzX2FsbG9jYXRvcl9zY2F2
ZW5nZV9yZXF1ZXN0X3N0b3BfYWN0aW9uKTsKQEAgLTE3NiwxMSArMTgzLDkgQEAgc3RhdGljIHZv
aWQqIHNjYXZlbmdlcl90aHJlYWRfbWFpbih2b2lkKgogICAgICAgICAKICAgICAgICAgc2hvdWxk
X2dvX2FnYWluIHw9CiAgICAgICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2Zvcl9hbGwo
cGFzX2FsbG9jYXRvcl9zY2F2ZW5nZV9yZXF1ZXN0X3N0b3BfYWN0aW9uLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19kZWFsbG9jYXRvcl9zY2F2ZW5nZV9m
bHVzaF9sb2dfYWN0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHBhc19kZWFsbG9jYXRvcl9zY2F2ZW5nZV9mbHVzaF9sb2dfaWZfY2xlYW5fYWN0aW9uLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19sb2NrX2lzX25v
dF9oZWxkKTsKIAotICAgICAgICBzaG91bGRfZ29fYWdhaW4gfD0gcGFzX2FsbF9iaWFzaW5nX2Rp
cmVjdG9yaWVzX3NjYXZlbmdlKCk7Ci0KICAgICAgICAgLyogRm9yIHRoZSBwdXJwb3NlcyBvZiBw
ZXJmb3JtYW5jZSB0dW5pbmcsIGFzIHdlbGwgYXMgc29tZSBvZiB0aGUgc2NhdmVuZ2VyIHRlc3Rz
LCB0aGUgZXBvY2gKICAgICAgICAgICAgaXMgdGltZSBpbiBuYW5vc2Vjb25kcy4KICAgICAgICAg
ICAgCkBAIC0xOTgsOCArMjAzLDkgQEAgc3RhdGljIHZvaWQqIHNjYXZlbmdlcl90aHJlYWRfbWFp
bih2b2lkKgogICAgICAgICBpZiAodmVyYm9zZSkKICAgICAgICAgICAgIHBhc19sb2coImVwb2No
ID0gJWxsdSwgZGVsdGEgPSAlbGx1LCBtYXhfZXBvY2ggPSAlbGx1XG4iLCBlcG9jaCwgZGVsdGEs
IG1heF9lcG9jaCk7CiAKLSAgICAgICAgdGFrZV9yZXN1bHQgPSBwYXNfcGh5c2ljYWxfcGFnZV9z
aGFyaW5nX3Bvb2xfc2NhdmVuZ2UobWF4X2Vwb2NoKTsKLSAgICAgICAgc3dpdGNoICh0YWtlX3Jl
c3VsdCkgeworICAgICAgICBzY2F2ZW5nZV9yZXN1bHQgPSBwYXNfcGh5c2ljYWxfcGFnZV9zaGFy
aW5nX3Bvb2xfc2NhdmVuZ2UobWF4X2Vwb2NoKTsKKworICAgICAgICBzd2l0Y2ggKHNjYXZlbmdl
X3Jlc3VsdC50YWtlX3Jlc3VsdCkgewogICAgICAgICBjYXNlIHBhc19wYWdlX3NoYXJpbmdfcG9v
bF90YWtlX25vbmVfYXZhaWxhYmxlOgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAK
QEAgLTIxNiw2ICsyMjIsMTMgQEAgc3RhdGljIHZvaWQqIHNjYXZlbmdlcl90aHJlYWRfbWFpbih2
b2lkKgogICAgICAgICAgICAgUEFTX0FTU0VSVCghIlNob3VsZCBub3Qgc2VlIHBhc19wYWdlX3No
YXJpbmdfcG9vbF90YWtlX2xvY2tzX3VuYXZhaWxhYmxlLiIpOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIH0gfQorCisgICAgICAgIGlmICh2ZXJib3NlKSB7CisgICAgICAgICAgICBwYXNf
bG9nKCIlZDogJS4wbGY6IHNjYXZlbmdlciBmcmVlZCAlenUgYnl0ZXMgKCVzLCBzaG91bGRfZ29f
YWdhaW4gPSAlcykuXG4iLAorICAgICAgICAgICAgICAgICAgICBnZXRwaWQoKSwgZ2V0X3RpbWVf
aW5fbWlsbGlzZWNvbmRzKCksIHNjYXZlbmdlX3Jlc3VsdC50b3RhbF9ieXRlcywKKyAgICAgICAg
ICAgICAgICAgICAgcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2VfcmVzdWx0X2dldF9zdHJpbmco
c2NhdmVuZ2VfcmVzdWx0LnRha2VfcmVzdWx0KSwKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxk
X2dvX2FnYWluID8gInllcyIgOiAibm8iKTsKKyAgICAgICAgfQogICAgICAgICAKICAgICAgICAg
Y29tcGxldGlvbl9jYWxsYmFjayA9IHBhc19zY2F2ZW5nZXJfY29tcGxldGlvbl9jYWxsYmFjazsK
ICAgICAgICAgaWYgKGNvbXBsZXRpb25fY2FsbGJhY2spCkBAIC0yNDEsNyArMjU0LDEwIEBAIHN0
YXRpYyB2b2lkKiBzY2F2ZW5nZXJfdGhyZWFkX21haW4odm9pZCoKICAgICAgICAgICAgIGlmICh2
ZXJib3NlKQogICAgICAgICAgICAgICAgIHByaW50ZigiV2FpdGluZyBmb3IgYSBwZXJpb2QuXG4i
KTsKIAotICAgICAgICAgICAgcGFzX3NjYXZlbmdlcl9jdXJyZW50X3N0YXRlID0gcGFzX3NjYXZl
bmdlcl9zdGF0ZV9wb2xsaW5nOworICAgICAgICAgICAgLyogVGhpcyBmaWVsZCBpcyBhY2Nlc3Nl
ZCBhIGxvdCBieSBvdGhlciB0aHJlYWRzLCBzbyBkb24ndCB3cml0ZSB0byBpdCBpZiB3ZSBkb24n
dAorICAgICAgICAgICAgICAgaGF2ZSB0by4gKi8KKyAgICAgICAgICAgIGlmIChwYXNfc2NhdmVu
Z2VyX2N1cnJlbnRfc3RhdGUgIT0gcGFzX3NjYXZlbmdlcl9zdGF0ZV9wb2xsaW5nKQorICAgICAg
ICAgICAgICAgIHBhc19zY2F2ZW5nZXJfY3VycmVudF9zdGF0ZSA9IHBhc19zY2F2ZW5nZXJfc3Rh
dGVfcG9sbGluZzsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGRvdWJsZSBhYnNvbHV0
ZV90aW1lb3V0X2luX21pbGxpc2Vjb25kc19mb3JfZGVlcF9wcmVfc2xlZXA7CiAgICAgICAgICAg
ICAKQEAgLTQyNSwxMSArNDQxLDExIEBAIHZvaWQgcGFzX3NjYXZlbmdlcl9jbGVhcl9hbGxfY2Fj
aGVzX2V4Y2UKIHsKICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiBjYWNoZTsKICAgICAKLSAg
ICBwYXNfc2NhdmVuZ2VyX2NsZWFyX2FsbF9ub25fdGxjX2NhY2hlcygpOwotCiAgICAgY2FjaGUg
PSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3RyeV9nZXQoKTsKICAgICBpZiAoY2FjaGUpCiAgICAg
ICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfc2hyaW5rKGNhY2hlLCBwYXNfbG9ja19pc19ub3Rf
aGVsZCk7CisKKyAgICBwYXNfc2NhdmVuZ2VyX2NsZWFyX2FsbF9ub25fdGxjX2NhY2hlcygpOwog
fQogCiB2b2lkIHBhc19zY2F2ZW5nZXJfY2xlYXJfYWxsX2NhY2hlcyh2b2lkKQpAQCAtNDQxLDEz
ICs0NTcsMTUgQEAgdm9pZCBwYXNfc2NhdmVuZ2VyX2NsZWFyX2FsbF9jYWNoZXModm9pZAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfbG9ja19pc19ub3RfaGVsZCk7CiB9
CiAKLXZvaWQgcGFzX3NjYXZlbmdlcl9kZWNvbW1pdF9mcmVlX21lbW9yeSh2b2lkKQorc2l6ZV90
IHBhc19zY2F2ZW5nZXJfZGVjb21taXRfZnJlZV9tZW1vcnkodm9pZCkKIHsKLSAgICBwYXNfcGFn
ZV9zaGFyaW5nX3Bvb2xfdGFrZV9yZXN1bHQgcmVzdWx0OworICAgIHBhc19wYWdlX3NoYXJpbmdf
cG9vbF9zY2F2ZW5nZV9yZXN1bHQgcmVzdWx0OwogCiAgICAgcmVzdWx0ID0gcGFzX3BoeXNpY2Fs
X3BhZ2Vfc2hhcmluZ19wb29sX3NjYXZlbmdlKFBBU19FUE9DSF9NQVgpOwogICAgIAotICAgIFBB
U19BU1NFUlQocmVzdWx0ID09IHBhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtlX25vbmVfYXZhaWxh
YmxlKTsKKyAgICBQQVNfQVNTRVJUKHJlc3VsdC50YWtlX3Jlc3VsdCA9PSBwYXNfcGFnZV9zaGFy
aW5nX3Bvb2xfdGFrZV9ub25lX2F2YWlsYWJsZSk7CisKKyAgICByZXR1cm4gcmVzdWx0LnRvdGFs
X2J5dGVzOwogfQogCiB2b2lkIHBhc19zY2F2ZW5nZXJfcnVuX3N5bmNocm9ub3VzbHlfbm93KHZv
aWQpCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2NhdmVuZ2Vy
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3Nj
YXZlbmdlci5oCShyZXZpc2lvbiAyNzk5NjQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfc2NhdmVuZ2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTk4LDcgKzk4LDcgQEAg
UEFTX0FQSSB2b2lkIHBhc19zY2F2ZW5nZXJfcmVzdW1lKHZvaWQpOwogUEFTX0FQSSB2b2lkIHBh
c19zY2F2ZW5nZXJfY2xlYXJfYWxsX25vbl90bGNfY2FjaGVzKHZvaWQpOwogUEFTX0FQSSB2b2lk
IHBhc19zY2F2ZW5nZXJfY2xlYXJfYWxsX2NhY2hlc19leGNlcHRfcmVtb3RlX3RsY3Modm9pZCk7
CiBQQVNfQVBJIHZvaWQgcGFzX3NjYXZlbmdlcl9jbGVhcl9hbGxfY2FjaGVzKHZvaWQpOwotUEFT
X0FQSSB2b2lkIHBhc19zY2F2ZW5nZXJfZGVjb21taXRfZnJlZV9tZW1vcnkodm9pZCk7CitQQVNf
QVBJIHNpemVfdCBwYXNfc2NhdmVuZ2VyX2RlY29tbWl0X2ZyZWVfbWVtb3J5KHZvaWQpOwogCiBQ
QVNfQVBJIHZvaWQgcGFzX3NjYXZlbmdlcl9ydW5fc3luY2hyb25vdXNseV9ub3codm9pZCk7CiAK
SW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2Jp
YXNpbmdfZGlyZWN0b3J5LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkuYwkocmV2aXNpb24gMjc5
OTY0KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRf
Ymlhc2luZ19kaXJlY3RvcnkuYwkobm9uZXhpc3RlbnQpCkBAIC0xLDI2MiArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChjKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0g
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUg
InBhc19jb25maWcuaCIKLQotI2lmIExJQlBBU19FTkFCTEVECi0KLSNpbmNsdWRlICJwYXNfc2Vn
cmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeS5oIgotCi0jaW5jbHVkZSAicGFzX2FsbF9iaWFzaW5n
X2RpcmVjdG9yaWVzLmgiCi0jaW5jbHVkZSAicGFzX2Vwb2NoLmgiCi0jaW5jbHVkZSAicGFzX3Bh
Z2Vfc2hhcmluZ19wb29sLmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3
LmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcuaCIKLSNpbmNsdWRl
ICJwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkuaCIKLSNpbmNsdWRlICJwYXNf
c2VncmVnYXRlZF9wYWdlX2lubGluZXMuaCIKLSNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeV9pbmxpbmVzLmgiCi0KLXBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5
KiBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeV9jcmVhdGUoCi0gICAgcGFzX3NlZ3Jl
Z2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBwYXJlbnRfZ2xvYmFsLCB1bnNpZ25lZCBtYWdh
emluZV9pbmRleCkKLXsKLSAgICBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeSogcmVz
dWx0OwotICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnKiBwYWdlX2NvbmZpZzsKLQotICAg
IC8qIFRoaXMgY3JlYXRlcyBhIGJpYXNpbmcgZGlyZWN0b3J5IHdpdGgganVzdCBpbmRleF9pbl9h
bGwgaW5pdGlhbGl6ZWQgYW5kIGV2ZXJ5dGhpbmcgZWxzZQotICAgICAgIHplcm9lZC4gKi8KLSAg
ICByZXN1bHQgPSBwYXNfaW1tb3J0YWxfaGVhcF9hbGxvY2F0ZV93aXRoX2FsaWdubWVudCgKLSAg
ICAgICAgc2l6ZW9mKHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5KSwKLSAgICAgICAg
YWxpZ25vZihwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeSksCi0gICAgICAgICJwYXNf
c2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeSIsCi0gICAgICAgIHBhc19vYmplY3RfYWxsb2Nh
dGlvbik7Ci0KLSAgICBwYWdlX2NvbmZpZyA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tp
bmRfZ2V0X2NvbmZpZyhwYXJlbnRfZ2xvYmFsLT5iYXNlLnBhZ2VfY29uZmlnX2tpbmQpOwotICAg
IFBBU19BU1NFUlQocGFnZV9jb25maWcpOwotCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnlfY29uc3RydWN0KAotICAgICAgICAmcmVzdWx0LT5iYXNlLCBwYWdlX2NvbmZpZy0+a2lu
ZCwKLSAgICAgICAgcGFzX2RvX25vdF9zaGFyZV9wYWdlcywKLSAgICAgICAgcGFzX3NlZ3JlZ2F0
ZWRfYmlhc2luZ19kaXJlY3Rvcnlfa2luZCk7Ci0KLSAgICBwYXNfY29tcGFjdF9zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfc3RvcmUoJnJlc3VsdC0+cGFyZW50X2dsb2JhbCwg
cGFyZW50X2dsb2JhbCk7Ci0KLSAgICBwYXNfYmlhc2luZ19kaXJlY3RvcnlfY29uc3RydWN0KAot
ICAgICAgICAmcmVzdWx0LT5iaWFzaW5nX2Jhc2UsIHBhc19iaWFzaW5nX2RpcmVjdG9yeV9zZWdy
ZWdhdGVkX2tpbmQsIG1hZ2F6aW5lX2luZGV4KTsKLQotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0K
LXN0YXRpYyB2b2lkIHRha2VfZmlyc3RfZWxpZ2libGVfbG9vcF9oZWFkX2NhbGxiYWNrKHBhc19z
ZWdyZWdhdGVkX2RpcmVjdG9yeSogZGlyZWN0b3J5KQotewotICAgIC8qIE5vdGhpbmcgdG8gZG8g
Zm9yIGJpYXNpbmcgZGlyZWN0b3JpZXMuIFRoaXMgY2FsbGJhY2sgaXMgbWVhbmluZ2Z1bCBmb3Ig
Z2xvYmFsIHNpemUgZGlyZWN0b3JpZXMsCi0gICAgICAgd2hpY2ggdXNlIGl0IHRvIHRha2UgZnJv
bSB0aGUgYmlhc2luZyBwb29sLiAqLwotICAgIFBBU19VTlVTRURfUEFSQU0oZGlyZWN0b3J5KTsK
LX0KLQotc3RhdGljIHBhc19zZWdyZWdhdGVkX3ZpZXcgdGFrZV9maXJzdF9lbGlnaWJsZV9jcmVh
dGVfbmV3X3ZpZXdfY2FsbGJhY2soCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2l0ZXJh
dGVfY29uZmlnKiBjb25maWcpCi17Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3Rv
cnkqIGJpYXNpbmdfZGlyZWN0b3J5OwotCi0gICAgUEFTX1RFU1RJTkdfQVNTRVJUKGNvbmZpZy0+
ZGlyZWN0b3J5LT5kaXJlY3Rvcnlfa2luZCA9PSBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVj
dG9yeV9raW5kKTsKLSAgICAKLSAgICBiaWFzaW5nX2RpcmVjdG9yeSA9IChwYXNfc2VncmVnYXRl
ZF9iaWFzaW5nX2RpcmVjdG9yeSopY29uZmlnLT5kaXJlY3Rvcnk7Ci0KLSAgICByZXR1cm4gcGFz
X3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2FzX3ZpZXdfbm9uX251bGwoCi0gICAgICAgIHBhc19z
ZWdyZWdhdGVkX2JpYXNpbmdfdmlld19jcmVhdGUoYmlhc2luZ19kaXJlY3RvcnksIGNvbmZpZy0+
aW5kZXgpKTsKLX0KLQotcGFzX3NlZ3JlZ2F0ZWRfdmlldyBwYXNfc2VncmVnYXRlZF9iaWFzaW5n
X2RpcmVjdG9yeV90YWtlX2ZpcnN0X2VsaWdpYmxlKAotICAgIHBhc19zZWdyZWdhdGVkX2JpYXNp
bmdfZGlyZWN0b3J5KiBiaWFzaW5nX2RpcmVjdG9yeSwKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnkqIHBhcmVudF9nbG9iYWwpCi17Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRf
ZGlyZWN0b3J5KiBkaXJlY3Rvcnk7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcqIHBh
Z2VfY29uZmlnX3B0cjsKLSAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZp
ZzsKLSAgICBwYXNfc2VncmVnYXRlZF92aWV3IHZpZXc7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGly
ZWN0b3J5X2l0ZXJhdGVfY29uZmlnIGNvbmZpZzsKLQotICAgIFBBU19URVNUSU5HX0FTU0VSVCgK
LSAgICAgICAgcGFyZW50X2dsb2JhbCA9PQotICAgICAgICBwYXNfY29tcGFjdF9zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgKLSAgICAgICAgICAgICZi
aWFzaW5nX2RpcmVjdG9yeS0+cGFyZW50X2dsb2JhbCkpOwotCi0gICAgZGlyZWN0b3J5ID0gJmJp
YXNpbmdfZGlyZWN0b3J5LT5iYXNlOwotICAgIHBhZ2VfY29uZmlnX3B0ciA9IHBhc19zZWdyZWdh
dGVkX3BhZ2VfY29uZmlnX2tpbmRfZ2V0X2NvbmZpZyhkaXJlY3RvcnktPnBhZ2VfY29uZmlnX2tp
bmQpOwotICAgIHBhZ2VfY29uZmlnID0gKnBhZ2VfY29uZmlnX3B0cjsKLQotICAgIFBBU19URVNU
SU5HX0FTU0VSVCgKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfaGVhcF9sb2Nr
X2hvbGRfbW9kZShwYWdlX2NvbmZpZykgPT0gcGFzX2xvY2tfaXNfbm90X2hlbGQpOwotICAgIAot
ICAgIHZpZXcgPSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV90YWtlX2ZpcnN0X2VsaWdp
YmxlX2ltcGwoCi0gICAgICAgIGRpcmVjdG9yeSwgJmNvbmZpZywKLSAgICAgICAgdGFrZV9maXJz
dF9lbGlnaWJsZV9sb29wX2hlYWRfY2FsbGJhY2ssCi0gICAgICAgIHRha2VfZmlyc3RfZWxpZ2li
bGVfY3JlYXRlX25ld192aWV3X2NhbGxiYWNrKTsKLQotICAgIHBhc19iaWFzaW5nX2RpcmVjdG9y
eV9kaWRfdXNlX2luZGV4KAotICAgICAgICAmYmlhc2luZ19kaXJlY3RvcnktPmJpYXNpbmdfYmFz
ZSwgY29uZmlnLmluZGV4LCBwYXNfZ2V0X2Vwb2NoKCkpOwotICAgIAotICAgIFBBU19URVNUSU5H
X0FTU0VSVCghUEFTX1NFR1JFR0FURURfRElSRUNUT1JZX0dFVF9CSVQoCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICBkaXJlY3RvcnksIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2luZGV4KHZp
ZXcpLCBlbGlnaWJsZSkpOwotCi0gICAgcmV0dXJuIHZpZXc7Ci19Ci0KLXBhc19wYWdlX3NoYXJp
bmdfcG9vbF90YWtlX3Jlc3VsdAotcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnlfdGFr
ZV9sYXN0X3VudXNlZCgKLSAgICBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeSogYmlh
c2luZ19kaXJlY3RvcnkpCi17Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNl
OwotICAgIAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogc2l6ZV9k
aXJlY3Rvcnk7Ci0gICAgdW5zaWduZWQgb3duZXJzaGlwX3RocmVzaG9sZDsKLSAgICBib29sIGRp
ZF9maW5kX2VsaWdpYmxlX3BhZ2U7Ci0gICAgc2l6ZV90IGluZGV4OwotICAgIHBhc192ZXJzaW9u
ZWRfZmllbGQgZWxpZ2libGVfaGlnaF93YXRlcm1hcms7Ci0gICAgc2l6ZV90IG5ld19lbGlnaWJs
ZV93YXRlcm1hcms7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcgcGFnZV9jb25maWc7
Ci0KLSAgICBwYWdlX2NvbmZpZyA9ICpwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX2dl
dF9jb25maWcoYmlhc2luZ19kaXJlY3RvcnktPmJhc2UucGFnZV9jb25maWdfa2luZCk7Ci0KLSAg
ICBQQVNfQVNTRVJUKHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2hlYXBfbG9ja19ob2xkX21v
ZGUocGFnZV9jb25maWcpID09IHBhc19sb2NrX2lzX25vdF9oZWxkKTsKLSAgICAKLSAgICBzaXpl
X2RpcmVjdG9yeSA9IHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
X3B0cl9sb2FkX25vbl9udWxsKAotICAgICAgICAmYmlhc2luZ19kaXJlY3RvcnktPnBhcmVudF9n
bG9iYWwpOwotCi0gICAgb3duZXJzaGlwX3RocmVzaG9sZCA9IHBhc19iaWFzaW5nX2RpcmVjdG9y
eV9vd25lcnNoaXBfdGhyZXNob2xkKCZiaWFzaW5nX2RpcmVjdG9yeS0+Ymlhc2luZ19iYXNlKTsK
LQotICAgIC8qIFJlYWQgdG8gd2F0Y2ggc28gdGhhdCBpZiBhbnlvbmUgdXBkYXRlcyB0aGUgZWxp
Z2libGVfaGlnaF93YXRlcm1hcmsgZHVyaW5nIG91ciBzY2FuLCB3ZSB3b24ndAotICAgICAgIG92
ZXJ3cml0ZSBpdC4gKi8KLSAgICBlbGlnaWJsZV9oaWdoX3dhdGVybWFyayA9IHBhc192ZXJzaW9u
ZWRfZmllbGRfcmVhZF90b193YXRjaCgKLSAgICAgICAgJmJpYXNpbmdfZGlyZWN0b3J5LT5iaWFz
aW5nX2Jhc2UuZWxpZ2libGVfaGlnaF93YXRlcm1hcmspOwotCi0gICAgUEFTX0FTU0VSVChlbGln
aWJsZV9oaWdoX3dhdGVybWFyay52YWx1ZQotICAgICAgICAgICAgICAgPD0gcGFzX3NlZ3JlZ2F0
ZWRfZGlyZWN0b3J5X3NpemUoJmJpYXNpbmdfZGlyZWN0b3J5LT5iYXNlKSk7Ci0KLSAgICBpZiAo
KHNpemVfdClvd25lcnNoaXBfdGhyZXNob2xkID49IGVsaWdpYmxlX2hpZ2hfd2F0ZXJtYXJrLnZh
bHVlKQotICAgICAgICByZXR1cm4gcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2Vfbm9uZV9hdmFp
bGFibGU7Ci0KLSAgICBkaWRfZmluZF9lbGlnaWJsZV9wYWdlID0gZmFsc2U7Ci0KLSAgICBuZXdf
ZWxpZ2libGVfd2F0ZXJtYXJrID0gb3duZXJzaGlwX3RocmVzaG9sZDsKLQotICAgIGZvciAoaW5k
ZXggPSBvd25lcnNoaXBfdGhyZXNob2xkOyBpbmRleCA8IGVsaWdpYmxlX2hpZ2hfd2F0ZXJtYXJr
LnZhbHVlOyArK2luZGV4KSB7Ci0gICAgICAgIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldyog
Ymlhc2luZ192aWV3OwotICAgICAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldyogZXhj
bHVzaXZlX3ZpZXc7Ci0gICAgICAgIHBhc19sb2NrKiBoZWxkX2xvY2s7Ci0gICAgICAgIGJvb2wg
cmVzdWx0OwotICAgICAgICBib29sIHNob3VsZF9ub3RpZnlfZW1wdGluZXNzOwotICAgICAgICAK
LSAgICAgICAgaWYgKCFQQVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllfU0VUX0JJVCgmYmlhc2luZ19k
aXJlY3RvcnktPmJhc2UsIGluZGV4LCBlbGlnaWJsZSwgZmFsc2UpKSB7Ci0gICAgICAgICAgICAv
KiBJZiBpdCdzIGluZWxpZ2libGUgdGhlbiB3ZSBqdXN0IGRvbid0IGRvIGFueXRoaW5nIHRvIGl0
IGFuZCBsZWF2ZSBpdCBiZS4gSWYgaXQgYmVjb21lcwotICAgICAgICAgICAgICAgZWxpZ2libGUg
dGhlbiB0aGF0J2xsIHRyaWdnZXIgdGhpcyBjb2RlIHRvIHJlcnVuLiAqLwotICAgICAgICAgICAg
Y29udGludWU7Ci0gICAgICAgIH0KLQotICAgICAgICBkaWRfZmluZF9lbGlnaWJsZV9wYWdlID0g
dHJ1ZTsKLQotICAgICAgICBiaWFzaW5nX3ZpZXcgPSBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9i
aWFzaW5nKAotICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dldCgmYmlhc2lu
Z19kaXJlY3RvcnktPmJhc2UsIGluZGV4KSk7Ci0gICAgICAgIGV4Y2x1c2l2ZV92aWV3ID0gcGFz
X2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyX2xvYWQoCi0gICAg
ICAgICAgICAmYmlhc2luZ192aWV3LT5leGNsdXNpdmUpOwotCi0gICAgICAgIGlmICghZXhjbHVz
aXZlX3ZpZXcpIHsKLSAgICAgICAgICAgIHJlc3VsdCA9IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9y
eV92aWV3X2RpZF9iZWNvbWVfZWxpZ2libGVfYXRfaW5kZXhfd2l0aG91dF9iaWFzaW5nX3VwZGF0
ZSgKLSAgICAgICAgICAgICAgICAmYmlhc2luZ19kaXJlY3RvcnktPmJhc2UsIGluZGV4KTsKLSAg
ICAgICAgICAgIFBBU19BU1NFUlQocmVzdWx0KTsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAg
ICAgICB9Ci0gICAgICAgIAotICAgICAgICBQQVNfQVNTRVJUKHBhc19zZWdyZWdhdGVkX2V4Y2x1
c2l2ZV92aWV3X293bmVyc2hpcF9raW5kX2lzX2JpYXNlZCgKLSAgICAgICAgICAgICAgICAgICAg
ICAgZXhjbHVzaXZlX3ZpZXctPm93bmVyc2hpcF9raW5kKSk7Ci0gICAgICAgIFBBU19BU1NFUlQo
IVBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9HRVRfQklUKAotICAgICAgICAgICAgICAgICAgICAg
ICAmc2l6ZV9kaXJlY3RvcnktPmJhc2UsIGV4Y2x1c2l2ZV92aWV3LT5pbmRleCwgZWxpZ2libGUp
KTsKLSAgICAgICAgCi0gICAgICAgIC8qIFRoZSBlbXB0eSBiaXRzIHNob3VsZG4ndCBoYXZlIGV2
ZXIgYmVlbiBzZXQuICovCi0gICAgICAgIFBBU19BU1NFUlQoIVBBU19TRUdSRUdBVEVEX0RJUkVD
VE9SWV9HRVRfQklUKAotICAgICAgICAgICAgICAgICAgICAgICAmYmlhc2luZ19kaXJlY3Rvcnkt
PmJhc2UsIGluZGV4LCBlbXB0eSkpOwotICAgICAgICAKLSAgICAgICAgaGVsZF9sb2NrID0gTlVM
TDsKLSAgICAgICAgcGFzX2xvY2tfc3dpdGNoKCZoZWxkX2xvY2ssICZleGNsdXNpdmVfdmlldy0+
b3duZXJzaGlwX2xvY2spOwotICAgICAgICBQQVNfQVNTRVJUKHBhc19zZWdyZWdhdGVkX2V4Y2x1
c2l2ZV92aWV3X293bmVyc2hpcF9raW5kX2lzX2JpYXNlZCgKLSAgICAgICAgICAgICAgICAgICAg
ICAgZXhjbHVzaXZlX3ZpZXctPm93bmVyc2hpcF9raW5kKSk7Ci0gICAgICAgIGV4Y2x1c2l2ZV92
aWV3LT5vd25lcnNoaXBfa2luZCA9Ci0gICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNp
dmVfdmlld19vd25lcnNoaXBfa2luZF93aXRoX2JpYXNlZCgKLSAgICAgICAgICAgICAgICBleGNs
dXNpdmVfdmlldy0+b3duZXJzaGlwX2tpbmQsIGZhbHNlKTsKLSAgICAgICAgaWYgKHZlcmJvc2Up
IHsKLSAgICAgICAgICAgIHBhc19sb2coInZpZXcgJXAgaGFzIG93bmVyc2hpcCBraW5kID0gJXMg
ZHVlIHRvIHRha2VfbGFzdF91bnVzZWRcbiIsCi0gICAgICAgICAgICAgICAgICAgIGV4Y2x1c2l2
ZV92aWV3LAotICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmll
d19vd25lcnNoaXBfa2luZF9nZXRfc3RyaW5nKAotICAgICAgICAgICAgICAgICAgICAgICAgZXhj
bHVzaXZlX3ZpZXctPm93bmVyc2hpcF9raW5kKSk7Ci0gICAgICAgIH0KLQotICAgICAgICBzaG91
bGRfbm90aWZ5X2VtcHRpbmVzcyA9IGZhbHNlOwotICAgICAgICAKLSAgICAgICAgaWYgKHBhc19z
ZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5kX2lzX293bmVkKAotICAgICAg
ICAgICAgICAgIGV4Y2x1c2l2ZV92aWV3LT5vd25lcnNoaXBfa2luZCkpIHsKLSAgICAgICAgICAg
IHBhc19zZWdyZWdhdGVkX3BhZ2UqIHBhZ2U7Ci0KLSAgICAgICAgICAgIHBhZ2UgPSBwYXNfc2Vn
cmVnYXRlZF9wYWdlX2Zvcl9ib3VuZGFyeShleGNsdXNpdmVfdmlldy0+cGFnZV9ib3VuZGFyeSwg
cGFnZV9jb25maWcpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9w
YWdlX3N3aXRjaF9sb2NrKHBhZ2UsICZoZWxkX2xvY2ssIHBhZ2VfY29uZmlnKTsKLSAgICAgICAg
ICAgIAotICAgICAgICAgICAgLyogSWYgdGhpcyBleGNsdXNpdmUgYWxyZWFkeSBoYWQgYSBwYWdl
LCB0aGVuIHRoZSBwYWdlIG11c3QgYmUgc2F5aW5nIHRoYXQgaXQncwotICAgICAgICAgICAgICAg
ZWxpZ2libGUuICovCi0gICAgICAgICAgICBQQVNfQVNTRVJUKHBhc19zZWdyZWdhdGVkX3ZpZXdf
aXNfYmlhc2luZyhwYWdlLT5vd25lcikpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBwYWdl
LT5vd25lciA9IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2FzX3ZpZXdfbm9uX251bGwo
ZXhjbHVzaXZlX3ZpZXcpOwotCi0gICAgICAgICAgICBzaG91bGRfbm90aWZ5X2VtcHRpbmVzcyA9
IHBhc19zZWdyZWdhdGVkX3BhZ2VfcXVhbGlmaWVzX2Zvcl9kZWNvbW1pdChwYWdlLCBwYWdlX2Nv
bmZpZyk7Ci0gICAgICAgIH0KLQotICAgICAgICAvKiBUaGlzIGp1c3QgbmVlZHMgdG8gaGFwcGVu
IGJlZm9yZSB3ZSByZWxlYXNlIGVsaWdpYmlsaXR5LiAqLwotICAgICAgICBwYXNfY29tcGFjdF9h
dG9taWNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19wdHJfc3RvcmUoJmJpYXNpbmdfdmlldy0+
ZXhjbHVzaXZlLCBOVUxMKTsKLQotICAgICAgICByZXN1bHQgPSBwYXNfc2VncmVnYXRlZF9kaXJl
Y3Rvcnlfdmlld19kaWRfYmVjb21lX2VsaWdpYmxlX2F0X2luZGV4KAotICAgICAgICAgICAgJnNp
emVfZGlyZWN0b3J5LT5iYXNlLCBleGNsdXNpdmVfdmlldy0+aW5kZXgpOwotICAgICAgICBQQVNf
QVNTRVJUKHJlc3VsdCk7Ci0gICAgICAgIAotICAgICAgICByZXN1bHQgPSBwYXNfc2VncmVnYXRl
ZF9kaXJlY3Rvcnlfdmlld19kaWRfYmVjb21lX2VsaWdpYmxlX2F0X2luZGV4X3dpdGhvdXRfYmlh
c2luZ191cGRhdGUoCi0gICAgICAgICAgICAmYmlhc2luZ19kaXJlY3RvcnktPmJhc2UsIGluZGV4
KTsKLSAgICAgICAgUEFTX0FTU0VSVChyZXN1bHQpOwotCi0gICAgICAgIGlmIChzaG91bGRfbm90
aWZ5X2VtcHRpbmVzcykgewotICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3Zp
ZXdfZGlkX2JlY29tZV9lbXB0eV9hdF9pbmRleCgKLSAgICAgICAgICAgICAgICAmc2l6ZV9kaXJl
Y3RvcnktPmJhc2UsIGV4Y2x1c2l2ZV92aWV3LT5pbmRleCk7Ci0gICAgICAgIH0KLSAgICAgICAg
Ci0gICAgICAgIHBhc19sb2NrX3N3aXRjaCgmaGVsZF9sb2NrLCBOVUxMKTsKLSAgICB9Ci0KLSAg
ICBwYXNfdmVyc2lvbmVkX2ZpZWxkX3RyeV93cml0ZSgKLSAgICAgICAgJmJpYXNpbmdfZGlyZWN0
b3J5LT5iaWFzaW5nX2Jhc2UuZWxpZ2libGVfaGlnaF93YXRlcm1hcmssCi0gICAgICAgIGVsaWdp
YmxlX2hpZ2hfd2F0ZXJtYXJrLCBuZXdfZWxpZ2libGVfd2F0ZXJtYXJrKTsKLQotICAgIHJldHVy
biBkaWRfZmluZF9lbGlnaWJsZV9wYWdlCi0gICAgICAgID8gcGFzX3BhZ2Vfc2hhcmluZ19wb29s
X3Rha2Vfc3VjY2VzcwotICAgICAgICA6IHBhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtlX25vbmVf
YXZhaWxhYmxlOwotfQotCi0jZW5kaWYgLyogTElCUEFTX0VOQUJMRUQgKi8KSW5kZXg6IFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0
b3J5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkuaAkocmV2aXNpb24gMjc5OTY0KQorKysgU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJl
Y3RvcnkuaAkobm9uZXhpc3RlbnQpCkBAIC0xLDY0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KGMpIDIwMTgtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0g
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaWZuZGVmIFBBU19TRUdSRUdBVEVE
X0JJQVNJTkdfRElSRUNUT1JZX0gKLSNkZWZpbmUgUEFTX1NFR1JFR0FURURfQklBU0lOR19ESVJF
Q1RPUllfSAotCi0jaW5jbHVkZSAicGFzX2JpYXNpbmdfZGlyZWN0b3J5LmgiCi0jaW5jbHVkZSAi
cGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyLmgiCi0jaW5j
bHVkZSAicGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkuaCIKLQotUEFTX0JFR0lOX0VYVEVS
Tl9DOwotCi1zdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3Rvcnk7Ci10eXBlZGVm
IHN0cnVjdCBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeSBwYXNfc2VncmVnYXRlZF9i
aWFzaW5nX2RpcmVjdG9yeTsKLQotc3RydWN0IFBBU19BTElHTkVEKHNpemVvZih1aW50cHRyX3Qp
ICogMikgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkgewotICAgIHBhc19zZWdyZWdh
dGVkX2RpcmVjdG9yeSBiYXNlOwotICAgIHBhc19iaWFzaW5nX2RpcmVjdG9yeSBiaWFzaW5nX2Jh
c2U7Ci0gICAgcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRy
IHBhcmVudF9nbG9iYWw7Ci19OwotCi1zdGF0aWMgaW5saW5lIHVuc2lnbmVkCi1wYXNfc2VncmVn
YXRlZF9iaWFzaW5nX2RpcmVjdG9yeV9tYWdhemluZV9pbmRleChwYXNfc2VncmVnYXRlZF9iaWFz
aW5nX2RpcmVjdG9yeSogZGlyZWN0b3J5KQotewotICAgIHJldHVybiBwYXNfYmlhc2luZ19kaXJl
Y3RvcnlfbWFnYXppbmVfaW5kZXgoJmRpcmVjdG9yeS0+Ymlhc2luZ19iYXNlKTsKLX0KLQotUEFT
X0FQSSBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeSogcGFzX3NlZ3JlZ2F0ZWRfYmlh
c2luZ19kaXJlY3RvcnlfY3JlYXRlKAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2Rp
cmVjdG9yeSogcGFyZW50X2dsb2JhbCwgdW5zaWduZWQgbWFnYXppbmVfaW5kZXgpOwotCi1QQVNf
QVBJIHBhc19zZWdyZWdhdGVkX3ZpZXcgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3Rvcnlf
dGFrZV9maXJzdF9lbGlnaWJsZSgKLSAgICBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9y
eSogZGlyZWN0b3J5LAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSog
cGFyZW50X2dsb2JhbCk7Ci0KLVBBU19BUEkgcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2VfcmVz
dWx0Ci1wYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeV90YWtlX2xhc3RfdW51c2VkKAot
ICAgIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5KiBkaXJlY3RvcnkpOwotCi1QQVNf
RU5EX0VYVEVSTl9DOwotCi0jZW5kaWYgLyogUEFTX1NFR1JFR0FURURfQklBU0lOR19ESVJFQ1RP
UllfSCAqLwotCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2Vn
cmVnYXRlZF9iaWFzaW5nX3ZpZXcuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcuYwkocmV2aXNpb24gMjc5
OTY0KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRf
Ymlhc2luZ192aWV3LmMJKG5vbmV4aXN0ZW50KQpAQCAtMSwxNjYgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoYykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
Ci0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW5jbHVkZSAicGFzX2NvbmZp
Zy5oIgotCi0jaWYgTElCUEFTX0VOQUJMRUQKLQotI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2Jp
YXNpbmdfdmlldy5oIgotCi0jaW5jbHVkZSAicGFzX2Vwb2NoLmgiCi0jaW5jbHVkZSAicGFzX3Bh
Z2Vfc2hhcmluZ19wb29sLmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJl
Y3RvcnkuaCIKLSNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldy5oIgotI2lu
Y2x1ZGUgInBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeS5oIgotI2luY2x1ZGUg
InBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnLmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRf
cGFnZV9pbmxpbmVzLmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlf
aW5saW5lcy5oIgotI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3ZpZXdfaW5saW5lcy5oIgotCi1w
YXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcqIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlld19j
cmVhdGUoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkqIGRpcmVjdG9yeSwK
LSAgICBzaXplX3QgaW5kZXgpCi17Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3KiBy
ZXN1bHQ7Ci0KLSAgICByZXN1bHQgPSBwYXNfaW1tb3J0YWxfaGVhcF9hbGxvY2F0ZShzaXplb2Yo
cGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAicGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3IiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfb2JqZWN0X2FsbG9jYXRpb24pOwotCi0g
ICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyX3N0b3Jl
KCZyZXN1bHQtPmV4Y2x1c2l2ZSwgTlVMTCk7Ci0gICAgcmVzdWx0LT5pbmRleCA9ICh1bnNpZ25l
ZClpbmRleDsKLSAgICBQQVNfQVNTRVJUKHJlc3VsdC0+aW5kZXggPT0gaW5kZXgpOwotICAgIHBh
c19jb21wYWN0X3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnlfcHRyX3N0b3JlKCZyZXN1bHQt
PmRpcmVjdG9yeSwgZGlyZWN0b3J5KTsKLQotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLWJvb2wg
cGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2lzX293bmVkKHBhc19zZWdyZWdhdGVkX2JpYXNp
bmdfdmlldyogdmlldykKLXsKLSAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldyogZXhj
bHVzaXZlX3ZpZXc7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlw
X2tpbmQgb3duZXJzaGlwX2tpbmQ7Ci0gICAgCi0gICAgZXhjbHVzaXZlX3ZpZXcgPSBwYXNfY29t
cGFjdF9hdG9taWNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19wdHJfbG9hZCgmdmlldy0+ZXhj
bHVzaXZlKTsKLSAgICAKLSAgICBpZiAoIWV4Y2x1c2l2ZV92aWV3KQotICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0KLSAgICBvd25lcnNoaXBfa2luZCA9IGV4Y2x1c2l2ZV92aWV3LT5vd25lcnNoaXBf
a2luZDsKLSAgICAKLSAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3du
ZXJzaGlwX2tpbmRfaXNfb3duZWQob3duZXJzaGlwX2tpbmQpCi0gICAgICAgICYmIHBhc19zZWdy
ZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5kX2lzX2JpYXNlZChvd25lcnNoaXBf
a2luZCk7Ci19Ci0KLWJvb2wgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2xvY2tfb3duZXJz
aGlwX2xvY2socGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3KiB2aWV3KQotewotICAgIGZvciAo
OzspIHsKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcqIGV4Y2x1c2l2ZV92
aWV3OwotICAgICAgICAKLSAgICAgICAgZXhjbHVzaXZlX3ZpZXcgPSBwYXNfY29tcGFjdF9hdG9t
aWNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19wdHJfbG9hZCgmdmlldy0+ZXhjbHVzaXZlKTsK
LSAgICAgICAgCi0gICAgICAgIGlmICghZXhjbHVzaXZlX3ZpZXcpCi0gICAgICAgICAgICByZXR1
cm4gZmFsc2U7Ci0KLSAgICAgICAgcGFzX2xvY2tfbG9jaygmZXhjbHVzaXZlX3ZpZXctPm93bmVy
c2hpcF9sb2NrKTsKLQotICAgICAgICBpZiAoZXhjbHVzaXZlX3ZpZXcgPT0gcGFzX2NvbXBhY3Rf
YXRvbWljX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyX2xvYWQoJnZpZXctPmV4Y2x1c2l2
ZSkKLSAgICAgICAgICAgICYmIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hp
cF9raW5kX2lzX2JpYXNlZChleGNsdXNpdmVfdmlldy0+b3duZXJzaGlwX2tpbmQpKQotICAgICAg
ICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICAgICAgcGFzX2xvY2tfdW5sb2NrKCZleGNsdXNpdmVf
dmlldy0+b3duZXJzaGlwX2xvY2spOwotICAgIH0KLX0KLQotYm9vbCBwYXNfc2VncmVnYXRlZF9i
aWFzaW5nX3ZpZXdfc2hvdWxkX3RhYmxlKAotICAgIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmll
dyogdmlldywgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcqIHBhZ2VfY29uZmlnKQotewotICAg
IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3KiBleGNsdXNpdmVfdmlldzsKLSAgICAKLSAg
ICBleGNsdXNpdmVfdmlldyA9IHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2V4Y2x1c2l2
ZV92aWV3X3B0cl9sb2FkKCZ2aWV3LT5leGNsdXNpdmUpOwotICAgIAotICAgIGlmICghZXhjbHVz
aXZlX3ZpZXcpCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgcmV0dXJuIHBhc19zZWdyZWdh
dGVkX2V4Y2x1c2l2ZV92aWV3X3Nob3VsZF90YWJsZShleGNsdXNpdmVfdmlldywgcGFnZV9jb25m
aWcpOwotfQotCi12b2lkIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlld19ub3RlX2VsaWdpYmls
aXR5KHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldyogdmlldywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZSogcGFn
ZSkKLXsKLSAgICBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeSogYmlhc2luZ19kaXJl
Y3Rvcnk7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7Ci0gICAgdW5z
aWduZWQgdmlld19pbmRleDsKLSAgICAKLSAgICBiaWFzaW5nX2RpcmVjdG9yeSA9IHBhc19jb21w
YWN0X3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoJnZpZXct
PmRpcmVjdG9yeSk7Ci0gICAgZGlyZWN0b3J5ID0gJmJpYXNpbmdfZGlyZWN0b3J5LT5iYXNlOwot
ICAgIHZpZXdfaW5kZXggPSB2aWV3LT5pbmRleDsKLSAgICAKLSAgICBwYXNfc2VncmVnYXRlZF9l
eGNsdXNpdmVfaXNoX3ZpZXdfbm90ZV9lbGlnaWJpbGl0eV9pbXBsKAotICAgICAgICBwYWdlLCBk
aXJlY3RvcnksIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlld19hc192aWV3X25vbl9udWxsKHZp
ZXcpLCB2aWV3X2luZGV4KTsKLX0KLQotdm9pZCBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXdf
bm90ZV9lbXB0aW5lc3MoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3KiB2aWV3LAot
ICAgIHBhc19zZWdyZWdhdGVkX3BhZ2UqIHBhZ2UpCi17Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZXhj
bHVzaXZlX3ZpZXdfbm90ZV9lbXB0aW5lc3MoCi0gICAgICAgIHBhc19jb21wYWN0X2F0b21pY19z
ZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X3B0cl9sb2FkX25vbl9udWxsKCZ2aWV3LT5leGNsdXNp
dmUpLAotICAgICAgICBwYWdlKTsKLX0KLQotcGFzX2hlYXBfc3VtbWFyeSBwYXNfc2VncmVnYXRl
ZF9iaWFzaW5nX3ZpZXdfY29tcHV0ZV9zdW1tYXJ5KHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmll
dyogdmlldykKLXsKLSAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldyogZXhjbHVzaXZl
OwotICAgIHBhc19oZWFwX3N1bW1hcnkgcmVzdWx0OwotICAgIAotICAgIGlmICghcGFzX3NlZ3Jl
Z2F0ZWRfYmlhc2luZ192aWV3X2xvY2tfb3duZXJzaGlwX2xvY2sodmlldykpCi0gICAgICAgIHJl
dHVybiBwYXNfaGVhcF9zdW1tYXJ5X2NyZWF0ZV9lbXB0eSgpOwotICAgIAotICAgIGV4Y2x1c2l2
ZSA9IHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X3B0cl9sb2Fk
X25vbl9udWxsKCZ2aWV3LT5leGNsdXNpdmUpOwotICAgIFBBU19BU1NFUlQocGFzX3NlZ3JlZ2F0
ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlwX2tpbmRfaXNfYmlhc2VkKGV4Y2x1c2l2ZS0+b3du
ZXJzaGlwX2tpbmQpKTsKLSAgICByZXN1bHQgPSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfaXNo
X3ZpZXdfY29tcHV0ZV9zdW1tYXJ5X2ltcGwoZXhjbHVzaXZlKTsKLQotICAgIHBhc19sb2NrX3Vu
bG9jaygmZXhjbHVzaXZlLT5vd25lcnNoaXBfbG9jayk7Ci0KLSAgICByZXR1cm4gcmVzdWx0Owot
fQotCi1ib29sIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlld19pc19lbGlnaWJsZShwYXNfc2Vn
cmVnYXRlZF9iaWFzaW5nX3ZpZXcqIHZpZXcpCi17Ci0gICAgcmV0dXJuIFBBU19TRUdSRUdBVEVE
X0RJUkVDVE9SWV9HRVRfQklUKAotICAgICAgICAmcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9iaWFz
aW5nX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgmdmlldy0+ZGlyZWN0b3J5KS0+YmFzZSwK
LSAgICAgICAgdmlldy0+aW5kZXgsIGVsaWdpYmxlKTsKLX0KLQotYm9vbCBwYXNfc2VncmVnYXRl
ZF9iaWFzaW5nX3ZpZXdfaXNfZW1wdHkocGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3KiB2aWV3
KQotewotICAgIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3KiBleGNsdXNpdmU7Ci0gICAg
ZXhjbHVzaXZlID0gcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdf
cHRyX2xvYWQoJnZpZXctPmV4Y2x1c2l2ZSk7Ci0gICAgaWYgKGV4Y2x1c2l2ZSkKLSAgICAgICAg
cmV0dXJuIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2lzX2VtcHR5KGV4Y2x1c2l2ZSk7
Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi0jZW5kaWYgLyogTElCUEFTX0VOQUJMRUQgKi8KSW5k
ZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2JpYXNp
bmdfdmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldy5oCShyZXZpc2lvbiAyNzk5NjQpCisrKyBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcu
aAkobm9uZXhpc3RlbnQpCkBAIC0xLDg4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2lmbmRlZiBQQVNfU0VHUkVHQVRFRF9CSUFTSU5HX1ZJ
RVdfSAotI2RlZmluZSBQQVNfU0VHUkVHQVRFRF9CSUFTSU5HX1ZJRVdfSAotCi0jaW5jbHVkZSAi
cGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyLmgiCi0jaW5j
bHVkZSAicGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeV9wdHIuaCIKLSNp
bmNsdWRlICJwYXNfc2VncmVnYXRlZF92aWV3LmgiCi0KLVBBU19CRUdJTl9FWFRFUk5fQzsKLQot
c3RydWN0IHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldzsKLXR5cGVkZWYgc3RydWN0IHBhc19z
ZWdyZWdhdGVkX2JpYXNpbmdfdmlldyBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXc7Ci0KLXN0
cnVjdCBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcgewotICAgIHBhc19jb21wYWN0X2F0b21p
Y19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X3B0ciBleGNsdXNpdmU7Ci0gICAgdW5zaWduZWQg
aW5kZXg7IC8qIElmIHdlIHdhbnRlZCB0byBiZSBoYXJkY29yZSwgd2UgY291bGQgbWFrZSB0aGlz
IG9uZSBieXRlLiAqLwotICAgIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3Rv
cnlfcHRyIGRpcmVjdG9yeTsKLX07Ci0KLXN0YXRpYyBpbmxpbmUgcGFzX3NlZ3JlZ2F0ZWRfdmll
dwotcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2FzX3ZpZXcocGFzX3NlZ3JlZ2F0ZWRfYmlh
c2luZ192aWV3KiB2aWV3KQotewotICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF92aWV3X2NyZWF0
ZSh2aWV3LCBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXdfa2luZCk7Ci19Ci0KLXN0YXRpYyBp
bmxpbmUgcGFzX3NlZ3JlZ2F0ZWRfdmlldwotcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2Fz
X2luZWxpZ2libGVfdmlldyhwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcqIHZpZXcpCi17Ci0g
ICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX3ZpZXdfY3JlYXRlKHZpZXcsIHBhc19zZWdyZWdhdGVk
X2luZWxpZ2libGVfYmlhc2luZ192aWV3X2tpbmQpOwotfQotCi1zdGF0aWMgaW5saW5lIHBhc19z
ZWdyZWdhdGVkX3ZpZXcKLXBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlld19hc192aWV3X25vbl9u
dWxsKHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldyogdmlldykKLXsKLSAgICByZXR1cm4gcGFz
X3NlZ3JlZ2F0ZWRfdmlld19jcmVhdGVfbm9uX251bGwodmlldywgcGFzX3NlZ3JlZ2F0ZWRfYmlh
c2luZ192aWV3X2tpbmQpOwotfQotCi1zdGF0aWMgaW5saW5lIHBhc19zZWdyZWdhdGVkX3ZpZXcK
LXBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlld19hc19pbmVsaWdpYmxlX3ZpZXdfbm9uX251bGwo
cGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3KiB2aWV3KQotewotICAgIHJldHVybiBwYXNfc2Vn
cmVnYXRlZF92aWV3X2NyZWF0ZV9ub25fbnVsbCh2aWV3LCBwYXNfc2VncmVnYXRlZF9pbmVsaWdp
YmxlX2JpYXNpbmdfdmlld19raW5kKTsKLX0KLQotUEFTX0FQSSBwYXNfc2VncmVnYXRlZF9iaWFz
aW5nX3ZpZXcqIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlld19jcmVhdGUoCi0gICAgcGFzX3Nl
Z3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAgICBzaXplX3QgaW5kZXgp
OwotCi1QQVNfQVBJIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2lzX293bmVkKHBh
c19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldyogdmlldyk7Ci1QQVNfQVBJIGJvb2wgcGFzX3NlZ3Jl
Z2F0ZWRfYmlhc2luZ192aWV3X3Nob3VsZF90YWJsZSgKLSAgICBwYXNfc2VncmVnYXRlZF9iaWFz
aW5nX3ZpZXcqIHZpZXcsIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnKiBwYWdlX2NvbmZpZyk7
Ci1QQVNfQVBJIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2xvY2tfb3duZXJzaGlw
X2xvY2socGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3KiB2aWV3KTsKLQotUEFTX0FQSSB2b2lk
IHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlld19ub3RlX2VsaWdpYmlsaXR5KHBhc19zZWdyZWdh
dGVkX2JpYXNpbmdfdmlldyogdmlldywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlKiBwYWdlKTsKLVBB
U19BUEkgdm9pZCBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXdfbm90ZV9lbXB0aW5lc3MocGFz
X3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3KiB2aWV3LAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlKiBwYWdl
KTsKLVBBU19BUEkgcGFzX2hlYXBfc3VtbWFyeSBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXdf
Y29tcHV0ZV9zdW1tYXJ5KHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldyogdmlldyk7Ci1QQVNf
QVBJIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2lzX2VsaWdpYmxlKHBhc19zZWdy
ZWdhdGVkX2JpYXNpbmdfdmlldyogdmlldyk7Ci1QQVNfQVBJIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRf
Ymlhc2luZ192aWV3X2lzX2VtcHR5KHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldyogdmlldyk7
Ci0KLVBBU19FTkRfRVhURVJOX0M7Ci0KLSNlbmRpZiAvKiBQQVNfU0VHUkVHQVRFRF9CSUFTSU5H
X1ZJRVdfSCAqLwotCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
c2VncmVnYXRlZF9kZWFsbG9jYXRpb25fbW9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl9tb2RlLmgJ
KG5vbmV4aXN0ZW50KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3Nl
Z3JlZ2F0ZWRfZGVhbGxvY2F0aW9uX21vZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDU2
IEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5k
ZWYgUEFTX1NFR1JFR0FURURfREVBTExPQ0FUSU9OX01PREVfSAorI2RlZmluZSBQQVNfU0VHUkVH
QVRFRF9ERUFMTE9DQVRJT05fTU9ERV9ICisKKyNpbmNsdWRlICJwYXNfdXRpbHMuaCIKKworUEFT
X0JFR0lOX0VYVEVSTl9DOworCitlbnVtIHBhc19zZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl9tb2Rl
IHsKKyAgICBwYXNfc2VncmVnYXRlZF9kZWFsbG9jYXRpb25fZGlyZWN0X21vZGUsCisgICAgcGFz
X3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0aW9uX3RvX3ZpZXdfY2FjaGVfbW9kZQorfTsKKwordHlwZWRl
ZiBlbnVtIHBhc19zZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl9tb2RlIHBhc19zZWdyZWdhdGVkX2Rl
YWxsb2NhdGlvbl9tb2RlOworCitzdGF0aWMgaW5saW5lIGNvbnN0IGNoYXIqIHBhc19zZWdyZWdh
dGVkX2RlYWxsb2NhdGlvbl9tb2RlX2dldF9zdHJpbmcoCisgICAgcGFzX3NlZ3JlZ2F0ZWRfZGVh
bGxvY2F0aW9uX21vZGUgbW9kZSkKK3sKKyAgICBzd2l0Y2ggKG1vZGUpIHsKKyAgICBjYXNlIHBh
c19zZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl9kaXJlY3RfbW9kZToKKyAgICAgICAgcmV0dXJuICJk
aXJlY3QiOworICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0aW9uX3RvX3ZpZXdfY2Fj
aGVfbW9kZToKKyAgICAgICAgcmV0dXJuICJ0b192aWV3X2NhY2hlIjsKKyAgICB9CisgICAgUEFT
X0FTU0VSVCghIlNob3VsZCBub3QgYmUgcmVhY2hlZCIpOworICAgIHJldHVybiBOVUxMOworfQor
CitQQVNfRU5EX0VYVEVSTl9DOworCisjZW5kaWYgLyogUEFTX1NFR1JFR0FURURfREVBTExPQ0FU
SU9OX01PREVfSCAqLworCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfc2VncmVnYXRlZF9kaXJlY3RvcnkuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkuYwkocmV2aXNpb24gMjc5
OTY0KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRf
ZGlyZWN0b3J5LmMJKHdvcmtpbmcgY29weSkKQEAgLTYxLDggKzYxLDcgQEAgcGFzX3NlZ3JlZ2F0
ZWRfZGlyZWN0b3J5X2dldF9kYXRhX3Nsb3cocAogICAgICAgICAgICAgInBhc19zZWdyZWdhdGVk
X2RpcmVjdG9yeV9kYXRhIiwKICAgICAgICAgICAgIHBhc19vYmplY3RfYWxsb2NhdGlvbik7CiAK
LSAgICAgICAgcGFzX3ZlcnNpb25lZF9maWVsZF9jb25zdHJ1Y3QoJnJlc3VsdC0+Zmlyc3RfZWxp
Z2libGVfYnV0X25vdF90YWJsZWQsIDApOwotICAgICAgICBwYXNfdmVyc2lvbmVkX2ZpZWxkX2Nv
bnN0cnVjdCgmcmVzdWx0LT5maXJzdF9lbGlnaWJsZV9hbmRfdGFibGVkLCAwKTsKKyAgICAgICAg
cGFzX3ZlcnNpb25lZF9maWVsZF9jb25zdHJ1Y3QoJnJlc3VsdC0+Zmlyc3RfZWxpZ2libGUsIDAp
OwogICAgICAgICBwYXNfdmVyc2lvbmVkX2ZpZWxkX2NvbnN0cnVjdCgmcmVzdWx0LT5sYXN0X2Vt
cHR5X3BsdXNfb25lLCAwKTsKICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3NlZ21l
bnRlZF9iaXR2ZWN0b3JzX2NvbnN0cnVjdCgmcmVzdWx0LT5iaXR2ZWN0b3JzKTsKICAgICAgICAg
cGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3ZpZXdfdmVjdG9yX2NvbnN0cnVjdCgmcmVzdWx0LT52
aWV3cyk7CkBAIC0xODYsNyArMTg1LDYgQEAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dldF9z
aGFyaW5nX3BheQogCiBQQVNfQVBJIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X21pbmlt
aXplX2ZpcnN0X2VsaWdpYmxlKAogICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeSogZGlyZWN0
b3J5LAotICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9maXJzdF9lbGlnaWJsZV9raW5kIGtp
bmQsCiAgICAgc2l6ZV90IGluZGV4KQogewogICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9k
YXRhKiBkYXRhOwpAQCAtMTk3LDEyICsxOTUsMTEgQEAgUEFTX0FQSSB2b2lkIHBhc19zZWdyZWdh
dGVkX2RpcmVjdG9yeV9taQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgcGFzX3ZlcnNp
b25lZF9maWVsZF9taW5pbWl6ZShwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZGF0YV9nZXRfZmly
c3RfZWxpZ2libGVfcHRyKGRhdGEsIGtpbmQpLCBpbmRleCk7CisgICAgcGFzX3ZlcnNpb25lZF9m
aWVsZF9taW5pbWl6ZSgmZGF0YS0+Zmlyc3RfZWxpZ2libGUsIGluZGV4KTsKIH0KIAogUEFTX0FQ
SSB2b2lkIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV91cGRhdGVfZmlyc3RfZWxpZ2libGVfYWZ0
ZXJfc2VhcmNoKAogICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAg
IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9maXJzdF9lbGlnaWJsZV9raW5kIGtpbmQsCiAgICAg
cGFzX3ZlcnNpb25lZF9maWVsZCBmaXJzdF9lbGlnaWJsZSwKICAgICBzaXplX3QgbmV3X3ZhbHVl
KQogewpAQCAtMjE2LDUwICsyMTMsMjIgQEAgUEFTX0FQSSB2b2lkIHBhc19zZWdyZWdhdGVkX2Rp
cmVjdG9yeV91cAogICAgIH0KIAogICAgIHBhc192ZXJzaW9uZWRfZmllbGRfdHJ5X3dyaXRlX3dh
dGNoZWQoCi0gICAgICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9kYXRhX2dldF9maXJzdF9l
bGlnaWJsZV9wdHIoZGF0YSwga2luZCksCisgICAgICAgICZkYXRhLT5maXJzdF9lbGlnaWJsZSwK
ICAgICAgICAgZmlyc3RfZWxpZ2libGUsCiAgICAgICAgIG5ld192YWx1ZSk7CiB9CiAKLWJvb2wg
cGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbGlnaWJsZV9hdF9pbmRl
eF93aXRob3V0X2JpYXNpbmdfdXBkYXRlKAorYm9vbCBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlf
dmlld19kaWRfYmVjb21lX2VsaWdpYmxlX2F0X2luZGV4KAogICAgIHBhc19zZWdyZWdhdGVkX2Rp
cmVjdG9yeSogZGlyZWN0b3J5LAogICAgIHNpemVfdCBpbmRleCkKIHsKICAgICBpZiAoUEFTX1NF
R1JFR0FURURfRElSRUNUT1JZX1NFVF9CSVQoZGlyZWN0b3J5LCBpbmRleCwgZWxpZ2libGUsIHRy
dWUpKSB7Ci0gICAgICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9taW5pbWl6ZV9maXJzdF9l
bGlnaWJsZSgKLSAgICAgICAgICAgIGRpcmVjdG9yeSwgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5
X2ZpcnN0X2VsaWdpYmxlX2J1dF9ub3RfdGFibGVkX2tpbmQsIGluZGV4KTsKKyAgICAgICAgcGFz
X3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X21pbmltaXplX2ZpcnN0X2VsaWdpYmxlKGRpcmVjdG9yeSwg
aW5kZXgpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwog
fQogCi1ib29sIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV92aWV3X2RpZF9iZWNvbWVfZWxpZ2li
bGVfYXRfaW5kZXgoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBkaXJlY3RvcnksCi0g
ICAgc2l6ZV90IGluZGV4KQotewotICAgIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5
KiBiaWFzaW5nX2RpcmVjdG9yeTsKLSAgICAKLSAgICBpZiAoIXBhc19zZWdyZWdhdGVkX2RpcmVj
dG9yeV92aWV3X2RpZF9iZWNvbWVfZWxpZ2libGVfYXRfaW5kZXhfd2l0aG91dF9iaWFzaW5nX3Vw
ZGF0ZSgKLSAgICAgICAgICAgIGRpcmVjdG9yeSwgaW5kZXgpKQotICAgICAgICByZXR1cm4gZmFs
c2U7Ci0KLSAgICBpZiAoZGlyZWN0b3J5LT5kaXJlY3Rvcnlfa2luZCAhPSBwYXNfc2VncmVnYXRl
ZF9iaWFzaW5nX2RpcmVjdG9yeV9raW5kKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIGJp
YXNpbmdfZGlyZWN0b3J5ID0gKHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5KilkaXJl
Y3Rvcnk7Ci0KLSAgICBwYXNfYmlhc2luZ19kaXJlY3RvcnlfaW5kZXhfZGlkX2JlY29tZV9lbGln
aWJsZSgmYmlhc2luZ19kaXJlY3RvcnktPmJpYXNpbmdfYmFzZSwgaW5kZXgpOwotICAgIHJldHVy
biB0cnVlOwotfQotCi1ib29sIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV92aWV3X2RpZF9iZWNv
bWVfZWxpZ2libGVfd2l0aG91dF9iaWFzaW5nX3VwZGF0ZSgKLSAgICBwYXNfc2VncmVnYXRlZF9k
aXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAgICBwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcpCi17Ci0g
ICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV92aWV3X2RpZF9iZWNvbWVfZWxpZ2li
bGVfYXRfaW5kZXhfd2l0aG91dF9iaWFzaW5nX3VwZGF0ZSgKLSAgICAgICAgZGlyZWN0b3J5LCBw
YXNfc2VncmVnYXRlZF92aWV3X2dldF9pbmRleCh2aWV3KSk7Ci19Ci0KIGJvb2wgcGFzX3NlZ3Jl
Z2F0ZWRfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbGlnaWJsZSgKICAgICBwYXNfc2VncmVn
YXRlZF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKICAgICBwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcp
CkBAIC00MTIsMTEgKzM4MSw3IEBAIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2FwcGVu
ZCgKICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2tpbmQ6CiAgICAgY2Fz
ZSBwYXNfc2VncmVnYXRlZF9pbmVsaWdpYmxlX2V4Y2x1c2l2ZV92aWV3X2tpbmQ6CiAgICAgY2Fz
ZSBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXdfa2luZDoKLSAgICAgICAgUEFTX0FTU0VSVChk
aXJlY3RvcnktPmRpcmVjdG9yeV9raW5kID09IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2Rp
cmVjdG9yeV9raW5kKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9i
aWFzaW5nX3ZpZXdfa2luZDoKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2luZWxpZ2libGVfYmlh
c2luZ192aWV3X2tpbmQ6Ci0gICAgICAgIFBBU19BU1NFUlQoZGlyZWN0b3J5LT5kaXJlY3Rvcnlf
a2luZCA9PSBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeV9raW5kKTsKKyAgICAgICAg
UEFTX0FTU0VSVChkaXJlY3RvcnktPmRpcmVjdG9yeV9raW5kID09IHBhc19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5X2tpbmQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIHBhc19zZWdyZWdh
dGVkX3NoYXJlZF92aWV3X2tpbmQ6CiAgICAgICAgIFBBU19BU1NFUlQoZGlyZWN0b3J5LT5kaXJl
Y3Rvcnlfa2luZCA9PSBwYXNfc2VncmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJlY3Rvcnlfa2luZCk7
CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9k
aXJlY3RvcnkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkuaAkocmV2aXNpb24gMjc5OTY0KQorKysgU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5LmgJKHdv
cmtpbmcgY29weSkKQEAgLTc2LDMwICs3NiwyMyBAQCBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfZGly
ZWN0b3J5X2JpdHZlY3RvCiAgICAgLyogRW1wdHkgbWVhbnMgdGhhdCB0aGUgcGFnZSBoYXMgc3R1
ZmYgdGhhdCBjYW4gYmUgZGVjb21taXR0ZWQuIEhvd2V2ZXIsIHRoaXMgYml0IGhhcyBubyBtZWFu
aW5nIGlmCiAgICAgICAgdGhlIGVsaWdpYmxlIGJpdCBpcyBub3Qgc2V0LiAqLwogICAgIHVuc2ln
bmVkIGVtcHR5X2JpdHM7Ci0KLSAgICAvKiBUYWJsZWQgbWVhbnMgdGhhdCB3ZSBoYXZlIHByZXZp
b3VzbHkgZm91bmQgdGhpcyBwYWdlIHRvIGJlIHRvdGFsbHkgZnJlZSBvZiBvYmplY3RzLCBzbyB3
ZSdkIGxpa2UKLSAgICAgICB0byBkZWZlciBhbGxvY2F0aW5nIGluIHRoZSBwYWdlIHVudGlsIHdl
IGFsbG9jYXRlIGluIHBhZ2VzIHRoYXQgYXJlbid0IHRvdGFsbHkgZnJlZS4gKi8KLSAgICB1bnNp
Z25lZCB0YWJsZWRfYml0czsKIH07CiAKIC8qIEZJWE1FOiBBdHRlbXB0IHRvIGludHJvZHVjZSBj
b2RlIHRvIHBhY2sgdGhlIGJpdHZlY3RvciBpZiB3ZSBkb24ndCBuZWVkIHRoZSBlbXB0eSBiaXRz
LiBDdXJyZW50bHkKICAgIHRoaXMgaXMgbm90IHVzZWQsIGJ1dCBzaG91bGQgYmUuICovCiBzdHJ1
Y3QgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3NpbXBsZV9iaXR2ZWN0b3Jfc2VnbWVudCB7CiAg
ICAgdW5zaWduZWQgZWxpZ2libGVfYml0czsKLSAgICB1bnNpZ25lZCB0YWJsZWRfYml0czsKIH07
CiAKICNkZWZpbmUgUEFTX1NFR1JFR0FURURfRElSRUNUT1JZX0JJVFZFQ1RPUl9TRUdNRU5UX0lO
SVRJQUxJWkVSIFwKICAgICAoKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9iaXR2ZWN0b3Jfc2Vn
bWVudCl7IFwKICAgICAgICAgLmVsaWdpYmxlX2JpdHMgPSAwLCBcCi0gICAgICAgIC5lbXB0eV9i
aXRzID0gMCwgXAotICAgICAgICAudGFibGVkX2JpdHMgPSAwIFwKKyAgICAgICAgLmVtcHR5X2Jp
dHMgPSAwIFwKICAgICB9KQogCiAjZGVmaW5lIFBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9TSU1Q
TEVfQklUVkVDVE9SX1NFR01FTlRfSU5JVElBTElaRVIgXAogICAgICgocGFzX3NlZ3JlZ2F0ZWRf
ZGlyZWN0b3J5X3NpbXBsZV9iaXR2ZWN0b3Jfc2VnbWVudCl7IFwKLSAgICAgICAgLmVsaWdpYmxl
X2JpdHMgPSAwLCBcCi0gICAgICAgIC50YWJsZWRfYml0cyA9IDAgXAorICAgICAgICAuZWxpZ2li
bGVfYml0cyA9IDAgXAogICAgIH0pCiAKIFBBU19ERUNMQVJFX1NFR01FTlRFRF9WRUNUT1IocGFz
X3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3NlZ21lbnRlZF9iaXR2ZWN0b3JzLApAQCAtMTI3LDIyICsx
MjAsMTggQEAgc3RydWN0IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeSB7CiAKICNkZWZpbmUgUEFT
X1NFR1JFR0FURURfRElSRUNUT1JZX0JJVFNfRUxJR0lCTEVfU0hJRlQgICAgICAgMHUKICNkZWZp
bmUgUEFTX1NFR1JFR0FURURfRElSRUNUT1JZX0JJVFNfRU1QVFlfU0hJRlQgICAgICAgICAgMXUK
LSNkZWZpbmUgUEFTX1NFR1JFR0FURURfRElSRUNUT1JZX0JJVFNfVEFCTEVEX1NISUZUICAgICAg
ICAgMnUKIAotI2RlZmluZSBQQVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllfQklUU19NSVNDX1NISUZU
ICAgICAgICAgICAzdQotI2RlZmluZSBQQVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllfQklUU19PVEhF
Ul9NSVNDX1NISUZUICAgICA0dQorI2RlZmluZSBQQVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllfQklU
U19NSVNDX1NISUZUICAgICAgICAgICAydQorI2RlZmluZSBQQVNfU0VHUkVHQVRFRF9ESVJFQ1RP
UllfQklUU19PVEhFUl9NSVNDX1NISUZUICAgICAzdQogCiAjZGVmaW5lIFBBU19TRUdSRUdBVEVE
X0RJUkVDVE9SWV9CSVRTX0VMSUdJQkxFX01BU0sgXAogICAgICgxdSA8PCBQQVNfU0VHUkVHQVRF
RF9ESVJFQ1RPUllfQklUU19FTElHSUJMRV9TSElGVCkKICNkZWZpbmUgUEFTX1NFR1JFR0FURURf
RElSRUNUT1JZX0JJVFNfRU1QVFlfTUFTSyBcCiAgICAgKDF1IDw8IFBBU19TRUdSRUdBVEVEX0RJ
UkVDVE9SWV9CSVRTX0VNUFRZX1NISUZUKQotI2RlZmluZSBQQVNfU0VHUkVHQVRFRF9ESVJFQ1RP
UllfQklUU19UQUJMRURfTUFTSyBcCi0gICAgKDF1IDw8IFBBU19TRUdSRUdBVEVEX0RJUkVDVE9S
WV9CSVRTX1RBQkxFRF9TSElGVCkKIAogI2RlZmluZSBQQVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllf
QklUU19WSUVXX01BU0sgXAogICAgIChQQVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllfQklUU19FTElH
SUJMRV9NQVNLIHwgXAotICAgICBQQVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllfQklUU19FTVBUWV9N
QVNLIHwgXAotICAgICBQQVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllfQklUU19UQUJMRURfTUFTSykK
KyAgICAgUEFTX1NFR1JFR0FURURfRElSRUNUT1JZX0JJVFNfRU1QVFlfTUFTSykKIAogI2RlZmlu
ZSBQQVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllfQklUU19NSVNDX01BU0sgXAogICAgICgxdSA8PCBQ
QVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllfQklUU19NSVNDX1NISUZUKQpAQCAtMTU0LDE2ICsxNDMs
OSBAQCBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5IHsKICAgICBQQVNfU0VHUkVHQVRF
RF9ESVJFQ1RPUllfQklUU19FTElHSUJMRV9NQVNLCiAjZGVmaW5lIFBBU19TRUdSRUdBVEVEX0RJ
UkVDVE9SWV9CSVRTX2VtcHR5X01BU0sgXAogICAgIFBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9C
SVRTX0VNUFRZX01BU0sKLSNkZWZpbmUgUEFTX1NFR1JFR0FURURfRElSRUNUT1JZX0JJVFNfdGFi
bGVkX01BU0sgXAotICAgIFBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9CSVRTX1RBQkxFRF9NQVNL
Ci0KLSNkZWZpbmUgUEFTX1NFR1JFR0FURURfRElSRUNUT1JZX0JJVFNfZWxpZ2libGVfQVZBSUxB
QkxFX0lOX0JJQVNJTkcgICAgIHRydWUKLSNkZWZpbmUgUEFTX1NFR1JFR0FURURfRElSRUNUT1JZ
X0JJVFNfZW1wdHlfQVZBSUxBQkxFX0lOX0JJQVNJTkcgIGZhbHNlCi0jZGVmaW5lIFBBU19TRUdS
RUdBVEVEX0RJUkVDVE9SWV9CSVRTX3RhYmxlZF9BVkFJTEFCTEVfSU5fQklBU0lORyAgICAgICB0
cnVlCiAKIHN0cnVjdCBQQVNfQUxJR05FRChzaXplb2YocGFzX3ZlcnNpb25lZF9maWVsZCkpIHBh
c19zZWdyZWdhdGVkX2RpcmVjdG9yeV9kYXRhIHsKLSAgICBwYXNfdmVyc2lvbmVkX2ZpZWxkIGZp
cnN0X2VsaWdpYmxlX2J1dF9ub3RfdGFibGVkOwotICAgIHBhc192ZXJzaW9uZWRfZmllbGQgZmly
c3RfZWxpZ2libGVfYW5kX3RhYmxlZDsKKyAgICBwYXNfdmVyc2lvbmVkX2ZpZWxkIGZpcnN0X2Vs
aWdpYmxlOwogICAgIHBhc192ZXJzaW9uZWRfZmllbGQgbGFzdF9lbXB0eV9wbHVzX29uZTsgLyog
WmVybyBtZWFucyB0aGVyZSBhcmVuJ3QgYW55LiAqLwogCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGly
ZWN0b3J5X3NlZ21lbnRlZF9iaXR2ZWN0b3JzIGJpdHZlY3RvcnM7CkBAIC0yNjEsNyArMjQzLDYg
QEAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3Nwb29mX2lubGluZV9zZQogICAgIAogICAgIHNl
Z21lbnQuZWxpZ2libGVfYml0cyA9IChiaXRzID4+IFBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9C
SVRTX0VMSUdJQkxFX1NISUZUKSAmIDF1OwogICAgIHNlZ21lbnQuZW1wdHlfYml0cyA9IChiaXRz
ID4+IFBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9CSVRTX0VNUFRZX1NISUZUKSAmIDF1OwotICAg
IHNlZ21lbnQudGFibGVkX2JpdHMgPSAoYml0cyA+PiBQQVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllf
QklUU19UQUJMRURfU0hJRlQpICYgMXU7CiAKICAgICByZXR1cm4gc2VnbWVudDsKIH0KQEAgLTMw
NSwxMCArMjg2LDYgQEAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3Nwb29mX2lubGluZV9zZQog
ICAgICAgICBfdmFsdWUgPSAodmFsdWUpOyBcCiAgICAgICAgIFwKICAgICAgICAgUEFTX1RFU1RJ
TkdfQVNTRVJUKF9pbmRleCA8IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9zaXplKGRpcmVjdG9y
eSkpOyBcCi0gICAgICAgIFBBU19URVNUSU5HX0FTU0VSVCggXAotICAgICAgICAgICAgIV92YWx1
ZSBcCi0gICAgICAgICAgICB8fCBfZGlyZWN0b3J5LT5kaXJlY3Rvcnlfa2luZCAhPSBwYXNfc2Vn
cmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeV9raW5kIFwKLSAgICAgICAgICAgIHx8IFBBU19TRUdS
RUdBVEVEX0RJUkVDVE9SWV9CSVRTXyMjYml0X25hbWUjI19BVkFJTEFCTEVfSU5fQklBU0lORyk7
IFwKICAgICAgICAgXAogICAgICAgICBpZiAoIV9pbmRleCkgeyBcCiAgICAgICAgICAgICBfcmVz
dWx0ID0gcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2JpdHNfc2V0X2J5X21hc2soIFwKQEAgLTQw
NywzNyArMzg0LDE1IEBAIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9zdGFydF9zaGFyaW5nX2kK
ICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZ2V0X3NoYXJpbmdfcGF5bG9hZChkaXJlY3Rv
cnksIGhlYXBfbG9ja19ob2xkX21vZGUpOwogfQogCi1zdGF0aWMgaW5saW5lIHBhc192ZXJzaW9u
ZWRfZmllbGQqIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9kYXRhX2dldF9maXJzdF9lbGlnaWJs
ZV9wdHIoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2RhdGEqIGRhdGEsCi0gICAgcGFz
X3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2ZpcnN0X2VsaWdpYmxlX2tpbmQga2luZCkKLXsKLSAgICBz
d2l0Y2ggKGtpbmQpIHsKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9maXJzdF9l
bGlnaWJsZV9idXRfbm90X3RhYmxlZF9raW5kOgotICAgICAgICByZXR1cm4gJmRhdGEtPmZpcnN0
X2VsaWdpYmxlX2J1dF9ub3RfdGFibGVkOwotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0
b3J5X2ZpcnN0X2VsaWdpYmxlX2FuZF90YWJsZWRfa2luZDoKLSAgICAgICAgcmV0dXJuICZkYXRh
LT5maXJzdF9lbGlnaWJsZV9hbmRfdGFibGVkOwotICAgIH0KLSAgICBQQVNfQVNTRVJUKCEiU2hv
dWxkIG5vdCBiZSByZWFjaGVkIik7Ci0gICAgcmV0dXJuIE5VTEw7Ci19Ci0KIFBBU19BUEkgdm9p
ZCBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfbWluaW1pemVfZmlyc3RfZWxpZ2libGUoCiAgICAg
cGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBkaXJlY3RvcnksCi0gICAgcGFzX3NlZ3JlZ2F0ZWRf
ZGlyZWN0b3J5X2ZpcnN0X2VsaWdpYmxlX2tpbmQga2luZCwKICAgICBzaXplX3QgaW5kZXgpOwog
CiBQQVNfQVBJIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3VwZGF0ZV9maXJzdF9lbGln
aWJsZV9hZnRlcl9zZWFyY2goCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBkaXJlY3Rv
cnksCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2ZpcnN0X2VsaWdpYmxlX2tpbmQga2lu
ZCwKICAgICBwYXNfdmVyc2lvbmVkX2ZpZWxkIGZpcnN0X2VsaWdpYmxlLAogICAgIHNpemVfdCBu
ZXdfdmFsdWUpOwogCi1QQVNfQVBJIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3ZpZXdf
ZGlkX2JlY29tZV9lbGlnaWJsZV9hdF9pbmRleF93aXRob3V0X2JpYXNpbmdfdXBkYXRlKAotICAg
IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgIHNpemVfdCBpbmRleCk7
Ci1QQVNfQVBJIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9l
bGlnaWJsZV93aXRob3V0X2JpYXNpbmdfdXBkYXRlKAotICAgIHBhc19zZWdyZWdhdGVkX2RpcmVj
dG9yeSogZGlyZWN0b3J5LAotICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldyk7CiBQQVNfQVBJ
IGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbGlnaWJsZV9h
dF9pbmRleCgKICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKICAgICBz
aXplX3QgaW5kZXgpOwpAQCAtNDYzLDEyICs0MTgsNiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgcGFz
X3NlZ3JlZ2F0ZWRfZGlyZWN0CiAgICAgcmV0dXJuIFBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9H
RVRfQklUKGRpcmVjdG9yeSwgaW5kZXgsIGVtcHR5KTsKIH0KIAotc3RhdGljIGlubGluZSBib29s
IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc190YWJsZWQoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRf
ZGlyZWN0b3J5KiBkaXJlY3RvcnksIHNpemVfdCBpbmRleCkKLXsKLSAgICByZXR1cm4gUEFTX1NF
R1JFR0FURURfRElSRUNUT1JZX0dFVF9CSVQoZGlyZWN0b3J5LCBpbmRleCwgdGFibGVkKTsKLX0K
LQogUEFTX0FQSSBib29sIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19jb21taXR0ZWQoCiAg
ICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBkaXJlY3RvcnksIHNpemVfdCBpbmRleCk7CiAK
QEAgLTQ4MywzMCArNDMyLDE1IEBAIFBBU19BUEkgc2l6ZV90IHBhc19zZWdyZWdhdGVkX2RpcmVj
dG9yeV8KIAogc3RhdGljIGlubGluZSBwYXNfdmVyc2lvbmVkX2ZpZWxkIHBhc19zZWdyZWdhdGVk
X2RpcmVjdG9yeV9nZXRfZmlyc3RfZWxpZ2libGVfaW1wbCgKICAgICBwYXNfc2VncmVnYXRlZF9k
aXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZmlyc3Rf
ZWxpZ2libGVfa2luZCBraW5kLAogICAgIHBhc192ZXJzaW9uZWRfZmllbGQgKCpyZWFkKShwYXNf
dmVyc2lvbmVkX2ZpZWxkKiBmaWVsZCkpCiB7CiAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5
X2RhdGEqIGRhdGE7Ci0gICAgdW5zaWduZWQgZXhwZWN0ZWQ7CiAKICAgICBkYXRhID0gcGFzX3Nl
Z3JlZ2F0ZWRfZGlyZWN0b3J5X2RhdGFfcHRyX2xvYWQoJmRpcmVjdG9yeS0+ZGF0YSk7CiAgICAg
aWYgKGRhdGEpCi0gICAgICAgIHJldHVybiByZWFkKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9k
YXRhX2dldF9maXJzdF9lbGlnaWJsZV9wdHIoZGF0YSwga2luZCkpOworICAgICAgICByZXR1cm4g
cmVhZCgmZGF0YS0+Zmlyc3RfZWxpZ2libGUpOwogCi0gICAgc3dpdGNoIChraW5kKSB7Ci0gICAg
Y2FzZSBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZmlyc3RfZWxpZ2libGVfYnV0X25vdF90YWJs
ZWRfa2luZDoKLSAgICAgICAgZXhwZWN0ZWQgPSBQQVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllfQklU
U19FTElHSUJMRV9NQVNLOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVk
X2RpcmVjdG9yeV9maXJzdF9lbGlnaWJsZV9hbmRfdGFibGVkX2tpbmQ6Ci0gICAgICAgIGV4cGVj
dGVkID0KLSAgICAgICAgICAgIFBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9CSVRTX0VMSUdJQkxF
X01BU0sgfAotICAgICAgICAgICAgUEFTX1NFR1JFR0FURURfRElSRUNUT1JZX0JJVFNfVEFCTEVE
X01BU0s7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICAKLSAgICBpZiAoKGRpcmVjdG9yeS0+
Yml0cyAmIChQQVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllfQklUU19FTElHSUJMRV9NQVNLIHwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBQQVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllfQklUU19U
QUJMRURfTUFTSykpCi0gICAgICAgID09IGV4cGVjdGVkKQorICAgIGlmIChkaXJlY3RvcnktPmJp
dHMgJiBQQVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllfQklUU19FTElHSUJMRV9NQVNLKQogICAgICAg
ICByZXR1cm4gcGFzX3ZlcnNpb25lZF9maWVsZF9jcmVhdGVfd2l0aF9pbnZhbGlkX3ZlcnNpb24o
MCk7CiAKICAgICByZXR1cm4gIXBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3ZpZXdfaXNf
bnVsbCgmZGlyZWN0b3J5LT5maXJzdF92aWV3KQpAQCAtNTE1LDI3ICs0NDksMjQgQEAgc3RhdGlj
IGlubGluZSBwYXNfdmVyc2lvbmVkX2ZpZWxkIHBhc19zZQogfQogCiBzdGF0aWMgaW5saW5lIHBh
c192ZXJzaW9uZWRfZmllbGQgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dldF9maXJzdF9lbGln
aWJsZSgKLSAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAgICBwYXNf
c2VncmVnYXRlZF9kaXJlY3RvcnlfZmlyc3RfZWxpZ2libGVfa2luZCBraW5kKQorICAgIHBhc19z
ZWdyZWdhdGVkX2RpcmVjdG9yeSogZGlyZWN0b3J5KQogewogICAgIHJldHVybiBwYXNfc2VncmVn
YXRlZF9kaXJlY3RvcnlfZ2V0X2ZpcnN0X2VsaWdpYmxlX2ltcGwoCi0gICAgICAgIGRpcmVjdG9y
eSwga2luZCwgcGFzX3ZlcnNpb25lZF9maWVsZF9yZWFkKTsKKyAgICAgICAgZGlyZWN0b3J5LCBw
YXNfdmVyc2lvbmVkX2ZpZWxkX3JlYWQpOwogfQogCiBzdGF0aWMgaW5saW5lIHBhc192ZXJzaW9u
ZWRfZmllbGQgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dldF9maXJzdF9lbGlnaWJsZV90b3Ju
KAotICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgIHBhc19zZWdy
ZWdhdGVkX2RpcmVjdG9yeV9maXJzdF9lbGlnaWJsZV9raW5kIGtpbmQpCisgICAgcGFzX3NlZ3Jl
Z2F0ZWRfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCiB7CiAgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVk
X2RpcmVjdG9yeV9nZXRfZmlyc3RfZWxpZ2libGVfaW1wbCgKLSAgICAgICAgZGlyZWN0b3J5LCBr
aW5kLCBwYXNfdmVyc2lvbmVkX2ZpZWxkX3JlYWRfdG9ybik7CisgICAgICAgIGRpcmVjdG9yeSwg
cGFzX3ZlcnNpb25lZF9maWVsZF9yZWFkX3Rvcm4pOwogfQogCiBzdGF0aWMgaW5saW5lIHBhc192
ZXJzaW9uZWRfZmllbGQgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3dhdGNoX2ZpcnN0X2VsaWdp
YmxlKAotICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgIHBhc19z
ZWdyZWdhdGVkX2RpcmVjdG9yeV9maXJzdF9lbGlnaWJsZV9raW5kIGtpbmQpCisgICAgcGFzX3Nl
Z3JlZ2F0ZWRfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCiB7CiAgICAgcmV0dXJuIHBhc19zZWdyZWdh
dGVkX2RpcmVjdG9yeV9nZXRfZmlyc3RfZWxpZ2libGVfaW1wbCgKLSAgICAgICAgZGlyZWN0b3J5
LCBraW5kLCBwYXNfdmVyc2lvbmVkX2ZpZWxkX3JlYWRfdG9fd2F0Y2gpOworICAgICAgICBkaXJl
Y3RvcnksIHBhc192ZXJzaW9uZWRfZmllbGRfcmVhZF90b193YXRjaCk7CiB9CiAKIHN0YXRpYyBp
bmxpbmUgcGFzX3ZlcnNpb25lZF9maWVsZCBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZ2V0X2xh
c3RfZW1wdHlfcGx1c19vbmVfaW1wbCgKQEAgLTYxMyw4ICs1NDQsNyBAQCBQQVNfQVBJIHZvaWQg
cGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2FwCiAKIC8qIFRoaXMgaGFzIGEgbWF4aW1hbGx5IGlu
Y2x1c2lvbiB3YXkgb2YgdHJlYXRpbmcgbWVtb3J5IHRoYXQgbXVsdGlwbGUgdmlld3MgbWF5IGhh
dmUgZGlicyBvbi4gRm9yCiAgICBleGFtcGxlLCBzaGFyZWQgcGFnZSBkaXJlY3RvcmllcyBhbmQg
cGFydGlhbCB2aWV3cyBpbiBzaXplIGRpcmVjdG9yaWVzIG1heSByZXBvcnQgb24gdGhlIHNhbWUK
LSAgIGJ5dGVzIG9mIG1lbW9yeS4gRXhjbHVzaXZlIHZpZXdzIGluIGEgZ2xvYmFsIHNpemUgZGly
ZWN0b3J5IG1heSByZXBvcnQgb24gdGhlIHNhbWUgbWVtb3J5IGFzCi0gICBiaWFzaW5nIHZpZXdz
IGluIGJpYXNpbmcgZGlyZWN0b3JpZXMuICovCisgICBieXRlcyBvZiBtZW1vcnkuICovCiBQQVNf
QVBJIHBhc19oZWFwX3N1bW1hcnkKIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9jb21wdXRlX3N1
bW1hcnkocGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBkaXJlY3RvcnkpOwogCkluZGV4OiBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfYml0
X3JlZmVyZW5jZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9iaXRfcmVmZXJlbmNlLmgJKHJldmlzaW9uIDI3
OTk2NCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVk
X2RpcmVjdG9yeV9iaXRfcmVmZXJlbmNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEyNSwxMCArMTI1
LDYgQEAgc3RhdGljIGlubGluZSBib29sIHBhc19zZWdyZWdhdGVkX2RpcmVjdAogICAgICAgICBf
dmFsdWUgPSAodmFsdWUpOyBcCiAgICAgICAgIFwKICAgICAgICAgUEFTX1RFU1RJTkdfQVNTRVJU
KCFwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfYml0X3JlZmVyZW5jZV9pc19udWxsKF9yZWZlcmVu
Y2UpKTsgXAotICAgICAgICBQQVNfVEVTVElOR19BU1NFUlQoIFwKLSAgICAgICAgICAgICFfdmFs
dWUgXAotICAgICAgICAgICAgfHwgX2RpcmVjdG9yeS0+ZGlyZWN0b3J5X2tpbmQgIT0gcGFzX3Nl
Z3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3Rvcnlfa2luZCBcCi0gICAgICAgICAgICB8fCBQQVNfU0VH
UkVHQVRFRF9ESVJFQ1RPUllfQklUU18jI2JpdF9uYW1lIyNfQVZBSUxBQkxFX0lOX0JJQVNJTkcp
OyBcCiAgICAgICAgIFwKICAgICAgICAgaWYgKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9iaXRf
cmVmZXJlbmNlX2lzX2lubGluZShfcmVmZXJlbmNlKSkgeyBcCiAgICAgICAgICAgICBmb3IgKDs7
KSB7IFwKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdh
dGVkX2RpcmVjdG9yeV9pbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lubGluZXMuaAkocmV2aXNp
b24gMjc5OTY0KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3Jl
Z2F0ZWRfZGlyZWN0b3J5X2lubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMjQyLDggKzI0Miw3
IEBAIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pdGVyYXRlX2JhY2t3YXIKIAogc3RhdGljIFBB
U19BTFdBWVNfSU5MSU5FIGJvb2wKIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pdGVyYXRlX2Zv
cndhcmRfdG9fdGFrZV9maXJzdF9lbGlnaWJsZSgKLSAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3Rv
cnlfaXRlcmF0ZV9jb25maWcqIGNvbmZpZywKLSAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlf
Zmlyc3RfZWxpZ2libGVfa2luZCBmaXJzdF9lbGlnaWJsZV9raW5kKQorICAgIHBhc19zZWdyZWdh
dGVkX2RpcmVjdG9yeV9pdGVyYXRlX2NvbmZpZyogY29uZmlnKQogewogICAgIHN0YXRpYyBjb25z
dCBib29sIHZlcmJvc2UgPSBmYWxzZTsKICAgICBzdGF0aWMgY29uc3QgYm9vbCBzaW1wbGVfZWxp
Z2liaWxpdHkgPSBmYWxzZTsKQEAgLTI1OSw4ICsyNTgsNyBAQCBwYXNfc2VncmVnYXRlZF9kaXJl
Y3RvcnlfaXRlcmF0ZV9mb3J3YXJkCiAgICAgICAgIGlmICh2ZXJib3NlKQogICAgICAgICAgICAg
cGFzX2xvZygicHJldmlvdXNfc2l6ZSA9ICV6dVxuIiwgcHJldmlvdXNfc2l6ZSk7CiAKLSAgICAg
ICAgZmlyc3RfZWxpZ2libGUgPSBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfd2F0Y2hfZmlyc3Rf
ZWxpZ2libGUoCi0gICAgICAgICAgICBjb25maWctPmRpcmVjdG9yeSwgZmlyc3RfZWxpZ2libGVf
a2luZCk7CisgICAgICAgIGZpcnN0X2VsaWdpYmxlID0gcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5
X3dhdGNoX2ZpcnN0X2VsaWdpYmxlKGNvbmZpZy0+ZGlyZWN0b3J5KTsKIAogICAgICAgICBpZiAo
c2ltcGxlX2VsaWdpYmlsaXR5KQogICAgICAgICAgICAgY29uZmlnLT5pbmRleCA9IDA7CkBAIC0z
MDUsNyArMzAzLDYgQEAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2l0ZXJhdGVfZm9yd2FyZAog
ICAgICAgICAKICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3VwZGF0ZV9maXJzdF9l
bGlnaWJsZV9hZnRlcl9zZWFyY2goCiAgICAgICAgICAgICBjb25maWctPmRpcmVjdG9yeSwKLSAg
ICAgICAgICAgIGZpcnN0X2VsaWdpYmxlX2tpbmQsCiAgICAgICAgICAgICBmaXJzdF9lbGlnaWJs
ZSwKICAgICAgICAgICAgIGNvbmZpZy0+Zmlyc3RfY29uc2lkZXJlZCk7CiAgICAgICAgIApJbmRl
eDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0
b3J5X2tpbmQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfa2luZC5oCShyZXZpc2lvbiAyNzk5NjQpCisrKyBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlf
a2luZC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
YykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKGMp
IDIwMjAtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTM0LDE2ICszNCwxMyBAQCBQQVNfQkVHSU5fRVhURVJOX0M7
CiAgICAKICAgICAgICAtIGRpcmVjdG9yeQogICAgICAgICAgICAtIHNpemUgZGlyZWN0b3J5Ci0g
ICAgICAgICAgICAgICAtIGdsb2JhbCBzaXplIGRpcmVjdG9yeQotICAgICAgICAgICAgICAgLSBi
aWFzaW5nIGRpcmVjdG9yeQogICAgICAgICAgICAtIHNoYXJlZCBwYWdlIGRpcmVjdG9yeQogICAg
CiAgICBPbmx5IHRoZSB0eXBlcyBhdCB0aGUgbGVhdmVzIGFyZSBpbnN0YW50aWFibGUuIFRoZSBw
YXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfa2luZCBlbnVtIGlzIGZvcgogICAgZGVzY3JpYmluZyB0
aGUgaW5zdGFudGlhYmxlIGxlYXZlcy4gKi8KIAogZW51bSBwYXNfc2VncmVnYXRlZF9kaXJlY3Rv
cnlfa2luZCB7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2tpbmQs
Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3Rvcnlfa2luZCwKKyAgICBwYXNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeV9raW5kLAogICAgIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9w
YWdlX2RpcmVjdG9yeV9raW5kCiB9OwogCkBAIC01MywxMCArNTAsOCBAQCBzdGF0aWMgaW5saW5l
IGNvbnN0IGNoYXIqIHBhc19zZWdyZWdhdGVkCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5
X2tpbmQga2luZCkKIHsKICAgICBzd2l0Y2ggKGtpbmQpIHsKLSAgICBjYXNlIHBhc19zZWdyZWdh
dGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9raW5kOgotICAgICAgICByZXR1cm4gInNlZ3JlZ2F0
ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5IjsKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2JpYXNp
bmdfZGlyZWN0b3J5X2tpbmQ6Ci0gICAgICAgIHJldHVybiAic2VncmVnYXRlZF9iaWFzaW5nX2Rp
cmVjdG9yeSI7CisgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9raW5kOgor
ICAgICAgICByZXR1cm4gInNlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkiOwogICAgIGNhc2UgcGFz
X3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5X2tpbmQ6CiAgICAgICAgIHJldHVybiAi
c2VncmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJlY3RvcnkiOwogICAgIH0KSW5kZXg6IFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3LmMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3Jl
Z2F0ZWRfZXhjbHVzaXZlX3ZpZXcuYwkocmV2aXNpb24gMjc5OTY0KQorKysgU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcuYwkod29y
a2luZyBjb3B5KQpAQCAtMzYsMTAgKzM2LDEwIEBACiAjaW5jbHVkZSAicGFzX3BhZ2Vfc2hhcmlu
Z19wb29sLmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfaGVhcC5oIgogI2luY2x1ZGUgInBh
c19zZWdyZWdhdGVkX3BhZ2VfaW5saW5lcy5oIgotI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeS5oIgorI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3NpemVfZGly
ZWN0b3J5LmgiCiAKIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3KiBwYXNfc2VncmVnYXRl
ZF9leGNsdXNpdmVfdmlld19jcmVhdGUoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVf
ZGlyZWN0b3J5KiBkaXJlY3RvcnksCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnkq
IGRpcmVjdG9yeSwKICAgICBzaXplX3QgaW5kZXgpCiB7CiAgICAgc3RhdGljIGNvbnN0IGJvb2wg
dmVyYm9zZSA9IGZhbHNlOwpAQCAtNTYsNjcgKzU2LDE2IEBAIHBhc19zZWdyZWdhdGVkX2V4Y2x1
c2l2ZV92aWV3KiBwYXNfc2VncmUKIAogICAgIC8qIFdlIGFsbG9jYXRlIHRoaXMgbGF6aWx5LiAq
LwogICAgIHJlc3VsdC0+cGFnZV9ib3VuZGFyeSA9IE5VTEw7Ci0gICAgcGFzX2NvbXBhY3Rfc2Vn
cmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX3N0b3JlKCZyZXN1bHQtPmRpcmVjdG9y
eSwgZGlyZWN0b3J5KTsKKyAgICBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
X3B0cl9zdG9yZSgmcmVzdWx0LT5kaXJlY3RvcnksIGRpcmVjdG9yeSk7CiAgICAgcmVzdWx0LT5p
bmRleCA9ICh1bnNpZ25lZClpbmRleDsKICAgICBQQVNfQVNTRVJUKHJlc3VsdC0+aW5kZXggPT0g
aW5kZXgpOwotICAgIHJlc3VsdC0+b3duZXJzaGlwX2tpbmQgPSBwYXNfc2VncmVnYXRlZF9leGNs
dXNpdmVfdmlld19ub3Rfb3duZWQ7CisgICAgcmVzdWx0LT5pc19vd25lZCA9IGZhbHNlOwogICAg
IHBhc19sb2NrX2NvbnN0cnVjdCgmcmVzdWx0LT5jb21taXRfbG9jayk7CiAgICAgcGFzX2xvY2tf
Y29uc3RydWN0KCZyZXN1bHQtPm93bmVyc2hpcF9sb2NrKTsKIAogICAgIHJldHVybiByZXN1bHQ7
CiB9CiAKLWJvb2wgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfc2hvdWxkX3RhYmxlKAot
ICAgIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3KiB2aWV3LAotICAgIHBhc19zZWdyZWdh
dGVkX3BhZ2VfY29uZmlnKiBwYWdlX2NvbmZpZykKLXsKLSAgICBpZiAoIXBhc19zZWdyZWdhdGVk
X2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5kX2lzX293bmVkKHZpZXctPm93bmVyc2hpcF9r
aW5kKSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICByZXR1cm4gIXBhc19zZWdyZWdhdGVk
X3BhZ2VfZm9yX2JvdW5kYXJ5KHZpZXctPnBhZ2VfYm91bmRhcnksICpwYWdlX2NvbmZpZyktPm51
bV9ub25fZW1wdHlfd29yZHM7Ci19Ci0KLXZvaWQgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX2lz
aF92aWV3X25vdGVfZWxpZ2liaWxpdHlfaW1wbCgKLSAgICBwYXNfc2VncmVnYXRlZF9wYWdlKiBw
YWdlLAotICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgIHBhc19z
ZWdyZWdhdGVkX3ZpZXcgZWxpZ2libGVfb3duaW5nX3ZpZXcsCi0gICAgdW5zaWduZWQgdmlld19p
bmRleCkKLXsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7Ci0KLSAgICBQ
QVNfVEVTVElOR19BU1NFUlQocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19lbGlnaWJsZV9raW5kKGVs
aWdpYmxlX293bmluZ192aWV3KSk7Ci0gICAgCi0gICAgaWYgKHZlcmJvc2UpCi0gICAgICAgIHBh
c19sb2coIk5vdGluZyBlbGlnaWJpbGl0eSBpbiBleGNsdXNpdmUgJXAvJXAuXG4iLCBlbGlnaWJs
ZV9vd25pbmdfdmlldywgcGFnZSk7Ci0gICAgICAgIAotICAgIGlmIChwYWdlLT5sb2NrX3B0cikK
LSAgICAgICAgcGFzX2xvY2tfdGVzdGluZ19hc3NlcnRfaGVsZChwYWdlLT5sb2NrX3B0cik7Ci0g
ICAgCi0gICAgaWYgKHBhZ2UtPmlzX2luX3VzZV9mb3JfYWxsb2NhdGlvbikgewotICAgICAgICBp
ZiAodmVyYm9zZSkKLSAgICAgICAgICAgIHBhc19sb2coIkRlZmVycmluZyBlbGlnaWJpbGl0eSBu
b3RpZmljYXRpb24uXG4iKTsKLSAgICAgICAgcGFnZS0+ZWxpZ2liaWxpdHlfbm90aWZpY2F0aW9u
X2hhc19iZWVuX2RlZmVycmVkID0gdHJ1ZTsKLSAgICB9IGVsc2UgewotICAgICAgICBpZiAodmVy
Ym9zZSkKLSAgICAgICAgICAgIHBhc19sb2coIlRlbGxpbmcgdGhlIGRpcmVjdG9yeSB0aGF0IHdl
IGFyZSBlbGlnaWJsZS5cbiIpOwotICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfdmll
d19kaWRfYmVjb21lX2VsaWdpYmxlX2F0X2luZGV4KGRpcmVjdG9yeSwgdmlld19pbmRleCk7Ci0g
ICAgfQotICAgIAotICAgIC8qIENsZWFyIHRoZSBpbmVsaWdpYmxlIGJpdCBmcm9tIHRoZSBvd25l
ciBmaWVsZC4gKi8KLSAgICBwYWdlLT5vd25lciA9IGVsaWdpYmxlX293bmluZ192aWV3OwotfQot
Ci12b2lkIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X25vdGVfZWxpZ2liaWxpdHkoCi0g
ICAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcqIHZpZXcsCi0gICAgcGFzX3NlZ3JlZ2F0
ZWRfcGFnZSogcGFnZSkKLXsKLSAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfaXNoX3ZpZXdf
bm90ZV9lbGlnaWJpbGl0eV9pbXBsKAotICAgICAgICBwYWdlLAotICAgICAgICAmcGFzX2NvbXBh
Y3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoJnZp
ZXctPmRpcmVjdG9yeSktPmJhc2UsCi0gICAgICAgIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92
aWV3X2FzX3ZpZXdfbm9uX251bGwodmlldyksCi0gICAgICAgIHZpZXctPmluZGV4KTsKLX0KLQog
dm9pZCBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19ub3RlX2VtcHRpbmVzcygKICAgICBw
YXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldyogdmlldywKICAgICBwYXNfc2VncmVnYXRlZF9w
YWdlKiBwYWdlKQpAQCAtMTMwLDE2ICs3OSwxNSBAQCB2b2lkIHBhc19zZWdyZWdhdGVkX2V4Y2x1
c2l2ZV92aWV3X25vdGVfCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBkaXJlY3Rvcnkg
PSAmcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRf
bm9uX251bGwoJnZpZXctPmRpcmVjdG9yeSktPmJhc2U7CisgICAgZGlyZWN0b3J5ID0gJnBhc19j
b21wYWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoJnZpZXct
PmRpcmVjdG9yeSktPmJhc2U7CiAgICAgdmlld19pbmRleCA9IHZpZXctPmluZGV4OwogICAgIAog
ICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV92aWV3X2RpZF9iZWNvbWVfZW1wdHlfYXRfaW5k
ZXgoZGlyZWN0b3J5LCB2aWV3X2luZGV4KTsKIH0KIAotcGFzX2hlYXBfc3VtbWFyeSBwYXNfc2Vn
cmVnYXRlZF9leGNsdXNpdmVfaXNoX3ZpZXdfY29tcHV0ZV9zdW1tYXJ5X2ltcGwoCi0gICAgcGFz
X3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcqIHZpZXcpCitzdGF0aWMgcGFzX2hlYXBfc3VtbWFy
eSBjb21wdXRlX3N1bW1hcnlfaW1wbChwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldyogdmll
dykKIHsKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIHNpemVfZGly
ZWN0b3J5OworICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBzaXplX2RpcmVjdG9y
eTsKICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkqIGRpcmVjdG9yeTsKICAgICBwYXNfc2Vn
cmVnYXRlZF9wYWdlX2NvbmZpZyogcGFnZV9jb25maWdfcHRyOwogICAgIHBhc19zZWdyZWdhdGVk
X3BhZ2VfY29uZmlnIHBhZ2VfY29uZmlnOwpAQCAtMTUwLDEyICs5OCwxMiBAQCBwYXNfaGVhcF9z
dW1tYXJ5IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2CiAgICAgc2l6ZV90IG9mZnNldDsKICAgICBz
aXplX3QgYmVnaW47CiAgICAgc2l6ZV90IGVuZDsKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxf
c2l6ZV9kaXJlY3RvcnlfZGF0YSogZGF0YTsKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeV9kYXRhKiBkYXRhOwogCi0gICAgc2l6ZV9kaXJlY3RvcnkgPSBwYXNfY29tcGFjdF9zZWdy
ZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgmdmlldy0+ZGly
ZWN0b3J5KTsKKyAgICBzaXplX2RpcmVjdG9yeSA9IHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoJnZpZXctPmRpcmVjdG9yeSk7CiAKLSAgICBp
ZiAoIXBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5kX2lzX293bmVk
KHZpZXctPm93bmVyc2hpcF9raW5kKSkgewotICAgICAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRf
Z2xvYmFsX3NpemVfZGlyZWN0b3J5X2NvbXB1dGVfc3VtbWFyeV9mb3JfdW5vd25lZF9leGNsdXNp
dmUoCisgICAgaWYgKCF2aWV3LT5pc19vd25lZCkgeworICAgICAgICByZXR1cm4gcGFzX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnlfY29tcHV0ZV9zdW1tYXJ5X2Zvcl91bm93bmVkX2V4Y2x1c2l2
ZSgKICAgICAgICAgICAgIHNpemVfZGlyZWN0b3J5KTsKICAgICB9CiAKQEAgLTE2NSw3ICsxMTMs
NyBAQCBwYXNfaGVhcF9zdW1tYXJ5IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2CiAgICAgCiAgICAg
cmVzdWx0ID0gcGFzX2hlYXBfc3VtbWFyeV9jcmVhdGVfZW1wdHkoKTsKIAotICAgIGRhdGEgPSBw
YXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJfbG9hZCgmc2l6ZV9k
aXJlY3RvcnktPmRhdGEpOworICAgIGRhdGEgPSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eV9kYXRhX3B0cl9sb2FkKCZzaXplX2RpcmVjdG9yeS0+ZGF0YSk7CiAgICAgYm91bmRhcnkgPSB2
aWV3LT5wYWdlX2JvdW5kYXJ5OwogICAgIHBhZ2UgPSBwYXNfc2VncmVnYXRlZF9wYWdlX2Zvcl9i
b3VuZGFyeShib3VuZGFyeSwgcGFnZV9jb25maWcpOwogCkBAIC0yMDksNyArMTU3LDcgQEAgcGFz
X2hlYXBfc3VtbWFyeSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdgogICAgIHBhc19oZWFwX3N1bW1h
cnkgcmVzdWx0OwogICAgIAogICAgIHBhc19sb2NrX2xvY2soJnZpZXctPm93bmVyc2hpcF9sb2Nr
KTsKLSAgICByZXN1bHQgPSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfaXNoX3ZpZXdfY29tcHV0
ZV9zdW1tYXJ5X2ltcGwodmlldyk7CisgICAgcmVzdWx0ID0gY29tcHV0ZV9zdW1tYXJ5X2ltcGwo
dmlldyk7CiAgICAgcGFzX2xvY2tfdW5sb2NrKCZ2aWV3LT5vd25lcnNoaXBfbG9jayk7CiAKICAg
ICByZXR1cm4gcmVzdWx0OwpAQCAtMjIwLDEzICsxNjgsMTMgQEAgdm9pZCBwYXNfc2VncmVnYXRl
ZF9leGNsdXNpdmVfdmlld19pbnN0YQogewogICAgIHZvaWQqIGJvdW5kYXJ5OwogICAgIHBhc19z
ZWdyZWdhdGVkX3BhZ2UqIHBhZ2U7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGly
ZWN0b3J5KiBkaXJlY3Rvcnk7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRp
cmVjdG9yeTsKICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZpZzsKICAg
ICBwYXNfcGFnZV9ncmFudWxlX3VzZV9jb3VudCogdXNlX2NvdW50czsKICAgICBwYXNfcGFnZV9n
cmFudWxlX3VzZV9jb3VudCogZnVsbF91c2VfY291bnRzOwogICAgIHNpemVfdCBudW1fZ3JhbnVs
ZXM7CiAKLSAgICBkaXJlY3RvcnkgPSBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXpl
X2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgmdmlldy0+ZGlyZWN0b3J5KTsKKyAgICBkaXJl
Y3RvcnkgPSBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkX25v
bl9udWxsKCZ2aWV3LT5kaXJlY3RvcnkpOwogICAgIHBhZ2VfY29uZmlnID0gKnBhc19zZWdyZWdh
dGVkX3BhZ2VfY29uZmlnX2tpbmRfZ2V0X2NvbmZpZyhkaXJlY3RvcnktPmJhc2UucGFnZV9jb25m
aWdfa2luZCk7CiAgICAgYm91bmRhcnkgPSB2aWV3LT5wYWdlX2JvdW5kYXJ5OwogICAgIHBhZ2Ug
PSBwYXNfc2VncmVnYXRlZF9wYWdlX2Zvcl9ib3VuZGFyeShib3VuZGFyeSwgcGFnZV9jb25maWcp
OwpAQCAtMjM3LDcgKzE4NSw3IEBAIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdf
aW5zdGEKICAgICBudW1fZ3JhbnVsZXMgPSAocGFnZV9jb25maWcuYmFzZS5wYWdlX3NpemUgLyBw
YWdlX2NvbmZpZy5iYXNlLmdyYW51bGVfc2l6ZSk7CiAKICAgICBmdWxsX3VzZV9jb3VudHMgPSBw
YXNfY29tcGFjdF90YWdnZWRfcGFnZV9ncmFudWxlX3VzZV9jb3VudF9wdHJfbG9hZF9ub25fbnVs
bCgKLSAgICAgICAgJnBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9nZXRfZXh0
ZW5kZWRfZGF0YShkaXJlY3RvcnkpLT5mdWxsX3VzZV9jb3VudHMpOworICAgICAgICAmcGFzX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZ2V0X2V4dGVuZGVkX2RhdGEoZGlyZWN0b3J5KS0+ZnVs
bF91c2VfY291bnRzKTsKICAgICAKICAgICBtZW1jcHkodXNlX2NvdW50cywKICAgICAgICAgICAg
ZnVsbF91c2VfY291bnRzLApAQCAtMjQ3LDE0ICsxOTUsMTQgQEAgdm9pZCBwYXNfc2VncmVnYXRl
ZF9leGNsdXNpdmVfdmlld19pbnN0YQogYm9vbCBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmll
d19pc19lbGlnaWJsZShwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldyogdmlldykKIHsKICAg
ICByZXR1cm4gUEFTX1NFR1JFR0FURURfRElSRUNUT1JZX0dFVF9CSVQoCi0gICAgICAgICZwYXNf
Y29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVs
bCgmdmlldy0+ZGlyZWN0b3J5KS0+YmFzZSwKKyAgICAgICAgJnBhc19jb21wYWN0X3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoJnZpZXctPmRpcmVjdG9yeSktPmJh
c2UsCiAgICAgICAgIHZpZXctPmluZGV4LCBlbGlnaWJsZSk7CiB9CiAKIGJvb2wgcGFzX3NlZ3Jl
Z2F0ZWRfZXhjbHVzaXZlX3ZpZXdfaXNfZW1wdHkocGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3Zp
ZXcqIHZpZXcpCiB7CiAgICAgcmV0dXJuIFBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9HRVRfQklU
KAotICAgICAgICAmcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnlf
cHRyX2xvYWRfbm9uX251bGwoJnZpZXctPmRpcmVjdG9yeSktPmJhc2UsCisgICAgICAgICZwYXNf
Y29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKCZ2aWV3
LT5kaXJlY3RvcnkpLT5iYXNlLAogICAgICAgICB2aWV3LT5pbmRleCwgZW1wdHkpOwogfQogCklu
ZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9leGNs
dXNpdmVfdmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3LmgJKHJldmlzaW9uIDI3OTk2NCkKKysr
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2V4Y2x1c2l2
ZV92aWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDI0ICsyNiwyNiBAQAogI2lmbmRlZiBQQVNf
U0VHUkVHQVRFRF9FWENMVVNJVkVfVklFV19ICiAjZGVmaW5lIFBBU19TRUdSRUdBVEVEX0VYQ0xV
U0lWRV9WSUVXX0gKIAotI2luY2x1ZGUgInBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3Np
emVfZGlyZWN0b3J5X3B0ci5oIgorI2luY2x1ZGUgInBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnlfcHRyLmgiCiAjaW5jbHVkZSAicGFzX2xvY2suaCIKLSNpbmNsdWRlICJwYXNf
c2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lcnNoaXBfa2luZC5oIgorI2luY2x1ZGUgInBh
c19zZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl9tb2RlLmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0
ZWRfdmlldy5oIgogCiBQQVNfQkVHSU5fRVhURVJOX0M7CiAKIHN0cnVjdCBwYXNfc2VncmVnYXRl
ZF9leGNsdXNpdmVfdmlldzsKIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9wYWdlOworc3RydWN0IHBh
c190aHJlYWRfbG9jYWxfY2FjaGU7CiB0eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9leGNs
dXNpdmVfdmlldyBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldzsKIHR5cGVkZWYgc3RydWN0
IHBhc19zZWdyZWdhdGVkX3BhZ2UgcGFzX3NlZ3JlZ2F0ZWRfcGFnZTsKK3R5cGVkZWYgc3RydWN0
IHBhc190aHJlYWRfbG9jYWxfY2FjaGUgcGFzX3RocmVhZF9sb2NhbF9jYWNoZTsKIAogc3RydWN0
IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3IHsKICAgICB2b2lkKiBwYWdlX2JvdW5kYXJ5
OwogICAgIAotICAgIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
X3B0ciBkaXJlY3Rvcnk7CisgICAgcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eV9wdHIgZGlyZWN0b3J5OwogCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3du
ZXJzaGlwX2tpbmQgb3duZXJzaGlwX2tpbmQ7CisgICAgYm9vbCBpc19vd25lZDsKIAogICAgIHVu
c2lnbmVkIGluZGV4OwogCkBAIC05MSwyOSArOTMsMTMgQEAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVz
aXZlX3ZpZXdfYXNfaW5lbGlnaQogCiBQQVNfQVBJIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92
aWV3KgogcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfY3JlYXRlKAotICAgIHBhc19zZWdy
ZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAorICAgIHBhc19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCiAgICAgc2l6ZV90IGluZGV4KTsKIAotUEFT
X0FQSSBib29sIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X3Nob3VsZF90YWJsZSgKLSAg
ICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldyogdmlldywKLSAgICBwYXNfc2VncmVnYXRl
ZF9wYWdlX2NvbmZpZyogcGFnZV9jb25maWcpOwotCi1QQVNfQVBJIHZvaWQgcGFzX3NlZ3JlZ2F0
ZWRfZXhjbHVzaXZlX2lzaF92aWV3X25vdGVfZWxpZ2liaWxpdHlfaW1wbCgKLSAgICBwYXNfc2Vn
cmVnYXRlZF9wYWdlKiBwYWdlLAotICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeSogZGlyZWN0
b3J5LAotICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgZWxpZ2libGVfb3duaW5nX3ZpZXcsCi0gICAg
dW5zaWduZWQgdmlld19pbmRleCk7Ci0KLVBBU19BUEkgdm9pZCBwYXNfc2VncmVnYXRlZF9leGNs
dXNpdmVfdmlld19ub3RlX2VsaWdpYmlsaXR5KAotICAgIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2
ZV92aWV3KiB2aWV3LAotICAgIHBhc19zZWdyZWdhdGVkX3BhZ2UqIHBhZ2UpOwotCiBQQVNfQVBJ
IHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfbm90ZV9lbXB0aW5lc3MoCiAgICAg
cGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcqIHZpZXcsCiAgICAgcGFzX3NlZ3JlZ2F0ZWRf
cGFnZSogcGFnZSk7CiAKLVBBU19BUEkgcGFzX2hlYXBfc3VtbWFyeSBwYXNfc2VncmVnYXRlZF9l
eGNsdXNpdmVfaXNoX3ZpZXdfY29tcHV0ZV9zdW1tYXJ5X2ltcGwoCi0gICAgcGFzX3NlZ3JlZ2F0
ZWRfZXhjbHVzaXZlX3ZpZXcqIHZpZXcpOwogUEFTX0FQSSBwYXNfaGVhcF9zdW1tYXJ5IHBhc19z
ZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2NvbXB1dGVfc3VtbWFyeSgKICAgICBwYXNfc2VncmVn
YXRlZF9leGNsdXNpdmVfdmlldyogdmlldyk7CiAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2lubGluZXMuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRl
ZF9leGNsdXNpdmVfdmlld19pbmxpbmVzLmgJKHJldmlzaW9uIDI3OTk2NCkKKysrIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2lu
bGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsMTcgKzI2LDIxIEBACiAjaWZuZGVmIFBBU19T
RUdSRUdBVEVEX0VYQ0xVU0lWRV9WSUVXX0lOTElORVNfSAogI2RlZmluZSBQQVNfU0VHUkVHQVRF
RF9FWENMVVNJVkVfVklFV19JTkxJTkVTX0gKIAorI2luY2x1ZGUgInBhc19kZXNpZ25hdGVkX2lu
dHJpbnNpY19oZWFwX2lubGluZXMuaCIKKyNpbmNsdWRlICJwYXNfbG9jYWxfdmlld19jYWNoZS5o
IgogI2luY2x1ZGUgInBhc19sb2cuaCIKKyNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9kZWFsbG9j
YXRpb25fbW9kZS5oIgogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3Lmgi
Ci0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5LmgiCi0jaW5j
bHVkZSAicGFzX3NlZ3JlZ2F0ZWRfcGFnZV9pbmxpbmVzLmgiCisjaW5jbHVkZSAicGFzX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnkuaCIKKyNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9wYWdlLmgi
CisjaW5jbHVkZSAicGFzX3RocmVhZF9sb2NhbF9jYWNoZS5oIgogCiBQQVNfQkVHSU5fRVhURVJO
X0M7CiAKLXN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkIHBhc19zZWdyZWdhdGVkX2V4Y2x1
c2l2ZV9pc2hfdmlld19kaWRfc3RhcnRfYWxsb2NhdGluZygKK3N0YXRpYyBQQVNfQUxXQVlTX0lO
TElORSB2b2lkIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2RpZF9zdGFydF9hbGxvY2F0
aW5nKAogICAgIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3KiB2aWV3LAogICAgIHBhc19z
ZWdyZWdhdGVkX3ZpZXcgb3duZXJfdmlldywgLyogQ291bGQgYmUgdGhlIGJpYXNpbmcgdmlldywg
b3IgdGhlIGV4Y2x1c2l2ZSB2aWV3LiAqLwotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXpl
X2RpcmVjdG9yeSogZ2xvYmFsX2RpcmVjdG9yeSwKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeSogZ2xvYmFsX2RpcmVjdG9yeSwKICAgICBwYXNfc2VncmVnYXRlZF9wYWdlKiBwYWdl
LAogICAgIHBhc19sb2NrKiogaGVsZF9sb2NrLAogICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29u
ZmlnIHBhZ2VfY29uZmlnKQpAQCAtNTQsNyArNTgsOCBAQCBzdGF0aWMgUEFTX0FMV0FZU19JTkxJ
TkUgdm9pZCBwYXNfc2VncmVnCiAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgIHBhc19sb2coIkRp
ZCBzdGFydCBhbGxvY2F0aW5nIGluICVwLlxuIiwgcGFnZSk7CiAKLSAgICBQQVNfVEVTVElOR19B
U1NFUlQoIXBhZ2UtPmlzX2luX3VzZV9mb3JfYWxsb2NhdGlvbik7CisgICAgLyogTk9URTogV2Ug
Y2Fubm90IGFzc2VydCB0aGF0IHRoZSBwYWdlIGlzIG5vdCBpbiB1c2UgZm9yIGFsbG9jYXRpb24g
c2luY2Ugd2UgbWF5IGJlIGNvbWluZyBoZXJlCisgICAgICAgdmlhIHRoZSB2aWV3IGNhY2hlLCB3
aGljaCBhbHdheXMgc2F5cyB0aGF0IHBhZ2VzIGFyZSBpbiB1c2UgZm9yIGFsbG9jYXRpb24uICov
CiAKICAgICAvKiBXZSB3YW50IHRvIGRlZmVyIG5vdGlmeWluZyBhbnlvbmUgYWJvdXQgYW55IG5l
d2x5IGZyZWVkIG9iamVjdHMuIERvIHRoaXMgaGVyZSBzaW5jZQogICAgICAgIHRoZSBjb2RlIGJl
bG93IG1heSByZWxlYXNlIChhbmQgdGhlbiByZWFjcXVpcmUpIHRoZSBwYWdlIGxvY2suIFRoYXQg
Y291bGQgY2F1c2Ugc29tZQpAQCAtNjgsNiArNzMsMTQ2IEBAIHN0YXRpYyBQQVNfQUxXQVlTX0lO
TElORSB2b2lkIHBhc19zZWdyZWcKICAgICBwYWdlLT5vd25lciA9IHBhc19zZWdyZWdhdGVkX3Zp
ZXdfYXNfaW5lbGlnaWJsZShvd25lcl92aWV3KTsKIH0KIAorc3RhdGljIFBBU19BTFdBWVNfSU5M
SU5FIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfZGlkX3N0b3BfYWxsb2NhdGlu
ZygKKyAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldyogdmlldywKKyAgICBwYXNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAorICAgIHBhc19zZWdyZWdhdGVkX3Bh
Z2UqIHBhZ2UsCisgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcgcGFnZV9jb25maWcsCisg
ICAgYm9vbCBzaG91bGRfbm90aWZ5X2VsaWdpYmlsaXR5KQoreworICAgIHN0YXRpYyBjb25zdCBi
b29sIHZlcmJvc2UgPSBmYWxzZTsKKworICAgIHVuc2lnbmVkIHZpZXdfaW5kZXg7CisgICAgYm9v
bCBzaG91bGRfbm90aWZ5X2VtcHRpbmVzczsKKworICAgIHZpZXdfaW5kZXggPSB2aWV3LT5pbmRl
eDsKKyAgICAKKyAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgcGFzX2xvZygiU3RvcHBpbmcgYWxs
b2NhdGlvbiBpbiBleGNsdXNpdmUgJXAvJXAuXG4iLCB2aWV3LCBwYWdlKTsKKyAgICAKKyAgICBp
ZiAoIXBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2lzX3V0aWxpdHkocGFnZV9jb25maWcpKQor
ICAgICAgICBwYXNfbG9ja190ZXN0aW5nX2Fzc2VydF9oZWxkKHBhZ2UtPmxvY2tfcHRyKTsKKyAg
ICBQQVNfVEVTVElOR19BU1NFUlQocGFnZS0+aXNfaW5fdXNlX2Zvcl9hbGxvY2F0aW9uKTsKKyAg
ICAKKyAgICBzaG91bGRfbm90aWZ5X2VtcHRpbmVzcyA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfcXVh
bGlmaWVzX2Zvcl9kZWNvbW1pdChwYWdlLCBwYWdlX2NvbmZpZyk7CisgICAgCisgICAgcGFnZS0+
aXNfaW5fdXNlX2Zvcl9hbGxvY2F0aW9uID0gZmFsc2U7CisgICAgCisgICAgaWYgKHNob3VsZF9u
b3RpZnlfZWxpZ2liaWxpdHkpIHsKKyAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICBw
YXNfbG9nKCJUZWxsaW5nIGRpcmVjdG9yeSBhYm91dCBkZWZlcnJlZCBlbGlnaWJpbGl0eS5cbiIp
OworICAgICAgICAKKyAgICAgICAgLyogUGFnZSBtdXN0IGtub3cgdGhhdCB3ZSBhcmUgZWxpZ2li
bGUgZmlyc3QuICovCisgICAgICAgIFBBU19URVNUSU5HX0FTU0VSVCgKKyAgICAgICAgICAgIHBh
c19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2tpbmQocGFnZS0+b3duZXIpID09IHBhc19zZWdyZWdhdGVk
X2V4Y2x1c2l2ZV92aWV3X2tpbmQpOworICAgICAgICAKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRf
ZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbGlnaWJsZV9hdF9pbmRleCgKKyAgICAgICAgICAg
ICZkaXJlY3RvcnktPmJhc2UsCisgICAgICAgICAgICB2aWV3X2luZGV4KTsKKyAgICB9CisgICAg
CisgICAgLyogSXQncyBpbXBvcnRhbnQgdG8gbm90aWZ5IGVtcHRpbmVzcyBsYXN0LCBzbyB0aGF0
IHdlIG5ldmVyIGZpbmQgb3V0c2VsdmVzIGluIGEgY2FzZSB3aGVyZSB0aGUKKyAgICAgICBzY2F2
ZW5nZXIgdGFrZXMgdGhlIGVtcHR5IGJpdCwgY2Fubm90IHRha2UgdGhlIGVsaWdpYmxlIGJpdCwg
YW5kIHRoaXMgY29kZSBoYWQgYWxyZWFkeSBzZXQgdGhlCisgICAgICAgZW1wdHkgYml0IGJ1dCBu
b3QgdGhlIGVsaWdpYmxlIGJpdC4gKi8KKyAgICBpZiAoc2hvdWxkX25vdGlmeV9lbXB0aW5lc3Mp
IHsKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbXB0
eV9hdF9pbmRleCgKKyAgICAgICAgICAgICZkaXJlY3RvcnktPmJhc2UsCisgICAgICAgICAgICB2
aWV3X2luZGV4KTsKKyAgICB9Cit9CisKK3N0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkIHBh
c19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X25vdGVfZWxpZ2liaWxpdHkoCisgICAgcGFzX3Nl
Z3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcqIHZpZXcsCisgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZSog
cGFnZSwKKyAgICBwYXNfc2VncmVnYXRlZF9kZWFsbG9jYXRpb25fbW9kZSBkZWFsbG9jYXRpb25f
bW9kZSwKKyAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiBjYWNoZSwKKyAgICBwYXNfc2VncmVn
YXRlZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZpZykKK3sKKyAgICBzdGF0aWMgY29uc3QgYm9vbCB2
ZXJib3NlID0gZmFsc2U7CisgICAgCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnkq
IHNpemVfZGlyZWN0b3J5OworICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeSogZGlyZWN0b3J5
OworCisgICAgc2l6ZV9kaXJlY3RvcnkgPSBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGly
ZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKCZ2aWV3LT5kaXJlY3RvcnkpOworICAgIGRpcmVjdG9y
eSA9ICZzaXplX2RpcmVjdG9yeS0+YmFzZTsKKyAgICAKKyAgICBpZiAodmVyYm9zZSkKKyAgICAg
ICAgcGFzX2xvZygiTm90aW5nIGVsaWdpYmlsaXR5IGluIGV4Y2x1c2l2ZSAlcC8lcC5cbiIsIHZp
ZXcsIHBhZ2UpOworICAgICAgICAKKyAgICBpZiAocGFnZS0+bG9ja19wdHIpCisgICAgICAgIHBh
c19sb2NrX3Rlc3RpbmdfYXNzZXJ0X2hlbGQocGFnZS0+bG9ja19wdHIpOworICAgIAorICAgIGlm
IChwYWdlLT5pc19pbl91c2VfZm9yX2FsbG9jYXRpb24pIHsKKyAgICAgICAgaWYgKHZlcmJvc2Up
CisgICAgICAgICAgICBwYXNfbG9nKCJEZWZlcnJpbmcgZWxpZ2liaWxpdHkgbm90aWZpY2F0aW9u
LlxuIik7CisgICAgICAgIHBhZ2UtPmVsaWdpYmlsaXR5X25vdGlmaWNhdGlvbl9oYXNfYmVlbl9k
ZWZlcnJlZCA9IHRydWU7CisgICAgfSBlbHNlIHsKKyAgICAgICAgYm9vbCBkaWRfY2FjaGVfdmll
dzsKKworICAgICAgICBkaWRfY2FjaGVfdmlldyA9IGZhbHNlOworCisgICAgICAgIHN3aXRjaCAo
ZGVhbGxvY2F0aW9uX21vZGUpIHsKKyAgICAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9kZWFsbG9j
YXRpb25fZGlyZWN0X21vZGU6CisgICAgICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAg
ICAgICBwYXNfbG9nKCJVc2luZyBkaXJlY3QgZGVhbGxvY2F0aW9uIG1vZGUgKCV1KS5cbiIsIHBh
Z2UtPm9iamVjdF9zaXplKTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgcGFz
X3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0aW9uX3RvX3ZpZXdfY2FjaGVfbW9kZTogeworICAgICAgICAg
ICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZXN1bHQgYWxsb2NhdG9yX3Jlc3VsdDsKKyAgICAgICAg
ICAgIHBhc19sb2NhbF92aWV3X2NhY2hlKiB2aWV3X2NhY2hlOworCisgICAgICAgICAgICBpZiAo
dmVyYm9zZSkKKyAgICAgICAgICAgICAgICBwYXNfbG9nKCJVc2luZyB0b192aWV3X2NhY2hlIGRl
YWxsb2NhdGlvbiBtb2RlICgldSkuXG4iLCBwYWdlLT5vYmplY3Rfc2l6ZSk7CisgICAgICAgICAg
ICAKKyAgICAgICAgICAgIGlmICghcGFnZV9jb25maWcuZW5hYmxlX3ZpZXdfY2FjaGUpIHsKKyAg
ICAgICAgICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgICAgICAgICAgcGFzX2xvZygi
JXA6IFZpZXcgY2FjaGUgZGlzYWJsZWQgaW4gY29uZmlnIiwgY2FjaGUtPm5vZGUpOworICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBhbGxvY2F0b3Jf
cmVzdWx0ID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV90cnlfZ2V0X2xvY2FsX2FsbG9jYXRvcigK
KyAgICAgICAgICAgICAgICBjYWNoZSwgcGFnZS0+dmlld19jYWNoZV9pbmRleCk7CisgICAgICAg
ICAgICBpZiAoIWFsbG9jYXRvcl9yZXN1bHQuZGlkX3N1Y2NlZWQpIHsKKyAgICAgICAgICAgICAg
ICBpZiAodmVyYm9zZSkgeworICAgICAgICAgICAgICAgICAgICBwYXNfbG9nKCIlcDogVmlldyBj
YWNoZSBpcyBkaXNhYmxlZCBmb3IgdGhpcyBwYWdlIG9yIGl0IGRvZXNuJ3QgZXhpc3QgeWV0IGlu
IHRoaXMgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUTEMuXG4iLCBjYWNoZS0+bm9k
ZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICB2aWV3X2NhY2hlID0gKHBhc19sb2NhbF92
aWV3X2NhY2hlKilhbGxvY2F0b3JfcmVzdWx0LmFsbG9jYXRvcjsKKyAgICAgICAgICAgIAorICAg
ICAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICAgICAgcGFzX2xvZygiVHJ5aW5nIHRv
IHB1c2ggdG8gdmlldyBjYWNoZS5cbiIpOworCisgICAgICAgICAgICBpZiAocGFzX2xvY2FsX3Zp
ZXdfY2FjaGVfaXNfZnVsbCh2aWV3X2NhY2hlKSkgeworICAgICAgICAgICAgICAgIGlmICh2ZXJi
b3NlKQorICAgICAgICAgICAgICAgICAgICBwYXNfbG9nKCIlcCwgJXA6IENhY2hlIGlzIGZ1bGwg
KCV1KS5cbiIsIGNhY2hlLT5ub2RlLCB2aWV3X2NhY2hlLCBwYWdlLT5vYmplY3Rfc2l6ZSk7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAg
ICAgICAgIGRpZF9jYWNoZV92aWV3ID0gdHJ1ZTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAg
cGFnZS0+aXNfaW5fdXNlX2Zvcl9hbGxvY2F0aW9uID0gdHJ1ZTsKKyAgICAgICAgICAgIAorICAg
ICAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICAgICAgcGFzX2xvZygiJXAsICVwOiBQ
dXNoaW5nIHRvIGNhY2hlICgldSkuXG4iLCBjYWNoZS0+bm9kZSwgdmlld19jYWNoZSwgcGFnZS0+
b2JqZWN0X3NpemUpOworCisgICAgICAgICAgICBwYXNfbG9jYWxfdmlld19jYWNoZV9wdXNoKHZp
ZXdfY2FjaGUsIHZpZXcpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0gfQorCisgICAg
ICAgIGlmICghZGlkX2NhY2hlX3ZpZXcpIHsKKyAgICAgICAgICAgIGlmICh2ZXJib3NlKQorICAg
ICAgICAgICAgICAgIHBhc19sb2coIlRlbGxpbmcgdGhlIGRpcmVjdG9yeSB0aGF0IHdlIGFyZSBl
bGlnaWJsZSAoJXUpLlxuIiwgcGFnZS0+b2JqZWN0X3NpemUpOworICAgICAgICAgICAgcGFzX3Nl
Z3JlZ2F0ZWRfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbGlnaWJsZV9hdF9pbmRleChkaXJl
Y3RvcnksIHZpZXctPmluZGV4KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qIENsZWFyIHRo
ZSBpbmVsaWdpYmxlIGJpdCBmcm9tIHRoZSBvd25lciBmaWVsZC4gKi8KKyAgICBwYWdlLT5vd25l
ciA9IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2FzX3ZpZXdfbm9uX251bGwodmlldyk7
Cit9CisKIFBBU19FTkRfRVhURVJOX0M7CiAKICNlbmRpZiAvKiBQQVNfU0VHUkVHQVRFRF9FWENM
VVNJVkVfVklFV19JTkxJTkVTX0ggKi8KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5kLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0
ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlwX2tpbmQuaAkocmV2aXNpb24gMjc5OTY0KQorKysg
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZl
X3ZpZXdfb3duZXJzaGlwX2tpbmQuaAkobm9uZXhpc3RlbnQpCkBAIC0xLDE0NiArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChjKSAyMDE5LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
Ci0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2lmbmRl
ZiBQQVNfU0VHUkVHQVRFRF9FWENMVVNJVkVfVklFV19PV05FUlNISVBfS0lORF9ICi0jZGVmaW5l
IFBBU19TRUdSRUdBVEVEX0VYQ0xVU0lWRV9WSUVXX09XTkVSU0hJUF9LSU5EX0gKLQotI2luY2x1
ZGUgInBhc191dGlscy5oIgotCi1QQVNfQkVHSU5fRVhURVJOX0M7Ci0KLS8qIFRoaXMgaXMgcmVh
bGx5IHR3byBmbGFncyAtLSBvd25lZCBhbmQgYmlhc2VkLgotCi0gICBPd25lcnNoaXAgbWVhbnMg
dGhhdCB0aGUgcGFnZSBwb2ludGVyIHBvaW50cyB0byBhIGNvbW1pdHRlZCBhbmQgZnVsbHkgY29u
c3RydWN0ZWQKLSAgIHBhZ2UuIFRoZSBvd25lcnNoaXAgbG9jayBpcyB0YWtlbiB3aGVuIHRoaXMg
c3RhdGUgY2hhbmdlcy4gU28gaWYgeW91IGdyYWIgdGhlIG93bmVyc2hpcAotICAgbG9jayBhbmQg
b2JzZXJ2ZSB0aGUgb3duZXJzaGlwIGJpdCB0byBiZSBzZXQsIHRoZW4geW91IGtub3cgdGhhdCB5
b3UgY2FuIGRlcmVmZXJlbmNlCi0gICB0aGUgcGFnZSBwb2ludGVyIGFuZCBhY2Nlc3MgdGhlIHBh
Z2Uga25vd2luZyB0aGF0IGl0J3MgZnVsbHkgaW5pdGlhbGl6ZWQuIEJ1dCB0aGF0Ci0gICByZXF1
aXJlcyBjb250aW51aW5nIHRvIGhvbGQgdGhlIG93bmVyc2hpcCBsb2NrLgotCi0gICBCaWFzaW5n
IG1lYW5zIHRoYXQgdGhlcmUgaXMgYSBiaWFzaW5nX3ZpZXcgdGhhdCBoYXMgdGFrZW4gb3ZlciB0
aGUgZXhjbHVzaXZlIHZpZXcgYW5kCi0gICBzbyB0aGUgZXhjbHVzaXZlIHZpZXcgaXNuJ3QgcmVh
bGx5IGFjdGluZyBhcyBhIG1lbWJlciBvZiBpdHMgZGlyZWN0b3J5IChpdCBzaG91bGQgYmUKLSAg
IGluZWxpZ2libGUgaW4gdGhhdCBkaXJlY3RvcnkgYW5kIGlnbm9yZWQpLiAqLwotZW51bSBfX2F0
dHJpYnV0ZV9fKChfX3BhY2tlZF9fKSkgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3du
ZXJzaGlwX2tpbmQgewotICAgIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X25vdF9vd25l
ZCwKLSAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lZCwKLSAgICBwYXNfc2Vn
cmVnYXRlZF9leGNsdXNpdmVfdmlld19ub3Rfb3duZWRfYW5kX2JpYXNlZCwKLSAgICBwYXNfc2Vn
cmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lZF9hbmRfYmlhc2VkLAotfTsKLQotdHlwZWRlZiBl
bnVtIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5kIHBhc19zZWdy
ZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5kOwotCi1zdGF0aWMgaW5saW5lIGJv
b2wgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlwX2tpbmRfaXNfb3duZWQo
Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlwX2tpbmQga2luZCkK
LXsKLSAgICBzd2l0Y2ggKGtpbmQpIHsKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2
ZV92aWV3X25vdF9vd25lZDoKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3
X25vdF9vd25lZF9hbmRfYmlhc2VkOgotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgY2FzZSBw
YXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lZDoKLSAgICBjYXNlIHBhc19zZWdyZWdh
dGVkX2V4Y2x1c2l2ZV92aWV3X293bmVkX2FuZF9iaWFzZWQ6Ci0gICAgICAgIHJldHVybiB0cnVl
OwotICAgIH0KLSAgICBQQVNfQVNTRVJUKCEiU2hvdWxkIG5vdCBiZSByZWFjaGVkIik7Ci0gICAg
cmV0dXJuIGZhbHNlOwotfQotCi1zdGF0aWMgaW5saW5lIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfZXhj
bHVzaXZlX3ZpZXdfb3duZXJzaGlwX2tpbmRfaXNfYmlhc2VkKAotICAgIHBhc19zZWdyZWdhdGVk
X2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5kIGtpbmQpCi17Ci0gICAgc3dpdGNoIChraW5k
KSB7Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19ub3Rfb3duZWQ6Ci0g
ICAgY2FzZSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lZDoKLSAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfbm90X293
bmVkX2FuZF9iaWFzZWQ6Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19v
d25lZF9hbmRfYmlhc2VkOgotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAgUEFTX0FT
U0VSVCghIlNob3VsZCBub3QgYmUgcmVhY2hlZCIpOwotICAgIHJldHVybiBmYWxzZTsKLX0KLQot
c3RhdGljIGlubGluZSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lcnNoaXBfa2lu
ZAotcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlwX2tpbmRfd2l0aF9vd25l
ZCgKLSAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lcnNoaXBfa2luZCBraW5k
LAotICAgIGJvb2wgaXNfb3duZWQpCi17Ci0gICAgc3dpdGNoIChraW5kKSB7Ci0gICAgY2FzZSBw
YXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19ub3Rfb3duZWQ6Ci0gICAgY2FzZSBwYXNfc2Vn
cmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lZDoKLSAgICAgICAgcmV0dXJuIGlzX293bmVkCi0g
ICAgICAgICAgICA/IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVkCi0gICAgICAg
ICAgICA6IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X25vdF9vd25lZDsKLSAgICBjYXNl
IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X25vdF9vd25lZF9hbmRfYmlhc2VkOgotICAg
IGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZWRfYW5kX2JpYXNlZDoKLSAg
ICAgICAgcmV0dXJuIGlzX293bmVkCi0gICAgICAgICAgICA/IHBhc19zZWdyZWdhdGVkX2V4Y2x1
c2l2ZV92aWV3X293bmVkX2FuZF9iaWFzZWQKLSAgICAgICAgICAgIDogcGFzX3NlZ3JlZ2F0ZWRf
ZXhjbHVzaXZlX3ZpZXdfbm90X293bmVkX2FuZF9iaWFzZWQ7Ci0gICAgfQotICAgIFBBU19BU1NF
UlQoISJTaG91bGQgbm90IGJlIHJlYWNoZWQiKTsKLSAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRf
ZXhjbHVzaXZlX3ZpZXdfbm90X293bmVkOwotfQotCi1zdGF0aWMgaW5saW5lIHBhc19zZWdyZWdh
dGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5kCi1wYXNfc2VncmVnYXRlZF9leGNsdXNp
dmVfdmlld19vd25lcnNoaXBfa2luZF93aXRoX2JpYXNlZCgKLSAgICBwYXNfc2VncmVnYXRlZF9l
eGNsdXNpdmVfdmlld19vd25lcnNoaXBfa2luZCBraW5kLAotICAgIGJvb2wgaXNfYmlhc2VkKQot
ewotICAgIHN3aXRjaCAoa2luZCkgewotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZl
X3ZpZXdfbm90X293bmVkOgotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdf
bm90X293bmVkX2FuZF9iaWFzZWQ6Ci0gICAgICAgIHJldHVybiBpc19iaWFzZWQKLSAgICAgICAg
ICAgID8gcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfbm90X293bmVkX2FuZF9iaWFzZWQK
LSAgICAgICAgICAgIDogcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfbm90X293bmVkOwot
ICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZWQ6Ci0gICAgY2FzZSBw
YXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lZF9hbmRfYmlhc2VkOgotICAgICAgICBy
ZXR1cm4gaXNfYmlhc2VkCi0gICAgICAgICAgICA/IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92
aWV3X293bmVkX2FuZF9iaWFzZWQKLSAgICAgICAgICAgIDogcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVz
aXZlX3ZpZXdfb3duZWQ7Ci0gICAgfQotICAgIFBBU19BU1NFUlQoISJTaG91bGQgbm90IGJlIHJl
YWNoZWQiKTsKLSAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfbm90X293
bmVkOwotfQotCi1zdGF0aWMgaW5saW5lIGNvbnN0IGNoYXIqIHBhc19zZWdyZWdhdGVkX2V4Y2x1
c2l2ZV92aWV3X293bmVyc2hpcF9raW5kX2dldF9zdHJpbmcoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRf
ZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlwX2tpbmQga2luZCkKLXsKLSAgICBzd2l0Y2ggKGtpbmQp
IHsKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X25vdF9vd25lZDoKLSAg
ICAgICAgcmV0dXJuICJub3Rfb3duZWQiOwotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVz
aXZlX3ZpZXdfb3duZWQ6Ci0gICAgICAgIHJldHVybiAib3duZWQiOwotICAgIGNhc2UgcGFzX3Nl
Z3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfbm90X293bmVkX2FuZF9iaWFzZWQ6Ci0gICAgICAgIHJl
dHVybiAibm90X293bmVkX2FuZF9iaWFzZWQiOwotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfZXhj
bHVzaXZlX3ZpZXdfb3duZWRfYW5kX2JpYXNlZDoKLSAgICAgICAgcmV0dXJuICJvd25lZF9hbmRf
Ymlhc2VkIjsKLSAgICB9Ci0gICAgUEFTX0FTU0VSVCghIlNob3VsZCBub3QgYmUgcmVhY2hlZCIp
OwotICAgIHJldHVybiBOVUxMOwotfQotCi1QQVNfRU5EX0VYVEVSTl9DOwotCi0jZW5kaWYgLyog
UEFTX1NFR1JFR0FURURfRVhDTFVTSVZFX1ZJRVdfT1dORVJTSElQX0tJTkRfSCAqLwotCi0KSW5k
ZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeS5jCShyZXZpc2lv
biAyNzk5NjQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVn
YXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkuYwkobm9uZXhpc3RlbnQpCkBAIC0xLDEyMjEgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMjAxOS0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0K
LSNpbmNsdWRlICJwYXNfY29uZmlnLmgiCi0KLSNpZiBMSUJQQVNfRU5BQkxFRAotCi0jaW5jbHVk
ZSAicGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5LmgiCi0KLSNpbmNsdWRlICJw
YXNfYmlhc2luZ19kaXJlY3RvcnlfaW5saW5lcy5oIgotI2luY2x1ZGUgInBhc19iaXRmaXRfaGVh
cC5oIgotI2luY2x1ZGUgInBhc19kZWZlcnJlZF9kZWNvbW1pdF9sb2cuaCIKLSNpbmNsdWRlICJw
YXNfZXhjbHVzaXZlX3ZpZXdfdGVtcGxhdGVfbWVtb190YWJsZS5oIgotI2luY2x1ZGUgInBhc19t
b25vdG9uaWNfdGltZS5oIgotI2luY2x1ZGUgInBhc19wYWdlX21hbGxvYy5oIgotI2luY2x1ZGUg
InBhc19wYWdlX3NoYXJpbmdfcG9vbC5oIgotI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2RpcmVj
dG9yeV9pbmxpbmVzLmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGly
ZWN0b3J5X2lubGluZXMuaCIKLSNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9wYWdlX2lubGluZXMu
aCIKLSNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9pbmxpbmVzLmgiCi0j
aW5jbHVkZSAicGFzX3N0cmVhbS5oIgotI2luY2x1ZGUgInBhc190aHJlYWRfbG9jYWxfY2FjaGVf
bGF5b3V0LmgiCi0jaW5jbHVkZSAicGFzX3V0aWxpdHlfaGVhcC5oIgotCi1ib29sIHBhc19zZWdy
ZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9jYW5fZXhwbG9kZSA9IGZhbHNlOwotYm9vbCBw
YXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZm9yY2VfZXhwbG9kZSA9IGZhbHNl
OwotCi1wYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIHBhc19zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeV9jcmVhdGUoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCog
aGVhcCwKLSAgICB1bnNpZ25lZCBvYmplY3Rfc2l6ZSwKLSAgICB1bnNpZ25lZCBhbGlnbm1lbnQs
Ci0gICAgcGFzX2hlYXBfY29uZmlnKiBoZWFwX2NvbmZpZywKLSAgICBwYXNfc2VncmVnYXRlZF9w
YWdlX2NvbmZpZyogcGFnZV9jb25maWcpCi17Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9z
ZSA9IGZhbHNlOwotICAgIAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9y
eSogcmVzdWx0OwotICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmQgcGFnZV9jb25m
aWdfa2luZDsKLQotICAgIHBhc19oZWFwX2xvY2tfYXNzZXJ0X2hlbGQoKTsKLQotICAgIGlmIChw
YWdlX2NvbmZpZykKLSAgICAgICAgcGFnZV9jb25maWdfa2luZCA9IHBhZ2VfY29uZmlnLT5raW5k
OwotICAgIGVsc2UKLSAgICAgICAgcGFnZV9jb25maWdfa2luZCA9IHBhc19zZWdyZWdhdGVkX3Bh
Z2VfY29uZmlnX2tpbmRfbnVsbDsKLQotICAgIGlmIChwYWdlX2NvbmZpZykKLSAgICAgICAgUEFT
X0FTU0VSVChoZWFwX2NvbmZpZyA9PSBwYWdlX2NvbmZpZy0+YmFzZS5oZWFwX2NvbmZpZ19wdHIp
OwotCi0gICAgcGFzX2hlYXBfY29uZmlnX2FjdGl2YXRlKGhlYXBfY29uZmlnKTsKLQotICAgIGlm
ICh2ZXJib3NlICYmIHBhZ2VfY29uZmlnKSB7Ci0gICAgICAgIHBhc19sb2coImxvY2FsIGFsbG9j
YXRvciBzaXplIGZvciAlczogJXp1XG4iLAotICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVk
X3BhZ2VfY29uZmlnX2tpbmRfZ2V0X3N0cmluZyhwYWdlX2NvbmZpZ19raW5kKSwKLSAgICAgICAg
ICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfbG9jYWxfYWxsb2Nh
dG9yX3NpemVfZm9yX2NvbmZpZygqcGFnZV9jb25maWcpKTsKLSAgICB9Ci0KLSAgICByZXN1bHQg
PSBwYXNfaW1tb3J0YWxfaGVhcF9hbGxvY2F0ZSgKLSAgICAgICAgc2l6ZW9mKHBhc19zZWdyZWdh
dGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSksCi0gICAgICAgICJwYXNfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnkiLAotICAgICAgICBwYXNfb2JqZWN0X2FsbG9jYXRpb24pOwotCi0g
ICAgaWYgKHZlcmJvc2UpIHsKLSAgICAgICAgcGFzX2xvZygiQ3JlYXRpbmcgZGlyZWN0cm95ICVw
IGZvciAlc1xuIiwKLSAgICAgICAgICAgICAgICByZXN1bHQsIHBhc19zZWdyZWdhdGVkX3BhZ2Vf
Y29uZmlnX2tpbmRfZ2V0X3N0cmluZyhwYWdlX2NvbmZpZ19raW5kKSk7Ci0gICAgfQotCi0gICAg
cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfY29uc3RydWN0KAotICAgICAgICAmcmVzdWx0
LT5iYXNlLCBwYWdlX2NvbmZpZ19raW5kLAotICAgICAgICBoZWFwLT5ydW50aW1lX2NvbmZpZy0+
c2hhcmluZ19tb2RlLAotICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnlfa2luZCk7Ci0KLSAgICByZXN1bHQtPmhlYXAgPSBoZWFwOwotICAgIHJlc3VsdC0+b2JqZWN0
X3NpemUgPSBvYmplY3Rfc2l6ZTsKLQotICAgIFBBU19BU1NFUlQocGFzX2lzX3Bvd2VyX29mXzIo
YWxpZ25tZW50KSk7Ci0gICAgUEFTX0FTU0VSVChwYXNfaXNfYWxpZ25lZChvYmplY3Rfc2l6ZSwg
YWxpZ25tZW50KSk7Ci0gICAgcmVzdWx0LT5hbGlnbm1lbnRfc2hpZnQgPSBwYXNfbG9nMihhbGln
bm1lbnQpOwotICAgIAotICAgIHJlc3VsdC0+YmFzZWxpbmVfYWxsb2NhdG9yX2luZGV4ID0gMiAq
IFBBU19OVU1fQkFTRUxJTkVfQUxMT0NBVE9SUzsKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxf
c2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJfc3RvcmUoJnJlc3VsdC0+ZGF0YSwgTlVMTCk7Ci0KLSAg
ICBpZiAocGFnZV9jb25maWcpCi0gICAgICAgIHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfZ2xv
YmFsX3NpemVfY2xhc3NfcHRyX3N0b3JlKCZyZXN1bHQtPmJpdGZpdF9zaXplX2NsYXNzLCBOVUxM
KTsKLSAgICBlbHNlIHsKLSAgICAgICAgcGFzX2JpdGZpdF9oZWFwKiBiaXRmaXRfaGVhcDsKLSAg
ICAgICAgcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzcyogYml0Zml0X3NpemVfY2xhc3M7Ci0K
LSAgICAgICAgYml0Zml0X2hlYXAgPSBwYXNfc2VncmVnYXRlZF9oZWFwX2dldF9iaXRmaXQoaGVh
cCwgaGVhcF9jb25maWcsIHBhc19sb2NrX2lzX2hlbGQpOwotICAgICAgICBQQVNfQVNTRVJUKGJp
dGZpdF9oZWFwKTsKLSAgICAgICAgCi0gICAgICAgIGJpdGZpdF9zaXplX2NsYXNzID0KLSAgICAg
ICAgICAgIHBhc19iaXRmaXRfaGVhcF9lbnN1cmVfZ2xvYmFsX3NpemVfY2xhc3MoCi0gICAgICAg
ICAgICAgICAgYml0Zml0X2hlYXAsIHJlc3VsdCwgaGVhcF9jb25maWcsIHBhc19sb2NrX2lzX2hl
bGQpOwotICAgICAgICAKLSAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9nbG9iYWxf
c2l6ZV9jbGFzc19wdHJfc3RvcmUoCi0gICAgICAgICAgICAmcmVzdWx0LT5iaXRmaXRfc2l6ZV9j
bGFzcywgYml0Zml0X3NpemVfY2xhc3MpOwotICAgIH0KLSAgICAKLSAgICBwYXNfY29tcGFjdF9h
dG9taWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX3N0b3JlKCZyZXN1bHQt
Pm5leHRfZm9yX2hlYXAsIE5VTEwpOwotCi0gICAgaWYgKCFoZWFwLT5ydW50aW1lX2NvbmZpZy0+
ZGlyZWN0b3J5X3NpemVfYm91bmRfZm9yX2Jhc2VsaW5lX2FsbG9jYXRvcnMpCi0gICAgICAgIHBh
c19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9jcmVhdGVfdGxjX2FsbG9jYXRvcihy
ZXN1bHQpOwotICAgIGlmICghaGVhcC0+cnVudGltZV9jb25maWctPmRpcmVjdG9yeV9zaXplX2Jv
dW5kX2Zvcl9wYXJ0aWFsX3ZpZXdzKQotICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnlfZW5hYmxlX2V4Y2x1c2l2ZV92aWV3cyhyZXN1bHQpOwotCi0gICAgaWYgKHBh
c19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9mb3JjZV9leHBsb2RlCi0gICAgICAg
ICYmIHBhZ2VfY29uZmlnCi0gICAgICAgICYmICFwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19r
aW5kX2lzX3V0aWxpdHkocGFnZV9jb25maWdfa2luZCkpCi0gICAgICAgIHBhc19zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeV9leHBsb2RlKHJlc3VsdCwgcGFzX2xvY2tfaXNfaGVsZCk7
Ci0KLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi1wYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9k
aXJlY3RvcnlfZGF0YSogcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2Vuc3Vy
ZV9kYXRhKAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0
b3J5LAotICAgIHBhc19sb2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9tb2RlKQotewotICAg
IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhKiBkYXRhOwotICAgIHBh
c19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnKiBwYWdlX2NvbmZpZzsKLQotICAgIGRhdGEgPSBwYXNf
c2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJfbG9hZCgmZGlyZWN0b3J5
LT5kYXRhKTsKLQotICAgIGlmIChkYXRhKQotICAgICAgICByZXR1cm4gZGF0YTsKLQotICAgIHBh
Z2VfY29uZmlnID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZF9nZXRfY29uZmlnKGRp
cmVjdG9yeS0+YmFzZS5wYWdlX2NvbmZpZ19raW5kKTsKLQotICAgIHBhc19oZWFwX2xvY2tfbG9j
a19jb25kaXRpb25hbGx5KGhlYXBfbG9ja19ob2xkX21vZGUpOwotCi0gICAgZGF0YSA9IHBhc19z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhX3B0cl9sb2FkKCZkaXJlY3Rvcnkt
PmRhdGEpOwotICAgIGlmIChkYXRhKSB7Ci0gICAgICAgIHBhc19oZWFwX2xvY2tfdW5sb2NrX2Nv
bmRpdGlvbmFsbHkoaGVhcF9sb2NrX2hvbGRfbW9kZSk7Ci0gICAgICAgIHJldHVybiBkYXRhOwot
ICAgIH0KLQotICAgIGlmIChwYWdlX2NvbmZpZyAmJiBwYWdlX2NvbmZpZy0+YmFzZS5wYWdlX3Np
emUgPiBwYWdlX2NvbmZpZy0+YmFzZS5ncmFudWxlX3NpemUpIHsKLSAgICAgICAgZGF0YSA9IHBh
c19pbW1vcnRhbF9oZWFwX2FsbG9jYXRlKAotICAgICAgICAgICAgc2l6ZW9mKHBhc19leHRlbmRl
ZF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhKSwKLSAgICAgICAgICAgICJw
YXNfZXh0ZW5kZWRfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YSIsCi0gICAg
ICAgICAgICBwYXNfb2JqZWN0X2FsbG9jYXRpb24pOwotCi0gICAgICAgIHBhc19jb21wYWN0X3Rh
Z2dlZF9wYWdlX2dyYW51bGVfdXNlX2NvdW50X3B0cl9zdG9yZSgKLSAgICAgICAgICAgICYoKHBh
c19leHRlbmRlZF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhKilkYXRhKS0+
ZnVsbF91c2VfY291bnRzLCBOVUxMKTsKLSAgICB9IGVsc2UgewotICAgICAgICBkYXRhID0gcGFz
X2ltbW9ydGFsX2hlYXBfYWxsb2NhdGUoCi0gICAgICAgICAgICBzaXplb2YocGFzX3NlZ3JlZ2F0
ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2RhdGEpLAotICAgICAgICAgICAgInBhc19zZWdyZWdh
dGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhIiwKLSAgICAgICAgICAgIHBhc19vYmplY3Rf
YWxsb2NhdGlvbik7Ci0gICAgfQotCi0gICAgcGFzX2NvbXBhY3RfdGFnZ2VkX3Vuc2lnbmVkX3B0
cl9zdG9yZSgmZGF0YS0+ZnVsbF9hbGxvY19iaXRzLCBOVUxMKTsKLSAgICBkYXRhLT5vZmZzZXRf
ZnJvbV9wYWdlX2JvdW5kYXJ5X3RvX2ZpcnN0X29iamVjdCA9IDA7Ci0gICAgZGF0YS0+b2Zmc2V0
X2Zyb21fcGFnZV9ib3VuZGFyeV90b19lbmRfb2ZfbGFzdF9vYmplY3QgPSAwOwotICAgIGRhdGEt
PmZ1bGxfbnVtX25vbl9lbXB0eV93b3JkcyA9IDA7Ci0gICAgZGF0YS0+YWxsb2NhdG9yX2luZGV4
ID0gKHBhc19hbGxvY2F0b3JfaW5kZXgpVUlOVF9NQVg7Ci0gICAgcGFzX2NvbXBhY3RfYXRvbWlj
X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9zdG9yZSgmZGF0YS0+bmV4dF9mb3JfbGF5
b3V0LCBOVUxMKTsKLQotICAgIHBhc19mZW5jZSgpOwotCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xv
YmFsX3NpemVfZGlyZWN0b3J5X2RhdGFfcHRyX3N0b3JlKCZkaXJlY3RvcnktPmRhdGEsIGRhdGEp
OwotCi0gICAgcGFzX2hlYXBfbG9ja191bmxvY2tfY29uZGl0aW9uYWxseShoZWFwX2xvY2tfaG9s
ZF9tb2RlKTsKLQotICAgIHJldHVybiBkYXRhOwotfQotCi1wYXNfZXh0ZW5kZWRfc2VncmVnYXRl
ZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YSoKLXBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXpl
X2RpcmVjdG9yeV9nZXRfZXh0ZW5kZWRfZGF0YSgKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxf
c2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSkKLXsKLSAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2Nv
bmZpZyogcGFnZV9jb25maWc7Ci0KLSAgICBwYWdlX2NvbmZpZyA9IHBhc19zZWdyZWdhdGVkX3Bh
Z2VfY29uZmlnX2tpbmRfZ2V0X2NvbmZpZyhkaXJlY3RvcnktPmJhc2UucGFnZV9jb25maWdfa2lu
ZCk7Ci0gICAgUEFTX0FTU0VSVChwYWdlX2NvbmZpZyk7Ci0gICAgUEFTX0FTU0VSVChwYWdlX2Nv
bmZpZy0+YmFzZS5wYWdlX3NpemUgPiBwYWdlX2NvbmZpZy0+YmFzZS5ncmFudWxlX3NpemUpOwot
Ci0gICAgcmV0dXJuIChwYXNfZXh0ZW5kZWRfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnlfZGF0YSopCi0gICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9k
YXRhX3B0cl9sb2FkKCZkaXJlY3RvcnktPmRhdGEpOwotfQotCi12b2lkIHBhc19zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeV9jcmVhdGVfdGxjX2FsbG9jYXRvcigKLSAgICBwYXNfc2Vn
cmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSkKLXsKLSAgICBwYXNfc2Vn
cmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YSogZGF0YTsKLSAgICAKLSAgICBwYXNf
aGVhcF9sb2NrX2Fzc2VydF9oZWxkKCk7Ci0KLSAgICBkYXRhID0gcGFzX3NlZ3JlZ2F0ZWRfZ2xv
YmFsX3NpemVfZGlyZWN0b3J5X2Vuc3VyZV9kYXRhKGRpcmVjdG9yeSwgcGFzX2xvY2tfaXNfaGVs
ZCk7Ci0KLSAgICBpZiAoZGF0YS0+YWxsb2NhdG9yX2luZGV4ICE9IChwYXNfYWxsb2NhdG9yX2lu
ZGV4KVVJTlRfTUFYKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRf
cGFnZV9jb25maWdfa2luZF9pc191dGlsaXR5KGRpcmVjdG9yeS0+YmFzZS5wYWdlX2NvbmZpZ19r
aW5kKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlv
dXRfYWRkKGRpcmVjdG9yeSk7Ci0KLSAgICBQQVNfQVNTRVJUKGRhdGEtPmFsbG9jYXRvcl9pbmRl
eCA8IChwYXNfYWxsb2NhdG9yX2luZGV4KVVJTlRfTUFYKTsKLX0KLQotdm9pZCBwYXNfc2VncmVn
YXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZW5hYmxlX2V4Y2x1c2l2ZV92aWV3cygKLSAgICBw
YXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSkKLXsKLSAgICBw
YXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YSogZGF0YTsKLSAgICBwYXNf
c2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIHRlbXBsYXRlX2RpcmVjdG9yeTsKLSAg
ICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kIHBhZ2VfY29uZmlnX2tpbmQ7Ci0gICAg
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcqIHBhZ2VfY29uZmlnX3B0cjsKLSAgICBwYXNfc2Vn
cmVnYXRlZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZpZzsKLSAgICB1bnNpZ25lZCBvYmplY3Rfc2l6
ZTsKLSAgICBzaXplX3QgYWxsb2NfYml0c19ieXRlczsKLSAgICB1bnNpZ25lZCBvZmZzZXQ7Ci0g
ICAgdW5zaWduZWQgYmVnaW47Ci0gICAgdW5zaWduZWQgZW5kOwotICAgIHVuc2lnbmVkKiBmdWxs
X2FsbG9jX2JpdHM7Ci0gICAgdW5zaWduZWQgZnVsbF9udW1fbm9uX2VtcHR5X3dvcmRzOwotICAg
IHNpemVfdCBpbmRleDsKLSAgICBwYXNfYWxsb2NhdGlvbl9jb25maWcgYm9vdHN0cmFwX2FsbG9j
YXRpb25fY29uZmlnOwotCi0gICAgcGFzX2hlYXBfbG9ja19hc3NlcnRfaGVsZCgpOwotCi0gICAg
ZGF0YSA9IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9lbnN1cmVfZGF0YShk
aXJlY3RvcnksIHBhc19sb2NrX2lzX2hlbGQpOwotICAgIGlmIChkYXRhLT5mdWxsX251bV9ub25f
ZW1wdHlfd29yZHMpCi0gICAgICAgIHJldHVybjsKLQotICAgIHBhZ2VfY29uZmlnX2tpbmQgPSBk
aXJlY3RvcnktPmJhc2UucGFnZV9jb25maWdfa2luZDsKLSAgICBpZiAocGFnZV9jb25maWdfa2lu
ZCA9PSBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX251bGwpCi0gICAgICAgIHJldHVy
bjsKLSAgICAKLSAgICBwYWdlX2NvbmZpZ19wdHIgPSBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZp
Z19raW5kX2dldF9jb25maWcocGFnZV9jb25maWdfa2luZCk7Ci0gICAgb2JqZWN0X3NpemUgPSBk
aXJlY3RvcnktPm9iamVjdF9zaXplOwotICAgIAotICAgIHRlbXBsYXRlX2RpcmVjdG9yeSA9IHBh
c19leGNsdXNpdmVfdmlld190ZW1wbGF0ZV9tZW1vX3RhYmxlX2dldCgKLSAgICAgICAgJnBhc19l
eGNsdXNpdmVfdmlld190ZW1wbGF0ZV9tZW1vX3RhYmxlX2luc3RhbmNlLAotICAgICAgICBwYXNf
ZXhjbHVzaXZlX3ZpZXdfdGVtcGxhdGVfbWVtb19rZXlfY3JlYXRlKG9iamVjdF9zaXplLCBwYWdl
X2NvbmZpZ19raW5kKSk7Ci0gICAgaWYgKHRlbXBsYXRlX2RpcmVjdG9yeSkgewotICAgICAgICBw
YXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YSogdGVtcGxhdGVfZGF0YTsK
LQotICAgICAgICB0ZW1wbGF0ZV9kYXRhID0gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGly
ZWN0b3J5X2RhdGFfcHRyX2xvYWQoJnRlbXBsYXRlX2RpcmVjdG9yeS0+ZGF0YSk7Ci0gICAgICAg
IAotICAgICAgICBkYXRhLT5mdWxsX2FsbG9jX2JpdHMgPSB0ZW1wbGF0ZV9kYXRhLT5mdWxsX2Fs
bG9jX2JpdHM7Ci0gICAgICAgIGRhdGEtPm9mZnNldF9mcm9tX3BhZ2VfYm91bmRhcnlfdG9fZmly
c3Rfb2JqZWN0ID0KLSAgICAgICAgICAgIHRlbXBsYXRlX2RhdGEtPm9mZnNldF9mcm9tX3BhZ2Vf
Ym91bmRhcnlfdG9fZmlyc3Rfb2JqZWN0OwotICAgICAgICBkYXRhLT5vZmZzZXRfZnJvbV9wYWdl
X2JvdW5kYXJ5X3RvX2VuZF9vZl9sYXN0X29iamVjdCA9Ci0gICAgICAgICAgICB0ZW1wbGF0ZV9k
YXRhLT5vZmZzZXRfZnJvbV9wYWdlX2JvdW5kYXJ5X3RvX2VuZF9vZl9sYXN0X29iamVjdDsKLQot
ICAgICAgICBpZiAocGFnZV9jb25maWdfcHRyLT5iYXNlLnBhZ2Vfc2l6ZSA+IHBhZ2VfY29uZmln
X3B0ci0+YmFzZS5ncmFudWxlX3NpemUpIHsKLSAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeV9nZXRfZXh0ZW5kZWRfZGF0YShkaXJlY3RvcnkpLT5mdWxsX3Vz
ZV9jb3VudHMgPQotICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2Rp
cmVjdG9yeV9nZXRfZXh0ZW5kZWRfZGF0YSgKLSAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGVf
ZGlyZWN0b3J5KS0+ZnVsbF91c2VfY291bnRzOwotICAgICAgICB9Ci0KLSAgICAgICAgcGFzX2Zl
bmNlKCk7Ci0gICAgICAgIGRhdGEtPmZ1bGxfbnVtX25vbl9lbXB0eV93b3JkcyA9Ci0gICAgICAg
ICAgICB0ZW1wbGF0ZV9kYXRhLT5mdWxsX251bV9ub25fZW1wdHlfd29yZHM7Ci0gICAgICAgIHJl
dHVybjsKLSAgICB9Ci0KLSAgICBwYWdlX2NvbmZpZyA9ICpwYWdlX2NvbmZpZ19wdHI7Ci0gICAg
Ci0gICAgYWxsb2NfYml0c19ieXRlcyA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX251bV9h
bGxvY19ieXRlcyhwYWdlX2NvbmZpZyk7Ci0gICAgZnVsbF9hbGxvY19iaXRzID0gcGFzX2ltbW9y
dGFsX2hlYXBfYWxsb2NhdGVfd2l0aF9tYW51YWxfYWxpZ25tZW50KAotICAgICAgICBhbGxvY19i
aXRzX2J5dGVzLCBzaXplb2YodW5zaWduZWQpLAotICAgICAgICAicGFzX3NlZ3JlZ2F0ZWRfZ2xv
YmFsX3NpemVfZGlyZWN0b3J5X2RhdGEvZnVsbF9hbGxvY19iaXRzIiwKLSAgICAgICAgcGFzX29i
amVjdF9hbGxvY2F0aW9uKTsKLSAgICBwYXNfY29tcGFjdF90YWdnZWRfdW5zaWduZWRfcHRyX3N0
b3JlKCZkYXRhLT5mdWxsX2FsbG9jX2JpdHMsIGZ1bGxfYWxsb2NfYml0cyk7Ci0gICAgcGFzX3pl
cm9fbWVtb3J5KGZ1bGxfYWxsb2NfYml0cywgYWxsb2NfYml0c19ieXRlcyk7Ci0KLSAgICBiZWdp
biA9IHBhc19zZWdyZWdhdGVkX3BhZ2Vfb2Zmc2V0X2Zyb21fcGFnZV9ib3VuZGFyeV90b19maXJz
dF9vYmplY3RfZXhjbHVzaXZlKG9iamVjdF9zaXplLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcGFnZV9jb25maWcpOwotICAgIGVuZCA9IHBhc19zZWdyZWdhdGVkX3BhZ2Vfb2Zmc2V0X2Zy
b21fcGFnZV9ib3VuZGFyeV90b19lbmRfb2ZfbGFzdF9vYmplY3RfZXhjbHVzaXZlKG9iamVjdF9z
aXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VfY29uZmlnKTsKLQotICAg
IGRhdGEtPm9mZnNldF9mcm9tX3BhZ2VfYm91bmRhcnlfdG9fZmlyc3Rfb2JqZWN0ID0gYmVnaW47
Ci0gICAgZGF0YS0+b2Zmc2V0X2Zyb21fcGFnZV9ib3VuZGFyeV90b19lbmRfb2ZfbGFzdF9vYmpl
Y3QgPSBlbmQ7Ci0KLSAgICBmb3IgKG9mZnNldCA9IGJlZ2luOyBvZmZzZXQgPCBlbmQ7IG9mZnNl
dCArPSBvYmplY3Rfc2l6ZSkgewotICAgICAgICBwYXNfYml0dmVjdG9yX3NldCgKLSAgICAgICAg
ICAgIGZ1bGxfYWxsb2NfYml0cywKLSAgICAgICAgICAgIHBhc19wYWdlX2Jhc2VfaW5kZXhfb2Zf
b2JqZWN0X2F0X29mZnNldF9mcm9tX3BhZ2VfYm91bmRhcnkoCi0gICAgICAgICAgICAgICAgb2Zm
c2V0LCBwYWdlX2NvbmZpZy5iYXNlKSwKLSAgICAgICAgICAgIHRydWUpOwotICAgIH0KLSAgICAK
LSAgICBmdWxsX251bV9ub25fZW1wdHlfd29yZHMgPSAwOwotICAgIGZvciAoaW5kZXggPSBwYXNf
c2VncmVnYXRlZF9wYWdlX2NvbmZpZ19udW1fYWxsb2Nfd29yZHMocGFnZV9jb25maWcpOyBpbmRl
eC0tOykgewotICAgICAgICBpZiAoZnVsbF9hbGxvY19iaXRzW2luZGV4XSkKLSAgICAgICAgICAg
IGZ1bGxfbnVtX25vbl9lbXB0eV93b3JkcysrOwotICAgIH0KLSAgICBQQVNfQVNTRVJUKGZ1bGxf
bnVtX25vbl9lbXB0eV93b3Jkcyk7Ci0KLSAgICBpZiAocGFnZV9jb25maWcuYmFzZS5wYWdlX3Np
emUgPiBwYWdlX2NvbmZpZy5iYXNlLmdyYW51bGVfc2l6ZSkgewotICAgICAgICBwYXNfZXh0ZW5k
ZWRfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YSogZXh0ZW5kZWRfZGF0YTsK
LSAgICAgICAgcGFzX3BhZ2VfZ3JhbnVsZV91c2VfY291bnQqIGZ1bGxfdXNlX2NvdW50czsKLSAg
ICAgICAgdWludHB0cl90IG51bV9ncmFudWxlczsKLSAgICAgICAgYm9vbCBpbml0aWFsaXplX3Jl
c3VsdDsKLQotICAgICAgICBleHRlbmRlZF9kYXRhID0gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3Np
emVfZGlyZWN0b3J5X2dldF9leHRlbmRlZF9kYXRhKGRpcmVjdG9yeSk7Ci0KLSAgICAgICAgbnVt
X2dyYW51bGVzID0gcGFnZV9jb25maWcuYmFzZS5wYWdlX3NpemUgLyBwYWdlX2NvbmZpZy5iYXNl
LmdyYW51bGVfc2l6ZTsKLQotICAgICAgICBmdWxsX3VzZV9jb3VudHMgPSBwYXNfaW1tb3J0YWxf
aGVhcF9hbGxvY2F0ZV93aXRoX21hbnVhbF9hbGlnbm1lbnQoCi0gICAgICAgICAgICBudW1fZ3Jh
bnVsZXMgKiBzaXplb2YocGFzX3BhZ2VfZ3JhbnVsZV91c2VfY291bnQpLAotICAgICAgICAgICAg
c2l6ZW9mKHBhc19wYWdlX2dyYW51bGVfdXNlX2NvdW50KSwKLSAgICAgICAgICAgICJwYXNfZXh0
ZW5kZWRfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YS9mdWxsX3VzZV9jb3Vu
dHMiLAotICAgICAgICAgICAgcGFzX29iamVjdF9hbGxvY2F0aW9uKTsKLQotICAgICAgICBpbml0
aWFsaXplX3Jlc3VsdCA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfaW5pdGlhbGl6ZV9mdWxsX3VzZV9j
b3VudHMoCi0gICAgICAgICAgICBOVUxMLCBkaXJlY3RvcnksIGZ1bGxfdXNlX2NvdW50cywgbnVt
X2dyYW51bGVzLCBwYWdlX2NvbmZpZyk7Ci0KLSAgICAgICAgLyogVGhpcyBzaG91bGQgaGF2ZSBp
bml0aWFsaXplZCBhbGwgb2YgdGhlIGJpdHMuICovCi0gICAgICAgIFBBU19BU1NFUlQoaW5pdGlh
bGl6ZV9yZXN1bHQpOwotCi0gICAgICAgIHBhc19jb21wYWN0X3RhZ2dlZF9wYWdlX2dyYW51bGVf
dXNlX2NvdW50X3B0cl9zdG9yZSgKLSAgICAgICAgICAgICZleHRlbmRlZF9kYXRhLT5mdWxsX3Vz
ZV9jb3VudHMsCi0gICAgICAgICAgICBmdWxsX3VzZV9jb3VudHMpOwotICAgIH0KLQotICAgIHBh
c19mZW5jZSgpOwotICAgIGRhdGEtPmZ1bGxfbnVtX25vbl9lbXB0eV93b3JkcyA9IGZ1bGxfbnVt
X25vbl9lbXB0eV93b3JkczsKLSAgICBQQVNfQVNTRVJUKGRhdGEtPmZ1bGxfbnVtX25vbl9lbXB0
eV93b3JkcyA9PSBmdWxsX251bV9ub25fZW1wdHlfd29yZHMpOwotCi0gICAgcGFzX2Jvb3RzdHJh
cF9mcmVlX2hlYXBfYWxsb2NhdGlvbl9jb25maWdfY29uc3RydWN0KCZib290c3RyYXBfYWxsb2Nh
dGlvbl9jb25maWcsIHBhc19sb2NrX2lzX2hlbGQpOwotICAgIAotICAgIHBhc19leGNsdXNpdmVf
dmlld190ZW1wbGF0ZV9tZW1vX3RhYmxlX2FkZF9uZXcoCi0gICAgICAgICZwYXNfZXhjbHVzaXZl
X3ZpZXdfdGVtcGxhdGVfbWVtb190YWJsZV9pbnN0YW5jZSwKLSAgICAgICAgZGlyZWN0b3J5LAot
ICAgICAgICBOVUxMLAotICAgICAgICAmYm9vdHN0cmFwX2FsbG9jYXRpb25fY29uZmlnKTsKLX0K
LQotdm9pZCBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZXhwbG9kZShwYXNf
c2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2xvY2tfaG9sZF9tb2Rl
IGhlYXBfbG9ja19ob2xkX21vZGUpCi17Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVf
ZGlyZWN0b3J5X2RhdGEqIGRhdGE7Ci0KLSAgICBQQVNfQVNTRVJUKCFwYXNfc2VncmVnYXRlZF9w
YWdlX2NvbmZpZ19raW5kX2lzX3V0aWxpdHkoZGlyZWN0b3J5LT5iYXNlLnBhZ2VfY29uZmlnX2tp
bmQpKTsKLSAgICBQQVNfQVNTRVJUKGRpcmVjdG9yeS0+YmFzZS5wYWdlX2NvbmZpZ19raW5kICE9
IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfbnVsbCk7Ci0KLSAgICBpZiAoIXBhc19z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9jYW5fZXhwbG9kZSkKLSAgICAgICAgcmV0
dXJuOwotCi0gICAgZGF0YSA9IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9l
bnN1cmVfZGF0YShkaXJlY3RvcnksIGhlYXBfbG9ja19ob2xkX21vZGUpOwotCi0gICAgaWYgKCFw
YXNfY29tcGFjdF9hdG9taWNfcGFnZV9zaGFyaW5nX3Bvb2xfcHRyX2xvYWQoJmRhdGEtPmJpYXNf
c2hhcmluZ19wb29sKSkgewotICAgICAgICBwYXNfaGVhcF9sb2NrX2xvY2tfY29uZGl0aW9uYWxs
eShoZWFwX2xvY2tfaG9sZF9tb2RlKTsKLQotICAgICAgICBpZiAoIXBhc19jb21wYWN0X2F0b21p
Y19wYWdlX3NoYXJpbmdfcG9vbF9wdHJfbG9hZCgmZGF0YS0+Ymlhc19zaGFyaW5nX3Bvb2wpKSB7
Ci0gICAgICAgICAgICBwYXNfcGFnZV9zaGFyaW5nX3Bvb2wqIHBvb2w7Ci0gICAgICAgICAgICAK
LSAgICAgICAgICAgIHBvb2wgPSBwYXNfaW1tb3J0YWxfaGVhcF9hbGxvY2F0ZV93aXRoX2FsaWdu
bWVudCgKLSAgICAgICAgICAgICAgICBzaXplb2YocGFzX3BhZ2Vfc2hhcmluZ19wb29sKSwKLSAg
ICAgICAgICAgICAgICBhbGlnbm9mKHBhc19wYWdlX3NoYXJpbmdfcG9vbCksCi0gICAgICAgICAg
ICAgICAgInBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeS9iaWFzX3NoYXJpbmdf
cG9vbCIsCi0gICAgICAgICAgICAgICAgcGFzX29iamVjdF9hbGxvY2F0aW9uKTsKLQotICAgICAg
ICAgICAgcGFzX3BhZ2Vfc2hhcmluZ19wb29sX2NvbnN0cnVjdChwb29sKTsKLSAgICAgICAgICAg
IAotICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3BhZ2Vfc2hhcmluZ19wb29sX3B0cl9z
dG9yZSgmZGF0YS0+Ymlhc19zaGFyaW5nX3Bvb2wsIHBvb2wpOwotICAgICAgICB9Ci0gICAgICAg
IAotICAgICAgICBwYXNfaGVhcF9sb2NrX3VubG9ja19jb25kaXRpb25hbGx5KGhlYXBfbG9ja19o
b2xkX21vZGUpOwotICAgIH0KLQotICAgIFBBU19BU1NFUlQocGFzX2NvbXBhY3RfYXRvbWljX3Bh
Z2Vfc2hhcmluZ19wb29sX3B0cl9sb2FkKCZkYXRhLT5iaWFzX3NoYXJpbmdfcG9vbCkpOwotfQot
Ci1wYXNfYmFzZWxpbmVfYWxsb2NhdG9yKgotcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGly
ZWN0b3J5X3NlbGVjdF9hbGxvY2F0b3Jfc2xvdygKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxf
c2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSkKLXsKLSAgICBwYXNfYmFzZWxpbmVfYWxsb2NhdG9y
X3RhYmxlX2luaXRpYWxpemVfaWZfbmVjZXNzYXJ5KCk7Ci0gICAgCi0gICAgZm9yICg7Oykgewot
ICAgICAgICB1bnNpZ25lZCBhX2luZGV4OwotICAgICAgICB1bnNpZ25lZCBiX2luZGV4OwotICAg
ICAgICBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yKiBhX2FsbG9jYXRvcjsKLSAgICAgICAgcGFzX2Jh
c2VsaW5lX2FsbG9jYXRvciogYl9hbGxvY2F0b3I7Ci0gICAgICAgIHVuc2lnbmVkIHNlbGVjdGVk
X2luZGV4OwotICAgICAgICBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yKiBzZWxlY3RlZF9hbGxvY2F0
b3I7Ci0gICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogc2VsZWN0
ZWRfZGlyZWN0b3J5OwotCi0gICAgICAgIHNlbGVjdGVkX2luZGV4ID0gZGlyZWN0b3J5LT5iYXNl
bGluZV9hbGxvY2F0b3JfaW5kZXg7Ci0gICAgICAgIGlmIChzZWxlY3RlZF9pbmRleCA8IFBBU19O
VU1fQkFTRUxJTkVfQUxMT0NBVE9SUykgewotICAgICAgICAgICAgc2VsZWN0ZWRfYWxsb2NhdG9y
ID0gcGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl90YWJsZSArIHNlbGVjdGVkX2luZGV4OwotCi0gICAg
ICAgICAgICBwYXNfbG9ja19sb2NrKCZzZWxlY3RlZF9hbGxvY2F0b3ItPmxvY2spOwotCi0gICAg
ICAgICAgICBpZiAoZGlyZWN0b3J5LT5iYXNlbGluZV9hbGxvY2F0b3JfaW5kZXggIT0gc2VsZWN0
ZWRfaW5kZXgpIHsKLSAgICAgICAgICAgICAgICBwYXNfbG9ja191bmxvY2soJnNlbGVjdGVkX2Fs
bG9jYXRvci0+bG9jayk7Ci0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICB9
Ci0KLSAgICAgICAgICAgIHJldHVybiBzZWxlY3RlZF9hbGxvY2F0b3I7Ci0gICAgICAgIH0KLQot
ICAgICAgICBpZiAoc2VsZWN0ZWRfaW5kZXggPCAyICogUEFTX05VTV9CQVNFTElORV9BTExPQ0FU
T1JTKQotICAgICAgICAgICAgc2VsZWN0ZWRfaW5kZXggLT0gUEFTX05VTV9CQVNFTElORV9BTExP
Q0FUT1JTOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIFBBU19BU1NFUlQoc2VsZWN0ZWRf
aW5kZXggPT0gMiAqIFBBU19OVU1fQkFTRUxJTkVfQUxMT0NBVE9SUyk7Ci0gICAgICAgICAgICAK
LSAgICAgICAgICAgIGFfaW5kZXggPSBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX3RhYmxlX2dldF9y
YW5kb21faW5kZXgoKTsKLSAgICAgICAgICAgIGJfaW5kZXggPSBwYXNfYmFzZWxpbmVfYWxsb2Nh
dG9yX3RhYmxlX2dldF9yYW5kb21faW5kZXgoKTsKLSAgICAKLSAgICAgICAgICAgIGFfYWxsb2Nh
dG9yID0gcGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl90YWJsZSArIGFfaW5kZXg7Ci0gICAgICAgICAg
ICBiX2FsbG9jYXRvciA9IHBhc19iYXNlbGluZV9hbGxvY2F0b3JfdGFibGUgKyBiX2luZGV4Owot
Ci0gICAgICAgICAgICAvKiBJZiBpdCdzIGNoZWFwIHRvIHN0b3Agb25lIG9mIHRoZXNlIHRoZW4g
anVzdCBwaWNrIGVpdGhlciBvbmUuICovCi0gICAgICAgICAgICBpZiAoIXBhc19sb2NhbF9hbGxv
Y2F0b3JfaXNfYWN0aXZlKCZhX2FsbG9jYXRvci0+dS5hbGxvY2F0b3IpKQotICAgICAgICAgICAg
ICAgIHNlbGVjdGVkX2luZGV4ID0gYV9pbmRleDsKLSAgICAgICAgICAgIGVsc2UgaWYgKCFwYXNf
bG9jYWxfYWxsb2NhdG9yX2lzX2FjdGl2ZSgmYl9hbGxvY2F0b3ItPnUuYWxsb2NhdG9yKSkKLSAg
ICAgICAgICAgICAgICBzZWxlY3RlZF9pbmRleCA9IGJfaW5kZXg7Ci0gICAgICAgICAgICBlbHNl
IHsKLSAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF92aWV3IGFfdmlldzsKLSAgICAgICAg
ICAgICAgICBwYXNfc2VncmVnYXRlZF92aWV3IGJfdmlldzsKLQotICAgICAgICAgICAgICAgIGFf
dmlldyA9IGFfYWxsb2NhdG9yLT51LmFsbG9jYXRvci52aWV3OwotICAgICAgICAgICAgICAgIGJf
dmlldyA9IGJfYWxsb2NhdG9yLT51LmFsbG9jYXRvci52aWV3OwotCi0gICAgICAgICAgICAgICAg
aWYgKCFhX3ZpZXcpCi0gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkX2luZGV4ID0gYV9pbmRl
eDsKLSAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkX2lu
ZGV4ID0gYl9pbmRleDsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKCFwYXNfY29t
cGFyZV9hbmRfc3dhcF91aW50MTZfd2VhaygmZGlyZWN0b3J5LT5iYXNlbGluZV9hbGxvY2F0b3Jf
aW5kZXgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDIgKiBQQVNfTlVNX0JBU0VMSU5FX0FMTE9DQVRPUlMsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBBU19OVU1fQkFTRUxJTkVfQUxMT0NBVE9SUyAr
IHNlbGVjdGVkX2luZGV4KSkKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgfQot
ICAgIAotICAgICAgICBzZWxlY3RlZF9hbGxvY2F0b3IgPSBwYXNfYmFzZWxpbmVfYWxsb2NhdG9y
X3RhYmxlICsgc2VsZWN0ZWRfaW5kZXg7Ci0gICAgCi0gICAgICAgIHBhc19sb2NrX2xvY2soJnNl
bGVjdGVkX2FsbG9jYXRvci0+bG9jayk7Ci0KLSAgICAgICAgaWYgKGRpcmVjdG9yeS0+YmFzZWxp
bmVfYWxsb2NhdG9yX2luZGV4ID09IHNlbGVjdGVkX2luZGV4KQotICAgICAgICAgICAgcmV0dXJu
IHNlbGVjdGVkX2FsbG9jYXRvcjsKLQotICAgICAgICBpZiAoZGlyZWN0b3J5LT5iYXNlbGluZV9h
bGxvY2F0b3JfaW5kZXggIT0gUEFTX05VTV9CQVNFTElORV9BTExPQ0FUT1JTICsgc2VsZWN0ZWRf
aW5kZXgpIHsKLSAgICAgICAgICAgIHBhc19sb2NrX3VubG9jaygmc2VsZWN0ZWRfYWxsb2NhdG9y
LT5sb2NrKTsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYg
KCFwYXNfbG9jYWxfYWxsb2NhdG9yX2lzX251bGwoJnNlbGVjdGVkX2FsbG9jYXRvci0+dS5hbGxv
Y2F0b3IpKSB7Ci0gICAgICAgICAgICBwYXNfbnVtX2Jhc2VsaW5lX2FsbG9jYXRvcl9ldmljdGlv
bnMrKzsKLSAgICAgICAgICAgIHNlbGVjdGVkX2RpcmVjdG9yeSA9IHBhc19zZWdyZWdhdGVkX3Zp
ZXdfZ2V0X2dsb2JhbF9zaXplX2RpcmVjdG9yeShzZWxlY3RlZF9hbGxvY2F0b3ItPnUuYWxsb2Nh
dG9yLnZpZXcpOwotICAgICAgICAgICAgcGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl9kZXRhY2hfZGly
ZWN0b3J5KHNlbGVjdGVkX2FsbG9jYXRvcik7Ci0gICAgICAgICAgICBwYXNfZmVuY2UoKTsKLSAg
ICAgICAgICAgIHNlbGVjdGVkX2RpcmVjdG9yeS0+YmFzZWxpbmVfYWxsb2NhdG9yX2luZGV4ID0g
MiAqIFBBU19OVU1fQkFTRUxJTkVfQUxMT0NBVE9SUzsKLSAgICAgICAgfQotCi0gICAgICAgIHBh
c19iYXNlbGluZV9hbGxvY2F0b3JfYXR0YWNoX2RpcmVjdG9yeShzZWxlY3RlZF9hbGxvY2F0b3Is
IGRpcmVjdG9yeSk7Ci0KLSAgICAgICAgZGlyZWN0b3J5LT5iYXNlbGluZV9hbGxvY2F0b3JfaW5k
ZXggPSBzZWxlY3RlZF9pbmRleDsKLQotICAgICAgICByZXR1cm4gc2VsZWN0ZWRfYWxsb2NhdG9y
OwotICAgIH0KLX0KLQotc3RhdGljIHZvaWQgdGFrZV9maXJzdF9lbGlnaWJsZV9kaXJlY3RfbG9v
cF9oZWFkX2NhbGxiYWNrKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeSogZGlyZWN0b3J5KQotewot
ICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZ2xvYmFsX3NpemVfZGly
ZWN0b3J5OwotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhKiBk
YXRhOwotICAgIHBhc19wYWdlX3NoYXJpbmdfcG9vbCogYmlhc19wb29sOwotCi0gICAgUEFTX1RF
U1RJTkdfQVNTRVJUKGRpcmVjdG9yeS0+ZGlyZWN0b3J5X2tpbmQgPT0gcGFzX3NlZ3JlZ2F0ZWRf
Z2xvYmFsX3NpemVfZGlyZWN0b3J5X2tpbmQpOwotICAgIAotICAgIGdsb2JhbF9zaXplX2RpcmVj
dG9yeSA9IChwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqKWRpcmVjdG9yeTsK
LQotICAgIGRhdGEgPSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YV9w
dHJfbG9hZCgmZ2xvYmFsX3NpemVfZGlyZWN0b3J5LT5kYXRhKTsKLSAgICBpZiAoIWRhdGEpCi0g
ICAgICAgIHJldHVybjsKLSAgICAKLSAgICBiaWFzX3Bvb2wgPSBwYXNfY29tcGFjdF9hdG9taWNf
cGFnZV9zaGFyaW5nX3Bvb2xfcHRyX2xvYWQoJmRhdGEtPmJpYXNfc2hhcmluZ19wb29sKTsKLSAg
ICAKLSAgICBpZiAoIWJpYXNfcG9vbCkKLSAgICAgICAgcmV0dXJuOwotICAgIAotICAgIFBBU19U
RVNUSU5HX0FTU0VSVCgKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZF9o
ZWFwX2xvY2tfaG9sZF9tb2RlKGRpcmVjdG9yeS0+cGFnZV9jb25maWdfa2luZCkKLSAgICAgICAg
PT0gcGFzX2xvY2tfaXNfbm90X2hlbGQpOwotICAgIAotICAgIHBhc19iaWFzX3BhZ2Vfc2hhcmlu
Z19wb29sX3Rha2UoYmlhc19wb29sKTsKLX0KLQotc3RhdGljIHBhc19zZWdyZWdhdGVkX3ZpZXcg
dGFrZV9maXJzdF9lbGlnaWJsZV9kaXJlY3RfY3JlYXRlX25ld192aWV3X2NhbGxiYWNrKAotICAg
IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pdGVyYXRlX2NvbmZpZyogY29uZmlnKQotewotICAg
IHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKLSAgICAKLSAgICBwYXNfc2VncmVn
YXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGdsb2JhbF9zaXplX2RpcmVjdG9yeTsKLSAgICBw
YXNfc2VncmVnYXRlZF92aWV3IHZpZXc7Ci0gICAgcGFzX2hlYXBfcnVudGltZV9jb25maWcqIHJ1
bnRpbWVfY29uZmlnOwotCi0gICAgUEFTX1RFU1RJTkdfQVNTRVJUKGNvbmZpZy0+ZGlyZWN0b3J5
LT5kaXJlY3Rvcnlfa2luZCA9PSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnlf
a2luZCk7Ci0gICAgCi0gICAgZ2xvYmFsX3NpemVfZGlyZWN0b3J5ID0gKHBhc19zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeSopY29uZmlnLT5kaXJlY3Rvcnk7Ci0KLSAgICBydW50aW1l
X2NvbmZpZyA9IGdsb2JhbF9zaXplX2RpcmVjdG9yeS0+aGVhcC0+cnVudGltZV9jb25maWc7Ci0K
LSAgICBpZiAoY29uZmlnLT5pbmRleCA+PSBydW50aW1lX2NvbmZpZy0+ZGlyZWN0b3J5X3NpemVf
Ym91bmRfZm9yX3BhcnRpYWxfdmlld3MpCi0gICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeV9lbmFibGVfZXhjbHVzaXZlX3ZpZXdzKGdsb2JhbF9zaXplX2RpcmVjdG9y
eSk7Ci0KLSAgICBpZiAoY29uZmlnLT5pbmRleCA+PSBydW50aW1lX2NvbmZpZy0+ZGlyZWN0b3J5
X3NpemVfYm91bmRfZm9yX2Jhc2VsaW5lX2FsbG9jYXRvcnMpCi0gICAgICAgIHBhc19zZWdyZWdh
dGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9jcmVhdGVfdGxjX2FsbG9jYXRvcihnbG9iYWxfc2l6
ZV9kaXJlY3RvcnkpOwotICAgIAotICAgIGlmIChwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9k
aXJlY3RvcnlfYXJlX2V4Y2x1c2l2ZV92aWV3c19lbmFibGVkKGdsb2JhbF9zaXplX2RpcmVjdG9y
eSkpIHsKLSAgICAgICAgdmlldyA9IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2FzX3Zp
ZXdfbm9uX251bGwoCi0gICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19j
cmVhdGUoZ2xvYmFsX3NpemVfZGlyZWN0b3J5LCBjb25maWctPmluZGV4KSk7Ci0gICAgICAgIGlm
ICh2ZXJib3NlKSB7Ci0gICAgICAgICAgICBwYXNfbG9nKCIlcDogY3JlYXRlZCBleGNsdXNpdmUg
JXAuXG4iLAotICAgICAgICAgICAgICAgICAgICBnbG9iYWxfc2l6ZV9kaXJlY3RvcnksIHBhc19z
ZWdyZWdhdGVkX3ZpZXdfZ2V0X3B0cih2aWV3KSk7Ci0gICAgICAgIH0KLSAgICB9IGVsc2Ugewot
ICAgICAgICB2aWV3ID0gcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X2FzX3ZpZXdfbm9uX251
bGwoCi0gICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXdfY3JlYXRlKGdsb2Jh
bF9zaXplX2RpcmVjdG9yeSwgY29uZmlnLT5pbmRleCkpOwotICAgICAgICBpZiAodmVyYm9zZSkg
ewotICAgICAgICAgICAgcGFzX2xvZygiJXA6IGNyZWF0ZWQgcGFydGlhbCAlcC5cbiIsCi0gICAg
ICAgICAgICAgICAgICAgIGdsb2JhbF9zaXplX2RpcmVjdG9yeSwgcGFzX3NlZ3JlZ2F0ZWRfdmll
d19nZXRfcHRyKHZpZXcpKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHJldHVybiB2aWV3Owot
fQotCi1wYXNfc2VncmVnYXRlZF92aWV3IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVj
dG9yeV90YWtlX2ZpcnN0X2VsaWdpYmxlX2RpcmVjdCgKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnkqIGdsb2JhbF9zaXplX2RpcmVjdG9yeSkKLXsKLSAgICBzdGF0aWMg
Y29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7Ci0gICAgCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGly
ZWN0b3J5KiBkaXJlY3Rvcnk7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2l0ZXJhdGVf
Y29uZmlnIGNvbmZpZzsKLSAgICBwYXNfc2VncmVnYXRlZF92aWV3IHZpZXc7Ci0KLSAgICBQQVNf
VEVTVElOR19BU1NFUlQoCi0gICAgICAgIGdsb2JhbF9zaXplX2RpcmVjdG9yeS0+YmFzZS5wYWdl
X2NvbmZpZ19raW5kICE9IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfbnVsbCk7Ci0K
LSAgICBkaXJlY3RvcnkgPSAmZ2xvYmFsX3NpemVfZGlyZWN0b3J5LT5iYXNlOwotCi0gICAgdmll
dyA9IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3Rha2VfZmlyc3RfZWxpZ2libGVfaW1w
bCgKLSAgICAgICAgZGlyZWN0b3J5LCAmY29uZmlnLAotICAgICAgICB0YWtlX2ZpcnN0X2VsaWdp
YmxlX2RpcmVjdF9sb29wX2hlYWRfY2FsbGJhY2ssCi0gICAgICAgIHRha2VfZmlyc3RfZWxpZ2li
bGVfZGlyZWN0X2NyZWF0ZV9uZXdfdmlld19jYWxsYmFjayk7Ci0KLSAgICBpZiAodmVyYm9zZSkg
ewotICAgICAgICBwYXNfbG9nKCJUYWtpbmcgZWxpZ2libGUgdmlldyAlcCAoJXMpLlxuIiwKLSAg
ICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9wdHIodmlldyksCi0gICAgICAg
ICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlld19raW5kX2dldF9zdHJpbmcocGFzX3NlZ3JlZ2F0
ZWRfdmlld19nZXRfa2luZCh2aWV3KSkpOwotICAgIH0KLQotICAgIFBBU19URVNUSU5HX0FTU0VS
VCghUEFTX1NFR1JFR0FURURfRElSRUNUT1JZX0dFVF9CSVQoCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICBkaXJlY3RvcnksIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2luZGV4KHZpZXcpLCBl
bGlnaWJsZSkpOwotICAgIAotICAgIHJldHVybiB2aWV3OwotfQotCi1wYXNfc2VncmVnYXRlZF92
aWV3IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV90YWtlX2ZpcnN0X2VsaWdp
YmxlKAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5
LCBwYXNfbWFnYXppbmUqIG1hZ2F6aW5lKQotewotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeV9kYXRhKiBkYXRhOwotICAgIHBhc19wYWdlX3NoYXJpbmdfcG9vbCogYmlh
c19wb29sOwotICAgIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnQgcGFydGljaXBhbnQ7Ci0g
ICAgdW5zaWduZWQgbWFnYXppbmVfaW5kZXg7Ci0KLSAgICBQQVNfVEVTVElOR19BU1NFUlQoZGly
ZWN0b3J5LT5iYXNlLnBhZ2VfY29uZmlnX2tpbmQgIT0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25m
aWdfa2luZF9udWxsKTsKLQotICAgIGlmIChwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJl
Y3RvcnlfY29udGVudGlvbl9kaWRfdHJpZ2dlcl9leHBsb3Npb24oZGlyZWN0b3J5KSkKLSAgICAg
ICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2V4cGxvZGUoZGlyZWN0b3J5
LCBwYXNfbG9ja19pc19ub3RfaGVsZCk7Ci0KLSAgICBkYXRhID0gcGFzX3NlZ3JlZ2F0ZWRfZ2xv
YmFsX3NpemVfZGlyZWN0b3J5X2RhdGFfcHRyX2xvYWQoJmRpcmVjdG9yeS0+ZGF0YSk7Ci0KLSAg
ICBpZiAoIWRhdGEgfHwgIW1hZ2F6aW5lKQotICAgICAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRf
Z2xvYmFsX3NpemVfZGlyZWN0b3J5X3Rha2VfZmlyc3RfZWxpZ2libGVfZGlyZWN0KGRpcmVjdG9y
eSk7Ci0KLSAgICBiaWFzX3Bvb2wgPSBwYXNfY29tcGFjdF9hdG9taWNfcGFnZV9zaGFyaW5nX3Bv
b2xfcHRyX2xvYWQoJmRhdGEtPmJpYXNfc2hhcmluZ19wb29sKTsKLSAgICBpZiAoIWJpYXNfcG9v
bCkKLSAgICAgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV90
YWtlX2ZpcnN0X2VsaWdpYmxlX2RpcmVjdChkaXJlY3RvcnkpOwotCi0gICAgbWFnYXppbmVfaW5k
ZXggPSBtYWdhemluZS0+bWFnYXppbmVfaW5kZXg7Ci0KLSAgICBwYXJ0aWNpcGFudCA9IHBhc19w
YWdlX3NoYXJpbmdfcG9vbF9nZXRfcGFydGljaXBhbnQoYmlhc19wb29sLCBtYWdhemluZV9pbmRl
eCk7Ci0gICAgaWYgKCFwYXJ0aWNpcGFudCkgewotICAgICAgICBwYXNfc2VncmVnYXRlZF9iaWFz
aW5nX2RpcmVjdG9yeSogYmlhc2luZ19kaXJlY3Rvcnk7Ci0KLSAgICAgICAgYmlhc2luZ19kaXJl
Y3RvcnkgPSBOVUxMOwotICAgICAgICAKLSAgICAgICAgcGFzX2hlYXBfbG9ja19sb2NrKCk7Ci0g
ICAgICAgIHBhcnRpY2lwYW50ID0gcGFzX3BhZ2Vfc2hhcmluZ19wb29sX2dldF9wYXJ0aWNpcGFu
dChiaWFzX3Bvb2wsIG1hZ2F6aW5lX2luZGV4KTsKLSAgICAgICAgaWYgKCFwYXJ0aWNpcGFudCkK
LSAgICAgICAgICAgIGJpYXNpbmdfZGlyZWN0b3J5ID0gcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19k
aXJlY3RvcnlfY3JlYXRlKGRpcmVjdG9yeSwgbWFnYXppbmVfaW5kZXgpOwotICAgICAgICBwYXNf
aGVhcF9sb2NrX3VubG9jaygpOwotCi0gICAgICAgIGlmICghcGFydGljaXBhbnQpIHsKLSAgICAg
ICAgICAgIHBhcnRpY2lwYW50ID0gcGFzX3BhZ2Vfc2hhcmluZ19wb29sX2dldF9wYXJ0aWNpcGFu
dChiaWFzX3Bvb2wsIG1hZ2F6aW5lX2luZGV4KTsKLSAgICAgICAgICAgIFBBU19BU1NFUlQoCi0g
ICAgICAgICAgICAgICAgcGFydGljaXBhbnQgPT0gcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFu
dF9jcmVhdGUoCi0gICAgICAgICAgICAgICAgICAgICZiaWFzaW5nX2RpcmVjdG9yeS0+Ymlhc2lu
Z19iYXNlLCBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2JpYXNpbmdfZGlyZWN0b3J5KSk7
Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgCi0gICAgUEFTX0FTU0VSVChwYXNfcGFnZV9zaGFyaW5n
X3BhcnRpY2lwYW50X2dldF9raW5kKHBhcnRpY2lwYW50KQotICAgICAgICAgICAgICAgPT0gcGFz
X3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9iaWFzaW5nX2RpcmVjdG9yeSk7Ci0gICAgCi0gICAg
cmV0dXJuIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5X3Rha2VfZmlyc3RfZWxpZ2li
bGUoCi0gICAgICAgIHBhc191bndyYXBfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeSgKLSAg
ICAgICAgICAgIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfZ2V0X3B0cihwYXJ0aWNpcGFu
dCkpLAotICAgICAgICBkaXJlY3RvcnkpOwotfQotCi10eXBlZGVmIHN0cnVjdCB7Ci0gICAgcGFz
X2RlZmVycmVkX2RlY29tbWl0X2xvZyogZGVjb21taXRfbG9nOwotICAgIHBhc19sb2NrX2hvbGRf
bW9kZSBoZWFwX2xvY2tfaG9sZF9tb2RlOwotICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmln
KiBteV9wYWdlX2NvbmZpZ19wdHI7Ci0gICAgcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2VfcmVz
dWx0IHJlc3VsdDsKLX0gdGFrZV9sYXN0X2VtcHR5X2RhdGE7Ci0KLXN0YXRpYyBQQVNfQUxXQVlT
X0lOTElORSB1bnNpZ25lZAotdGFrZV9sYXN0X2VtcHR5X3Nob3VsZF9jb25zaWRlcl92aWV3X3Bh
cmFsbGVsKAotICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9iaXR2ZWN0b3Jfc2VnbWVudCBz
ZWdtZW50LAotICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pdGVyYXRlX2NvbmZpZyogY29u
ZmlnKQotewotICAgIHRha2VfbGFzdF9lbXB0eV9kYXRhKiBkYXRhOwotCi0gICAgZGF0YSA9IGNv
bmZpZy0+YXJnOwotCi0gICAgcmV0dXJuIHNlZ21lbnQuZW1wdHlfYml0czsKLX0KLQotc3RhdGlj
IGJvb2wKLXRha2VfbGFzdF9lbXB0eV9jb25zaWRlcl92aWV3KHBhc19zZWdyZWdhdGVkX2RpcmVj
dG9yeV9pdGVyYXRlX2NvbmZpZyogY29uZmlnKQotewotICAgIHN0YXRpYyBjb25zdCBib29sIHZl
cmJvc2UgPSBmYWxzZTsKLQotICAgIC8qIFdlIHB1dCBvdXIgdGFrZV9sYXN0X2VtcHR5IGxvZ2lj
IGluIGNvbnNpZGVyX3ZpZXcgYmVjYXVzZSBzaG91bGRfY29uc2lkZXJfdmlld19wYXJhbGxlbAot
ICAgICAgIGNhbm5vdCByZWFsbHkgdGVsbCBpZiBhIHBhZ2UgY2FuIGJlIHRha2VuLiAqLwotCi0g
ICAgdGFrZV9sYXN0X2VtcHR5X2RhdGEqIGRhdGE7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0
b3J5KiBkaXJlY3Rvcnk7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
KiBzaXplX2RpcmVjdG9yeTsKLSAgICBwYXNfZGVmZXJyZWRfZGVjb21taXRfbG9nKiBkZWNvbW1p
dF9sb2c7Ci0gICAgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGU7Ci0gICAg
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcqIG15X3BhZ2VfY29uZmlnX3B0cjsKLSAgICBwYXNf
c2VncmVnYXRlZF9wYWdlX2NvbmZpZyBteV9wYWdlX2NvbmZpZzsKLSAgICBzaXplX3QgaW5kZXg7
Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfdmlldyBnZW5lcmljX3ZpZXc7Ci0gICAgcGFzX3NlZ3JlZ2F0
ZWRfZXhjbHVzaXZlX3ZpZXcqIHZpZXc7Ci0gICAgcGFzX2xvY2sqIGhlbGRfbG9jazsKLSAgICBw
YXNfc2VncmVnYXRlZF9wYWdlKiBwYWdlOwotICAgIGJvb2wgZGlkX3Rha2VfYml0OwotICAgIHBh
c19sb2NrKiBvd25lcnNoaXBfbG9jazsKLQotICAgIGRpcmVjdG9yeSA9IGNvbmZpZy0+ZGlyZWN0
b3J5OwotICAgIGluZGV4ID0gY29uZmlnLT5pbmRleDsKLQotICAgIGRpZF90YWtlX2JpdCA9IFBB
U19TRUdSRUdBVEVEX0RJUkVDVE9SWV9TRVRfQklUKGRpcmVjdG9yeSwgaW5kZXgsIGVtcHR5LCBm
YWxzZSk7Ci0gICAgCi0gICAgaWYgKCFkaWRfdGFrZV9iaXQpCi0gICAgICAgIHJldHVybiBmYWxz
ZTsKLQotICAgIHNpemVfZGlyZWN0b3J5ID0gKHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2Rp
cmVjdG9yeSopZGlyZWN0b3J5OwotICAgIGdlbmVyaWNfdmlldyA9IHBhc19zZWdyZWdhdGVkX2Rp
cmVjdG9yeV9nZXQoZGlyZWN0b3J5LCBpbmRleCk7Ci0gICAgUEFTX0FTU0VSVChwYXNfc2VncmVn
YXRlZF92aWV3X2lzX2V4Y2x1c2l2ZShnZW5lcmljX3ZpZXcpKTsKLSAgICB2aWV3ID0gcGFzX3Nl
Z3JlZ2F0ZWRfdmlld19nZXRfZXhjbHVzaXZlKGdlbmVyaWNfdmlldyk7Ci0gICAgaGVsZF9sb2Nr
ID0gTlVMTDsKLSAgICBkYXRhID0gY29uZmlnLT5hcmc7Ci0KLSAgICBteV9wYWdlX2NvbmZpZ19w
dHIgPSBkYXRhLT5teV9wYWdlX2NvbmZpZ19wdHI7Ci0gICAgaGVhcF9sb2NrX2hvbGRfbW9kZSA9
IGRhdGEtPmhlYXBfbG9ja19ob2xkX21vZGU7Ci0gICAgZGVjb21taXRfbG9nID0gZGF0YS0+ZGVj
b21taXRfbG9nOwotICAgIG15X3BhZ2VfY29uZmlnID0gKm15X3BhZ2VfY29uZmlnX3B0cjsKLSAg
ICAKLSAgICBpZiAodmVyYm9zZSkKLSAgICAgICAgcGFzX2xvZygiJXA6IGNvbnNpZGVyaW5nIGVt
cHR5IGluZGV4ICV6dSwgdmlldyA9ICVwLlxuIiwgZGlyZWN0b3J5LCBpbmRleCwgdmlldyk7Ci0K
LSAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfaXNfdXRpbGl0eShteV9wYWdlX2Nv
bmZpZykpCi0gICAgICAgIG93bmVyc2hpcF9sb2NrID0gcGFzX2xvY2tfZm9yX3N3aXRjaF9jb25k
aXRpb25hbGx5KCZwYXNfaGVhcF9sb2NrLCBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKLSAgICBlbHNl
Ci0gICAgICAgIG93bmVyc2hpcF9sb2NrID0gJnZpZXctPm93bmVyc2hpcF9sb2NrOwotCi0gICAg
cGFzX2xvY2tfc3dpdGNoKCZoZWxkX2xvY2ssIG93bmVyc2hpcF9sb2NrKTsKLSAgICAKLSAgICBp
ZiAocGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfaXNfdXRpbGl0eShteV9wYWdlX2NvbmZpZykp
Ci0gICAgICAgIHBhc19oZWFwX2xvY2tfYXNzZXJ0X2hlbGQoKTsKLSAgICAKLSAgICBpZiAoIXBh
c19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5kX2lzX293bmVkKHZpZXct
Pm93bmVyc2hpcF9raW5kKSkgewotICAgICAgICBpZiAodmVyYm9zZSkKLSAgICAgICAgICAgIHBh
c19sb2coIm5vdCBvd25lZC5cbiIpOwotICAgICAgICAKLSAgICAgICAgZ290byByZWxlYXNlX2hl
bGRfbG9ja19hbmRfcmV0dXJuX2ZhbHNlOwotICAgIH0KLSAgICAKLSAgICBwYWdlID0gcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZV9mb3JfYm91bmRhcnkodmlldy0+cGFnZV9ib3VuZGFyeSwgbXlfcGFnZV9j
b25maWcpOwotICAgIAotICAgIGlmICghcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3du
ZXJzaGlwX2tpbmRfaXNfYmlhc2VkKHZpZXctPm93bmVyc2hpcF9raW5kKSkgewotICAgICAgICBp
ZiAodmVyYm9zZSkKLSAgICAgICAgICAgIHBhc19sb2coImV4Y2x1c2l2ZSBtb2RlLlxuIik7Ci0g
ICAgICAgIAotICAgICAgICBpZiAoIVBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9TRVRfQklUKGRp
cmVjdG9yeSwgaW5kZXgsIGVsaWdpYmxlLCBmYWxzZSkpCi0gICAgICAgICAgICBnb3RvIHJlbGVh
c2VfaGVsZF9sb2NrX2FuZF9yZXR1cm5fZmFsc2U7Ci0gICAgICAgIAotICAgICAgICAvKiBJZiB3
ZSBzdG9sZSBlbGlnaWJpbGl0eSB0aGVuIHRoZSBleGNsdXNpdmUgdmlldyBjYW5ub3QgYmUgZWxp
Z2liaWxlLiAqLwotICAgICAgICBQQVNfQVNTRVJUKCFwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVf
dmlld19vd25lcnNoaXBfa2luZF9pc19iaWFzZWQodmlldy0+b3duZXJzaGlwX2tpbmQpKTsKLSAg
ICAgICAgCi0gICAgICAgIGlmICghcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJz
aGlwX2tpbmRfaXNfb3duZWQodmlldy0+b3duZXJzaGlwX2tpbmQpKSB7Ci0gICAgICAgICAgICBi
b29sIHJlc3VsdDsKLSAgICAgICAgICAgIHJlc3VsdCA9IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9y
eV92aWV3X2RpZF9iZWNvbWVfZWxpZ2libGVfYXRfaW5kZXgoZGlyZWN0b3J5LCBpbmRleCk7Ci0g
ICAgICAgICAgICBQQVNfQVNTRVJUKHJlc3VsdCk7Ci0gICAgICAgICAgICBnb3RvIHJlbGVhc2Vf
aGVsZF9sb2NrX2FuZF9yZXR1cm5fZmFsc2U7Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAg
IC8qIEF3a3dhcmRseSwgdGhpcyBpcyB0aGUgY29ycmVjdCBwbGFjZSB0byBkbyB0aGUgcXVhbGlm
aWVzLWZvci1kZWNvbW1pdCBjaGVjay4gU2VlIGNvbW1lbnQKLSAgICAgICAgICAgYmVsb3csIGlu
IHRoZSBiaWFzaW5nIGNhc2UsIGFib3ZlIHRoZSBzYW1lIGNoZWNrLiBUaGVuIHlvdSdsbCB1bmRl
cnN0YW5kIHdoeSB3ZSBkbyB0aGlzCi0gICAgICAgICAgIGNoZWNrIGhlcmUuICovCi0gICAgICAg
IGlmICghcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9xdWFsaWZpZXNfZm9yX2RlY29tbWl0KHBhZ2UsIG15
X3BhZ2VfY29uZmlnKSkgewotICAgICAgICAgICAgaWYgKHZlcmJvc2UpCi0gICAgICAgICAgICAg
ICAgcGFzX2xvZygid2FzIG5vdCBlbXB0eS5cbiIpOwotICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0
ZWRfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbGlnaWJsZV9hdF9pbmRleChkaXJlY3Rvcnks
IGluZGV4KTsKLSAgICAgICAgICAgIGdvdG8gcmVsZWFzZV9oZWxkX2xvY2tfYW5kX3JldHVybl9m
YWxzZTsKLSAgICAgICAgfQotICAgIH0gZWxzZSB7Ci0gICAgICAgIHBhc19zZWdyZWdhdGVkX3Zp
ZXcgb3duaW5nX3ZpZXc7Ci0gICAgICAgIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldyogYmlh
c2luZ192aWV3OwotICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkqIG93bmluZ19kaXJl
Y3Rvcnk7Ci0gICAgICAgIHNpemVfdCBpbmRleF9pbl9vd25pbmc7Ci0gICAgICAgIGJvb2wgcmVz
dWx0OwotICAgICAgICAKLSAgICAgICAgLyogVGhpcyBpcyB0aGUgb3duZWQrYmlhc2VkIGNhc2Uu
ICovCi0gICAgICAgIFBBU19URVNUSU5HX0FTU0VSVChwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVf
dmlld19vd25lcnNoaXBfa2luZF9pc19vd25lZCh2aWV3LT5vd25lcnNoaXBfa2luZCkpOwotICAg
ICAgICBQQVNfVEVTVElOR19BU1NFUlQocGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3du
ZXJzaGlwX2tpbmRfaXNfYmlhc2VkKHZpZXctPm93bmVyc2hpcF9raW5kKSk7Ci0KLSAgICAgICAg
b3duaW5nX3ZpZXcgPSBwYWdlLT5vd25lcjsKLQotICAgICAgICAvKiBUaGlzIGNvZGUgYXNzdW1l
cyB0aGF0IGlmIHdlIGRldGVjdCBjZXJ0YWluIGtpbmRzIG9mIGluY29uc2lzdGVudCBzdGF0ZSB0
aGVuIGl0IGNvdWxkIGJlCi0gICAgICAgICAgIHRoYXQgd2UncmUgcmFjaW5nIHdpdGggc29tZW9u
ZSB0cnlpbmcgdG8gdXNlIHRoaXMgdmlldyBmb3IgYWxsb2NhdGlvbiAtIGluIHBhcnRpY3VsYXIs
Ci0gICAgICAgICAgIGJpYXNpbmcgb3IgdW5iaWFzaW5nLiBJbiB0aGF0IGNhc2UsIHdlIGp1c3Qg
bG9zZSB0aGUgcmFjZS4KLSAgICAgICAgCi0gICAgICAgICAgIFRoaXMgaXMgZmluZSBiZWNhdXNl
IGluIGVhY2ggb2YgdGhvc2UgcmFjZXMsIHdlIGFyZW4ndCBmb3JnZXR0aW5nIGFib3V0IHRoZSBl
bXB0eSBiaXQ6Ci0gICAgICAgIAotICAgICAgICAgICAtIFdlIGNvdWxkIGJlIHJhY2luZyB3aXRo
IGJpYXNpbmc6IHRoZSBwYWdlLT5vd25lciBoYXNuJ3QgeWV0IGJlZW4gc2V0IHRvIHRoZSBiaWFz
aW5nIHZpZXcsCi0gICAgICAgICAgICAgYnV0IHRoZSBvd25lcnNoaXAga2luZCBoYXMgYWxyZWFk
eSBiZWVuIHNldCB0byBiaWFzZWQuIEluIHRoYXQgY2FzZSwgaXQncyBPSyB0byBiYWlsIG91dAot
ICAgICAgICAgICAgIGV2ZW4gdGhvdWdoIHdlJ3ZlIGFscmVhZHkgdGFrZW4gdGhlIGVtcHR5IGJp
dCwgc2luY2UgYmlhc2luZyBoYXBwZW5zIG9uIGEgcGF0aC1vZi1uby1yZXR1cm4KLSAgICAgICAg
ICAgICB0byBhbGxvY2F0aW5nIHNvbWUgb2JqZWN0IGluIHRoZSBwYWdlLCB3aGljaCB3aWxsIGNh
dXNlIGl0IHRvIGJlY29tZSBub24tZW1wdHkuIEFsc28sCi0gICAgICAgICAgICAgYWxsb2NhdGlv
biBtZWFucyB0aGF0IHdlIHdpbGwgaGF2ZSB0byBkaWRfc3RvcF9hbGxvY2F0aW5nLCB3aGljaCBz
ZXRzIHRoZSBlbXB0eSBiaXQgYWdhaW4KLSAgICAgICAgICAgICBpZiB0aGUgcGFnZSBpcyBlbXB0
eSBhdCB0aGF0IHBvaW50LgotICAgICAgICAKLSAgICAgICAgICAgLSBXZSBjb3VsZCBiZSByYWNp
bmcgd2l0aCB1bmJpYXNpbmc6IGZvciBub3csIHRoaW5ncyBhcmUgZmluZSwgc2luY2UgaWYgd2Ug
c2VlIHRoYXQgdGhlCi0gICAgICAgICAgICAgb3duZXJzaGlwX2tpbmQgaXMgYmlhc2VkIHdoaWxl
IGhvbGRpbmcgdGhlIG93bmVyc2hpcCBsb2NrLCB0aGVuIGl0IG11c3QgbWVhbiB0aGF0IHdlJ3Jl
Ci0gICAgICAgICAgICAgcnVubmluZyBiZWZvcmUgYW55IHVuYmlhc2luZyBoYXBwZW5lZCwgb3Ig
d2UgYXJlIHJpZ2h0IHBhc3QgdGhlIHBvaW50IHdoZXJlIHVuYmlhc2luZyB3b3VsZAotICAgICAg
ICAgICAgIGhhdmUgdGFrZW4gZWxpZ2liaWxpdHkgYnV0IGJlZm9yZSB0aGUgcG9pbnQgd2hlcmUg
aXQgd291bGQgZ3JhYiB0aGUgb3duZXJzaGlwIGxvY2suIFRoaXMKLSAgICAgICAgICAgICBtZWFu
cyB0aGF0IHdlIGNvdWxkIGZhaWwgdG8gdGFrZSB0aGUgZWxpZ2libGUgYml0IGhlcmUuIEJ1dCB0
aGVuIHVuYmlhc2luZyB3b3VsZCBzZXQgdGhlCi0gICAgICAgICAgICAgZW1wdHkgYml0IGlmIGl0
IG5lZWRzIHRvIGJlIHNldC4gV2hlbiB3ZSBzd2l0Y2ggbG9ja3MgdG8gdGhlIHBhZ2UgbG9jaywg
dGhlbiB3ZSB3b3VsZCBoYXZlCi0gICAgICAgICAgICAgYWxyZWFkeSBtYXJrZWQgdGhlIGV4Y2x1
c2l2ZSB2aWV3IGFzIG5vdCBiaWFzZWQsIHdoaWNoIHdvdWxkIGNhdXNlIGFueSBvdGhlciB1bmJp
YXNpbmcKLSAgICAgICAgICAgICBhdHRlbXB0IHRvIGdpdmUgdXAuICovCi0KLSAgICAgICAgaWYg
KCFwYXNfc2VncmVnYXRlZF92aWV3X2lzX3NvbWVfYmlhc2luZyhvd25pbmdfdmlldykpIHsKLSAg
ICAgICAgICAgIGlmICh2ZXJib3NlKQotICAgICAgICAgICAgICAgIHBhc19sb2coIm93bmluZyB2
aWV3IGlzIG5vdCBzb21lIGJpYXNpbmcuXG4iKTsKLSAgICAgICAgICAgIGdvdG8gcmVsZWFzZV9o
ZWxkX2xvY2tfYW5kX3JldHVybl9mYWxzZTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmICh2ZXJi
b3NlKQotICAgICAgICAgICAgcGFzX2xvZygib3duaW5nIHZpZXcgaXMgYmlhc2luZy5cbiIpOwot
ICAgICAgICAKLSAgICAgICAgYmlhc2luZ192aWV3ID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRf
Ymlhc2luZyhvd25pbmdfdmlldyk7Ci0KLSAgICAgICAgLyogSXQncyBwb3NzaWJsZSB0aGF0IHRo
ZSBiaWFzaW5nIGNvZGUgaGFzIGFscmVhZHkgYXNzb2NpYXRlZCB0aGUgYmlhc2luZyB2aWV3IHdp
dGggdGhlIGV4Y2x1c2l2ZQotICAgICAgICAgICB2aWV3LCBidXQgaGFzbid0IHlldCB0b2xkIHRo
ZSBwYWdlLiBXZSBjb3VsZCBzZWUgdGhhdCBzaW5jZSB0aGUgb3duZXJzaGlwIGxvY2sgd291bGQg
YmUKLSAgICAgICAgICAgZHJvcHBlZCBieSB0aGVuLiBCdXQgaW4gdGhhdCBjYXNlLCB0aGUgcGFn
ZSB3b3VsZCB0aGluayB0aGF0IGl0cyBvd25lciBpcyBleGNsdXNpdmUsIG5vdAotICAgICAgICAg
ICBiaWFzaW5nLiBJdCdzIHBvc3NpYmxlIHRoYXQgdGhlIHVuYmlhc2luZyBjb2RlIGhhcyBhbHJl
YWR5IGRpc2Fzc29jaWF0ZWQgdGhlIGJpYXNpbmcgYW5kCi0gICAgICAgICAgIGV4Y2x1c2l2ZSB2
aWV3cywgYnV0IGhhc24ndCB5ZXQgdG9sZCB0aGUgcGFnZS4gV2UgY291bGQgc2VlIHRoYXQgc2lu
Y2UgdGhlIG93bmVyc2hpcCBsb2NrCi0gICAgICAgICAgIHdvdWxkIGJlIGRyb3BwZWQgYnkgdGhl
bi4gQnV0IGluIHRoYXQgY2FzZSwgd2Ugd291bGRuJ3QgaGF2ZSBlbmRlZCB1cCBoZXJlLiBBbmQg
aXQncyBub3QKLSAgICAgICAgICAgcG9zc2libGUgZm9yIGJpYXNpbmcgYW5kIHVuYmlhc2luZyB0
byBpbnRlcmxlYXZlLiBCaWFzaW5nIHJ1bnMgYWZ0ZXIgYm90aCB0aGUgYmlhc2luZyBhbmQKLSAg
ICAgICAgICAgZXhjbHVzaXZlIHZpZXcgYXJlIGluZWxpZ2libGUuIFVuYmlhc2luZyBydW5zIHdo
aWxlIHRoZSBleGNsdXNpdmUgdmlldyBpcyBzdGlsbCBpbmVsaWdpYmxlCi0gICAgICAgICAgIChi
eSB2aXJ0dWUgb2YgdGhlIHZpZXcgYmVpbmcgYmlhc2VkIHN0aWxsKSBhbmQgdGhlIGJpYXNpbmcg
dmlldyBpcyBtYWRlIGluZWxpZ2libGUgYWxzby4KLSAgICAgICAgICAgVGhlcmVmb3JlLCB0aGV5
IGNhbm5vdCBydW4gYXQgdGhlIHNhbWUgdGltZSBmb3IgZWl0aGVyIHRoZSBzYW1lIGV4Y2x1c2l2
ZSB2aWV3IChhbmQgc28gcGFnZSkKLSAgICAgICAgICAgb3IgdGhlIHNhbWUgYmlhc2luZyB2aWV3
LiAqLwotICAgICAgICBQQVNfQVNTRVJUKHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2V4
Y2x1c2l2ZV92aWV3X3B0cl9sb2FkKCZiaWFzaW5nX3ZpZXctPmV4Y2x1c2l2ZSkKLSAgICAgICAg
ICAgICAgICAgICA9PSB2aWV3KTsKLQotICAgICAgICBpZiAodmVyYm9zZSkKLSAgICAgICAgICAg
IHBhc19sb2coImhhdmUgcmlnaHQgZXhjbHVzaXZlLlxuIik7Ci0gICAgICAgIAotICAgICAgICBv
d25pbmdfZGlyZWN0b3J5ID0KLSAgICAgICAgICAgICZwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2Jp
YXNpbmdfZGlyZWN0b3J5X3B0cl9sb2FkKCZiaWFzaW5nX3ZpZXctPmRpcmVjdG9yeSktPmJhc2U7
Ci0gICAgICAgIGluZGV4X2luX293bmluZyA9IGJpYXNpbmdfdmlldy0+aW5kZXg7Ci0gICAgICAg
IAotICAgICAgICBpZiAoIVBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9TRVRfQklUKAotICAgICAg
ICAgICAgICAgIG93bmluZ19kaXJlY3RvcnksIGluZGV4X2luX293bmluZywgZWxpZ2libGUsIGZh
bHNlKSkgewotICAgICAgICAgICAgaWYgKHZlcmJvc2UpCi0gICAgICAgICAgICAgICAgcGFzX2xv
ZygiZGlkIG5vdCBnZXQgZWxpZ2liaWxpdHkuXG4iKTsKLSAgICAgICAgICAgIAotICAgICAgICAg
ICAgZ290byByZWxlYXNlX2hlbGRfbG9ja19hbmRfcmV0dXJuX2ZhbHNlOwotICAgICAgICB9Ci0g
ICAgICAgIAotICAgICAgICAvKiBCZWZvcmUgd2UgdW5iaWFzLCBpdCdzIGltcG9ydGFudCB0byB1
bmRlcnN0YW5kIGlmIHRoZSBwYWdlIHdvdWxkIHF1YWxpZnkgZm9yIGRlY29tbWl0Ci0gICAgICAg
ICAgIGF0IGFsbC4gTGlrZSwgd2UgY2FuJ3QgdW5iaWFzIGFuZCB0aGVuIGRvIHRoaXMgY2hlY2sg
LSBpZiB3ZSBkaWQsIHRoZW4gYW55IGJpYXNlZCBwYWdlCi0gICAgICAgICAgIHRoYXQgaGFkIGV2
ZXIgZ29uZSBlbXB0eSB3b3VsZCBiZSB1bmJpYXNlZCB0aGUgZmlyc3QgdGltZSB0aGUgc2NhdmVu
Z2VyIHJhbi4gQnV0IGl0J3MKLSAgICAgICAgICAgY29vbCAtLSB3ZSBjYW4gZG8gdGhpcy4gSGVy
ZSdzIHRoZSByZWFzb25pbmcuCi0gICAgICAgICAgIAotICAgICAgICAgICBBdCB0aGlzIHBvaW50
LCB3ZSBjYW4gbWFrZSBhIGZpbmFsIGp1ZGdlbWVudCBzaW5jZSB3ZToKLSAgICAgICAgICAgCi0g
ICAgICAgICAgIC0gSG9sZCB0aGUgb3duZXJzaGlwIGxvY2sgYW5kIGhhdmUgY29uZmlybWVkIHRo
YXQgdGhlIHBhZ2UgaXMgc3RpbGwgb3duZWQuIFNvLCB3ZQotICAgICAgICAgICBjYW4gcmVhZCB0
aGUgcGFnZS4KLSAgICAgICAgICAgCi0gICAgICAgICAgIC0gVGhhdCBwYWdlIGlzIGluZWxpZ2li
bGUuIFNvLCBpZiBpdCBoYWQgYmVlbiBlbXB0eSBhdCB0aGUgbW9tZW50IHdlIG1hZGUgaXQKLSAg
ICAgICAgICAgaW5lbGlnaWJsZSB0aGVuIGl0IGNhbid0IHBvc3NpYmx5IGZpbGwgdXAgdW50aWwg
d2UgbWFrZSBpdCBlbGlnaWJsZSBhZ2Fpbi4gT25seQotICAgICAgICAgICBkZWFsbG9jYXRpb25z
IGNhbiBoYXBwZW4uIFNvLCBpdCBfaXNfIHBvc3NpYmxlIGZvciB1cyB0byBub3cgdGhpbmsgdGhh
dCB0aGUgcGFnZSBpcwotICAgICAgICAgICBub3QgZW1wdHkgYnV0IHRoZSBwYWdlIGNhbiBiZWNv
bWUgZW1wdHkgcmlnaHQgYWZ0ZXIgdGhhdC4gRm9ydHVuYXRlbHksIGlmIHRoYXQKLSAgICAgICAg
ICAgaGFwcGVucywgdGhlIGVtcHR5IGJpdCB3aWxsIGdldCBzZXQgYWdhaW4uICovCi0gICAgICAg
IGlmICghcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9xdWFsaWZpZXNfZm9yX2RlY29tbWl0KHBhZ2UsIG15
X3BhZ2VfY29uZmlnKSkgewotICAgICAgICAgICAgaWYgKHZlcmJvc2UpCi0gICAgICAgICAgICAg
ICAgcGFzX2xvZygid2FzIG5vdCBlbXB0eS5cbiIpOwotICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0
ZWRfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbGlnaWJsZV9hdF9pbmRleCgKLSAgICAgICAg
ICAgICAgICBvd25pbmdfZGlyZWN0b3J5LCBpbmRleF9pbl9vd25pbmcpOwotICAgICAgICAgICAg
Z290byByZWxlYXNlX2hlbGRfbG9ja19hbmRfcmV0dXJuX2ZhbHNlOwotICAgICAgICB9Ci0gICAg
ICAgIAotICAgICAgICAvKiBVbmJpYXMuIFRoaXMgZW5zdXJlcyB0aGF0IHdoZW4gdGhlIGJpYXNp
bmcgZGlyZWN0b3J5IHRyaWVzIHRvIGFsbG9jYXRlIG91dCBvZgotICAgICAgICAgICB0aGlzIGJp
YXNpbmcgdmlldywgaXQgZ2V0cyBhIGNoYW5jZSB0byB0YWtlX2ZpcnN0X2VsaWdpYmxlIGZyb20g
dGhpcyBnbG9iYWwgc2l6ZQotICAgICAgICAgICBkaXJlY3RvcnkgKHdoaWNoIGhvcGVmdWxseSBn
aXZlcyBpdCBhIHZpZXcgdGhhdCBpc24ndCBkZWNvbW1pdHRlZCkuICovCi0gICAgICAgIHZpZXct
Pm93bmVyc2hpcF9raW5kID0KLSAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92
aWV3X293bmVyc2hpcF9raW5kX3dpdGhfYmlhc2VkKAotICAgICAgICAgICAgICAgIHZpZXctPm93
bmVyc2hpcF9raW5kLCBmYWxzZSk7Ci0gICAgICAgIGlmICh2ZXJib3NlKSB7Ci0gICAgICAgICAg
ICBwYXNfbG9nKCJ2aWV3ICVwIGhhcyBvd25lcnNoaXAga2luZCA9ICVzIGR1ZSB0byB1bmJpYXNp
bmcgaW4gdGFrZV9sYXN0X2VtcHR5XG4iLAotICAgICAgICAgICAgICAgICAgICB2aWV3LAotICAg
ICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lcnNoaXBf
a2luZF9nZXRfc3RyaW5nKAotICAgICAgICAgICAgICAgICAgICAgICAgdmlldy0+b3duZXJzaGlw
X2tpbmQpKTsKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9zd2l0Y2hfbG9jayhwYWdlLCAmaGVsZF9sb2NrLCAqbXlfcGFnZV9jb25maWdfcHRyKTsKLSAg
ICAgICAgCi0gICAgICAgIC8qIElmIHRoaXMgZXhjbHVzaXZlIGFscmVhZHkgaGFkIGEgcGFnZSwg
dGhlbiB0aGUgcGFnZSBtdXN0IGJlIHNheWluZyB0aGF0IGl0J3MKLSAgICAgICAgICAgZWxpZ2li
bGUuIFNvIGl0IGlzX2JpYXNpbmcsIG5vdCBtZXJlbHkgaXNfc29tZV9iaWFzaW5nLiAqLwotICAg
ICAgICBQQVNfQVNTRVJUKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfYmlhc2luZyhwYWdlLT5vd25l
cikpOwotICAgICAgICAKLSAgICAgICAgcGFnZS0+b3duZXIgPSBwYXNfc2VncmVnYXRlZF9leGNs
dXNpdmVfdmlld19hc192aWV3X25vbl9udWxsKHZpZXcpOwotICAgICAgICAKLSAgICAgICAgcGFz
X2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyX3N0b3JlKCZiaWFz
aW5nX3ZpZXctPmV4Y2x1c2l2ZSwgTlVMTCk7Ci0gICAgICAgIAotICAgICAgICByZXN1bHQgPSBw
YXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfdmlld19kaWRfYmVjb21lX2VsaWdpYmxlX2F0X2luZGV4
KAotICAgICAgICAgICAgb3duaW5nX2RpcmVjdG9yeSwgaW5kZXhfaW5fb3duaW5nKTsKLSAgICAg
ICAgUEFTX0FTU0VSVChyZXN1bHQpOwotICAgIH0KLSAgICAKLSAgICAvKiBUaGlzIGhhcyBhIHZl
cnkgc2hvcnQgcmFjZSB0aGF0IGNhdXNlcyB0aGUgZGlyZWN0b3J5IHRvIHBvc3NpYmx5IHdhc3Rl
IG1lbW9yeTogaWYKLSAgICAgICBkdXJpbmcgdGhpcyBicmllZiB3aW5kb3cgd2UgaGF2ZSBzb21l
b25lIHRyeWluZyB0byBmaW5kIGFuIGVsaWdpYmxlIHBhZ2UsIHRoZXkgbWF5Ci0gICAgICAgZW5k
IHVwIGFsbG9jYXRpbmcgYSBuZXcgb25lLgotICAgICAgIAotICAgICAgIEJ1dCB3ZSBkZWxpYmVy
YXRlbHkga2VlcCB0aGUgZHVyYXRpb24gb2YgdGhpcyByYWNlIHdpbmRvdyBzaG9ydC4gV2UgbWFr
ZSB0aGUgcGFnZQotICAgICAgIGluZWxpZ2libGUgb25seSBkdXJpbmcgdGhlIHRpbWUgaXQgdGFr
ZXMgdXMgdG8gZmlndXJlIG91dCBob3cgdG8gZGVjb21taXQgaXQgYW5kIHRvCi0gICAgICAgYWNx
dWlyZSB0aGUgY29tbWl0IGxvY2suIFRoZSBjb21taXQgbG9jayBzaG91bGQgYmUgdHJpdmlhbGx5
IGF2YWlsYWJsZSBoZXJlLCBzbwotICAgICAgIHRoYXQncyBqdXN0IGEgQ0FTLiBBZnRlciB0aGF0
LCB0aGUgcGFnZSBpcyBtYWRlIGVpdGhlciBlbGlnaWJsZSBvciBkZWNvbW1pdHRlZC4KLSAgICAg
ICBFaXRoZXIgd2F5LCBpZiBpdCdzIHRoZSBmaXJzdCBlbGlnaWJsZSwgc29tZW9uZSB3aWxsIHRy
eSB0byB1c2UgaXQuIEF0IHRoYXQgcG9pbnQsCi0gICAgICAgaWYgd2UgYXJlIG5vdCBkb25lLCB0
aGV5IHdpbGwgd2FpdCBmb3IgdXMgc2luY2Ugd2UgaG9sZCB0aGUgY29tbWl0IGxvY2suICovCi0K
LSAgICBwYXNfc2VncmVnYXRlZF9wYWdlX3N3aXRjaF9sb2NrKHBhZ2UsICZoZWxkX2xvY2ssIG15
X3BhZ2VfY29uZmlnKTsKLQotICAgIGlmIChwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19pc191
dGlsaXR5KG15X3BhZ2VfY29uZmlnKSkgewotICAgICAgICAvKiBUaGUgdXRpbGl0eSBoZWFwIHJl
cXVpcmVzIHVzIHRvIGhvbGQgdGhlIGhlYXAgbG9jayBhbnl0aW1lIHdlJ2QgaG9sZCB0aGUgb3du
ZXJzaGlwLCBjb21taXQsCi0gICAgICAgICAgIG9yIHBhZ2UgbG9ja3MuIEl0IGp1c3Qgc28gaGFw
cGVucyB0aGF0IHdlIHdlcmUgYWxyZWFkeSBob2xkaW5nIHRoZSBoZWFwIGxvY2ssIGFuZAotICAg
ICAgICAgICBwYWdlX3N3aXRjaF9sb2NrIGRvZXMgbm90aGluZyBmb3IgdXRpbGl0eS4gU28gd2Ug
c2hvdWxkIHN0aWxsIGJlIGhvbGRpbmcgdGhlIGhlYXAgbG9jay4gKi8KLSAgICAgICAgUEFTX0FT
U0VSVChoZWxkX2xvY2sgPT0gcGFzX2xvY2tfZm9yX3N3aXRjaF9jb25kaXRpb25hbGx5KCZwYXNf
aGVhcF9sb2NrLCBoZWFwX2xvY2tfaG9sZF9tb2RlKSk7Ci0gICAgICAgIHBhc19oZWFwX2xvY2tf
YXNzZXJ0X2hlbGQoKTsKLSAgICB9Ci0KLSAgICBQQVNfQVNTRVJUKCFQQVNfU0VHUkVHQVRFRF9E
SVJFQ1RPUllfR0VUX0JJVChkaXJlY3RvcnksIGluZGV4LCBlbGlnaWJsZSkpOwotCi0gICAgLyog
SXQncyB0b3RhbGx5IHBvc3NpYmxlIHRoYXQgdGhlIGVtcHR5IGJpdCBnb3Qgc2V0IGFnYWluLiBX
ZSBzaG91bGQgY2xlYXIgaXQgZm9yIHN1cmUgbm93LiAqLwotICAgIFBBU19TRUdSRUdBVEVEX0RJ
UkVDVE9SWV9TRVRfQklUKGRpcmVjdG9yeSwgaW5kZXgsIGVtcHR5LCBmYWxzZSk7Ci0KLSAgICBQ
QVNfVEVTVElOR19BU1NFUlQocGFzX3NlZ3JlZ2F0ZWRfcGFnZV9xdWFsaWZpZXNfZm9yX2RlY29t
bWl0KHBhZ2UsIG15X3BhZ2VfY29uZmlnKSk7Ci0gICAgCi0gICAgaWYgKHBhc19zZWdyZWdhdGVk
X3BhZ2VfY29uZmlnX2lzX3V0aWxpdHkobXlfcGFnZV9jb25maWcpKSB7Ci0gICAgICAgIFBBU19B
U1NFUlQobXlfcGFnZV9jb25maWcuYmFzZS5wYWdlX3NpemUgPT0gbXlfcGFnZV9jb25maWcuYmFz
ZS5ncmFudWxlX3NpemUpOwotICAgICAgICAKLSAgICAgICAgcGFzX2hlYXBfbG9ja19hc3NlcnRf
aGVsZCgpOwotCi0gICAgICAgIHZpZXctPm93bmVyc2hpcF9raW5kID0gcGFzX3NlZ3JlZ2F0ZWRf
ZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlwX2tpbmRfd2l0aF9vd25lZCgKLSAgICAgICAgICAgIHZp
ZXctPm93bmVyc2hpcF9raW5kLCBmYWxzZSk7Ci0gICAgICAgIGlmICh2ZXJib3NlKSB7Ci0gICAg
ICAgICAgICBwYXNfbG9nKCJ2aWV3ICVwIGhhcyBvd25lcnNoaXAga2luZCA9ICVzIGR1ZSB0byB1
dGlsaXR5IGRlY29tbWl0IGluIHRha2VfbGFzdF9lbXB0eVxuIiwKLSAgICAgICAgICAgICAgICAg
ICAgdmlldywKLSAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3Zp
ZXdfb3duZXJzaGlwX2tpbmRfZ2V0X3N0cmluZygKLSAgICAgICAgICAgICAgICAgICAgICAgIHZp
ZXctPm93bmVyc2hpcF9raW5kKSk7Ci0gICAgICAgIH0KLSAgICAgICAgcGFzX3BhZ2VfbWFsbG9j
X2RlY29tbWl0KAotICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9ib3VuZGFyeShwYWdl
LCBteV9wYWdlX2NvbmZpZyksCi0gICAgICAgICAgICBteV9wYWdlX2NvbmZpZy5iYXNlLnBhZ2Vf
c2l6ZSk7Ci0gICAgICAgIGRlY29tbWl0X2xvZy0+dG90YWwgKz0gbXlfcGFnZV9jb25maWcuYmFz
ZS5wYWdlX3NpemU7Ci0gICAgICAgIG15X3BhZ2VfY29uZmlnLmJhc2UuZGVzdHJveV9wYWdlX2hl
YWRlcigmcGFnZS0+YmFzZSwgcGFzX2xvY2tfaXNfaGVsZCk7Ci0gICAgICAgIHBhc19zZWdyZWdh
dGVkX2RpcmVjdG9yeV92aWV3X2RpZF9iZWNvbWVfZWxpZ2libGVfYXRfaW5kZXgoZGlyZWN0b3J5
LCBpbmRleCk7Ci0gICAgICAgIHBhc19sb2NrX3N3aXRjaCgmaGVsZF9sb2NrLCBOVUxMKTsKLSAg
ICAgICAgZGF0YS0+cmVzdWx0ID0gcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2Vfc3VjY2VzczsK
LSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIAotICAgIGlmIChwYWdlLT5udW1fbm9u
X2VtcHR5X3dvcmRzKSB7Ci0gICAgICAgIGJvb2wgZGVjb21taXRfcmVzdWx0OwotICAgICAgICBz
aXplX3QgbnVtX2NvbW1pdHRlZF9ncmFudWxlczsKLSAgICAgICAgCi0gICAgICAgIC8qIE5vIHBh
cnRpYWwgZGVjb21taXQgaW4gdGhlIHV0aWxpdHkgaGVhcCEgKi8KLSAgICAgICAgUEFTX0FTU0VS
VCghcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfaXNfdXRpbGl0eShteV9wYWdlX2NvbmZpZykp
OwotICAgICAgICAKLSAgICAgICAgLyogV2Uga25vdyB0aGF0IHRoZXJlIG11c3QgYmUgZW1wdHkg
Z3JhbnVsZXMgaW4gdGhpcyBwYWdlLCBzaW5jZSBlaXRoZXIgdGhlIGVtcHR5Ci0gICAgICAgICAg
IG9yIHRoZSBwYXJ0bHlfZW1wdHkgYml0IHdhcyBzZXQuIFRob3NlIGJpdHMgd291bGRuJ3QgZ2V0
IHNldCB1bmxlc3Mgd2Ugbm90aWNlZAotICAgICAgICAgICBhbiBlbXB0eSBncmFudWxlLiBJZiB3
ZSBkaWQgdHJ5IHRvIGFsbG9jYXRlIGZyb20gdGhvc2UgZ3JhbnVsZXMsIHdlIHdvdWxkIGZpcnN0
Ci0gICAgICAgICAgIGhhdmUgdG8gdGFrZSBhd2F5IGl0cyBlbGlnaWJpbGl0eSBhbmQgdGhlbiBj
bGVhciBpdHMgZW1wdHkgYml0cy4gQnV0IHdlIGtub3cgdGhhdAotICAgICAgICAgICB0aGlzIGNv
dWxkIG5vdCBoYXZlIGhhcHBlbmVkIHNpbmNlICp3ZSogdG9vayBhd2F5IGl0cyBlbGlnaWJpbGl0
eS4gKi8KLSAgICAgICAgCi0gICAgICAgIGRlY29tbWl0X3Jlc3VsdCA9IHBhc19zZWdyZWdhdGVk
X3BhZ2VfdGFrZV9lbXB0eV9ncmFudWxlcygKLSAgICAgICAgICAgIHBhZ2UsIGRlY29tbWl0X2xv
ZywgJmhlbGRfbG9jaywgcGFzX3JhbmdlX2lzX25vdF9sb2NrZWQsIGhlYXBfbG9ja19ob2xkX21v
ZGUpOwotICAgICAgICAKLSAgICAgICAgcGFzX2xvY2tfc3dpdGNoKCZoZWxkX2xvY2ssIE5VTEwp
OwotICAgICAgICAKLSAgICAgICAgbnVtX2NvbW1pdHRlZF9ncmFudWxlcyA9IHBhc19zZWdyZWdh
dGVkX3BhZ2VfZ2V0X251bV9jb21taXR0ZWRfZ3JhbnVsZXMocGFnZSk7Ci0gICAgICAgIFBBU19B
U1NFUlQobnVtX2NvbW1pdHRlZF9ncmFudWxlcyk7Ci0gICAgICAgIAotICAgICAgICAvKiBUaGUg
cGFnZSBjYW4gYmVjb21lIGVsaWdpYmxlIGFnYWluIG5vdyB0aGF0IHdlJ3ZlIG1hcmtlZCB0aGlu
Z3MgZm9yIGRlY29tbWl0LiAqLwotICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfdmll
d19kaWRfYmVjb21lX2VsaWdpYmxlX2F0X2luZGV4KGRpcmVjdG9yeSwgaW5kZXgpOwotICAgICAg
ICAKLSAgICAgICAgaWYgKGRlY29tbWl0X3Jlc3VsdCkgewotICAgICAgICAgICAgaWYgKHZlcmJv
c2UpCi0gICAgICAgICAgICAgICAgcGFzX2xvZygiJXA6IGRpZCBwYXJ0bHkgdGFrZSBpbmRleCAl
enVcbiIsIGRpcmVjdG9yeSwgaW5kZXgpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg
cGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbXB0eV9hdF9pbmRleChk
aXJlY3RvcnksIGluZGV4KTsKLSAgICAgICAgICAgIGRhdGEtPnJlc3VsdCA9IHBhc19wYWdlX3No
YXJpbmdfcG9vbF90YWtlX2xvY2tzX3VuYXZhaWxhYmxlOwotICAgICAgICAgICAgcmV0dXJuIHRy
dWU7Ci0gICAgICAgIH0KLSAgICB9IGVsc2UgewotICAgICAgICBwYXNfbG9ja19zd2l0Y2goJmhl
bGRfbG9jaywgJnZpZXctPm93bmVyc2hpcF9sb2NrKTsKLSAgICAgICAgdmlldy0+b3duZXJzaGlw
X2tpbmQgPSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lcnNoaXBfa2luZF93aXRo
X293bmVkKAotICAgICAgICAgICAgdmlldy0+b3duZXJzaGlwX2tpbmQsIGZhbHNlKTsKLSAgICAg
ICAgaWYgKHZlcmJvc2UpIHsKLSAgICAgICAgICAgIHBhc19sb2coInZpZXcgJXAgaGFzIG93bmVy
c2hpcCBraW5kID0gJXMgZHVlIHRvIG5vcm1hbCBkZWNvbW1pdCBpbiB0YWtlX2xhc3RfZW1wdHlc
biIsCi0gICAgICAgICAgICAgICAgICAgIHZpZXcsCi0gICAgICAgICAgICAgICAgICAgIHBhc19z
ZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5kX2dldF9zdHJpbmcoCi0gICAg
ICAgICAgICAgICAgICAgICAgICB2aWV3LT5vd25lcnNoaXBfa2luZCkpOwotICAgICAgICB9Ci0g
ICAgICAgIHBhc19sb2NrX3N3aXRjaCgmaGVsZF9sb2NrLCBOVUxMKTsKLSAgICAgICAgCi0gICAg
ICAgIGlmICghcGFzX3NlZ3JlZ2F0ZWRfcGFnZV90YWtlX3BoeXNpY2FsbHkoCi0gICAgICAgICAg
ICAgICAgcGFnZSwgZGVjb21taXRfbG9nLCBwYXNfcmFuZ2VfaXNfbm90X2xvY2tlZCwgaGVhcF9s
b2NrX2hvbGRfbW9kZSkpIHsKLSAgICAgICAgICAgIFBBU19BU1NFUlQoIXBhc19zZWdyZWdhdGVk
X3BhZ2VfY29uZmlnX2tpbmRfaXNfdXRpbGl0eShkaXJlY3RvcnktPnBhZ2VfY29uZmlnX2tpbmQp
KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgcGFzX2xvY2tfc3dpdGNoKCZoZWxkX2xvY2ss
ICZ2aWV3LT5vd25lcnNoaXBfbG9jayk7Ci0gICAgICAgICAgICB2aWV3LT5vd25lcnNoaXBfa2lu
ZCA9IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5kX3dpdGhfb3du
ZWQoCi0gICAgICAgICAgICAgICAgdmlldy0+b3duZXJzaGlwX2tpbmQsIHRydWUpOwotICAgICAg
ICAgICAgaWYgKHZlcmJvc2UpIHsKLSAgICAgICAgICAgICAgICBwYXNfbG9nKCJ2aWV3ICVwIGhh
cyBvd25lcnNoaXAga2luZCA9ICVzIGR1ZSB0byB1bmRvIG9mIGRlY29tbWl0IGluIHRha2VfbGFz
dF9lbXB0eVxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIHZpZXcsCi0gICAgICAgICAgICAg
ICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lcnNoaXBfa2luZF9n
ZXRfc3RyaW5nKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXctPm93bmVyc2hpcF9r
aW5kKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBwYXNfbG9ja19zd2l0Y2goJmhlbGRf
bG9jaywgTlVMTCk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2Rp
cmVjdG9yeV92aWV3X2RpZF9iZWNvbWVfZWxpZ2libGVfYXRfaW5kZXgoZGlyZWN0b3J5LCBpbmRl
eCk7Ci0gICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfdmlld19kaWRfYmVjb21l
X2VtcHR5X2F0X2luZGV4KGRpcmVjdG9yeSwgaW5kZXgpOwotICAgICAgICAgICAgCi0gICAgICAg
ICAgICBkYXRhLT5yZXN1bHQgPSBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9sb2Nrc191bmF2
YWlsYWJsZTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0gICAgICAgIAot
ICAgICAgICBpZiAodmVyYm9zZSkgewotICAgICAgICAgICAgcGFzX2xvZygiJXA6IGRpZCBmdWxs
eSB0YWtlIGluZGV4ICV6dVxuIiwgZGlyZWN0b3J5LCBpbmRleCk7Ci0gICAgICAgICAgICBwYXNf
bG9nKCJEZXN0cm95aW5nIHBhZ2UgaGVhZGVyIGZvciB2aWV3ID0gJXAsIHBhZ2UgPSAlcCwgYm91
bmRhcnkgPSAlcCAoJXApICIKLSAgICAgICAgICAgICAgICAgICAgImFzIHBhcnQgb2YgZGVjb21t
aXQuXG4iLAotICAgICAgICAgICAgICAgICAgICB2aWV3LCBwYWdlLCBwYXNfc2VncmVnYXRlZF9w
YWdlX2JvdW5kYXJ5KHBhZ2UsIG15X3BhZ2VfY29uZmlnKSwKLSAgICAgICAgICAgICAgICAgICAg
dmlldy0+cGFnZV9ib3VuZGFyeSk7Ci0gICAgICAgIH0KLSAgICAgICAgbXlfcGFnZV9jb25maWcu
YmFzZS5kZXN0cm95X3BhZ2VfaGVhZGVyKCZwYWdlLT5iYXNlLCBoZWFwX2xvY2tfaG9sZF9tb2Rl
KTsKLQotICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfdmlld19kaWRfYmVjb21lX2Vs
aWdpYmxlX2F0X2luZGV4KGRpcmVjdG9yeSwgaW5kZXgpOwotICAgIH0KLSAgICAKLSAgICBkYXRh
LT5yZXN1bHQgPSBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9zdWNjZXNzOwotICAgIHJldHVy
biB0cnVlOwotCi1yZWxlYXNlX2hlbGRfbG9ja19hbmRfcmV0dXJuX2ZhbHNlOgotICAgIHBhc19s
b2NrX3N3aXRjaCgmaGVsZF9sb2NrLCBOVUxMKTsKLQotICAgIC8qIFJldHVybmluZyBmYWxzZSBt
ZWFucyB0aGF0IHRoZSBiYWNrd2FyZHMgaXRlcmF0aW9uIGtlZXBzIGdvaW5nIGFuZCB0aGlzIHNo
b3VsZCBnZXQgY2FsbGVkCi0gICAgICAgYWdhaW4gaWYgdGhlcmUgYXJlIGFueSBvdGhlciB2aWV3
cyBtYXJrZWQgZW1wdHkuICovCi0gICAgcmV0dXJuIGZhbHNlOwotfQotCi1wYXNfcGFnZV9zaGFy
aW5nX3Bvb2xfdGFrZV9yZXN1bHQKLXBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9y
eV90YWtlX2xhc3RfZW1wdHkoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0
b3J5KiBzaXplX2RpcmVjdG9yeSwKLSAgICBwYXNfZGVmZXJyZWRfZGVjb21taXRfbG9nKiBkZWNv
bW1pdF9sb2csCi0gICAgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUpCi17
Ci0gICAgLyogQmUgY2FyZWZ1bDogaGVhcF9sb2NrX2hvbGRfbW9kZSBoZXJlIGNhbiBiZSB1bnJl
bGF0ZWQgdG8gd2hhdCBwYWdlX2NvbmZpZyBzYXlzLCBzaW5jZQotICAgICAgIHdlIG1heSBiZSBh
c2tlZCBieSB0aGUgcGh5c2ljYWwgcGFnZSBzaGFyaW5nIHBvb2wgdG8gZGVjb21taXQgb24gYmVo
YWxmIG9mIGFueSBvdGhlciBoZWFwLAotICAgICAgIGluY2x1ZGluZyBvbmVzIHRoYXQgaG9sZCB0
aGUgaGVhcCBsb2NrIHdoaWxlIGRvaW5nIGJ1c2luZXNzLiAqLwotCi0gICAgdGFrZV9sYXN0X2Vt
cHR5X2RhdGEgZGF0YTsKLSAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXRlcmF0ZV9jb25m
aWcgY29uZmlnOwotICAgIGJvb2wgZGlkX2ZpbmRfc29tZXRoaW5nOwotICAgIHBhc19zZWdyZWdh
dGVkX2RpcmVjdG9yeSogZGlyZWN0b3J5OwotCi0gICAgZGlyZWN0b3J5ID0gJnNpemVfZGlyZWN0
b3J5LT5iYXNlOwotCi0gICAgUEFTX1RFU1RJTkdfQVNTRVJUKGRpcmVjdG9yeS0+cGFnZV9jb25m
aWdfa2luZCAhPSBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX251bGwpOwotCi0gICAg
ZGF0YS5kZWNvbW1pdF9sb2cgPSBkZWNvbW1pdF9sb2c7Ci0gICAgZGF0YS5oZWFwX2xvY2tfaG9s
ZF9tb2RlID0gaGVhcF9sb2NrX2hvbGRfbW9kZTsKLSAgICBkYXRhLnJlc3VsdCA9IHBhc19wYWdl
X3NoYXJpbmdfcG9vbF90YWtlX25vbmVfYXZhaWxhYmxlOwotCi0gICAgZGF0YS5teV9wYWdlX2Nv
bmZpZ19wdHIgPSBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX2dldF9jb25maWcoZGly
ZWN0b3J5LT5wYWdlX2NvbmZpZ19raW5kKTsKLQotICAgIGNvbmZpZy5kaXJlY3RvcnkgPSBkaXJl
Y3Rvcnk7Ci0gICAgY29uZmlnLnNob3VsZF9jb25zaWRlcl92aWV3X3BhcmFsbGVsID0gdGFrZV9s
YXN0X2VtcHR5X3Nob3VsZF9jb25zaWRlcl92aWV3X3BhcmFsbGVsOwotICAgIGNvbmZpZy5jb25z
aWRlcl92aWV3ID0gdGFrZV9sYXN0X2VtcHR5X2NvbnNpZGVyX3ZpZXc7Ci0gICAgY29uZmlnLmFy
ZyA9ICZkYXRhOwotCi0gICAgZGlkX2ZpbmRfc29tZXRoaW5nID0KLSAgICAgICAgcGFzX3NlZ3Jl
Z2F0ZWRfZGlyZWN0b3J5X2l0ZXJhdGVfYmFja3dhcmRfdG9fdGFrZV9sYXN0X2VtcHR5KCZjb25m
aWcpOwotCi0gICAgaWYgKCFkaWRfZmluZF9zb21ldGhpbmcpCi0gICAgICAgIHJldHVybiBwYXNf
cGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9ub25lX2F2YWlsYWJsZTsKLQotICAgIFBBU19BU1NFUlQo
cGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2RvaW5nX3NoYXJpbmcoZGlyZWN0b3J5KSk7Ci0g
ICAgcGFzX3BhZ2Vfc2hhcmluZ19wb29sX2RpZF9jcmVhdGVfZGVsdGEoCi0gICAgICAgICZwYXNf
cGh5c2ljYWxfcGFnZV9zaGFyaW5nX3Bvb2wsCi0gICAgICAgIHBhc19wYWdlX3NoYXJpbmdfcGFy
dGljaXBhbnRfY3JlYXRlKAotICAgICAgICAgICAgZGlyZWN0b3J5LAotICAgICAgICAgICAgcGFz
X3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9raW5kX3NlbGVjdF9mb3Jfc2VncmVnYXRlZF9kaXJl
Y3RvcnkoCi0gICAgICAgICAgICAgICAgZGlyZWN0b3J5LT5kaXJlY3Rvcnlfa2luZCkpKTsKLSAg
ICAKLSAgICByZXR1cm4gZGF0YS5yZXN1bHQ7Ci19Ci0KLXBhc19zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeSogcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2Zvcl9v
YmplY3QoCi0gICAgdWludHB0cl90IGJlZ2luLAotICAgIHBhc19oZWFwX2NvbmZpZyogY29uZmln
KQotewotICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9nZXRfZ2xvYmFs
KAotICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9mb3Jfb2JqZWN0KGJlZ2lu
LCBjb25maWcpKTsKLX0KLQotcGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl9yZXN1bHQKLXBhc19zZWdy
ZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9nZXRfYWxsb2NhdG9yX2Zyb21fdGxjKAotICAg
IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgIHNp
emVfdCBjb3VudCwKLSAgICBwYXNfY291bnRfbG9va3VwX21vZGUgY291bnRfbG9va3VwX21vZGUs
Ci0gICAgcGFzX2hlYXBfY29uZmlnKiBjb25maWcsCi0gICAgdW5zaWduZWQqIGNhY2hlZF9pbmRl
eCkKLXsKLSAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3VsdCB0bGNfcmVzdWx0OwotICAgIHVu
c2lnbmVkIGJhc2VsaW5lX2FsbG9jYXRvcl9pbmRleDsKLQotICAgIFBBU19BU1NFUlQocGFzX3Nl
Z3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2hhc190bGNfYWxsb2NhdG9yKGRpcmVjdG9y
eSkpOwotICAgIFBBU19BU1NFUlQoIXBhc19oZWFwX2NvbmZpZ19pc191dGlsaXR5KGNvbmZpZykp
OwotICAgIAotICAgIHBhc19oZWFwX2xvY2tfbG9jaygpOwotICAgIHBhc19zZWdyZWdhdGVkX2hl
YXBfZW5zdXJlX2FsbG9jYXRvcl9pbmRleCgKLSAgICAgICAgZGlyZWN0b3J5LT5oZWFwLAotICAg
ICAgICBkaXJlY3RvcnksCi0gICAgICAgIGNvdW50LAotICAgICAgICBjb3VudF9sb29rdXBfbW9k
ZSwKLSAgICAgICAgY29uZmlnLAotICAgICAgICBjYWNoZWRfaW5kZXgpOwotICAgIHBhc19oZWFw
X2xvY2tfdW5sb2NrKCk7Ci0KLSAgICAvKiBDdXJyZW50bHkgYXMgc29vbiBhcyB3ZSBzd2l0Y2gg
dG8gVExDIGFsbG9jYXRvcnMsIHdlIGNhbm5vdCBwb3NzaWJseSBoYXZlIGEgYmFzZWxpbmUKLSAg
ICAgICBhbGxvY2F0b3IuIEJ1dCBpZiB3ZSBkbywgd2Ugc2hvdWxkIHN0b3AgaXQgbm93LiAqLwot
ICAgIGJhc2VsaW5lX2FsbG9jYXRvcl9pbmRleCA9IGRpcmVjdG9yeS0+YmFzZWxpbmVfYWxsb2Nh
dG9yX2luZGV4OwotICAgIGlmIChiYXNlbGluZV9hbGxvY2F0b3JfaW5kZXggPCBQQVNfTlVNX0JB
U0VMSU5FX0FMTE9DQVRPUlMpIHsKLSAgICAgICAgcGFzX2Jhc2VsaW5lX2FsbG9jYXRvciogYmFz
ZWxpbmVfYWxsb2NhdG9yOwotICAgICAgICAKLSAgICAgICAgYmFzZWxpbmVfYWxsb2NhdG9yID0g
cGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl90YWJsZSArIGJhc2VsaW5lX2FsbG9jYXRvcl9pbmRleDsK
LSAgICAgICAgCi0gICAgICAgIHBhc19sb2NrX2xvY2soJmJhc2VsaW5lX2FsbG9jYXRvci0+bG9j
ayk7Ci0KLSAgICAgICAgLyogSXQncyBwb3NzaWJsZSB0aGF0IGR1ZSB0byBhIHJhY2UsIHRoZSBk
aXJlY3RvcnkncyBpbmRleCBoYXMgYmVlbiByZWFzc2lnbmVkIHRvIHNvbWV0aGluZwotICAgICAg
ICAgICBlbHNlLiBBdCB3b3JzdCwgdGhhdCByYWNlIHdpbGwgbWVhbiB0aGF0IHNvbWUgYmFzZWxp
bmUgYWxsb2NhdG9yIHdpbGwgYmUgdXNlZCBmb3IKLSAgICAgICAgICAgYWxsb2NhdGlvbi4gVGhl
cmUncyBub3QgYSB3aG9sZSBsb3Qgd2UgY2FuIGRvIGFib3V0IHRoYXQuIEF0IHdvcnN0LCBpdCBt
ZWFucyBsZXR0aW5nIHRoZQotICAgICAgICAgICBoaWdoIHdhdGVybWFyayBncm93IGEgYml0IGlu
IGNhc2Ugb2YgYSB3ZWlyZCByYWNlLiAqLwotICAgICAgICBpZiAoZGlyZWN0b3J5LT5iYXNlbGlu
ZV9hbGxvY2F0b3JfaW5kZXggPT0gYmFzZWxpbmVfYWxsb2NhdG9yX2luZGV4KSB7Ci0gICAgICAg
ICAgICBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX2RldGFjaF9kaXJlY3RvcnkoYmFzZWxpbmVfYWxs
b2NhdG9yKTsKLSAgICAgICAgICAgIHBhc19mZW5jZSgpOwotICAgICAgICAgICAgZGlyZWN0b3J5
LT5iYXNlbGluZV9hbGxvY2F0b3JfaW5kZXggPSAyICogUEFTX05VTV9CQVNFTElORV9BTExPQ0FU
T1JTOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBwYXNfbG9ja191bmxvY2soJmJhc2Vs
aW5lX2FsbG9jYXRvci0+bG9jayk7Ci0gICAgfQotICAgIAotICAgIHRsY19yZXN1bHQgPSBwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0b3IoCi0gICAgICAgIHBhc190aHJl
YWRfbG9jYWxfY2FjaGVfZ2V0KGNvbmZpZyksCi0gICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeV9kYXRhX3B0cl9sb2FkX25vbl9udWxsKCZkaXJlY3RvcnktPmRhdGEp
LT5hbGxvY2F0b3JfaW5kZXgsCi0gICAgICAgIHBhc19sb2NrX2lzX25vdF9oZWxkKTsKLSAgICAK
LSAgICBQQVNfQVNTRVJUKHRsY19yZXN1bHQuZGlkX3N1Y2NlZWQpOwotCi0gICAgcmV0dXJuIHBh
c19iYXNlbGluZV9hbGxvY2F0b3JfcmVzdWx0X2NyZWF0ZV9zdWNjZXNzKHRsY19yZXN1bHQuYWxs
b2NhdG9yLCBOVUxMKTsKLX0KLQotcGFzX2hlYXBfc3VtbWFyeSBwYXNfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnlfY29tcHV0ZV9zdW1tYXJ5X2Zvcl91bm93bmVkX2V4Y2x1c2l2ZSgK
LSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSkKLXsK
LSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YSogZGF0YTsKLSAg
ICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZpZzsKLSAgICBwYXNfaGVhcF9z
dW1tYXJ5IHJlc3VsdDsKLSAgICBzaXplX3QgcGF5bG9hZF9zaXplOwotCi0gICAgUEFTX0FTU0VS
VChkaXJlY3RvcnktPmJhc2UucGFnZV9jb25maWdfa2luZCAhPSBwYXNfc2VncmVnYXRlZF9wYWdl
X2NvbmZpZ19raW5kX251bGwpOwotCi0gICAgZGF0YSA9IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeV9kYXRhX3B0cl9sb2FkKCZkaXJlY3RvcnktPmRhdGEpOwotICAgIHBhZ2Vf
Y29uZmlnID0gKnBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfZ2V0X2NvbmZpZyhkaXJl
Y3RvcnktPmJhc2UucGFnZV9jb25maWdfa2luZCk7Ci0gICAgCi0gICAgcmVzdWx0ID0gcGFzX2hl
YXBfc3VtbWFyeV9jcmVhdGVfZW1wdHkoKTsKLSAgICAKLSAgICBwYXlsb2FkX3NpemUgPSAoZGF0
YS0+b2Zmc2V0X2Zyb21fcGFnZV9ib3VuZGFyeV90b19lbmRfb2ZfbGFzdF9vYmplY3QgLQotICAg
ICAgICAgICAgICAgICAgICBkYXRhLT5vZmZzZXRfZnJvbV9wYWdlX2JvdW5kYXJ5X3RvX2ZpcnN0
X29iamVjdCk7Ci0gICAgCi0gICAgcmVzdWx0LmRlY29tbWl0dGVkICs9IHBhZ2VfY29uZmlnLmJh
c2UucGFnZV9zaXplOwotICAgIHJlc3VsdC5mcmVlICs9IHBheWxvYWRfc2l6ZTsKLSAgICByZXN1
bHQuZnJlZV9kZWNvbW1pdHRlZCArPSBwYXlsb2FkX3NpemU7Ci0gICAgCi0gICAgcmV0dXJuIHJl
c3VsdDsKLX0KLQotdHlwZWRlZiBzdHJ1Y3QgewotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeSogZ2xvYmFsX3NpemVfZGlyZWN0b3J5OwotICAgIHBhc19zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeV9mb3JfZWFjaF9saXZlX29iamVjdF9jYWxsYmFjayBjYWxs
YmFjazsKLSAgICB2b2lkKiBhcmc7Ci19IGZvcl9lYWNoX2xpdmVfb2JqZWN0X2RhdGE7Ci0KLXN0
YXRpYyBib29sIGZvcl9lYWNoX2xpdmVfb2JqZWN0X2NhbGxiYWNrKAotICAgIHBhc19zZWdyZWdh
dGVkX2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldywK
LSAgICB1aW50cHRyX3QgYmVnaW4sCi0gICAgdm9pZCogYXJnKQotewotICAgIGZvcl9lYWNoX2xp
dmVfb2JqZWN0X2RhdGEqIGRhdGE7Ci0KLSAgICBQQVNfVU5VU0VEX1BBUkFNKGRpcmVjdG9yeSk7
Ci0KLSAgICBkYXRhID0gYXJnOwotCi0gICAgcmV0dXJuIGRhdGEtPmNhbGxiYWNrKGRhdGEtPmds
b2JhbF9zaXplX2RpcmVjdG9yeSwgdmlldywgYmVnaW4sIGRhdGEtPmFyZyk7Ci19Ci0KLWJvb2wg
cGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2Zvcl9lYWNoX2xpdmVfb2JqZWN0
KAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAot
ICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9mb3JfZWFjaF9saXZlX29i
amVjdF9jYWxsYmFjayBjYWxsYmFjaywKLSAgICB2b2lkKiBhcmcpCi17Ci0gICAgZm9yX2VhY2hf
bGl2ZV9vYmplY3RfZGF0YSBkYXRhOwotCi0gICAgZGF0YS5nbG9iYWxfc2l6ZV9kaXJlY3Rvcnkg
PSBkaXJlY3Rvcnk7Ci0gICAgZGF0YS5jYWxsYmFjayA9IGNhbGxiYWNrOwotICAgIGRhdGEuYXJn
ID0gYXJnOwotICAgIAotICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9m
b3JfZWFjaF9saXZlX29iamVjdCgKLSAgICAgICAgJmRpcmVjdG9yeS0+YmFzZSwgZm9yX2VhY2hf
bGl2ZV9vYmplY3RfY2FsbGJhY2ssICZkYXRhKTsKLX0KLQotc2l6ZV90IHBhc19zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeV9sb2NhbF9hbGxvY2F0b3Jfc2l6ZSgKLSAgICBwYXNfc2Vn
cmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSkKLXsKLSAgICBwYXNfc2Vn
cmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kIGtpbmQ7Ci0KLSAgICBraW5kID0gZGlyZWN0b3J5LT5i
YXNlLnBhZ2VfY29uZmlnX2tpbmQ7Ci0KLSAgICBpZiAoa2luZCA9PSBwYXNfc2VncmVnYXRlZF9w
YWdlX2NvbmZpZ19raW5kX251bGwpCi0gICAgICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnlfbG9jYWxfYWxsb2NhdG9yX3NpemVfZm9yX251bGxfY29uZmlnKCk7
Ci0gICAgCi0gICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9s
b2NhbF9hbGxvY2F0b3Jfc2l6ZV9mb3JfY29uZmlnKAotICAgICAgICAqcGFzX3NlZ3JlZ2F0ZWRf
cGFnZV9jb25maWdfa2luZF9nZXRfY29uZmlnKGtpbmQpKTsKLX0KLQotcGFzX2FsbG9jYXRvcl9p
bmRleCBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfbnVtX2FsbG9jYXRvcl9p
bmRpY2VzKAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0
b3J5KQotewotICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnlf
bnVtX2FsbG9jYXRvcl9pbmRpY2VzX2Zvcl9hbGxvY2F0b3Jfc2l6ZSgKLSAgICAgICAgcGFzX3Nl
Z3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2xvY2FsX2FsbG9jYXRvcl9zaXplKGRpcmVj
dG9yeSkpOwotfQotCi12b2lkIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9k
dW1wX3JlZmVyZW5jZSgKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnkq
IGRpcmVjdG9yeSwgcGFzX3N0cmVhbSogc3RyZWFtKQotewotICAgIHBhc19zdHJlYW1fcHJpbnRm
KAotICAgICAgICBzdHJlYW0sCi0gICAgICAgICIlcChzZWdyZWdhdGVkX2dsb2JhbF9zaXplX2Rp
cmVjdG9yeSwgJXUsICVwLCAlcykiLAotICAgICAgICBkaXJlY3RvcnksCi0gICAgICAgIGRpcmVj
dG9yeS0+b2JqZWN0X3NpemUsCi0gICAgICAgIGRpcmVjdG9yeS0+aGVhcCwKLSAgICAgICAgcGFz
X3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZF9nZXRfc3RyaW5nKGRpcmVjdG9yeS0+YmFzZS5w
YWdlX2NvbmZpZ19raW5kKSk7Ci19Ci0KLXZvaWQgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVf
ZGlyZWN0b3J5X2R1bXBfZm9yX3NwZWN0cnVtKAotICAgIHBhc19zdHJlYW0qIHN0cmVhbSwgdm9p
ZCogZGlyZWN0b3J5KQotewotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9y
eV9kdW1wX3JlZmVyZW5jZShkaXJlY3RvcnksIHN0cmVhbSk7Ci19Ci0KLSNlbmRpZiAvKiBMSUJQ
QVNfRU5BQkxFRCAqLwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGly
ZWN0b3J5LmgJKHJldmlzaW9uIDI3OTk2NCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeS5oCShub25leGlzdGVu
dCkKQEAgLTEsMjMxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKLSAqLwotCi0jaWZuZGVmIFBBU19TRUdSRUdBVEVEX0dMT0JBTF9TSVpFX0RJUkVD
VE9SWV9ICi0jZGVmaW5lIFBBU19TRUdSRUdBVEVEX0dMT0JBTF9TSVpFX0RJUkVDVE9SWV9ICi0K
LSNpbmNsdWRlICJwYXNfYWxsb2NhdG9yX2luZGV4LmgiCi0jaW5jbHVkZSAicGFzX2NvbXBhY3Rf
YXRvbWljX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzc19wdHIuaCIKLSNpbmNsdWRlICJwYXNfY29t
cGFjdF9hdG9taWNfcGFnZV9zaGFyaW5nX3Bvb2xfcHRyLmgiCi0jaW5jbHVkZSAicGFzX2NvbXBh
Y3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0ci5oIgotI2luY2x1
ZGUgInBhc19jb21wYWN0X2F0b21pY190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUuaCIK
LSNpbmNsdWRlICJwYXNfY29tcGFjdF90YWdnZWRfcGFnZV9ncmFudWxlX3VzZV9jb3VudF9wdHIu
aCIKLSNpbmNsdWRlICJwYXNfY29tcGFjdF90YWdnZWRfdW5zaWduZWRfcHRyLmgiCi0jaW5jbHVk
ZSAicGFzX2NvbmZpZy5oIgotI2luY2x1ZGUgInBhc19oZWFwX2NvbmZpZy5oIgotI2luY2x1ZGUg
InBhc19wYWdlX2dyYW51bGVfdXNlX2NvdW50LmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnkuaCIKLQotUEFTX0JFR0lOX0VYVEVSTl9DOwotCi1zdHJ1Y3QgcGFzX2V4
dGVuZGVkX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2RhdGE7Ci1zdHJ1Y3QgcGFz
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5Owotc3RydWN0IHBhc19zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhOwotdHlwZWRlZiBzdHJ1Y3QgcGFzX2V4dGVuZGVk
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2RhdGEgcGFzX2V4dGVuZGVkX3NlZ3Jl
Z2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2RhdGE7Ci10eXBlZGVmIHN0cnVjdCBwYXNfc2Vn
cmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YSBwYXNfc2VncmVnYXRlZF9nbG9iYWxf
c2l6ZV9kaXJlY3RvcnlfZGF0YTsKLXR5cGVkZWYgc3RydWN0IHBhc19zZWdyZWdhdGVkX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnk7Ci10
eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YSBw
YXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YTsKLQotUEFTX0RFRklORV9D
T01QQUNUX0FUT01JQ19QVFIocGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2Rh
dGEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxf
c2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHIpOwotCi1QQVNfQVBJIGV4dGVybiBib29sIHBhc19zZWdy
ZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9jYW5fZXhwbG9kZTsKLVBBU19BUEkgZXh0ZXJu
IGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2ZvcmNlX2V4cGxvZGU7
Ci0KLXN0cnVjdCBQQVNfQUxJR05FRChzaXplb2YocGFzX3ZlcnNpb25lZF9maWVsZCkpIHBhc19z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSB7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGly
ZWN0b3J5IGJhc2U7Ci0gICAgCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcDsKLQotICAg
IHVuc2lnbmVkIG9iamVjdF9zaXplIDogMjc7Ci0gICAgdW5zaWduZWQgYWxpZ25tZW50X3NoaWZ0
IDogNTsKLQotICAgIC8qIFRoaXMgaGFzIGEgZnVubnkgZW5jb2RpbmcgKGxldCBOID0gUEFTX05V
TV9CQVNFTElORV9BTExPQ0FUT1JTKToKLSAgICAgICAKLSAgICAgICBpbmRleCBpbiBbMCwgTikg
ICAgID0+IGF0dGFjaGVkIHRvIGluZGV4Ci0gICAgICAgaW5kZXggaW4gW04sIDJOKSAgICA9PiBh
dHRhY2hpbmcgdG8gaW5kZXggLSBOCi0gICAgICAgMk4gICAgICAgICAgICAgICAgICA9PiBkZXRh
Y2hlZAotICAgICAgIAotICAgICAgIEluIHRoZSBkZXRhY2hlZCBzdGF0ZSwgdGhlIG9ubHkgd2F5
IHRvIGNoYW5nZSB0aGlzIGlzIHRvIENBUyBpdC4KLSAgICAgICAKLSAgICAgICBJbiB0aGUgYXR0
YWNoZWQgYW5kIGF0dGFjaGluZyBzdGF0ZXMsIHRoZSBjb3JyZXNwb25kaW5nIGluZGV4J3MgbG9j
ayBwcm90ZWN0cyB0aGlzIGZpZWxkLiAqLwotICAgIHVpbnQxNl90IGJhc2VsaW5lX2FsbG9jYXRv
cl9pbmRleDsKLSAgICAKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnlf
ZGF0YV9wdHIgZGF0YTsKLSAgICBwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X2dsb2JhbF9zaXpl
X2NsYXNzX3B0ciBiaXRmaXRfc2l6ZV9jbGFzczsKLQotICAgIC8qIFRoZSBvd25pbmcgc2VncmVn
YXRlZCBoZWFwIGhvbGRzIHRoZXNlIGluIGEgc2luZ2x5IGxpbmtlZCBsaXN0LiAqLwotICAgIHBh
c19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHIgbmV4
dF9mb3JfaGVhcDsKLX07Ci0KLXN0cnVjdCBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJl
Y3RvcnlfZGF0YSB7Ci0gICAgdW5zaWduZWQgb2Zmc2V0X2Zyb21fcGFnZV9ib3VuZGFyeV90b19m
aXJzdF9vYmplY3Q7IC8qIENhY2hlZCB0byBtYWtlIHJlZmlsbCBmYXN0LiAqLwotICAgIHVuc2ln
bmVkIG9mZnNldF9mcm9tX3BhZ2VfYm91bmRhcnlfdG9fZW5kX29mX2xhc3Rfb2JqZWN0OyAvKiBD
YWNoZWQgdG8gbWFrZSByZWZpbGwgZmFzdC4gKi8KLSAgICAKLSAgICBwYXNfYWxsb2NhdG9yX2lu
ZGV4IGFsbG9jYXRvcl9pbmRleDsKLSAgICAKLSAgICB1aW50OF90IGZ1bGxfbnVtX25vbl9lbXB0
eV93b3JkczsKLQotICAgIHBhc19jb21wYWN0X3RhZ2dlZF91bnNpZ25lZF9wdHIgZnVsbF9hbGxv
Y19iaXRzOyAvKiBQcmVjb21wdXRlZCBhbGxvYyBiaXRzIGluIHRoZSBjYXNlIHRoYXQgYSBwYWdl
IGlzIGVtcHR5LiAqLwotICAgIHBhc19jb21wYWN0X2F0b21pY19wYWdlX3NoYXJpbmdfcG9vbF9w
dHIgYmlhc19zaGFyaW5nX3Bvb2w7Ci0gICAgcGFzX2NvbXBhY3RfYXRvbWljX3RocmVhZF9sb2Nh
bF9jYWNoZV9sYXlvdXRfbm9kZSBuZXh0X2Zvcl9sYXlvdXQ7Ci19OwotCi1zdHJ1Y3QgcGFzX2V4
dGVuZGVkX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2RhdGEgewotICAgIHBhc19z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhIGJhc2U7Ci0gICAgcGFzX2NvbXBh
Y3RfdGFnZ2VkX3BhZ2VfZ3JhbnVsZV91c2VfY291bnRfcHRyIGZ1bGxfdXNlX2NvdW50czsKLX07
Ci0KLXN0YXRpYyBpbmxpbmUgcGFzX3NlZ3JlZ2F0ZWRfdmlldwotcGFzX3NlZ3JlZ2F0ZWRfZ2xv
YmFsX3NpemVfZGlyZWN0b3J5X2FzX3ZpZXcocGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGly
ZWN0b3J5KiBkaXJlY3RvcnkpCi17Ci0gICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX3ZpZXdfY3Jl
YXRlKGRpcmVjdG9yeSwgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3ZpZXdf
a2luZCk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgc2l6ZV90Ci1wYXNfc2VncmVnYXRlZF9nbG9iYWxf
c2l6ZV9kaXJlY3RvcnlfYWxpZ25tZW50KHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVj
dG9yeSogZGlyZWN0b3J5KQotewotICAgIHJldHVybiAoc2l6ZV90KTEgPDwgKHNpemVfdClkaXJl
Y3RvcnktPmFsaWdubWVudF9zaGlmdDsKLX0KLQotUEFTX0FQSSBwYXNfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnkqIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9j
cmVhdGUoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwKLSAgICB1bnNpZ25lZCBvYmpl
Y3Rfc2l6ZSwKLSAgICB1bnNpZ25lZCBhbGlnbm1lbnQsCi0gICAgcGFzX2hlYXBfY29uZmlnKiBo
ZWFwX2NvbmZpZywKLSAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyogcGFnZV9jb25maWcp
OwotCi1zdGF0aWMgaW5saW5lIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0
b3J5X2NvbnRlbnRpb25fZGlkX3RyaWdnZXJfZXhwbG9zaW9uKAotICAgIHBhc19zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KQotewotICAgIHJldHVybiBwYXNfc2Vn
cmVnYXRlZF9kaXJlY3RvcnlfZ2V0X21pc2NfYml0KCZkaXJlY3RvcnktPmJhc2UpOwotfQotCi1z
dGF0aWMgaW5saW5lIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3Nl
dF9jb250ZW50aW9uX2RpZF90cmlnZ2VyX2V4cGxvc2lvbigKLSAgICBwYXNfc2VncmVnYXRlZF9n
bG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAgICBib29sIHZhbHVlKQotewotICAg
IHJldHVybiBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfc2V0X21pc2NfYml0KCZkaXJlY3Rvcnkt
PmJhc2UsIHZhbHVlKTsKLX0KLQotUEFTX0FQSSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9k
aXJlY3RvcnlfZGF0YSogcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2Vuc3Vy
ZV9kYXRhKAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0
b3J5LAotICAgIHBhc19sb2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKLQotUEFT
X0FQSSBwYXNfZXh0ZW5kZWRfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YSoK
LXBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9nZXRfZXh0ZW5kZWRfZGF0YSgK
LSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7Ci0K
LS8qIENhbGwgd2l0aCBoZWFwIGxvY2sgaGVsZC4gKi8KLVBBU19BUEkgdm9pZCBwYXNfc2VncmVn
YXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfY3JlYXRlX3RsY19hbGxvY2F0b3IoCi0gICAgcGFz
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpOwotCi1zdGF0aWMg
aW5saW5lIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2hhc190bGNf
YWxsb2NhdG9yKAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGly
ZWN0b3J5KQotewotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kYXRh
KiBkYXRhOwotICAgIGRhdGEgPSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnlf
ZGF0YV9wdHJfbG9hZCgmZGlyZWN0b3J5LT5kYXRhKTsKLSAgICByZXR1cm4gZGF0YSAmJiBkYXRh
LT5hbGxvY2F0b3JfaW5kZXggIT0gKHBhc19hbGxvY2F0b3JfaW5kZXgpVUlOVF9NQVg7Ci19Ci0K
LS8qIENhbGwgd2l0aCBoZWFwIGxvY2sgaGVsZC4gKi8KLVBBU19BUEkgdm9pZCBwYXNfc2VncmVn
YXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZW5hYmxlX2V4Y2x1c2l2ZV92aWV3cygKLSAgICBw
YXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7Ci0KLXN0YXRp
YyBpbmxpbmUgYm9vbCBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfYXJlX2V4
Y2x1c2l2ZV92aWV3c19lbmFibGVkKAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2Rp
cmVjdG9yeSogZGlyZWN0b3J5KQotewotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2Rp
cmVjdG9yeV9kYXRhKiBkYXRhOwotICAgIGRhdGEgPSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnlfZGF0YV9wdHJfbG9hZCgmZGlyZWN0b3J5LT5kYXRhKTsKLSAgICByZXR1cm4g
ZGF0YSAmJiBkYXRhLT5mdWxsX251bV9ub25fZW1wdHlfd29yZHM7Ci19Ci0KLVBBU19BUEkgdm9p
ZCBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZXhwbG9kZSgKLSAgICBwYXNf
c2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAgICBwYXNfbG9j
a19ob2xkX21vZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSk7Ci0KLVBBU19BUEkgcGFzX3NlZ3JlZ2F0
ZWRfdmlldyBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfdGFrZV9maXJzdF9l
bGlnaWJsZV9kaXJlY3QoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
KiBkaXJlY3RvcnkpOwotCi1QQVNfQVBJIHBhc19zZWdyZWdhdGVkX3ZpZXcgcGFzX3NlZ3JlZ2F0
ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3Rha2VfZmlyc3RfZWxpZ2libGUoCi0gICAgcGFzX3Nl
Z3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCi0gICAgcGFzX21hZ2F6
aW5lKiBtYWdhemluZSk7Ci0KLVBBU19BUEkgcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2VfcmVz
dWx0Ci1wYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfdGFrZV9sYXN0X2VtcHR5
KAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAot
ICAgIHBhc19kZWZlcnJlZF9kZWNvbW1pdF9sb2cqIGxvZywKLSAgICBwYXNfbG9ja19ob2xkX21v
ZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSk7Ci0KLVBBU19BUEkgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5KiBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZm9y
X29iamVjdCgKLSAgICB1aW50cHRyX3QgYmVnaW4sCi0gICAgcGFzX2hlYXBfY29uZmlnKiBjb25m
aWcpOwotCi0vKiBUaGlzIGFzc3VtZXMgdGhhdCB3ZSBhbHJlYWR5IGhhdmUgYSBkYXRhLiBUaGF0
J3MgYSB2YWxpZCBhc3N1bXB0aW9uIGlmIHdlIGhhdmUgZXhjbHVzaXZlcy4gKi8KLVBBU19BUEkg
cGFzX2hlYXBfc3VtbWFyeSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfY29t
cHV0ZV9zdW1tYXJ5X2Zvcl91bm93bmVkX2V4Y2x1c2l2ZSgKLSAgICBwYXNfc2VncmVnYXRlZF9n
bG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7Ci0KLS8qIFdlIHVzZSBhIHBhZ2Ugc2hh
cmluZyBwb29sIGFzIG91ciBjb2xsZWN0aW9uIG9mIGJpYXNpbmcgZGlyZWN0b3JpZXMuCi0gCi0g
ICBDb29sIGZhY3Q6IHBhZ2Ugc2hhcmluZyBwb29sIGl0ZXJhdGlvbiBmdW5jdGlvbnMgd29yayBm
b3IgTlVMTC4gVGhleSdsbCBiZWhhdmUgYXMgaWYgeW91IGhhZCBhbgotICAgZW1wdHkgcG9vbC4g
U28sIG5vIG5lZWQgdG8gTlVMTC1jaGVjayBpZiB1c2luZyB0aGUgcmV0dXJuIHZhbHVlIG9mIHRo
aXMgZnVuY3Rpb24gdG8gaXRlcmF0ZSB0aGUKLSAgIGJpYXNpbmcgZGlyZWN0b3JpZXMuICovCi1z
dGF0aWMgaW5saW5lIHBhc19wYWdlX3NoYXJpbmdfcG9vbCogcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5X2JpYXNfc2hhcmluZ19wb29sKAotICAgIHBhc19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KQotewotICAgIHBhc19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhKiBkYXRhOwotICAgIGRhdGEgPSBwYXNfc2VncmVnYXRl
ZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJfbG9hZCgmZGlyZWN0b3J5LT5kYXRhKTsK
LSAgICBpZiAoIWRhdGEpCi0gICAgICAgIHJldHVybiBOVUxMOwotICAgIHJldHVybiBwYXNfY29t
cGFjdF9hdG9taWNfcGFnZV9zaGFyaW5nX3Bvb2xfcHRyX2xvYWQoJmRhdGEtPmJpYXNfc2hhcmlu
Z19wb29sKTsKLX0KLQotdHlwZWRlZiBib29sICgqcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVf
ZGlyZWN0b3J5X2Zvcl9lYWNoX2xpdmVfb2JqZWN0X2NhbGxiYWNrKSgKLSAgICBwYXNfc2VncmVn
YXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAgICBwYXNfc2VncmVnYXRl
ZF92aWV3IHZpZXcsCi0gICAgdWludHB0cl90IGJlZ2luLAotICAgIHZvaWQqIGFyZyk7Ci0KLVBB
U19BUEkgYm9vbCBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZm9yX2VhY2hf
bGl2ZV9vYmplY3QoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBk
aXJlY3RvcnksCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2Zvcl9l
YWNoX2xpdmVfb2JqZWN0X2NhbGxiYWNrIGNhbGxiYWNrLAotICAgIHZvaWQqIGFyZyk7Ci0KLVBB
U19BUEkgc2l6ZV90IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9sb2NhbF9h
bGxvY2F0b3Jfc2l6ZSgKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnkq
IGRpcmVjdG9yeSk7Ci0KLVBBU19BUEkgcGFzX2FsbG9jYXRvcl9pbmRleCBwYXNfc2VncmVnYXRl
ZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfbnVtX2FsbG9jYXRvcl9pbmRpY2VzKAotICAgIHBhc19z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KTsKLQotUEFTX0FQSSB2
b2lkIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kdW1wX3JlZmVyZW5jZSgK
LSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwgcGFz
X3N0cmVhbSogc3RyZWFtKTsKLQotUEFTX0FQSSB2b2lkIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeV9kdW1wX2Zvcl9zcGVjdHJ1bSgKLSAgICBwYXNfc3RyZWFtKiBzdHJlYW0s
IHZvaWQqIGRpcmVjdG9yeSk7Ci0KLVBBU19FTkRfRVhURVJOX0M7Ci0KLSNlbmRpZiAvKiBQQVNf
U0VHUkVHQVRFRF9HTE9CQUxfU0laRV9ESVJFQ1RPUllfSCAqLwotCkluZGV4OiBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnlfaW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9pbmxpbmVzLmgJKHJldmlz
aW9uIDI3OTk2NCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdy
ZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9pbmxpbmVzLmgJKG5vbmV4aXN0ZW50KQpAQCAt
MSwxMzkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMjAxOS0yMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAotICovCi0KLSNpZm5kZWYgUEFTX1NFR1JFR0FURURfR0xPQkFMX1NJWkVfRElSRUNUT1JZX0lO
TElORVNfSAotI2RlZmluZSBQQVNfU0VHUkVHQVRFRF9HTE9CQUxfU0laRV9ESVJFQ1RPUllfSU5M
SU5FU19ICi0KLSNpbmNsdWRlICJwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX3Jlc3VsdC5oIgotI2lu
Y2x1ZGUgInBhc19iYXNlbGluZV9hbGxvY2F0b3JfdGFibGUuaCIKLSNpbmNsdWRlICJwYXNfY291
bnRfbG9va3VwX21vZGUuaCIKLSNpbmNsdWRlICJwYXNfbG9jYWxfYWxsb2NhdG9yLmgiCi0jaW5j
bHVkZSAicGFzX3NlZ3JlZ2F0ZWRfaGVhcC5oIgotI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeS5oIgotI2luY2x1ZGUgInBhc190aHJlYWRfbG9jYWxfY2FjaGUu
aCIKLQotUEFTX0JFR0lOX0VYVEVSTl9DOwotCi1QQVNfQVBJIHBhc19iYXNlbGluZV9hbGxvY2F0
b3JfcmVzdWx0Ci1wYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZ2V0X2FsbG9j
YXRvcl9mcm9tX3RsYygKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnkq
IGRpcmVjdG9yeSwKLSAgICBzaXplX3QgY291bnQsCi0gICAgcGFzX2NvdW50X2xvb2t1cF9tb2Rl
IGNvdW50X2xvb2t1cF9tb2RlLAotICAgIHBhc19oZWFwX2NvbmZpZyogY29uZmlnLAotICAgIHVu
c2lnbmVkKiBjYWNoZWRfaW5kZXgpOwotCi1QQVNfQVBJIHBhc19iYXNlbGluZV9hbGxvY2F0b3Iq
Ci1wYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnlfc2VsZWN0X2FsbG9jYXRvcl9z
bG93KAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5
KTsKLQotc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19iYXNlbGluZV9hbGxvY2F0b3JfcmVz
dWx0Ci1wYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnlfc2VsZWN0X2FsbG9jYXRv
cigKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwK
LSAgICBzaXplX3QgY291bnQsCi0gICAgcGFzX2NvdW50X2xvb2t1cF9tb2RlIGNvdW50X2xvb2t1
cF9tb2RlLAotICAgIHBhc19oZWFwX2NvbmZpZyogY29uZmlnLAotICAgIHVuc2lnbmVkKiBjYWNo
ZWRfaW5kZXgpCi17Ci0gICAgaWYgKHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9y
eV9oYXNfdGxjX2FsbG9jYXRvcihkaXJlY3RvcnkpCi0gICAgICAgICYmIChwYXNfdGhyZWFkX2xv
Y2FsX2NhY2hlX3RyeV9nZXQoKSB8fCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2Nhbl9zZXQoKSkp
IHsKLSAgICAgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9n
ZXRfYWxsb2NhdG9yX2Zyb21fdGxjKAotICAgICAgICAgICAgZGlyZWN0b3J5LCBjb3VudCwgY291
bnRfbG9va3VwX21vZGUsIGNvbmZpZywgY2FjaGVkX2luZGV4KTsKLSAgICB9Ci0KLSAgICBmb3Ig
KDs7KSB7Ci0gICAgICAgIHVuc2lnbmVkIGluZGV4OwotICAgICAgICBwYXNfYmFzZWxpbmVfYWxs
b2NhdG9yKiBhbGxvY2F0b3I7Ci0KLSAgICAgICAgaW5kZXggPSBkaXJlY3RvcnktPmJhc2VsaW5l
X2FsbG9jYXRvcl9pbmRleDsKLSAgICAgICAgaWYgKGluZGV4ID49IFBBU19OVU1fQkFTRUxJTkVf
QUxMT0NBVE9SUykKLSAgICAgICAgICAgIGFsbG9jYXRvciA9IHBhc19zZWdyZWdhdGVkX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeV9zZWxlY3RfYWxsb2NhdG9yX3Nsb3coZGlyZWN0b3J5KTsKLSAgICAg
ICAgZWxzZSB7Ci0gICAgICAgICAgICBhbGxvY2F0b3IgPSBwYXNfYmFzZWxpbmVfYWxsb2NhdG9y
X3RhYmxlICsgaW5kZXg7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIHBhc19sb2NrX2xvY2so
JmFsbG9jYXRvci0+bG9jayk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGlmIChkaXJlY3Rv
cnktPmJhc2VsaW5lX2FsbG9jYXRvcl9pbmRleCAhPSBpbmRleCkgewotICAgICAgICAgICAgICAg
IHBhc19sb2NrX3VubG9jaygmYWxsb2NhdG9yLT5sb2NrKTsKLSAgICAgICAgICAgICAgICBjb250
aW51ZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIFBBU19BU1NFUlQocGFz
X3NlZ3JlZ2F0ZWRfdmlld19nZXRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KGFsbG9jYXRvci0+dS5h
bGxvY2F0b3IudmlldykgPT0gZGlyZWN0b3J5KTsKLQotICAgICAgICByZXR1cm4gcGFzX2Jhc2Vs
aW5lX2FsbG9jYXRvcl9yZXN1bHRfY3JlYXRlX3N1Y2Nlc3MoCi0gICAgICAgICAgICAmYWxsb2Nh
dG9yLT51LmFsbG9jYXRvciwgJmFsbG9jYXRvci0+bG9jayk7Ci0gICAgfQotfQotCi1zdGF0aWMg
UEFTX0FMV0FZU19JTkxJTkUgc2l6ZV90Ci1wYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJl
Y3RvcnlfbG9jYWxfYWxsb2NhdG9yX3NpemVfZm9yX251bGxfY29uZmlnKHZvaWQpCi17Ci0gICAg
cmV0dXJuIFBBU19MT0NBTF9BTExPQ0FUT1JfU0laRSgwKTsKLX0KLQotc3RhdGljIFBBU19BTFdB
WVNfSU5MSU5FIHNpemVfdCBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfbG9j
YWxfYWxsb2NhdG9yX3NpemVfZm9yX2NvbmZpZygKLSAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2Nv
bmZpZyBjb25maWcpCi17Ci0gICAgUEFTX0FTU0VSVChjb25maWcuYmFzZS5pc19lbmFibGVkKTsK
LSAgICByZXR1cm4gUEFTX0xPQ0FMX0FMTE9DQVRPUl9TSVpFKGNvbmZpZy5udW1fYWxsb2NfYml0
cyk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgcGFzX2FsbG9jYXRvcl9pbmRleAotcGFzX3NlZ3JlZ2F0
ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X251bV9hbGxvY2F0b3JfaW5kaWNlc19mb3JfYWxsb2Nh
dG9yX3NpemUoc2l6ZV90IHNpemUpCi17Ci0gICAgcGFzX2FsbG9jYXRvcl9pbmRleCByZXN1bHQ7
Ci0KLSAgICByZXN1bHQgPSAocGFzX2FsbG9jYXRvcl9pbmRleCkoc2l6ZSAvIDgpOwotICAgIFBB
U19URVNUSU5HX0FTU0VSVCgoc2l6ZV90KXJlc3VsdCAqIDggPT0gc2l6ZSk7Ci0gICAgCi0gICAg
cmV0dXJuIHJlc3VsdDsKLX0KLQotc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19hbGxvY2F0
b3JfaW5kZXgKLXBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9udW1fYWxsb2Nh
dG9yX2luZGljZXNfZm9yX2NvbmZpZygKLSAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBj
b25maWcpCi17Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwotICAgIAot
ICAgIHNpemVfdCBzaXplOwotCi0gICAgUEFTX0FTU0VSVChjb25maWcuYmFzZS5pc19lbmFibGVk
KTsKLSAgICAKLSAgICBzaXplID0gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
X2xvY2FsX2FsbG9jYXRvcl9zaXplX2Zvcl9jb25maWcoY29uZmlnKTsKLQotICAgIGlmICh2ZXJi
b3NlKSB7Ci0gICAgICAgIHBhc19sb2coCi0gICAgICAgICAgICAia2luZCA9ICVzLCBzaXplID0g
JXp1LlxuIiwKLSAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfZ2V0
X3N0cmluZyhjb25maWcua2luZCksCi0gICAgICAgICAgICBzaXplKTsKLSAgICB9Ci0KLSAgICBy
ZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X251bV9hbGxvY2F0b3Jf
aW5kaWNlc19mb3JfYWxsb2NhdG9yX3NpemUoc2l6ZSk7Ci19Ci0KLVBBU19FTkRfRVhURVJOX0M7
Ci0KLSNlbmRpZiAvKiBQQVNfU0VHUkVHQVRFRF9HTE9CQUxfU0laRV9ESVJFQ1RPUllfSU5MSU5F
U19IICovCi0KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdy
ZWdhdGVkX2hlYXAuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfc2VncmVnYXRlZF9oZWFwLmMJKHJldmlzaW9uIDI3OTk2NCkKKysrIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2hlYXAuYwkod29ya2luZyBj
b3B5KQpAQCAtMzQsNyArMzQsNyBAQAogI2luY2x1ZGUgInBhc19oZWFwLmgiCiAjaW5jbHVkZSAi
cGFzX2hlYXBfcmVmLmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfaGVhcF9pbmxpbmVzLmgi
Ci0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5LmgiCisjaW5j
bHVkZSAicGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkuaCIKICNpbmNsdWRlICJwYXNfc2Vn
cmVnYXRlZF9wYWdlLmgiCiAjaW5jbHVkZSAicGFzX3RocmVhZF9sb2NhbF9jYWNoZS5oIgogI2lu
Y2x1ZGUgInBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0LmgiCkBAIC0xOTIsNyArMTkyLDcg
QEAgdm9pZCBwYXNfc2VncmVnYXRlZF9oZWFwX2NvbnN0cnVjdChwYXNfcwogCiAgICAgc2VncmVn
YXRlZF9oZWFwLT5ydW50aW1lX2NvbmZpZyA9IHJ1bnRpbWVfY29uZmlnOwogICAgIAotICAgIHBh
c19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfc3Rv
cmUoCisgICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRy
X3N0b3JlKAogICAgICAgICAmc2VncmVnYXRlZF9oZWFwLT5iYXNpY19zaXplX2RpcmVjdG9yeV9h
bmRfaGVhZCwgTlVMTCk7CiAgICAgCiAgICAgc2VncmVnYXRlZF9oZWFwLT5zbWFsbF9pbmRleF91
cHBlcl9ib3VuZCA9IDA7CkBAIC0zODUsNyArMzg1LDcgQEAgdW5zaWduZWQgcGFzX3NlZ3JlZ2F0
ZWRfaGVhcF9tZWRpdW1fYWxsbwogICAgIHJldHVybiBVSU5UX01BWDsKIH0KIAotcGFzX3NlZ3Jl
Z2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBwYXNfc2VncmVnYXRlZF9oZWFwX21lZGl1bV9z
aXplX2RpcmVjdG9yeV9mb3JfaW5kZXgoCitwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSog
cGFzX3NlZ3JlZ2F0ZWRfaGVhcF9tZWRpdW1fc2l6ZV9kaXJlY3RvcnlfZm9yX2luZGV4KAogICAg
IHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXAsCiAgICAgc2l6ZV90IGluZGV4LAogICAgIHBhc19z
ZWdyZWdhdGVkX2hlYXBfbWVkaXVtX3NpemVfZGlyZWN0b3J5X3NlYXJjaF9tb2RlIHNlYXJjaF9t
b2RlLApAQCAtMzk3LDcgKzM5Nyw3IEBAIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVj
dG9yeSogcGEKICAgICAgICAgaGVhcCwgaW5kZXgsIHNlYXJjaF9tb2RlLCBoZWFwX2xvY2tfaG9s
ZF9tb2RlKTsKICAgICAKICAgICBpZiAobWVkaXVtX2RpcmVjdG9yeSkKLSAgICAgICAgcmV0dXJu
IHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJf
bG9hZCgmbWVkaXVtX2RpcmVjdG9yeS0+ZGlyZWN0b3J5KTsKKyAgICAgICAgcmV0dXJuIHBhc19j
b21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKCZtZWRpdW1f
ZGlyZWN0b3J5LT5kaXJlY3RvcnkpOwogICAgIAogICAgIHJldHVybiBOVUxMOwogfQpAQCAtNDIz
LDcgKzQyMyw3IEBAIHN0YXRpYyB2b2lkIGVuc3VyZV9jb3VudF9sb29rdXAocGFzX3NlZ3IKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2hlYXBfY29uZmlnKiBjb25maWcpCiB7
CiAgICAgc2l6ZV90IGluZGV4X3VwcGVyX2JvdW5kOwotICAgIHBhc19jb21wYWN0X2F0b21pY19z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHIqIGluZGV4X3RvX3NpemVfZGlyZWN0
b3J5OworICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0
ciogaW5kZXhfdG9fc2l6ZV9kaXJlY3Rvcnk7CiAgICAgcGFzX2FsbG9jYXRvcl9pbmRleCogaW5k
ZXhfdG9fYWxsb2NhdG9yX2luZGV4OwogICAgIHVuc2lnbmVkIGluZGV4OwogICAgIApAQCAtNDM2
LDcgKzQzNiw3IEBAIHN0YXRpYyB2b2lkIGVuc3VyZV9jb3VudF9sb29rdXAocGFzX3NlZ3IKICAg
ICBpbmRleF91cHBlcl9ib3VuZCA9IGNvbXB1dGVfc21hbGxfaW5kZXhfdXBwZXJfYm91bmQoaGVh
cCwgY29uZmlnKTsKICAgICAKICAgICBpbmRleF90b19zaXplX2RpcmVjdG9yeSA9IHBhc19pbW1v
cnRhbF9oZWFwX2FsbG9jYXRlKAotICAgICAgICBzaXplb2YocGFzX2NvbXBhY3RfYXRvbWljX3Nl
Z3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cikgKiBpbmRleF91cHBlcl9ib3VuZCwK
KyAgICAgICAgc2l6ZW9mKHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0
b3J5X3B0cikgKiBpbmRleF91cHBlcl9ib3VuZCwKICAgICAgICAgInBhc19zZWdyZWdhdGVkX2hl
YXAvaW5kZXhfdG9fc2l6ZV9kaXJlY3RvcnkiLAogICAgICAgICBwYXNfb2JqZWN0X2FsbG9jYXRp
b24pOwogICAgIGluZGV4X3RvX2FsbG9jYXRvcl9pbmRleCA9IHBhc19pbW1vcnRhbF9oZWFwX2Fs
bG9jYXRlKApAQCAtNDQ1LDcgKzQ0NSw3IEBAIHN0YXRpYyB2b2lkIGVuc3VyZV9jb3VudF9sb29r
dXAocGFzX3NlZ3IKICAgICAgICAgcGFzX29iamVjdF9hbGxvY2F0aW9uKTsKICAgICAKICAgICBm
b3IgKGluZGV4ID0gMDsgaW5kZXggPCBpbmRleF91cHBlcl9ib3VuZDsgKytpbmRleCkgewotICAg
ICAgICBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnlf
cHRyX3N0b3JlKAorICAgICAgICBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeV9wdHJfc3RvcmUoCiAgICAgICAgICAgICBpbmRleF90b19zaXplX2RpcmVjdG9yeSAr
IGluZGV4LCBOVUxMKTsKICAgICAgICAgaW5kZXhfdG9fYWxsb2NhdG9yX2luZGV4W2luZGV4XSA9
IChwYXNfYWxsb2NhdG9yX2luZGV4KVVJTlRfTUFYOwogICAgIH0KQEAgLTQ2MSw3ICs0NjEsNyBA
QCBzdGF0aWMgdm9pZCBlbnN1cmVfY291bnRfbG9va3VwKHBhc19zZWdyCiB1bnNpZ25lZAogcGFz
X3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1cmVfYWxsb2NhdG9yX2luZGV4KAogICAgIHBhc19zZWdyZWdh
dGVkX2hlYXAqIGhlYXAsCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
KiBkaXJlY3RvcnksCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9y
eSwKICAgICBzaXplX3QgY291bnQsCiAgICAgcGFzX2NvdW50X2xvb2t1cF9tb2RlIGNvdW50X2xv
b2t1cF9tb2RlLAogICAgIHBhc19oZWFwX2NvbmZpZyogY29uZmlnLApAQCAtNDk0LDcgKzQ5NCw3
IEBAIHBhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJlX2FsbG9jYXRvcl9pbmQKICAgICAgICAgcHJp
bnRmKCJpbmRleCA9ICV6dVxuIiwgaW5kZXgpOwogCiAgICAgYWxsb2NhdG9yX2luZGV4ID0KLSAg
ICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2RhdGFfcHRyX2xvYWQo
JmRpcmVjdG9yeS0+ZGF0YSktPmFsbG9jYXRvcl9pbmRleDsKKyAgICAgICAgcGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJfbG9hZCgmZGlyZWN0b3J5LT5kYXRhKS0+YWxsb2Nh
dG9yX2luZGV4OwogICAgIFBBU19BU1NFUlQoKHBhc19hbGxvY2F0b3JfaW5kZXgpYWxsb2NhdG9y
X2luZGV4ID09IGFsbG9jYXRvcl9pbmRleCk7CiAgICAgUEFTX0FTU0VSVChhbGxvY2F0b3JfaW5k
ZXggPCAodW5zaWduZWQpKHBhc19hbGxvY2F0b3JfaW5kZXgpVUlOVF9NQVgpOwogICAgIApAQCAt
NTM5LDcgKzUzOSw3IEBAIHBhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJlX2FsbG9jYXRvcl9pbmQK
ICAgICAgICAgICAgICAgICBwYXNfbG9ja19pc19oZWxkKTsKICAgICAgICAgUEFTX0FTU0VSVCht
ZWRpdW1fZGlyZWN0b3J5KTsKICAgICAgICAgUEFTX0FTU0VSVCgKLSAgICAgICAgICAgIHBhc19j
b21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZCgm
bWVkaXVtX2RpcmVjdG9yeS0+ZGlyZWN0b3J5KQorICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRv
bWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWQoJm1lZGl1bV9kaXJlY3Rvcnkt
PmRpcmVjdG9yeSkKICAgICAgICAgICAgID09IGRpcmVjdG9yeSk7CiAgICAgICAgIAogICAgICAg
ICBtZWRpdW1fZGlyZWN0b3J5LT5hbGxvY2F0b3JfaW5kZXggPSAocGFzX2FsbG9jYXRvcl9pbmRl
eClhbGxvY2F0b3JfaW5kZXg7CkBAIC02NzcsMTggKzY3NywyMCBAQCBlbnN1cmVfY291bnRfbG9v
a3VwX2lmX25lY2Vzc2FyeShwYXNfc2VnCiAgICAgICAgIGVuc3VyZV9jb3VudF9sb29rdXAoaGVh
cCwgY29uZmlnKTsKIH0KIAotcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5Kgot
cGFzX3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1cmVfc2l6ZV9kaXJlY3RvcnlfZm9yX2NvdW50KHBhc19z
ZWdyZWdhdGVkX2hlYXAqIGhlYXAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2l6ZV90IGNvdW50LAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBhbGlnbm1lbnQsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2NvdW50X2xvb2t1
cF9tb2RlIGNvdW50X2xvb2t1cF9tb2RlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBhc19oZWFwX2NvbmZpZyogY29uZmlnLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkKiBjYWNo
ZWRfaW5kZXgpCitwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSoKK3Bhc19zZWdyZWdhdGVk
X2hlYXBfZW5zdXJlX3NpemVfZGlyZWN0b3J5X2Zvcl9jb3VudCgKKyAgICBwYXNfc2VncmVnYXRl
ZF9oZWFwKiBoZWFwLAorICAgIHNpemVfdCBjb3VudCwKKyAgICBzaXplX3QgYWxpZ25tZW50LAor
ICAgIHBhc19jb3VudF9sb29rdXBfbW9kZSBjb3VudF9sb29rdXBfbW9kZSwKKyAgICBwYXNfaGVh
cF9jb25maWcqIGNvbmZpZywKKyAgICB1bnNpZ25lZCogY2FjaGVkX2luZGV4LAorICAgIHBhc19z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2NyZWF0aW9uX21vZGUgY3JlYXRpb25fbW9kZSkKIHsK
ICAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CiAKICAgICBwYXNfaGVhcCog
cGFyZW50X2hlYXA7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBy
ZXN1bHQ7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIHJlc3VsdDsKICAgICBz
aXplX3QgaW5kZXg7CiAgICAgc2l6ZV90IG9iamVjdF9zaXplOwogICAgIHBhc19zZWdyZWdhdGVk
X2hlYXBfbWVkaXVtX2RpcmVjdG9yeV90dXBsZSogbWVkaXVtX3R1cGxlOwpAQCAtNzk2LDExICs3
OTgsMTEgQEAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1cmVfc2l6ZV9kaXJlY3RvcgogCiAgICAg
UEFTX0FTU0VSVCgKICAgICAgICAgIXJlc3VsdCB8fAotICAgICAgICBwYXNfaXNfYWxpZ25lZChy
ZXN1bHQtPm9iamVjdF9zaXplLCBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnlf
YWxpZ25tZW50KHJlc3VsdCkpKTsKKyAgICAgICAgcGFzX2lzX2FsaWduZWQocmVzdWx0LT5vYmpl
Y3Rfc2l6ZSwgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfYWxpZ25tZW50KHJlc3VsdCkp
KTsKIAogICAgIGlzX3V0aWxpdHkgPSBwYXNfaGVhcF9jb25maWdfaXNfdXRpbGl0eShjb25maWcp
OwogICAgIAotICAgIGlmIChyZXN1bHQgJiYgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGly
ZWN0b3J5X2FsaWdubWVudChyZXN1bHQpIDwgYWxpZ25tZW50KSB7CisgICAgaWYgKHJlc3VsdCAm
JiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9hbGlnbm1lbnQocmVzdWx0KSA8IGFsaWdu
bWVudCkgewogICAgICAgICBzaXplX3QgdmljdGltX2luZGV4OwogICAgICAgICAKICAgICAgICAg
LyogSW4gdGhpcyBjYXNlLCByZXN1bHQgaXMgYSBzaXplIGNsYXNzIGZvciBhdCBsZWFzdCBhcyBi
aWcgb2YgYSBzaXplCkBAIC04MTMsMTYgKzgxNSwxNiBAQCBwYXNfc2VncmVnYXRlZF9oZWFwX2Vu
c3VyZV9zaXplX2RpcmVjdG9yCiAgICAgICAgICAgIFRoaXMgbG9vcCBzdGFydHMgYXQgaW5kZXgg
KG5vdCBpbmRleCArIDEgZGVzcGl0ZSB3aGF0IHRoZSBpbml0aWFsCiAgICAgICAgICAgIGNvbmRp
dGlvbiBzZWVtcyB0byBkbykgYW5kIHRyYXZlbHMgZG93bi4gKi8KICAgICAgICAgaWYgKGhlYXAt
PnNtYWxsX2luZGV4X3VwcGVyX2JvdW5kKSB7Ci0gICAgICAgICAgICBwYXNfY29tcGFjdF9hdG9t
aWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyKiBpbmRleF90b19zbWFsbF9z
aXplX2RpcmVjdG9yeTsKKyAgICAgICAgICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5X3B0ciogaW5kZXhfdG9fc21hbGxfc2l6ZV9kaXJlY3Rvcnk7CiAgICAg
ICAgICAgICBwYXNfYWxsb2NhdG9yX2luZGV4KiBpbmRleF90b19zbWFsbF9hbGxvY2F0b3JfaW5k
ZXg7CiAKICAgICAgICAgICAgIGluZGV4X3RvX3NtYWxsX3NpemVfZGlyZWN0b3J5ID0gaGVhcC0+
aW5kZXhfdG9fc21hbGxfc2l6ZV9kaXJlY3Rvcnk7CiAgICAgICAgICAgICBpbmRleF90b19zbWFs
bF9hbGxvY2F0b3JfaW5kZXggPSBoZWFwLT5pbmRleF90b19zbWFsbF9hbGxvY2F0b3JfaW5kZXg7
CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGZvciAodmljdGltX2luZGV4ID0gaW5kZXggKyAx
OyB2aWN0aW1faW5kZXgtLTspIHsKLSAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeTsKKyAgICAgICAgICAgICAgICBwYXNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5OwogCi0gICAgICAgICAgICAgICAgZGlyZWN0
b3J5ID0gcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
X3B0cl9sb2FkKAorICAgICAgICAgICAgICAgIGRpcmVjdG9yeSA9IHBhc19jb21wYWN0X2F0b21p
Y19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKAogICAgICAgICAgICAgICAgICAg
ICBpbmRleF90b19zbWFsbF9zaXplX2RpcmVjdG9yeSArIHZpY3RpbV9pbmRleCk7CiAgICAgICAg
ICAgICAgICAgCiAgICAgICAgICAgICAgICAgaWYgKCFkaXJlY3RvcnkpCkBAIC04MzEsNyArODMz
LDcgQEAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1cmVfc2l6ZV9kaXJlY3RvcgogICAgICAgICAg
ICAgICAgIGlmIChkaXJlY3RvcnkgIT0gcmVzdWx0KQogICAgICAgICAgICAgICAgICAgICBicmVh
azsKIAotICAgICAgICAgICAgICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeV9wdHJfc3RvcmUoCisgICAgICAgICAgICAgICAgcGFzX2NvbXBhY3Rf
YXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX3N0b3JlKAogICAgICAgICAgICAg
ICAgICAgICBpbmRleF90b19zbWFsbF9zaXplX2RpcmVjdG9yeSArIHZpY3RpbV9pbmRleCwgTlVM
TCk7CiAgICAgICAgICAgICAgICAgaWYgKCFpc191dGlsaXR5KQogICAgICAgICAgICAgICAgICAg
ICBpbmRleF90b19zbWFsbF9hbGxvY2F0b3JfaW5kZXhbdmljdGltX2luZGV4XSA9IChwYXNfYWxs
b2NhdG9yX2luZGV4KVVJTlRfTUFYOwpAQCAtODk5LDcgKzkwMSw3IEBAIHBhc19zZWdyZWdhdGVk
X2hlYXBfZW5zdXJlX3NpemVfZGlyZWN0b3IKICAgICAgICAgICAgCiAgICAgICAgICAgIFNtYWxs
ZXIgaW5kZXg6IGNsZWFyIGl0IGlmIGl0IG1hdGNoZXMsIHNpbmNlIHdlICptYXkqIHdhbnQgdGhv
c2UKICAgICAgICAgICAgc21hbGxlciBhbGxvY2F0aW9ucyB0byBjb25zaWRlciBvdXIgbmV3IG9u
ZS4gKi8KLSAgICAgICAgaWYgKHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeV9wdHJfbG9hZCgKKyAgICAgICAgaWYgKHBhc19jb21wYWN0X2F0b21pY19z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKAogICAgICAgICAgICAgICAgICZoZWFw
LT5iYXNpY19zaXplX2RpcmVjdG9yeV9hbmRfaGVhZCkgPT0gcmVzdWx0CiAgICAgICAgICAgICAm
JiByZXN1bHQtPmJhc2UuaXNfYmFzaWNfc2l6ZV9kaXJlY3RvcnkKICAgICAgICAgICAgICYmIGlu
ZGV4ID49IChjYWNoZWRfaW5kZXggPyAqY2FjaGVkX2luZGV4IDogMSkpIHsKQEAgLTkxNSwxNCAr
OTE3LDE0IEBAIHBhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJlX3NpemVfZGlyZWN0b3IKICAgICAK
ICAgICBpZiAoIXJlc3VsdCkgewogICAgICAgICBzaXplX3QgY2FuZGlkYXRlX2luZGV4OwotICAg
ICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGNhbmRpZGF0ZTsKKyAg
ICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGNhbmRpZGF0ZTsKICAgICAgICAg
c2l6ZV90IG1lZGl1bV9pbnN0YWxsX2luZGV4OwogICAgICAgICBzaXplX3QgbWVkaXVtX2luc3Rh
bGxfY291bnQ7CiAgICAgICAgIGRvdWJsZSBiZXN0X2J5dGVzX2RpcnRpZWRfcGVyX29iamVjdDsK
ICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcqIGJlc3RfcGFnZV9jb25maWc7CiAg
ICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3ZhcmlhbnQgdmFyaWFudDsKLSAgICAg
ICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0
ciogaW5kZXhfdG9fc21hbGxfc2l6ZV9kaXJlY3Rvcnk7Ci0gICAgICAgIHBhc19zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeSogYmFzaWNfc2l6ZV9kaXJlY3RvcnlfYW5kX2hlYWQ7Cisg
ICAgICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0ciog
aW5kZXhfdG9fc21hbGxfc2l6ZV9kaXJlY3Rvcnk7CisgICAgICAgIHBhc19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5KiBiYXNpY19zaXplX2RpcmVjdG9yeV9hbmRfaGVhZDsKIAogICAgICAgICBp
bmRleF90b19zbWFsbF9zaXplX2RpcmVjdG9yeSA9IGhlYXAtPmluZGV4X3RvX3NtYWxsX3NpemVf
ZGlyZWN0b3J5OwogICAgICAgICAKQEAgLTkzNCw3ICs5MzYsNyBAQCBwYXNfc2VncmVnYXRlZF9o
ZWFwX2Vuc3VyZV9zaXplX2RpcmVjdG9yCiAgICAgICAgIGZvciAoY2FuZGlkYXRlX2luZGV4ID0g
aW5kZXg7CiAgICAgICAgICAgICAgY2FuZGlkYXRlX2luZGV4IDwgaGVhcC0+c21hbGxfaW5kZXhf
dXBwZXJfYm91bmQ7CiAgICAgICAgICAgICAgKytjYW5kaWRhdGVfaW5kZXgpIHsKLSAgICAgICAg
ICAgIGNhbmRpZGF0ZSA9IHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXpl
X2RpcmVjdG9yeV9wdHJfbG9hZCgKKyAgICAgICAgICAgIGNhbmRpZGF0ZSA9IHBhc19jb21wYWN0
X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKAogICAgICAgICAgICAg
ICAgIGluZGV4X3RvX3NtYWxsX3NpemVfZGlyZWN0b3J5ICsgY2FuZGlkYXRlX2luZGV4KTsKICAg
ICAgICAgICAgIGlmIChjYW5kaWRhdGUpCiAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC05NDMs
NyArOTQ1LDcgQEAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1cmVfc2l6ZV9kaXJlY3RvcgogICAg
ICAgICAvKiBJdCdzIHBvc3NpYmxlIHRoYXQgdGhlIGJhc2ljIHNpemUgY2xhc3MgaXMgYSBjYW5k
aWRhdGUuIFRoYXQgY291bGQKICAgICAgICAgICAgaGFwcGVuIGlmIHdlIGRpZCBub3QgZm9yY2Ug
Y291bnQgbG9va3VwIHdoZW4gY3JlYXRpbmcgdGhhdCBiYXNpYyBzaXplCiAgICAgICAgICAgIGNs
YXNzLiAqLwotICAgICAgICBiYXNpY19zaXplX2RpcmVjdG9yeV9hbmRfaGVhZCA9IHBhc19jb21w
YWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZCgKKyAg
ICAgICAgYmFzaWNfc2l6ZV9kaXJlY3RvcnlfYW5kX2hlYWQgPSBwYXNfY29tcGFjdF9hdG9taWNf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZCgKICAgICAgICAgICAgICZoZWFwLT5i
YXNpY19zaXplX2RpcmVjdG9yeV9hbmRfaGVhZCk7CiAgICAgICAgIGlmICgoIWNhbmRpZGF0ZSB8
fCBjYW5kaWRhdGVfaW5kZXggPiAoY2FjaGVkX2luZGV4ID8gKmNhY2hlZF9pbmRleCA6IDEpKQog
ICAgICAgICAgICAgJiYgYmFzaWNfc2l6ZV9kaXJlY3RvcnlfYW5kX2hlYWQKQEAgLTk2MCw4ICs5
NjIsOCBAQCBwYXNfc2VncmVnYXRlZF9oZWFwX2Vuc3VyZV9zaXplX2RpcmVjdG9yCiAgICAgICAg
ICAgICBwYXNfc2VncmVnYXRlZF9oZWFwX21lZGl1bV9zaXplX2RpcmVjdG9yeV9zZWFyY2hfbGVh
c3RfZ3JlYXRlcl9lcXVhbCwKICAgICAgICAgICAgIHBhc19sb2NrX2lzX2hlbGQpOwogICAgICAg
ICBpZiAobWVkaXVtX3R1cGxlKSB7Ci0gICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxf
c2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeTsKLSAgICAgICAgICAgIGRpcmVjdG9yeSA9IHBhc19j
b21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZCgK
KyAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7Cisg
ICAgICAgICAgICBkaXJlY3RvcnkgPSBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeV9wdHJfbG9hZCgKICAgICAgICAgICAgICAgICAmbWVkaXVtX3R1cGxlLT5kaXJl
Y3RvcnkpOwogICAgICAgICAgICAgaWYgKCFjYW5kaWRhdGUgfHwgZGlyZWN0b3J5LT5vYmplY3Rf
c2l6ZSA8IGNhbmRpZGF0ZS0+b2JqZWN0X3NpemUpCiAgICAgICAgICAgICAgICAgY2FuZGlkYXRl
ID0gZGlyZWN0b3J5OwpAQCAtMTAyMSw3ICsxMDIzLDcgQEAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9l
bnN1cmVfc2l6ZV9kaXJlY3RvcgogICAgICAgICAgICAgUEFTX0FTU0VSVCghaXNfdXRpbGl0eSk7
CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoY2FuZGlkYXRlICYmIHBhc19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeV9hbGlnbm1lbnQoY2FuZGlkYXRlKSA+PSBhbGlnbm1lbnQpIHsK
KyAgICAgICAgaWYgKGNhbmRpZGF0ZSAmJiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9h
bGlnbm1lbnQoY2FuZGlkYXRlKSA+PSBhbGlnbm1lbnQpIHsKICAgICAgICAgICAgIGRvdWJsZSBi
eXRlc19kaXJ0aWVkX3Blcl9vYmplY3RfYnlfY2FuZGlkYXRlOwogICAgICAgICAKICAgICAgICAg
ICAgIGlmICh2ZXJib3NlKSB7CkBAIC0xMDQzLDggKzEwNDUsOCBAQCBwYXNfc2VncmVnYXRlZF9o
ZWFwX2Vuc3VyZV9zaXplX2RpcmVjdG9yCiAgICAgICAgIH0KICAgICAKICAgICAgICAgaWYgKCFy
ZXN1bHQpIHsKLSAgICAgICAgICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeV9wdHIqIGhlYWQ7Ci0gICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9n
bG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGJhc2ljX3NpemVfZGlyZWN0b3J5X2FuZF9oZWFkOworICAg
ICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRy
KiBoZWFkOworICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGJhc2lj
X3NpemVfZGlyZWN0b3J5X2FuZF9oZWFkOwogCiAgICAgICAgICAgICBpZiAoYmVzdF9wYWdlX2Nv
bmZpZykgewogICAgICAgICAgICAgICAgIG9iamVjdF9zaXplID0gY29tcHV0ZV9pZGVhbF9vYmpl
Y3Rfc2l6ZSgKQEAgLTEwODEsMTYgKzEwODMsMTcgQEAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1
cmVfc2l6ZV9kaXJlY3RvcgogICAgICAgICAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgICAgICAg
ICAgcGFzX2xvZygiQnVtcGVkIGFsaWdubWVudCB1cCB0byAlenUuXG4iLCBhbGlnbm1lbnQpOwog
ICAgICAgICAKLSAgICAgICAgICAgIHJlc3VsdCA9IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXpl
X2RpcmVjdG9yeV9jcmVhdGUoCisgICAgICAgICAgICByZXN1bHQgPSBwYXNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeV9jcmVhdGUoCiAgICAgICAgICAgICAgICAgaGVhcCwKICAgICAgICAgICAg
ICAgICAodW5zaWduZWQpb2JqZWN0X3NpemUsCiAgICAgICAgICAgICAgICAgKHVuc2lnbmVkKWFs
aWdubWVudCwKICAgICAgICAgICAgICAgICBjb25maWcsCi0gICAgICAgICAgICAgICAgYmVzdF9w
YWdlX2NvbmZpZyk7CisgICAgICAgICAgICAgICAgYmVzdF9wYWdlX2NvbmZpZywKKyAgICAgICAg
ICAgICAgICBjcmVhdGlvbl9tb2RlKTsKICAgICAgICAgICAgIGlmICh2ZXJib3NlKQogICAgICAg
ICAgICAgICAgIHByaW50ZigiQ3JlYXRlZCBzaXplIGNsYXNzID0gJXBcbiIsIHJlc3VsdCk7CiAK
LSAgICAgICAgICAgIGJhc2ljX3NpemVfZGlyZWN0b3J5X2FuZF9oZWFkID0gcGFzX2NvbXBhY3Rf
YXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKAorICAgICAg
ICAgICAgYmFzaWNfc2l6ZV9kaXJlY3RvcnlfYW5kX2hlYWQgPSBwYXNfY29tcGFjdF9hdG9taWNf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZCgKICAgICAgICAgICAgICAgICAmaGVh
cC0+YmFzaWNfc2l6ZV9kaXJlY3RvcnlfYW5kX2hlYWQpOwogICAgICAgICAgICAgaWYgKGJhc2lj
X3NpemVfZGlyZWN0b3J5X2FuZF9oZWFkCiAgICAgICAgICAgICAgICAgJiYgYmFzaWNfc2l6ZV9k
aXJlY3RvcnlfYW5kX2hlYWQtPmJhc2UuaXNfYmFzaWNfc2l6ZV9kaXJlY3RvcnkpCkBAIC0xMDk4
LDI0ICsxMTAxLDI0IEBAIHBhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJlX3NpemVfZGlyZWN0b3IK
ICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBoZWFkID0gJmhlYXAtPmJhc2ljX3Np
emVfZGlyZWN0b3J5X2FuZF9oZWFkOwogCi0gICAgICAgICAgICBwYXNfY29tcGFjdF9hdG9taWNf
c2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX3N0b3JlKAorICAgICAgICAgICAg
cGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX3N0b3JlKAog
ICAgICAgICAgICAgICAgICZyZXN1bHQtPm5leHRfZm9yX2hlYXAsCi0gICAgICAgICAgICAgICAg
cGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9s
b2FkKGhlYWQpKTsKLSAgICAgICAgICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfc3RvcmUoaGVhZCwgcmVzdWx0KTsKKyAgICAgICAgICAg
ICAgICBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfbG9h
ZChoZWFkKSk7CisgICAgICAgICAgICBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeV9wdHJfc3RvcmUoaGVhZCwgcmVzdWx0KTsKICAgICAgICAgfQogICAgICAgICAK
ICAgICAgICAgaWYgKGNhY2hlZF9pbmRleAogICAgICAgICAgICAgPyAqY2FjaGVkX2luZGV4ID09
IFVJTlRfTUFYIHx8ICpjYWNoZWRfaW5kZXggPT0gaW5kZXgKICAgICAgICAgICAgIDogaW5kZXgg
PT0gMSkgewotICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5X3B0ciogcHJldl9uZXh0X3B0cjsKKyAgICAgICAgICAgIHBhc19jb21w
YWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0ciogcHJldl9uZXh0X3B0cjsK
ICAgICAgICAgICAgIGJvb2wgZGlkX2ZpbmRfcmVzdWx0OwotICAgICAgICAgICAgcGFzX3NlZ3Jl
Z2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7CisgICAgICAgICAgICBwYXNf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5OwogICAgICAgICAgICAgCiAgICAg
ICAgICAgICBpZiAodmVyYm9zZSkgewogICAgICAgICAgICAgICAgIHByaW50ZigicGFzX3NlZ3Jl
Z2F0ZWRfaGVhcF9lbnN1cmVfc2l6ZV9kaXJlY3RvcnlfZm9yX2NvdW50OiAiCiAgICAgICAgICAg
ICAgICAgICAgICAgICJDYWNoaW5nIGFzIGJhc2ljIHNpemUgY2xhc3MhXG4iKTsKICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIGRpcmVjdG9yeSA9IHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdh
dGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZCgKKyAgICAgICAgICAgIGRpcmVjdG9y
eSA9IHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2Fk
KAogICAgICAgICAgICAgICAgICZoZWFwLT5iYXNpY19zaXplX2RpcmVjdG9yeV9hbmRfaGVhZCk7
CiAgICAgICAgICAgICBQQVNfQVNTRVJUKCFkaXJlY3RvcnkgfHwgIWRpcmVjdG9yeS0+YmFzZS5p
c19iYXNpY19zaXplX2RpcmVjdG9yeSk7IAogICAgICAgICAgICAgaWYgKGNhY2hlZF9pbmRleCkg
ewpAQCAtMTEyOCwzNCArMTEzMSwzNCBAQCBwYXNfc2VncmVnYXRlZF9oZWFwX2Vuc3VyZV9zaXpl
X2RpcmVjdG9yCiAgICAgICAgICAgICAgICB0byBleHBlcmllbmNlIHRoZSBPKG4pIGNhc2Ugb2Yg
dGhpcyBsb29wLiAqLwogICAgICAgICAgICAgZGlkX2ZpbmRfcmVzdWx0ID0gZmFsc2U7CiAgICAg
ICAgICAgICBmb3IgKHByZXZfbmV4dF9wdHIgPSAmaGVhcC0+YmFzaWNfc2l6ZV9kaXJlY3Rvcnlf
YW5kX2hlYWQ7Ci0gICAgICAgICAgICAgICAgICFwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRl
ZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2lzX251bGwocHJldl9uZXh0X3B0cik7CisgICAg
ICAgICAgICAgICAgICFwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eV9wdHJfaXNfbnVsbChwcmV2X25leHRfcHRyKTsKICAgICAgICAgICAgICAgICAgcHJldl9uZXh0
X3B0ciA9Ci0gICAgICAgICAgICAgICAgICAgICAmcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0
ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKAorICAgICAgICAgICAgICAgICAgICAg
JnBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKAog
ICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZfbmV4dF9wdHIpLT5uZXh0X2Zvcl9oZWFwKSB7
Ci0gICAgICAgICAgICAgICAgaWYgKHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZChwcmV2X25leHRfcHRyKQorICAgICAgICAgICAgICAg
IGlmIChwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfbG9h
ZChwcmV2X25leHRfcHRyKQogICAgICAgICAgICAgICAgICAgICA9PSByZXN1bHQpIHsKLSAgICAg
ICAgICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVf
ZGlyZWN0b3J5X3B0cl9zdG9yZSgKKyAgICAgICAgICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRv
bWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX3N0b3JlKAogICAgICAgICAgICAgICAg
ICAgICAgICAgcHJldl9uZXh0X3B0ciwKLSAgICAgICAgICAgICAgICAgICAgICAgIHBhc19jb21w
YWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZCgKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5X3B0cl9sb2FkKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICZyZXN1bHQt
Pm5leHRfZm9yX2hlYXApKTsKLSAgICAgICAgICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWlj
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9zdG9yZSgKKyAgICAgICAgICAg
ICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRy
X3N0b3JlKAogICAgICAgICAgICAgICAgICAgICAgICAgJnJlc3VsdC0+bmV4dF9mb3JfaGVhcCwg
TlVMTCk7CiAgICAgICAgICAgICAgICAgICAgIGRpZF9maW5kX3Jlc3VsdCA9IHRydWU7CiAgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICAvKiBJZiB3ZSdyZSBnb2luZyB0byBnbyB0aHJvdWdoIHRoZSBlZmZvcnQgb2Ygc2Nhbm5pbmcg
dGhpcyBsaXN0IHdlIG1pZ2h0IGFzCiAgICAgICAgICAgICAgICAgICAgd2VsbCBjaGVjayBzb21l
IGJhc2ljIHByb3BlcnRpZXMgb2YgaXQuICovCi0gICAgICAgICAgICAgICAgUEFTX0FTU0VSVCgh
cGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9s
b2FkKAorICAgICAgICAgICAgICAgIFBBU19BU1NFUlQoIXBhc19jb21wYWN0X2F0b21pY19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHByZXZfbmV4dF9wdHIpLT5iYXNlLmlzX2Jhc2ljX3NpemVfZGlyZWN0b3J5KTsKICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIFBBU19BU1NFUlQoZGlkX2ZpbmRfcmVzdWx0KTsKLSAg
ICAgICAgICAgIFBBU19BU1NFUlQocGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5X3B0cl9pc19udWxsKAorICAgICAgICAgICAgUEFTX0FTU0VSVChwYXNf
Y29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfaXNfbnVsbCgKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICZyZXN1bHQtPm5leHRfZm9yX2hlYXApKTsKLSAgICAg
ICAgICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9y
eV9wdHJfc3RvcmUoCisgICAgICAgICAgICBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeV9wdHJfc3RvcmUoCiAgICAgICAgICAgICAgICAgJnJlc3VsdC0+bmV4dF9m
b3JfaGVhcCwKLSAgICAgICAgICAgICAgICBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9n
bG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWQoCisgICAgICAgICAgICAgICAgcGFzX2NvbXBh
Y3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWQoCiAgICAgICAgICAg
ICAgICAgICAgICZoZWFwLT5iYXNpY19zaXplX2RpcmVjdG9yeV9hbmRfaGVhZCkpOwotICAgICAg
ICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
X3B0cl9zdG9yZSgKKyAgICAgICAgICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5X3B0cl9zdG9yZSgKICAgICAgICAgICAgICAgICAmaGVhcC0+YmFzaWNfc2l6
ZV9kaXJlY3RvcnlfYW5kX2hlYWQsIHJlc3VsdCk7CiAgICAgICAgICAgICByZXN1bHQtPmJhc2Uu
aXNfYmFzaWNfc2l6ZV9kaXJlY3RvcnkgPSB0cnVlOwogICAgICAgICB9IGVsc2UgewpAQCAtMTE3
Miw3ICsxMTc1LDcgQEAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1cmVfc2l6ZV9kaXJlY3Rvcgog
ICAgIAogICAgICAgICBpZiAoaW5kZXggPCBoZWFwLT5zbWFsbF9pbmRleF91cHBlcl9ib3VuZCkg
ewogICAgICAgICAgICAgc2l6ZV90IGNhbmRpZGF0ZV9pbmRleDsKLSAgICAgICAgICAgIHBhc19j
b21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHIqIGluZGV4
X3RvX3NtYWxsX3NpemVfZGlyZWN0b3J5OworICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWlj
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyKiBpbmRleF90b19zbWFsbF9zaXplX2RpcmVj
dG9yeTsKICAgICAgICAgICAgIHBhc19hbGxvY2F0b3JfaW5kZXgqIGluZGV4X3RvX3NtYWxsX2Fs
bG9jYXRvcl9pbmRleDsKIAogICAgICAgICAgICAgaWYgKHZlcmJvc2UpIHsKQEAgLTExODMsNyAr
MTE4Niw3IEBAIHBhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJlX3NpemVfZGlyZWN0b3IKICAgICAg
ICAgICAgIGluZGV4X3RvX3NtYWxsX3NpemVfZGlyZWN0b3J5ID0gaGVhcC0+aW5kZXhfdG9fc21h
bGxfc2l6ZV9kaXJlY3Rvcnk7CiAgICAgICAgICAgICBpbmRleF90b19zbWFsbF9hbGxvY2F0b3Jf
aW5kZXggPSBoZWFwLT5pbmRleF90b19zbWFsbF9hbGxvY2F0b3JfaW5kZXg7CiAgICAgICAgIAot
ICAgICAgICAgICAgUEFTX0FTU0VSVChwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2lzX251bGwoCisgICAgICAgICAgICBQQVNfQVNTRVJUKHBh
c19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9pc19udWxsKAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXhfdG9fc21hbGxfc2l6ZV9kaXJlY3Rvcnkg
KyBpbmRleCkpOwogICAgICAgICAgICAgaWYgKCFpc191dGlsaXR5KQogICAgICAgICAgICAgICAg
IFBBU19BU1NFUlQoaW5kZXhfdG9fc21hbGxfYWxsb2NhdG9yX2luZGV4W2luZGV4XSA9PSAocGFz
X2FsbG9jYXRvcl9pbmRleClVSU5UX01BWCk7CkBAIC0xMTk3LDEyICsxMjAwLDEyIEBAIHBhc19z
ZWdyZWdhdGVkX2hlYXBfZW5zdXJlX3NpemVfZGlyZWN0b3IKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbmRpZGF0ZV9pbmRleCwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpj
b25maWcpIDw9IG9iamVjdF9zaXplKTsKICAgICAgICAgICAgICAgICAgKytjYW5kaWRhdGVfaW5k
ZXgpIHsKLSAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnkqIGNhbmRpZGF0ZTsKKyAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeSogY2FuZGlkYXRlOwogCiAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAg
ICAgICAgICAgICAgIHBhc19sb2coIkluc3RhbGxpbmcgYXQgaW5kZXggY2FuZGlkYXRlX2luZGV4
ID0gJXp1LlxuIiwgY2FuZGlkYXRlX2luZGV4KTsKICAgICAgICAgICAgIAotICAgICAgICAgICAg
ICAgIGNhbmRpZGF0ZSA9IHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXpl
X2RpcmVjdG9yeV9wdHJfbG9hZCgKKyAgICAgICAgICAgICAgICBjYW5kaWRhdGUgPSBwYXNfY29t
cGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZCgKICAgICAgICAg
ICAgICAgICAgICAgaW5kZXhfdG9fc21hbGxfc2l6ZV9kaXJlY3RvcnkgKyBjYW5kaWRhdGVfaW5k
ZXgpOwogICAgICAgICAgICAgICAgIGlmIChjYW5kaWRhdGUpIHsKICAgICAgICAgICAgICAgICAg
ICAgaWYgKHZlcmJvc2UpCkBAIC0xMjE1LDcgKzEyMTgsNyBAQCBwYXNfc2VncmVnYXRlZF9oZWFw
X2Vuc3VyZV9zaXplX2RpcmVjdG9yCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdh
dGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfc3RvcmUoCisgICAgICAgICAgICAgICAgcGFz
X2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX3N0b3JlKAogICAg
ICAgICAgICAgICAgICAgICBoZWFwLT5pbmRleF90b19zbWFsbF9zaXplX2RpcmVjdG9yeSArIGNh
bmRpZGF0ZV9pbmRleCwgcmVzdWx0KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtMTI1
Nyw3ICsxMjYwLDcgQEAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1cmVfc2l6ZV9kaXJlY3Rvcgog
ICAgICAgICAgICAgICAgIHBhc19sb2NrX2lzX2hlbGQpOwogICAgICAgICAKICAgICAgICAgICAg
IGlmIChuZXh0X3R1cGxlICYmCi0gICAgICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3Nl
Z3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKAorICAgICAgICAgICAgICAg
IHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKAog
ICAgICAgICAgICAgICAgICAgICAmbmV4dF90dXBsZS0+ZGlyZWN0b3J5KSA9PSByZXN1bHQpIHsK
ICAgICAgICAgICAgICAgICBzaXplX3QgYmVnaW5faW5kZXg7CiAgICAgICAgICAgICAgICAgYmVn
aW5faW5kZXggPSBQQVNfTUlOKGluZGV4LCAoc2l6ZV90KW5leHRfdHVwbGUtPmJlZ2luX2luZGV4
KTsKQEAgLTEyODgsNyArMTI5MSw3IEBAIHBhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJlX3NpemVf
ZGlyZWN0b3IKICAgICAgICAgICAgICAgICAgICAgICAgb25lLiAqLwogICAgICAgICAgICAgICAg
ICAgICBQQVNfQVNTRVJUKAogICAgICAgICAgICAgICAgICAgICAgICAgb2JqZWN0X3NpemUgPAot
ICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xv
YmFsX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKAorICAgICAgICAgICAgICAgICAgICAgICAgcGFz
X2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWQoCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJm5leHRfdHVwbGUtPmRpcmVjdG9yeSktPm9iamVjdF9z
aXplKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICBQQVNfQVNTRVJUKG5leHRf
dHVwbGUgLSBtZWRpdW1fZGlyZWN0b3JpZXMKQEAgLTEzNDQsNyArMTM0Nyw3IEBAIHBhc19zZWdy
ZWdhdGVkX2hlYXBfZW5zdXJlX3NpemVfZGlyZWN0b3IKICAgICAgICAgICAgICAgICBQQVNfQVNT
RVJUKChwYXNfc2VncmVnYXRlZF9oZWFwX21lZGl1bV9kaXJlY3RvcnlfaW5kZXgpbWVkaXVtX2lu
c3RhbGxfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgID09IG1lZGl1bV9pbnN0YWxs
X2luZGV4KTsKICAgICAgICAgICAgICAgICBtZWRpdW1fZGlyZWN0b3J5ID0gbWVkaXVtX2RpcmVj
dG9yaWVzICsgdHVwbGVfaW5zZXJ0aW9uX2luZGV4OwotICAgICAgICAgICAgICAgIHBhc19jb21w
YWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfc3RvcmUoCisg
ICAgICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnlfcHRyX3N0b3JlKAogICAgICAgICAgICAgICAgICAgICAmbWVkaXVtX2RpcmVjdG9yeS0+ZGly
ZWN0b3J5LCByZXN1bHQpOwogICAgICAgICAgICAgICAgIG1lZGl1bV9kaXJlY3RvcnktPmFsbG9j
YXRvcl9pbmRleCA9IChwYXNfYWxsb2NhdG9yX2luZGV4KVVJTlRfTUFYOwogCkBAIC0xMzgwLDE3
ICsxMzgzLDE3IEBAIHNpemVfdCBwYXNfc2VncmVnYXRlZF9oZWFwX2dldF9udW1fZnJlZV8KICAg
ICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9jb21wdXRlX3N1bW1hcnkoaGVhcCkuZnJlZTsK
IH0KIAotYm9vbCBwYXNfc2VncmVnYXRlZF9oZWFwX2Zvcl9lYWNoX2dsb2JhbF9zaXplX2RpcmVj
dG9yeSgKK2Jvb2wgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9mb3JfZWFjaF9zaXplX2RpcmVjdG9yeSgK
ICAgICBwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLAotICAgIHBhc19zZWdyZWdhdGVkX2hlYXBf
Zm9yX2VhY2hfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2NhbGxiYWNrIGNhbGxiYWNrLAorICAgIHBh
c19zZWdyZWdhdGVkX2hlYXBfZm9yX2VhY2hfc2l6ZV9kaXJlY3RvcnlfY2FsbGJhY2sgY2FsbGJh
Y2ssCiAgICAgdm9pZCAqYXJnKQogewotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2Rp
cmVjdG9yeSogZGlyZWN0b3J5OworICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBk
aXJlY3Rvcnk7CiAKLSAgICBmb3IgKGRpcmVjdG9yeSA9IHBhc19jb21wYWN0X2F0b21pY19zZWdy
ZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZCgKKyAgICBmb3IgKGRpcmVjdG9y
eSA9IHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2Fk
KAogICAgICAgICAgICAgICZoZWFwLT5iYXNpY19zaXplX2RpcmVjdG9yeV9hbmRfaGVhZCk7CiAg
ICAgICAgICBkaXJlY3Rvcnk7Ci0gICAgICAgICBkaXJlY3RvcnkgPSBwYXNfY29tcGFjdF9hdG9t
aWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWQoCisgICAgICAgICBk
aXJlY3RvcnkgPSBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9w
dHJfbG9hZCgKICAgICAgICAgICAgICAmZGlyZWN0b3J5LT5uZXh0X2Zvcl9oZWFwKSkgewogICAg
ICAgICBpZiAoIWNhbGxiYWNrKGhlYXAsIGRpcmVjdG9yeSwgYXJnKSkKICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKQEAgLTE0MDcsNyArMTQxMCw3IEBAIHR5cGVkZWYgc3RydWN0IHsKIAogc3Rh
dGljIGJvb2wgZm9yX2VhY2hfY29tbWl0dGVkX3NpemVfZGlyZWN0b3J5X2NhbGxiYWNrKAogICAg
IHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXAsCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3Np
emVfZGlyZWN0b3J5KiBzaXplX2RpcmVjdG9yeSwKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeSogc2l6ZV9kaXJlY3RvcnksCiAgICAgdm9pZCogYXJnKQogewogICAgIGZvcl9lYWNo
X2NvbW1pdHRlZF9wYWdlX2RhdGEqIGRhdGE7CkBAIC0xNDM4LDcgKzE0NDEsNyBAQCBib29sIHBh
c19zZWdyZWdhdGVkX2hlYXBfZm9yX2VhY2hfY29tbWl0CiAgICAgZGF0YS5oZWFwID0gaGVhcDsK
ICAgICBkYXRhLmNhbGxiYWNrID0gY2FsbGJhY2s7CiAgICAgZGF0YS5hcmcgPSBhcmc7Ci0gICAg
cmV0dXJuIHBhc19zZWdyZWdhdGVkX2hlYXBfZm9yX2VhY2hfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
KAorICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9oZWFwX2Zvcl9lYWNoX3NpemVfZGlyZWN0b3J5
KAogICAgICAgICBoZWFwLAogICAgICAgICBmb3JfZWFjaF9jb21taXR0ZWRfc2l6ZV9kaXJlY3Rv
cnlfY2FsbGJhY2ssCiAgICAgICAgICZkYXRhKTsKQEAgLTE0NTEsNyArMTQ1NCw3IEBAIHR5cGVk
ZWYgc3RydWN0IHsKIH0gZm9yX2VhY2hfdmlld19pbmRleF9kYXRhOwogCiBzdGF0aWMgYm9vbCBm
b3JfZWFjaF92aWV3X2luZGV4X2RpcmVjdG9yeV9jYWxsYmFjayhwYXNfc2VncmVnYXRlZF9oZWFw
KiBoZWFwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBzaXplX2RpcmVjdG9yeSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBzaXplX2RpcmVjdG9yeSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQqIGFyZykKIHsKICAgICBm
b3JfZWFjaF92aWV3X2luZGV4X2RhdGEqIGRhdGE7CkBAIC0xNDgxLDcgKzE0ODQsNyBAQCBib29s
IHBhc19zZWdyZWdhdGVkX2hlYXBfZm9yX2VhY2hfdmlld19pCiAgICAgZGF0YS5oZWFwID0gaGVh
cDsKICAgICBkYXRhLmNhbGxiYWNrID0gY2FsbGJhY2s7CiAgICAgZGF0YS5hcmcgPSBhcmc7Ci0g
ICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX2hlYXBfZm9yX2VhY2hfZ2xvYmFsX3NpemVfZGlyZWN0
b3J5KAorICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9oZWFwX2Zvcl9lYWNoX3NpemVfZGlyZWN0
b3J5KAogICAgICAgICBoZWFwLAogICAgICAgICBmb3JfZWFjaF92aWV3X2luZGV4X2RpcmVjdG9y
eV9jYWxsYmFjaywKICAgICAgICAgJmRhdGEpOwpAQCAtMTQ5Myw3ICsxNDk2LDcgQEAgdHlwZWRl
ZiBzdHJ1Y3QgewogICAgIHZvaWQqIGFyZzsKIH0gZm9yX2VhY2hfbGl2ZV9vYmplY3RfZGF0YTsK
IAotc3RhdGljIGJvb2wgZm9yX2VhY2hfbGl2ZV9vYmplY3Rfb2JqZWN0X2NhbGxiYWNrKHBhc19z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAorc3RhdGljIGJvb2wg
Zm9yX2VhY2hfbGl2ZV9vYmplY3Rfb2JqZWN0X2NhbGxiYWNrKHBhc19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5KiBkaXJlY3RvcnksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3LAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnRwdHJfdCBiZWdpbiwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkKiBhcmcpCkBA
IC0xNTA1LDExICsxNTA4LDExIEBAIHN0YXRpYyBib29sIGZvcl9lYWNoX2xpdmVfb2JqZWN0X29i
amVjdF8KIAogc3RhdGljIGJvb2wgZm9yX2VhY2hfbGl2ZV9vYmplY3RfZGlyZWN0b3J5X2NhbGxi
YWNrKAogICAgIHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXAsCi0gICAgcGFzX3NlZ3JlZ2F0ZWRf
Z2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKICAgICB2b2lkKiBhcmcpCiB7CiAgICAgUEFTX1VOVVNF
RF9QQVJBTShoZWFwKTsKLSAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGly
ZWN0b3J5X2Zvcl9lYWNoX2xpdmVfb2JqZWN0KAorICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeV9mb3JfZWFjaF9saXZlX29iamVjdCgKICAgICAgICAgZGlyZWN0b3J5LAog
ICAgICAgICBmb3JfZWFjaF9saXZlX29iamVjdF9vYmplY3RfY2FsbGJhY2ssCiAgICAgICAgIGFy
Zyk7CkBAIC0xNTQzLDcgKzE1NDYsNyBAQCBib29sIHBhc19zZWdyZWdhdGVkX2hlYXBfZm9yX2Vh
Y2hfbGl2ZV9vCiAgICAgZGF0YS5jYWxsYmFjayA9IGNhbGxiYWNrOwogICAgIGRhdGEuYXJnID0g
YXJnOwogICAgIAotICAgIGlmICghcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9mb3JfZWFjaF9nbG9iYWxf
c2l6ZV9kaXJlY3RvcnkoCisgICAgaWYgKCFwYXNfc2VncmVnYXRlZF9oZWFwX2Zvcl9lYWNoX3Np
emVfZGlyZWN0b3J5KAogICAgICAgICAgICAgaGVhcCwKICAgICAgICAgICAgIGZvcl9lYWNoX2xp
dmVfb2JqZWN0X2RpcmVjdG9yeV9jYWxsYmFjaywKICAgICAgICAgICAgICZkYXRhKSkKQEAgLTE1
NjUsNyArMTU2OCw3IEBAIHR5cGVkZWYgc3RydWN0IHsKIAogc3RhdGljIGJvb2wgbnVtX2NvbW1p
dHRlZF92aWV3c19kaXJlY3RvcnlfY2FsbGJhY2soCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCog
aGVhcCwKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9y
eSwKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAogICAgIHZv
aWQqIGFyZykKIHsKICAgICBudW1fY29tbWl0dGVkX3ZpZXdzX2RhdGEqIGRhdGE7CkBAIC0xNTg1
LDcgKzE1ODgsNyBAQCBzaXplX3QgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9udW1fY29tbWl0dGVkCiAK
ICAgICBkYXRhLnJlc3VsdCA9IDA7CiAgICAgCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9mb3Jf
ZWFjaF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkoCisgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9mb3Jf
ZWFjaF9zaXplX2RpcmVjdG9yeSgKICAgICAgICAgaGVhcCwgbnVtX2NvbW1pdHRlZF92aWV3c19k
aXJlY3RvcnlfY2FsbGJhY2ssICZkYXRhKTsKICAgICAKICAgICByZXR1cm4gZGF0YS5yZXN1bHQ7
CkBAIC0xNTk3LDcgKzE2MDAsNyBAQCB0eXBlZGVmIHN0cnVjdCB7CiAKIHN0YXRpYyBib29sIG51
bV9lbXB0eV92aWV3c19kaXJlY3RvcnlfY2FsbGJhY2soCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVh
cCogaGVhcCwKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVj
dG9yeSwKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAogICAg
IHZvaWQqIGFyZykKIHsKICAgICBudW1fZW1wdHlfdmlld3NfZGF0YSogZGF0YTsKQEAgLTE2MTcs
NyArMTYyMCw3IEBAIHNpemVfdCBwYXNfc2VncmVnYXRlZF9oZWFwX251bV9lbXB0eV92aWUKIAog
ICAgIGRhdGEucmVzdWx0ID0gMDsKICAgICAKLSAgICBwYXNfc2VncmVnYXRlZF9oZWFwX2Zvcl9l
YWNoX2dsb2JhbF9zaXplX2RpcmVjdG9yeSgKKyAgICBwYXNfc2VncmVnYXRlZF9oZWFwX2Zvcl9l
YWNoX3NpemVfZGlyZWN0b3J5KAogICAgICAgICBoZWFwLCBudW1fZW1wdHlfdmlld3NfZGlyZWN0
b3J5X2NhbGxiYWNrLCAmZGF0YSk7CiAgICAgCiAgICAgcmV0dXJuIGRhdGEucmVzdWx0OwpAQCAt
MTYyOSw3ICsxNjMyLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgewogCiBzdGF0aWMgYm9vbCBudW1fZW1w
dHlfZ3JhbnVsZXNfZGlyZWN0b3J5X2NhbGxiYWNrKAogICAgIHBhc19zZWdyZWdhdGVkX2hlYXAq
IGhlYXAsCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rv
cnksCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKICAgICB2
b2lkKiBhcmcpCiB7CiAgICAgbnVtX2VtcHR5X2dyYW51bGVzX2RhdGEqIGRhdGE7CkBAIC0xNjQ5
LDcgKzE2NTIsNyBAQCBzaXplX3QgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9udW1fZW1wdHlfZ3JhCiAK
ICAgICBkYXRhLnJlc3VsdCA9IDA7CiAKLSAgICBwYXNfc2VncmVnYXRlZF9oZWFwX2Zvcl9lYWNo
X2dsb2JhbF9zaXplX2RpcmVjdG9yeSgKKyAgICBwYXNfc2VncmVnYXRlZF9oZWFwX2Zvcl9lYWNo
X3NpemVfZGlyZWN0b3J5KAogICAgICAgICBoZWFwLCBudW1fZW1wdHlfZ3JhbnVsZXNfZGlyZWN0
b3J5X2NhbGxiYWNrLCAmZGF0YSk7CiAKICAgICByZXR1cm4gZGF0YS5yZXN1bHQ7CkBAIC0xNjYx
LDcgKzE2NjQsNyBAQCB0eXBlZGVmIHN0cnVjdCB7CiAKIHN0YXRpYyBib29sIG51bV92aWV3c19k
aXJlY3RvcnlfY2FsbGJhY2soCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwKLSAgICBw
YXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKKyAgICBwYXNf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAogICAgIHZvaWQqIGFyZykKIHsK
ICAgICBudW1fdmlld3NfZGF0YSogZGF0YTsKQEAgLTE2ODEsNyArMTY4NCw3IEBAIHNpemVfdCBw
YXNfc2VncmVnYXRlZF9oZWFwX251bV92aWV3cyhwYXMKICAgICAKICAgICBkYXRhLnJlc3VsdCA9
IDA7CiAgICAgCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9mb3JfZWFjaF9nbG9iYWxfc2l6ZV9k
aXJlY3RvcnkoCisgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9mb3JfZWFjaF9zaXplX2RpcmVjdG9y
eSgKICAgICAgICAgaGVhcCwgbnVtX3ZpZXdzX2RpcmVjdG9yeV9jYWxsYmFjaywgJmRhdGEpOwog
ICAgIAogICAgIHJldHVybiBkYXRhLnJlc3VsdDsKQEAgLTE2ODksNyArMTY5Miw3IEBAIHNpemVf
dCBwYXNfc2VncmVnYXRlZF9oZWFwX251bV92aWV3cyhwYXMKIAogc3RhdGljIGJvb2wgY29tcHV0
ZV9zdW1tYXJ5X2RpcmVjdG9yeV9jYWxsYmFjaygKICAgICBwYXNfc2VncmVnYXRlZF9oZWFwKiBo
ZWFwLAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5
LAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCiAgICAgdm9p
ZCogYXJnKQogewogICAgIHBhc19oZWFwX3N1bW1hcnkqIHN1bW1hcnk7CkBAIC0xNzEyLDcgKzE3
MTUsNyBAQCBwYXNfaGVhcF9zdW1tYXJ5IHBhc19zZWdyZWdhdGVkX2hlYXBfY29tCiAgICAgCiAg
ICAgcmVzdWx0ID0gcGFzX2hlYXBfc3VtbWFyeV9jcmVhdGVfZW1wdHkoKTsKICAgICAKLSAgICBw
YXNfc2VncmVnYXRlZF9oZWFwX2Zvcl9lYWNoX2dsb2JhbF9zaXplX2RpcmVjdG9yeSgKKyAgICBw
YXNfc2VncmVnYXRlZF9oZWFwX2Zvcl9lYWNoX3NpemVfZGlyZWN0b3J5KAogICAgICAgICBoZWFw
LCBjb21wdXRlX3N1bW1hcnlfZGlyZWN0b3J5X2NhbGxiYWNrLCAmcmVzdWx0KTsKIAogICAgIGJp
dGZpdF9oZWFwID0gcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9oZWFwX3B0cl9sb2FkKCZoZWFw
LT5iaXRmaXRfaGVhcCk7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfc2VncmVnYXRlZF9oZWFwLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfaGVhcC5oCShyZXZpc2lvbiAyNzk5NjQpCisrKyBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9oZWFwLmgJKHdv
cmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChjKSAyMDE4LTIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChjKSAyMDE4
LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0yOSw3ICsyOSw3IEBACiAjaW5jbHVkZSAicGFzX2FsbG9jYXRvcl9z
Y2F2ZW5nZV9hY3Rpb24uaCIKICNpbmNsdWRlICJwYXNfY29tcGFjdF9hdG9taWNfYWxsb2NhdG9y
X2luZGV4X3B0ci5oIgogI2luY2x1ZGUgInBhc19jb21wYWN0X2F0b21pY19wdHIuaCIKLSNpbmNs
dWRlICJwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnlf
cHRyLmgiCisjaW5jbHVkZSAicGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnlfcHRyLmgiCiAjaW5jbHVkZSAicGFzX2NvbXBhY3RfaGVhcF9wdHIuaCIKICNpbmNsdWRl
ICJwYXNfY29uZmlnLmgiCiAjaW5jbHVkZSAicGFzX2NvdW50X2xvb2t1cF9tb2RlLmgiCkBAIC00
MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAicGFzX2xvY2FsX2FsbG9jYXRvci5oIgogI2luY2x1ZGUg
InBhc19tdXRhdGlvbl9jb3VudC5oIgogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2hlYXBfbG9v
a3VwX2tpbmQuaCIKKyNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9jcmVh
dGlvbl9tb2RlLmgiCiAjaW5jbHVkZSAicGFzX3BhZ2Vfc2hhcmluZ19tb2RlLmgiCiAjaW5jbHVk
ZSAicGFzX3NlZ3JlZ2F0ZWRfcGFnZS5oIgogCkBAIC01OCwxMiArNTksMTIgQEAgZW51bSBwYXNf
c2VncmVnYXRlZF9oZWFwX21lZGl1bV9zaXplX2RpcgogdHlwZWRlZiBlbnVtIHBhc19zZWdyZWdh
dGVkX2hlYXBfbWVkaXVtX3NpemVfZGlyZWN0b3J5X3NlYXJjaF9tb2RlIHBhc19zZWdyZWdhdGVk
X2hlYXBfbWVkaXVtX3NpemVfZGlyZWN0b3J5X3NlYXJjaF9tb2RlOwogCiBzdHJ1Y3QgcGFzX2hl
YXA7Ci1zdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5Oworc3RydWN0
IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5Owogc3RydWN0IHBhc19zZWdyZWdhdGVkX2hl
YXA7CiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9tZWRpdW1fZGlyZWN0b3J5X3R1cGxlOwog
c3RydWN0IHBhc19zZWdyZWdhdGVkX2hlYXBfcmFyZV9kYXRhOwogdHlwZWRlZiBzdHJ1Y3QgcGFz
X2hlYXAgcGFzX2hlYXA7Ci10eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnkgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5OwordHlwZWRl
ZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkgcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3Rvcnk7CiB0eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9oZWFwIHBhc19zZWdy
ZWdhdGVkX2hlYXA7CiB0eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9oZWFwX21lZGl1bV9k
aXJlY3RvcnlfdHVwbGUgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9tZWRpdW1fZGlyZWN0b3J5X3R1cGxl
OwogdHlwZWRlZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9yYXJlX2RhdGEgcGFzX3NlZ3Jl
Z2F0ZWRfaGVhcF9yYXJlX2RhdGE7CkBAIC03NiwxMiArNzcsMTIgQEAgc3RydWN0IHBhc19zZWdy
ZWdhdGVkX2hlYXAgewogICAgIHBhc19oZWFwX3J1bnRpbWVfY29uZmlnKiBydW50aW1lX2NvbmZp
ZzsKICAgICAKICAgICBwYXNfYWxsb2NhdG9yX2luZGV4KiBpbmRleF90b19zbWFsbF9hbGxvY2F0
b3JfaW5kZXg7Ci0gICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVf
ZGlyZWN0b3J5X3B0ciogaW5kZXhfdG9fc21hbGxfc2l6ZV9kaXJlY3Rvcnk7CisgICAgcGFzX2Nv
bXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyKiBpbmRleF90b19zbWFs
bF9zaXplX2RpcmVjdG9yeTsKIAogICAgIC8qIFRoaXMgaXMgdGhlIGhlYWQgb2YgdGhlIGxpbmtl
ZCBsaXN0IG9mIHNlZ3JlZ2F0ZWQgc2l6ZSBkaXJlY3Rvcmllcy4gQWxzbywgaWYgdGhlcmUgaXMK
ICAgICAgICBhIGJhc2ljIHNpemUgZGlyZWN0b3J5ICh0aGUgb25lIGZvciBpbmRleCA9PSAxIG9y
IGluZGV4ID09ICpjYWNoZWRfaW5kZXgpLCB0aGVuIGl0IHdpbGwKICAgICAgICBiZSBhdCB0aGUg
aGVhZCBvZiB0aGUgbGlzdCB3aXRoIHRoZSBpc19iYXNpY19zaXplX2RpcmVjdG9yeSBiaXQgc2V0
LiAqLwotICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVj
dG9yeV9wdHIgYmFzaWNfc2l6ZV9kaXJlY3RvcnlfYW5kX2hlYWQ7CisgICAgcGFzX2NvbXBhY3Rf
YXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyIGJhc2ljX3NpemVfZGlyZWN0b3J5
X2FuZF9oZWFkOwogICAgIAogICAgIHBhc19zZWdyZWdhdGVkX2hlYXBfcmFyZV9kYXRhX3B0ciBy
YXJlX2RhdGE7CiAKQEAgLTEwNiw3ICsxMDcsNyBAQCBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfaGVh
cF9tZWRpdW1fZGlyZWN0CiAgICAgLyogTk9URTogVGhpcyBkaXJlY3RvcnkgaXMgYWx3YXlzIGdv
aW5nIHRvIGJlIG1lZGl1bSBzaXplZCBiZWNhdXNlIHRoaXMgZGF0YSBzdHJ1Y3R1cmUgaXMgb25s
eQogICAgICAgIHVzZWQgZm9yIHNpemVzIHRoYXQgYXJlIGJleW9uZCB0aGUgbWF4IG9iamVjdCBz
aXplIGZvciBzbWFsbCBwYWdlcy4gQnV0IG5vYm9keSBzdHJvbmdseQogICAgICAgIHJlbGllcyBv
biB0aGF0IHByb3BlcnR5LiAqLwotICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeV9wdHIgZGlyZWN0b3J5OworICAgIHBhc19jb21wYWN0X2F0b21p
Y19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0ciBkaXJlY3Rvcnk7CiAKICAgICBwYXNfYWxs
b2NhdG9yX2luZGV4IGFsbG9jYXRvcl9pbmRleDsKICAgICAKQEAgLTE4OSw3ICsxOTAsNyBAQCBQ
QVNfQVBJIHVuc2lnbmVkIHBhc19zZWdyZWdhdGVkX2hlYXBfbWVkCiAgICAgcGFzX3NlZ3JlZ2F0
ZWRfaGVhcF9tZWRpdW1fc2l6ZV9kaXJlY3Rvcnlfc2VhcmNoX21vZGUgc2VhcmNoX21vZGUsCiAg
ICAgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUpOwogCi1QQVNfQVBJIHBh
c19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9t
ZWRpdW1fc2l6ZV9kaXJlY3RvcnlfZm9yX2luZGV4KAorUEFTX0FQSSBwYXNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeSogcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9tZWRpdW1fc2l6ZV9kaXJlY3Rvcnlf
Zm9yX2luZGV4KAogICAgIHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXAsCiAgICAgc2l6ZV90IGlu
ZGV4LAogICAgIHBhc19zZWdyZWdhdGVkX2hlYXBfbWVkaXVtX3NpemVfZGlyZWN0b3J5X3NlYXJj
aF9tb2RlIHNlYXJjaF9tb2RlLApAQCAtMjMxLDcgKzIzMiw3IEBAIHBhc19zZWdyZWdhdGVkX2hl
YXBfYWxsb2NhdG9yX2luZGV4X2Zvcl8KIFBBU19BUEkgdW5zaWduZWQKIHBhc19zZWdyZWdhdGVk
X2hlYXBfZW5zdXJlX2FsbG9jYXRvcl9pbmRleCgKICAgICBwYXNfc2VncmVnYXRlZF9oZWFwKiBo
ZWFwLAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5
LAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCiAgICAgc2l6
ZV90IGNvdW50LAogICAgIHBhc19jb3VudF9sb29rdXBfbW9kZSBjb3VudF9sb29rdXBfbW9kZSwK
ICAgICBwYXNfaGVhcF9jb25maWcqIGNvbmZpZywKQEAgLTI1NywyOSArMjU4LDMwIEBAIHBhc19z
ZWdyZWdhdGVkX2hlYXBfZW5zdXJlX2FsbG9jYXRvcl9pbmQKICAgIHBhc19zZWdyZWdhdGVkX2hl
YXBfZW5zdXJlX2FsbG9jYXRvcl9pbmRleF9mb3JfY291bnQuIE5lZWQgdG8gaG9sZCBoZWFwIGxv
Y2sgdG8KICAgIGNhbGwgdGhpcy4gT0sgdG8gcGFzcyBOVUxMIGZvciBjYWNoZWRfaW5kZXg7IG9u
bHkgcHJpbWl0aXZlX2hlYXBfcmVmJ3MgdXNlCiAgICB0aGF0LiAqLwotUEFTX0FQSSBwYXNfc2Vn
cmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqCitQQVNfQVBJIHBhc19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5KgogcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1cmVfc2l6ZV9kaXJlY3Rvcnlf
Zm9yX2NvdW50KAogICAgIHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXAsCiAgICAgc2l6ZV90IGNv
dW50LCBzaXplX3QgYWxpZ25tZW50LAogICAgIHBhc19jb3VudF9sb29rdXBfbW9kZSBjb3VudF9s
b29rdXBfbW9kZSwKICAgICBwYXNfaGVhcF9jb25maWcqIGNvbmZpZywKLSAgICB1bnNpZ25lZCog
Y2FjaGVkX2luZGV4KTsKKyAgICB1bnNpZ25lZCogY2FjaGVkX2luZGV4LAorICAgIHBhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5X2NyZWF0aW9uX21vZGUgY3JlYXRpb25fbW9kZSk7CiAKIFBB
U19BUEkgc2l6ZV90IHBhc19zZWdyZWdhdGVkX2hlYXBfZ2V0X251bV9mcmVlX2J5dGVzKHBhc19z
ZWdyZWdhdGVkX2hlYXAqIGhlYXApOwogCi10eXBlZGVmIGJvb2wgKCpwYXNfc2VncmVnYXRlZF9o
ZWFwX2Zvcl9lYWNoX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9jYWxsYmFjaykoCit0eXBlZGVmIGJv
b2wgKCpwYXNfc2VncmVnYXRlZF9oZWFwX2Zvcl9lYWNoX3NpemVfZGlyZWN0b3J5X2NhbGxiYWNr
KSgKICAgICBwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLAotICAgIHBhc19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5KiBkaXJlY3RvcnksCiAgICAgdm9pZCogYXJnKTsKIAotUEFTX0FQSSBib29sIHBh
c19zZWdyZWdhdGVkX2hlYXBfZm9yX2VhY2hfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KAorUEFTX0FQ
SSBib29sIHBhc19zZWdyZWdhdGVkX2hlYXBfZm9yX2VhY2hfc2l6ZV9kaXJlY3RvcnkoCiAgICAg
cGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwKLSAgICBwYXNfc2VncmVnYXRlZF9oZWFwX2Zvcl9l
YWNoX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9jYWxsYmFjayBjYWxsYmFjaywKKyAgICBwYXNfc2Vn
cmVnYXRlZF9oZWFwX2Zvcl9lYWNoX3NpemVfZGlyZWN0b3J5X2NhbGxiYWNrIGNhbGxiYWNrLAog
ICAgIHZvaWQqIGFyZyk7CiAKIHR5cGVkZWYgYm9vbCAoKnBhc19zZWdyZWdhdGVkX2hlYXBfZm9y
X2VhY2hfY29tbWl0dGVkX3ZpZXdfY2FsbGJhY2spKAogICAgIHBhc19zZWdyZWdhdGVkX2hlYXAq
IGhlYXAsCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rv
cnksCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKICAgICBw
YXNfc2VncmVnYXRlZF92aWV3IHZpZXcsCiAgICAgdm9pZCogYXJnKTsKIApAQCAtMjkwLDcgKzI5
Miw3IEBAIFBBU19BUEkgYm9vbCBwYXNfc2VncmVnYXRlZF9oZWFwX2Zvcl9lYWMKIAogdHlwZWRl
ZiBib29sICgqcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9mb3JfZWFjaF92aWV3X2luZGV4X2NhbGxiYWNr
KSgKICAgICBwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLAotICAgIHBhc19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5KiBkaXJlY3RvcnksCiAgICAgc2l6ZV90IGluZGV4LAogICAgIHBhc19zZWdyZWdh
dGVkX3ZpZXcgdmlld3AsCiAgICAgdm9pZCogYXJnKTsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2hlYXBfaW5saW5lcy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2hlYXBf
aW5saW5lcy5oCShyZXZpc2lvbiAyNzk5NjQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfc2VncmVnYXRlZF9oZWFwX2lubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAt
MjcsMjEgKzI3LDIxIEBACiAjZGVmaW5lIFBBU19TRUdSRUdBVEVEX0hFQVBfSU5MSU5FU19ICiAK
ICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9oZWFwLmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0
ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5LmgiCisjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnkuaCIKIAogUEFTX0JFR0lOX0VYVEVSTl9DOwogCi1zdGF0aWMgUEFTX0FMV0FZ
U19JTkxJTkUgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5Kgorc3RhdGljIFBB
U19BTFdBWVNfSU5MSU5FIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KgogcGFzX3NlZ3Jl
Z2F0ZWRfaGVhcF9zaXplX2RpcmVjdG9yeV9mb3JfaW5kZXgoCiAgICAgcGFzX3NlZ3JlZ2F0ZWRf
aGVhcCogaGVhcCwKICAgICBzaXplX3QgaW5kZXgsCiAgICAgdW5zaWduZWQqIGNhY2hlZF9pbmRl
eCkKIHsKLSAgICBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJl
Y3RvcnlfcHRyKiBpbmRleF90b19zaXplX2RpcmVjdG9yeTsKKyAgICBwYXNfY29tcGFjdF9hdG9t
aWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIqIGluZGV4X3RvX3NpemVfZGlyZWN0b3J5
OwogICAgIAogICAgIGlmIChpbmRleCA9PSAoY2FjaGVkX2luZGV4ID8gKmNhY2hlZF9pbmRleCA6
IDEpKSB7Ci0gICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogcmVz
dWx0OwotICAgICAgICByZXN1bHQgPSBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWQoCisgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5KiByZXN1bHQ7CisgICAgICAgIHJlc3VsdCA9IHBhc19jb21wYWN0X2F0b21pY19z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKAogICAgICAgICAgICAgJmhlYXAtPmJh
c2ljX3NpemVfZGlyZWN0b3J5X2FuZF9oZWFkKTsKICAgICAgICAgaWYgKHJlc3VsdCAmJiByZXN1
bHQtPmJhc2UuaXNfYmFzaWNfc2l6ZV9kaXJlY3RvcnkpCiAgICAgICAgICAgICByZXR1cm4gcmVz
dWx0OwpAQCAtNjEsMTAgKzYxLDEwIEBAIHBhc19zZWdyZWdhdGVkX2hlYXBfc2l6ZV9kaXJlY3Rv
cnlfZm9yX2kKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQogICAgIAotICAgIHJldHVybiBw
YXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2xv
YWQoaW5kZXhfdG9fc2l6ZV9kaXJlY3RvcnkgKyBpbmRleCk7CisgICAgcmV0dXJuIHBhc19jb21w
YWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKGluZGV4X3RvX3Np
emVfZGlyZWN0b3J5ICsgaW5kZXgpOwogfQogCi1zdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFz
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5Kgorc3RhdGljIFBBU19BTFdBWVNfSU5M
SU5FIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KgogcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9z
aXplX2RpcmVjdG9yeV9mb3JfY291bnQoCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwK
ICAgICBzaXplX3QgY291bnQsCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfc2VncmVnYXRlZF9wYWdlLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZS5jCShyZXZpc2lvbiAyNzk5NjQpCisr
KyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlLmMJ
KHdvcmtpbmcgY29weSkKQEAgLTQyLDcgKzQyLDcgQEAKICNpbmNsdWRlICJwYXNfcGFnZV9zaGFy
aW5nX3Bvb2wuaCIKICNpbmNsdWRlICJwYXNfcmFuZ2UuaCIKICNpbmNsdWRlICJwYXNfc2VncmVn
YXRlZF9wYWdlX2lubGluZXMuaCIKLSNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnkuaCIKKyNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeS5o
IgogI2luY2x1ZGUgInBhc191dGlsaXR5X2hlYXBfY29uZmlnLmgiCiAKIGRvdWJsZSBwYXNfc2Vn
cmVnYXRlZF9wYWdlX2V4dHJhX3dhc3RlYWdlX2hhbmRpY2FwX2Zvcl9jb25maWdfdmFyaWFudFsK
QEAgLTU1LDE1ICs1NSwxMyBAQCBQQVNfQVBJIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9sb2Nr
X3dpCiAgICAgcGFzX2xvY2sqKiBoZWxkX2xvY2ssCiAgICAgcGFzX2xvY2sqIGxvY2tfcHRyKQog
ewotICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKLSAgICAKICAgICBwYXNf
bG9ja19sb2NrKGxvY2tfcHRyKTsKICAgICAKICAgICBpZiAobG9ja19wdHIgPT0gcGFnZS0+bG9j
a19wdHIpIHsKICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlldyBvd25lcjsKIAogICAgICAgICBv
d25lciA9IHBhZ2UtPm93bmVyOwotICAgICAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19l
eGNsdXNpdmVfaXNoKG93bmVyKSkgeworICAgICAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfdmlld19p
c19zb21lX2V4Y2x1c2l2ZShvd25lcikpIHsKICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2V4
Y2x1c2l2ZV92aWV3KiBleGNsdXNpdmU7CiAgICAgICAgICAgICBwYXNfbG9jayogZmFsbGJhY2tf
bG9jazsKICAgICAgICAgICAgIApAQCAtNzQsMTMgKzcyLDYgQEAgUEFTX0FQSSBib29sIHBhc19z
ZWdyZWdhdGVkX3BhZ2VfbG9ja193aQogICAgICAgICAgICAgZmFsbGJhY2tfbG9jayA9ICZleGNs
dXNpdmUtPm93bmVyc2hpcF9sb2NrOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAobG9j
a19wdHIgIT0gZmFsbGJhY2tfbG9jaykgewotICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKQot
ICAgICAgICAgICAgICAgICAgICBwYXNfbG9nKCJUcmlnZ2VyaW5nIGV4cGxvc2lvbi5cbiIpOwot
ICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeV9zZXRfY29udGVudGlvbl9kaWRfdHJpZ2dlcl9leHBsb3Npb24oCi0gICAg
ICAgICAgICAgICAgICAgIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0
b3J5X3B0cl9sb2FkKCZleGNsdXNpdmUtPmRpcmVjdG9yeSksCi0gICAgICAgICAgICAgICAgICAg
IHRydWUpOwotICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIHBhc19sb2NrX2xvY2so
ZmFsbGJhY2tfbG9jayk7CiAgICAgICAgICAgICAgICAgcGFnZS0+bG9ja19wdHIgPSBmYWxsYmFj
a19sb2NrOwogICAgICAgICAgICAgICAgIHBhc19sb2NrX3VubG9jayhsb2NrX3B0cik7CkBAIC0x
MjAsMTAgKzExMSwxMCBAQCBwYXNfbG9jayogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9zd2l0Y2hfbG9j
CiAgICAgUEFTX0FTU0VSVCghIlNob3VsZCBub3QgYmUgcmVhY2hlZCIpOwogfQogCi12b2lkIHBh
c19zZWdyZWdhdGVkX3BhZ2Vfc3dpdGNoX2xvY2tfYW5kX3JlYmlhc190b19tYWdhemluZV93aGls
ZV9pbmVsaWdpYmxlX2ltcGwoCit2b2lkIHBhc19zZWdyZWdhdGVkX3BhZ2Vfc3dpdGNoX2xvY2tf
YW5kX3JlYmlhc193aGlsZV9pbmVsaWdpYmxlX2ltcGwoCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZSogcGFnZSwKICAgICBwYXNfbG9jayoqIGhlbGRfbG9jaywKLSAgICBwYXNfbWFnYXppbmUqIG1h
Z2F6aW5lKQorICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbm9kZSogY2FjaGVfbm9kZSkKIHsK
ICAgICBmb3IgKDs7KSB7CiAgICAgICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgb3duZXI7CkBAIC0x
MzQsMTQgKzEyNSwxNCBAQCB2b2lkIHBhc19zZWdyZWdhdGVkX3BhZ2Vfc3dpdGNoX2xvY2tfYW5k
CiAgICAgCiAgICAgICAgIHBhZ2VfbG9jayA9IHBhZ2UtPmxvY2tfcHRyOwogCi0gICAgICAgIGlm
ICgqaGVsZF9sb2NrID09IHBhZ2VfbG9jayAmJiAqaGVsZF9sb2NrID09ICZtYWdhemluZS0+bG9j
aykgeworICAgICAgICBpZiAoKmhlbGRfbG9jayA9PSBwYWdlX2xvY2sgJiYgKmhlbGRfbG9jayA9
PSAmY2FjaGVfbm9kZS0+cGFnZV9sb2NrKSB7CiAgICAgICAgICAgICBwYXNfY29tcGlsZXJfZmVu
Y2UoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCiAgICAgICAgIG93bmVyID0g
cGFnZS0+b3duZXI7CiAKLSAgICAgICAgaWYgKCFwYXNfc2VncmVnYXRlZF92aWV3X2lzX2V4Y2x1
c2l2ZV9pc2gob3duZXIpIHx8ICFtYWdhemluZSkgeworICAgICAgICBpZiAoIXBhc19zZWdyZWdh
dGVkX3ZpZXdfaXNfc29tZV9leGNsdXNpdmUob3duZXIpIHx8ICFjYWNoZV9ub2RlKSB7CiAgICAg
ICAgICAgICBwYXNfbG9ja19zd2l0Y2goaGVsZF9sb2NrLCBwYWdlX2xvY2spOwogICAgICAgICAg
ICAgaWYgKHBhZ2UtPmxvY2tfcHRyICE9IHBhZ2VfbG9jaykKICAgICAgICAgICAgICAgICBjb250
aW51ZTsKQEAgLTE0OSwxNCArMTQwLDE0IEBAIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9zd2l0
Y2hfbG9ja19hbmQKICAgICAgICAgfQogCiAgICAgICAgIGRpZF9sb2NrX3F1aWNrbHkgPQotICAg
ICAgICAgICAgKCpoZWxkX2xvY2sgPT0gJm1hZ2F6aW5lLT5sb2NrICYmIHBhc19sb2NrX3RyeV9s
b2NrKHBhZ2VfbG9jaykpIHx8Ci0gICAgICAgICAgICAoKmhlbGRfbG9jayA9PSBwYWdlX2xvY2sg
JiYgcGFzX2xvY2tfdHJ5X2xvY2soJm1hZ2F6aW5lLT5sb2NrKSk7CisgICAgICAgICAgICAoKmhl
bGRfbG9jayA9PSAmY2FjaGVfbm9kZS0+cGFnZV9sb2NrICYmIHBhc19sb2NrX3RyeV9sb2NrKHBh
Z2VfbG9jaykpIHx8CisgICAgICAgICAgICAoKmhlbGRfbG9jayA9PSBwYWdlX2xvY2sgJiYgcGFz
X2xvY2tfdHJ5X2xvY2soJmNhY2hlX25vZGUtPnBhZ2VfbG9jaykpOwogCiAgICAgICAgIGlmICgh
ZGlkX2xvY2tfcXVpY2tseSkgewogICAgICAgICAgICAgaWYgKCpoZWxkX2xvY2spCiAgICAgICAg
ICAgICAgICAgcGFzX2xvY2tfdW5sb2NrKCpoZWxkX2xvY2spOwogCi0gICAgICAgICAgICBpZiAo
Jm1hZ2F6aW5lLT5sb2NrID09IHBhZ2VfbG9jaykgeworICAgICAgICAgICAgaWYgKCZjYWNoZV9u
b2RlLT5wYWdlX2xvY2sgPT0gcGFnZV9sb2NrKSB7CiAgICAgICAgICAgICAgICAgcGFzX2xvY2tf
bG9jayhwYWdlX2xvY2spOwogICAgICAgICAgICAgICAgICpoZWxkX2xvY2sgPSBwYWdlX2xvY2s7
CiAgICAgICAgICAgICAgICAgaWYgKHBhZ2UtPmxvY2tfcHRyICE9IHBhZ2VfbG9jaykKQEAgLTE2
OCwyNiArMTU5LDI3IEBAIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9zd2l0Y2hfbG9ja19hbmQK
IAogICAgICAgICAgICAgLyogVGhpcyBlbmZvcmNlcyB0aGF0OgogICAgICAgICAgICAgICAgCi0g
ICAgICAgICAgICAgICAtIE1hZ2F6aW5lIGxvY2tzIG11c3QgYmUgYWNxdWlyZWQgYmVmb3JlIHBh
Z2UgbG9ja3MuCisgICAgICAgICAgICAgICAtIENhY2hlIG5vZGUgcGFnZSBsb2NrcyBtdXN0IGJl
IGFjcXVpcmVkIGJlZm9yZSBwYWdlIGxvY2tzLgogICAgICAgICAgICAgICAgCi0gICAgICAgICAg
ICAgICAtIE1hZ2F6aW5lIGxvY2tzIGFyZSBhY3F1aXJlZCBpbiBwb2ludGVyLWFzLWludGVnZXIg
b3JkZXIgcmVsYXRpdmUgdG8gb25lIGFub3RoZXIuICovCi0gICAgICAgICAgICBpZiAoJmV4Y2x1
c2l2ZS0+b3duZXJzaGlwX2xvY2sgPT0gcGFnZV9sb2NrIHx8ICZtYWdhemluZS0+bG9jayA8IHBh
Z2VfbG9jaykgewotICAgICAgICAgICAgICAgIHBhc19sb2NrX2xvY2soJm1hZ2F6aW5lLT5sb2Nr
KTsKKyAgICAgICAgICAgICAgIC0gQ2FjaGUgbm9kZSBwYWdlIGxvY2tzIGFyZSBhY3F1aXJlZCBp
biBwb2ludGVyLWFzLWludGVnZXIgb3JkZXIgcmVsYXRpdmUgdG8gb25lCisgICAgICAgICAgICAg
ICAgIGFub3RoZXIuICovCisgICAgICAgICAgICBpZiAoJmV4Y2x1c2l2ZS0+b3duZXJzaGlwX2xv
Y2sgPT0gcGFnZV9sb2NrIHx8ICZjYWNoZV9ub2RlLT5wYWdlX2xvY2sgPCBwYWdlX2xvY2spIHsK
KyAgICAgICAgICAgICAgICBwYXNfbG9ja19sb2NrKCZjYWNoZV9ub2RlLT5wYWdlX2xvY2spOwog
ICAgICAgICAgICAgICAgIHBhc19sb2NrX2xvY2socGFnZV9sb2NrKTsKICAgICAgICAgICAgIH0g
ZWxzZSB7CiAgICAgICAgICAgICAgICAgcGFzX2xvY2tfbG9jayhwYWdlX2xvY2spOwotICAgICAg
ICAgICAgICAgIHBhc19sb2NrX2xvY2soJm1hZ2F6aW5lLT5sb2NrKTsKKyAgICAgICAgICAgICAg
ICBwYXNfbG9ja19sb2NrKCZjYWNoZV9ub2RlLT5wYWdlX2xvY2spOwogICAgICAgICAgICAgfQog
ICAgICAgICB9CiAKLSAgICAgICAgUEFTX0FTU0VSVChwYWdlX2xvY2sgIT0gJm1hZ2F6aW5lLT5s
b2NrKTsKKyAgICAgICAgUEFTX0FTU0VSVChwYWdlX2xvY2sgIT0gJmNhY2hlX25vZGUtPnBhZ2Vf
bG9jayk7CiAKICAgICAgICAgZ290X3JpZ2h0X2xvY2sgPSAocGFnZS0+bG9ja19wdHIgPT0gcGFn
ZV9sb2NrKTsKICAgICAgICAgaWYgKGdvdF9yaWdodF9sb2NrKQotICAgICAgICAgICAgcGFnZS0+
bG9ja19wdHIgPSAmbWFnYXppbmUtPmxvY2s7CisgICAgICAgICAgICBwYWdlLT5sb2NrX3B0ciA9
ICZjYWNoZV9ub2RlLT5wYWdlX2xvY2s7CiAgICAgICAgIAogICAgICAgICBwYXNfbG9ja191bmxv
Y2socGFnZV9sb2NrKTsKLSAgICAgICAgKmhlbGRfbG9jayA9ICZtYWdhemluZS0+bG9jazsKKyAg
ICAgICAgKmhlbGRfbG9jayA9ICZjYWNoZV9ub2RlLT5wYWdlX2xvY2s7CiAKICAgICAgICAgaWYg
KGdvdF9yaWdodF9sb2NrKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMjE0LDggKzIwNiw5IEBA
IHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25zdHJ1Y3QocGFzX3MKICAgICBwYWdlLT51c2Vf
ZXBvY2ggPSBQQVNfRVBPQ0hfSU5WQUxJRDsKIAogICAgIGlmICh2ZXJib3NlKSB7Ci0gICAgICAg
IHBhc19sb2coIkNvbnN0cnVjdGluZyBwYWdlICVwIGZvciB2aWV3ICVwIGFuZCBjb25maWcgJXMu
XG4iLAotICAgICAgICAgICAgICAgIHBhZ2UsIG93bmVyLCBwYXNfc2VncmVnYXRlZF9wYWdlX2Nv
bmZpZ19raW5kX2dldF9zdHJpbmcocGFnZV9jb25maWcua2luZCkpOworICAgICAgICBwYXNfbG9n
KCJDb25zdHJ1Y3RpbmcgcGFnZSAlcCB3aXRoIGJvdW5kYXJ5ICVwIGZvciB2aWV3ICVwIGFuZCBj
b25maWcgJXMuXG4iLAorICAgICAgICAgICAgICAgIHBhZ2UsIHBhc19zZWdyZWdhdGVkX3BhZ2Vf
Ym91bmRhcnkocGFnZSwgcGFnZV9jb25maWcpLAorICAgICAgICAgICAgICAgIG93bmVyLCBwYXNf
c2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX2dldF9zdHJpbmcocGFnZV9jb25maWcua2luZCkp
OwogICAgIH0KIAogICAgIGlmIChwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19pc191dGlsaXR5
KHBhZ2VfY29uZmlnKSkKQEAgLTIyOCwyMiArMjIxLDI5IEBAIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRf
cGFnZV9jb25zdHJ1Y3QocGFzX3MKIAogICAgIHBhZ2UtPm51bV9ub25fZW1wdHlfd29yZHMgPSAw
OwogICAgIAotICAgIGlmIChwYXNfc2VncmVnYXRlZF92aWV3X2lzX2V4Y2x1c2l2ZV9pc2gob3du
ZXIpKSB7Ci0gICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGly
ZWN0b3J5OwotICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0
YSogZGF0YTsKKyAgICBwYWdlLT52aWV3X2NhY2hlX2luZGV4ID0gKHBhc19hbGxvY2F0b3JfaW5k
ZXgpVUlOVF9NQVg7CisKKyAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19zb21lX2V4Y2x1
c2l2ZShvd25lcikpIHsKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRp
cmVjdG9yeTsKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YSogZGF0
YTsKIAotICAgICAgICBkaXJlY3RvcnkgPSBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9nbG9iYWxf
c2l6ZV9kaXJlY3Rvcnkob3duZXIpOwotICAgICAgICBkYXRhID0gcGFzX3NlZ3JlZ2F0ZWRfZ2xv
YmFsX3NpemVfZGlyZWN0b3J5X2RhdGFfcHRyX2xvYWRfbm9uX251bGwoJmRpcmVjdG9yeS0+ZGF0
YSk7CisgICAgICAgIGRpcmVjdG9yeSA9IHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3NpemVfZGly
ZWN0b3J5KG93bmVyKTsKKyAgICAgICAgZGF0YSA9IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0
b3J5X2RhdGFfcHRyX2xvYWRfbm9uX251bGwoJmRpcmVjdG9yeS0+ZGF0YSk7CiAKICAgICAgICAg
UEFTX0FTU0VSVChkaXJlY3RvcnktPm9iamVjdF9zaXplKTsKICAgICAgICAgcGFnZS0+b2JqZWN0
X3NpemUgPSBkaXJlY3RvcnktPm9iamVjdF9zaXplOwogICAgICAgICBQQVNfQVNTRVJUKHBhZ2Ut
Pm9iamVjdF9zaXplID09IGRpcmVjdG9yeS0+b2JqZWN0X3NpemUpOyAvKiBDaGVjayBmb3Igb3Zl
cmZsb3dzLiAqLworCisgICAgICAgIGlmIChwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV92
aWV3X2NhY2hlX2NhcGFjaXR5KGRpcmVjdG9yeSkpIHsKKyAgICAgICAgICAgIFBBU19BU1NFUlQo
ZGlyZWN0b3J5LT52aWV3X2NhY2hlX2luZGV4IDwgKHBhc19hbGxvY2F0b3JfaW5kZXgpVUlOVF9N
QVgpOworICAgICAgICAgICAgcGFnZS0+dmlld19jYWNoZV9pbmRleCA9IGRpcmVjdG9yeS0+dmll
d19jYWNoZV9pbmRleDsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBQQVNfQVNTRVJUKGRp
cmVjdG9yeS0+dmlld19jYWNoZV9pbmRleCA9PSAocGFzX2FsbG9jYXRvcl9pbmRleClVSU5UX01B
WCk7CiAgICAgfSBlbHNlCiAgICAgICAgIHBhZ2UtPm9iamVjdF9zaXplID0gMDsKIAogICAgIHBh
Z2UtPmlzX2luX3VzZV9mb3JfYWxsb2NhdGlvbiA9IGZhbHNlOwogICAgIHBhZ2UtPmlzX2NvbW1p
dHRpbmdfZnVsbHkgPSBmYWxzZTsKLSAgICBwYWdlLT5hdm9pZF9saW5lX2FsbG9jYXRvciA9IGZh
bHNlOwogCiAgICAgaWYgKHBhZ2VfY29uZmlnLmJhc2UucGFnZV9zaXplICE9IHBhZ2VfY29uZmln
LmJhc2UuZ3JhbnVsZV9zaXplKSB7CiAgICAgICAgIHBhc19wYWdlX2dyYW51bGVfdXNlX2NvdW50
KiB1c2VfY291bnRzOwpAQCAtNTA2LDggKzUwNiw4IEBAIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9jb21taXRfZnVsbHkoCiAgICAgICAgICAgICAgICAgICAgIGNvbW1pdF9zcGFuLnRvdGFsX2J5
dGVzKTsKICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgcGFzX2RlYnVnX3Nw
ZWN0cnVtX2FkZCgKLSAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRf
Z2xvYmFsX3NpemVfZGlyZWN0b3J5KG93bmVyKSwKLSAgICAgICAgICAgICAgICAgICAgcGFzX3Nl
Z3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2R1bXBfZm9yX3NwZWN0cnVtLAorICAgICAg
ICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9zaXplX2RpcmVjdG9yeShvd25l
ciksCisgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2R1
bXBfZm9yX3NwZWN0cnVtLAogICAgICAgICAgICAgICAgICAgICBjb21taXRfc3Bhbi50b3RhbF9i
eXRlcyk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBwYXNfaGVhcF9sb2NrX3VubG9jaygp
OwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRf
cGFnZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19zZWdyZWdhdGVkX3BhZ2UuaAkocmV2aXNpb24gMjc5OTY0KQorKysgU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBQQVNfU0VHUkVHQVRFRF9QQUdFX0gKICNkZWZpbmUg
UEFTX1NFR1JFR0FURURfUEFHRV9ICiAKKyNpbmNsdWRlICJwYXNfYWxsb2NhdG9yX2luZGV4Lmgi
CiAjaW5jbHVkZSAicGFzX2JpdHZlY3Rvci5oIgogI2luY2x1ZGUgInBhc19jb25maWcuaCIKICNp
bmNsdWRlICJwYXNfZnJlZV9yYW5nZV9raW5kLmgiCkBAIC02Nyw5ICs2OCw3IEBAIHN0cnVjdCBw
YXNfc2VncmVnYXRlZF9wYWdlIHsKICAgICBib29sIGVsaWdpYmlsaXR5X25vdGlmaWNhdGlvbl9o
YXNfYmVlbl9kZWZlcnJlZDsKIAogICAgIC8qIFRoaXMgaXMgaGFuZHkgZm9yIGRlYnVnZ2luZy4g
Ki8KLSAgICBib29sIGlzX2NvbW1pdHRpbmdfZnVsbHkgOiAxOwotCi0gICAgYm9vbCBhdm9pZF9s
aW5lX2FsbG9jYXRvciA6IDE7CisgICAgYm9vbCBpc19jb21taXR0aW5nX2Z1bGx5OwogCiAgICAg
dW5zaWduZWQgb2JqZWN0X3NpemU7IC8qIENhY2hpbmcgdGhpcyBoZXJlIGlzIGdyZWF0IGZvciBw
ZXJmb3JtYW5jZS4gKi8KIApAQCAtMTA1LDYgKzEwNCw3IEBAIHN0cnVjdCBwYXNfc2VncmVnYXRl
ZF9wYWdlIHsKICAgICBwYXNfc2VncmVnYXRlZF92aWV3IG93bmVyOwogICAgIAogICAgIHVpbnQx
Nl90IG51bV9ub25fZW1wdHlfd29yZHM7CisgICAgcGFzX2FsbG9jYXRvcl9pbmRleCB2aWV3X2Nh
Y2hlX2luZGV4OwogCiAgICAgdW5zaWduZWQgYWxsb2NfYml0c1sxXTsKIH07CkBAIC0yOTAsNiAr
MjkwLDM0IEBAIHBhc19zZWdyZWdhdGVkX3BhZ2VfZ2V0X2dyYW51bGVfdXNlX2NvdW4KICAgICAg
ICAgcGFnZS0+YWxsb2NfYml0cyArIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX251bV9hbGxv
Y193b3JkcyhwYWdlX2NvbmZpZykpOwogfQogCitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgYm9v
bAorcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9xdWFsaWZpZXNfZm9yX2RlY29tbWl0KAorICAgIHBhc19z
ZWdyZWdhdGVkX3BhZ2UqIHBhZ2UsCisgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcgcGFn
ZV9jb25maWcpCit7CisgICAgcGFzX3BhZ2VfZ3JhbnVsZV91c2VfY291bnQqIHVzZV9jb3VudHM7
CisgICAgdWludHB0cl90IG51bV9ncmFudWxlczsKKyAgICB1aW50cHRyX3QgZ3JhbnVsZV9pbmRl
eDsKKyAgICAKKyAgICBQQVNfQVNTRVJUKHBhZ2VfY29uZmlnLmJhc2UuaXNfZW5hYmxlZCk7CisK
KyAgICBpZiAoIXBhZ2UtPm51bV9ub25fZW1wdHlfd29yZHMpCisgICAgICAgIHJldHVybiB0cnVl
OworICAgIAorICAgIGlmIChwYWdlX2NvbmZpZy5iYXNlLnBhZ2Vfc2l6ZSA9PSBwYWdlX2NvbmZp
Zy5iYXNlLmdyYW51bGVfc2l6ZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIHVz
ZV9jb3VudHMgPSBwYXNfc2VncmVnYXRlZF9wYWdlX2dldF9ncmFudWxlX3VzZV9jb3VudHMocGFn
ZSwgcGFnZV9jb25maWcpOworICAgIG51bV9ncmFudWxlcyA9IHBhZ2VfY29uZmlnLmJhc2UucGFn
ZV9zaXplIC8gcGFnZV9jb25maWcuYmFzZS5ncmFudWxlX3NpemU7CisgICAgCisgICAgZm9yIChn
cmFudWxlX2luZGV4ID0gbnVtX2dyYW51bGVzOyBncmFudWxlX2luZGV4LS07KSB7CisgICAgICAg
IGlmICghdXNlX2NvdW50c1tncmFudWxlX2luZGV4XSkKKyAgICAgICAgICAgIHJldHVybiB0cnVl
OworICAgIH0KKworICAgIHJldHVybiBmYWxzZTsKK30KKwogc3RhdGljIFBBU19BTFdBWVNfSU5M
SU5FIHBhc19zZWdyZWdhdGVkX3BhZ2UqCiBwYXNfc2VncmVnYXRlZF9wYWdlX2Zvcl9ib3VuZGFy
eSh2b2lkKiBib3VuZGFyeSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19z
ZWdyZWdhdGVkX3BhZ2VfY29uZmlnIHBhZ2VfY29uZmlnKQpJbmRleDogU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdl
X2NvbmZpZy5oCShyZXZpc2lvbiAyNzk5NjQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZy5oCSh3b3JraW5nIGNvcHkpCkBAIC01
Miw3ICs1Miw3IEBAIHN0cnVjdCBwYXNfbG9jYWxfYWxsb2NhdG9yOwogc3RydWN0IHBhc19oZWFw
X3J1bnRpbWVfY29uZmlnOwogc3RydWN0IHBhc19wYWdlX3NoYXJpbmdfcG9vbDsKIHN0cnVjdCBw
YXNfcGh5c2ljYWxfbWVtb3J5X3RyYW5zYWN0aW9uOwotc3RydWN0IHBhc19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeTsKK3N0cnVjdCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eTsKIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9oZWFwOwogc3RydWN0IHBhc19zZWdyZWdhdGVkX3Bh
Z2U7CiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWc7CkBAIC02Niw3ICs2Niw3IEBA
IHR5cGVkZWYgc3RydWN0IHBhc19sb2NhbF9hbGxvY2F0b3IgcGFzX2wKIHR5cGVkZWYgc3RydWN0
IHBhc19oZWFwX3J1bnRpbWVfY29uZmlnIHBhc19oZWFwX3J1bnRpbWVfY29uZmlnOwogdHlwZWRl
ZiBzdHJ1Y3QgcGFzX3BhZ2Vfc2hhcmluZ19wb29sIHBhc19wYWdlX3NoYXJpbmdfcG9vbDsKIHR5
cGVkZWYgc3RydWN0IHBhc19waHlzaWNhbF9tZW1vcnlfdHJhbnNhY3Rpb24gcGFzX3BoeXNpY2Fs
X21lbW9yeV90cmFuc2FjdGlvbjsKLXR5cGVkZWYgc3RydWN0IHBhc19zZWdyZWdhdGVkX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnk7Cit0
eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSBwYXNfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeTsKIHR5cGVkZWYgc3RydWN0IHBhc19zZWdyZWdhdGVkX2hlYXAgcGFz
X3NlZ3JlZ2F0ZWRfaGVhcDsKIHR5cGVkZWYgc3RydWN0IHBhc19zZWdyZWdhdGVkX3BhZ2UgcGFz
X3NlZ3JlZ2F0ZWRfcGFnZTsKIHR5cGVkZWYgc3RydWN0IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29u
ZmlnIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnOwpAQCAtNzYsNyArNzYsNyBAQCB0eXBlZGVm
IHN0cnVjdCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlIHBhCiAKIHR5cGVkZWYgcGFzX3NlZ3JlZ2F0
ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5KgogKCpwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19z
aGFyZWRfcGFnZV9kaXJlY3Rvcnlfc2VsZWN0b3IpKAotICAgIHBhc19zZWdyZWdhdGVkX2hlYXAq
IGhlYXAsIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KTsK
KyAgICBwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeSogZGlyZWN0b3J5KTsKIHR5cGVkZWYgdm9pZCAoKnBhc19zZWdyZWdhdGVkX3BhZ2VfY29u
ZmlnX2RlYWxsb2NfZnVuYykocGFzX3RocmVhZF9sb2NhbF9jYWNoZSogdGhyZWFkX2xvY2FsX2Nh
Y2hlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB1aW50cHRyX3QgYmVnaW4pOwogCkBAIC04Niw3ICs4Niw3IEBAIHR5cGVkZWYgcGFzX2Fs
bG9jYXRpb25fcmVzdWx0CiB0eXBlZGVmIGJvb2wKICgqcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25m
aWdfc3BlY2lhbGl6ZWRfbG9jYWxfYWxsb2NhdG9yX3N0YXJ0X2FsbG9jYXRpbmdfaW5fcHJpbW9y
ZGlhbF9wYXJ0aWFsX3ZpZXcpKAogICAgIHBhc19sb2NhbF9hbGxvY2F0b3IqIGFsbG9jYXRvciwg
cGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3KiBwYXJ0aWFsLAotICAgIHBhc19zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeSogc2l6ZV9kaXJlY3RvcnkpOworICAgIHBhc19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5KiBzaXplX2RpcmVjdG9yeSk7CiB0eXBlZGVmIGJvb2wgKCpwYXNf
c2VncmVnYXRlZF9wYWdlX2NvbmZpZ19zcGVjaWFsaXplZF9sb2NhbF9hbGxvY2F0b3JfcmVmaWxs
KSgKICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0b3IsCiAgICAgcGFzX2FsbG9jYXRv
cl9jb3VudHMqIGNvdW50cyk7CkBAIC05NCw3ICs5NCw3IEBAIHR5cGVkZWYgdm9pZCAoKnBhc19z
ZWdyZWdhdGVkX3BhZ2VfY29uZmkKICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0b3Is
CiAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3LAogICAgIHBhc19zZWdyZWdhdGVkX3BhZ2Uq
IHBhZ2UsCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rv
cnksCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKICAgICBw
YXNfbG9ja19ob2xkX21vZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSk7CiAKIHN0cnVjdCBwYXNfc2Vn
cmVnYXRlZF9wYWdlX2NvbmZpZyB7CkBAIC0xNTMsNiArMTUzLDkgQEAgc3RydWN0IHBhc19zZWdy
ZWdhdGVkX3BhZ2VfY29uZmlnIHsKICAgICAgICBvZiBiaXRzIGdvZXMgY2xlYXIuICovCiAgICAg
Ym9vbCBlbmFibGVfZW1wdHlfd29yZF9lbGlnaWJpbGl0eV9vcHRpbWl6YXRpb247CiAKKyAgICAv
KiBUZWxscyBpZiB3ZSB1c2UgdGhlIHZpZXcgY2FjaGUgZm9yIHRoaXMgc2l6ZSBjbGFzcy4gKi8K
KyAgICBib29sIGVuYWJsZV92aWV3X2NhY2hlOworCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9j
b25maWdfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5X3NlbGVjdG9yIHNoYXJlZF9wYWdlX2RpcmVjdG9y
eV9zZWxlY3RvcjsKIAogICAgIC8qIFRoZXNlIHR3byBnZXQgZmlsbGVkIGluIHdpdGggdGhlIFBB
U19TRUdSRUdBVEVEX1BBR0VfQ09ORklHX1NQRUNJQUxJWkFUSU9OUygpIG1hY3JvLiAqLwpAQCAt
MTgzLDcgKzE4Niw3IEBAIFBBU19BUEkgZXh0ZXJuIGJvb2wgcGFzX21lZGl1bV9zZWdyZWdhdGUK
ICAgICBQQVNfQVBJIGJvb2wgbG93ZXJfY2FzZV9wYWdlX2NvbmZpZ19uYW1lICMjIF9zcGVjaWFs
aXplZF9sb2NhbF9hbGxvY2F0b3Jfc3RhcnRfYWxsb2NhdGluZ19pbl9wcmltb3JkaWFsX3BhcnRp
YWxfdmlldyggXAogICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0b3IsIFwKICAg
ICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3KiBwYXJ0aWFsLCBcCi0gICAgICAgIHBh
c19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogc2l6ZV9kaXJlY3RvcnkpOyBcCisg
ICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBzaXplX2RpcmVjdG9yeSk7IFwK
ICAgICBQQVNfQVBJIGJvb2wgbG93ZXJfY2FzZV9wYWdlX2NvbmZpZ19uYW1lICMjIF9zcGVjaWFs
aXplZF9sb2NhbF9hbGxvY2F0b3JfcmVmaWxsKCBcCiAgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0
b3IqIGFsbG9jYXRvciwgXAogICAgICAgICBwYXNfYWxsb2NhdG9yX2NvdW50cyogY291bnRzKTsg
XApAQCAtMTkyLDcgKzE5NSw3IEBAIFBBU19BUEkgZXh0ZXJuIGJvb2wgcGFzX21lZGl1bV9zZWdy
ZWdhdGUKICAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvciogYWxsb2NhdG9yLCBcCiAgICAgICAg
IHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldywgXAogICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdl
KiBwYWdlLCBcCi0gICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSog
ZGlyZWN0b3J5LCBcCisgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJl
Y3RvcnksIFwKICAgICAgICAgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUp
CiAKICNkZWZpbmUgUEFTX1NFR1JFR0FURURfUEFHRV9DT05GSUdfU1BFQ0lBTElaQVRJT05TKGxv
d2VyX2Nhc2VfcGFnZV9jb25maWdfbmFtZSkgXApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfaW5saW5lcy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3Bh
Z2VfY29uZmlnX2lubGluZXMuaAkocmV2aXNpb24gMjc5OTY0KQorKysgU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfaW5saW5lcy5oCSh3
b3JraW5nIGNvcHkpCkBAIC00NCw3ICs0NCw3IEBAIFBBU19CRUdJTl9FWFRFUk5fQzsKICAgICBQ
QVNfTkVWRVJfSU5MSU5FIGJvb2wgbG93ZXJfY2FzZV9wYWdlX2NvbmZpZ19uYW1lICMjIF9zcGVj
aWFsaXplZF9sb2NhbF9hbGxvY2F0b3Jfc3RhcnRfYWxsb2NhdGluZ19pbl9wcmltb3JkaWFsX3Bh
cnRpYWxfdmlldyggXAogICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0b3IsIFwK
ICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3KiBwYXJ0aWFsLCBcCi0gICAgICAg
IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogc2l6ZV9kaXJlY3RvcnkpIFwK
KyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIHNpemVfZGlyZWN0b3J5KSBc
CiAgICAgeyBcCiAgICAgICAgIHJldHVybiBwYXNfbG9jYWxfYWxsb2NhdG9yX3N0YXJ0X2FsbG9j
YXRpbmdfaW5fcHJpbW9yZGlhbF9wYXJ0aWFsX3ZpZXcoIFwKICAgICAgICAgICAgIGFsbG9jYXRv
ciwgcGFydGlhbCwgc2l6ZV9kaXJlY3RvcnksIChwYWdlX2NvbmZpZ192YWx1ZSkpOyBcCkBAIC02
NCw3ICs2NCw3IEBAIFBBU19CRUdJTl9FWFRFUk5fQzsKICAgICAgICAgcGFzX2xvY2FsX2FsbG9j
YXRvciogYWxsb2NhdG9yLCBcCiAgICAgICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldywgXAog
ICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlKiBwYWdlLCBcCi0gICAgICAgIHBhc19zZWdyZWdh
dGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LCBcCisgICAgICAgIHBhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksIFwKICAgICAgICAgcGFzX2xvY2tfaG9s
ZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUpIFwKICAgICB7IFwKICAgICAgICAgcGFzX2xvY2Fs
X2FsbG9jYXRvcl9yZXR1cm5fbWVtb3J5X3RvX3BhZ2UoIFwKSW5kZXg6IFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3V0aWxzLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9jb25maWdfdXRpbHMuaAkocmV2aXNpb24gMjc5OTY0KQorKysgU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfdXRpbHMuaAko
d29ya2luZyBjb3B5KQpAQCAtNjQsNyArNjQsNyBAQCBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZp
Z192ZXJpZnlfZGVhbGxvCiAgICAgXAogICAgIFBBU19BUEkgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVk
X3BhZ2VfZGlyZWN0b3J5KiBcCiAgICAgbmFtZSAjIyBfcGFnZV9jb25maWdfc2VsZWN0X3NoYXJl
ZF9wYWdlX2RpcmVjdG9yeSggXAotICAgICAgICBwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLCBw
YXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7IFwKKyAgICAg
ICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnkqIGRpcmVjdG9yeSk7IFwKICAgICBcCiAgICAgc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZv
aWQgXAogICAgIG5hbWUgIyMgX2RlYWxsb2NfZnVuYyhwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiBj
YWNoZSwgdWludHB0cl90IGJlZ2luKQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfdXRpbHNfaW5saW5lcy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3Bh
Z2VfY29uZmlnX3V0aWxzX2lubGluZXMuaAkocmV2aXNpb24gMjc5OTY0KQorKysgU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfdXRpbHNf
aW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC01Miw3ICs1Miw3IEBAIHR5cGVkZWYgc3RydWN0
IHsKICAgICBcCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5KiBcCiAg
ICAgbmFtZSAjIyBfcGFnZV9jb25maWdfc2VsZWN0X3NoYXJlZF9wYWdlX2RpcmVjdG9yeSggXAot
ICAgICAgICBwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLCBwYXNfc2VncmVnYXRlZF9nbG9iYWxf
c2l6ZV9kaXJlY3RvcnkqIHNpemVfZGlyZWN0b3J5KSBcCisgICAgICAgIHBhc19zZWdyZWdhdGVk
X2hlYXAqIGhlYXAsIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBzaXplX2RpcmVjdG9y
eSkgXAogICAgIHsgXAogICAgICAgICBQQVNfVU5VU0VEX1BBUkFNKHNpemVfZGlyZWN0b3J5KTsg
XAogICAgICAgICBcCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
c2VncmVnYXRlZF9wYWdlX2lubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlX2lubGluZXMuaAkocmV2aXNpb24g
Mjc5OTY0KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9pbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDE1ICsyOCwxNSBAQAogCiAj
aW5jbHVkZSAicGFzX2NvbmZpZy5oIgogI2luY2x1ZGUgInBhc19sb2cuaCIKLSNpbmNsdWRlICJw
YXNfbWFnYXppbmUuaCIKICNpbmNsdWRlICJwYXNfcGFnZV9iYXNlX2lubGluZXMuaCIKLSNpbmNs
dWRlICJwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldy5oIgorI2luY2x1ZGUgInBhc19zZWdy
ZWdhdGVkX2RlYWxsb2NhdGlvbl9tb2RlLmgiCisjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZXhj
bHVzaXZlX3ZpZXdfaW5saW5lcy5oIgogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3BhZ2UuaCIK
ICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXcuaCIKLSNpbmNsdWRlICJwYXNf
c2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkuaCIKKyNpbmNsdWRlICJwYXNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeS5oIgogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3NoYXJlZF9o
YW5kbGUuaCIKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9zaGFyZWRfaGFuZGxlX2lubGluZXMu
aCIKLSNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF92aWV3X2lubGluZXMuaCIKKyNpbmNsdWRlICJw
YXNfdGhyZWFkX2xvY2FsX2NhY2hlX25vZGUuaCIKIAogUEFTX0JFR0lOX0VYVEVSTl9DOwogCkBA
IC00NCwyMiArNDQsMjIgQEAgUEFTX0JFR0lOX0VYVEVSTl9DOwogc3RhdGljIFBBU19BTFdBWVNf
SU5MSU5FIHVuc2lnbmVkCiBwYXNfc2VncmVnYXRlZF9wYWdlX29mZnNldF9mcm9tX3BhZ2VfYm91
bmRhcnlfdG9fZmlyc3Rfb2JqZWN0KAogICAgIHBhc19zZWdyZWdhdGVkX3BhZ2UqIHBhZ2UsCi0g
ICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisgICAg
cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKICAgICBwYXNfc2VncmVn
YXRlZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZpZykKIHsKICAgICB1aW50cHRyX3QgcmVzdWx0Owog
CiAgICAgUEFTX0FTU0VSVChwYWdlX2NvbmZpZy5iYXNlLmlzX2VuYWJsZWQpOwogICAgIAotICAg
IGlmICghcGFnZSB8fCBwYXNfc2VncmVnYXRlZF92aWV3X2lzX2V4Y2x1c2l2ZV9pc2gocGFnZS0+
b3duZXIpKSB7CisgICAgaWYgKCFwYWdlIHx8IHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfc29tZV9l
eGNsdXNpdmUocGFnZS0+b3duZXIpKSB7CiAgICAgICAgIGlmICghcGFnZSkKICAgICAgICAgICAg
IFBBU19BU1NFUlQoZGlyZWN0b3J5KTsKICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBkaXJl
Y3RvcnkgPSBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJf
bG9hZF9ub25fbnVsbCgKKyAgICAgICAgICAgIGRpcmVjdG9yeSA9IHBhc19jb21wYWN0X3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoCiAgICAgICAgICAgICAgICAg
JnBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2V4Y2x1c2l2ZShwYWdlLT5vd25lciktPmRpcmVjdG9y
eSk7CiAgICAgICAgIH0KIAotICAgICAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3Np
emVfZGlyZWN0b3J5X2RhdGFfcHRyX2xvYWRfbm9uX251bGwoJmRpcmVjdG9yeS0+ZGF0YSkKKyAg
ICAgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGFfcHRyX2xvYWRf
bm9uX251bGwoJmRpcmVjdG9yeS0+ZGF0YSkKICAgICAgICAgICAgIC0+b2Zmc2V0X2Zyb21fcGFn
ZV9ib3VuZGFyeV90b19maXJzdF9vYmplY3Q7CiAgICAgfQogCkBAIC03Niw3ICs3Niw3IEBAIHBh
c19zZWdyZWdhdGVkX3BhZ2Vfb2Zmc2V0X2Zyb21fcGFnZV9ib3UKICAgIGJyaW5naW5nIHVwIHNo
YXJlZCB2aWV3cy4gKi8KIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBib29sIHBhc19zZWdyZWdh
dGVkX3BhZ2VfaW5pdGlhbGl6ZV9mdWxsX3VzZV9jb3VudHMoCiAgICAgcGFzX3NlZ3JlZ2F0ZWRf
cGFnZSogcGFnZSwKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRp
cmVjdG9yeSwKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAog
ICAgIHBhc19wYWdlX2dyYW51bGVfdXNlX2NvdW50KiB1c2VfY291bnRzLAogICAgIHVpbnRwdHJf
dCBlbmRfZ3JhbnVsZV9pbmRleCwKICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBwYWdl
X2NvbmZpZykKQEAgLTg5LDcgKzg5LDcgQEAgc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIGJvb2wg
cGFzX3NlZ3JlZwogICAgIHVpbnRwdHJfdCBlbmRfb2ZfbGFzdF9vYmplY3Q7CiAgICAgdWludHB0
cl90IG9iamVjdF9zaXplOwogICAgIHVpbnRwdHJfdCBvZmZzZXQ7Ci0gICAgcGFzX3NlZ3JlZ2F0
ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2RhdGEqIGRhdGE7CisgICAgcGFzX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnlfZGF0YSogZGF0YTsKIAogICAgIFBBU19BU1NFUlQocGFnZV9jb25maWcu
YmFzZS5pc19lbmFibGVkKTsKICAgICAKQEAgLTEyMiw3ICsxMjIsNyBAQCBzdGF0aWMgUEFTX0FM
V0FZU19JTkxJTkUgYm9vbCBwYXNfc2VncmVnCiAgICAgaWYgKCFkaXJlY3RvcnkpCiAgICAgICAg
IHJldHVybiBlbmRfZ3JhbnVsZV9vZmZzZXQgPT0gcGFnZV9jb25maWcuYmFzZS5wYWdlX3NpemU7
CiAKLSAgICBkYXRhID0gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2RhdGFf
cHRyX2xvYWRfbm9uX251bGwoJmRpcmVjdG9yeS0+ZGF0YSk7CisgICAgZGF0YSA9IHBhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGFfcHRyX2xvYWRfbm9uX251bGwoJmRpcmVjdG9yeS0+
ZGF0YSk7CiAKICAgICBzdGFydF9vZl9maXJzdF9vYmplY3QgPQogICAgICAgICBwYXNfc2VncmVn
YXRlZF9wYWdlX29mZnNldF9mcm9tX3BhZ2VfYm91bmRhcnlfdG9fZmlyc3Rfb2JqZWN0KApAQCAt
MjM1LDE0ICsyMzUsMzMgQEAgUEFTX0FQSSBwYXNfbG9jayogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9z
dwogICAgIHBhc19sb2NrKiBoZWxkX2xvY2ssCiAgICAgcGFzX2xvY2sqIHBhZ2VfbG9jayk7CiAK
K3N0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkIHBhc19zZWdyZWdhdGVkX3BhZ2Vfc3dpdGNo
X2xvY2tfaW1wbCgKKyAgICBwYXNfc2VncmVnYXRlZF9wYWdlKiBwYWdlLAorICAgIHBhc19sb2Nr
KiogaGVsZF9sb2NrKQoreworICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsK
KyAgICAKKyAgICBwYXNfbG9jayogaGVsZF9sb2NrX3ZhbHVlOworICAgIHBhc19sb2NrKiBwYWdl
X2xvY2s7CisgICAgCisgICAgaGVsZF9sb2NrX3ZhbHVlID0gKmhlbGRfbG9jazsKKyAgICBwYWdl
X2xvY2sgPSBwYWdlLT5sb2NrX3B0cjsKKyAgICAKKyAgICBpZiAoUEFTX0xJS0VMWShoZWxkX2xv
Y2tfdmFsdWUgPT0gcGFnZV9sb2NrKSkgeworICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAg
ICAgIHBhc19sb2coIkdldHRpbmcgdGhlIHNhbWUgbG9jayBhcyBiZWZvcmUgKCVwKS5cbiIsIHBh
Z2VfbG9jayk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgCisgICAgKmhlbGRfbG9jayA9
IHBhc19zZWdyZWdhdGVkX3BhZ2Vfc3dpdGNoX2xvY2tfc2xvdyhwYWdlLCBoZWxkX2xvY2tfdmFs
dWUsIHBhZ2VfbG9jayk7Cit9CisKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBib29sIHBhc19z
ZWdyZWdhdGVkX3BhZ2Vfc3dpdGNoX2xvY2tfd2l0aF9tb2RlKAogICAgIHBhc19zZWdyZWdhdGVk
X3BhZ2UqIHBhZ2UsCiAgICAgcGFzX2xvY2sqKiBoZWxkX2xvY2ssCiAgICAgcGFzX2xvY2tfbG9j
a19tb2RlIGxvY2tfbW9kZSwKICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBwYWdlX2Nv
bmZpZykKIHsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7Ci0gICAgCiAg
ICAgUEFTX0FTU0VSVChwYWdlX2NvbmZpZy5iYXNlLmlzX2VuYWJsZWQpOwogICAgIAogICAgIGlm
IChwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19pc191dGlsaXR5KHBhZ2VfY29uZmlnKSkgewpA
QCAtMjU1LDE5ICsyNzQsNyBAQCBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgYm9vbCBwYXNfc2Vn
cmVnCiAgICAgICAgIHJldHVybiBwYXNfbG9ja19zd2l0Y2hfd2l0aF9tb2RlKGhlbGRfbG9jaywg
cGFnZS0+bG9ja19wdHIsIHBhc19sb2NrX2xvY2tfbW9kZV90cnlfbG9jayk7CiAKICAgICBjYXNl
IHBhc19sb2NrX2xvY2tfbW9kZV9sb2NrOiB7Ci0gICAgICAgIHBhc19sb2NrKiBoZWxkX2xvY2tf
dmFsdWU7Ci0gICAgICAgIHBhc19sb2NrKiBwYWdlX2xvY2s7Ci0KLSAgICAgICAgaGVsZF9sb2Nr
X3ZhbHVlID0gKmhlbGRfbG9jazsKLSAgICAgICAgcGFnZV9sb2NrID0gcGFnZS0+bG9ja19wdHI7
Ci0gICAgICAgIAotICAgICAgICBpZiAoUEFTX0xJS0VMWShoZWxkX2xvY2tfdmFsdWUgPT0gcGFn
ZV9sb2NrKSkgewotICAgICAgICAgICAgaWYgKHZlcmJvc2UpCi0gICAgICAgICAgICAgICAgcGFz
X2xvZygiR2V0dGluZyB0aGUgc2FtZSBsb2NrIGFzIGJlZm9yZSAoJXApLlxuIiwgcGFnZV9sb2Nr
KTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgKmhlbGRf
bG9jayA9IHBhc19zZWdyZWdhdGVkX3BhZ2Vfc3dpdGNoX2xvY2tfc2xvdyhwYWdlLCBoZWxkX2xv
Y2tfdmFsdWUsIHBhZ2VfbG9jayk7CisgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2Vfc3dpdGNo
X2xvY2tfaW1wbChwYWdlLCBoZWxkX2xvY2spOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9
IH0KICAgICBQQVNfQVNTRVJUKCEiU2hvdWxkIG5vdCBiZSByZWFjaGVkIik7CkBAIC0yODcsMTYg
KzI5NCwxNiBAQCBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCBwYXNfc2VncmVnCiAgICAg
UEFTX0FTU0VSVChyZXN1bHQpOwogfQogCi1QQVNfQVBJIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9zd2l0Y2hfbG9ja19hbmRfcmViaWFzX3RvX21hZ2F6aW5lX3doaWxlX2luZWxpZ2libGVfaW1w
bCgKK1BBU19BUEkgdm9pZCBwYXNfc2VncmVnYXRlZF9wYWdlX3N3aXRjaF9sb2NrX2FuZF9yZWJp
YXNfd2hpbGVfaW5lbGlnaWJsZV9pbXBsKAogICAgIHBhc19zZWdyZWdhdGVkX3BhZ2UqIHBhZ2Us
CiAgICAgcGFzX2xvY2sqKiBoZWxkX2xvY2ssCi0gICAgcGFzX21hZ2F6aW5lKiBtYWdhemluZSk7
CisgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9ub2RlKiBjYWNoZV9ub2RlKTsKIAogc3RhdGlj
IFBBU19BTFdBWVNfSU5MSU5FIHZvaWQKLXBhc19zZWdyZWdhdGVkX3BhZ2Vfc3dpdGNoX2xvY2tf
YW5kX3JlYmlhc190b19tYWdhemluZV93aGlsZV9pbmVsaWdpYmxlKAorcGFzX3NlZ3JlZ2F0ZWRf
cGFnZV9zd2l0Y2hfbG9ja19hbmRfcmViaWFzX3doaWxlX2luZWxpZ2libGUoCiAgICAgcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZSogcGFnZSwKICAgICBwYXNfbG9jayoqIGhlbGRfbG9jaywKLSAgICBwYXNf
bWFnYXppbmUqIG1hZ2F6aW5lLAorICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbm9kZSogY2Fj
aGVfbm9kZSwKICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZpZykKIHsK
ICAgICBQQVNfQVNTRVJUKHBhZ2VfY29uZmlnLmJhc2UuaXNfZW5hYmxlZCk7CkBAIC0zMDYsOCAr
MzEzLDggQEAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9zd2l0Y2hfbG9ja19hbmRfcmViaQogICAgICAg
ICByZXR1cm47CiAgICAgfQogCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9zd2l0Y2hfbG9ja19h
bmRfcmViaWFzX3RvX21hZ2F6aW5lX3doaWxlX2luZWxpZ2libGVfaW1wbCgKLSAgICAgICAgcGFn
ZSwgaGVsZF9sb2NrLCBtYWdhemluZSk7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9zd2l0Y2hf
bG9ja19hbmRfcmViaWFzX3doaWxlX2luZWxpZ2libGVfaW1wbCgKKyAgICAgICAgcGFnZSwgaGVs
ZF9sb2NrLCBjYWNoZV9ub2RlKTsKIH0KIAogUEFTX0FQSSB2b2lkIHBhc19zZWdyZWdhdGVkX3Bh
Z2VfdmVyaWZ5X2dyYW51bGVzKHBhc19zZWdyZWdhdGVkX3BhZ2UqIHBhZ2UpOwpAQCAtMzE3LDYg
KzMyNCw4IEBAIFBBU19BUEkgUEFTX05PX1JFVFVSTiBQQVNfVVNFRCB2b2lkIHBhc18KIHN0YXRp
YyBQQVNfQUxXQVlTX0lOTElORSB2b2lkCiBwYXNfc2VncmVnYXRlZF9wYWdlX2RlYWxsb2NhdGVf
d2l0aF9wYWdlKHBhc19zZWdyZWdhdGVkX3BhZ2UqIHBhZ2UsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHVpbnRwdHJfdCBiZWdpbiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0aW9uX21vZGUg
ZGVhbGxvY2F0aW9uX21vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIHRocmVhZF9sb2NhbF9jYWNoZSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25m
aWcgcGFnZV9jb25maWcpCiB7CiAgICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNl
OwpAQCAtMzkzLDExICs0MDIsMTUgQEAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9kZWFsbG9jYXRlX3dp
dGhfcGFnZQogICAgICAgICBwYXNfc2VncmVnYXRlZF92aWV3IG93bmVyOwogICAgICAgICBvd25l
ciA9IHBhZ2UtPm93bmVyOwogICAgICAgICAKLSAgICAgICAgaWYgKCFwYXNfc2VncmVnYXRlZF92
aWV3X2lzX2VsaWdpYmxlX2tpbmQob3duZXIpKSB7Ci0gICAgICAgICAgICBpZiAocGFzX3NlZ3Jl
Z2F0ZWRfdmlld19pc19leGNsdXNpdmVfaXNoKG93bmVyKSkgeworICAgICAgICBpZiAocGFzX3Nl
Z3JlZ2F0ZWRfdmlld19nZXRfa2luZChvd25lcikgIT0gcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZl
X3ZpZXdfa2luZCkgeworICAgICAgICAgICAgaWYgKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfc29t
ZV9leGNsdXNpdmUob3duZXIpKSB7CiAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCiAgICAg
ICAgICAgICAgICAgICAgIHBhc19sb2coIk5vdGlmeWluZyBleGNsdXNpdmUtaXNoIGVsaWdpYmls
aXR5IG9uIHZpZXcgJXAuXG4iLCBvd25lcik7Ci0gICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0
ZWRfdmlld19ub3RlX2VsaWdpYmlsaXR5KG93bmVyLCBwYWdlKTsKKyAgICAgICAgICAgICAgICAv
KiBOT1RFOiBJZiB0aGlzIGRlY2lkZXMgdG8gY2FjaGUgdGhlIHZpZXcgdGhlbiBpdCdzIHBvc3Np
YmxlIHRoYXQgd2Ugd2lsbCByZWxlYXNlIGFuZAorICAgICAgICAgICAgICAgICAgIHRoZW4gcmVh
Y3F1aXJlIHRoaXMgcGFnZSdzIGxvY2suICovCisgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0
ZWRfZXhjbHVzaXZlX3ZpZXdfbm90ZV9lbGlnaWJpbGl0eSgKKyAgICAgICAgICAgICAgICAgICAg
cGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfZXhjbHVzaXZlKG93bmVyKSwKKyAgICAgICAgICAgICAg
ICAgICAgcGFnZSwgZGVhbGxvY2F0aW9uX21vZGUsIHRocmVhZF9sb2NhbF9jYWNoZSwgcGFnZV9j
b25maWcpOwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBwYXNfc2VncmVn
YXRlZF9zaGFyZWRfaGFuZGxlKiBzaGFyZWRfaGFuZGxlOwogICAgICAgICAgICAgICAgIHBhc19z
ZWdyZWdhdGVkX3BhcnRpYWxfdmlldyogcGFydGlhbF92aWV3OwpAQCAtNDM2LDEwICs0NDksMTAg
QEAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9kZWFsbG9jYXRlX3dpdGhfcGFnZQogICAgICAgICBiaXRf
aW5kZXggPSBvZmZzZXRfaW5fcGFnZSA+PiBwYWdlX2NvbmZpZy5iYXNlLm1pbl9hbGlnbl9zaGlm
dDsKICAgICAgICAgb3duZXIgPSBwYWdlLT5vd25lcjsKIAotICAgICAgICBpZiAocGFzX3NlZ3Jl
Z2F0ZWRfdmlld19pc19leGNsdXNpdmVfaXNoKG93bmVyKSkKKyAgICAgICAgaWYgKHBhc19zZWdy
ZWdhdGVkX3ZpZXdfaXNfc29tZV9leGNsdXNpdmUob3duZXIpKQogICAgICAgICAgICAgb2JqZWN0
X3NpemUgPSBwYWdlLT5vYmplY3Rfc2l6ZTsKICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBv
YmplY3Rfc2l6ZSA9IHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
X3B0cl9sb2FkX25vbl9udWxsKAorICAgICAgICAgICAgb2JqZWN0X3NpemUgPSBwYXNfY29tcGFj
dF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKAogICAgICAgICAg
ICAgICAgICZwYXNfc2VncmVnYXRlZF9zaGFyZWRfaGFuZGxlX3BhcnRpYWxfdmlld19mb3JfaW5k
ZXgoCiAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3NoYXJlZF9o
YW5kbGUob3duZXIpLAogICAgICAgICAgICAgICAgICAgICBiaXRfaW5kZXgsCkBAIC00NzMsNiAr
NDg2LDggQEAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9kZWFsbG9jYXRlX3dpdGhfcGFnZQogc3RhdGlj
IFBBU19BTFdBWVNfSU5MSU5FIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9kZWFsbG9jYXRlKAog
ICAgIHVpbnRwdHJfdCBiZWdpbiwKICAgICBwYXNfbG9jayoqIGhlbGRfbG9jaywKKyAgICBwYXNf
c2VncmVnYXRlZF9kZWFsbG9jYXRpb25fbW9kZSBkZWFsbG9jYXRpb25fbW9kZSwKKyAgICBwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlKiB0aHJlYWRfbG9jYWxfY2FjaGUsCiAgICAgcGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9jb25maWcgcGFnZV9jb25maWcpCiB7CiAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZSog
cGFnZTsKQEAgLTQ4MSwzOCArNDk2LDExIEBAIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lk
IHBhc19zZWdyZWcKICAgICAKICAgICBwYWdlID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9mb3JfYWRk
cmVzc19hbmRfcGFnZV9jb25maWcoYmVnaW4sIHBhZ2VfY29uZmlnKTsKICAgICBwYXNfc2VncmVn
YXRlZF9wYWdlX3N3aXRjaF9sb2NrKHBhZ2UsIGhlbGRfbG9jaywgcGFnZV9jb25maWcpOwotICAg
IHBhc19zZWdyZWdhdGVkX3BhZ2VfZGVhbGxvY2F0ZV93aXRoX3BhZ2UocGFnZSwgYmVnaW4sIHBh
Z2VfY29uZmlnKTsKLX0KLQotc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIGJvb2wKLXBhc19zZWdy
ZWdhdGVkX3BhZ2VfcXVhbGlmaWVzX2Zvcl9kZWNvbW1pdCgKLSAgICBwYXNfc2VncmVnYXRlZF9w
YWdlKiBwYWdlLAotICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnIHBhZ2VfY29uZmlnKQot
ewotICAgIHBhc19wYWdlX2dyYW51bGVfdXNlX2NvdW50KiB1c2VfY291bnRzOwotICAgIHVpbnRw
dHJfdCBudW1fZ3JhbnVsZXM7Ci0gICAgdWludHB0cl90IGdyYW51bGVfaW5kZXg7Ci0gICAgCi0g
ICAgUEFTX0FTU0VSVChwYWdlX2NvbmZpZy5iYXNlLmlzX2VuYWJsZWQpOwotCi0gICAgaWYgKCFw
YWdlLT5udW1fbm9uX2VtcHR5X3dvcmRzKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAKLSAg
ICBpZiAocGFnZV9jb25maWcuYmFzZS5wYWdlX3NpemUgPT0gcGFnZV9jb25maWcuYmFzZS5ncmFu
dWxlX3NpemUpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKLSAgICB1c2VfY291bnRzID0g
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9nZXRfZ3JhbnVsZV91c2VfY291bnRzKHBhZ2UsIHBhZ2VfY29u
ZmlnKTsKLSAgICBudW1fZ3JhbnVsZXMgPSBwYWdlX2NvbmZpZy5iYXNlLnBhZ2Vfc2l6ZSAvIHBh
Z2VfY29uZmlnLmJhc2UuZ3JhbnVsZV9zaXplOwotICAgIAotICAgIGZvciAoZ3JhbnVsZV9pbmRl
eCA9IG51bV9ncmFudWxlczsgZ3JhbnVsZV9pbmRleC0tOykgewotICAgICAgICBpZiAoIXVzZV9j
b3VudHNbZ3JhbnVsZV9pbmRleF0pCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0K
LSAgICByZXR1cm4gZmFsc2U7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9kZWFsbG9jYXRlX3dp
dGhfcGFnZSgKKyAgICAgICAgcGFnZSwgYmVnaW4sIGRlYWxsb2NhdGlvbl9tb2RlLCB0aHJlYWRf
bG9jYWxfY2FjaGUsIHBhZ2VfY29uZmlnKTsKIH0KIAotc3RhdGljIFBBU19BTFdBWVNfSU5MSU5F
IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSoKK3N0YXRpYyBQQVNfQUxXQVlT
X0lOTElORSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSoKIHBhc19zZWdyZWdhdGVkX3Bh
Z2VfZ2V0X2RpcmVjdG9yeV9mb3JfYWRkcmVzc19pbl9wYWdlKHBhc19zZWdyZWdhdGVkX3BhZ2Uq
IHBhZ2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB1aW50cHRyX3QgYmVnaW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZp
ZykKQEAgLTUyNiwxMyArNTE0LDExIEBAIHBhc19zZWdyZWdhdGVkX3BhZ2VfZ2V0X2RpcmVjdG9y
eV9mb3JfYWQKICAgICBzd2l0Y2ggKHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2tpbmQob3duaW5n
X3ZpZXcpKSB7CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19raW5kOgog
ICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfaW5lbGlnaWJsZV9leGNsdXNpdmVfdmlld19raW5kOgot
ICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2tpbmQ6Ci0gICAgY2FzZSBwYXNf
c2VncmVnYXRlZF9pbmVsaWdpYmxlX2JpYXNpbmdfdmlld19raW5kOgotICAgICAgICByZXR1cm4g
cGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9u
X251bGwoCisgICAgICAgIHJldHVybiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0
b3J5X3B0cl9sb2FkX25vbl9udWxsKAogICAgICAgICAgICAgJnBhc19zZWdyZWdhdGVkX3ZpZXdf
Z2V0X2V4Y2x1c2l2ZShvd25pbmdfdmlldyktPmRpcmVjdG9yeSk7CiAKICAgICBjYXNlIHBhc19z
ZWdyZWdhdGVkX3NoYXJlZF9oYW5kbGVfa2luZDoKLSAgICAgICAgcmV0dXJuIHBhc19jb21wYWN0
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKAorICAgICAgICByZXR1
cm4gcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZCgKICAgICAg
ICAgICAgICZwYXNfc2VncmVnYXRlZF9zaGFyZWRfaGFuZGxlX3BhcnRpYWxfdmlld19mb3Jfb2Jq
ZWN0KAogICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3NoYXJlZF9oYW5k
bGUob3duaW5nX3ZpZXcpLCBiZWdpbiwgcGFnZV9jb25maWcpLT5kaXJlY3RvcnkpOwogCkBAIC01
NDIsNyArNTI4LDcgQEAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9nZXRfZGlyZWN0b3J5X2Zvcl9hZAog
ICAgIH0KIH0KIAotc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19zZWdyZWdhdGVkX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeSoKK3N0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeSoKIHBhc19zZWdyZWdhdGVkX3BhZ2VfZ2V0X2RpcmVjdG9yeV9mb3Jf
YWRkcmVzc19hbmRfcGFnZV9jb25maWcodWludHB0cl90IGJlZ2luLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVn
YXRlZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZpZykKIHsKQEAgLTU2NywxMiArNTUzLDEwIEBAIHBh
c19zZWdyZWdhdGVkX3BhZ2VfZ2V0X29iamVjdF9zaXplX2Zvcl8KICAgICBzd2l0Y2ggKHBhc19z
ZWdyZWdhdGVkX3ZpZXdfZ2V0X2tpbmQob3duaW5nX3ZpZXcpKSB7CiAgICAgY2FzZSBwYXNfc2Vn
cmVnYXRlZF9leGNsdXNpdmVfdmlld19raW5kOgogICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfaW5l
bGlnaWJsZV9leGNsdXNpdmVfdmlld19raW5kOgotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfYmlh
c2luZ192aWV3X2tpbmQ6Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9pbmVsaWdpYmxlX2JpYXNp
bmdfdmlld19raW5kOgogICAgICAgICByZXR1cm4gcGFnZS0+b2JqZWN0X3NpemU7CiAKICAgICBj
YXNlIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9oYW5kbGVfa2luZDoKLSAgICAgICAgcmV0dXJuIHBh
c19jb21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKAorICAg
ICAgICByZXR1cm4gcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfbG9h
ZCgKICAgICAgICAgICAgICZwYXNfc2VncmVnYXRlZF9zaGFyZWRfaGFuZGxlX3BhcnRpYWxfdmll
d19mb3Jfb2JqZWN0KAogICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3No
YXJlZF9oYW5kbGUob3duaW5nX3ZpZXcpLAogICAgICAgICAgICAgICAgIGJlZ2luLCBwYWdlX2Nv
bmZpZyktPmRpcmVjdG9yeSktPm9iamVjdF9zaXplOwpJbmRleDogU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3LmMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFydGlh
bF92aWV3LmMJKHJldmlzaW9uIDI3OTk2NCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlldy5jCSh3b3JraW5nIGNvcHkpCkBAIC0z
OSw3ICszOSw3IEBACiAKIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlldyoKIHBhc19zZWdyZWdh
dGVkX3BhcnRpYWxfdmlld19jcmVhdGUoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVf
ZGlyZWN0b3J5KiBkaXJlY3RvcnksCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnkq
IGRpcmVjdG9yeSwKICAgICBzaXplX3QgaW5kZXgpCiB7CiAgICAgc3RhdGljIGNvbnN0IGJvb2wg
dmVyYm9zZSA9IGZhbHNlOwpAQCAtNTcsNyArNTcsNyBAQCBwYXNfc2VncmVnYXRlZF9wYXJ0aWFs
X3ZpZXdfY3JlYXRlKAogICAgIC8qIFdlIGF0dGFjaCB0byBhIHNoYXJlZCB2aWV3IGxhemlseSAt
IG9uY2Ugd2Uga25vdyB3aGF0IHdlJ3JlIGFsbG9jYXRpbmcuICovCiAgICAgcGFzX2NvbXBhY3Rf
c2VncmVnYXRlZF9zaGFyZWRfdmlld19wdHJfc3RvcmUoJnJlc3VsdC0+c2hhcmVkX3ZpZXcsIE5V
TEwpOwogCi0gICAgcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnlf
cHRyX3N0b3JlKCZyZXN1bHQtPmRpcmVjdG9yeSwgZGlyZWN0b3J5KTsKKyAgICBwYXNfY29tcGFj
dF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9zdG9yZSgmcmVzdWx0LT5kaXJlY3Rvcnks
IGRpcmVjdG9yeSk7CiAKICAgICBQQVNfQVNTRVJUKCh1aW50OF90KWluZGV4ID09IGluZGV4KTsK
ICAgICByZXN1bHQtPmluZGV4ID0gKHVpbnQ4X3QpaW5kZXg7CkBAIC05NCw3ICs5NCw3IEBAIHZv
aWQgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X25vdGVfZWwKICAgICAgICAgaWYgKHZlcmJv
c2UpCiAgICAgICAgICAgICBwYXNfbG9nKCIlcDogQWN0dWFsbHkgdGVsbGluZyB0aGUgZGlyZWN0
b3J5IHRoYXQgd2UncmUgZWxpZ2libGUuXG4iLCB2aWV3KTsKICAgICAgICAgcGFzX3NlZ3JlZ2F0
ZWRfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbGlnaWJsZSgKLSAgICAgICAgICAgICZwYXNf
Y29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVs
bCgmdmlldy0+ZGlyZWN0b3J5KS0+YmFzZSwKKyAgICAgICAgICAgICZwYXNfY29tcGFjdF9zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKCZ2aWV3LT5kaXJlY3Rvcnkp
LT5iYXNlLAogICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X2FzX3ZpZXdf
bm9uX251bGwodmlldykpOwogICAgIH0KICAgICB2aWV3LT5lbGlnaWJpbGl0eV9oYXNfYmVlbl9u
b3RlZCA9IHRydWU7CkBAIC0xNjMsNyArMTYzLDcgQEAgYm9vbCBwYXNfc2VncmVnYXRlZF9wYXJ0
aWFsX3ZpZXdfc2hvdWxkXwogCiBzdGF0aWMgcGFzX2hlYXBfc3VtbWFyeSBjb21wdXRlX3N1bW1h
cnkocGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3KiB2aWV3KQogewotICAgIHBhc19zZWdyZWdh
dGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogc2l6ZV9kaXJlY3Rvcnk7CisgICAgcGFzX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIHNpemVfZGlyZWN0b3J5OwogICAgIHBhc19zZWdyZWdhdGVk
X2RpcmVjdG9yeSogZGlyZWN0b3J5OwogICAgIHBhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3KiBz
aGFyZWRfdmlldzsKICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyogcGFnZV9jb25maWdf
cHRyOwpAQCAtMTc4LDcgKzE3OCw3IEBAIHN0YXRpYyBwYXNfaGVhcF9zdW1tYXJ5IGNvbXB1dGVf
c3VtbWFyeSgKICAgICBzaXplX3QgZW5kX2luZGV4OwogICAgIHBhc19oZWFwX3N1bW1hcnkgcmVz
dWx0OwogCi0gICAgc2l6ZV9kaXJlY3RvcnkgPSBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgmdmlldy0+ZGlyZWN0b3J5KTsKKyAg
ICBzaXplX2RpcmVjdG9yeSA9IHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlf
cHRyX2xvYWRfbm9uX251bGwoJnZpZXctPmRpcmVjdG9yeSk7CiAgICAgZGlyZWN0b3J5ID0gJnNp
emVfZGlyZWN0b3J5LT5iYXNlOwogICAgIHBhZ2VfY29uZmlnX3B0ciA9IHBhc19zZWdyZWdhdGVk
X3BhZ2VfY29uZmlnX2tpbmRfZ2V0X2NvbmZpZyhkaXJlY3RvcnktPnBhZ2VfY29uZmlnX2tpbmQp
OwogICAgIHBhZ2VfY29uZmlnID0gKnBhZ2VfY29uZmlnX3B0cjsKQEAgLTI2Miw3ICsyNjIsNyBA
QCBwYXNfaGVhcF9zdW1tYXJ5IHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfCiBib29sIHBhc19zZWdy
ZWdhdGVkX3BhcnRpYWxfdmlld19pc19lbGlnaWJsZShwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3Zp
ZXcqIHZpZXcpCiB7CiAgICAgcmV0dXJuIFBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9HRVRfQklU
KAotICAgICAgICAmcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnlf
cHRyX2xvYWRfbm9uX251bGwoJnZpZXctPmRpcmVjdG9yeSktPmJhc2UsCisgICAgICAgICZwYXNf
Y29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKCZ2aWV3
LT5kaXJlY3RvcnkpLT5iYXNlLAogICAgICAgICB2aWV3LT5pbmRleCwgZWxpZ2libGUpOwogfQog
CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9w
YXJ0aWFsX3ZpZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXcuaAkocmV2aXNpb24gMjc5OTY0KQorKysg
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92
aWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDcgKzI3LDcgQEAKICNkZWZpbmUgUEFTX1NFR1JF
R0FURURfUEFSVElBTF9WSUVXX0gKIAogI2luY2x1ZGUgInBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRf
c2hhcmVkX3ZpZXdfcHRyLmgiCi0jaW5jbHVkZSAicGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnlfcHRyLmgiCisjaW5jbHVkZSAicGFzX2NvbXBhY3Rfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeV9wdHIuaCIKICNpbmNsdWRlICJwYXNfY29tcGFjdF90YWdnZWRfdW5z
aWduZWRfcHRyLmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcuaCIKICNp
bmNsdWRlICJwYXNfcGFnZV9ncmFudWxlX3VzZV9jb3VudC5oIgpAQCAtMzgsMTYgKzM4LDE2IEBA
IFBBU19CRUdJTl9FWFRFUk5fQzsKIAogc3RydWN0IHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmll
dzsKIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9zaGFyZWRfdmlldzsKLXN0cnVjdCBwYXNfc2VncmVn
YXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnk7CitzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3Rvcnk7CiB0eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXcgcGFz
X3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3OwogdHlwZWRlZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRf
c2hhcmVkX3ZpZXcgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXc7Ci10eXBlZGVmIHN0cnVjdCBw
YXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5OwordHlwZWRlZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnkgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnk7CiAKIHN0cnVjdCBwYXNfc2VncmVn
YXRlZF9wYXJ0aWFsX3ZpZXcgewogICAgIHVuc2lnbmVkIGlubGluZV9hbGxvY19iaXRzOwogICAg
IAogICAgIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXdfcHRyIHNoYXJlZF92aWV3
OwotICAgIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0ciBk
aXJlY3Rvcnk7CisgICAgcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIg
ZGlyZWN0b3J5OwogICAgIHBhc19jb21wYWN0X3RhZ2dlZF91bnNpZ25lZF9wdHIgYWxsb2NfYml0
czsKIAogICAgIC8qIFRoZSBpbmRleCBjYW4gYmUgc21hbGwgc2luY2Ugd2Ugd291bGQgbmV2ZXIg
Y3JlYXRlIGEgaGlnaC1pbmRleGVkIHBhcnRpYWwgdmlldy4gVGhhdCB3b3VsZCBub3QKQEAgLTk0
LDcgKzk0LDcgQEAgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X2FzX3ZpZXdfbm9uXwogCiBQ
QVNfQVBJIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlldyoKIHBhc19zZWdyZWdhdGVkX3BhcnRp
YWxfdmlld19jcmVhdGUoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
KiBkaXJlY3RvcnksCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9y
eSwKICAgICBzaXplX3QgaW5kZXgpOwogCiBQQVNfQVBJIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfcGFy
dGlhbF92aWV3X25vdGVfZWxpZ2liaWxpdHkoCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJlY3RvcnkuYwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9z
aGFyZWRfcGFnZV9kaXJlY3RvcnkuYwkocmV2aXNpb24gMjc5OTY0KQorKysgU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5
LmMJKHdvcmtpbmcgY29weSkKQEAgLTE0NCw4ICsxNDQsNyBAQCBwYXNfc2VncmVnYXRlZF9zaGFy
ZWRfdmlldyogcGFzX3NlZ3JlZ2F0CiAgICAgICAgIGNvbmZpZy5hcmcgPSAmZGF0YTsKICAgICAg
ICAgZGF0YS52aWV3ID0gTlVMTDsKIAotICAgICAgICBkaWRfZmluZF9zb21ldGhpbmcgPSBwYXNf
c2VncmVnYXRlZF9kaXJlY3RvcnlfaXRlcmF0ZV9mb3J3YXJkX3RvX3Rha2VfZmlyc3RfZWxpZ2li
bGUoCi0gICAgICAgICAgICAmY29uZmlnLCBQQVNfU0VHUkVHQVRFRF9TSEFSRURfUEFHRV9ESVJF
Q1RPUllfRklSU1RfRUxJR0lCTEVfS0lORCk7CisgICAgICAgIGRpZF9maW5kX3NvbWV0aGluZyA9
IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pdGVyYXRlX2ZvcndhcmRfdG9fdGFrZV9maXJzdF9l
bGlnaWJsZSgmY29uZmlnKTsKIAogICAgICAgICBpZiAoZGlkX2ZpbmRfc29tZXRoaW5nKSB7CiAg
ICAgICAgICAgICBpZiAoIWRhdGEudmlldykgewpAQCAtMzUwLDcgKzM0OSw3IEBAIHRha2VfbGFz
dF9lbXB0eV9jb25zaWRlcl92aWV3KAogCiAgICAgZm9yIChwYXJ0aWFsX2luZGV4ID0gcGFzX3Nl
Z3JlZ2F0ZWRfc2hhcmVkX2hhbmRsZV9udW1fdmlld3MocGFnZV9jb25maWcpOyBwYXJ0aWFsX2lu
ZGV4LS07KSB7CiAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlldyogcGFydGlhbF92
aWV3OwotICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIHNpemVf
ZGlyZWN0b3J5X29mX3BhcnRpYWw7CisgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0
b3J5KiBzaXplX2RpcmVjdG9yeV9vZl9wYXJ0aWFsOwogICAgICAgICBwYXNfc2VncmVnYXRlZF9k
aXJlY3RvcnkqIGRpcmVjdG9yeV9vZl9wYXJ0aWFsOwogCiAgICAgICAgIHBhcnRpYWxfdmlldyA9
IHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld19wdHJfbG9hZCgKQEAg
LTM1OSw3ICszNTgsNyBAQCB0YWtlX2xhc3RfZW1wdHlfY29uc2lkZXJfdmlldygKICAgICAgICAg
ICAgIGNvbnRpbnVlOwogCiAgICAgICAgIHNpemVfZGlyZWN0b3J5X29mX3BhcnRpYWwgPQotICAg
ICAgICAgICAgcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRy
X2xvYWQoJnBhcnRpYWxfdmlldy0+ZGlyZWN0b3J5KTsKKyAgICAgICAgICAgIHBhc19jb21wYWN0
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWQoJnBhcnRpYWxfdmlldy0+ZGlyZWN0
b3J5KTsKICAgICAgICAgZGlyZWN0b3J5X29mX3BhcnRpYWwgPSAmc2l6ZV9kaXJlY3Rvcnlfb2Zf
cGFydGlhbC0+YmFzZTsKICAgICAgICAgCiAgICAgICAgIGlmICghUEFTX1NFR1JFR0FURURfRElS
RUNUT1JZX1NFVF9CSVQoCkBAIC00NTEsNyArNDUwLDcgQEAgcmV0dXJuX3Rha2VuX3BhcnRpYWxf
dmlld3NfYWZ0ZXJfZGVjb21taQogICAgIHN3aXRjaF90b19vd25lcnNoaXAoc2hhcmVkX3ZpZXcs
ICZoZWxkX2xvY2ssIHBhZ2VfY29uZmlnKTsKICAgICBmb3IgKHBhcnRpYWxfaW5kZXggPSBwYXNf
c2VncmVnYXRlZF9zaGFyZWRfaGFuZGxlX251bV92aWV3cyhwYWdlX2NvbmZpZyk7IHBhcnRpYWxf
aW5kZXgtLTspIHsKICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3KiBwYXJ0aWFs
X3ZpZXc7Ci0gICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogc2l6
ZV9kaXJlY3Rvcnlfb2ZfcGFydGlhbDsKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnkqIHNpemVfZGlyZWN0b3J5X29mX3BhcnRpYWw7CiAgICAgICAgIHBhc19zZWdyZWdhdGVk
X2RpcmVjdG9yeSogZGlyZWN0b3J5X29mX3BhcnRpYWw7CiAgICAgICAgIGJvb2wgc2V0X3Jlc3Vs
dDsKIApAQCAtNDYzLDcgKzQ2Miw3IEBAIHJldHVybl90YWtlbl9wYXJ0aWFsX3ZpZXdzX2FmdGVy
X2RlY29tbWkKICAgICAgICAgcGFydGlhbF92aWV3LT5ub3RlZF9pbl9zY2FuID0gZmFsc2U7CiAK
ICAgICAgICAgc2l6ZV9kaXJlY3Rvcnlfb2ZfcGFydGlhbCA9Ci0gICAgICAgICAgICBwYXNfY29t
cGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZCgmcGFydGlhbF92
aWV3LT5kaXJlY3RvcnkpOworICAgICAgICAgICAgcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeV9wdHJfbG9hZCgmcGFydGlhbF92aWV3LT5kaXJlY3RvcnkpOwogICAgICAgICBk
aXJlY3Rvcnlfb2ZfcGFydGlhbCA9ICZzaXplX2RpcmVjdG9yeV9vZl9wYXJ0aWFsLT5iYXNlOwog
CiAgICAgICAgIFBBU19BU1NFUlQocGFydGlhbF92aWV3LT5pc19hdHRhY2hlZF90b19zaGFyZWRf
aGFuZGxlKTsKQEAgLTQ5Miw3ICs0OTEsNyBAQCByZXR1cm5fdGFrZW5fcGFydGlhbF92aWV3c191
bmxvY2tfdGhpc192CiAgICAgc3dpdGNoX3RvX293bmVyc2hpcChzaGFyZWRfdmlldywgJmhlbGRf
bG9jaywgcGFnZV9jb25maWcpOwogICAgIGZvciAocGFydGlhbF9pbmRleCA9IHBhc19zZWdyZWdh
dGVkX3NoYXJlZF9oYW5kbGVfbnVtX3ZpZXdzKHBhZ2VfY29uZmlnKTsgcGFydGlhbF9pbmRleC0t
OykgewogICAgICAgICBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXcqIHBhcnRpYWxfdmlldzsK
LSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBzaXplX2RpcmVj
dG9yeV9vZl9wYXJ0aWFsOworICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSog
c2l6ZV9kaXJlY3Rvcnlfb2ZfcGFydGlhbDsKICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0
b3J5KiBkaXJlY3Rvcnlfb2ZfcGFydGlhbDsKICAgICAgICAgYm9vbCBzZXRfcmVzdWx0OwogCkBA
IC01MDIsNyArNTAxLDcgQEAgcmV0dXJuX3Rha2VuX3BhcnRpYWxfdmlld3NfdW5sb2NrX3RoaXNf
dgogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIAogICAgICAgICBzaXplX2RpcmVjdG9y
eV9vZl9wYXJ0aWFsID0KLSAgICAgICAgICAgIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKCZwYXJ0aWFsX3ZpZXctPmRpcmVjdG9yeSk7CisgICAg
ICAgICAgICBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKCZw
YXJ0aWFsX3ZpZXctPmRpcmVjdG9yeSk7CiAgICAgICAgIGRpcmVjdG9yeV9vZl9wYXJ0aWFsID0g
JnNpemVfZGlyZWN0b3J5X29mX3BhcnRpYWwtPmJhc2U7CiAKICAgICAgICAgc2V0X3Jlc3VsdCA9
IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV92aWV3X2RpZF9iZWNvbWVfZWxpZ2libGVfYXRfaW5k
ZXgoCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRl
ZF9zaGFyZWRfcGFnZV9kaXJlY3RvcnkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJlY3RvcnkuaAko
cmV2aXNpb24gMjc5OTY0KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2
LDEwICs0Niw2IEBAIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJlY3QKICAg
ICAgICAgIC5uZXh0ID0gTlVMTCBcCiAgICAgIH0pCiAKLS8qIE5PVEU6IEl0IGRvZXNuJ3QgbWF0
dGVyIHdoaWNoIGtpbmQgb2YgZmlyc3RfZWxpZ2libGUgd2UgdXNlLiBXZSBqdXN0IHBpY2sgb25l
LiAqLwotI2RlZmluZSBQQVNfU0VHUkVHQVRFRF9TSEFSRURfUEFHRV9ESVJFQ1RPUllfRklSU1Rf
RUxJR0lCTEVfS0lORCBcCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2ZpcnN0X2VsaWdp
YmxlX2J1dF9ub3RfdGFibGVkX2tpbmQKLQogZXh0ZXJuIFBBU19BUEkgdW5zaWduZWQgcGFzX3Nl
Z3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5X3Byb2JhYmlsaXR5X29mX2luZWxpZ2liaWxp
dHk7CiAKIFBBU19BUEkgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXcqIHBhc19zZWdyZWdhdGVk
X3NoYXJlZF9wYWdlX2RpcmVjdG9yeV9maW5kX2ZpcnN0X2VsaWdpYmxlKApJbmRleDogU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnku
Ywo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeS5jCShyZXZpc2lvbiAyNzk5NjQpCisrKyBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeS5jCSh3
b3JraW5nIGNvcHkpCkBAIC0yOSwzMiArMjksOTM2IEBACiAKICNpbmNsdWRlICJwYXNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeS5oIgogCisjaW5jbHVkZSAicGFzX2JpdGZpdF9oZWFwLmgiCiAj
aW5jbHVkZSAicGFzX2RlZmVycmVkX2RlY29tbWl0X2xvZy5oIgogI2luY2x1ZGUgInBhc19leGNs
dXNpdmVfdmlld190ZW1wbGF0ZV9tZW1vX3RhYmxlLmgiCiAjaW5jbHVkZSAicGFzX21vbm90b25p
Y190aW1lLmgiCiAjaW5jbHVkZSAicGFzX3BhZ2VfbWFsbG9jLmgiCisjaW5jbHVkZSAicGFzX3Bh
Z2Vfc2hhcmluZ19wb29sLmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lu
bGluZXMuaCIKKyNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9pbmxpbmVz
LmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfcGFnZV9pbmxpbmVzLmgiCiAjaW5jbHVkZSAi
cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfaW5saW5lcy5oIgorI2luY2x1ZGUgInBhc19z
dHJlYW0uaCIKICNpbmNsdWRlICJwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dC5oIgorI2lu
Y2x1ZGUgInBhc191dGlsaXR5X2hlYXAuaCIKKyNpbmNsdWRlIDx1bmlzdGQuaD4KKworcGFzX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2Ny
ZWF0ZSgKKyAgICBwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLAorICAgIHVuc2lnbmVkIG9iamVj
dF9zaXplLAorICAgIHVuc2lnbmVkIGFsaWdubWVudCwKKyAgICBwYXNfaGVhcF9jb25maWcqIGhl
YXBfY29uZmlnLAorICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnKiBwYWdlX2NvbmZpZywK
KyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9jcmVhdGlvbl9tb2RlIGNyZWF0aW9u
X21vZGUpCit7CisgICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOworICAgIAor
ICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiByZXN1bHQ7CisgICAgcGFzX3NlZ3Jl
Z2F0ZWRfcGFnZV9jb25maWdfa2luZCBwYWdlX2NvbmZpZ19raW5kOworCisgICAgcGFzX2hlYXBf
bG9ja19hc3NlcnRfaGVsZCgpOworCisgICAgaWYgKHBhZ2VfY29uZmlnKQorICAgICAgICBwYWdl
X2NvbmZpZ19raW5kID0gcGFnZV9jb25maWctPmtpbmQ7CisgICAgZWxzZQorICAgICAgICBwYWdl
X2NvbmZpZ19raW5kID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZF9udWxsOworCisg
ICAgaWYgKHBhZ2VfY29uZmlnKQorICAgICAgICBQQVNfQVNTRVJUKGhlYXBfY29uZmlnID09IHBh
Z2VfY29uZmlnLT5iYXNlLmhlYXBfY29uZmlnX3B0cik7CisKKyAgICBwYXNfaGVhcF9jb25maWdf
YWN0aXZhdGUoaGVhcF9jb25maWcpOworCisgICAgaWYgKHZlcmJvc2UgJiYgcGFnZV9jb25maWcp
IHsKKyAgICAgICAgcGFzX2xvZygibG9jYWwgYWxsb2NhdG9yIHNpemUgZm9yICVzOiAlenVcbiIs
CisgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZF9nZXRfc3Ry
aW5nKHBhZ2VfY29uZmlnX2tpbmQpLAorICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5X2xvY2FsX2FsbG9jYXRvcl9zaXplX2Zvcl9jb25maWcoKnBhZ2VfY29uZmln
KSk7CisgICAgfQorCisgICAgcmVzdWx0ID0gcGFzX2ltbW9ydGFsX2hlYXBfYWxsb2NhdGUoCisg
ICAgICAgIHNpemVvZihwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSksCisgICAgICAgICJw
YXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSIsCisgICAgICAgIHBhc19vYmplY3RfYWxsb2Nh
dGlvbik7CisKKyAgICBpZiAodmVyYm9zZSkgeworICAgICAgICBwYXNfbG9nKCIlZDogQ3JlYXRp
bmcgZGlyZWN0b3J5ICVwIGZvciAlcyB3aXRoIG9iamVjdF9zaXplID0gJXUsIGFsaWdubWVudCA9
ICV1XG4iLAorICAgICAgICAgICAgICAgIGdldHBpZCgpLCByZXN1bHQsIHBhc19zZWdyZWdhdGVk
X3BhZ2VfY29uZmlnX2tpbmRfZ2V0X3N0cmluZyhwYWdlX2NvbmZpZ19raW5kKSwKKyAgICAgICAg
ICAgICAgICBvYmplY3Rfc2l6ZSwgYWxpZ25tZW50KTsKKyAgICB9CisKKyAgICBwYXNfc2VncmVn
YXRlZF9kaXJlY3RvcnlfY29uc3RydWN0KAorICAgICAgICAmcmVzdWx0LT5iYXNlLCBwYWdlX2Nv
bmZpZ19raW5kLAorICAgICAgICBoZWFwLT5ydW50aW1lX2NvbmZpZy0+c2hhcmluZ19tb2RlLAor
ICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9raW5kKTsKKworICAgIHJlc3Vs
dC0+aGVhcCA9IGhlYXA7CisgICAgcmVzdWx0LT5vYmplY3Rfc2l6ZSA9IG9iamVjdF9zaXplOwor
CisgICAgUEFTX0FTU0VSVChwYXNfaXNfcG93ZXJfb2ZfMihhbGlnbm1lbnQpKTsKKyAgICBQQVNf
QVNTRVJUKHBhc19pc19hbGlnbmVkKG9iamVjdF9zaXplLCBhbGlnbm1lbnQpKTsKKyAgICByZXN1
bHQtPmFsaWdubWVudF9zaGlmdCA9IHBhc19sb2cyKGFsaWdubWVudCk7CisgICAgCisgICAgcmVz
dWx0LT5iYXNlbGluZV9hbGxvY2F0b3JfaW5kZXggPSAyICogUEFTX05VTV9CQVNFTElORV9BTExP
Q0FUT1JTOworICAgIHJlc3VsdC0+dmlld19jYWNoZV9pbmRleCA9IChwYXNfYWxsb2NhdG9yX2lu
ZGV4KVVJTlRfTUFYOworICAgIAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2Rh
dGFfcHRyX3N0b3JlKCZyZXN1bHQtPmRhdGEsIE5VTEwpOwogCi0jaWZkZWYgUEFTX0xJQk1BTExP
QwotYm9vbCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV91c2VfdGFibGluZyA9IHRydWU7
Ci0jZWxzZQotYm9vbCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV91c2VfdGFibGluZyA9
IGZhbHNlOwotI2VuZGlmCi0KLXZvaWQgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfY29u
c3RydWN0KAotICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgIHBh
c19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmQgcGFnZV9jb25maWdfa2luZCwKLSAgICBwYXNf
cGFnZV9zaGFyaW5nX21vZGUgcGFnZV9zaGFyaW5nX21vZGUsCi0gICAgcGFzX3NlZ3JlZ2F0ZWRf
ZGlyZWN0b3J5X2tpbmQga2luZCkKKyAgICBpZiAocGFnZV9jb25maWcpCisgICAgICAgIHBhc19j
b21wYWN0X2F0b21pY19iaXRmaXRfc2l6ZV9jbGFzc19wdHJfc3RvcmUoJnJlc3VsdC0+Yml0Zml0
X3NpemVfY2xhc3MsIE5VTEwpOworICAgIGVsc2UgeworICAgICAgICBwYXNfYml0Zml0X2hlYXAq
IGJpdGZpdF9oZWFwOworICAgICAgICBwYXNfYml0Zml0X3NpemVfY2xhc3MqIGJpdGZpdF9zaXpl
X2NsYXNzOworCisgICAgICAgIGJpdGZpdF9oZWFwID0gcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9nZXRf
Yml0Zml0KGhlYXAsIGhlYXBfY29uZmlnLCBwYXNfbG9ja19pc19oZWxkKTsKKyAgICAgICAgUEFT
X0FTU0VSVChiaXRmaXRfaGVhcCk7CisgICAgICAgIAorICAgICAgICBiaXRmaXRfc2l6ZV9jbGFz
cyA9CisgICAgICAgICAgICBwYXNfYml0Zml0X2hlYXBfZW5zdXJlX3NpemVfY2xhc3MoCisgICAg
ICAgICAgICAgICAgYml0Zml0X2hlYXAsIHJlc3VsdCwgaGVhcF9jb25maWcsIHBhc19sb2NrX2lz
X2hlbGQpOworICAgICAgICAKKyAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9zaXpl
X2NsYXNzX3B0cl9zdG9yZSgKKyAgICAgICAgICAgICZyZXN1bHQtPmJpdGZpdF9zaXplX2NsYXNz
LCBiaXRmaXRfc2l6ZV9jbGFzcyk7CisgICAgfQorICAgIAorICAgIHBhc19jb21wYWN0X2F0b21p
Y19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9zdG9yZSgmcmVzdWx0LT5uZXh0X2Zvcl9o
ZWFwLCBOVUxMKTsKKworICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3NldF9kaWRf
dHJ5X3RvX2NyZWF0ZV92aWV3X2NhY2hlKHJlc3VsdCwgZmFsc2UpOworCisgICAgc3dpdGNoIChj
cmVhdGlvbl9tb2RlKSB7CisgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9p
bml0aWFsX2NyZWF0aW9uX21vZGU6CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBwYXNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeV9mdWxsX2NyZWF0aW9uX21vZGU6CisgICAgICAgIHBhc19z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2ZpbmlzaF9jcmVhdGlvbihyZXN1bHQpOworICAgICAg
ICBicmVhazsKKyAgICB9CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit2b2lkIHBhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5X2ZpbmlzaF9jcmVhdGlvbihwYXNfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeSogZGlyZWN0b3J5KQogewotICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9j
b25zdHJ1Y3QoZGlyZWN0b3J5LCBwYWdlX2NvbmZpZ19raW5kLCBwYWdlX3NoYXJpbmdfbW9kZSwg
a2luZCk7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcDsKKworICAgIGhlYXAgPSBkaXJl
Y3RvcnktPmhlYXA7CisgICAgCisgICAgaWYgKCFoZWFwLT5ydW50aW1lX2NvbmZpZy0+ZGlyZWN0
b3J5X3NpemVfYm91bmRfZm9yX2Jhc2VsaW5lX2FsbG9jYXRvcnMpCisgICAgICAgIHBhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5X2NyZWF0ZV90bGNfYWxsb2NhdG9yKGRpcmVjdG9yeSk7Cisg
ICAgaWYgKCFoZWFwLT5ydW50aW1lX2NvbmZpZy0+ZGlyZWN0b3J5X3NpemVfYm91bmRfZm9yX3Bh
cnRpYWxfdmlld3MpCisgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2VuYWJs
ZV9leGNsdXNpdmVfdmlld3MoZGlyZWN0b3J5KTsKKyAgICBpZiAoIWhlYXAtPnJ1bnRpbWVfY29u
ZmlnLT5kaXJlY3Rvcnlfc2l6ZV9ib3VuZF9mb3Jfbm9fdmlld19jYWNoZSkKKyAgICAgICAgcGFz
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfY3JlYXRlX3RsY192aWV3X2NhY2hlKGRpcmVjdG9y
eSk7Cit9CisKK3Bhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGEqIHBhc19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5X2Vuc3VyZV9kYXRhKAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5KiBkaXJlY3RvcnksCisgICAgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19o
b2xkX21vZGUpCit7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YSogZGF0
YTsKKyAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyogcGFnZV9jb25maWc7CisKKyAgICBk
YXRhID0gcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJfbG9hZCgmZGlyZWN0
b3J5LT5kYXRhKTsKKworICAgIGlmIChkYXRhKQorICAgICAgICByZXR1cm4gZGF0YTsKKworICAg
IHBhZ2VfY29uZmlnID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZF9nZXRfY29uZmln
KGRpcmVjdG9yeS0+YmFzZS5wYWdlX2NvbmZpZ19raW5kKTsKKworICAgIHBhc19oZWFwX2xvY2tf
bG9ja19jb25kaXRpb25hbGx5KGhlYXBfbG9ja19ob2xkX21vZGUpOworCisgICAgZGF0YSA9IHBh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGFfcHRyX2xvYWQoJmRpcmVjdG9yeS0+ZGF0
YSk7CisgICAgaWYgKGRhdGEpIHsKKyAgICAgICAgcGFzX2hlYXBfbG9ja191bmxvY2tfY29uZGl0
aW9uYWxseShoZWFwX2xvY2tfaG9sZF9tb2RlKTsKKyAgICAgICAgcmV0dXJuIGRhdGE7CisgICAg
fQorCisgICAgaWYgKHBhZ2VfY29uZmlnICYmIHBhZ2VfY29uZmlnLT5iYXNlLnBhZ2Vfc2l6ZSA+
IHBhZ2VfY29uZmlnLT5iYXNlLmdyYW51bGVfc2l6ZSkgeworICAgICAgICBkYXRhID0gcGFzX2lt
bW9ydGFsX2hlYXBfYWxsb2NhdGUoCisgICAgICAgICAgICBzaXplb2YocGFzX2V4dGVuZGVkX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YSksCisgICAgICAgICAgICAicGFzX2V4dGVuZGVk
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YSIsCisgICAgICAgICAgICBwYXNfb2JqZWN0
X2FsbG9jYXRpb24pOworCisgICAgICAgIHBhc19jb21wYWN0X3RhZ2dlZF9wYWdlX2dyYW51bGVf
dXNlX2NvdW50X3B0cl9zdG9yZSgKKyAgICAgICAgICAgICYoKHBhc19leHRlbmRlZF9zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5X2RhdGEqKWRhdGEpLT5mdWxsX3VzZV9jb3VudHMsIE5VTEwpOwor
ICAgIH0gZWxzZSB7CisgICAgICAgIGRhdGEgPSBwYXNfaW1tb3J0YWxfaGVhcF9hbGxvY2F0ZSgK
KyAgICAgICAgICAgIHNpemVvZihwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhKSwK
KyAgICAgICAgICAgICJwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhIiwKKyAgICAg
ICAgICAgIHBhc19vYmplY3RfYWxsb2NhdGlvbik7CisgICAgfQorCisgICAgcGFzX2NvbXBhY3Rf
dGFnZ2VkX3Vuc2lnbmVkX3B0cl9zdG9yZSgmZGF0YS0+ZnVsbF9hbGxvY19iaXRzLCBOVUxMKTsK
KyAgICBkYXRhLT5vZmZzZXRfZnJvbV9wYWdlX2JvdW5kYXJ5X3RvX2ZpcnN0X29iamVjdCA9IDA7
CisgICAgZGF0YS0+b2Zmc2V0X2Zyb21fcGFnZV9ib3VuZGFyeV90b19lbmRfb2ZfbGFzdF9vYmpl
Y3QgPSAwOworICAgIGRhdGEtPmZ1bGxfbnVtX25vbl9lbXB0eV93b3JkcyA9IDA7CisgICAgZGF0
YS0+YWxsb2NhdG9yX2luZGV4ID0gKHBhc19hbGxvY2F0b3JfaW5kZXgpVUlOVF9NQVg7CisgICAg
cGFzX2NvbXBhY3RfYXRvbWljX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9zdG9yZSgm
ZGF0YS0+bmV4dF9mb3JfbGF5b3V0LCBOVUxMKTsKKworICAgIHBhc19mZW5jZSgpOworCisgICAg
cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJfc3RvcmUoJmRpcmVjdG9yeS0+
ZGF0YSwgZGF0YSk7CisKKyAgICBwYXNfaGVhcF9sb2NrX3VubG9ja19jb25kaXRpb25hbGx5KGhl
YXBfbG9ja19ob2xkX21vZGUpOworCisgICAgcmV0dXJuIGRhdGE7Cit9CisKK3Bhc19leHRlbmRl
ZF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGEqCitwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeV9nZXRfZXh0ZW5kZWRfZGF0YSgKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeSogZGlyZWN0b3J5KQoreworICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnKiBwYWdl
X2NvbmZpZzsKKworICAgIHBhZ2VfY29uZmlnID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdf
a2luZF9nZXRfY29uZmlnKGRpcmVjdG9yeS0+YmFzZS5wYWdlX2NvbmZpZ19raW5kKTsKKyAgICBQ
QVNfQVNTRVJUKHBhZ2VfY29uZmlnKTsKKyAgICBQQVNfQVNTRVJUKHBhZ2VfY29uZmlnLT5iYXNl
LnBhZ2Vfc2l6ZSA+IHBhZ2VfY29uZmlnLT5iYXNlLmdyYW51bGVfc2l6ZSk7CisKKyAgICByZXR1
cm4gKHBhc19leHRlbmRlZF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGEqKQorICAgICAg
ICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhX3B0cl9sb2FkKCZkaXJlY3Rvcnkt
PmRhdGEpOworfQorCit2b2lkIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2NyZWF0ZV90
bGNfYWxsb2NhdG9yKAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rv
cnkpCit7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YSogZGF0YTsKKyAg
ICAKKyAgICBwYXNfaGVhcF9sb2NrX2Fzc2VydF9oZWxkKCk7CisKKyAgICBpZiAocGFzX3NlZ3Jl
Z2F0ZWRfcGFnZV9jb25maWdfa2luZF9pc191dGlsaXR5KGRpcmVjdG9yeS0+YmFzZS5wYWdlX2Nv
bmZpZ19raW5kKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgZGF0YSA9IHBhc19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5X2Vuc3VyZV9kYXRhKGRpcmVjdG9yeSwgcGFzX2xvY2tfaXNfaGVsZCk7
CisKKyAgICBpZiAoZGF0YS0+YWxsb2NhdG9yX2luZGV4ICE9IChwYXNfYWxsb2NhdG9yX2luZGV4
KVVJTlRfTUFYKQorICAgICAgICByZXR1cm47CisgICAgCisgICAgcGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9sYXlvdXRfYWRkKGRpcmVjdG9yeSk7CisgICAgCisgICAgUEFTX0FTU0VSVChkYXRhLT5h
bGxvY2F0b3JfaW5kZXggPCAocGFzX2FsbG9jYXRvcl9pbmRleClVSU5UX01BWCk7Cit9CisKK3Zv
aWQgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfY3JlYXRlX3RsY192aWV3X2NhY2hlKAor
ICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCit7CisgICAgc2l6
ZV90IGluZGV4OworICAgIAorICAgIHBhc19oZWFwX2xvY2tfYXNzZXJ0X2hlbGQoKTsKKworICAg
IGlmIChwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX2lzX3V0aWxpdHkoZGlyZWN0b3J5
LT5iYXNlLnBhZ2VfY29uZmlnX2tpbmQpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIXBh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3NldF9kaWRfdHJ5X3RvX2NyZWF0ZV92aWV3X2Nh
Y2hlKGRpcmVjdG9yeSwgdHJ1ZSkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghcGFzX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlfdmlld19jYWNoZV9jYXBhY2l0eShkaXJlY3RvcnkpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBQQVNfQVNTRVJUKGRpcmVjdG9yeS0+dmlld19jYWNoZV9p
bmRleCA9PSAocGFzX2FsbG9jYXRvcl9pbmRleClVSU5UX01BWCk7CisgICAgCisgICAgcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfYWRkX3ZpZXdfY2FjaGUoZGlyZWN0b3J5KTsKKyAgICAK
KyAgICBQQVNfQVNTRVJUKGRpcmVjdG9yeS0+dmlld19jYWNoZV9pbmRleCA8IChwYXNfYWxsb2Nh
dG9yX2luZGV4KVVJTlRfTUFYKTsKKworICAgIGZvciAoaW5kZXggPSBwYXNfc2VncmVnYXRlZF9k
aXJlY3Rvcnlfc2l6ZSgmZGlyZWN0b3J5LT5iYXNlKTsgaW5kZXgtLTspIHsKKyAgICAgICAgcGFz
X3NlZ3JlZ2F0ZWRfdmlldyB2aWV3OworCisgICAgICAgIHZpZXcgPSBwYXNfc2VncmVnYXRlZF9k
aXJlY3RvcnlfZ2V0KCZkaXJlY3RvcnktPmJhc2UsIGluZGV4KTsKKworICAgICAgICBpZiAoIXBh
c19zZWdyZWdhdGVkX3ZpZXdfaXNfc29tZV9leGNsdXNpdmUodmlldykpCisgICAgICAgICAgICBj
b250aW51ZTsKKworICAgICAgICBpZiAoIXBhc19zZWdyZWdhdGVkX3ZpZXdfbG9ja19vd25lcnNo
aXBfbG9ja19pZl9vd25lZCh2aWV3KSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAg
IHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3BhZ2UodmlldyktPnZpZXdfY2FjaGVfaW5kZXggPSBk
aXJlY3RvcnktPnZpZXdfY2FjaGVfaW5kZXg7CisgICAgICAgIAorICAgICAgICBwYXNfc2VncmVn
YXRlZF92aWV3X3VubG9ja19vd25lcnNoaXBfbG9jayh2aWV3KTsKKyAgICB9Cit9CisKK3ZvaWQg
cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZW5hYmxlX2V4Y2x1c2l2ZV92aWV3cygKKyAg
ICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KQoreworICAgIHBhc19z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGEqIGRhdGE7CisgICAgcGFzX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnkqIHRlbXBsYXRlX2RpcmVjdG9yeTsKKyAgICBwYXNfc2VncmVnYXRlZF9w
YWdlX2NvbmZpZ19raW5kIHBhZ2VfY29uZmlnX2tpbmQ7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9jb25maWcqIHBhZ2VfY29uZmlnX3B0cjsKKyAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZp
ZyBwYWdlX2NvbmZpZzsKKyAgICB1bnNpZ25lZCBvYmplY3Rfc2l6ZTsKKyAgICBzaXplX3QgYWxs
b2NfYml0c19ieXRlczsKKyAgICB1bnNpZ25lZCBvZmZzZXQ7CisgICAgdW5zaWduZWQgYmVnaW47
CisgICAgdW5zaWduZWQgZW5kOworICAgIHVuc2lnbmVkKiBmdWxsX2FsbG9jX2JpdHM7CisgICAg
dW5zaWduZWQgZnVsbF9udW1fbm9uX2VtcHR5X3dvcmRzOworICAgIHNpemVfdCBpbmRleDsKKyAg
ICBwYXNfYWxsb2NhdGlvbl9jb25maWcgYm9vdHN0cmFwX2FsbG9jYXRpb25fY29uZmlnOworCisg
ICAgcGFzX2hlYXBfbG9ja19hc3NlcnRfaGVsZCgpOworCisgICAgZGF0YSA9IHBhc19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5X2Vuc3VyZV9kYXRhKGRpcmVjdG9yeSwgcGFzX2xvY2tfaXNfaGVs
ZCk7CisgICAgaWYgKGRhdGEtPmZ1bGxfbnVtX25vbl9lbXB0eV93b3JkcykKKyAgICAgICAgcmV0
dXJuOworCisgICAgcGFnZV9jb25maWdfa2luZCA9IGRpcmVjdG9yeS0+YmFzZS5wYWdlX2NvbmZp
Z19raW5kOworICAgIGlmIChwYWdlX2NvbmZpZ19raW5kID09IHBhc19zZWdyZWdhdGVkX3BhZ2Vf
Y29uZmlnX2tpbmRfbnVsbCkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIHBhZ2VfY29uZmln
X3B0ciA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfZ2V0X2NvbmZpZyhwYWdlX2Nv
bmZpZ19raW5kKTsKKyAgICBvYmplY3Rfc2l6ZSA9IGRpcmVjdG9yeS0+b2JqZWN0X3NpemU7Cisg
ICAgCisgICAgdGVtcGxhdGVfZGlyZWN0b3J5ID0gcGFzX2V4Y2x1c2l2ZV92aWV3X3RlbXBsYXRl
X21lbW9fdGFibGVfZ2V0KAorICAgICAgICAmcGFzX2V4Y2x1c2l2ZV92aWV3X3RlbXBsYXRlX21l
bW9fdGFibGVfaW5zdGFuY2UsCisgICAgICAgIHBhc19leGNsdXNpdmVfdmlld190ZW1wbGF0ZV9t
ZW1vX2tleV9jcmVhdGUob2JqZWN0X3NpemUsIHBhZ2VfY29uZmlnX2tpbmQpKTsKKyAgICBpZiAo
dGVtcGxhdGVfZGlyZWN0b3J5KSB7CisgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0
b3J5X2RhdGEqIHRlbXBsYXRlX2RhdGE7CisKKyAgICAgICAgdGVtcGxhdGVfZGF0YSA9IHBhc19z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGFfcHRyX2xvYWQoJnRlbXBsYXRlX2RpcmVjdG9y
eS0+ZGF0YSk7CisgICAgICAgIAorICAgICAgICBkYXRhLT5mdWxsX2FsbG9jX2JpdHMgPSB0ZW1w
bGF0ZV9kYXRhLT5mdWxsX2FsbG9jX2JpdHM7CisgICAgICAgIGRhdGEtPm9mZnNldF9mcm9tX3Bh
Z2VfYm91bmRhcnlfdG9fZmlyc3Rfb2JqZWN0ID0KKyAgICAgICAgICAgIHRlbXBsYXRlX2RhdGEt
Pm9mZnNldF9mcm9tX3BhZ2VfYm91bmRhcnlfdG9fZmlyc3Rfb2JqZWN0OworICAgICAgICBkYXRh
LT5vZmZzZXRfZnJvbV9wYWdlX2JvdW5kYXJ5X3RvX2VuZF9vZl9sYXN0X29iamVjdCA9CisgICAg
ICAgICAgICB0ZW1wbGF0ZV9kYXRhLT5vZmZzZXRfZnJvbV9wYWdlX2JvdW5kYXJ5X3RvX2VuZF9v
Zl9sYXN0X29iamVjdDsKKworICAgICAgICBpZiAocGFnZV9jb25maWdfcHRyLT5iYXNlLnBhZ2Vf
c2l6ZSA+IHBhZ2VfY29uZmlnX3B0ci0+YmFzZS5ncmFudWxlX3NpemUpIHsKKyAgICAgICAgICAg
IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2dldF9leHRlbmRlZF9kYXRhKGRpcmVjdG9y
eSktPmZ1bGxfdXNlX2NvdW50cyA9CisgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnlfZ2V0X2V4dGVuZGVkX2RhdGEoCisgICAgICAgICAgICAgICAgICAgIHRlbXBs
YXRlX2RpcmVjdG9yeSktPmZ1bGxfdXNlX2NvdW50czsKKyAgICAgICAgfQorCisgICAgICAgIHBh
c19mZW5jZSgpOworICAgICAgICBkYXRhLT5mdWxsX251bV9ub25fZW1wdHlfd29yZHMgPQorICAg
ICAgICAgICAgdGVtcGxhdGVfZGF0YS0+ZnVsbF9udW1fbm9uX2VtcHR5X3dvcmRzOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgcGFnZV9jb25maWcgPSAqcGFnZV9jb25maWdfcHRyOwor
ICAgIAorICAgIGFsbG9jX2JpdHNfYnl0ZXMgPSBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19u
dW1fYWxsb2NfYnl0ZXMocGFnZV9jb25maWcpOworICAgIGZ1bGxfYWxsb2NfYml0cyA9IHBhc19p
bW1vcnRhbF9oZWFwX2FsbG9jYXRlX3dpdGhfbWFudWFsX2FsaWdubWVudCgKKyAgICAgICAgYWxs
b2NfYml0c19ieXRlcywgc2l6ZW9mKHVuc2lnbmVkKSwKKyAgICAgICAgInBhc19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5X2RhdGEvZnVsbF9hbGxvY19iaXRzIiwKKyAgICAgICAgcGFzX29iamVj
dF9hbGxvY2F0aW9uKTsKKyAgICBwYXNfY29tcGFjdF90YWdnZWRfdW5zaWduZWRfcHRyX3N0b3Jl
KCZkYXRhLT5mdWxsX2FsbG9jX2JpdHMsIGZ1bGxfYWxsb2NfYml0cyk7CisgICAgcGFzX3plcm9f
bWVtb3J5KGZ1bGxfYWxsb2NfYml0cywgYWxsb2NfYml0c19ieXRlcyk7CisKKyAgICBiZWdpbiA9
IHBhc19zZWdyZWdhdGVkX3BhZ2Vfb2Zmc2V0X2Zyb21fcGFnZV9ib3VuZGFyeV90b19maXJzdF9v
YmplY3RfZXhjbHVzaXZlKG9iamVjdF9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cGFnZV9jb25maWcpOworICAgIGVuZCA9IHBhc19zZWdyZWdhdGVkX3BhZ2Vfb2Zmc2V0X2Zyb21f
cGFnZV9ib3VuZGFyeV90b19lbmRfb2ZfbGFzdF9vYmplY3RfZXhjbHVzaXZlKG9iamVjdF9zaXpl
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VfY29uZmlnKTsKKworICAgIGRh
dGEtPm9mZnNldF9mcm9tX3BhZ2VfYm91bmRhcnlfdG9fZmlyc3Rfb2JqZWN0ID0gYmVnaW47Cisg
ICAgZGF0YS0+b2Zmc2V0X2Zyb21fcGFnZV9ib3VuZGFyeV90b19lbmRfb2ZfbGFzdF9vYmplY3Qg
PSBlbmQ7CisKKyAgICBmb3IgKG9mZnNldCA9IGJlZ2luOyBvZmZzZXQgPCBlbmQ7IG9mZnNldCAr
PSBvYmplY3Rfc2l6ZSkgeworICAgICAgICBwYXNfYml0dmVjdG9yX3NldCgKKyAgICAgICAgICAg
IGZ1bGxfYWxsb2NfYml0cywKKyAgICAgICAgICAgIHBhc19wYWdlX2Jhc2VfaW5kZXhfb2Zfb2Jq
ZWN0X2F0X29mZnNldF9mcm9tX3BhZ2VfYm91bmRhcnkoCisgICAgICAgICAgICAgICAgb2Zmc2V0
LCBwYWdlX2NvbmZpZy5iYXNlKSwKKyAgICAgICAgICAgIHRydWUpOworICAgIH0KKyAgICAKKyAg
ICBmdWxsX251bV9ub25fZW1wdHlfd29yZHMgPSAwOworICAgIGZvciAoaW5kZXggPSBwYXNfc2Vn
cmVnYXRlZF9wYWdlX2NvbmZpZ19udW1fYWxsb2Nfd29yZHMocGFnZV9jb25maWcpOyBpbmRleC0t
OykgeworICAgICAgICBpZiAoZnVsbF9hbGxvY19iaXRzW2luZGV4XSkKKyAgICAgICAgICAgIGZ1
bGxfbnVtX25vbl9lbXB0eV93b3JkcysrOworICAgIH0KKyAgICBQQVNfQVNTRVJUKGZ1bGxfbnVt
X25vbl9lbXB0eV93b3Jkcyk7CisKKyAgICBpZiAocGFnZV9jb25maWcuYmFzZS5wYWdlX3NpemUg
PiBwYWdlX2NvbmZpZy5iYXNlLmdyYW51bGVfc2l6ZSkgeworICAgICAgICBwYXNfZXh0ZW5kZWRf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhKiBleHRlbmRlZF9kYXRhOworICAgICAgICBw
YXNfcGFnZV9ncmFudWxlX3VzZV9jb3VudCogZnVsbF91c2VfY291bnRzOworICAgICAgICB1aW50
cHRyX3QgbnVtX2dyYW51bGVzOworICAgICAgICBib29sIGluaXRpYWxpemVfcmVzdWx0OworCisg
ICAgICAgIGV4dGVuZGVkX2RhdGEgPSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9nZXRf
ZXh0ZW5kZWRfZGF0YShkaXJlY3RvcnkpOworCisgICAgICAgIG51bV9ncmFudWxlcyA9IHBhZ2Vf
Y29uZmlnLmJhc2UucGFnZV9zaXplIC8gcGFnZV9jb25maWcuYmFzZS5ncmFudWxlX3NpemU7CisK
KyAgICAgICAgZnVsbF91c2VfY291bnRzID0gcGFzX2ltbW9ydGFsX2hlYXBfYWxsb2NhdGVfd2l0
aF9tYW51YWxfYWxpZ25tZW50KAorICAgICAgICAgICAgbnVtX2dyYW51bGVzICogc2l6ZW9mKHBh
c19wYWdlX2dyYW51bGVfdXNlX2NvdW50KSwKKyAgICAgICAgICAgIHNpemVvZihwYXNfcGFnZV9n
cmFudWxlX3VzZV9jb3VudCksCisgICAgICAgICAgICAicGFzX2V4dGVuZGVkX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnlfZGF0YS9mdWxsX3VzZV9jb3VudHMiLAorICAgICAgICAgICAgcGFzX29i
amVjdF9hbGxvY2F0aW9uKTsKKworICAgICAgICBpbml0aWFsaXplX3Jlc3VsdCA9IHBhc19zZWdy
ZWdhdGVkX3BhZ2VfaW5pdGlhbGl6ZV9mdWxsX3VzZV9jb3VudHMoCisgICAgICAgICAgICBOVUxM
LCBkaXJlY3RvcnksIGZ1bGxfdXNlX2NvdW50cywgbnVtX2dyYW51bGVzLCBwYWdlX2NvbmZpZyk7
CisKKyAgICAgICAgLyogVGhpcyBzaG91bGQgaGF2ZSBpbml0aWFsaXplZCBhbGwgb2YgdGhlIGJp
dHMuICovCisgICAgICAgIFBBU19BU1NFUlQoaW5pdGlhbGl6ZV9yZXN1bHQpOworCisgICAgICAg
IHBhc19jb21wYWN0X3RhZ2dlZF9wYWdlX2dyYW51bGVfdXNlX2NvdW50X3B0cl9zdG9yZSgKKyAg
ICAgICAgICAgICZleHRlbmRlZF9kYXRhLT5mdWxsX3VzZV9jb3VudHMsCisgICAgICAgICAgICBm
dWxsX3VzZV9jb3VudHMpOworICAgIH0KKworICAgIHBhc19mZW5jZSgpOworICAgIGRhdGEtPmZ1
bGxfbnVtX25vbl9lbXB0eV93b3JkcyA9IGZ1bGxfbnVtX25vbl9lbXB0eV93b3JkczsKKyAgICBQ
QVNfQVNTRVJUKGRhdGEtPmZ1bGxfbnVtX25vbl9lbXB0eV93b3JkcyA9PSBmdWxsX251bV9ub25f
ZW1wdHlfd29yZHMpOworCisgICAgcGFzX2Jvb3RzdHJhcF9mcmVlX2hlYXBfYWxsb2NhdGlvbl9j
b25maWdfY29uc3RydWN0KCZib290c3RyYXBfYWxsb2NhdGlvbl9jb25maWcsIHBhc19sb2NrX2lz
X2hlbGQpOworICAgIAorICAgIHBhc19leGNsdXNpdmVfdmlld190ZW1wbGF0ZV9tZW1vX3RhYmxl
X2FkZF9uZXcoCisgICAgICAgICZwYXNfZXhjbHVzaXZlX3ZpZXdfdGVtcGxhdGVfbWVtb190YWJs
ZV9pbnN0YW5jZSwKKyAgICAgICAgZGlyZWN0b3J5LAorICAgICAgICBOVUxMLAorICAgICAgICAm
Ym9vdHN0cmFwX2FsbG9jYXRpb25fY29uZmlnKTsKK30KKworcGFzX2Jhc2VsaW5lX2FsbG9jYXRv
cioKK3Bhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3NlbGVjdF9hbGxvY2F0b3Jfc2xvdygK
KyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KQoreworICAgIHBh
c19iYXNlbGluZV9hbGxvY2F0b3JfdGFibGVfaW5pdGlhbGl6ZV9pZl9uZWNlc3NhcnkoKTsKKyAg
ICAKKyAgICBmb3IgKDs7KSB7CisgICAgICAgIHVuc2lnbmVkIGFfaW5kZXg7CisgICAgICAgIHVu
c2lnbmVkIGJfaW5kZXg7CisgICAgICAgIHBhc19iYXNlbGluZV9hbGxvY2F0b3IqIGFfYWxsb2Nh
dG9yOworICAgICAgICBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yKiBiX2FsbG9jYXRvcjsKKyAgICAg
ICAgdW5zaWduZWQgc2VsZWN0ZWRfaW5kZXg7CisgICAgICAgIHBhc19iYXNlbGluZV9hbGxvY2F0
b3IqIHNlbGVjdGVkX2FsbG9jYXRvcjsKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnkqIHNlbGVjdGVkX2RpcmVjdG9yeTsKKworICAgICAgICBzZWxlY3RlZF9pbmRleCA9IGRp
cmVjdG9yeS0+YmFzZWxpbmVfYWxsb2NhdG9yX2luZGV4OworICAgICAgICBpZiAoc2VsZWN0ZWRf
aW5kZXggPCBQQVNfTlVNX0JBU0VMSU5FX0FMTE9DQVRPUlMpIHsKKyAgICAgICAgICAgIHNlbGVj
dGVkX2FsbG9jYXRvciA9IHBhc19iYXNlbGluZV9hbGxvY2F0b3JfdGFibGUgKyBzZWxlY3RlZF9p
bmRleDsKKworICAgICAgICAgICAgcGFzX2xvY2tfbG9jaygmc2VsZWN0ZWRfYWxsb2NhdG9yLT5s
b2NrKTsKKworICAgICAgICAgICAgaWYgKGRpcmVjdG9yeS0+YmFzZWxpbmVfYWxsb2NhdG9yX2lu
ZGV4ICE9IHNlbGVjdGVkX2luZGV4KSB7CisgICAgICAgICAgICAgICAgcGFzX2xvY2tfdW5sb2Nr
KCZzZWxlY3RlZF9hbGxvY2F0b3ItPmxvY2spOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOwor
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1cm4gc2VsZWN0ZWRfYWxsb2NhdG9yOwor
ICAgICAgICB9CisKKyAgICAgICAgaWYgKHNlbGVjdGVkX2luZGV4IDwgMiAqIFBBU19OVU1fQkFT
RUxJTkVfQUxMT0NBVE9SUykKKyAgICAgICAgICAgIHNlbGVjdGVkX2luZGV4IC09IFBBU19OVU1f
QkFTRUxJTkVfQUxMT0NBVE9SUzsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBQQVNfQVNT
RVJUKHNlbGVjdGVkX2luZGV4ID09IDIgKiBQQVNfTlVNX0JBU0VMSU5FX0FMTE9DQVRPUlMpOwor
ICAgICAgICAgICAgCisgICAgICAgICAgICBhX2luZGV4ID0gcGFzX2Jhc2VsaW5lX2FsbG9jYXRv
cl90YWJsZV9nZXRfcmFuZG9tX2luZGV4KCk7CisgICAgICAgICAgICBiX2luZGV4ID0gcGFzX2Jh
c2VsaW5lX2FsbG9jYXRvcl90YWJsZV9nZXRfcmFuZG9tX2luZGV4KCk7CisgICAgCisgICAgICAg
ICAgICBhX2FsbG9jYXRvciA9IHBhc19iYXNlbGluZV9hbGxvY2F0b3JfdGFibGUgKyBhX2luZGV4
OworICAgICAgICAgICAgYl9hbGxvY2F0b3IgPSBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX3RhYmxl
ICsgYl9pbmRleDsKKworICAgICAgICAgICAgLyogSWYgaXQncyBjaGVhcCB0byBzdG9wIG9uZSBv
ZiB0aGVzZSB0aGVuIGp1c3QgcGljayBlaXRoZXIgb25lLiAqLworICAgICAgICAgICAgaWYgKCFw
YXNfbG9jYWxfYWxsb2NhdG9yX2lzX2FjdGl2ZSgmYV9hbGxvY2F0b3ItPnUuYWxsb2NhdG9yKSkK
KyAgICAgICAgICAgICAgICBzZWxlY3RlZF9pbmRleCA9IGFfaW5kZXg7CisgICAgICAgICAgICBl
bHNlIGlmICghcGFzX2xvY2FsX2FsbG9jYXRvcl9pc19hY3RpdmUoJmJfYWxsb2NhdG9yLT51LmFs
bG9jYXRvcikpCisgICAgICAgICAgICAgICAgc2VsZWN0ZWRfaW5kZXggPSBiX2luZGV4OworICAg
ICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlldyBhX3Zp
ZXc7CisgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlldyBiX3ZpZXc7CisKKyAgICAg
ICAgICAgICAgICBhX3ZpZXcgPSBhX2FsbG9jYXRvci0+dS5hbGxvY2F0b3IudmlldzsKKyAgICAg
ICAgICAgICAgICBiX3ZpZXcgPSBiX2FsbG9jYXRvci0+dS5hbGxvY2F0b3IudmlldzsKKworICAg
ICAgICAgICAgICAgIGlmICghYV92aWV3KQorICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZF9p
bmRleCA9IGFfaW5kZXg7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAg
ICBzZWxlY3RlZF9pbmRleCA9IGJfaW5kZXg7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
IGlmICghcGFzX2NvbXBhcmVfYW5kX3N3YXBfdWludDE2X3dlYWsoJmRpcmVjdG9yeS0+YmFzZWxp
bmVfYWxsb2NhdG9yX2luZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAyICogUEFTX05VTV9CQVNFTElORV9BTExPQ0FUT1JTLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQVNfTlVNX0JBU0VMSU5F
X0FMTE9DQVRPUlMgKyBzZWxlY3RlZF9pbmRleCkpCisgICAgICAgICAgICAgICAgY29udGludWU7
CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgc2VsZWN0ZWRfYWxsb2NhdG9yID0gcGFzX2Jhc2Vs
aW5lX2FsbG9jYXRvcl90YWJsZSArIHNlbGVjdGVkX2luZGV4OworICAgIAorICAgICAgICBwYXNf
bG9ja19sb2NrKCZzZWxlY3RlZF9hbGxvY2F0b3ItPmxvY2spOworCisgICAgICAgIGlmIChkaXJl
Y3RvcnktPmJhc2VsaW5lX2FsbG9jYXRvcl9pbmRleCA9PSBzZWxlY3RlZF9pbmRleCkKKyAgICAg
ICAgICAgIHJldHVybiBzZWxlY3RlZF9hbGxvY2F0b3I7CisKKyAgICAgICAgaWYgKGRpcmVjdG9y
eS0+YmFzZWxpbmVfYWxsb2NhdG9yX2luZGV4ICE9IFBBU19OVU1fQkFTRUxJTkVfQUxMT0NBVE9S
UyArIHNlbGVjdGVkX2luZGV4KSB7CisgICAgICAgICAgICBwYXNfbG9ja191bmxvY2soJnNlbGVj
dGVkX2FsbG9jYXRvci0+bG9jayk7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQor
CisgICAgICAgIGlmICghcGFzX2xvY2FsX2FsbG9jYXRvcl9pc19udWxsKCZzZWxlY3RlZF9hbGxv
Y2F0b3ItPnUuYWxsb2NhdG9yKSkgeworICAgICAgICAgICAgcGFzX251bV9iYXNlbGluZV9hbGxv
Y2F0b3JfZXZpY3Rpb25zKys7CisgICAgICAgICAgICBzZWxlY3RlZF9kaXJlY3RvcnkgPSBwYXNf
c2VncmVnYXRlZF92aWV3X2dldF9zaXplX2RpcmVjdG9yeShzZWxlY3RlZF9hbGxvY2F0b3ItPnUu
YWxsb2NhdG9yLnZpZXcpOworICAgICAgICAgICAgcGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl9kZXRh
Y2hfZGlyZWN0b3J5KHNlbGVjdGVkX2FsbG9jYXRvcik7CisgICAgICAgICAgICBwYXNfZmVuY2Uo
KTsKKyAgICAgICAgICAgIHNlbGVjdGVkX2RpcmVjdG9yeS0+YmFzZWxpbmVfYWxsb2NhdG9yX2lu
ZGV4ID0gMiAqIFBBU19OVU1fQkFTRUxJTkVfQUxMT0NBVE9SUzsKKyAgICAgICAgfQorCisgICAg
ICAgIHBhc19iYXNlbGluZV9hbGxvY2F0b3JfYXR0YWNoX2RpcmVjdG9yeShzZWxlY3RlZF9hbGxv
Y2F0b3IsIGRpcmVjdG9yeSk7CisKKyAgICAgICAgZGlyZWN0b3J5LT5iYXNlbGluZV9hbGxvY2F0
b3JfaW5kZXggPSBzZWxlY3RlZF9pbmRleDsKKworICAgICAgICByZXR1cm4gc2VsZWN0ZWRfYWxs
b2NhdG9yOworICAgIH0KK30KKworc3RhdGljIHBhc19zZWdyZWdhdGVkX3ZpZXcgdGFrZV9maXJz
dF9lbGlnaWJsZV9kaXJlY3RfY3JlYXRlX25ld192aWV3X2NhbGxiYWNrKAorICAgIHBhc19zZWdy
ZWdhdGVkX2RpcmVjdG9yeV9pdGVyYXRlX2NvbmZpZyogY29uZmlnKQoreworICAgIHN0YXRpYyBj
b25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKKyAgICAKKyAgICBwYXNfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeSogc2l6ZV9kaXJlY3Rvcnk7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3
OworICAgIHBhc19oZWFwX3J1bnRpbWVfY29uZmlnKiBydW50aW1lX2NvbmZpZzsKKworICAgIFBB
U19URVNUSU5HX0FTU0VSVChjb25maWctPmRpcmVjdG9yeS0+ZGlyZWN0b3J5X2tpbmQgPT0gcGFz
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlfa2luZCk7CisgICAgCisgICAgc2l6ZV9kaXJlY3Rv
cnkgPSAocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqKWNvbmZpZy0+ZGlyZWN0b3J5Owor
CisgICAgcnVudGltZV9jb25maWcgPSBzaXplX2RpcmVjdG9yeS0+aGVhcC0+cnVudGltZV9jb25m
aWc7CisKKyAgICBpZiAoY29uZmlnLT5pbmRleCA+PSBydW50aW1lX2NvbmZpZy0+ZGlyZWN0b3J5
X3NpemVfYm91bmRfZm9yX3BhcnRpYWxfdmlld3MpCisgICAgICAgIHBhc19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5X2VuYWJsZV9leGNsdXNpdmVfdmlld3Moc2l6ZV9kaXJlY3RvcnkpOworCisg
ICAgaWYgKGNvbmZpZy0+aW5kZXggPj0gcnVudGltZV9jb25maWctPmRpcmVjdG9yeV9zaXplX2Jv
dW5kX2Zvcl9iYXNlbGluZV9hbGxvY2F0b3JzKQorICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeV9jcmVhdGVfdGxjX2FsbG9jYXRvcihzaXplX2RpcmVjdG9yeSk7CisKKyAgICBp
ZiAoY29uZmlnLT5pbmRleCA+PSBydW50aW1lX2NvbmZpZy0+ZGlyZWN0b3J5X3NpemVfYm91bmRf
Zm9yX25vX3ZpZXdfY2FjaGUpCisgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
X2NyZWF0ZV90bGNfdmlld19jYWNoZShzaXplX2RpcmVjdG9yeSk7CisgICAgCisgICAgaWYgKHBh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2FyZV9leGNsdXNpdmVfdmlld3NfZW5hYmxlZChz
aXplX2RpcmVjdG9yeSkpIHsKKyAgICAgICAgdmlldyA9IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2
ZV92aWV3X2FzX3ZpZXdfbm9uX251bGwoCisgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9leGNs
dXNpdmVfdmlld19jcmVhdGUoc2l6ZV9kaXJlY3RvcnksIGNvbmZpZy0+aW5kZXgpKTsKKyAgICAg
ICAgaWYgKHZlcmJvc2UpIHsKKyAgICAgICAgICAgIHBhc19sb2coIiVwOiBjcmVhdGVkIGV4Y2x1
c2l2ZSAlcC5cbiIsCisgICAgICAgICAgICAgICAgICAgIHNpemVfZGlyZWN0b3J5LCBwYXNfc2Vn
cmVnYXRlZF92aWV3X2dldF9wdHIodmlldykpOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAg
ICAgICAgdmlldyA9IHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld19hc192aWV3X25vbl9udWxs
KAorICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X2NyZWF0ZShzaXplX2Rp
cmVjdG9yeSwgY29uZmlnLT5pbmRleCkpOworICAgICAgICBpZiAodmVyYm9zZSkgeworICAgICAg
ICAgICAgcGFzX2xvZygiJXA6IGNyZWF0ZWQgcGFydGlhbCAlcC5cbiIsCisgICAgICAgICAgICAg
ICAgICAgIHNpemVfZGlyZWN0b3J5LCBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9wdHIodmlldykp
OworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKHZlcmJvc2UpIHsKKyAgICAgICAgcGFzX2xv
ZygiJWQ6ICVwICglcywgJXUpOiBub3cgaGF2ZSAlenUgdmlld3MuXG4iLAorICAgICAgICAgICAg
ICAgIGdldHBpZCgpLCBzaXplX2RpcmVjdG9yeSwKKyAgICAgICAgICAgICAgICBwYXNfc2VncmVn
YXRlZF9wYWdlX2NvbmZpZ19raW5kX2dldF9zdHJpbmcoc2l6ZV9kaXJlY3RvcnktPmJhc2UucGFn
ZV9jb25maWdfa2luZCksCisgICAgICAgICAgICAgICAgc2l6ZV9kaXJlY3RvcnktPm9iamVjdF9z
aXplLAorICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9zaXplKCZzaXpl
X2RpcmVjdG9yeS0+YmFzZSkpOworICAgIH0KKworICAgIHJldHVybiB2aWV3OworfQorCitwYXNf
c2VncmVnYXRlZF92aWV3IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3Rha2VfZmlyc3Rf
ZWxpZ2libGUoCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIHNpemVfZGlyZWN0
b3J5KQoreworICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKKyAgICAKKyAg
ICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkqIGRpcmVjdG9yeTsKKyAgICBwYXNfc2VncmVnYXRl
ZF9kaXJlY3RvcnlfaXRlcmF0ZV9jb25maWcgY29uZmlnOworICAgIHBhc19zZWdyZWdhdGVkX3Zp
ZXcgdmlldzsKKworICAgIFBBU19URVNUSU5HX0FTU0VSVCgKKyAgICAgICAgc2l6ZV9kaXJlY3Rv
cnktPmJhc2UucGFnZV9jb25maWdfa2luZCAhPSBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19r
aW5kX251bGwpOworCisgICAgZGlyZWN0b3J5ID0gJnNpemVfZGlyZWN0b3J5LT5iYXNlOworCisg
ICAgdmlldyA9IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3Rha2VfZmlyc3RfZWxpZ2li
bGVfaW1wbCgKKyAgICAgICAgZGlyZWN0b3J5LCAmY29uZmlnLAorICAgICAgICB0YWtlX2ZpcnN0
X2VsaWdpYmxlX2RpcmVjdF9jcmVhdGVfbmV3X3ZpZXdfY2FsbGJhY2spOworCisgICAgaWYgKHZl
cmJvc2UpIHsKKyAgICAgICAgcGFzX2xvZygiVGFraW5nIGVsaWdpYmxlIHZpZXcgJXAgKCVzKS5c
biIsCisgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcHRyKHZpZXcpLAor
ICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3ZpZXdfa2luZF9nZXRfc3RyaW5nKHBhc19z
ZWdyZWdhdGVkX3ZpZXdfZ2V0X2tpbmQodmlldykpKTsKKyAgICB9CisKKyAgICBQQVNfVEVTVElO
R19BU1NFUlQoIVBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9HRVRfQklUKAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZGlyZWN0b3J5LCBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9pbmRleCh2
aWV3KSwgZWxpZ2libGUpKTsKKyAgICAKKyAgICByZXR1cm4gdmlldzsKIH0KIAogdHlwZWRlZiBz
dHJ1Y3QgeworICAgIHBhc19kZWZlcnJlZF9kZWNvbW1pdF9sb2cqIGRlY29tbWl0X2xvZzsKKyAg
ICBwYXNfbG9ja19ob2xkX21vZGUgaGVhcF9sb2NrX2hvbGRfbW9kZTsKKyAgICBwYXNfc2VncmVn
YXRlZF9wYWdlX2NvbmZpZyogbXlfcGFnZV9jb25maWdfcHRyOworICAgIHBhc19wYWdlX3NoYXJp
bmdfcG9vbF90YWtlX3Jlc3VsdCByZXN1bHQ7Cit9IHRha2VfbGFzdF9lbXB0eV9kYXRhOworCitz
dGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdW5zaWduZWQKK3Rha2VfbGFzdF9lbXB0eV9zaG91bGRf
Y29uc2lkZXJfdmlld19wYXJhbGxlbCgKKyAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfYml0
dmVjdG9yX3NlZ21lbnQgc2VnbWVudCwKKyAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXRl
cmF0ZV9jb25maWcqIGNvbmZpZykKK3sKKyAgICB0YWtlX2xhc3RfZW1wdHlfZGF0YSogZGF0YTsK
KworICAgIGRhdGEgPSBjb25maWctPmFyZzsKKworICAgIHJldHVybiBzZWdtZW50LmVtcHR5X2Jp
dHM7Cit9CisKK3N0YXRpYyBib29sCit0YWtlX2xhc3RfZW1wdHlfY29uc2lkZXJfdmlldyhwYXNf
c2VncmVnYXRlZF9kaXJlY3RvcnlfaXRlcmF0ZV9jb25maWcqIGNvbmZpZykKK3sKKyAgICBzdGF0
aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CisKKyAgICAvKiBXZSBwdXQgb3VyIHRha2Vf
bGFzdF9lbXB0eSBsb2dpYyBpbiBjb25zaWRlcl92aWV3IGJlY2F1c2Ugc2hvdWxkX2NvbnNpZGVy
X3ZpZXdfcGFyYWxsZWwKKyAgICAgICBjYW5ub3QgcmVhbGx5IHRlbGwgaWYgYSBwYWdlIGNhbiBi
ZSB0YWtlbi4gKi8KKworICAgIHRha2VfbGFzdF9lbXB0eV9kYXRhKiBkYXRhOworICAgIHBhc19z
ZWdyZWdhdGVkX2RpcmVjdG9yeSogZGlyZWN0b3J5OworICAgIHBhc19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5KiBzaXplX2RpcmVjdG9yeTsKKyAgICBwYXNfZGVmZXJyZWRfZGVjb21taXRfbG9n
KiBkZWNvbW1pdF9sb2c7CisgICAgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21v
ZGU7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcqIG15X3BhZ2VfY29uZmlnX3B0cjsK
KyAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBteV9wYWdlX2NvbmZpZzsKKyAgICBzaXpl
X3QgaW5kZXg7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlldyBnZW5lcmljX3ZpZXc7CisgICAgcGFz
X3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcqIHZpZXc7CisgICAgcGFzX2xvY2sqIGhlbGRfbG9j
azsKKyAgICBwYXNfc2VncmVnYXRlZF9wYWdlKiBwYWdlOworICAgIGJvb2wgZGlkX3Rha2VfYml0
OworICAgIHBhc19sb2NrKiBvd25lcnNoaXBfbG9jazsKKworICAgIGRpcmVjdG9yeSA9IGNvbmZp
Zy0+ZGlyZWN0b3J5OworICAgIGluZGV4ID0gY29uZmlnLT5pbmRleDsKKworICAgIGRpZF90YWtl
X2JpdCA9IFBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9TRVRfQklUKGRpcmVjdG9yeSwgaW5kZXgs
IGVtcHR5LCBmYWxzZSk7CisgICAgCisgICAgaWYgKCFkaWRfdGFrZV9iaXQpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgIHNpemVfZGlyZWN0b3J5ID0gKHBhc19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5KilkaXJlY3Rvcnk7CisgICAgZ2VuZXJpY192aWV3ID0gcGFzX3NlZ3JlZ2F0ZWRf
ZGlyZWN0b3J5X2dldChkaXJlY3RvcnksIGluZGV4KTsKKyAgICBQQVNfQVNTRVJUKHBhc19zZWdy
ZWdhdGVkX3ZpZXdfaXNfZXhjbHVzaXZlKGdlbmVyaWNfdmlldykpOworICAgIHZpZXcgPSBwYXNf
c2VncmVnYXRlZF92aWV3X2dldF9leGNsdXNpdmUoZ2VuZXJpY192aWV3KTsKKyAgICBoZWxkX2xv
Y2sgPSBOVUxMOworICAgIGRhdGEgPSBjb25maWctPmFyZzsKKworICAgIG15X3BhZ2VfY29uZmln
X3B0ciA9IGRhdGEtPm15X3BhZ2VfY29uZmlnX3B0cjsKKyAgICBoZWFwX2xvY2tfaG9sZF9tb2Rl
ID0gZGF0YS0+aGVhcF9sb2NrX2hvbGRfbW9kZTsKKyAgICBkZWNvbW1pdF9sb2cgPSBkYXRhLT5k
ZWNvbW1pdF9sb2c7CisgICAgbXlfcGFnZV9jb25maWcgPSAqbXlfcGFnZV9jb25maWdfcHRyOwor
ICAgIAorICAgIGlmICh2ZXJib3NlKQorICAgICAgICBwYXNfbG9nKCIlcDogY29uc2lkZXJpbmcg
ZW1wdHkgaW5kZXggJXp1LCB2aWV3ID0gJXAuXG4iLCBkaXJlY3RvcnksIGluZGV4LCB2aWV3KTsK
KworICAgIGlmIChwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19pc191dGlsaXR5KG15X3BhZ2Vf
Y29uZmlnKSkKKyAgICAgICAgb3duZXJzaGlwX2xvY2sgPSBwYXNfbG9ja19mb3Jfc3dpdGNoX2Nv
bmRpdGlvbmFsbHkoJnBhc19oZWFwX2xvY2ssIGhlYXBfbG9ja19ob2xkX21vZGUpOworICAgIGVs
c2UKKyAgICAgICAgb3duZXJzaGlwX2xvY2sgPSAmdmlldy0+b3duZXJzaGlwX2xvY2s7CisKKyAg
ICBwYXNfbG9ja19zd2l0Y2goJmhlbGRfbG9jaywgb3duZXJzaGlwX2xvY2spOworICAgIAorICAg
IGlmIChwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19pc191dGlsaXR5KG15X3BhZ2VfY29uZmln
KSkKKyAgICAgICAgcGFzX2hlYXBfbG9ja19hc3NlcnRfaGVsZCgpOworICAgIAorICAgIGlmICgh
dmlldy0+aXNfb3duZWQpIHsKKyAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICBwYXNf
bG9nKCJub3Qgb3duZWQuXG4iKTsKKyAgICAgICAgCisgICAgICAgIGdvdG8gcmVsZWFzZV9oZWxk
X2xvY2tfYW5kX3JldHVybl9mYWxzZTsKKyAgICB9CisgICAgCisgICAgcGFnZSA9IHBhc19zZWdy
ZWdhdGVkX3BhZ2VfZm9yX2JvdW5kYXJ5KHZpZXctPnBhZ2VfYm91bmRhcnksIG15X3BhZ2VfY29u
ZmlnKTsKKyAgICAKKyAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgcGFzX2xvZygiZXhjbHVzaXZl
IG1vZGUuXG4iKTsKKyAgICAKKyAgICBpZiAoIVBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9TRVRf
QklUKGRpcmVjdG9yeSwgaW5kZXgsIGVsaWdpYmxlLCBmYWxzZSkpCisgICAgICAgIGdvdG8gcmVs
ZWFzZV9oZWxkX2xvY2tfYW5kX3JldHVybl9mYWxzZTsKKyAgICAgICAgCisgICAgaWYgKCF2aWV3
LT5pc19vd25lZCkgeworICAgICAgICBib29sIHJlc3VsdDsKKyAgICAgICAgcmVzdWx0ID0gcGFz
X3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbGlnaWJsZV9hdF9pbmRleChk
aXJlY3RvcnksIGluZGV4KTsKKyAgICAgICAgUEFTX0FTU0VSVChyZXN1bHQpOworICAgICAgICBn
b3RvIHJlbGVhc2VfaGVsZF9sb2NrX2FuZF9yZXR1cm5fZmFsc2U7CisgICAgfQorICAgIAorICAg
IC8qIFRoZSBlbXB0eSBiaXQganVzdCBtZWFucyB0aGF0IHRoZSBwYWdlICpjb3VsZCogYmUgZW1w
dHkuIEl0J3MgcG9zc2libGUgdG8gY29tZSBoZXJlIGFuZCBmaW5kCisgICAgICAgYSBub24tZW1w
dHkgcGFnZS4gSW4gdGhhdCBjYXNlIHdlIG1ha2UgdGhlIHBhZ2UgZWxpZ2libGUgYWdhaW4gYnV0
IGxlYXZlIHRoZSBlbXB0eSBiaXQgY2xlYXIuICovCisgICAgaWYgKCFwYXNfc2VncmVnYXRlZF9w
YWdlX3F1YWxpZmllc19mb3JfZGVjb21taXQocGFnZSwgbXlfcGFnZV9jb25maWcpKSB7CisgICAg
ICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAgcGFzX2xvZygid2FzIG5vdCBlbXB0eS5cbiIp
OworICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfdmlld19kaWRfYmVjb21lX2VsaWdp
YmxlX2F0X2luZGV4KGRpcmVjdG9yeSwgaW5kZXgpOworICAgICAgICBnb3RvIHJlbGVhc2VfaGVs
ZF9sb2NrX2FuZF9yZXR1cm5fZmFsc2U7CisgICAgfQorICAgIAorICAgIC8qIFRoaXMgaGFzIGEg
dmVyeSBzaG9ydCByYWNlIHRoYXQgY2F1c2VzIHRoZSBkaXJlY3RvcnkgdG8gcG9zc2libHkgd2Fz
dGUgbWVtb3J5OiBpZgorICAgICAgIGR1cmluZyB0aGlzIGJyaWVmIHdpbmRvdyB3ZSBoYXZlIHNv
bWVvbmUgdHJ5aW5nIHRvIGZpbmQgYW4gZWxpZ2libGUgcGFnZSwgdGhleSBtYXkKKyAgICAgICBl
bmQgdXAgYWxsb2NhdGluZyBhIG5ldyBvbmUuCisgICAgICAgCisgICAgICAgQnV0IHdlIGRlbGli
ZXJhdGVseSBrZWVwIHRoZSBkdXJhdGlvbiBvZiB0aGlzIHJhY2Ugd2luZG93IHNob3J0LiBXZSBt
YWtlIHRoZSBwYWdlCisgICAgICAgaW5lbGlnaWJsZSBvbmx5IGR1cmluZyB0aGUgdGltZSBpdCB0
YWtlcyB1cyB0byBmaWd1cmUgb3V0IGhvdyB0byBkZWNvbW1pdCBpdCBhbmQgdG8KKyAgICAgICBh
Y3F1aXJlIHRoZSBjb21taXQgbG9jay4gVGhlIGNvbW1pdCBsb2NrIHNob3VsZCBiZSB0cml2aWFs
bHkgYXZhaWxhYmxlIGhlcmUsIHNvCisgICAgICAgdGhhdCdzIGp1c3QgYSBDQVMuIEFmdGVyIHRo
YXQsIHRoZSBwYWdlIGlzIG1hZGUgZWl0aGVyIGVsaWdpYmxlIG9yIGRlY29tbWl0dGVkLgorICAg
ICAgIEVpdGhlciB3YXksIGlmIGl0J3MgdGhlIGZpcnN0IGVsaWdpYmxlLCBzb21lb25lIHdpbGwg
dHJ5IHRvIHVzZSBpdC4gQXQgdGhhdCBwb2ludCwKKyAgICAgICBpZiB3ZSBhcmUgbm90IGRvbmUs
IHRoZXkgd2lsbCB3YWl0IGZvciB1cyBzaW5jZSB3ZSBob2xkIHRoZSBjb21taXQgbG9jay4gKi8K
KworICAgIHBhc19zZWdyZWdhdGVkX3BhZ2Vfc3dpdGNoX2xvY2socGFnZSwgJmhlbGRfbG9jaywg
bXlfcGFnZV9jb25maWcpOworCisgICAgaWYgKHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2lz
X3V0aWxpdHkobXlfcGFnZV9jb25maWcpKSB7CisgICAgICAgIC8qIFRoZSB1dGlsaXR5IGhlYXAg
cmVxdWlyZXMgdXMgdG8gaG9sZCB0aGUgaGVhcCBsb2NrIGFueXRpbWUgd2UnZCBob2xkIHRoZSBv
d25lcnNoaXAsIGNvbW1pdCwKKyAgICAgICAgICAgb3IgcGFnZSBsb2Nrcy4gSXQganVzdCBzbyBo
YXBwZW5zIHRoYXQgd2Ugd2VyZSBhbHJlYWR5IGhvbGRpbmcgdGhlIGhlYXAgbG9jaywgYW5kCisg
ICAgICAgICAgIHBhZ2Vfc3dpdGNoX2xvY2sgZG9lcyBub3RoaW5nIGZvciB1dGlsaXR5LiBTbyB3
ZSBzaG91bGQgc3RpbGwgYmUgaG9sZGluZyB0aGUgaGVhcCBsb2NrLiAqLworICAgICAgICBQQVNf
QVNTRVJUKGhlbGRfbG9jayA9PSBwYXNfbG9ja19mb3Jfc3dpdGNoX2NvbmRpdGlvbmFsbHkoJnBh
c19oZWFwX2xvY2ssIGhlYXBfbG9ja19ob2xkX21vZGUpKTsKKyAgICAgICAgcGFzX2hlYXBfbG9j
a19hc3NlcnRfaGVsZCgpOworICAgIH0KKworICAgIFBBU19BU1NFUlQoIVBBU19TRUdSRUdBVEVE
X0RJUkVDVE9SWV9HRVRfQklUKGRpcmVjdG9yeSwgaW5kZXgsIGVsaWdpYmxlKSk7CisKKyAgICAv
KiBJdCdzIHRvdGFsbHkgcG9zc2libGUgdGhhdCB0aGUgZW1wdHkgYml0IGdvdCBzZXQgYWdhaW4u
IFdlIHNob3VsZCBjbGVhciBpdCBmb3Igc3VyZSBub3cuICovCisgICAgUEFTX1NFR1JFR0FURURf
RElSRUNUT1JZX1NFVF9CSVQoZGlyZWN0b3J5LCBpbmRleCwgZW1wdHksIGZhbHNlKTsKKworICAg
IFBBU19URVNUSU5HX0FTU0VSVChwYXNfc2VncmVnYXRlZF9wYWdlX3F1YWxpZmllc19mb3JfZGVj
b21taXQocGFnZSwgbXlfcGFnZV9jb25maWcpKTsKKyAgICAKKyAgICBpZiAocGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9jb25maWdfaXNfdXRpbGl0eShteV9wYWdlX2NvbmZpZykpIHsKKyAgICAgICAgUEFT
X0FTU0VSVChteV9wYWdlX2NvbmZpZy5iYXNlLnBhZ2Vfc2l6ZSA9PSBteV9wYWdlX2NvbmZpZy5i
YXNlLmdyYW51bGVfc2l6ZSk7CisgICAgICAgIAorICAgICAgICBwYXNfaGVhcF9sb2NrX2Fzc2Vy
dF9oZWxkKCk7CisKKyAgICAgICAgdmlldy0+aXNfb3duZWQgPSBmYWxzZTsKKyAgICAgICAgaWYg
KHZlcmJvc2UpIHsKKyAgICAgICAgICAgIHBhc19sb2coInZpZXcgJXAgaGFzIGlzX293bmVkID0g
ZmFsc2UgZHVlIHRvIHV0aWxpdHkgZGVjb21taXQgaW4gdGFrZV9sYXN0X2VtcHR5XG4iLAorICAg
ICAgICAgICAgICAgICAgICB2aWV3KTsKKyAgICAgICAgfQorICAgICAgICBwYXNfcGFnZV9tYWxs
b2NfZGVjb21taXQoCisgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2JvdW5kYXJ5KHBh
Z2UsIG15X3BhZ2VfY29uZmlnKSwKKyAgICAgICAgICAgIG15X3BhZ2VfY29uZmlnLmJhc2UucGFn
ZV9zaXplKTsKKyAgICAgICAgZGVjb21taXRfbG9nLT50b3RhbCArPSBteV9wYWdlX2NvbmZpZy5i
YXNlLnBhZ2Vfc2l6ZTsKKyAgICAgICAgbXlfcGFnZV9jb25maWcuYmFzZS5kZXN0cm95X3BhZ2Vf
aGVhZGVyKCZwYWdlLT5iYXNlLCBwYXNfbG9ja19pc19oZWxkKTsKKyAgICAgICAgcGFzX3NlZ3Jl
Z2F0ZWRfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbGlnaWJsZV9hdF9pbmRleChkaXJlY3Rv
cnksIGluZGV4KTsKKyAgICAgICAgcGFzX2xvY2tfc3dpdGNoKCZoZWxkX2xvY2ssIE5VTEwpOwor
ICAgICAgICBkYXRhLT5yZXN1bHQgPSBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9zdWNjZXNz
OworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgCisgICAgaWYgKHBhZ2UtPm51bV9u
b25fZW1wdHlfd29yZHMpIHsKKyAgICAgICAgYm9vbCBkZWNvbW1pdF9yZXN1bHQ7CisgICAgICAg
IHNpemVfdCBudW1fY29tbWl0dGVkX2dyYW51bGVzOworICAgICAgICAKKyAgICAgICAgLyogTm8g
cGFydGlhbCBkZWNvbW1pdCBpbiB0aGUgdXRpbGl0eSBoZWFwISAqLworICAgICAgICBQQVNfQVNT
RVJUKCFwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19pc191dGlsaXR5KG15X3BhZ2VfY29uZmln
KSk7CisgICAgICAgIAorICAgICAgICAvKiBXZSBrbm93IHRoYXQgdGhlcmUgbXVzdCBiZSBlbXB0
eSBncmFudWxlcyBpbiB0aGlzIHBhZ2UsIHNpbmNlIGVpdGhlciB0aGUgZW1wdHkKKyAgICAgICAg
ICAgb3IgdGhlIHBhcnRseV9lbXB0eSBiaXQgd2FzIHNldC4gVGhvc2UgYml0cyB3b3VsZG4ndCBn
ZXQgc2V0IHVubGVzcyB3ZSBub3RpY2VkCisgICAgICAgICAgIGFuIGVtcHR5IGdyYW51bGUuIElm
IHdlIGRpZCB0cnkgdG8gYWxsb2NhdGUgZnJvbSB0aG9zZSBncmFudWxlcywgd2Ugd291bGQgZmly
c3QKKyAgICAgICAgICAgaGF2ZSB0byB0YWtlIGF3YXkgaXRzIGVsaWdpYmlsaXR5IGFuZCB0aGVu
IGNsZWFyIGl0cyBlbXB0eSBiaXRzLiBCdXQgd2Uga25vdyB0aGF0CisgICAgICAgICAgIHRoaXMg
Y291bGQgbm90IGhhdmUgaGFwcGVuZWQgc2luY2UgKndlKiB0b29rIGF3YXkgaXRzIGVsaWdpYmls
aXR5LiAqLworICAgICAgICAKKyAgICAgICAgZGVjb21taXRfcmVzdWx0ID0gcGFzX3NlZ3JlZ2F0
ZWRfcGFnZV90YWtlX2VtcHR5X2dyYW51bGVzKAorICAgICAgICAgICAgcGFnZSwgZGVjb21taXRf
bG9nLCAmaGVsZF9sb2NrLCBwYXNfcmFuZ2VfaXNfbm90X2xvY2tlZCwgaGVhcF9sb2NrX2hvbGRf
bW9kZSk7CisgICAgICAgIAorICAgICAgICBwYXNfbG9ja19zd2l0Y2goJmhlbGRfbG9jaywgTlVM
TCk7CisgICAgICAgIAorICAgICAgICBudW1fY29tbWl0dGVkX2dyYW51bGVzID0gcGFzX3NlZ3Jl
Z2F0ZWRfcGFnZV9nZXRfbnVtX2NvbW1pdHRlZF9ncmFudWxlcyhwYWdlKTsKKyAgICAgICAgUEFT
X0FTU0VSVChudW1fY29tbWl0dGVkX2dyYW51bGVzKTsKKyAgICAgICAgCisgICAgICAgIC8qIFRo
ZSBwYWdlIGNhbiBiZWNvbWUgZWxpZ2libGUgYWdhaW4gbm93IHRoYXQgd2UndmUgbWFya2VkIHRo
aW5ncyBmb3IgZGVjb21taXQuICovCisgICAgICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV92
aWV3X2RpZF9iZWNvbWVfZWxpZ2libGVfYXRfaW5kZXgoZGlyZWN0b3J5LCBpbmRleCk7CisgICAg
ICAgIAorICAgICAgICBpZiAoZGVjb21taXRfcmVzdWx0KSB7CisgICAgICAgICAgICBpZiAodmVy
Ym9zZSkKKyAgICAgICAgICAgICAgICBwYXNfbG9nKCIlcDogZGlkIHBhcnRseSB0YWtlIGluZGV4
ICV6dVxuIiwgZGlyZWN0b3J5LCBpbmRleCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfdmlld19kaWRfYmVjb21lX2VtcHR5X2F0X2luZGV4
KGRpcmVjdG9yeSwgaW5kZXgpOworICAgICAgICAgICAgZGF0YS0+cmVzdWx0ID0gcGFzX3BhZ2Vf
c2hhcmluZ19wb29sX3Rha2VfbG9ja3NfdW5hdmFpbGFibGU7CisgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIHBhc19sb2NrX3N3aXRjaCgm
aGVsZF9sb2NrLCAmdmlldy0+b3duZXJzaGlwX2xvY2spOworICAgICAgICB2aWV3LT5pc19vd25l
ZCA9IGZhbHNlOworICAgICAgICBpZiAodmVyYm9zZSkgeworICAgICAgICAgICAgcGFzX2xvZygi
dmlldyAlcCBoYXMgaXNfb3duZWQgPSBmYWxzZSBkdWUgdG8gbm9ybWFsIGRlY29tbWl0IGluIHRh
a2VfbGFzdF9lbXB0eVxuIiwKKyAgICAgICAgICAgICAgICAgICAgdmlldyk7CisgICAgICAgIH0K
KyAgICAgICAgcGFzX2xvY2tfc3dpdGNoKCZoZWxkX2xvY2ssIE5VTEwpOworICAgICAgICAKKyAg
ICAgICAgaWYgKCFwYXNfc2VncmVnYXRlZF9wYWdlX3Rha2VfcGh5c2ljYWxseSgKKyAgICAgICAg
ICAgICAgICBwYWdlLCBkZWNvbW1pdF9sb2csIHBhc19yYW5nZV9pc19ub3RfbG9ja2VkLCBoZWFw
X2xvY2tfaG9sZF9tb2RlKSkgeworICAgICAgICAgICAgUEFTX0FTU0VSVCghcGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9jb25maWdfa2luZF9pc191dGlsaXR5KGRpcmVjdG9yeS0+cGFnZV9jb25maWdfa2lu
ZCkpOworICAgICAgICAgICAgCisgICAgICAgICAgICBwYXNfbG9ja19zd2l0Y2goJmhlbGRfbG9j
aywgJnZpZXctPm93bmVyc2hpcF9sb2NrKTsKKyAgICAgICAgICAgIHZpZXctPmlzX293bmVkID0g
dHJ1ZTsKKyAgICAgICAgICAgIGlmICh2ZXJib3NlKSB7CisgICAgICAgICAgICAgICAgcGFzX2xv
ZygidmlldyAlcCBoYXMgaXNfb3duZWQgPSB0cnVlIGR1ZSB0byB1bmRvIG9mIGRlY29tbWl0IGlu
IHRha2VfbGFzdF9lbXB0eVxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHZpZXcpOworICAg
ICAgICAgICAgfQorICAgICAgICAgICAgcGFzX2xvY2tfc3dpdGNoKCZoZWxkX2xvY2ssIE5VTEwp
OworICAgICAgICAgICAgCisgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfdmll
d19kaWRfYmVjb21lX2VsaWdpYmxlX2F0X2luZGV4KGRpcmVjdG9yeSwgaW5kZXgpOworICAgICAg
ICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbXB0eV9hdF9p
bmRleChkaXJlY3RvcnksIGluZGV4KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZGF0YS0+
cmVzdWx0ID0gcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2VfbG9ja3NfdW5hdmFpbGFibGU7Cisg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYg
KHZlcmJvc2UpIHsKKyAgICAgICAgICAgIHBhc19sb2coIiVwOiBkaWQgZnVsbHkgdGFrZSBpbmRl
eCAlenVcbiIsIGRpcmVjdG9yeSwgaW5kZXgpOworICAgICAgICAgICAgcGFzX2xvZygiRGVzdHJv
eWluZyBwYWdlIGhlYWRlciBmb3IgdmlldyA9ICVwLCBwYWdlID0gJXAsIGJvdW5kYXJ5ID0gJXAg
KCVwKSAiCisgICAgICAgICAgICAgICAgICAgICJhcyBwYXJ0IG9mIGRlY29tbWl0LlxuIiwKKyAg
ICAgICAgICAgICAgICAgICAgdmlldywgcGFnZSwgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9ib3VuZGFy
eShwYWdlLCBteV9wYWdlX2NvbmZpZyksCisgICAgICAgICAgICAgICAgICAgIHZpZXctPnBhZ2Vf
Ym91bmRhcnkpOworICAgICAgICB9CisgICAgICAgIG15X3BhZ2VfY29uZmlnLmJhc2UuZGVzdHJv
eV9wYWdlX2hlYWRlcigmcGFnZS0+YmFzZSwgaGVhcF9sb2NrX2hvbGRfbW9kZSk7CisKKyAgICAg
ICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbGlnaWJsZV9hdF9p
bmRleChkaXJlY3RvcnksIGluZGV4KTsKKyAgICB9CisgICAgCisgICAgZGF0YS0+cmVzdWx0ID0g
cGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2Vfc3VjY2VzczsKKyAgICByZXR1cm4gdHJ1ZTsKKwor
cmVsZWFzZV9oZWxkX2xvY2tfYW5kX3JldHVybl9mYWxzZToKKyAgICBwYXNfbG9ja19zd2l0Y2go
JmhlbGRfbG9jaywgTlVMTCk7CisKKyAgICAvKiBSZXR1cm5pbmcgZmFsc2UgbWVhbnMgdGhhdCB0
aGUgYmFja3dhcmRzIGl0ZXJhdGlvbiBrZWVwcyBnb2luZyBhbmQgdGhpcyBzaG91bGQgZ2V0IGNh
bGxlZAorICAgICAgIGFnYWluIGlmIHRoZXJlIGFyZSBhbnkgb3RoZXIgdmlld3MgbWFya2VkIGVt
cHR5LiAqLworICAgIHJldHVybiBmYWxzZTsKK30KKworcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rh
a2VfcmVzdWx0CitwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV90YWtlX2xhc3RfZW1wdHko
CisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIHNpemVfZGlyZWN0b3J5LAorICAg
IHBhc19kZWZlcnJlZF9kZWNvbW1pdF9sb2cqIGRlY29tbWl0X2xvZywKKyAgICBwYXNfbG9ja19o
b2xkX21vZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSkKK3sKKyAgICAvKiBCZSBjYXJlZnVsOiBoZWFw
X2xvY2tfaG9sZF9tb2RlIGhlcmUgY2FuIGJlIHVucmVsYXRlZCB0byB3aGF0IHBhZ2VfY29uZmln
IHNheXMsIHNpbmNlCisgICAgICAgd2UgbWF5IGJlIGFza2VkIGJ5IHRoZSBwaHlzaWNhbCBwYWdl
IHNoYXJpbmcgcG9vbCB0byBkZWNvbW1pdCBvbiBiZWhhbGYgb2YgYW55IG90aGVyIGhlYXAsCisg
ICAgICAgaW5jbHVkaW5nIG9uZXMgdGhhdCBob2xkIHRoZSBoZWFwIGxvY2sgd2hpbGUgZG9pbmcg
YnVzaW5lc3MuICovCisKKyAgICB0YWtlX2xhc3RfZW1wdHlfZGF0YSBkYXRhOworICAgIHBhc19z
ZWdyZWdhdGVkX2RpcmVjdG9yeV9pdGVyYXRlX2NvbmZpZyBjb25maWc7CisgICAgYm9vbCBkaWRf
ZmluZF9zb21ldGhpbmc7CiAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7
CisKKyAgICBkaXJlY3RvcnkgPSAmc2l6ZV9kaXJlY3RvcnktPmJhc2U7CisKKyAgICBQQVNfVEVT
VElOR19BU1NFUlQoZGlyZWN0b3J5LT5wYWdlX2NvbmZpZ19raW5kICE9IHBhc19zZWdyZWdhdGVk
X3BhZ2VfY29uZmlnX2tpbmRfbnVsbCk7CisKKyAgICBkYXRhLmRlY29tbWl0X2xvZyA9IGRlY29t
bWl0X2xvZzsKKyAgICBkYXRhLmhlYXBfbG9ja19ob2xkX21vZGUgPSBoZWFwX2xvY2tfaG9sZF9t
b2RlOworICAgIGRhdGEucmVzdWx0ID0gcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2Vfbm9uZV9h
dmFpbGFibGU7CisKKyAgICBkYXRhLm15X3BhZ2VfY29uZmlnX3B0ciA9IHBhc19zZWdyZWdhdGVk
X3BhZ2VfY29uZmlnX2tpbmRfZ2V0X2NvbmZpZyhkaXJlY3RvcnktPnBhZ2VfY29uZmlnX2tpbmQp
OworCisgICAgY29uZmlnLmRpcmVjdG9yeSA9IGRpcmVjdG9yeTsKKyAgICBjb25maWcuc2hvdWxk
X2NvbnNpZGVyX3ZpZXdfcGFyYWxsZWwgPSB0YWtlX2xhc3RfZW1wdHlfc2hvdWxkX2NvbnNpZGVy
X3ZpZXdfcGFyYWxsZWw7CisgICAgY29uZmlnLmNvbnNpZGVyX3ZpZXcgPSB0YWtlX2xhc3RfZW1w
dHlfY29uc2lkZXJfdmlldzsKKyAgICBjb25maWcuYXJnID0gJmRhdGE7CisKKyAgICBkaWRfZmlu
ZF9zb21ldGhpbmcgPQorICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXRlcmF0ZV9i
YWNrd2FyZF90b190YWtlX2xhc3RfZW1wdHkoJmNvbmZpZyk7CisKKyAgICBpZiAoIWRpZF9maW5k
X3NvbWV0aGluZykKKyAgICAgICAgcmV0dXJuIHBhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtlX25v
bmVfYXZhaWxhYmxlOworCisgICAgUEFTX0FTU0VSVChwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlf
aXNfZG9pbmdfc2hhcmluZyhkaXJlY3RvcnkpKTsKKyAgICBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xf
ZGlkX2NyZWF0ZV9kZWx0YSgKKyAgICAgICAgJnBhc19waHlzaWNhbF9wYWdlX3NoYXJpbmdfcG9v
bCwKKyAgICAgICAgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9jcmVhdGUoCisgICAgICAg
ICAgICBkaXJlY3RvcnksCisgICAgICAgICAgICBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50
X2tpbmRfc2VsZWN0X2Zvcl9zZWdyZWdhdGVkX2RpcmVjdG9yeSgKKyAgICAgICAgICAgICAgICBk
aXJlY3RvcnktPmRpcmVjdG9yeV9raW5kKSkpOworICAgIAorICAgIHJldHVybiBkYXRhLnJlc3Vs
dDsKK30KKworcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIHBhc19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5X2Zvcl9vYmplY3QoCisgICAgdWludHB0cl90IGJlZ2luLAorICAgIHBhc19o
ZWFwX2NvbmZpZyogY29uZmlnKQoreworICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldzsKKyAg
ICB2aWV3ID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19mb3Jfb2JqZWN0KGJlZ2luLCBjb25maWcpOwor
ICAgIGlmICh2aWV3KQorICAgICAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfc2l6
ZV9kaXJlY3Rvcnkodmlldyk7CisgICAgcmV0dXJuIE5VTEw7Cit9CisKK3Bhc19iYXNlbGluZV9h
bGxvY2F0b3JfcmVzdWx0CitwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9nZXRfYWxsb2Nh
dG9yX2Zyb21fdGxjKAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rv
cnksCisgICAgc2l6ZV90IGNvdW50LAorICAgIHBhc19jb3VudF9sb29rdXBfbW9kZSBjb3VudF9s
b29rdXBfbW9kZSwKKyAgICBwYXNfaGVhcF9jb25maWcqIGNvbmZpZywKKyAgICB1bnNpZ25lZCog
Y2FjaGVkX2luZGV4KQoreworICAgIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVzdWx0IHRsY19yZXN1
bHQ7CisgICAgdW5zaWduZWQgYmFzZWxpbmVfYWxsb2NhdG9yX2luZGV4OworCisgICAgUEFTX0FT
U0VSVChwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9oYXNfdGxjX2FsbG9jYXRvcihkaXJl
Y3RvcnkpKTsKKyAgICBQQVNfQVNTRVJUKCFwYXNfaGVhcF9jb25maWdfaXNfdXRpbGl0eShjb25m
aWcpKTsKKyAgICAKKyAgICBwYXNfaGVhcF9sb2NrX2xvY2soKTsKKyAgICBwYXNfc2VncmVnYXRl
ZF9oZWFwX2Vuc3VyZV9hbGxvY2F0b3JfaW5kZXgoCisgICAgICAgIGRpcmVjdG9yeS0+aGVhcCwK
KyAgICAgICAgZGlyZWN0b3J5LAorICAgICAgICBjb3VudCwKKyAgICAgICAgY291bnRfbG9va3Vw
X21vZGUsCisgICAgICAgIGNvbmZpZywKKyAgICAgICAgY2FjaGVkX2luZGV4KTsKKyAgICBwYXNf
aGVhcF9sb2NrX3VubG9jaygpOworCisgICAgLyogQ3VycmVudGx5IGFzIHNvb24gYXMgd2Ugc3dp
dGNoIHRvIFRMQyBhbGxvY2F0b3JzLCB3ZSBjYW5ub3QgcG9zc2libHkgaGF2ZSBhIGJhc2VsaW5l
CisgICAgICAgYWxsb2NhdG9yLiBCdXQgaWYgd2UgZG8sIHdlIHNob3VsZCBzdG9wIGl0IG5vdy4g
Ki8KKyAgICBiYXNlbGluZV9hbGxvY2F0b3JfaW5kZXggPSBkaXJlY3RvcnktPmJhc2VsaW5lX2Fs
bG9jYXRvcl9pbmRleDsKKyAgICBpZiAoYmFzZWxpbmVfYWxsb2NhdG9yX2luZGV4IDwgUEFTX05V
TV9CQVNFTElORV9BTExPQ0FUT1JTKSB7CisgICAgICAgIHBhc19iYXNlbGluZV9hbGxvY2F0b3Iq
IGJhc2VsaW5lX2FsbG9jYXRvcjsKKyAgICAgICAgCisgICAgICAgIGJhc2VsaW5lX2FsbG9jYXRv
ciA9IHBhc19iYXNlbGluZV9hbGxvY2F0b3JfdGFibGUgKyBiYXNlbGluZV9hbGxvY2F0b3JfaW5k
ZXg7CisgICAgICAgIAorICAgICAgICBwYXNfbG9ja19sb2NrKCZiYXNlbGluZV9hbGxvY2F0b3It
PmxvY2spOworCisgICAgICAgIC8qIEl0J3MgcG9zc2libGUgdGhhdCBkdWUgdG8gYSByYWNlLCB0
aGUgZGlyZWN0b3J5J3MgaW5kZXggaGFzIGJlZW4gcmVhc3NpZ25lZCB0byBzb21ldGhpbmcKKyAg
ICAgICAgICAgZWxzZS4gQXQgd29yc3QsIHRoYXQgcmFjZSB3aWxsIG1lYW4gdGhhdCBzb21lIGJh
c2VsaW5lIGFsbG9jYXRvciB3aWxsIGJlIHVzZWQgZm9yCisgICAgICAgICAgIGFsbG9jYXRpb24u
IFRoZXJlJ3Mgbm90IGEgd2hvbGUgbG90IHdlIGNhbiBkbyBhYm91dCB0aGF0LiBBdCB3b3JzdCwg
aXQgbWVhbnMgbGV0dGluZyB0aGUKKyAgICAgICAgICAgaGlnaCB3YXRlcm1hcmsgZ3JvdyBhIGJp
dCBpbiBjYXNlIG9mIGEgd2VpcmQgcmFjZS4gKi8KKyAgICAgICAgaWYgKGRpcmVjdG9yeS0+YmFz
ZWxpbmVfYWxsb2NhdG9yX2luZGV4ID09IGJhc2VsaW5lX2FsbG9jYXRvcl9pbmRleCkgeworICAg
ICAgICAgICAgcGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl9kZXRhY2hfZGlyZWN0b3J5KGJhc2VsaW5l
X2FsbG9jYXRvcik7CisgICAgICAgICAgICBwYXNfZmVuY2UoKTsKKyAgICAgICAgICAgIGRpcmVj
dG9yeS0+YmFzZWxpbmVfYWxsb2NhdG9yX2luZGV4ID0gMiAqIFBBU19OVU1fQkFTRUxJTkVfQUxM
T0NBVE9SUzsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcGFzX2xvY2tfdW5sb2NrKCZi
YXNlbGluZV9hbGxvY2F0b3ItPmxvY2spOworICAgIH0KKyAgICAKKyAgICB0bGNfcmVzdWx0ID0g
cGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9yKAorICAgICAgICBwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2dldChjb25maWcpLAorICAgICAgICBwYXNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeV9kYXRhX3B0cl9sb2FkX25vbl9udWxsKCZkaXJlY3RvcnktPmRhdGEpLT5h
bGxvY2F0b3JfaW5kZXgsCisgICAgICAgIHBhc19sb2NrX2lzX25vdF9oZWxkKTsKKyAgICAKKyAg
ICBQQVNfQVNTRVJUKHRsY19yZXN1bHQuZGlkX3N1Y2NlZWQpOworCisgICAgcmV0dXJuIHBhc19i
YXNlbGluZV9hbGxvY2F0b3JfcmVzdWx0X2NyZWF0ZV9zdWNjZXNzKHRsY19yZXN1bHQuYWxsb2Nh
dG9yLCBOVUxMKTsKK30KKworcGFzX2hlYXBfc3VtbWFyeSBwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeV9jb21wdXRlX3N1bW1hcnlfZm9yX3Vub3duZWRfZXhjbHVzaXZlKAorICAgIHBhc19z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCit7CisgICAgcGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YSogZGF0YTsKKyAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2Nv
bmZpZyBwYWdlX2NvbmZpZzsKKyAgICBwYXNfaGVhcF9zdW1tYXJ5IHJlc3VsdDsKKyAgICBzaXpl
X3QgcGF5bG9hZF9zaXplOworCisgICAgUEFTX0FTU0VSVChkaXJlY3RvcnktPmJhc2UucGFnZV9j
b25maWdfa2luZCAhPSBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX251bGwpOworCisg
ICAgZGF0YSA9IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGFfcHRyX2xvYWQoJmRp
cmVjdG9yeS0+ZGF0YSk7CisgICAgcGFnZV9jb25maWcgPSAqcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9j
b25maWdfa2luZF9nZXRfY29uZmlnKGRpcmVjdG9yeS0+YmFzZS5wYWdlX2NvbmZpZ19raW5kKTsK
KyAgICAKKyAgICByZXN1bHQgPSBwYXNfaGVhcF9zdW1tYXJ5X2NyZWF0ZV9lbXB0eSgpOworICAg
IAorICAgIHBheWxvYWRfc2l6ZSA9IChkYXRhLT5vZmZzZXRfZnJvbV9wYWdlX2JvdW5kYXJ5X3Rv
X2VuZF9vZl9sYXN0X29iamVjdCAtCisgICAgICAgICAgICAgICAgICAgIGRhdGEtPm9mZnNldF9m
cm9tX3BhZ2VfYm91bmRhcnlfdG9fZmlyc3Rfb2JqZWN0KTsKKyAgICAKKyAgICByZXN1bHQuZGVj
b21taXR0ZWQgKz0gcGFnZV9jb25maWcuYmFzZS5wYWdlX3NpemU7CisgICAgcmVzdWx0LmZyZWUg
Kz0gcGF5bG9hZF9zaXplOworICAgIHJlc3VsdC5mcmVlX2RlY29tbWl0dGVkICs9IHBheWxvYWRf
c2l6ZTsKKyAgICAKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit0eXBlZGVmIHN0cnVjdCB7Cisg
ICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeTsKICAgICBwYXNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeV9mb3JfZWFjaF9saXZlX29iamVjdF9jYWxsYmFjayBjYWxs
YmFjazsKICAgICB2b2lkKiBhcmc7CiB9IGZvcl9lYWNoX2xpdmVfb2JqZWN0X2RhdGE7CkBAIC02
OCwxNCArOTcyLDEzIEBAIHN0YXRpYyBib29sIGZvcl9lYWNoX2xpdmVfb2JqZWN0X29iamVjdF8K
IAogICAgIGRhdGEgPSBhcmc7CiAKLSAgICBQQVNfQVNTRVJUKHBhc19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5X2dldF9nbG9iYWwoZGF0YS0+ZGlyZWN0b3J5KS0+b2JqZWN0X3NpemUKLSAgICAg
ICAgICAgICAgID09IHBhc19yYW5nZV9zaXplKHJhbmdlKSk7CisgICAgUEFTX0FTU0VSVChkYXRh
LT5kaXJlY3RvcnktPm9iamVjdF9zaXplID09IHBhc19yYW5nZV9zaXplKHJhbmdlKSk7CiAKICAg
ICByZXR1cm4gZGF0YS0+Y2FsbGJhY2soZGF0YS0+ZGlyZWN0b3J5LCB2aWV3LCByYW5nZS5iZWdp
biwgZGF0YS0+YXJnKTsKIH0KIAogYm9vbCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9m
b3JfZWFjaF9saXZlX29iamVjdCgKLSAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkqIGRpcmVj
dG9yeSwKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAogICAg
IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2Zvcl9lYWNoX2xpdmVfb2JqZWN0X2NhbGxi
YWNrIGNhbGxiYWNrLAogICAgIHZvaWQqIGFyZykKIHsKQEAgLTg4LDEwICs5OTEsMTAgQEAgYm9v
bCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9mb3JfZQogCiAgICAgLyogVGhlIGNvb2wg
dGhpbmcgYWJvdXQgdGhpcyBsb29wIGlzIHRoYXQgaW4gY2FzZSBvZiByYWNlcyBpdCdsbCB0ZW5k
IHRvIGdvIGNoZWNrIG91dAogICAgICAgIG1vcmUgdmlldy4gKi8KLSAgICBmb3IgKGluZGV4ID0g
MDsgaW5kZXggPCBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfc2l6ZShkaXJlY3RvcnkpOyArK2lu
ZGV4KSB7CisgICAgZm9yIChpbmRleCA9IDA7IGluZGV4IDwgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0
b3J5X3NpemUoJmRpcmVjdG9yeS0+YmFzZSk7ICsraW5kZXgpIHsKICAgICAgICAgcGFzX3NlZ3Jl
Z2F0ZWRfdmlldyB2aWV3OwogCi0gICAgICAgIHZpZXcgPSBwYXNfc2VncmVnYXRlZF9kaXJlY3Rv
cnlfZ2V0KGRpcmVjdG9yeSwgaW5kZXgpOworICAgICAgICB2aWV3ID0gcGFzX3NlZ3JlZ2F0ZWRf
ZGlyZWN0b3J5X2dldCgmZGlyZWN0b3J5LT5iYXNlLCBpbmRleCk7CiAgICAgICAgIGlmICghcGFz
X3NlZ3JlZ2F0ZWRfdmlld19mb3JfZWFjaF9saXZlX29iamVjdCgKICAgICAgICAgICAgICAgICB2
aWV3LCBmb3JfZWFjaF9saXZlX29iamVjdF9vYmplY3RfY2FsbGJhY2ssICZkYXRhLCBwYXNfbG9j
a19pc19ub3RfaGVsZCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xMDAsMTUgKzEw
MDMsNjEgQEAgYm9vbCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9mb3JfZQogICAgIHJl
dHVybiB0cnVlOwogfQogCi1wYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkqIHBhc19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5X2Zvcl9vYmplY3QoCi0gICAgdWludHB0cl90IGJlZ2luLAotICAgIHBh
c19oZWFwX2NvbmZpZyogY29uZmlnKQordWludDhfdCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeV92aWV3X2NhY2hlX2NhcGFjaXR5KHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBk
aXJlY3RvcnkpCiB7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3OwotICAgIHZpZXcgPSBw
YXNfc2VncmVnYXRlZF92aWV3X2Zvcl9vYmplY3QoYmVnaW4sIGNvbmZpZyk7Ci0gICAgaWYgKHZp
ZXcpCi0gICAgICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9zaXplX2RpcmVjdG9y
eSh2aWV3KTsKLSAgICByZXR1cm4gTlVMTDsKKyAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZp
Z19raW5kIGtpbmQ7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcqIGNvbmZpZzsKKwor
ICAgIGtpbmQgPSBkaXJlY3RvcnktPmJhc2UucGFnZV9jb25maWdfa2luZDsKKworICAgIGlmIChr
aW5kID09IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfbnVsbCkKKyAgICAgICAgcmV0
dXJuIDA7CisKKyAgICBjb25maWcgPSBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX2dl
dF9jb25maWcoa2luZCk7CisgICAgaWYgKCFjb25maWctPmVuYWJsZV92aWV3X2NhY2hlKQorICAg
ICAgICByZXR1cm4gMDsKKyAgICAKKyAgICByZXR1cm4gcGFzX2hlYXBfcnVudGltZV9jb25maWdf
dmlld19jYWNoZV9jYXBhY2l0eV9mb3Jfb2JqZWN0X3NpemUoCisgICAgICAgIGRpcmVjdG9yeS0+
aGVhcC0+cnVudGltZV9jb25maWcsIGRpcmVjdG9yeS0+b2JqZWN0X3NpemUsIGNvbmZpZyk7Cit9
CisKK3NpemVfdCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9sb2NhbF9hbGxvY2F0b3Jf
c2l6ZSgKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KQorewor
ICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmQga2luZDsKKworICAgIGtpbmQgPSBk
aXJlY3RvcnktPmJhc2UucGFnZV9jb25maWdfa2luZDsKKworICAgIGlmIChraW5kID09IHBhc19z
ZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfbnVsbCkKKyAgICAgICAgcmV0dXJuIHBhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5X2xvY2FsX2FsbG9jYXRvcl9zaXplX2Zvcl9udWxsX2NvbmZp
ZygpOworICAgIAorICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9sb2Nh
bF9hbGxvY2F0b3Jfc2l6ZV9mb3JfY29uZmlnKAorICAgICAgICAqcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9jb25maWdfa2luZF9nZXRfY29uZmlnKGtpbmQpKTsKK30KKworcGFzX2FsbG9jYXRvcl9pbmRl
eCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9udW1fYWxsb2NhdG9yX2luZGljZXMoCisg
ICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSkKK3sKKyAgICByZXR1
cm4gcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfbnVtX2FsbG9jYXRvcl9pbmRpY2VzX2Zv
cl9hbGxvY2F0b3Jfc2l6ZSgKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlf
bG9jYWxfYWxsb2NhdG9yX3NpemUoZGlyZWN0b3J5KSk7Cit9CisKK3ZvaWQgcGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnlfZHVtcF9yZWZlcmVuY2UoCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwgcGFzX3N0cmVhbSogc3RyZWFtKQoreworICAgIHBhc19z
dHJlYW1fcHJpbnRmKAorICAgICAgICBzdHJlYW0sCisgICAgICAgICIlcChzZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5LCAldSwgJXAsICVzKSIsCisgICAgICAgIGRpcmVjdG9yeSwKKyAgICAgICAg
ZGlyZWN0b3J5LT5vYmplY3Rfc2l6ZSwKKyAgICAgICAgZGlyZWN0b3J5LT5oZWFwLAorICAgICAg
ICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX2dldF9zdHJpbmcoZGlyZWN0b3J5LT5i
YXNlLnBhZ2VfY29uZmlnX2tpbmQpKTsKK30KKwordm9pZCBwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeV9kdW1wX2Zvcl9zcGVjdHJ1bSgKKyAgICBwYXNfc3RyZWFtKiBzdHJlYW0sIHZvaWQq
IGRpcmVjdG9yeSkKK3sKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kdW1wX3Jl
ZmVyZW5jZShkaXJlY3RvcnksIHN0cmVhbSk7CiB9CiAKICNlbmRpZiAvKiBMSUJQQVNfRU5BQkxF
RCAqLwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeS5oCShyZXZpc2lvbiAyNzk5
NjQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNywzNCArMjcsMTkwIEBACiAjZGVm
aW5lIFBBU19TRUdSRUdBVEVEX1NJWkVfRElSRUNUT1JZX0gKIAogI2luY2x1ZGUgInBhc19hbGxv
Y2F0b3JfaW5kZXguaCIKKyNpbmNsdWRlICJwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X3NpemVf
Y2xhc3NfcHRyLmgiCisjaW5jbHVkZSAicGFzX2NvbXBhY3RfYXRvbWljX3BhZ2Vfc2hhcmluZ19w
b29sX3B0ci5oIgorI2luY2x1ZGUgInBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5X3B0ci5oIgorI2luY2x1ZGUgInBhc19jb21wYWN0X2F0b21pY190aHJlYWRfbG9j
YWxfY2FjaGVfbGF5b3V0X25vZGUuaCIKKyNpbmNsdWRlICJwYXNfY29tcGFjdF90YWdnZWRfcGFn
ZV9ncmFudWxlX3VzZV9jb3VudF9wdHIuaCIKKyNpbmNsdWRlICJwYXNfY29tcGFjdF90YWdnZWRf
dW5zaWduZWRfcHRyLmgiCiAjaW5jbHVkZSAicGFzX2NvbmZpZy5oIgogI2luY2x1ZGUgInBhc19o
ZWFwX2NvbmZpZy5oIgorI2luY2x1ZGUgInBhc19wYWdlX2dyYW51bGVfdXNlX2NvdW50LmgiCiAj
aW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5LmgiCisjaW5jbHVkZSAicGFzX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnlfY3JlYXRpb25fbW9kZS5oIgogCiBQQVNfQkVHSU5fRVhURVJO
X0M7CiAKLVBBU19BUEkgZXh0ZXJuIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlf
dXNlX3RhYmxpbmc7CitzdHJ1Y3QgcGFzX2V4dGVuZGVkX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnlfZGF0YTsKK3N0cnVjdCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeTsKK3N0cnVjdCBw
YXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhOwordHlwZWRlZiBzdHJ1Y3QgcGFzX2V4
dGVuZGVkX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YSBwYXNfZXh0ZW5kZWRfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhOwordHlwZWRlZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnlfZGF0YSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhOwor
dHlwZWRlZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkgcGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3Rvcnk7Cit0eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeV9kYXRhIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGE7CisKK1BBU19E
RUZJTkVfQ09NUEFDVF9BVE9NSUNfUFRSKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2Rh
dGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeV9kYXRhX3B0cik7CisKK3N0cnVjdCBQQVNfQUxJR05FRChzaXplb2YocGFzX3ZlcnNp
b25lZF9maWVsZCkpIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5IHsKKyAgICBwYXNfc2Vn
cmVnYXRlZF9kaXJlY3RvcnkgYmFzZTsKKyAgICAKKyAgICBwYXNfc2VncmVnYXRlZF9oZWFwKiBo
ZWFwOworCisgICAgdW5zaWduZWQgb2JqZWN0X3NpemUgOiAyNzsKKyAgICB1bnNpZ25lZCBhbGln
bm1lbnRfc2hpZnQgOiA1OworCisgICAgLyogVGhpcyBoYXMgYSBmdW5ueSBlbmNvZGluZyAobGV0
IE4gPSBQQVNfTlVNX0JBU0VMSU5FX0FMTE9DQVRPUlMpOgorICAgICAgIAorICAgICAgIGluZGV4
IGluIFswLCBOKSAgICAgPT4gYXR0YWNoZWQgdG8gaW5kZXgKKyAgICAgICBpbmRleCBpbiBbTiwg
Mk4pICAgID0+IGF0dGFjaGluZyB0byBpbmRleCAtIE4KKyAgICAgICAyTiAgICAgICAgICAgICAg
ICAgID0+IGRldGFjaGVkCisgICAgICAgCisgICAgICAgSW4gdGhlIGRldGFjaGVkIHN0YXRlLCB0
aGUgb25seSB3YXkgdG8gY2hhbmdlIHRoaXMgaXMgdG8gQ0FTIGl0LgorICAgICAgIAorICAgICAg
IEluIHRoZSBhdHRhY2hlZCBhbmQgYXR0YWNoaW5nIHN0YXRlcywgdGhlIGNvcnJlc3BvbmRpbmcg
aW5kZXgncyBsb2NrIHByb3RlY3RzIHRoaXMgZmllbGQuICovCisgICAgdWludDE2X3QgYmFzZWxp
bmVfYWxsb2NhdG9yX2luZGV4OworCisgICAgcGFzX2FsbG9jYXRvcl9pbmRleCB2aWV3X2NhY2hl
X2luZGV4OyAvKiBUaGlzIGNvdWxkIGJlIGluIHRoZSBzaXplX2RpcmVjdG9yeV9kYXRhIGJ1dCB3
ZSBwdXQgaXQgaGVyZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYmVjYXVzZSBpdCB0YWtlcyBsZXNzIHNwYWNlIHRvIHB1dCBpdCBoZXJlLiAqLworICAgIAor
ICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGFfcHRyIGRhdGE7CisgICAgcGFz
X2NvbXBhY3RfYXRvbWljX2JpdGZpdF9zaXplX2NsYXNzX3B0ciBiaXRmaXRfc2l6ZV9jbGFzczsK
KworICAgIC8qIFRoZSBvd25pbmcgc2VncmVnYXRlZCBoZWFwIGhvbGRzIHRoZXNlIGluIGEgc2lu
Z2x5IGxpbmtlZCBsaXN0LiAqLworICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5X3B0ciBuZXh0X2Zvcl9oZWFwOworfTsKKworc3RydWN0IHBhc19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5X2RhdGEgeworICAgIHVuc2lnbmVkIG9mZnNldF9mcm9tX3BhZ2Vf
Ym91bmRhcnlfdG9fZmlyc3Rfb2JqZWN0OyAvKiBDYWNoZWQgdG8gbWFrZSByZWZpbGwgZmFzdC4g
Ki8KKyAgICB1bnNpZ25lZCBvZmZzZXRfZnJvbV9wYWdlX2JvdW5kYXJ5X3RvX2VuZF9vZl9sYXN0
X29iamVjdDsgLyogQ2FjaGVkIHRvIG1ha2UgcmVmaWxsIGZhc3QuICovCisgICAgCisgICAgcGFz
X2FsbG9jYXRvcl9pbmRleCBhbGxvY2F0b3JfaW5kZXg7CisgICAgCisgICAgdWludDhfdCBmdWxs
X251bV9ub25fZW1wdHlfd29yZHM7CisKKyAgICBwYXNfY29tcGFjdF90YWdnZWRfdW5zaWduZWRf
cHRyIGZ1bGxfYWxsb2NfYml0czsgLyogUHJlY29tcHV0ZWQgYWxsb2MgYml0cyBpbiB0aGUgY2Fz
ZSB0aGF0IGEgcGFnZSBpcyBlbXB0eS4gKi8KKyAgICBwYXNfY29tcGFjdF9hdG9taWNfdGhyZWFk
X2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIG5leHRfZm9yX2xheW91dDsKK307CisKK3N0cnVjdCBw
YXNfZXh0ZW5kZWRfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhIHsKKyAgICBwYXNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhIGJhc2U7CisgICAgcGFzX2NvbXBhY3RfdGFnZ2Vk
X3BhZ2VfZ3JhbnVsZV91c2VfY291bnRfcHRyIGZ1bGxfdXNlX2NvdW50czsKK307CisKK3N0YXRp
YyBpbmxpbmUgcGFzX3NlZ3JlZ2F0ZWRfdmlldworcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnlfYXNfdmlldyhwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KQorewor
ICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF92aWV3X2NyZWF0ZShkaXJlY3RvcnksIHBhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5X3ZpZXdfa2luZCk7Cit9CisKK3N0YXRpYyBpbmxpbmUgc2l6
ZV90CitwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9hbGlnbm1lbnQocGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSkKK3sKKyAgICByZXR1cm4gKHNpemVfdCkxIDw8
IChzaXplX3QpZGlyZWN0b3J5LT5hbGlnbm1lbnRfc2hpZnQ7Cit9CisKK1BBU19BUEkgcGFzX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2Ny
ZWF0ZSgKKyAgICBwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLAorICAgIHVuc2lnbmVkIG9iamVj
dF9zaXplLAorICAgIHVuc2lnbmVkIGFsaWdubWVudCwKKyAgICBwYXNfaGVhcF9jb25maWcqIGhl
YXBfY29uZmlnLAorICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnKiBwYWdlX2NvbmZpZywK
KyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9jcmVhdGlvbl9tb2RlIGNyZWF0aW9u
X21vZGUpOworCitQQVNfQVBJIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZmlu
aXNoX2NyZWF0aW9uKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpOwor
CitzdGF0aWMgaW5saW5lIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGlkX3Ry
eV90b19jcmVhdGVfdmlld19jYWNoZSgKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eSogZGlyZWN0b3J5KQoreworICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZ2V0
X21pc2NfYml0KCZkaXJlY3RvcnktPmJhc2UpOworfQorCitzdGF0aWMgaW5saW5lIGJvb2wgcGFz
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlfc2V0X2RpZF90cnlfdG9fY3JlYXRlX3ZpZXdfY2Fj
aGUoCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKKyAgICBi
b29sIHZhbHVlKQoreworICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfc2V0X21p
c2NfYml0KCZkaXJlY3RvcnktPmJhc2UsIHZhbHVlKTsKK30KKworUEFTX0FQSSBwYXNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhKiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9l
bnN1cmVfZGF0YSgKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5
LAorICAgIHBhc19sb2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKKworUEFTX0FQ
SSBwYXNfZXh0ZW5kZWRfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhKgorcGFzX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZ2V0X2V4dGVuZGVkX2RhdGEoCisgICAgcGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7CisKKy8qIENhbGwgd2l0aCBoZWFwIGxvY2sg
aGVsZC4gKi8KK1BBU19BUEkgdm9pZCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9jcmVh
dGVfdGxjX2FsbG9jYXRvcigKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGly
ZWN0b3J5KTsKKworc3RhdGljIGlubGluZSBib29sIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0
b3J5X2hhc190bGNfYWxsb2NhdG9yKAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
KiBkaXJlY3RvcnkpCit7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YSog
ZGF0YTsKKyAgICBkYXRhID0gcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJf
bG9hZCgmZGlyZWN0b3J5LT5kYXRhKTsKKyAgICByZXR1cm4gZGF0YSAmJiBkYXRhLT5hbGxvY2F0
b3JfaW5kZXggIT0gKHBhc19hbGxvY2F0b3JfaW5kZXgpVUlOVF9NQVg7Cit9CisKKy8qIENhbGwg
d2l0aCBoZWFwIGxvY2sgaGVsZC4gKi8KK1BBU19BUEkgdm9pZCBwYXNfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeV9jcmVhdGVfdGxjX3ZpZXdfY2FjaGUoCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7CisKKy8qIENhbGwgd2l0aCBoZWFwIGxvY2sgaGVsZC4g
Ki8KK1BBU19BUEkgdm9pZCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9lbmFibGVfZXhj
bHVzaXZlX3ZpZXdzKAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rv
cnkpOworCitzdGF0aWMgaW5saW5lIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlf
YXJlX2V4Y2x1c2l2ZV92aWV3c19lbmFibGVkKAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGly
ZWN0b3J5KiBkaXJlY3RvcnkpCit7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlf
ZGF0YSogZGF0YTsKKyAgICBkYXRhID0gcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0
YV9wdHJfbG9hZCgmZGlyZWN0b3J5LT5kYXRhKTsKKyAgICByZXR1cm4gZGF0YSAmJiBkYXRhLT5m
dWxsX251bV9ub25fZW1wdHlfd29yZHM7Cit9CisKK1BBU19BUEkgcGFzX3NlZ3JlZ2F0ZWRfdmll
dyBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV90YWtlX2ZpcnN0X2VsaWdpYmxlKAorICAg
IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpOworCitQQVNfQVBJIHBh
c19wYWdlX3NoYXJpbmdfcG9vbF90YWtlX3Jlc3VsdAorcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnlfdGFrZV9sYXN0X2VtcHR5KAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
KiBkaXJlY3RvcnksCisgICAgcGFzX2RlZmVycmVkX2RlY29tbWl0X2xvZyogbG9nLAorICAgIHBh
c19sb2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKIAotUEFTX0FQSSB2b2lkIHBh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2NvbnN0cnVjdCgKLSAgICBwYXNfc2VncmVnYXRl
ZF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19r
aW5kIHBhZ2VfY29uZmlnX2tpbmQsCi0gICAgcGFzX3BhZ2Vfc2hhcmluZ19tb2RlIHBhZ2Vfc2hh
cmluZ19tb2RlLAotICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9raW5kIGtpbmQpOworUEFT
X0FQSSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3RvcnlfZm9yX29iamVjdCgKKyAgICB1aW50cHRyX3QgYmVnaW4sCisgICAgcGFzX2hlYXBf
Y29uZmlnKiBjb25maWcpOworCisvKiBUaGlzIGFzc3VtZXMgdGhhdCB3ZSBhbHJlYWR5IGhhdmUg
YSBkYXRhLiBUaGF0J3MgYSB2YWxpZCBhc3N1bXB0aW9uIGlmIHdlIGhhdmUgZXhjbHVzaXZlcy4g
Ki8KK1BBU19BUEkgcGFzX2hlYXBfc3VtbWFyeSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eV9jb21wdXRlX3N1bW1hcnlfZm9yX3Vub3duZWRfZXhjbHVzaXZlKAorICAgIHBhc19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpOwogCiB0eXBlZGVmIGJvb2wgKCpwYXNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeV9mb3JfZWFjaF9saXZlX29iamVjdF9jYWxsYmFjaykoCi0g
ICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisgICAgcGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKICAgICBwYXNfc2VncmVnYXRlZF92aWV3IHZp
ZXcsCiAgICAgdWludHB0cl90IGJlZ2luLAogICAgIHZvaWQqIGFyZyk7CiAKIFBBU19BUEkgYm9v
bCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9mb3JfZWFjaF9saXZlX29iamVjdCgKLSAg
ICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKKyAgICBwYXNfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAogICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGly
ZWN0b3J5X2Zvcl9lYWNoX2xpdmVfb2JqZWN0X2NhbGxiYWNrIGNhbGxiYWNrLAogICAgIHZvaWQq
IGFyZyk7CiAKLVBBU19BUEkgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBwYXNfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeV9mb3Jfb2JqZWN0KAotICAgIHVpbnRwdHJfdCBiZWdpbiwKLSAgICBw
YXNfaGVhcF9jb25maWcqIGNvbmZpZyk7CitQQVNfQVBJIHVpbnQ4X3QgcGFzX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3Rvcnlfdmlld19jYWNoZV9jYXBhY2l0eSgKKyAgICBwYXNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KTsKKworUEFTX0FQSSBzaXplX3QgcGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnlfbG9jYWxfYWxsb2NhdG9yX3NpemUoCisgICAgcGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7CisKK1BBU19BUEkgcGFzX2FsbG9jYXRvcl9p
bmRleCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9udW1fYWxsb2NhdG9yX2luZGljZXMo
CisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7CisKK1BBU19B
UEkgdm9pZCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kdW1wX3JlZmVyZW5jZSgKKyAg
ICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LCBwYXNfc3RyZWFtKiBz
dHJlYW0pOworCitQQVNfQVBJIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZHVt
cF9mb3Jfc3BlY3RydW0oCisgICAgcGFzX3N0cmVhbSogc3RyZWFtLCB2b2lkKiBkaXJlY3Rvcnkp
OwogCiBQQVNfRU5EX0VYVEVSTl9DOwogCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9jcmVhdGlvbl9tb2RlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnlfY3JlYXRpb25fbW9kZS5oCShub25leGlzdGVudCkKKysrIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
X2NyZWF0aW9uX21vZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDU2IEBACisvKgorICog
Q29weXJpZ2h0IChjKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgUEFTX1NFR1JF
R0FURURfU0laRV9ESVJFQ1RPUllfQ1JFQVRJT05fTU9ERV9ICisjZGVmaW5lIFBBU19TRUdSRUdB
VEVEX1NJWkVfRElSRUNUT1JZX0NSRUFUSU9OX01PREVfSAorCisjaW5jbHVkZSAicGFzX3V0aWxz
LmgiCisKK1BBU19CRUdJTl9FWFRFUk5fQzsKKworZW51bSBwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeV9jcmVhdGlvbl9tb2RlIHsKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eV9pbml0aWFsX2NyZWF0aW9uX21vZGUsCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnlfZnVsbF9jcmVhdGlvbl9tb2RlCit9OworCit0eXBlZGVmIGVudW0gcGFzX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnlfY3JlYXRpb25fbW9kZSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eV9jcmVhdGlvbl9tb2RlOworCitzdGF0aWMgaW5saW5lIGNvbnN0IGNoYXIqIHBhc19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5X2NyZWF0aW9uX21vZGVfZ2V0X3N0cmluZygKKyAgICBwYXNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeV9jcmVhdGlvbl9tb2RlIG1vZGUpCit7CisgICAgc3dpdGNo
IChtb2RlKSB7CisgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9pbml0aWFs
X2NyZWF0aW9uX21vZGU6CisgICAgICAgIHJldHVybiAiaW5pdGlhbCI7CisgICAgY2FzZSBwYXNf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9mdWxsX2NyZWF0aW9uX21vZGU6CisgICAgICAgIHJl
dHVybiAiZnVsbCI7CisgICAgfQorICAgIFBBU19BU1NFUlQoISJTaG91bGQgbm90IGJlIHJlYWNo
ZWQiKTsKKyAgICByZXR1cm4gTlVMTDsKK30KKworUEFTX0VORF9FWFRFUk5fQzsKKworI2VuZGlm
IC8qIFBBU19TRUdSRUdBVEVEX1NJWkVfRElSRUNUT1JZX0NSRUFUSU9OX01PREVfSCAqLworCklu
ZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeV9pbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfaW5saW5lcy5oCShyZXZp
c2lvbiAyNzk5NjQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeV9pbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTIzLDQ2
ICsyMywxMzEgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAKLSNpZm5kZWYgUEFTX1NFR1JFR0FU
RURfU0laRV9ESVJFQ1RPUllfSU5MSU5FU19ICi0jZGVmaW5lIFBBU19TRUdSRUdBVEVEX1NJWkVf
RElSRUNUT1JZX0lOTElORVNfSAorI2lmbmRlZiBQQVNfU0VHUkVHQVRFRF9HTE9CQUxfU0laRV9E
SVJFQ1RPUllfSU5MSU5FU19ICisjZGVmaW5lIFBBU19TRUdSRUdBVEVEX0dMT0JBTF9TSVpFX0RJ
UkVDVE9SWV9JTkxJTkVTX0gKIAogI2luY2x1ZGUgInBhc19iYXNlbGluZV9hbGxvY2F0b3JfcmVz
dWx0LmgiCiAjaW5jbHVkZSAicGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl90YWJsZS5oIgogI2luY2x1
ZGUgInBhc19jb3VudF9sb29rdXBfbW9kZS5oIgotI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2Jp
YXNpbmdfZGlyZWN0b3J5LmgiCisjaW5jbHVkZSAicGFzX2xvY2FsX2FsbG9jYXRvci5oIgogI2lu
Y2x1ZGUgInBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pbmxpbmVzLmgiCi0jaW5jbHVkZSAicGFz
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5LmgiCiAjaW5jbHVkZSAicGFzX3NlZ3Jl
Z2F0ZWRfaGVhcC5oIgogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5Lmgi
CiAjaW5jbHVkZSAicGFzX3RocmVhZF9sb2NhbF9jYWNoZS5oIgogCiBQQVNfQkVHSU5fRVhURVJO
X0M7CiAKLXN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB1bnNpZ25lZAotcGFzX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnlfdGFrZV9maXJzdF9lbGlnaWJsZV9pbXBsX3Nob3VsZF9jb25zaWRlcl92
aWV3X25vdF90YWJsZWRfcGFyYWxsZWwoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2Jp
dHZlY3Rvcl9zZWdtZW50IHNlZ21lbnQsCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2l0
ZXJhdGVfY29uZmlnKiBjb25maWcpCitQQVNfQVBJIHBhc19iYXNlbGluZV9hbGxvY2F0b3JfcmVz
dWx0CitwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9nZXRfYWxsb2NhdG9yX2Zyb21fdGxj
KAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisgICAgc2l6
ZV90IGNvdW50LAorICAgIHBhc19jb3VudF9sb29rdXBfbW9kZSBjb3VudF9sb29rdXBfbW9kZSwK
KyAgICBwYXNfaGVhcF9jb25maWcqIGNvbmZpZywKKyAgICB1bnNpZ25lZCogY2FjaGVkX2luZGV4
KTsKKworUEFTX0FQSSBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yKgorcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3Rvcnlfc2VsZWN0X2FsbG9jYXRvcl9zbG93KAorICAgIHBhc19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpOworCitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFz
X2Jhc2VsaW5lX2FsbG9jYXRvcl9yZXN1bHQKK3Bhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
X3NlbGVjdF9hbGxvY2F0b3IoCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRp
cmVjdG9yeSwKKyAgICBzaXplX3QgY291bnQsCisgICAgcGFzX2NvdW50X2xvb2t1cF9tb2RlIGNv
dW50X2xvb2t1cF9tb2RlLAorICAgIHBhc19oZWFwX2NvbmZpZyogY29uZmlnLAorICAgIHVuc2ln
bmVkKiBjYWNoZWRfaW5kZXgpCiB7Ci0gICAgUEFTX1VOVVNFRF9QQVJBTShjb25maWcpOworICAg
IGlmIChwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9oYXNfdGxjX2FsbG9jYXRvcihkaXJl
Y3RvcnkpCisgICAgICAgICYmIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3RyeV9nZXQoKSB8fCBw
YXNfdGhyZWFkX2xvY2FsX2NhY2hlX2Nhbl9zZXQoKSkpIHsKKyAgICAgICAgcmV0dXJuIHBhc19z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2dldF9hbGxvY2F0b3JfZnJvbV90bGMoCisgICAgICAg
ICAgICBkaXJlY3RvcnksIGNvdW50LCBjb3VudF9sb29rdXBfbW9kZSwgY29uZmlnLCBjYWNoZWRf
aW5kZXgpOworICAgIH0KKworICAgIGZvciAoOzspIHsKKyAgICAgICAgdW5zaWduZWQgaW5kZXg7
CisgICAgICAgIHBhc19iYXNlbGluZV9hbGxvY2F0b3IqIGFsbG9jYXRvcjsKKworICAgICAgICBp
bmRleCA9IGRpcmVjdG9yeS0+YmFzZWxpbmVfYWxsb2NhdG9yX2luZGV4OworICAgICAgICBpZiAo
aW5kZXggPj0gUEFTX05VTV9CQVNFTElORV9BTExPQ0FUT1JTKQorICAgICAgICAgICAgYWxsb2Nh
dG9yID0gcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlfc2VsZWN0X2FsbG9jYXRvcl9zbG93
KGRpcmVjdG9yeSk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgYWxsb2NhdG9yID0gcGFz
X2Jhc2VsaW5lX2FsbG9jYXRvcl90YWJsZSArIGluZGV4OworICAgICAgICAgICAgCisgICAgICAg
ICAgICBwYXNfbG9ja19sb2NrKCZhbGxvY2F0b3ItPmxvY2spOworICAgICAgICAgICAgCisgICAg
ICAgICAgICBpZiAoZGlyZWN0b3J5LT5iYXNlbGluZV9hbGxvY2F0b3JfaW5kZXggIT0gaW5kZXgp
IHsKKyAgICAgICAgICAgICAgICBwYXNfbG9ja191bmxvY2soJmFsbG9jYXRvci0+bG9jayk7Cisg
ICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAg
ICAgICBQQVNfQVNTRVJUKHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3NpemVfZGlyZWN0b3J5KGFs
bG9jYXRvci0+dS5hbGxvY2F0b3IudmlldykgPT0gZGlyZWN0b3J5KTsKKworICAgICAgICByZXR1
cm4gcGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl9yZXN1bHRfY3JlYXRlX3N1Y2Nlc3MoCisgICAgICAg
ICAgICAmYWxsb2NhdG9yLT51LmFsbG9jYXRvciwgJmFsbG9jYXRvci0+bG9jayk7CisgICAgfQor
fQorCitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgc2l6ZV90CitwYXNfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeV9sb2NhbF9hbGxvY2F0b3Jfc2l6ZV9mb3JfbnVsbF9jb25maWcodm9pZCkKK3sK
KyAgICByZXR1cm4gUEFTX0xPQ0FMX0FMTE9DQVRPUl9TSVpFKDApOworfQorCitzdGF0aWMgUEFT
X0FMV0FZU19JTkxJTkUgc2l6ZV90IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2xvY2Fs
X2FsbG9jYXRvcl9zaXplX2Zvcl9jb25maWcoCisgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25m
aWcgY29uZmlnKQoreworICAgIFBBU19BU1NFUlQoY29uZmlnLmJhc2UuaXNfZW5hYmxlZCk7Cisg
ICAgcmV0dXJuIFBBU19MT0NBTF9BTExPQ0FUT1JfU0laRShjb25maWcubnVtX2FsbG9jX2JpdHMp
OworfQorCitzdGF0aWMgaW5saW5lIHBhc19hbGxvY2F0b3JfaW5kZXgKK3Bhc19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5X251bV9hbGxvY2F0b3JfaW5kaWNlc19mb3JfYWxsb2NhdG9yX3NpemUo
c2l6ZV90IHNpemUpCit7CisgICAgcGFzX2FsbG9jYXRvcl9pbmRleCByZXN1bHQ7CisKKyAgICBy
ZXN1bHQgPSAocGFzX2FsbG9jYXRvcl9pbmRleCkoc2l6ZSAvIDgpOworICAgIFBBU19URVNUSU5H
X0FTU0VSVCgoc2l6ZV90KXJlc3VsdCAqIDggPT0gc2l6ZSk7CiAgICAgCi0gICAgcmV0dXJuIHNl
Z21lbnQuZWxpZ2libGVfYml0cyAmIH5zZWdtZW50LnRhYmxlZF9iaXRzOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CisKK3N0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfYWxsb2NhdG9yX2luZGV4
CitwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9udW1fYWxsb2NhdG9yX2luZGljZXNfZm9y
X2NvbmZpZygKKyAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBjb25maWcpCit7CisgICAg
c3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOworICAgIAorICAgIHNpemVfdCBzaXpl
OworCisgICAgUEFTX0FTU0VSVChjb25maWcuYmFzZS5pc19lbmFibGVkKTsKKyAgICAKKyAgICBz
aXplID0gcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfbG9jYWxfYWxsb2NhdG9yX3NpemVf
Zm9yX2NvbmZpZyhjb25maWcpOworCisgICAgaWYgKHZlcmJvc2UpIHsKKyAgICAgICAgcGFzX2xv
ZygKKyAgICAgICAgICAgICJraW5kID0gJXMsIHNpemUgPSAlenUuXG4iLAorICAgICAgICAgICAg
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZF9nZXRfc3RyaW5nKGNvbmZpZy5raW5kKSwK
KyAgICAgICAgICAgIHNpemUpOworICAgIH0KKworICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeV9udW1fYWxsb2NhdG9yX2luZGljZXNfZm9yX2FsbG9jYXRvcl9zaXplKHNp
emUpOwogfQogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdW5zaWduZWQKLXBhc19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5X3Rha2VfZmlyc3RfZWxpZ2libGVfaW1wbF9zaG91bGRfY29uc2lk
ZXJfdmlld190YWJsZWRfcGFyYWxsZWwoCitwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV90
YWtlX2ZpcnN0X2VsaWdpYmxlX2ltcGxfc2hvdWxkX2NvbnNpZGVyX3ZpZXdfcGFyYWxsZWwoCiAg
ICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2JpdHZlY3Rvcl9zZWdtZW50IHNlZ21lbnQsCiAg
ICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2l0ZXJhdGVfY29uZmlnKiBjb25maWcpCiB7CiAg
ICAgUEFTX1VOVVNFRF9QQVJBTShjb25maWcpOwogICAgIAotICAgIHJldHVybiBzZWdtZW50LmVs
aWdpYmxlX2JpdHMgJiBzZWdtZW50LnRhYmxlZF9iaXRzOworICAgIHJldHVybiBzZWdtZW50LmVs
aWdpYmxlX2JpdHM7CiB9CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfc2VncmVnYXRl
ZF92aWV3CiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV90YWtlX2ZpcnN0X2VsaWdpYmxl
X2ltcGwoCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBkaXJlY3RvcnksCiAgICAgcGFz
X3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2l0ZXJhdGVfY29uZmlnKiBjb25maWcsCi0gICAgdm9pZCAo
Kmxvb3BfaGVhZF9jYWxsYmFjaykocGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBkaXJlY3Rvcnkp
LAogICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgKCpjcmVhdGVfbmV3X3ZpZXdfY2FsbGJhY2spKAog
ICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXRlcmF0ZV9jb25maWcqIGNvbmZpZykp
CiB7CkBAIC04NSwxMTEgKzE3MCw1MCBAQCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV90
YWtlX2ZpcnN0CiAgICAgICAgIGlmICh2ZXJib3NlKQogICAgICAgICAgICAgcGFzX2xvZygiJXA6
IEF0IHRvcCBvZiB0YWtlX2ZpcnN0X2VsaWdpYmxlX2ltcGwgbG9vcC5cbiIsIGRpcmVjdG9yeSk7
CiAgICAgICAgIAotICAgICAgICBsb29wX2hlYWRfY2FsbGJhY2soZGlyZWN0b3J5KTsKLSAgICAg
ICAgCiAgICAgICAgIGNvbmZpZy0+ZGlyZWN0b3J5ID0gZGlyZWN0b3J5OwogICAgICAgICBjb25m
aWctPnNob3VsZF9jb25zaWRlcl92aWV3X3BhcmFsbGVsID0KLSAgICAgICAgICAgIHBhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5X3Rha2VfZmlyc3RfZWxpZ2libGVfaW1wbF9zaG91bGRfY29u
c2lkZXJfdmlld19ub3RfdGFibGVkX3BhcmFsbGVsOworICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnlfdGFrZV9maXJzdF9lbGlnaWJsZV9pbXBsX3Nob3VsZF9jb25zaWRl
cl92aWV3X3BhcmFsbGVsOwogICAgICAgICBjb25maWctPmNvbnNpZGVyX3ZpZXcgPSBOVUxMOwog
ICAgICAgICBjb25maWctPmFyZyA9IE5VTEw7CiAKLSAgICAgICAgZGlkX2ZpbmRfc29tZXRoaW5n
ID0gcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2l0ZXJhdGVfZm9yd2FyZF90b190YWtlX2ZpcnN0
X2VsaWdpYmxlKAotICAgICAgICAgICAgY29uZmlnLCBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlf
Zmlyc3RfZWxpZ2libGVfYnV0X25vdF90YWJsZWRfa2luZCk7CisgICAgICAgIGRpZF9maW5kX3Nv
bWV0aGluZyA9IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pdGVyYXRlX2ZvcndhcmRfdG9fdGFr
ZV9maXJzdF9lbGlnaWJsZShjb25maWcpOwogCiAgICAgICAgIGlmIChkaWRfZmluZF9zb21ldGhp
bmcpIHsKICAgICAgICAgICAgIHZpZXcgPSBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZ2V0KGRp
cmVjdG9yeSwgY29uZmlnLT5pbmRleCk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGlmICh2
ZXJib3NlKSB7Ci0gICAgICAgICAgICAgICAgcGFzX2xvZygiQXQgaW5kZXggJXp1OiBUYWtpbmcg
ZXhpc3RpbmcgdmlldyAlcCAobm90IHRhYmxlZCkuXG4iLAorICAgICAgICAgICAgICAgIHBhc19s
b2coIkF0IGluZGV4ICV6dTogVGFraW5nIGV4aXN0aW5nIHZpZXcgJXAuXG4iLAogICAgICAgICAg
ICAgICAgICAgICAgICAgKHNpemVfdCljb25maWctPmluZGV4LAogICAgICAgICAgICAgICAgICAg
ICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcHRyKHZpZXcpKTsKICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIAogICAgICAgICAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKGNvbmZpZy0+c2Vn
bWVudC5lbGlnaWJsZV9iaXRzICYgY29uZmlnLT5iaXRfcmVmZXJlbmNlLm1hc2spOwotICAgICAg
ICAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKCEoY29uZmlnLT5zZWdtZW50LnRhYmxlZF9iaXRzICYg
Y29uZmlnLT5iaXRfcmVmZXJlbmNlLm1hc2spKTsKIAogICAgICAgICAgICAgaWYgKFBBU19TRUdS
RUdBVEVEX0RJUkVDVE9SWV9CSVRfUkVGRVJFTkNFX1NFVCgKICAgICAgICAgICAgICAgICAgICAg
ZGlyZWN0b3J5LCBjb25maWctPmJpdF9yZWZlcmVuY2UsIGVsaWdpYmxlLCBmYWxzZSkpIHsKICAg
ICAgICAgICAgICAgICBpZiAodmVyYm9zZSkKICAgICAgICAgICAgICAgICAgICAgcGFzX2xvZygi
RGlkIHRha2UgZmlyc3QgZWxpZ2libGUuXG4iKTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAg
ICAgICAgICBpZiAoIXBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3VzZV90YWJsaW5nKQot
ICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAg
ICAgICBpZiAoIXBhc19zZWdyZWdhdGVkX3ZpZXdfc2hvdWxkX3RhYmxlKHZpZXcsIHBhZ2VfY29u
ZmlnX3B0cikpCi0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwogCi0gICAgICAgICAgICAgICAg
aWYgKHZlcmJvc2UpCi0gICAgICAgICAgICAgICAgICAgIHBhc19sb2coIlRhYmxpbmcuXG4iKTsK
LSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBQQVNfU0VHUkVHQVRFRF9ESVJFQ1RP
UllfQklUX1JFRkVSRU5DRV9TRVQoCi0gICAgICAgICAgICAgICAgICAgIGRpcmVjdG9yeSwgY29u
ZmlnLT5iaXRfcmVmZXJlbmNlLCB0YWJsZWQsIHRydWUpOwotICAgICAgICAgICAgICAgIFBBU19T
RUdSRUdBVEVEX0RJUkVDVE9SWV9CSVRfUkVGRVJFTkNFX1NFVCgKLSAgICAgICAgICAgICAgICAg
ICAgZGlyZWN0b3J5LCBjb25maWctPmJpdF9yZWZlcmVuY2UsIGVsaWdpYmxlLCB0cnVlKTsKLSAg
ICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfbWluaW1pemVfZmlyc3RfZWxp
Z2libGUoCi0gICAgICAgICAgICAgICAgICAgIGRpcmVjdG9yeSwgcGFzX3NlZ3JlZ2F0ZWRfZGly
ZWN0b3J5X2ZpcnN0X2VsaWdpYmxlX2FuZF90YWJsZWRfa2luZCwgY29uZmlnLT5pbmRleCk7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgICBzaXplX3Qgbm90X3RhYmxlZF9pbmRleDsKLQotICAgICAgICAgICAgaWYgKHZl
cmJvc2UpCi0gICAgICAgICAgICAgICAgcGFzX2xvZygiRGlkbid0IGZpbmQgYW55dGhpbmcsIHNl
YXJjaGluZyB0YWJsZWQuXG4iKTsKLQotICAgICAgICAgICAgbm90X3RhYmxlZF9pbmRleCA9IGNv
bmZpZy0+aW5kZXg7Ci0KLSAgICAgICAgICAgIGNvbmZpZy0+ZGlyZWN0b3J5ID0gZGlyZWN0b3J5
OwotICAgICAgICAgICAgY29uZmlnLT5zaG91bGRfY29uc2lkZXJfdmlld19wYXJhbGxlbCA9Ci0g
ICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfdGFrZV9maXJzdF9l
bGlnaWJsZV9pbXBsX3Nob3VsZF9jb25zaWRlcl92aWV3X3RhYmxlZF9wYXJhbGxlbDsKLSAgICAg
ICAgICAgIGNvbmZpZy0+Y29uc2lkZXJfdmlldyA9IE5VTEw7Ci0gICAgICAgICAgICBjb25maWct
PmFyZyA9IE5VTEw7Ci0gICAgICAgICAgICBkaWRfZmluZF9zb21ldGhpbmcgPSBwYXNfc2VncmVn
YXRlZF9kaXJlY3RvcnlfaXRlcmF0ZV9mb3J3YXJkX3RvX3Rha2VfZmlyc3RfZWxpZ2libGUoCi0g
ICAgICAgICAgICAgICAgY29uZmlnLCBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZmlyc3RfZWxp
Z2libGVfYW5kX3RhYmxlZF9raW5kKTsKLQotICAgICAgICAgICAgaWYgKGRpZF9maW5kX3NvbWV0
aGluZykgewotICAgICAgICAgICAgICAgIHZpZXcgPSBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlf
Z2V0KGRpcmVjdG9yeSwgY29uZmlnLT5pbmRleCk7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAg
ICAgICAgICAgaWYgKHZlcmJvc2UpIHsKLSAgICAgICAgICAgICAgICAgICAgcGFzX2xvZygiQXQg
aW5kZXggJXp1OiBUYWtpbmcgZXhpc3RpbmcgdmlldyAlcCAodGFibGVkKS5cbiIsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uZmlnLT5pbmRleCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9wdHIodmlldykpOwotICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBQQVNfVEVTVElOR19BU1NF
UlQoY29uZmlnLT5zZWdtZW50LmVsaWdpYmxlX2JpdHMgJiBjb25maWctPmJpdF9yZWZlcmVuY2Uu
bWFzayk7Ci0gICAgICAgICAgICAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKGNvbmZpZy0+c2VnbWVu
dC50YWJsZWRfYml0cyAmIGNvbmZpZy0+Yml0X3JlZmVyZW5jZS5tYXNrKTsKLSAgICAgICAgICAg
ICAgICAKLSAgICAgICAgICAgICAgICBpZiAoUEFTX1NFR1JFR0FURURfRElSRUNUT1JZX0JJVF9S
RUZFUkVOQ0VfU0VUKAotICAgICAgICAgICAgICAgICAgICAgICAgZGlyZWN0b3J5LCBjb25maWct
PmJpdF9yZWZlcmVuY2UsIGVsaWdpYmxlLCBmYWxzZSkpIHsKLSAgICAgICAgICAgICAgICAgICAg
aWYgKHZlcmJvc2UpCi0gICAgICAgICAgICAgICAgICAgICAgICBwYXNfbG9nKCJEaWQgdGFrZSBm
aXJzdCBlbGlnaWJsZS5cbiIpOwotCi0gICAgICAgICAgICAgICAgICAgIC8qIEZJWE1FOiBUaGlz
IGlzIHdlaXJkIGZvciBwYXJ0aWFscy4gSWRlYWxseSwgd2UnZCB3YW50IHRvIHVudGFibGUgYWxs
IG9mIHRoZSBwYXJ0aWFscwotICAgICAgICAgICAgICAgICAgICAgICB0aGF0IHNoYXJlIHRoZSBz
YW1lIHNoYXJlZCB2aWV3IGFzIHRoaXMgb25lLiBCdXQgdGFibGluZyBpcyBtb3N0IGxpa2VseSB0
byBoYXBwZW4KLSAgICAgICAgICAgICAgICAgICAgICAgZm9yIGRlY29tbWl0dGVkIHBhZ2VzLCBp
biB3aGljaCBjYXNlIHdlIGNhbm5vdCBmaW5kIHRoZSBvdGhlciBwYXJ0aWFscyAtIHdlIHdvdWxk
Ci0gICAgICAgICAgICAgICAgICAgICAgIGhhdmUgZm9yZ290dGVuIGFib3V0IHRoZW0uIFNvLCB3
ZSBsZXQgdGhlIG90aGVyIHBhcnRpYWxzIHN0YXkgdGFibGVkLiAqLwotICAgICAgICAgICAgICAg
ICAgICBQQVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllfQklUX1JFRkVSRU5DRV9TRVQoCi0gICAgICAg
ICAgICAgICAgICAgICAgICBkaXJlY3RvcnksIGNvbmZpZy0+Yml0X3JlZmVyZW5jZSwgdGFibGVk
LCBmYWxzZSk7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgc2l6ZV90IG5ld19zaXplOwot
Ci0gICAgICAgICAgICAgICAgcGFzX2hlYXBfbG9ja19sb2NrX2NvbmRpdGlvbmFsbHkoCi0gICAg
ICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2hlYXBfbG9ja19ob2xk
X21vZGUocGFnZV9jb25maWcpKTsKLQotICAgICAgICAgICAgICAgIG5ld19zaXplID0gcGFzX3Nl
Z3JlZ2F0ZWRfZGlyZWN0b3J5X3NpemUoZGlyZWN0b3J5KTsKLSAgICAgICAgICAgICAgICBQQVNf
QVNTRVJUKG5ld19zaXplID49IG5vdF90YWJsZWRfaW5kZXgpOwotICAgICAgICAgICAgICAgIFBB
U19BU1NFUlQobmV3X3NpemUgPj0gY29uZmlnLT5pbmRleCk7Ci0gICAgICAgICAgICAgICAgaWYg
KG5ld19zaXplID09IG5vdF90YWJsZWRfaW5kZXggJiYgbmV3X3NpemUgPT0gY29uZmlnLT5pbmRl
eCkgewotICAgICAgICAgICAgICAgICAgICB2aWV3ID0gY3JlYXRlX25ld192aWV3X2NhbGxiYWNr
KGNvbmZpZyk7Ci0gICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9h
cHBlbmQoZGlyZWN0b3J5LCBjb25maWctPmluZGV4LCB2aWV3KTsKLSAgICAgICAgICAgICAgICAg
ICAgcGFzX2hlYXBfbG9ja191bmxvY2tfY29uZGl0aW9uYWxseSgKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2hlYXBfbG9ja19ob2xkX21vZGUocGFn
ZV9jb25maWcpKTsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgc2l6ZV90IG5ld19zaXplOworICAgICAg
ICAgICAgCisgICAgICAgICAgICBwYXNfaGVhcF9sb2NrX2xvY2tfY29uZGl0aW9uYWxseSgKKyAg
ICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19oZWFwX2xvY2tfaG9sZF9t
b2RlKHBhZ2VfY29uZmlnKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG5ld19zaXplID0g
cGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3NpemUoZGlyZWN0b3J5KTsKKyAgICAgICAgICAgIFBB
U19BU1NFUlQobmV3X3NpemUgPj0gY29uZmlnLT5pbmRleCk7CisgICAgICAgICAgICBpZiAobmV3
X3NpemUgPT0gY29uZmlnLT5pbmRleCkgeworICAgICAgICAgICAgICAgIHZpZXcgPSBjcmVhdGVf
bmV3X3ZpZXdfY2FsbGJhY2soY29uZmlnKTsKKyAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRl
ZF9kaXJlY3RvcnlfYXBwZW5kKGRpcmVjdG9yeSwgY29uZmlnLT5pbmRleCwgdmlldyk7CiAgICAg
ICAgICAgICAgICAgcGFzX2hlYXBfbG9ja191bmxvY2tfY29uZGl0aW9uYWxseSgKICAgICAgICAg
ICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfaGVhcF9sb2NrX2hvbGRfbW9k
ZShwYWdlX2NvbmZpZykpOworICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQor
ICAgICAgICAgICAgCisgICAgICAgICAgICBwYXNfaGVhcF9sb2NrX3VubG9ja19jb25kaXRpb25h
bGx5KAorICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2hlYXBfbG9j
a19ob2xkX21vZGUocGFnZV9jb25maWcpKTsKICAgICAgICAgfQogICAgIH0KICAgICAKQEAgLTIw
NSwyNSArMjI5LDcgQEAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfdGFrZV9maXJzdAog
ICAgIHJldHVybiB2aWV3OwogfQogCi1zdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX3NlZ3Jl
Z2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KgotcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnlfZ2V0X2dsb2JhbChwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkqIGRpcmVjdG9yeSkKLXsKLSAg
ICBpZiAoIWRpcmVjdG9yeSkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgc3dpdGNoIChkaXJl
Y3RvcnktPmRpcmVjdG9yeV9raW5kKSB7Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9nbG9iYWxf
c2l6ZV9kaXJlY3Rvcnlfa2luZDoKLSAgICAgICAgcmV0dXJuIChwYXNfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnkqKWRpcmVjdG9yeTsKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2Jp
YXNpbmdfZGlyZWN0b3J5X2tpbmQ6Ci0gICAgICAgIHJldHVybiBwYXNfY29tcGFjdF9zZWdyZWdh
dGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgKLSAgICAgICAgICAg
ICYoKHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5KilkaXJlY3RvcnkpLT5wYXJlbnRf
Z2xvYmFsKTsKLSAgICBkZWZhdWx0OgotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgUEFTX0FT
U0VSVCghIlNob3VsZCBub3QgYmUgcmVhY2hlZCIpOwotICAgIHJldHVybiBOVUxMOwotfQotCiBQ
QVNfRU5EX0VYVEVSTl9DOwogCi0jZW5kaWYgLyogUEFTX1NFR1JFR0FURURfU0laRV9ESVJFQ1RP
UllfSU5MSU5FU19IICovCisjZW5kaWYgLyogUEFTX1NFR1JFR0FURURfR0xPQkFMX1NJWkVfRElS
RUNUT1JZX0lOTElORVNfSCAqLwogCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfc2VncmVnYXRlZF92aWV3LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfdmlldy5jCShyZXZpc2lvbiAyNzk5NjQp
CisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF92aWV3
LmMJKHdvcmtpbmcgY29weSkKQEAgLTMwLDggKzMwLDYgQEAKICNpbmNsdWRlICJwYXNfc2VncmVn
YXRlZF92aWV3LmgiCiAKICNpbmNsdWRlICJwYXNfZnVsbF9hbGxvY19iaXRzX2lubGluZXMuaCIK
LSNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeS5oIgotI2luY2x1ZGUg
InBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldy5oIgogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVk
X2V4Y2x1c2l2ZV92aWV3LmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfcGFnZV9pbmxpbmVz
LmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3LmgiCkBAIC00MSw0MSAr
MzksMTYgQEAKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeS5oIgogI2lu
Y2x1ZGUgInBhc19zaGFyZWRfaGFuZGxlX29yX3BhZ2VfYm91bmRhcnlfaW5saW5lcy5oIgogCi1w
YXNfc2VncmVnYXRlZF9kaXJlY3RvcnkqIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3NpemVfZGly
ZWN0b3J5X3Nsb3cocGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3KQorcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnkqCitwYXNfc2VncmVnYXRlZF92aWV3X2dldF9zaXplX2RpcmVjdG9yeV9zbG93
KHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldykKIHsKICAgICBzd2l0Y2ggKHBhc19zZWdyZWdhdGVk
X3ZpZXdfZ2V0X2tpbmQodmlldykpIHsKICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2
ZV92aWV3X2tpbmQ6CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9pbmVsaWdpYmxlX2V4Y2x1c2l2
ZV92aWV3X2tpbmQ6Ci0gICAgICAgIHJldHVybiAmcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoCi0gICAgICAgICAgICAmcGFzX3Nl
Z3JlZ2F0ZWRfdmlld19nZXRfZXhjbHVzaXZlKHZpZXcpLT5kaXJlY3RvcnkpLT5iYXNlOwotICAg
IGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2tpbmQ6Ci0gICAgY2FzZSBwYXNfc2Vn
cmVnYXRlZF9pbmVsaWdpYmxlX2JpYXNpbmdfdmlld19raW5kOgotICAgICAgICByZXR1cm4gJnBh
c19jb21wYWN0X3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwo
Ci0gICAgICAgICAgICAmcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfYmlhc2luZyh2aWV3KS0+ZGly
ZWN0b3J5KS0+YmFzZTsKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld19raW5k
OgotICAgICAgICByZXR1cm4gJnBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGly
ZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKAotICAgICAgICAgICAgJnBhc19zZWdyZWdhdGVkX3Zp
ZXdfZ2V0X3BhcnRpYWwodmlldyktPmRpcmVjdG9yeSktPmJhc2U7Ci0gICAgZGVmYXVsdDoKLSAg
ICAgICAgUEFTX0FTU0VSVCghIlNob3VsZCBub3QgYmUgcmVhY2hlZCIpOwotICAgICAgICByZXR1
cm4gTlVMTDsKLSAgICB9Ci19Ci0KLXBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9y
eSoKLXBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2dsb2JhbF9zaXplX2RpcmVjdG9yeV9zbG93KHBh
c19zZWdyZWdhdGVkX3ZpZXcgdmlldykKLXsKLSAgICBzd2l0Y2ggKHBhc19zZWdyZWdhdGVkX3Zp
ZXdfZ2V0X2tpbmQodmlldykpIHsKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92
aWV3X2tpbmQ6Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9pbmVsaWdpYmxlX2V4Y2x1c2l2ZV92
aWV3X2tpbmQ6Ci0gICAgICAgIHJldHVybiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgKKyAgICAgICAgcmV0dXJuIHBhc19jb21w
YWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoCiAgICAgICAg
ICAgICAmcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfZXhjbHVzaXZlKHZpZXcpLT5kaXJlY3Rvcnkp
OwotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2tpbmQ6Ci0gICAgY2FzZSBw
YXNfc2VncmVnYXRlZF9pbmVsaWdpYmxlX2JpYXNpbmdfdmlld19raW5kOgotICAgICAgICByZXR1
cm4gcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRf
bm9uX251bGwoCi0gICAgICAgICAgICAmcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9iaWFzaW5nX2Rp
cmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgKLSAgICAgICAgICAgICAgICAmcGFzX3NlZ3JlZ2F0
ZWRfdmlld19nZXRfYmlhc2luZyh2aWV3KS0+ZGlyZWN0b3J5KS0+cGFyZW50X2dsb2JhbCk7CiAg
ICAgY2FzZSBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXdfa2luZDoKLSAgICAgICAgcmV0dXJu
IHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkX25v
bl9udWxsKAorICAgICAgICByZXR1cm4gcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeV9wdHJfbG9hZF9ub25fbnVsbCgKICAgICAgICAgICAgICZwYXNfc2VncmVnYXRlZF92aWV3
X2dldF9wYXJ0aWFsKHZpZXcpLT5kaXJlY3RvcnkpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIFBB
U19BU1NFUlQoISJTaG91bGQgbm90IGJlIHJlYWNoZWQiKTsKQEAgLTg4LDEyICs2MSw4IEBAIHBh
c19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmQgcGFzX3NlZ3IKICAgICBzd2l0Y2ggKHBhc19z
ZWdyZWdhdGVkX3ZpZXdfZ2V0X2tpbmQodmlldykpIHsKICAgICBjYXNlIHBhc19zZWdyZWdhdGVk
X2V4Y2x1c2l2ZV92aWV3X2tpbmQ6CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9pbmVsaWdpYmxl
X2V4Y2x1c2l2ZV92aWV3X2tpbmQ6Ci0gICAgICAgIHJldHVybiBwYXNfY29tcGFjdF9zZWdyZWdh
dGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgKKyAgICAgICAgcmV0
dXJuIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251
bGwoCiAgICAgICAgICAgICAmcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfZXhjbHVzaXZlKHZpZXcp
LT5kaXJlY3RvcnkpLT5iYXNlLnBhZ2VfY29uZmlnX2tpbmQ7Ci0gICAgY2FzZSBwYXNfc2VncmVn
YXRlZF9iaWFzaW5nX3ZpZXdfa2luZDoKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2luZWxpZ2li
bGVfYmlhc2luZ192aWV3X2tpbmQ6Ci0gICAgICAgIHJldHVybiBwYXNfY29tcGFjdF9zZWdyZWdh
dGVkX2JpYXNpbmdfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKAotICAgICAgICAgICAgJnBh
c19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2JpYXNpbmcodmlldyktPmRpcmVjdG9yeSktPmJhc2UucGFn
ZV9jb25maWdfa2luZDsKICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9oYW5kbGVfa2lu
ZDoKICAgICAgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3NoYXJlZF9oYW5kbGUo
dmlldyktPmRpcmVjdG9yeS0+YmFzZS5wYWdlX2NvbmZpZ19raW5kOwogICAgIGNhc2UgcGFzX3Nl
Z3JlZ2F0ZWRfc2hhcmVkX3ZpZXdfa2luZDoKQEAgLTEwMSwxMCArNzAsMTAgQEAgcGFzX3NlZ3Jl
Z2F0ZWRfcGFnZV9jb25maWdfa2luZCBwYXNfc2VncgogICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0
ZWRfdmlld19nZXRfc2hhcmVkKHZpZXcpLT5zaGFyZWRfaGFuZGxlX29yX3BhZ2VfYm91bmRhcnkp
CiAgICAgICAgICAgICAtPmRpcmVjdG9yeS0+YmFzZS5wYWdlX2NvbmZpZ19raW5kOwogICAgIGNh
c2UgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X2tpbmQ6Ci0gICAgICAgIHJldHVybiBwYXNf
Y29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVs
bCgKKyAgICAgICAgcmV0dXJuIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlf
cHRyX2xvYWRfbm9uX251bGwoCiAgICAgICAgICAgICAmcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRf
cGFydGlhbCh2aWV3KS0+ZGlyZWN0b3J5KS0+YmFzZS5wYWdlX2NvbmZpZ19raW5kOwotICAgIGNh
c2UgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3ZpZXdfa2luZDoKLSAgICAg
ICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2dsb2JhbF9zaXplX2RpcmVjdG9yeSh2
aWV3KS0+YmFzZS5wYWdlX2NvbmZpZ19raW5kOworICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3Rvcnlfdmlld19raW5kOgorICAgICAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfdmll
d19nZXRfc2l6ZV9kaXJlY3RvcnkodmlldyktPmJhc2UucGFnZV9jb25maWdfa2luZDsKICAgICBk
ZWZhdWx0OgogICAgICAgICBQQVNfQVNTRVJUKCEiU2hvdWxkIG5vdCBiZSByZWFjaGVkIik7CiAg
ICAgICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX251bGw7CkBAIC0x
MjMsOSArOTIsNiBAQCBzaXplX3QgcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfaW5kZXgocGFzCiAg
ICAgY2FzZSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19raW5kOgogICAgIGNhc2UgcGFz
X3NlZ3JlZ2F0ZWRfaW5lbGlnaWJsZV9leGNsdXNpdmVfdmlld19raW5kOgogICAgICAgICByZXR1
cm4gKChwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldyopcGFzX3NlZ3JlZ2F0ZWRfdmlld19n
ZXRfcHRyKHZpZXcpKS0+aW5kZXg7Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3Zp
ZXdfa2luZDoKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2luZWxpZ2libGVfYmlhc2luZ192aWV3
X2tpbmQ6Ci0gICAgICAgIHJldHVybiAoKHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldyopcGFz
X3NlZ3JlZ2F0ZWRfdmlld19nZXRfcHRyKHZpZXcpKS0+aW5kZXg7CiAgICAgY2FzZSBwYXNfc2Vn
cmVnYXRlZF9zaGFyZWRfdmlld19raW5kOgogICAgICAgICByZXR1cm4gKChwYXNfc2VncmVnYXRl
ZF9zaGFyZWRfdmlldyopcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcHRyKHZpZXcpKS0+aW5kZXg7
CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9zaGFyZWRfaGFuZGxlX2tpbmQ6CkBAIC0xNDUsMTMg
KzExMSw2IEBAIHZvaWQqIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3BhZ2VfYm91bmQKICAgICBj
YXNlIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2tpbmQ6CiAgICAgY2FzZSBwYXNfc2Vn
cmVnYXRlZF9pbmVsaWdpYmxlX2V4Y2x1c2l2ZV92aWV3X2tpbmQ6CiAgICAgICAgIHJldHVybiAo
KHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3KilwYXNfc2VncmVnYXRlZF92aWV3X2dldF9w
dHIodmlldykpLT5wYWdlX2JvdW5kYXJ5OwotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2lu
Z192aWV3X2tpbmQ6Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9pbmVsaWdpYmxlX2JpYXNpbmdf
dmlld19raW5kOiB7Ci0gICAgICAgIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3KiBleGNs
dXNpdmU7Ci0gICAgICAgIGV4Y2x1c2l2ZSA9IHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVk
X2V4Y2x1c2l2ZV92aWV3X3B0cl9sb2FkKAotICAgICAgICAgICAgJigocGFzX3NlZ3JlZ2F0ZWRf
Ymlhc2luZ192aWV3KilwYXNfc2VncmVnYXRlZF92aWV3X2dldF9wdHIodmlldykpLT5leGNsdXNp
dmUpOwotICAgICAgICByZXR1cm4gZXhjbHVzaXZlID8gZXhjbHVzaXZlLT5wYWdlX2JvdW5kYXJ5
IDogTlVMTDsKLSAgICB9CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9zaGFyZWRfdmlld19raW5k
OgogICAgICAgICByZXR1cm4gcGFzX3NoYXJlZF9oYW5kbGVfb3JfcGFnZV9ib3VuZGFyeV9nZXRf
cGFnZV9ib3VuZGFyeV9ub19saXZlbmVzc19jaGVja3MoCiAgICAgICAgICAgICAoKHBhc19zZWdy
ZWdhdGVkX3NoYXJlZF92aWV3KikKQEAgLTE2OCw3ICsxMjcsNyBAQCB2b2lkKiBwYXNfc2VncmVn
YXRlZF92aWV3X2dldF9wYWdlX2JvdW5kCiAgICAgICAgIHJldHVybiBwYXNfc2hhcmVkX2hhbmRs
ZV9vcl9wYWdlX2JvdW5kYXJ5X2dldF9wYWdlX2JvdW5kYXJ5KAogICAgICAgICAgICAgc2hhcmVk
X3ZpZXctPnNoYXJlZF9oYW5kbGVfb3JfcGFnZV9ib3VuZGFyeSwKICAgICAgICAgICAgICpwYXNf
c2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX2dldF9jb25maWcoCi0gICAgICAgICAgICAgICAg
cGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9u
X251bGwoCisgICAgICAgICAgICAgICAgcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeV9wdHJfbG9hZF9ub25fbnVsbCgKICAgICAgICAgICAgICAgICAgICAgJnBhcnRpYWxfdmll
dy0+ZGlyZWN0b3J5KS0+YmFzZS5wYWdlX2NvbmZpZ19raW5kKSk7CiAgICAgfQogICAgIGRlZmF1
bHQ6CkBAIC0xODQsMTEyICsxNDMsMTIgQEAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZSogcGFzX3NlZ3Jl
Z2F0ZWRfdmlldwogICAgICAgICAqcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcGFnZV9jb25maWco
dmlldykpOwogfQogCi1ib29sIHBhc19zZWdyZWdhdGVkX3ZpZXdfc2hvdWxkX3Jlc3RhcnQocGFz
X3NlZ3JlZ2F0ZWRfdmlldyBvd25lcl92aWV3LAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHBhc19tYWdhemluZSogbWFnYXppbmUpCi17Ci0gICAgcGFzX3NlZ3JlZ2F0
ZWRfdmlld19raW5kIGtpbmQ7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBkaXJlY3Rv
cnk7Ci0gICAgdW5zaWduZWQgaW5kZXg7Ci0KLSAgICBraW5kID0gcGFzX3NlZ3JlZ2F0ZWRfdmll
d19nZXRfa2luZChvd25lcl92aWV3KTsKLSAgICBzd2l0Y2ggKGtpbmQpIHsKLSAgICBjYXNlIHBh
c19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2tpbmQ6IHsKLSAgICAgICAgcGFzX3NlZ3JlZ2F0
ZWRfZXhjbHVzaXZlX3ZpZXcqIGV4Y2x1c2l2ZTsKLSAgICAgICAgZXhjbHVzaXZlID0gcGFzX3Nl
Z3JlZ2F0ZWRfdmlld19nZXRfZXhjbHVzaXZlKG93bmVyX3ZpZXcpOwotICAgICAgICBkaXJlY3Rv
cnkgPSAmcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2xv
YWRfbm9uX251bGwoCi0gICAgICAgICAgICAmZXhjbHVzaXZlLT5kaXJlY3RvcnkpLT5iYXNlOwot
ICAgICAgICBpbmRleCA9IGV4Y2x1c2l2ZS0+aW5kZXg7Ci0gICAgICAgIGJyZWFrOwotICAgIH0K
LSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2luZWxpZ2libGVfZXhjbHVzaXZlX3ZpZXdfa2luZDoK
LSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192
aWV3X2tpbmQ6IHsKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3KiBiaWFzaW5n
OwotICAgICAgICBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeSogYmlhc2luZ19kaXJl
Y3Rvcnk7Ci0gICAgICAgIGJpYXNpbmcgPSBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9iaWFzaW5n
KG93bmVyX3ZpZXcpOwotICAgICAgICBiaWFzaW5nX2RpcmVjdG9yeSA9IHBhc19jb21wYWN0X3Nl
Z3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoCi0gICAgICAgICAg
ICAmYmlhc2luZy0+ZGlyZWN0b3J5KTsKLSAgICAgICAgaWYgKCFtYWdhemluZSB8fAotICAgICAg
ICAgICAgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnlfbWFnYXppbmVfaW5kZXgoCi0g
ICAgICAgICAgICAgICAgYmlhc2luZ19kaXJlY3RvcnkpICE9IG1hZ2F6aW5lLT5tYWdhemluZV9p
bmRleCkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgZGlyZWN0b3J5ID0gJmJp
YXNpbmdfZGlyZWN0b3J5LT5iYXNlOwotICAgICAgICBpbmRleCA9IGJpYXNpbmctPmluZGV4Owot
ICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9pbmVsaWdpYmxl
X2JpYXNpbmdfdmlld19raW5kOgotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgY2FzZSBwYXNf
c2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXdfa2luZDogewotICAgICAgICBwYXNfc2VncmVnYXRlZF9w
YXJ0aWFsX3ZpZXcqIHBhcnRpYWw7Ci0gICAgICAgIHBhcnRpYWwgPSBwYXNfc2VncmVnYXRlZF92
aWV3X2dldF9wYXJ0aWFsKG93bmVyX3ZpZXcpOwotICAgICAgICBpZiAoIXBhcnRpYWwtPmVsaWdp
YmlsaXR5X2hhc19iZWVuX25vdGVkKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAg
ICBkaXJlY3RvcnkgPSAmcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnlfcHRyX2xvYWRfbm9uX251bGwoCi0gICAgICAgICAgICAmcGFydGlhbC0+ZGlyZWN0b3J5KS0+
YmFzZTsKLSAgICAgICAgaW5kZXggPSBwYXJ0aWFsLT5pbmRleDsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgfQotICAgIGRlZmF1bHQ6Ci0gICAgICAgIFBBU19BU1NFUlQoISJTaG91bGQgbm90IGJlIHJl
YWNoZWQiKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIC8qIFRoZXJlJ3Mg
c29tZXRoaW5nIGludGVyZXN0aW5nIGhlcmU6IHRoZSA8PSBjb21wYXJpc29uIG9mIHZpZXcgaW5k
aWNlcy4gSXQgcmVhbGx5IG91Z2h0IHRvCi0gICAgICAgYmUgPCwgc2luY2UgdGhlIG93bmVyX3Zp
ZXcgaXNuJ3QgYWN0dWFsbHkgZWxpZ2libGUuCi0gICAgICAgCi0gICAgICAgQnV0IHRoZSBmaXJz
dF9lbGlnaWJsZSBwcm9wZXJ0eSBoYXMgYW4gb2ZmLWJ5LW9uZSBzdGlja2luZXNzIHRvIGl0LiBU
aGF0IGp1c3Qgc29ydCBvZiBmYWxscwotICAgICAgIG91dCBvZiB0aGUgZ2VuZXJpYyB0YWtlX2Zp
cnN0X2VsaWdpYmxlIGFsZ29yaXRobS4gVGhhdCBuZWNlc3NpdGF0ZXMgdGhlIDw9LgotICAgICAg
IAotICAgICAgIFRoaXMgZG9lc24ndCBoYXZlIHRvIGJlIHN1cGVyIGNvcnJlY3QuIEl0J3MgaW1w
b3J0YW50IGZvciB0aGUgYWxnb3JpdGhtIHRvIHRlbmQgdG93YXJkcyB1c2luZwotICAgICAgIHRo
ZSBsb3dlc3QtaW5kZXhlZCB2aWV3LiBCdXQgaWYgaXQgc29tZXRpbWVzIGZhaWxzIHRvIGRvIHRo
YXQsIHRoZW4gaXQncyBub3QgdGhlIGVuZCBvZiB0aGUKLSAgICAgICB3b3JsZC4KLSAgICAKLSAg
ICAgICBIb3dldmVyLCBpdCBtaWdodCBiZSBuaWNlIHRvIHJldmlzaXQgd2hldGhlciB0aGlzIGlz
IHJlYWxseSB0aGUgYmVzdCB0aGF0IHdlIGNhbiBkby4gSSB0aGluawotICAgICAgIHRoYXQgdW5k
ZXIgY29tcGxleCByYWNlcywgd2UgbWlnaHQgaGF2ZSBmaXJzdF9lbGlnaWJsZSBwb2ludGluZyB0
b28gbG93LCBtYWtpbmcgaXQgc2VlbSBsaWtlCi0gICAgICAgb3duZXJfdmlldyBpc24ndCB0aGUg
Zmlyc3RfZWxpZ2libGUgb25lLiBPbmUgd2F5IHRvIGZpeCB0aGlzIGlzIHRvIGp1c3QgaGF2ZQot
ICAgICAgIHRha2VfZmlyc3RfZWxpZ2libGUgdGFrZSBvdXIgaW5kZXggYW5kIGhhdmUgaXQgbm90
IHJldHVybiBhbnl0aGluZyB1bmxlc3MgdGhhdCBzb21ldGhpbmcgaGFzCi0gICAgICAgYSBsb3dl
ciBpbmRleCB0aGFuIHVzLiBUaGF0IHNlZW1zIGJldHRlciBhbmQgbW9yZSBlZmZpY2llbnQgaW4g
bG90cyBvZiB3YXlzLiAqLwotICAgIHJldHVybiAoaW5kZXggPD0gcGFzX3NlZ3JlZ2F0ZWRfZGly
ZWN0b3J5X2dldF9maXJzdF9lbGlnaWJsZV90b3JuKAotICAgICAgICAgICAgICAgIGRpcmVjdG9y
eSwgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2ZpcnN0X2VsaWdpYmxlX2J1dF9ub3RfdGFibGVk
X2tpbmQpLnZhbHVlKQotICAgICAgICAmJiAoaW5kZXggPD0gcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0
b3J5X2dldF9maXJzdF9lbGlnaWJsZV90b3JuKAotICAgICAgICAgICAgICAgIGRpcmVjdG9yeSwg
cGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2ZpcnN0X2VsaWdpYmxlX2FuZF90YWJsZWRfa2luZCku
dmFsdWUpOwotfQotCi1ib29sIHBhc19zZWdyZWdhdGVkX3ZpZXdfY291bGRfYnVtcChwYXNfc2Vn
cmVnYXRlZF92aWV3IHZpZXcpCi17Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcqIHBh
Z2VfY29uZmlnOwotICAgIHBhZ2VfY29uZmlnID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcGFn
ZV9jb25maWcodmlldyk7Ci0gICAgc3dpdGNoIChwYXNfc2VncmVnYXRlZF92aWV3X2dldF9raW5k
KHZpZXcpKSB7Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19raW5kOgot
ICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfaW5lbGlnaWJsZV9leGNsdXNpdmVfdmlld19raW5kOgot
ICAgICAgICByZXR1cm4gIXBhc19zZWdyZWdhdGVkX3BhZ2VfZm9yX2JvdW5kYXJ5KAotICAgICAg
ICAgICAgKChwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldyopcGFzX3NlZ3JlZ2F0ZWRfdmll
d19nZXRfcHRyKHZpZXcpKS0+cGFnZV9ib3VuZGFyeSwKLSAgICAgICAgICAgICpwYWdlX2NvbmZp
ZyktPm51bV9ub25fZW1wdHlfd29yZHM7Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9iaWFzaW5n
X3ZpZXdfa2luZDoKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2luZWxpZ2libGVfYmlhc2luZ192
aWV3X2tpbmQ6Ci0gICAgICAgIHJldHVybiAhcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9mb3JfYm91bmRh
cnkoCi0gICAgICAgICAgICBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9leGNsdXNpdmVf
dmlld19wdHJfbG9hZF9ub25fbnVsbCgKLSAgICAgICAgICAgICAgICAmKChwYXNfc2VncmVnYXRl
ZF9iaWFzaW5nX3ZpZXcqKXBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3B0cigKLSAgICAgICAgICAg
ICAgICAgICAgICB2aWV3KSktPmV4Y2x1c2l2ZSktPnBhZ2VfYm91bmRhcnksCi0gICAgICAgICAg
ICAqcGFnZV9jb25maWcpLT5udW1fbm9uX2VtcHR5X3dvcmRzOwotICAgIGNhc2UgcGFzX3NlZ3Jl
Z2F0ZWRfcGFydGlhbF92aWV3X2tpbmQ6Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBkZWZh
dWx0OgotICAgICAgICBQQVNfQVNTRVJUKCEiU2hvdWxkIG5vdCBiZSByZWFjaGVkIik7Ci0gICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci19Ci0KIHBhc19sb2NrKiBwYXNfc2VncmVnYXRlZF92
aWV3X2dldF9jb21taXRfbG9jayhwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcpCiB7CiAgICAgc3dp
dGNoIChwYXNfc2VncmVnYXRlZF92aWV3X2dldF9raW5kKHZpZXcpKSB7CiAgICAgY2FzZSBwYXNf
c2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19raW5kOgogICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRf
aW5lbGlnaWJsZV9leGNsdXNpdmVfdmlld19raW5kOgogICAgICAgICByZXR1cm4gJnBhc19zZWdy
ZWdhdGVkX3ZpZXdfZ2V0X2V4Y2x1c2l2ZSh2aWV3KS0+Y29tbWl0X2xvY2s7Ci0gICAgY2FzZSBw
YXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXdfa2luZDoKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVk
X2luZWxpZ2libGVfYmlhc2luZ192aWV3X2tpbmQ6Ci0gICAgICAgIHJldHVybiAmcGFzX2NvbXBh
Y3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyX2xvYWRfbm9uX251bGwoCi0g
ICAgICAgICAgICAmcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfYmlhc2luZyh2aWV3KS0+ZXhjbHVz
aXZlKS0+Y29tbWl0X2xvY2s7CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9zaGFyZWRfdmlld19r
aW5kOgogICAgICAgICByZXR1cm4gJnBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3NoYXJlZCh2aWV3
KS0+Y29tbWl0X2xvY2s7CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9zaGFyZWRfaGFuZGxlX2tp
bmQ6CkBAIC0zMTAsMTAgKzE2OSw2IEBAIHBhc19sb2NrKiBwYXNfc2VncmVnYXRlZF92aWV3X2dl
dF9vd25lcnMKICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2tpbmQ6CiAg
ICAgY2FzZSBwYXNfc2VncmVnYXRlZF9pbmVsaWdpYmxlX2V4Y2x1c2l2ZV92aWV3X2tpbmQ6CiAg
ICAgICAgIHJldHVybiAmcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfZXhjbHVzaXZlKHZpZXcpLT5v
d25lcnNoaXBfbG9jazsKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlld19raW5k
OgotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfaW5lbGlnaWJsZV9iaWFzaW5nX3ZpZXdfa2luZDoK
LSAgICAgICAgcmV0dXJuICZwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9leGNsdXNpdmVf
dmlld19wdHJfbG9hZF9ub25fbnVsbCgKLSAgICAgICAgICAgICZwYXNfc2VncmVnYXRlZF92aWV3
X2dldF9iaWFzaW5nKHZpZXcpLT5leGNsdXNpdmUpLT5vd25lcnNoaXBfbG9jazsKICAgICBjYXNl
IHBhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3X2tpbmQ6CiAgICAgICAgIHJldHVybiAmcGFzX3Nl
Z3JlZ2F0ZWRfdmlld19nZXRfc2hhcmVkKHZpZXcpLT5vd25lcnNoaXBfbG9jazsKICAgICBjYXNl
IHBhc19zZWdyZWdhdGVkX3NoYXJlZF9oYW5kbGVfa2luZDoKQEAgLTMzMywxMSArMTg4LDcgQEAg
Ym9vbCBwYXNfc2VncmVnYXRlZF92aWV3X2lzX293bmVkKHBhc19zZQogICAgIHN3aXRjaCAocGFz
X3NlZ3JlZ2F0ZWRfdmlld19nZXRfa2luZCh2aWV3KSkgewogICAgIGNhc2UgcGFzX3NlZ3JlZ2F0
ZWRfZXhjbHVzaXZlX3ZpZXdfa2luZDoKICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2luZWxpZ2li
bGVfZXhjbHVzaXZlX3ZpZXdfa2luZDoKLSAgICAgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX2V4
Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5kX2lzX293bmVkKAotICAgICAgICAgICAgcGFzX3Nl
Z3JlZ2F0ZWRfdmlld19nZXRfZXhjbHVzaXZlKHZpZXcpLT5vd25lcnNoaXBfa2luZCk7Ci0gICAg
Y2FzZSBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXdfa2luZDoKLSAgICBjYXNlIHBhc19zZWdy
ZWdhdGVkX2luZWxpZ2libGVfYmlhc2luZ192aWV3X2tpbmQ6Ci0gICAgICAgIHJldHVybiBwYXNf
c2VncmVnYXRlZF9iaWFzaW5nX3ZpZXdfaXNfb3duZWQocGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRf
Ymlhc2luZyh2aWV3KSk7CisgICAgICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9l
eGNsdXNpdmUodmlldyktPmlzX293bmVkOwogICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVk
X3ZpZXdfa2luZDoKICAgICAgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3NoYXJl
ZCh2aWV3KS0+aXNfb3duZWQ7CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9zaGFyZWRfaGFuZGxl
X2tpbmQ6CkBAIC0zNTUsNTkgKzIwNiwxOCBAQCBib29sIHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNf
b3duZWQocGFzX3NlCiAgICAgfQogfQogCi1ib29sIHBhc19zZWdyZWdhdGVkX3ZpZXdfc2hvdWxk
X3RhYmxlKAotICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldywgcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9jb25maWcqIHBhZ2VfY29uZmlnKQotewotICAgIHN3aXRjaCAocGFzX3NlZ3JlZ2F0ZWRfdmll
d19nZXRfa2luZCh2aWV3KSkgewotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3Zp
ZXdfa2luZDoKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2luZWxpZ2libGVfZXhjbHVzaXZlX3Zp
ZXdfa2luZDoKLSAgICAgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X3No
b3VsZF90YWJsZSgKLSAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2V4Y2x1c2l2
ZSh2aWV3KSwgcGFnZV9jb25maWcpOwotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192
aWV3X2tpbmQ6Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9pbmVsaWdpYmxlX2JpYXNpbmdfdmll
d19raW5kOgotICAgICAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X3Nob3Vs
ZF90YWJsZSgKLSAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2JpYXNpbmcodmll
dyksIHBhZ2VfY29uZmlnKTsKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld19r
aW5kOgotICAgICAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X3Nob3VsZF90
YWJsZSgKLSAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3BhcnRpYWwodmlldyks
IHBhZ2VfY29uZmlnKTsKLSAgICBkZWZhdWx0OgotICAgICAgICBQQVNfQVNTRVJUKCEiU2hvdWxk
IG5vdCBiZSByZWFjaGVkIik7Ci0gICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLX0KLQotYm9v
bCBwYXNfc2VncmVnYXRlZF92aWV3X2lzX2JpYXNlZF9leGNsdXNpdmUocGFzX3NlZ3JlZ2F0ZWRf
dmlldyB2aWV3KQordm9pZCBwYXNfc2VncmVnYXRlZF92aWV3X2xvY2tfb3duZXJzaGlwX2xvY2so
cGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3KQogewotICAgIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2
ZV92aWV3KiBleGNsdXNpdmU7Ci0gICAgCi0gICAgaWYgKCFwYXNfc2VncmVnYXRlZF92aWV3X2lz
X2V4Y2x1c2l2ZSh2aWV3KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAotICAgIGV4Y2x1
c2l2ZSA9IHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2V4Y2x1c2l2ZSh2aWV3KTsKLSAgICAKLSAg
ICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlwX2tpbmRfaXNf
Ymlhc2VkKGV4Y2x1c2l2ZS0+b3duZXJzaGlwX2tpbmQpOwotfQotCi1ib29sIHBhc19zZWdyZWdh
dGVkX3ZpZXdfbG9ja19vd25lcnNoaXBfbG9jayhwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcpCi17
Ci0gICAgaWYgKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfc29tZV9iaWFzaW5nKHZpZXcpKQotICAg
ICAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2xvY2tfb3duZXJzaGlwX2xv
Y2socGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfYmlhc2luZyh2aWV3KSk7Ci0KICAgICBwYXNfbG9j
a19sb2NrKHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X293bmVyc2hpcF9sb2NrKHZpZXcpKTsKLSAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBwYXNfc2VncmVnYXRlZF92aWV3X2xvY2tfb3duZXJz
aGlwX2xvY2tfY29uZGl0aW9uYWxseShwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcsCit2b2lkIHBh
c19zZWdyZWdhdGVkX3ZpZXdfbG9ja19vd25lcnNoaXBfbG9ja19jb25kaXRpb25hbGx5KHBhc19z
ZWdyZWdhdGVkX3ZpZXcgdmlldywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2xvY2tfaG9sZF9tb2RlIGxvY2tfaG9sZF9tb2Rl
KQogewotICAgIGJvb2wgcmVzdWx0OwogICAgIHBhc19jb21waWxlcl9mZW5jZSgpOwotICAgIGlm
IChsb2NrX2hvbGRfbW9kZSkKLSAgICAgICAgcmVzdWx0ID0gdHJ1ZTsKLSAgICBlbHNlCi0gICAg
ICAgIHJlc3VsdCA9IHBhc19zZWdyZWdhdGVkX3ZpZXdfbG9ja19vd25lcnNoaXBfbG9jayh2aWV3
KTsKKyAgICBpZiAoIWxvY2tfaG9sZF9tb2RlKQorICAgICAgICBwYXNfc2VncmVnYXRlZF92aWV3
X2xvY2tfb3duZXJzaGlwX2xvY2sodmlldyk7CiAgICAgcGFzX2NvbXBpbGVyX2ZlbmNlKCk7Ci0g
ICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogYm9vbCBwYXNfc2VncmVnYXRlZF92aWV3X2xvY2tfb3du
ZXJzaGlwX2xvY2tfaWZfb3duZWQocGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3KQpAQCAtNDE4LDEy
ICsyMjgsNyBAQCBib29sIHBhc19zZWdyZWdhdGVkX3ZpZXdfbG9ja19vd25lcnNoaXBfCiBib29s
IHBhc19zZWdyZWdhdGVkX3ZpZXdfbG9ja19vd25lcnNoaXBfbG9ja19pZl9vd25lZF9jb25kaXRp
b25hbGx5KHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldywKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2xvY2tfaG9s
ZF9tb2RlIGxvY2tfaG9sZF9tb2RlKQogewotICAgIGJvb2wgcmVzdWx0OwotCi0gICAgcmVzdWx0
ID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19sb2NrX293bmVyc2hpcF9sb2NrX2NvbmRpdGlvbmFsbHko
dmlldywgbG9ja19ob2xkX21vZGUpOwotCi0gICAgaWYgKCFyZXN1bHQpCi0gICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICBwYXNfc2VncmVnYXRlZF92aWV3X2xvY2tfb3duZXJzaGlwX2xvY2tfY29u
ZGl0aW9uYWxseSh2aWV3LCBsb2NrX2hvbGRfbW9kZSk7CiAKICAgICBpZiAocGFzX3NlZ3JlZ2F0
ZWRfdmlld19pc19vd25lZCh2aWV3KSkKICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC00NTcsMzMg
KzI2Miw2IEBAIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19wcmltb3JkaWFsX3AKICAgICAg
ICAgJnBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3BhcnRpYWwodmlldyktPnNoYXJlZF92aWV3KTsK
IH0KIAotdm9pZCBwYXNfc2VncmVnYXRlZF92aWV3X25vdGVfZWxpZ2liaWxpdHkoCi0gICAgcGFz
X3NlZ3JlZ2F0ZWRfdmlldyB2aWV3LAotICAgIHBhc19zZWdyZWdhdGVkX3BhZ2UqIHBhZ2UpCi17
Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwotCi0gICAgaWYgKHZlcmJv
c2UpCi0gICAgICAgIHBhc19sb2coIk5vdGluZyBlbGlnaWJpbGl0eSBmb3IgdmlldyAlcCwgcGFn
ZSAlcC5cbiIsIHZpZXcsIHBhZ2UpOwotICAgIAotICAgIHN3aXRjaCAocGFzX3NlZ3JlZ2F0ZWRf
dmlld19nZXRfa2luZCh2aWV3KSkgewotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZl
X3ZpZXdfa2luZDoKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2luZWxpZ2libGVfZXhjbHVzaXZl
X3ZpZXdfa2luZDoKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfbm90ZV9l
bGlnaWJpbGl0eShwYXNfc2VncmVnYXRlZF92aWV3X2dldF9leGNsdXNpdmUodmlldyksIHBhZ2Up
OwotICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXdf
a2luZDoKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2luZWxpZ2libGVfYmlhc2luZ192aWV3X2tp
bmQ6Ci0gICAgICAgIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlld19ub3RlX2VsaWdpYmlsaXR5
KHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2JpYXNpbmcodmlldyksIHBhZ2UpOwotICAgICAgICBy
ZXR1cm47Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXdfa2luZDoKLSAgICAg
ICAgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X25vdGVfZWxpZ2liaWxpdHkocGFzX3NlZ3Jl
Z2F0ZWRfdmlld19nZXRfcGFydGlhbCh2aWV3KSwgcGFnZSk7Ci0gICAgICAgIHJldHVybjsKLSAg
ICBkZWZhdWx0OgotICAgICAgICBQQVNfQVNTRVJUKCEiU2hvdWxkIG5vdCBiZSByZWFjaGVkIik7
Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci19Ci0KIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfdmlld19u
b3RlX2VtcHRpbmVzcygKICAgICBwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcsCiAgICAgcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZSogcGFnZSkKQEAgLTQ5NCwxMSArMjcyLDYgQEAgdm9pZCBwYXNfc2VncmVn
YXRlZF92aWV3X25vdGVfZW1wdGluZXNzKAogICAgICAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNp
dmVfdmlld19ub3RlX2VtcHRpbmVzcygKICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3ZpZXdf
Z2V0X2V4Y2x1c2l2ZSh2aWV3KSwgcGFnZSk7CiAgICAgICAgIHJldHVybjsKLSAgICBjYXNlIHBh
c19zZWdyZWdhdGVkX2JpYXNpbmdfdmlld19raW5kOgotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRf
aW5lbGlnaWJsZV9iaWFzaW5nX3ZpZXdfa2luZDoKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfYmlh
c2luZ192aWV3X25vdGVfZW1wdGluZXNzKAotICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmll
d19nZXRfYmlhc2luZyh2aWV3KSwgcGFnZSk7Ci0gICAgICAgIHJldHVybjsKICAgICBjYXNlIHBh
c19zZWdyZWdhdGVkX3NoYXJlZF9oYW5kbGVfa2luZDoKICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRf
c2hhcmVkX2hhbmRsZV9ub3RlX2VtcHRpbmVzcygKICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVk
X3ZpZXdfZ2V0X3NoYXJlZF9oYW5kbGUodmlldykpOwpAQCAtNTk0LDcgKzM2Nyw3IEBAIHN0YXRp
YyBib29sIGZvcl9lYWNoX2xpdmVfb2JqZWN0KAogICAgIGZ1bGxfYWxsb2NfYml0cyA9IHBhc19m
dWxsX2FsbG9jX2JpdHNfY3JlYXRlX2Zvcl92aWV3KHZpZXcsIHBhZ2VfY29uZmlnKTsKICAgICBw
YWdlID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcGFnZSh2aWV3KTsKICAgICBwYWdlX2JvdW5k
YXJ5ID0gKHVpbnRwdHJfdClwYXNfc2VncmVnYXRlZF9wYWdlX2JvdW5kYXJ5KHBhZ2UsIHBhZ2Vf
Y29uZmlnKTsKLSAgICBvYmplY3Rfc2l6ZSA9IHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2dsb2Jh
bF9zaXplX2RpcmVjdG9yeSh2aWV3KS0+b2JqZWN0X3NpemU7CisgICAgb2JqZWN0X3NpemUgPSBw
YXNfc2VncmVnYXRlZF92aWV3X2dldF9zaXplX2RpcmVjdG9yeSh2aWV3KS0+b2JqZWN0X3NpemU7
CiAKICAgICBpZiAodmVyYm9zZSkgewogICAgICAgICBwYXNfbG9nKCJwYWdlID0gJXAsIGdvdCBh
bGxvYyBiaXRzIHJhbmdlICV6dS4uLiV6dS5cbiIsCkBAIC02NTQsMTEgKzQyNyw5IEBAIGJvb2wg
cGFzX3NlZ3JlZ2F0ZWRfdmlld19mb3JfZWFjaF9saXZlX28KICAgICAvKiBGb3IgcGFydGlhbCBh
bmQgc2hhcmVkIHZpZXdzLCB0aGUgcGFnZSBsb2NrIGlzIHRoZSBvd25lcnNoaXAgbG9jay4gRm9y
IGV4Y2x1c2l2ZSB2aWV3cywKICAgICAgICBob2xkaW5nIHRoZSBvd25lcnNoaXAgbG9jayBpcyBh
ZGVxdWF0ZSBhbnl3YXkuICovCiAKLSAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfdmlld19sb2NrX293
bmVyc2hpcF9sb2NrX2NvbmRpdGlvbmFsbHkodmlldywgb3duZXJzaGlwX2xvY2tfaG9sZF9tb2Rl
KSkgewotICAgICAgICByZXN1bHQgPSBmb3JfZWFjaF9saXZlX29iamVjdCh2aWV3LCBjYWxsYmFj
aywgYXJnKTsKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlld191bmxvY2tfb3duZXJzaGlwX2xv
Y2tfY29uZGl0aW9uYWxseSh2aWV3LCBvd25lcnNoaXBfbG9ja19ob2xkX21vZGUpOwotICAgIH0g
ZWxzZQotICAgICAgICByZXN1bHQgPSB0cnVlOworICAgIHBhc19zZWdyZWdhdGVkX3ZpZXdfbG9j
a19vd25lcnNoaXBfbG9ja19jb25kaXRpb25hbGx5KHZpZXcsIG93bmVyc2hpcF9sb2NrX2hvbGRf
bW9kZSk7CisgICAgcmVzdWx0ID0gZm9yX2VhY2hfbGl2ZV9vYmplY3QodmlldywgY2FsbGJhY2ss
IGFyZyk7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlld191bmxvY2tfb3duZXJzaGlwX2xvY2tfY29u
ZGl0aW9uYWxseSh2aWV3LCBvd25lcnNoaXBfbG9ja19ob2xkX21vZGUpOwogCiAgICAgcmV0dXJu
IHJlc3VsdDsKIH0KQEAgLTcwNCw5ICs0NzUsNiBAQCBzdGF0aWMgcGFzX3RyaV9zdGF0ZSBzaG91
bGRfYmVfZWxpZ2libGUoCiAgICAgICAgIHJldHVybiBwYXNfdHJpX3N0YXRlX21heWJlOwogICAg
IH0KICAgICAKLSAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19iaWFzZWRfZXhjbHVzaXZl
KHZpZXcpKQotICAgICAgICByZXR1cm4gcGFzX3RyaV9zdGF0ZV9ubzsKLQogICAgIGlmICghcGFz
X3NlZ3JlZ2F0ZWRfdmlld19pc19vd25lZCh2aWV3KSkKICAgICAgICAgcmV0dXJuIHBhc190cmlf
c3RhdGVfeWVzOwogICAgIApAQCAtNzcxLDEzICs1MzksOSBAQCBwYXNfdHJpX3N0YXRlIHBhc19z
ZWdyZWdhdGVkX3ZpZXdfc2hvdWxkCiAgICAgICAgICAgICAgICAgdmlldywgcGFzX3NlZ3JlZ2F0
ZWRfdmlld19raW5kX2dldF9zdHJpbmcocGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfa2luZCh2aWV3
KSkpOwogICAgIH0KIAotICAgIGlmIChwYXNfc2VncmVnYXRlZF92aWV3X2xvY2tfb3duZXJzaGlw
X2xvY2sodmlldykpIHsKLSAgICAgICAgcmVzdWx0ID0gc2hvdWxkX2JlX2VsaWdpYmxlKHZpZXcs
IHBhZ2VfY29uZmlnKTsKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlld191bmxvY2tfb3duZXJz
aGlwX2xvY2sodmlldyk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgLyogVGhpcyBoYXBwZW5zIHdo
ZW4gYSBiaWFzaW5nIHZpZXcgaXMgdW5vd25lZC4gU28gaXQgc2hvdWxkIGJlIGVsaWdpYmxlISAq
LwotICAgICAgICByZXN1bHQgPSBwYXNfdHJpX3N0YXRlX3llczsKLSAgICB9CisgICAgcGFzX3Nl
Z3JlZ2F0ZWRfdmlld19sb2NrX293bmVyc2hpcF9sb2NrKHZpZXcpOworICAgIHJlc3VsdCA9IHNo
b3VsZF9iZV9lbGlnaWJsZSh2aWV3LCBwYWdlX2NvbmZpZyk7CisgICAgcGFzX3NlZ3JlZ2F0ZWRf
dmlld191bmxvY2tfb3duZXJzaGlwX2xvY2sodmlldyk7CiAKICAgICByZXR1cm4gcmVzdWx0Owog
fQpAQCAtODA3LDExICs1NzEsNiBAQCBwYXNfc2VncmVnYXRlZF92aWV3IHBhc19zZWdyZWdhdGVk
X3ZpZXdfCiAgICAgICAgICAgIFRoaXMgbWFrZXMgZXF1YWxpdHkgYXNzZXJ0aW9ucyBpbiB0aGUg
dGVzdHMgZWFzaWVyIHRvIHdyaXRlLiAqLwogICAgICAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRf
ZXhjbHVzaXZlX3ZpZXdfYXNfdmlldyhwYXNfc2VncmVnYXRlZF92aWV3X2dldF9leGNsdXNpdmUo
b3duaW5nX3ZpZXcpKTsKIAotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2tp
bmQ6Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9pbmVsaWdpYmxlX2JpYXNpbmdfdmlld19raW5k
OgotICAgICAgICAvKiBTZWUgYWJvdmUuICovCi0gICAgICAgIHJldHVybiBwYXNfc2VncmVnYXRl
ZF9iaWFzaW5nX3ZpZXdfYXNfdmlldyhwYXNfc2VncmVnYXRlZF92aWV3X2dldF9iaWFzaW5nKG93
bmluZ192aWV3KSk7Ci0KICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9oYW5kbGVfa2lu
ZDoKICAgICAgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld19hc192aWV3KAog
ICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX2hhbmRsZV9wYXJ0aWFsX3ZpZXdfZm9y
X29iamVjdCgKQEAgLTgzMSwxMCArNTkwLDYgQEAgcGFzX2hlYXBfc3VtbWFyeSBwYXNfc2VncmVn
YXRlZF92aWV3X2NvbQogICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfaW5lbGlnaWJsZV9leGNsdXNp
dmVfdmlld19raW5kOgogICAgICAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3Zp
ZXdfY29tcHV0ZV9zdW1tYXJ5KHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2V4Y2x1c2l2ZSh2aWV3
KSk7CiAKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlld19raW5kOgotICAgIGNh
c2UgcGFzX3NlZ3JlZ2F0ZWRfaW5lbGlnaWJsZV9iaWFzaW5nX3ZpZXdfa2luZDoKLSAgICAgICAg
cmV0dXJuIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlld19jb21wdXRlX3N1bW1hcnkocGFzX3Nl
Z3JlZ2F0ZWRfdmlld19nZXRfYmlhc2luZyh2aWV3KSk7Ci0KICAgICBjYXNlIHBhc19zZWdyZWdh
dGVkX3NoYXJlZF92aWV3X2tpbmQ6CiAgICAgICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9zaGFy
ZWRfdmlld19jb21wdXRlX3N1bW1hcnkocGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfc2hhcmVkKHZp
ZXcpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHBhZ2VfY29uZmlnKTsKQEAgLTg1NSwxMCArNjEwLDYgQEAgYm9vbCBwYXNfc2VncmVn
YXRlZF92aWV3X2lzX2VsaWdpYmxlKHBhcwogICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfaW5lbGln
aWJsZV9leGNsdXNpdmVfdmlld19raW5kOgogICAgICAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRf
ZXhjbHVzaXZlX3ZpZXdfaXNfZWxpZ2libGUocGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfZXhjbHVz
aXZlKHZpZXcpKTsKIAotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2tpbmQ6
Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9pbmVsaWdpYmxlX2JpYXNpbmdfdmlld19raW5kOgot
ICAgICAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2lzX2VsaWdpYmxlKHBh
c19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2JpYXNpbmcodmlldykpOwotCiAgICAgY2FzZSBwYXNfc2Vn
cmVnYXRlZF9wYXJ0aWFsX3ZpZXdfa2luZDoKICAgICAgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVk
X3BhcnRpYWxfdmlld19pc19lbGlnaWJsZShwYXNfc2VncmVnYXRlZF92aWV3X2dldF9wYXJ0aWFs
KHZpZXcpKTsKIApAQCAtODY4LDEyICs2MTksNiBAQCBib29sIHBhc19zZWdyZWdhdGVkX3ZpZXdf
aXNfZWxpZ2libGUocGFzCiAgICAgfQogfQogCi1ib29sIHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNf
ZWxpZ2libGVfb3JfYmlhc2VkKHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldykKLXsKLSAgICByZXR1
cm4gcGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19lbGlnaWJsZSh2aWV3KQotICAgICAgICB8fCBwYXNf
c2VncmVnYXRlZF92aWV3X2lzX2JpYXNlZF9leGNsdXNpdmUodmlldyk7Ci19Ci0KIHN0YXRpYyBi
b29sIGlzX3BheWxvYWRfZW1wdHlfY2FsbGJhY2socGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3LAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfcmFuZ2UgcmFuZ2UsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKmFyZykKQEAgLTg5Nywx
MCArNjQyLDYgQEAgYm9vbCBwYXNfc2VncmVnYXRlZF92aWV3X2lzX2VtcHR5KHBhc19zZQogICAg
IGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfaW5lbGlnaWJsZV9leGNsdXNpdmVfdmlld19raW5kOgogICAg
ICAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfaXNfZW1wdHkocGFzX3Nl
Z3JlZ2F0ZWRfdmlld19nZXRfZXhjbHVzaXZlKHZpZXcpKTsKIAotICAgIGNhc2UgcGFzX3NlZ3Jl
Z2F0ZWRfYmlhc2luZ192aWV3X2tpbmQ6Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9pbmVsaWdp
YmxlX2JpYXNpbmdfdmlld19raW5kOgotICAgICAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfYmlh
c2luZ192aWV3X2lzX2VtcHR5KHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2JpYXNpbmcodmlldykp
OwotCiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9zaGFyZWRfdmlld19raW5kOgogICAgICAgICBy
ZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXdfaXNfZW1wdHkocGFzX3NlZ3JlZ2F0ZWRf
dmlld19nZXRfc2hhcmVkKHZpZXcpKTsKIApAQCAtOTE4LDEwICs2NTksNCBAQCBib29sIHBhc19z
ZWdyZWdhdGVkX3ZpZXdfaXNfZW1wdHkocGFzX3NlCiAgICAgfQogfQogCi1ib29sIHBhc19zZWdy
ZWdhdGVkX3ZpZXdfaXNfZW1wdHlfb3JfYmlhc2VkKHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldykK
LXsKLSAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19lbXB0eSh2aWV3KQotICAgICAg
ICB8fCBwYXNfc2VncmVnYXRlZF92aWV3X2lzX2JpYXNlZF9leGNsdXNpdmUodmlldyk7Ci19Ci0K
ICNlbmRpZiAvKiBMSUJQQVNfRU5BQkxFRCAqLwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfdmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3ZpZXcuaAkocmV2aXNpb24g
Mjc5OTY0KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0
ZWRfdmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC00NSw3ICs0NSw2IEBAIFBBU19CRUdJTl9FWFRF
Uk5fQzsKIAogc3RydWN0IHBhc19oZWFwX2NvbmZpZzsKIHN0cnVjdCBwYXNfbWFnYXppbmU7Ci1z
dHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3Owogc3RydWN0IHBhc19zZWdyZWdhdGVk
X2RpcmVjdG9yeTsKIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldzsKIHN0cnVj
dCBwYXNfc2VncmVnYXRlZF9wYWdlOwpAQCAtNTQsMTEgKzUzLDEwIEBAIHN0cnVjdCBwYXNfc2Vn
cmVnYXRlZF9wYXJ0aWFsX3ZpZXc7CiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX2hhbmRs
ZTsKIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJlY3Rvcnk7CiBzdHJ1Y3Qg
cGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXc7Ci1zdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5Oworc3RydWN0IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5Owog
c3RydWN0IHBhc19zZWdyZWdhdGVkX3ZpZXdfb3BhcXVlOwogdHlwZWRlZiBzdHJ1Y3QgcGFzX2hl
YXBfY29uZmlnIHBhc19oZWFwX2NvbmZpZzsKIHR5cGVkZWYgc3RydWN0IHBhc19tYWdhemluZSBw
YXNfbWFnYXppbmU7Ci10eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcg
cGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3OwogdHlwZWRlZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0
ZWRfZGlyZWN0b3J5IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeTsKIHR5cGVkZWYgc3RydWN0IHBh
c19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3
OwogdHlwZWRlZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfcGFnZSBwYXNfc2VncmVnYXRlZF9wYWdl
OwpAQCAtNjcsNyArNjUsNyBAQCB0eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9wYXJ0aWFs
X3ZpCiB0eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9zaGFyZWRfaGFuZGxlIHBhc19zZWdy
ZWdhdGVkX3NoYXJlZF9oYW5kbGU7CiB0eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9zaGFy
ZWRfcGFnZV9kaXJlY3RvcnkgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5Owog
dHlwZWRlZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXcgcGFzX3NlZ3JlZ2F0ZWRf
c2hhcmVkX3ZpZXc7Ci10eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9k
aXJlY3RvcnkgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5OwordHlwZWRlZiBz
dHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3Rvcnk7CiB0eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF92aWV3X29wYXF1ZSogcGFz
X3NlZ3JlZ2F0ZWRfdmlldzsKIAogLyogTk9URTogaXQncyBhbiBhbnRpcGF0dGVybiB0byB1c2Ug
dGhpcyBmdW5jdGlvbiBkaXJlY3RseSB3aGVuIHlvdSBjb3VsZCBoYXZlIHVzZWQgdGhlIG11Y2gg
bW9yZQpAQCAtMTE1LDcyICsxMTMsMzcgQEAgc3RhdGljIGlubGluZSBib29sIHBhc19zZWdyZWdh
dGVkX3ZpZXdfaQogCiBzdGF0aWMgaW5saW5lIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19z
b21lX2V4Y2x1c2l2ZShwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcpCiB7Ci0gICAgcmV0dXJuIHBh
c19zZWdyZWdhdGVkX3ZpZXdfaXNfZXhjbHVzaXZlKHZpZXcpCi0gICAgICAgIHx8IHBhc19zZWdy
ZWdhdGVkX3ZpZXdfaXNfaW5lbGlnaWJsZV9leGNsdXNpdmUodmlldyk7Ci19Ci0KLXN0YXRpYyBp
bmxpbmUgYm9vbCBwYXNfc2VncmVnYXRlZF92aWV3X2lzX2V4Y2x1c2l2ZV9pc2gocGFzX3NlZ3Jl
Z2F0ZWRfdmlldyB2aWV3KQotewotICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF92aWV3X2tpbmRf
aXNfZXhjbHVzaXZlX2lzaChwYXNfc2VncmVnYXRlZF92aWV3X2dldF9raW5kKHZpZXcpKTsKLX0K
LQotc3RhdGljIGlubGluZSBib29sIHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfYmlhc2luZyhwYXNf
c2VncmVnYXRlZF92aWV3IHZpZXcpCi17Ci0gICAgcmV0dXJuICFwYXNfc2VncmVnYXRlZF92aWV3
X2lzX251bGwodmlldykKLSAgICAgICAgJiYgcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfa2luZCh2
aWV3KSA9PSBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXdfa2luZDsKLX0KLQotc3RhdGljIGlu
bGluZSBib29sIHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfaW5lbGlnaWJsZV9iaWFzaW5nKHBhc19z
ZWdyZWdhdGVkX3ZpZXcgdmlldykKLXsKLSAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfdmlld19n
ZXRfa2luZCh2aWV3KSA9PSBwYXNfc2VncmVnYXRlZF9pbmVsaWdpYmxlX2JpYXNpbmdfdmlld19r
aW5kOwotfQotCi1zdGF0aWMgaW5saW5lIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19zb21l
X2JpYXNpbmcocGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3KQotewotICAgIHJldHVybiBwYXNfc2Vn
cmVnYXRlZF92aWV3X2lzX2JpYXNpbmcodmlldykKLSAgICAgICAgfHwgcGFzX3NlZ3JlZ2F0ZWRf
dmlld19pc19pbmVsaWdpYmxlX2JpYXNpbmcodmlldyk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgcGFz
X3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3KiBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9iaWFzaW5n
KHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldykKLXsKLSAgICBQQVNfQVNTRVJUKHBhc19zZWdyZWdh
dGVkX3ZpZXdfaXNfc29tZV9iaWFzaW5nKHZpZXcpKTsKLSAgICByZXR1cm4gKHBhc19zZWdyZWdh
dGVkX2JpYXNpbmdfdmlldyopcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcHRyKHZpZXcpOwotfQot
Ci1zdGF0aWMgaW5saW5lIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19lbGlnaWJsZV9raW5k
KHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldykKLXsKLSAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRf
dmlld19raW5kX2lzX2VsaWdpYmxlKHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2tpbmQodmlldykp
OwotfQotCi1zdGF0aWMgaW5saW5lIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19pbmVsaWdp
YmxlX2tpbmQocGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3KQotewotICAgIHJldHVybiBwYXNfc2Vn
cmVnYXRlZF92aWV3X2tpbmRfaXNfaW5lbGlnaWJsZShwYXNfc2VncmVnYXRlZF92aWV3X2dldF9r
aW5kKHZpZXcpKTsKKyAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfdmlld19raW5kX2lzX3NvbWVf
ZXhjbHVzaXZlKHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2tpbmQodmlldykpOwogfQogCiBzdGF0
aWMgaW5saW5lIHBhc19zZWdyZWdhdGVkX3ZpZXcgcGFzX3NlZ3JlZ2F0ZWRfdmlld19hc19pbmVs
aWdpYmxlKHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldykKIHsKICAgICBwYXNfc2VncmVnYXRlZF92
aWV3IHJlc3VsdDsKLSAgICBQQVNfVEVTVElOR19BU1NFUlQocGFzX3NlZ3JlZ2F0ZWRfdmlld19p
c19leGNsdXNpdmVfaXNoKHZpZXcpKTsKKyAgICBQQVNfVEVTVElOR19BU1NFUlQocGFzX3NlZ3Jl
Z2F0ZWRfdmlld19pc19zb21lX2V4Y2x1c2l2ZSh2aWV3KSk7CiAgICAgcmVzdWx0ID0gKHBhc19z
ZWdyZWdhdGVkX3ZpZXcpKAogICAgICAgICAodWludHB0cl90KXZpZXcgfCAodWludHB0cl90KXBh
c19zZWdyZWdhdGVkX2luZWxpZ2libGVfZXhjbHVzaXZlX3ZpZXdfa2luZCk7CiAgICAgUEFTX1RF
U1RJTkdfQVNTRVJUKHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3B0cih2aWV3KSA9PSBwYXNfc2Vn
cmVnYXRlZF92aWV3X2dldF9wdHIocmVzdWx0KSk7Ci0gICAgUEFTX1RFU1RJTkdfQVNTRVJUKHBh
c19zZWdyZWdhdGVkX3ZpZXdfaXNfc29tZV9leGNsdXNpdmUodmlldykKLSAgICAgICAgICAgICAg
ICAgICAgICAgPT0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19zb21lX2V4Y2x1c2l2ZShyZXN1bHQp
KTsKKyAgICBQQVNfVEVTVElOR19BU1NFUlQocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19zb21lX2V4
Y2x1c2l2ZSh2aWV3KSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogc3RhdGljIGlubGluZSBw
YXNfc2VncmVnYXRlZF92aWV3IHBhc19zZWdyZWdhdGVkX3ZpZXdfYXNfZWxpZ2libGUocGFzX3Nl
Z3JlZ2F0ZWRfdmlldyB2aWV3KQogewogICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgcmVzdWx0Owot
ICAgIFBBU19URVNUSU5HX0FTU0VSVChwYXNfc2VncmVnYXRlZF92aWV3X2lzX2V4Y2x1c2l2ZV9p
c2godmlldykpOworICAgIFBBU19URVNUSU5HX0FTU0VSVChwYXNfc2VncmVnYXRlZF92aWV3X2lz
X3NvbWVfZXhjbHVzaXZlKHZpZXcpKTsKICAgICByZXN1bHQgPSAocGFzX3NlZ3JlZ2F0ZWRfdmll
dykoCiAgICAgICAgICh1aW50cHRyX3QpdmlldyAmIH4odWludHB0cl90KXBhc19zZWdyZWdhdGVk
X2luZWxpZ2libGVfZXhjbHVzaXZlX3ZpZXdfa2luZCk7CiAgICAgUEFTX1RFU1RJTkdfQVNTRVJU
KHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3B0cih2aWV3KSA9PSBwYXNfc2VncmVnYXRlZF92aWV3
X2dldF9wdHIocmVzdWx0KSk7Ci0gICAgUEFTX1RFU1RJTkdfQVNTRVJUKHBhc19zZWdyZWdhdGVk
X3ZpZXdfaXNfc29tZV9leGNsdXNpdmUodmlldykKLSAgICAgICAgICAgICAgICAgICAgICAgPT0g
cGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19zb21lX2V4Y2x1c2l2ZShyZXN1bHQpKTsKKyAgICBQQVNf
VEVTVElOR19BU1NFUlQocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19zb21lX2V4Y2x1c2l2ZSh2aWV3
KSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorc3RhdGljIGlubGluZSBwYXNfc2VncmVnYXRl
ZF9leGNsdXNpdmVfdmlldyogcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfZXhjbHVzaXZlKHBhc19z
ZWdyZWdhdGVkX3ZpZXcgdmlldykKK3sKKyAgICBQQVNfVEVTVElOR19BU1NFUlQocGFzX3NlZ3Jl
Z2F0ZWRfdmlld19pc19zb21lX2V4Y2x1c2l2ZSh2aWV3KSk7CisgICAgcmV0dXJuIChwYXNfc2Vn
cmVnYXRlZF9leGNsdXNpdmVfdmlldyopcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcHRyKHZpZXcp
OworfQorCiBzdGF0aWMgaW5saW5lIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19zaGFyZWQo
cGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3KQogewogICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF92
aWV3X2dldF9raW5kKHZpZXcpID09IHBhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3X2tpbmQ7CkBA
IC0yMTUsMzMgKzE3OCwyMiBAQCBzdGF0aWMgaW5saW5lIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxf
dmllCiAgICAgcmV0dXJuIChwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXcqKXBhc19zZWdyZWdh
dGVkX3ZpZXdfZ2V0X3B0cih2aWV3KTsKIH0KIAotc3RhdGljIGlubGluZSBib29sIHBhc19zZWdy
ZWdhdGVkX3ZpZXdfaXNfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KHBhc19zZWdyZWdhdGVkX3ZpZXcg
dmlldykKK3N0YXRpYyBpbmxpbmUgYm9vbCBwYXNfc2VncmVnYXRlZF92aWV3X2lzX3NpemVfZGly
ZWN0b3J5KHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldykKIHsKLSAgICByZXR1cm4gcGFzX3NlZ3Jl
Z2F0ZWRfdmlld19nZXRfa2luZCh2aWV3KSA9PSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9k
aXJlY3Rvcnlfdmlld19raW5kOworICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9r
aW5kKHZpZXcpID09IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3ZpZXdfa2luZDsKIH0K
IAotUEFTX0FQSSBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkqCitQQVNfQVBJIHBhc19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5KgogcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfc2l6ZV9kaXJlY3Rv
cnlfc2xvdyhwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcpOwogCi1zdGF0aWMgaW5saW5lIHBhc19z
ZWdyZWdhdGVkX2RpcmVjdG9yeSoKK3N0YXRpYyBpbmxpbmUgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3RvcnkqCiBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9zaXplX2RpcmVjdG9yeShwYXNfc2Vn
cmVnYXRlZF92aWV3IHZpZXcpCiB7Ci0gICAgaWYgKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfZ2xv
YmFsX3NpemVfZGlyZWN0b3J5KHZpZXcpKQotICAgICAgICByZXR1cm4gKHBhc19zZWdyZWdhdGVk
X2RpcmVjdG9yeSopcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcHRyKHZpZXcpOworICAgIGlmIChw
YXNfc2VncmVnYXRlZF92aWV3X2lzX3NpemVfZGlyZWN0b3J5KHZpZXcpKQorICAgICAgICByZXR1
cm4gKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KilwYXNfc2VncmVnYXRlZF92aWV3X2dl
dF9wdHIodmlldyk7CiAgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3NpemVfZGly
ZWN0b3J5X3Nsb3codmlldyk7CiB9CiAKLVBBU19BUEkgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3Np
emVfZGlyZWN0b3J5KgotcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfZ2xvYmFsX3NpemVfZGlyZWN0
b3J5X3Nsb3cocGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3KTsKLQotc3RhdGljIGlubGluZSBwYXNf
c2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqCi1wYXNfc2VncmVnYXRlZF92aWV3X2dl
dF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkocGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3KQotewotICAg
IGlmIChwYXNfc2VncmVnYXRlZF92aWV3X2lzX2dsb2JhbF9zaXplX2RpcmVjdG9yeSh2aWV3KSkK
LSAgICAgICAgcmV0dXJuIChwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqKXBh
c19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3B0cih2aWV3KTsKLSAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0
ZWRfdmlld19nZXRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3Nsb3codmlldyk7Ci19Ci0KIFBBU19B
UEkgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZAogcGFzX3NlZ3JlZ2F0ZWRfdmlld19n
ZXRfcGFnZV9jb25maWdfa2luZChwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcpOwogUEFTX0FQSSBw
YXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyogcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcGFnZV9j
b25maWcocGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3KTsKQEAgLTI1MSwyMyArMjAzLDkgQEAgUEFT
X0FQSSBzaXplX3QgcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfaQogUEFTX0FQSSB2b2lkKiBwYXNf
c2VncmVnYXRlZF92aWV3X2dldF9wYWdlX2JvdW5kYXJ5KHBhc19zZWdyZWdhdGVkX3ZpZXcgdmll
dyk7CiBQQVNfQVBJIHBhc19zZWdyZWdhdGVkX3BhZ2UqIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0
X3BhZ2UocGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3KTsKIAotLyogVGhpcyBhc3N1bWVzIHRoYXQg
b3duZXJfdmlldyBpcyBlaXRoZXI6Ci0gICAKLSAgID0+IEFuIGV4Y2x1c2l2ZS1pc2ggdmlldyAo
ZXhjbHVzaXZlIG9yIGJpYXNpbmcpIHRoYXQgd2FzIGxvYWRlZCBmcm9tIHBhZ2UtPm93bmVyLCBz
byBpdHMga2luZAotICAgICAgY2FuIHRlbGwgdXMgYWJvdXQgZWxpZ2liaWxpdHkuCi0KLSAgID0+
IEEgcGFydGlhbCB2aWV3IGlmIHRoZSBwYWdlIG93bmVyIHdhcyBhIHNoYXJlZCBoYW5kbGUuCi0K
LSAgIFRoaXMgc2V0IG9mIGFzc3VtcHRpb25zIGhhcHBlbnMgdG8gbWF0Y2ggbG9jYWxfYWxsb2Nh
dG9yJ3MgdmlldyBvZiB0aGUgd29ybGQuICovCi1QQVNfQVBJIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRf
dmlld19zaG91bGRfcmVzdGFydChwYXNfc2VncmVnYXRlZF92aWV3IG93bmVyX3ZpZXcsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfbWFnYXppbmUq
IG1hZ2F6aW5lKTsKLQotUEFTX0FQSSBib29sIHBhc19zZWdyZWdhdGVkX3ZpZXdfY291bGRfYnVt
cChwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcpOwotCiAvKiBJdCdzIG9ubHkgT0sgdG8gY2FsbCB0
aGlzIHdoZW4geW91IGhhdmUgb3duZXJzaGlwIG9mIHRoZSBwYWdlLCBsaWtlIGlmIHlvdSBtYWRl
IGl0IGluZWxpZ2libGUgb3IKICAgIGdyYWJiZWQgdGhlIG93bmVyc2hpcCBsb2NrLiBPZiBjb3Vy
c2UsIGlmIHlvdSBncmFiYmVkIHRoZSBvd25lcnNoaXAgbG9jayB0aGVuIHlvdSBjYW5ub3QgZ3Jh
YiB0aGUKLSAgIGNvbW1pdCBsb2NrLCBzbyBob3BlZnVsbHkgeW91IGdvdCBoZXJlIGJ5IG1ha2lu
ZyB0aGUgcGFnZSBpbmVsaWdpYmxlLiBBbHNvLCBmb3IgYmlhc2luZyB2aWV3cywgaXQncwotICAg
b25seSBPSyBpZiB0aGUgYmlhc2luZyB2aWV3IGlzIGF0dGFjaGVkIHRvIGFuIGV4Y2x1c2l2ZS4g
Ki8KKyAgIGNvbW1pdCBsb2NrLCBzbyBob3BlZnVsbHkgeW91IGdvdCBoZXJlIGJ5IG1ha2luZyB0
aGUgcGFnZSBpbmVsaWdpYmxlLiAqLwogUEFTX0FQSSBwYXNfbG9jayogcGFzX3NlZ3JlZ2F0ZWRf
dmlld19nZXRfY29tbWl0X2xvY2socGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3KTsKIAogLyogSXQn
cyBvbmx5IE9LIHRvIGNhbGwgdGhpcyBpZiB5b3UgYWxyZWFkeSBob2xkIHRoZSBvd25lcnNoaXAg
bG9jayBvciB0aGUgdmlldyBpcyBpbmVsaWdpYmxlLiAqLwpAQCAtMjc1LDE1ICsyMTMsOSBAQCBQ
QVNfQVBJIHBhc19sb2NrKiBwYXNfc2VncmVnYXRlZF92aWV3X2dlCiAKIFBBU19BUEkgYm9vbCBw
YXNfc2VncmVnYXRlZF92aWV3X2lzX293bmVkKHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldyk7CiAK
LVBBU19BUEkgYm9vbCBwYXNfc2VncmVnYXRlZF92aWV3X3Nob3VsZF90YWJsZSgKLSAgICBwYXNf
c2VncmVnYXRlZF92aWV3IHZpZXcsIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnKiBwYWdlX2Nv
bmZpZyk7Ci0KLS8qIFRydWUgaWYgdGhpcyBpcyBhbiBleGNsdXNpdmUgdmlldyB0aGF0IGlzIGJp
YXNlZC4gKi8KLVBBU19BUEkgYm9vbCBwYXNfc2VncmVnYXRlZF92aWV3X2lzX2JpYXNlZF9leGNs
dXNpdmUocGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3KTsKLQotLyogTG9ja3MgdGhlIG93bmVyc2hp
cCBsb2NrIGFuZCB0ZWxscyB5b3UgaWYgYW55IGxvY2sgd2FzIHN1Y2Nlc3NmdWxseSBsb2NrZWQu
ICovCi1QQVNfQVBJIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfdmlld19sb2NrX293bmVyc2hpcF9sb2Nr
KHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldyk7Ci1QQVNfQVBJIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRf
dmlld19sb2NrX293bmVyc2hpcF9sb2NrX2NvbmRpdGlvbmFsbHkocGFzX3NlZ3JlZ2F0ZWRfdmll
dyB2aWV3LAorLyogTG9ja3MgdGhlIG93bmVyc2hpcCBsb2NrLiAqLworUEFTX0FQSSB2b2lkIHBh
c19zZWdyZWdhdGVkX3ZpZXdfbG9ja19vd25lcnNoaXBfbG9jayhwYXNfc2VncmVnYXRlZF92aWV3
IHZpZXcpOworUEFTX0FQSSB2b2lkIHBhc19zZWdyZWdhdGVkX3ZpZXdfbG9ja19vd25lcnNoaXBf
bG9ja19jb25kaXRpb25hbGx5KHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldywKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
YXNfbG9ja19ob2xkX21vZGUgbG9ja19ob2xkX21vZGUpOwogLyogTG9ja3MgdGhlIG93bmVyc2hp
cCBsb2NrIGFuZCB0ZWxscyB5b3UgaWYgdGhlIHZpZXcgaXMgb3duZWQuIElmIGl0IGlzbid0IG93
bmVkIGl0IGFsc28gdW5sb2NrcyBpdC4gKi8KIFBBU19BUEkgYm9vbCBwYXNfc2VncmVnYXRlZF92
aWV3X2xvY2tfb3duZXJzaGlwX2xvY2tfaWZfb3duZWQocGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3
KTsKQEAgLTI5OCwxMCArMjMwLDYgQEAgUEFTX0FQSSB2b2lkIHBhc19zZWdyZWdhdGVkX3ZpZXdf
dW5sb2NrXwogLyogVGhpcyBpcyBvbmx5IHZhbGlkIHRvIGNhbGwgb24gYSBwYXJ0aWFsIHZpZXcg
dGhhdCB3YXMganVzdCBtYWRlIGluZWxpZ2libGUuICovCiBQQVNfQVBJIGJvb2wgcGFzX3NlZ3Jl
Z2F0ZWRfdmlld19pc19wcmltb3JkaWFsX3BhcnRpYWwocGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3
KTsKIAotUEFTX0FQSSB2b2lkIHBhc19zZWdyZWdhdGVkX3ZpZXdfbm90ZV9lbGlnaWJpbGl0eSgK
LSAgICBwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcsCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZSog
cGFnZSk7Ci0KIFBBU19BUEkgdm9pZCBwYXNfc2VncmVnYXRlZF92aWV3X25vdGVfZW1wdGluZXNz
KAogICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldywKICAgICBwYXNfc2VncmVnYXRlZF9wYWdl
KiBwYWdlKTsKQEAgLTMzNywxMCArMjY1LDggQEAgUEFTX0FQSSBwYXNfaGVhcF9zdW1tYXJ5IHBh
c19zZWdyZWdhdGVkXwogICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnKiBwYWdlX2NvbmZp
Zyk7CiAKIFBBU19BUEkgYm9vbCBwYXNfc2VncmVnYXRlZF92aWV3X2lzX2VsaWdpYmxlKHBhc19z
ZWdyZWdhdGVkX3ZpZXcgdmlldyk7Ci1QQVNfQVBJIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfdmlld19p
c19lbGlnaWJsZV9vcl9iaWFzZWQocGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3KTsKIFBBU19BUEkg
Ym9vbCBwYXNfc2VncmVnYXRlZF92aWV3X2lzX3BheWxvYWRfZW1wdHkocGFzX3NlZ3JlZ2F0ZWRf
dmlldyB2aWV3KTsKIFBBU19BUEkgYm9vbCBwYXNfc2VncmVnYXRlZF92aWV3X2lzX2VtcHR5KHBh
c19zZWdyZWdhdGVkX3ZpZXcgdmlldyk7Ci1QQVNfQVBJIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfdmll
d19pc19lbXB0eV9vcl9iaWFzZWQocGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3KTsKIAogUEFTX0VO
RF9FWFRFUk5fQzsKIApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X3NlZ3JlZ2F0ZWRfdmlld19hbGxvY2F0b3JfaW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3ZpZXdfYWxsb2NhdG9y
X2lubGluZXMuaAkocmV2aXNpb24gMjc5OTY0KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfdmlld19hbGxvY2F0b3JfaW5saW5lcy5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yNywxMiArMjcsMTAgQEAKICNkZWZpbmUgUEFTX1NFR1JFR0FURURfVklFV19B
TExPQ0FUT1JfSU5MSU5FU19ICiAKICNpbmNsdWRlICJwYXNfZXBvY2guaCIKLSNpbmNsdWRlICJw
YXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeS5oIgotI2luY2x1ZGUgInBhc19zZWdyZWdh
dGVkX2JpYXNpbmdfdmlldy5oIgotI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92
aWV3LmgiCisjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfaW5saW5lcy5o
IgogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3BhZ2VfaW5saW5lcy5oIgogI2luY2x1ZGUgInBh
c19zZWdyZWdhdGVkX3BhcnRpYWxfdmlldy5oIgotI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3Zp
ZXdfaW5saW5lcy5oIgorI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3ZpZXcuaCIKIAogUEFTX0JF
R0lOX0VYVEVSTl9DOwogCkBAIC01Nyw3ICs1NSw3IEBAIHBhc19zZWdyZWdhdGVkX3ZpZXdfd2ls
bF9zdGFydF9hbGxvY2F0aW4KICAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldyogZXhj
bHVzaXZlOwogICAgIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlldyogcGFydGlhbDsKICAgICBw
YXNfc2VncmVnYXRlZF92aWV3IGluZWxpZ2libGVfb3duaW5nX3ZpZXc7Ci0gICAgcGFzX3NlZ3Jl
Z2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBzaXplX2RpcmVjdG9yeTsKKyAgICBwYXNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeSogc2l6ZV9kaXJlY3Rvcnk7CiAgICAgcGFzX3NlZ3JlZ2F0
ZWRfZGlyZWN0b3J5KiBzaXplX2RpcmVjdG9yeV9iYXNlOwogICAgIHBhc19sb2NrX2hvbGRfbW9k
ZSBoZWFwX2xvY2tfaG9sZF9tb2RlOwogICAgIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2Rp
cmVjdG9yeSogc2hhcmVkX3BhZ2VfZGlyZWN0b3J5OwpAQCAtNjcsMzI0ICs2NSwyNDcgQEAgcGFz
X3NlZ3JlZ2F0ZWRfdmlld193aWxsX3N0YXJ0X2FsbG9jYXRpbgogICAgIHBhc19zZWdyZWdhdGVk
X3NoYXJlZF9oYW5kbGUqIHNoYXJlZF9oYW5kbGU7CiAKICAgICBzd2l0Y2ggKHBhc19zZWdyZWdh
dGVkX3ZpZXdfZ2V0X2tpbmQodmlldykpIHsKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2JpYXNp
bmdfdmlld19raW5kOgotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfaW5lbGlnaWJsZV9iaWFzaW5n
X3ZpZXdfa2luZDogewotICAgICAgICBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcqIGJpYXNp
bmdfdmlldzsKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkqIGJpYXNp
bmdfZGlyZWN0b3J5OwotCi0gICAgICAgIGJpYXNpbmdfdmlldyA9IChwYXNfc2VncmVnYXRlZF9i
aWFzaW5nX3ZpZXcqKXBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3B0cih2aWV3KTsKLQotICAgICAg
ICBleGNsdXNpdmUgPSBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmll
d19wdHJfbG9hZCgmYmlhc2luZ192aWV3LT5leGNsdXNpdmUpOwotICAgICAgICBiaWFzaW5nX2Rp
cmVjdG9yeSA9Ci0gICAgICAgICAgICBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2JpYXNpbmdfZGly
ZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKCZiaWFzaW5nX3ZpZXctPmRpcmVjdG9yeSk7Ci0KLSAg
ICAgICAgaWYgKCFleGNsdXNpdmUpIHsKLSAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeSogc2l6ZV9kaXJlY3Rvcnk7Ci0gICAgICAgICAgICBwYXNfc2VncmVn
YXRlZF92aWV3IHJlc3VsdGluZ192aWV3OwotICAgICAgICAgICAgcGFzX2xvY2sqIGhlbGRfbG9j
azsKLQotICAgICAgICAgICAgc2l6ZV9kaXJlY3RvcnkgPSBwYXNfY29tcGFjdF9zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgKLSAgICAgICAgICAgICAg
ICAmYmlhc2luZ19kaXJlY3RvcnktPnBhcmVudF9nbG9iYWwpOwotCi0gICAgICAgICAgICByZXN1
bHRpbmdfdmlldyA9Ci0gICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVf
ZGlyZWN0b3J5X3Rha2VfZmlyc3RfZWxpZ2libGVfZGlyZWN0KHNpemVfZGlyZWN0b3J5KTsKLQot
ICAgICAgICAgICAgaWYgKCFwYXNfc2VncmVnYXRlZF92aWV3X2lzX2V4Y2x1c2l2ZShyZXN1bHRp
bmdfdmlldykpIHsKLSAgICAgICAgICAgICAgICBQQVNfQVNTRVJUKCFyZXN1bHRpbmdfdmlldyB8
fCBwYXNfc2VncmVnYXRlZF92aWV3X2lzX3BhcnRpYWwocmVzdWx0aW5nX3ZpZXcpKTsKLSAgICAg
ICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfdmlld19kaWRfYmVjb21lX2VsaWdp
YmxlX2F0X2luZGV4KAotICAgICAgICAgICAgICAgICAgICAmYmlhc2luZ19kaXJlY3RvcnktPmJh
c2UsIGJpYXNpbmdfdmlldy0+aW5kZXgpOwotICAgICAgICAgICAgICAgIHZpZXcgPSByZXN1bHRp
bmdfdmlldzsKLSAgICAgICAgICAgICAgICBnb3RvIHBhcnRpYWxfdmlld19jYXNlOwotICAgICAg
ICAgICAgfQotCi0gICAgICAgICAgICBleGNsdXNpdmUgPSBwYXNfc2VncmVnYXRlZF92aWV3X2dl
dF9leGNsdXNpdmUocmVzdWx0aW5nX3ZpZXcpOwotCi0gICAgICAgICAgICBoZWxkX2xvY2sgPSBO
VUxMOwotICAgICAgICAgICAgcGFzX2xvY2tfc3dpdGNoKCZoZWxkX2xvY2ssICZleGNsdXNpdmUt
Pm93bmVyc2hpcF9sb2NrKTsKLSAgICAgICAgICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdh
dGVkX2V4Y2x1c2l2ZV92aWV3X3B0cl9zdG9yZSgmYmlhc2luZ192aWV3LT5leGNsdXNpdmUsIGV4
Y2x1c2l2ZSk7Ci0gICAgICAgICAgICBQQVNfQVNTRVJUKCFwYXNfc2VncmVnYXRlZF9leGNsdXNp
dmVfdmlld19vd25lcnNoaXBfa2luZF9pc19iaWFzZWQoCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICBleGNsdXNpdmUtPm93bmVyc2hpcF9raW5kKSk7Ci0gICAgICAgICAgICBleGNsdXNpdmUt
Pm93bmVyc2hpcF9raW5kID0KLSAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNp
dmVfdmlld19vd25lcnNoaXBfa2luZF93aXRoX2JpYXNlZCgKLSAgICAgICAgICAgICAgICAgICAg
ZXhjbHVzaXZlLT5vd25lcnNoaXBfa2luZCwgdHJ1ZSk7Ci0gICAgICAgICAgICBpZiAodmVyYm9z
ZSkgewotICAgICAgICAgICAgICAgIHBhc19sb2coInZpZXcgJXAgaGFzIG93bmVyc2hpcCBraW5k
ID0gJXMgZHVlIHRvIGJpYXNpbmcgd2lsbF9zdGFydF9hbGxvY2F0aW5nXG4iLAotICAgICAgICAg
ICAgICAgICAgICAgICAgZXhjbHVzaXZlLAotICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3Nl
Z3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlwX2tpbmRfZ2V0X3N0cmluZygKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBleGNsdXNpdmUtPm93bmVyc2hpcF9raW5kKSk7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgICAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdf
b3duZXJzaGlwX2tpbmRfaXNfb3duZWQoZXhjbHVzaXZlLT5vd25lcnNoaXBfa2luZCkpIHsKLSAg
ICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlKiBwYWdlOwotCi0gICAgICAgICAgICAg
ICAgcGFnZSA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfZm9yX2JvdW5kYXJ5KGV4Y2x1c2l2ZS0+cGFn
ZV9ib3VuZGFyeSwgcGFnZV9jb25maWcpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAg
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9zd2l0Y2hfbG9jayhwYWdlLCAmaGVsZF9sb2NrLCBwYWdlX2Nv
bmZpZyk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAvKiBJZiB0aGlzIGV4Y2x1c2l2
ZSBhbHJlYWR5IGhhZCBhIHBhZ2UsIHRoZW4gdGhlIHBhZ2UgbXVzdCBiZSBzYXlpbmcgdGhhdCBp
dCdzIGVsaWdpYmxlLiAqLwotICAgICAgICAgICAgICAgIFBBU19BU1NFUlQocGFzX3NlZ3JlZ2F0
ZWRfdmlld19pc19leGNsdXNpdmUocGFnZS0+b3duZXIpKTsKLQotICAgICAgICAgICAgICAgIHBh
Z2UtPm93bmVyID0gcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2FzX3ZpZXdfbm9uX251bGwo
Ymlhc2luZ192aWV3KTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgcGFzX2xvY2tfc3dp
dGNoKCZoZWxkX2xvY2ssIE5VTEwpOwotCi0gICAgICAgICAgICAvKiBUaGUgZXhjbHVzaXZlIGlz
IGluZWxpZ2libGUgaW4gdGhlIHNpemUgZGlyZWN0b3J5IG5vdywgc28gaXQncyBub3cgb3VycyB0
byBkbyB3aXRoIGFzCi0gICAgICAgICAgICAgICB3ZSBwbGVhc2UuICovCi0gICAgICAgIH0KLQot
ICAgICAgICBpbmVsaWdpYmxlX293bmluZ192aWV3ID0gcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192
aWV3X2FzX2luZWxpZ2libGVfdmlld19ub25fbnVsbChiaWFzaW5nX3ZpZXcpOwotCi0gICAgICAg
IGdvdG8gZXhjbHVzaXZlX3ZpZXdfY2FzZTsKLSAgICB9CiAgICAgY2FzZSBwYXNfc2VncmVnYXRl
ZF9leGNsdXNpdmVfdmlld19raW5kOgogICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfaW5lbGlnaWJs
ZV9leGNsdXNpdmVfdmlld19raW5kOiB7CiAgICAgICAgIGV4Y2x1c2l2ZSA9IChwYXNfc2VncmVn
YXRlZF9leGNsdXNpdmVfdmlldyopcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcHRyKHZpZXcpOwog
ICAgICAgICBpbmVsaWdpYmxlX293bmluZ192aWV3ID0gcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZl
X3ZpZXdfYXNfaW5lbGlnaWJsZV92aWV3X25vbl9udWxsKGV4Y2x1c2l2ZSk7CiAKLSAgICAgICAg
Z290byBleGNsdXNpdmVfdmlld19jYXNlOwotICAgIH0KLSAgICBjYXNlIHBhc19zZWdyZWdhdGVk
X3BhcnRpYWxfdmlld19raW5kOiB7Ci0gICAgICAgIGdvdG8gcGFydGlhbF92aWV3X2Nhc2U7Ci0g
ICAgfQotICAgIGRlZmF1bHQ6Ci0gICAgICAgIFBBU19BU1NFUlQoISJTaG91bGQgbm90IGJlIHJl
YWNoZWQiKTsKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQorICAgICAgICAvKiBUaGlzIGlz
IGNhbGxlZCB3aXRoIHRoZSBwYWdlIGxvY2sgTk9UIGhlbGQuICovCiAKLSAgICBQQVNfQVNTRVJU
KCEiU2hvdWxkIG5vdCBkcm9wIGRvd24gdG8gaGVyZS4iKTsKKyAgICAgICAgUEFTX1RFU1RJTkdf
QVNTRVJUKAorICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfa2luZChpbmVsaWdp
YmxlX293bmluZ192aWV3KQorICAgICAgICAgICAgPT0gcGFzX3NlZ3JlZ2F0ZWRfaW5lbGlnaWJs
ZV9leGNsdXNpdmVfdmlld19raW5kKTsKKyAgICAKKyAgICAgICAgc2l6ZV9kaXJlY3RvcnkgPQor
ICAgICAgICAgICAgcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfbG9h
ZF9ub25fbnVsbCgmZXhjbHVzaXZlLT5kaXJlY3RvcnkpOworICAgICAgICBzaXplX2RpcmVjdG9y
eV9iYXNlID0gJnNpemVfZGlyZWN0b3J5LT5iYXNlOworICAgICAgICBoZWFwX2xvY2tfaG9sZF9t
b2RlID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfaGVhcF9sb2NrX2hvbGRfbW9kZShwYWdl
X2NvbmZpZyk7CiAKLWV4Y2x1c2l2ZV92aWV3X2Nhc2U6Ci0gICAgLyogVGhpcyBpcyBjYWxsZWQg
d2l0aCB0aGUgcGFnZSBsb2NrIE5PVCBoZWxkLiAqLworICAgICAgICAvKiBDb29sIGZhY3Q6IHRo
aXMgd29uJ3QgY2F1c2UgdGhlIHNpemUgZGlyZWN0b3J5IHRvIGhhdmUgc2hhcmluZyBwYXlsb2Fk
cyB1bnRpbCB0aGF0CisgICAgICAgICAgIHNpemUgZGlyZWN0b3J5IGFsbG9jYXRlcyBleGNsdXNp
dmUgdmlld3MuICovCiAKLSAgICBQQVNfVEVTVElOR19BU1NFUlQocGFzX3NlZ3JlZ2F0ZWRfdmll
d19pc19pbmVsaWdpYmxlX2tpbmQoaW5lbGlnaWJsZV9vd25pbmdfdmlldykpOwotICAgIAotICAg
IHNpemVfZGlyZWN0b3J5ID0KLSAgICAgICAgcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxf
c2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoJmV4Y2x1c2l2ZS0+ZGlyZWN0b3J5KTsK
LSAgICBzaXplX2RpcmVjdG9yeV9iYXNlID0gJnNpemVfZGlyZWN0b3J5LT5iYXNlOwotICAgIGhl
YXBfbG9ja19ob2xkX21vZGUgPSBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19oZWFwX2xvY2tf
aG9sZF9tb2RlKHBhZ2VfY29uZmlnKTsKLQotICAgIC8qIENvb2wgZmFjdDogdGhpcyB3b24ndCBj
YXVzZSB0aGUgc2l6ZSBkaXJlY3RvcnkgdG8gaGF2ZSBzaGFyaW5nIHBheWxvYWRzIHVudGlsIHRo
YXQKLSAgICAgICBzaXplIGRpcmVjdG9yeSBhbGxvY2F0ZXMgZXhjbHVzaXZlIHZpZXdzLiAqLwot
Ci0gICAgLyogRXZlbiB0aG91Z2ggd2UgaG9sZCBubyBsb2Nrcywgd2UgY2FuIHRvdGFsbHkgY2hl
Y2sgdGhpcyBiaXQuIFRoZSBlbGlnaWJsZSBiaXQgaXMgYSBzZWNvbmRhcnkKLSAgICAgICBwcm90
ZWN0aW9uIGhlcmUgc2luY2UgaXQgaXMgb25seSBsZWdhbCB0byBjaGFuZ2UgdGhlIHZhbHVlIG9m
IHRoaXMgYml0IGlmIHlvdSd2ZSBzdG9sZW4KLSAgICAgICBlbGlnaWJpbGl0eSBhbmQgbG9ja2Vk
IHRoZSBwYWdlLiAqLwotICAgIGlmICghcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3du
ZXJzaGlwX2tpbmRfaXNfb3duZWQoZXhjbHVzaXZlLT5vd25lcnNoaXBfa2luZCkpIHsKLSAgICAg
ICAgYm9vbCB3YXNfc3RvbGVuOworICAgICAgICAvKiBFdmVuIHRob3VnaCB3ZSBob2xkIG5vIGxv
Y2tzLCB3ZSBjYW4gdG90YWxseSBjaGVjayB0aGlzIGJpdC4gVGhlIGVsaWdpYmxlIGJpdCBpcyBh
IHNlY29uZGFyeQorICAgICAgICAgICBwcm90ZWN0aW9uIGhlcmUgc2luY2UgaXQgaXMgb25seSBs
ZWdhbCB0byBjaGFuZ2UgdGhlIHZhbHVlIG9mIHRoaXMgYml0IGlmIHlvdSd2ZSBzdG9sZW4KKyAg
ICAgICAgICAgZWxpZ2liaWxpdHkgYW5kIGxvY2tlZCB0aGUgcGFnZS4gKi8KKyAgICAgICAgaWYg
KCFleGNsdXNpdmUtPmlzX293bmVkKSB7CisgICAgICAgICAgICBib29sIHdhc19zdG9sZW47CiAK
LSAgICAgICAgd2FzX3N0b2xlbiA9IGZhbHNlOworICAgICAgICAgICAgd2FzX3N0b2xlbiA9IGZh
bHNlOwogICAgICAgICAKLSAgICAgICAgaWYgKCFleGNsdXNpdmUtPnBhZ2VfYm91bmRhcnkpIHsK
LSAgICAgICAgICAgIGlmICh2ZXJib3NlKQotICAgICAgICAgICAgICAgIHBhc19sb2coIk5vIHBh
Z2UsIHRyeWluZyB0byBnZXQgb25lIHNvbWVob3cuXG4iKTsKLSAgICAgICAgICAgIGlmICghZXhj
bHVzaXZlLT5wYWdlX2JvdW5kYXJ5Ci0gICAgICAgICAgICAgICAgJiYgcGFzX3NlZ3JlZ2F0ZWRf
ZGlyZWN0b3J5X2Nhbl9kb19zaGFyaW5nKHNpemVfZGlyZWN0b3J5X2Jhc2UpKSB7Ci0gICAgICAg
ICAgICAgICAgaWYgKHZlcmJvc2UpCi0gICAgICAgICAgICAgICAgICAgIHBhc19sb2coIlRyeWlu
ZyBwaHlzaWNhbC5cbiIpOwotICAgICAgICAgICAgICAgIHBhc19waHlzaWNhbF9wYWdlX3NoYXJp
bmdfcG9vbF90YWtlX2Zvcl9wYWdlX2NvbmZpZygKLSAgICAgICAgICAgICAgICAgICAgcGFnZV9j
b25maWcuYmFzZS5wYWdlX3NpemUsIHBhZ2VfY29uZmlnLmJhc2UucGFnZV9jb25maWdfcHRyLAot
ICAgICAgICAgICAgICAgICAgICBoZWFwX2xvY2tfaG9sZF9tb2RlLCBOVUxMLCAwKTsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKCFleGNsdXNpdmUtPnBhZ2Vf
Ym91bmRhcnkpIHsKICAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkKLSAgICAgICAgICAgICAg
ICAgICAgcGFzX2xvZygiQWxsb2NhdGluZyBhIHBhZ2UuXG4iKTsKLSAgICAgICAgICAgICAgICBw
YXNfaGVhcF9sb2NrX2xvY2tfY29uZGl0aW9uYWxseShoZWFwX2xvY2tfaG9sZF9tb2RlKTsKLSAg
ICAgICAgICAgICAgICBleGNsdXNpdmUtPnBhZ2VfYm91bmRhcnkgPSBwYWdlX2NvbmZpZy5iYXNl
LnBhZ2VfYWxsb2NhdG9yKHNpemVfZGlyZWN0b3J5LT5oZWFwKTsKLSAgICAgICAgICAgICAgICBp
ZiAoZXhjbHVzaXZlLT5wYWdlX2JvdW5kYXJ5KSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmICh2
ZXJib3NlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBwYXNfbG9nKCJDcmVhdGluZyBwYWdl
IGhlYWRlciBmb3IgbmV3IGV4Y2x1c2l2ZSBwYWdlLCBib3VuZGFyeSA9ICVwLlxuIiwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhjbHVzaXZlLT5wYWdlX2JvdW5kYXJ5KTsKKyAg
ICAgICAgICAgICAgICAgICAgcGFzX2xvZygiTm8gcGFnZSwgdHJ5aW5nIHRvIGdldCBvbmUgc29t
ZWhvdy5cbiIpOworICAgICAgICAgICAgICAgIGlmICghZXhjbHVzaXZlLT5wYWdlX2JvdW5kYXJ5
CisgICAgICAgICAgICAgICAgICAgICYmIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9jYW5fZG9f
c2hhcmluZyhzaXplX2RpcmVjdG9yeV9iYXNlKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAo
dmVyYm9zZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhc19sb2coIlRyeWluZyBwaHlzaWNh
bC5cbiIpOworICAgICAgICAgICAgICAgICAgICBwYXNfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX3Bv
b2xfdGFrZV9mb3JfcGFnZV9jb25maWcoCisgICAgICAgICAgICAgICAgICAgICAgICBwYWdlX2Nv
bmZpZy5iYXNlLnBhZ2Vfc2l6ZSwgcGFnZV9jb25maWcuYmFzZS5wYWdlX2NvbmZpZ19wdHIsCisg
ICAgICAgICAgICAgICAgICAgICAgICBoZWFwX2xvY2tfaG9sZF9tb2RlLCBOVUxMLCAwKTsKKyAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoIWV4Y2x1
c2l2ZS0+cGFnZV9ib3VuZGFyeSkgeworICAgICAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkK
KyAgICAgICAgICAgICAgICAgICAgICAgIHBhc19sb2coIkFsbG9jYXRpbmcgYSBwYWdlLlxuIik7
CisgICAgICAgICAgICAgICAgICAgIHBhc19oZWFwX2xvY2tfbG9ja19jb25kaXRpb25hbGx5KGhl
YXBfbG9ja19ob2xkX21vZGUpOworICAgICAgICAgICAgICAgICAgICBleGNsdXNpdmUtPnBhZ2Vf
Ym91bmRhcnkgPSBwYWdlX2NvbmZpZy5iYXNlLnBhZ2VfYWxsb2NhdG9yKHNpemVfZGlyZWN0b3J5
LT5oZWFwKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGV4Y2x1c2l2ZS0+cGFnZV9ib3VuZGFy
eSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwYXNfbG9nKCJDcmVhdGluZyBwYWdlIGhlYWRlciBmb3IgbmV3IGV4
Y2x1c2l2ZSBwYWdlLCBib3VuZGFyeSA9ICVwLlxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGV4Y2x1c2l2ZS0+cGFnZV9ib3VuZGFyeSk7CisgICAgICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBwYWdlX2NvbmZpZy5iYXNlLmNyZWF0
ZV9wYWdlX2hlYWRlcigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGNsdXNpdmUtPnBh
Z2VfYm91bmRhcnksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2xvY2tfaXNfaGVs
ZCk7CiAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgcGFnZV9jb25m
aWcuYmFzZS5jcmVhdGVfcGFnZV9oZWFkZXIoCi0gICAgICAgICAgICAgICAgICAgICAgICBleGNs
dXNpdmUtPnBhZ2VfYm91bmRhcnksCi0gICAgICAgICAgICAgICAgICAgICAgICBwYXNfbG9ja19p
c19oZWxkKTsKKyAgICAgICAgICAgICAgICAgICAgcGFzX2hlYXBfbG9ja191bmxvY2tfY29uZGl0
aW9uYWxseShoZWFwX2xvY2tfaG9sZF9tb2RlKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHZl
cmJvc2UpCisgICAgICAgICAgICAgICAgICAgICAgICBwYXNfbG9nKCJHb3QgcGFnZSA9ICVwLlxu
IiwgZXhjbHVzaXZlLT5wYWdlX2JvdW5kYXJ5KTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgICAgcGFzX2hlYXBfbG9ja191bmxvY2tfY29uZGl0aW9uYWxseShoZWFwX2xvY2tfaG9s
ZF9tb2RlKTsKLSAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkKLSAgICAgICAgICAgICAgICAg
ICAgcGFzX2xvZygiR290IHBhZ2UgPSAlcC5cbiIsIGV4Y2x1c2l2ZS0+cGFnZV9ib3VuZGFyeSk7
Ci0gICAgICAgICAgICB9CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIGlmICghZXhjbHVzaXZl
LT5wYWdlX2JvdW5kYXJ5KSB7Ci0gICAgICAgICAgICAgICAgLyogT3V0IG9mIG1lbW9yeS4gKi8K
LSAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICAgIHN0YXRpYyBjb25zdCBzaXplX3QgbWF4X251bV9sb2Nrc19oZWxk
ID0gMTsKLSAgICAgICAgICAgIHBhc19sb2NrKiBsb2Nrc19oZWxkW21heF9udW1fbG9ja3NfaGVs
ZF07Ci0gICAgICAgICAgICBzaXplX3QgbnVtX2xvY2tzX2hlbGQ7Ci0gICAgICAgICAgICBib29s
IGRpZF9sb2NrX2xvY2s7CisgICAgICAgICAgICAgICAgaWYgKCFleGNsdXNpdmUtPnBhZ2VfYm91
bmRhcnkpIHsKKyAgICAgICAgICAgICAgICAgICAgLyogT3V0IG9mIG1lbW9yeS4gKi8KKyAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IG1heF9udW1f
bG9ja3NfaGVsZCA9IDE7CisgICAgICAgICAgICAgICAgcGFzX2xvY2sqIGxvY2tzX2hlbGRbbWF4
X251bV9sb2Nrc19oZWxkXTsKKyAgICAgICAgICAgICAgICBzaXplX3QgbnVtX2xvY2tzX2hlbGQ7
CisgICAgICAgICAgICAgICAgYm9vbCBkaWRfbG9ja19sb2NrOwogICAgICAgICAgICAgCi0gICAg
ICAgICAgICAvKiBBdCB0aGlzIHBvaW50IG5vYm9keSBidXQgdXMgY2FuICppbml0aWF0ZSogYW55
dGhpbmcgb24gdGhpcyBwYWdlLiBCdXQgaXQncwotICAgICAgICAgICAgICAgcG9zc2libGUgdGhh
dCB3aG9ldmVyIGRlY29tbWl0dGVkIHRoaXMgcGFnZSBpc24ndCBhY3R1YWxseSBkb25lIGRlY29t
bWl0dGluZwotICAgICAgICAgICAgICAgeWV0LiBTbyB3ZSBncmFiIHRoZSBjb21taXQgbG9jayBm
b3IgdGhpcyBwYWdlIHRvIGVuc3VyZSB0aGF0IHdlIGFyZSB0aGUgb25lcwotICAgICAgICAgICAg
ICAgd2hvIGdldCB0byBkbyBpdC4gTm90ZSB0aGF0IGlmIHRoZSBoZWFwIGxvY2sgaXMgaGVsZCB0
aGVuIHdlIGhhdmUgdG8gZG8gdGhpcwotICAgICAgICAgICAgICAgdmlhIHRoZSBwaHlzaWNhbCBt
ZW1vcnkgdHJhbnNhY3Rpb24uIEFsc28gbm90ZSB0aGF0IGl0J3MgdmVyeSB1bmxpa2VseSB0aGF0
Ci0gICAgICAgICAgICAgICB0aGUgY29tbWl0IGxvY2sgaXMgaGVsZCBoZXJlLCBzaW5jZSB3ZSB0
cnkgdG8gb25seSBkZWNvbW1pdCBwYWdlcyB0aGF0IGFyZQotICAgICAgICAgICAgICAgdW5saWtl
bHkgdG8gYmUgdXNlZCBhbnl0aW1lIHNvb24uICovCisgICAgICAgICAgICAgICAgLyogQXQgdGhp
cyBwb2ludCBub2JvZHkgYnV0IHVzIGNhbiAqaW5pdGlhdGUqIGFueXRoaW5nIG9uIHRoaXMgcGFn
ZS4gQnV0IGl0J3MKKyAgICAgICAgICAgICAgICAgICBwb3NzaWJsZSB0aGF0IHdob2V2ZXIgZGVj
b21taXR0ZWQgdGhpcyBwYWdlIGlzbid0IGFjdHVhbGx5IGRvbmUgZGVjb21taXR0aW5nCisgICAg
ICAgICAgICAgICAgICAgeWV0LiBTbyB3ZSBncmFiIHRoZSBjb21taXQgbG9jayBmb3IgdGhpcyBw
YWdlIHRvIGVuc3VyZSB0aGF0IHdlIGFyZSB0aGUgb25lcworICAgICAgICAgICAgICAgICAgIHdo
byBnZXQgdG8gZG8gaXQuIE5vdGUgdGhhdCBpZiB0aGUgaGVhcCBsb2NrIGlzIGhlbGQgdGhlbiB3
ZSBoYXZlIHRvIGRvIHRoaXMKKyAgICAgICAgICAgICAgICAgICB2aWEgdGhlIHBoeXNpY2FsIG1l
bW9yeSB0cmFuc2FjdGlvbi4gQWxzbyBub3RlIHRoYXQgaXQncyB2ZXJ5IHVubGlrZWx5IHRoYXQK
KyAgICAgICAgICAgICAgICAgICB0aGUgY29tbWl0IGxvY2sgaXMgaGVsZCBoZXJlLCBzaW5jZSB3
ZSB0cnkgdG8gb25seSBkZWNvbW1pdCBwYWdlcyB0aGF0IGFyZQorICAgICAgICAgICAgICAgICAg
IHVubGlrZWx5IHRvIGJlIHVzZWQgYW55dGltZSBzb29uLiAqLwogICAgICAgICAgICAgCi0gICAg
ICAgICAgICBudW1fbG9ja3NfaGVsZCA9IDA7Ci0gICAgICAgICAgICBkaWRfbG9ja19sb2NrID0g
ZmFsc2U7CisgICAgICAgICAgICAgICAgbnVtX2xvY2tzX2hlbGQgPSAwOworICAgICAgICAgICAg
ICAgIGRpZF9sb2NrX2xvY2sgPSBmYWxzZTsKIAotICAgICAgICAgICAgLyogVGhlIHV0aWxpdHkg
aGVhcCBkb2VzIGFsbCBjb21taXQvZGVjb21taXQgdW5kZXIgdGhlIGhlYXAgbG9jaywgc28gd2Ug
ZG9uJ3QgbmVlZCB0bwotICAgICAgICAgICAgICAgcGxheSBhbnkgZ2FtZXMgd2l0aCB0aGUgY29t
bWl0IGxvY2suICAqLwotICAgICAgICAgICAgaWYgKHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmln
X2lzX3V0aWxpdHkocGFnZV9jb25maWcpKQotICAgICAgICAgICAgICAgIHBhc19oZWFwX2xvY2tf
YXNzZXJ0X2hlbGQoKTsKLSAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIFBBU19B
U1NFUlQoaGVhcF9sb2NrX2hvbGRfbW9kZSA9PSBwYXNfbG9ja19pc19ub3RfaGVsZCk7Ci0gICAg
ICAgICAgICAgICAgcGFzX2xvY2tfbG9jaygmZXhjbHVzaXZlLT5jb21taXRfbG9jayk7Ci0gICAg
ICAgICAgICAgICAgbG9ja3NfaGVsZFtudW1fbG9ja3NfaGVsZCsrXSA9ICZleGNsdXNpdmUtPmNv
bW1pdF9sb2NrOwotICAgICAgICAgICAgICAgIGRpZF9sb2NrX2xvY2sgPSB0cnVlOwotICAgICAg
ICAgICAgfQotICAgICAgICAgICAgcGFzX2NvbXBpbGVyX2ZlbmNlKCk7CisgICAgICAgICAgICAg
ICAgLyogVGhlIHV0aWxpdHkgaGVhcCBkb2VzIGFsbCBjb21taXQvZGVjb21taXQgdW5kZXIgdGhl
IGhlYXAgbG9jaywgc28gd2UgZG9uJ3QgbmVlZCB0bworICAgICAgICAgICAgICAgICAgIHBsYXkg
YW55IGdhbWVzIHdpdGggdGhlIGNvbW1pdCBsb2NrLiAgKi8KKyAgICAgICAgICAgICAgICBpZiAo
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfaXNfdXRpbGl0eShwYWdlX2NvbmZpZykpCisgICAg
ICAgICAgICAgICAgICAgIHBhc19oZWFwX2xvY2tfYXNzZXJ0X2hlbGQoKTsKKyAgICAgICAgICAg
ICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgUEFTX0FTU0VSVChoZWFwX2xvY2tfaG9s
ZF9tb2RlID09IHBhc19sb2NrX2lzX25vdF9oZWxkKTsKKyAgICAgICAgICAgICAgICAgICAgcGFz
X2xvY2tfbG9jaygmZXhjbHVzaXZlLT5jb21taXRfbG9jayk7CisgICAgICAgICAgICAgICAgICAg
IGxvY2tzX2hlbGRbbnVtX2xvY2tzX2hlbGQrK10gPSAmZXhjbHVzaXZlLT5jb21taXRfbG9jazsK
KyAgICAgICAgICAgICAgICAgICAgZGlkX2xvY2tfbG9jayA9IHRydWU7CisgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIHBhc19jb21waWxlcl9mZW5jZSgpOwogICAgICAgICAgICAg
Ci0gICAgICAgICAgICBQQVNfQVNTRVJUKG51bV9sb2Nrc19oZWxkIDw9IG1heF9udW1fbG9ja3Nf
aGVsZCk7CisgICAgICAgICAgICAgICAgUEFTX0FTU0VSVChudW1fbG9ja3NfaGVsZCA8PSBtYXhf
bnVtX2xvY2tzX2hlbGQpOwogCi0gICAgICAgICAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0
b3J5X2Nhbl9kb19zaGFyaW5nKHNpemVfZGlyZWN0b3J5X2Jhc2UpKSB7Ci0gICAgICAgICAgICAg
ICAgcGFzX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2VfZm9yX3BhZ2VfY29uZmlnKAot
ICAgICAgICAgICAgICAgICAgICBwYWdlX2NvbmZpZy5iYXNlLnBhZ2Vfc2l6ZSwKLSAgICAgICAg
ICAgICAgICAgICAgcGFnZV9jb25maWcuYmFzZS5wYWdlX2NvbmZpZ19wdHIsCi0gICAgICAgICAg
ICAgICAgICAgIGhlYXBfbG9ja19ob2xkX21vZGUsCi0gICAgICAgICAgICAgICAgICAgIGxvY2tz
X2hlbGQsCi0gICAgICAgICAgICAgICAgICAgIG51bV9sb2Nrc19oZWxkKTsKLSAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2Nhbl9kb19z
aGFyaW5nKHNpemVfZGlyZWN0b3J5X2Jhc2UpKSB7CisgICAgICAgICAgICAgICAgICAgIHBhc19w
aHlzaWNhbF9wYWdlX3NoYXJpbmdfcG9vbF90YWtlX2Zvcl9wYWdlX2NvbmZpZygKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHBhZ2VfY29uZmlnLmJhc2UucGFnZV9zaXplLAorICAgICAgICAgICAg
ICAgICAgICAgICAgcGFnZV9jb25maWcuYmFzZS5wYWdlX2NvbmZpZ19wdHIsCisgICAgICAgICAg
ICAgICAgICAgICAgICBoZWFwX2xvY2tfaG9sZF9tb2RlLAorICAgICAgICAgICAgICAgICAgICAg
ICAgbG9ja3NfaGVsZCwKKyAgICAgICAgICAgICAgICAgICAgICAgIG51bV9sb2Nrc19oZWxkKTsK
KyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIHBhc19wYWdlX21h
bGxvY19jb21taXQoZXhjbHVzaXZlLT5wYWdlX2JvdW5kYXJ5LCBwYWdlX2NvbmZpZy5iYXNlLnBh
Z2Vfc2l6ZSk7Ci0gICAgICAgICAgICBpZiAodmVyYm9zZSkgewotICAgICAgICAgICAgICAgIHBh
c19sb2coIkNyZWF0aW5nIHBhZ2UgaGVhZGVyIHdoZW4gY29tbWl0dGluZyBleGNsdXNpdmUgcGFn
ZSwgdmlldyA9ICVwLCAiCi0gICAgICAgICAgICAgICAgICAgICAgICAiYm91bmRhcnkgPSAlcC5c
biIsCi0gICAgICAgICAgICAgICAgICAgICAgICBleGNsdXNpdmUsIGV4Y2x1c2l2ZS0+cGFnZV9i
b3VuZGFyeSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBwYWdlX2NvbmZpZy5iYXNlLmNy
ZWF0ZV9wYWdlX2hlYWRlcigKLSAgICAgICAgICAgICAgICBleGNsdXNpdmUtPnBhZ2VfYm91bmRh
cnksCi0gICAgICAgICAgICAgICAgaGVhcF9sb2NrX2hvbGRfbW9kZSk7CisgICAgICAgICAgICAg
ICAgcGFzX3BhZ2VfbWFsbG9jX2NvbW1pdChleGNsdXNpdmUtPnBhZ2VfYm91bmRhcnksIHBhZ2Vf
Y29uZmlnLmJhc2UucGFnZV9zaXplKTsKKyAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkgewor
ICAgICAgICAgICAgICAgICAgICBwYXNfbG9nKCJDcmVhdGluZyBwYWdlIGhlYWRlciB3aGVuIGNv
bW1pdHRpbmcgZXhjbHVzaXZlIHBhZ2UsIHZpZXcgPSAlcCwgIgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJib3VuZGFyeSA9ICVwLlxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBleGNsdXNpdmUsIGV4Y2x1c2l2ZS0+cGFnZV9ib3VuZGFyeSk7CisgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIHBhZ2VfY29uZmlnLmJhc2UuY3JlYXRlX3BhZ2VfaGVhZGVyKAor
ICAgICAgICAgICAgICAgICAgICBleGNsdXNpdmUtPnBhZ2VfYm91bmRhcnksCisgICAgICAgICAg
ICAgICAgICAgIGhlYXBfbG9ja19ob2xkX21vZGUpOwogICAgICAgICAgICAgCi0gICAgICAgICAg
ICBwYXNfY29tcGlsZXJfZmVuY2UoKTsKLSAgICAgICAgICAgIGlmIChkaWRfbG9ja19sb2NrKQot
ICAgICAgICAgICAgICAgIHBhc19sb2NrX3VubG9jaygmZXhjbHVzaXZlLT5jb21taXRfbG9jayk7
Ci0KLSAgICAgICAgICAgIGlmIChQQVNfREVCVUdfU1BFQ1RSVU1fVVNFX0ZPUl9DT01NSVQpIHsK
LSAgICAgICAgICAgICAgICBwYXNfaGVhcF9sb2NrX2xvY2tfY29uZGl0aW9uYWxseShoZWFwX2xv
Y2tfaG9sZF9tb2RlKTsKLSAgICAgICAgICAgICAgICBwYXNfZGVidWdfc3BlY3RydW1fYWRkKAot
ICAgICAgICAgICAgICAgICAgICBzaXplX2RpcmVjdG9yeSwgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5X2R1bXBfZm9yX3NwZWN0cnVtLAotICAgICAgICAgICAgICAgICAgICBw
YWdlX2NvbmZpZy5iYXNlLnBhZ2Vfc2l6ZSk7Ci0gICAgICAgICAgICAgICAgcGFzX2hlYXBfbG9j
a191bmxvY2tfY29uZGl0aW9uYWxseShoZWFwX2xvY2tfaG9sZF9tb2RlKTsKKyAgICAgICAgICAg
ICAgICBwYXNfY29tcGlsZXJfZmVuY2UoKTsKKyAgICAgICAgICAgICAgICBpZiAoZGlkX2xvY2tf
bG9jaykKKyAgICAgICAgICAgICAgICAgICAgcGFzX2xvY2tfdW5sb2NrKCZleGNsdXNpdmUtPmNv
bW1pdF9sb2NrKTsKKworICAgICAgICAgICAgICAgIGlmIChQQVNfREVCVUdfU1BFQ1RSVU1fVVNF
X0ZPUl9DT01NSVQpIHsKKyAgICAgICAgICAgICAgICAgICAgcGFzX2hlYXBfbG9ja19sb2NrX2Nv
bmRpdGlvbmFsbHkoaGVhcF9sb2NrX2hvbGRfbW9kZSk7CisgICAgICAgICAgICAgICAgICAgIHBh
c19kZWJ1Z19zcGVjdHJ1bV9hZGQoCisgICAgICAgICAgICAgICAgICAgICAgICBzaXplX2RpcmVj
dG9yeSwgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZHVtcF9mb3Jfc3BlY3RydW0sCisg
ICAgICAgICAgICAgICAgICAgICAgICBwYWdlX2NvbmZpZy5iYXNlLnBhZ2Vfc2l6ZSk7CisgICAg
ICAgICAgICAgICAgICAgIHBhc19oZWFwX2xvY2tfdW5sb2NrX2NvbmRpdGlvbmFsbHkoaGVhcF9s
b2NrX2hvbGRfbW9kZSk7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQotICAgICAg
ICB9CiAgICAgICAgIAotICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbnN0cnVjdCgKLSAg
ICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfZm9yX2JvdW5kYXJ5X3VuY2hlY2tlZChleGNs
dXNpdmUtPnBhZ2VfYm91bmRhcnksIHBhZ2VfY29uZmlnKSwKLSAgICAgICAgICAgIGluZWxpZ2li
bGVfb3duaW5nX3ZpZXcsCi0gICAgICAgICAgICB3YXNfc3RvbGVuLAotICAgICAgICAgICAgKHBh
c19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnKilwYWdlX2NvbmZpZy5iYXNlLnBhZ2VfY29uZmlnX3B0
cik7Ci0KLSAgICAgICAgcGFzX2xvY2tfbG9ja19jb25kaXRpb25hbGx5KCZleGNsdXNpdmUtPm93
bmVyc2hpcF9sb2NrLCBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKLSAgICAgICAgZXhjbHVzaXZlLT5v
d25lcnNoaXBfa2luZCA9Ci0gICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmll
d19vd25lcnNoaXBfa2luZF93aXRoX293bmVkKGV4Y2x1c2l2ZS0+b3duZXJzaGlwX2tpbmQsIHRy
dWUpOwotICAgICAgICBpZiAodmVyYm9zZSkgewotICAgICAgICAgICAgcGFzX2xvZygidmlldyAl
cCBoYXMgb3duZXJzaGlwIGtpbmQgPSAlcyBkdWUgdG8gZXhjbHVzaXZlIHdpbGxfc3RhcnRfYWxs
b2NhdGluZ1xuIiwKLSAgICAgICAgICAgICAgICAgICAgZXhjbHVzaXZlLAotICAgICAgICAgICAg
ICAgICAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lcnNoaXBfa2luZF9nZXRf
c3RyaW5nKAotICAgICAgICAgICAgICAgICAgICAgICAgZXhjbHVzaXZlLT5vd25lcnNoaXBfa2lu
ZCkpOwotICAgICAgICB9Ci0gICAgICAgIHBhc19sb2NrX3VubG9ja19jb25kaXRpb25hbGx5KCZl
eGNsdXNpdmUtPm93bmVyc2hpcF9sb2NrLCBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKLSAgICB9Cisg
ICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbnN0cnVjdCgKKyAgICAgICAgICAgICAg
ICBwYXNfc2VncmVnYXRlZF9wYWdlX2Zvcl9ib3VuZGFyeV91bmNoZWNrZWQoZXhjbHVzaXZlLT5w
YWdlX2JvdW5kYXJ5LCBwYWdlX2NvbmZpZyksCisgICAgICAgICAgICAgICAgaW5lbGlnaWJsZV9v
d25pbmdfdmlldywKKyAgICAgICAgICAgICAgICB3YXNfc3RvbGVuLAorICAgICAgICAgICAgICAg
IChwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyopcGFnZV9jb25maWcuYmFzZS5wYWdlX2NvbmZp
Z19wdHIpOwogCi0gICAgUEFTX1RFU1RJTkdfQVNTRVJUKGV4Y2x1c2l2ZS0+cGFnZV9ib3VuZGFy
eSk7CisgICAgICAgICAgICBwYXNfbG9ja19sb2NrX2NvbmRpdGlvbmFsbHkoJmV4Y2x1c2l2ZS0+
b3duZXJzaGlwX2xvY2ssIGhlYXBfbG9ja19ob2xkX21vZGUpOworICAgICAgICAgICAgZXhjbHVz
aXZlLT5pc19vd25lZCA9IHRydWU7CisgICAgICAgICAgICBpZiAodmVyYm9zZSkgeworICAgICAg
ICAgICAgICAgIHBhc19sb2coInZpZXcgJXAgaGFzIGlzIG93bmVkID0gdHJ1ZSBkdWUgdG8gZXhj
bHVzaXZlIHdpbGxfc3RhcnRfYWxsb2NhdGluZ1xuIiwKKyAgICAgICAgICAgICAgICAgICAgICAg
IGV4Y2x1c2l2ZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwYXNfbG9ja191bmxvY2tf
Y29uZGl0aW9uYWxseSgmZXhjbHVzaXZlLT5vd25lcnNoaXBfbG9jaywgaGVhcF9sb2NrX2hvbGRf
bW9kZSk7CisgICAgICAgIH0KIAotICAgIHJldHVybiB2aWV3OworICAgICAgICBQQVNfVEVTVElO
R19BU1NFUlQoZXhjbHVzaXZlLT5wYWdlX2JvdW5kYXJ5KTsKIAotcGFydGlhbF92aWV3X2Nhc2U6
Ci0gICAgcGFydGlhbCA9IHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3BhcnRpYWwodmlldyk7Ci0g
ICAgCi0gICAgc2l6ZV9kaXJlY3RvcnkgPSBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgmcGFydGlhbC0+ZGlyZWN0b3J5KTsKLSAg
ICBzaXplX2RpcmVjdG9yeV9iYXNlID0gJnNpemVfZGlyZWN0b3J5LT5iYXNlOwotICAgIGhlYXAg
PSBzaXplX2RpcmVjdG9yeS0+aGVhcDsKLSAgICBzaGFyZWRfcGFnZV9kaXJlY3RvcnkgPSBwYWdl
X2NvbmZpZy5zaGFyZWRfcGFnZV9kaXJlY3Rvcnlfc2VsZWN0b3IoaGVhcCwgc2l6ZV9kaXJlY3Rv
cnkpOwotICAgIHNoYXJlZF9wYWdlX2RpcmVjdG9yeV9iYXNlID0gJnNoYXJlZF9wYWdlX2RpcmVj
dG9yeS0+YmFzZTsKLSAgICBoZWFwX2xvY2tfaG9sZF9tb2RlID0gcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9jb25maWdfaGVhcF9sb2NrX2hvbGRfbW9kZShwYWdlX2NvbmZpZyk7Ci0KLSAgICBzaGFyZWRf
dmlldyA9IHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXdfcHRyX2xvYWQoJnBhcnRp
YWwtPnNoYXJlZF92aWV3KTsKLSAgICBpZiAoIXNoYXJlZF92aWV3KSB7Ci0gICAgICAgIC8qIFdl
IGhhdmUgYSBwcmltb3JkaWFsIHBhcnRpYWwgdmlldyEgTGV0IHRoZSBsb2NhbCBhbGxvY2F0b3Ig
d29ycnkgYWJvdXQgaXQuIFRoZXJlJ3MKLSAgICAgICAgICAgbm90aGluZyB3ZSBjYW4gZG8gc2lu
Y2Ugd2UgZG9uJ3QgcmVhbGx5IGhhdmUgZW5vdWdoIGluZm9ybWF0aW9uLiBUaGlzIHBhdGggaGFz
IHRvIGRvCi0gICAgICAgICAgIHRoaXMgY2FyZWZ1bCBkYW5jZSB3aGVyZSBpdCBhdG9taWNhbGx5
IHBpY2tzIGEgc2hhcmVkIHZpZXcgYW5kIGFsbG9jYXRlcyBzb21ldGhpbmcKLSAgICAgICAgICAg
ZnJvbSBpdCwgYW5kIHRoZW4gdGhhdCBzb21ldGhpbmcgaGFzIHRvIGJlIGltbWVkaWF0ZWx5IHNo
b3ZlZCBpbnRvIHRoZSBsb2NhbAotICAgICAgICAgICBhbGxvY2F0b3IuICovCiAgICAgICAgIHJl
dHVybiB2aWV3OwogICAgIH0KKyAgICAgICAgCisgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9wYXJ0
aWFsX3ZpZXdfa2luZDogeworICAgICAgICBwYXJ0aWFsID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19n
ZXRfcGFydGlhbCh2aWV3KTsKKyAgICAKKyAgICAgICAgc2l6ZV9kaXJlY3RvcnkgPSBwYXNfY29t
cGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKCZwYXJ0aWFs
LT5kaXJlY3RvcnkpOworICAgICAgICBzaXplX2RpcmVjdG9yeV9iYXNlID0gJnNpemVfZGlyZWN0
b3J5LT5iYXNlOworICAgICAgICBoZWFwID0gc2l6ZV9kaXJlY3RvcnktPmhlYXA7CisgICAgICAg
IHNoYXJlZF9wYWdlX2RpcmVjdG9yeSA9IHBhZ2VfY29uZmlnLnNoYXJlZF9wYWdlX2RpcmVjdG9y
eV9zZWxlY3RvcihoZWFwLCBzaXplX2RpcmVjdG9yeSk7CisgICAgICAgIHNoYXJlZF9wYWdlX2Rp
cmVjdG9yeV9iYXNlID0gJnNoYXJlZF9wYWdlX2RpcmVjdG9yeS0+YmFzZTsKKyAgICAgICAgaGVh
cF9sb2NrX2hvbGRfbW9kZSA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2hlYXBfbG9ja19o
b2xkX21vZGUocGFnZV9jb25maWcpOwogCi0gICAgcGFzX2xvY2tfbG9ja19jb25kaXRpb25hbGx5
KCZzaGFyZWRfdmlldy0+Y29tbWl0X2xvY2ssIGhlYXBfbG9ja19ob2xkX21vZGUpOworICAgICAg
ICBzaGFyZWRfdmlldyA9IHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXdfcHRyX2xv
YWQoJnBhcnRpYWwtPnNoYXJlZF92aWV3KTsKKyAgICAgICAgaWYgKCFzaGFyZWRfdmlldykgewor
ICAgICAgICAgICAgLyogV2UgaGF2ZSBhIHByaW1vcmRpYWwgcGFydGlhbCB2aWV3ISBMZXQgdGhl
IGxvY2FsIGFsbG9jYXRvciB3b3JyeSBhYm91dCBpdC4gVGhlcmUncworICAgICAgICAgICAgICAg
bm90aGluZyB3ZSBjYW4gZG8gc2luY2Ugd2UgZG9uJ3QgcmVhbGx5IGhhdmUgZW5vdWdoIGluZm9y
bWF0aW9uLiBUaGlzIHBhdGggaGFzIHRvIGRvCisgICAgICAgICAgICAgICB0aGlzIGNhcmVmdWwg
ZGFuY2Ugd2hlcmUgaXQgYXRvbWljYWxseSBwaWNrcyBhIHNoYXJlZCB2aWV3IGFuZCBhbGxvY2F0
ZXMgc29tZXRoaW5nCisgICAgICAgICAgICAgICBmcm9tIGl0LCBhbmQgdGhlbiB0aGF0IHNvbWV0
aGluZyBoYXMgdG8gYmUgaW1tZWRpYXRlbHkgc2hvdmVkIGludG8gdGhlIGxvY2FsCisgICAgICAg
ICAgICAgICBhbGxvY2F0b3IuICovCisgICAgICAgICAgICByZXR1cm4gdmlldzsKKyAgICAgICAg
fQogCi0gICAgc2hhcmVkX2hhbmRsZSA9IHBhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3X2NvbW1p
dF9wYWdlX2lmX25lY2Vzc2FyeSgKLSAgICAgICAgc2hhcmVkX3ZpZXcsIGhlYXAsIHNoYXJlZF9w
YWdlX2RpcmVjdG9yeSwgcGFydGlhbCwgcGFnZV9jb25maWcpOworICAgICAgICBwYXNfbG9ja19s
b2NrX2NvbmRpdGlvbmFsbHkoJnNoYXJlZF92aWV3LT5jb21taXRfbG9jaywgaGVhcF9sb2NrX2hv
bGRfbW9kZSk7CiAKLSAgICBpZiAoIXNoYXJlZF9oYW5kbGUpIHsKLSAgICAgICAgLyogVGhpcyBt
ZWFucyBPT00gKi8KLSAgICAgICAgcGFzX2xvY2tfdW5sb2NrX2NvbmRpdGlvbmFsbHkoJnNoYXJl
ZF92aWV3LT5jb21taXRfbG9jaywgaGVhcF9sb2NrX2hvbGRfbW9kZSk7Ci0gICAgICAgIHJldHVy
biBOVUxMOwotICAgIH0KKyAgICAgICAgc2hhcmVkX2hhbmRsZSA9IHBhc19zZWdyZWdhdGVkX3No
YXJlZF92aWV3X2NvbW1pdF9wYWdlX2lmX25lY2Vzc2FyeSgKKyAgICAgICAgICAgIHNoYXJlZF92
aWV3LCBoZWFwLCBzaGFyZWRfcGFnZV9kaXJlY3RvcnksIHBhcnRpYWwsIHBhZ2VfY29uZmlnKTsK
KworICAgICAgICBpZiAoIXNoYXJlZF9oYW5kbGUpIHsKKyAgICAgICAgICAgIC8qIFRoaXMgbWVh
bnMgT09NICovCisgICAgICAgICAgICBwYXNfbG9ja191bmxvY2tfY29uZGl0aW9uYWxseSgmc2hh
cmVkX3ZpZXctPmNvbW1pdF9sb2NrLCBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKKyAgICAgICAgICAg
IHJldHVybiBOVUxMOworICAgICAgICB9CiAKLSAgICBpZiAoIXBhcnRpYWwtPmlzX2F0dGFjaGVk
X3RvX3NoYXJlZF9oYW5kbGUpIHsKLSAgICAgICAgdW5zaWduZWQqIGZ1bGxfYWxsb2NfYml0czsK
LSAgICAgICAgdW5zaWduZWQgYmVnaW5fd29yZF9pbmRleDsKLSAgICAgICAgdW5zaWduZWQgZW5k
X3dvcmRfaW5kZXg7Ci0gICAgICAgIHVuc2lnbmVkIHdvcmRfaW5kZXg7Ci0gICAgICAgIAotICAg
ICAgICBmdWxsX2FsbG9jX2JpdHMgPSBwYXNfY29tcGFjdF90YWdnZWRfdW5zaWduZWRfcHRyX2xv
YWRfbm9uX251bGwoJnBhcnRpYWwtPmFsbG9jX2JpdHMpOwotICAgICAgICAKLSAgICAgICAgYmVn
aW5fd29yZF9pbmRleCA9IHBhcnRpYWwtPmFsbG9jX2JpdHNfb2Zmc2V0OwotICAgICAgICBlbmRf
d29yZF9pbmRleCA9IGJlZ2luX3dvcmRfaW5kZXggKyBwYXJ0aWFsLT5hbGxvY19iaXRzX3NpemU7
Ci0gICAgICAgIAotICAgICAgICBpZiAocGFnZV9jb25maWcuc2hhcmluZ19zaGlmdCA9PSBQQVNf
QklUVkVDVE9SX1dPUkRfU0hJRlQpIHsKLSAgICAgICAgICAgIGZvciAod29yZF9pbmRleCA9IGJl
Z2luX3dvcmRfaW5kZXg7IHdvcmRfaW5kZXggPCBlbmRfd29yZF9pbmRleDsgKyt3b3JkX2luZGV4
KSB7Ci0gICAgICAgICAgICAgICAgaWYgKGZ1bGxfYWxsb2NfYml0c1t3b3JkX2luZGV4XSkgewot
ICAgICAgICAgICAgICAgICAgICBQQVNfQVNTRVJUKCFwYXNfY29tcGFjdF9hdG9taWNfc2VncmVn
YXRlZF9wYXJ0aWFsX3ZpZXdfcHRyX2xvYWQoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNoYXJlZF9oYW5kbGUtPnBhcnRpYWxfdmlld3MgKyB3b3JkX2luZGV4KSk7Ci0gICAg
ICAgICAgICAgICAgICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3BhcnRpYWxfdmll
d19wdHJfc3RvcmUoCi0gICAgICAgICAgICAgICAgICAgICAgICBzaGFyZWRfaGFuZGxlLT5wYXJ0
aWFsX3ZpZXdzICsgd29yZF9pbmRleCwgcGFydGlhbCk7CisgICAgICAgIGlmICghcGFydGlhbC0+
aXNfYXR0YWNoZWRfdG9fc2hhcmVkX2hhbmRsZSkgeworICAgICAgICAgICAgdW5zaWduZWQqIGZ1
bGxfYWxsb2NfYml0czsKKyAgICAgICAgICAgIHVuc2lnbmVkIGJlZ2luX3dvcmRfaW5kZXg7Cisg
ICAgICAgICAgICB1bnNpZ25lZCBlbmRfd29yZF9pbmRleDsKKyAgICAgICAgICAgIHVuc2lnbmVk
IHdvcmRfaW5kZXg7CisgICAgICAgIAorICAgICAgICAgICAgZnVsbF9hbGxvY19iaXRzID0gcGFz
X2NvbXBhY3RfdGFnZ2VkX3Vuc2lnbmVkX3B0cl9sb2FkX25vbl9udWxsKCZwYXJ0aWFsLT5hbGxv
Y19iaXRzKTsKKyAgICAgICAgCisgICAgICAgICAgICBiZWdpbl93b3JkX2luZGV4ID0gcGFydGlh
bC0+YWxsb2NfYml0c19vZmZzZXQ7CisgICAgICAgICAgICBlbmRfd29yZF9pbmRleCA9IGJlZ2lu
X3dvcmRfaW5kZXggKyBwYXJ0aWFsLT5hbGxvY19iaXRzX3NpemU7CisgICAgICAgIAorICAgICAg
ICAgICAgaWYgKHBhZ2VfY29uZmlnLnNoYXJpbmdfc2hpZnQgPT0gUEFTX0JJVFZFQ1RPUl9XT1JE
X1NISUZUKSB7CisgICAgICAgICAgICAgICAgZm9yICh3b3JkX2luZGV4ID0gYmVnaW5fd29yZF9p
bmRleDsgd29yZF9pbmRleCA8IGVuZF93b3JkX2luZGV4OyArK3dvcmRfaW5kZXgpIHsKKyAgICAg
ICAgICAgICAgICAgICAgaWYgKGZ1bGxfYWxsb2NfYml0c1t3b3JkX2luZGV4XSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgUEFTX0FTU0VSVCghcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0
ZWRfcGFydGlhbF92aWV3X3B0cl9sb2FkKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc2hhcmVkX2hhbmRsZS0+cGFydGlhbF92aWV3cyArIHdvcmRfaW5kZXgpKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3BhcnRp
YWxfdmlld19wdHJfc3RvcmUoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hhcmVkX2hh
bmRsZS0+cGFydGlhbF92aWV3cyArIHdvcmRfaW5kZXgsIHBhcnRpYWwpOworICAgICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgZm9yICh3b3JkX2luZGV4ID0gYmVnaW5fd29yZF9pbmRleDsgd29y
ZF9pbmRleCA8IGVuZF93b3JkX2luZGV4OyArK3dvcmRfaW5kZXgpIHsKLSAgICAgICAgICAgICAg
ICB1bnNpZ25lZCBmdWxsX2FsbG9jX3dvcmQ7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgICAgIGZvciAod29yZF9pbmRleCA9IGJlZ2luX3dvcmRfaW5kZXg7IHdvcmRfaW5kZXgg
PCBlbmRfd29yZF9pbmRleDsgKyt3b3JkX2luZGV4KSB7CisgICAgICAgICAgICAgICAgICAgIHVu
c2lnbmVkIGZ1bGxfYWxsb2Nfd29yZDsKICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAg
ICBmdWxsX2FsbG9jX3dvcmQgPSBmdWxsX2FsbG9jX2JpdHNbd29yZF9pbmRleF07Ci0gICAgICAg
ICAgICAgICAgaWYgKCFmdWxsX2FsbG9jX3dvcmQpCi0gICAgICAgICAgICAgICAgICAgIGNvbnRp
bnVlOworICAgICAgICAgICAgICAgICAgICBmdWxsX2FsbG9jX3dvcmQgPSBmdWxsX2FsbG9jX2Jp
dHNbd29yZF9pbmRleF07CisgICAgICAgICAgICAgICAgICAgIGlmICghZnVsbF9hbGxvY193b3Jk
KQorICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgCi0g
ICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X3RlbGxfc2hhcmVkX2hh
bmRsZV9mb3Jfd29yZF9nZW5lcmFsX2Nhc2UoCi0gICAgICAgICAgICAgICAgICAgIHBhcnRpYWws
IHNoYXJlZF9oYW5kbGUsIHdvcmRfaW5kZXgsIGZ1bGxfYWxsb2Nfd29yZCwgcGFnZV9jb25maWcu
c2hhcmluZ19zaGlmdCk7CisgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhcnRp
YWxfdmlld190ZWxsX3NoYXJlZF9oYW5kbGVfZm9yX3dvcmRfZ2VuZXJhbF9jYXNlKAorICAgICAg
ICAgICAgICAgICAgICAgICAgcGFydGlhbCwgc2hhcmVkX2hhbmRsZSwgd29yZF9pbmRleCwgZnVs
bF9hbGxvY193b3JkLCBwYWdlX2NvbmZpZy5zaGFyaW5nX3NoaWZ0KTsKKyAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICB9Ci0gICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIHBhc19sb2Nr
X2xvY2soJnNoYXJlZF92aWV3LT5vd25lcnNoaXBfbG9jayk7Ci0gICAgICAgIHBhcnRpYWwtPmlz
X2F0dGFjaGVkX3RvX3NoYXJlZF9oYW5kbGUgPSB0cnVlOwotICAgICAgICBwYXNfbG9ja191bmxv
Y2soJnNoYXJlZF92aWV3LT5vd25lcnNoaXBfbG9jayk7Ci0gICAgfQorICAgICAgICAgICAgcGFz
X2xvY2tfbG9jaygmc2hhcmVkX3ZpZXctPm93bmVyc2hpcF9sb2NrKTsKKyAgICAgICAgICAgIHBh
cnRpYWwtPmlzX2F0dGFjaGVkX3RvX3NoYXJlZF9oYW5kbGUgPSB0cnVlOworICAgICAgICAgICAg
cGFzX2xvY2tfdW5sb2NrKCZzaGFyZWRfdmlldy0+b3duZXJzaGlwX2xvY2spOworICAgICAgICB9
CiAKLSAgICBpZiAocGFnZV9jb25maWcuYmFzZS5wYWdlX3NpemUgPiBwYWdlX2NvbmZpZy5iYXNl
LmdyYW51bGVfc2l6ZSkgewotICAgICAgICAvKiBXZSBhbHdheXMgbWFuYWdlIHBhcnRpYWwgY29t
bWl0IG9mIG1lZGl1bSBwYWdlcyB1bmRlciB0aGUgY29tbWl0IGxvY2suIE90aGVyd2lzZSwKLSAg
ICAgICAgICAgbXVsdGlwbGUgcnVucyBvZiB0aGlzIGZ1bmN0aW9uIGNvdWxkIGludGVybGVhdmUg
aW4gd2VpcmQgd2F5cy4gKi8KLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZSogcGFnZTsKLSAg
ICAgICAgcGFzX2xvY2sqIGhlbGRfbG9jazsKLQotICAgICAgICBwYWdlID0gcGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9mb3JfYm91bmRhcnkoc2hhcmVkX2hhbmRsZS0+cGFnZV9ib3VuZGFyeSwgcGFnZV9j
b25maWcpOwotICAgICAgICBoZWxkX2xvY2sgPSBOVUxMOwotICAgICAgICAKLSAgICAgICAgcGFz
X3NlZ3JlZ2F0ZWRfcGFnZV9zd2l0Y2hfbG9jayhwYWdlLCAmaGVsZF9sb2NrLCBwYWdlX2NvbmZp
Zyk7Ci0gICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29tbWl0X2Z1bGx5KAotICAgICAgICAg
ICAgcGFnZSwgJmhlbGRfbG9jaywgcGFzX2NvbW1pdF9mdWxseV9ob2xkaW5nX3BhZ2VfYW5kX2Nv
bW1pdF9sb2Nrcyk7Ci0gICAgICAgIHBhc19sb2NrX3N3aXRjaCgmaGVsZF9sb2NrLCBOVUxMKTsK
LSAgICB9CisgICAgICAgIGlmIChwYWdlX2NvbmZpZy5iYXNlLnBhZ2Vfc2l6ZSA+IHBhZ2VfY29u
ZmlnLmJhc2UuZ3JhbnVsZV9zaXplKSB7CisgICAgICAgICAgICAvKiBXZSBhbHdheXMgbWFuYWdl
IHBhcnRpYWwgY29tbWl0IG9mIG1lZGl1bSBwYWdlcyB1bmRlciB0aGUgY29tbWl0IGxvY2suIE90
aGVyd2lzZSwKKyAgICAgICAgICAgICAgIG11bHRpcGxlIHJ1bnMgb2YgdGhpcyBmdW5jdGlvbiBj
b3VsZCBpbnRlcmxlYXZlIGluIHdlaXJkIHdheXMuICovCisgICAgICAgICAgICBwYXNfc2VncmVn
YXRlZF9wYWdlKiBwYWdlOworICAgICAgICAgICAgcGFzX2xvY2sqIGhlbGRfbG9jazsKKworICAg
ICAgICAgICAgcGFnZSA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfZm9yX2JvdW5kYXJ5KHNoYXJlZF9o
YW5kbGUtPnBhZ2VfYm91bmRhcnksIHBhZ2VfY29uZmlnKTsKKyAgICAgICAgICAgIGhlbGRfbG9j
ayA9IE5VTEw7CisgICAgICAgIAorICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9zd2l0
Y2hfbG9jayhwYWdlLCAmaGVsZF9sb2NrLCBwYWdlX2NvbmZpZyk7CisgICAgICAgICAgICBwYXNf
c2VncmVnYXRlZF9wYWdlX2NvbW1pdF9mdWxseSgKKyAgICAgICAgICAgICAgICBwYWdlLCAmaGVs
ZF9sb2NrLCBwYXNfY29tbWl0X2Z1bGx5X2hvbGRpbmdfcGFnZV9hbmRfY29tbWl0X2xvY2tzKTsK
KyAgICAgICAgICAgIHBhc19sb2NrX3N3aXRjaCgmaGVsZF9sb2NrLCBOVUxMKTsKKyAgICAgICAg
fQogCi0gICAgLyogQXQgdGhpcyBwb2ludCB0aGUgc2hhcmVkIGhhbmRsZSBrbm93cyBhYm91dCB0
aGlzIHBhcnRpYWwgdmlldyBhbmQgdGhpcyBwYXJ0aWFsIHZpZXcKLSAgICAgICBpcyBpbmVsaWdp
YmxlLiBUaGlzIGFjdHMgYXMgYSBob2xkIG9uIHRoZSBzaGFyZWQgdmlldzogZXZlbiBpZiB3ZSBy
ZWxlYXNlIHRoZSBjb21taXQKLSAgICAgICBsb2NrLCB0aGF0IHNoYXJlZCB2aWV3IGNhbm5vdCBi
ZSBkZWNvbW1pdHRlZCwgZXZlbiB0aG91Z2ggaXQgbWF5IGJlIGVtcHR5LiAqLworICAgICAgICAv
KiBBdCB0aGlzIHBvaW50IHRoZSBzaGFyZWQgaGFuZGxlIGtub3dzIGFib3V0IHRoaXMgcGFydGlh
bCB2aWV3IGFuZCB0aGlzIHBhcnRpYWwgdmlldworICAgICAgICAgICBpcyBpbmVsaWdpYmxlLiBU
aGlzIGFjdHMgYXMgYSBob2xkIG9uIHRoZSBzaGFyZWQgdmlldzogZXZlbiBpZiB3ZSByZWxlYXNl
IHRoZSBjb21taXQKKyAgICAgICAgICAgbG9jaywgdGhhdCBzaGFyZWQgdmlldyBjYW5ub3QgYmUg
ZGVjb21taXR0ZWQsIGV2ZW4gdGhvdWdoIGl0IG1heSBiZSBlbXB0eS4gKi8KIAotICAgIHBhc19s
b2NrX3VubG9ja19jb25kaXRpb25hbGx5KCZzaGFyZWRfdmlldy0+Y29tbWl0X2xvY2ssIGhlYXBf
bG9ja19ob2xkX21vZGUpOworICAgICAgICBwYXNfbG9ja191bmxvY2tfY29uZGl0aW9uYWxseSgm
c2hhcmVkX3ZpZXctPmNvbW1pdF9sb2NrLCBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKIAotICAgIHJl
dHVybiB2aWV3OworICAgICAgICByZXR1cm4gdmlldzsKKyAgICB9CisgICAgZGVmYXVsdDoKKyAg
ICAgICAgUEFTX0FTU0VSVCghIlNob3VsZCBub3QgYmUgcmVhY2hlZCIpOworICAgICAgICByZXR1
cm4gTlVMTDsKKyAgICB9CiB9CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkCkBAIC0z
OTQsMTMgKzMxNSw4IEBAIHBhc19zZWdyZWdhdGVkX3ZpZXdfZGlkX3N0b3BfYWxsb2NhdGluZygK
IHsKICAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CiAKLSAgICBwYXNfc2Vn
cmVnYXRlZF9leGNsdXNpdmVfdmlldyogZXhjbHVzaXZlOwotICAgIHBhc19zZWdyZWdhdGVkX2Rp
cmVjdG9yeSogb3duaW5nX2RpcmVjdG9yeTsKLSAgICB1bnNpZ25lZCBpbmRleF9pbl9vd25pbmc7
CiAgICAgYm9vbCBzaG91bGRfbm90aWZ5X2VsaWdpYmlsaXR5OwogICAgIGJvb2wgc2hvdWxkX25v
dGlmeV9lbXB0aW5lc3M7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7
Ci0gICAgdW5zaWduZWQgdmlld19pbmRleDsKIAogICAgIGlmICh2ZXJib3NlKQogICAgICAgICBw
YXNfbG9nKCJEaWQgc3RvcCBhbGxvY2F0aW5nIGluIHZpZXcgJXAsIHBhZ2UgJXAuXG4iLCB2aWV3
LCBwYWdlKTsKQEAgLTQwOCwzMSArMzI0LDM0IEBAIHBhc19zZWdyZWdhdGVkX3ZpZXdfZGlkX3N0
b3BfYWxsb2NhdGluZygKICAgICBzd2l0Y2ggKHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2tpbmQo
dmlldykpIHsKICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2tpbmQ6CiAg
ICAgY2FzZSBwYXNfc2VncmVnYXRlZF9pbmVsaWdpYmxlX2V4Y2x1c2l2ZV92aWV3X2tpbmQ6IHsK
KyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcqIGV4Y2x1c2l2ZTsKKyAgICAg
ICAgCiAgICAgICAgIGlmICh2ZXJib3NlKQogICAgICAgICAgICAgcGFzX2xvZygiSXQncyBleGNs
dXNpdmUuXG4iKTsKICAgICAgICAgZXhjbHVzaXZlID0gKHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2
ZV92aWV3KilwYXNfc2VncmVnYXRlZF92aWV3X2dldF9wdHIodmlldyk7Ci0gICAgICAgIG93bmlu
Z19kaXJlY3RvcnkgPQotICAgICAgICAgICAgJnBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKCZleGNsdXNpdmUtPmRpcmVjdG9yeSkt
PmJhc2U7Ci0gICAgICAgIGluZGV4X2luX293bmluZyA9IGV4Y2x1c2l2ZS0+aW5kZXg7Ci0gICAg
ICAgIGJyZWFrOwotICAgIH0KLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlld19r
aW5kOgotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfaW5lbGlnaWJsZV9iaWFzaW5nX3ZpZXdfa2lu
ZDogewotICAgICAgICBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcqIGJpYXNpbmc7Ci0gICAg
ICAgIGlmICh2ZXJib3NlKQotICAgICAgICAgICAgcGFzX2xvZygiSXQncyBiaWFzaW5nLlxuIik7
Ci0gICAgICAgIGJpYXNpbmcgPSAocGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3KilwYXNfc2Vn
cmVnYXRlZF92aWV3X2dldF9wdHIodmlldyk7Ci0gICAgICAgIGV4Y2x1c2l2ZSA9IHBhc19jb21w
YWN0X2F0b21pY19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X3B0cl9sb2FkX25vbl9udWxsKCZi
aWFzaW5nLT5leGNsdXNpdmUpOwotICAgICAgICBvd25pbmdfZGlyZWN0b3J5ID0KLSAgICAgICAg
ICAgICZwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5X3B0cl9sb2FkX25v
bl9udWxsKCZiaWFzaW5nLT5kaXJlY3RvcnkpLT5iYXNlOwotICAgICAgICBpbmRleF9pbl9vd25p
bmcgPSBiaWFzaW5nLT5pbmRleDsKLSAgICAgICAgYnJlYWs7CisKKyAgICAgICAgc2hvdWxkX25v
dGlmeV9lbGlnaWJpbGl0eSA9IGZhbHNlOworICAgICAgICAKKyAgICAgICAgaWYgKHBhZ2UtPmVs
aWdpYmlsaXR5X25vdGlmaWNhdGlvbl9oYXNfYmVlbl9kZWZlcnJlZCkgeworICAgICAgICAgICAg
aWYgKHZlcmJvc2UpCisgICAgICAgICAgICAgICAgcGFzX2xvZygiRWxpZ2liaWxpdHkgbm90aWZp
Y2F0aW9uIGhhcyBiZWVuIGRlZmVycmVkLlxuIik7CisgICAgICAgICAgICBwYWdlLT5lbGlnaWJp
bGl0eV9ub3RpZmljYXRpb25faGFzX2JlZW5fZGVmZXJyZWQgPSBmYWxzZTsKKyAgICAgICAgICAg
IHNob3VsZF9ub3RpZnlfZWxpZ2liaWxpdHkgPSB0cnVlOworICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICAgICAgcGFzX2xvZygiTm8gZGVmZXJy
ZWQgZWxpZ2liaWxpdHkgbm90aWZpY2F0aW9uLlxuIik7CisgICAgICAgIH0KKyAgICAgICAgCisg
ICAgICAgIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2RpZF9zdG9wX2FsbG9jYXRpbmco
CisgICAgICAgICAgICBleGNsdXNpdmUsIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnlfcHRyX2xvYWRfbm9uX251bGwoJmV4Y2x1c2l2ZS0+ZGlyZWN0b3J5KSwKKyAgICAgICAg
ICAgIHBhZ2UsIHBhZ2VfY29uZmlnLCBzaG91bGRfbm90aWZ5X2VsaWdpYmlsaXR5KTsKKyAgICAg
ICAgcmV0dXJuOwogICAgIH0KICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld19r
aW5kOiB7CiAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlldyogcGFydGlhbF92aWV3
OwogICAgICAgICBwYXNfc2VncmVnYXRlZF9zaGFyZWRfdmlldyogc2hhcmVkX3ZpZXc7CiAgICAg
ICAgIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9oYW5kbGUqIHNoYXJlZF9oYW5kbGU7Ci0gICAgICAg
IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogc2l6ZV9kaXJlY3Rvcnk7Cisg
ICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBzaXplX2RpcmVjdG9yeTsKICAg
ICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBzaXplX2RpcmVjdG9yeV9iYXNlOwogICAg
ICAgICBwYXNfc2VncmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJlY3RvcnkqIHNoYXJlZF9wYWdlX2Rp
cmVjdG9yeTsKICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBzaGFyZWRfcGFnZV9k
aXJlY3RvcnlfYmFzZTsKQEAgLTQ0NSw3ICszNjQsNyBAQCBwYXNfc2VncmVnYXRlZF92aWV3X2Rp
ZF9zdG9wX2FsbG9jYXRpbmcoCiAgICAgICAgIAogICAgICAgICBzaGFyZWRfdmlldyA9IHBhc19j
b21wYWN0X3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXdfcHRyX2xvYWRfbm9uX251bGwoJnBhcnRpYWxf
dmlldy0+c2hhcmVkX3ZpZXcpOwogICAgICAgICBzaXplX2RpcmVjdG9yeSA9Ci0gICAgICAgICAg
ICBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9u
b25fbnVsbCgmcGFydGlhbF92aWV3LT5kaXJlY3RvcnkpOworICAgICAgICAgICAgcGFzX2NvbXBh
Y3Rfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgmcGFydGlhbF92
aWV3LT5kaXJlY3RvcnkpOwogICAgICAgICBzaXplX2RpcmVjdG9yeV9iYXNlID0gJnNpemVfZGly
ZWN0b3J5LT5iYXNlOwogICAgICAgICBzaGFyZWRfaGFuZGxlID0gcGFzX3Vud3JhcF9zaGFyZWRf
aGFuZGxlKHNoYXJlZF92aWV3LT5zaGFyZWRfaGFuZGxlX29yX3BhZ2VfYm91bmRhcnksCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZV9jb25maWcp
OwpAQCAtNTEyLDU0ICs0MzEsNiBAQCBwYXNfc2VncmVnYXRlZF92aWV3X2RpZF9zdG9wX2FsbG9j
YXRpbmcoCiAgICAgICAgIFBBU19BU1NFUlQoISJTaG91bGQgbm90IGJlIHJlYWNoZWQiKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KLQotICAgIGRpcmVjdG9yeSA9ICZwYXNfY29tcGFjdF9zZWdy
ZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZCgmZXhjbHVzaXZlLT5kaXJlY3Rv
cnkpLT5iYXNlOwotICAgIHZpZXdfaW5kZXggPSBleGNsdXNpdmUtPmluZGV4OwotCi0gICAgaWYg
KHZlcmJvc2UpCi0gICAgICAgIHBhc19sb2coIlN0b3BwaW5nIGFsbG9jYXRpb24gaW4gZXhjbHVz
aXZlICVwLyVwLlxuIiwgZXhjbHVzaXZlLCBwYWdlKTsKLQotICAgIGlmICghcGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9jb25maWdfaXNfdXRpbGl0eShwYWdlX2NvbmZpZykpCi0gICAgICAgIHBhc19sb2Nr
X3Rlc3RpbmdfYXNzZXJ0X2hlbGQocGFnZS0+bG9ja19wdHIpOwotICAgIFBBU19URVNUSU5HX0FT
U0VSVChwYWdlLT5pc19pbl91c2VfZm9yX2FsbG9jYXRpb24pOwotICAgIAotICAgIHNob3VsZF9u
b3RpZnlfZWxpZ2liaWxpdHkgPSBmYWxzZTsKLQotICAgIHNob3VsZF9ub3RpZnlfZW1wdGluZXNz
ID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9xdWFsaWZpZXNfZm9yX2RlY29tbWl0KAotICAgICAgICBw
YWdlLCBwYWdlX2NvbmZpZyk7Ci0KLSAgICBpZiAocGFnZS0+ZWxpZ2liaWxpdHlfbm90aWZpY2F0
aW9uX2hhc19iZWVuX2RlZmVycmVkKSB7Ci0gICAgICAgIGlmICh2ZXJib3NlKQotICAgICAgICAg
ICAgcGFzX2xvZygiRWxpZ2liaWxpdHkgbm90aWZpY2F0aW9uIGhhcyBiZWVuIGRlZmVycmVkLlxu
Iik7Ci0gICAgICAgIHBhZ2UtPmVsaWdpYmlsaXR5X25vdGlmaWNhdGlvbl9oYXNfYmVlbl9kZWZl
cnJlZCA9IGZhbHNlOwotICAgICAgICBzaG91bGRfbm90aWZ5X2VsaWdpYmlsaXR5ID0gdHJ1ZTsK
LSAgICB9IGVsc2UgewotICAgICAgICBpZiAodmVyYm9zZSkKLSAgICAgICAgICAgIHBhc19sb2co
Ik5vIGRlZmVycmVkIGVsaWdpYmlsaXR5IG5vdGlmaWNhdGlvbi5cbiIpOwotICAgIH0KLQotICAg
IHBhZ2UtPmlzX2luX3VzZV9mb3JfYWxsb2NhdGlvbiA9IGZhbHNlOwotICAgIAotICAgIGlmIChz
aG91bGRfbm90aWZ5X2VsaWdpYmlsaXR5KSB7Ci0gICAgICAgIGlmICh2ZXJib3NlKQotICAgICAg
ICAgICAgcGFzX2xvZygiVGVsbGluZyBkaXJlY3RvcnkgYWJvdXQgZGVmZXJyZWQgZWxpZ2liaWxp
dHkuXG4iKTsKLQotICAgICAgICAvKiBQYWdlIG11c3Qga25vdyB0aGF0IHdlIGFyZSBlbGlnaWJs
ZSBmaXJzdC4gKi8KLSAgICAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKHBhc19zZWdyZWdhdGVkX3Zp
ZXdfaXNfZWxpZ2libGVfa2luZChwYWdlLT5vd25lcikpOwotICAgICAgICAKLSAgICAgICAgcGFz
X3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbGlnaWJsZV9hdF9pbmRleCgK
LSAgICAgICAgICAgIG93bmluZ19kaXJlY3RvcnksCi0gICAgICAgICAgICBpbmRleF9pbl9vd25p
bmcpOwotICAgIH0KLQotICAgIC8qIEl0J3MgaW1wb3J0YW50IHRvIG5vdGlmeSBlbXB0aW5lc3Mg
bGFzdCwgc28gdGhhdCB3ZSBuZXZlciBmaW5kIG91dHNlbHZlcyBpbiBhIGNhc2Ugd2hlcmUgdGhl
Ci0gICAgICAgc2NhdmVuZ2VyIHRha2VzIHRoZSBlbXB0eSBiaXQsIGNhbm5vdCB0YWtlIHRoZSBl
bGlnaWJsZSBiaXQsIGFuZCB0aGlzIGNvZGUgaGFkIGFscmVhZHkgc2V0IHRoZQotICAgICAgIGVt
cHR5IGJpdCBidXQgbm90IHRoZSBlbGlnaWJsZSBiaXQuICovCi0gICAgaWYgKHNob3VsZF9ub3Rp
ZnlfZW1wdGluZXNzKSB7Ci0gICAgICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV92aWV3X2Rp
ZF9iZWNvbWVfZW1wdHlfYXRfaW5kZXgoCi0gICAgICAgICAgICBkaXJlY3RvcnksCi0gICAgICAg
ICAgICB2aWV3X2luZGV4KTsKLSAgICB9CiB9CiAKIFBBU19FTkRfRVhURVJOX0M7CkluZGV4OiBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF92aWV3X2lubGlu
ZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
c2VncmVnYXRlZF92aWV3X2lubGluZXMuaAkocmV2aXNpb24gMjc5OTY0KQorKysgU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfdmlld19pbmxpbmVzLmgJKG5v
bmV4aXN0ZW50KQpAQCAtMSw0NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAyMDIwLTIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2lmbmRlZiBQQVNfU0VHUkVHQVRFRF9WSUVXX0lOTElO
RVNfSAotI2RlZmluZSBQQVNfU0VHUkVHQVRFRF9WSUVXX0lOTElORVNfSAotCi0jaW5jbHVkZSAi
cGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3LmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRf
dmlldy5oIgotCi1QQVNfQkVHSU5fRVhURVJOX0M7Ci0KLXN0YXRpYyBpbmxpbmUgcGFzX3NlZ3Jl
Z2F0ZWRfZXhjbHVzaXZlX3ZpZXcqIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2V4Y2x1c2l2ZShw
YXNfc2VncmVnYXRlZF92aWV3IHZpZXcpCi17Ci0gICAgaWYgKHBhc19zZWdyZWdhdGVkX3ZpZXdf
aXNfc29tZV9leGNsdXNpdmUodmlldykpCi0gICAgICAgIHJldHVybiAocGFzX3NlZ3JlZ2F0ZWRf
ZXhjbHVzaXZlX3ZpZXcqKXBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3B0cih2aWV3KTsKLSAgICBy
ZXR1cm4gcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyX2xv
YWQoCi0gICAgICAgICYoKHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldyopcGFzX3NlZ3JlZ2F0
ZWRfdmlld19nZXRfcHRyKHZpZXcpKS0+ZXhjbHVzaXZlKTsKLX0KLQotUEFTX0VORF9FWFRFUk5f
QzsKLQotI2VuZGlmIC8qIFBBU19TRUdSRUdBVEVEX1ZJRVdfSU5MSU5FU19IICovCi0KSW5kZXg6
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3ZpZXdfa2lu
ZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19z
ZWdyZWdhdGVkX3ZpZXdfa2luZC5oCShyZXZpc2lvbiAyNzk5NjQpCisrKyBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF92aWV3X2tpbmQuaAkod29ya2luZyBj
b3B5KQpAQCAtMzIsMTkgKzMyLDEzIEBAIFBBU19CRUdJTl9FWFRFUk5fQzsKIAogZW51bSBwYXNf
c2VncmVnYXRlZF92aWV3X2tpbmQgewogICAgIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3
X2tpbmQsCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2tpbmQsIC8qIEl0J3Mgc3Bl
Y2lhbCB0aGF0IGV4Y2x1c2l2ZSBhbmQgYmlhc2luZyBjb21lIGZpcnN0LCBzZWUKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlld19raW5k
X2lzX2VsaWdpYmlsZSgpLCBiZWxvdy4gKi8KICAgICBwYXNfc2VncmVnYXRlZF9pbmVsaWdpYmxl
X2V4Y2x1c2l2ZV92aWV3X2tpbmQsIC8qIFJlYWxseSB0aGUgc2FtZSB0eXBlIGFzIGV4Y2x1c2l2
ZV92aWV3LCBidXQgdGhpcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbGV0cyB1cyB1c2UgdGhlIGtpbmQgYml0cyBvZiBhIHZpZXcgdG8gc2F5
IGlmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBlbGlnaWJpbGl0eSBoYXMgYmVlbiBub3RlZC4gKi8KLSAgICBwYXNfc2VncmVnYXRlZF9pbmVs
aWdpYmxlX2JpYXNpbmdfdmlld19raW5kLCAvKiBMaWtlIGluZWxpZ2libGVfZXhjbHVzaXZlLCBi
dXQgZm9yIGJpYXNpbmcuIEl0J3MKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzcGVjaWFsIHRoYXQgdGhpcyBpcyB3aGVyZSB0aGlzIGlzLCBzZWUK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNf
c2VncmVnYXRlZF92aWV3X2tpbmRfaXNfZXhjbHVzaXZlX2lzaCgpLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJlbG93LiAqLwogICAgIHBhc19z
ZWdyZWdhdGVkX3NoYXJlZF92aWV3X2tpbmQsCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX2hh
bmRsZV9raW5kLAogICAgIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld19raW5kLAotICAgIHBh
c19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV92aWV3X2tpbmQKKyAgICBwYXNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeV92aWV3X2tpbmQKIH07CiAKIHR5cGVkZWYgZW51bSBwYXNf
c2VncmVnYXRlZF92aWV3X2tpbmQgcGFzX3NlZ3JlZ2F0ZWRfdmlld19raW5kOwpAQCAtNTcsMTYg
KzUxLDEzIEBAIHN0YXRpYyBpbmxpbmUgY2hhciBwYXNfc2VncmVnYXRlZF92aWV3X2sKICAgICBj
YXNlIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2tpbmQ6CiAgICAgY2FzZSBwYXNfc2Vn
cmVnYXRlZF9pbmVsaWdpYmxlX2V4Y2x1c2l2ZV92aWV3X2tpbmQ6CiAgICAgICAgIHJldHVybiAn
RSc7Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXdfa2luZDoKLSAgICBjYXNl
IHBhc19zZWdyZWdhdGVkX2luZWxpZ2libGVfYmlhc2luZ192aWV3X2tpbmQ6Ci0gICAgICAgIHJl
dHVybiAnQic7CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9zaGFyZWRfdmlld19raW5kOgogICAg
ICAgICByZXR1cm4gJ1MnOwogICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX2hhbmRsZV9r
aW5kOgogICAgICAgICByZXR1cm4gJ0gnOwogICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlh
bF92aWV3X2tpbmQ6CiAgICAgICAgIHJldHVybiAnUCc7Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRl
ZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnlfdmlld19raW5kOgorICAgIGNhc2UgcGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3Rvcnlfdmlld19raW5kOgogICAgICAgICByZXR1cm4gJ1MnOwogICAgIH0K
ICAgICBQQVNfQVNTRVJUKCEiU2hvdWxkIG5vdCBiZSByZWFjaGVkIik7CkBAIC04MCwzOCArNzEs
MjIgQEAgc3RhdGljIGlubGluZSBjb25zdCBjaGFyKiBwYXNfc2VncmVnYXRlZAogICAgICAgICBy
ZXR1cm4gImV4Y2x1c2l2ZV92aWV3IjsKICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2luZWxpZ2li
bGVfZXhjbHVzaXZlX3ZpZXdfa2luZDoKICAgICAgICAgcmV0dXJuICJpbmVsaWdpYmxlX2V4Y2x1
c2l2ZV92aWV3IjsKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlld19raW5kOgot
ICAgICAgICByZXR1cm4gImJpYXNpbmdfdmlldyI7Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9p
bmVsaWdpYmxlX2JpYXNpbmdfdmlld19raW5kOgotICAgICAgICByZXR1cm4gImluZWxpZ2libGVf
Ymlhc2luZ192aWV3IjsKICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3X2tpbmQ6
CiAgICAgICAgIHJldHVybiAic2hhcmVkX3ZpZXciOwogICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRf
c2hhcmVkX2hhbmRsZV9raW5kOgogICAgICAgICByZXR1cm4gInNoYXJlZF9oYW5kbGUiOwogICAg
IGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X2tpbmQ6CiAgICAgICAgIHJldHVybiAi
cGFydGlhbF92aWV3IjsKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVj
dG9yeV92aWV3X2tpbmQ6Ci0gICAgICAgIHJldHVybiAiZ2xvYmFsX3NpemVfZGlyZWN0b3J5IjsK
KyAgICBjYXNlIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3ZpZXdfa2luZDoKKyAgICAg
ICAgcmV0dXJuICJzaXplX2RpcmVjdG9yeSI7CiAgICAgfQogICAgIFBBU19BU1NFUlQoISJTaG91
bGQgbm90IGJlIHJlYWNoZWQiKTsKICAgICByZXR1cm4gTlVMTDsKIH0KIAotc3RhdGljIGlubGlu
ZSBib29sIHBhc19zZWdyZWdhdGVkX3ZpZXdfa2luZF9pc19lbGlnaWJsZShwYXNfc2VncmVnYXRl
ZF92aWV3X2tpbmQga2luZCkKK3N0YXRpYyBpbmxpbmUgYm9vbCBwYXNfc2VncmVnYXRlZF92aWV3
X2tpbmRfaXNfc29tZV9leGNsdXNpdmUocGFzX3NlZ3JlZ2F0ZWRfdmlld19raW5kIGtpbmQpCiB7
Ci0gICAgcmV0dXJuIGtpbmQgPD0gcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2tpbmQ7Ci19
Ci0KLS8qIElzIHRoaXMgZWl0aGVyIGV4Y2x1c2l2ZSBvciBiaWFzaW5nPyAqLwotc3RhdGljIGlu
bGluZSBib29sIHBhc19zZWdyZWdhdGVkX3ZpZXdfa2luZF9pc19leGNsdXNpdmVfaXNoKHBhc19z
ZWdyZWdhdGVkX3ZpZXdfa2luZCBraW5kKQotewotICAgIHJldHVybiBraW5kIDw9IHBhc19zZWdy
ZWdhdGVkX2luZWxpZ2libGVfYmlhc2luZ192aWV3X2tpbmQ7Ci19Ci0KLXN0YXRpYyBpbmxpbmUg
Ym9vbCBwYXNfc2VncmVnYXRlZF92aWV3X2tpbmRfaXNfaW5lbGlnaWJsZShwYXNfc2VncmVnYXRl
ZF92aWV3X2tpbmQga2luZCkKLXsKLSAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfdmlld19raW5k
X2lzX2V4Y2x1c2l2ZV9pc2goa2luZCkKLSAgICAgICAgJiYgIXBhc19zZWdyZWdhdGVkX3ZpZXdf
a2luZF9pc19lbGlnaWJsZShraW5kKTsKKyAgICByZXR1cm4ga2luZCA8PSBwYXNfc2VncmVnYXRl
ZF9pbmVsaWdpYmxlX2V4Y2x1c2l2ZV92aWV3X2tpbmQ7CiB9CiAKIHN0YXRpYyBpbmxpbmUgYm9v
bCBwYXNfc2VncmVnYXRlZF92aWV3X2tpbmRfY2FuX2JlY29tZV9lbXB0eShwYXNfc2VncmVnYXRl
ZF92aWV3X2tpbmQga2luZCkKQEAgLTExOSwxNCArOTQsMTIgQEAgc3RhdGljIGlubGluZSBib29s
IHBhc19zZWdyZWdhdGVkX3ZpZXdfawogICAgIHN3aXRjaCAoa2luZCkgewogICAgIGNhc2UgcGFz
X3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfa2luZDoKICAgICBjYXNlIHBhc19zZWdyZWdhdGVk
X2luZWxpZ2libGVfZXhjbHVzaXZlX3ZpZXdfa2luZDoKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVk
X2JpYXNpbmdfdmlld19raW5kOgotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfaW5lbGlnaWJsZV9i
aWFzaW5nX3ZpZXdfa2luZDoKICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3X2tp
bmQ6CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlh
bF92aWV3X2tpbmQ6CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBjYXNlIHBhc19zZWdyZWdh
dGVkX3NoYXJlZF9oYW5kbGVfa2luZDoKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeV92aWV3X2tpbmQ6CisgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeV92aWV3X2tpbmQ6CiAgICAgICAgIFBBU19BU1NFUlQoISJTaG91bGQgbm90IGJlIHJl
YWNoZWQiKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KSW5kZXg6IFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zdGF0dXNfcmVwb3J0ZXIuYwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc3RhdHVzX3JlcG9ydGVyLmMJ
KHJldmlzaW9uIDI3OTk2NCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19zdGF0dXNfcmVwb3J0ZXIuYwkod29ya2luZyBjb3B5KQpAQCAtMzIsOSArMzIsNyBAQAogI2lu
Y2x1ZGUgInBhc19hbGxfaGVhcHMuaCIKICNpbmNsdWRlICJwYXNfYWxsX3NoYXJlZF9wYWdlX2Rp
cmVjdG9yaWVzLmgiCiAjaW5jbHVkZSAicGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl90YWJsZS5oIgot
I2luY2x1ZGUgInBhc19iaWFzaW5nX2RpcmVjdG9yeV9pbmxpbmVzLmgiCi0jaW5jbHVkZSAicGFz
X2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeS5oIgotI2luY2x1ZGUgInBhc19iaXRmaXRfZ2xvYmFs
X2RpcmVjdG9yeS5oIgorI2luY2x1ZGUgInBhc19iaXRmaXRfZGlyZWN0b3J5LmgiCiAjaW5jbHVk
ZSAicGFzX2JpdGZpdF9oZWFwLmgiCiAjaW5jbHVkZSAicGFzX2JpdGZpdF9zaXplX2NsYXNzLmgi
CiAjaW5jbHVkZSAicGFzX2JpdGZpdF92aWV3LmgiCkBAIC01MCw4ICs0OCw3IEBACiAjaW5jbHVk
ZSAicGFzX2xhcmdlX3V0aWxpdHlfZnJlZV9oZWFwLmgiCiAjaW5jbHVkZSAicGFzX2xvZy5oIgog
I2luY2x1ZGUgInBhc19wYWdlX3NoYXJpbmdfcG9vbC5oIgotI2luY2x1ZGUgInBhc19zZWdyZWdh
dGVkX2JpYXNpbmdfZGlyZWN0b3J5LmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5X2lubGluZXMuaCIKKyNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeV9pbmxpbmVzLmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfaGVhcC5oIgog
I2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeS5oIgogI2luY2x1
ZGUgInBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5LmgiCkBAIC0xMzgsMjQgKzEzNSw2IEBA
IHN0YXRpYyB2b2lkIHJlcG9ydF9iaXRmaXRfZGlyZWN0b3J5X2NvbnQKIAogICAgICAgICBtYXhf
ZnJlZSA9IHBhc19iaXRmaXRfZGlyZWN0b3J5X2dldF9tYXhfZnJlZShkaXJlY3RvcnksIGluZGV4
KTsKIAotICAgICAgICBzd2l0Y2ggKGRpcmVjdG9yeS0+ZGlyZWN0b3J5X2tpbmQpIHsKLSAgICAg
ICAgY2FzZSBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3Rvcnlfa2luZDogewotICAgICAgICAgICAg
cGFzX2JpdGZpdF92aWV3KiB2aWV3OwotICAgICAgICAgICAgCi0gICAgICAgICAgICB2aWV3ID0g
cGFzX2JpdGZpdF9kaXJlY3RvcnlfZ2V0X3ZpZXcoZGlyZWN0b3J5LCBpbmRleCk7Ci0gICAgICAg
ICAgICBQQVNfQVNTRVJUKHZpZXcpOwotCi0gICAgICAgICAgICBpZiAoIXBhc19jb21wYWN0X2F0
b21pY19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnlfcHRyX2lzX251bGwoJnZpZXctPmJpYXNpbmdf
ZGlyZWN0b3J5KSkgewotICAgICAgICAgICAgICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwg
ImIiKTsKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICB9Ci0KLSAgICAgICAgY2FzZSBwYXNfYml0Zml0X2JpYXNpbmdf
ZGlyZWN0b3J5X2tpbmQ6Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICAK
ICAgICAgICAgaWYgKG1heF9mcmVlID09IFBBU19CSVRGSVRfTUFYX0ZSRUVfRU1QVFkpCiAgICAg
ICAgICAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICJFIik7CiAgICAgICAgIGVsc2UKQEAg
LTE2NSw1NiArMTQ0LDE2IEBAIHN0YXRpYyB2b2lkIHJlcG9ydF9iaXRmaXRfZGlyZWN0b3J5X2Nv
bnQKICAgICAKICAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICIlcyAgRW1wdHkgKGJpdCk6
ICIsIHByZWZpeCk7CiAgICAgZm9yIChpbmRleCA9IDA7IGluZGV4IDwgcGFzX2JpdGZpdF9kaXJl
Y3Rvcnlfc2l6ZShkaXJlY3RvcnkpOyArK2luZGV4KSB7Ci0gICAgICAgIHN3aXRjaCAoZGlyZWN0
b3J5LT5kaXJlY3Rvcnlfa2luZCkgewotICAgICAgICBjYXNlIHBhc19iaXRmaXRfZ2xvYmFsX2Rp
cmVjdG9yeV9raW5kOiB7Ci0gICAgICAgICAgICBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3Rvcnkq
IGdsb2JhbF9kaXJlY3Rvcnk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGdsb2JhbF9kaXJl
Y3RvcnkgPSAocGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5KilkaXJlY3Rvcnk7Ci0gICAgICAg
ICAgICAgICAgCi0gICAgICAgICAgICBpZiAocGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X2dl
dF9lbXB0eV9iaXRfYXRfaW5kZXgoZ2xvYmFsX2RpcmVjdG9yeSwgaW5kZXgpKQotICAgICAgICAg
ICAgICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIngiKTsKLSAgICAgICAgICAgIGVsc2UK
LSAgICAgICAgICAgICAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICIgIik7Ci0gICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgfQotCi0gICAgICAgIGNhc2UgcGFzX2JpdGZpdF9iaWFzaW5n
X2RpcmVjdG9yeV9raW5kOiB7Ci0gICAgICAgICAgICBwYXNfYml0Zml0X3ZpZXcqIHZpZXc7Ci0g
ICAgICAgICAgICBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkqIGdsb2JhbF9kaXJlY3Rvcnk7
Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIHZpZXcgPSBwYXNfYml0Zml0X2RpcmVjdG9yeV9n
ZXRfdmlldyhkaXJlY3RvcnksIGluZGV4KTsKLSAgICAgICAgICAgIGlmICghdmlldykgewotICAg
ICAgICAgICAgICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIiAiKTsKLSAgICAgICAgICAg
ICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZ2xvYmFsX2RpcmVj
dG9yeSA9Ci0gICAgICAgICAgICAgICAgcGFzX2NvbXBhY3RfYml0Zml0X2dsb2JhbF9kaXJlY3Rv
cnlfcHRyX2xvYWRfbm9uX251bGwoJnZpZXctPmdsb2JhbF9kaXJlY3RvcnkpOwotCi0gICAgICAg
ICAgICBpZiAocGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X2dldF9lbXB0eV9iaXRfYXRfaW5k
ZXgoCi0gICAgICAgICAgICAgICAgICAgIGdsb2JhbF9kaXJlY3RvcnksIHZpZXctPmluZGV4X2lu
X2dsb2JhbCkpCi0gICAgICAgICAgICAgICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAieCIp
OwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0
cmVhbSwgIiAiKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9IH0KKyAgICAgICAgaWYg
KHBhc19iaXRmaXRfZGlyZWN0b3J5X2dldF9lbXB0eV9iaXRfYXRfaW5kZXgoZGlyZWN0b3J5LCBp
bmRleCkpCisgICAgICAgICAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICJ4Iik7CisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIiAiKTsKICAg
ICB9CiAgICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiXG4iKTsKICAgICAKLSAgICBzd2l0
Y2ggKGRpcmVjdG9yeS0+ZGlyZWN0b3J5X2tpbmQpIHsKLSAgICBjYXNlIHBhc19iaXRmaXRfZ2xv
YmFsX2RpcmVjdG9yeV9raW5kOiB7Ci0gICAgICAgIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9y
eSogZ2xvYmFsX2RpcmVjdG9yeTsKLSAgICAgICAgCi0gICAgICAgIGdsb2JhbF9kaXJlY3Rvcnkg
PSAocGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5KilkaXJlY3Rvcnk7Ci0gICAgICAgICAgICAg
ICAgCi0gICAgICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIiVzIExhc3QgRW1wdHkrMTog
IiwgcHJlZml4KTsKLSAgICAgICAgZHVtcF9hcnJvdyhzdHJlYW0sICh1aW50cHRyX3QpZ2xvYmFs
X2RpcmVjdG9yeS0+bGFzdF9lbXB0eV9wbHVzX29uZS52YWx1ZSk7Ci0gICAgICAgIHBhc19zdHJl
YW1fcHJpbnRmKHN0cmVhbSwgIlxuIik7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICBjYXNl
IHBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3Rvcnlfa2luZDoKLSAgICAgICAgYnJlYWs7Ci0gICAg
fQorICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIiVzIExhc3QgRW1wdHkrMTogIiwgcHJl
Zml4KTsKKyAgICBkdW1wX2Fycm93KHN0cmVhbSwgKHVpbnRwdHJfdClkaXJlY3RvcnktPmxhc3Rf
ZW1wdHlfcGx1c19vbmUudmFsdWUpOworICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIlxu
Iik7CiAKICAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICIlcyAgICBDb21taXR0ZWQ6ICIs
IHByZWZpeCk7CiAgICAgZm9yIChpbmRleCA9IDA7IGluZGV4IDwgcGFzX2JpdGZpdF9kaXJlY3Rv
cnlfc2l6ZShkaXJlY3RvcnkpOyArK2luZGV4KSB7CkBAIC0yNTQsNjggKzE5MywxNyBAQCBzdGF0
aWMgdm9pZCByZXBvcnRfYml0Zml0X2RpcmVjdG9yeV9jb250CiAgICAgcGFzX3N0cmVhbV9wcmlu
dGYoc3RyZWFtLCAiXG4iKTsKIH0KIAotdm9pZCBwYXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBfYml0
Zml0X2JpYXNpbmdfZGlyZWN0b3J5KAotICAgIHBhc19zdHJlYW0qIHN0cmVhbSwgcGFzX2JpdGZp
dF9iaWFzaW5nX2RpcmVjdG9yeSogZGlyZWN0b3J5KQordm9pZCBwYXNfc3RhdHVzX3JlcG9ydGVy
X2R1bXBfYml0Zml0X2RpcmVjdG9yeSgKKyAgICBwYXNfc3RyZWFtKiBzdHJlYW0sIHBhc19iaXRm
aXRfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCiB7Ci0gICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFt
LCAiICAgICAgICAgICAgICAgICVzIEJpYXNpbmcgRGlyICVwKCV1KTogIiwKLSAgICAgICAgICAg
ICAgICAgICAgICBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX3ZhcmlhbnRfZ2V0X2NhcGl0YWxpemVk
X3N0cmluZygKLSAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2JpdGZpdF9wYWdlX2NvbmZp
Z19raW5kX2dldF9jb25maWcoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rv
cnktPmJhc2UuY29uZmlnX2tpbmQpLT52YXJpYW50KSwKLSAgICAgICAgICAgICAgICAgICAgICBk
aXJlY3RvcnksCi0gICAgICAgICAgICAgICAgICAgICAgcGFzX2JpYXNpbmdfZGlyZWN0b3J5X21h
Z2F6aW5lX2luZGV4KCZkaXJlY3RvcnktPmJpYXNpbmdfYmFzZSkpOwotICAgIHBhc19oZWFwX3N1
bW1hcnlfZHVtcChwYXNfYml0Zml0X2RpcmVjdG9yeV9jb21wdXRlX3N1bW1hcnkoJmRpcmVjdG9y
eS0+YmFzZSksIHN0cmVhbSk7Ci0gICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiXG4iKTsK
LQotICAgIHJlcG9ydF9iaXRmaXRfZGlyZWN0b3J5X2NvbnRlbnRzKHN0cmVhbSwgJmRpcmVjdG9y
eS0+YmFzZSwgIiAgICAgICAgICAgICAgICAgICAgIik7Ci0KLSAgICBwYXNfc3RyZWFtX3ByaW50
ZihzdHJlYW0sICIgICAgICAgICAgICAgICAgICAgICBFbGlnaWJsZSBIV006ICIpOwotICAgIGR1
bXBfYXJyb3coc3RyZWFtLCAodWludHB0cl90KWRpcmVjdG9yeS0+Ymlhc2luZ19iYXNlLmVsaWdp
YmxlX2hpZ2hfd2F0ZXJtYXJrLnZhbHVlKTsKLSAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0s
ICJcbiIpOwotICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIiAgICAgICAgICAgICAgICAg
ICAgICBDdXJyZW50IEhXTTogIik7Ci0gICAgZHVtcF9hcnJvdyhzdHJlYW0sIGRpcmVjdG9yeS0+
Ymlhc2luZ19iYXNlLmN1cnJlbnRfaGlnaF93YXRlcm1hcmspOwotICAgIHBhc19zdHJlYW1fcHJp
bnRmKHN0cmVhbSwgIlxuIik7Ci0gICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiICAgICAg
ICAgICAgICAgICAgICAgUHJldmlvdXMgSFdNOiAiKTsKLSAgICBkdW1wX2Fycm93KHN0cmVhbSwg
ZGlyZWN0b3J5LT5iaWFzaW5nX2Jhc2UucHJldmlvdXNfaGlnaF93YXRlcm1hcmspOwotICAgIHBh
c19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIlxuIik7Ci19Ci0KLXZvaWQgcGFzX3N0YXR1c19yZXBv
cnRlcl9kdW1wX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5KAotICAgIHBhc19zdHJlYW0qIHN0cmVh
bSwgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCi17Ci0gICAgcGFzX3Bh
Z2Vfc2hhcmluZ19wb29sKiBiaWFzX3Bvb2w7Ci0gICAgCiAgICAgcGFzX3N0cmVhbV9wcmludGYo
c3RyZWFtLCAiICAgICAgICAgICAgJXMgR2xvYmFsIERpciAoJXApOiAiLAogICAgICAgICAgICAg
ICAgICAgICAgIHBhc19iaXRmaXRfcGFnZV9jb25maWdfdmFyaWFudF9nZXRfY2FwaXRhbGl6ZWRf
c3RyaW5nKAotICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfYml0Zml0X3BhZ2VfY29uZmln
X2tpbmRfZ2V0X2NvbmZpZygKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdG9y
eS0+YmFzZS5jb25maWdfa2luZCktPnZhcmlhbnQpLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmRfZ2V0X2NvbmZpZyhkaXJlY3RvcnktPmNvbmZp
Z19raW5kKS0+dmFyaWFudCksCiAgICAgICAgICAgICAgICAgICAgICAgZGlyZWN0b3J5KTsKLSAg
ICBwYXNfaGVhcF9zdW1tYXJ5X2R1bXAocGFzX2JpdGZpdF9kaXJlY3RvcnlfY29tcHV0ZV9zdW1t
YXJ5KCZkaXJlY3RvcnktPmJhc2UpLCBzdHJlYW0pOworICAgIHBhc19oZWFwX3N1bW1hcnlfZHVt
cChwYXNfYml0Zml0X2RpcmVjdG9yeV9jb21wdXRlX3N1bW1hcnkoZGlyZWN0b3J5KSwgc3RyZWFt
KTsKICAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICJcbiIpOwogCi0gICAgcmVwb3J0X2Jp
dGZpdF9kaXJlY3RvcnlfY29udGVudHMoc3RyZWFtLCAmZGlyZWN0b3J5LT5iYXNlLCAiICAgICAg
ICAgICAgICAgICIpOwotCi0gICAgYmlhc19wb29sID0gcGFzX2NvbXBhY3RfYXRvbWljX3BhZ2Vf
c2hhcmluZ19wb29sX3B0cl9sb2FkKCZkaXJlY3RvcnktPmJpYXNfc2hhcmluZ19wb29sKTsKLSAg
ICBpZiAoYmlhc19wb29sKSB7Ci0gICAgICAgIHNpemVfdCBpbmRleDsKLSAgICAgICAgCi0gICAg
ICAgIGZvciAoaW5kZXggPSAwOyBpbmRleCA8IHBhc19wYWdlX3NoYXJpbmdfcG9vbF9udW1fcGFy
dGljaXBhbnRzKGJpYXNfcG9vbCk7ICsraW5kZXgpIHsKLSAgICAgICAgICAgIHBhc19wYWdlX3No
YXJpbmdfcGFydGljaXBhbnQgcGFydGljaXBhbnQ7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAg
IHBhc19mZW5jZV9hZnRlcl9sb2FkKCk7IC8qIE1ha2Ugc3VyZSB0aGF0IHRoZSBzaXplIGlzIHdo
YXQgdGhlIHRoaW5nIHNheXMgaXQgaXMuICovCi0gICAgICAgICAgICAKLSAgICAgICAgICAgIHBh
cnRpY2lwYW50ID0gcGFzX3BhZ2Vfc2hhcmluZ19wb29sX2dldF9wYXJ0aWNpcGFudChiaWFzX3Bv
b2wsIGluZGV4KTsKLSAgICAgICAgICAgIGlmICghcGFydGljaXBhbnQpCi0gICAgICAgICAgICAg
ICAgY29udGludWU7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIFBBU19BU1NFUlQocGFzX3Bh
Z2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9nZXRfa2luZChwYXJ0aWNpcGFudCkKLSAgICAgICAgICAg
ICAgICAgICAgICAgPT0gcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9iaWFzaW5nX2RpcmVj
dG9yeSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIHBhc19zdGF0dXNfcmVwb3J0ZXJfZHVt
cF9iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkoCi0gICAgICAgICAgICAgICAgc3RyZWFtLAotICAg
ICAgICAgICAgICAgIHBhc191bndyYXBfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5KAotICAgICAg
ICAgICAgICAgICAgICBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2dldF9wdHIocGFydGlj
aXBhbnQpKSk7Ci0gICAgICAgIH0KLSAgICB9CisgICAgcmVwb3J0X2JpdGZpdF9kaXJlY3Rvcnlf
Y29udGVudHMoc3RyZWFtLCBkaXJlY3RvcnksICIgICAgICAgICAgICAgICAgIik7CiB9CiAKIHN0
YXRpYyB2b2lkIHJlcG9ydF9zZWdyZWdhdGVkX2RpcmVjdG9yeV9jb250ZW50cygKQEAgLTMzMiwx
MSArMjIwLDYgQEAgc3RhdGljIHZvaWQgcmVwb3J0X3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5XwogICAg
ICAgICAKICAgICAgICAgdmlldyA9IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9nZXQoZGlyZWN0
b3J5LCBpbmRleCk7CiAKLSAgICAgICAgaWYgKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfYmlhc2Vk
X2V4Y2x1c2l2ZSh2aWV3KSkgewotICAgICAgICAgICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFt
LCAiYiIpOwotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0KLSAgICAgICAgCiAgICAg
ICAgIHBhc19zdHJlYW1fcHJpbnRmKAogICAgICAgICAgICAgc3RyZWFtLCAiJWMiLAogICAgICAg
ICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlld19raW5kX2dldF9jaGFyYWN0ZXJfY29kZSgKQEAgLTQw
Myw2MCArMjg2LDIzIEBAIHN0YXRpYyB2b2lkIHJlcG9ydF9zZWdyZWdhdGVkX2RpcmVjdG9yeV8K
ICAgICB9CiAgICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiXG4iKTsKIAotICAgIHBhc19z
dHJlYW1fcHJpbnRmKHN0cmVhbSwgIiVzICAgICAgVGFibGVkOiAiLCBwcmVmaXgpOworICAgIHBh
c19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIiVzIEZpcnN0IEVsZ2JsOiAiLCBwcmVmaXgpOworICAg
IGR1bXBfYXJyb3coc3RyZWFtLCAodWludHB0cl90KXBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9n
ZXRfZmlyc3RfZWxpZ2libGUoZGlyZWN0b3J5KS52YWx1ZSk7CisgICAgcGFzX3N0cmVhbV9wcmlu
dGYoc3RyZWFtLCAiXG4iKTsKKworICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIiVzICAg
ICAgIEVtcHR5OiAiLCBwcmVmaXgpOwogICAgIGZvciAoaW5kZXggPSAwOyBpbmRleCA8IHBhc19z
ZWdyZWdhdGVkX2RpcmVjdG9yeV9zaXplKGRpcmVjdG9yeSk7ICsraW5kZXgpIHsKLSAgICAgICAg
aWYgKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc190YWJsZWQoZGlyZWN0b3J5LCBpbmRleCkp
CisgICAgICAgIGlmIChwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXNfZW1wdHkoZGlyZWN0b3J5
LCBpbmRleCkpCiAgICAgICAgICAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICJ4Iik7CiAg
ICAgICAgIGVsc2UKICAgICAgICAgICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIiAiKTsK
ICAgICB9CiAgICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiXG4iKTsKIAotICAgIHBhc19z
dHJlYW1fcHJpbnRmKHN0cmVhbSwgIiVzICBGaXJzdCBFJn5UOiAiLCBwcmVmaXgpOwotICAgIGR1
bXBfYXJyb3coc3RyZWFtLCAodWludHB0cl90KXBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9nZXRf
Zmlyc3RfZWxpZ2libGUoCi0gICAgICAgICAgICAgICAgICAgZGlyZWN0b3J5LCBwYXNfc2VncmVn
YXRlZF9kaXJlY3RvcnlfZmlyc3RfZWxpZ2libGVfYnV0X25vdF90YWJsZWRfa2luZCkudmFsdWUp
OwotICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIlxuIik7Ci0KLSAgICBwYXNfc3RyZWFt
X3ByaW50ZihzdHJlYW0sICIlcyAgIEZpcnN0IEUmVDogIiwgcHJlZml4KTsKLSAgICBkdW1wX2Fy
cm93KHN0cmVhbSwgKHVpbnRwdHJfdClwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZ2V0X2ZpcnN0
X2VsaWdpYmxlKAotICAgICAgICAgICAgICAgICAgIGRpcmVjdG9yeSwgcGFzX3NlZ3JlZ2F0ZWRf
ZGlyZWN0b3J5X2ZpcnN0X2VsaWdpYmxlX2FuZF90YWJsZWRfa2luZCkudmFsdWUpOworICAgIHBh
c19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIiVzIExhc3QgRW1wdCsxOiAiLCBwcmVmaXgpOworICAg
IGR1bXBfYXJyb3coc3RyZWFtLCAodWludHB0cl90KXBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9n
ZXRfbGFzdF9lbXB0eV9wbHVzX29uZShkaXJlY3RvcnkpLnZhbHVlKTsKICAgICBwYXNfc3RyZWFt
X3ByaW50ZihzdHJlYW0sICJcbiIpOwogCi0gICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAi
JXMgICAgICAgRW1wdHk6ICIsIHByZWZpeCk7Ci0gICAgZm9yIChpbmRleCA9IDA7IGluZGV4IDwg
cGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3NpemUoZGlyZWN0b3J5KTsgKytpbmRleCkgewotICAg
ICAgICBzd2l0Y2ggKGRpcmVjdG9yeS0+ZGlyZWN0b3J5X2tpbmQpIHsKLSAgICAgICAgY2FzZSBw
YXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnlfa2luZDoKLSAgICAgICAgY2FzZSBw
YXNfc2VncmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJlY3Rvcnlfa2luZDoKLSAgICAgICAgICAgIGlm
IChwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXNfZW1wdHkoZGlyZWN0b3J5LCBpbmRleCkpCi0g
ICAgICAgICAgICAgICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAieCIpOwotICAgICAgICAg
ICAgZWxzZQotICAgICAgICAgICAgICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIiAiKTsK
LSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2lu
Z19kaXJlY3Rvcnlfa2luZDogewotICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3
OwotICAgICAgICAgICAgdmlldyA9IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9nZXQoZGlyZWN0
b3J5LCBpbmRleCk7Ci0gICAgICAgICAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19lbXB0
eSh2aWV3KSkKLSAgICAgICAgICAgICAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICJ4Iik7
Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgcGFzX3N0cmVhbV9wcmludGYoc3Ry
ZWFtLCAiICIpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0gfQotICAgIH0KLSAgICBw
YXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICJcbiIpOwotCi0gICAgc3dpdGNoIChkaXJlY3Rvcnkt
PmRpcmVjdG9yeV9raW5kKSB7Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9k
aXJlY3Rvcnlfa2luZDoKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVj
dG9yeV9raW5kOgotICAgICAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICIlcyAgICBMYXN0
IEUrMTogIiwgcHJlZml4KTsKLSAgICAgICAgZHVtcF9hcnJvdyhzdHJlYW0sICh1aW50cHRyX3Qp
cGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dldF9sYXN0X2VtcHR5X3BsdXNfb25lKAotICAgICAg
ICAgICAgICAgICAgICAgICBkaXJlY3RvcnkpLnZhbHVlKTsKLSAgICAgICAgcGFzX3N0cmVhbV9w
cmludGYoc3RyZWFtLCAiXG4iKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBwYXNfc2VncmVn
YXRlZF9iaWFzaW5nX2RpcmVjdG9yeV9raW5kOgotICAgICAgICBicmVhazsKLSAgICB9Ci0KICAg
ICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICIlcyAgIENvbW1pdHRlZDogIiwgcHJlZml4KTsK
ICAgICBmb3IgKGluZGV4ID0gMDsgaW5kZXggPCBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfc2l6
ZShkaXJlY3RvcnkpOyArK2luZGV4KSB7CiAgICAgICAgIGlmIChwYXNfc2VncmVnYXRlZF9kaXJl
Y3RvcnlfaXNfY29tbWl0dGVkKGRpcmVjdG9yeSwgaW5kZXgpKQpAQCAtNDY3LDQ5ICszMTMsMTMg
QEAgc3RhdGljIHZvaWQgcmVwb3J0X3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5XwogICAgIHBhc19zdHJl
YW1fcHJpbnRmKHN0cmVhbSwgIlxuIik7CiB9CiAKLXZvaWQgcGFzX3N0YXR1c19yZXBvcnRlcl9k
dW1wX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkoCi0gICAgcGFzX3N0cmVhbSogc3RyZWFt
LCBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeSogZGlyZWN0b3J5KQotewotICAgIHBh
c19oZWFwX3N1bW1hcnkgc3VtbWFyeTsKLSAgICAKLSAgICBwYXNfc3RyZWFtX3ByaW50ZigKLSAg
ICAgICAgc3RyZWFtLAotICAgICAgICAiICAgICAgICAgICAgICAgIEJpYXNpbmcgRGlyICVwKCV1
KTogTnVtIFZpZXdzOiAlenUiLAotICAgICAgICBkaXJlY3RvcnksCi0gICAgICAgIHBhc19zZWdy
ZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5X21hZ2F6aW5lX2luZGV4KGRpcmVjdG9yeSksCi0gICAg
ICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9zaXplKCZkaXJlY3RvcnktPmJhc2UpKTsKLQot
ICAgIGlmIChwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZGF0YV9wdHJfbG9hZCgmZGlyZWN0b3J5
LT5iYXNlLmRhdGEpKQotICAgICAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICIsIEhhcyBC
YXNlIERhdGEiKTsKLQotICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIiwgIik7Ci0KLSAg
ICBzdW1tYXJ5ID0gcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2NvbXB1dGVfc3VtbWFyeSgmZGly
ZWN0b3J5LT5iYXNlKTsKLSAgICBwYXNfaGVhcF9zdW1tYXJ5X2R1bXAoc3VtbWFyeSwgc3RyZWFt
KTsKLQotICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIlxuIik7Ci0KLSAgICByZXBvcnRf
c2VncmVnYXRlZF9kaXJlY3RvcnlfY29udGVudHMoc3RyZWFtLCAmZGlyZWN0b3J5LT5iYXNlLCAi
ICAgICAgICAgICAgICAgICAgICAiKTsKLQotICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwg
IiAgICAgICAgICAgICAgICAgICAgRWxpZ2libGUgSFdNOiAiKTsKLSAgICBkdW1wX2Fycm93KHN0
cmVhbSwgKHVpbnRwdHJfdClkaXJlY3RvcnktPmJpYXNpbmdfYmFzZS5lbGlnaWJsZV9oaWdoX3dh
dGVybWFyay52YWx1ZSk7Ci0gICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiXG4iKTsKLSAg
ICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICIgICAgICAgICAgICAgICAgICAgICBDdXJyZW50
IEhXTTogIik7Ci0gICAgZHVtcF9hcnJvdyhzdHJlYW0sIGRpcmVjdG9yeS0+Ymlhc2luZ19iYXNl
LmN1cnJlbnRfaGlnaF93YXRlcm1hcmspOwotICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwg
IlxuIik7Ci0gICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiICAgICAgICAgICAgICAgICAg
ICBQcmV2aW91cyBIV006ICIpOwotICAgIGR1bXBfYXJyb3coc3RyZWFtLCBkaXJlY3RvcnktPmJp
YXNpbmdfYmFzZS5wcmV2aW91c19oaWdoX3dhdGVybWFyayk7Ci0gICAgcGFzX3N0cmVhbV9wcmlu
dGYoc3RyZWFtLCAiXG4iKTsKLX0KLQotdm9pZCBwYXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBfc2Vn
cmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkoCi0gICAgcGFzX3N0cmVhbSogc3RyZWFtLCBw
YXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSkKK3ZvaWQgcGFz
X3N0YXR1c19yZXBvcnRlcl9kdW1wX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkoCisgICAgcGFz
X3N0cmVhbSogc3RyZWFtLCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5
KQogewogICAgIHBhc19oZWFwX3N1bW1hcnkgcGFydGlhbF9zdW1tYXJ5OwogICAgIHBhc19oZWFw
X3N1bW1hcnkgZXhjbHVzaXZlX3N1bW1hcnk7CiAgICAgc2l6ZV90IGluZGV4OwotICAgIHBhc19z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhKiBkYXRhOwotICAgIHBhc19wYWdl
X3NoYXJpbmdfcG9vbCogYmlhc19wb29sOworICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0
b3J5X2RhdGEqIGRhdGE7CiAgICAgCiAgICAgcGFzX3N0cmVhbV9wcmludGYoCiAgICAgICAgIHN0
cmVhbSwKQEAgLTUyMSwxNyArMzMxLDEyIEBAIHZvaWQgcGFzX3N0YXR1c19yZXBvcnRlcl9kdW1w
X3NlZ3JlZ2F0ZWQKIAogICAgIGlmIChwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZGF0YV9wdHJf
bG9hZCgmZGlyZWN0b3J5LT5iYXNlLmRhdGEpKQogICAgICAgICBwYXNfc3RyZWFtX3ByaW50Zihz
dHJlYW0sICIsIEhhcyBCYXNlIERhdGEiKTsKLSAgICBkYXRhID0gcGFzX3NlZ3JlZ2F0ZWRfZ2xv
YmFsX3NpemVfZGlyZWN0b3J5X2RhdGFfcHRyX2xvYWQoJmRpcmVjdG9yeS0+ZGF0YSk7Ci0gICAg
aWYgKGRhdGEpIHsKKyAgICBkYXRhID0gcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0
YV9wdHJfbG9hZCgmZGlyZWN0b3J5LT5kYXRhKTsKKyAgICBpZiAoZGF0YSkKICAgICAgICAgcGFz
X3N0cmVhbV9wcmludGYoc3RyZWFtLCAiLCBIYXMgRGF0YSIpOwotICAgICAgICBiaWFzX3Bvb2wg
PSBwYXNfY29tcGFjdF9hdG9taWNfcGFnZV9zaGFyaW5nX3Bvb2xfcHRyX2xvYWQoJmRhdGEtPmJp
YXNfc2hhcmluZ19wb29sKTsKLSAgICAgICAgaWYgKGJpYXNfcG9vbCkKLSAgICAgICAgICAgIHBh
c19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIiwgRXhwbG9kZWQiKTsKLSAgICB9IGVsc2UKLSAgICAg
ICAgYmlhc19wb29sID0gTlVMTDsKLSAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVf
ZGlyZWN0b3J5X2hhc190bGNfYWxsb2NhdG9yKGRpcmVjdG9yeSkpCisgICAgaWYgKHBhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5X2hhc190bGNfYWxsb2NhdG9yKGRpcmVjdG9yeSkpCiAgICAg
ICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIiwgSGFzIFRMQSIpOwotICAgIGlmIChwYXNf
c2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfYXJlX2V4Y2x1c2l2ZV92aWV3c19lbmFi
bGVkKGRpcmVjdG9yeSkpCisgICAgaWYgKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2Fy
ZV9leGNsdXNpdmVfdmlld3NfZW5hYmxlZChkaXJlY3RvcnkpKQogICAgICAgICBwYXNfc3RyZWFt
X3ByaW50ZihzdHJlYW0sICIsIEVuYWJsZWQgRXhjbHVzaXZlcyIpOwogICAgIHBhc19zdHJlYW1f
cHJpbnRmKHN0cmVhbSwgIlxuIik7CiAKQEAgLTU2OCwyNiArMzczLDYgQEAgdm9pZCBwYXNfc3Rh
dHVzX3JlcG9ydGVyX2R1bXBfc2VncmVnYXRlZAogICAgIH0KICAgICAKICAgICByZXBvcnRfc2Vn
cmVnYXRlZF9kaXJlY3RvcnlfY29udGVudHMoc3RyZWFtLCAmZGlyZWN0b3J5LT5iYXNlLCAiICAg
ICAgICAgICAgICAgICIpOwotCi0gICAgaWYgKGJpYXNfcG9vbCkgewotICAgICAgICBmb3IgKGlu
ZGV4ID0gMDsgaW5kZXggPCBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfbnVtX3BhcnRpY2lwYW50cyhi
aWFzX3Bvb2wpOyArK2luZGV4KSB7Ci0gICAgICAgICAgICBwYXNfcGFnZV9zaGFyaW5nX3BhcnRp
Y2lwYW50IHBhcnRpY2lwYW50OwotICAgICAgICAgICAgCi0gICAgICAgICAgICBwYXNfZmVuY2Vf
YWZ0ZXJfbG9hZCgpOyAvKiBNYWtlIHN1cmUgdGhhdCB0aGUgc2l6ZSBpcyB3aGF0IHRoZSB0aGlu
ZyBzYXlzIGl0IGlzLiAqLwotICAgICAgICAgICAgCi0gICAgICAgICAgICBwYXJ0aWNpcGFudCA9
IHBhc19wYWdlX3NoYXJpbmdfcG9vbF9nZXRfcGFydGljaXBhbnQoYmlhc19wb29sLCBpbmRleCk7
Ci0gICAgICAgICAgICBpZiAoIXBhcnRpY2lwYW50KQotICAgICAgICAgICAgICAgIGNvbnRpbnVl
OwotICAgICAgICAgICAgCi0gICAgICAgICAgICBQQVNfQVNTRVJUKHBhc19wYWdlX3NoYXJpbmdf
cGFydGljaXBhbnRfZ2V0X2tpbmQocGFydGljaXBhbnQpCi0gICAgICAgICAgICAgICAgICAgICAg
ID09IHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfYmlhc2luZ19kaXJlY3RvcnkpOwotICAg
ICAgICAgICAgCi0gICAgICAgICAgICBwYXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBfc2VncmVnYXRl
ZF9iaWFzaW5nX2RpcmVjdG9yeSgKLSAgICAgICAgICAgICAgICBzdHJlYW0sCi0gICAgICAgICAg
ICAgICAgcGFzX3Vud3JhcF9zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5KAotICAgICAgICAg
ICAgICAgICAgICBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2dldF9wdHIocGFydGljaXBh
bnQpKSk7Ci0gICAgICAgIH0KLSAgICB9CiB9CiAKIHZvaWQgcGFzX3N0YXR1c19yZXBvcnRlcl9k
dW1wX3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5KApAQCAtNzAyLDcgKzQ4Nyw3IEBA
IHZvaWQgcGFzX3N0YXR1c19yZXBvcnRlcl9kdW1wX2Jvb3RzdHJhcF8KIAogc3RhdGljIGJvb2wg
ZHVtcF9zZWdyZWdhdGVkX2hlYXBfZGlyZWN0b3J5X2NhbGxiYWNrKAogICAgIHBhc19zZWdyZWdh
dGVkX2hlYXAqIGhlYXAsCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
KiBkaXJlY3RvcnksCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9y
eSwKICAgICB2b2lkKiBhcmcpCiB7CiAgICAgcGFzX3N0cmVhbSogc3RyZWFtOwpAQCAtNzExLDcg
KzQ5Niw3IEBAIHN0YXRpYyBib29sIGR1bXBfc2VncmVnYXRlZF9oZWFwX2RpcmVjdG8KIAogICAg
IHN0cmVhbSA9IGFyZzsKIAotICAgIHBhc19zdGF0dXNfcmVwb3J0ZXJfZHVtcF9zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeShzdHJlYW0sIGRpcmVjdG9yeSk7CisgICAgcGFzX3N0YXR1
c19yZXBvcnRlcl9kdW1wX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnkoc3RyZWFtLCBkaXJlY3Rv
cnkpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC03MjUsNyArNTEwLDcgQEAgdm9pZCBwYXNf
c3RhdHVzX3JlcG9ydGVyX2R1bXBfYml0Zml0X2hlYQogICAgIGlmIChwYXNfc3RhdHVzX3JlcG9y
dGVyX2VuYWJsZWQgPj0gMykgewogICAgICAgICBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX3Zhcmlh
bnQgdmFyaWFudDsKICAgICAgICAgZm9yIChQQVNfRUFDSF9CSVRGSVRfUEFHRV9DT05GSUdfVkFS
SUFOVF9BU0NFTkRJTkcodmFyaWFudCkpIHsKLSAgICAgICAgICAgIHBhc19zdGF0dXNfcmVwb3J0
ZXJfZHVtcF9iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSgKKyAgICAgICAgICAgIHBhc19zdGF0dXNf
cmVwb3J0ZXJfZHVtcF9iaXRmaXRfZGlyZWN0b3J5KAogICAgICAgICAgICAgICAgIHN0cmVhbSwK
ICAgICAgICAgICAgICAgICBwYXNfYml0Zml0X2hlYXBfZ2V0X2RpcmVjdG9yeShoZWFwLCB2YXJp
YW50KSk7CiAgICAgICAgIH0KQEAgLTc1NSw3ICs1NDAsNyBAQCB2b2lkIHBhc19zdGF0dXNfcmVw
b3J0ZXJfZHVtcF9zZWdyZWdhdGVkCiAgICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiXG4i
KTsKIAogICAgIGlmIChwYXNfc3RhdHVzX3JlcG9ydGVyX2VuYWJsZWQgPj0gMykgewotICAgICAg
ICBwYXNfc2VncmVnYXRlZF9oZWFwX2Zvcl9lYWNoX2dsb2JhbF9zaXplX2RpcmVjdG9yeSgKKyAg
ICAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9mb3JfZWFjaF9zaXplX2RpcmVjdG9yeSgKICAgICAg
ICAgICAgIGhlYXAsIGR1bXBfc2VncmVnYXRlZF9oZWFwX2RpcmVjdG9yeV9jYWxsYmFjaywgc3Ry
ZWFtKTsKICAgICB9CiAgICAgCkBAIC05MDEsOSArNjg2LDkgQEAgc3RhdGljIHZvaWQgZHVtcF9o
aXN0b2dyYW0ocGFzX3N0cmVhbSogcwogICAgIH0KIH0KIAotc3RhdGljIGJvb2wgdG90YWxfZnJh
Z21lbnRhdGlvbl9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfY2FsbGJhY2soCitzdGF0aWMgYm9vbCB0
b3RhbF9mcmFnbWVudGF0aW9uX3NpemVfZGlyZWN0b3J5X2NhbGxiYWNrKAogICAgIHBhc19zZWdy
ZWdhdGVkX2hlYXAqIGhlYXAsCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0
b3J5KiBkaXJlY3RvcnksCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVj
dG9yeSwKICAgICB2b2lkKiBhcmcpCiB7CiAgICAgdG90YWxfZnJhZ21lbnRhdGlvbl9kYXRhKiBk
YXRhOwpAQCAtOTQzLDggKzcyOCw4IEBAIHN0YXRpYyBib29sIHRvdGFsX2ZyYWdtZW50YXRpb25f
aGVhcF9jYWwKIAogICAgIGRhdGEgPSBhcmc7CiAKLSAgICBwYXNfc2VncmVnYXRlZF9oZWFwX2Zv
cl9lYWNoX2dsb2JhbF9zaXplX2RpcmVjdG9yeSgKLSAgICAgICAgJmhlYXAtPnNlZ3JlZ2F0ZWRf
aGVhcCwgdG90YWxfZnJhZ21lbnRhdGlvbl9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfY2FsbGJhY2ss
IGRhdGEpOworICAgIHBhc19zZWdyZWdhdGVkX2hlYXBfZm9yX2VhY2hfc2l6ZV9kaXJlY3Rvcnko
CisgICAgICAgICZoZWFwLT5zZWdyZWdhdGVkX2hlYXAsIHRvdGFsX2ZyYWdtZW50YXRpb25fc2l6
ZV9kaXJlY3RvcnlfY2FsbGJhY2ssIGRhdGEpOwogCiAgICAgZGF0YS0+bGFyZ2VfZnJhZ21lbnRh
dGlvbiArPSBwYXNfaGVhcF9zdW1tYXJ5X2ZyYWdtZW50YXRpb24oCiAgICAgICAgIHBhc19sYXJn
ZV9oZWFwX2NvbXB1dGVfc3VtbWFyeSgmaGVhcC0+bGFyZ2VfaGVhcCkpOwpAQCAtOTczLDggKzc1
OCw4IEBAIHZvaWQgcGFzX3N0YXR1c19yZXBvcnRlcl9kdW1wX3RvdGFsX2ZyYWcKICAgICBwYXNf
YWxsX2hlYXBzX2Zvcl9lYWNoX2hlYXAodG90YWxfZnJhZ21lbnRhdGlvbl9oZWFwX2NhbGxiYWNr
LCAmZGF0YSk7CiAgICAgcGFzX2FsbF9zaGFyZWRfcGFnZV9kaXJlY3Rvcmllc19mb3JfZWFjaCgK
ICAgICAgICAgdG90YWxfZnJhZ21lbnRhdGlvbl9zaGFyZWRfcGFnZV9kaXJlY3RvcnlfY2FsbGJh
Y2ssICZkYXRhKTsKLSAgICBwYXNfc2VncmVnYXRlZF9oZWFwX2Zvcl9lYWNoX2dsb2JhbF9zaXpl
X2RpcmVjdG9yeSgKLSAgICAgICAgJnBhc191dGlsaXR5X3NlZ3JlZ2F0ZWRfaGVhcCwgdG90YWxf
ZnJhZ21lbnRhdGlvbl9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfY2FsbGJhY2ssICZkYXRhKTsKKyAg
ICBwYXNfc2VncmVnYXRlZF9oZWFwX2Zvcl9lYWNoX3NpemVfZGlyZWN0b3J5KAorICAgICAgICAm
cGFzX3V0aWxpdHlfc2VncmVnYXRlZF9oZWFwLCB0b3RhbF9mcmFnbWVudGF0aW9uX3NpemVfZGly
ZWN0b3J5X2NhbGxiYWNrLCAmZGF0YSk7CiAgICAgZGF0YS5sYXJnZV9mcmFnbWVudGF0aW9uICs9
IHBhc19oZWFwX3N1bW1hcnlfZnJhZ21lbnRhdGlvbigKICAgICAgICAgcGFzX2xhcmdlX3V0aWxp
dHlfZnJlZV9oZWFwX2NvbXB1dGVfc3VtbWFyeSgpKTsKICAgICBwYXNfc3RyZWFtX3ByaW50Zihz
dHJlYW0sICIgICAgU2VncmVnYXRlZCBFeGNsdXNpdmUgRnJhZ21lbnRhdGlvbiBIaXN0b2dyYW06
XG4iKTsKQEAgLTEwMDMsOSArNzg4LDkgQEAgdHlwZWRlZiBzdHJ1Y3QgewogICAgIHNpemVfdCBu
dW1faGVhcHM7CiB9IHRpZXJfdXBfcmF0ZV9kYXRhOwogCi1zdGF0aWMgYm9vbCB0aWVyX3VwX3Jh
dGVfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2NhbGxiYWNrKAorc3RhdGljIGJvb2wgdGllcl91cF9y
YXRlX3NpemVfZGlyZWN0b3J5X2NhbGxiYWNrKAogICAgIHBhc19zZWdyZWdhdGVkX2hlYXAqIGhl
YXAsCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rvcnks
CisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKICAgICB2b2lk
KiBhcmcpCiB7CiAgICAgdGllcl91cF9yYXRlX2RhdGEqIGRhdGE7CkBAIC0xMDE0LDExICs3OTks
MTEgQEAgc3RhdGljIGJvb2wgdGllcl91cF9yYXRlX2dsb2JhbF9zaXplX2RpcgogCiAgICAgZGF0
YSA9IGFyZzsKIAotICAgIGlmIChwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnlf
ZGF0YV9wdHJfbG9hZCgmZGlyZWN0b3J5LT5kYXRhKSkKKyAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJfbG9hZCgmZGlyZWN0b3J5LT5kYXRhKSkKICAgICAgICAg
ZGF0YS0+bnVtX2RpcmVjdG9yaWVzX3dpdGhfZGF0YSsrOwotICAgIGlmIChwYXNfc2VncmVnYXRl
ZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfaGFzX3RsY19hbGxvY2F0b3IoZGlyZWN0b3J5KSkKKyAg
ICBpZiAocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfaGFzX3RsY19hbGxvY2F0b3IoZGly
ZWN0b3J5KSkKICAgICAgICAgZGF0YS0+bnVtX2RpcmVjdG9yaWVzX3dpdGhfdGxhcysrOwotICAg
IGlmIChwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfYXJlX2V4Y2x1c2l2ZV92
aWV3c19lbmFibGVkKGRpcmVjdG9yeSkpCisgICAgaWYgKHBhc19zZWdyZWdhdGVkX3NpemVfZGly
ZWN0b3J5X2FyZV9leGNsdXNpdmVfdmlld3NfZW5hYmxlZChkaXJlY3RvcnkpKQogICAgICAgICBk
YXRhLT5udW1fZGlyZWN0b3JpZXNfd2l0aF9leGNsdXNpdmVzKys7CiAgICAgZGF0YS0+bnVtX2Rp
cmVjdG9yaWVzKys7CiAKQEAgLTEwMzEsOCArODE2LDggQEAgc3RhdGljIGJvb2wgdGllcl91cF9y
YXRlX2hlYXBfY2FsbGJhY2socAogCiAgICAgZGF0YSA9IGFyZzsKIAotICAgIHBhc19zZWdyZWdh
dGVkX2hlYXBfZm9yX2VhY2hfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KAotICAgICAgICAmaGVhcC0+
c2VncmVnYXRlZF9oZWFwLCB0aWVyX3VwX3JhdGVfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2NhbGxi
YWNrLCBkYXRhKTsKKyAgICBwYXNfc2VncmVnYXRlZF9oZWFwX2Zvcl9lYWNoX3NpemVfZGlyZWN0
b3J5KAorICAgICAgICAmaGVhcC0+c2VncmVnYXRlZF9oZWFwLCB0aWVyX3VwX3JhdGVfc2l6ZV9k
aXJlY3RvcnlfY2FsbGJhY2ssIGRhdGEpOwogCiAgICAgZGF0YS0+bnVtX2hlYXBzKys7CiAKQEAg
LTEwOTYsNyArODgxLDcgQEAgdm9pZCBwYXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBfYmFzZWxpbmVf
YQogICAgICAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICIgICAgICAgICAlenU6IGRpcmVjdG9yeSA9ICVwLCAlc1xuIiwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaW5kZXgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXcgPyBw
YXNfc2VncmVnYXRlZF92aWV3X2dldF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkodmlldykgOiBOVUxM
LAorICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3ID8gcGFzX3NlZ3JlZ2F0ZWRfdmlld19n
ZXRfc2l6ZV9kaXJlY3RvcnkodmlldykgOiBOVUxMLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICBhbGxvY2F0b3Jfc3RhdGUoYWxsb2NhdG9yKSk7CiAgICAgfQogfQpAQCAtMTEwOSw4ICs4OTQs
MTAgQEAgdm9pZCBwYXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBfdGhyZWFkX2xvYwogCiAgICAgcGFz
X3N0cmVhbV9wcmludGYoc3RyZWFtLCAiICAgIFRocmVhZCBMb2NhbCBDYWNoZSBMYXlvdXQ6XG4i
KTsKICAgICBmb3IgKFBBU19USFJFQURfTE9DQUxfQ0FDSEVfTEFZT1VUX0VBQ0hfQUxMT0NBVE9S
KGxheW91dF9ub2RlKSkgewotICAgICAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICIgICAg
ICAgICV1OiBkaXJlY3RvcnkgPSAlcFxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgcGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfYWxsb2NhdG9yX2luZGV4KGxheW91
dF9ub2RlKSwKKyAgICAgICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiICAgICAgICAldTog
JXMsIGRpcmVjdG9yeSA9ICVwXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9hbGxvY2F0b3JfaW5kZXhfZ2VuZXJpYyhs
YXlvdXRfbm9kZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxf
Y2FjaGVfbGF5b3V0X25vZGVfa2luZF9nZXRfc3RyaW5nKAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfa2luZChsYXlv
dXRfbm9kZSkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX2xheW91dF9ub2RlX2dldF9kaXJlY3RvcnkobGF5b3V0X25vZGUpKTsKICAgICB9CiAKQEAg
LTExNDAsNyArOTI3LDExIEBAIHZvaWQgcGFzX3N0YXR1c19yZXBvcnRlcl9kdW1wX3RocmVhZF9s
b2MKICAgICAgICAgICAgIHBhc19hbGxvY2F0b3JfaW5kZXggYWxsb2NhdG9yX2luZGV4OwogICAg
ICAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvciogYWxsb2NhdG9yOwogCi0gICAgICAgICAgICBh
bGxvY2F0b3JfaW5kZXggPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9h
bGxvY2F0b3JfaW5kZXgobGF5b3V0X25vZGUpOworICAgICAgICAgICAgaWYgKCFwYXNfdGhyZWFk
X2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX3JlcHJlc2VudHNfYWxsb2NhdG9yKGxheW91dF9ub2Rl
KSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgYWxsb2NhdG9yX2lu
ZGV4ID0KKyAgICAgICAgICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2Rl
X2dldF9hbGxvY2F0b3JfaW5kZXhfZm9yX2FsbG9jYXRvcihsYXlvdXRfbm9kZSk7CiAKICAgICAg
ICAgICAgIGlmIChhbGxvY2F0b3JfaW5kZXggPj0gY2FjaGUtPmFsbG9jYXRvcl9pbmRleF91cHBl
cl9ib3VuZCkKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTExNDksNyArOTQwLDcgQEAgdm9p
ZCBwYXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBfdGhyZWFkX2xvYwogICAgICAgICAgICAgcGFzX3N0
cmVhbV9wcmludGYoc3RyZWFtLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAg
ICAgICAgICV1OiBkaXJlY3RvcnkgPSAlcCwgJXNcbiIsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBhbGxvY2F0b3JfaW5kZXgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
YXNfc2VncmVnYXRlZF92aWV3X2dldF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkoYWxsb2NhdG9yLT52
aWV3KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3ZpZXdf
Z2V0X3NpemVfZGlyZWN0b3J5KGFsbG9jYXRvci0+dmlldyksCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBhbGxvY2F0b3Jfc3RhdGUoYWxsb2NhdG9yKSk7CiAgICAgICAgIH0KICAgICB9
CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc3RhdHVzX3JlcG9y
dGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X3N0YXR1c19yZXBvcnRlci5oCShyZXZpc2lvbiAyNzk5NjQpCisrKyBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfc3RhdHVzX3JlcG9ydGVyLmgJKHdvcmtpbmcgY29weSkKQEAg
LTMxLDM2ICszMSwyNiBAQAogCiBQQVNfQkVHSU5fRVhURVJOX0M7CiAKLXN0cnVjdCBwYXNfYml0
Zml0X2JpYXNpbmdfZGlyZWN0b3J5Owotc3RydWN0IHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9y
eTsKK3N0cnVjdCBwYXNfYml0Zml0X2RpcmVjdG9yeTsKIHN0cnVjdCBwYXNfbGFyZ2VfaGVhcDsK
LXN0cnVjdCBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeTsKIHN0cnVjdCBwYXNfc2Vn
cmVnYXRlZF9oZWFwOwogc3RydWN0IHBhc19zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9y
eTsKLXN0cnVjdCBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnk7CitzdHJ1Y3Qg
cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnk7CiBzdHJ1Y3QgcGFzX3N0cmVhbTsKLXR5cGVk
ZWYgc3RydWN0IHBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkgcGFzX2JpdGZpdF9iaWFzaW5n
X2RpcmVjdG9yeTsKLXR5cGVkZWYgc3RydWN0IHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSBw
YXNfYml0Zml0X2dsb2JhbF9kaXJlY3Rvcnk7Cit0eXBlZGVmIHN0cnVjdCBwYXNfYml0Zml0X2Rp
cmVjdG9yeSBwYXNfYml0Zml0X2RpcmVjdG9yeTsKIHR5cGVkZWYgc3RydWN0IHBhc19sYXJnZV9o
ZWFwIHBhc19sYXJnZV9oZWFwOwotdHlwZWRlZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2lu
Z19kaXJlY3RvcnkgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3Rvcnk7CiB0eXBlZGVmIHN0
cnVjdCBwYXNfc2VncmVnYXRlZF9oZWFwIHBhc19zZWdyZWdhdGVkX2hlYXA7CiB0eXBlZGVmIHN0
cnVjdCBwYXNfc2VncmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJlY3RvcnkgcGFzX3NlZ3JlZ2F0ZWRf
c2hhcmVkX3BhZ2VfZGlyZWN0b3J5OwotdHlwZWRlZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfZ2xv
YmFsX3NpemVfZGlyZWN0b3J5IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeTsK
K3R5cGVkZWYgc3RydWN0IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5IHBhc19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5OwogdHlwZWRlZiBzdHJ1Y3QgcGFzX3N0cmVhbSBwYXNfc3RyZWFt
OwogCiBQQVNfQVBJIGV4dGVybiB1bnNpZ25lZCBwYXNfc3RhdHVzX3JlcG9ydGVyX2VuYWJsZWQ7
CiBQQVNfQVBJIGV4dGVybiB1bnNpZ25lZCBwYXNfc3RhdHVzX3JlcG9ydGVyX3BlcmlvZF9pbl9t
aWNyb3NlY29uZHM7CiAKLVBBU19BUEkgdm9pZCBwYXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBfYml0
Zml0X2JpYXNpbmdfZGlyZWN0b3J5KAotICAgIHBhc19zdHJlYW0qIHN0cmVhbSwgcGFzX2JpdGZp
dF9iaWFzaW5nX2RpcmVjdG9yeSogZGlyZWN0b3J5KTsKLVBBU19BUEkgdm9pZCBwYXNfc3RhdHVz
X3JlcG9ydGVyX2R1bXBfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkoCi0gICAgcGFzX3N0cmVhbSog
c3RyZWFtLCBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7CiBQQVNfQVBJ
IHZvaWQgcGFzX3N0YXR1c19yZXBvcnRlcl9kdW1wX2JpdGZpdF9kaXJlY3RvcnkoCi0gICAgcGFz
X3N0cmVhbSogc3RyZWFtLCBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7
Ci1QQVNfQVBJIHZvaWQgcGFzX3N0YXR1c19yZXBvcnRlcl9kdW1wX3NlZ3JlZ2F0ZWRfYmlhc2lu
Z19kaXJlY3RvcnkoCi0gICAgcGFzX3N0cmVhbSogc3RyZWFtLCBwYXNfc2VncmVnYXRlZF9iaWFz
aW5nX2RpcmVjdG9yeSogZGlyZWN0b3J5KTsKLVBBU19BUEkgdm9pZCBwYXNfc3RhdHVzX3JlcG9y
dGVyX2R1bXBfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkoCi0gICAgcGFzX3N0cmVh
bSogc3RyZWFtLCBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9y
eSk7CisgICAgcGFzX3N0cmVhbSogc3RyZWFtLCBwYXNfYml0Zml0X2RpcmVjdG9yeSogZGlyZWN0
b3J5KTsKK1BBU19BUEkgdm9pZCBwYXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeSgKKyAgICBwYXNfc3RyZWFtKiBzdHJlYW0sIHBhc19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpOwogUEFTX0FQSSB2b2lkIHBhc19zdGF0dXNfcmVwb3J0
ZXJfZHVtcF9zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeSgKICAgICBwYXNfc3RyZWFt
KiBzdHJlYW0sIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeSogZGlyZWN0b3J5
KTsKIFBBU19BUEkgdm9pZCBwYXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBfbGFyZ2VfaGVhcChwYXNf
c3RyZWFtKiBzdHJlYW0sIHBhc19sYXJnZV9oZWFwKiBoZWFwKTsKSW5kZXg6IFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zdWJwYWdlX21hcC5jCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zdWJwYWdlX21hcC5jCShyZXZpc2lv
biAyNzk5NjQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc3VicGFn
ZV9tYXAuYwkobm9uZXhpc3RlbnQpCkBAIC0xLDEwMyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChjKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAot
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgInBhc19jb25maWcu
aCIKLQotI2lmIExJQlBBU19FTkFCTEVECi0KLSNpbmNsdWRlICJwYXNfc3VicGFnZV9tYXAuaCIK
LQotI2luY2x1ZGUgInBhc19oZWFwX2xvY2suaCIKLSNpbmNsdWRlICJwYXNfaW50ZXJuYWxfY29u
ZmlnLmgiCi0jaW5jbHVkZSAicGFzX2xhcmdlX3V0aWxpdHlfZnJlZV9oZWFwLmgiCi0KLXBhc19z
dWJwYWdlX21hcF9oYXNodGFibGUgcGFzX3N1YnBhZ2VfbWFwX2hhc2h0YWJsZV9pbnN0YW5jZTsK
LQotcGFzX3N1YnBhZ2VfbWFwX2VudHJ5KiBwYXNfc3VicGFnZV9tYXBfYWRkKHZvaWQqIGJhc2Us
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGJ5dGVz
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19jb21taXRf
bW9kZSBjb21taXRfbW9kZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwYXNfbG9ja19ob2xkX21vZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSkKLXsKLSAgICB2b2lk
KiBmdWxsX2Jhc2U7Ci0gICAgcGFzX3N1YnBhZ2VfbWFwX2hhc2h0YWJsZV9hZGRfcmVzdWx0IGFk
ZF9yZXN1bHQ7Ci0gICAgcGFzX3N1YnBhZ2VfbWFwX2VudHJ5KiBlbnRyeTsKLQotICAgIFBBU19B
U1NFUlQoYmFzZSk7Ci0gICAgZnVsbF9iYXNlID0gcGFzX3N1YnBhZ2VfbWFwX2dldF9mdWxsX2Jh
c2UoYmFzZSwgYnl0ZXMpOwotICAgIAotICAgIHBhc19oZWFwX2xvY2tfbG9ja19jb25kaXRpb25h
bGx5KGhlYXBfbG9ja19ob2xkX21vZGUpOwotCi0gICAgYWRkX3Jlc3VsdCA9IHBhc19zdWJwYWdl
X21hcF9oYXNodGFibGVfYWRkKAotICAgICAgICAmcGFzX3N1YnBhZ2VfbWFwX2hhc2h0YWJsZV9p
bnN0YW5jZSwgZnVsbF9iYXNlLCBOVUxMLAotICAgICAgICAmcGFzX2xhcmdlX3V0aWxpdHlfZnJl
ZV9oZWFwX2FsbG9jYXRpb25fY29uZmlnKTsKLSAgICBpZiAoYWRkX3Jlc3VsdC5pc19uZXdfZW50
cnkpIHsKLSAgICAgICAgcGFzX2NvbXBhY3Rfc3VicGFnZV9tYXBfZW50cnlfcHRyX3N0b3JlKAot
ICAgICAgICAgICAgYWRkX3Jlc3VsdC5lbnRyeSwgcGFzX3N1YnBhZ2VfbWFwX2VudHJ5X2NyZWF0
ZShmdWxsX2Jhc2UsIGNvbW1pdF9tb2RlKSk7Ci0gICAgfQotCi0gICAgZW50cnkgPSBwYXNfY29t
cGFjdF9zdWJwYWdlX21hcF9lbnRyeV9wdHJfbG9hZF9ub25fbnVsbChhZGRfcmVzdWx0LmVudHJ5
KTsKLSAgICBwYXNfc3VicGFnZV9tYXBfYXNzZXJ0X2NvbW1pdF9zdGF0ZShlbnRyeSwgYmFzZSwg
Ynl0ZXMsIGNvbW1pdF9tb2RlKTsKLSAgICAKLSAgICBwYXNfaGVhcF9sb2NrX3VubG9ja19jb25k
aXRpb25hbGx5KGhlYXBfbG9ja19ob2xkX21vZGUpOwotCi0gICAgcmV0dXJuIGVudHJ5OwotfQot
Ci1wYXNfc3VicGFnZV9tYXBfZW50cnkqIHBhc19zdWJwYWdlX21hcF9nZXQodm9pZCogYmFzZSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgYnl0ZXMs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2xvY2tfaG9s
ZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUpCi17Ci0gICAgcGFzX2NvbXBhY3Rfc3VicGFnZV9t
YXBfZW50cnlfcHRyKiBlbnRyeTsKLSAgICB2b2lkKiBmdWxsX2Jhc2U7Ci0KLSAgICBQQVNfQVNT
RVJUKGJhc2UpOwotCi0gICAgZnVsbF9iYXNlID0gcGFzX3N1YnBhZ2VfbWFwX2dldF9mdWxsX2Jh
c2UoYmFzZSwgYnl0ZXMpOwotCi0gICAgcGFzX2hlYXBfbG9ja19sb2NrX2NvbmRpdGlvbmFsbHko
aGVhcF9sb2NrX2hvbGRfbW9kZSk7Ci0KLSAgICBlbnRyeSA9IHBhc19zdWJwYWdlX21hcF9oYXNo
dGFibGVfZmluZCgmcGFzX3N1YnBhZ2VfbWFwX2hhc2h0YWJsZV9pbnN0YW5jZSwgZnVsbF9iYXNl
KTsKLQotICAgIHBhc19oZWFwX2xvY2tfdW5sb2NrX2NvbmRpdGlvbmFsbHkoaGVhcF9sb2NrX2hv
bGRfbW9kZSk7Ci0KLSAgICBQQVNfQVNTRVJUKGVudHJ5KTsKLSAgICByZXR1cm4gcGFzX2NvbXBh
Y3Rfc3VicGFnZV9tYXBfZW50cnlfcHRyX2xvYWRfbm9uX251bGwoZW50cnkpOwotfQotCi12b2lk
KiBwYXNfc3VicGFnZV9tYXBfZ2V0X2Z1bGxfYmFzZSh2b2lkKiBiYXNlLCBzaXplX3QgYnl0ZXMp
Ci17Ci0gICAgdm9pZCogZnVsbF9iYXNlOwotICAgIAotICAgIFBBU19BU1NFUlQoISgodWludHB0
cl90KWJhc2UgJiAoUEFTX1NVQlBBR0VfU0laRSAtIDEpKSk7Ci0gICAgUEFTX0FTU0VSVCghKCh1
aW50cHRyX3QpYnl0ZXMgJiAoUEFTX1NVQlBBR0VfU0laRSAtIDEpKSk7Ci0KLSAgICBmdWxsX2Jh
c2UgPSAodm9pZCopKCh1aW50cHRyX3QpYmFzZSAmIC1wYXNfcGFnZV9tYWxsb2NfYWxpZ25tZW50
KCkpOwotCi0gICAgUEFTX0FTU0VSVCgodWludHB0cl90KWJhc2UgKyBieXRlcyA8PSAodWludHB0
cl90KWZ1bGxfYmFzZSArIHBhc19wYWdlX21hbGxvY19hbGlnbm1lbnQoKSk7Ci0KLSAgICByZXR1
cm4gZnVsbF9iYXNlOwotfQotCi0jZW5kaWYgLyogTElCUEFTX0VOQUJMRUQgKi8KSW5kZXg6IFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zdWJwYWdlX21hcC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zdWJwYWdlX21hcC5o
CShyZXZpc2lvbiAyNzk5NjQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfc3VicGFnZV9tYXAuaAkobm9uZXhpc3RlbnQpCkBAIC0xLDEyMiArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChjKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0g
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5kZWYgUEFTX1NVQlBB
R0VfTUFQX0gKLSNkZWZpbmUgUEFTX1NVQlBBR0VfTUFQX0gKLQotI2luY2x1ZGUgInBhc19jb21w
YWN0X3N1YnBhZ2VfbWFwX2VudHJ5X3B0ci5oIgotI2luY2x1ZGUgInBhc19oYXNodGFibGUuaCIK
LSNpbmNsdWRlICJwYXNfc3VicGFnZV9tYXBfZW50cnkuaCIKLQotUEFTX0JFR0lOX0VYVEVSTl9D
OwotCi10eXBlZGVmIHBhc19jb21wYWN0X3N1YnBhZ2VfbWFwX2VudHJ5X3B0ciBwYXNfc3VicGFn
ZV9tYXBfaGFzaHRhYmxlX2VudHJ5OwotdHlwZWRlZiB2b2lkKiBwYXNfc3VicGFnZV9tYXBfaGFz
aHRhYmxlX2tleTsKLQotc3RhdGljIGlubGluZSBwYXNfc3VicGFnZV9tYXBfaGFzaHRhYmxlX2Vu
dHJ5IHBhc19zdWJwYWdlX21hcF9oYXNodGFibGVfZW50cnlfY3JlYXRlX2VtcHR5KHZvaWQpCi17
Ci0gICAgcGFzX3N1YnBhZ2VfbWFwX2hhc2h0YWJsZV9lbnRyeSByZXN1bHQgPSBQQVNfQ09NUEFD
VF9QVFJfSU5JVElBTElaRVI7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotc3RhdGljIGlubGlu
ZSBwYXNfc3VicGFnZV9tYXBfaGFzaHRhYmxlX2VudHJ5IHBhc19zdWJwYWdlX21hcF9oYXNodGFi
bGVfZW50cnlfY3JlYXRlX2RlbGV0ZWQodm9pZCkKLXsKLSAgICBwYXNfc3VicGFnZV9tYXBfaGFz
aHRhYmxlX2VudHJ5IHJlc3VsdCA9IFBBU19DT01QQUNUX1BUUl9JTklUSUFMSVpFUjsKLSAgICBQ
QVNfQVNTRVJUKCEiU2hvdWxkIG5ldmVyIGNyZWF0ZWQgYSBkZWxldGVkIHN1YnBhZ2UgbWFwIGhh
c2h0YWJsZSBlbnRyeSAoYW5kIGl0J3MgaW1wb3NzaWJsZSkiKTsKLSAgICByZXR1cm4gcmVzdWx0
OwotfQotCi1zdGF0aWMgaW5saW5lIGJvb2wKLXBhc19zdWJwYWdlX21hcF9oYXNodGFibGVfZW50
cnlfaXNfZW1wdHlfb3JfZGVsZXRlZChwYXNfc3VicGFnZV9tYXBfaGFzaHRhYmxlX2VudHJ5IGVu
dHJ5KQotewotICAgIHJldHVybiBwYXNfY29tcGFjdF9zdWJwYWdlX21hcF9lbnRyeV9wdHJfaXNf
bnVsbCgmZW50cnkpOwotfQotCi1zdGF0aWMgaW5saW5lIGJvb2wKLXBhc19zdWJwYWdlX21hcF9o
YXNodGFibGVfZW50cnlfaXNfZW1wdHkocGFzX3N1YnBhZ2VfbWFwX2hhc2h0YWJsZV9lbnRyeSBl
bnRyeSkKLXsKLSAgICByZXR1cm4gcGFzX2NvbXBhY3Rfc3VicGFnZV9tYXBfZW50cnlfcHRyX2lz
X251bGwoJmVudHJ5KTsKLX0KLQotc3RhdGljIGlubGluZSBib29sCi1wYXNfc3VicGFnZV9tYXBf
aGFzaHRhYmxlX2VudHJ5X2lzX2RlbGV0ZWQocGFzX3N1YnBhZ2VfbWFwX2hhc2h0YWJsZV9lbnRy
eSBlbnRyeSkKLXsKLSAgICBQQVNfVU5VU0VEX1BBUkFNKGVudHJ5KTsKLSAgICByZXR1cm4gZmFs
c2U7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCogcGFzX3N1YnBhZ2VfbWFwX2hhc2h0YWJsZV9l
bnRyeV9nZXRfa2V5KHBhc19zdWJwYWdlX21hcF9oYXNodGFibGVfZW50cnkgZW50cnkpCi17Ci0g
ICAgcmV0dXJuIHBhc19zdWJwYWdlX21hcF9lbnRyeV9mdWxsX2Jhc2UocGFzX2NvbXBhY3Rfc3Vi
cGFnZV9tYXBfZW50cnlfcHRyX2xvYWQoJmVudHJ5KSk7Ci19Ci0KLXN0YXRpYyB1bnNpZ25lZCBw
YXNfc3VicGFnZV9tYXBfaGFzaHRhYmxlX2tleV9nZXRfaGFzaCh2b2lkKiBrZXkpCi17Ci0gICAg
cmV0dXJuIHBhc19oYXNoX3B0cihrZXkpOwotfQotCi1zdGF0aWMgYm9vbCBwYXNfc3VicGFnZV9t
YXBfaGFzaHRhYmxlX2tleV9pc19lcXVhbCh2b2lkKiBhLCB2b2lkKiBiKQotewotICAgIHJldHVy
biBhID09IGI7Ci19Ci0KLVBBU19DUkVBVEVfSEFTSFRBQkxFKHBhc19zdWJwYWdlX21hcF9oYXNo
dGFibGUsCi0gICAgICAgICAgICAgICAgICAgICBwYXNfc3VicGFnZV9tYXBfaGFzaHRhYmxlX2Vu
dHJ5LAotICAgICAgICAgICAgICAgICAgICAgcGFzX3N1YnBhZ2VfbWFwX2hhc2h0YWJsZV9rZXkp
OwotCi1leHRlcm4gUEFTX0FQSSBwYXNfc3VicGFnZV9tYXBfaGFzaHRhYmxlIHBhc19zdWJwYWdl
X21hcF9oYXNodGFibGVfaW5zdGFuY2U7Ci0KLS8qIFRoaXMgaW5pdGlhbGl6ZXMgYW4gZW50cnkg
Zm9yIGEgc3lzdGVtIChha2EgZnVsbCkgcGFnZSBpbiB0aGUgbWFwIGJhc2VkIG9uIGFuIGFsbG9j
YXRpb24gb2YKLSAgIHplcm8gb3IgbW9yZSBzdWJwYWdlcy4gVGhpcyBoYXMgc29tZSBpbXBsaWNh
dGlvbnM6Ci0KLSAgIC0gSWYgeW91IGFsbG9jYXRlIG1lbW9yeSBmb3IgYSBzdWJwYWdlIHNvbWVo
b3csIHRoZW4geW91IG11c3QgYWxzbyBhbGxvY2F0ZSB0aGUgcmVzdCBvZiB0aGUKLSAgICAgbWVt
b3J5IGluIHRoZSBmdWxsIHBhZ2UgYXMgc3VicGFnZXMuCi0KLSAgIC0gVGhlIGNvbW1pdCBzdGF0
ZSBvZiBhbGwgc3VicGFnZXMgd2l0aGluIHRoZSBmdWxsIHBhZ2UgbXVzdCBzdGFydCB0aGUgc2Ft
ZSB3YXkuIFNvLCBpZiB5b3UKLSAgICAgYWxsb2NhdGUgdGhlIGZpcnN0IHN1YnBhZ2UgaW4gYSBm
dWxsIHBhZ2UgYW5kIHRlbGwgdGhlIG1hcCB0aGF0IGl0J3MgY29tbWl0dGVkLCB0aGVuIHdoZW5l
dmVyCi0gICAgIHlvdSBkbyBnZXQgYXJvdW5kIHRvIGFsbG9jYXRpbmcgdGhlIG90aGVyIHN1YnBh
Z2VzLCB0aG9zZSBtdXN0IGFsc28gc3RhcnQgY29tbWl0dGVkLiBJdCdzIE9LCi0gICAgIGlmIGlu
IHRoZSBtZWFudGltZSB0aGUgZmlyc3Qgc3VicGFnZSBnb3QgZGVjb21taXR0ZWQ7IHRoZSBwb2lu
dCBpcyB0aGF0IHdoYXRldmVyIHRoZSBzdGFydAotICAgICBzdGF0ZSB3YXMgKGNvbW1pdHRlZCBp
biB0aGUgZXhhbXBsZSkgbXVzdCBhbHNvIGJlIHRoZSBzdGFydCBzdGF0ZSBmb3IgYWxsIG90aGVy
IHBhZ2VzLiBUaGF0J3MKLSAgICAgYmVjYXVzZSBpZiB0aGUgc3VicGFnZSBtYXAgaXMgdG9sZCBh
Ym91dCBhIGZ1bGwgcGFnZSBmb3IgdGhlIGZpcnN0IHRpbWUgaW4gdGhlIGZvcm0gb2YgYQotICAg
ICBjYWxsIHRvIHRoaXMgdGhhdCBpbml0aWFsaXplcyBzb21lIHN1YnBhZ2UgdGhlbiB0aGUgbWFw
IHdpbGwgaW5pdGlhbGl6ZSB0aGUgY29tbWl0IHN0YXRlIG9mCi0gICAgIHRoZSBlbnRpcmUgZnVs
bCBwYWdlIHRvIHdoYXRldmVyIHlvdSB0b2xkIHRoaXMuCi0KLSAgIC0gVGhlIGJ5dGVzIGNhbm5v
dCBiZSBzbyBiaWcgdGhhdCB0aGlzIHJlcXVpcmVzIG1vcmUgdGhhbiBvbmUgZnVsbCBwYWdlLiAq
LwotUEFTX0FQSSBwYXNfc3VicGFnZV9tYXBfZW50cnkqIHBhc19zdWJwYWdlX21hcF9hZGQodm9p
ZCogYmFzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNpemVfdCBieXRlcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHBhc19jb21taXRfbW9kZSBjb21taXRfbW9kZSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19sb2NrX2hvbGRfbW9kZSBo
ZWFwX2xvY2tfaG9sZF9tb2RlKTsKLQotUEFTX0FQSSBwYXNfc3VicGFnZV9tYXBfZW50cnkqIHBh
c19zdWJwYWdlX21hcF9nZXQodm9pZCogYmFzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBieXRlcywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19sb2NrX2hvbGRfbW9kZSBoZWFw
X2xvY2tfaG9sZF9tb2RlKTsKLQotLyogVGhpcyBpcyBhIGhlbHBlciB0aGF0IHN1YnBhZ2VfbWFw
IGFuZCBzdWJwYWdlX21hcF9lbnRyeSBzaGFyZS4gKi8KLVBBU19BUEkgdm9pZCogcGFzX3N1YnBh
Z2VfbWFwX2dldF9mdWxsX2Jhc2Uodm9pZCogYmFzZSwgc2l6ZV90IGJ5dGVzKTsKLQotUEFTX0VO
RF9FWFRFUk5fQzsKLQotI2VuZGlmIC8qIFBBU19TVUJQQUdFX01BUF9IICovCi0KSW5kZXg6IFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zdWJwYWdlX21hcF9lbnRyeS5jCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zdWJwYWdl
X21hcF9lbnRyeS5jCShyZXZpc2lvbiAyNzk5NjQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfc3VicGFnZV9tYXBfZW50cnkuYwkobm9uZXhpc3RlbnQpCkBAIC0xLDE3
OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0K
LSNpbmNsdWRlICJwYXNfY29uZmlnLmgiCi0KLSNpZiBMSUJQQVNfRU5BQkxFRAotCi0jaW5jbHVk
ZSAicGFzX3N1YnBhZ2VfbWFwX2VudHJ5LmgiCi0KLSNpbmNsdWRlICJwYXNfYml0dmVjdG9yLmgi
Ci0jaW5jbHVkZSAicGFzX2RlZmVycmVkX2RlY29tbWl0X2xvZy5oIgotI2luY2x1ZGUgInBhc19p
bW1vcnRhbF9oZWFwLmgiCi0jaW5jbHVkZSAicGFzX2ludGVybmFsX2NvbmZpZy5oIgotI2luY2x1
ZGUgPHN0ZGFsaWduLmg+Ci0KLXN0YXRpYyB2b2lkIHNldF9wYWNrZWRfdmFsdWUocGFzX3N1YnBh
Z2VfbWFwX2VudHJ5KiBlbnRyeSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCog
ZnVsbF9iYXNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBiaXRzKQot
ewotICAgIGVudHJ5LT5wYWNrZWRfdmFsdWUgPSAodWludHB0cl90KWZ1bGxfYmFzZSB8IGJpdHM7
Ci0gICAgUEFTX0FTU0VSVChwYXNfc3VicGFnZV9tYXBfZW50cnlfZnVsbF9iYXNlKGVudHJ5KSA9
PSBmdWxsX2Jhc2UpOwotICAgIFBBU19BU1NFUlQocGFzX3N1YnBhZ2VfbWFwX2VudHJ5X2JpdHMo
ZW50cnkpID09IGJpdHMpOwotfQotCi1wYXNfc3VicGFnZV9tYXBfZW50cnkqIHBhc19zdWJwYWdl
X21hcF9lbnRyeV9jcmVhdGUodm9pZCogZnVsbF9iYXNlLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19jb21taXRfbW9kZSBjb21taXRfbW9k
ZSkKLXsKLSAgICBwYXNfc3VicGFnZV9tYXBfZW50cnkqIGVudHJ5OwotICAgIHVuc2lnbmVkIGJp
dHM7Ci0KLSAgICBQQVNfQVNTRVJUKCEoKHVpbnRwdHJfdClmdWxsX2Jhc2UgJiAocGFzX3BhZ2Vf
bWFsbG9jX2FsaWdubWVudCgpIC0gMSkpKTsKLSAgICBQQVNfQVNTRVJUKHBhc19wYWdlX21hbGxv
Y19hbGlnbm1lbnQoKSAvIFBBU19TVUJQQUdFX1NJWkUgPD0gcGFzX3BhZ2VfbWFsbG9jX2FsaWdu
bWVudF9zaGlmdCgpKTsKLQotICAgIGVudHJ5ID0gcGFzX2ltbW9ydGFsX2hlYXBfYWxsb2NhdGVf
d2l0aF9tYW51YWxfYWxpZ25tZW50KAotICAgICAgICBzaXplb2YocGFzX3N1YnBhZ2VfbWFwX2Vu
dHJ5KSwKLSAgICAgICAgYWxpZ25vZihwYXNfbG9jayksCi0gICAgICAgICJwYXNfc3VicGFnZV9t
YXBfZW50cnkiLAotICAgICAgICBwYXNfb2JqZWN0X2FsbG9jYXRpb24pOwotCi0gICAgcGFzX2xv
Y2tfY29uc3RydWN0KCZlbnRyeS0+Y29tbWl0X2xvY2spOwotCi0gICAgYml0cyA9IDA7Ci0gICAg
aWYgKGNvbW1pdF9tb2RlKSB7Ci0gICAgICAgIHVpbnRwdHJfdCBpbmRleDsKLSAgICAgICAgZm9y
IChpbmRleCA9IHBhc19wYWdlX21hbGxvY19hbGlnbm1lbnQoKSAvIFBBU19TVUJQQUdFX1NJWkU7
IGluZGV4LS07KQotICAgICAgICAgICAgcGFzX2JpdHZlY3Rvcl9zZXRfaW5fb25lX3dvcmQoJmJp
dHMsIGluZGV4LCB0cnVlKTsKLSAgICB9Ci0KLSAgICBzZXRfcGFja2VkX3ZhbHVlKGVudHJ5LCBm
dWxsX2Jhc2UsIGJpdHMpOwotCi0gICAgcGFzX2ZlbmNlKCk7Ci0KLSAgICByZXR1cm4gZW50cnk7
Ci19Ci0KLXN0YXRpYyB2b2lkIHByZXBhcmVfaW5kaWNlcyhwYXNfc3VicGFnZV9tYXBfZW50cnkq
IGVudHJ5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQqIGJhc2UsIHNpemVfdCBi
eXRlcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkKiogZnVsbF9iYXNlLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnRwdHJfdCogYmVnaW4sCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdWludHB0cl90KiBlbmQpCi17Ci0gICAgKmZ1bGxfYmFzZSA9IHBhc19z
dWJwYWdlX21hcF9lbnRyeV9mdWxsX2Jhc2UoZW50cnkpOwotCi0gICAgKmJlZ2luID0gKCh1aW50
cHRyX3QpYmFzZSAtICh1aW50cHRyX3QpKmZ1bGxfYmFzZSkgLyBQQVNfU1VCUEFHRV9TSVpFOwot
ICAgICplbmQgPSAqYmVnaW4gKyBieXRlcyAvIFBBU19TVUJQQUdFX1NJWkU7Ci19Ci0KLXZvaWQg
cGFzX3N1YnBhZ2VfbWFwX2Fzc2VydF9jb21taXRfc3RhdGUocGFzX3N1YnBhZ2VfbWFwX2VudHJ5
KiBlbnRyeSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCog
YmFzZSwgc2l6ZV90IGJ5dGVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwYXNfY29tbWl0X21vZGUgY29tbWl0X21vZGUpCi17Ci0gICAgLyogVGhpcyBkb2Vzbid0
IGJvdGhlciB3aXRoIGxvY2tpbmcgb24gdGhlIGdyb3VuZHMgdGhhdCB3ZSBkb24ndCBoYXZlIG91
dC1vZi10aGluLWFpciB2YWx1ZXMuCi0gICAgICAgV2UncmUgb25seSBhc3NlcnRpbmcgY29tbWl0
IHN0YXRlIHdoZW4gYWRkaW5nIGFub3RoZXIgc3VicGFnZSB0byBhIGZ1bGwgcGFnZSB0aGF0IHdl
Ci0gICAgICAgcHJldmlvdXNseSBjcmVhdGVkLCBhbmQgd2Ugd2FudCB0byBhc3NlcnQgdGhhdCBu
b2JvZHkgY2hhbmdlZCB0aGUgY29tbWl0IHN0YXRlIG9mIHRob3NlCi0gICAgICAgcGFnZXMgaW4g
dGhlIG1lYW50aW1lLiBFdmVuIGlmIHRoZSBjb21taXQgc3RhdGUgb2Ygb3RoZXIgc3VicGFnZXMg
aXMgY2hhbmdpbmcgY29uY3VycmVudGx5LAotICAgICAgIHRoZSBsYWNrIG9mIG91dC1vZi10aGlu
LWFpciB2YWx1ZXMgbWVhbnMgdGhhdCB0aGUgYml0cyB3ZSdyZSBhc3NlcnRpbmcgYWJvdXQgd2ls
bCBzdGlsbCBiZQotICAgICAgIHN0dWNrIGluIHRoZSBzdGF0ZSB0aGF0IHdlIGV4cGVjdGVkIHRo
ZW0gdG8gYmUgaW4uICovCi0KLSAgICB2b2lkKiBmdWxsX2Jhc2U7Ci0gICAgdWludHB0cl90IGJl
Z2luOwotICAgIHVpbnRwdHJfdCBlbmQ7Ci0gICAgdWludHB0cl90IGluZGV4OwotICAgIHVuc2ln
bmVkIGJpdHM7Ci0KLSAgICBwcmVwYXJlX2luZGljZXMoZW50cnksIGJhc2UsIGJ5dGVzLCAmZnVs
bF9iYXNlLCAmYmVnaW4sICZlbmQpOwotCi0gICAgYml0cyA9IHBhc19zdWJwYWdlX21hcF9lbnRy
eV9iaXRzKGVudHJ5KTsKLQotICAgIGZvciAoaW5kZXggPSBlbmQ7IGluZGV4LS0gPiBiZWdpbjsp
Ci0gICAgICAgIFBBU19BU1NFUlQocGFzX2JpdHZlY3Rvcl9nZXRfZnJvbV9vbmVfd29yZCgmYml0
cywgaW5kZXgpID09ICEhY29tbWl0X21vZGUpOwotfQotCi1zdGF0aWMgdm9pZCBzZXRfYml0cyhw
YXNfc3VicGFnZV9tYXBfZW50cnkqIGVudHJ5LAotICAgICAgICAgICAgICAgICAgICAgdm9pZCog
YmFzZSwgc2l6ZV90IGJ5dGVzLAotICAgICAgICAgICAgICAgICAgICAgcGFzX2NvbW1pdF9tb2Rl
IGNvbW1pdF9tb2RlLAotICAgICAgICAgICAgICAgICAgICAgcGFzX2RlZmVycmVkX2RlY29tbWl0
X2xvZyogbG9nLAotICAgICAgICAgICAgICAgICAgICAgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBf
bG9ja19ob2xkX21vZGUpCi17Ci0gICAgdm9pZCogZnVsbF9iYXNlOwotICAgIHVpbnRwdHJfdCBi
ZWdpbjsKLSAgICB1aW50cHRyX3QgZW5kOwotICAgIHVpbnRwdHJfdCBpbmRleDsKLSAgICB1bnNp
Z25lZCBvbGRfYml0czsKLSAgICB1bnNpZ25lZCBiaXRzOwotCi0gICAgcGFzX2xvY2tfYXNzZXJ0
X2hlbGQoJmVudHJ5LT5jb21taXRfbG9jayk7Ci0KLSAgICBwcmVwYXJlX2luZGljZXMoZW50cnks
IGJhc2UsIGJ5dGVzLCAmZnVsbF9iYXNlLCAmYmVnaW4sICZlbmQpOwotCi0gICAgb2xkX2JpdHMg
PSBwYXNfc3VicGFnZV9tYXBfZW50cnlfYml0cyhlbnRyeSk7Ci0gICAgYml0cyA9IG9sZF9iaXRz
OwotCi0gICAgZm9yIChpbmRleCA9IGVuZDsgaW5kZXgtLSA+IGJlZ2luOykKLSAgICAgICAgcGFz
X2JpdHZlY3Rvcl9zZXRfaW5fb25lX3dvcmQoJmJpdHMsIGluZGV4LCBjb21taXRfbW9kZSk7Ci0K
LSAgICBzZXRfcGFja2VkX3ZhbHVlKGVudHJ5LCBmdWxsX2Jhc2UsIGJpdHMpOwotCi0gICAgaWYg
KCFvbGRfYml0cyAmJiBiaXRzKSB7Ci0gICAgICAgIFBBU19BU1NFUlQoY29tbWl0X21vZGUpOwot
ICAgICAgICBwYXNfcGFnZV9tYWxsb2NfY29tbWl0KGZ1bGxfYmFzZSwgcGFzX3BhZ2VfbWFsbG9j
X2FsaWdubWVudCgpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmIChvbGRfYml0
cyAmJiAhYml0cykgewotICAgICAgICBQQVNfQVNTRVJUKCFjb21taXRfbW9kZSk7Ci0gICAgICAg
IHBhc19kZWZlcnJlZF9kZWNvbW1pdF9sb2dfYWRkX21heWJlX2xvY2tlZCgKLSAgICAgICAgICAg
IGxvZywKLSAgICAgICAgICAgIHBhc192aXJ0dWFsX3JhbmdlX2NyZWF0ZSgKLSAgICAgICAgICAg
ICAgICAodWludHB0cl90KWZ1bGxfYmFzZSwgKHVpbnRwdHJfdClmdWxsX2Jhc2UgKyBwYXNfcGFn
ZV9tYWxsb2NfYWxpZ25tZW50KCksCi0gICAgICAgICAgICAgICAgJmVudHJ5LT5jb21taXRfbG9j
ayksCi0gICAgICAgICAgICBwYXNfcmFuZ2VfaXNfbG9ja2VkLAotICAgICAgICAgICAgaGVhcF9s
b2NrX2hvbGRfbW9kZSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAoIWNvbW1p
dF9tb2RlKQotICAgICAgICBwYXNfZGVmZXJyZWRfZGVjb21taXRfbG9nX3VubG9ja19hZnRlcl9h
Ym9ydGVkX2FkZChsb2csICZlbnRyeS0+Y29tbWl0X2xvY2spOwotfQotCi12b2lkIHBhc19zdWJw
YWdlX21hcF9lbnRyeV9jb21taXQocGFzX3N1YnBhZ2VfbWFwX2VudHJ5KiBlbnRyeSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkKiBiYXNlLCBzaXplX3QgYnl0ZXMpCi17
Ci0gICAgLyogTk9URTogcGFzX2xvY2tfaXNfbm90X2hlbGQgY2FuIGJlIGEgbGllIHNpbmNlIHNl
dF9iaXRzIGRvZXMgbm90IHVzZSB0aGF0IHZhbHVlIHVubGVzcwotICAgICAgIHdlIGFyZSBkZWNv
bW1pdHRpbmcuICovCi0gICAgc2V0X2JpdHMoZW50cnksIGJhc2UsIGJ5dGVzLCBwYXNfY29tbWl0
dGVkLCBOVUxMLCBwYXNfbG9ja19pc19ub3RfaGVsZCk7Ci19Ci0KLS8qIEhhdmUgdG8gYWxyZWFk
eSBob2xkIHRoZSBjb21taXQgbG9jayB0byBkbyB0aGlzLiAqLwotdm9pZCBwYXNfc3VicGFnZV9t
YXBfZW50cnlfZGVjb21taXQocGFzX3N1YnBhZ2VfbWFwX2VudHJ5KiBlbnRyeSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQqIGJhc2UsIHNpemVfdCBieXRlcywKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19kZWZlcnJlZF9kZWNvbW1pdF9s
b2cqIGxvZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19sb2NrX2hv
bGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9tb2RlKQotewotICAgIHNldF9iaXRzKGVudHJ5LCBiYXNl
LCBieXRlcywgcGFzX2RlY29tbWl0dGVkLCBsb2csIGhlYXBfbG9ja19ob2xkX21vZGUpOwotfQot
Ci0jZW5kaWYgLyogTElCUEFTX0VOQUJMRUQgKi8KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc19zdWJwYWdlX21hcF9lbnRyeS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zdWJwYWdlX21hcF9lbnRyeS5oCShyZXZp
c2lvbiAyNzk5NjQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc3Vi
cGFnZV9tYXBfZW50cnkuaAkobm9uZXhpc3RlbnQpCkBAIC0xLDkyICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKGMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2lmbmRlZiBQQVNfU1VCUEFH
RV9NQVBfRU5UUllfSAotI2RlZmluZSBQQVNfU1VCUEFHRV9NQVBfRU5UUllfSAotCi0jaW5jbHVk
ZSAicGFzX2NvbW1pdF9tb2RlLmgiCi0jaW5jbHVkZSAicGFzX2xvY2suaCIKLSNpbmNsdWRlICJw
YXNfcGFnZV9tYWxsb2MuaCIKLQotUEFTX0JFR0lOX0VYVEVSTl9DOwotCi1zdHJ1Y3QgcGFzX2Rl
ZmVycmVkX2RlY29tbWl0X2xvZzsKLXN0cnVjdCBwYXNfc3VicGFnZV9tYXBfZW50cnk7Ci10eXBl
ZGVmIHN0cnVjdCBwYXNfZGVmZXJyZWRfZGVjb21taXRfbG9nIHBhc19kZWZlcnJlZF9kZWNvbW1p
dF9sb2c7Ci10eXBlZGVmIHN0cnVjdCBwYXNfc3VicGFnZV9tYXBfZW50cnkgcGFzX3N1YnBhZ2Vf
bWFwX2VudHJ5OwotCi0vKiBOT1RFOiBUaGlzIGlzIDQtYnl0ZSBhbGlnbmVkISAqLwotc3RydWN0
IHBhc19zdWJwYWdlX21hcF9lbnRyeSB7Ci0gICAgcGFzX2xvY2sgY29tbWl0X2xvY2s7Ci0KLSAg
ICAvKiBUaGlzIGlzIGxpa2UgYSBwYWdlIHBvaW50ZXIsIGV4Y2VwdCB0aGF0IHRoZSBsb3cgYml0
cyB0aGF0IHdvdWxkIG5vcm1hbGx5IGJlIHplcm8gZm9yIGEgcGFnZQotICAgICAgIHBvaW50ZXIg
KGkuZS4gdGhlIHBhZ2Ugb2Zmc2V0IGJpdHMpIGFyZSB1c2VkIGFzIGEgYml0bWFwLiBUaGlzIGNv
bnN0cmFpbnMgdGhlIHBvc3NpYmxlIHN5c3RlbQotICAgICAgIHBhZ2Ugc2l6ZSBhcyBmb2xsb3dz
OgotICAgICAgIAotICAgICAgICAgICBTWVNURU1fUEFHRV9TSVpFL2xvZyhTWVNURU1fUEFHRV9T
SVpFKSA8PSBQQVNfU1VCUEFHRV9TSVpFCi0KLSAgICAgICBXaGljaCBjYW4gYmUgYWxzbyB3cml0
dGVuIGFzIChpZiB3ZSB3YW50IHRvIHVzZSBpbnRlZ2Vycyk6Ci0gICAgCi0gICAgICAgICAgIFNZ
U1RFTV9QQUdFX1NJWkUvUEFTX1NVQlBBR0VfU0laRSA8PSBsb2coU1lTVEVNX1BBR0VfU0laRSkK
LQotICAgICAgIE5PVEU6IFRoaXMgaXMgbm90IHVpbnRwdHJfdC1hbGlnbmVkISBXZSBsZXZlcmFn
ZSB0aGUgZmFjdCB0aGF0IHRoaXMgaXMgYWx3YXlzIGFjY2Vzc2VkIHVuZGVyCi0gICAgICAgdGhl
IGNvbW1pdCBsb2NrIGFuZCBzYXZlIHNvbWUgc3BhY2UuIFdlIGFsc28gbGV2ZXJhZ2UgdGhlIGZh
Y3QgdGhhdCB0aGUgcGFnZSBmdWxsIGJhc2UgYml0cwotICAgICAgIGFyZSBpbW11dGFibGUsIHNv
IHJlYWRpbmcgdGhvc2UgY2FuIGJlIGRvbmUgYXQgYW55IHRpbWUsIHdpdGhvdXQgbG9ja2luZy4g
Ki8KLSAgICB1aW50cHRyX3QgcGFja2VkX3ZhbHVlOwotfTsKLQotUEFTX0FQSSBwYXNfc3VicGFn
ZV9tYXBfZW50cnkqIHBhc19zdWJwYWdlX21hcF9lbnRyeV9jcmVhdGUodm9pZCogZnVsbF9iYXNl
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcGFzX2NvbW1pdF9tb2RlIGNvbW1pdF9tb2RlKTsKLQotc3RhdGljIGlubGluZSB2b2lk
KiBwYXNfc3VicGFnZV9tYXBfZW50cnlfZnVsbF9iYXNlKHBhc19zdWJwYWdlX21hcF9lbnRyeSog
ZW50cnkpCi17Ci0gICAgcmV0dXJuICh2b2lkKikoZW50cnktPnBhY2tlZF92YWx1ZSAmIC1wYXNf
cGFnZV9tYWxsb2NfYWxpZ25tZW50KCkpOwotfQotCi1zdGF0aWMgaW5saW5lIHVuc2lnbmVkIHBh
c19zdWJwYWdlX21hcF9lbnRyeV9iaXRzKHBhc19zdWJwYWdlX21hcF9lbnRyeSogZW50cnkpCi17
Ci0gICAgdWludHB0cl90IHJlc3VsdCA9IGVudHJ5LT5wYWNrZWRfdmFsdWUgJiAocGFzX3BhZ2Vf
bWFsbG9jX2FsaWdubWVudCgpIC0gMSk7Ci0gICAgUEFTX0FTU0VSVCgodW5zaWduZWQpcmVzdWx0
ID09IHJlc3VsdCk7Ci0gICAgcmV0dXJuICh1bnNpZ25lZClyZXN1bHQ7Ci19Ci0KLVBBU19BUEkg
dm9pZCBwYXNfc3VicGFnZV9tYXBfYXNzZXJ0X2NvbW1pdF9zdGF0ZShwYXNfc3VicGFnZV9tYXBf
ZW50cnkqIGVudHJ5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHZvaWQqIGJhc2UsIHNpemVfdCBieXRlcywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfY29tbWl0X21vZGUgY29tbWl0X21vZGUpOwot
Ci0vKiBIYXZlIHRvIGFscmVhZHkgaG9sZCB0aGUgY29tbWl0IGxvY2sgdG8gZG8gdGhpcy4gKi8K
LVBBU19BUEkgdm9pZCBwYXNfc3VicGFnZV9tYXBfZW50cnlfY29tbWl0KHBhc19zdWJwYWdlX21h
cF9lbnRyeSogZW50cnksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB2b2lkKiBiYXNlLCBzaXplX3QgYnl0ZXMpOwotCi0vKiBIYXZlIHRvIGFscmVhZHkgaG9sZCB0
aGUgY29tbWl0IGxvY2sgdG8gZG8gdGhpcy4gVGhpcyB3aWxsIHJlbGVhc2UgdGhlIGNvbW1pdCBs
b2NrLiAqLwotUEFTX0FQSSB2b2lkIHBhc19zdWJwYWdlX21hcF9lbnRyeV9kZWNvbW1pdChwYXNf
c3VicGFnZV9tYXBfZW50cnkqIGVudHJ5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB2b2lkKiBiYXNlLCBzaXplX3QgYnl0ZXMsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19kZWZlcnJlZF9kZWNvbW1pdF9sb2cqIGxv
ZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2xvY2tf
aG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUpOwotCi1QQVNfRU5EX0VYVEVSTl9DOwotCi0j
ZW5kaWYgLyogUEFTX1NVQlBBR0VfTUFQX0VOVFJZX0ggKi8KLQpJbmRleDogU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZS5jCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2Fj
aGUuYwkocmV2aXNpb24gMjc5OTY0KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZS5jCSh3b3JraW5nIGNvcHkpCkBAIC0zMSwxNCArMzEs
MTMgQEAKIAogI2luY2x1ZGUgPG1hY2gvdGhyZWFkX2FjdC5oPgogI2luY2x1ZGUgInBhc19hbGxf
aGVhcF9jb25maWdzLmgiCi0jaW5jbHVkZSAicGFzX2FsbF9tYWdhemluZXMuaCIKICNpbmNsdWRl
ICJwYXNfY29tcGFjdF9sYXJnZV91dGlsaXR5X2ZyZWVfaGVhcC5oIgogI2luY2x1ZGUgInBhc19k
ZWJ1Z19oZWFwLmgiCiAjaW5jbHVkZSAicGFzX2hlYXBfbG9jay5oIgogI2luY2x1ZGUgInBhc19s
b2cuaCIKICNpbmNsdWRlICJwYXNfbW9ub3RvbmljX3RpbWUuaCIKICNpbmNsdWRlICJwYXNfc2Nh
dmVuZ2VyLmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
X2lubGluZXMuaCIKKyNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9pbmxp
bmVzLmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfcGFnZS5oIgogI2luY2x1ZGUgInBhc190
aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0LmgiCiAjaW5jbHVkZSAicGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9ub2RlLmgiCkBAIC01OSwxOCArNTgsNiBAQCBzaXplX3QgcGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9zaXplX2Zvcl9hCiBzdGF0aWMgdm9pZCBkZWFsbG9jYXRlKHBhc190aHJlYWRfbG9jYWxf
Y2FjaGUqIHRocmVhZF9sb2NhbF9jYWNoZSkKIHsKICAgICBjaGFyKiBiZWdpbjsKLSAgICBwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIGxheW91dF9ub2RlOwotCi0gICAgZm9yIChQ
QVNfVEhSRUFEX0xPQ0FMX0NBQ0hFX0xBWU9VVF9FQUNIX0FMTE9DQVRPUihsYXlvdXRfbm9kZSkp
IHsKLSAgICAgICAgcGFzX2FsbG9jYXRvcl9pbmRleCBhbGxvY2F0b3JfaW5kZXg7Ci0KLSAgICAg
ICAgYWxsb2NhdG9yX2luZGV4ID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9n
ZXRfYWxsb2NhdG9yX2luZGV4KGxheW91dF9ub2RlKTsKLSAgICAgICAgCi0gICAgICAgIGlmIChh
bGxvY2F0b3JfaW5kZXggPj0gdGhyZWFkX2xvY2FsX2NhY2hlLT5hbGxvY2F0b3JfaW5kZXhfdXBw
ZXJfYm91bmQpCi0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRv
cl9kZXN0cnVjdCgKLSAgICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2Fs
X2FsbG9jYXRvcl9pbXBsKHRocmVhZF9sb2NhbF9jYWNoZSwgYWxsb2NhdG9yX2luZGV4KSk7Ci0g
ICAgfQogCiAgICAgcGFzX2NvbXBhY3RfbGFyZ2VfdXRpbGl0eV9mcmVlX2hlYXBfZGVhbGxvY2F0
ZSgKICAgICAgICAgdGhyZWFkX2xvY2FsX2NhY2hlLT5zaG91bGRfc3RvcF9iaXR2ZWN0b3IsCkBA
IC0xNzMsMTMgKzE2MCw4IEBAIHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIHBhc190aHJlYWRfbG9j
YWwKICAgICAKICAgICB0aHJlYWRfbG9jYWxfY2FjaGUtPmFsbG9jYXRvcl9pbmRleF91cHBlcl9i
b3VuZCA9IGFsbG9jYXRvcl9pbmRleF91cHBlcl9ib3VuZDsKIAotICAgIGZvciAoUEFTX1RIUkVB
RF9MT0NBTF9DQUNIRV9MQVlPVVRfRUFDSF9BTExPQ0FUT1IobGF5b3V0X25vZGUpKSB7Ci0gICAg
ICAgIHBhc19sb2NhbF9hbGxvY2F0b3JfY29uc3RydWN0KAotICAgICAgICAgICAgcGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9yX2ltcGwoCi0gICAgICAgICAgICAgICAg
dGhyZWFkX2xvY2FsX2NhY2hlLAotICAgICAgICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfbGF5b3V0X25vZGVfZ2V0X2FsbG9jYXRvcl9pbmRleChsYXlvdXRfbm9kZSkpLAotICAgICAg
ICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfZGlyZWN0b3J5KGxh
eW91dF9ub2RlKSk7Ci0gICAgfQorICAgIGZvciAoUEFTX1RIUkVBRF9MT0NBTF9DQUNIRV9MQVlP
VVRfRUFDSF9BTExPQ0FUT1IobGF5b3V0X25vZGUpKQorICAgICAgICBwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX2xheW91dF9ub2RlX2NvbnN0cnVjdChsYXlvdXRfbm9kZSwgdGhyZWFkX2xvY2FsX2Nh
Y2hlKTsKIAogICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfc2V0X2ltcGwodGhyZWFkX2xvY2Fs
X2NhY2hlKTsKICAgICAKQEAgLTI0MiwxMCArMjI0LDcgQEAgcGFzX2xvY2FsX2FsbG9jYXRvcl9y
ZXN1bHQgcGFzX3RocmVhZF9sbwogICAgIG9sZF9pbmRleF91cHBlcl9ib3VuZCA9IHRocmVhZF9s
b2NhbF9jYWNoZS0+YWxsb2NhdG9yX2luZGV4X3VwcGVyX2JvdW5kOwogICAgIAogICAgIFBBU19B
U1NFUlQoZGVzaXJlZF9hbGxvY2F0b3JfaW5kZXggPj0gb2xkX2luZGV4X3VwcGVyX2JvdW5kKTsK
LSAgICAKLSAgICAvKiBJdCBjb3VsZCBiZSB0aGF0IHdlIGp1c3QgZG9uJ3QgaGF2ZSBhbiBhbGxv
Y2F0b3IgaW5kZXggeWV0LiAqLwotICAgIGlmIChkZXNpcmVkX2FsbG9jYXRvcl9pbmRleCA+PSAo
cGFzX2FsbG9jYXRvcl9pbmRleClVSU5UX01BWCkKLSAgICAgICAgcmV0dXJuIHBhc19sb2NhbF9h
bGxvY2F0b3JfcmVzdWx0X2NyZWF0ZV9mYWlsdXJlKCk7CisgICAgUEFTX0FTU0VSVChkZXNpcmVk
X2FsbG9jYXRvcl9pbmRleCA8IChwYXNfYWxsb2NhdG9yX2luZGV4KVVJTlRfTUFYKTsKICAgICAK
ICAgICAvKiBSYXRoZXIgdGhhbiBjb3B5IHRoZSBkZWFsbG9jYXRpb24gbG9nIGxldCdzIGp1c3Qg
Zmx1c2ggaXQuICovCiAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9mbHVzaF9kZWFsbG9jYXRp
b25fbG9nKHRocmVhZF9sb2NhbF9jYWNoZSwgaGVhcF9sb2NrX2hvbGRfbW9kZSk7CkBAIC0yNzgs
MTUgKzI1NywxMyBAQCBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3VsdCBwYXNfdGhyZWFkX2xvCiAg
ICAgICAgIGZvciAoUEFTX1RIUkVBRF9MT0NBTF9DQUNIRV9MQVlPVVRfRUFDSF9BTExPQ0FUT1Io
bGF5b3V0X25vZGUpKSB7CiAgICAgICAgICAgICBwYXNfYWxsb2NhdG9yX2luZGV4IGFsbG9jYXRv
cl9pbmRleDsKICAgICAgICAgICAgIAotICAgICAgICAgICAgYWxsb2NhdG9yX2luZGV4ID0gcGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfYWxsb2NhdG9yX2luZGV4KGxheW91
dF9ub2RlKTsKKyAgICAgICAgICAgIGFsbG9jYXRvcl9pbmRleCA9IHBhc190aHJlYWRfbG9jYWxf
Y2FjaGVfbGF5b3V0X25vZGVfZ2V0X2FsbG9jYXRvcl9pbmRleF9nZW5lcmljKGxheW91dF9ub2Rl
KTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKGFsbG9jYXRvcl9pbmRleCA+PSBvbGRf
aW5kZXhfdXBwZXJfYm91bmQpCiAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBw
YXNfbG9jYWxfYWxsb2NhdG9yX21vdmUoCi0gICAgICAgICAgICAgICAgcGFzX3RocmVhZF9sb2Nh
bF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9yX2ltcGwoCi0gICAgICAgICAgICAgICAgICAgIG5l
d190aHJlYWRfbG9jYWxfY2FjaGUsIGFsbG9jYXRvcl9pbmRleCksCi0gICAgICAgICAgICAgICAg
cGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9yX2ltcGwoCi0gICAgICAg
ICAgICAgICAgICAgIHRocmVhZF9sb2NhbF9jYWNoZSwgYWxsb2NhdG9yX2luZGV4KSk7CisKKyAg
ICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfbW92ZSgKKyAgICAg
ICAgICAgICAgICBsYXlvdXRfbm9kZSwgbmV3X3RocmVhZF9sb2NhbF9jYWNoZSwgdGhyZWFkX2xv
Y2FsX2NhY2hlKTsKICAgICAgICAgfQogCiAgICAgICAgIG1lbWNweShuZXdfdGhyZWFkX2xvY2Fs
X2NhY2hlLT5zaG91bGRfc3RvcF9iaXR2ZWN0b3IsCkBAIC0zMDAsMTYgKzI3NywxNCBAQCBwYXNf
bG9jYWxfYWxsb2NhdG9yX3Jlc3VsdCBwYXNfdGhyZWFkX2xvCiAgICAgZm9yIChQQVNfVEhSRUFE
X0xPQ0FMX0NBQ0hFX0xBWU9VVF9FQUNIX0FMTE9DQVRPUihsYXlvdXRfbm9kZSkpIHsKICAgICAg
ICAgcGFzX2FsbG9jYXRvcl9pbmRleCBhbGxvY2F0b3JfaW5kZXg7CiAKLSAgICAgICAgYWxsb2Nh
dG9yX2luZGV4ID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfYWxsb2Nh
dG9yX2luZGV4KGxheW91dF9ub2RlKTsKKyAgICAgICAgYWxsb2NhdG9yX2luZGV4ID0gcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfYWxsb2NhdG9yX2luZGV4X2dlbmVyaWMo
bGF5b3V0X25vZGUpOwogICAgICAgICAKICAgICAgICAgaWYgKGFsbG9jYXRvcl9pbmRleCA8IG9s
ZF9pbmRleF91cHBlcl9ib3VuZCkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBpZiAo
YWxsb2NhdG9yX2luZGV4ID49IGRlc2lyZWRfaW5kZXhfdXBwZXJfYm91bmQpCiAgICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9jb25zdHJ1Y3QoCi0gICAgICAg
ICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0b3JfaW1wbCgKLSAg
ICAgICAgICAgICAgICBuZXdfdGhyZWFkX2xvY2FsX2NhY2hlLCBhbGxvY2F0b3JfaW5kZXgpLAot
ICAgICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfZGlyZWN0
b3J5KGxheW91dF9ub2RlKSk7CisKKyAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlv
dXRfbm9kZV9jb25zdHJ1Y3QobGF5b3V0X25vZGUsIG5ld190aHJlYWRfbG9jYWxfY2FjaGUpOwog
ICAgIH0KIAogICAgIHBhc19jb21waWxlcl9mZW5jZSgpOwpAQCAtMzQ1LDMwICszMjAsMjYgQEAg
cGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdAogdm9pZCBwYXNfdGhyZWFk
X2xvY2FsX2NhY2hlX3N0b3BfbG9jYWxfYWxsb2NhdG9ycyhwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
KiB0aHJlYWRfbG9jYWxfY2FjaGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHBhc19sb2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9tb2RlKQog
ewotICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKLSAgICAKICAgICBwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIGxheW91dF9ub2RlOwogCiAgICAgLyogV2Ug
aGF2ZSB0byBob2xkIHRoZSBoZWFwIGxvY2sgdG8gZG8gdGhpbmdzIHRvIG91ciBsb2NhbCBhbGxv
Y2F0b3JzIHVubGVzcyB3ZSBhbHNvIHNldCB0aGUKICAgICAgICBpc19pbl91c2UgYml0LiAqLwog
ICAgIHBhc19oZWFwX2xvY2tfbG9ja19jb25kaXRpb25hbGx5KGhlYXBfbG9ja19ob2xkX21vZGUp
OwotICAgIAorICAgIHBhc19sb2NrX2xvY2soJnRocmVhZF9sb2NhbF9jYWNoZS0+bm9kZS0+bG9n
X2ZsdXNoX2xvY2spOworCiAgICAgZm9yIChQQVNfVEhSRUFEX0xPQ0FMX0NBQ0hFX0xBWU9VVF9F
QUNIX0FMTE9DQVRPUihsYXlvdXRfbm9kZSkpIHsKICAgICAgICAgcGFzX2FsbG9jYXRvcl9pbmRl
eCBhbGxvY2F0b3JfaW5kZXg7Ci0gICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3IgKmFsbG9jYXRv
cjsKIAotICAgICAgICBhbGxvY2F0b3JfaW5kZXggPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xh
eW91dF9ub2RlX2dldF9hbGxvY2F0b3JfaW5kZXgobGF5b3V0X25vZGUpOworICAgICAgICBhbGxv
Y2F0b3JfaW5kZXggPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9hbGxv
Y2F0b3JfaW5kZXhfZ2VuZXJpYyhsYXlvdXRfbm9kZSk7CiAgICAgICAgIAogICAgICAgICBpZiAo
YWxsb2NhdG9yX2luZGV4ID49IHRocmVhZF9sb2NhbF9jYWNoZS0+YWxsb2NhdG9yX2luZGV4X3Vw
cGVyX2JvdW5kKQogICAgICAgICAgICAgYnJlYWs7CiAKLSAgICAgICAgYWxsb2NhdG9yID0gcGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9yX2ltcGwoCi0gICAgICAgICAg
ICB0aHJlYWRfbG9jYWxfY2FjaGUsIGFsbG9jYXRvcl9pbmRleCk7Ci0gICAgICAgIGlmICh2ZXJi
b3NlKQotICAgICAgICAgICAgcGFzX2xvZygiU3RvcHBpbmcgYWxsb2NhdG9yICVwIGJlY2F1c2Ug
cGFzX3RocmVhZF9sb2NhbF9jYWNoZV9zdG9wX2xvY2FsX2FsbG9jYXRvcnNcbiIsIGFsbG9jYXRv
cik7Ci0gICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3Jfc3RvcChhbGxvY2F0b3IsIHBhc19sb2Nr
X2xvY2tfbW9kZV9sb2NrLCBwYXNfbG9ja19pc19oZWxkKTsKKyAgICAgICAgcGFzX3RocmVhZF9s
b2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9zdG9wKAorICAgICAgICAgICAgbGF5b3V0X25vZGUsIHRo
cmVhZF9sb2NhbF9jYWNoZSwgcGFzX2xvY2tfbG9ja19tb2RlX2xvY2ssIHBhc19sb2NrX2lzX2hl
bGQpOwogICAgIH0KIAorICAgIHBhc19sb2NrX3VubG9jaygmdGhyZWFkX2xvY2FsX2NhY2hlLT5u
b2RlLT5sb2dfZmx1c2hfbG9jayk7CiAgICAgcGFzX2hlYXBfbG9ja191bmxvY2tfY29uZGl0aW9u
YWxseShoZWFwX2xvY2tfaG9sZF9tb2RlKTsKIH0KIApAQCAtMzk4LDcgKzM2OSw3IEBAIHN0YXRp
YyBib29sIHN0b3BfbG9jYWxfYWxsb2NhdG9yc19pZl9uZWMKICAgICAKICAgICBzdG9wX2xvY2Fs
X2FsbG9jYXRvcnNfaWZfbmVjZXNzYXJ5X2RhdGEqIGRhdGE7CiAgICAgcGFzX2FsbG9jYXRvcl9p
bmRleCBhbGxvY2F0b3JfaW5kZXg7Ci0gICAgcGFzX2xvY2FsX2FsbG9jYXRvciogYWxsb2NhdG9y
OworICAgIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEqIHNjYXZlbmdlcl9kYXRh
OwogCiAgICAgZGF0YSA9IGFyZzsKIApAQCAtNDA4LDE4ICszNzksMTkgQEAgc3RhdGljIGJvb2wg
c3RvcF9sb2NhbF9hbGxvY2F0b3JzX2lmX25lYwogICAgIAogICAgIHBhc19iaXR2ZWN0b3Jfc2V0
KGRhdGEtPnNob3VsZF9zdG9wX2JpdHZlY3RvciwgYWxsb2NhdG9yX2luZGV4LCBmYWxzZSk7CiAg
ICAgCi0gICAgYWxsb2NhdG9yID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxs
b2NhdG9yX2ltcGwoCisgICAgc2NhdmVuZ2VyX2RhdGEgPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
X2dldF9sb2NhbF9hbGxvY2F0b3JfaW1wbCgKICAgICAgICAgZGF0YS0+dGhyZWFkX2xvY2FsX2Nh
Y2hlLCBhbGxvY2F0b3JfaW5kZXgpOwotICAgIAotICAgIGlmIChhbGxvY2F0b3IgPT0gZGF0YS0+
cmVxdWVzdGluZ19hbGxvY2F0b3IpCisKKyAgICBpZiAoKHBhc19sb2NhbF9hbGxvY2F0b3IqKXNj
YXZlbmdlcl9kYXRhID09IGRhdGEtPnJlcXVlc3RpbmdfYWxsb2NhdG9yKQogICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICAKLSAgICBpZiAoIWFsbG9jYXRvci0+c2hvdWxkX3N0b3BfY291bnQpCisg
ICAgaWYgKCFzY2F2ZW5nZXJfZGF0YS0+c2hvdWxkX3N0b3BfY291bnQpCiAgICAgICAgIHJldHVy
biB0cnVlOwogICAgIAogICAgIGlmICh2ZXJib3NlKQotICAgICAgICBwYXNfbG9nKCJTdG9wcGlu
ZyBhbGxvY2F0b3IgJXAgYmVjYXVzZSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3N0b3BfbG9jYWxf
YWxsb2NhdG9yc19pZl9uZWNlc3NhcnlcbiIsIGFsbG9jYXRvcik7Ci0gICAgcGFzX2xvY2FsX2Fs
bG9jYXRvcl9zdG9wKGFsbG9jYXRvciwgcGFzX2xvY2tfbG9ja19tb2RlX2xvY2ssIGRhdGEtPmhl
YXBfbG9ja19ob2xkX21vZGUpOworICAgICAgICBwYXNfbG9nKCJTdG9wcGluZyBhbGxvY2F0b3Ig
JXAgYmVjYXVzZSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3N0b3BfbG9jYWxfYWxsb2NhdG9yc19p
Zl9uZWNlc3NhcnlcbiIsIHNjYXZlbmdlcl9kYXRhKTsKKyAgICBwYXNfbG9jYWxfYWxsb2NhdG9y
X3NjYXZlbmdlcl9kYXRhX3N0b3AoCisgICAgICAgIHNjYXZlbmdlcl9kYXRhLCBwYXNfbG9ja19s
b2NrX21vZGVfbG9jaywgZGF0YS0+aGVhcF9sb2NrX2hvbGRfbW9kZSk7CiAKICAgICByZXR1cm4g
dHJ1ZTsKIH0KQEAgLTQ1MSw2ICs0MjMsNyBAQCB2b2lkIHBhc190aHJlYWRfbG9jYWxfY2FjaGVf
c3RvcF9sb2NhbF9hCiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkCiBwcm9jZXNzX2Rl
YWxsb2NhdGlvbl9sb2dfd2l0aF9jb25maWcocGFzX3RocmVhZF9sb2NhbF9jYWNoZSogY2FjaGUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGVh
bGxvY2F0aW9uX21vZGUgZGVhbGxvY2F0aW9uX21vZGUsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcgcGFnZV9jb25maWcsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90KiBpbmRleCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50cHRyX3QgZW5jb2RlZF9iZWdpbiwK
QEAgLTQ3Nyw3ICs0NTAsOCBAQCBwcm9jZXNzX2RlYWxsb2NhdGlvbl9sb2dfd2l0aF9jb25maWco
cGFzCiAKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIGxhc3RfaGVsZF9sb2NrID0gKmhl
bGRfbG9jazsKLSAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfZGVhbGxvY2F0ZShiZWdp
biwgaGVsZF9sb2NrLCBwYWdlX2NvbmZpZyk7CisgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9w
YWdlX2RlYWxsb2NhdGUoCisgICAgICAgICAgICAgICAgYmVnaW4sIGhlbGRfbG9jaywgZGVhbGxv
Y2F0aW9uX21vZGUsIGNhY2hlLCBwYWdlX2NvbmZpZyk7CiAgICAgICAgICAgICBpZiAodmVyYm9z
ZSAmJiAqaGVsZF9sb2NrICE9IGxhc3RfaGVsZF9sb2NrICYmIGxhc3RfaGVsZF9sb2NrKQogICAg
ICAgICAgICAgICAgIHBhc19sb2coIlN3aXRjaGVkIGxvY2sgZnJvbSAlcCB0byAlcC5cbiIsIGxh
c3RfaGVsZF9sb2NrLCAqaGVsZF9sb2NrKTsKICAgICAgICAgICAgIApAQCAtNDk3LDE5ICs0NzEs
MTUgQEAgcHJvY2Vzc19kZWFsbG9jYXRpb25fbG9nX3dpdGhfY29uZmlnKHBhcwogICAgIH0KIH0K
IAotc3RhdGljIHZvaWQgZmx1c2hfZGVhbGxvY2F0aW9uX2xvZyhwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlKiB0aHJlYWRfbG9jYWxfY2FjaGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHBhc19sb2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9tb2RlLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBib29sIGlzX2xvY2FsKQorc3RhdGljIFBBU19BTFdBWVNf
SU5MSU5FIHZvaWQgZmx1c2hfZGVhbGxvY2F0aW9uX2xvZygKKyAgICBwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlKiB0aHJlYWRfbG9jYWxfY2FjaGUsCisgICAgcGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0
aW9uX21vZGUgZGVhbGxvY2F0aW9uX21vZGUpCiB7CiAgICAgc2l6ZV90IGluZGV4OwogICAgIHBh
c19sb2NrKiBoZWxkX2xvY2s7Ci0gICAgCi0gICAgaWYgKCF0aHJlYWRfbG9jYWxfY2FjaGUpCi0g
ICAgICAgIHJldHVybjsKLQotICAgIHBhc19sb2NrX2xvY2soJnRocmVhZF9sb2NhbF9jYWNoZS0+
bm9kZS0+bG9nX2ZsdXNoX2xvY2spOwotICAgIHBhc19jb21waWxlcl9mZW5jZSgpOwogCisgICAg
cGFzX2xvY2tfdGVzdGluZ19hc3NlcnRfaGVsZCgmdGhyZWFkX2xvY2FsX2NhY2hlLT5ub2RlLT5s
b2dfZmx1c2hfbG9jayk7CisgICAgCiAgICAgaW5kZXggPSB0aHJlYWRfbG9jYWxfY2FjaGUtPmRl
YWxsb2NhdGlvbl9sb2dfaW5kZXg7CiAgICAgaGVsZF9sb2NrID0gTlVMTDsKIApAQCAtNTIzLDcg
KzQ5Myw3IEBAIHN0YXRpYyB2b2lkIGZsdXNoX2RlYWxsb2NhdGlvbl9sb2cocGFzX3QKICNkZWZp
bmUgUEFTX0RFRklORV9TRUdSRUdBVEVEX1BBR0VfQ09ORklHX0tJTkQobmFtZSwgdmFsdWUpIFwK
ICAgICAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kXyAjIyBuYW1lOiBc
CiAgICAgICAgICAgICBwcm9jZXNzX2RlYWxsb2NhdGlvbl9sb2dfd2l0aF9jb25maWcoIFwKLSAg
ICAgICAgICAgICAgICB0aHJlYWRfbG9jYWxfY2FjaGUsIHZhbHVlLCAmaW5kZXgsIGVuY29kZWRf
YmVnaW4sICZoZWxkX2xvY2spOyBcCisgICAgICAgICAgICAgICAgdGhyZWFkX2xvY2FsX2NhY2hl
LCBkZWFsbG9jYXRpb25fbW9kZSwgdmFsdWUsICZpbmRleCwgZW5jb2RlZF9iZWdpbiwgJmhlbGRf
bG9jayk7IFwKICAgICAgICAgICAgIGJyZWFrOwogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3Bh
Z2VfY29uZmlnX2tpbmQuZGVmIgogI3VuZGVmIFBBU19ERUZJTkVfU0VHUkVHQVRFRF9QQUdFX0NP
TkZJR19LSU5ECkBAIC01MzEsMjQgKzUwMSwzNyBAQCBzdGF0aWMgdm9pZCBmbHVzaF9kZWFsbG9j
YXRpb25fbG9nKHBhc190CiAgICAgfQogICAgIAogICAgIHBhc19sb2NrX3N3aXRjaCgmaGVsZF9s
b2NrLCBOVUxMKTsKLSAgICAKLSAgICBpZiAoaXNfbG9jYWwpIHsKLSAgICAgICAgdGhyZWFkX2xv
Y2FsX2NhY2hlLT5kZWFsbG9jYXRpb25fbG9nX2luZGV4ID0gMDsKLSAgICAgICAgdGhyZWFkX2xv
Y2FsX2NhY2hlLT5udW1fbG9nZ2VkX2J5dGVzID0gMDsKLSAgICB9Cit9CiAKLSAgICBwYXNfY29t
cGlsZXJfZmVuY2UoKTsKLSAgICBwYXNfbG9ja191bmxvY2soJnRocmVhZF9sb2NhbF9jYWNoZS0+
bm9kZS0+bG9nX2ZsdXNoX2xvY2spOworc3RhdGljIHZvaWQgZmx1c2hfZGVhbGxvY2F0aW9uX2xv
Z19mb3Jfc2NhdmVuZ2VyKHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIHRocmVhZF9sb2NhbF9jYWNo
ZSkKK3sKKyAgICBpZiAoIXRocmVhZF9sb2NhbF9jYWNoZS0+ZGVhbGxvY2F0aW9uX2xvZ19pbmRl
eCkKKyAgICAgICAgcmV0dXJuOwogICAgIAotICAgIGlmIChoZWFwX2xvY2tfaG9sZF9tb2RlID09
IHBhc19sb2NrX2lzX25vdF9oZWxkKQotICAgICAgICBwYXNfc2NhdmVuZ2VyX25vdGlmeV9lbGln
aWJpbGl0eV9pZl9uZWVkZWQoKTsKKyAgICBmbHVzaF9kZWFsbG9jYXRpb25fbG9nKHRocmVhZF9s
b2NhbF9jYWNoZSwgcGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0aW9uX2RpcmVjdF9tb2RlKTsKIH0K
IAogdm9pZCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2ZsdXNoX2RlYWxsb2NhdGlvbl9sb2cocGFz
X3RocmVhZF9sb2NhbF9jYWNoZSogdGhyZWFkX2xvY2FsX2NhY2hlLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2xvY2tfaG9sZF9tb2RlIGhl
YXBfbG9ja19ob2xkX21vZGUpCiB7Ci0gICAgYm9vbCBpc19sb2NhbCA9IHRydWU7Ci0gICAgZmx1
c2hfZGVhbGxvY2F0aW9uX2xvZyh0aHJlYWRfbG9jYWxfY2FjaGUsIGhlYXBfbG9ja19ob2xkX21v
ZGUsIGlzX2xvY2FsKTsKKyAgICBpZiAoIXRocmVhZF9sb2NhbF9jYWNoZSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgcGFzX2xvY2tfbG9jaygmdGhyZWFkX2xvY2FsX2NhY2hlLT5ub2RlLT5sb2df
Zmx1c2hfbG9jayk7CisKKyAgICBmbHVzaF9kZWFsbG9jYXRpb25fbG9nKHRocmVhZF9sb2NhbF9j
YWNoZSwgcGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0aW9uX3RvX3ZpZXdfY2FjaGVfbW9kZSk7Cisg
ICAgCisgICAgdGhyZWFkX2xvY2FsX2NhY2hlLT5kZWFsbG9jYXRpb25fbG9nX2luZGV4ID0gMDsK
KyAgICB0aHJlYWRfbG9jYWxfY2FjaGUtPm51bV9sb2dnZWRfYnl0ZXMgPSAwOworCisgICAgLyog
RGlydHlpbmcgdGhlIGRlYWxsb2NhdGlvbiBsb2cgaXMgYSBzaWduYWwgdG8gdGhlIHNjYXZlbmdl
ciB0aGF0IHdlIGFyZSBhY3RpdmVseSBvcGVyYXRpbmcgb24KKyAgICAgICB0aGlzIGxvZy4gKi8K
KyAgICB0aHJlYWRfbG9jYWxfY2FjaGUtPmRlYWxsb2NhdGlvbl9sb2dfZGlydHkgPSB0cnVlOwor
CisgICAgcGFzX2xvY2tfdW5sb2NrKCZ0aHJlYWRfbG9jYWxfY2FjaGUtPm5vZGUtPmxvZ19mbHVz
aF9sb2NrKTsKKyAgICAKKyAgICBpZiAoaGVhcF9sb2NrX2hvbGRfbW9kZSA9PSBwYXNfbG9ja19p
c19ub3RfaGVsZCkKKyAgICAgICAgcGFzX3NjYXZlbmdlcl9ub3RpZnlfZWxpZ2liaWxpdHlfaWZf
bmVlZGVkKCk7CiB9CiAKIHN0YXRpYyB2b2lkIHN1c3BlbmQocGFzX3RocmVhZF9sb2NhbF9jYWNo
ZSogY2FjaGUpCkBAIC01ODcsNyArNTcwLDcgQEAgc3RhdGljIHZvaWQgcmVzdW1lKHBhc190aHJl
YWRfbG9jYWxfY2FjaAogICAgIAogICAgIGlmIChjYWNoZS0+dGhyZWFkID09IHB0aHJlYWRfc2Vs
ZigpKQogICAgICAgICByZXR1cm47Ci0gICAgCisKICAgICByZXN1bHQgPSB0aHJlYWRfcmVzdW1l
KHB0aHJlYWRfbWFjaF90aHJlYWRfbnAoY2FjaGUtPnRocmVhZCkpOwogICAgIAogICAgIFBBU19B
U1NFUlQocmVzdWx0ID09IEtFUk5fU1VDQ0VTUyk7CkBAIC02MjcsNyArNjEwLDI2IEBAIGJvb2wg
cGFzX3RocmVhZF9sb2NhbF9jYWNoZV9mb3JfYWxsKHBhc18KICAgICAgICAgY2FjaGUgPSBub2Rl
LT5jYWNoZTsKICAgICAgICAgaWYgKCFjYWNoZSkKICAgICAgICAgICAgIGNvbnRpbnVlOwotICAg
ICAgICAKKworICAgICAgICBwYXNfbG9ja19sb2NrKCZub2RlLT5sb2dfZmx1c2hfbG9jayk7CisK
KyAgICAgICAgc3dpdGNoIChkZWFsbG9jYXRvcl9hY3Rpb24pIHsKKyAgICAgICAgY2FzZSBwYXNf
ZGVhbGxvY2F0b3Jfc2NhdmVuZ2Vfbm9fYWN0aW9uOgorICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICAKKyAgICAgICAgY2FzZSBwYXNfZGVhbGxvY2F0b3Jfc2NhdmVuZ2VfZmx1c2hfbG9n
X2lmX2NsZWFuX2FjdGlvbjoKKyAgICAgICAgICAgIGlmIChjYWNoZS0+ZGVhbGxvY2F0aW9uX2xv
Z19kaXJ0eSkgeworICAgICAgICAgICAgICAgIGNhY2hlLT5kZWFsbG9jYXRpb25fbG9nX2RpcnR5
ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gISFjYWNoZS0+ZGVhbGxvY2F0aW9u
X2xvZ19pbmRleDsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIGZsdXNoX2Rl
YWxsb2NhdGlvbl9sb2dfZm9yX3NjYXZlbmdlcihjYWNoZSk7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIAorICAgICAgICBjYXNlIHBhc19kZWFsbG9jYXRvcl9zY2F2ZW5nZV9mbHVz
aF9sb2dfYWN0aW9uOgorICAgICAgICAgICAgZmx1c2hfZGVhbGxvY2F0aW9uX2xvZ19mb3Jfc2Nh
dmVuZ2VyKGNhY2hlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKICAgICAgICAg
aWYgKGFsbG9jYXRvcl9hY3Rpb24gIT0gcGFzX2FsbG9jYXRvcl9zY2F2ZW5nZV9ub19hY3Rpb24p
IHsKICAgICAgICAgICAgIGJvb2wgZGlkX3N1c3BlbmQ7CiAgICAgICAgICAgICBwYXNfdGhyZWFk
X2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIGxheW91dF9ub2RlOwpAQCAtNjM2LDM5ICs2MzgsNDAg
QEAgYm9vbCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2Zvcl9hbGwocGFzXwogCiAgICAgICAgICAg
ICBmb3IgKFBBU19USFJFQURfTE9DQUxfQ0FDSEVfTEFZT1VUX0VBQ0hfQUxMT0NBVE9SKGxheW91
dF9ub2RlKSkgewogICAgICAgICAgICAgICAgIHBhc19hbGxvY2F0b3JfaW5kZXggYWxsb2NhdG9y
X2luZGV4OwotICAgICAgICAgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3IqIGFsbG9jYXRvcjsK
KyAgICAgICAgICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhKiBzY2F2
ZW5nZXJfZGF0YTsKIAotICAgICAgICAgICAgICAgIGFsbG9jYXRvcl9pbmRleCA9IHBhc190aHJl
YWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X2FsbG9jYXRvcl9pbmRleChsYXlvdXRfbm9k
ZSk7CisgICAgICAgICAgICAgICAgYWxsb2NhdG9yX2luZGV4ID0KKyAgICAgICAgICAgICAgICAg
ICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfYWxsb2NhdG9yX2luZGV4
X2dlbmVyaWMobGF5b3V0X25vZGUpOwogCiAgICAgICAgICAgICAgICAgaWYgKGFsbG9jYXRvcl9p
bmRleCA+PSBjYWNoZS0+YWxsb2NhdG9yX2luZGV4X3VwcGVyX2JvdW5kKQogICAgICAgICAgICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBhbGxvY2F0
b3IgPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0b3JfaW1wbChjYWNo
ZSwgYWxsb2NhdG9yX2luZGV4KTsKLSAgICAgICAgICAgICAgICAKKworICAgICAgICAgICAgICAg
IHNjYXZlbmdlcl9kYXRhID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2Nh
dG9yX2ltcGwoY2FjaGUsIGFsbG9jYXRvcl9pbmRleCk7CisKICAgICAgICAgICAgICAgICBpZiAo
YWxsb2NhdG9yX2FjdGlvbiA9PSBwYXNfYWxsb2NhdG9yX3NjYXZlbmdlX3JlcXVlc3Rfc3RvcF9h
Y3Rpb24pIHsKICAgICAgICAgICAgICAgICAgICAgdWludDhfdCBzaG91bGRfc3RvcF9jb3VudDsK
ICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKQog
ICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2xvZygiRG9pbmcgdGhlIHJlcXVlc3QgdGhpbmd5
LlxuIik7CiAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICBpZiAoYWxs
b2NhdG9yLT5kaXJ0eSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoc2NhdmVuZ2VyX2RhdGEt
PmRpcnR5KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwYXNfbG9nKCJJdCB3YXMgZGlydHkuXG4iKTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGFsbG9jYXRvci0+ZGlydHkgPSBmYWxzZTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHNjYXZlbmdlcl9kYXRhLT5kaXJ0eSA9IGZhbHNlOwogICAgICAgICAgICAgICAg
ICAgICAgICAgcmVzdWx0ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVl
OwogICAgICAgICAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgICAgICAgICAgLyogQmFpbCBv
dXQgaWYgaXQncyBubyBsb25nZXIgYWN0aXZlLiAqLwotICAgICAgICAgICAgICAgICAgICBpZiAo
IXBhc19sb2NhbF9hbGxvY2F0b3JfaXNfYWN0aXZlKGFsbG9jYXRvcikpIHsKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKCFwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhX2lzX2FjdGl2
ZShzY2F2ZW5nZXJfZGF0YSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2ZXJib3Nl
KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19sb2coIkl0IHdhcyBlbXB0eS5cbiIp
OwogICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAg
IH0KIAotICAgICAgICAgICAgICAgICAgICBzaG91bGRfc3RvcF9jb3VudCA9IGFsbG9jYXRvci0+
c2hvdWxkX3N0b3BfY291bnQ7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZF9zdG9wX2NvdW50
ID0gc2NhdmVuZ2VyX2RhdGEtPnNob3VsZF9zdG9wX2NvdW50OwogICAgICAgICAgICAgICAgICAg
ICBpZiAoc2hvdWxkX3N0b3BfY291bnQgPCBwYXNfbG9jYWxfYWxsb2NhdG9yX3Nob3VsZF9zdG9w
X2NvdW50X2Zvcl9zdXNwZW5kKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhbGxvY2F0b3It
PnNob3VsZF9zdG9wX2NvdW50ID0gKytzaG91bGRfc3RvcF9jb3VudDsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHNjYXZlbmdlcl9kYXRhLT5zaG91bGRfc3RvcF9jb3VudCA9ICsrc2hvdWxkX3N0
b3BfY291bnQ7CiAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg
ICAgIFBBU19BU1NFUlQoc2hvdWxkX3N0b3BfY291bnQKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPD0gcGFzX2xvY2FsX2FsbG9jYXRvcl9zaG91bGRfc3RvcF9jb3VudF9mb3Jf
c3VzcGVuZCk7CkBAIC02OTMsNyArNjk2LDcgQEAgYm9vbCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
X2Zvcl9hbGwocGFzXwogICAgICAgICAgICAgICAgICAgICBQQVNfQVNTRVJUKGFsbG9jYXRvcl9h
Y3Rpb24gPT0gcGFzX2FsbG9jYXRvcl9zY2F2ZW5nZV9mb3JjZV9zdG9wX2FjdGlvbik7CiAgICAg
ICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAgICAgaWYgKCFwYXNfbG9jYWxfYWxsb2NhdG9y
X2lzX2FjdGl2ZShhbGxvY2F0b3IpKSB7CisgICAgICAgICAgICAgICAgaWYgKCFwYXNfbG9jYWxf
YWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhX2lzX2FjdGl2ZShzY2F2ZW5nZXJfZGF0YSkpIHsKICAg
ICAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgICAgICAgICAgICAgICAgICBw
YXNfbG9nKCJJdCB3YXMgZW1wdHkuXG4iKTsKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7
CkBAIC03MDcsMjMgKzcxMCwyMiBAQCBib29sIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZm9yX2Fs
bChwYXNfCiAgICAgICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2Up
Ci0gICAgICAgICAgICAgICAgICAgIHBhc19sb2coIk5lZWQgdG8gc3VzcGVuZCBmb3IgYWxsb2Nh
dG9yICVwXG4iLCBhbGxvY2F0b3IpOworICAgICAgICAgICAgICAgICAgICBwYXNfbG9nKCJOZWVk
IHRvIHN1c3BlbmQgZm9yIGFsbG9jYXRvciAlcFxuIiwgc2NhdmVuZ2VyX2RhdGEpOwogICAgICAg
ICAgICAgICAgIAogICAgICAgICAgICAgICAgIGlmICghZGlkX3N1c3BlbmQpIHsKICAgICAgICAg
ICAgICAgICAgICAgc3VzcGVuZChjYWNoZSk7Ci0gICAgICAgICAgICAgICAgICAgIAogICAgICAg
ICAgICAgICAgICAgICBkaWRfc3VzcGVuZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGlmIChhbGxvY2F0b3ItPmlzX2luX3VzZSkg
eworICAgICAgICAgICAgICAgIGlmIChzY2F2ZW5nZXJfZGF0YS0+aXNfaW5fdXNlKSB7CiAgICAg
ICAgICAgICAgICAgICAgIHJlc3VsdCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgIGNvbnRp
bnVlOwogICAgICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKQot
ICAgICAgICAgICAgICAgICAgICBwYXNfbG9nKCJTdG9wcGluZyBhbGxvY2F0b3IgJXAgd2hpbGUg
c3VzcGVuZGVkXG4iLCBhbGxvY2F0b3IpOwotICAgICAgICAgICAgICAgIGlmICghcGFzX2xvY2Fs
X2FsbG9jYXRvcl9zdG9wKAotICAgICAgICAgICAgICAgICAgICAgICAgYWxsb2NhdG9yLCBwYXNf
bG9ja19sb2NrX21vZGVfdHJ5X2xvY2ssIHBhc19sb2NrX2lzX2hlbGQpKQorICAgICAgICAgICAg
ICAgICAgICBwYXNfbG9nKCJTdG9wcGluZyBhbGxvY2F0b3IgJXAgd2hpbGUgc3VzcGVuZGVkXG4i
LCBzY2F2ZW5nZXJfZGF0YSk7CisgICAgICAgICAgICAgICAgaWYgKCFwYXNfbG9jYWxfYWxsb2Nh
dG9yX3NjYXZlbmdlcl9kYXRhX3N0b3AoCisgICAgICAgICAgICAgICAgICAgICAgICBzY2F2ZW5n
ZXJfZGF0YSwgcGFzX2xvY2tfbG9ja19tb2RlX3RyeV9sb2NrLCBwYXNfbG9ja19pc19oZWxkKSkK
ICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gdHJ1ZTsKICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIApAQCAtNzMxLDEyICs3MzMsNyBAQCBib29sIHBhc190aHJlYWRfbG9jYWxfY2FjaGVf
Zm9yX2FsbChwYXNfCiAgICAgICAgICAgICAgICAgcmVzdW1lKGNhY2hlKTsKICAgICAgICAgfQog
ICAgICAgICAKLSAgICAgICAgaWYgKGRlYWxsb2NhdG9yX2FjdGlvbiA9PSBwYXNfZGVhbGxvY2F0
b3Jfc2NhdmVuZ2VfZmx1c2hfbG9nX2FjdGlvbikgewotICAgICAgICAgICAgYm9vbCBpc19sb2Nh
bDsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXNfbG9jYWwgPSBmYWxzZTsKLSAgICAgICAg
ICAgIGZsdXNoX2RlYWxsb2NhdGlvbl9sb2coY2FjaGUsIHBhc19sb2NrX2lzX2hlbGQsIGlzX2xv
Y2FsKTsKLSAgICAgICAgfQorICAgICAgICBwYXNfbG9ja191bmxvY2soJm5vZGUtPmxvZ19mbHVz
aF9sb2NrKTsKICAgICB9CiAgICAgCiAgICAgcGFzX2hlYXBfbG9ja191bmxvY2tfY29uZGl0aW9u
YWxseShoZWFwX2xvY2tfaG9sZF9tb2RlKTsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGUuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlLmgJKHJldmlz
aW9uIDI3OTk2NCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJl
YWRfbG9jYWxfY2FjaGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRl
ZiBQQVNfVEhSRUFEX0xPQ0FMX0NBQ0hFX0gKICNkZWZpbmUgUEFTX1RIUkVBRF9MT0NBTF9DQUNI
RV9ICiAKKyNpbmNsdWRlICJwYXNfYWxsb2NhdG9yX2luZGV4LmgiCiAjaW5jbHVkZSAicGFzX2Fs
bG9jYXRvcl9zY2F2ZW5nZV9hY3Rpb24uaCIKICNpbmNsdWRlICJwYXNfZGVhbGxvY2F0b3Jfc2Nh
dmVuZ2VfYWN0aW9uLmgiCiAjaW5jbHVkZSAicGFzX2Zhc3RfdGxzLmgiCkBAIC01Niw2ICs1Nywx
MCBAQCBzdHJ1Y3QgcGFzX3RocmVhZF9sb2NhbF9jYWNoZSB7CiAKICAgICB1bnNpZ25lZCBkZWFs
bG9jYXRpb25fbG9nX2luZGV4OwogCisgICAgLyogQSBkaXJ0eSBhbGxvY2F0aW9uIGxvZyBpcyBv
bmUgdGhhdCBoYXMgYmVlbiBmbHVzaGVkIGJ5IHRoZSB0aHJlYWQgcmVjZW50bHkuIEEgY2xlYW4g
b25lIGlzCisgICAgICAgb25lIHRoYXQgaGFzbid0IGJlZW4gdG91Y2hlZCBieSB0aGUgdGhyZWFk
IChleGNlcHQgbWF5YmUgYnkgYXBwZW5kaW5nIG1vcmUgdGhpbmdzIHRvIGl0KS4gKi8KKyAgICBi
b29sIGRlYWxsb2NhdGlvbl9sb2dfZGlydHk7CisKICAgICBzaXplX3QgbnVtX2xvZ2dlZF9ieXRl
czsgLyogVGhpcyB1bmRlcmNvdW50cyBzaW5jZSB3aGVuIHdlIGFwcGVuZCBzbWFsbCBvYmplY3Rz
IHdlIGRvbid0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdWNoIHRoaXMuICov
CiAKQEAgLTc1LDcgKzgwLDcgQEAgc3RydWN0IHBhc190aHJlYWRfbG9jYWxfY2FjaGUgewogCiBQ
QVNfQVBJIGV4dGVybiBwYXNfZmFzdF90bHMgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9mYXN0X3Rs
czsKIAotI2RlZmluZSBQQVNfVEhSRUFEX0xPQ0FMX0tFWSBfX1BUS19GUkFNRVdPUktfSkFWQVND
UklQVENPUkVfS0VZNAorI2RlZmluZSBQQVNfVEhSRUFEX0xPQ0FMX0tFWSBfX1BUS19GUkFNRVdP
UktfSkFWQVNDUklQVENPUkVfS0VZMAogCiBzdGF0aWMgaW5saW5lIHBhc190aHJlYWRfbG9jYWxf
Y2FjaGUqIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfdHJ5X2dldCh2b2lkKQogewpAQCAtMTY4LDEy
ICsxNzMsMTIgQEAgUEFTX0FQSSBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3VsdCBwYXNfdAogICAg
IHVuc2lnbmVkIGFsbG9jYXRvcl9pbmRleCwKICAgICBwYXNfbG9ja19ob2xkX21vZGUgaGVhcF9s
b2NrX2hvbGRfbW9kZSk7CiAKLXN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfbG9jYWxfYWxs
b2NhdG9yKgorc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQqCiBwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0b3JfaW1wbCgKICAgICBwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlKiB0aHJlYWRfbG9jYWxfY2FjaGUsCiAgICAgdWludHB0cl90IGFsbG9jYXRvcl9pbmRleCkK
IHsKLSAgICByZXR1cm4gKHBhc19sb2NhbF9hbGxvY2F0b3IqKSh0aHJlYWRfbG9jYWxfY2FjaGUt
PmxvY2FsX2FsbG9jYXRvcnMgKyBhbGxvY2F0b3JfaW5kZXgpOworICAgIHJldHVybiAodm9pZCop
KHRocmVhZF9sb2NhbF9jYWNoZS0+bG9jYWxfYWxsb2NhdG9ycyArIGFsbG9jYXRvcl9pbmRleCk7
CiB9CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3Vs
dApAQCAtMTgzLDYgKzE4OCwxMCBAQCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9sb2NhbF9h
bGxvY2F0CiAgICAgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUpCiB7CiAg
ICAgaWYgKFBBU19VTkxJS0VMWShhbGxvY2F0b3JfaW5kZXggPj0gdGhyZWFkX2xvY2FsX2NhY2hl
LT5hbGxvY2F0b3JfaW5kZXhfdXBwZXJfYm91bmQpKSB7CisgICAgICAgIC8qIEl0IGNvdWxkIGJl
IHRoYXQgd2UganVzdCBkb24ndCBoYXZlIGFuIGFsbG9jYXRvciBpbmRleCB5ZXQuICovCisgICAg
ICAgIGlmIChhbGxvY2F0b3JfaW5kZXggPj0gKHBhc19hbGxvY2F0b3JfaW5kZXgpVUlOVF9NQVgp
CisgICAgICAgICAgICByZXR1cm4gcGFzX2xvY2FsX2FsbG9jYXRvcl9yZXN1bHRfY3JlYXRlX2Zh
aWx1cmUoKTsKKyAgICAKICAgICAgICAgcmV0dXJuIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0
X2xvY2FsX2FsbG9jYXRvcl9zbG93KAogICAgICAgICAgICAgdGhyZWFkX2xvY2FsX2NhY2hlLCBh
bGxvY2F0b3JfaW5kZXgsIGhlYXBfbG9ja19ob2xkX21vZGUpOwogICAgIH0KSW5kZXg6IFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0
LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9sYXlvdXQuYwkocmV2aXNpb24gMjc5OTY0KQorKysgU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXQuYwko
d29ya2luZyBjb3B5KQpAQCAtMzEsOCArMzEsOSBAQAogCiAjaW5jbHVkZSAicGFzX2hlYXBfbG9j
ay5oIgogI2luY2x1ZGUgInBhc19sYXJnZV91dGlsaXR5X2ZyZWVfaGVhcC5oIgorI2luY2x1ZGUg
InBhc19sb2NhbF92aWV3X2NhY2hlX25vZGUuaCIKICNpbmNsdWRlICJwYXNfcmVkdW5kYW50X2xv
Y2FsX2FsbG9jYXRvcl9ub2RlLmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3Np
emVfZGlyZWN0b3J5X2lubGluZXMuaCIKKyNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeV9pbmxpbmVzLmgiCiAjaW5jbHVkZSAicGFzX3V0aWxzLmgiCiAKIHBhc190aHJlYWRf
bG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfZmly
c3Rfbm9kZSA9IE5VTEw7CkBAIC00NSwxNyArNDYsMTMgQEAgcGFzX2FsbG9jYXRvcl9pbmRleCBw
YXNfdGhyZWFkX2xvY2FsX2NhYwogCiAgICAgcGFzX2FsbG9jYXRvcl9pbmRleCByZXN1bHQ7CiAg
ICAgYm9vbCBkaWRfb3ZlcmZsb3c7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGly
ZWN0b3J5KiBkaXJlY3Rvcnk7CiAKICAgICBwYXNfaGVhcF9sb2NrX2Fzc2VydF9oZWxkKCk7CiAK
ICAgICBQQVNfQVNTRVJUKAotICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9u
b2RlX2dldF9hbGxvY2F0b3JfaW5kZXgobm9kZSkKKyAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9sYXlvdXRfbm9kZV9nZXRfYWxsb2NhdG9yX2luZGV4X2dlbmVyaWMobm9kZSkKICAgICAg
ICAgPT0gKHBhc19hbGxvY2F0b3JfaW5kZXgpVUlOVF9NQVgpOwogCi0gICAgZGlyZWN0b3J5ID0g
cGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfZGlyZWN0b3J5KG5vZGUpOwot
ICAgIFBBU19BU1NFUlQoZGlyZWN0b3J5KTsKLQogICAgIFBBU19BU1NFUlQoIXBhc190aHJlYWRf
bG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X25leHQobm9kZSkpOwogICAgIAogICAgIHJlc3Vs
dCA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25leHRfYWxsb2NhdG9yX2luZGV4OwpA
QCAtNjYsMTIgKzYzLDEyIEBAIHBhc19hbGxvY2F0b3JfaW5kZXggcGFzX3RocmVhZF9sb2NhbF9j
YWMKICAgICBpZiAodmVyYm9zZSkgewogICAgICAgICBwYXNfbG9nKCJwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX2xheW91dF9hZGRfbm9kZTogbm9kZSA9ICVwLCBhbGxvY2F0b3JfaW5kZXggPSAldSwg
IgogICAgICAgICAgICAgICAgICJudW1fYWxsb2NhdG9yX2luZGljZXMgPSAldVxuIiwKLSAgICAg
ICAgICAgICAgICBub2RlLCByZXN1bHQsIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVj
dG9yeV9udW1fYWxsb2NhdG9yX2luZGljZXMoZGlyZWN0b3J5KSk7CisgICAgICAgICAgICAgICAg
bm9kZSwgcmVzdWx0LCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9udW1fYWxsb2NhdG9y
X2luZGljZXMobm9kZSkpOwogICAgIH0KIAogICAgIGRpZF9vdmVyZmxvdyA9IF9fYnVpbHRpbl9h
ZGRfb3ZlcmZsb3coCiAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25leHRf
YWxsb2NhdG9yX2luZGV4LAotICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJl
Y3RvcnlfbnVtX2FsbG9jYXRvcl9pbmRpY2VzKGRpcmVjdG9yeSksCisgICAgICAgIHBhc190aHJl
YWRfbG9jYWxfY2FjaGVfbGF5b3V0X251bV9hbGxvY2F0b3JfaW5kaWNlcyhub2RlKSwKICAgICAg
ICAgJnBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25leHRfYWxsb2NhdG9yX2luZGV4KTsK
ICAgICBQQVNfQVNTRVJUKCFkaWRfb3ZlcmZsb3cpOwogCkBAIC05Myw3ICs5MCw3IEBAIHBhc19h
bGxvY2F0b3JfaW5kZXggcGFzX3RocmVhZF9sb2NhbF9jYWMKIH0KIAogcGFzX2FsbG9jYXRvcl9p
bmRleCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9hZGQoCi0gICAgcGFzX3NlZ3JlZ2F0
ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCisgICAgcGFzX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSkKIHsKICAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJi
b3NlID0gZmFsc2U7CiAKQEAgLTEwNCwxMSArMTAxLDExIEBAIHBhc19hbGxvY2F0b3JfaW5kZXgg
cGFzX3RocmVhZF9sb2NhbF9jYWMKICAgICB9CiAgICAgCiAgICAgcmV0dXJuIHBhc190aHJlYWRf
bG9jYWxfY2FjaGVfbGF5b3V0X2FkZF9ub2RlKAotICAgICAgICBwYXNfd3JhcF9zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeShkaXJlY3RvcnkpKTsKKyAgICAgICAgcGFzX3dyYXBfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeShkaXJlY3RvcnkpKTsKIH0KIAogcGFzX2FsbG9jYXRvcl9p
bmRleCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9kdXBsaWNhdGUoCi0gICAgcGFzX3Nl
Z3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCisgICAgcGFzX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSkKIHsKICAgICBwYXNfcmVkdW5kYW50X2xv
Y2FsX2FsbG9jYXRvcl9ub2RlKiByZWR1bmRhbnRfbm9kZTsKIApAQCAtMTE4LDQgKzExNSwxNCBA
QCBwYXNfYWxsb2NhdG9yX2luZGV4IHBhc190aHJlYWRfbG9jYWxfY2FjCiAgICAgICAgIHBhc193
cmFwX3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZShyZWR1bmRhbnRfbm9kZSkpOwogfQog
CitwYXNfYWxsb2NhdG9yX2luZGV4IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2FkZF92
aWV3X2NhY2hlKAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rvcnkp
Cit7CisgICAgcGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZSogY2FjaGVfbm9kZTsKKworICAgIGNh
Y2hlX25vZGUgPSBwYXNfbG9jYWxfdmlld19jYWNoZV9ub2RlX2NyZWF0ZShkaXJlY3RvcnkpOwor
CisgICAgcmV0dXJuIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2FkZF9ub2RlKHBhc193
cmFwX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZShjYWNoZV9ub2RlKSk7Cit9CisKICNlbmRpZiAvKiBM
SUJQQVNfRU5BQkxFRCAqLwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dC5oCShy
ZXZpc2lvbiAyNzk5NjQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDMsMTAgKzQz
LDEzIEBAIFBBU19BUEkgcGFzX2FsbG9jYXRvcl9pbmRleCBwYXNfdGhyZWFkX2wKICAgICBwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIG5vZGUpOwogCiBQQVNfQVBJIHBhc19hbGxv
Y2F0b3JfaW5kZXggcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfYWRkKAotICAgIHBhc19z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KTsKKyAgICBwYXNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KTsKIAogUEFTX0FQSSBwYXNfYWxsb2Nh
dG9yX2luZGV4IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2R1cGxpY2F0ZSgKLSAgICBw
YXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7CisgICAgcGFz
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7CisKK1BBU19BUEkgcGFzX2Fs
bG9jYXRvcl9pbmRleCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9hZGRfdmlld19jYWNo
ZSgKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KTsKIAogI2Rl
ZmluZSBQQVNfVEhSRUFEX0xPQ0FMX0NBQ0hFX0xBWU9VVF9FQUNIX0FMTE9DQVRPUihub2RlKSBc
CiAgICAgbm9kZSA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2ZpcnN0X25vZGU7IFwK
SW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxf
Y2FjaGVfbGF5b3V0X25vZGUuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlLmMJKHJldmlzaW9u
IDI3OTk2NCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRf
bG9jYWxfY2FjaGVfbGF5b3V0X25vZGUuYwkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChjKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOSwzNiArMjksNzUgQEAK
IAogI2luY2x1ZGUgInBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUuaCIKIAorI2lu
Y2x1ZGUgInBhc19sb2NhbF92aWV3X2NhY2hlLmgiCisjaW5jbHVkZSAicGFzX2xvY2FsX3ZpZXdf
Y2FjaGVfbm9kZS5oIgogI2luY2x1ZGUgInBhc19yZWR1bmRhbnRfbG9jYWxfYWxsb2NhdG9yX25v
ZGUuaCIKLSNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkuaCIK
KyNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9pbmxpbmVzLmgiCiAKLXBh
c19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSoKK3Bhc19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5KgogcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfZGlyZWN0
b3J5KHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgbm9kZSkKIHsKLSAgICBpZiAo
cGFzX2lzX3dyYXBwZWRfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnkobm9kZSkpCi0g
ICAgICAgIHJldHVybiBwYXNfdW53cmFwX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
KG5vZGUpOworICAgIGlmIChwYXNfaXNfd3JhcHBlZF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
KG5vZGUpKQorICAgICAgICByZXR1cm4gcGFzX3Vud3JhcF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0
b3J5KG5vZGUpOwogCi0gICAgcmV0dXJuIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3Np
emVfZGlyZWN0b3J5X3B0cl9sb2FkKAotICAgICAgICAmcGFzX3Vud3JhcF9yZWR1bmRhbnRfbG9j
YWxfYWxsb2NhdG9yX25vZGUobm9kZSktPmRpcmVjdG9yeSk7CisgICAgaWYgKHBhc19pc193cmFw
cGVkX3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZShub2RlKSl7CisgICAgICAgIHJldHVy
biBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxs
KAorICAgICAgICAgICAgJnBhc191bndyYXBfcmVkdW5kYW50X2xvY2FsX2FsbG9jYXRvcl9ub2Rl
KG5vZGUpLT5kaXJlY3RvcnkpOworICAgIH0KKworICAgIHJldHVybiBwYXNfY29tcGFjdF9zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKAorICAgICAgICAmcGFzX3Vu
d3JhcF9sb2NhbF92aWV3X2NhY2hlX25vZGUobm9kZSktPmRpcmVjdG9yeSk7Cit9CisKK3Bhc19h
bGxvY2F0b3JfaW5kZXgKK3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X251bV9hbGxvY2F0
b3JfaW5kaWNlcyhwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIG5vZGUpCit7Cisg
ICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeTsKKworICAgIGRpcmVj
dG9yeSA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X2RpcmVjdG9yeShu
b2RlKTsKKyAgICAKKyAgICBpZiAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9y
ZXByZXNlbnRzX2FsbG9jYXRvcihub2RlKSkKKyAgICAgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5X251bV9hbGxvY2F0b3JfaW5kaWNlcyhkaXJlY3RvcnkpOworCisgICAg
cmV0dXJuIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X251bV9hbGxvY2F0b3JfaW5kaWNl
c19mb3JfYWxsb2NhdG9yX3NpemUoCisgICAgICAgIFBBU19MT0NBTF9WSUVXX0NBQ0hFX1NJWkUo
cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlfdmlld19jYWNoZV9jYXBhY2l0eShkaXJlY3Rv
cnkpKSk7CiB9CiAKIHN0YXRpYyBwYXNfYWxsb2NhdG9yX2luZGV4KgogYWxsb2NhdG9yX2luZGV4
X3B0cihwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIG5vZGUpCiB7Ci0gICAgaWYg
KHBhc19pc193cmFwcGVkX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KG5vZGUpKSB7
Ci0gICAgICAgIHJldHVybiAmcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2Rh
dGFfcHRyX2xvYWQoCi0gICAgICAgICAgICAmcGFzX3Vud3JhcF9zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeShub2RlKS0+ZGF0YSktPmFsbG9jYXRvcl9pbmRleDsKKyAgICBpZiAocGFz
X2lzX3dyYXBwZWRfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeShub2RlKSkgeworICAgICAgICBy
ZXR1cm4gJnBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGFfcHRyX2xvYWQoCisgICAg
ICAgICAgICAmcGFzX3Vud3JhcF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KG5vZGUpLT5kYXRh
KS0+YWxsb2NhdG9yX2luZGV4OwogICAgIH0KIAotICAgIHJldHVybiAmcGFzX3Vud3JhcF9yZWR1
bmRhbnRfbG9jYWxfYWxsb2NhdG9yX25vZGUobm9kZSktPmFsbG9jYXRvcl9pbmRleDsKKyAgICBp
ZiAocGFzX2lzX3dyYXBwZWRfcmVkdW5kYW50X2xvY2FsX2FsbG9jYXRvcl9ub2RlKG5vZGUpKQor
ICAgICAgICByZXR1cm4gJnBhc191bndyYXBfcmVkdW5kYW50X2xvY2FsX2FsbG9jYXRvcl9ub2Rl
KG5vZGUpLT5hbGxvY2F0b3JfaW5kZXg7CisKKyAgICByZXR1cm4gJnBhc19jb21wYWN0X3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoCisgICAgICAgICZwYXNfdW53
cmFwX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZShub2RlKS0+ZGlyZWN0b3J5KS0+dmlld19jYWNoZV9p
bmRleDsKIH0KIAogcGFzX2FsbG9jYXRvcl9pbmRleAotcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9s
YXlvdXRfbm9kZV9nZXRfYWxsb2NhdG9yX2luZGV4KHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5
b3V0X25vZGUgbm9kZSkKK3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X2Fs
bG9jYXRvcl9pbmRleF9nZW5lcmljKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUg
bm9kZSkKIHsKICAgICByZXR1cm4gKmFsbG9jYXRvcl9pbmRleF9wdHIobm9kZSk7CiB9CiAKK3Bh
c19hbGxvY2F0b3JfaW5kZXgKK3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0
X2FsbG9jYXRvcl9pbmRleF9mb3JfYWxsb2NhdG9yKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5
b3V0X25vZGUgbm9kZSkKK3sKKyAgICBQQVNfQVNTRVJUKHBhc190aHJlYWRfbG9jYWxfY2FjaGVf
bGF5b3V0X25vZGVfcmVwcmVzZW50c19hbGxvY2F0b3Iobm9kZSkpOworICAgIHJldHVybiBwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9hbGxvY2F0b3JfaW5kZXhfZ2VuZXJp
Yyhub2RlKTsKK30KKworcGFzX2FsbG9jYXRvcl9pbmRleAorcGFzX3RocmVhZF9sb2NhbF9jYWNo
ZV9sYXlvdXRfbm9kZV9nZXRfYWxsb2NhdG9yX2luZGV4X2Zvcl92aWV3X2NhY2hlKHBhc190aHJl
YWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgbm9kZSkKK3sKKyAgICBQQVNfQVNTRVJUKHBhc190
aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfcmVwcmVzZW50c192aWV3X2NhY2hlKG5vZGUp
KTsKKyAgICByZXR1cm4gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfYWxs
b2NhdG9yX2luZGV4X2dlbmVyaWMobm9kZSk7Cit9CisKIHZvaWQKIHBhc190aHJlYWRfbG9jYWxf
Y2FjaGVfbGF5b3V0X25vZGVfc2V0X2FsbG9jYXRvcl9pbmRleChwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX2xheW91dF9ub2RlIG5vZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcGFzX2FsbG9jYXRvcl9pbmRleCBpbmRleCkKQEAgLTY5LDEy
ICsxMDgsMTUgQEAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9zZXRfYQogc3Rh
dGljIHBhc19jb21wYWN0X2F0b21pY190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUqCiBu
ZXh0X3B0cihwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIG5vZGUpCiB7Ci0gICAg
aWYgKHBhc19pc193cmFwcGVkX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KG5vZGUp
KSB7Ci0gICAgICAgIHJldHVybiAmcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
X2RhdGFfcHRyX2xvYWQoCi0gICAgICAgICAgICAmcGFzX3Vud3JhcF9zZWdyZWdhdGVkX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeShub2RlKS0+ZGF0YSktPm5leHRfZm9yX2xheW91dDsKKyAgICBpZiAo
cGFzX2lzX3dyYXBwZWRfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeShub2RlKSkgeworICAgICAg
ICByZXR1cm4gJnBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGFfcHRyX2xvYWQoCisg
ICAgICAgICAgICAmcGFzX3Vud3JhcF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KG5vZGUpLT5k
YXRhKS0+bmV4dF9mb3JfbGF5b3V0OwogICAgIH0KLSAgICAKLSAgICByZXR1cm4gJnBhc191bndy
YXBfcmVkdW5kYW50X2xvY2FsX2FsbG9jYXRvcl9ub2RlKG5vZGUpLT5uZXh0OworCisgICAgaWYg
KHBhc19pc193cmFwcGVkX3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZShub2RlKSkKKyAg
ICAgICAgcmV0dXJuICZwYXNfdW53cmFwX3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZShu
b2RlKS0+bmV4dDsKKworICAgIHJldHVybiAmcGFzX3Vud3JhcF9sb2NhbF92aWV3X2NhY2hlX25v
ZGUobm9kZSktPm5leHQ7CiB9CiAKIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUK
QEAgLTgzLDExICsxMjUsNzIgQEAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9n
ZXRfbgogICAgIHJldHVybiBwYXNfY29tcGFjdF9hdG9taWNfdGhyZWFkX2xvY2FsX2NhY2hlX2xh
eW91dF9ub2RlX2xvYWQobmV4dF9wdHIobm9kZSkpOwogfQogCi12b2lkCi1wYXNfdGhyZWFkX2xv
Y2FsX2NhY2hlX2xheW91dF9ub2RlX3NldF9uZXh0KHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5
b3V0X25vZGUgbm9kZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBuZXh0X25vZGUpCit2b2lkIHBh
c190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfc2V0X25leHQocGFzX3RocmVhZF9sb2Nh
bF9jYWNoZV9sYXlvdXRfbm9kZSBub2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgbmV4
dF9ub2RlKQogewogICAgIHBhc19jb21wYWN0X2F0b21pY190aHJlYWRfbG9jYWxfY2FjaGVfbGF5
b3V0X25vZGVfc3RvcmUobmV4dF9wdHIobm9kZSksIG5leHRfbm9kZSk7CiB9CiAKK3ZvaWQgcGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9jb25zdHJ1Y3QocGFzX3RocmVhZF9sb2Nh
bF9jYWNoZV9sYXlvdXRfbm9kZSBub2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiBjYWNoZSkKK3sKKyAg
ICBpZiAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9yZXByZXNlbnRzX2FsbG9j
YXRvcihub2RlKSkgeworICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX2NvbnN0cnVjdCgKKyAg
ICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRvcl9pbXBs
KAorICAgICAgICAgICAgICAgIGNhY2hlLCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9u
b2RlX2dldF9hbGxvY2F0b3JfaW5kZXhfZm9yX2FsbG9jYXRvcihub2RlKSksCisgICAgICAgICAg
ICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9kaXJlY3Rvcnkobm9kZSkp
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgcGFzX2xvY2FsX3ZpZXdfY2FjaGVfY29u
c3RydWN0KAorICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0
b3JfaW1wbCgKKyAgICAgICAgICAgIGNhY2hlLCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91
dF9ub2RlX2dldF9hbGxvY2F0b3JfaW5kZXhfZm9yX3ZpZXdfY2FjaGUobm9kZSkpLAorICAgICAg
ICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV92aWV3X2NhY2hlX2NhcGFjaXR5KAorICAg
ICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfZGlyZWN0b3J5
KG5vZGUpKSk7Cit9CisKK3ZvaWQgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9t
b3ZlKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgbm9kZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGUq
IHRvX2NhY2hlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cGFzX3RocmVhZF9sb2NhbF9jYWNoZSogZnJvbV9jYWNoZSkKK3sKKyAgICBwYXNfYWxsb2NhdG9y
X2luZGV4IGFsbG9jYXRvcl9pbmRleDsKKworICAgIGFsbG9jYXRvcl9pbmRleCA9IHBhc190aHJl
YWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X2FsbG9jYXRvcl9pbmRleF9nZW5lcmljKG5v
ZGUpOworICAgIAorICAgIGlmIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX3Jl
cHJlc2VudHNfYWxsb2NhdG9yKG5vZGUpKSB7CisgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3Jf
bW92ZSgKKyAgICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9j
YXRvcl9pbXBsKHRvX2NhY2hlLCBhbGxvY2F0b3JfaW5kZXgpLAorICAgICAgICAgICAgcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9yX2ltcGwoZnJvbV9jYWNoZSwgYWxs
b2NhdG9yX2luZGV4KSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBwYXNfbG9jYWxf
dmlld19jYWNoZV9tb3ZlKAorICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9sb2Nh
bF9hbGxvY2F0b3JfaW1wbCh0b19jYWNoZSwgYWxsb2NhdG9yX2luZGV4KSwKKyAgICAgICAgcGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9yX2ltcGwoZnJvbV9jYWNoZSwg
YWxsb2NhdG9yX2luZGV4KSk7Cit9CisKK3ZvaWQgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlv
dXRfbm9kZV9zdG9wKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgbm9kZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc190aHJlYWRfbG9j
YWxfY2FjaGUqIGNhY2hlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcGFzX2xvY2tfbG9ja19tb2RlIHBhZ2VfbG9ja19tb2RlLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9j
a19ob2xkX21vZGUpCit7CisgICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwor
ICAgIAorICAgIHBhc19hbGxvY2F0b3JfaW5kZXggYWxsb2NhdG9yX2luZGV4OworICAgIHZvaWQq
IGFsbG9jYXRvcjsKKworICAgIGFsbG9jYXRvcl9pbmRleCA9IHBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfbGF5b3V0X25vZGVfZ2V0X2FsbG9jYXRvcl9pbmRleF9nZW5lcmljKG5vZGUpOworICAgIGFs
bG9jYXRvciA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRvcl9pbXBs
KGNhY2hlLCBhbGxvY2F0b3JfaW5kZXgpOworICAgIAorICAgIGlmICh2ZXJib3NlKQorICAgICAg
ICBwYXNfbG9nKCJTdG9wcGluZyBhbGxvY2F0b3IgJXAgYmVjYXVzZSBwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX3N0b3BfbG9jYWxfYWxsb2NhdG9yc1xuIiwgYWxsb2NhdG9yKTsKKyAgICAKKyAgICBp
ZiAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9yZXByZXNlbnRzX2FsbG9jYXRv
cihub2RlKSkgeworICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3N0b3AoYWxsb2NhdG9yLCBw
YWdlX2xvY2tfbW9kZSwgaGVhcF9sb2NrX2hvbGRfbW9kZSk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKKyAgICBwYXNfbG9jYWxfdmlld19jYWNoZV9zdG9wKGFsbG9jYXRvciwgcGFnZV9sb2Nr
X21vZGUpOworfQorCiAjZW5kaWYgLyogTElCUEFTX0VOQUJMRUQgKi8KSW5kZXg6IFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25v
ZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlLmgJKHJldmlzaW9uIDI3OTk2NCkKKysrIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5
b3V0X25vZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKGMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChjKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNyw2NiArMjcsMTQzIEBACiAjZGVmaW5lIFBBU19U
SFJFQURfTE9DQUxfQ0FDSEVfTEFZT1VUX05PREVfSAogCiAjaW5jbHVkZSAicGFzX2FsbG9jYXRv
cl9pbmRleC5oIgorI2luY2x1ZGUgInBhc19sb2NrLmgiCisjaW5jbHVkZSAicGFzX3RocmVhZF9s
b2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9raW5kLmgiCiAjaW5jbHVkZSAicGFzX3V0aWxzLmgiCiAK
IFBBU19CRUdJTl9FWFRFUk5fQzsKIAorc3RydWN0IHBhc19sb2NhbF92aWV3X2NhY2hlX25vZGU7
CiBzdHJ1Y3QgcGFzX3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZTsKLXN0cnVjdCBwYXNf
c2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnk7CitzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3Rvcnk7CitzdHJ1Y3QgcGFzX3RocmVhZF9sb2NhbF9jYWNoZTsKIHN0cnVjdCBw
YXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX29wYXF1ZTsKK3R5cGVkZWYgc3RydWN0
IHBhc19sb2NhbF92aWV3X2NhY2hlX25vZGUgcGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZTsKIHR5
cGVkZWYgc3RydWN0IHBhc19yZWR1bmRhbnRfbG9jYWxfYWxsb2NhdG9yX25vZGUgcGFzX3JlZHVu
ZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZTsKLXR5cGVkZWYgc3RydWN0IHBhc19zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnk7Cit0eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSBwYXNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeTsKK3R5cGVkZWYgc3RydWN0IHBhc190aHJlYWRfbG9jYWxf
Y2FjaGUgcGFzX3RocmVhZF9sb2NhbF9jYWNoZTsKIHR5cGVkZWYgc3RydWN0IHBhc190aHJlYWRf
bG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfb3BhcXVlKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xh
eW91dF9ub2RlOwogCi0jZGVmaW5lIFBBU19JU19SRURVTkRBTlRfTE9DQUxfQUxMT0NBVE9SX05P
REVfQklUICgodWludHB0cl90KTEpCisjZGVmaW5lIFBBU19USFJFQURfTE9DQUxfQ0FDSEVfTEFZ
T1VUX05PREVfS0lORF9NQVNLIDNsdQorCitzdGF0aWMgaW5saW5lIHZvaWQqIHBhc190aHJlYWRf
bG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X3B0cihwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xh
eW91dF9ub2RlIG5vZGUpCit7CisgICAgcmV0dXJuICh2b2lkKikoKHVpbnRwdHJfdClub2RlICYg
flBBU19USFJFQURfTE9DQUxfQ0FDSEVfTEFZT1VUX05PREVfS0lORF9NQVNLKTsKK30KKworc3Rh
dGljIGlubGluZSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2tpbmQKK3Bhc190
aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X2tpbmQocGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9sYXlvdXRfbm9kZSBub2RlKQoreworICAgIHJldHVybiAocGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9sYXlvdXRfbm9kZV9raW5kKSgKKyAgICAgICAgKHVpbnRwdHJfdClub2RlICYgUEFTX1RI
UkVBRF9MT0NBTF9DQUNIRV9MQVlPVVRfTk9ERV9LSU5EX01BU0spOworfQorCitzdGF0aWMgaW5s
aW5lIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUKK3Bhc190aHJlYWRfbG9jYWxf
Y2FjaGVfbGF5b3V0X25vZGVfY3JlYXRlKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25v
ZGVfa2luZCBraW5kLCB2b2lkKiBwdHIpCit7CisgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9s
YXlvdXRfbm9kZSByZXN1bHQ7CisgICAgCisgICAgUEFTX0FTU0VSVChwdHIpOworCisgICAgcmVz
dWx0ID0gKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUpKCh1aW50cHRyX3QpcHRy
IHwgKHVpbnRwdHJfdClraW5kKTsKKyAgICBQQVNfQVNTRVJUKHBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfbGF5b3V0X25vZGVfZ2V0X3B0cihyZXN1bHQpID09IHB0cik7CisgICAgUEFTX0FTU0VSVChw
YXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9raW5kKHJlc3VsdCkgPT0ga2lu
ZCk7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQogCiBzdGF0aWMgaW5saW5lIHBhc190aHJlYWRf
bG9jYWxfY2FjaGVfbGF5b3V0X25vZGUKLXBhc193cmFwX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVf
ZGlyZWN0b3J5KHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5
KQorcGFzX3dyYXBfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeShwYXNfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeSogZGlyZWN0b3J5KQogewotICAgIFBBU19BU1NFUlQoZGlyZWN0b3J5KTsKLSAg
ICByZXR1cm4gKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUpZGlyZWN0b3J5Owor
ICAgIHJldHVybiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2NyZWF0ZSgKKyAg
ICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeV9ub2RlX2tpbmQsIGRpcmVjdG9yeSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgcGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZQogcGFzX3dyYXBfcmVkdW5kYW50X2xvY2FsX2FsbG9j
YXRvcl9ub2RlKHBhc19yZWR1bmRhbnRfbG9jYWxfYWxsb2NhdG9yX25vZGUqIG5vZGUpCiB7Ci0g
ICAgUEFTX0FTU0VSVChub2RlKTsKLSAgICByZXR1cm4gKHBhc190aHJlYWRfbG9jYWxfY2FjaGVf
bGF5b3V0X25vZGUpKAotICAgICAgICAodWludHB0cl90KW5vZGUgfCBQQVNfSVNfUkVEVU5EQU5U
X0xPQ0FMX0FMTE9DQVRPUl9OT0RFX0JJVCk7CisgICAgcmV0dXJuIHBhc190aHJlYWRfbG9jYWxf
Y2FjaGVfbGF5b3V0X25vZGVfY3JlYXRlKAorICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
X2xheW91dF9yZWR1bmRhbnRfbG9jYWxfYWxsb2NhdG9yX25vZGVfa2luZCwgbm9kZSk7Cit9CisK
K3N0YXRpYyBpbmxpbmUgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZQorcGFzX3dy
YXBfbG9jYWxfdmlld19jYWNoZV9ub2RlKHBhc19sb2NhbF92aWV3X2NhY2hlX25vZGUqIG5vZGUp
Cit7CisgICAgcmV0dXJuIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfY3JlYXRl
KAorICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9sb2NhbF92aWV3X2NhY2hl
X25vZGVfa2luZCwgbm9kZSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgYm9vbAotcGFzX2lzX3dyYXBw
ZWRfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkocGFzX3RocmVhZF9sb2NhbF9jYWNo
ZV9sYXlvdXRfbm9kZSBub2RlKQorcGFzX2lzX3dyYXBwZWRfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeShwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIG5vZGUpCiB7Ci0gICAgcmV0
dXJuICEoKHVpbnRwdHJfdClub2RlICYgUEFTX0lTX1JFRFVOREFOVF9MT0NBTF9BTExPQ0FUT1Jf
Tk9ERV9CSVQpOworICAgIHJldHVybiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2Rl
X2dldF9raW5kKG5vZGUpCisgICAgICAgID09IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlfbm9kZV9raW5kOwogfQogCiBzdGF0aWMgaW5saW5l
IGJvb2wKIHBhc19pc193cmFwcGVkX3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZShwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIG5vZGUpCiB7Ci0gICAgcmV0dXJuICFwYXNf
aXNfd3JhcHBlZF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeShub2RlKTsKKyAgICBy
ZXR1cm4gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfa2luZChub2RlKQor
ICAgICAgICA9PSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9yZWR1bmRhbnRfbG9jYWxf
YWxsb2NhdG9yX25vZGVfa2luZDsKK30KKworc3RhdGljIGlubGluZSBib29sCitwYXNfaXNfd3Jh
cHBlZF9sb2NhbF92aWV3X2NhY2hlX25vZGUocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRf
bm9kZSBub2RlKQoreworICAgIHJldHVybiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9u
b2RlX2dldF9raW5kKG5vZGUpCisgICAgICAgID09IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5
b3V0X2xvY2FsX3ZpZXdfY2FjaGVfbm9kZV9raW5kOwogfQogCi1zdGF0aWMgaW5saW5lIHBhc19z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSoKLXBhc191bndyYXBfc2VncmVnYXRlZF9n
bG9iYWxfc2l6ZV9kaXJlY3RvcnkocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBu
b2RlKQorc3RhdGljIGlubGluZSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSoKK3Bhc191
bndyYXBfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeShwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xh
eW91dF9ub2RlIG5vZGUpCiB7Ci0gICAgUEFTX0FTU0VSVChwYXNfaXNfd3JhcHBlZF9zZWdyZWdh
dGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeShub2RlKSk7Ci0gICAgcmV0dXJuIChwYXNfc2VncmVn
YXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqKW5vZGU7CisgICAgUEFTX0FTU0VSVChwYXNfaXNf
d3JhcHBlZF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KG5vZGUpKTsKKyAgICByZXR1cm4gKHBh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KilwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91
dF9ub2RlX2dldF9wdHIobm9kZSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgcGFzX3JlZHVuZGFudF9s
b2NhbF9hbGxvY2F0b3Jfbm9kZSoKIHBhc191bndyYXBfcmVkdW5kYW50X2xvY2FsX2FsbG9jYXRv
cl9ub2RlKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgbm9kZSkKIHsKICAgICBQ
QVNfQVNTRVJUKHBhc19pc193cmFwcGVkX3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZShu
b2RlKSk7Ci0gICAgcmV0dXJuIChwYXNfcmVkdW5kYW50X2xvY2FsX2FsbG9jYXRvcl9ub2RlKiko
Ci0gICAgICAgICh1aW50cHRyX3Qpbm9kZSAmIH5QQVNfSVNfUkVEVU5EQU5UX0xPQ0FMX0FMTE9D
QVRPUl9OT0RFX0JJVCk7CisgICAgcmV0dXJuIChwYXNfcmVkdW5kYW50X2xvY2FsX2FsbG9jYXRv
cl9ub2RlKilwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9wdHIobm9kZSk7
CiB9CiAKLVBBU19BUEkgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5Kgorc3Rh
dGljIGlubGluZSBwYXNfbG9jYWxfdmlld19jYWNoZV9ub2RlKgorcGFzX3Vud3JhcF9sb2NhbF92
aWV3X2NhY2hlX25vZGUocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBub2RlKQor
eworICAgIFBBU19BU1NFUlQocGFzX2lzX3dyYXBwZWRfbG9jYWxfdmlld19jYWNoZV9ub2RlKG5v
ZGUpKTsKKyAgICByZXR1cm4gKHBhc19sb2NhbF92aWV3X2NhY2hlX25vZGUqKXBhc190aHJlYWRf
bG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X3B0cihub2RlKTsKK30KKworUEFTX0FQSSBwYXNf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSoKIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0
X25vZGVfZ2V0X2RpcmVjdG9yeShwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIG5v
ZGUpOwogCiBQQVNfQVBJIHBhc19hbGxvY2F0b3JfaW5kZXgKLXBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfbGF5b3V0X25vZGVfZ2V0X2FsbG9jYXRvcl9pbmRleChwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
X2xheW91dF9ub2RlIG5vZGUpOworcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbnVtX2Fs
bG9jYXRvcl9pbmRpY2VzKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgbm9kZSk7
CisKK3N0YXRpYyBpbmxpbmUgYm9vbAorcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9k
ZV9yZXByZXNlbnRzX2FsbG9jYXRvcihwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2Rl
IG5vZGUpCit7CisgICAgcmV0dXJuIHBhc19pc193cmFwcGVkX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3Rvcnkobm9kZSkKKyAgICAgICAgfHwgcGFzX2lzX3dyYXBwZWRfcmVkdW5kYW50X2xvY2FsX2Fs
bG9jYXRvcl9ub2RlKG5vZGUpOworfQorCitzdGF0aWMgaW5saW5lIGJvb2wKK3Bhc190aHJlYWRf
bG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfcmVwcmVzZW50c192aWV3X2NhY2hlKHBhc190aHJlYWRf
bG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgbm9kZSkKK3sKKyAgICByZXR1cm4gcGFzX2lzX3dyYXBw
ZWRfbG9jYWxfdmlld19jYWNoZV9ub2RlKG5vZGUpOworfQorCitQQVNfQVBJIHBhc19hbGxvY2F0
b3JfaW5kZXgKK3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X2FsbG9jYXRv
cl9pbmRleF9nZW5lcmljKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgbm9kZSk7
CisKK1BBU19BUEkgcGFzX2FsbG9jYXRvcl9pbmRleAorcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9s
YXlvdXRfbm9kZV9nZXRfYWxsb2NhdG9yX2luZGV4X2Zvcl9hbGxvY2F0b3IoCisgICAgcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBub2RlKTsKKworUEFTX0FQSSBwYXNfYWxsb2Nh
dG9yX2luZGV4CitwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9hbGxvY2F0
b3JfaW5kZXhfZm9yX3ZpZXdfY2FjaGUoCisgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlv
dXRfbm9kZSBub2RlKTsKIAogUEFTX0FQSSB2b2lkCiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xh
eW91dF9ub2RlX3NldF9hbGxvY2F0b3JfaW5kZXgocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlv
dXRfbm9kZSBub2RlLApAQCAtOTksNiArMTc2LDE4IEBAIFBBU19BUEkgdm9pZAogcGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9zZXRfbmV4dChwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
X2xheW91dF9ub2RlIG5vZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgbmV4dF9ub2RlKTsKIAor
UEFTX0FQSSB2b2lkIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfY29uc3RydWN0
KHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgbm9kZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfdGhyZWFkX2xv
Y2FsX2NhY2hlKiBjYWNoZSk7CisKK1BBU19BUEkgdm9pZCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
X2xheW91dF9ub2RlX21vdmUocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBub2Rl
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
YXNfdGhyZWFkX2xvY2FsX2NhY2hlKiB0b19jYWNoZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZSogZnJv
bV9jYWNoZSk7CisKK1BBU19BUEkgdm9pZCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9u
b2RlX3N0b3AocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBub2RlLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfdGhyZWFk
X2xvY2FsX2NhY2hlKiBjYWNoZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcGFzX2xvY2tfbG9ja19tb2RlIHBhZ2VfbG9ja19tb2RlLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfbG9j
a19ob2xkX21vZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSk7CisKIFBBU19FTkRfRVhURVJOX0M7CiAK
ICNlbmRpZiAvKiBQQVNfVEhSRUFEX0xPQ0FMX0NBQ0hFX0xBWU9VVF9OT0RFX0ggKi8KSW5kZXg6
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGVf
bGF5b3V0X25vZGVfa2luZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfa2luZC5oCShub25l
eGlzdGVudCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRf
bG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfa2luZC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
NTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lm
bmRlZiBQQVNfVEhSRUFEX0xPQ0FMX0NBQ0hFX0xBWU9VVF9OT0RFX0tJTkRfSAorI2RlZmluZSBQ
QVNfVEhSRUFEX0xPQ0FMX0NBQ0hFX0xBWU9VVF9OT0RFX0tJTkRfSAorCisjaW5jbHVkZSAicGFz
X3V0aWxzLmgiCisKK1BBU19CRUdJTl9FWFRFUk5fQzsKKworZW51bSBwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX2xheW91dF9ub2RlX2tpbmQgeworICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5
b3V0X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlfbm9kZV9raW5kLAorICAgIHBhc190aHJlYWRf
bG9jYWxfY2FjaGVfbGF5b3V0X3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZV9raW5kLAor
ICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2xvY2FsX3ZpZXdfY2FjaGVfbm9kZV9r
aW5kCit9OworCit0eXBlZGVmIGVudW0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9k
ZV9raW5kIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfa2luZDsKK3N0YXRpYyBp
bmxpbmUgY29uc3QgY2hhciogcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9raW5k
X2dldF9zdHJpbmcoCisgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9raW5k
IGtpbmQpCit7CisgICAgc3dpdGNoIChraW5kKSB7CisgICAgY2FzZSBwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX2xheW91dF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X25vZGVfa2luZDoKKyAgICAg
ICAgcmV0dXJuICJzZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5IjsKKyAgICBjYXNlIHBhc190aHJl
YWRfbG9jYWxfY2FjaGVfbGF5b3V0X3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZV9raW5k
OgorICAgICAgICByZXR1cm4gInJlZHVuZGFudF9sb2NhbF9hbGxvY2F0b3IiOworICAgIGNhc2Ug
cGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbG9jYWxfdmlld19jYWNoZV9ub2RlX2tpbmQ6
CisgICAgICAgIHJldHVybiAibG9jYWxfdmlld19jYWNoZSI7CisgICAgfQorICAgIFBBU19BU1NF
UlQoISJTaG91bGQgbm90IGJlIHJlYWNoZWQiKTsKKyAgICByZXR1cm4gTlVMTDsKK30KKworUEFT
X0VORF9FWFRFUk5fQzsKKworI2VuZGlmIC8qIFBBU19USFJFQURfTE9DQUxfQ0FDSEVfTEFZT1VU
X05PREVfS0lORF9IICovCisKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbm9kZS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbm9kZS5jCShyZXZp
c2lvbiAyNzk5NjQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX25vZGUuYwkod29ya2luZyBjb3B5KQpAQCAtNDgsOCArNDgsMTkgQEAg
cGFzX3RocmVhZF9sb2NhbF9jYWNoZV9ub2RlKiBwYXNfdGhyZWFkXwogCiAgICAgcmVzdWx0ID0g
cGFzX3RocmVhZF9sb2NhbF9jYWNoZV9ub2RlX2ZpcnN0X2ZyZWU7CiAgICAgaWYgKCFyZXN1bHQp
IHsKLSAgICAgICAgcmVzdWx0ID0gcGFzX2ltbW9ydGFsX2hlYXBfYWxsb2NhdGUoCi0gICAgICAg
ICAgICBzaXplb2YocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9ub2RlKSwKKyAgICAgICAgY29uc3Qg
c2l6ZV90IGludGVyZmVyZW5jZV9wYWRkaW5nID0gNjQ7CisgICAgICAgIAorICAgICAgICBzaXpl
X3Qgc2l6ZTsKKworICAgICAgICBzaXplID0gUEFTX01BWCgKKyAgICAgICAgICAgIGludGVyZmVy
ZW5jZV9wYWRkaW5nLAorICAgICAgICAgICAgcGFzX3JvdW5kX3VwX3RvX25leHRfcG93ZXJfb2Zf
MihzaXplb2YocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9ub2RlKSkpOworCisgICAgICAgIGlmICh2
ZXJib3NlKQorICAgICAgICAgICAgcGFzX2xvZygiQWxsb2NhdGluZyBUTEMgbm9kZSB3aXRoIHNp
emUvYWxpZ25tZW50ID0gJXp1LlxuIiwgc2l6ZSk7CisgICAgICAgIAorICAgICAgICByZXN1bHQg
PSBwYXNfaW1tb3J0YWxfaGVhcF9hbGxvY2F0ZV93aXRoX2FsaWdubWVudCgKKyAgICAgICAgICAg
IHNpemUsIHNpemUsCiAgICAgICAgICAgICAicGFzX3RocmVhZF9sb2NhbF9jYWNoZV9ub2RlIiwK
ICAgICAgICAgICAgIHBhc19vYmplY3RfYWxsb2NhdGlvbik7CiAgICAgICAgIApJbmRleDogU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9ub2Rl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9ub2RlLmgJKHJldmlzaW9uIDI3OTk2NCkKKysrIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbm9kZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw2IEBACiAjZGVmaW5lIFBBU19USFJFQURfTE9DQUxfQ0FD
SEVfTk9ERV9ICiAKICNpbmNsdWRlICJwYXNfY29uZmlnLmgiCi0jaW5jbHVkZSAicGFzX21hZ2F6
aW5lLmgiCiAjaW5jbHVkZSAicGFzX2xvY2suaCIKICNpbmNsdWRlICJwYXNfdXRpbHMuaCIKIApJ
bmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RyeV9hbGxvY2F0ZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190cnlf
YWxsb2NhdGUuaAkocmV2aXNpb24gMjc5OTY0KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3RyeV9hbGxvY2F0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC03Myw3ICs3Myw3
IEBAIHBhc190cnlfYWxsb2NhdGVfaW1wbChwYXNfaGVhcF9yZWYqIGhlYXAKICAgICAgICAgICAg
IGNhY2hlLAogICAgICAgICAgICAgYWxsb2NhdG9yX2luZGV4KTsKICAgICAgICAgaWYgKFBBU19M
SUtFTFkoYWxsb2NhdG9yLmRpZF9zdWNjZWVkKSkgewotICAgICAgICAgICAgcGFzX2ludHJpbnNp
Y19hbGxvY2F0aW9uX3Jlc3VsdCByZXN1bHQ7CisgICAgICAgICAgICBwYXNfYWxsb2NhdGlvbl9y
ZXN1bHQgcmVzdWx0OwogICAgICAgICAgICAgcGFzX3RyeV9hbGxvY2F0ZV9pbXBsX3NpemVfdGh1
bmtfZGF0YSBzaXplX3RodW5rX2RhdGE7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIC8qIFRo
aXMgdGhpbmcgd2l0aCB0aGUgc2l6ZSB0aHVuayBtZWFucyB0aGF0IGlzb2hlYXBzIHVzdWFsbHkg
ZG9uJ3QgaGF2ZSB0byBnZXQgdGhlCkBAIC04Myw3ICs4Myw4IEBAIHBhc190cnlfYWxsb2NhdGVf
aW1wbChwYXNfaGVhcF9yZWYqIGhlYXAKICAgICAgICAgICAgIHNpemVfdGh1bmtfZGF0YS5oZWFw
X3JlZiA9IGhlYXBfcmVmOwogCiAgICAgICAgICAgICByZXN1bHQgPSB0cnlfYWxsb2NhdGVfY29t
bW9uX2Zhc3QoCi0gICAgICAgICAgICAgICAgYWxsb2NhdG9yLmFsbG9jYXRvciwgcGFzX3RyeV9h
bGxvY2F0ZV9pbXBsX3NpemVfdGh1bmssICZzaXplX3RodW5rX2RhdGEsIDEpOworICAgICAgICAg
ICAgICAgIChwYXNfbG9jYWxfYWxsb2NhdG9yKilhbGxvY2F0b3IuYWxsb2NhdG9yLCBwYXNfdHJ5
X2FsbG9jYXRlX2ltcGxfc2l6ZV90aHVuaywKKyAgICAgICAgICAgICAgICAmc2l6ZV90aHVua19k
YXRhLCAxKTsKIAogICAgICAgICAgICAgdHlwZSA9IGhlYXBfcmVmLT50eXBlOwogICAgICAgICAg
ICAgcmV0dXJuIHBhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGVfd2l0aF9pbnRyaW5z
aWNfYWxsb2NhdGlvbl9yZXN1bHQoCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfdHJ5X2FsbG9jYXRlX2FycmF5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RyeV9hbGxvY2F0ZV9hcnJheS5oCShyZXZpc2lvbiAy
Nzk5NjQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5X2FsbG9j
YXRlX2FycmF5LmgJKHdvcmtpbmcgY29weSkKQEAgLTk4LDcgKzk4LDcgQEAgcGFzX3RyeV9hbGxv
Y2F0ZV9hcnJheV9pbXBsKHBhc19oZWFwX3JlZgogICAgICAgICBhbGxvY2F0b3JfaW5kZXgsIGNv
bmZpZy5jb25maWdfcHRyKTsKIAogICAgIGlmIChhbGlnbm1lbnQgIT0gMSAmJiBhbGxvY2F0b3Iu
ZGlkX3N1Y2NlZWQKLSAgICAgICAgJiYgYWxpZ25tZW50ID4gcGFzX2xvY2FsX2FsbG9jYXRvcl9h
bGlnbm1lbnQoYWxsb2NhdG9yLmFsbG9jYXRvcikpCisgICAgICAgICYmIGFsaWdubWVudCA+IHBh
c19sb2NhbF9hbGxvY2F0b3JfYWxpZ25tZW50KChwYXNfbG9jYWxfYWxsb2NhdG9yKilhbGxvY2F0
b3IuYWxsb2NhdG9yKSkKICAgICAgICAgYWxsb2NhdG9yLmRpZF9zdWNjZWVkID0gZmFsc2U7CiAg
ICAgCiAgICAgcmV0dXJuIHBhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGVfd2l0aF9p
bnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQoCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfdHJ5X2FsbG9jYXRlX2NvbW1vbi5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190cnlfYWxsb2NhdGVfY29tbW9uLmgJKHJl
dmlzaW9uIDI3OTk2NCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190
cnlfYWxsb2NhdGVfY29tbW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDcgKzI4LDcgQEAKIAog
I2luY2x1ZGUgInBhc19kZWJ1Z19oZWFwLmgiCiAjaW5jbHVkZSAicGFzX2hlYXBfaW5saW5lcy5o
IgotI2luY2x1ZGUgInBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQuaCIKKyNpbmNsdWRl
ICJwYXNfYWxsb2NhdGlvbl9yZXN1bHQuaCIKICNpbmNsdWRlICJwYXNfbG9jYWxfYWxsb2NhdG9y
X2lubGluZXMuaCIKICNpbmNsdWRlICJwYXNfcHJpbWl0aXZlX2hlYXBfcmVmLmgiCiAjaW5jbHVk
ZSAicGFzX3NlZ3JlZ2F0ZWRfaGVhcF9pbmxpbmVzLmgiCkBAIC00MiwyNiArNDIsNDMgQEAgcGFz
X3RyeV9hbGxvY2F0ZV9jb21tb25fY2FuX2dvX2Zhc3QocGFzXwogICAgIHJldHVybiBhbGxvY2F0
b3JfcmVzdWx0LmRpZF9zdWNjZWVkOwogfQogCi1zdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFz
X2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdAorc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBh
c19hbGxvY2F0aW9uX3Jlc3VsdAorcGFzX3RyeV9hbGxvY2F0ZV9jb21tb25faW1wbF9mYXN0X2lu
bGluZV9vbmx5KAorICAgIHBhc19oZWFwX2NvbmZpZyBjb25maWcsCisgICAgcGFzX2FsbG9jYXRp
b25fcmVzdWx0X2ZpbHRlciByZXN1bHRfZmlsdGVyLAorICAgIHBhc19sb2NhbF9hbGxvY2F0b3Iq
IGFsbG9jYXRvcikKK3sKKyAgICByZXR1cm4gcGFzX2xvY2FsX2FsbG9jYXRvcl90cnlfYWxsb2Nh
dGVfaW5saW5lX29ubHkoYWxsb2NhdG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWcsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdF9maWx0ZXIpOworfQorCitz
dGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2FsbG9jYXRpb25fcmVzdWx0CiBwYXNfdHJ5X2Fs
bG9jYXRlX2NvbW1vbl9pbXBsX2Zhc3QoCiAgICAgcGFzX2hlYXBfY29uZmlnIGNvbmZpZywKICAg
ICBwYXNfYWxsb2NhdG9yX2NvdW50cyogYWxsb2NhdG9yX2NvdW50cywKLSAgICBwYXNfaW50cmlu
c2ljX2FsbG9jYXRpb25fcmVzdWx0ICgqcmVzdWx0X2ZpbHRlcikocGFzX2ludHJpbnNpY19hbGxv
Y2F0aW9uX3Jlc3VsdCByZXN1bHQpLAorICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9maWx0ZXIg
cmVzdWx0X2ZpbHRlciwKICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0b3IsCiAgICAg
cGFzX3NpemVfdGh1bmsgc2l6ZV90aHVuaywKICAgICB2b2lkKiBzaXplX3RodW5rX2FyZywKICAg
ICBzaXplX3QgYWxpZ25tZW50KQogewotICAgIHJldHVybiByZXN1bHRfZmlsdGVyKHBhc19pbnRy
aW5zaWNfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlKAotICAgICAgICBwYXNfbG9jYWxfYWxsb2Nh
dG9yX3RyeV9hbGxvY2F0ZShhbGxvY2F0b3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNpemVfdGh1bmssCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNpemVfdGh1bmtfYXJnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBhbGlnbm1lbnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbmZpZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
YWxsb2NhdG9yX2NvdW50cykpKTsKKyAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFs
c2U7CisgICAgCisgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0IHJlc3VsdDsKKyAgICByZXN1bHQg
PSBwYXNfbG9jYWxfYWxsb2NhdG9yX3RyeV9hbGxvY2F0ZShhbGxvY2F0b3IsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90aHVuaywKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3RodW5rX2FyZywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbm1lbnQsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG9jYXRvcl9jb3Vu
dHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0
X2ZpbHRlcik7CisgICAgaWYgKHZlcmJvc2UpCisgICAgICAgIHBhc19sb2coImluIGNvbW1vbiAt
IHJlc3VsdC5iZWdpbiA9ICVwXG4iLCByZXN1bHQuYmVnaW4pOworICAgIHJldHVybiByZXN1bHQ7
CiB9CiAKLXN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25f
cmVzdWx0CitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2FsbG9jYXRpb25fcmVzdWx0CiBw
YXNfdHJ5X2FsbG9jYXRlX2NvbW1vbl9pbXBsX3Nsb3coCiAgICAgcGFzX2hlYXBfcmVmKiBoZWFw
X3JlZiwKICAgICBwYXNfaGVhcF9yZWZfa2luZCBoZWFwX3JlZl9raW5kLApAQCAtNzksNyArOTYs
NyBAQCBwYXNfdHJ5X2FsbG9jYXRlX2NvbW1vbl9pbXBsX3Nsb3coCiAgICAgcGFzX2FsbG9jYXRp
b25fcmVzdWx0IHJlc3VsdDsKICAgICBwYXNfaGVhcCogaGVhcDsKICAgICBwYXNfaGVhcF90eXBl
KiB0eXBlOwotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0
b3J5OworICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7CiAgICAg
dW5zaWduZWQqIGNhY2hlZF9pbmRleDsKIAogICAgIGlmICh2ZXJib3NlKQpAQCAtMTA0LDcgKzEy
MSw3IEBAIHBhc190cnlfYWxsb2NhdGVfY29tbW9uX2ltcGxfc2xvdygKICAgICAgICAgICAgIHJl
c3VsdC5iZWdpbiA9ICh1aW50cHRyX3QpcmF3X3Jlc3VsdDsKICAgICAgICAgfQogCi0gICAgICAg
IHJldHVybiBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0ZShyZXN1bHQpOwor
ICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KIAogICAgIGhlYXAgPSBwYXNfZW5zdXJlX2hl
YXAoaGVhcF9yZWYsIGhlYXBfcmVmX2tpbmQsIGNvbmZpZy5jb25maWdfcHRyLCBydW50aW1lX2Nv
bmZpZyk7CkBAIC0xNTYsNyArMTczLDcgQEAgcGFzX3RyeV9hbGxvY2F0ZV9jb21tb25faW1wbF9z
bG93KAogICAgICAgICAKICAgICAgICAgcGFzX3NjYXZlbmdlcl9ub3RpZnlfZWxpZ2liaWxpdHlf
aWZfbmVlZGVkKCk7CiAgICAgICAgIAotICAgICAgICByZXR1cm4gcGFzX2ludHJpbnNpY19hbGxv
Y2F0aW9uX3Jlc3VsdF9jcmVhdGUocmVzdWx0KTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAg
ICB9CiAgICAgCiAgICAgaWYgKHZlcmJvc2UpCkBAIC0xNjQsNyArMTgxLDcgQEAgcGFzX3RyeV9h
bGxvY2F0ZV9jb21tb25faW1wbF9zbG93KAogICAgIAogICAgIFBBU19BU1NFUlQoZGlyZWN0b3J5
KTsKICAgICAKLSAgICBiYXNlbGluZV9hbGxvY2F0b3JfcmVzdWx0ID0gcGFzX3NlZ3JlZ2F0ZWRf
Z2xvYmFsX3NpemVfZGlyZWN0b3J5X3NlbGVjdF9hbGxvY2F0b3IoCisgICAgYmFzZWxpbmVfYWxs
b2NhdG9yX3Jlc3VsdCA9IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3NlbGVjdF9hbGxv
Y2F0b3IoCiAgICAgICAgIGRpcmVjdG9yeSwgYWxpZ25lZF9jb3VudCwgY291bnRfbG9va3VwX21v
ZGUsIGNvbmZpZy5jb25maWdfcHRyLCBjYWNoZWRfaW5kZXgpOwogICAgIAogICAgIHJlc3VsdCA9
IHBhc19sb2NhbF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRlKGJhc2VsaW5lX2FsbG9jYXRvcl9yZXN1
bHQuYWxsb2NhdG9yLApAQCAtMTcyLDE2ICsxODksMTcgQEAgcGFzX3RyeV9hbGxvY2F0ZV9jb21t
b25faW1wbF9zbG93KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICh2b2lkKilzaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGFsaWdubWVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25maWcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYWxsb2NhdG9yX2NvdW50cyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYWxsb2NhdG9yX2NvdW50cywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfaWRlbnRpdHkpOwog
ICAgIAogICAgIHBhc19jb21waWxlcl9mZW5jZSgpOwogICAgIGlmIChiYXNlbGluZV9hbGxvY2F0
b3JfcmVzdWx0LmxvY2spCiAgICAgICAgIHBhc19sb2NrX3VubG9jayhiYXNlbGluZV9hbGxvY2F0
b3JfcmVzdWx0LmxvY2spOwogCi0gICAgcmV0dXJuIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9y
ZXN1bHRfY3JlYXRlKHJlc3VsdCk7CisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotc3RhdGljIFBB
U19BTFdBWVNfSU5MSU5FIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQKK3N0YXRpYyBQ
QVNfQUxXQVlTX0lOTElORSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQKIHBhc190cnlfYWxsb2NhdGVf
Y29tbW9uX2ltcGwoCiAgICAgcGFzX2hlYXBfcmVmKiBoZWFwX3JlZiwKICAgICBzaXplX3QgYWxp
Z25lZF9jb3VudCwgLyogTXVzdCBiZSA9IHJvdW5kX3VwKGNvdW50ICogdHlwZV9zaXplLCBhbGln
bm1lbnQpIC8gdHlwZV9zaXplICovCkBAIC0xODksOCArMjA3LDggQEAgcGFzX3RyeV9hbGxvY2F0
ZV9jb21tb25faW1wbCgKICAgICBzaXplX3QgYWxpZ25tZW50LAogICAgIHBhc19oZWFwX2NvbmZp
ZyBjb25maWcsCiAgICAgcGFzX2FsbG9jYXRvcl9jb3VudHMqIGFsbG9jYXRvcl9jb3VudHMsCi0g
ICAgcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdCAoKnJlc3VsdF9maWx0ZXIpKHBhc19p
bnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQgcmVzdWx0KSwKLSAgICBwYXNfaW50cmluc2ljX2Fs
bG9jYXRpb25fcmVzdWx0ICgqc2xvdykoCisgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0ICgqcmVz
dWx0X2ZpbHRlcikocGFzX2FsbG9jYXRpb25fcmVzdWx0IHJlc3VsdCksCisgICAgcGFzX2FsbG9j
YXRpb25fcmVzdWx0ICgqc2xvdykoCiAgICAgICAgIHBhc19oZWFwX3JlZiogaGVhcF9yZWYsIHNp
emVfdCBhbGlnbmVkX2NvdW50LCBzaXplX3Qgc2l6ZSwgc2l6ZV90IGFsaWdubWVudCksCiAgICAg
cGFzX2xvY2FsX2FsbG9jYXRvcl9yZXN1bHQgYWxsb2NhdG9yX3Jlc3VsdCkKIHsKQEAgLTIwMyw3
ICsyMjEsNyBAQCBwYXNfdHJ5X2FsbG9jYXRlX2NvbW1vbl9pbXBsKAogCiAgICAgaWYgKFBBU19M
SUtFTFkocGFzX3RyeV9hbGxvY2F0ZV9jb21tb25fY2FuX2dvX2Zhc3QoYWxsb2NhdG9yX3Jlc3Vs
dCkpKSB7CiAgICAgICAgIHJldHVybiBwYXNfdHJ5X2FsbG9jYXRlX2NvbW1vbl9pbXBsX2Zhc3Qo
Ci0gICAgICAgICAgICBjb25maWcsIGFsbG9jYXRvcl9jb3VudHMsIHJlc3VsdF9maWx0ZXIsIGFs
bG9jYXRvcl9yZXN1bHQuYWxsb2NhdG9yLAorICAgICAgICAgICAgY29uZmlnLCBhbGxvY2F0b3Jf
Y291bnRzLCByZXN1bHRfZmlsdGVyLCAocGFzX2xvY2FsX2FsbG9jYXRvciopYWxsb2NhdG9yX3Jl
c3VsdC5hbGxvY2F0b3IsCiAgICAgICAgICAgICBwYXNfdHJpdmlhbF9zaXplX3RodW5rLCAodm9p
ZCopc2l6ZSwgYWxpZ25tZW50KTsKICAgICB9CiAKQEAgLTIxMSw3ICsyMjksMTQgQEAgcGFzX3Ry
eV9hbGxvY2F0ZV9jb21tb25faW1wbCgKIH0KIAogI2RlZmluZSBQQVNfQ1JFQVRFX1RSWV9BTExP
Q0FURV9DT01NT04obmFtZSwgaGVhcF9yZWZfa2luZCwgaGVhcF9jb25maWcsIHJ1bnRpbWVfY29u
ZmlnLCBhbGxvY2F0b3JfY291bnRzLCBjb3VudF9sb29rdXBfbW9kZSwgcmVzdWx0X2ZpbHRlcikg
XAotICAgIHN0YXRpYyBQQVNfVU5VU0VEIFBBU19BTFdBWVNfSU5MSU5FIHBhc19pbnRyaW5zaWNf
YWxsb2NhdGlvbl9yZXN1bHQgXAorICAgIHN0YXRpYyBQQVNfVU5VU0VEIFBBU19BTFdBWVNfSU5M
SU5FIHBhc19hbGxvY2F0aW9uX3Jlc3VsdCBcCisgICAgbmFtZSAjIyBfZmFzdF9pbmxpbmVfb25s
eShwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0b3IpIFwKKyAgICB7IFwKKyAgICAgICAgcmV0
dXJuIHBhc190cnlfYWxsb2NhdGVfY29tbW9uX2ltcGxfZmFzdF9pbmxpbmVfb25seSggXAorICAg
ICAgICAgICAgKGhlYXBfY29uZmlnKSwgKHJlc3VsdF9maWx0ZXIpLCBhbGxvY2F0b3IpOyBcCisg
ICAgfSBcCisgICAgXAorICAgIHN0YXRpYyBQQVNfVU5VU0VEIFBBU19BTFdBWVNfSU5MSU5FIHBh
c19hbGxvY2F0aW9uX3Jlc3VsdCBcCiAgICAgbmFtZSAjIyBfZmFzdChwYXNfbG9jYWxfYWxsb2Nh
dG9yKiBhbGxvY2F0b3IsIHBhc19zaXplX3RodW5rIHNpemVfdGh1bmssIHZvaWQqIHNpemVfdGh1
bmtfYXJnLCBcCiAgICAgICAgICAgICAgICAgICBzaXplX3QgYWxpZ25tZW50KSBcCiAgICAgeyBc
CkBAIC0yMjAsNyArMjQ1LDcgQEAgcGFzX3RyeV9hbGxvY2F0ZV9jb21tb25faW1wbCgKICAgICAg
ICAgICAgIHNpemVfdGh1bmssIHNpemVfdGh1bmtfYXJnLCBhbGlnbm1lbnQpOyBcCiAgICAgfSBc
CiAgICAgXAotICAgIHN0YXRpYyBQQVNfTkVWRVJfSU5MSU5FIHBhc19pbnRyaW5zaWNfYWxsb2Nh
dGlvbl9yZXN1bHQgXAorICAgIHN0YXRpYyBQQVNfTkVWRVJfSU5MSU5FIHBhc19hbGxvY2F0aW9u
X3Jlc3VsdCBcCiAgICAgbmFtZSAjIyBfc2xvdyhwYXNfaGVhcF9yZWYqIGhlYXBfcmVmLCBzaXpl
X3QgYWxpZ25lZF9jb3VudCwgc2l6ZV90IHNpemUsIHNpemVfdCBhbGlnbm1lbnQpIFwKICAgICB7
IFwKICAgICAgICAgcmV0dXJuIChyZXN1bHRfZmlsdGVyKSggXApAQCAtMjI5LDcgKzI1NCw3IEBA
IHBhc190cnlfYWxsb2NhdGVfY29tbW9uX2ltcGwoCiAgICAgICAgICAgICAgICAgKGFsbG9jYXRv
cl9jb3VudHMpLCAoY291bnRfbG9va3VwX21vZGUpKSk7IFwKICAgICB9IFwKICAgICBcCi0gICAg
c3RhdGljIFBBU19VTlVTRUQgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2ludHJpbnNpY19hbGxvY2F0
aW9uX3Jlc3VsdCBcCisgICAgc3RhdGljIFBBU19VTlVTRUQgUEFTX0FMV0FZU19JTkxJTkUgcGFz
X2FsbG9jYXRpb25fcmVzdWx0IFwKICAgICBuYW1lKHBhc19oZWFwX3JlZiogaGVhcF9yZWYsIHNp
emVfdCBhbGlnbmVkX2NvdW50LCBzaXplX3Qgc2l6ZSwgc2l6ZV90IGFsaWdubWVudCwgXAogICAg
ICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZXN1bHQgYWxsb2NhdG9yX3Jlc3VsdCkgXAogICAg
IHsgXApAQCAtMjQwLDEzICsyNjUsMTYgQEAgcGFzX3RyeV9hbGxvY2F0ZV9jb21tb25faW1wbCgK
ICAgICBcCiAgICAgc3RydWN0IHBhc19kdW1teQogCi10eXBlZGVmIHBhc19pbnRyaW5zaWNfYWxs
b2NhdGlvbl9yZXN1bHQgKCpwYXNfdHJ5X2FsbG9jYXRlX2NvbW1vbl9mYXN0KSgKK3R5cGVkZWYg
cGFzX2FsbG9jYXRpb25fcmVzdWx0ICgqcGFzX3RyeV9hbGxvY2F0ZV9jb21tb25fZmFzdF9pbmxp
bmVfb25seSkoCisgICAgcGFzX2xvY2FsX2FsbG9jYXRvciogYWxsb2NhdG9yKTsKKwordHlwZWRl
ZiBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgKCpwYXNfdHJ5X2FsbG9jYXRlX2NvbW1vbl9mYXN0KSgK
ICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0b3IsIHBhc19zaXplX3RodW5rIHNpemVf
dGh1bmssIHZvaWQqIHNpemVfdGh1bmtfYXJnLCBzaXplX3QgYWxpZ25tZW50KTsKIAotdHlwZWRl
ZiBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0ICgqcGFzX3RyeV9hbGxvY2F0ZV9jb21t
b25fc2xvdykoCit0eXBlZGVmIHBhc19hbGxvY2F0aW9uX3Jlc3VsdCAoKnBhc190cnlfYWxsb2Nh
dGVfY29tbW9uX3Nsb3cpKAogICAgIHBhc19oZWFwX3JlZiogaGVhcF9yZWYsIHNpemVfdCBhbGln
bmVkX2NvdW50LCBzaXplX3Qgc2l6ZSwgc2l6ZV90IGFsaWdubWVudCk7CiAKLXR5cGVkZWYgcGFz
X2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdCAoKnBhc190cnlfYWxsb2NhdGVfY29tbW9uKSgK
K3R5cGVkZWYgcGFzX2FsbG9jYXRpb25fcmVzdWx0ICgqcGFzX3RyeV9hbGxvY2F0ZV9jb21tb24p
KAogICAgIHBhc19oZWFwX3JlZiogaGVhcF9yZWYsIHNpemVfdCBhbGlnbmVkX2NvdW50LCBzaXpl
X3Qgc2l6ZSwgc2l6ZV90IGFsaWdubWVudCwKICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3Vs
dCBhbGxvY2F0b3JfcmVzdWx0KTsKIApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX3RyeV9hbGxvY2F0ZV9pbnRyaW5zaWNfcHJpbWl0aXZlLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RyeV9hbGxvY2F0ZV9pbnRy
aW5zaWNfcHJpbWl0aXZlLmgJKHJldmlzaW9uIDI3OTk2NCkKKysrIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc190cnlfYWxsb2NhdGVfaW50cmluc2ljX3ByaW1pdGl2ZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC01OSw2NSArNTksOCBAQCBQQVNfQkVHSU5fRVhURVJOX0M7CiAgICAg
ICAgIC5jb25maWdfa2luZCA9IChwYXNzZWRfY29uZmlnKS5raW5kLCBcCiAgICAgfQogCi1zdGF0
aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdAorc3Rh
dGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19hbGxvY2F0aW9uX3Jlc3VsdAogcGFzX3RyeV9hbGxv
Y2F0ZV9pbnRyaW5zaWNfcHJpbWl0aXZlX2ltcGxfbWVkaXVtX3Nsb3dfY2FzZSgKLSAgICBwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlKiBjYWNoZSwKLSAgICBwYXNfaGVhcCogaGVhcCwKLSAgICBzaXpl
X3QgYWxpZ25lZF9zaXplLAotICAgIHNpemVfdCBhbGlnbm1lbnQsCi0gICAgcGFzX2hlYXBfY29u
ZmlnIGNvbmZpZywKLSAgICBwYXNfdHJ5X2FsbG9jYXRlX2NvbW1vbl9mYXN0IHRyeV9hbGxvY2F0
ZV9jb21tb25fZmFzdCwKLSAgICBwYXNfdHJ5X2FsbG9jYXRlX2NvbW1vbl9zbG93IHRyeV9hbGxv
Y2F0ZV9jb21tb25fc2xvdykKLXsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFs
c2U7Ci0gICAgCi0gICAgc2l6ZV90IGluZGV4OwotICAgIHVuc2lnbmVkIGFsbG9jYXRvcl9pbmRl
eDsKLSAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3VsdCBhbGxvY2F0b3I7Ci0gICAgcGFzX2hl
YXBfcmVmIGZha2VfaGVhcF9yZWY7Ci0KLSAgICBpbmRleCA9IHBhc19zZWdyZWdhdGVkX2hlYXBf
aW5kZXhfZm9yX3ByaW1pdGl2ZV9jb3VudChhbGlnbmVkX3NpemUsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnKTsKLSAgICAK
LSAgICBhbGxvY2F0b3JfaW5kZXggPQotICAgICAgICBwYXNfc2VncmVnYXRlZF9oZWFwX21lZGl1
bV9hbGxvY2F0b3JfaW5kZXhfZm9yX2luZGV4KAotICAgICAgICAgICAgJmhlYXAtPnNlZ3JlZ2F0
ZWRfaGVhcCwKLSAgICAgICAgICAgIGluZGV4LAotICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRf
aGVhcF9tZWRpdW1fc2l6ZV9kaXJlY3Rvcnlfc2VhcmNoX3dpdGhpbl9zaXplX2NsYXNzX3Byb2dy
ZXNzaW9uLAotICAgICAgICAgICAgcGFzX2xvY2tfaXNfbm90X2hlbGQpOwotCi0gICAgYWxsb2Nh
dG9yID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9yKAotICAgICAg
ICBjYWNoZSwgYWxsb2NhdG9yX2luZGV4LCBwYXNfbG9ja19pc19ub3RfaGVsZCk7Ci0gICAgCi0g
ICAgUEFTX1RFU1RJTkdfQVNTRVJUKCFhbGxvY2F0b3IuZGlkX3N1Y2NlZWQgfHwgYWxsb2NhdG9y
LmFsbG9jYXRvci0+b2JqZWN0X3NpemUgPj0gYWxpZ25lZF9zaXplKTsKLSAgICAKLSAgICAvKiBU
aGlzIHNob3VsZCBiZSBzcGVjaWFsaXplZCBvdXQgaW4gdGhlIG5vbi1hbGlnbm1lbnQgY2FzZSBi
ZWNhdXNlIG9mIEFMV0FZU19JTkxJTkUgYW5kCi0gICAgICAgYWxpZ25tZW50IGJlaW5nIHRoZSBj
b25zdGFudCAxLiAqLwotICAgIGlmIChhbGlnbm1lbnQgIT0gMSAmJiBhbGxvY2F0b3IuZGlkX3N1
Y2NlZWQKLSAgICAgICAgJiYgYWxpZ25tZW50ID4gcGFzX2xvY2FsX2FsbG9jYXRvcl9hbGlnbm1l
bnQoYWxsb2NhdG9yLmFsbG9jYXRvcikpIHsKLSAgICAgICAgaWYgKHZlcmJvc2UpIHsKLSAgICAg
ICAgICAgIHBhc19sb2coIkRpc2NhcmRpbmcgZ29vZCBhbGxvY2F0b3IgcmVzdWx0IGJlY2F1c2Ug
YWxpZ25tZW50IGlzIGluYWRlcXVhdGUgIgotICAgICAgICAgICAgICAgICAgICAiKCV6dSwgbmVl
ZGVkICV6dSkuXG4iLAotICAgICAgICAgICAgICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX2Fs
aWdubWVudChhbGxvY2F0b3IuYWxsb2NhdG9yKSwgYWxpZ25tZW50KTsKLSAgICAgICAgfQotICAg
ICAgICBhbGxvY2F0b3IuZGlkX3N1Y2NlZWQgPSBmYWxzZTsKLSAgICB9Ci0gICAgCi0gICAgaWYg
KFBBU19MSUtFTFkoYWxsb2NhdG9yLmRpZF9zdWNjZWVkKSkgewotICAgICAgICByZXR1cm4gdHJ5
X2FsbG9jYXRlX2NvbW1vbl9mYXN0KAotICAgICAgICAgICAgYWxsb2NhdG9yLmFsbG9jYXRvciwg
cGFzX3RyaXZpYWxfc2l6ZV90aHVuaywgKHZvaWQqKWFsaWduZWRfc2l6ZSwgYWxpZ25tZW50KTsK
LSAgICB9Ci0KLSAgICBmYWtlX2hlYXBfcmVmLnR5cGUgPSBoZWFwLT50eXBlOwotICAgIGZha2Vf
aGVhcF9yZWYuaGVhcCA9IGhlYXA7Ci0gICAgZmFrZV9oZWFwX3JlZi5hbGxvY2F0b3JfaW5kZXgg
PSBVSU5UX01BWDsKLQotICAgIHJldHVybiB0cnlfYWxsb2NhdGVfY29tbW9uX3Nsb3coJmZha2Vf
aGVhcF9yZWYsIGFsaWduZWRfc2l6ZSwgYWxpZ25lZF9zaXplLCBhbGlnbm1lbnQpOwotICAgIAot
fQotCi1zdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jl
c3VsdAotcGFzX3RyeV9hbGxvY2F0ZV9pbnRyaW5zaWNfcHJpbWl0aXZlX2ltcGwoCiAgICAgcGFz
X2hlYXAqIGhlYXAsCiAgICAgc2l6ZV90IHNpemUsCiAgICAgc2l6ZV90IGFsaWdubWVudCwKQEAg
LTEyNSw5ICs2OCw2IEBAIHBhc190cnlfYWxsb2NhdGVfaW50cmluc2ljX3ByaW1pdGl2ZV9pbXAK
ICAgICBwYXNfaGVhcF9jb25maWcgY29uZmlnLAogICAgIHBhc190cnlfYWxsb2NhdGVfY29tbW9u
X2Zhc3QgdHJ5X2FsbG9jYXRlX2NvbW1vbl9mYXN0LAogICAgIHBhc190cnlfYWxsb2NhdGVfY29t
bW9uX3Nsb3cgdHJ5X2FsbG9jYXRlX2NvbW1vbl9zbG93LAotICAgIHBhc19pbnRyaW5zaWNfYWxs
b2NhdGlvbl9yZXN1bHQgKCptZWRpdW1fc2xvd19jYXNlKShwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
KiB0aHJlYWRfbG9jYWxfY2FjaGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBhbGlnbmVkX3NpemUsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBhbGlnbm1l
bnQpLAogICAgIHBhc19pbnRyaW5zaWNfaGVhcF9kZXNpZ25hdGlvbl9tb2RlIGRlc2lnbmF0aW9u
X21vZGUpCiB7CiAgICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwpAQCAtMTQx
LDcgKzgxLDcgQEAgcGFzX3RyeV9hbGxvY2F0ZV9pbnRyaW5zaWNfcHJpbWl0aXZlX2ltcAogICAg
IFBBU19BU1NFUlQoYWxpZ25tZW50ID09IDEgfHwgIWRlc2lnbmF0aW9uX21vZGUpOwogCiAgICAg
aWYgKCFwYXNfaXNfcG93ZXJfb2ZfMihhbGlnbm1lbnQpKQotICAgICAgICByZXR1cm4gcGFzX2lu
dHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGVfZW1wdHkoKTsKKyAgICAgICAgcmV0dXJu
IHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGVfZmFpbHVyZSgpOwogCiAgICAgLyogSW4gdGhl
IG5vbi1tZW1hbGlnbiBjYXNlLCB3ZSBjYW4gaGFwcGlseSBoYW5kbGUgemVyby1zaXplZCBhbGxv
Y2F0aW9ucyB3aXRoIGFsaWduZWRfc2l6ZQogICAgICAgIGJlaW5nIDAuIFRoaXMgd29ya3MgYmVj
YXVzZSB0aGUgaGVhcCdzIDAgc2l6ZSBjbGFzcyBpcyBqdXN0IGEgY29weSBvZiB0aGUgbWluYWxp
Z24gc2l6ZQpAQCAtMTY2LDQ0ICsxMDYsNTMgQEAgcGFzX3RyeV9hbGxvY2F0ZV9pbnRyaW5zaWNf
cHJpbWl0aXZlX2ltcAogICAgIGNhY2hlID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV90cnlfZ2V0
KCk7CiAgICAgaWYgKFBBU19MSUtFTFkoY2FjaGUpKSB7CiAgICAgICAgIHVuc2lnbmVkIGFsbG9j
YXRvcl9pbmRleDsKLSAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZXN1bHQgYWxsb2NhdG9y
OworICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3VsdCBhbGxvY2F0b3JfcmVzdWx0Owor
ICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0b3I7CiAgICAgICAgIAogICAgICAg
ICBkZXNpZ25hdGVkX2luZGV4ID0gcGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXBfZGVzaWdu
YXRlZF9pbmRleCgKICAgICAgICAgICAgIGluZGV4LCBkZXNpZ25hdGlvbl9tb2RlLCBjb25maWcp
OwogICAgICAgICBpZiAoUEFTX0xJS0VMWShkZXNpZ25hdGVkX2luZGV4LmRpZF9zdWNjZWVkKSkg
ewotICAgICAgICAgICAgYWxsb2NhdG9yID0gcGFzX2xvY2FsX2FsbG9jYXRvcl9yZXN1bHRfY3Jl
YXRlX3N1Y2Nlc3MoCisgICAgICAgICAgICBhbGxvY2F0b3JfcmVzdWx0ID0gcGFzX2xvY2FsX2Fs
bG9jYXRvcl9yZXN1bHRfY3JlYXRlX3N1Y2Nlc3MoCiAgICAgICAgICAgICAgICAgcGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9yX2ltcGwoCiAgICAgICAgICAgICAgICAg
ICAgIGNhY2hlLAogICAgICAgICAgICAgICAgICAgICBkZXNpZ25hdGVkX2luZGV4LmluZGV4ICog
cGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXBfbnVtX2FsbG9jYXRvcl9pbmRpY2VzKGNvbmZp
ZykpKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlmIChQQVNfVU5MSUtFTFkoaW5k
ZXggPj0gUEFTX05VTV9JTlRSSU5TSUNfU0laRV9DTEFTU0VTKSkKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gbWVkaXVtX3Nsb3dfY2FzZShjYWNoZSwgYWxpZ25lZF9zaXplLCBhbGlnbm1lbnQpOwot
ICAgICAgICAgICAgCi0gICAgICAgICAgICBhbGxvY2F0b3JfaW5kZXggPSBpbnRyaW5zaWNfc3Vw
cG9ydC0+aW5kZXhfdG9fYWxsb2NhdG9yX2luZGV4W2luZGV4XTsKKyAgICAgICAgICAgIGlmIChQ
QVNfVU5MSUtFTFkoaW5kZXggPj0gUEFTX05VTV9JTlRSSU5TSUNfU0laRV9DTEFTU0VTKSkgewor
ICAgICAgICAgICAgICAgIGFsbG9jYXRvcl9pbmRleCA9CisgICAgICAgICAgICAgICAgICAgIHBh
c19zZWdyZWdhdGVkX2hlYXBfbWVkaXVtX2FsbG9jYXRvcl9pbmRleF9mb3JfaW5kZXgoCisgICAg
ICAgICAgICAgICAgICAgICAgICAmaGVhcC0+c2VncmVnYXRlZF9oZWFwLAorICAgICAgICAgICAg
ICAgICAgICAgICAgaW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRl
ZF9oZWFwX21lZGl1bV9zaXplX2RpcmVjdG9yeV9zZWFyY2hfd2l0aGluX3NpemVfY2xhc3NfcHJv
Z3Jlc3Npb24sCisgICAgICAgICAgICAgICAgICAgICAgICBwYXNfbG9ja19pc19ub3RfaGVsZCk7
CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBhbGxvY2F0b3JfaW5kZXggPSBp
bnRyaW5zaWNfc3VwcG9ydC0+aW5kZXhfdG9fYWxsb2NhdG9yX2luZGV4W2luZGV4XTsKICAgICAg
ICAgCiAgICAgICAgICAgICBpZiAodmVyYm9zZSkKICAgICAgICAgICAgICAgICBwYXNfbG9nKCJh
bGxvY2F0b3JfaW5kZXggPSAldS5cbiIsIGFsbG9jYXRvcl9pbmRleCk7CiAgICAgICAgIAotICAg
ICAgICAgICAgYWxsb2NhdG9yID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV90cnlfZ2V0X2xvY2Fs
X2FsbG9jYXRvcihjYWNoZSwgYWxsb2NhdG9yX2luZGV4KTsKKyAgICAgICAgICAgIGFsbG9jYXRv
cl9yZXN1bHQgPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0b3IoCisg
ICAgICAgICAgICAgICAgY2FjaGUsIGFsbG9jYXRvcl9pbmRleCwgcGFzX2xvY2tfaXNfbm90X2hl
bGQpOwogICAgICAgICB9CiAKLSAgICAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKCFhbGxvY2F0b3Iu
ZGlkX3N1Y2NlZWQgfHwgYWxsb2NhdG9yLmFsbG9jYXRvci0+b2JqZWN0X3NpemUgPj0gc2l6ZSk7
CisgICAgICAgIGFsbG9jYXRvciA9IChwYXNfbG9jYWxfYWxsb2NhdG9yKilhbGxvY2F0b3JfcmVz
dWx0LmFsbG9jYXRvcjsKKworICAgICAgICBQQVNfVEVTVElOR19BU1NFUlQoIWFsbG9jYXRvcl9y
ZXN1bHQuZGlkX3N1Y2NlZWQgfHwgYWxsb2NhdG9yLT5vYmplY3Rfc2l6ZSA+PSBhbGlnbmVkX3Np
emUpOwogICAgIAogICAgICAgICAvKiBUaGlzIHNob3VsZCBiZSBzcGVjaWFsaXplZCBvdXQgaW4g
dGhlIG5vbi1hbGlnbm1lbnQgY2FzZSBiZWNhdXNlIG9mIEFMV0FZU19JTkxJTkUgYW5kCiAgICAg
ICAgICAgIGFsaWdubWVudCBiZWluZyB0aGUgY29uc3RhbnQgMS4gKi8KLSAgICAgICAgaWYgKGFs
aWdubWVudCAhPSAxICYmIGFsbG9jYXRvci5kaWRfc3VjY2VlZAotICAgICAgICAgICAgJiYgYWxp
Z25tZW50ID4gcGFzX2xvY2FsX2FsbG9jYXRvcl9hbGlnbm1lbnQoYWxsb2NhdG9yLmFsbG9jYXRv
cikpIHsKKyAgICAgICAgaWYgKGFsaWdubWVudCAhPSAxICYmIGFsbG9jYXRvcl9yZXN1bHQuZGlk
X3N1Y2NlZWQKKyAgICAgICAgICAgICYmIGFsaWdubWVudCA+IHBhc19sb2NhbF9hbGxvY2F0b3Jf
YWxpZ25tZW50KGFsbG9jYXRvcikpIHsKICAgICAgICAgICAgIGlmICh2ZXJib3NlKSB7CiAgICAg
ICAgICAgICAgICAgcGFzX2xvZygiRGlzY2FyZGluZyBnb29kIGFsbG9jYXRvciByZXN1bHQgYmVj
YXVzZSBhbGlnbm1lbnQgaXMgaW5hZGVxdWF0ZSAiCiAgICAgICAgICAgICAgICAgICAgICAgICAi
KCV6dSwgbmVlZGVkICV6dSkuXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2xvY2Fs
X2FsbG9jYXRvcl9hbGlnbm1lbnQoYWxsb2NhdG9yLmFsbG9jYXRvciksIGFsaWdubWVudCk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX2FsaWdubWVudChhbGxv
Y2F0b3IpLCBhbGlnbm1lbnQpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgYWxsb2NhdG9y
LmRpZF9zdWNjZWVkID0gZmFsc2U7CisgICAgICAgICAgICBhbGxvY2F0b3JfcmVzdWx0LmRpZF9z
dWNjZWVkID0gZmFsc2U7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoUEFTX0xJS0VMWShhbGxv
Y2F0b3IuZGlkX3N1Y2NlZWQpKSB7CisgICAgICAgIGlmIChQQVNfTElLRUxZKGFsbG9jYXRvcl9y
ZXN1bHQuZGlkX3N1Y2NlZWQpKSB7CiAgICAgICAgICAgICByZXR1cm4gdHJ5X2FsbG9jYXRlX2Nv
bW1vbl9mYXN0KAotICAgICAgICAgICAgICAgIGFsbG9jYXRvci5hbGxvY2F0b3IsIHBhc190cml2
aWFsX3NpemVfdGh1bmssICh2b2lkKilhbGlnbmVkX3NpemUsIGFsaWdubWVudCk7CisgICAgICAg
ICAgICAgICAgYWxsb2NhdG9yLCBwYXNfdHJpdmlhbF9zaXplX3RodW5rLCAodm9pZCopYWxpZ25l
ZF9zaXplLCBhbGlnbm1lbnQpOwogICAgICAgICB9CiAgICAgfQogCkBAIC0yMTQsNiArMTYzLDk0
IEBAIHBhc190cnlfYWxsb2NhdGVfaW50cmluc2ljX3ByaW1pdGl2ZV9pbXAKICAgICByZXR1cm4g
dHJ5X2FsbG9jYXRlX2NvbW1vbl9zbG93KCZmYWtlX2hlYXBfcmVmLCBhbGlnbmVkX3NpemUsIGFs
aWduZWRfc2l6ZSwgYWxpZ25tZW50KTsKIH0KIAorc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBh
c19hbGxvY2F0aW9uX3Jlc3VsdAorcGFzX3RyeV9hbGxvY2F0ZV9pbnRyaW5zaWNfcHJpbWl0aXZl
X2ltcGxfaW5saW5lX29ubHkoCisgICAgc2l6ZV90IHNpemUsCisgICAgc2l6ZV90IGFsaWdubWVu
dCwKKyAgICBwYXNfaW50cmluc2ljX2hlYXBfc3VwcG9ydCogaW50cmluc2ljX3N1cHBvcnQsCisg
ICAgcGFzX2hlYXBfY29uZmlnIGNvbmZpZywKKyAgICBwYXNfdHJ5X2FsbG9jYXRlX2NvbW1vbl9m
YXN0X2lubGluZV9vbmx5IHRyeV9hbGxvY2F0ZV9jb21tb25fZmFzdF9pbmxpbmVfb25seSwKKyAg
ICBwYXNfaW50cmluc2ljX2hlYXBfZGVzaWduYXRpb25fbW9kZSBkZXNpZ25hdGlvbl9tb2RlKQor
eworICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKKyAgICAKKyAgICBzaXpl
X3QgYWxpZ25lZF9zaXplOworICAgIHNpemVfdCBpbmRleDsKKyAgICBwYXNfZGVzaWduYXRlZF9p
bmRleF9yZXN1bHQgZGVzaWduYXRlZF9pbmRleDsKKyAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
KiBjYWNoZTsKKyAgICB1bnNpZ25lZCBhbGxvY2F0b3JfaW5kZXg7CisgICAgcGFzX2xvY2FsX2Fs
bG9jYXRvcl9yZXN1bHQgYWxsb2NhdG9yX3Jlc3VsdDsKKyAgICBwYXNfbG9jYWxfYWxsb2NhdG9y
KiBhbGxvY2F0b3I7CisKKyAgICBQQVNfQVNTRVJUKGFsaWdubWVudCA9PSAxIHx8ICFkZXNpZ25h
dGlvbl9tb2RlKTsKKworICAgIGlmICghcGFzX2lzX3Bvd2VyX29mXzIoYWxpZ25tZW50KSkKKyAg
ICAgICAgcmV0dXJuIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGVfZmFpbHVyZSgpOworCisg
ICAgLyogSW4gdGhlIG5vbi1tZW1hbGlnbiBjYXNlLCB3ZSBjYW4gaGFwcGlseSBoYW5kbGUgemVy
by1zaXplZCBhbGxvY2F0aW9ucyB3aXRoIGFsaWduZWRfc2l6ZQorICAgICAgIGJlaW5nIDAuIFRo
aXMgd29ya3MgYmVjYXVzZSB0aGUgaGVhcCdzIDAgc2l6ZSBjbGFzcyBpcyBqdXN0IGEgY29weSBv
ZiB0aGUgbWluYWxpZ24gc2l6ZQorICAgICAgIGNsYXNzLiBCdXQgd2UgY2Fubm90IGRvIHRoaXMg
cHJvcGVybHkgaWYgdGhlIDAgc2l6ZSBjbGFzcyBoYXMgdG8gaGF2ZSBzb21lIGFsaWdubWVudC4g
VGhhdCdzCisgICAgICAgYmVjYXVzZSB3ZSBleHBlY3QgdGhhdCBmb3IgYSBzaXplIGNsYXNzIHRv
IHNhdGlzZnkgc29tZSBhbGlnbm1lbnQsIHRoYXQgc2l6ZSBtdXN0IGl0c2VsZgorICAgICAgIGJl
IGFsaWduZWQgdG8gdGhhdCBhbGlnbm1lbnQuICovCisgICAgaWYgKGFsaWdubWVudCA9PSAxKQor
ICAgICAgICBhbGlnbmVkX3NpemUgPSBzaXplOworICAgIGVsc2UgaWYgKHNpemUgPCBhbGlnbm1l
bnQpCisgICAgICAgIGFsaWduZWRfc2l6ZSA9IGFsaWdubWVudDsKKyAgICBlbHNlCisgICAgICAg
IGFsaWduZWRfc2l6ZSA9IHBhc19yb3VuZF91cF90b19wb3dlcl9vZl8yKHNpemUsIGFsaWdubWVu
dCk7CisgICAgCisgICAgaW5kZXggPSBwYXNfc2VncmVnYXRlZF9oZWFwX2luZGV4X2Zvcl9wcmlt
aXRpdmVfY291bnQoYWxpZ25lZF9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZyk7CisKKyAgICBpZiAodmVyYm9zZSkg
eworICAgICAgICBwYXNfbG9nKCJhbGlnbmVkX3NpemUgPSAlenUsIGluZGV4ID0gJXp1LCBhbGln
bm1lbnQgPSAlenUuXG4iLAorICAgICAgICAgICAgICAgIGFsaWduZWRfc2l6ZSwgaW5kZXgsIGFs
aWdubWVudCk7CisgICAgfQorCisgICAgY2FjaGUgPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3Ry
eV9nZXQoKTsKKyAgICBpZiAoUEFTX1VOTElLRUxZKCFjYWNoZSkpCisgICAgICAgIHJldHVybiBw
YXNfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX2ZhaWx1cmUoKTsKKyAgICAKKyAgICBkZXNpZ25h
dGVkX2luZGV4ID0gcGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXBfZGVzaWduYXRlZF9pbmRl
eCgKKyAgICAgICAgaW5kZXgsIGRlc2lnbmF0aW9uX21vZGUsIGNvbmZpZyk7CisgICAgaWYgKFBB
U19MSUtFTFkoZGVzaWduYXRlZF9pbmRleC5kaWRfc3VjY2VlZCkpIHsKKyAgICAgICAgYWxsb2Nh
dG9yX3Jlc3VsdCA9IHBhc19sb2NhbF9hbGxvY2F0b3JfcmVzdWx0X2NyZWF0ZV9zdWNjZXNzKAor
ICAgICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9yX2lt
cGwoCisgICAgICAgICAgICAgICAgY2FjaGUsCisgICAgICAgICAgICAgICAgZGVzaWduYXRlZF9p
bmRleC5pbmRleCAqIHBhc19kZXNpZ25hdGVkX2ludHJpbnNpY19oZWFwX251bV9hbGxvY2F0b3Jf
aW5kaWNlcyhjb25maWcpKSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKFBBU19VTkxJS0VM
WShpbmRleCA+PSBQQVNfTlVNX0lOVFJJTlNJQ19TSVpFX0NMQVNTRVMpKQorICAgICAgICAgICAg
cmV0dXJuIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGVfZmFpbHVyZSgpOworICAgICAgICAK
KyAgICAgICAgYWxsb2NhdG9yX2luZGV4ID0gaW50cmluc2ljX3N1cHBvcnQtPmluZGV4X3RvX2Fs
bG9jYXRvcl9pbmRleFtpbmRleF07CisgICAgICAgIAorICAgICAgICBpZiAodmVyYm9zZSkKKyAg
ICAgICAgICAgIHBhc19sb2coImFsbG9jYXRvcl9pbmRleCA9ICV1LlxuIiwgYWxsb2NhdG9yX2lu
ZGV4KTsKKyAgICAgICAgCisgICAgICAgIGFsbG9jYXRvcl9yZXN1bHQgPSBwYXNfdGhyZWFkX2xv
Y2FsX2NhY2hlX3RyeV9nZXRfbG9jYWxfYWxsb2NhdG9yKGNhY2hlLCBhbGxvY2F0b3JfaW5kZXgp
OworICAgIH0KKyAgICAKKyAgICBpZiAoUEFTX1VOTElLRUxZKCFhbGxvY2F0b3JfcmVzdWx0LmRp
ZF9zdWNjZWVkKSkKKyAgICAgICAgcmV0dXJuIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGVf
ZmFpbHVyZSgpOworICAgIAorICAgIGFsbG9jYXRvciA9IChwYXNfbG9jYWxfYWxsb2NhdG9yKilh
bGxvY2F0b3JfcmVzdWx0LmFsbG9jYXRvcjsKKyAgICAKKyAgICBQQVNfVEVTVElOR19BU1NFUlQo
IWFsbG9jYXRvcl9yZXN1bHQuZGlkX3N1Y2NlZWQgfHwgYWxsb2NhdG9yLT5vYmplY3Rfc2l6ZSA+
PSBhbGlnbmVkX3NpemUpOworICAgIAorICAgIC8qIFRoaXMgc2hvdWxkIGJlIHNwZWNpYWxpemVk
IG91dCBpbiB0aGUgbm9uLWFsaWdubWVudCBjYXNlIGJlY2F1c2Ugb2YgQUxXQVlTX0lOTElORSBh
bmQKKyAgICAgICBhbGlnbm1lbnQgYmVpbmcgdGhlIGNvbnN0YW50IDEuICovCisgICAgaWYgKGFs
aWdubWVudCAhPSAxICYmIGFsaWdubWVudCA+IHBhc19sb2NhbF9hbGxvY2F0b3JfYWxpZ25tZW50
KGFsbG9jYXRvcikpIHsKKyAgICAgICAgaWYgKHZlcmJvc2UpIHsKKyAgICAgICAgICAgIHBhc19s
b2coIkRpc2NhcmRpbmcgZ29vZCBhbGxvY2F0b3IgcmVzdWx0IGJlY2F1c2UgYWxpZ25tZW50IGlz
IGluYWRlcXVhdGUgIgorICAgICAgICAgICAgICAgICAgICAiKCV6dSwgbmVlZGVkICV6dSkuXG4i
LAorICAgICAgICAgICAgICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX2FsaWdubWVudChhbGxv
Y2F0b3IpLCBhbGlnbm1lbnQpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBwYXNfYWxsb2Nh
dGlvbl9yZXN1bHRfY3JlYXRlX2ZhaWx1cmUoKTsKKyAgICB9CisgICAgCisgICAgcmV0dXJuIHRy
eV9hbGxvY2F0ZV9jb21tb25fZmFzdF9pbmxpbmVfb25seShhbGxvY2F0b3IpOworfQorCiAjZGVm
aW5lIFBBU19DUkVBVEVfVFJZX0FMTE9DQVRFX0lOVFJJTlNJQ19QUklNSVRJVkUobmFtZSwgaGVh
cF9jb25maWcsIHJ1bnRpbWVfY29uZmlnLCBhbGxvY2F0b3JfY291bnRzLCByZXN1bHRfZmlsdGVy
LCBoZWFwLCBoZWFwX3N1cHBvcnQsIGRlc2lnbmF0aW9uX21vZGUpIFwKICAgICBQQVNfQ1JFQVRF
X1RSWV9BTExPQ0FURV9DT01NT04oIFwKICAgICAgICAgbmFtZSAjIyBfaW1wbCwgXApAQCAtMjI0
LDM1ICsyNjEsNTAgQEAgcGFzX3RyeV9hbGxvY2F0ZV9pbnRyaW5zaWNfcHJpbWl0aXZlX2ltcAog
ICAgICAgICBwYXNfZm9yY2VfY291bnRfbG9va3VwLCBcCiAgICAgICAgIChyZXN1bHRfZmlsdGVy
KSk7IFwKICAgICBcCi0gICAgc3RhdGljIFBBU19ORVZFUl9JTkxJTkUgcGFzX2ludHJpbnNpY19h
bGxvY2F0aW9uX3Jlc3VsdCBcCi0gICAgbmFtZSAjIyBfbWVkaXVtX3Nsb3dfY2FzZShwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlKiBjYWNoZSwgc2l6ZV90IGFsaWduZWRfc2l6ZSwgc2l6ZV90IGFsaWdu
bWVudCkgXAorICAgIHN0YXRpYyBQQVNfTkVWRVJfSU5MSU5FIHBhc19hbGxvY2F0aW9uX3Jlc3Vs
dCBcCisgICAgbmFtZSAjIyBfbWVkaXVtX3Nsb3dfY2FzZShzaXplX3Qgc2l6ZSwgc2l6ZV90IGFs
aWdubWVudCkgXAogICAgIHsgXAogICAgICAgICByZXR1cm4gcGFzX3RyeV9hbGxvY2F0ZV9pbnRy
aW5zaWNfcHJpbWl0aXZlX2ltcGxfbWVkaXVtX3Nsb3dfY2FzZSggXAotICAgICAgICAgICAgY2Fj
aGUsIChoZWFwKSwgYWxpZ25lZF9zaXplLCBhbGlnbm1lbnQsIChoZWFwX2NvbmZpZyksIFwKLSAg
ICAgICAgICAgIG5hbWUgIyMgX2ltcGxfZmFzdCwgbmFtZSAjIyBfaW1wbF9zbG93KTsgXAorICAg
ICAgICAgICAgKGhlYXApLCBzaXplLCBhbGlnbm1lbnQsIChoZWFwX3N1cHBvcnQpLCAoaGVhcF9j
b25maWcpLCBcCisgICAgICAgICAgICBuYW1lICMjIF9pbXBsX2Zhc3QsIG5hbWUgIyMgX2ltcGxf
c2xvdywgKGRlc2lnbmF0aW9uX21vZGUpKTsgXAogICAgIH0gXAogICAgIFwKLSAgICBzdGF0aWMg
UEFTX0FMV0FZU19JTkxJTkUgcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdCBuYW1lKHNp
emVfdCBzaXplLCBzaXplX3QgYWxpZ25tZW50KSBcCisgICAgc3RhdGljIFBBU19BTFdBWVNfSU5M
SU5FIHBhc19hbGxvY2F0aW9uX3Jlc3VsdCBuYW1lICMjIF9pbmxpbmVfb25seShzaXplX3Qgc2l6
ZSwgc2l6ZV90IGFsaWdubWVudCkgXAogICAgIHsgXAotICAgICAgICByZXR1cm4gcGFzX3RyeV9h
bGxvY2F0ZV9pbnRyaW5zaWNfcHJpbWl0aXZlX2ltcGwoIFwKLSAgICAgICAgICAgIChoZWFwKSwg
c2l6ZSwgYWxpZ25tZW50LCAoaGVhcF9zdXBwb3J0KSwgKGhlYXBfY29uZmlnKSwgXAotICAgICAg
ICAgICAgbmFtZSAjIyBfaW1wbF9mYXN0LCBuYW1lICMjIF9pbXBsX3Nsb3csIG5hbWUgIyMgX21l
ZGl1bV9zbG93X2Nhc2UsIFwKLSAgICAgICAgICAgIChkZXNpZ25hdGlvbl9tb2RlKSk7IFwKKyAg
ICAgICAgcmV0dXJuIHBhc190cnlfYWxsb2NhdGVfaW50cmluc2ljX3ByaW1pdGl2ZV9pbXBsX2lu
bGluZV9vbmx5KCBcCisgICAgICAgICAgICBzaXplLCBhbGlnbm1lbnQsIChoZWFwX3N1cHBvcnQp
LCAoaGVhcF9jb25maWcpLCBcCisgICAgICAgICAgICBuYW1lICMjIF9pbXBsX2Zhc3RfaW5saW5l
X29ubHksIChkZXNpZ25hdGlvbl9tb2RlKSk7IFwKKyAgICB9IFwKKyAgICBcCisgICAgc3RhdGlj
IFBBU19BTFdBWVNfSU5MSU5FIHBhc19hbGxvY2F0aW9uX3Jlc3VsdCBuYW1lKHNpemVfdCBzaXpl
LCBzaXplX3QgYWxpZ25tZW50KSBcCisgICAgeyBcCisgICAgICAgIHN0YXRpYyBjb25zdCBib29s
IHZlcmJvc2UgPSBmYWxzZTsgXAorICAgICAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgcmVzdWx0
OyBcCisgICAgICAgIHJlc3VsdCA9IG5hbWUgIyMgX2lubGluZV9vbmx5KHNpemUsIGFsaWdubWVu
dCk7IFwKKyAgICAgICAgaWYgKFBBU19MSUtFTFkocmVzdWx0LmRpZF9zdWNjZWVkKSkgeyBcCisg
ICAgICAgICAgICBpZiAodmVyYm9zZSkgXAorICAgICAgICAgICAgICAgIHBhc19sb2coIlJldHVy
bmluZyBzdWNjZXNzZnVsIHJlc3VsdCAoYmVnaW4gPSAlcClcbiIsICh2b2lkKilyZXN1bHQuYmVn
aW4pOyBcCisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OyBcCisgICAgICAgIH0gXAorICAgICAg
ICByZXR1cm4gbmFtZSAjIyBfbWVkaXVtX3Nsb3dfY2FzZShzaXplLCBhbGlnbm1lbnQpOyBcCiAg
ICAgfSBcCiAgICAgXAotICAgIHN0YXRpYyBQQVNfVU5VU0VEIFBBU19ORVZFUl9JTkxJTkUgcGFz
X2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdCBcCisgICAgc3RhdGljIFBBU19VTlVTRUQgUEFT
X05FVkVSX0lOTElORSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgXAogICAgIG5hbWUgIyMgX2Zvcl9y
ZWFsbG9jKHNpemVfdCBzaXplKSBcCiAgICAgeyBcCi0gICAgICAgIHJldHVybiBuYW1lKHNpemUs
IDEpOyBcCisgICAgICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsgXAorICAg
ICAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgcmVzdWx0ID0gbmFtZShzaXplLCAxKTsgXAorICAg
ICAgICBpZiAodmVyYm9zZSkgXAorICAgICAgICAgICAgcGFzX2xvZygicmVzdWx0LmJlZ2luID0g
JXBcbiIsIHJlc3VsdC5iZWdpbik7IFwKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsgXAogICAgIH0g
XAogICAgIFwKICAgICBzdHJ1Y3QgcGFzX2R1bW15CiAKLXR5cGVkZWYgcGFzX2ludHJpbnNpY19h
bGxvY2F0aW9uX3Jlc3VsdCAoKnBhc190cnlfYWxsb2NhdGVfaW50cmluc2ljX3ByaW1pdGl2ZSko
c2l6ZV90IHNpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBhbGlnbm1lbnQpOwor
dHlwZWRlZiBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgKCpwYXNfdHJ5X2FsbG9jYXRlX2ludHJpbnNp
Y19wcmltaXRpdmUpKHNpemVfdCBzaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBhbGlnbm1lbnQp
OwogCi10eXBlZGVmIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQKLSgqcGFzX3RyeV9h
bGxvY2F0ZV9pbnRyaW5zaWNfcHJpbWl0aXZlX2Zvcl9yZWFsbG9jKShzaXplX3Qgc2l6ZSk7ICAg
ICAgIAordHlwZWRlZiBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgKCpwYXNfdHJ5X2FsbG9jYXRlX2lu
dHJpbnNpY19wcmltaXRpdmVfZm9yX3JlYWxsb2MpKHNpemVfdCBzaXplKTsKIAogUEFTX0VORF9F
WFRFUk5fQzsKIApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3Ry
eV9hbGxvY2F0ZV9wcmltaXRpdmUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfdHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZS5oCShyZXZpc2lvbiAyNzk5
NjQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5X2FsbG9jYXRl
X3ByaW1pdGl2ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCwxNCArMzAsMTQgQEAKICNpbmNsdWRl
ICJwYXNfaGVhcC5oIgogI2luY2x1ZGUgInBhc19oZWFwX2NvbmZpZy5oIgogI2luY2x1ZGUgInBh
c19oZWFwX2xvY2suaCIKLSNpbmNsdWRlICJwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0
LmgiCisjaW5jbHVkZSAicGFzX2FsbG9jYXRpb25fcmVzdWx0LmgiCiAjaW5jbHVkZSAicGFzX2xv
Y2FsX2FsbG9jYXRvcl9pbmxpbmVzLmgiCiAjaW5jbHVkZSAicGFzX3BoeXNpY2FsX21lbW9yeV90
cmFuc2FjdGlvbi5oIgogI2luY2x1ZGUgInBhc19wcmltaXRpdmVfaGVhcF9yZWYuaCIKIAogUEFT
X0JFR0lOX0VYVEVSTl9DOwogCi1zdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2ludHJpbnNp
Y19hbGxvY2F0aW9uX3Jlc3VsdAorc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19hbGxvY2F0
aW9uX3Jlc3VsdAogcGFzX3RyeV9hbGxvY2F0ZV9wcmltaXRpdmVfaW1wbChwYXNfcHJpbWl0aXZl
X2hlYXBfcmVmKiBoZWFwX3JlZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6
ZV90IHNpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBhbGlnbm1l
bnQsCkBAIC01Myw3ICs1Myw3IEBAIHBhc190cnlfYWxsb2NhdGVfcHJpbWl0aXZlX2ltcGwocGFz
X3ByaW0KICAgICBzaXplX3QgaW5kZXg7CiAgICAgCiAgICAgaWYgKCFwYXNfaXNfcG93ZXJfb2Zf
MihhbGlnbm1lbnQpKQotICAgICAgICByZXR1cm4gcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jl
c3VsdF9jcmVhdGVfZW1wdHkoKTsKKyAgICAgICAgcmV0dXJuIHBhc19hbGxvY2F0aW9uX3Jlc3Vs
dF9jcmVhdGVfZmFpbHVyZSgpOwogICAgIAogICAgIGFsaWduZWRfc2l6ZSA9IHBhc19yb3VuZF91
cF90b19wb3dlcl9vZl8yKHNpemUsIGFsaWdubWVudCk7CiAgICAgCkBAIC05Miw3ICs5Miw3IEBA
IHBhc190cnlfYWxsb2NhdGVfcHJpbWl0aXZlX2ltcGwocGFzX3ByaW0KICAgICAvKiBUaGlzIHNo
b3VsZCBiZSBzcGVjaWFsaXplZCBvdXQgaW4gdGhlIG5vbi1hbGlnbm1lbnQgY2FzZSBiZWNhdXNl
IG9mIEFMV0FZU19JTkxJTkUgYW5kCiAgICAgICAgYWxpZ25tZW50IGJlaW5nIHRoZSBjb25zdGFu
dCAxLiAqLwogICAgIGlmIChhbGlnbm1lbnQgIT0gMSAmJiBhbGxvY2F0b3IuZGlkX3N1Y2NlZWQK
LSAgICAgICAgJiYgYWxpZ25tZW50ID4gcGFzX2xvY2FsX2FsbG9jYXRvcl9hbGlnbm1lbnQoYWxs
b2NhdG9yLmFsbG9jYXRvcikpCisgICAgICAgICYmIGFsaWdubWVudCA+IHBhc19sb2NhbF9hbGxv
Y2F0b3JfYWxpZ25tZW50KChwYXNfbG9jYWxfYWxsb2NhdG9yKilhbGxvY2F0b3IuYWxsb2NhdG9y
KSkKICAgICAgICAgYWxsb2NhdG9yLmRpZF9zdWNjZWVkID0gZmFsc2U7CiAKICAgICByZXR1cm4g
dHJ5X2FsbG9jYXRlX2NvbW1vbigmaGVhcF9yZWYtPmJhc2UsIGFsaWduZWRfc2l6ZSwgYWxpZ25l
ZF9zaXplLCBhbGlnbm1lbnQsIGFsbG9jYXRvcik7CkBAIC0xMDgsNyArMTA4LDcgQEAgcGFzX3Ry
eV9hbGxvY2F0ZV9wcmltaXRpdmVfaW1wbChwYXNfcHJpbQogICAgICAgICBwYXNfYXZvaWRfY291
bnRfbG9va3VwLCBcCiAgICAgICAgIChyZXN1bHRfZmlsdGVyKSk7IFwKICAgICBcCi0gICAgc3Rh
dGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQgbmFt
ZSggXAorICAgIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQg
bmFtZSggXAogICAgICAgICBwYXNfcHJpbWl0aXZlX2hlYXBfcmVmKiBoZWFwX3JlZiwgXAogICAg
ICAgICBzaXplX3Qgc2l6ZSwgXAogICAgICAgICBzaXplX3QgYWxpZ25tZW50KSBcCkBAIC0xMTcs
NyArMTE3LDcgQEAgcGFzX3RyeV9hbGxvY2F0ZV9wcmltaXRpdmVfaW1wbChwYXNfcHJpbQogICAg
ICAgICAgICAgaGVhcF9yZWYsIHNpemUsIGFsaWdubWVudCwgKGhlYXBfY29uZmlnKSwgKHJ1bnRp
bWVfY29uZmlnKSwgbmFtZSAjIyBfaW1wbCk7IFwKICAgICB9IFwKICAgICBcCi0gICAgc3RhdGlj
IFBBU19VTlVTRUQgUEFTX05FVkVSX0lOTElORSBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVz
dWx0IG5hbWUgIyMgX2Zvcl9yZWFsbG9jKCBcCisgICAgc3RhdGljIFBBU19VTlVTRUQgUEFTX05F
VkVSX0lOTElORSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgbmFtZSAjIyBfZm9yX3JlYWxsb2MoIFwK
ICAgICAgICAgcGFzX3ByaW1pdGl2ZV9oZWFwX3JlZiogaGVhcF9yZWYsIHNpemVfdCBzaXplKSBc
CiAgICAgeyBcCiAgICAgICAgIHJldHVybiBuYW1lKGhlYXBfcmVmLCBzaXplLCAxKTsgXApAQCAt
MTI1LDEwICsxMjUsMTAgQEAgcGFzX3RyeV9hbGxvY2F0ZV9wcmltaXRpdmVfaW1wbChwYXNfcHJp
bQogICAgIFwKICAgICBzdHJ1Y3QgcGFzX2R1bW15CiAKLXR5cGVkZWYgcGFzX2ludHJpbnNpY19h
bGxvY2F0aW9uX3Jlc3VsdCAoKnBhc190cnlfYWxsb2NhdGVfcHJpbWl0aXZlKSgKK3R5cGVkZWYg
cGFzX2FsbG9jYXRpb25fcmVzdWx0ICgqcGFzX3RyeV9hbGxvY2F0ZV9wcmltaXRpdmUpKAogICAg
IHBhc19wcmltaXRpdmVfaGVhcF9yZWYqIGhlYXBfcmVmLCBzaXplX3Qgc2l6ZSwgc2l6ZV90IGFs
aWdubWVudCk7CiAKLXR5cGVkZWYgcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdCAoKnBh
c190cnlfYWxsb2NhdGVfcHJpbWl0aXZlX2Zvcl9yZWFsbG9jKSgKK3R5cGVkZWYgcGFzX2FsbG9j
YXRpb25fcmVzdWx0ICgqcGFzX3RyeV9hbGxvY2F0ZV9wcmltaXRpdmVfZm9yX3JlYWxsb2MpKAog
ICAgIHBhc19wcmltaXRpdmVfaGVhcF9yZWYqIGhlYXBfcmVmLCBzaXplX3Qgc2l6ZSk7CiAKIFBB
U19FTkRfRVhURVJOX0M7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfdHJ5X3JlYWxsb2NhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfdHJ5X3JlYWxsb2NhdGUuaAkocmV2aXNpb24gMjc5OTY0KQorKysgU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RyeV9yZWFsbG9jYXRlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTI2LDcgKzI2LDcgQEAKICNpZm5kZWYgUEFTX1RSWV9SRUFMTE9DQVRFX0gK
ICNkZWZpbmUgUEFTX1RSWV9SRUFMTE9DQVRFX0gKIAotI2luY2x1ZGUgInBhc19iaXRmaXRfZ2xv
YmFsX2RpcmVjdG9yeS5oIgorI2luY2x1ZGUgInBhc19iaXRmaXRfZGlyZWN0b3J5LmgiCiAjaW5j
bHVkZSAicGFzX2RlYWxsb2NhdGUuaCIKICNpbmNsdWRlICJwYXNfbGFyZ2VfbWFwLmgiCiAjaW5j
bHVkZSAicGFzX3JlYWxsb2NhdGVfZnJlZV9tb2RlLmgiCkBAIC01NCw2ICs1NCw4IEBAIHBhc190
cnlfYWxsb2NhdGVfZm9yX3JlYWxsb2NhdGVfYW5kX2NvcHkKICAgICBwYXNfdHJ5X3JlYWxsb2Nh
dGVfYWxsb2NhdGVfY2FsbGJhY2sgYWxsb2NhdGVfY2FsbGJhY2ssCiAgICAgdm9pZCogYWxsb2Nh
dGVfY2FsbGJhY2tfYXJnKQogeworICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxz
ZTsKKyAgICAKICAgICBwYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHQgcmVzdWx0OwogCiAgICAg
LyogSWYgaGVhcHMgYXJlIGJhc2VkIG9uIHNvbWUgcmlnb3JvdXMgbm90aW9uIG9mIHR5cGUsIHRo
ZW4gd2Ugc2hvdWxkIGRpc2FsbG93IGhlYXAKQEAgLTkxLDYgKzkzLDggQEAgcGFzX3RyeV9hbGxv
Y2F0ZV9mb3JfcmVhbGxvY2F0ZV9hbmRfY29weQogICAgIHJlc3VsdCA9IGFsbG9jYXRlX2NhbGxi
YWNrKHRhcmdldF9oZWFwLCBuZXdfY291bnQsIGFsbG9jYXRlX2NhbGxiYWNrX2FyZyk7CiAgICAg
CiAgICAgaWYgKHJlc3VsdC5wdHIpIHsKKyAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAg
ICBwYXNfbG9nKCJyZXN1bHQucHRyID0gJXBcbiIsIHJlc3VsdC5wdHIpOwogICAgICAgICAvKiBG
SVhNRTogV2UgbmVlZCB0byBhY3R1YWxseSBiZSByb3VuZGluZyBkb3duIHRoZSBvbGQgc2l6ZSB0
byBvdXIKICAgICAgICAgICAgdHlwZSBzaXplLiBUbyBkbyB0aGF0IHdlJ2Qgd2FudCB0aGUgdHlw
ZWQgYWxsb2NhdGlvbiByZXN1bHQgdG8KICAgICAgICAgICAgZ2l2ZSB1cyB0aGUgdHlwZSBzaXpl
LiBGb3IgcHJpbWl0aXZlIGFsbG9jYXRpb25zLCBpdCB3b3VsZApAQCAtMTMzLDcgKzEzNyw3IEBA
IHBhc190cnlfcmVhbGxvY2F0ZV90YWJsZV9zZWdyZWdhdGVkX2Nhc2UKICAgICAgICAgYnJlYWs7
CiAgICAgICAgIAogICAgIGNhc2UgcGFzX3JlYWxsb2NhdGVfZGlzYWxsb3dfaGVhcF90ZWxlcG9y
dDogewotICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVj
dG9yeTsKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeTsK
ICAgICAgICAgZGlyZWN0b3J5ID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9nZXRfZGlyZWN0b3J5X2Zv
cl9hZGRyZXNzX2luX3BhZ2UoCiAgICAgICAgICAgICBwYWdlLCBiZWdpbiwgc2VncmVnYXRlZF9j
b25maWcpOwogICAgICAgICBvbGRfc2l6ZSA9IGRpcmVjdG9yeS0+b2JqZWN0X3NpemU7CkBAIC0x
NzUsOSArMTc5LDkgQEAgcGFzX3RyeV9yZWFsbG9jYXRlX3RhYmxlX2JpdGZpdF9jYXNlKHBhcwog
ICAgICAgICAKICAgICBjYXNlIHBhc19yZWFsbG9jYXRlX2Rpc2FsbG93X2hlYXBfdGVsZXBvcnQ6
CiAgICAgICAgIG9sZF9oZWFwID0gcGFzX2hlYXBfZm9yX3NlZ3JlZ2F0ZWRfaGVhcCgKLSAgICAg
ICAgICAgIHBhc19jb21wYWN0X2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9u
dWxsKAorICAgICAgICAgICAgcGFzX2NvbXBhY3RfYml0Zml0X2RpcmVjdG9yeV9wdHJfbG9hZF9u
b25fbnVsbCgKICAgICAgICAgICAgICAgICAmcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF92aWV3
X3B0cl9sb2FkX25vbl9udWxsKAotICAgICAgICAgICAgICAgICAgICAmcGFnZS0+b3duZXIpLT5n
bG9iYWxfZGlyZWN0b3J5KS0+aGVhcCk7CisgICAgICAgICAgICAgICAgICAgICZwYWdlLT5vd25l
ciktPmRpcmVjdG9yeSktPmhlYXApOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAgCkBAIC0y
MTcsNyArMjIxLDcgQEAgcGFzX3RyeV9yZWFsbG9jYXRlKHZvaWQqIG9sZF9wdHIsCiAgICAgICAg
ICAgICBicmVhazsKIAogICAgICAgICBjYXNlIHBhc19yZWFsbG9jYXRlX2Rpc2FsbG93X2hlYXBf
dGVsZXBvcnQ6IHsKLSAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVj
dG9yeSogZGlyZWN0b3J5OworICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnkqIGRpcmVjdG9yeTsKICAgICAgICAgICAgIGRpcmVjdG9yeSA9IHBhc19zZWdyZWdhdGVkX3Bh
Z2VfZ2V0X2RpcmVjdG9yeV9mb3JfYWRkcmVzc19hbmRfcGFnZV9jb25maWcoCiAgICAgICAgICAg
ICAgICAgYmVnaW4sIGNvbmZpZy5zbWFsbF9zZWdyZWdhdGVkX2NvbmZpZyk7CiAgICAgICAgICAg
ICBvbGRfc2l6ZSA9IGRpcmVjdG9yeS0+b2JqZWN0X3NpemU7CkBAIC0yNDksOSArMjUzLDkgQEAg
cGFzX3RyeV9yZWFsbG9jYXRlKHZvaWQqIG9sZF9wdHIsCiAKICAgICAgICAgY2FzZSBwYXNfcmVh
bGxvY2F0ZV9kaXNhbGxvd19oZWFwX3RlbGVwb3J0OgogICAgICAgICAgICAgb2xkX2hlYXAgPSBw
YXNfaGVhcF9mb3Jfc2VncmVnYXRlZF9oZWFwKAotICAgICAgICAgICAgICAgIHBhc19jb21wYWN0
X2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKAorICAgICAgICAgICAg
ICAgIHBhc19jb21wYWN0X2JpdGZpdF9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoCiAgICAg
ICAgICAgICAgICAgICAgICZwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X3ZpZXdfcHRyX2xvYWRf
bm9uX251bGwoCi0gICAgICAgICAgICAgICAgICAgICAgICAmcGFnZS0+b3duZXIpLT5nbG9iYWxf
ZGlyZWN0b3J5KS0+aGVhcCk7CisgICAgICAgICAgICAgICAgICAgICAgICAmcGFnZS0+b3duZXIp
LT5kaXJlY3RvcnkpLT5oZWFwKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAg
ICAgIApAQCAtMzg0LDcgKzM4OCw3IEBAIHBhc190cnlfcmVhbGxvY2F0ZV9pbnRyaW5zaWNfcHJp
bWl0aXZlX2EKICAgICAgICAgbmV3X2NvdW50KTsKIH0KIAotc3RhdGljIFBBU19BTFdBWVNfSU5M
SU5FIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQKK3N0YXRpYyBQQVNfQUxXQVlTX0lO
TElORSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQKIHBhc190cnlfcmVhbGxvY2F0ZV9pbnRyaW5zaWNf
cHJpbWl0aXZlKAogICAgIHZvaWQqIG9sZF9wdHIsCiAgICAgcGFzX2hlYXAqIGhlYXAsCkBAIC01
MjMsMTkgKzUyNywyNyBAQCBwYXNfdHJ5X3JlYWxsb2NhdGVfcHJpbWl0aXZlX2FsbG9jYXRlX2Nh
CiAgICAgc2l6ZV90IG5ld19jb3VudCwKICAgICB2b2lkKiBhcmcpCiB7CisgICAgc3RhdGljIGNv
bnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOworICAgIAogICAgIHBhc190cnlfcmVhbGxvY2F0ZV9w
cmltaXRpdmVfYWxsb2NhdGVfZGF0YSogZGF0YTsKKyAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHQg
cmVzdWx0OwogCiAgICAgUEFTX1VOVVNFRF9QQVJBTShoZWFwKTsKICAgICAKICAgICBkYXRhID0g
KHBhc190cnlfcmVhbGxvY2F0ZV9wcmltaXRpdmVfYWxsb2NhdGVfZGF0YSopYXJnOworCisgICAg
cmVzdWx0ID0gZGF0YS0+dHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZShkYXRhLT5oZWFwX3JlZiwgbmV3
X2NvdW50KTsKKworICAgIGlmICh2ZXJib3NlKQorICAgICAgICBwYXNfbG9nKCJpbiByZWFsbG9j
IC0gcmVzdWx0LmJlZ2luID0gJXBcbiIsICh2b2lkKilyZXN1bHQuYmVnaW4pOwogICAgIAogICAg
IHJldHVybiBwYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX3dpdGhfaW50cmluc2lj
X2FsbG9jYXRpb25fcmVzdWx0KAotICAgICAgICBkYXRhLT50cnlfYWxsb2NhdGVfcHJpbWl0aXZl
KGRhdGEtPmhlYXBfcmVmLCBuZXdfY291bnQpLAorICAgICAgICByZXN1bHQsCiAgICAgICAgIE5V
TEwsCiAgICAgICAgIG5ld19jb3VudCk7CiB9CiAKLXN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBw
YXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0CitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUg
cGFzX2FsbG9jYXRpb25fcmVzdWx0CiBwYXNfdHJ5X3JlYWxsb2NhdGVfcHJpbWl0aXZlKAogICAg
IHZvaWQqIG9sZF9wdHIsCiAgICAgcGFzX3ByaW1pdGl2ZV9oZWFwX3JlZiogaGVhcF9yZWYsCklu
ZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdHlwZWRfYWxsb2NhdGlv
bl9yZXN1bHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHQuaAkocmV2aXNpb24gMjc5OTY0KQorKysgU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0
LmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDcgKzI2LDcgQEAKICNpZm5kZWYgUEFTX1RZUEVEX0FM
TE9DQVRJT05fUkVTVUxUX0gKICNkZWZpbmUgUEFTX1RZUEVEX0FMTE9DQVRJT05fUkVTVUxUX0gK
IAotI2luY2x1ZGUgInBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQuaCIKKyNpbmNsdWRl
ICJwYXNfYWxsb2NhdGlvbl9yZXN1bHQuaCIKICNpbmNsdWRlICJwYXNfdXRpbHMuaCIKIAogUEFT
X0JFR0lOX0VYVEVSTl9DOwpAQCAtNzEsMTIgKzcxLDEyIEBAIHBhc190eXBlZF9hbGxvY2F0aW9u
X3Jlc3VsdF9jcmVhdGUocGFzX2gKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1zdGF0aWMgUEFT
X0FMV0FZU19JTkxJTkUgcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdAorc3RhdGljIFBB
U19BTFdBWVNfSU5MSU5FIHBhc19hbGxvY2F0aW9uX3Jlc3VsdAogcGFzX3R5cGVkX2FsbG9jYXRp
b25fcmVzdWx0X2FzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdCgKICAgICBwYXNfdHlwZWRf
YWxsb2NhdGlvbl9yZXN1bHQgaW50ZXJuYWxfcmVzdWx0KQogewotICAgIHBhc19pbnRyaW5zaWNf
YWxsb2NhdGlvbl9yZXN1bHQgcmVzdWx0OwotICAgIHJlc3VsdC5wdHIgPSBpbnRlcm5hbF9yZXN1
bHQucHRyOworICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdCByZXN1bHQ7CisgICAgcmVzdWx0LmJl
Z2luID0gKHVpbnRwdHJfdClpbnRlcm5hbF9yZXN1bHQucHRyOwogICAgIHJlc3VsdC5kaWRfc3Vj
Y2VlZCA9IGludGVybmFsX3Jlc3VsdC5kaWRfc3VjY2VlZDsKICAgICByZXN1bHQuemVyb19tb2Rl
ID0gaW50ZXJuYWxfcmVzdWx0Lnplcm9fbW9kZTsKICAgICByZXR1cm4gcmVzdWx0OwpAQCAtODQs
MTMgKzg0LDEzIEBAIHBhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdF9hc19pbnRyaW5zaWMKIAog
c3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdAogcGFz
X3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0ZV93aXRoX2ludHJpbnNpY19hbGxvY2F0aW9u
X3Jlc3VsdCgKLSAgICBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0IGludHJpbnNpY19y
ZXN1bHQsCisgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0IGludHJpbnNpY19yZXN1bHQsCiAgICAg
cGFzX2hlYXBfdHlwZSogdHlwZSwKICAgICBzaXplX3Qgc2l6ZSkKIHsKICAgICBwYXNfdHlwZWRf
YWxsb2NhdGlvbl9yZXN1bHQgcmVzdWx0OwogICAgIHJlc3VsdC50eXBlID0gdHlwZTsKLSAgICBy
ZXN1bHQucHRyID0gaW50cmluc2ljX3Jlc3VsdC5wdHI7CisgICAgcmVzdWx0LnB0ciA9ICh2b2lk
KilpbnRyaW5zaWNfcmVzdWx0LmJlZ2luOwogICAgIHJlc3VsdC5zaXplID0gc2l6ZTsKICAgICBy
ZXN1bHQuZGlkX3N1Y2NlZWQgPSBpbnRyaW5zaWNfcmVzdWx0LmRpZF9zdWNjZWVkOwogICAgIHJl
c3VsdC56ZXJvX21vZGUgPSBpbnRyaW5zaWNfcmVzdWx0Lnplcm9fbW9kZTsKQEAgLTEwMCw3ICsx
MDAsNyBAQCBwYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX3dpdGhfCiBzdGF0aWMg
UEFTX0FMV0FZU19JTkxJTkUgcGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0CiBwYXNfdHlwZWRf
YWxsb2NhdGlvbl9yZXN1bHRfemVybyhwYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHQgcmVzdWx0
KQogewotICAgIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHRfemVybygKKyAgICBwYXNf
YWxsb2NhdGlvbl9yZXN1bHRfemVybygKICAgICAgICAgcGFzX3R5cGVkX2FsbG9jYXRpb25fcmVz
dWx0X2FzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdChyZXN1bHQpLAogICAgICAgICByZXN1
bHQuc2l6ZSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTEwOSw3ICsxMDksNyBAQCBwYXNfdHlw
ZWRfYWxsb2NhdGlvbl9yZXN1bHRfemVybyhwYXNfdHlwCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJ
TkUgcGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0CiBwYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1
bHRfc2V0X2Vycm5vKHBhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdCByZXN1bHQpCiB7Ci0gICAg
cGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdF9zZXRfZXJybm8oCisgICAgcGFzX2FsbG9j
YXRpb25fcmVzdWx0X3NldF9lcnJubygKICAgICAgICAgcGFzX3R5cGVkX2FsbG9jYXRpb25fcmVz
dWx0X2FzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdChyZXN1bHQpKTsKICAgICByZXR1cm4g
cmVzdWx0OwogfQpAQCAtMTE3LDcgKzExNyw3IEBAIHBhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3Vs
dF9zZXRfZXJybm8ocGEKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfdHlwZWRfYWxsb2Nh
dGlvbl9yZXN1bHQKIHBhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdF9jcmFzaF9vbl9lcnJvcihw
YXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHQgcmVzdWx0KQogewotICAgIHBhc19pbnRyaW5zaWNf
YWxsb2NhdGlvbl9yZXN1bHRfY3Jhc2hfb25fZXJyb3IoCisgICAgcGFzX2FsbG9jYXRpb25fcmVz
dWx0X2NyYXNoX29uX2Vycm9yKAogICAgICAgICBwYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHRf
YXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0KHJlc3VsdCkpOwogICAgIHJldHVybiByZXN1
bHQ7CiB9CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdXRpbGl0
eV9oZWFwLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX3V0aWxpdHlfaGVhcC5jCShyZXZpc2lvbiAyNzk5NjQpCisrKyBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfdXRpbGl0eV9oZWFwLmMJKHdvcmtpbmcgY29weSkKQEAgLTQy
LDE0ICs0MiwxMiBAQCBwYXNfaGVhcF9ydW50aW1lX2NvbmZpZyBwYXNfdXRpbGl0eV9oZWFwCiAg
ICAgLnNoYXJpbmdfbW9kZSA9IHBhc19zaGFyZV9wYWdlcywKICAgICAuc3RhdGljYWxseV9hbGxv
Y2F0ZWQgPSB0cnVlLAogICAgIC5pc19wYXJ0X29mX2hlYXAgPSBmYWxzZSwKLSAgICAuZGlyZWN0
b3J5X3NpemVfYm91bmRfZm9yX3BhcnRpYWxfdmlld3MgPQotICAgICAgICBQQVNfVVRJTElUWV9C
T1VORF9GT1JfUEFSVElBTF9WSUVXUywKLSAgICAuZGlyZWN0b3J5X3NpemVfYm91bmRfZm9yX2Jh
c2VsaW5lX2FsbG9jYXRvcnMgPQotICAgICAgICBQQVNfVVRJTElUWV9CT1VORF9GT1JfQkFTRUxJ
TkVfQUxMT0NBVE9SUywKLSAgICAubWF4X3NlZ3JlZ2F0ZWRfb2JqZWN0X3NpemUgPQotICAgICAg
ICBQQVNfVVRJTElUWV9NQVhfU0VHUkVHQVRFRF9PQkpFQ1RfU0laRSwKLSAgICAubWF4X2JpdGZp
dF9vYmplY3Rfc2l6ZSA9Ci0gICAgICAgIFBBU19VVElMSVRZX01BWF9CSVRGSVRfT0JKRUNUX1NJ
WkUKKyAgICAuZGlyZWN0b3J5X3NpemVfYm91bmRfZm9yX3BhcnRpYWxfdmlld3MgPSBQQVNfVVRJ
TElUWV9CT1VORF9GT1JfUEFSVElBTF9WSUVXUywKKyAgICAuZGlyZWN0b3J5X3NpemVfYm91bmRf
Zm9yX2Jhc2VsaW5lX2FsbG9jYXRvcnMgPSBQQVNfVVRJTElUWV9CT1VORF9GT1JfQkFTRUxJTkVf
QUxMT0NBVE9SUywKKyAgICAuZGlyZWN0b3J5X3NpemVfYm91bmRfZm9yX25vX3ZpZXdfY2FjaGUg
PSBQQVNfVVRJTElUWV9CT1VORF9GT1JfTk9fVklFV19DQUNIRSwKKyAgICAubWF4X3NlZ3JlZ2F0
ZWRfb2JqZWN0X3NpemUgPSBQQVNfVVRJTElUWV9NQVhfU0VHUkVHQVRFRF9PQkpFQ1RfU0laRSwK
KyAgICAubWF4X2JpdGZpdF9vYmplY3Rfc2l6ZSA9IFBBU19VVElMSVRZX01BWF9CSVRGSVRfT0JK
RUNUX1NJWkUsCisgICAgLnZpZXdfY2FjaGVfY2FwYWNpdHlfZm9yX29iamVjdF9zaXplID0gcGFz
X2hlYXBfcnVudGltZV9jb25maWdfemVyb192aWV3X2NhY2hlX2NhcGFjaXR5CiB9OwogCiBwYXNf
c2VncmVnYXRlZF9oZWFwIHBhc191dGlsaXR5X3NlZ3JlZ2F0ZWRfaGVhcCA9IHsKQEAgLTEwNSwx
MyArMTAzLDE0IEBAIHZvaWQqIHBhc191dGlsaXR5X2hlYXBfdHJ5X2FsbG9jYXRlX3dpdGgKIAog
ICAgIGlmIChwYXNfbG9jYWxfYWxsb2NhdG9yX2lzX251bGwoYWxsb2NhdG9yKQogICAgICAgICB8
fCBhbGlnbm1lbnQgPiBwYXNfbG9jYWxfYWxsb2NhdG9yX2FsaWdubWVudChhbGxvY2F0b3IpKSB7
Ci0gICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5
OworICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5OwogICAg
ICAgICAKICAgICAgICAgcGFzX3V0aWxpdHlfaGVhcF9zdXBwb3J0X2luc3RhbmNlLnNsb3dfcGF0
aF9jb3VudCsrOwogCiAgICAgICAgIGRpcmVjdG9yeSA9IHBhc19zZWdyZWdhdGVkX2hlYXBfZW5z
dXJlX3NpemVfZGlyZWN0b3J5X2Zvcl9jb3VudCgKICAgICAgICAgICAgICZwYXNfdXRpbGl0eV9z
ZWdyZWdhdGVkX2hlYXAsIGFsaWduZWRfc2l6ZSwgYWxpZ25tZW50LAotICAgICAgICAgICAgcGFz
X2ZvcmNlX2NvdW50X2xvb2t1cCwgJnBhc191dGlsaXR5X2hlYXBfY29uZmlnLCBOVUxMKTsKKyAg
ICAgICAgICAgIHBhc19mb3JjZV9jb3VudF9sb29rdXAsICZwYXNfdXRpbGl0eV9oZWFwX2NvbmZp
ZywgTlVMTCwKKyAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2Z1bGxf
Y3JlYXRpb25fbW9kZSk7CiAKICAgICAgICAgUEFTX0FTU0VSVChkaXJlY3RvcnkpOwogCkBAIC0x
MjQsNyArMTIzLDggQEAgdm9pZCogcGFzX3V0aWxpdHlfaGVhcF90cnlfYWxsb2NhdGVfd2l0aAog
ICAgICAgICAodm9pZCopYWxpZ25lZF9zaXplLAogICAgICAgICBhbGlnbm1lbnQsCiAgICAgICAg
IFBBU19VVElMSVRZX0hFQVBfQ09ORklHLAotICAgICAgICAmcGFzX3V0aWxpdHlfYWxsb2NhdG9y
X2NvdW50cykuYmVnaW47CisgICAgICAgICZwYXNfdXRpbGl0eV9hbGxvY2F0b3JfY291bnRzLAor
ICAgICAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfaWRlbnRpdHkpLmJlZ2luOwogCiAgICAgcGFz
X2RpZF9hbGxvY2F0ZShyZXN1bHQsIHNpemUsIHBhc191dGlsaXR5X2hlYXBfa2luZCwgbmFtZSwg
cGFzX29iamVjdF9hbGxvY2F0aW9uKTsKIApAQCAtMTY2LDcgKzE2Niw5IEBAIHZvaWQgcGFzX3V0
aWxpdHlfaGVhcF9kZWFsbG9jYXRlKHZvaWQqIHAKIAogICAgIGJlZ2luID0gKHVpbnRwdHJfdClw
dHI7CiAKLSAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2RlYWxsb2NhdGUoYmVnaW4sIE5VTEwsIFBB
U19VVElMSVRZX0hFQVBfQ09ORklHLnNtYWxsX3NlZ3JlZ2F0ZWRfY29uZmlnKTsKKyAgICBwYXNf
c2VncmVnYXRlZF9wYWdlX2RlYWxsb2NhdGUoCisgICAgICAgIGJlZ2luLCBOVUxMLCBwYXNfc2Vn
cmVnYXRlZF9kZWFsbG9jYXRpb25fZGlyZWN0X21vZGUsIE5VTEwsCisgICAgICAgIFBBU19VVElM
SVRZX0hFQVBfQ09ORklHLnNtYWxsX3NlZ3JlZ2F0ZWRfY29uZmlnKTsKIH0KIAogc2l6ZV90IHBh
c191dGlsaXR5X2hlYXBfZ2V0X251bV9mcmVlX2J5dGVzKHZvaWQpCkluZGV4OiBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdXRpbGl0eV9oZWFwLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3V0aWxpdHlfaGVhcC5oCShyZXZp
c2lvbiAyNzk5NjQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdXRp
bGl0eV9oZWFwLmgJKHdvcmtpbmcgY29weSkKQEAgLTM4LDEwICszOCwxMCBAQCBQQVNfQkVHSU5f
RVhURVJOX0M7CiAKIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9oZWFwOwogc3RydWN0IHBhc19zZWdy
ZWdhdGVkX3BhZ2U7Ci1zdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
Oworc3RydWN0IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5OwogdHlwZWRlZiBzdHJ1Y3Qg
cGFzX3NlZ3JlZ2F0ZWRfaGVhcCBwYXNfc2VncmVnYXRlZF9oZWFwOwogdHlwZWRlZiBzdHJ1Y3Qg
cGFzX3NlZ3JlZ2F0ZWRfcGFnZSBwYXNfc2VncmVnYXRlZF9wYWdlOwotdHlwZWRlZiBzdHJ1Y3Qg
cGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5IHBhc19zZWdyZWdhdGVkX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeTsKK3R5cGVkZWYgc3RydWN0IHBhc19zZWdyZWdhdGVkX3NpemVfZGly
ZWN0b3J5IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5OwogCiAvKiBUaGUgdXRpbGl0eSBo
ZWFwIGlzIGZvciBhbGxvY2F0aW5nIGhpZ2ggdm9sdW1lcyBvZiBzbWFsbCBvYmplY3RzIGFzIHBh
cnQgb2YgYm9va2tlZXBpbmcgZm9yCiAgICB0aGUgaGVhcHMgdGhhdCBsaWJwYXMgYWN0dWFsbHkg
cHJvdmlkZXMuIEl0IGNhbiBvbmx5IGhhbmRsZSBvYmplY3RzIHVwIHRvIHNvbWUgc2l6ZSAocm91
Z2hseQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3V0aWxpdHlf
aGVhcF9jb25maWcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfdXRpbGl0eV9oZWFwX2NvbmZpZy5oCShyZXZpc2lvbiAyNzk5NjQpCisrKyBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdXRpbGl0eV9oZWFwX2NvbmZpZy5oCSh3
b3JraW5nIGNvcHkpCkBAIC02Miw3ICs2Miw3IEBAIFBBU19BUEkgdm9pZCogcGFzX3V0aWxpdHlf
aGVhcF9hbGxvY2F0ZV8KIAogc3RhdGljIGlubGluZSBwYXNfc2VncmVnYXRlZF9zaGFyZWRfcGFn
ZV9kaXJlY3RvcnkqCiBwYXNfdXRpbGl0eV9oZWFwX3NoYXJlZF9wYWdlX2RpcmVjdG9yeV9zZWxl
Y3RvcihwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0
b3J5KiBkaXJlY3RvcnkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KQogewogICAg
IFBBU19VTlVTRURfUEFSQU0oaGVhcCk7CiAgICAgUEFTX1VOVVNFRF9QQVJBTShkaXJlY3Rvcnkp
OwpAQCAtMTI2LDYgKzEyNiw3IEBAIFBBU19BUEkgYm9vbCBwYXNfdXRpbGl0eV9oZWFwX2NvbmZp
Z19mb3IKICAgICAgICAgICAgIC51c2VfcmV2ZXJzZWRfY3VycmVudF93b3JkID0gUEFTX0FSTTY0
LCBcCiAgICAgICAgICAgICAuY2hlY2tfZGVhbGxvY2F0aW9uID0gZmFsc2UsIFwKICAgICAgICAg
ICAgIC5lbmFibGVfZW1wdHlfd29yZF9lbGlnaWJpbGl0eV9vcHRpbWl6YXRpb24gPSBmYWxzZSwg
XAorICAgICAgICAgICAgLmVuYWJsZV92aWV3X2NhY2hlID0gZmFsc2UsIFwKICAgICAgICAgICAg
IC5zaGFyZWRfcGFnZV9kaXJlY3Rvcnlfc2VsZWN0b3IgPSBwYXNfdXRpbGl0eV9oZWFwX3NoYXJl
ZF9wYWdlX2RpcmVjdG9yeV9zZWxlY3RvciwgXAogICAgICAgICAgICAgUEFTX1NFR1JFR0FURURf
UEFHRV9DT05GSUdfU1BFQ0lBTElaQVRJT05TKHBhc191dGlsaXR5X2hlYXBfcGFnZV9jb25maWcp
IFwKICAgICAgICAgfSwgXApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX3V0aWxpdHlfaGVhcF9zdXBwb3J0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX3V0aWxpdHlfaGVhcF9zdXBwb3J0LmgJKHJldmlzaW9uIDI3
OTk2NCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc191dGlsaXR5X2hl
YXBfc3VwcG9ydC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw3ICszOCw3IEBAIHR5cGVkZWYgc3Ry
dWN0IHBhc191dGlsaXR5X2hlYXBfc3VwcG9ydCAKIHR5cGVkZWYgdW5pb24gcGFzX3V0aWxpdHlf
aGVhcF9hbGxvY2F0b3IgcGFzX3V0aWxpdHlfaGVhcF9hbGxvY2F0b3I7CiAKIHN0cnVjdCBwYXNf
dXRpbGl0eV9oZWFwX3N1cHBvcnQgewotICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHIKKyAgICBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeV9wdHIKICAgICAgICAgaW5kZXhfdG9fc2l6ZV9kaXJlY3Rvcnlb
UEFTX05VTV9VVElMSVRZX1NJWkVfQ0xBU1NFU107CiAgICAgcGFzX3V0aWxpdHlfaGVhcF9hbGxv
Y2F0b3IqIGFsbG9jYXRvcnM7CiAgICAgdWludDY0X3Qgc2xvd19wYXRoX2NvdW50OwpJbmRleDog
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3V0aWxzLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3V0aWxzLmgJKHJldmlzaW9u
IDI3OTk2NCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc191dGlscy5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zODgsNiArMzg4LDExIEBAIHN0YXRpYyBpbmxpbmUgdW5zaWdu
ZWQgcGFzX2xvZzJfcm91bmRlZF8KICAgICByZXR1cm4gcGFzX2xvZzJfcm91bmRlZF91cCh2YWx1
ZSk7CiB9CiAKK3N0YXRpYyBpbmxpbmUgdWludHB0cl90IHBhc19yb3VuZF91cF90b19uZXh0X3Bv
d2VyX29mXzIodWludHB0cl90IHZhbHVlKQoreworICAgIHJldHVybiAodWludHB0cl90KTEgPDwg
cGFzX2xvZzJfcm91bmRlZF91cF9zYWZlKHZhbHVlKTsKK30KKwogI2RlZmluZSBQQVNfU1dBUChs
ZWZ0LCByaWdodCkgZG8geyBcCiAgICAgICAgIHR5cGVvZiAobGVmdCkgX3N3YXBfdG1wID0gbGVm
dDsgXAogICAgICAgICBsZWZ0ID0gcmlnaHQ7IFwKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3RoaW5neV9oZWFwLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvdGhpbmd5X2hlYXAuYwkocmV2aXNpb24gMjc5OTY0KQorKysgU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvdGhpbmd5X2hlYXAuYwkod29ya2luZyBjb3B5
KQpAQCAtNjgsMzYgKzY4LDM2IEBAIFBBU19DUkVBVEVfVFJZX0FMTE9DQVRFX0lOVFJJTlNJQ19Q
UklNSVQKICAgICBUSElOR1lfSEVBUF9DT05GSUcsCiAgICAgJnRoaW5neV9pbnRyaW5zaWNfcHJp
bWl0aXZlX3J1bnRpbWVfY29uZmlnLmJhc2UsCiAgICAgJnRoaW5neV9hbGxvY2F0b3JfY291bnRz
LAotICAgIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHRfaWRlbnRpdHksCisgICAgcGFz
X2FsbG9jYXRpb25fcmVzdWx0X2lkZW50aXR5LAogICAgICZ0aGluZ3lfcHJpbWl0aXZlX2hlYXAs
CiAgICAgJnRoaW5neV9wcmltaXRpdmVfaGVhcF9zdXBwb3J0LAogICAgIHBhc19pbnRyaW5zaWNf
aGVhcF9pc19ub3RfZGVzaWduYXRlZCk7CiAKIHZvaWQqIHRoaW5neV90cnlfYWxsb2NhdGVfcHJp
bWl0aXZlKHNpemVfdCBzaXplKQogewotICAgIHJldHVybiB0cnlfYWxsb2NhdGVfcHJpbWl0aXZl
KHNpemUsIDEpLnB0cjsKKyAgICByZXR1cm4gKHZvaWQqKXRyeV9hbGxvY2F0ZV9wcmltaXRpdmUo
c2l6ZSwgMSkuYmVnaW47CiB9CiAKIHZvaWQqIHRoaW5neV90cnlfYWxsb2NhdGVfcHJpbWl0aXZl
X3plcm9lZChzaXplX3Qgc2l6ZSkKIHsKLSAgICByZXR1cm4gcGFzX2ludHJpbnNpY19hbGxvY2F0
aW9uX3Jlc3VsdF96ZXJvKHRyeV9hbGxvY2F0ZV9wcmltaXRpdmUoc2l6ZSwgMSksIHNpemUpLnB0
cjsKKyAgICByZXR1cm4gKHZvaWQqKXBhc19hbGxvY2F0aW9uX3Jlc3VsdF96ZXJvKHRyeV9hbGxv
Y2F0ZV9wcmltaXRpdmUoc2l6ZSwgMSksIHNpemUpLmJlZ2luOwogfQogCiB2b2lkKiB0aGluZ3lf
dHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZV93aXRoX2FsaWdubWVudChzaXplX3Qgc2l6ZSwgc2l6ZV90
IGFsaWdubWVudCkKIHsKLSAgICByZXR1cm4gdHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZShzaXplLCBh
bGlnbm1lbnQpLnB0cjsKKyAgICByZXR1cm4gKHZvaWQqKXRyeV9hbGxvY2F0ZV9wcmltaXRpdmUo
c2l6ZSwgYWxpZ25tZW50KS5iZWdpbjsKIH0KIAogdm9pZCogdGhpbmd5X3RyeV9yZWFsbG9jYXRl
X3ByaW1pdGl2ZSh2b2lkKiBvbGRfcHRyLCBzaXplX3QgbmV3X3NpemUpCiB7Ci0gICAgcmV0dXJu
IHBhc190cnlfcmVhbGxvY2F0ZV9pbnRyaW5zaWNfcHJpbWl0aXZlKAorICAgIHJldHVybiAodm9p
ZCopcGFzX3RyeV9yZWFsbG9jYXRlX2ludHJpbnNpY19wcmltaXRpdmUoCiAgICAgICAgIG9sZF9w
dHIsCiAgICAgICAgICZ0aGluZ3lfcHJpbWl0aXZlX2hlYXAsCiAgICAgICAgIG5ld19zaXplLAog
ICAgICAgICBUSElOR1lfSEVBUF9DT05GSUcsCiAgICAgICAgIHRyeV9hbGxvY2F0ZV9wcmltaXRp
dmVfZm9yX3JlYWxsb2MsCiAgICAgICAgIHBhc19yZWFsbG9jYXRlX2Rpc2FsbG93X2hlYXBfdGVs
ZXBvcnQsCi0gICAgICAgIHBhc19yZWFsbG9jYXRlX2ZyZWVfaWZfc3VjY2Vzc2Z1bCkucHRyOwor
ICAgICAgICBwYXNfcmVhbGxvY2F0ZV9mcmVlX2lmX3N1Y2Nlc3NmdWwpLmJlZ2luOwogfQogCiBQ
QVNfQ1JFQVRFX1RSWV9BTExPQ0FURSgKQEAgLTEwNSw3ICsxMDUsNyBAQCBQQVNfQ1JFQVRFX1RS
WV9BTExPQ0FURSgKICAgICBUSElOR1lfSEVBUF9DT05GSUcsCiAgICAgJnRoaW5neV90eXBlZF9y
dW50aW1lX2NvbmZpZy5iYXNlLAogICAgICZ0aGluZ3lfYWxsb2NhdG9yX2NvdW50cywKLSAgICBw
YXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0X2lkZW50aXR5KTsKKyAgICBwYXNfYWxsb2Nh
dGlvbl9yZXN1bHRfaWRlbnRpdHkpOwogCiBfX2F0dHJpYnV0ZV9fKChtYWxsb2MpKQogdm9pZCog
dGhpbmd5X3RyeV9hbGxvY2F0ZShwYXNfaGVhcF9yZWYqIGhlYXBfcmVmKQpAQCAtMTIzLDcgKzEy
Myw3IEBAIFBBU19DUkVBVEVfVFJZX0FMTE9DQVRFX0FSUkFZKAogICAgIFRISU5HWV9IRUFQX0NP
TkZJRywKICAgICAmdGhpbmd5X3R5cGVkX3J1bnRpbWVfY29uZmlnLmJhc2UsCiAgICAgJnRoaW5n
eV9hbGxvY2F0b3JfY291bnRzLAotICAgIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHRf
aWRlbnRpdHkpOworICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9pZGVudGl0eSk7CiAKIF9fYXR0
cmlidXRlX18oKG1hbGxvYykpCiB2b2lkKiB0aGluZ3lfdHJ5X2FsbG9jYXRlX2FycmF5KHBhc19o
ZWFwX3JlZiogaGVhcF9yZWYsIHNpemVfdCBjb3VudCwgc2l6ZV90IGFsaWdubWVudCkKQEAgLTE3
MCwxNCArMTcwLDE0IEBAIFBBU19DUkVBVEVfVFJZX0FMTE9DQVRFX0lOVFJJTlNJQ19QUklNSVQK
ICAgICBUSElOR1lfSEVBUF9DT05GSUcsCiAgICAgJnRoaW5neV9pbnRyaW5zaWNfcHJpbWl0aXZl
X3J1bnRpbWVfY29uZmlnLmJhc2UsCiAgICAgJnRoaW5neV9hbGxvY2F0b3JfY291bnRzLAotICAg
IHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHRfY3Jhc2hfb25fZXJyb3IsCisgICAgcGFz
X2FsbG9jYXRpb25fcmVzdWx0X2NyYXNoX29uX2Vycm9yLAogICAgICZ0aGluZ3lfdXRpbGl0eV9o
ZWFwLAogICAgICZ0aGluZ3lfdXRpbGl0eV9oZWFwX3N1cHBvcnQsCiAgICAgcGFzX2ludHJpbnNp
Y19oZWFwX2lzX25vdF9kZXNpZ25hdGVkKTsKIAogdm9pZCogdGhpbmd5X3V0aWxpdHlfaGVhcF9h
bGxvY2F0ZShzaXplX3Qgc2l6ZSkKIHsKLSAgICByZXR1cm4gdXRpbGl0eV9oZWFwX2FsbG9jYXRl
KHNpemUsIDEpLnB0cjsKKyAgICByZXR1cm4gKHZvaWQqKXV0aWxpdHlfaGVhcF9hbGxvY2F0ZShz
aXplLCAxKS5iZWdpbjsKIH0KIAogI2VuZGlmIC8qIFBBU19FTkFCTEVfVEhJTkdZICovCkluZGV4
OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy90aGluZ3lfaGVhcF9jb25maWcuYwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy90aGluZ3lfaGVh
cF9jb25maWcuYwkocmV2aXNpb24gMjc5OTY0KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvdGhpbmd5X2hlYXBfY29uZmlnLmMJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChjKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAxOS0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzcsNyArMzcsOCBA
QCBwYXNfaGVhcF9jb25maWcgdGhpbmd5X2hlYXBfY29uZmlnID0gVEhJCiAKIFBBU19CQVNJQ19I
RUFQX0NPTkZJR19ERUZJTklUSU9OUygKICAgICB0aGluZ3ksIFRISU5HWSwKLSAgICAuYWxsb2Nh
dGVfcGFnZV9zaG91bGRfemVybyA9IHRydWUpOworICAgIC5hbGxvY2F0ZV9wYWdlX3Nob3VsZF96
ZXJvID0gdHJ1ZSwKKyAgICAuaW50cmluc2ljX3ByaW1pdGl2ZV92aWV3X2NhY2hlX2NhcGFjaXR5
ID0gcGFzX2hlYXBfcnVudGltZV9jb25maWdfemVyb192aWV3X2NhY2hlX2NhcGFjaXR5KTsKIAog
I2VuZGlmIC8qIFBBU19FTkFCTEVfVEhJTkdZICovCiAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3RoaW5neV9oZWFwX2NvbmZpZy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3RoaW5neV9oZWFwX2NvbmZpZy5oCShyZXZpc2lv
biAyNzk5NjQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy90aGluZ3lfaGVh
cF9jb25maWcuaAkod29ya2luZyBjb3B5KQpAQCAtNTMsNyArNTMsOCBAQCBQQVNfQkVHSU5fRVhU
RVJOX0M7CiAgICAgLnNtYWxsX3NlZ3JlZ2F0ZWRfcGFnZV9zaXplID0gUEFTX1NNQUxMX1BBR0Vf
REVGQVVMVF9TSVpFLCBcCiAgICAgLnNtYWxsX3NlZ3JlZ2F0ZWRfd2FzdGVhZ2VfaGFuZGljYXAg
PSBQQVNfU01BTExfUEFHRV9IQU5ESUNBUCwgXAogICAgIC5zbWFsbF9zZWdyZWdhdGVkX2VuYWJs
ZV9lbXB0eV93b3JkX2VsaWdpYmlsaXR5X29wdGltaXphdGlvbiA9IGZhbHNlLCBcCi0gICAgLnNt
YWxsX3VzZV9yZXZlcnNlZF9jdXJyZW50X3dvcmQgPSBQQVNfQVJNNjQsIFwKKyAgICAuc21hbGxf
c2VncmVnYXRlZF91c2VfcmV2ZXJzZWRfY3VycmVudF93b3JkID0gUEFTX0FSTTY0LCBcCisgICAg
LmVuYWJsZV92aWV3X2NhY2hlID0gZmFsc2UsIFwKICAgICAudXNlX3NtYWxsX2JpdGZpdCA9IHRy
dWUsIFwKICAgICAuc21hbGxfYml0Zml0X21pbl9hbGlnbl9zaGlmdCA9IFRISU5HWV9NSU5fQUxJ
R05fU0hJRlQsIFwKICAgICAuc21hbGxfYml0Zml0X3BhZ2Vfc2l6ZSA9IFBBU19TTUFMTF9CSVRG
SVRfUEFHRV9ERUZBVUxUX1NJWkUsIFwKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
dGVzdC9Jc29IZWFwQ2hhb3NUZXN0cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy90ZXN0L0lzb0hlYXBDaGFvc1Rlc3RzLmNwcAkocmV2aXNpb24gMjc5OTY0KQor
KysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L0lzb0hlYXBDaGFvc1Rlc3RzLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzg5LDggKzM4OSwxMCBAQCB2b2lkIHRlc3RBbGxvY2F0aW9uQ2hh
b3ModW5zaWduZWQgbnVtVGhyCiAgICAgICAgICAgICBvcHRpb25hbE9iamVjdHMucHVzaF9iYWNr
KE9wdGlvbmFsT2JqZWN0KCkpOwogICAgIH0KIAotICAgIGlmICghc2VsZWN0ZWRBbGxvY2F0ZSkK
LSAgICAgICAgbnVtSXNvbGF0ZWRIZWFwcyA9IDA7CisgICAgaWYgKCFzZWxlY3RlZEFsbG9jYXRl
ICYmIG51bUlzb2xhdGVkSGVhcHMpIHsKKyAgICAgICAgY291dCA8PCAiU2tpcHBpbmcgYmVjYXVz
ZSB0ZXN0IHJlcXVpcmVzIGlzb2xhdGVkIGhlYXBzIGFuZCB3ZSBkb24ndCBzdXBwb3J0IHRoZW0g
aW4gdGhpcyBjb25maWd1cmF0aW9uLlxuIjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KICAgICAK
ICAgICB2ZWN0b3I8cGFzX2hlYXBfcmVmKj4gaXNvbGF0ZWRIZWFwczsKICAgICBmb3IgKHVuc2ln
bmVkIGlzb2xhdGVkSGVhcEluZGV4ID0gbnVtSXNvbGF0ZWRIZWFwczsgaXNvbGF0ZWRIZWFwSW5k
ZXgtLTspIHsKQEAgLTc4MSw2ICs3ODMsNyBAQCB2b2lkIHRlc3RBbGxvY2F0aW9uQ2hhb3ModW5z
aWduZWQgbnVtVGhyCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBkZWZhdWx0
OgogICAgICAgICAgICAgICAgIFBBU19BU1NFUlQoISJiYWQgcmFuZG9tIG51bWJlciIpOworICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGlm
ICh2ZXJib3NlKQpAQCAtODUyLDM1ICs4NTUsMzkgQEAgdm9pZCB0ZXN0QWxsb2NhdGlvbkNoYW9z
KHVuc2lnbmVkIG51bVRocgogICAgIHBhc19oZWFwX2xvY2tfdW5sb2NrKCk7CiB9CiAKLXZvaWQg
YWRkVGhlVGVzdHMoYm9vbCB0ZXN0RW51bWVyYXRvcikKK3ZvaWQgYWRkVGhlVGVzdHModW5zaWdu
ZWQgbXVsdGlwbGllciwgYm9vbCB0ZXN0RW51bWVyYXRvcikKIHsKLSAgICBBRERfVEVTVCh0ZXN0
QWxsb2NhdGlvbkNoYW9zKDEsIDEwLCAxMDAwLCAxMDAwMDAwLCAxMDAwMDAwMCwgZmFsc2UpKTsK
LSAgICBBRERfVEVTVCh0ZXN0QWxsb2NhdGlvbkNoYW9zKDEwLCAxMCwgMTAwMCwgMjAwMDAwLCAx
MDAwMDAwMCwgZmFsc2UpKTsKKyAgICBBRERfVEVTVCh0ZXN0QWxsb2NhdGlvbkNoYW9zKDEsIDAs
IDEwMDAgKiBtdWx0aXBsaWVyLCAxMDAwMDAwICogbXVsdGlwbGllciwgMTAwMDAwMDAgKiBtdWx0
aXBsaWVyLCBmYWxzZSkpOworICAgIEFERF9URVNUKHRlc3RBbGxvY2F0aW9uQ2hhb3MoMSwgMTAs
IDEwMDAgKiBtdWx0aXBsaWVyLCAxMDAwMDAwICogbXVsdGlwbGllciwgMTAwMDAwMDAgKiBtdWx0
aXBsaWVyLCBmYWxzZSkpOworICAgIEFERF9URVNUKHRlc3RBbGxvY2F0aW9uQ2hhb3MoMTAsIDAs
IDEwMDAgKiBtdWx0aXBsaWVyLCAyMDAwMDAgKiBtdWx0aXBsaWVyLCAxMDAwMDAwMCAqIG11bHRp
cGxpZXIsIGZhbHNlKSk7CisgICAgQUREX1RFU1QodGVzdEFsbG9jYXRpb25DaGFvcygxMCwgMTAs
IDEwMDAgKiBtdWx0aXBsaWVyLCAyMDAwMDAgKiBtdWx0aXBsaWVyLCAxMDAwMDAwMCAqIG11bHRp
cGxpZXIsIGZhbHNlKSk7CiAgICAgaWYgKHRlc3RFbnVtZXJhdG9yKSB7CisgICAgICAgIEFERF9U
RVNUKHRlc3RBbGxvY2F0aW9uQ2hhb3MoMSwgMCwgMTAwMCwgNzAwMCwgMTAwMDAwMDAsIHRydWUp
KTsKICAgICAgICAgQUREX1RFU1QodGVzdEFsbG9jYXRpb25DaGFvcygxLCAxMCwgMTAwMCwgNzAw
MCwgMTAwMDAwMDAsIHRydWUpKTsKKyAgICAgICAgQUREX1RFU1QodGVzdEFsbG9jYXRpb25DaGFv
cygxMCwgMCwgMTAwMCwgNDAwMCwgMTAwMDAwMDAsIHRydWUpKTsKICAgICAgICAgQUREX1RFU1Qo
dGVzdEFsbG9jYXRpb25DaGFvcygxMCwgMTAsIDEwMDAsIDQwMDAsIDEwMDAwMDAwLCB0cnVlKSk7
CiAgICAgfQogfQogCiB2b2lkIGFkZFNwb3RUZXN0cyhib29sIHRlc3RFbnVtZXJhdG9yKQogewot
ICAgIGFkZFRoZVRlc3RzKHRlc3RFbnVtZXJhdG9yKTsKKyAgICBBRERfR1JPVVAoYWRkVGhlVGVz
dHMoMTAsIHRlc3RFbnVtZXJhdG9yKSk7CiAgICAgCiAgICAgewogICAgICAgICBGb3JjZUV4Y2x1
c2l2ZXMgZm9yY2VFeGNsdXNpdmVzOwogICAgICAgICBEaXNhYmxlQml0Zml0IGRpc2FibGVCaXRm
aXQ7Ci0gICAgICAgIGFkZFRoZVRlc3RzKHRlc3RFbnVtZXJhdG9yKTsKKyAgICAgICAgQUREX0dS
T1VQKGFkZFRoZVRlc3RzKDEsIHRlc3RFbnVtZXJhdG9yKSk7CiAgICAgfQogICAgIAogICAgIHsK
ICAgICAgICAgRm9yY2VUTEFzIGZvcmNlVExBczsKICAgICAgICAgRm9yY2VQYXJ0aWFscyBmb3Jj
ZVBhcnRpYWxzOwotICAgICAgICBhZGRUaGVUZXN0cyhmYWxzZSk7CisgICAgICAgIEFERF9HUk9V
UChhZGRUaGVUZXN0cygxLCBmYWxzZSkpOwogICAgIH0KICAgICAKICAgICB7CiAgICAgICAgIEZv
cmNlQml0Zml0IGZvcmNlQml0Zml0OwotICAgICAgICBhZGRUaGVUZXN0cyhmYWxzZSk7CisgICAg
ICAgIEFERF9HUk9VUChhZGRUaGVUZXN0cygxLCBmYWxzZSkpOwogICAgIH0KIH0KIApAQCAtOTA0
LDUwICs5MTEsNTAgQEAgdm9pZCBhZGRJc29IZWFwQ2hhb3NUZXN0cygpCiAgICAgICAgICAgICAg
ICAgc2VsZWN0ZWRIZWFwUmVmR2V0SGVhcCA9IGlzb19oZWFwX3JlZl9nZXRfaGVhcDsKICAgICAg
ICAgICAgIH0pOwogICAgIAotICAgICAgICBhZGRUaGVUZXN0cyh0cnVlKTsKKyAgICAgICAgQURE
X0dST1VQKGFkZFRoZVRlc3RzKDEwLCB0cnVlKSk7CiAKICAgICAgICAgewogICAgICAgICAgICAg
RGlzYWJsZUJpdGZpdCBkaXNhYmxlQml0Zml0OwotICAgICAgICAgICAgYWRkVGhlVGVzdHMoZmFs
c2UpOworICAgICAgICAgICAgQUREX0dST1VQKGFkZFRoZVRlc3RzKDEsIGZhbHNlKSk7CiAgICAg
ICAgIH0KICAgICAKICAgICAgICAgewogICAgICAgICAgICAgRm9yY2VFeGNsdXNpdmVzIGZvcmNl
RXhjbHVzaXZlczsKLSAgICAgICAgICAgIGFkZFRoZVRlc3RzKGZhbHNlKTsKKyAgICAgICAgICAg
IEFERF9HUk9VUChhZGRUaGVUZXN0cygxLCBmYWxzZSkpOwogICAgICAgICB9CiAgICAgCiAgICAg
ICAgIHsKICAgICAgICAgICAgIEZvcmNlRXhjbHVzaXZlcyBmb3JjZUV4Y2x1c2l2ZXM7CiAgICAg
ICAgICAgICBEaXNhYmxlQml0Zml0IGRpc2FibGVCaXRmaXQ7Ci0gICAgICAgICAgICBhZGRUaGVU
ZXN0cyh0cnVlKTsgLy8gVGhpcyB0ZXN0cyBlbnVtZXJhdGlvbiB3aXRoIGV4Y2x1c2l2ZXMgb24g
Zm9yIHN1cmUuCisgICAgICAgICAgICBBRERfR1JPVVAoYWRkVGhlVGVzdHMoMSwgdHJ1ZSkpOyAv
LyBUaGlzIHRlc3RzIGVudW1lcmF0aW9uIHdpdGggZXhjbHVzaXZlcyBvbiBmb3Igc3VyZS4KICAg
ICAgICAgfQogICAgIAogICAgICAgICB7CiAgICAgICAgICAgICBGb3JjZVRMQXMgZm9yY2VUTEFz
OwogICAgICAgICAgICAgRm9yY2VQYXJ0aWFscyBmb3JjZVBhcnRpYWxzOwotICAgICAgICAgICAg
YWRkVGhlVGVzdHModHJ1ZSk7IC8vIFRoaXMgdGVzdHMgZW51bWVyYXRpb24gd2l0aCBwYXJ0aWFs
cyBhbmQgVExBcyBvbiBmb3Igc3VyZS4KKyAgICAgICAgICAgIEFERF9HUk9VUChhZGRUaGVUZXN0
cygxLCB0cnVlKSk7IC8vIFRoaXMgdGVzdHMgZW51bWVyYXRpb24gd2l0aCBwYXJ0aWFscyBhbmQg
VExBcyBvbiBmb3Igc3VyZS4KICAgICAgICAgfQogICAgIAogICAgICAgICB7CiAgICAgICAgICAg
ICBGb3JjZUJpdGZpdCBmb3JjZUJpdGZpdDsKLSAgICAgICAgICAgIGFkZFRoZVRlc3RzKHRydWUp
OyAvLyBUaGlzIHRlc3RzIGVudW1lcmF0aW9uIHdpdGggYml0Zml0IG9uIGZvciBzdXJlLgorICAg
ICAgICAgICAgQUREX0dST1VQKGFkZFRoZVRlc3RzKDEsIHRydWUpKTsgLy8gVGhpcyB0ZXN0cyBl
bnVtZXJhdGlvbiB3aXRoIGJpdGZpdCBvbiBmb3Igc3VyZS4KICAgICAgICAgfQogICAgIAogICAg
ICAgICB7CiAgICAgICAgICAgICBGb3JjZUJhc2VsaW5lcyBmb3JjZUJhc2VsaW5lczsKICAgICAg
ICAgICAgIERpc2FibGVCaXRmaXQgZGlzYWJsZUJpdGZpdDsKLSAgICAgICAgICAgIGFkZFRoZVRl
c3RzKHRydWUpOyAvLyBUaGlzIHRlc3RzIGVudW1lcmF0aW9uIHdpdGggYmFzZWxpbmVzIGFuZCBz
ZWdoZWFwcyBvbiBmb3Igc3VyZS4KKyAgICAgICAgICAgIEFERF9HUk9VUChhZGRUaGVUZXN0cygx
LCB0cnVlKSk7IC8vIFRoaXMgdGVzdHMgZW51bWVyYXRpb24gd2l0aCBiYXNlbGluZXMgYW5kIHNl
Z2hlYXBzIG9uIGZvciBzdXJlLgogICAgICAgICB9CiAgICAgCiAgICAgICAgIHsKICAgICAgICAg
ICAgIEZvcmNlVExBcyBmb3JjZVRMQXM7Ci0gICAgICAgICAgICBhZGRUaGVUZXN0cyhmYWxzZSk7
CisgICAgICAgICAgICBBRERfR1JPVVAoYWRkVGhlVGVzdHMoMSwgZmFsc2UpKTsKICAgICAgICAg
fQogICAgIAogICAgICAgICB7CiAgICAgICAgICAgICBGb3JjZUJhc2VsaW5lcyBmb3JjZUJhc2Vs
aW5lczsKICAgICAgICAgICAgIEZvcmNlUGFydGlhbHMgZm9yY2VQYXJ0aWFsczsKLSAgICAgICAg
ICAgIGFkZFRoZVRlc3RzKGZhbHNlKTsKKyAgICAgICAgICAgIEFERF9HUk9VUChhZGRUaGVUZXN0
cygxLCBmYWxzZSkpOwogICAgICAgICB9CiAKICAgICAgICAgewpAQCAtMTAzMCw3ICsxMDM3LDcg
QEAgdm9pZCBhZGRJc29IZWFwQ2hhb3NUZXN0cygpCiAgICAgICAgICAgICAgICAgc2VsZWN0ZWRI
ZWFwUmVmR2V0SGVhcCA9IGJtYWxsb2NfaGVhcF9yZWZfZ2V0X2hlYXA7CiAgICAgICAgICAgICB9
KTsKICAgICAKLSAgICAgICAgYWRkU3BvdFRlc3RzKGZhbHNlKTsKKyAgICAgICAgYWRkU3BvdFRl
c3RzKHRydWUpOwogICAgIH0KICNlbmRpZiAvLyBQQVNfRU5BQkxFX0JNQUxMT0MKIApAQCAtMTA2
OCw3ICsxMDc1LDcgQEAgdm9pZCBhZGRJc29IZWFwQ2hhb3NUZXN0cygpCiAKICAgICAgICAgQm9v
dEpJVEhlYXAgYm9vdEpJVEhlYXA7CiAKLSAgICAgICAgYWRkVGhlVGVzdHModHJ1ZSk7CisgICAg
ICAgIEFERF9HUk9VUChhZGRUaGVUZXN0cygxLCB0cnVlKSk7CiAgICAgfQogCiAgICAgewpAQCAt
MTA4Nyw3ICsxMDk0LDcgQEAgdm9pZCBhZGRJc29IZWFwQ2hhb3NUZXN0cygpCiAKICAgICAgICAg
Qm9vdEpJVEhlYXAgYm9vdEpJVEhlYXA7CiAKLSAgICAgICAgYWRkVGhlVGVzdHMoZmFsc2UpOwor
ICAgICAgICBBRERfR1JPVVAoYWRkVGhlVGVzdHMoMSwgZmFsc2UpKTsKICAgICB9CiAjZW5kaWYg
Ly8gUEFTX0VOQUJMRV9IT1RCSVQKICNlbmRpZiAvLyBQQVNfRU5BQkxFX0lTTwpJbmRleDogU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L0lzb0hlYXBQYWdlU2hhcmluZ1Rlc3RzLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvSXNvSGVhcFBhZ2VT
aGFyaW5nVGVzdHMuY3BwCShyZXZpc2lvbiAyNzk5NjQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL3Rlc3QvSXNvSGVhcFBhZ2VTaGFyaW5nVGVzdHMuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC00Miw3ICs0Miw3IEBACiAjaW5jbHVkZSAicGFzX2xhcmdlX3V0aWxpdHlfZnJlZV9oZWFwLmgi
CiAjaW5jbHVkZSAicGFzX3BhZ2VfbWFsbG9jLmgiCiAjaW5jbHVkZSAicGFzX3NjYXZlbmdlci5o
IgotI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeS5oIgorI2lu
Y2x1ZGUgInBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5LmgiCiAjaW5jbHVkZSAicGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZS5oIgogI2luY2x1ZGUgPHNldD4KICNpbmNsdWRlIDx2ZWN0b3I+CkBA
IC05Niw3ICs5Niw3IEBAIHZvaWQgdGVzdFRha2VQYWdlcyh1bnNpZ25lZCBmaXJzdE9iamVjdFMK
ICAgICAgICAgQ0hFQ0soIW9iamVjdHMuY291bnQob2JqZWN0KSk7CiAgICAgICAgIG9iamVjdHMu
aW5zZXJ0KG9iamVjdCk7CiAgICAgICAgIG9iamVjdExpc3QucHVzaF9iYWNrKG9iamVjdCk7Ci0g
ICAgICAgIENIRUNLX0VRVUFMKHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9m
b3Jfb2JqZWN0KAorICAgICAgICBDSEVDS19FUVVBTChwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeV9mb3Jfb2JqZWN0KAogICAgICAgICAgICAgICAgICAgICAgICAgcmVpbnRlcnByZXRfY2Fz
dDx1aW50cHRyX3Q+KG9iamVjdCksCiAgICAgICAgICAgICAgICAgICAgICAgICAmaXNvX2hlYXBf
Y29uZmlnKS0+b2JqZWN0X3NpemUsCiAgICAgICAgICAgICAgICAgICAgIHJlc3VsdGluZ0ZpcnN0
T2JqZWN0U2l6ZSk7CkBAIC0xNjUsNyArMTY1LDcgQEAgdm9pZCB0ZXN0VGFrZVBhZ2VzKHVuc2ln
bmVkIGZpcnN0T2JqZWN0UwogICAgICAgICBDSEVDSyghb2JqZWN0cy5jb3VudChvYmplY3QpKTsK
ICAgICAgICAgb2JqZWN0cy5pbnNlcnQob2JqZWN0KTsKICAgICAgICAgb2JqZWN0TGlzdC5wdXNo
X2JhY2sob2JqZWN0KTsKLSAgICAgICAgQ0hFQ0tfRVFVQUwocGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5X2Zvcl9vYmplY3QoCisgICAgICAgIENIRUNLX0VRVUFMKHBhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5X2Zvcl9vYmplY3QoCiAgICAgICAgICAgICAgICAgICAgICAg
ICByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4ob2JqZWN0KSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICZpc29faGVhcF9jb25maWcpLT5vYmplY3Rfc2l6ZSwKICAgICAgICAgICAgICAgICAg
ICAgcmVzdWx0aW5nU2Vjb25kT2JqZWN0U2l6ZSk7CkBAIC0xOTcsNyArMTk3LDcgQEAgdm9pZCB0
ZXN0VGFrZVBhZ2VzKHVuc2lnbmVkIGZpcnN0T2JqZWN0UwogICAgICAgICBDSEVDSyhvYmplY3Qp
OwogICAgICAgICBDSEVDSyghb2JqZWN0cy5jb3VudChvYmplY3QpKTsKICAgICAgICAgb2JqZWN0
cy5pbnNlcnQob2JqZWN0KTsKLSAgICAgICAgQ0hFQ0tfRVFVQUwocGFzX3NlZ3JlZ2F0ZWRfZ2xv
YmFsX3NpemVfZGlyZWN0b3J5X2Zvcl9vYmplY3QoCisgICAgICAgIENIRUNLX0VRVUFMKHBhc19z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2Zvcl9vYmplY3QoCiAgICAgICAgICAgICAgICAgICAg
ICAgICByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4ob2JqZWN0KSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICZpc29faGVhcF9jb25maWcpLT5vYmplY3Rfc2l6ZSwKICAgICAgICAgICAgICAg
ICAgICAgcmVzdWx0aW5nRmlyc3RPYmplY3RTaXplKTsKQEAgLTIyOSw3ICsyMjksNyBAQCB2b2lk
IHRlc3RUYWtlUGFnZXNGcm9tQ29ycmVjdEhlYXAodW5zaWduCiAgICAgCiAgICAgcGFzX2hlYXBf
cmVmKiBoZWFwUmVmcyA9IG5ldyBwYXNfaGVhcF9yZWZbbnVtSGVhcHNdOwogICAgIHZvaWQqKiBv
YmplY3RzID0gbmV3IHZvaWQqW251bUhlYXBzXTsKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxf
c2l6ZV9kaXJlY3RvcnkqKiBkaXJlY3RvcmllcyA9IG5ldyBwYXNfc2VncmVnYXRlZF9nbG9iYWxf
c2l6ZV9kaXJlY3RvcnkqW251bUhlYXBzXTsKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeSoqIGRpcmVjdG9yaWVzID0gbmV3IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5Kltu
dW1IZWFwc107CiAgICAgCiAgICAgdW5zaWduZWQgbnVtSGVhcHNJblNlY29uZFBoYXNlID0gbnVt
SGVhcHMgLSBudW1IZWFwc0luRmlyc3RQaGFzZTsKICAgICAKQEAgLTI0Miw3ICsyNDIsNyBAQCB2
b2lkIHRlc3RUYWtlUGFnZXNGcm9tQ29ycmVjdEhlYXAodW5zaWduCiAgICAgICAgIG9iamVjdHNb
aV0gPSBpc29fdHJ5X2FsbG9jYXRlKGhlYXBSZWZzICsgaSk7CiAgICAgICAgIGlmICh2ZXJib3Nl
KQogICAgICAgICAgICAgY291dCA8PCAiICAgIEFsbG9jYXRlZCBvYmplY3QgYXQgIiA8PCBvYmpl
Y3RzW2ldIDw8ICJcbiI7Ci0gICAgICAgIGRpcmVjdG9yaWVzW2ldID0gcGFzX3NlZ3JlZ2F0ZWRf
Z2xvYmFsX3NpemVfZGlyZWN0b3J5X2Zvcl9vYmplY3QoCisgICAgICAgIGRpcmVjdG9yaWVzW2ld
ID0gcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZm9yX29iamVjdCgKICAgICAgICAgICAg
IHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihvYmplY3RzW2ldKSwgJmlzb19oZWFwX2NvbmZp
Zyk7CiAgICAgICAgIGlmIChkaXJlY3Rvcmllc1tpXSkKICAgICAgICAgICAgIENIRUNLX0VRVUFM
KGRpcmVjdG9yaWVzW2ldLT5vYmplY3Rfc2l6ZSwgc2l6ZUZ1bmMoaSkpOwpAQCAtMTk4MCw5ICsx
OTgwLDkgQEAgcGFzX2hlYXAqIHNtYWxsSGVhcFR3bzsKIHBhc19oZWFwKiBzbWFsbEhlYXBUaHJl
ZTsKIHBhc19oZWFwKiBsYXJnZUhlYXBPbmU7CiBwYXNfaGVhcCogbGFyZ2VIZWFwVHdvOwotcGFz
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBwcmltaXRpdmVTbWFsbE9uZURpcmVj
dG9yeTsKLXBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogcHJpbWl0aXZlU21h
bGxUd29EaXJlY3Rvcnk7Ci1wYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIHBy
aW1pdGl2ZVNtYWxsVGhyZWVEaXJlY3Rvcnk7CitwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eSogcHJpbWl0aXZlU21hbGxPbmVEaXJlY3Rvcnk7CitwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeSogcHJpbWl0aXZlU21hbGxUd29EaXJlY3Rvcnk7CitwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeSogcHJpbWl0aXZlU21hbGxUaHJlZURpcmVjdG9yeTsKIAogdm9pZCBzZXR1cFRoaW5n
eSgpCiB7CkBAIC0yMDg2LDkgKzIwODYsOSBAQCB2b2lkIGFsbG9jYXRlVGhpbmdpZXNJbXBsKFRo
aW5neUtpbmQga2luCiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IGFsbG9jYXRlTWFueSA/IDE1
NjI1MCA6IDE7IGktLTspIHsKICAgICAgICAgICAgIHZvaWQqIG9iamVjdCA9IGFkZE9iamVjdChp
c29fdHJ5X2FsbG9jYXRlX2NvbW1vbl9wcmltaXRpdmUoMzIpKTsKICAgICAgICAgICAgIAotICAg
ICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7
CisgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5Owog
ICAgICAgICAgICAgCi0gICAgICAgICAgICBkaXJlY3RvcnkgPSBwYXNfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnlfZm9yX29iamVjdCgKKyAgICAgICAgICAgIGRpcmVjdG9yeSA9IHBh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2Zvcl9vYmplY3QoCiAgICAgICAgICAgICAgICAg
cmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KG9iamVjdCksCiAgICAgICAgICAgICAgICAgJmlz
b19oZWFwX2NvbmZpZyk7CiAgICAgICAgICAgICAKQEAgLTIxMDIsOSArMjEwMiw5IEBAIHZvaWQg
YWxsb2NhdGVUaGluZ2llc0ltcGwoVGhpbmd5S2luZCBraW4KICAgICAgICAgZm9yICh1bnNpZ25l
ZCBpID0gYWxsb2NhdGVNYW55ID8gMzkwNjIgOiAxOyBpLS07KSB7CiAgICAgICAgICAgICB2b2lk
KiBvYmplY3QgPSBhZGRPYmplY3QoaXNvX3RyeV9hbGxvY2F0ZV9jb21tb25fcHJpbWl0aXZlKDEy
OCkpOwogICAgICAgICAgICAgCi0gICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeTsKKyAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5KiBkaXJlY3Rvcnk7CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIGRpcmVjdG9y
eSA9IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9mb3Jfb2JqZWN0KAorICAg
ICAgICAgICAgZGlyZWN0b3J5ID0gcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZm9yX29i
amVjdCgKICAgICAgICAgICAgICAgICByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4ob2JqZWN0
KSwKICAgICAgICAgICAgICAgICAmaXNvX2hlYXBfY29uZmlnKTsKICAgICAgICAgICAgIApAQCAt
MjExOCw5ICsyMTE4LDkgQEAgdm9pZCBhbGxvY2F0ZVRoaW5naWVzSW1wbChUaGluZ3lLaW5kIGtp
bgogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBhbGxvY2F0ZU1hbnkgPyAxMDQxNjYgOiAxOyBp
LS07KSB7CiAgICAgICAgICAgICB2b2lkKiBvYmplY3QgPSBhZGRPYmplY3QoaXNvX3RyeV9hbGxv
Y2F0ZV9jb21tb25fcHJpbWl0aXZlKDQ4KSk7CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIHBh
c19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5OworICAgICAgICAg
ICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeTsKICAgICAgICAgICAg
IAotICAgICAgICAgICAgZGlyZWN0b3J5ID0gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGly
ZWN0b3J5X2Zvcl9vYmplY3QoCisgICAgICAgICAgICBkaXJlY3RvcnkgPSBwYXNfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeV9mb3Jfb2JqZWN0KAogICAgICAgICAgICAgICAgIHJlaW50ZXJwcmV0
X2Nhc3Q8dWludHB0cl90PihvYmplY3QpLAogICAgICAgICAgICAgICAgICZpc29faGVhcF9jb25m
aWcpOwogICAgICAgICAgICAgCkBAIC00NTQyLDcgKzQ1NDIsNiBAQCB2b2lkIGFkZElzb0hlYXBQ
YWdlU2hhcmluZ1Rlc3RzKCkKICAgICBGb3JjZUV4Y2x1c2l2ZXMgZm9yY2VFeGNsdXNpdmVzOwog
ICAgIEZvcmNlVExBcyBmb3JjZVRMQXM7CiAgICAgRGlzYWJsZUJpdGZpdCBkaXNhYmxlQml0Zml0
OwotICAgIEZvcmNlT25lTWFnYXppbmUgZm9yY2VPbmVNYWdhemluZTsKICAgICAKICAgICB7CiAg
ICAgICAgIFRlc3RTY29wZSB0ZXN0U2NvcGUoCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL3Rlc3QvSXNvSGVhcFBhcnRpYWxBbmRCYXNlbGluZVRlc3RzLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvSXNvSGVhcFBhcnRpYWxBbmRCYXNlbGlu
ZVRlc3RzLmNwcAkocmV2aXNpb24gMjc5OTY0KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy90ZXN0L0lzb0hlYXBQYXJ0aWFsQW5kQmFzZWxpbmVUZXN0cy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTE4NSw3ICsxODUsNyBAQCB2b2lkIHRlc3RTaW1wbGVQYXJ0aWFsQWxsb2NhdGlvbnMoc2l6
ZV90CiAgICAgc2V0PHZvaWQqPiBvYmplY3RTZXQ7CiAgICAgc2V0PHBhc19zZWdyZWdhdGVkX3Zp
ZXc+IHZpZXdTZXQ7CiAgICAgc2V0PHBhc19zZWdyZWdhdGVkX3BhZ2UqPiBwYWdlU2V0OwotICAg
IHNldDxwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqPiBzaXplRGlyZWN0b3J5
U2V0OworICAgIHNldDxwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSo+IHNpemVEaXJlY3Rv
cnlTZXQ7CiAgICAgCiAgICAgcGFzX2hlYXBfcmVmIGhlYXAgPSBJU09fSEVBUF9SRUZfSU5JVElB
TElaRVJfV0lUSF9BTElHTk1FTlQoc2l6ZSwgYWxpZ25tZW50KTsKIApAQCAtMjA5LDkgKzIwOSw5
IEBAIHZvaWQgdGVzdFNpbXBsZVBhcnRpYWxBbGxvY2F0aW9ucyhzaXplX3QKICAgICAgICAgb2Jq
ZWN0U2V0Lmluc2VydChwdHIpOwogICAgICAgICB2aWV3U2V0Lmluc2VydCh2aWV3KTsKICAgICAg
ICAgcGFnZVNldC5pbnNlcnQocGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcGFnZSh2aWV3KSk7Ci0g
ICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogc2l6ZURpcmVjdG9y
eSA9IHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2dsb2JhbF9zaXplX2RpcmVjdG9yeSh2aWV3KTsK
KyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIHNpemVEaXJlY3RvcnkgPSBw
YXNfc2VncmVnYXRlZF92aWV3X2dldF9zaXplX2RpcmVjdG9yeSh2aWV3KTsKICAgICAgICAgQ0hF
Q0tfRVFVQUwoc2l6ZURpcmVjdG9yeS0+b2JqZWN0X3NpemUsIHNpemUpOwotICAgICAgICBDSEVD
SyhwYXNfaXNfYWxpZ25lZChwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfYWxp
Z25tZW50KHNpemVEaXJlY3RvcnkpLCBhbGlnbm1lbnQpKTsKKyAgICAgICAgQ0hFQ0socGFzX2lz
X2FsaWduZWQocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfYWxpZ25tZW50KHNpemVEaXJl
Y3RvcnkpLCBhbGlnbm1lbnQpKTsKICAgICAgICAgc2l6ZURpcmVjdG9yeVNldC5pbnNlcnQoc2l6
ZURpcmVjdG9yeSk7CiAgICAgfQogCkBAIC0yODcsOSArMjg3LDkgQEAgdm9pZCB0ZXN0U2ltcGxl
UGFydGlhbEFsbG9jYXRpb25zKHNpemVfdAogICAgICAgICBvYmplY3RTZXQuaW5zZXJ0KHB0cik7
CiAgICAgICAgIHZpZXdTZXQuaW5zZXJ0KHZpZXcpOwogICAgICAgICBwYWdlU2V0Lmluc2VydChw
YXNfc2VncmVnYXRlZF92aWV3X2dldF9wYWdlKHZpZXcpKTsKLSAgICAgICAgcGFzX3NlZ3JlZ2F0
ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBzaXplRGlyZWN0b3J5ID0gcGFzX3NlZ3JlZ2F0ZWRf
dmlld19nZXRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KHZpZXcpOworICAgICAgICBwYXNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeSogc2l6ZURpcmVjdG9yeSA9IHBhc19zZWdyZWdhdGVkX3ZpZXdf
Z2V0X3NpemVfZGlyZWN0b3J5KHZpZXcpOwogICAgICAgICBDSEVDS19FUVVBTChzaXplRGlyZWN0
b3J5LT5vYmplY3Rfc2l6ZSwgc2l6ZSk7Ci0gICAgICAgIENIRUNLKHBhc19pc19hbGlnbmVkKHBh
c19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9hbGlnbm1lbnQoc2l6ZURpcmVjdG9y
eSksIGFsaWdubWVudCkpOworICAgICAgICBDSEVDSyhwYXNfaXNfYWxpZ25lZChwYXNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeV9hbGlnbm1lbnQoc2l6ZURpcmVjdG9yeSksIGFsaWdubWVudCkp
OwogICAgICAgICBzaXplRGlyZWN0b3J5U2V0Lmluc2VydChzaXplRGlyZWN0b3J5KTsKICAgICB9
CiAKQEAgLTYwMyw4ICs2MDMsNiBAQCB2b2lkIHRlc3RNdWx0aXBsZVBhcnRpYWxzRnJvbURpZmZl
cmVudFRoCiB7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHZlcmJvc2UgPSBmYWxzZTsKIAot
ICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3VzZV90YWJsaW5nID0gZmFsc2U7Ci0g
ICAgCiAgICAgcGFzX2hlYXBfcmVmIGhlYXAgPSBJU09fSEVBUF9SRUZfSU5JVElBTElaRVJfV0lU
SF9BTElHTk1FTlQoc2l6ZSwgYWxpZ25tZW50KTsKIAogICAgIHZlY3Rvcjx0aHJlYWQ+IHRocmVh
ZHM7CkBAIC03OTIsNyArNzkwLDYgQEAgdm9pZCB0ZXN0VHdvQmFzZWxpbmVzRXZpY3Rpb25zKHNp
emVfdCBzaQogdm9pZCBhZGRTY2F2ZW5nZXJEZXBlbmRlbnRUZXN0cygpCiB7CiAgICAgRGlzYWJs
ZUJpdGZpdCBkaXNhYmxlQml0Zml0OwotICAgIERpc2FibGVFeHBsb3Npb24gZGlzYWJsZUV4cGxv
c2lvbjsKICAgICAKICAgICB7CiAgICAgICAgIEZvcmNlUGFydGlhbHMgZm9yY2VQYXJ0aWFsczsK
SW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9Jc29IZWFwVGFibGluZ1Rlc3Rz
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvSXNvSGVh
cFRhYmxpbmdUZXN0cy5jcHAJKHJldmlzaW9uIDI3OTk2NCkKKysrIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvdGVzdC9Jc29IZWFwVGFibGluZ1Rlc3RzLmNwcAkobm9uZXhpc3RlbnQpCkBAIC0x
LDIyNyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICov
Ci0KLSNpbmNsdWRlICJUZXN0SGFybmVzcy5oIgotCi0jaWYgUEFTX0VOQUJMRV9JU08KLQotI2lu
Y2x1ZGUgImlzb190ZXN0X2hlYXAuaCIKLSNpbmNsdWRlICJpc29fdGVzdF9oZWFwX2NvbmZpZy5o
IgotI2luY2x1ZGUgPG1hcD4KLSNpbmNsdWRlIDx2ZWN0b3I+Ci0KLXVzaW5nIG5hbWVzcGFjZSBz
dGQ7Ci0KLW5hbWVzcGFjZSB7Ci0KLXZvaWQgdGVzdFRhYmxpbmcodW5zaWduZWQgc2l6ZSwKLSAg
ICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfdmFyaWFudCB2YXJpYW50
LAotICAgICAgICAgICAgICAgICB1bnNpZ25lZCBudW1QYWdlc1RvRW1wdHksCi0gICAgICAgICAg
ICAgICAgIHVuc2lnbmVkIG51bVBhZ2VzTm90VG9FbXB0eSwKLSAgICAgICAgICAgICAgICAgYm9v
bCB1c2VUYWJsaW5nLAotICAgICAgICAgICAgICAgICBib29sIHJhZ2VTY2F2ZW5nZUR1cmluZ1Jl
ZmlsbCkKLXsKLSAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgdmVyYm9zZSA9IGZhbHNlOwotICAg
IAotICAgIG1hcDxwYXNfc2VncmVnYXRlZF92aWV3LCB2ZWN0b3I8dm9pZCo+PiBwYWdlc1RvRW1w
dHk7Ci0gICAgbWFwPHBhc19zZWdyZWdhdGVkX3ZpZXcsIHZlY3Rvcjx2b2lkKj4+IHBhZ2VzTm90
VG9FbXB0eTsKLSAgICB1bnNpZ25lZCBudW1iZXJPZk9iamVjdHNQZXJQYWdlID0gcGFzX3NlZ3Jl
Z2F0ZWRfcGFnZV9udW1iZXJfb2Zfb2JqZWN0cygKLSAgICAgICAgc2l6ZSwgKnBhc19oZWFwX2Nv
bmZpZ19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3B0cl9mb3JfdmFyaWFudCgmaXNvX3Rlc3RfaGVh
cF9jb25maWcsIHZhcmlhbnQpKTsKLQotICAgIGF1dG8gZmlsbCA9Ci0gICAgICAgIFsmXSAoYXV0
byYgbWFwLCB1bnNpZ25lZCBsaW1pdCkgewotICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBwYWdl
SW5kZXggPSAwOyBwYWdlSW5kZXggPCBsaW1pdDsgKytwYWdlSW5kZXgpIHsKLSAgICAgICAgICAg
ICAgICBwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcgPSBudWxscHRyOwotICAgICAgICAgICAgICAg
IHZlY3Rvcjx2b2lkKj4gb2JqZWN0czsKLSAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIG9i
amVjdEluZGV4ID0gMDsgb2JqZWN0SW5kZXggPCBudW1iZXJPZk9iamVjdHNQZXJQYWdlOyArK29i
amVjdEluZGV4KSB7Ci0gICAgICAgICAgICAgICAgICAgIHZvaWQqIG9iamVjdCA9IGlzb190ZXN0
X2FsbG9jYXRlX2NvbW1vbl9wcmltaXRpdmUoc2l6ZSk7Ci0gICAgICAgICAgICAgICAgICAgIHBh
c19zZWdyZWdhdGVkX3ZpZXcgbXlWaWV3ID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19mb3Jfb2JqZWN0
KAotICAgICAgICAgICAgICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KG9i
amVjdCksCi0gICAgICAgICAgICAgICAgICAgICAgICAmaXNvX3Rlc3RfaGVhcF9jb25maWcpOwot
ICAgICAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkKLSAgICAgICAgICAgICAgICAgICAgICAg
IGNvdXQgPDwgIkFsbG9jYXRlZCBvYmplY3QgIiA8PCBvYmplY3QgPDwgIiBpbiB2aWV3ICIgPDwg
bXlWaWV3IDw8ICJcbiI7Ci0gICAgICAgICAgICAgICAgICAgIENIRUNLKG15Vmlldyk7Ci0gICAg
ICAgICAgICAgICAgICAgIGlmICghb2JqZWN0SW5kZXgpIHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIFBBU19BU1NFUlQoIXZpZXcpOwotICAgICAgICAgICAgICAgICAgICAgICAgdmlldyA9IG15
VmlldzsKLSAgICAgICAgICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgICAgICAg
ICBDSEVDS19FUVVBTChteVZpZXcsIHZpZXcpOwotICAgICAgICAgICAgICAgICAgICBvYmplY3Rz
LnB1c2hfYmFjayhvYmplY3QpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBD
SEVDSyh2aWV3KTsKLSAgICAgICAgICAgICAgICBDSEVDSyghbWFwLmNvdW50KHZpZXcpKTsKLSAg
ICAgICAgICAgICAgICBtYXBbdmlld10gPSBvYmplY3RzOwotICAgICAgICAgICAgfQotICAgICAg
ICB9OwotCi0gICAgZmlsbChwYWdlc1RvRW1wdHksIG51bVBhZ2VzVG9FbXB0eSk7Ci0gICAgZmls
bChwYWdlc05vdFRvRW1wdHksIG51bVBhZ2VzTm90VG9FbXB0eSk7Ci0KLSAgICBmb3IgKGF1dG8m
IGVudHJ5IDogcGFnZXNUb0VtcHR5KSB7Ci0gICAgICAgIHdoaWxlIChlbnRyeS5zZWNvbmQuc2l6
ZSgpKSB7Ci0gICAgICAgICAgICBpc29fdGVzdF9kZWFsbG9jYXRlKGVudHJ5LnNlY29uZC5iYWNr
KCkpOwotICAgICAgICAgICAgZW50cnkuc2Vjb25kLnBvcF9iYWNrKCk7Ci0gICAgICAgIH0KLSAg
ICB9Ci0gICAgZm9yIChhdXRvJiBlbnRyeSA6IHBhZ2VzTm90VG9FbXB0eSkgewotICAgICAgICB3
aGlsZSAoZW50cnkuc2Vjb25kLnNpemUoKSA+PSAyKSB7Ci0gICAgICAgICAgICBpc29fdGVzdF9k
ZWFsbG9jYXRlKGVudHJ5LnNlY29uZC5iYWNrKCkpOwotICAgICAgICAgICAgZW50cnkuc2Vjb25k
LnBvcF9iYWNrKCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBzY2F2ZW5nZSgpOwotCi0gICAg
YXV0byByZWZpbGwgPQotICAgICAgICBbJl0gKGF1dG8mIG1hcCwgdW5zaWduZWQgbGltaXQsIHVu
c2lnbmVkIGV4Y2x1ZGUpIHsKLSAgICAgICAgICAgIGZvciAodW5zaWduZWQgcGFnZUluZGV4ID0g
MDsgcGFnZUluZGV4IDwgbGltaXQ7ICsrcGFnZUluZGV4KSB7Ci0gICAgICAgICAgICAgICAgcGFz
X3NlZ3JlZ2F0ZWRfdmlldyB2aWV3ID0gbnVsbHB0cjsKLSAgICAgICAgICAgICAgICB2ZWN0b3I8
dm9pZCo+IG9iamVjdHM7Ci0gICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBvYmplY3RJbmRl
eCA9IDA7Ci0gICAgICAgICAgICAgICAgICAgICBvYmplY3RJbmRleCA8IG51bWJlck9mT2JqZWN0
c1BlclBhZ2UgLSBleGNsdWRlOwotICAgICAgICAgICAgICAgICAgICAgKytvYmplY3RJbmRleCkg
ewotICAgICAgICAgICAgICAgICAgICBpZiAocmFnZVNjYXZlbmdlRHVyaW5nUmVmaWxsKQotICAg
ICAgICAgICAgICAgICAgICAgICAgc2NhdmVuZ2UoKTsKLSAgICAgICAgICAgICAgICAgICAgdm9p
ZCogb2JqZWN0ID0gaXNvX3Rlc3RfYWxsb2NhdGVfY29tbW9uX3ByaW1pdGl2ZShzaXplKTsKLSAg
ICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlldyBteVZpZXcgPSBwYXNfc2VncmVn
YXRlZF92aWV3X2Zvcl9vYmplY3QoCi0gICAgICAgICAgICAgICAgICAgICAgICByZWludGVycHJl
dF9jYXN0PHVpbnRwdHJfdD4ob2JqZWN0KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICZpc29f
dGVzdF9oZWFwX2NvbmZpZyk7Ci0gICAgICAgICAgICAgICAgICAgIGlmICghb2JqZWN0SW5kZXgp
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIFBBU19BU1NFUlQoIXZpZXcpOwotICAgICAgICAg
ICAgICAgICAgICAgICAgdmlldyA9IG15VmlldzsKLSAgICAgICAgICAgICAgICAgICAgfSBlbHNl
Ci0gICAgICAgICAgICAgICAgICAgICAgICBDSEVDS19FUVVBTChteVZpZXcsIHZpZXcpOwotICAg
ICAgICAgICAgICAgICAgICBvYmplY3RzLnB1c2hfYmFjayhvYmplY3QpOwotICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgICBQQVNfQVNTRVJUKHZpZXcpOwotICAgICAgICAgICAgICAg
IENIRUNLKG1hcC5jb3VudCh2aWV3KSk7Ci0gICAgICAgICAgICAgICAgQ0hFQ0tfRVFVQUwobWFw
W3ZpZXddLnNpemUoKSArIG9iamVjdHMuc2l6ZSgpLCBudW1iZXJPZk9iamVjdHNQZXJQYWdlKTsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgfTsKLQotICAgIGlmICh1c2VUYWJsaW5nKSB7Ci0gICAg
ICAgIHJlZmlsbChwYWdlc05vdFRvRW1wdHksIG51bVBhZ2VzTm90VG9FbXB0eSwgMSk7Ci0gICAg
ICAgIHJlZmlsbChwYWdlc1RvRW1wdHksIG51bVBhZ2VzVG9FbXB0eSwgMCk7Ci0gICAgfSBlbHNl
IHsKLSAgICAgICAgcmVmaWxsKHBhZ2VzVG9FbXB0eSwgbnVtUGFnZXNUb0VtcHR5LCAwKTsKLSAg
ICAgICAgcmVmaWxsKHBhZ2VzTm90VG9FbXB0eSwgbnVtUGFnZXNOb3RUb0VtcHR5LCAxKTsKLSAg
ICB9Ci19Ci0KLXZvaWQgdGVzdFVudGFibGluZygpCi17Ci0gICAgdmVjdG9yPHZlY3Rvcjx2b2lk
Kj4+IG9iamVjdHNJblBhZ2U7Ci0KLSAgICB1bnNpZ25lZCBudW1iZXJPZk9iamVjdHNQZXJQYWdl
ID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9udW1iZXJfb2Zfb2JqZWN0cygKLSAgICAgICAgMTYsIElT
T19URVNUX0hFQVBfQ09ORklHLnNtYWxsX3NlZ3JlZ2F0ZWRfY29uZmlnKTsKLQotICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCAyOyArK2kpIHsKLSAgICAgICAgdmVjdG9yPHZvaWQqPiBvYmpl
Y3RzOwotICAgICAgICBmb3IgKHVuc2lnbmVkIGogPSAwOyBqIDwgbnVtYmVyT2ZPYmplY3RzUGVy
UGFnZTsgKytqKQotICAgICAgICAgICAgb2JqZWN0cy5wdXNoX2JhY2soaXNvX3Rlc3RfYWxsb2Nh
dGVfY29tbW9uX3ByaW1pdGl2ZSgxNikpOwotICAgICAgICBvYmplY3RzSW5QYWdlLnB1c2hfYmFj
ayhvYmplY3RzKTsKLSAgICB9Ci0KLSAgICBmb3IgKHZvaWQqIG9iamVjdCA6IG9iamVjdHNJblBh
Z2VbMF0pCi0gICAgICAgIGlzb190ZXN0X2RlYWxsb2NhdGUob2JqZWN0KTsKLQotICAgIGZvciAo
dW5zaWduZWQgaSA9IDE7IGkgPCBvYmplY3RzSW5QYWdlWzFdLnNpemUoKTsgKytpKQotICAgICAg
ICBpc29fdGVzdF9kZWFsbG9jYXRlKG9iamVjdHNJblBhZ2VbMV1baV0pOwotCi0gICAgc2NhdmVu
Z2UoKTsKLQotICAgIGZvciAodW5zaWduZWQgaSA9IDE7IGkgPCBvYmplY3RzSW5QYWdlWzFdLnNp
emUoKTsgKytpKSB7Ci0gICAgICAgIENIRUNLX0VRVUFMKGlzb190ZXN0X2FsbG9jYXRlX2NvbW1v
bl9wcmltaXRpdmUoMTYpLAotICAgICAgICAgICAgICAgICAgICBvYmplY3RzSW5QYWdlWzFdW2ld
KTsKLSAgICB9Ci0KLSAgICBDSEVDS19FUVVBTChpc29fdGVzdF9hbGxvY2F0ZV9jb21tb25fcHJp
bWl0aXZlKDE2KSwKLSAgICAgICAgICAgICAgICBvYmplY3RzSW5QYWdlWzBdWzBdKTsKLQotICAg
IGlzb190ZXN0X2RlYWxsb2NhdGUob2JqZWN0c0luUGFnZVsxXVswXSk7Ci0KLSAgICBzY2F2ZW5n
ZSgpOwotCi0gICAgQ0hFQ0tfRVFVQUwoaXNvX3Rlc3RfYWxsb2NhdGVfY29tbW9uX3ByaW1pdGl2
ZSgxNiksCi0gICAgICAgICAgICAgICAgb2JqZWN0c0luUGFnZVswXVsxXSk7Ci19Ci0KLXZvaWQg
YWRkVGFibGluZ1Rlc3RzKGJvb2wgdXNlVGFibGluZykKLXsKLSAgICBBRERfVEVTVCh0ZXN0VGFi
bGluZygxNiwgcGFzX3NtYWxsX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfdmFyaWFudCwgMSwgMSwg
dXNlVGFibGluZywgZmFsc2UpKTsKLSAgICBBRERfVEVTVCh0ZXN0VGFibGluZygxNiwgcGFzX3Nt
YWxsX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfdmFyaWFudCwgMSwgMTAsIHVzZVRhYmxpbmcsIGZh
bHNlKSk7Ci0gICAgQUREX1RFU1QodGVzdFRhYmxpbmcoMTYsIHBhc19zbWFsbF9zZWdyZWdhdGVk
X3BhZ2VfY29uZmlnX3ZhcmlhbnQsIDEwLCAxLCB1c2VUYWJsaW5nLCBmYWxzZSkpOwotICAgIEFE
RF9URVNUKHRlc3RUYWJsaW5nKDE2LCBwYXNfc21hbGxfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ192
YXJpYW50LCAxMCwgMTAsIHVzZVRhYmxpbmcsIGZhbHNlKSk7Ci0gICAgQUREX1RFU1QodGVzdFRh
YmxpbmcoMTk5NjgsIHBhc19tZWRpdW1fc2VncmVnYXRlZF9wYWdlX2NvbmZpZ192YXJpYW50LCAx
LCAxLCB1c2VUYWJsaW5nLCBmYWxzZSkpOwotICAgIEFERF9URVNUKHRlc3RUYWJsaW5nKDE5OTY4
LCBwYXNfbWVkaXVtX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfdmFyaWFudCwgMSwgMTAsIHVzZVRh
YmxpbmcsIGZhbHNlKSk7Ci0gICAgQUREX1RFU1QodGVzdFRhYmxpbmcoMTk5NjgsIHBhc19tZWRp
dW1fc2VncmVnYXRlZF9wYWdlX2NvbmZpZ192YXJpYW50LCAxMCwgMSwgdXNlVGFibGluZywgZmFs
c2UpKTsKLSAgICBBRERfVEVTVCh0ZXN0VGFibGluZygxOTk2OCwgcGFzX21lZGl1bV9zZWdyZWdh
dGVkX3BhZ2VfY29uZmlnX3ZhcmlhbnQsIDEwLCAxMCwgdXNlVGFibGluZywgZmFsc2UpKTsKLQot
ICAgIEFERF9URVNUKHRlc3RUYWJsaW5nKDE2LCBwYXNfc21hbGxfc2VncmVnYXRlZF9wYWdlX2Nv
bmZpZ192YXJpYW50LCAxLCAxLCB1c2VUYWJsaW5nLCB0cnVlKSk7Ci0gICAgQUREX1RFU1QodGVz
dFRhYmxpbmcoMTYsIHBhc19zbWFsbF9zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3ZhcmlhbnQsIDEs
IDEwLCB1c2VUYWJsaW5nLCB0cnVlKSk7Ci0gICAgQUREX1RFU1QodGVzdFRhYmxpbmcoMTYsIHBh
c19zbWFsbF9zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3ZhcmlhbnQsIDEwLCAxLCB1c2VUYWJsaW5n
LCB0cnVlKSk7Ci0gICAgQUREX1RFU1QodGVzdFRhYmxpbmcoMTYsIHBhc19zbWFsbF9zZWdyZWdh
dGVkX3BhZ2VfY29uZmlnX3ZhcmlhbnQsIDEwLCAxMCwgdXNlVGFibGluZywgdHJ1ZSkpOwotICAg
IEFERF9URVNUKHRlc3RUYWJsaW5nKDE5OTY4LCBwYXNfbWVkaXVtX3NlZ3JlZ2F0ZWRfcGFnZV9j
b25maWdfdmFyaWFudCwgMSwgMSwgdXNlVGFibGluZywgdHJ1ZSkpOwotICAgIEFERF9URVNUKHRl
c3RUYWJsaW5nKDE5OTY4LCBwYXNfbWVkaXVtX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfdmFyaWFu
dCwgMSwgMTAsIHVzZVRhYmxpbmcsIHRydWUpKTsKLSAgICBBRERfVEVTVCh0ZXN0VGFibGluZygx
OTk2OCwgcGFzX21lZGl1bV9zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3ZhcmlhbnQsIDEwLCAxLCB1
c2VUYWJsaW5nLCB0cnVlKSk7Ci0gICAgQUREX1RFU1QodGVzdFRhYmxpbmcoMTk5NjgsIHBhc19t
ZWRpdW1fc2VncmVnYXRlZF9wYWdlX2NvbmZpZ192YXJpYW50LCAxMCwgMTAsIHVzZVRhYmxpbmcs
IHRydWUpKTsKLX0KLQotfSAvLyBhbm9ueW1vdXMgbmFtZXNwYWNlCi0KLSNlbmRpZiAvLyBQQVNf
RU5BQkxFX0lTTwotCi12b2lkIGFkZElzb0hlYXBUYWJsaW5nVGVzdHMoKQotewotICAgIFJ1blNj
YXZlbmdlckZ1bGx5IHJ1blNjYXZlbmdlckZ1bGx5OwotICAgIEZvcmNlRXhjbHVzaXZlcyBmb3Jj
ZUV4Y2x1c2l2ZXM7Ci0gICAgRm9yY2VUTEFzIGZvcmNlVExBczsKLSAgICBEaXNhYmxlQml0Zml0
IGRpc2FibGVCaXRmaXQ7Ci0KLSAgICB7Ci0gICAgICAgIFRlc3RTY29wZSBlbmFibGVUYWJsaW5n
KAotICAgICAgICAgICAgImVuYWJsZS10YWJsaW5nIiwKLSAgICAgICAgICAgIFtdICgpIHsKLSAg
ICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV91c2VfdGFibGluZyA9
IHRydWU7Ci0gICAgICAgICAgICB9KTsKLQotICAgICAgICBhZGRUYWJsaW5nVGVzdHModHJ1ZSk7
Ci0gICAgICAgIAotICAgICAgICBBRERfVEVTVCh0ZXN0VW50YWJsaW5nKCkpOwotICAgIH0KLQot
ICAgIHsKLSAgICAgICAgVGVzdFNjb3BlIGVuYWJsZVRhYmxpbmcoCi0gICAgICAgICAgICAiZGlz
YWJsZS10YWJsaW5nIiwKLSAgICAgICAgICAgIFtdICgpIHsKLSAgICAgICAgICAgICAgICBwYXNf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV91c2VfdGFibGluZyA9IGZhbHNlOwotICAgICAgICAg
ICAgfSk7Ci0KLSAgICAgICAgYWRkVGFibGluZ1Rlc3RzKGZhbHNlKTsKLSAgICB9Ci19Ci0KLQot
CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvUmFjZVRlc3RzLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvUmFjZVRlc3RzLmNwcAko
cmV2aXNpb24gMjc5OTY0KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L1JhY2VU
ZXN0cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0MSw3ICsxNDEsNyBAQCB2b2lkIHRlc3RMb2Nh
bEFsbG9jYXRvclN0b3BSYWNlKHBhc19yYWNlCiAgICAgICAgICAgICBpZiAoa2luZCAhPSBraW5k
VG9TdG9wT24pCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgICAgICBDSEVDS19F
UVVBTChsb2Nrc0hlbGRGb3JUaHJlYWRbdGhpc190aHJlYWQ6OmdldF9pZCgpXS5zaXplKCksIDIp
OworICAgICAgICAgICAgQ0hFQ0tfRVFVQUwobG9ja3NIZWxkRm9yVGhyZWFkW3RoaXNfdGhyZWFk
OjpnZXRfaWQoKV0uc2l6ZSgpLCAzKTsKICAgICAgICAgICAgIENIRUNLKG9rVG9HZXRUb0hvb2sp
OwogCiAgICAgICAgICAgICB1bmlxdWVfbG9jazxtdXRleD4gbG9ja2VyKGdsb2JhbExvY2spOwpA
QCAtMjAyLDcgKzIwMiw3IEBAIHZvaWQgdGVzdExvY2FsQWxsb2NhdG9yU3RvcFJhY2VBZ2FpbnN0
U2MKICAgICAgICAgICAgIGlmIChraW5kICE9IGtpbmRUb1N0b3BPbikKICAgICAgICAgICAgICAg
ICByZXR1cm47CiAKLSAgICAgICAgICAgIENIRUNLX0VRVUFMKGxvY2tzSGVsZEZvclRocmVhZFt0
aGlzX3RocmVhZDo6Z2V0X2lkKCldLnNpemUoKSwgMik7CisgICAgICAgICAgICBDSEVDS19FUVVB
TChsb2Nrc0hlbGRGb3JUaHJlYWRbdGhpc190aHJlYWQ6OmdldF9pZCgpXS5zaXplKCksIDMpOwog
ICAgICAgICAgICAgQ0hFQ0sob2tUb0dldFRvSG9vayk7CiAKICAgICAgICAgICAgIHVuaXF1ZV9s
b2NrPG11dGV4PiBsb2NrZXIoZ2xvYmFsTG9jayk7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL3Rlc3QvVFNEVGVzdHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvdGVzdC9UU0RUZXN0cy5jcHAJKHJldmlzaW9uIDI3OTk2NCkKKysrIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9UU0RUZXN0cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc5
LDEwICs3OSwxMCBAQCB2b2lkIHRlc3RUU0QodW5zaWduZWQgbnVtS2V5c0JlZm9yZUFsbG9jCiAg
ICAgYXV0byBpbml0aWFsaXplSlNDS2V5cyA9CiAgICAgICAgIFsmXSAoKSB7CiAgICAgICAgICAg
ICBpbml0aWFsaXplRmFzdEtleShfX1BUS19GUkFNRVdPUktfQ09SRURBVEFfS0VZNSk7Ci0gICAg
ICAgICAgICBpbml0aWFsaXplRmFzdEtleShfX1BUS19GUkFNRVdPUktfSkFWQVNDUklQVENPUkVf
S0VZMCk7CiAgICAgICAgICAgICBpbml0aWFsaXplRmFzdEtleShfX1BUS19GUkFNRVdPUktfSkFW
QVNDUklQVENPUkVfS0VZMSk7CiAgICAgICAgICAgICBpbml0aWFsaXplRmFzdEtleShfX1BUS19G
UkFNRVdPUktfSkFWQVNDUklQVENPUkVfS0VZMik7CiAgICAgICAgICAgICBpbml0aWFsaXplRmFz
dEtleShfX1BUS19GUkFNRVdPUktfSkFWQVNDUklQVENPUkVfS0VZMyk7CisgICAgICAgICAgICBp
bml0aWFsaXplRmFzdEtleShfX1BUS19GUkFNRVdPUktfSkFWQVNDUklQVENPUkVfS0VZNCk7CiAg
ICAgICAgIH07CiAjZWxzZQogICAgIGF1dG8gaW5pdGlhbGl6ZUpTQ0tleXMgPSBbXSAoKSB7IH07
CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvVGVzdEhhcm5lc3MuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9UZXN0SGFybmVzcy5j
cHAJKHJldmlzaW9uIDI3OTk2NCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9U
ZXN0SGFybmVzcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDYgQEAKICNpbmNsdWRl
ICJqaXRfaGVhcF9jb25maWcuaCIKICNpbmNsdWRlICJtaW5hbGlnbjMyX2hlYXBfY29uZmlnLmgi
CiAjaW5jbHVkZSAicGFnZXNpemU2NGtfaGVhcF9jb25maWcuaCIKLSNpbmNsdWRlICJwYXNfYWxs
X21hZ2F6aW5lcy5oIgogI2luY2x1ZGUgInBhc19lcG9jaC5oIgogI2luY2x1ZGUgInBhc19mZF9z
dHJlYW0uaCIKICNpbmNsdWRlICJwYXNfaGVhcC5oIgpAQCAtMjA5LDM1ICsyMDgsNiBAQCBJbnN0
YWxsVmVyaWZpZXI6Okluc3RhbGxWZXJpZmllcigpCiB7CiB9CiAKLURpc2FibGVFeHBsb3Npb246
OkRpc2FibGVFeHBsb3Npb24oKQotICAgIDogVGVzdFNjb3BlKAotICAgICAgICAiZGlzYWJsZS1l
eHBsb3Npb24iLAotICAgICAgICBbXSAoKSB7Ci0gICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9n
bG9iYWxfc2l6ZV9kaXJlY3RvcnlfY2FuX2V4cGxvZGUgPSBmYWxzZTsKLSAgICAgICAgICAgIHBh
c19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9mb3JjZV9leHBsb2RlID0gZmFsc2U7
Ci0gICAgICAgIH0pCi17Ci19Ci0KLUZvcmNlRXhwbG9zaW9uOjpGb3JjZUV4cGxvc2lvbigpCi0g
ICAgOiBUZXN0U2NvcGUoCi0gICAgICAgICJmb3JjZS1leHBsb3Npb24iLAotICAgICAgICBbXSAo
KSB7Ci0gICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfY2Fu
X2V4cGxvZGUgPSB0cnVlOwotICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVf
ZGlyZWN0b3J5X2ZvcmNlX2V4cGxvZGUgPSB0cnVlOwotICAgICAgICB9KQotewotfQotCi1Gb3Jj
ZU9uZU1hZ2F6aW5lOjpGb3JjZU9uZU1hZ2F6aW5lKCkKLSAgICA6IFRlc3RTY29wZSgKLSAgICAg
ICAgImZvcmNlLW9uZS1tYWdhemluZSIsCi0gICAgICAgIFtdICgpIHsKLSAgICAgICAgICAgIHBh
c19hbGxfbWFnYXppbmVzX2ZvcmNlZF9jcHVfbnVtYmVyID0gMDsKLSAgICAgICAgfSkKLXsKLX0K
LQogRXBvY2hJc0NvdW50ZXI6OkVwb2NoSXNDb3VudGVyKCkKICAgICA6IFRlc3RTY29wZSgKICAg
ICAgICAgImVwb2NoLWlzLWNvdW50ZXIiLApAQCAtMzU2LDcgKzMyNiw2IEBAIHZvaWQgYWRkSXNv
SGVhcENoYW9zVGVzdHMoKTsKIHZvaWQgYWRkSXNvSGVhcFBhZ2VTaGFyaW5nVGVzdHMoKTsKIHZv
aWQgYWRkSXNvSGVhcFBhcnRpYWxBbmRCYXNlbGluZVRlc3RzKCk7CiB2b2lkIGFkZElzb0hlYXBS
ZXNlcnZlZE1lbW9yeVRlc3RzKCk7Ci12b2lkIGFkZElzb0hlYXBUYWJsaW5nVGVzdHMoKTsKIHZv
aWQgYWRkSklUSGVhcFRlc3RzKCk7CiB2b2lkIGFkZExhcmdlRnJlZUhlYXBUZXN0cygpOwogdm9p
ZCBhZGRMYXJnZVNoYXJpbmdQb29sVGVzdHMoKTsKQEAgLTcxNCw3ICs2ODMsNiBAQCBpbnQgbWFp
bihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiAgICAgQUREX1NVSVRFKElzb0hlYXBQYWdlU2hhcmlu
Zyk7CiAgICAgQUREX1NVSVRFKElzb0hlYXBQYXJ0aWFsQW5kQmFzZWxpbmUpOwogICAgIEFERF9T
VUlURShJc29IZWFwUmVzZXJ2ZWRNZW1vcnkpOwotICAgIEFERF9TVUlURShJc29IZWFwVGFibGlu
Zyk7CiAgICAgQUREX1NVSVRFKEpJVEhlYXApOwogICAgIEFERF9TVUlURShMYXJnZUZyZWVIZWFw
KTsKICAgICBBRERfU1VJVEUoTGFyZ2VTaGFyaW5nUG9vbCk7CkluZGV4OiBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL3Rlc3QvVGVzdEhhcm5lc3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL3Rlc3QvVGVzdEhhcm5lc3MuaAkocmV2aXNpb24gMjc5OTY0KQorKysg
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L1Rlc3RIYXJuZXNzLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTI3NSwyMSArMjc1LDYgQEAgcHVibGljOgogICAgIEluc3RhbGxWZXJpZmllcigpOwog
fTsKIAotY2xhc3MgRGlzYWJsZUV4cGxvc2lvbiA6IHB1YmxpYyBUZXN0U2NvcGUgewotcHVibGlj
OgotICAgIERpc2FibGVFeHBsb3Npb24oKTsKLX07Ci0KLWNsYXNzIEZvcmNlRXhwbG9zaW9uIDog
cHVibGljIFRlc3RTY29wZSB7Ci1wdWJsaWM6Ci0gICAgRm9yY2VFeHBsb3Npb24oKTsKLX07Ci0K
LWNsYXNzIEZvcmNlT25lTWFnYXppbmUgOiBwdWJsaWMgVGVzdFNjb3BlIHsKLXB1YmxpYzoKLSAg
ICBGb3JjZU9uZU1hZ2F6aW5lKCk7Ci19OwotCiBjbGFzcyBFcG9jaElzQ291bnRlciA6IHB1Ymxp
YyBUZXN0U2NvcGUgewogcHVibGljOgogICAgIEVwb2NoSXNDb3VudGVyKCk7CkluZGV4OiBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvVGhpbmd5QW5kVXRpbGl0eUhlYXBBbGxvY2F0aW9u
VGVzdHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9U
aGluZ3lBbmRVdGlsaXR5SGVhcEFsbG9jYXRpb25UZXN0cy5jcHAJKHJldmlzaW9uIDI3OTk2NCkK
KysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9UaGluZ3lBbmRVdGlsaXR5SGVhcEFs
bG9jYXRpb25UZXN0cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDcgKzQ3LDcgQEAKICNpbmNs
dWRlICJwYXNfbWVnYXBhZ2VfY2FjaGUuaCIKICNpbmNsdWRlICJwYXNfcGFnZV9tYWxsb2MuaCIK
ICNpbmNsdWRlICJwYXNfc2NhdmVuZ2VyLmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZ2xv
YmFsX3NpemVfZGlyZWN0b3J5LmgiCisjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnkuaCIKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9pbmxpbmVz
LmgiCiAjaW5jbHVkZSAicGFzX3RocmVhZF9sb2NhbF9jYWNoZS5oIgogI2luY2x1ZGUgInBhc191
dGlsaXR5X2hlYXAuaCIKQEAgLTgxLDEwICs4MSwxMCBAQCB2b2lkIGZsdXNoRGVhbGxvY2F0aW9u
TG9nQW5kU3RvcEFsbG9jYXRvCiAvLyBGSVhNRTogT25jZSB3ZSBhZGQgcmVhbCBzY2F2ZW5naW5n
LCB3ZSB3aWxsIHdhbnQgdG8gYWRkIGEgc2hyaW5rSGVhcHMoKSBmdW5jdGlvbiB0aGF0IGRvZXMK
IC8vIGZsdXNoRGVhbGxvY2F0aW9uTG9nQW5kU3RvcEFsbG9jYXRvcnMoKSBwbHVzIHRoZSBhY3R1
YWwgc2NhdmVuZ2luZy4KIAotcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBz
aXplQ2xhc3NGb3Iodm9pZCogb2JqZWN0KQorcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnkq
IHNpemVDbGFzc0Zvcih2b2lkKiBvYmplY3QpCiB7CiAjaWYgU0VHSEVBUAotICAgIHJldHVybiBw
YXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZm9yX29iamVjdCgKKyAgICByZXR1
cm4gcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZm9yX29iamVjdCgKICAgICAgICAgcmVp
bnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KG9iamVjdCksICZ0aGluZ3lfaGVhcF9jb25maWcpOwog
I2Vsc2UKICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTExMyw3ICsxMTMsNyBAQCB2b2lkIGZvckVh
Y2hMaXZlVXRpbGl0eU9iamVjdChmdW5jdGlvbjxiCiAKICNpZiBTRUdIRUFQCiBib29sIGZvckVh
Y2hDb21taXR0ZWRWaWV3QWRhcHRlcihwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGly
ZWN0b3J5KiBzaXplQ2xhc3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogc2l6ZUNsYXNzLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3LAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdm9pZCogYXJnKQogewpAQCAtMjYyLDkgKzI2Miw5IEBAIHZvaWQg
dmVyaWZ5SGVhcEVtcHR5KHBhc19oZWFwKiBoZWFwKQogICAgIGZvckVhY2hDb21taXR0ZWRWaWV3
KAogICAgICAgICBoZWFwLAogICAgICAgICBbJl0gKHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldykg
LT4gYm9vbCB7Ci0gICAgICAgICAgICBDSEVDSyhwYXNfc2VncmVnYXRlZF92aWV3X2lzX2VsaWdp
YmxlX29yX2JpYXNlZCh2aWV3KSk7CisgICAgICAgICAgICBDSEVDSyhwYXNfc2VncmVnYXRlZF92
aWV3X2lzX2VsaWdpYmxlKHZpZXcpKTsKICNpZiBUTEMKLSAgICAgICAgICAgIENIRUNLKHBhc19z
ZWdyZWdhdGVkX3ZpZXdfaXNfZW1wdHlfb3JfYmlhc2VkKHZpZXcpKTsKKyAgICAgICAgICAgIENI
RUNLKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfZW1wdHkodmlldykpOwogI2VuZGlmCiAgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfSk7CkBAIC05NjYsMjggKzk2NiwyNiBAQCB2b2lk
IHRlc3RJbnRlcm5hbFNjYXZlbmdlRnJvbUNvcnJlY3REaXJlCiAgICAgcGFzX3NlZ3JlZ2F0ZWRf
dmlldyB2aWV3MSA9IHBhc19zZWdyZWdhdGVkX3ZpZXdfZm9yX29iamVjdChyZWludGVycHJldF9j
YXN0PHVpbnRwdHJfdD4ob2JqZWN0MSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmdGhpbmd5X2hlYXBfY29uZmlnKTsKICAg
ICAKLSAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkqIGRpcmVjdG9yeTEgPSBwYXNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeV9mb3Jfb2JqZWN0KAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5KiBkaXJlY3RvcnkxID0gcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZm9y
X29iamVjdCgKICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KG9iamVjdDEpLCAm
dGhpbmd5X2hlYXBfY29uZmlnKTsKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJl
Y3RvcnkqIGdsb2JhbERpcmVjdG9yeTEgPQotICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeV9nZXRfZ2xvYmFsKGRpcmVjdG9yeTEpOwogICAgIAotICAgIENIRUNLX0VRVUFMKGds
b2JhbERpcmVjdG9yeTEtPm9iamVjdF9zaXplLCBmaXJzdFNpemUpOwotICAgIENIRUNLX0VRVUFM
KHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9zaXplKGRpcmVjdG9yeTEpLCAxKTsKLSAgICBDSEVD
SyghcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2VsaWdpYmxlKGRpcmVjdG9yeTEsIDApKTsK
LSAgICBDSEVDSyghcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2VtcHR5KCZnbG9iYWxEaXJl
Y3RvcnkxLT5iYXNlLCAwKSk7Ci0gICAgQ0hFQ0socGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lz
X2NvbW1pdHRlZChkaXJlY3RvcnkxLCAwKSk7CisgICAgQ0hFQ0tfRVFVQUwoZGlyZWN0b3J5MS0+
b2JqZWN0X3NpemUsIGZpcnN0U2l6ZSk7CisgICAgQ0hFQ0tfRVFVQUwocGFzX3NlZ3JlZ2F0ZWRf
ZGlyZWN0b3J5X3NpemUoJmRpcmVjdG9yeTEtPmJhc2UpLCAxKTsKKyAgICBDSEVDSyghcGFzX3Nl
Z3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2VsaWdpYmxlKCZkaXJlY3RvcnkxLT5iYXNlLCAwKSk7Cisg
ICAgQ0hFQ0soIXBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19lbXB0eSgmZGlyZWN0b3J5MS0+
YmFzZSwgMCkpOworICAgIENIRUNLKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19jb21taXR0
ZWQoJmRpcmVjdG9yeTEtPmJhc2UsIDApKTsKICAgICBDSEVDS19FUVVBTCgKLSAgICAgICAgcGFz
X3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dldChkaXJlY3RvcnkxLCAwKSwKKyAgICAgICAgcGFzX3Nl
Z3JlZ2F0ZWRfZGlyZWN0b3J5X2dldCgmZGlyZWN0b3J5MS0+YmFzZSwgMCksCiAgICAgICAgIHZp
ZXcxKTsKICAgICAKICAgICBmbHVzaERlYWxsb2NhdGlvbkxvZ0FuZFN0b3BBbGxvY2F0b3JzKCk7
CiAKLSAgICBDSEVDS19FUVVBTChwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfc2l6ZShkaXJlY3Rv
cnkxKSwgMSk7Ci0gICAgQ0hFQ0socGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2VsaWdpYmxl
KGRpcmVjdG9yeTEsIDApKTsKLSAgICBDSEVDSyghcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lz
X2VtcHR5KCZnbG9iYWxEaXJlY3RvcnkxLT5iYXNlLCAwKSk7Ci0gICAgQ0hFQ0socGFzX3NlZ3Jl
Z2F0ZWRfZGlyZWN0b3J5X2lzX2NvbW1pdHRlZChkaXJlY3RvcnkxLCAwKSk7CisgICAgQ0hFQ0tf
RVFVQUwocGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3NpemUoJmRpcmVjdG9yeTEtPmJhc2UpLCAx
KTsKKyAgICBDSEVDSyhwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXNfZWxpZ2libGUoJmRpcmVj
dG9yeTEtPmJhc2UsIDApKTsKKyAgICBDSEVDSyghcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lz
X2VtcHR5KCZkaXJlY3RvcnkxLT5iYXNlLCAwKSk7CisgICAgQ0hFQ0socGFzX3NlZ3JlZ2F0ZWRf
ZGlyZWN0b3J5X2lzX2NvbW1pdHRlZCgmZGlyZWN0b3J5MS0+YmFzZSwgMCkpOwogICAgIENIRUNL
X0VRVUFMKAotICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZ2V0KGRpcmVjdG9yeTEs
IDApLAorICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZ2V0KCZkaXJlY3RvcnkxLT5i
YXNlLCAwKSwKICAgICAgICAgdmlldzEpOwogICAgIAogICAgIHZvaWQqIG9iamVjdDIgPSB0aGlu
Z3lfdHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZShzZWNvbmRTaXplKTsKQEAgLTk5Niw0NSArOTk0LDQz
IEBAIHZvaWQgdGVzdEludGVybmFsU2NhdmVuZ2VGcm9tQ29ycmVjdERpcmUKICAgICBwYXNfc2Vn
cmVnYXRlZF92aWV3IHZpZXcyID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19mb3Jfb2JqZWN0KHJlaW50
ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihvYmplY3QyKSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ0aGluZ3lfaGVhcF9jb25m
aWcpOwogICAgIAotICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeSogZGlyZWN0b3J5MiA9IHBh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2Zvcl9vYmplY3QoCisgICAgcGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeTIgPSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeV9mb3Jfb2JqZWN0KAogICAgICAgICByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4ob2Jq
ZWN0MiksICZ0aGluZ3lfaGVhcF9jb25maWcpOwotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeSogZ2xvYmFsRGlyZWN0b3J5MiA9Ci0gICAgICAgIHBhc19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5X2dldF9nbG9iYWwoZGlyZWN0b3J5Mik7CiAgICAgCi0gICAgQ0hFQ0tf
RVFVQUwoZ2xvYmFsRGlyZWN0b3J5Mi0+b2JqZWN0X3NpemUsIHNlY29uZFNpemUpOworICAgIENI
RUNLX0VRVUFMKGRpcmVjdG9yeTItPm9iamVjdF9zaXplLCBzZWNvbmRTaXplKTsKIAotICAgIENI
RUNLX0VRVUFMKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9zaXplKGRpcmVjdG9yeTEpLCAxKTsK
LSAgICBDSEVDSyhwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXNfZWxpZ2libGUoZGlyZWN0b3J5
MSwgMCkpOwotICAgIENIRUNLKCFwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXNfZW1wdHkoJmds
b2JhbERpcmVjdG9yeTEtPmJhc2UsIDApKTsKLSAgICBDSEVDSyhwYXNfc2VncmVnYXRlZF9kaXJl
Y3RvcnlfaXNfY29tbWl0dGVkKGRpcmVjdG9yeTEsIDApKTsKKyAgICBDSEVDS19FUVVBTChwYXNf
c2VncmVnYXRlZF9kaXJlY3Rvcnlfc2l6ZSgmZGlyZWN0b3J5MS0+YmFzZSksIDEpOworICAgIENI
RUNLKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19lbGlnaWJsZSgmZGlyZWN0b3J5MS0+YmFz
ZSwgMCkpOworICAgIENIRUNLKCFwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXNfZW1wdHkoJmRp
cmVjdG9yeTEtPmJhc2UsIDApKTsKKyAgICBDSEVDSyhwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlf
aXNfY29tbWl0dGVkKCZkaXJlY3RvcnkxLT5iYXNlLCAwKSk7CiAgICAgQ0hFQ0tfRVFVQUwoCi0g
ICAgICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9nZXQoZGlyZWN0b3J5MSwgMCksCisgICAg
ICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9nZXQoJmRpcmVjdG9yeTEtPmJhc2UsIDApLAog
ICAgICAgICB2aWV3MSk7CiAgICAgCi0gICAgQ0hFQ0tfRVFVQUwocGFzX3NlZ3JlZ2F0ZWRfZGly
ZWN0b3J5X3NpemUoZGlyZWN0b3J5MiksIDEpOwotICAgIENIRUNLKCFwYXNfc2VncmVnYXRlZF9k
aXJlY3RvcnlfaXNfZWxpZ2libGUoZGlyZWN0b3J5MiwgMCkpOwotICAgIENIRUNLKCFwYXNfc2Vn
cmVnYXRlZF9kaXJlY3RvcnlfaXNfZW1wdHkoJmdsb2JhbERpcmVjdG9yeTItPmJhc2UsIDApKTsK
LSAgICBDSEVDSyhwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXNfY29tbWl0dGVkKGRpcmVjdG9y
eTIsIDApKTsKKyAgICBDSEVDS19FUVVBTChwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfc2l6ZSgm
ZGlyZWN0b3J5Mi0+YmFzZSksIDEpOworICAgIENIRUNLKCFwYXNfc2VncmVnYXRlZF9kaXJlY3Rv
cnlfaXNfZWxpZ2libGUoJmRpcmVjdG9yeTItPmJhc2UsIDApKTsKKyAgICBDSEVDSyghcGFzX3Nl
Z3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2VtcHR5KCZkaXJlY3RvcnkyLT5iYXNlLCAwKSk7CisgICAg
Q0hFQ0socGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2NvbW1pdHRlZCgmZGlyZWN0b3J5Mi0+
YmFzZSwgMCkpOwogICAgIENIRUNLX0VRVUFMKAotICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJl
Y3RvcnlfZ2V0KGRpcmVjdG9yeTIsIDApLAorICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3Rv
cnlfZ2V0KCZkaXJlY3RvcnkyLT5iYXNlLCAwKSwKICAgICAgICAgdmlldzIpOwogICAgIAogICAg
IGZsdXNoRGVhbGxvY2F0aW9uTG9nQW5kU3RvcEFsbG9jYXRvcnMoKTsKIAotICAgIENIRUNLX0VR
VUFMKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9zaXplKGRpcmVjdG9yeTEpLCAxKTsKLSAgICBD
SEVDSyhwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXNfZWxpZ2libGUoZGlyZWN0b3J5MSwgMCkp
OwotICAgIENIRUNLKCFwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXNfZW1wdHkoJmdsb2JhbERp
cmVjdG9yeTEtPmJhc2UsIDApKTsKLSAgICBDSEVDSyhwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlf
aXNfY29tbWl0dGVkKGRpcmVjdG9yeTEsIDApKTsKKyAgICBDSEVDS19FUVVBTChwYXNfc2VncmVn
YXRlZF9kaXJlY3Rvcnlfc2l6ZSgmZGlyZWN0b3J5MS0+YmFzZSksIDEpOworICAgIENIRUNLKHBh
c19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19lbGlnaWJsZSgmZGlyZWN0b3J5MS0+YmFzZSwgMCkp
OworICAgIENIRUNLKCFwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXNfZW1wdHkoJmRpcmVjdG9y
eTEtPmJhc2UsIDApKTsKKyAgICBDSEVDSyhwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXNfY29t
bWl0dGVkKCZkaXJlY3RvcnkxLT5iYXNlLCAwKSk7CiAgICAgQ0hFQ0tfRVFVQUwoCi0gICAgICAg
IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9nZXQoZGlyZWN0b3J5MSwgMCksCisgICAgICAgIHBh
c19zZWdyZWdhdGVkX2RpcmVjdG9yeV9nZXQoJmRpcmVjdG9yeTEtPmJhc2UsIDApLAogICAgICAg
ICB2aWV3MSk7CiAgICAgCi0gICAgQ0hFQ0tfRVFVQUwocGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5
X3NpemUoZGlyZWN0b3J5MiksIDEpOwotICAgIENIRUNLKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9y
eV9pc19lbGlnaWJsZShkaXJlY3RvcnkyLCAwKSk7Ci0gICAgQ0hFQ0soIXBhc19zZWdyZWdhdGVk
X2RpcmVjdG9yeV9pc19lbXB0eSgmZ2xvYmFsRGlyZWN0b3J5Mi0+YmFzZSwgMCkpOwotICAgIENI
RUNLKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19jb21taXR0ZWQoZGlyZWN0b3J5MiwgMCkp
OworICAgIENIRUNLX0VRVUFMKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9zaXplKCZkaXJlY3Rv
cnkyLT5iYXNlKSwgMSk7CisgICAgQ0hFQ0socGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2Vs
aWdpYmxlKCZkaXJlY3RvcnkyLT5iYXNlLCAwKSk7CisgICAgQ0hFQ0soIXBhc19zZWdyZWdhdGVk
X2RpcmVjdG9yeV9pc19lbXB0eSgmZGlyZWN0b3J5Mi0+YmFzZSwgMCkpOworICAgIENIRUNLKHBh
c19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19jb21taXR0ZWQoJmRpcmVjdG9yeTItPmJhc2UsIDAp
KTsKICAgICBDSEVDS19FUVVBTCgKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dl
dChkaXJlY3RvcnkyLCAwKSwKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dldCgm
ZGlyZWN0b3J5Mi0+YmFzZSwgMCksCiAgICAgICAgIHZpZXcyKTsKICAgICAKICAgICB0aGluZ3lf
ZGVhbGxvY2F0ZShvYmplY3QxKTsKQEAgLTEwNDIsMjAgKzEwMzgsMjAgQEAgdm9pZCB0ZXN0SW50
ZXJuYWxTY2F2ZW5nZUZyb21Db3JyZWN0RGlyZQogCiAgICAgZmx1c2hEZWFsbG9jYXRpb25Mb2dB
bmRTdG9wQWxsb2NhdG9ycygpOwogCi0gICAgQ0hFQ0tfRVFVQUwocGFzX3NlZ3JlZ2F0ZWRfZGly
ZWN0b3J5X3NpemUoZGlyZWN0b3J5MSksIDEpOwotICAgIENIRUNLKHBhc19zZWdyZWdhdGVkX2Rp
cmVjdG9yeV9pc19lbGlnaWJsZShkaXJlY3RvcnkxLCAwKSk7Ci0gICAgQ0hFQ0socGFzX3NlZ3Jl
Z2F0ZWRfZGlyZWN0b3J5X2lzX2VtcHR5KCZnbG9iYWxEaXJlY3RvcnkxLT5iYXNlLCAwKSk7Ci0g
ICAgQ0hFQ0socGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2NvbW1pdHRlZChkaXJlY3Rvcnkx
LCAwKSk7CisgICAgQ0hFQ0tfRVFVQUwocGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3NpemUoJmRp
cmVjdG9yeTEtPmJhc2UpLCAxKTsKKyAgICBDSEVDSyhwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlf
aXNfZWxpZ2libGUoJmRpcmVjdG9yeTEtPmJhc2UsIDApKTsKKyAgICBDSEVDSyhwYXNfc2VncmVn
YXRlZF9kaXJlY3RvcnlfaXNfZW1wdHkoJmRpcmVjdG9yeTEtPmJhc2UsIDApKTsKKyAgICBDSEVD
SyhwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXNfY29tbWl0dGVkKCZkaXJlY3RvcnkxLT5iYXNl
LCAwKSk7CiAgICAgQ0hFQ0tfRVFVQUwoCi0gICAgICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9y
eV9nZXQoZGlyZWN0b3J5MSwgMCksCisgICAgICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9n
ZXQoJmRpcmVjdG9yeTEtPmJhc2UsIDApLAogICAgICAgICB2aWV3MSk7CiAKLSAgICBDSEVDS19F
UVVBTChwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfc2l6ZShkaXJlY3RvcnkyKSwgMSk7Ci0gICAg
Q0hFQ0socGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2VsaWdpYmxlKGRpcmVjdG9yeTIsIDAp
KTsKLSAgICBDSEVDSyhwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXNfZW1wdHkoJmdsb2JhbERp
cmVjdG9yeTItPmJhc2UsIDApKTsKLSAgICBDSEVDSyhwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlf
aXNfY29tbWl0dGVkKGRpcmVjdG9yeTIsIDApKTsKKyAgICBDSEVDS19FUVVBTChwYXNfc2VncmVn
YXRlZF9kaXJlY3Rvcnlfc2l6ZSgmZGlyZWN0b3J5Mi0+YmFzZSksIDEpOworICAgIENIRUNLKHBh
c19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19lbGlnaWJsZSgmZGlyZWN0b3J5Mi0+YmFzZSwgMCkp
OworICAgIENIRUNLKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19lbXB0eSgmZGlyZWN0b3J5
Mi0+YmFzZSwgMCkpOworICAgIENIRUNLKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19jb21t
aXR0ZWQoJmRpcmVjdG9yeTItPmJhc2UsIDApKTsKICAgICBDSEVDS19FUVVBTCgKLSAgICAgICAg
cGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dldChkaXJlY3RvcnkyLCAwKSwKKyAgICAgICAgcGFz
X3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dldCgmZGlyZWN0b3J5Mi0+YmFzZSwgMCksCiAgICAgICAg
IHZpZXcyKTsKICAgICAKICAgICB2b2lkKiBvYmplY3QzID0gdGhpbmd5X3RyeV9hbGxvY2F0ZV9w
cmltaXRpdmUodGhpcmRTaXplKTsKQEAgLTEwNjQsMzEgKzEwNjAsMjkgQEAgdm9pZCB0ZXN0SW50
ZXJuYWxTY2F2ZW5nZUZyb21Db3JyZWN0RGlyZQogICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgdmll
dzMgPSBwYXNfc2VncmVnYXRlZF92aWV3X2Zvcl9vYmplY3QocmVpbnRlcnByZXRfY2FzdDx1aW50
cHRyX3Q+KG9iamVjdDMpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJnRoaW5neV9oZWFwX2NvbmZpZyk7CiAgICAgCi0gICAg
cGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBkaXJlY3RvcnkzID0gcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnlfZm9yX29iamVjdCgKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eSogZGlyZWN0b3J5MyA9IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2Zvcl9vYmplY3Qo
CiAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihvYmplY3QzKSwgJnRoaW5neV9o
ZWFwX2NvbmZpZyk7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBn
bG9iYWxEaXJlY3RvcnkzID0KLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlf
Z2V0X2dsb2JhbChkaXJlY3RvcnkzKTsKLSAgICBDSEVDS19FUVVBTChnbG9iYWxEaXJlY3Rvcnkz
LT5vYmplY3Rfc2l6ZSwgdGhpcmRTaXplKTsKLSAgICAKLSAgICBDSEVDS19FUVVBTChwYXNfc2Vn
cmVnYXRlZF9kaXJlY3Rvcnlfc2l6ZShkaXJlY3RvcnkxKSwgMSk7Ci0gICAgQ0hFQ0socGFzX3Nl
Z3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2VsaWdpYmxlKGRpcmVjdG9yeTEsIDApKTsKLSAgICBDSEVD
SyghcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2VtcHR5KCZnbG9iYWxEaXJlY3RvcnkxLT5i
YXNlLCAwKSk7Ci0gICAgQ0hFQ0soIXBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19jb21taXR0
ZWQoZGlyZWN0b3J5MSwgMCkpOwotCi0gICAgQ0hFQ0tfRVFVQUwocGFzX3NlZ3JlZ2F0ZWRfZGly
ZWN0b3J5X3NpemUoZGlyZWN0b3J5MiksIDEpOwotICAgIENIRUNLKHBhc19zZWdyZWdhdGVkX2Rp
cmVjdG9yeV9pc19lbGlnaWJsZShkaXJlY3RvcnkyLCAwKSk7Ci0gICAgQ0hFQ0socGFzX3NlZ3Jl
Z2F0ZWRfZGlyZWN0b3J5X2lzX2VtcHR5KCZnbG9iYWxEaXJlY3RvcnkyLT5iYXNlLCAwKSk7Ci0g
ICAgQ0hFQ0socGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2NvbW1pdHRlZChkaXJlY3Rvcnky
LCAwKSk7CisgICAgQ0hFQ0tfRVFVQUwoZGlyZWN0b3J5My0+b2JqZWN0X3NpemUsIHRoaXJkU2l6
ZSk7CisgICAgCisgICAgQ0hFQ0tfRVFVQUwocGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3NpemUo
JmRpcmVjdG9yeTEtPmJhc2UpLCAxKTsKKyAgICBDSEVDSyhwYXNfc2VncmVnYXRlZF9kaXJlY3Rv
cnlfaXNfZWxpZ2libGUoJmRpcmVjdG9yeTEtPmJhc2UsIDApKTsKKyAgICBDSEVDSyghcGFzX3Nl
Z3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2VtcHR5KCZkaXJlY3RvcnkxLT5iYXNlLCAwKSk7CisgICAg
Q0hFQ0soIXBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19jb21taXR0ZWQoJmRpcmVjdG9yeTEt
PmJhc2UsIDApKTsKKworICAgIENIRUNLX0VRVUFMKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9z
aXplKCZkaXJlY3RvcnkyLT5iYXNlKSwgMSk7CisgICAgQ0hFQ0socGFzX3NlZ3JlZ2F0ZWRfZGly
ZWN0b3J5X2lzX2VsaWdpYmxlKCZkaXJlY3RvcnkyLT5iYXNlLCAwKSk7CisgICAgQ0hFQ0socGFz
X3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2VtcHR5KCZkaXJlY3RvcnkyLT5iYXNlLCAwKSk7Cisg
ICAgQ0hFQ0socGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2NvbW1pdHRlZCgmZGlyZWN0b3J5
Mi0+YmFzZSwgMCkpOwogICAgIENIRUNLX0VRVUFMKAotICAgICAgICBwYXNfc2VncmVnYXRlZF9k
aXJlY3RvcnlfZ2V0KGRpcmVjdG9yeTIsIDApLAorICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJl
Y3RvcnlfZ2V0KCZkaXJlY3RvcnkyLT5iYXNlLCAwKSwKICAgICAgICAgdmlldzIpOwogICAgIAot
ICAgIENIRUNLX0VRVUFMKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9zaXplKGRpcmVjdG9yeTMp
LCAxKTsKLSAgICBDSEVDSyghcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2VsaWdpYmxlKGRp
cmVjdG9yeTMsIDApKTsKLSAgICBDSEVDSyghcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2Vt
cHR5KCZnbG9iYWxEaXJlY3RvcnkzLT5iYXNlLCAwKSk7Ci0gICAgQ0hFQ0socGFzX3NlZ3JlZ2F0
ZWRfZGlyZWN0b3J5X2lzX2NvbW1pdHRlZChkaXJlY3RvcnkzLCAwKSk7CisgICAgQ0hFQ0tfRVFV
QUwocGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3NpemUoJmRpcmVjdG9yeTMtPmJhc2UpLCAxKTsK
KyAgICBDSEVDSyghcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2VsaWdpYmxlKCZkaXJlY3Rv
cnkzLT5iYXNlLCAwKSk7CisgICAgQ0hFQ0soIXBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19l
bXB0eSgmZGlyZWN0b3J5My0+YmFzZSwgMCkpOworICAgIENIRUNLKHBhc19zZWdyZWdhdGVkX2Rp
cmVjdG9yeV9pc19jb21taXR0ZWQoJmRpcmVjdG9yeTMtPmJhc2UsIDApKTsKICAgICBDSEVDS19F
UVVBTCgKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dldChkaXJlY3RvcnkzLCAw
KSwKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dldCgmZGlyZWN0b3J5My0+YmFz
ZSwgMCksCiAgICAgICAgIHZpZXczKTsKIAogICAgIENIRUNLX0VRVUFMKHBhc19zY2F2ZW5nZXJf
Y3VycmVudF9zdGF0ZSwgcGFzX3NjYXZlbmdlcl9zdGF0ZV9ub190aHJlYWQpOwpAQCAtMTEzMCwx
MSArMTEyNCwxMSBAQCB2b2lkIHRlc3RTaXplQ2xhc3NDcmVhdGlvbkltcGwoY29uc3QgdmVjCiAj
aWYgVExDCiAgICAgcGFzX2xhcmdlX3NoYXJpbmdfcG9vbF92YWxpZGF0ZV9lYWNoX3NwbGF0ID0g
dHJ1ZTsKICNlbmRpZgotICAgIG1hcDxzaXplX3QsIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXpl
X2RpcmVjdG9yeSo+IHNpemVNYXA7CisgICAgbWFwPHNpemVfdCwgcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnkqPiBzaXplTWFwOwogICAgIGZvciAoY29uc3QgU2l6ZUNsYXNzUHJvZ3JhbSYg
cHJvZ3JhbSA6IHByb2dyYW1zKSB7CiAgICAgICAgIGNvdXQgPDwgIiAgICBQcm9ncmFtOiAiIDw8
IHByb2dyYW0ubmFtZSA8PCBlbmRsOwogICAgICAgICAKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRf
Z2xvYmFsX3NpemVfZGlyZWN0b3J5KiByZXN1bHRpbmdTaXplQ2xhc3MgPSBudWxscHRyOworICAg
ICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogcmVzdWx0aW5nU2l6ZUNsYXNzID0g
bnVsbHB0cjsKICAgICAgICAgCiAgICAgICAgIHsKICNpZiBQQVNfRU5BQkxFX1RFU1RJTkcKQEAg
LTExNzcsNyArMTE3MSw2IEBAIHZvaWQgdGVzdFNwdXJpb3VzRWxpZ2liaWxpdHkoKQogI2lmIFRM
QwogICAgIHBhc19zY2F2ZW5nZXJfc3VzcGVuZCgpOwogICAgIHBhc19sYXJnZV9zaGFyaW5nX3Bv
b2xfdmFsaWRhdGVfZWFjaF9zcGxhdCA9IHRydWU7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3RvcnlfdXNlX3RhYmxpbmcgPSBmYWxzZTsKICNlbmRpZgogICAgIAogICAgIHVuc2lnbmVk
IG9iamVjdFNpemUgPSAxNjsKQEAgLTE1MzgsNiArMTUzMSw4IEBAIHZvaWQgdGVzdENvbXBsZXhM
YXJnZUFsbG9jYXRpb25JbXBsKGNvbnMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEV4cGVjdGVkQnl0ZXMgZXhwZWN0ZWROdW1NYXBwZWRCeXRlcywKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZlY3RvcjxBbGxvY2F0aW9uUHJvZ3JhbT4mIHBy
b2dyYW1zKQogeworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCB2ZXJib3NlID0gZmFsc2U7Cisg
ICAgCiAjaWYgVExDCiAgICAgcGFzX2xhcmdlX3NoYXJpbmdfcG9vbF92YWxpZGF0ZV9lYWNoX3Nw
bGF0ID0gdHJ1ZTsKICNlbmRpZgpAQCAtMTU1MCw2ICsxNTQ1LDEwIEBAIHZvaWQgdGVzdENvbXBs
ZXhMYXJnZUFsbG9jYXRpb25JbXBsKGNvbnMKICAgICAgICAgICAgIGNvdXQgPDwgIiAgICBQcm9n
cmFtOiBhbGxvY2F0ZSgiIDw8IHByb2dyYW0ua2V5KCkgPDwgIiwgIiA8PCBwcm9ncmFtLmNvdW50
KCkgPDwgIiwgIgogICAgICAgICAgICAgICAgICA8PCBwcm9ncmFtLmFsaWdubWVudCgpIDw8ICIp
IiA8PCBlbmRsOwogICAgICAgICAgICAgdm9pZCogcHRyID0gYWxsb2NhdG9yLmFsbG9jYXRlKHBy
b2dyYW0uY291bnQoKSwgcHJvZ3JhbS5hbGlnbm1lbnQoKSk7CisgICAgICAgICAgICBpZiAodmVy
Ym9zZSkgeworICAgICAgICAgICAgICAgIGNvdXQgPDwgIkFsbG9jYXRlZCBwdHIgPSAiIDw8IHB0
ciA8PCAiIHdpdGgga2luZCAiCisgICAgICAgICAgICAgICAgICAgICA8PCBwYXNfZ2V0X29iamVj
dF9raW5kKHB0ciwgVEhJTkdZX0hFQVBfQ09ORklHKSA8PCBlbmRsOworICAgICAgICAgICAgfQog
ICAgICAgICAgICAgQ0hFQ0socGFzX2lzX2FsaWduZWQocmVpbnRlcnByZXRfY2FzdDx1aW50cHRy
X3Q+KHB0ciksIHByb2dyYW0uYWxpZ25tZW50KCkpKTsKICAgICAgICAgICAgIENIRUNLKCFvYmpl
Y3RCeUtleS5jb3VudChwcm9ncmFtLmtleSgpKSk7CiAgICAgICAgICAgICBvYmplY3RCeUtleVtw
cm9ncmFtLmtleSgpXSA9IHB0cjsKQEAgLTI3MjAsNyArMjcxOSw3IEBAIHZvaWQgYWRkTGFyZ2VI
ZWFwVGVzdHMoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFsbG9j
YXRpb25Qcm9ncmFtOjpmcmVlKCJmaXJzdEhhbGYiKSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBBbGxvY2F0aW9uUHJvZ3JhbTo6ZnJlZSgic2Vjb25kSGFsZiIpKSk7
CiAgICAgQUREX1RFU1QodGVzdENvbXBsZXhMYXJnZUFsbG9jYXRpb24oSXNvbGF0ZWRDb21wbGV4
QWxsb2NhdG9yKDcsIDEpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEV4cGVjdGVkQnl0ZXM6OnVwcGVyQm91bmQoNDE3NzkyKSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBFeHBlY3RlZEJ5dGVzOjp1cHBlckJvdW5kKDYzODk3NiksCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWxsb2NhdGlvblByb2dyYW06
OmFsbG9jYXRlKCJib290IiwgNDA5NjAsIDEpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEFsbG9jYXRpb25Qcm9ncmFtOjpmcmVlKCJib290IiksCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWxsb2NhdGlvblByb2dyYW06OmFsbG9jYXRl
KCJiaWciLCA5MzYyLCA2NTUzNiksCkBAIC0zMjE4LDE1ICszMjE3LDcgQEAgdm9pZCBhZGRBbGxU
ZXN0cygpCiAgICAgICAgICAgICB9KTsKICAgICAgICAgCiAgICAgICAgIGFkZEFsbFRlc3RzSW1w
bCgpOwotCi0gICAgICAgIHsKLSAgICAgICAgICAgIERpc2FibGVFeHBsb3Npb24gRGlzYWJsZUV4
cGxvc2lvbjsKLSAgICAgICAgICAgIGFkZFNtYWxsSGVhcFRlc3RzKCk7Ci0gICAgICAgIH0KLSAg
ICAgICAgewotICAgICAgICAgICAgRm9yY2VFeHBsb3Npb24gZm9yY2VFeHBsb3Npb247Ci0gICAg
ICAgICAgICBhZGRTbWFsbEhlYXBUZXN0cygpOwotICAgICAgICB9CisgICAgICAgIGFkZFNtYWxs
SGVhcFRlc3RzKCk7CiAgICAgfQogfQogCkBAIC0zMjQ0LDcgKzMyMzUsNiBAQCB2b2lkIGFkZFRo
aW5neUFuZFV0aWxpdHlIZWFwQWxsb2NhdGlvblRlCiAKICAgICBGb3JjZUV4Y2x1c2l2ZXMgZm9y
Y2VFeGNsdXNpdmVzOwogICAgIEZvcmNlVExBcyBmb3JjZVRMQXM7Ci0gICAgRm9yY2VPbmVNYWdh
emluZSBmb3JjZU9uZU1hZ2F6aW5lOwogICAgIEVwb2NoSXNDb3VudGVyIGVwb2NoSXNDb3VudGVy
OwogCiAgICAgewo=
</data>

          </attachment>
      

    </bug>

</bugzilla>