<?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>207105</bug_id>
          
          <creation_ts>2020-02-02 17:52:07 -0800</creation_ts>
          <short_desc>Start splitting platform specific overrides of default enable behavior into their own files</short_desc>
          <delta_ts>2020-02-03 11:40:24 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>andersca</cc>
    
    <cc>annulen</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>dino</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>mitz</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1613841</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-02-02 17:52:07 -0800</bug_when>
    <thetext>Start splitting platform specific overrides of default enable behavior into their own files</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1613842</commentid>
    <comment_count>1</comment_count>
      <attachid>389484</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-02-02 17:57:42 -0800</bug_when>
    <thetext>Created attachment 389484
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1613843</commentid>
    <comment_count>2</comment_count>
      <attachid>389485</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-02-02 18:25:38 -0800</bug_when>
    <thetext>Created attachment 389485
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1613846</commentid>
    <comment_count>3</comment_count>
      <attachid>389487</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-02-02 18:33:51 -0800</bug_when>
    <thetext>Created attachment 389487
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1613854</commentid>
    <comment_count>4</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-02-02 19:17:30 -0800</bug_when>
    <thetext>Style checker fix in https://bugs.webkit.org/show_bug.cgi?id=207106.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1614057</commentid>
    <comment_count>5</comment_count>
      <attachid>389487</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-03 11:29:27 -0800</bug_when>
    <thetext>Comment on attachment 389487
Patch

Clearing flags on attachment: 389487

Committed r255577: &lt;https://trac.webkit.org/changeset/255577&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1614058</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-03 11:29:29 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1614063</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-02-03 11:40:24 -0800</bug_when>
    <thetext>&lt;rdar://problem/59118456&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>389484</attachid>
            <date>2020-02-02 17:57:42 -0800</date>
            <delta_ts>2020-02-02 18:25:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207105-20200202175741.patch</filename>
            <type>text/plain</type>
            <size>189433</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNTU1NTIpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDIwLTAyLTAyICBTYW0gV2VpbmlnICA8d2Vpbmln
QGFwcGxlLmNvbT4KKworICAgICAgICBTdGFydCBzcGxpdHRpbmcgcGxhdGZvcm0gc3BlY2lmaWMg
b3ZlcnJpZGVzIG9mIGRlZmF1bHQgZW5hYmxlIGJlaGF2aW9yIGludG8gdGhlaXIgb3duIGZpbGVz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDcxMDUK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTcGxpdHMg
b3V0IHBsYXRmb3JtIHNwZWNpZmljIG92ZXJyaWRlcyBvZiBkZWZhdWx0IGVuYWJsZSBiZWhhdmlv
ciBpbnRvIHNlcGFyYXRlIGZpbGVzLCAKKyAgICAgICAgc3RhcnRpbmcgd2l0aCBvbmUgZm9yIGFs
bCBvZiB0aGUgQ29jb2EgcmVsYXRlZCBwb3J0cywgb25lIGZvciBBcHBsZSdzIFdpbmRvd3MgcG9y
dCwgYW5kCisgICAgICAgIG9uZSBmb3IgdGhlIFdpbkNhcmlvIHBvcnQuCisgICAgICAgIAorICAg
ICAgICBUaGUgcnVsZSBpcyBub3cgdGhhdCBhbGwgRU5BQkxFXyogbWFjcm9zIHNob3VsZCBoYXZl
IGEgZGVmYXVsdCBkZWZpbmVkIGluIFBsYXRmb3JtRW5hYmxlLmgsCisgICAgICAgIGJ1dCBwbGF0
Zm9ybXMgYXJlIGFsbG93ZWQgdG8gb3ZlcnJpZGUgaXQgdmlhIHRoZWlyIFBsYXRmb3JtRW5hYmxl
Ki5oIGZpbGUuIEZvciBub3csIEkgbWFudWFsbHkKKyAgICAgICAgZW5zdXJlZCB0aGF0IGFsbCB0
aGUgZGVmaW5lcyBpbiBQbGF0Zm9ybUVuYWJsZUNvY29hLmgsIFBsYXRmb3JtRW5hYmxlV2luQXBw
bGUuaCBhbmQgUGxhdGZvcm1FbmFibGVXaW5DYWlyby5oCisgICAgICAgIGFsc28gaGFkIGRlZmF1
bHRzIGluIFBsYXRmb3JtRW5hYmxlLmgsIGJ1dCBnb2luZyBmb3J3YXJkIHRoaXMgbmVlZHMgYmUg
dmFsaWRhdGVkIGVpdGhlciB0aHJvdWdoCisgICAgICAgIHNvbWUgc29ydCBvZiBtYWNyby1iYXNl
ZCB2YWxpZGF0aW9uLCB0aHJvdWdoIHRoZSBzdHlsZSBjaGVja2VyIG9yIHNvbWV0aGluZyBlbHNl
LgorCisgICAgICAgICogV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
d3RmL0NNYWtlTGlzdHMudHh0OgorICAgICAgICAqIHd0Zi9QbGF0Zm9ybUVuYWJsZS5oOgorICAg
ICAgICAqIHd0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XVEYv
d3RmL1BsYXRmb3JtRW5hYmxlLmguCisgICAgICAgICogd3RmL1BsYXRmb3JtRW5hYmxlV2luQXBw
bGUuaDogQ29waWVkIGZyb20gU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGUuaC4KKyAgICAg
ICAgKiB3dGYvUGxhdGZvcm1FbmFibGVXaW5DYWlyby5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV1RG
L3d0Zi9QbGF0Zm9ybUVuYWJsZS5oLgorCiAyMDIwLTAxLTMxICBEb24gT2xtc3RlYWQgIDxkb24u
b2xtc3RlYWRAc29ueS5jb20+CiAKICAgICAgICAgW0NNYWtlXSBBZGQgX1BSSVZBVEVfTElCUkFS
SUVTIHRvIGZyYW1ld29yawpJbmRleDogU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCShyZXZpc2lvbiAyNTU1NTIpCisrKyBTb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC00NTAsNiArNDUwLDkgQEAKIAkJN0M0MjMw
NzMyM0NFMkQ4QjAwNkU1NEQwIC8qIFBsYXRmb3JtT1MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUGxhdGZvcm1PUy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3
QzQyMzA3NDIzQ0VCMTg3MDA2RTU0RDAgLyogUGxhdGZvcm1MZWdhY3kuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1MZWdhY3kuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJN0M5NjkyOTQxRjY2MzA2RTAwMjY3QTlFIC8qIEtleVZhbHVlUGFpci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBLZXlWYWx1ZVBhaXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0M5OENEQzcyM0U3QTlCODAwMTJGMjMyIC8qIFBsYXRmb3Jt
RW5hYmxlQ29jb2EuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1F
bmFibGVDb2NvYS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3Qzk4Q0RDODIzRTdB
RkM4MDAxMkYyMzIgLyogUGxhdGZvcm1FbmFibGVXaW5BcHBsZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybUVuYWJsZVdpbkFwcGxlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTdDOThDREM5MjNFN0FGQzgwMDEyRjIzMiAvKiBQbGF0Zm9ybUVuYWJs
ZVdpbkNhaXJvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtRW5h
YmxlV2luQ2Fpcm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NCQkEwNzMxOUJC
N0ZEQzAwQkJGMDI1IC8qIE9TT2JqZWN0UHRyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IE9TT2JqZWN0UHRyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDRDBE
NUE3MUQ1NTMyMkEwMDBDQzlFMSAvKiBWYXJpYW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFZhcmlhbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NENEMy
NkYxRTJDODJCOTAwOTI5NDcwIC8qIFN0cmluZ0NvbmNhdGVuYXRlTnVtYmVycy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHJpbmdDb25jYXRlbmF0ZU51bWJlcnMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExMzAsNiArMTEzMyw5IEBACiAJCQkJN0NFRjIz
RUIyM0QxMjU3OTAwRjhCOTA0IC8qIFBsYXRmb3JtQ2FsbGluZ0NvbnZlbnRpb25zLmggKi8sCiAJ
CQkJN0M0MjMwNzIyM0NFMkQ4QTAwNkU1NEQwIC8qIFBsYXRmb3JtQ1BVLmggKi8sCiAJCQkJN0M0
MjMwNzEyM0NFMkQ4QTAwNkU1NEQwIC8qIFBsYXRmb3JtRW5hYmxlLmggKi8sCisJCQkJN0M5OENE
QzcyM0U3QTlCODAwMTJGMjMyIC8qIFBsYXRmb3JtRW5hYmxlQ29jb2EuaCAqLywKKwkJCQk3Qzk4
Q0RDODIzRTdBRkM4MDAxMkYyMzIgLyogUGxhdGZvcm1FbmFibGVXaW5BcHBsZS5oICovLAorCQkJ
CTdDOThDREM5MjNFN0FGQzgwMDEyRjIzMiAvKiBQbGF0Zm9ybUVuYWJsZVdpbkNhaXJvLmggKi8s
CiAJCQkJN0MzQTQ1RDAyM0NGQTg4MzAwN0RFM0E2IC8qIFBsYXRmb3JtSGF2ZS5oICovLAogCQkJ
CTdDNDIzMDc0MjNDRUIxODcwMDZFNTREMCAvKiBQbGF0Zm9ybUxlZ2FjeS5oICovLAogCQkJCTdD
NDIzMDczMjNDRTJEOEIwMDZFNTREMCAvKiBQbGF0Zm9ybU9TLmggKi8sCkluZGV4OiBTb3VyY2Uv
V1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9DTWFr
ZUxpc3RzLnR4dAkocmV2aXNpb24gMjU1NTUyKQorKysgU291cmNlL1dURi93dGYvQ01ha2VMaXN0
cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTE3Myw2ICsxNzMsOSBAQCBzZXQoV1RGX1BVQkxJQ19I
RUFERVJTCiAgICAgUGxhdGZvcm1DYWxsaW5nQ29udmVudGlvbnMuaAogICAgIFBsYXRmb3JtQ1BV
LmgKICAgICBQbGF0Zm9ybUVuYWJsZS5oCisgICAgUGxhdGZvcm1FbmFibGVDb2NvYS5oCisgICAg
UGxhdGZvcm1FbmFibGVXaW5BcHBsZS5oCisgICAgUGxhdGZvcm1FbmFibGVXaW5DYWlyby5oCiAg
ICAgUGxhdGZvcm1IYXZlLmgKICAgICBQbGF0Zm9ybUxlZ2FjeS5oCiAgICAgUGxhdGZvcm1PUy5o
CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlLmgJKHJldmlzaW9uIDI1NTU1MikKKysrIFNvdXJj
ZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTY5LDMwOSArNjks
MTA3IEBACiAjZW5kaWYKICNlbmRpZgogCisKIC8qID09PT0gUGxhdGZvcm0gYWRkaXRpb25zOiBh
ZGRpdGlvbnMgdG8gUGxhdGZvcm1FbmFibGUuaCBmcm9tIG91dHNpZGUgdGhlIG1haW4gcmVwb3Np
dG9yeSA9PT09ICovCiAKICNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKSAmJiBfX2hhc19pbmNs
dWRlKDxXZWJLaXRBZGRpdGlvbnMvQWRkaXRpb25hbEZlYXR1cmVEZWZpbmVzLmg+KQogI2luY2x1
ZGUgPFdlYktpdEFkZGl0aW9ucy9BZGRpdGlvbmFsRmVhdHVyZURlZmluZXMuaD4KICNlbmRpZgog
Ci0vKiBGSVhNRTogTW92ZSBvdXQgdGhlIFBMQVRGT1JNIHNwZWNpZmljIHJ1bGVzIGludG8gcGxh
dGZvcm0gc3BlY2lmaWMgZmlsZXMuICovCi0KLS8qIC0tLS0tLS0tLSBBcHBsZSBpT1MgKGJ1dCBu
b3QgbWFjT1MpIHBvcnQgLS0tLS0tLS0tICovCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKIAot
I2lmICFkZWZpbmVkKEVOQUJMRV9BSVJQTEFZX1BJQ0tFUikKLSNpZiAhUExBVEZPUk0oTUFDQ0FU
QUxZU1QpCi0jZGVmaW5lIEVOQUJMRV9BSVJQTEFZX1BJQ0tFUiAxCi0jZW5kaWYKLSNlbmRpZgog
Ci0jaWYgIWRlZmluZWQoRU5BQkxFX0FQUExFX1BBWV9SRU1PVEVfVUkpCi0jaWYgIVBMQVRGT1JN
KEFQUExFVFYpICYmICFQTEFURk9STShNQUNDQVRBTFlTVCkgJiYgIVBMQVRGT1JNKFdBVENIT1Mp
Ci0jZGVmaW5lIEVOQUJMRV9BUFBMRV9QQVlfUkVNT1RFX1VJIDEKLSNlbmRpZgotI2VuZGlmCisv
KiA9PT09IFBsYXRmb3JtIHNwZWNpZmljIGRlZmF1bHRzID09PT0gKi8KIAotI2lmICFkZWZpbmVk
KEVOQUJMRV9DT05URU5UX0VYVEVOU0lPTlMpCi0jZGVmaW5lIEVOQUJMRV9DT05URU5UX0VYVEVO
U0lPTlMgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfQ09OVEVYVF9NRU5VUykKLSNk
ZWZpbmUgRU5BQkxFX0NPTlRFWFRfTUVOVVMgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFC
TEVfQ09OVEVYVF9NRU5VX0VWRU5UKQotI2lmICFQTEFURk9STShNQUNDQVRBTFlTVCkKLSNkZWZp
bmUgRU5BQkxFX0NPTlRFWFRfTUVOVV9FVkVOVCAwCi0jZW5kaWYKLSNlbmRpZgotCi0jaWYgIWRl
ZmluZWQoRU5BQkxFX0NVU1RPTV9DVVJTT1JfU1VQUE9SVCkKLSNkZWZpbmUgRU5BQkxFX0NVU1RP
TV9DVVJTT1JfU1VQUE9SVCAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9EUkFHX1NV
UFBPUlQpCi0jZGVmaW5lIEVOQUJMRV9EUkFHX1NVUFBPUlQgMAotI2VuZGlmCi0KLSNpZiAhZGVm
aW5lZChFTkFCTEVfR0VPTE9DQVRJT04pCi0jZGVmaW5lIEVOQUJMRV9HRU9MT0NBVElPTiAxCi0j
ZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9JTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENI
RVJTKQotI2RlZmluZSBFTkFCTEVfSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUyAxCisv
KiAtLS0tLS0tLS0gQXBwbGUgQ29jb2EgcGxhdGZvcm1zIC0tLS0tLS0tLSAqLworI2lmIFBMQVRG
T1JNKENPQ09BKQorI2luY2x1ZGUgPHd0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmg+CiAjZW5kaWYK
IAotI2lmICFkZWZpbmVkKEVOQUJMRV9JTlNQRUNUT1JfVEVMRU1FVFJZKQotI2RlZmluZSBFTkFC
TEVfSU5TUEVDVE9SX1RFTEVNRVRSWSAwCisvKiAtLS0tLS0tLS0gQXBwbGUgV2luZG93cyBwb3J0
IC0tLS0tLS0tLSAqLworI2lmIFBMQVRGT1JNKFdJTikgJiYgIVBMQVRGT1JNKFdJTl9DQUlSTykK
KyNpbmNsdWRlIDx3dGYvUGxhdGZvcm1FbmFibGVXaW5BcHBsZS5oPgogI2VuZGlmCiAKLSNpZiAh
ZGVmaW5lZChFTkFCTEVfTEVUVEVSUFJFU1MpCi0jZGVmaW5lIEVOQUJMRV9MRVRURVJQUkVTUyAx
CisvKiAtLS0tLS0tLS0gV2luZG93cyBDQUlSTyBwb3J0IC0tLS0tLS0tLSAqLworI2lmIFBMQVRG
T1JNKFdJTl9DQUlSTykKKyNpbmNsdWRlIDx3dGYvUGxhdGZvcm1FbmFibGVXaW5DYWlyby5oPgog
I2VuZGlmCiAKLSNpZiAhZGVmaW5lZChFTkFCTEVfQVVUT0NPUlJFQ1QpCi0jZGVmaW5lIEVOQUJM
RV9BVVRPQ09SUkVDVCAxCi0jZW5kaWYKIAotI2lmICFkZWZpbmVkKEVOQUJMRV9BVVRPQ0FQSVRB
TElaRSkKLSNkZWZpbmUgRU5BQkxFX0FVVE9DQVBJVEFMSVpFIDEKLSNlbmRpZgogCi0jaWYgIWRl
ZmluZWQoRU5BQkxFX0lPU19HRVNUVVJFX0VWRU5UUykgJiYgVVNFKEFQUExFX0lOVEVSTkFMX1NE
SykKLSNkZWZpbmUgRU5BQkxFX0lPU19HRVNUVVJFX0VWRU5UUyAxCi0jZW5kaWYKKy8qIC0tLS0t
LS0tLSAgRU5BQkxFIG1hY3JvIGRlZmF1bHRzIC0tLS0tLS0tLSAqLwogCi0jaWYgIWRlZmluZWQo
RU5BQkxFX1RFWFRfQVVUT1NJWklORykKLSNkZWZpbmUgRU5BQkxFX1RFWFRfQVVUT1NJWklORyAx
Ci0jZW5kaWYKKy8qIERvIG5vdCB1c2UgUExBVEZPUk0oKSB0ZXN0cyBpbiB0aGlzIHNlY3Rpb24g
ISAqLwogCi0jaWYgIWRlZmluZWQoRU5BQkxFX0lPU19UT1VDSF9FVkVOVFMpICYmIFVTRShBUFBM
RV9JTlRFUk5BTF9TREspCi0jZGVmaW5lIEVOQUJMRV9JT1NfVE9VQ0hfRVZFTlRTIDEKKyNpZiAh
ZGVmaW5lZChFTkFCTEVfV0VCUFJPQ0VTU19OU1JVTkxPT1ApCisjZGVmaW5lIEVOQUJMRV9XRUJQ
Uk9DRVNTX05TUlVOTE9PUCAwCiAjZW5kaWYKIAotI2lmICFkZWZpbmVkKEVOQUJMRV9NRVRFUl9F
TEVNRU5UKQotI2RlZmluZSBFTkFCTEVfTUVURVJfRUxFTUVOVCAwCisjaWYgIWRlZmluZWQoRU5B
QkxFX1dFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQorI2RlZmluZSBFTkFCTEVfV0VC
UFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcgMAogI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChF
TkFCTEVfTkVUU0NBUEVfUExVR0lOX0FQSSkKLSNkZWZpbmUgRU5BQkxFX05FVFNDQVBFX1BMVUdJ
Tl9BUEkgMAorI2lmICFkZWZpbmVkKEVOQUJMRV9NQUNfR0VTVFVSRV9FVkVOVFMpCisjZGVmaW5l
IEVOQUJMRV9NQUNfR0VTVFVSRV9FVkVOVFMgMAogI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChFTkFC
TEVfT1JJRU5UQVRJT05fRVZFTlRTKQotI2RlZmluZSBFTkFCTEVfT1JJRU5UQVRJT05fRVZFTlRT
IDEKKyNpZiAhZGVmaW5lZChFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkpCisjZGVmaW5lIEVOQUJM
RV9DVVJTT1JfVklTSUJJTElUWSAwCiAjZW5kaWYKIAotI2lmICFkZWZpbmVkKEVOQUJMRV9QT0lO
VEVSX0xPQ0spCi0jZGVmaW5lIEVOQUJMRV9QT0lOVEVSX0xPQ0sgMAorI2lmICFkZWZpbmVkKEVO
QUJMRV9BSVJQTEFZX1BJQ0tFUikKKyNkZWZpbmUgRU5BQkxFX0FJUlBMQVlfUElDS0VSIDAKICNl
bmRpZgogCi0jaWYgIWRlZmluZWQoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpCi0jZGVmaW5lIEVO
QUJMRV9SRU1PVEVfSU5TUEVDVE9SIDEKKyNpZiAhZGVmaW5lZChFTkFCTEVfQVBQTEVfUEFZX1JF
TU9URV9VSSkKKyNkZWZpbmUgRU5BQkxFX0FQUExFX1BBWV9SRU1PVEVfVUkgMAogI2VuZGlmCiAK
LSNpZiAhZGVmaW5lZChFTkFCTEVfVEVYVF9DQVJFVCkKLSNkZWZpbmUgRU5BQkxFX1RFWFRfQ0FS
RVQgMAorI2lmICFkZWZpbmVkKEVOQUJMRV9BVVRPQ09SUkVDVCkKKyNkZWZpbmUgRU5BQkxFX0FV
VE9DT1JSRUNUIDAKICNlbmRpZgogCi0jaWYgIWRlZmluZWQoRU5BQkxFX1RFWFRfU0VMRUNUSU9O
KQotI2RlZmluZSBFTkFCTEVfVEVYVF9TRUxFQ1RJT04gMAorI2lmICFkZWZpbmVkKEVOQUJMRV9B
VVRPQ0FQSVRBTElaRSkKKyNkZWZpbmUgRU5BQkxFX0FVVE9DQVBJVEFMSVpFIDAKICNlbmRpZgog
Ci0vKiBGSVhNRTogUmVtb3ZlIHRoZSBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKSBjb25qdW5jdCBv
bmNlIHdlIHN1cHBvcnQgdG91Y2ggZXZlbnRzIHdoZW4gYnVpbGRpbmcgYWdhaW5zdAotdGhlIHB1
YmxpYyBpT1MgU0RLLiBTZWUgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE3OTE2Nz4uICovCi0jaWYg
IWRlZmluZWQoRU5BQkxFX1RPVUNIX0VWRU5UUykgJiYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykK
LSNkZWZpbmUgRU5BQkxFX1RPVUNIX0VWRU5UUyAxCisjaWYgIWRlZmluZWQoRU5BQkxFX1RFWFRf
QVVUT1NJWklORykKKyNkZWZpbmUgRU5BQkxFX1RFWFRfQVVUT1NJWklORyAwCiAjZW5kaWYKIAot
I2lmICFkZWZpbmVkKEVOQUJMRV9XRUJfQVJDSElWRSkKLSNkZWZpbmUgRU5BQkxFX1dFQl9BUkNI
SVZFIDEKKyNpZiAhZGVmaW5lZChFTkFCTEVfSU9TX0dFU1RVUkVfRVZFTlRTKQorI2RlZmluZSBF
TkFCTEVfSU9TX0dFU1RVUkVfRVZFTlRTIDAKICNlbmRpZgogCi0jaWYgIWRlZmluZWQoRU5BQkxF
X1dFQkdMKQotI2RlZmluZSBFTkFCTEVfV0VCR0wgMQorI2lmICFkZWZpbmVkKEVOQUJMRV9JT1Nf
VE9VQ0hfRVZFTlRTKQorI2RlZmluZSBFTkFCTEVfSU9TX1RPVUNIX0VWRU5UUyAwCiAjZW5kaWYK
IAogI2lmICFkZWZpbmVkKEVOQUJMRV9QUklNQVJZX1NOQVBTSE9UVEVEX1BMVUdJTl9IRVVSSVNU
SUMpCi0jZGVmaW5lIEVOQUJMRV9QUklNQVJZX1NOQVBTSE9UVEVEX1BMVUdJTl9IRVVSSVNUSUMg
MQorI2RlZmluZSBFTkFCTEVfUFJJTUFSWV9TTkFQU0hPVFRFRF9QTFVHSU5fSEVVUklTVElDIDAK
ICNlbmRpZgogCi0jaWYgIWRlZmluZWQoRU5BQkxFX0RPV05MT0FEX0FUVFJJQlVURSkKLSNkZWZp
bmUgRU5BQkxFX0RPV05MT0FEX0FUVFJJQlVURSAxCisjaWYgIWRlZmluZWQoRU5BQkxFX1dLUERG
VklFVykKKyNkZWZpbmUgRU5BQkxFX1dLUERGVklFVyAwCiAjZW5kaWYKIAotI2lmICFkZWZpbmVk
KEVOQUJMRV9XS1BERlZJRVcpICYmIFBMQVRGT1JNKElPUykKLSNkZWZpbmUgRU5BQkxFX1dLUERG
VklFVyAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9NRURJQV9TT1VSQ0UpCi0jZGVm
aW5lIEVOQUJMRV9NRURJQV9TT1VSQ0UgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVf
UFJFVklFV19DT05WRVJURVIpICYmIFBMQVRGT1JNKElPUykKLSNkZWZpbmUgRU5BQkxFX1BSRVZJ
RVdfQ09OVkVSVEVSIDEKKyNpZiAhZGVmaW5lZChFTkFCTEVfUFJFVklFV19DT05WRVJURVIpCisj
ZGVmaW5lIEVOQUJMRV9QUkVWSUVXX0NPTlZFUlRFUiAwCiAjZW5kaWYKIAogI2lmICFkZWZpbmVk
KEVOQUJMRV9NRVRBX1ZJRVdQT1JUKQotI2RlZmluZSBFTkFCTEVfTUVUQV9WSUVXUE9SVCAxCisj
ZGVmaW5lIEVOQUJMRV9NRVRBX1ZJRVdQT1JUIDAKICNlbmRpZgogCi0jZW5kaWYgLyogUExBVEZP
Uk0oSU9TX0ZBTUlMWSkgKi8KLQotLyogLS0tLS0tLS0tIEFwcGxlIHdhdGNoT1MgcG9ydCAtLS0t
LS0tLS0gKi8KLSNpZiBQTEFURk9STShXQVRDSE9TKQotCi0jZW5kaWYgLyogUExBVEZPUk0oV0FU
Q0hPUykgKi8KLQotLyogLS0tLS0tLS0tIEFwcGxlIG1hY09TIHBvcnQgKG5vdCBpT1MpIC0tLS0t
LS0tLSAqLwotI2lmIFBMQVRGT1JNKE1BQykKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9DT05URU5U
X0VYVEVOU0lPTlMpCi0jZGVmaW5lIEVOQUJMRV9DT05URU5UX0VYVEVOU0lPTlMgMQotI2VuZGlm
Ci0KLSNpZiAhZGVmaW5lZChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpCi0jZGVmaW5lIEVOQUJMRV9G
VUxMU0NSRUVOX0FQSSAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9SRU1PVEVfSU5T
UEVDVE9SKQotI2RlZmluZSBFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUiAxCi0jZW5kaWYKLQotI2lm
ICFkZWZpbmVkKEVOQUJMRV9JTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENIRVJTKQotI2RlZmlu
ZSBFTkFCTEVfSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUyAxCi0jZW5kaWYKLQotI2lm
ICFkZWZpbmVkKEVOQUJMRV9JTlNQRUNUT1JfVEVMRU1FVFJZKQotI2RlZmluZSBFTkFCTEVfSU5T
UEVDVE9SX1RFTEVNRVRSWSAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9TTU9PVEhf
U0NST0xMSU5HKQotI2RlZmluZSBFTkFCTEVfU01PT1RIX1NDUk9MTElORyAxCi0jZW5kaWYKLQot
I2lmIEVOQUJMRShWSURFTykKLSNpZiAhZGVmaW5lZChFTkFCTEVfVklERU9fVFJBQ0spCi0jZGVm
aW5lIEVOQUJMRV9WSURFT19UUkFDSyAxCi0jZW5kaWYKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQo
RU5BQkxFX1dFQl9BUkNISVZFKQotI2RlZmluZSBFTkFCTEVfV0VCX0FSQ0hJVkUgMQotI2VuZGlm
Ci0KLSNpZiAhZGVmaW5lZChFTkFCTEVfV0VCX0FVRElPKQotI2RlZmluZSBFTkFCTEVfV0VCX0FV
RElPIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKQot
I2RlZmluZSBFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5l
ZChFTkFCTEVfUFJJTUFSWV9TTkFQU0hPVFRFRF9QTFVHSU5fSEVVUklTVElDKQotI2RlZmluZSBF
TkFCTEVfUFJJTUFSWV9TTkFQU0hPVFRFRF9QTFVHSU5fSEVVUklTVElDIDEKLSNlbmRpZgotCi0j
aWYgIWRlZmluZWQoRU5BQkxFX01BQ19HRVNUVVJFX0VWRU5UUykgJiYgVVNFKEFQUExFX0lOVEVS
TkFMX1NESykKLSNkZWZpbmUgRU5BQkxFX01BQ19HRVNUVVJFX0VWRU5UUyAxCi0jZW5kaWYKLQot
I2lmICFkZWZpbmVkKEVOQUJMRV9XRUJQUk9DRVNTX05TUlVOTE9PUCkKLSNkZWZpbmUgRU5BQkxF
X1dFQlBST0NFU1NfTlNSVU5MT09QIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTAxNDAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJQUk9DRVNTX1dJTkRPV1NF
UlZFUl9CTE9DS0lORykKLSNkZWZpbmUgRU5BQkxFX1dFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JM
T0NLSU5HIEVOQUJMRV9XRUJQUk9DRVNTX05TUlVOTE9PUAotI2VuZGlmCi0KLSNpZiAhZGVmaW5l
ZChFTkFCTEVfTUVESUFfU09VUkNFKQotI2RlZmluZSBFTkFCTEVfTUVESUFfU09VUkNFIDEKLSNl
bmRpZgotCi0jZW5kaWYgLyogUExBVEZPUk0oTUFDKSAqLwotCi0vKiAtLS0tLS0tLS0gQXBwbGUg
Q29jb2EgcGxhdGZvcm1zIC0tLS0tLS0tLSAqLwotCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0KLSNp
ZiAhZGVmaW5lZChFTkFCTEVfTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkKLSNpZiBQTEFURk9STShN
QUNDQVRBTFlTVCkKLSNkZWZpbmUgRU5BQkxFX0xFR0FDWV9FTkNSWVBURURfTUVESUEgMAotI2Vs
c2UKLSNkZWZpbmUgRU5BQkxFX0xFR0FDWV9FTkNSWVBURURfTUVESUEgMQotI2VuZGlmCi0jZW5k
aWYKIAogI2lmICFkZWZpbmVkKEVOQUJMRV9GSUxFX1JFUExBQ0VNRU5UKQotI2RlZmluZSBFTkFC
TEVfRklMRV9SRVBMQUNFTUVOVCAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9QQVlN
RU5UX1JFUVVFU1QpCi0jZGVmaW5lIEVOQUJMRV9QQVlNRU5UX1JFUVVFU1QgMQotI2VuZGlmCi0K
LSNpZiAhZGVmaW5lZChFTkFCTEVfQVNZTkNfU0NST0xMSU5HKQotI2RlZmluZSBFTkFCTEVfQVNZ
TkNfU0NST0xMSU5HIDEKKyNkZWZpbmUgRU5BQkxFX0ZJTEVfUkVQTEFDRU1FTlQgMAogI2VuZGlm
CiAKICNpZiAhZGVmaW5lZChFTkFCTEVfVUlfU0lERV9DT01QT1NJVElORykKLSNkZWZpbmUgRU5B
QkxFX1VJX1NJREVfQ09NUE9TSVRJTkcgMQotI2VuZGlmCi0KLSNlbmRpZiAvKiBQTEFURk9STShD
T0NPQSkgKi8KLQotI2lmICFQTEFURk9STShDT0NPQSkKLQotI2lmICFkZWZpbmVkKEpTQ19PQkpD
X0FQSV9FTkFCTEVEKQotI2RlZmluZSBKU0NfT0JKQ19BUElfRU5BQkxFRCAwCisjZGVmaW5lIEVO
QUJMRV9VSV9TSURFX0NPTVBPU0lUSU5HIDAKICNlbmRpZgogCi0jZW5kaWYgLyogIVBMQVRGT1JN
KENPQ09BKSAqLwotCi0KLS8qIC0tLS0tLS0tLSBBcHBsZSBXaW5kb3dzIHBvcnQgLS0tLS0tLS0t
ICovCi0jaWYgUExBVEZPUk0oV0lOKSAmJiAhUExBVEZPUk0oV0lOX0NBSVJPKQotCi0jaWYgIWRl
ZmluZWQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKQotI2RlZmluZSBFTkFCTEVfRlVMTFNDUkVFTl9B
UEkgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfV0VCX0FSQ0hJVkUpCi0jZGVmaW5l
IEVOQUJMRV9XRUJfQVJDSElWRSAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJH
TCkKLSNkZWZpbmUgRU5BQkxFX1dFQkdMIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxF
X0dFT0xPQ0FUSU9OKQotI2RlZmluZSBFTkFCTEVfR0VPTE9DQVRJT04gMQotI2VuZGlmCi0KLSNl
bmRpZiAvKiBQTEFURk9STShXSU4pICYmICFQTEFURk9STShXSU5fQ0FJUk8pICovCi0KLS8qIC0t
LS0tLS0tLSBXaW5kb3dzIENBSVJPIHBvcnQgLS0tLS0tLS0tICovCi0vKiBQTEFURk9STShXSU5f
Q0FJUk8pIGlzIGEgc3BlY2lhbGl6YXRpb24gb2YgUExBVEZPUk0oV0lOKS4gKi8KLS8qIFBMQVRG
T1JNKFdJTikgaXMgYWx3YXlzIGVuYWJsZWQgd2hlbiBQTEFURk9STShXSU5fQ0FJUk8pIGlzIGVu
YWJsZWQuICovCi0jaWYgUExBVEZPUk0oV0lOX0NBSVJPKQotCi0jaWYgIWRlZmluZWQoRU5BQkxF
X1dFQl9BUkNISVZFKQotI2RlZmluZSBFTkFCTEVfV0VCX0FSQ0hJVkUgMQotI2VuZGlmCi0KLSNp
ZiAhZGVmaW5lZChFTkFCTEVfV0VCR0wpCi0jZGVmaW5lIEVOQUJMRV9XRUJHTCAxCi0jZW5kaWYK
LQotI2lmICFkZWZpbmVkKEVOQUJMRV9HRU9MT0NBVElPTikKLSNkZWZpbmUgRU5BQkxFX0dFT0xP
Q0FUSU9OIDEKLSNlbmRpZgotCi0jZW5kaWYgLyogUExBVEZPUk0oV0lOX0NBSVJPKSAqLwotCi0v
KiBFTkFCTEUgbWFjcm8gZGVmYXVsdHMgZm9yIFdlYkNvcmUgKi8KLS8qIERvIG5vdCB1c2UgUExB
VEZPUk0oKSB0ZXN0cyBpbiB0aGlzIHNlY3Rpb24gISAqLwotCiAjaWYgIWRlZmluZWQoRU5BQkxF
XzNEX1RSQU5TRk9STVMpCiAjZGVmaW5lIEVOQUJMRV8zRF9UUkFOU0ZPUk1TIDAKICNlbmRpZgpA
QCAtNzE5LDggKzUxNyw1MyBAQCB0aGUgcHVibGljIGlPUyBTREsuIFNlZSA8aHR0cHM6Ly93ZWJr
aXQuCiAjZGVmaW5lIEVOQUJMRV9TRVJWSUNFX1dPUktFUiAxCiAjZW5kaWYKIAorI2lmICFkZWZp
bmVkKEVOQUJMRV9NT05PU1BBQ0VfRk9OVF9FWENFUFRJT04pCisjZGVmaW5lIEVOQUJMRV9NT05P
U1BBQ0VfRk9OVF9FWENFUFRJT04gMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfRlVM
TF9LRVlCT0FSRF9BQ0NFU1MpCisjZGVmaW5lIEVOQUJMRV9GVUxMX0tFWUJPQVJEX0FDQ0VTUyAw
CisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9QTEFURk9STV9EUklWRU5fVEVYVF9DSEVD
S0lORykKKyNkZWZpbmUgRU5BQkxFX1BMQVRGT1JNX0RSSVZFTl9URVhUX0NIRUNLSU5HIDAKKyNl
bmRpZgogCi0vKiBKSVQgRmVhdHVyZXMgKi8KKyNpZiAhZGVmaW5lZChFTkFCTEVfV0VCX1BMQVlC
QUNLX0NPTlRST0xTX01BTkFHRVIpCisjZGVmaW5lIEVOQUJMRV9XRUJfUExBWUJBQ0tfQ09OVFJP
TFNfTUFOQUdFUiAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9SRVNPVVJDRV9VU0FH
RSkKKyNkZWZpbmUgRU5BQkxFX1JFU09VUkNFX1VTQUdFIDAKKyNlbmRpZgorCisjaWYgIWRlZmlu
ZWQoRU5BQkxFX1NFQ19JVEVNX1NISU0pCisjZGVmaW5lIEVOQUJMRV9TRUNfSVRFTV9TSElNIDAK
KyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0RBVEFfREVURUNUSU9OKQorI2RlZmluZSBF
TkFCTEVfREFUQV9ERVRFQ1RJT04gMAorI2VuZGlmCisKKy8qCisgKiBFbmFibGUgdGhpcyB0byBw
dXQgZWFjaCBJc29IZWFwIGFuZCBvdGhlciBhbGxvY2F0aW9uIGNhdGVnb3JpZXMgaW50byB0aGVp
ciBvd24gbWFsbG9jIGhlYXBzLCBzbyB0aGF0IHRvb2xzIGxpa2Ugdm1tYXAgY2FuIHNob3cgaG93
IGJpZyBlYWNoIGhlYXAgaXMuCisgKiBUdXJuIEJFTkFCTEVfTUFMTE9DX0hFQVBfQlJFQUtET1dO
IG9uIGluIGJtYWxsb2MgdG9nZXRoZXIgd2hlbiB1c2luZyB0aGlzLgorICovCisjaWYgIWRlZmlu
ZWQoRU5BQkxFX01BTExPQ19IRUFQX0JSRUFLRE9XTikKKyNkZWZpbmUgRU5BQkxFX01BTExPQ19I
RUFQX0JSRUFLRE9XTiAwCisjZW5kaWYKKworCisKKworLyogRklYTUU6IFRoaXMgc2VjdGlvbiBv
ZiB0aGUgZmlsZSBoYXMgbm90IGJlZW4gY2xlYW5lZCB1cCB5ZXQgYW5kIG5lZWRzIG1ham9yIHdv
cmsuICovCisKKy8qIEZJWE1FOiBKU0NfT0JKQ19BUElfRU5BQkxFRCBkb2VzIG5vdCBtYXRjaCB0
aGUgbm9ybWFsIEVOQUJMRSBuYW1pbmcgY29udmVudGlvbi4gKi8KKyNpZiAhUExBVEZPUk0oQ09D
T0EpCisjaWYgIWRlZmluZWQoSlNDX09CSkNfQVBJX0VOQUJMRUQpCisjZGVmaW5lIEpTQ19PQkpD
X0FQSV9FTkFCTEVEIDAKKyNlbmRpZgorI2VuZGlmCiAKIC8qIFRoZSBKSVQgaXMgZW5hYmxlZCBi
eSBkZWZhdWx0IG9uIGFsbCB4ODYtNjQgJiBBUk02NCBwbGF0Zm9ybXMuICovCiAjaWYgIWRlZmlu
ZWQoRU5BQkxFX0pJVCkgJiYgKENQVShYODZfNjQpIHx8IENQVShBUk02NCkpICYmICFDUFUoQVBQ
TEVfQVJNVjdLKQpAQCAtOTQyLDEwICs3ODUsNiBAQCB0aGUgcHVibGljIGlPUyBTREsuIFNlZSA8
aHR0cHM6Ly93ZWJraXQuCiAjZGVmaW5lIEVOQUJMRV9DU1NfU0VMRUNUT1JfSklUIDEKICNlbmRp
ZgogCi0jaWYgUExBVEZPUk0oQ09DT0EpICYmICFQTEFURk9STShXQVRDSE9TKSAmJiAhUExBVEZP
Uk0oQVBQTEVUVikgJiYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQotI2RlZmluZSBFTkFCTEVfREFU
QV9ERVRFQ1RJT04gMQotI2VuZGlmCi0KICNpZiBDUFUoQVJNX1RIVU1CMikgfHwgQ1BVKEFSTTY0
KQogI2RlZmluZSBFTkFCTEVfQlJBTkNIX0NPTVBBQ1RJT04gMQogI2VuZGlmCkBAIC05NzAsMTAg
KzgwOSw2IEBAIHRoZSBwdWJsaWMgaU9TIFNESy4gU2VlIDxodHRwczovL3dlYmtpdC4KICNkZWZp
bmUgRU5BQkxFX1RSRUVfREVCVUdHSU5HIDEKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oQ09DT0Ep
Ci0jZGVmaW5lIEVOQUJMRV9SRVNPVVJDRV9VU0FHRSAxCi0jZW5kaWYKLQogI2lmICFkZWZpbmVk
KEVOQUJMRV9PUEVOVFlQRV9WRVJUSUNBTCkgJiYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShX
UEUpCiAjZGVmaW5lIEVOQUJMRV9PUEVOVFlQRV9WRVJUSUNBTCAxCiAjZW5kaWYKQEAgLTk4Miw0
MyArODE3LDE1IEBAIHRoZSBwdWJsaWMgaU9TIFNESy4gU2VlIDxodHRwczovL3dlYmtpdC4KICNk
ZWZpbmUgRU5BQkxFX09QRU5UWVBFX01BVEggMQogI2VuZGlmCiAKLS8qCi0gKiBFbmFibGUgdGhp
cyB0byBwdXQgZWFjaCBJc29IZWFwIGFuZCBvdGhlciBhbGxvY2F0aW9uIGNhdGVnb3JpZXMgaW50
byB0aGVpciBvd24gbWFsbG9jIGhlYXBzLCBzbyB0aGF0IHRvb2xzIGxpa2Ugdm1tYXAgY2FuIHNo
b3cgaG93IGJpZyBlYWNoIGhlYXAgaXMuCi0gKiBUdXJuIEJFTkFCTEVfTUFMTE9DX0hFQVBfQlJF
QUtET1dOIG9uIGluIGJtYWxsb2MgdG9nZXRoZXIgd2hlbiB1c2luZyB0aGlzLgotICovCi0jaWYg
IWRlZmluZWQoRU5BQkxFX01BTExPQ19IRUFQX0JSRUFLRE9XTikKLSNkZWZpbmUgRU5BQkxFX01B
TExPQ19IRUFQX0JSRUFLRE9XTiAwCi0jZW5kaWYKIAogLyogRGlzYWJsZSBTaGFyZWRBcnJheUJ1
ZmZlcnMgdW50aWwgU3BlY3RyZSBzZWN1cml0eSBjb25jZXJucyBhcmUgbWl0aWdhdGVkLiAqLwog
I2RlZmluZSBFTkFCTEVfU0hBUkVEX0FSUkFZX0JVRkZFUiAwCiAKLSNpZiBQTEFURk9STShNQUMp
Ci0jZGVmaW5lIEVOQUJMRV9XRUJfUExBWUJBQ0tfQ09OVFJPTFNfTUFOQUdFUiAxCi0jZW5kaWYK
LQotI2lmIFBMQVRGT1JNKENPQ09BKQotLyogRklYTUU6IFRoaXMgaXMgYSBVU0Ugc3R5bGUgbWFj
cm8sIGFzIGl0IHRyaWdnZXJzIHRoZSB1c2Ugb2YgQ0ZVUkxDb25uZWN0aW9uIGZyYW1ld29yayBz
dHVicy4gKi8KLS8qIEZJWE1FOiBJcyB0aGlzIHN0aWxsIG5lY2Vzc2FyeT8gQ0ZVUkxDb25uZWN0
aW9uIGlzbid0IHVzZWQgb24gQ29jb2EgcGxhdGZvcm1zIGFueSBtb3JlLiAqLwotI2RlZmluZSBF
TkFCTEVfU0VDX0lURU1fU0hJTSAxCi0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKE1BQykKLSNkZWZp
bmUgRU5BQkxFX0ZVTExfS0VZQk9BUkRfQUNDRVNTIDEKLSNlbmRpZgogCiAjaWYgKChQTEFURk9S
TShDT0NPQSkgfHwgUExBVEZPUk0oUExBWVNUQVRJT04pIHx8IFBMQVRGT1JNKFdQRSkpICYmIEVO
QUJMRShBU1lOQ19TQ1JPTExJTkcpKSB8fCBQTEFURk9STShHVEspCiAjZGVmaW5lIEVOQUJMRV9L
SU5FVElDX1NDUk9MTElORyAxCiAjZW5kaWYKIAotI2lmICFkZWZpbmVkKEVOQUJMRV9NT05PU1BB
Q0VfRk9OVF9FWENFUFRJT04pICYmICgoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEIDwgMTAxNTAwKSB8fCBQTEFURk9STShXQVRDSE9TKSB8fCBQTEFURk9S
TShBUFBMRVRWKSkKLSNkZWZpbmUgRU5BQkxFX01PTk9TUEFDRV9GT05UX0VYQ0VQVElPTiAxCi0j
ZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9QTEFURk9STV9EUklWRU5fVEVYVF9DSEVDS0lO
RykgJiYgUExBVEZPUk0oTUFDQ0FUQUxZU1QpCi0jZGVmaW5lIEVOQUJMRV9QTEFURk9STV9EUklW
RU5fVEVYVF9DSEVDS0lORyAxCi0jZW5kaWYKLQogLyogVGhpcyBmZWF0dXJlIHdvcmtzIGJ5IGVt
YmVkZGluZyB0aGUgT3Bjb2RlSUQgaW4gdGhlIDMyIGJpdCBqdXN0IGJlZm9yZSB0aGUgZ2VuZXJh
dGVkIExMaW50IGNvZGUKICAgIHRoYXQgZXhlY3V0ZXMgZWFjaCBvcGNvZGUuIEl0IGNhbm5vdCBi
ZSBzdXBwb3J0ZWQgYnkgdGhlIENMb29wIHNpbmNlIHRoZXJlJ3Mgbm8gd2F5IHRvIGVtYmVkIHRo
ZQogICAgT3Bjb2RlSUQgd29yZCBpbiB0aGUgQ0xvb3AncyBzd2l0Y2ggc3RhdGVtZW50IGNhc2Vz
LiBJdCBpcyBhbHNvIGN1cnJlbnRseSBub3QgaW1wbGVtZW50ZWQgZm9yIE1TVkMuCkBAIC0xMDI4
LDYgKzgzNSw5IEBAIHRoZSBwdWJsaWMgaU9TIFNESy4gU2VlIDxodHRwczovL3dlYmtpdC4KICNl
bmRpZgogCiAKKworCisKIC8qIEFzc2VydHMsIGludmFyaWFudHMgZm9yIG1hY3JvIGRlZmluaXRp
b25zICovCiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spICYmICFFTkFCTEUoVklERU8pCkluZGV4
OiBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oCShyZXZpc2lvbiAyNTU1NTIpCShmcm9t
IFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlLmg6MjU1NTUyKQorKysgU291cmNlL1dURi93
dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTA1NSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNi0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNy0yMDA5IFRvcmNoIE1vYmlsZSwgSW5jLgor
ICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDExIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzIFNhbXN1bmcgRWxlY3Ry
b25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWZuZGVmIFdURl9QTEFURk9STV9HVUFS
RF9BR0FJTlNUX0lORElSRUNUX0lOQ0xVU0lPTgorI2Vycm9yICJQbGVhc2UgI2luY2x1ZGUgPHd0
Zi9QbGF0Zm9ybS5oPiBpbnN0ZWFkIG9mIHRoaXMgZmlsZSBkaXJlY3RseS4iCisjZW5kaWYKKwor
CisjZGVmaW5lIEVOQUJMRShXVEZfRkVBVFVSRSkgKGRlZmluZWQgRU5BQkxFXyMjV1RGX0ZFQVRV
UkUgJiYgRU5BQkxFXyMjV1RGX0ZFQVRVUkUpCisKKy8qIFVzZSB0aGlzIGZpbGUgdG8gbGlzdCBf
YWxsXyBFTkFCTEUoKSBtYWNyb3MuIERlZmluZSB0aGUgbWFjcm9zIHRvIGJlIG9uZSBvZiB0aGUg
Zm9sbG93aW5nIHZhbHVlczoKKyAqICAtICIwIiBkaXNhYmxlcyB0aGUgZmVhdHVyZSBieSBkZWZh
dWx0LiBUaGUgZmVhdHVyZSBjYW4gc3RpbGwgYmUgZW5hYmxlZCBmb3IgYSBzcGVjaWZpYyBwb3J0
IG9yIGVudmlyb25tZW50LgorICogIC0gIjEiIGVuYWJsZXMgdGhlIGZlYXR1cmUgYnkgZGVmYXVs
dC4gVGhlIGZlYXR1cmUgY2FuIHN0aWxsIGJlIGRpc2FibGVkIGZvciBhIHNwZWNpZmljIHBvcnQg
b3IgZW52aXJvbm1lbnQuCisgKgorICogVGhlIGZlYXR1cmUgZGVmYXVsdHMgaW4gdGhpcyBmaWxl
IGFyZSBvbmx5IHRha2VuIGludG8gYWNjb3VudCBpZiB0aGUgKHBvcnQgc3BlY2lmaWMpIGJ1aWxk
IHN5c3RlbQorICogaGFzIG5vdCBlbmFibGVkIG9yIGRpc2FibGVkIGEgcGFydGljdWxhciBmZWF0
dXJlLgorICoKKyAqIFVzZSB0aGlzIGZpbGUgdG8gZGVmaW5lIEVOQUJMRSgpIG1hY3JvcyBvbmx5
LiBEbyBub3QgdXNlIHRoaXMgZmlsZSB0byBkZWZpbmUgVVNFKCkgb3IgbWFjcm9zICEKKyAqCisg
KiBPbmx5IGRlZmluZSBhIG1hY3JvIGlmIGl0IHdhcyBub3QgZGVmaW5lZCBiZWZvcmUgLSBhbHdh
eXMgY2hlY2sgZm9yICFkZWZpbmVkIGZpcnN0LgorICoKKyAqIEtlZXAgdGhlIGZpbGUgc29ydGVk
IGJ5IHRoZSBuYW1lIG9mIHRoZSBkZWZpbmVzLiBBcyBhbiBleGNlcHRpb24geW91IGNhbiBjaGFu
Z2UgdGhlIG9yZGVyCisgKiB0byBhbGxvdyBpbnRlcmRlcGVuZGVuY2llcyBiZXR3ZWVuIHRoZSBk
ZWZhdWx0IHZhbHVlcy4KKyAqCisgKiBCZWxvdyBhcmUgYSBmZXcgcG90ZW50aWFsIGNvbW1hbmRz
IHRvIHRha2UgYWR2YW50YWdlIG9mIHRoaXMgZmlsZSBydW5uaW5nIGZyb20gdGhlIFNvdXJjZS9X
VEYgZGlyZWN0b3J5CisgKgorICogR2V0IHRoZSBsaXN0IG9mIGZlYXR1cmUgZGVmaW5lczogZ3Jl
cCAtbyAiRU5BQkxFX1woXHdcK1wpIiB3dGYvUGxhdGZvcm1FbmFibGUuaCB8IHNvcnQgfCB1bmlx
CisgKiBHZXQgdGhlIGxpc3Qgb2YgZmVhdHVyZXMgZW5hYmxlZCBieSBkZWZhdWx0IGZvciBhIFBM
QVRGT1JNKFhYWCk6IGdjYyAtRSAtZE0gLUkuIC1EV1RGX1BMQVRGT1JNX1hYWCAid3RmL1BsYXRm
b3JtLmgiIHwgZ3JlcCAiRU5BQkxFX1x3XCsgMSIgfCBjdXQgLWQnICcgLWYyIHwgc29ydAorICov
CisKKworLyogRklYTUU6IFRoaXMgc2hvdWxkIGJlIHJlbmFtZWQgdG8gRU5BQkxFX0FTU0VSVFMg
Zm9yIGNvbnNpc3RlbmN5IGFuZCBzbyBpdCBjYW4gYmUgdXNlZCBhcyBFTkFCTEUoQVNTRVJUUyku
ICovCisvKiBBU1NFUlRfRU5BQkxFRCBzaG91bGQgYmUgdHJ1ZSBpZiB3ZSB3YW50IHRoZSBjdXJy
ZW50IGNvbXBpbGF0aW9uIHVuaXQgdG8KKyAgIGRvIGRlYnVnIGFzc2VydGlvbiBjaGVja3MgdW5j
b25kaXRpb25hbGx5IChlLmcuIHRyZWF0IGEgZGVidWcgQVNTRVJUCisgICBsaWtlIGEgUkVMRUFT
RV9BU1NFUlQuCisqLworI2lmbmRlZiBBU1NFUlRfRU5BQkxFRAorI2lmZGVmIE5ERUJVRworI2Rl
ZmluZSBBU1NFUlRfRU5BQkxFRCAwCisjZWxzZQorI2RlZmluZSBBU1NFUlRfRU5BQkxFRCAxCisj
ZW5kaWYKKyNlbmRpZgorCisvKiA9PT09IFBsYXRmb3JtIGFkZGl0aW9uczogYWRkaXRpb25zIHRv
IFBsYXRmb3JtRW5hYmxlLmggZnJvbSBvdXRzaWRlIHRoZSBtYWluIHJlcG9zaXRvcnkgPT09PSAq
LworCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykgJiYgX19oYXNfaW5jbHVkZSg8V2ViS2l0
QWRkaXRpb25zL0FkZGl0aW9uYWxGZWF0dXJlRGVmaW5lcy5oPikKKyNpbmNsdWRlIDxXZWJLaXRB
ZGRpdGlvbnMvQWRkaXRpb25hbEZlYXR1cmVEZWZpbmVzLmg+CisjZW5kaWYKKworLyogRklYTUU6
IE1vdmUgb3V0IHRoZSBQTEFURk9STSBzcGVjaWZpYyBydWxlcyBpbnRvIHBsYXRmb3JtIHNwZWNp
ZmljIGZpbGVzLiAqLworCisvKiAtLS0tLS0tLS0gQXBwbGUgaU9TIChidXQgbm90IG1hY09TKSBw
b3J0IC0tLS0tLS0tLSAqLworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisKKyNpZiAhZGVmaW5l
ZChFTkFCTEVfQUlSUExBWV9QSUNLRVIpCisjaWYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQorI2Rl
ZmluZSBFTkFCTEVfQUlSUExBWV9QSUNLRVIgMQorI2VuZGlmCisjZW5kaWYKKworI2lmICFkZWZp
bmVkKEVOQUJMRV9BUFBMRV9QQVlfUkVNT1RFX1VJKQorI2lmICFQTEFURk9STShBUFBMRVRWKSAm
JiAhUExBVEZPUk0oTUFDQ0FUQUxZU1QpICYmICFQTEFURk9STShXQVRDSE9TKQorI2RlZmluZSBF
TkFCTEVfQVBQTEVfUEFZX1JFTU9URV9VSSAxCisjZW5kaWYKKyNlbmRpZgorCisjaWYgIWRlZmlu
ZWQoRU5BQkxFX0NPTlRFTlRfRVhURU5TSU9OUykKKyNkZWZpbmUgRU5BQkxFX0NPTlRFTlRfRVhU
RU5TSU9OUyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9DT05URVhUX01FTlVTKQor
I2RlZmluZSBFTkFCTEVfQ09OVEVYVF9NRU5VUyAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVO
QUJMRV9DT05URVhUX01FTlVfRVZFTlQpCisjaWYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQorI2Rl
ZmluZSBFTkFCTEVfQ09OVEVYVF9NRU5VX0VWRU5UIDAKKyNlbmRpZgorI2VuZGlmCisKKyNpZiAh
ZGVmaW5lZChFTkFCTEVfQ1VTVE9NX0NVUlNPUl9TVVBQT1JUKQorI2RlZmluZSBFTkFCTEVfQ1VT
VE9NX0NVUlNPUl9TVVBQT1JUIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0RSQUdf
U1VQUE9SVCkKKyNkZWZpbmUgRU5BQkxFX0RSQUdfU1VQUE9SVCAwCisjZW5kaWYKKworI2lmICFk
ZWZpbmVkKEVOQUJMRV9HRU9MT0NBVElPTikKKyNkZWZpbmUgRU5BQkxFX0dFT0xPQ0FUSU9OIDEK
KyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0lOU1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFU
Q0hFUlMpCisjZGVmaW5lIEVOQUJMRV9JTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENIRVJTIDEK
KyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0lOU1BFQ1RPUl9URUxFTUVUUlkpCisjZGVm
aW5lIEVOQUJMRV9JTlNQRUNUT1JfVEVMRU1FVFJZIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQo
RU5BQkxFX0xFVFRFUlBSRVNTKQorI2RlZmluZSBFTkFCTEVfTEVUVEVSUFJFU1MgMQorI2VuZGlm
CisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQVVUT0NPUlJFQ1QpCisjZGVmaW5lIEVOQUJMRV9BVVRP
Q09SUkVDVCAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9BVVRPQ0FQSVRBTElaRSkK
KyNkZWZpbmUgRU5BQkxFX0FVVE9DQVBJVEFMSVpFIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQo
RU5BQkxFX0lPU19HRVNUVVJFX0VWRU5UUykgJiYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyNk
ZWZpbmUgRU5BQkxFX0lPU19HRVNUVVJFX0VWRU5UUyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVk
KEVOQUJMRV9URVhUX0FVVE9TSVpJTkcpCisjZGVmaW5lIEVOQUJMRV9URVhUX0FVVE9TSVpJTkcg
MQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfSU9TX1RPVUNIX0VWRU5UUykgJiYgVVNF
KEFQUExFX0lOVEVSTkFMX1NESykKKyNkZWZpbmUgRU5BQkxFX0lPU19UT1VDSF9FVkVOVFMgMQor
I2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTUVURVJfRUxFTUVOVCkKKyNkZWZpbmUgRU5B
QkxFX01FVEVSX0VMRU1FTlQgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTkVUU0NB
UEVfUExVR0lOX0FQSSkKKyNkZWZpbmUgRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9BUEkgMAorI2Vu
ZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfT1JJRU5UQVRJT05fRVZFTlRTKQorI2RlZmluZSBF
TkFCTEVfT1JJRU5UQVRJT05fRVZFTlRTIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxF
X1BPSU5URVJfTE9DSykKKyNkZWZpbmUgRU5BQkxFX1BPSU5URVJfTE9DSyAwCisjZW5kaWYKKwor
I2lmICFkZWZpbmVkKEVOQUJMRV9SRU1PVEVfSU5TUEVDVE9SKQorI2RlZmluZSBFTkFCTEVfUkVN
T1RFX0lOU1BFQ1RPUiAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9URVhUX0NBUkVU
KQorI2RlZmluZSBFTkFCTEVfVEVYVF9DQVJFVCAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVO
QUJMRV9URVhUX1NFTEVDVElPTikKKyNkZWZpbmUgRU5BQkxFX1RFWFRfU0VMRUNUSU9OIDAKKyNl
bmRpZgorCisvKiBGSVhNRTogUmVtb3ZlIHRoZSBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKSBjb25q
dW5jdCBvbmNlIHdlIHN1cHBvcnQgdG91Y2ggZXZlbnRzIHdoZW4gYnVpbGRpbmcgYWdhaW5zdAor
dGhlIHB1YmxpYyBpT1MgU0RLLiBTZWUgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE3OTE2Nz4uICov
CisjaWYgIWRlZmluZWQoRU5BQkxFX1RPVUNIX0VWRU5UUykgJiYgVVNFKEFQUExFX0lOVEVSTkFM
X1NESykKKyNkZWZpbmUgRU5BQkxFX1RPVUNIX0VWRU5UUyAxCisjZW5kaWYKKworI2lmICFkZWZp
bmVkKEVOQUJMRV9XRUJfQVJDSElWRSkKKyNkZWZpbmUgRU5BQkxFX1dFQl9BUkNISVZFIDEKKyNl
bmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1dFQkdMKQorI2RlZmluZSBFTkFCTEVfV0VCR0wg
MQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfUFJJTUFSWV9TTkFQU0hPVFRFRF9QTFVH
SU5fSEVVUklTVElDKQorI2RlZmluZSBFTkFCTEVfUFJJTUFSWV9TTkFQU0hPVFRFRF9QTFVHSU5f
SEVVUklTVElDIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0RPV05MT0FEX0FUVFJJ
QlVURSkKKyNkZWZpbmUgRU5BQkxFX0RPV05MT0FEX0FUVFJJQlVURSAxCisjZW5kaWYKKworI2lm
ICFkZWZpbmVkKEVOQUJMRV9XS1BERlZJRVcpICYmIFBMQVRGT1JNKElPUykKKyNkZWZpbmUgRU5B
QkxFX1dLUERGVklFVyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9NRURJQV9TT1VS
Q0UpCisjZGVmaW5lIEVOQUJMRV9NRURJQV9TT1VSQ0UgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5l
ZChFTkFCTEVfUFJFVklFV19DT05WRVJURVIpICYmIFBMQVRGT1JNKElPUykKKyNkZWZpbmUgRU5B
QkxFX1BSRVZJRVdfQ09OVkVSVEVSIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX01F
VEFfVklFV1BPUlQpCisjZGVmaW5lIEVOQUJMRV9NRVRBX1ZJRVdQT1JUIDEKKyNlbmRpZgorCisj
ZW5kaWYgLyogUExBVEZPUk0oSU9TX0ZBTUlMWSkgKi8KKworLyogLS0tLS0tLS0tIEFwcGxlIHdh
dGNoT1MgcG9ydCAtLS0tLS0tLS0gKi8KKyNpZiBQTEFURk9STShXQVRDSE9TKQorCisjZW5kaWYg
LyogUExBVEZPUk0oV0FUQ0hPUykgKi8KKworLyogLS0tLS0tLS0tIEFwcGxlIG1hY09TIHBvcnQg
KG5vdCBpT1MpIC0tLS0tLS0tLSAqLworI2lmIFBMQVRGT1JNKE1BQykKKworI2lmICFkZWZpbmVk
KEVOQUJMRV9DT05URU5UX0VYVEVOU0lPTlMpCisjZGVmaW5lIEVOQUJMRV9DT05URU5UX0VYVEVO
U0lPTlMgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpCisj
ZGVmaW5lIEVOQUJMRV9GVUxMU0NSRUVOX0FQSSAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVO
QUJMRV9SRU1PVEVfSU5TUEVDVE9SKQorI2RlZmluZSBFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUiAx
CisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9JTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BB
VENIRVJTKQorI2RlZmluZSBFTkFCTEVfSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUyAx
CisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9JTlNQRUNUT1JfVEVMRU1FVFJZKQorI2Rl
ZmluZSBFTkFCTEVfSU5TUEVDVE9SX1RFTEVNRVRSWSAxCisjZW5kaWYKKworI2lmICFkZWZpbmVk
KEVOQUJMRV9TTU9PVEhfU0NST0xMSU5HKQorI2RlZmluZSBFTkFCTEVfU01PT1RIX1NDUk9MTElO
RyAxCisjZW5kaWYKKworI2lmIEVOQUJMRShWSURFTykKKyNpZiAhZGVmaW5lZChFTkFCTEVfVklE
RU9fVFJBQ0spCisjZGVmaW5lIEVOQUJMRV9WSURFT19UUkFDSyAxCisjZW5kaWYKKyNlbmRpZgor
CisjaWYgIWRlZmluZWQoRU5BQkxFX1dFQl9BUkNISVZFKQorI2RlZmluZSBFTkFCTEVfV0VCX0FS
Q0hJVkUgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfV0VCX0FVRElPKQorI2RlZmlu
ZSBFTkFCTEVfV0VCX0FVRElPIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0NVUlNP
Ul9WSVNJQklMSVRZKQorI2RlZmluZSBFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkgMQorI2VuZGlm
CisKKyNpZiAhZGVmaW5lZChFTkFCTEVfUFJJTUFSWV9TTkFQU0hPVFRFRF9QTFVHSU5fSEVVUklT
VElDKQorI2RlZmluZSBFTkFCTEVfUFJJTUFSWV9TTkFQU0hPVFRFRF9QTFVHSU5fSEVVUklTVElD
IDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX01BQ19HRVNUVVJFX0VWRU5UUykgJiYg
VVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyNkZWZpbmUgRU5BQkxFX01BQ19HRVNUVVJFX0VWRU5U
UyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJQUk9DRVNTX05TUlVOTE9PUCkK
KyNkZWZpbmUgRU5BQkxFX1dFQlBST0NFU1NfTlNSVU5MT09QIF9fTUFDX09TX1hfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTAxNDAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJQ
Uk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykKKyNkZWZpbmUgRU5BQkxFX1dFQlBST0NFU1Nf
V0lORE9XU0VSVkVSX0JMT0NLSU5HIEVOQUJMRV9XRUJQUk9DRVNTX05TUlVOTE9PUAorI2VuZGlm
CisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTUVESUFfU09VUkNFKQorI2RlZmluZSBFTkFCTEVfTUVE
SUFfU09VUkNFIDEKKyNlbmRpZgorCisjZW5kaWYgLyogUExBVEZPUk0oTUFDKSAqLworCisvKiAt
LS0tLS0tLS0gQXBwbGUgQ29jb2EgcGxhdGZvcm1zIC0tLS0tLS0tLSAqLworCisjaWYgUExBVEZP
Uk0oQ09DT0EpCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkK
KyNpZiBQTEFURk9STShNQUNDQVRBTFlTVCkKKyNkZWZpbmUgRU5BQkxFX0xFR0FDWV9FTkNSWVBU
RURfTUVESUEgMAorI2Vsc2UKKyNkZWZpbmUgRU5BQkxFX0xFR0FDWV9FTkNSWVBURURfTUVESUEg
MQorI2VuZGlmCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9GSUxFX1JFUExBQ0VNRU5U
KQorI2RlZmluZSBFTkFCTEVfRklMRV9SRVBMQUNFTUVOVCAxCisjZW5kaWYKKworI2lmICFkZWZp
bmVkKEVOQUJMRV9QQVlNRU5UX1JFUVVFU1QpCisjZGVmaW5lIEVOQUJMRV9QQVlNRU5UX1JFUVVF
U1QgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQVNZTkNfU0NST0xMSU5HKQorI2Rl
ZmluZSBFTkFCTEVfQVNZTkNfU0NST0xMSU5HIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5B
QkxFX1VJX1NJREVfQ09NUE9TSVRJTkcpCisjZGVmaW5lIEVOQUJMRV9VSV9TSURFX0NPTVBPU0lU
SU5HIDEKKyNlbmRpZgorCisjZW5kaWYgLyogUExBVEZPUk0oQ09DT0EpICovCisKKyNpZiAhUExB
VEZPUk0oQ09DT0EpCisKKyNpZiAhZGVmaW5lZChKU0NfT0JKQ19BUElfRU5BQkxFRCkKKyNkZWZp
bmUgSlNDX09CSkNfQVBJX0VOQUJMRUQgMAorI2VuZGlmCisKKyNlbmRpZiAvKiAhUExBVEZPUk0o
Q09DT0EpICovCisKKworLyogLS0tLS0tLS0tIEFwcGxlIFdpbmRvd3MgcG9ydCAtLS0tLS0tLS0g
Ki8KKyNpZiBQTEFURk9STShXSU4pICYmICFQTEFURk9STShXSU5fQ0FJUk8pCisKKyNpZiAhZGVm
aW5lZChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpCisjZGVmaW5lIEVOQUJMRV9GVUxMU0NSRUVOX0FQ
SSAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJfQVJDSElWRSkKKyNkZWZpbmUg
RU5BQkxFX1dFQl9BUkNISVZFIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1dFQkdM
KQorI2RlZmluZSBFTkFCTEVfV0VCR0wgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVf
R0VPTE9DQVRJT04pCisjZGVmaW5lIEVOQUJMRV9HRU9MT0NBVElPTiAxCisjZW5kaWYKKworI2Vu
ZGlmIC8qIFBMQVRGT1JNKFdJTikgJiYgIVBMQVRGT1JNKFdJTl9DQUlSTykgKi8KKworLyogLS0t
LS0tLS0tIFdpbmRvd3MgQ0FJUk8gcG9ydCAtLS0tLS0tLS0gKi8KKy8qIFBMQVRGT1JNKFdJTl9D
QUlSTykgaXMgYSBzcGVjaWFsaXphdGlvbiBvZiBQTEFURk9STShXSU4pLiAqLworLyogUExBVEZP
Uk0oV0lOKSBpcyBhbHdheXMgZW5hYmxlZCB3aGVuIFBMQVRGT1JNKFdJTl9DQUlSTykgaXMgZW5h
YmxlZC4gKi8KKyNpZiBQTEFURk9STShXSU5fQ0FJUk8pCisKKyNpZiAhZGVmaW5lZChFTkFCTEVf
V0VCX0FSQ0hJVkUpCisjZGVmaW5lIEVOQUJMRV9XRUJfQVJDSElWRSAxCisjZW5kaWYKKworI2lm
ICFkZWZpbmVkKEVOQUJMRV9XRUJHTCkKKyNkZWZpbmUgRU5BQkxFX1dFQkdMIDEKKyNlbmRpZgor
CisjaWYgIWRlZmluZWQoRU5BQkxFX0dFT0xPQ0FUSU9OKQorI2RlZmluZSBFTkFCTEVfR0VPTE9D
QVRJT04gMQorI2VuZGlmCisKKyNlbmRpZiAvKiBQTEFURk9STShXSU5fQ0FJUk8pICovCisKKy8q
IEVOQUJMRSBtYWNybyBkZWZhdWx0cyBmb3IgV2ViQ29yZSAqLworLyogRG8gbm90IHVzZSBQTEFU
Rk9STSgpIHRlc3RzIGluIHRoaXMgc2VjdGlvbiAhICovCisKKyNpZiAhZGVmaW5lZChFTkFCTEVf
M0RfVFJBTlNGT1JNUykKKyNkZWZpbmUgRU5BQkxFXzNEX1RSQU5TRk9STVMgMAorI2VuZGlmCisK
KyNpZiAhZGVmaW5lZChFTkFCTEVfQUNDRVNTSUJJTElUWSkKKyNkZWZpbmUgRU5BQkxFX0FDQ0VT
U0lCSUxJVFkgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQUNDRUxFUkFURURfMkRf
Q0FOVkFTKQorI2RlZmluZSBFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTIDAKKyNlbmRpZgor
CisjaWYgIWRlZmluZWQoRU5BQkxFX09WRVJGTE9XX1NDUk9MTElOR19UT1VDSCkKKyNkZWZpbmUg
RU5BQkxFX09WRVJGTE9XX1NDUk9MTElOR19UT1VDSCAwCisjZW5kaWYKKworI2lmICFkZWZpbmVk
KEVOQUJMRV9BUE5HKQorI2RlZmluZSBFTkFCTEVfQVBORyAxCisjZW5kaWYKKworI2lmICFkZWZp
bmVkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykKKyNkZWZpbmUgRU5BQkxFX0NIQU5ORUxfTUVT
U0FHSU5HIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0NPTlRFTlRfRVhURU5TSU9O
UykKKyNkZWZpbmUgRU5BQkxFX0NPTlRFTlRfRVhURU5TSU9OUyAwCisjZW5kaWYKKworI2lmICFk
ZWZpbmVkKEVOQUJMRV9DT05URVhUX01FTlVTKQorI2RlZmluZSBFTkFCTEVfQ09OVEVYVF9NRU5V
UyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9DT05URVhUX01FTlVfRVZFTlQpCisj
ZGVmaW5lIEVOQUJMRV9DT05URVhUX01FTlVfRVZFTlQgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5l
ZChFTkFCTEVfQ1NTM19URVhUKQorI2RlZmluZSBFTkFCTEVfQ1NTM19URVhUIDAKKyNlbmRpZgor
CisjaWYgIWRlZmluZWQoRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSykKKyNkZWZpbmUg
RU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVk
KEVOQUJMRV9DU1NfREVWSUNFX0FEQVBUQVRJT04pCisjZGVmaW5lIEVOQUJMRV9DU1NfREVWSUNF
X0FEQVBUQVRJT04gMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTX0NPTVBPU0lU
SU5HKQorI2RlZmluZSBFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HIDAKKyNlbmRpZgorCisjaWYgIWRl
ZmluZWQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKQorI2RlZmluZSBFTkFCTEVfQ1NTX0lN
QUdFX1JFU09MVVRJT04gMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTX0NPTklD
X0dSQURJRU5UUykKKyNkZWZpbmUgRU5BQkxFX0NTU19DT05JQ19HUkFESUVOVFMgMAorI2VuZGlm
CisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQ1VTVE9NX0NVUlNPUl9TVVBQT1JUKQorI2RlZmluZSBF
TkFCTEVfQ1VTVE9NX0NVUlNPUl9TVVBQT1JUIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5B
QkxFX0NVU1RPTV9TQ0hFTUVfSEFORExFUikKKyNkZWZpbmUgRU5BQkxFX0NVU1RPTV9TQ0hFTUVf
SEFORExFUiAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9EQVJLX01PREVfQ1NTKQor
I2RlZmluZSBFTkFCTEVfREFSS19NT0RFX0NTUyAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVO
QUJMRV9EQVRBTElTVF9FTEVNRU5UKQorI2RlZmluZSBFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCAw
CisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pCisjZGVm
aW5lIEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04gMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChF
TkFCTEVfRE9XTkxPQURfQVRUUklCVVRFKQorI2RlZmluZSBFTkFCTEVfRE9XTkxPQURfQVRUUklC
VVRFIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0RSQUdfU1VQUE9SVCkKKyNkZWZp
bmUgRU5BQkxFX0RSQUdfU1VQUE9SVCAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9F
TkNSWVBURURfTUVESUEpCisjZGVmaW5lIEVOQUJMRV9FTkNSWVBURURfTUVESUEgMAorI2VuZGlm
CisKKyNpZiAhZGVmaW5lZChFTkFCTEVfRklMVEVSU19MRVZFTF8yKQorI2RlZmluZSBFTkFCTEVf
RklMVEVSU19MRVZFTF8yIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0ZUUERJUikK
KyNkZWZpbmUgRU5BQkxFX0ZUUERJUiAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9G
VUxMU0NSRUVOX0FQSSkKKyNkZWZpbmUgRU5BQkxFX0ZVTExTQ1JFRU5fQVBJIDAKKyNlbmRpZgor
CisjaWYgIWRlZmluZWQoRU5BQkxFX0dBTUVQQUQpCisjZGVmaW5lIEVOQUJMRV9HQU1FUEFEIDAK
KyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0dFT0xPQ0FUSU9OKQorI2RlZmluZSBFTkFC
TEVfR0VPTE9DQVRJT04gMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfSU5ERVhFRF9E
QVRBQkFTRSkKKyNkZWZpbmUgRU5BQkxFX0lOREVYRURfREFUQUJBU0UgMAorI2VuZGlmCisKKyNp
ZiAhZGVmaW5lZChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJTKQorI2RlZmluZSBF
TkFCTEVfSU5ERVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJTIDAKKyNlbmRpZgorCisjaWYgIWRlZmlu
ZWQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IpCisjZGVmaW5lIEVOQUJMRV9JTlBVVF9UWVBFX0NP
TE9SIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSkKKyNk
ZWZpbmUgRU5BQkxFX0lOUFVUX1RZUEVfREFURSAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVO
QUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUpCisjZGVmaW5lIEVOQUJMRV9JTlBV
VF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFC
TEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKQorI2RlZmluZSBFTkFCTEVfSU5QVVRfVFlQRV9E
QVRFVElNRUxPQ0FMIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0lOUFVUX1RZUEVf
TU9OVEgpCisjZGVmaW5lIEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIIDAKKyNlbmRpZgorCisjaWYg
IWRlZmluZWQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkKKyNkZWZpbmUgRU5BQkxFX0lOUFVUX1RZ
UEVfVElNRSAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUsp
CisjZGVmaW5lIEVOQUJMRV9JTlBVVF9UWVBFX1dFRUsgMAorI2VuZGlmCisKKyNpZiBFTkFCTEUo
SU5QVVRfVFlQRV9EQVRFKSB8fCBFTkFCTEUoSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRF
KSB8fCBFTkFCTEUoSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSB8fCBFTkFCTEUoSU5QVVRfVFlQ
RV9NT05USCkgfHwgRU5BQkxFKElOUFVUX1RZUEVfVElNRSkgfHwgRU5BQkxFKElOUFVUX1RZUEVf
V0VFSykKKyNpZiAhZGVmaW5lZChFTkFCTEVfREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKKyNk
ZWZpbmUgRU5BQkxFX0RBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMgMQorI2VuZGlmCisjZW5kaWYK
KworI2lmICFkZWZpbmVkKEVOQUJMRV9JTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENIRVJTKQor
I2RlZmluZSBFTkFCTEVfSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUyAwCisjZW5kaWYK
KworI2lmICFkZWZpbmVkKEVOQUJMRV9JTlNQRUNUT1JfVEVMRU1FVFJZKQorI2RlZmluZSBFTkFC
TEVfSU5TUEVDVE9SX1RFTEVNRVRSWSAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9J
TlRMKQorI2RlZmluZSBFTkFCTEVfSU5UTCAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJM
RV9MQVlPVVRfRk9STUFUVElOR19DT05URVhUKQorI2RlZmluZSBFTkFCTEVfTEFZT1VUX0ZPUk1B
VFRJTkdfQ09OVEVYVCAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9MRUdBQ1lfQ1NT
X1ZFTkRPUl9QUkVGSVhFUykKKyNkZWZpbmUgRU5BQkxFX0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJ
WEVTIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0xFVFRFUlBSRVNTKQorI2RlZmlu
ZSBFTkFCTEVfTEVUVEVSUFJFU1MgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTUFU
SE1MKQorI2RlZmluZSBFTkFCTEVfTUFUSE1MIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5B
QkxFX01FRElBX0NBUFRVUkUpCisjZGVmaW5lIEVOQUJMRV9NRURJQV9DQVBUVVJFIDAKKyNlbmRp
ZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX01FRElBX0NPTlRST0xTX1NDUklQVCkKKyNkZWZpbmUg
RU5BQkxFX01FRElBX0NPTlRST0xTX1NDUklQVCAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVO
QUJMRV9NRURJQV9TT1VSQ0UpCisjZGVmaW5lIEVOQUJMRV9NRURJQV9TT1VSQ0UgMAorI2VuZGlm
CisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTUVESUFfU1RBVElTVElDUykKKyNkZWZpbmUgRU5BQkxF
X01FRElBX1NUQVRJU1RJQ1MgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTUVESUFf
U1RSRUFNKQorI2RlZmluZSBFTkFCTEVfTUVESUFfU1RSRUFNIDAKKyNlbmRpZgorCisjaWYgIWRl
ZmluZWQoRU5BQkxFX01FVEVSX0VMRU1FTlQpCisjZGVmaW5lIEVOQUJMRV9NRVRFUl9FTEVNRU5U
IDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX01IVE1MKQorI2RlZmluZSBFTkFCTEVf
TUhUTUwgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxF
KQorI2RlZmluZSBFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFIDAKKyNlbmRpZgorCisjaWYgIWRl
ZmluZWQoRU5BQkxFX01PVVNFX0ZPUkNFX0VWRU5UUykKKyNkZWZpbmUgRU5BQkxFX01PVVNFX0ZP
UkNFX0VWRU5UUyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9ORVRTQ0FQRV9QTFVH
SU5fQVBJKQorI2RlZmluZSBFTkFCTEVfTkVUU0NBUEVfUExVR0lOX0FQSSAxCisjZW5kaWYKKwor
I2lmICFkZWZpbmVkKEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fTUVUQURBVEFfQ0FDSEUpCisjZGVm
aW5lIEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fTUVUQURBVEFfQ0FDSEUgMAorI2VuZGlmCisKKyNp
ZiAhZGVmaW5lZChFTkFCTEVfTk9USUZJQ0FUSU9OUykKKyNkZWZpbmUgRU5BQkxFX05PVElGSUNB
VElPTlMgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfT0ZGU0NSRUVOX0NBTlZBUykK
KyNkZWZpbmUgRU5BQkxFX09GRlNDUkVFTl9DQU5WQVMgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5l
ZChFTkFCTEVfT1JJRU5UQVRJT05fRVZFTlRTKQorI2RlZmluZSBFTkFCTEVfT1JJRU5UQVRJT05f
RVZFTlRTIDAKKyNlbmRpZgorCisjaWYgT1MoV0lORE9XUykKKyNpZiAhZGVmaW5lZChFTkFCTEVf
UEFOX1NDUk9MTElORykKKyNkZWZpbmUgRU5BQkxFX1BBTl9TQ1JPTExJTkcgMQorI2VuZGlmCisj
ZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9QQVlNRU5UX1JFUVVFU1QpCisjZGVmaW5lIEVO
QUJMRV9QQVlNRU5UX1JFUVVFU1QgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfUE9J
TlRFUl9MT0NLKQorI2RlZmluZSBFTkFCTEVfUE9JTlRFUl9MT0NLIDEKKyNlbmRpZgorCisjaWYg
IWRlZmluZWQoRU5BQkxFX1FVT1RBKQorI2RlZmluZSBFTkFCTEVfUVVPVEEgMAorI2VuZGlmCisK
KyNpZiAhZGVmaW5lZChFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUikKKyNkZWZpbmUgRU5BQkxFX1JF
TU9URV9JTlNQRUNUT1IgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfUlVCQkVSX0JB
TkRJTkcpCisjZGVmaW5lIEVOQUJMRV9SVUJCRVJfQkFORElORyAwCisjZW5kaWYKKworI2lmICFk
ZWZpbmVkKEVOQUJMRV9TRUNVUklUWV9BU1NFUlRJT05TKQorLyogRW5hYmxlIHNlY3VyaXR5IGFz
c2VydGlvbnMgb24gYWxsIEFTQU4gYnVpbGRzIGFuZCBkZWJ1ZyBidWlsZHMuICovCisjaWYgQVNB
Tl9FTkFCTEVEIHx8ICFkZWZpbmVkKE5ERUJVRykKKyNkZWZpbmUgRU5BQkxFX1NFQ1VSSVRZX0FT
U0VSVElPTlMgMQorI2VuZGlmCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9TTU9PVEhf
U0NST0xMSU5HKQorI2RlZmluZSBFTkFCTEVfU01PT1RIX1NDUk9MTElORyAwCisjZW5kaWYKKwor
I2lmICFkZWZpbmVkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKQorI2RlZmluZSBFTkFCTEVfU1BF
RUNIX1NZTlRIRVNJUyAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9TUEVMTENIRUNL
KQorI2RlZmluZSBFTkFCTEVfU1BFTExDSEVDSyAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVO
QUJMRV9TVFJFQU1TX0FQSSkKKyNkZWZpbmUgRU5BQkxFX1NUUkVBTVNfQVBJIDEKKyNlbmRpZgor
CisjaWYgIWRlZmluZWQoRU5BQkxFX1NWR19GT05UUykKKyNkZWZpbmUgRU5BQkxFX1NWR19GT05U
UyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9URVhUX0NBUkVUKQorI2RlZmluZSBF
TkFCTEVfVEVYVF9DQVJFVCAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9URVhUX1NF
TEVDVElPTikKKyNkZWZpbmUgRU5BQkxFX1RFWFRfU0VMRUNUSU9OIDEKKyNlbmRpZgorCisjaWYg
IWRlZmluZWQoRU5BQkxFX0FTWU5DX1NDUk9MTElORykKKyNkZWZpbmUgRU5BQkxFX0FTWU5DX1ND
Uk9MTElORyAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9UT1VDSF9FVkVOVFMpCisj
ZGVmaW5lIEVOQUJMRV9UT1VDSF9FVkVOVFMgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFC
TEVfVklERU8pCisjZGVmaW5lIEVOQUJMRV9WSURFTyAwCisjZW5kaWYKKworI2lmICFkZWZpbmVk
KEVOQUJMRV9WSURFT19UUkFDSykKKyNkZWZpbmUgRU5BQkxFX1ZJREVPX1RSQUNLIDAKKyNlbmRp
ZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0RBVEFDVUVfVkFMVUUpCisjZGVmaW5lIEVOQUJMRV9E
QVRBQ1VFX1ZBTFVFIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1dFQkdMKQorI2Rl
ZmluZSBFTkFCTEVfV0VCR0wgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfR1JBUEhJ
Q1NfQ09OVEVYVF9HTCkKKyNkZWZpbmUgRU5BQkxFX0dSQVBISUNTX0NPTlRFWFRfR0wgRU5BQkxF
X1dFQkdMCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJfQVJDSElWRSkKKyNkZWZp
bmUgRU5BQkxFX1dFQl9BUkNISVZFIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1dF
Ql9BVURJTykKKyNkZWZpbmUgRU5BQkxFX1dFQl9BVURJTyAwCisjZW5kaWYKKworI2lmICFkZWZp
bmVkKEVOQUJMRV9YU0xUKQorI2RlZmluZSBFTkFCTEVfWFNMVCAxCisjZW5kaWYKKworI2lmICFk
ZWZpbmVkKEVOQUJMRV9EQVRBX0lOVEVSQUNUSU9OKQorI2RlZmluZSBFTkFCTEVfREFUQV9JTlRF
UkFDVElPTiAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9TRVJWSUNFX1dPUktFUikK
KyNkZWZpbmUgRU5BQkxFX1NFUlZJQ0VfV09SS0VSIDEKKyNlbmRpZgorCisKKy8qIEpJVCBGZWF0
dXJlcyAqLworCisvKiBUaGUgSklUIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBvbiBhbGwgeDg2LTY0
ICYgQVJNNjQgcGxhdGZvcm1zLiAqLworI2lmICFkZWZpbmVkKEVOQUJMRV9KSVQpICYmIChDUFUo
WDg2XzY0KSB8fCBDUFUoQVJNNjQpKSAmJiAhQ1BVKEFQUExFX0FSTVY3SykKKyNkZWZpbmUgRU5B
QkxFX0pJVCAxCisjZW5kaWYKKworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisjaWYgKENQVShBUk1f
VEhVTUIyKSB8fCBDUFUoTUlQUykpICYmIE9TKExJTlVYKQorLyogT24gQVJNdjcgYW5kIE1JUFMg
b24gTGludXggdGhlIEpJVCBpcyBlbmFibGVkIHVubGVzcyBleHBsaWNpdGx5IGRpc2FibGVkLiAq
LworI2lmICFkZWZpbmVkKEVOQUJMRV9KSVQpCisjZGVmaW5lIEVOQUJMRV9KSVQgMQorI2VuZGlm
CisjZWxzZQorLyogRGlzYWJsZSBKSVQgYW5kIGZvcmNlIENfTE9PUCBvbiBhbGwgb3RoZXIgMzJi
aXQgYXJjaGl0ZWN0dXJlcy4gKi8KKyN1bmRlZiBFTkFCTEVfSklUCisjZGVmaW5lIEVOQUJMRV9K
SVQgMAorI3VuZGVmIEVOQUJMRV9DX0xPT1AKKyNkZWZpbmUgRU5BQkxFX0NfTE9PUCAxCisjZW5k
aWYKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0NfTE9PUCkKKyNpZiBFTkFCTEUoSklU
KSB8fCBDUFUoWDg2XzY0KSB8fCAoQ1BVKEFSTTY0KSAmJiAhZGVmaW5lZChfX0lMUDMyX18pKQor
I2RlZmluZSBFTkFCTEVfQ19MT09QIDAKKyNlbHNlCisjZGVmaW5lIEVOQUJMRV9DX0xPT1AgMQor
I2VuZGlmCisjZW5kaWYKKworLyogRklYTUU6IFRoaXMgc2hvdWxkIGJlIHR1cm5lZCBpbnRvIGFu
ICNlcnJvciBpbnZhcmlhbnQgKi8KKy8qIFRoZSBGVEwgKmRvZXMgbm90KiB3b3JrIG9uIDMyLWJp
dCBwbGF0Zm9ybXMuIERpc2FibGUgaXQgZXZlbiBpZiBzb21lb25lIGFza2VkIHVzIHRvIGVuYWJs
ZSBpdC4gKi8KKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorI3VuZGVmIEVOQUJMRV9GVExfSklUCisj
ZGVmaW5lIEVOQUJMRV9GVExfSklUIDAKKyNlbmRpZgorCisvKiBGSVhNRTogVGhpcyBzaG91bGQg
YmUgdHVybmVkIGludG8gYW4gI2Vycm9yIGludmFyaWFudCAqLworLyogVGhlIEZUTCBpcyBkaXNh
YmxlZCBvbiB0aGUgaU9TIHNpbXVsYXRvciwgbW9zdGx5IGZvciBzaW1wbGljaXR5LiAqLworI2lm
IFBMQVRGT1JNKElPU19GQU1JTFlfU0lNVUxBVE9SKQorI3VuZGVmIEVOQUJMRV9GVExfSklUCisj
ZGVmaW5lIEVOQUJMRV9GVExfSklUIDAKKyNlbmRpZgorCisvKiBJZiBwb3NzaWJsZSwgdHJ5IHRv
IGVuYWJsZSBhIGRpc2Fzc2VtYmxlci4gVGhpcyBpcyBvcHRpb25hbC4gV2UgcHJvY2VlZCBpbiB0
d28KKyAgIHN0ZXBzOiBmaXJzdCB3ZSB0cnkgdG8gZmluZCBzb21lIGRpc2Fzc2VtYmxlciB0aGF0
IHdlIGNhbiB1c2UsIGFuZCB0aGVuIHdlCisgICBkZWNpZGUgaWYgdGhlIGhpZ2gtbGV2ZWwgZGlz
YXNzZW1ibGVyIEFQSSBjYW4gYmUgZW5hYmxlZC4gKi8KKyNpZiAhZGVmaW5lZChFTkFCTEVfVURJ
Uzg2KSAmJiBFTkFCTEUoSklUKSAmJiBDUFUoWDg2XzY0KSAmJiAhVVNFKENBUFNUT05FKQorI2Rl
ZmluZSBFTkFCTEVfVURJUzg2IDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0FSTTY0
X0RJU0FTU0VNQkxFUikgJiYgRU5BQkxFKEpJVCkgJiYgQ1BVKEFSTTY0KSAmJiAhVVNFKENBUFNU
T05FKQorI2RlZmluZSBFTkFCTEVfQVJNNjRfRElTQVNTRU1CTEVSIDEKKyNlbmRpZgorCisjaWYg
IWRlZmluZWQoRU5BQkxFX0RJU0FTU0VNQkxFUikgJiYgKEVOQUJMRShVRElTODYpIHx8IEVOQUJM
RShBUk02NF9ESVNBU1NFTUJMRVIpIHx8IChFTkFCTEUoSklUKSAmJiBVU0UoQ0FQU1RPTkUpKSkK
KyNkZWZpbmUgRU5BQkxFX0RJU0FTU0VNQkxFUiAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVO
QUJMRV9ERkdfSklUKSAmJiBFTkFCTEUoSklUKQorCisvKiBFbmFibGUgdGhlIERGRyBKSVQgb24g
WDg2IGFuZCBYODZfNjQuICovCisjaWYgQ1BVKFg4Nl82NCkgJiYgKE9TKERBUldJTikgfHwgT1Mo
TElOVVgpIHx8IE9TKEZSRUVCU0QpIHx8IE9TKEhVUkQpIHx8IE9TKFdJTkRPV1MpKQorI2RlZmlu
ZSBFTkFCTEVfREZHX0pJVCAxCisjZW5kaWYKKworLyogRW5hYmxlIHRoZSBERkcgSklUIG9uIEFS
TXY3LiAgT25seSB0ZXN0ZWQgb24gaU9TLCBMaW51eCwgYW5kIEZyZWVCU0QuICovCisjaWYgKENQ
VShBUk1fVEhVTUIyKSB8fCBDUFUoQVJNNjQpKSAmJiAoT1MoREFSV0lOKSB8fCBPUyhMSU5VWCkg
fHwgT1MoRlJFRUJTRCkpCisjZGVmaW5lIEVOQUJMRV9ERkdfSklUIDEKKyNlbmRpZgorCisvKiBF
bmFibGUgdGhlIERGRyBKSVQgb24gTUlQUy4gKi8KKyNpZiBDUFUoTUlQUykKKyNkZWZpbmUgRU5B
QkxFX0RGR19KSVQgMQorI2VuZGlmCisKKyNlbmRpZiAvKiAhZGVmaW5lZChFTkFCTEVfREZHX0pJ
VCkgJiYgRU5BQkxFKEpJVCkgKi8KKworLyogQ29uY3VycmVudCBKUyBvbmx5IHdvcmtzIG9uIDY0
LWJpdCBwbGF0Zm9ybXMgYmVjYXVzZSBpdCByZXF1aXJlcyB0aGF0CisgICB2YWx1ZXMgZ2V0IHN0
b3JlZCB0byBhdG9taWNhbGx5LiBUaGlzIGlzIHRyaXZpYWxseSB0cnVlIG9uIDY0LWJpdCBwbGF0
Zm9ybXMsCisgICBidXQgbm90IHRydWUgYXQgYWxsIG9uIDMyLWJpdCBwbGF0Zm9ybXMgd2hlcmUg
dmFsdWVzIGFyZSBjb21wb3NlZCBvZiB0d28KKyAgIHNlcGFyYXRlIHN1Yi12YWx1ZXMuICovCisj
aWYgRU5BQkxFKEpJVCkgJiYgVVNFKEpTVkFMVUU2NCkKKyNkZWZpbmUgRU5BQkxFX0NPTkNVUlJF
TlRfSlMgMQorI2VuZGlmCisKKyNpZiAoQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTTY0KSkgJiYgSEFW
RShGQVNUX1RMUykKKyNkZWZpbmUgRU5BQkxFX0ZBU1RfVExTX0pJVCAxCisjZW5kaWYKKworI2lm
IEVOQUJMRShKSVQpICYmIChDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KSB8fCBDUFUoQVJNX1RIVU1C
MikgfHwgQ1BVKEFSTTY0KSB8fCBDUFUoTUlQUykpCisjZGVmaW5lIEVOQUJMRV9NQVNNX1BST0JF
IDEKKyNlbmRpZgorCisvKiBGSVhNRTogVGhpcyBzaG91bGQgYmUgdHVybmVkIGludG8gYW4gI2Vy
cm9yIGludmFyaWFudCAqLworLyogSWYgdGhlIGJhc2VsaW5lIGppdCBpcyBub3QgYXZhaWxhYmxl
LCB0aGVuIGRpc2FibGUgdXBwZXIgdGllcnMgYXMgd2VsbC4KKyAgIFRoZSBNYWNyb0Fzc2VtYmxl
cjo6cHJvYmUoKSBpcyBhbHNvIHJlcXVpcmVkIGZvciBzdXBwb3J0aW5nIHRoZSB1cHBlciB0aWVy
cy4gKi8KKyNpZiAhRU5BQkxFKEpJVCkgfHwgIUVOQUJMRShNQVNNX1BST0JFKQorI3VuZGVmIEVO
QUJMRV9ERkdfSklUCisjdW5kZWYgRU5BQkxFX0ZUTF9KSVQKKyNkZWZpbmUgRU5BQkxFX0RGR19K
SVQgMAorI2RlZmluZSBFTkFCTEVfRlRMX0pJVCAwCisjZW5kaWYKKworLyogRklYTUU6IFRoaXMg
c2hvdWxkIGJlIHR1cm5lZCBpbnRvIGFuICNlcnJvciBpbnZhcmlhbnQgKi8KKy8qIElmIHRoZSBE
Rkcgaml0IGlzIG5vdCBhdmFpbGFibGUsIHRoZW4gZGlzYWJsZSB1cHBlciB0aWVycyBhcyB3ZWxs
OiAqLworI2lmICFFTkFCTEUoREZHX0pJVCkKKyN1bmRlZiBFTkFCTEVfRlRMX0pJVAorI2RlZmlu
ZSBFTkFCTEVfRlRMX0pJVCAwCisjZW5kaWYKKworLyogVGhpcyBjb250cm9scyB3aGV0aGVyIEIz
IGlzIGJ1aWx0LiBCMyBpcyBuZWVkZWQgZm9yIEZUTCBKSVQgYW5kIFdlYkFzc2VtYmx5ICovCisj
aWYgRU5BQkxFKEZUTF9KSVQpCisjZGVmaW5lIEVOQUJMRV9CM19KSVQgMQorI2VuZGlmCisKKyNp
ZiAhZGVmaW5lZChFTkFCTEVfV0VCQVNTRU1CTFkpICYmIChFTkFCTEUoQjNfSklUKSAmJiBQTEFU
Rk9STShDT0NPQSkgJiYgQ1BVKEFERFJFU1M2NCkpCisjZGVmaW5lIEVOQUJMRV9XRUJBU1NFTUJM
WSAxCisjZW5kaWYKKworLyogVGhlIFNhbXBsaW5nUHJvZmlsZXIgaXMgdGhlIHByb2JhYmlsaXN0
aWMgYW5kIGxvdy1vdmVyaGVhZCBwcm9maWxlciB1c2VkIGJ5CisgKiBKU0MgdG8gbWVhc3VyZSB3
aGVyZSB0aW1lIGlzIHNwZW50IGluc2lkZSBhIEphdmFTY3JpcHQgcHJvZ3JhbS4KKyAqIEluIGNv
bmZpZ3VyYXRpb25zIG90aGVyIHRoYW4gV2luZG93cyBhbmQgRGFyd2luLCBiZWNhdXNlIGxheW91
dCBvZiBtY29udGV4dF90IGRlcGVuZHMgb24gc3RhbmRhcmQgbGlicmFyaWVzIChsaWtlIGdsaWJj
KSwKKyAqIHNhbXBsaW5nIHByb2ZpbGVyIGlzIGVuYWJsZWQgaWYgV2ViS2l0IHVzZXMgcHRocmVh
ZHMgYW5kIGdsaWJjLiAqLworI2lmICFkZWZpbmVkKEVOQUJMRV9TQU1QTElOR19QUk9GSUxFUikg
JiYgKCFFTkFCTEUoQ19MT09QKSAmJiAoT1MoV0lORE9XUykgfHwgSEFWRShNQUNISU5FX0NPTlRF
WFQpKSkKKyNkZWZpbmUgRU5BQkxFX1NBTVBMSU5HX1BST0ZJTEVSIDEKKyNlbmRpZgorCisjaWYg
RU5BQkxFKFdFQkFTU0VNQkxZKSAmJiBIQVZFKE1BQ0hJTkVfQ09OVEVYVCkKKyNkZWZpbmUgRU5B
QkxFX1dFQkFTU0VNQkxZX0ZBU1RfTUVNT1JZIDEKKyNlbmRpZgorCisvKiBDb3VudHMgdXNlcyBv
ZiB3cml0ZSBiYXJyaWVycyB1c2luZyBzYW1wbGluZyBjb3VudGVycy4gQmUgc3VyZSB0byBhbHNv
CisgICBzZXQgRU5BQkxFX1NBTVBMSU5HX0NPVU5URVJTIHRvIDEuICovCisjaWYgIWRlZmluZWQo
RU5BQkxFX1dSSVRFX0JBUlJJRVJfUFJPRklMSU5HKQorI2RlZmluZSBFTkFCTEVfV1JJVEVfQkFS
UklFUl9QUk9GSUxJTkcgMAorI2VuZGlmCisKKy8qIExvZ3MgYWxsIGFsbG9jYXRpb24tcmVsYXRl
ZCBhY3Rpdml0eSB0aGF0IGdvZXMgdGhyb3VnaCBmYXN0TWFsbG9jIG9yIHRoZQorICAgSlNDIEdD
IChib3RoIGNlbGxzIGFuZCBidXR0ZXJmbGllcykuIEFsc28gbG9ncyBtYXJraW5nLiBOb3RlIHRo
YXQgdGhpcworICAgaXNuJ3QgYSBjb21wbGV0ZWx5IGFjY3VyYXRlIHZpZXcgb2YgdGhlIGhlYXAg
c2luY2UgaXQgZG9lc24ndCBpbmNsdWRlIGFsbAorICAgYnV0dGVyZmx5IHJlc2l6ZSBvcGVyYXRp
b25zLCBkb2Vzbid0IHRlbGwgeW91IHdoYXQgaXMgZ29pbmcgb24gd2l0aCB3ZWFrCisgICByZWZl
cmVuY2VzIChvdGhlciB0aGFuIHRvIHRlbGwgeW91IHdoZW4gdGhleSdyZSBtYXJrZWQpLCBhbmQg
ZG9lc24ndAorICAgdHJhY2sgZGlyZWN0IG1tYXAoKSBhbGxvY2F0aW9ucyBvciB0aGluZ3MgbGlr
ZSBKSVQgYWxsb2NhdGlvbi4gKi8KKyNpZiAhZGVmaW5lZChFTkFCTEVfQUxMT0NBVElPTl9MT0dH
SU5HKQorI2RlZmluZSBFTkFCTEVfQUxMT0NBVElPTl9MT0dHSU5HIDAKKyNlbmRpZgorCisvKiBF
bmFibGUgdmVyaWZpY2F0aW9uIHRoYXQgdGhhdCByZWdpc3RlciBhbGxvY2F0aW9ucyBhcmUgbm90
IG1hZGUgd2l0aGluIGdlbmVyYXRlZCBjb250cm9sIGZsb3cuCisgICBUdXJuZWQgb24gZm9yIGRl
YnVnIGJ1aWxkcy4gKi8KKyNpZiAhZGVmaW5lZChFTkFCTEVfREZHX1JFR0lTVEVSX0FMTE9DQVRJ
T05fVkFMSURBVElPTikgJiYgRU5BQkxFKERGR19KSVQpICYmICFkZWZpbmVkKE5ERUJVRykKKyNk
ZWZpbmUgRU5BQkxFX0RGR19SRUdJU1RFUl9BTExPQ0FUSU9OX1ZBTElEQVRJT04gMQorI2VuZGlm
CisKKyNpZiAhZGVmaW5lZChFTkFCTEVfU0VQQVJBVEVEX1dYX0hFQVApICYmIFBMQVRGT1JNKElP
U19GQU1JTFkpICYmIENQVShBUk02NCkgJiYgKCFFTkFCTEUoRkFTVF9KSVRfUEVSTUlTU0lPTlMp
IHx8ICFDUFUoQVJNNjRFKSkKKyNkZWZpbmUgRU5BQkxFX1NFUEFSQVRFRF9XWF9IRUFQIDEKKyNl
bmRpZgorCisvKiBEZXRlcm1pbmUgaWYgd2UgbmVlZCB0byBlbmFibGUgQ29tcHV0ZWQgR290byBP
cGNvZGVzIG9yIG5vdDogKi8KKyNpZiBIQVZFKENPTVBVVEVEX0dPVE8pIHx8ICFFTkFCTEUoQ19M
T09QKQorI2RlZmluZSBFTkFCTEVfQ09NUFVURURfR09UT19PUENPREVTIDEKKyNlbmRpZgorCisv
KiBSZWd1bGFyIEV4cHJlc3Npb24gVHJhY2luZyAtIFNldCB0byAxIHRvIHRyYWNlIFJlZ0V4cCdz
IGluIGpzYy4gIFJlc3VsdHMgZHVtcGVkIGF0IGV4aXQgKi8KKyNpZiAhZGVmaW5lZChFTkFCTEVf
UkVHRVhQX1RSQUNJTkcpCisjZGVmaW5lIEVOQUJMRV9SRUdFWFBfVFJBQ0lORyAwCisjZW5kaWYK
KworLyogWWV0IEFub3RoZXIgUmVnZXggUnVudGltZSAtIHR1cm5lZCBvbiBieSBkZWZhdWx0IGZv
ciBKSVQgZW5hYmxlZCBwb3J0cy4gKi8KKyNpZiAhZGVmaW5lZChFTkFCTEVfWUFSUl9KSVQpICYm
IEVOQUJMRShKSVQpCisjZGVmaW5lIEVOQUJMRV9ZQVJSX0pJVCAxCisjZW5kaWYKKworLyogU2V0
dGluZyB0aGlzIGZsYWcgY29tcGFyZXMgSklUIHJlc3VsdHMgd2l0aCBpbnRlcnByZXRlciByZXN1
bHRzLiAqLworI2lmICFkZWZpbmVkKEVOQUJMRV9ZQVJSX0pJVCkgJiYgRU5BQkxFKEpJVCkKKyNk
ZWZpbmUgRU5BQkxFX1lBUlJfSklUX0RFQlVHIDAKKyNlbmRpZgorCisvKiBFbmFibGUgSklUJ2lu
ZyBSZWd1bGFyIEV4cHJlc3Npb25zIHRoYXQgaGF2ZSBuZXN0ZWQgcGFyZW50aGVzaXMgLiAqLwor
I2lmIEVOQUJMRShZQVJSX0pJVCkgJiYgKENQVShBUk02NCkgfHwgKENQVShYODZfNjQpICYmICFP
UyhXSU5ET1dTKSkpCisjZGVmaW5lIEVOQUJMRV9ZQVJSX0pJVF9BTExfUEFSRU5TX0VYUFJFU1NJ
T05TIDEKKyNlbmRpZgorCisvKiBFbmFibGUgSklUJ2luZyBSZWd1bGFyIEV4cHJlc3Npb25zIHRo
YXQgaGF2ZSBuZXN0ZWQgYmFjayByZWZlcmVuY2VzLiAqLworI2lmIEVOQUJMRShZQVJSX0pJVCkg
JiYgKENQVShBUk02NCkgfHwgKENQVShYODZfNjQpICYmICFPUyhXSU5ET1dTKSkpCisjZGVmaW5l
IEVOQUJMRV9ZQVJSX0pJVF9CQUNLUkVGRVJFTkNFUyAxCisjZW5kaWYKKworLyogSWYgZWl0aGVy
IHRoZSBKSVQgb3IgdGhlIFJlZ0V4cCBKSVQgaXMgZW5hYmxlZCwgdGhlbiB0aGUgQXNzZW1ibGVy
IG11c3QgYmUKKyAgIGVuYWJsZWQgYXMgd2VsbDogKi8KKyNpZiBFTkFCTEUoSklUKSB8fCBFTkFC
TEUoWUFSUl9KSVQpIHx8ICFFTkFCTEUoQ19MT09QKQorI2lmIGRlZmluZWQoRU5BQkxFX0FTU0VN
QkxFUikgJiYgIUVOQUJMRV9BU1NFTUJMRVIKKyNlcnJvciAiQ2Fubm90IGVuYWJsZSB0aGUgSklU
IG9yIFJlZ0V4cCBKSVQgd2l0aG91dCBlbmFibGluZyB0aGUgQXNzZW1ibGVyIgorI2Vsc2UKKyN1
bmRlZiBFTkFCTEVfQVNTRU1CTEVSCisjZGVmaW5lIEVOQUJMRV9BU1NFTUJMRVIgMQorI2VuZGlm
CisjZW5kaWYKKworLyogSWYgdGhlIERpc2Fzc2VtYmxlciBpcyBlbmFibGVkLCB0aGVuIHRoZSBB
c3NlbWJsZXIgbXVzdCBiZSBlbmFibGVkIGFzIHdlbGw6ICovCisjaWYgRU5BQkxFKERJU0FTU0VN
QkxFUikKKyNpZiBkZWZpbmVkKEVOQUJMRV9BU1NFTUJMRVIpICYmICFFTkFCTEVfQVNTRU1CTEVS
CisjZXJyb3IgIkNhbm5vdCBlbmFibGUgdGhlIERpc2Fzc2VtYmxlciB3aXRob3V0IGVuYWJsaW5n
IHRoZSBBc3NlbWJsZXIiCisjZWxzZQorI3VuZGVmIEVOQUJMRV9BU1NFTUJMRVIKKyNkZWZpbmUg
RU5BQkxFX0FTU0VNQkxFUiAxCisjZW5kaWYKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxF
X0VYQ0VQVElPTl9TQ09QRV9WRVJJRklDQVRJT04pCisjZGVmaW5lIEVOQUJMRV9FWENFUFRJT05f
U0NPUEVfVkVSSUZJQ0FUSU9OIEFTU0VSVF9FTkFCTEVECisjZW5kaWYKKworI2lmIEVOQUJMRShE
RkdfSklUKSAmJiBIQVZFKE1BQ0hJTkVfQ09OVEVYVCkgJiYgKENQVShYODZfNjQpIHx8IENQVShB
Uk02NCkpCisjZGVmaW5lIEVOQUJMRV9TSUdOQUxfQkFTRURfVk1fVFJBUFMgMQorI2VuZGlmCisK
Ky8qIENTUyBTZWxlY3RvciBKSVQgQ29tcGlsZXIgKi8KKyNpZiAhZGVmaW5lZChFTkFCTEVfQ1NT
X1NFTEVDVE9SX0pJVCkgJiYgKChDUFUoWDg2XzY0KSB8fCBDUFUoQVJNNjQpIHx8IChDUFUoQVJN
X1RIVU1CMikgJiYgT1MoREFSV0lOKSkpICYmIEVOQUJMRShKSVQpICYmIChPUyhEQVJXSU4pIHx8
IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKSkpCisjZGVmaW5lIEVOQUJMRV9DU1NfU0VM
RUNUT1JfSklUIDEKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmICFQTEFURk9STShX
QVRDSE9TKSAmJiAhUExBVEZPUk0oQVBQTEVUVikgJiYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQor
I2RlZmluZSBFTkFCTEVfREFUQV9ERVRFQ1RJT04gMQorI2VuZGlmCisKKyNpZiBDUFUoQVJNX1RI
VU1CMikgfHwgQ1BVKEFSTTY0KQorI2RlZmluZSBFTkFCTEVfQlJBTkNIX0NPTVBBQ1RJT04gMQor
I2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfVEhSRUFESU5HX0xJQkRJU1BBVENIKSAmJiBI
QVZFKERJU1BBVENIX0gpCisjZGVmaW5lIEVOQUJMRV9USFJFQURJTkdfTElCRElTUEFUQ0ggMQor
I2VsaWYgIWRlZmluZWQoRU5BQkxFX1RIUkVBRElOR19PUEVOTVApICYmIGRlZmluZWQoX09QRU5N
UCkKKyNkZWZpbmUgRU5BQkxFX1RIUkVBRElOR19PUEVOTVAgMQorI2VsaWYgIWRlZmluZWQoVEhS
RUFESU5HX0dFTkVSSUMpCisjZGVmaW5lIEVOQUJMRV9USFJFQURJTkdfR0VORVJJQyAxCisjZW5k
aWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9HQ19WQUxJREFUSU9OKSAmJiAhZGVmaW5lZChOREVC
VUcpCisjZGVmaW5lIEVOQUJMRV9HQ19WQUxJREFUSU9OIDEKKyNlbmRpZgorCisjaWYgIWRlZmlu
ZWQoRU5BQkxFX0JJTkRJTkdfSU5URUdSSVRZKSAmJiAhT1MoV0lORE9XUykKKyNkZWZpbmUgRU5B
QkxFX0JJTkRJTkdfSU5URUdSSVRZIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1RS
RUVfREVCVUdHSU5HKSAmJiAhZGVmaW5lZChOREVCVUcpCisjZGVmaW5lIEVOQUJMRV9UUkVFX0RF
QlVHR0lORyAxCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKENPQ09BKQorI2RlZmluZSBFTkFCTEVf
UkVTT1VSQ0VfVVNBR0UgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfT1BFTlRZUEVf
VkVSVElDQUwpICYmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQorI2RlZmluZSBFTkFC
TEVfT1BFTlRZUEVfVkVSVElDQUwgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfT1BF
TlRZUEVfTUFUSCkgJiYgKE9TKERBUldJTikgJiYgVVNFKENHKSkgfHwgKFVTRShGUkVFVFlQRSkg
JiYgIVBMQVRGT1JNKEdUSykpIHx8IChQTEFURk9STShXSU4pICYmIChVU0UoQ0cpIHx8IFVTRShD
QUlSTykpKQorI2RlZmluZSBFTkFCTEVfT1BFTlRZUEVfTUFUSCAxCisjZW5kaWYKKworLyoKKyAq
IEVuYWJsZSB0aGlzIHRvIHB1dCBlYWNoIElzb0hlYXAgYW5kIG90aGVyIGFsbG9jYXRpb24gY2F0
ZWdvcmllcyBpbnRvIHRoZWlyIG93biBtYWxsb2MgaGVhcHMsIHNvIHRoYXQgdG9vbHMgbGlrZSB2
bW1hcCBjYW4gc2hvdyBob3cgYmlnIGVhY2ggaGVhcCBpcy4KKyAqIFR1cm4gQkVOQUJMRV9NQUxM
T0NfSEVBUF9CUkVBS0RPV04gb24gaW4gYm1hbGxvYyB0b2dldGhlciB3aGVuIHVzaW5nIHRoaXMu
CisgKi8KKyNpZiAhZGVmaW5lZChFTkFCTEVfTUFMTE9DX0hFQVBfQlJFQUtET1dOKQorI2RlZmlu
ZSBFTkFCTEVfTUFMTE9DX0hFQVBfQlJFQUtET1dOIDAKKyNlbmRpZgorCisvKiBEaXNhYmxlIFNo
YXJlZEFycmF5QnVmZmVycyB1bnRpbCBTcGVjdHJlIHNlY3VyaXR5IGNvbmNlcm5zIGFyZSBtaXRp
Z2F0ZWQuICovCisjZGVmaW5lIEVOQUJMRV9TSEFSRURfQVJSQVlfQlVGRkVSIDAKKworI2lmIFBM
QVRGT1JNKE1BQykKKyNkZWZpbmUgRU5BQkxFX1dFQl9QTEFZQkFDS19DT05UUk9MU19NQU5BR0VS
IDEKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisvKiBGSVhNRTogVGhpcyBpcyBhIFVT
RSBzdHlsZSBtYWNybywgYXMgaXQgdHJpZ2dlcnMgdGhlIHVzZSBvZiBDRlVSTENvbm5lY3Rpb24g
ZnJhbWV3b3JrIHN0dWJzLiAqLworLyogRklYTUU6IElzIHRoaXMgc3RpbGwgbmVjZXNzYXJ5PyBD
RlVSTENvbm5lY3Rpb24gaXNuJ3QgdXNlZCBvbiBDb2NvYSBwbGF0Zm9ybXMgYW55IG1vcmUuICov
CisjZGVmaW5lIEVOQUJMRV9TRUNfSVRFTV9TSElNIDEKKyNlbmRpZgorCisjaWYgUExBVEZPUk0o
TUFDKQorI2RlZmluZSBFTkFCTEVfRlVMTF9LRVlCT0FSRF9BQ0NFU1MgMQorI2VuZGlmCisKKyNp
ZiAoKFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShQTEFZU1RBVElPTikgfHwgUExBVEZPUk0o
V1BFKSkgJiYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykpIHx8IFBMQVRGT1JNKEdUSykKKyNkZWZp
bmUgRU5BQkxFX0tJTkVUSUNfU0NST0xMSU5HIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5B
QkxFX01PTk9TUEFDRV9GT05UX0VYQ0VQVElPTikgJiYgKChQTEFURk9STShNQUMpICYmIF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPCAxMDE1MDApIHx8IFBMQVRGT1JNKFdBVENIT1Mp
IHx8IFBMQVRGT1JNKEFQUExFVFYpKQorI2RlZmluZSBFTkFCTEVfTU9OT1NQQUNFX0ZPTlRfRVhD
RVBUSU9OIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1BMQVRGT1JNX0RSSVZFTl9U
RVhUX0NIRUNLSU5HKSAmJiBQTEFURk9STShNQUNDQVRBTFlTVCkKKyNkZWZpbmUgRU5BQkxFX1BM
QVRGT1JNX0RSSVZFTl9URVhUX0NIRUNLSU5HIDEKKyNlbmRpZgorCisvKiBUaGlzIGZlYXR1cmUg
d29ya3MgYnkgZW1iZWRkaW5nIHRoZSBPcGNvZGVJRCBpbiB0aGUgMzIgYml0IGp1c3QgYmVmb3Jl
IHRoZSBnZW5lcmF0ZWQgTExpbnQgY29kZQorICAgdGhhdCBleGVjdXRlcyBlYWNoIG9wY29kZS4g
SXQgY2Fubm90IGJlIHN1cHBvcnRlZCBieSB0aGUgQ0xvb3Agc2luY2UgdGhlcmUncyBubyB3YXkg
dG8gZW1iZWQgdGhlCisgICBPcGNvZGVJRCB3b3JkIGluIHRoZSBDTG9vcCdzIHN3aXRjaCBzdGF0
ZW1lbnQgY2FzZXMuIEl0IGlzIGFsc28gY3VycmVudGx5IG5vdCBpbXBsZW1lbnRlZCBmb3IgTVNW
Qy4KKyovCisjaWYgIWRlZmluZWQoRU5BQkxFX0xMSU5UX0VNQkVEREVEX09QQ09ERV9JRCkgJiYg
IUVOQUJMRShDX0xPT1ApICYmICFDT01QSUxFUihNU1ZDKSAmJiAoQ1BVKFg4NikgfHwgQ1BVKFg4
Nl82NCkgfHwgQ1BVKEFSTTY0KSB8fCAoQ1BVKEFSTV9USFVNQjIpICYmIE9TKERBUldJTikpKQor
I2RlZmluZSBFTkFCTEVfTExJTlRfRU1CRURERURfT1BDT0RFX0lEIDEKKyNlbmRpZgorCisKKy8q
IEFzc2VydHMsIGludmFyaWFudHMgZm9yIG1hY3JvIGRlZmluaXRpb25zICovCisKKyNpZiBFTkFC
TEUoVklERU9fVFJBQ0spICYmICFFTkFCTEUoVklERU8pCisjZXJyb3IgIkVOQUJMRShWSURFT19U
UkFDSykgcmVxdWlyZXMgRU5BQkxFKFZJREVPKSIKKyNlbmRpZgorCisjaWYgRU5BQkxFKE1FRElB
X0NPTlRST0xTX1NDUklQVCkgJiYgIUVOQUJMRShWSURFTykKKyNlcnJvciAiRU5BQkxFKE1FRElB
X0NPTlRST0xTX1NDUklQVCkgcmVxdWlyZXMgRU5BQkxFKFZJREVPKSIKKyNlbmRpZgorCisjaWYg
RU5BQkxFKElOU1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hFUlMpICYmICFFTkFCTEUoUkVNT1RF
X0lOU1BFQ1RPUikKKyNlcnJvciAiRU5BQkxFKElOU1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hF
UlMpIHJlcXVpcmVzIEVOQUJMRShSRU1PVEVfSU5TUEVDVE9SKSIKKyNlbmRpZgorCisjaWYgRU5B
QkxFKElPU19UT1VDSF9FVkVOVFMpICYmICFFTkFCTEUoVE9VQ0hfRVZFTlRTKQorI2Vycm9yICJF
TkFCTEUoSU9TX1RPVUNIX0VWRU5UUykgcmVxdWlyZXMgRU5BQkxFKFRPVUNIX0VWRU5UUykiCisj
ZW5kaWYKKworI2lmIEVOQUJMRShXRUJHTCkgJiYgIUVOQUJMRShHUkFQSElDU19DT05URVhUX0dM
KQorI2Vycm9yICJFTkFCTEUoV0VCR0wpIHJlcXVpcmVzIEVOQUJMRShHUkFQSElDU19DT05URVhU
X0dMKSIKKyNlbmRpZgorCisjaWYgRU5BQkxFKFdFQkdMMikgJiYgIUVOQUJMRShXRUJHTCkKKyNl
cnJvciAiRU5BQkxFKFdFQkdMMikgcmVxdWlyZXMgRU5BQkxFKFdFQkdMKSIKKyNlbmRpZgpJbmRl
eDogU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaAkocmV2aXNpb24gMjU1NTUyKQorKysg
U291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNi0yMDE5IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNi0yMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwNy0yMDA5IFRvcmNoIE1v
YmlsZSwgSW5jLgogICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDExIFJlc2VhcmNoIEluIE1vdGlv
biBMaW1pdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEzIFNh
bXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCkBAIC0zMiwyNzUgKzMyLDE3
MiBAQAogI2Vycm9yICJQbGVhc2UgI2luY2x1ZGUgPHd0Zi9QbGF0Zm9ybS5oPiBpbnN0ZWFkIG9m
IHRoaXMgZmlsZSBkaXJlY3RseS4iCiAjZW5kaWYKIAotCi0jZGVmaW5lIEVOQUJMRShXVEZfRkVB
VFVSRSkgKGRlZmluZWQgRU5BQkxFXyMjV1RGX0ZFQVRVUkUgJiYgRU5BQkxFXyMjV1RGX0ZFQVRV
UkUpCi0KLS8qIFVzZSB0aGlzIGZpbGUgdG8gbGlzdCBfYWxsXyBFTkFCTEUoKSBtYWNyb3MuIERl
ZmluZSB0aGUgbWFjcm9zIHRvIGJlIG9uZSBvZiB0aGUgZm9sbG93aW5nIHZhbHVlczoKLSAqICAt
ICIwIiBkaXNhYmxlcyB0aGUgZmVhdHVyZSBieSBkZWZhdWx0LiBUaGUgZmVhdHVyZSBjYW4gc3Rp
bGwgYmUgZW5hYmxlZCBmb3IgYSBzcGVjaWZpYyBwb3J0IG9yIGVudmlyb25tZW50LgotICogIC0g
IjEiIGVuYWJsZXMgdGhlIGZlYXR1cmUgYnkgZGVmYXVsdC4gVGhlIGZlYXR1cmUgY2FuIHN0aWxs
IGJlIGRpc2FibGVkIGZvciBhIHNwZWNpZmljIHBvcnQgb3IgZW52aXJvbm1lbnQuCi0gKgotICog
VGhlIGZlYXR1cmUgZGVmYXVsdHMgaW4gdGhpcyBmaWxlIGFyZSBvbmx5IHRha2VuIGludG8gYWNj
b3VudCBpZiB0aGUgKHBvcnQgc3BlY2lmaWMpIGJ1aWxkIHN5c3RlbQotICogaGFzIG5vdCBlbmFi
bGVkIG9yIGRpc2FibGVkIGEgcGFydGljdWxhciBmZWF0dXJlLgotICoKLSAqIFVzZSB0aGlzIGZp
bGUgdG8gZGVmaW5lIEVOQUJMRSgpIG1hY3JvcyBvbmx5LiBEbyBub3QgdXNlIHRoaXMgZmlsZSB0
byBkZWZpbmUgVVNFKCkgb3IgbWFjcm9zICEKLSAqCi0gKiBPbmx5IGRlZmluZSBhIG1hY3JvIGlm
IGl0IHdhcyBub3QgZGVmaW5lZCBiZWZvcmUgLSBhbHdheXMgY2hlY2sgZm9yICFkZWZpbmVkIGZp
cnN0LgotICoKLSAqIEtlZXAgdGhlIGZpbGUgc29ydGVkIGJ5IHRoZSBuYW1lIG9mIHRoZSBkZWZp
bmVzLiBBcyBhbiBleGNlcHRpb24geW91IGNhbiBjaGFuZ2UgdGhlIG9yZGVyCi0gKiB0byBhbGxv
dyBpbnRlcmRlcGVuZGVuY2llcyBiZXR3ZWVuIHRoZSBkZWZhdWx0IHZhbHVlcy4KLSAqCi0gKiBC
ZWxvdyBhcmUgYSBmZXcgcG90ZW50aWFsIGNvbW1hbmRzIHRvIHRha2UgYWR2YW50YWdlIG9mIHRo
aXMgZmlsZSBydW5uaW5nIGZyb20gdGhlIFNvdXJjZS9XVEYgZGlyZWN0b3J5Ci0gKgotICogR2V0
IHRoZSBsaXN0IG9mIGZlYXR1cmUgZGVmaW5lczogZ3JlcCAtbyAiRU5BQkxFX1woXHdcK1wpIiB3
dGYvUGxhdGZvcm1FbmFibGUuaCB8IHNvcnQgfCB1bmlxCi0gKiBHZXQgdGhlIGxpc3Qgb2YgZmVh
dHVyZXMgZW5hYmxlZCBieSBkZWZhdWx0IGZvciBhIFBMQVRGT1JNKFhYWCk6IGdjYyAtRSAtZE0g
LUkuIC1EV1RGX1BMQVRGT1JNX1hYWCAid3RmL1BsYXRmb3JtLmgiIHwgZ3JlcCAiRU5BQkxFX1x3
XCsgMSIgfCBjdXQgLWQnICcgLWYyIHwgc29ydAotICovCi0KLQotLyogRklYTUU6IFRoaXMgc2hv
dWxkIGJlIHJlbmFtZWQgdG8gRU5BQkxFX0FTU0VSVFMgZm9yIGNvbnNpc3RlbmN5IGFuZCBzbyBp
dCBjYW4gYmUgdXNlZCBhcyBFTkFCTEUoQVNTRVJUUykuICovCi0vKiBBU1NFUlRfRU5BQkxFRCBz
aG91bGQgYmUgdHJ1ZSBpZiB3ZSB3YW50IHRoZSBjdXJyZW50IGNvbXBpbGF0aW9uIHVuaXQgdG8K
LSAgIGRvIGRlYnVnIGFzc2VydGlvbiBjaGVja3MgdW5jb25kaXRpb25hbGx5IChlLmcuIHRyZWF0
IGEgZGVidWcgQVNTRVJUCi0gICBsaWtlIGEgUkVMRUFTRV9BU1NFUlQuCi0qLwotI2lmbmRlZiBB
U1NFUlRfRU5BQkxFRAotI2lmZGVmIE5ERUJVRwotI2RlZmluZSBBU1NFUlRfRU5BQkxFRCAwCi0j
ZWxzZQotI2RlZmluZSBBU1NFUlRfRU5BQkxFRCAxCi0jZW5kaWYKKyNpZiAhUExBVEZPUk0oQ09D
T0EpCisjZXJyb3IgIlRoaXMgZmlsZSBzaG91bGQgb25seSBiZSBpbmNsdWRlZCB3aGVuIGJ1aWxk
aW5nIGZvciBvbmUgb2YgQXBwbGUncyBDb2NvYSBwbGF0Zm9ybXMuIgogI2VuZGlmCiAKLS8qID09
PT0gUGxhdGZvcm0gYWRkaXRpb25zOiBhZGRpdGlvbnMgdG8gUGxhdGZvcm1FbmFibGUuaCBmcm9t
IG91dHNpZGUgdGhlIG1haW4gcmVwb3NpdG9yeSA9PT09ICovCiAKLSNpZiBVU0UoQVBQTEVfSU5U
RVJOQUxfU0RLKSAmJiBfX2hhc19pbmNsdWRlKDxXZWJLaXRBZGRpdGlvbnMvQWRkaXRpb25hbEZl
YXR1cmVEZWZpbmVzLmg+KQotI2luY2x1ZGUgPFdlYktpdEFkZGl0aW9ucy9BZGRpdGlvbmFsRmVh
dHVyZURlZmluZXMuaD4KLSNlbmRpZgotCi0vKiBGSVhNRTogTW92ZSBvdXQgdGhlIFBMQVRGT1JN
IHNwZWNpZmljIHJ1bGVzIGludG8gcGxhdGZvcm0gc3BlY2lmaWMgZmlsZXMuICovCiAKLS8qIC0t
LS0tLS0tLSBBcHBsZSBpT1MgKGJ1dCBub3QgbWFjT1MpIHBvcnQgLS0tLS0tLS0tICovCi0jaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKIAotI2lmICFkZWZpbmVkKEVOQUJMRV9BSVJQTEFZX1BJQ0tF
UikKLSNpZiAhUExBVEZPUk0oTUFDQ0FUQUxZU1QpCisjaWYgIWRlZmluZWQoRU5BQkxFX0FJUlBM
QVlfUElDS0VSKSAmJiAoUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgIVBMQVRGT1JNKE1BQ0NBVEFM
WVNUKQogI2RlZmluZSBFTkFCTEVfQUlSUExBWV9QSUNLRVIgMQogI2VuZGlmCi0jZW5kaWYKIAot
I2lmICFkZWZpbmVkKEVOQUJMRV9BUFBMRV9QQVlfUkVNT1RFX1VJKQotI2lmICFQTEFURk9STShB
UFBMRVRWKSAmJiAhUExBVEZPUk0oTUFDQ0FUQUxZU1QpICYmICFQTEFURk9STShXQVRDSE9TKQor
I2lmICFkZWZpbmVkKEVOQUJMRV9BUFBMRV9QQVlfUkVNT1RFX1VJKSAmJiAoUExBVEZPUk0oSU9T
X0ZBTUlMWSkgJiYgIVBMQVRGT1JNKEFQUExFVFYpICYmICFQTEFURk9STShNQUNDQVRBTFlTVCkg
JiYgIVBMQVRGT1JNKFdBVENIT1MpKQogI2RlZmluZSBFTkFCTEVfQVBQTEVfUEFZX1JFTU9URV9V
SSAxCiAjZW5kaWYKLSNlbmRpZgogCi0jaWYgIWRlZmluZWQoRU5BQkxFX0NPTlRFTlRfRVhURU5T
SU9OUykKKyNpZiAhZGVmaW5lZChFTkFCTEVfQ09OVEVOVF9FWFRFTlNJT05TKSAmJiAoUExBVEZP
Uk0oSU9TX0ZBTUlMWSkgfHwgUExBVEZPUk0oTUFDKSkKICNkZWZpbmUgRU5BQkxFX0NPTlRFTlRf
RVhURU5TSU9OUyAxCiAjZW5kaWYKIAotI2lmICFkZWZpbmVkKEVOQUJMRV9DT05URVhUX01FTlVT
KQorI2lmICFkZWZpbmVkKEVOQUJMRV9DT05URVhUX01FTlVTKSAmJiBQTEFURk9STShJT1NfRkFN
SUxZKQogI2RlZmluZSBFTkFCTEVfQ09OVEVYVF9NRU5VUyAwCiAjZW5kaWYKIAotI2lmICFkZWZp
bmVkKEVOQUJMRV9DT05URVhUX01FTlVfRVZFTlQpCi0jaWYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNU
KQorI2lmICFkZWZpbmVkKEVOQUJMRV9DT05URVhUX01FTlVfRVZFTlQpICYmIChQTEFURk9STShJ
T1NfRkFNSUxZKSAmJiAhUExBVEZPUk0oTUFDQ0FUQUxZU1QpKQogI2RlZmluZSBFTkFCTEVfQ09O
VEVYVF9NRU5VX0VWRU5UIDAKICNlbmRpZgotI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChFTkFCTEVf
Q1VTVE9NX0NVUlNPUl9TVVBQT1JUKQorI2lmICFkZWZpbmVkKEVOQUJMRV9DVVNUT01fQ1VSU09S
X1NVUFBPUlQpICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAjZGVmaW5lIEVOQUJMRV9DVVNUT01f
Q1VSU09SX1NVUFBPUlQgMAogI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChFTkFCTEVfRFJBR19TVVBQ
T1JUKQorI2lmICFkZWZpbmVkKEVOQUJMRV9EUkFHX1NVUFBPUlQpICYmIFBMQVRGT1JNKElPU19G
QU1JTFkpCiAjZGVmaW5lIEVOQUJMRV9EUkFHX1NVUFBPUlQgMAogI2VuZGlmCiAKLSNpZiAhZGVm
aW5lZChFTkFCTEVfR0VPTE9DQVRJT04pCisjaWYgIWRlZmluZWQoRU5BQkxFX0dFT0xPQ0FUSU9O
KSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQogI2RlZmluZSBFTkFCTEVfR0VPTE9DQVRJT04gMQog
I2VuZGlmCiAKLSNpZiAhZGVmaW5lZChFTkFCTEVfSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRD
SEVSUykKKyNpZiAhZGVmaW5lZChFTkFCTEVfSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVS
UykgJiYgKFBMQVRGT1JNKElPU19GQU1JTFkpIHx8IFBMQVRGT1JNKE1BQykpCiAjZGVmaW5lIEVO
QUJMRV9JTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENIRVJTIDEKICNlbmRpZgogCi0jaWYgIWRl
ZmluZWQoRU5BQkxFX0lOU1BFQ1RPUl9URUxFTUVUUlkpCi0jZGVmaW5lIEVOQUJMRV9JTlNQRUNU
T1JfVEVMRU1FVFJZIDAKKyNpZiAhZGVmaW5lZChFTkFCTEVfSU5TUEVDVE9SX1RFTEVNRVRSWSkg
JiYgUExBVEZPUk0oTUFDKQorI2RlZmluZSBFTkFCTEVfSU5TUEVDVE9SX1RFTEVNRVRSWSAxCiAj
ZW5kaWYKIAotI2lmICFkZWZpbmVkKEVOQUJMRV9MRVRURVJQUkVTUykKKyNpZiAhZGVmaW5lZChF
TkFCTEVfTEVUVEVSUFJFU1MpICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAjZGVmaW5lIEVOQUJM
RV9MRVRURVJQUkVTUyAxCiAjZW5kaWYKIAotI2lmICFkZWZpbmVkKEVOQUJMRV9BVVRPQ09SUkVD
VCkKKyNpZiAhZGVmaW5lZChFTkFCTEVfQVVUT0NPUlJFQ1QpICYmIFBMQVRGT1JNKElPU19GQU1J
TFkpCiAjZGVmaW5lIEVOQUJMRV9BVVRPQ09SUkVDVCAxCiAjZW5kaWYKIAotI2lmICFkZWZpbmVk
KEVOQUJMRV9BVVRPQ0FQSVRBTElaRSkKKyNpZiAhZGVmaW5lZChFTkFCTEVfQVVUT0NBUElUQUxJ
WkUpICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAjZGVmaW5lIEVOQUJMRV9BVVRPQ0FQSVRBTEla
RSAxCiAjZW5kaWYKIAotI2lmICFkZWZpbmVkKEVOQUJMRV9JT1NfR0VTVFVSRV9FVkVOVFMpICYm
IFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisjaWYgIWRlZmluZWQoRU5BQkxFX0lPU19HRVNUVVJF
X0VWRU5UUykgJiYgKFBMQVRGT1JNKElPU19GQU1JTFkpICYmIFVTRShBUFBMRV9JTlRFUk5BTF9T
REspKQogI2RlZmluZSBFTkFCTEVfSU9TX0dFU1RVUkVfRVZFTlRTIDEKICNlbmRpZgogCi0jaWYg
IWRlZmluZWQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykKLSNkZWZpbmUgRU5BQkxFX1RFWFRfQVVU
T1NJWklORyAxCisjaWYgIWRlZmluZWQoRU5BQkxFX0lPU19UT1VDSF9FVkVOVFMpICYmIChQTEFU
Rk9STShJT1NfRkFNSUxZKSAmJiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKSkKKyNkZWZpbmUgRU5B
QkxFX0lPU19UT1VDSF9FVkVOVFMgMQogI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChFTkFCTEVfSU9T
X1RPVUNIX0VWRU5UUykgJiYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKLSNkZWZpbmUgRU5BQkxF
X0lPU19UT1VDSF9FVkVOVFMgMQorI2lmICFkZWZpbmVkKEVOQUJMRV9URVhUX0FVVE9TSVpJTkcp
ICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCisjZGVmaW5lIEVOQUJMRV9URVhUX0FVVE9TSVpJTkcg
MQogI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChFTkFCTEVfTUVURVJfRUxFTUVOVCkKKyNpZiAhZGVm
aW5lZChFTkFCTEVfTUVURVJfRUxFTUVOVCkgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICNkZWZp
bmUgRU5BQkxFX01FVEVSX0VMRU1FTlQgMAogI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChFTkFCTEVf
TkVUU0NBUEVfUExVR0lOX0FQSSkKKyNpZiAhZGVmaW5lZChFTkFCTEVfTkVUU0NBUEVfUExVR0lO
X0FQSSkgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICNkZWZpbmUgRU5BQkxFX05FVFNDQVBFX1BM
VUdJTl9BUEkgMAogI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChFTkFCTEVfT1JJRU5UQVRJT05fRVZF
TlRTKQorI2lmICFkZWZpbmVkKEVOQUJMRV9PUklFTlRBVElPTl9FVkVOVFMpICYmIFBMQVRGT1JN
KElPU19GQU1JTFkpCiAjZGVmaW5lIEVOQUJMRV9PUklFTlRBVElPTl9FVkVOVFMgMQogI2VuZGlm
CiAKLSNpZiAhZGVmaW5lZChFTkFCTEVfUE9JTlRFUl9MT0NLKQorI2lmICFkZWZpbmVkKEVOQUJM
RV9QT0lOVEVSX0xPQ0spICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAjZGVmaW5lIEVOQUJMRV9Q
T0lOVEVSX0xPQ0sgMAogI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChFTkFCTEVfUkVNT1RFX0lOU1BF
Q1RPUikKKyNpZiAhZGVmaW5lZChFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUikgJiYgKFBMQVRGT1JN
KElPU19GQU1JTFkpIHx8IFBMQUZPUk0oTUFDKSkKICNkZWZpbmUgRU5BQkxFX1JFTU9URV9JTlNQ
RUNUT1IgMQogI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChFTkFCTEVfVEVYVF9DQVJFVCkKKyNpZiAh
ZGVmaW5lZChFTkFCTEVfVEVYVF9DQVJFVCkgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICNkZWZp
bmUgRU5BQkxFX1RFWFRfQ0FSRVQgMAogI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChFTkFCTEVfVEVY
VF9TRUxFQ1RJT04pCisjaWYgIWRlZmluZWQoRU5BQkxFX1RFWFRfU0VMRUNUSU9OKSAmJiBQTEFU
Rk9STShJT1NfRkFNSUxZKQogI2RlZmluZSBFTkFCTEVfVEVYVF9TRUxFQ1RJT04gMAogI2VuZGlm
CiAKLS8qIEZJWE1FOiBSZW1vdmUgdGhlIFVTRShBUFBMRV9JTlRFUk5BTF9TREspIGNvbmp1bmN0
IG9uY2Ugd2Ugc3VwcG9ydCB0b3VjaCBldmVudHMgd2hlbiBidWlsZGluZyBhZ2FpbnN0Ci10aGUg
cHVibGljIGlPUyBTREsuIFNlZSA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTc5MTY3Pi4gKi8KLSNp
ZiAhZGVmaW5lZChFTkFCTEVfVE9VQ0hfRVZFTlRTKSAmJiBVU0UoQVBQTEVfSU5URVJOQUxfU0RL
KQorI2lmICFkZWZpbmVkKEVOQUJMRV9UT1VDSF9FVkVOVFMpICYmIChQTEFURk9STShJT1NfRkFN
SUxZKSAmJiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKSkKICNkZWZpbmUgRU5BQkxFX1RPVUNIX0VW
RU5UUyAxCiAjZW5kaWYKIAotI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJfQVJDSElWRSkKKyNpZiAh
ZGVmaW5lZChFTkFCTEVfV0VCX0FSQ0hJVkUpICYmIChQTEFURk9STShJT1NfRkFNSUxZKSB8fCBQ
TEFGT1JNKE1BQykpCiAjZGVmaW5lIEVOQUJMRV9XRUJfQVJDSElWRSAxCiAjZW5kaWYKIAotI2lm
ICFkZWZpbmVkKEVOQUJMRV9XRUJHTCkKKyNpZiAhZGVmaW5lZChFTkFCTEVfV0VCR0wpICYmIFBM
QVRGT1JNKElPU19GQU1JTFkpCiAjZGVmaW5lIEVOQUJMRV9XRUJHTCAxCiAjZW5kaWYKIAotI2lm
ICFkZWZpbmVkKEVOQUJMRV9QUklNQVJZX1NOQVBTSE9UVEVEX1BMVUdJTl9IRVVSSVNUSUMpCisj
aWYgIWRlZmluZWQoRU5BQkxFX1BSSU1BUllfU05BUFNIT1RURURfUExVR0lOX0hFVVJJU1RJQykg
JiYgKFBMQVRGT1JNKElPU19GQU1JTFkpIHx8IFBMQUZPUk0oTUFDKSkKICNkZWZpbmUgRU5BQkxF
X1BSSU1BUllfU05BUFNIT1RURURfUExVR0lOX0hFVVJJU1RJQyAxCiAjZW5kaWYKIAotI2lmICFk
ZWZpbmVkKEVOQUJMRV9ET1dOTE9BRF9BVFRSSUJVVEUpCi0jZGVmaW5lIEVOQUJMRV9ET1dOTE9B
RF9BVFRSSUJVVEUgMQotI2VuZGlmCi0KICNpZiAhZGVmaW5lZChFTkFCTEVfV0tQREZWSUVXKSAm
JiBQTEFURk9STShJT1MpCiAjZGVmaW5lIEVOQUJMRV9XS1BERlZJRVcgMQogI2VuZGlmCiAKLSNp
ZiAhZGVmaW5lZChFTkFCTEVfTUVESUFfU09VUkNFKQotI2RlZmluZSBFTkFCTEVfTUVESUFfU09V
UkNFIDAKKyNpZiAhZGVmaW5lZChFTkFCTEVfTUVESUFfU09VUkNFKSAmJiBQTEFURk9STShNQUMp
CisjZGVmaW5lIEVOQUJMRV9NRURJQV9TT1VSQ0UgMQogI2VuZGlmCiAKICNpZiAhZGVmaW5lZChF
TkFCTEVfUFJFVklFV19DT05WRVJURVIpICYmIFBMQVRGT1JNKElPUykKICNkZWZpbmUgRU5BQkxF
X1BSRVZJRVdfQ09OVkVSVEVSIDEKICNlbmRpZgogCi0jaWYgIWRlZmluZWQoRU5BQkxFX01FVEFf
VklFV1BPUlQpCisjaWYgIWRlZmluZWQoRU5BQkxFX01FVEFfVklFV1BPUlQpICYmIFBMQVRGT1JN
KElPU19GQU1JTFkpCiAjZGVmaW5lIEVOQUJMRV9NRVRBX1ZJRVdQT1JUIDEKICNlbmRpZgogCi0j
ZW5kaWYgLyogUExBVEZPUk0oSU9TX0ZBTUlMWSkgKi8KLQotLyogLS0tLS0tLS0tIEFwcGxlIHdh
dGNoT1MgcG9ydCAtLS0tLS0tLS0gKi8KLSNpZiBQTEFURk9STShXQVRDSE9TKQotCi0jZW5kaWYg
LyogUExBVEZPUk0oV0FUQ0hPUykgKi8KLQotLyogLS0tLS0tLS0tIEFwcGxlIG1hY09TIHBvcnQg
KG5vdCBpT1MpIC0tLS0tLS0tLSAqLwotI2lmIFBMQVRGT1JNKE1BQykKLQotI2lmICFkZWZpbmVk
KEVOQUJMRV9DT05URU5UX0VYVEVOU0lPTlMpCi0jZGVmaW5lIEVOQUJMRV9DT05URU5UX0VYVEVO
U0lPTlMgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpCisj
aWYgIWRlZmluZWQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAmJiBQTEFURk9STShNQUMpCiAjZGVm
aW5lIEVOQUJMRV9GVUxMU0NSRUVOX0FQSSAxCiAjZW5kaWYKIAotI2lmICFkZWZpbmVkKEVOQUJM
RV9SRU1PVEVfSU5TUEVDVE9SKQotI2RlZmluZSBFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUiAxCi0j
ZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9JTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENI
RVJTKQotI2RlZmluZSBFTkFCTEVfSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUyAxCi0j
ZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9JTlNQRUNUT1JfVEVMRU1FVFJZKQotI2RlZmlu
ZSBFTkFCTEVfSU5TUEVDVE9SX1RFTEVNRVRSWSAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVO
QUJMRV9TTU9PVEhfU0NST0xMSU5HKQorI2lmICFkZWZpbmVkKEVOQUJMRV9TTU9PVEhfU0NST0xM
SU5HKSAmJiBQTEFURk9STShNQUMpCiAjZGVmaW5lIEVOQUJMRV9TTU9PVEhfU0NST0xMSU5HIDEK
ICNlbmRpZgogCi0jaWYgRU5BQkxFKFZJREVPKQotI2lmICFkZWZpbmVkKEVOQUJMRV9WSURFT19U
UkFDSykKKyNpZiAhZGVmaW5lZChFTkFCTEVfVklERU9fVFJBQ0spICYmIFBMQVRGT1JNKE1BQykg
JiYgRU5BQkxFKFZJREVPKQogI2RlZmluZSBFTkFCTEVfVklERU9fVFJBQ0sgMQogI2VuZGlmCi0j
ZW5kaWYKIAotI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJfQVJDSElWRSkKLSNkZWZpbmUgRU5BQkxF
X1dFQl9BUkNISVZFIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX1dFQl9BVURJTykK
KyNpZiAhZGVmaW5lZChFTkFCTEVfV0VCX0FVRElPKSAmJiBQTEFURk9STShNQUMpCiAjZGVmaW5l
IEVOQUJMRV9XRUJfQVVESU8gMQogI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChFTkFCTEVfQ1VSU09S
X1ZJU0lCSUxJVFkpCisjaWYgIWRlZmluZWQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKSAmJiBQ
TEFURk9STShNQUMpCiAjZGVmaW5lIEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSAxCiAjZW5kaWYK
IAotI2lmICFkZWZpbmVkKEVOQUJMRV9QUklNQVJZX1NOQVBTSE9UVEVEX1BMVUdJTl9IRVVSSVNU
SUMpCi0jZGVmaW5lIEVOQUJMRV9QUklNQVJZX1NOQVBTSE9UVEVEX1BMVUdJTl9IRVVSSVNUSUMg
MQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfTUFDX0dFU1RVUkVfRVZFTlRTKSAmJiBV
U0UoQVBQTEVfSU5URVJOQUxfU0RLKQorI2lmICFkZWZpbmVkKEVOQUJMRV9NQUNfR0VTVFVSRV9F
VkVOVFMpICYmIChQTEFURk9STShNQUMpICYmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspKQogI2Rl
ZmluZSBFTkFCTEVfTUFDX0dFU1RVUkVfRVZFTlRTIDEKICNlbmRpZgogCi0jaWYgIWRlZmluZWQo
RU5BQkxFX1dFQlBST0NFU1NfTlNSVU5MT09QKQotI2RlZmluZSBFTkFCTEVfV0VCUFJPQ0VTU19O
U1JVTkxPT1AgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE0MDAKKyNpZiAh
ZGVmaW5lZChFTkFCTEVfV0VCUFJPQ0VTU19OU1JVTkxPT1ApICYmIChQTEFURk9STShNQUMpICYm
IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNDAwKQorI2RlZmluZSBFTkFC
TEVfV0VCUFJPQ0VTU19OU1JVTkxPT1AgMQogI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChFTkFCTEVf
V0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCi0jZGVmaW5lIEVOQUJMRV9XRUJQUk9D
RVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORyBFTkFCTEVfV0VCUFJPQ0VTU19OU1JVTkxPT1AKKyNp
ZiAhZGVmaW5lZChFTkFCTEVfV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpICYmIChQ
TEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNDAw
KQorI2RlZmluZSBFTkFCTEVfV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcgMQogI2Vu
ZGlmCiAKLSNpZiAhZGVmaW5lZChFTkFCTEVfTUVESUFfU09VUkNFKQotI2RlZmluZSBFTkFCTEVf
TUVESUFfU09VUkNFIDEKLSNlbmRpZgotCi0jZW5kaWYgLyogUExBVEZPUk0oTUFDKSAqLwotCi0v
KiAtLS0tLS0tLS0gQXBwbGUgQ29jb2EgcGxhdGZvcm1zIC0tLS0tLS0tLSAqLwotCi0jaWYgUExB
VEZPUk0oQ09DT0EpCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfTEVHQUNZX0VOQ1JZUFRFRF9NRURJ
QSkKLSNpZiBQTEFURk9STShNQUNDQVRBTFlTVCkKLSNkZWZpbmUgRU5BQkxFX0xFR0FDWV9FTkNS
WVBURURfTUVESUEgMAotI2Vsc2UKKyNpZiAhZGVmaW5lZChFTkFCTEVfTEVHQUNZX0VOQ1JZUFRF
RF9NRURJQSkgJiYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQogI2RlZmluZSBFTkFCTEVfTEVHQUNZ
X0VOQ1JZUFRFRF9NRURJQSAxCiAjZW5kaWYKLSNlbmRpZgogCiAjaWYgIWRlZmluZWQoRU5BQkxF
X0ZJTEVfUkVQTEFDRU1FTlQpCiAjZGVmaW5lIEVOQUJMRV9GSUxFX1JFUExBQ0VNRU5UIDEKQEAg
LTMxOCw2OTkgKzIxNSwxMCBAQCB0aGUgcHVibGljIGlPUyBTREsuIFNlZSA8aHR0cHM6Ly93ZWJr
aXQuCiAjZGVmaW5lIEVOQUJMRV9VSV9TSURFX0NPTVBPU0lUSU5HIDEKICNlbmRpZgogCi0jZW5k
aWYgLyogUExBVEZPUk0oQ09DT0EpICovCi0KLSNpZiAhUExBVEZPUk0oQ09DT0EpCi0KLSNpZiAh
ZGVmaW5lZChKU0NfT0JKQ19BUElfRU5BQkxFRCkKLSNkZWZpbmUgSlNDX09CSkNfQVBJX0VOQUJM
RUQgMAotI2VuZGlmCi0KLSNlbmRpZiAvKiAhUExBVEZPUk0oQ09DT0EpICovCi0KLQotLyogLS0t
LS0tLS0tIEFwcGxlIFdpbmRvd3MgcG9ydCAtLS0tLS0tLS0gKi8KLSNpZiBQTEFURk9STShXSU4p
ICYmICFQTEFURk9STShXSU5fQ0FJUk8pCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfRlVMTFNDUkVF
Tl9BUEkpCi0jZGVmaW5lIEVOQUJMRV9GVUxMU0NSRUVOX0FQSSAxCi0jZW5kaWYKLQotI2lmICFk
ZWZpbmVkKEVOQUJMRV9XRUJfQVJDSElWRSkKLSNkZWZpbmUgRU5BQkxFX1dFQl9BUkNISVZFIDEK
LSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX1dFQkdMKQotI2RlZmluZSBFTkFCTEVfV0VC
R0wgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfR0VPTE9DQVRJT04pCi0jZGVmaW5l
IEVOQUJMRV9HRU9MT0NBVElPTiAxCi0jZW5kaWYKLQotI2VuZGlmIC8qIFBMQVRGT1JNKFdJTikg
JiYgIVBMQVRGT1JNKFdJTl9DQUlSTykgKi8KLQotLyogLS0tLS0tLS0tIFdpbmRvd3MgQ0FJUk8g
cG9ydCAtLS0tLS0tLS0gKi8KLS8qIFBMQVRGT1JNKFdJTl9DQUlSTykgaXMgYSBzcGVjaWFsaXph
dGlvbiBvZiBQTEFURk9STShXSU4pLiAqLwotLyogUExBVEZPUk0oV0lOKSBpcyBhbHdheXMgZW5h
YmxlZCB3aGVuIFBMQVRGT1JNKFdJTl9DQUlSTykgaXMgZW5hYmxlZC4gKi8KLSNpZiBQTEFURk9S
TShXSU5fQ0FJUk8pCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfV0VCX0FSQ0hJVkUpCi0jZGVmaW5l
IEVOQUJMRV9XRUJfQVJDSElWRSAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJH
TCkKLSNkZWZpbmUgRU5BQkxFX1dFQkdMIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxF
X0dFT0xPQ0FUSU9OKQotI2RlZmluZSBFTkFCTEVfR0VPTE9DQVRJT04gMQotI2VuZGlmCi0KLSNl
bmRpZiAvKiBQTEFURk9STShXSU5fQ0FJUk8pICovCi0KLS8qIEVOQUJMRSBtYWNybyBkZWZhdWx0
cyBmb3IgV2ViQ29yZSAqLwotLyogRG8gbm90IHVzZSBQTEFURk9STSgpIHRlc3RzIGluIHRoaXMg
c2VjdGlvbiAhICovCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfM0RfVFJBTlNGT1JNUykKLSNkZWZp
bmUgRU5BQkxFXzNEX1RSQU5TRk9STVMgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVf
QUNDRVNTSUJJTElUWSkKLSNkZWZpbmUgRU5BQkxFX0FDQ0VTU0lCSUxJVFkgMQotI2VuZGlmCi0K
LSNpZiAhZGVmaW5lZChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKQotI2RlZmluZSBFTkFC
TEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxF
X09WRVJGTE9XX1NDUk9MTElOR19UT1VDSCkKLSNkZWZpbmUgRU5BQkxFX09WRVJGTE9XX1NDUk9M
TElOR19UT1VDSCAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9BUE5HKQotI2RlZmlu
ZSBFTkFCTEVfQVBORyAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9DSEFOTkVMX01F
U1NBR0lORykKLSNkZWZpbmUgRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HIDEKLSNlbmRpZgotCi0j
aWYgIWRlZmluZWQoRU5BQkxFX0NPTlRFTlRfRVhURU5TSU9OUykKLSNkZWZpbmUgRU5BQkxFX0NP
TlRFTlRfRVhURU5TSU9OUyAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9DT05URVhU
X01FTlVTKQotI2RlZmluZSBFTkFCTEVfQ09OVEVYVF9NRU5VUyAxCi0jZW5kaWYKLQotI2lmICFk
ZWZpbmVkKEVOQUJMRV9DT05URVhUX01FTlVfRVZFTlQpCi0jZGVmaW5lIEVOQUJMRV9DT05URVhU
X01FTlVfRVZFTlQgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTM19URVhUKQot
I2RlZmluZSBFTkFCTEVfQ1NTM19URVhUIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxF
X0NTU19CT1hfREVDT1JBVElPTl9CUkVBSykKLSNkZWZpbmUgRU5BQkxFX0NTU19CT1hfREVDT1JB
VElPTl9CUkVBSyAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9DU1NfREVWSUNFX0FE
QVBUQVRJT04pCi0jZGVmaW5lIEVOQUJMRV9DU1NfREVWSUNFX0FEQVBUQVRJT04gMAotI2VuZGlm
Ci0KLSNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKQotI2RlZmluZSBFTkFCTEVf
Q1NTX0NPTVBPU0lUSU5HIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0NTU19JTUFH
RV9SRVNPTFVUSU9OKQotI2RlZmluZSBFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04gMAotI2Vu
ZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTX0NPTklDX0dSQURJRU5UUykKLSNkZWZpbmUg
RU5BQkxFX0NTU19DT05JQ19HUkFESUVOVFMgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFC
TEVfQ1VTVE9NX0NVUlNPUl9TVVBQT1JUKQotI2RlZmluZSBFTkFCTEVfQ1VTVE9NX0NVUlNPUl9T
VVBQT1JUIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0NVU1RPTV9TQ0hFTUVfSEFO
RExFUikKLSNkZWZpbmUgRU5BQkxFX0NVU1RPTV9TQ0hFTUVfSEFORExFUiAwCi0jZW5kaWYKLQot
I2lmICFkZWZpbmVkKEVOQUJMRV9EQVJLX01PREVfQ1NTKQotI2RlZmluZSBFTkFCTEVfREFSS19N
T0RFX0NTUyAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9EQVRBTElTVF9FTEVNRU5U
KQotI2RlZmluZSBFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCAwCi0jZW5kaWYKLQotI2lmICFkZWZp
bmVkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pCi0jZGVmaW5lIEVOQUJMRV9ERVZJQ0VfT1JJ
RU5UQVRJT04gMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfRE9XTkxPQURfQVRUUklC
VVRFKQotI2RlZmluZSBFTkFCTEVfRE9XTkxPQURfQVRUUklCVVRFIDEKLSNlbmRpZgotCi0jaWYg
IWRlZmluZWQoRU5BQkxFX0RSQUdfU1VQUE9SVCkKLSNkZWZpbmUgRU5BQkxFX0RSQUdfU1VQUE9S
VCAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9FTkNSWVBURURfTUVESUEpCi0jZGVm
aW5lIEVOQUJMRV9FTkNSWVBURURfTUVESUEgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFC
TEVfRklMVEVSU19MRVZFTF8yKQotI2RlZmluZSBFTkFCTEVfRklMVEVSU19MRVZFTF8yIDAKLSNl
bmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0ZUUERJUikKLSNkZWZpbmUgRU5BQkxFX0ZUUERJ
UiAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkKLSNkZWZp
bmUgRU5BQkxFX0ZVTExTQ1JFRU5fQVBJIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxF
X0dBTUVQQUQpCi0jZGVmaW5lIEVOQUJMRV9HQU1FUEFEIDAKLSNlbmRpZgotCi0jaWYgIWRlZmlu
ZWQoRU5BQkxFX0dFT0xPQ0FUSU9OKQotI2RlZmluZSBFTkFCTEVfR0VPTE9DQVRJT04gMAotI2Vu
ZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkKLSNkZWZpbmUgRU5B
QkxFX0lOREVYRURfREFUQUJBU0UgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfSU5E
RVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJTKQotI2RlZmluZSBFTkFCTEVfSU5ERVhFRF9EQVRBQkFT
RV9JTl9XT1JLRVJTIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0lOUFVUX1RZUEVf
Q09MT1IpCi0jZGVmaW5lIEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SIDEKLSNlbmRpZgotCi0jaWYg
IWRlZmluZWQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSkKLSNkZWZpbmUgRU5BQkxFX0lOUFVUX1RZ
UEVfREFURSAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVU
SU1FX0lOQ09NUExFVEUpCi0jZGVmaW5lIEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09N
UExFVEUgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElN
RUxPQ0FMKQotI2RlZmluZSBFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMIDAKLSNlbmRp
ZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpCi0jZGVmaW5lIEVOQUJM
RV9JTlBVVF9UWVBFX01PTlRIIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0lOUFVU
X1RZUEVfVElNRSkKLSNkZWZpbmUgRU5BQkxFX0lOUFVUX1RZUEVfVElNRSAwCi0jZW5kaWYKLQot
I2lmICFkZWZpbmVkKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspCi0jZGVmaW5lIEVOQUJMRV9JTlBV
VF9UWVBFX1dFRUsgMAotI2VuZGlmCi0KLSNpZiBFTkFCTEUoSU5QVVRfVFlQRV9EQVRFKSB8fCBF
TkFCTEUoSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKSB8fCBFTkFCTEUoSU5QVVRfVFlQ
RV9EQVRFVElNRUxPQ0FMKSB8fCBFTkFCTEUoSU5QVVRfVFlQRV9NT05USCkgfHwgRU5BQkxFKElO
UFVUX1RZUEVfVElNRSkgfHwgRU5BQkxFKElOUFVUX1RZUEVfV0VFSykKLSNpZiAhZGVmaW5lZChF
TkFCTEVfREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKLSNkZWZpbmUgRU5BQkxFX0RBVEVfQU5E
X1RJTUVfSU5QVVRfVFlQRVMgMQotI2VuZGlmCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJM
RV9JTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENIRVJTKQotI2RlZmluZSBFTkFCTEVfSU5TUEVD
VE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUyAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJM
RV9JTlNQRUNUT1JfVEVMRU1FVFJZKQotI2RlZmluZSBFTkFCTEVfSU5TUEVDVE9SX1RFTEVNRVRS
WSAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9JTlRMKQotI2RlZmluZSBFTkFCTEVf
SU5UTCAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9MQVlPVVRfRk9STUFUVElOR19D
T05URVhUKQotI2RlZmluZSBFTkFCTEVfTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCAwCi0jZW5k
aWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUykKLSNk
ZWZpbmUgRU5BQkxFX0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJWEVTIDAKLSNlbmRpZgotCi0jaWYg
IWRlZmluZWQoRU5BQkxFX0xFVFRFUlBSRVNTKQotI2RlZmluZSBFTkFCTEVfTEVUVEVSUFJFU1Mg
MAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfTUFUSE1MKQotI2RlZmluZSBFTkFCTEVf
TUFUSE1MIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX01FRElBX0NBUFRVUkUpCi0j
ZGVmaW5lIEVOQUJMRV9NRURJQV9DQVBUVVJFIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5B
QkxFX01FRElBX0NPTlRST0xTX1NDUklQVCkKLSNkZWZpbmUgRU5BQkxFX01FRElBX0NPTlRST0xT
X1NDUklQVCAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9NRURJQV9TT1VSQ0UpCi0j
ZGVmaW5lIEVOQUJMRV9NRURJQV9TT1VSQ0UgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFC
TEVfTUVESUFfU1RBVElTVElDUykKLSNkZWZpbmUgRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MgMAot
I2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfTUVESUFfU1RSRUFNKQotI2RlZmluZSBFTkFC
TEVfTUVESUFfU1RSRUFNIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX01FVEVSX0VM
RU1FTlQpCi0jZGVmaW5lIEVOQUJMRV9NRVRFUl9FTEVNRU5UIDEKLSNlbmRpZgotCi0jaWYgIWRl
ZmluZWQoRU5BQkxFX01IVE1MKQotI2RlZmluZSBFTkFCTEVfTUhUTUwgMAotI2VuZGlmCi0KLSNp
ZiAhZGVmaW5lZChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFKQotI2RlZmluZSBFTkFCTEVfTU9V
U0VfQ1VSU09SX1NDQUxFIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX01PVVNFX0ZP
UkNFX0VWRU5UUykKLSNkZWZpbmUgRU5BQkxFX01PVVNFX0ZPUkNFX0VWRU5UUyAxCi0jZW5kaWYK
LQotI2lmICFkZWZpbmVkKEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJKQotI2RlZmluZSBFTkFC
TEVfTkVUU0NBUEVfUExVR0lOX0FQSSAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9O
RVRTQ0FQRV9QTFVHSU5fTUVUQURBVEFfQ0FDSEUpCi0jZGVmaW5lIEVOQUJMRV9ORVRTQ0FQRV9Q
TFVHSU5fTUVUQURBVEFfQ0FDSEUgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfTk9U
SUZJQ0FUSU9OUykKLSNkZWZpbmUgRU5BQkxFX05PVElGSUNBVElPTlMgMAotI2VuZGlmCi0KLSNp
ZiAhZGVmaW5lZChFTkFCTEVfT0ZGU0NSRUVOX0NBTlZBUykKLSNkZWZpbmUgRU5BQkxFX09GRlND
UkVFTl9DQU5WQVMgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfT1JJRU5UQVRJT05f
RVZFTlRTKQotI2RlZmluZSBFTkFCTEVfT1JJRU5UQVRJT05fRVZFTlRTIDAKLSNlbmRpZgotCi0j
aWYgT1MoV0lORE9XUykKLSNpZiAhZGVmaW5lZChFTkFCTEVfUEFOX1NDUk9MTElORykKLSNkZWZp
bmUgRU5BQkxFX1BBTl9TQ1JPTExJTkcgMQotI2VuZGlmCi0jZW5kaWYKLQotI2lmICFkZWZpbmVk
KEVOQUJMRV9QQVlNRU5UX1JFUVVFU1QpCi0jZGVmaW5lIEVOQUJMRV9QQVlNRU5UX1JFUVVFU1Qg
MAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfUE9JTlRFUl9MT0NLKQotI2RlZmluZSBF
TkFCTEVfUE9JTlRFUl9MT0NLIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX1FVT1RB
KQotI2RlZmluZSBFTkFCTEVfUVVPVEEgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVf
UkVNT1RFX0lOU1BFQ1RPUikKLSNkZWZpbmUgRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IgMAotI2Vu
ZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfUlVCQkVSX0JBTkRJTkcpCi0jZGVmaW5lIEVOQUJM
RV9SVUJCRVJfQkFORElORyAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9TRUNVUklU
WV9BU1NFUlRJT05TKQotLyogRW5hYmxlIHNlY3VyaXR5IGFzc2VydGlvbnMgb24gYWxsIEFTQU4g
YnVpbGRzIGFuZCBkZWJ1ZyBidWlsZHMuICovCi0jaWYgQVNBTl9FTkFCTEVEIHx8ICFkZWZpbmVk
KE5ERUJVRykKLSNkZWZpbmUgRU5BQkxFX1NFQ1VSSVRZX0FTU0VSVElPTlMgMQotI2VuZGlmCi0j
ZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9TTU9PVEhfU0NST0xMSU5HKQotI2RlZmluZSBF
TkFCTEVfU01PT1RIX1NDUk9MTElORyAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9T
UEVFQ0hfU1lOVEhFU0lTKQotI2RlZmluZSBFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUyAwCi0jZW5k
aWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9TUEVMTENIRUNLKQotI2RlZmluZSBFTkFCTEVfU1BF
TExDSEVDSyAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9TVFJFQU1TX0FQSSkKLSNk
ZWZpbmUgRU5BQkxFX1NUUkVBTVNfQVBJIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxF
X1NWR19GT05UUykKLSNkZWZpbmUgRU5BQkxFX1NWR19GT05UUyAxCi0jZW5kaWYKLQotI2lmICFk
ZWZpbmVkKEVOQUJMRV9URVhUX0NBUkVUKQotI2RlZmluZSBFTkFCTEVfVEVYVF9DQVJFVCAxCi0j
ZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9URVhUX1NFTEVDVElPTikKLSNkZWZpbmUgRU5B
QkxFX1RFWFRfU0VMRUNUSU9OIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0FTWU5D
X1NDUk9MTElORykKLSNkZWZpbmUgRU5BQkxFX0FTWU5DX1NDUk9MTElORyAwCi0jZW5kaWYKLQot
I2lmICFkZWZpbmVkKEVOQUJMRV9UT1VDSF9FVkVOVFMpCi0jZGVmaW5lIEVOQUJMRV9UT1VDSF9F
VkVOVFMgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfVklERU8pCi0jZGVmaW5lIEVO
QUJMRV9WSURFTyAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9WSURFT19UUkFDSykK
LSNkZWZpbmUgRU5BQkxFX1ZJREVPX1RSQUNLIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5B
QkxFX0RBVEFDVUVfVkFMVUUpCi0jZGVmaW5lIEVOQUJMRV9EQVRBQ1VFX1ZBTFVFIDAKLSNlbmRp
ZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX1dFQkdMKQotI2RlZmluZSBFTkFCTEVfV0VCR0wgMAot
I2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfR1JBUEhJQ1NfQ09OVEVYVF9HTCkKLSNkZWZp
bmUgRU5BQkxFX0dSQVBISUNTX0NPTlRFWFRfR0wgRU5BQkxFX1dFQkdMCi0jZW5kaWYKLQotI2lm
ICFkZWZpbmVkKEVOQUJMRV9XRUJfQVJDSElWRSkKLSNkZWZpbmUgRU5BQkxFX1dFQl9BUkNISVZF
IDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX1dFQl9BVURJTykKLSNkZWZpbmUgRU5B
QkxFX1dFQl9BVURJTyAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9YU0xUKQotI2Rl
ZmluZSBFTkFCTEVfWFNMVCAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9EQVRBX0lO
VEVSQUNUSU9OKQotI2RlZmluZSBFTkFCTEVfREFUQV9JTlRFUkFDVElPTiAwCi0jZW5kaWYKLQot
I2lmICFkZWZpbmVkKEVOQUJMRV9TRVJWSUNFX1dPUktFUikKLSNkZWZpbmUgRU5BQkxFX1NFUlZJ
Q0VfV09SS0VSIDEKLSNlbmRpZgotCi0KLS8qIEpJVCBGZWF0dXJlcyAqLwotCi0vKiBUaGUgSklU
IGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBvbiBhbGwgeDg2LTY0ICYgQVJNNjQgcGxhdGZvcm1zLiAq
LwotI2lmICFkZWZpbmVkKEVOQUJMRV9KSVQpICYmIChDUFUoWDg2XzY0KSB8fCBDUFUoQVJNNjQp
KSAmJiAhQ1BVKEFQUExFX0FSTVY3SykKLSNkZWZpbmUgRU5BQkxFX0pJVCAxCi0jZW5kaWYKLQot
I2lmIFVTRShKU1ZBTFVFMzJfNjQpCi0jaWYgKENQVShBUk1fVEhVTUIyKSB8fCBDUFUoTUlQUykp
ICYmIE9TKExJTlVYKQotLyogT24gQVJNdjcgYW5kIE1JUFMgb24gTGludXggdGhlIEpJVCBpcyBl
bmFibGVkIHVubGVzcyBleHBsaWNpdGx5IGRpc2FibGVkLiAqLwotI2lmICFkZWZpbmVkKEVOQUJM
RV9KSVQpCi0jZGVmaW5lIEVOQUJMRV9KSVQgMQotI2VuZGlmCi0jZWxzZQotLyogRGlzYWJsZSBK
SVQgYW5kIGZvcmNlIENfTE9PUCBvbiBhbGwgb3RoZXIgMzJiaXQgYXJjaGl0ZWN0dXJlcy4gKi8K
LSN1bmRlZiBFTkFCTEVfSklUCi0jZGVmaW5lIEVOQUJMRV9KSVQgMAotI3VuZGVmIEVOQUJMRV9D
X0xPT1AKLSNkZWZpbmUgRU5BQkxFX0NfTE9PUCAxCi0jZW5kaWYKLSNlbmRpZgotCi0jaWYgIWRl
ZmluZWQoRU5BQkxFX0NfTE9PUCkKLSNpZiBFTkFCTEUoSklUKSB8fCBDUFUoWDg2XzY0KSB8fCAo
Q1BVKEFSTTY0KSAmJiAhZGVmaW5lZChfX0lMUDMyX18pKQotI2RlZmluZSBFTkFCTEVfQ19MT09Q
IDAKLSNlbHNlCi0jZGVmaW5lIEVOQUJMRV9DX0xPT1AgMQotI2VuZGlmCi0jZW5kaWYKLQotLyog
RklYTUU6IFRoaXMgc2hvdWxkIGJlIHR1cm5lZCBpbnRvIGFuICNlcnJvciBpbnZhcmlhbnQgKi8K
LS8qIFRoZSBGVEwgKmRvZXMgbm90KiB3b3JrIG9uIDMyLWJpdCBwbGF0Zm9ybXMuIERpc2FibGUg
aXQgZXZlbiBpZiBzb21lb25lIGFza2VkIHVzIHRvIGVuYWJsZSBpdC4gKi8KLSNpZiBVU0UoSlNW
QUxVRTMyXzY0KQotI3VuZGVmIEVOQUJMRV9GVExfSklUCi0jZGVmaW5lIEVOQUJMRV9GVExfSklU
IDAKLSNlbmRpZgotCi0vKiBGSVhNRTogVGhpcyBzaG91bGQgYmUgdHVybmVkIGludG8gYW4gI2Vy
cm9yIGludmFyaWFudCAqLwotLyogVGhlIEZUTCBpcyBkaXNhYmxlZCBvbiB0aGUgaU9TIHNpbXVs
YXRvciwgbW9zdGx5IGZvciBzaW1wbGljaXR5LiAqLwotI2lmIFBMQVRGT1JNKElPU19GQU1JTFlf
U0lNVUxBVE9SKQotI3VuZGVmIEVOQUJMRV9GVExfSklUCi0jZGVmaW5lIEVOQUJMRV9GVExfSklU
IDAKLSNlbmRpZgotCi0vKiBJZiBwb3NzaWJsZSwgdHJ5IHRvIGVuYWJsZSBhIGRpc2Fzc2VtYmxl
ci4gVGhpcyBpcyBvcHRpb25hbC4gV2UgcHJvY2VlZCBpbiB0d28KLSAgIHN0ZXBzOiBmaXJzdCB3
ZSB0cnkgdG8gZmluZCBzb21lIGRpc2Fzc2VtYmxlciB0aGF0IHdlIGNhbiB1c2UsIGFuZCB0aGVu
IHdlCi0gICBkZWNpZGUgaWYgdGhlIGhpZ2gtbGV2ZWwgZGlzYXNzZW1ibGVyIEFQSSBjYW4gYmUg
ZW5hYmxlZC4gKi8KLSNpZiAhZGVmaW5lZChFTkFCTEVfVURJUzg2KSAmJiBFTkFCTEUoSklUKSAm
JiBDUFUoWDg2XzY0KSAmJiAhVVNFKENBUFNUT05FKQotI2RlZmluZSBFTkFCTEVfVURJUzg2IDEK
LSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0FSTTY0X0RJU0FTU0VNQkxFUikgJiYgRU5B
QkxFKEpJVCkgJiYgQ1BVKEFSTTY0KSAmJiAhVVNFKENBUFNUT05FKQotI2RlZmluZSBFTkFCTEVf
QVJNNjRfRElTQVNTRU1CTEVSIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0RJU0FT
U0VNQkxFUikgJiYgKEVOQUJMRShVRElTODYpIHx8IEVOQUJMRShBUk02NF9ESVNBU1NFTUJMRVIp
IHx8IChFTkFCTEUoSklUKSAmJiBVU0UoQ0FQU1RPTkUpKSkKLSNkZWZpbmUgRU5BQkxFX0RJU0FT
U0VNQkxFUiAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9ERkdfSklUKSAmJiBFTkFC
TEUoSklUKQotCi0vKiBFbmFibGUgdGhlIERGRyBKSVQgb24gWDg2IGFuZCBYODZfNjQuICovCi0j
aWYgQ1BVKFg4Nl82NCkgJiYgKE9TKERBUldJTikgfHwgT1MoTElOVVgpIHx8IE9TKEZSRUVCU0Qp
IHx8IE9TKEhVUkQpIHx8IE9TKFdJTkRPV1MpKQotI2RlZmluZSBFTkFCTEVfREZHX0pJVCAxCi0j
ZW5kaWYKLQotLyogRW5hYmxlIHRoZSBERkcgSklUIG9uIEFSTXY3LiAgT25seSB0ZXN0ZWQgb24g
aU9TLCBMaW51eCwgYW5kIEZyZWVCU0QuICovCi0jaWYgKENQVShBUk1fVEhVTUIyKSB8fCBDUFUo
QVJNNjQpKSAmJiAoT1MoREFSV0lOKSB8fCBPUyhMSU5VWCkgfHwgT1MoRlJFRUJTRCkpCi0jZGVm
aW5lIEVOQUJMRV9ERkdfSklUIDEKLSNlbmRpZgotCi0vKiBFbmFibGUgdGhlIERGRyBKSVQgb24g
TUlQUy4gKi8KLSNpZiBDUFUoTUlQUykKLSNkZWZpbmUgRU5BQkxFX0RGR19KSVQgMQotI2VuZGlm
Ci0KLSNlbmRpZiAvKiAhZGVmaW5lZChFTkFCTEVfREZHX0pJVCkgJiYgRU5BQkxFKEpJVCkgKi8K
LQotLyogQ29uY3VycmVudCBKUyBvbmx5IHdvcmtzIG9uIDY0LWJpdCBwbGF0Zm9ybXMgYmVjYXVz
ZSBpdCByZXF1aXJlcyB0aGF0Ci0gICB2YWx1ZXMgZ2V0IHN0b3JlZCB0byBhdG9taWNhbGx5LiBU
aGlzIGlzIHRyaXZpYWxseSB0cnVlIG9uIDY0LWJpdCBwbGF0Zm9ybXMsCi0gICBidXQgbm90IHRy
dWUgYXQgYWxsIG9uIDMyLWJpdCBwbGF0Zm9ybXMgd2hlcmUgdmFsdWVzIGFyZSBjb21wb3NlZCBv
ZiB0d28KLSAgIHNlcGFyYXRlIHN1Yi12YWx1ZXMuICovCi0jaWYgRU5BQkxFKEpJVCkgJiYgVVNF
KEpTVkFMVUU2NCkKLSNkZWZpbmUgRU5BQkxFX0NPTkNVUlJFTlRfSlMgMQotI2VuZGlmCi0KLSNp
ZiAoQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTTY0KSkgJiYgSEFWRShGQVNUX1RMUykKLSNkZWZpbmUg
RU5BQkxFX0ZBU1RfVExTX0pJVCAxCi0jZW5kaWYKLQotI2lmIEVOQUJMRShKSVQpICYmIChDUFUo
WDg2KSB8fCBDUFUoWDg2XzY0KSB8fCBDUFUoQVJNX1RIVU1CMikgfHwgQ1BVKEFSTTY0KSB8fCBD
UFUoTUlQUykpCi0jZGVmaW5lIEVOQUJMRV9NQVNNX1BST0JFIDEKLSNlbmRpZgotCi0vKiBGSVhN
RTogVGhpcyBzaG91bGQgYmUgdHVybmVkIGludG8gYW4gI2Vycm9yIGludmFyaWFudCAqLwotLyog
SWYgdGhlIGJhc2VsaW5lIGppdCBpcyBub3QgYXZhaWxhYmxlLCB0aGVuIGRpc2FibGUgdXBwZXIg
dGllcnMgYXMgd2VsbC4KLSAgIFRoZSBNYWNyb0Fzc2VtYmxlcjo6cHJvYmUoKSBpcyBhbHNvIHJl
cXVpcmVkIGZvciBzdXBwb3J0aW5nIHRoZSB1cHBlciB0aWVycy4gKi8KLSNpZiAhRU5BQkxFKEpJ
VCkgfHwgIUVOQUJMRShNQVNNX1BST0JFKQotI3VuZGVmIEVOQUJMRV9ERkdfSklUCi0jdW5kZWYg
RU5BQkxFX0ZUTF9KSVQKLSNkZWZpbmUgRU5BQkxFX0RGR19KSVQgMAotI2RlZmluZSBFTkFCTEVf
RlRMX0pJVCAwCi0jZW5kaWYKLQotLyogRklYTUU6IFRoaXMgc2hvdWxkIGJlIHR1cm5lZCBpbnRv
IGFuICNlcnJvciBpbnZhcmlhbnQgKi8KLS8qIElmIHRoZSBERkcgaml0IGlzIG5vdCBhdmFpbGFi
bGUsIHRoZW4gZGlzYWJsZSB1cHBlciB0aWVycyBhcyB3ZWxsOiAqLwotI2lmICFFTkFCTEUoREZH
X0pJVCkKLSN1bmRlZiBFTkFCTEVfRlRMX0pJVAotI2RlZmluZSBFTkFCTEVfRlRMX0pJVCAwCi0j
ZW5kaWYKLQotLyogVGhpcyBjb250cm9scyB3aGV0aGVyIEIzIGlzIGJ1aWx0LiBCMyBpcyBuZWVk
ZWQgZm9yIEZUTCBKSVQgYW5kIFdlYkFzc2VtYmx5ICovCi0jaWYgRU5BQkxFKEZUTF9KSVQpCi0j
ZGVmaW5lIEVOQUJMRV9CM19KSVQgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfV0VC
QVNTRU1CTFkpICYmIChFTkFCTEUoQjNfSklUKSAmJiBQTEFURk9STShDT0NPQSkgJiYgQ1BVKEFE
RFJFU1M2NCkpCi0jZGVmaW5lIEVOQUJMRV9XRUJBU1NFTUJMWSAxCi0jZW5kaWYKLQotLyogVGhl
IFNhbXBsaW5nUHJvZmlsZXIgaXMgdGhlIHByb2JhYmlsaXN0aWMgYW5kIGxvdy1vdmVyaGVhZCBw
cm9maWxlciB1c2VkIGJ5Ci0gKiBKU0MgdG8gbWVhc3VyZSB3aGVyZSB0aW1lIGlzIHNwZW50IGlu
c2lkZSBhIEphdmFTY3JpcHQgcHJvZ3JhbS4KLSAqIEluIGNvbmZpZ3VyYXRpb25zIG90aGVyIHRo
YW4gV2luZG93cyBhbmQgRGFyd2luLCBiZWNhdXNlIGxheW91dCBvZiBtY29udGV4dF90IGRlcGVu
ZHMgb24gc3RhbmRhcmQgbGlicmFyaWVzIChsaWtlIGdsaWJjKSwKLSAqIHNhbXBsaW5nIHByb2Zp
bGVyIGlzIGVuYWJsZWQgaWYgV2ViS2l0IHVzZXMgcHRocmVhZHMgYW5kIGdsaWJjLiAqLwotI2lm
ICFkZWZpbmVkKEVOQUJMRV9TQU1QTElOR19QUk9GSUxFUikgJiYgKCFFTkFCTEUoQ19MT09QKSAm
JiAoT1MoV0lORE9XUykgfHwgSEFWRShNQUNISU5FX0NPTlRFWFQpKSkKLSNkZWZpbmUgRU5BQkxF
X1NBTVBMSU5HX1BST0ZJTEVSIDEKLSNlbmRpZgotCi0jaWYgRU5BQkxFKFdFQkFTU0VNQkxZKSAm
JiBIQVZFKE1BQ0hJTkVfQ09OVEVYVCkKLSNkZWZpbmUgRU5BQkxFX1dFQkFTU0VNQkxZX0ZBU1Rf
TUVNT1JZIDEKLSNlbmRpZgotCi0vKiBDb3VudHMgdXNlcyBvZiB3cml0ZSBiYXJyaWVycyB1c2lu
ZyBzYW1wbGluZyBjb3VudGVycy4gQmUgc3VyZSB0byBhbHNvCi0gICBzZXQgRU5BQkxFX1NBTVBM
SU5HX0NPVU5URVJTIHRvIDEuICovCi0jaWYgIWRlZmluZWQoRU5BQkxFX1dSSVRFX0JBUlJJRVJf
UFJPRklMSU5HKQotI2RlZmluZSBFTkFCTEVfV1JJVEVfQkFSUklFUl9QUk9GSUxJTkcgMAotI2Vu
ZGlmCi0KLS8qIExvZ3MgYWxsIGFsbG9jYXRpb24tcmVsYXRlZCBhY3Rpdml0eSB0aGF0IGdvZXMg
dGhyb3VnaCBmYXN0TWFsbG9jIG9yIHRoZQotICAgSlNDIEdDIChib3RoIGNlbGxzIGFuZCBidXR0
ZXJmbGllcykuIEFsc28gbG9ncyBtYXJraW5nLiBOb3RlIHRoYXQgdGhpcwotICAgaXNuJ3QgYSBj
b21wbGV0ZWx5IGFjY3VyYXRlIHZpZXcgb2YgdGhlIGhlYXAgc2luY2UgaXQgZG9lc24ndCBpbmNs
dWRlIGFsbAotICAgYnV0dGVyZmx5IHJlc2l6ZSBvcGVyYXRpb25zLCBkb2Vzbid0IHRlbGwgeW91
IHdoYXQgaXMgZ29pbmcgb24gd2l0aCB3ZWFrCi0gICByZWZlcmVuY2VzIChvdGhlciB0aGFuIHRv
IHRlbGwgeW91IHdoZW4gdGhleSdyZSBtYXJrZWQpLCBhbmQgZG9lc24ndAotICAgdHJhY2sgZGly
ZWN0IG1tYXAoKSBhbGxvY2F0aW9ucyBvciB0aGluZ3MgbGlrZSBKSVQgYWxsb2NhdGlvbi4gKi8K
LSNpZiAhZGVmaW5lZChFTkFCTEVfQUxMT0NBVElPTl9MT0dHSU5HKQotI2RlZmluZSBFTkFCTEVf
QUxMT0NBVElPTl9MT0dHSU5HIDAKLSNlbmRpZgotCi0vKiBFbmFibGUgdmVyaWZpY2F0aW9uIHRo
YXQgdGhhdCByZWdpc3RlciBhbGxvY2F0aW9ucyBhcmUgbm90IG1hZGUgd2l0aGluIGdlbmVyYXRl
ZCBjb250cm9sIGZsb3cuCi0gICBUdXJuZWQgb24gZm9yIGRlYnVnIGJ1aWxkcy4gKi8KLSNpZiAh
ZGVmaW5lZChFTkFCTEVfREZHX1JFR0lTVEVSX0FMTE9DQVRJT05fVkFMSURBVElPTikgJiYgRU5B
QkxFKERGR19KSVQpICYmICFkZWZpbmVkKE5ERUJVRykKLSNkZWZpbmUgRU5BQkxFX0RGR19SRUdJ
U1RFUl9BTExPQ0FUSU9OX1ZBTElEQVRJT04gMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFC
TEVfU0VQQVJBVEVEX1dYX0hFQVApICYmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIENQVShBUk02
NCkgJiYgKCFFTkFCTEUoRkFTVF9KSVRfUEVSTUlTU0lPTlMpIHx8ICFDUFUoQVJNNjRFKSkKLSNk
ZWZpbmUgRU5BQkxFX1NFUEFSQVRFRF9XWF9IRUFQIDEKLSNlbmRpZgotCi0vKiBEZXRlcm1pbmUg
aWYgd2UgbmVlZCB0byBlbmFibGUgQ29tcHV0ZWQgR290byBPcGNvZGVzIG9yIG5vdDogKi8KLSNp
ZiBIQVZFKENPTVBVVEVEX0dPVE8pIHx8ICFFTkFCTEUoQ19MT09QKQotI2RlZmluZSBFTkFCTEVf
Q09NUFVURURfR09UT19PUENPREVTIDEKLSNlbmRpZgotCi0vKiBSZWd1bGFyIEV4cHJlc3Npb24g
VHJhY2luZyAtIFNldCB0byAxIHRvIHRyYWNlIFJlZ0V4cCdzIGluIGpzYy4gIFJlc3VsdHMgZHVt
cGVkIGF0IGV4aXQgKi8KLSNpZiAhZGVmaW5lZChFTkFCTEVfUkVHRVhQX1RSQUNJTkcpCi0jZGVm
aW5lIEVOQUJMRV9SRUdFWFBfVFJBQ0lORyAwCi0jZW5kaWYKLQotLyogWWV0IEFub3RoZXIgUmVn
ZXggUnVudGltZSAtIHR1cm5lZCBvbiBieSBkZWZhdWx0IGZvciBKSVQgZW5hYmxlZCBwb3J0cy4g
Ki8KLSNpZiAhZGVmaW5lZChFTkFCTEVfWUFSUl9KSVQpICYmIEVOQUJMRShKSVQpCi0jZGVmaW5l
IEVOQUJMRV9ZQVJSX0pJVCAxCi0jZW5kaWYKLQotLyogU2V0dGluZyB0aGlzIGZsYWcgY29tcGFy
ZXMgSklUIHJlc3VsdHMgd2l0aCBpbnRlcnByZXRlciByZXN1bHRzLiAqLwotI2lmICFkZWZpbmVk
KEVOQUJMRV9ZQVJSX0pJVCkgJiYgRU5BQkxFKEpJVCkKLSNkZWZpbmUgRU5BQkxFX1lBUlJfSklU
X0RFQlVHIDAKLSNlbmRpZgotCi0vKiBFbmFibGUgSklUJ2luZyBSZWd1bGFyIEV4cHJlc3Npb25z
IHRoYXQgaGF2ZSBuZXN0ZWQgcGFyZW50aGVzaXMgLiAqLwotI2lmIEVOQUJMRShZQVJSX0pJVCkg
JiYgKENQVShBUk02NCkgfHwgKENQVShYODZfNjQpICYmICFPUyhXSU5ET1dTKSkpCi0jZGVmaW5l
IEVOQUJMRV9ZQVJSX0pJVF9BTExfUEFSRU5TX0VYUFJFU1NJT05TIDEKLSNlbmRpZgotCi0vKiBF
bmFibGUgSklUJ2luZyBSZWd1bGFyIEV4cHJlc3Npb25zIHRoYXQgaGF2ZSBuZXN0ZWQgYmFjayBy
ZWZlcmVuY2VzLiAqLwotI2lmIEVOQUJMRShZQVJSX0pJVCkgJiYgKENQVShBUk02NCkgfHwgKENQ
VShYODZfNjQpICYmICFPUyhXSU5ET1dTKSkpCi0jZGVmaW5lIEVOQUJMRV9ZQVJSX0pJVF9CQUNL
UkVGRVJFTkNFUyAxCi0jZW5kaWYKLQotLyogSWYgZWl0aGVyIHRoZSBKSVQgb3IgdGhlIFJlZ0V4
cCBKSVQgaXMgZW5hYmxlZCwgdGhlbiB0aGUgQXNzZW1ibGVyIG11c3QgYmUKLSAgIGVuYWJsZWQg
YXMgd2VsbDogKi8KLSNpZiBFTkFCTEUoSklUKSB8fCBFTkFCTEUoWUFSUl9KSVQpIHx8ICFFTkFC
TEUoQ19MT09QKQotI2lmIGRlZmluZWQoRU5BQkxFX0FTU0VNQkxFUikgJiYgIUVOQUJMRV9BU1NF
TUJMRVIKLSNlcnJvciAiQ2Fubm90IGVuYWJsZSB0aGUgSklUIG9yIFJlZ0V4cCBKSVQgd2l0aG91
dCBlbmFibGluZyB0aGUgQXNzZW1ibGVyIgotI2Vsc2UKLSN1bmRlZiBFTkFCTEVfQVNTRU1CTEVS
Ci0jZGVmaW5lIEVOQUJMRV9BU1NFTUJMRVIgMQotI2VuZGlmCi0jZW5kaWYKLQotLyogSWYgdGhl
IERpc2Fzc2VtYmxlciBpcyBlbmFibGVkLCB0aGVuIHRoZSBBc3NlbWJsZXIgbXVzdCBiZSBlbmFi
bGVkIGFzIHdlbGw6ICovCi0jaWYgRU5BQkxFKERJU0FTU0VNQkxFUikKLSNpZiBkZWZpbmVkKEVO
QUJMRV9BU1NFTUJMRVIpICYmICFFTkFCTEVfQVNTRU1CTEVSCi0jZXJyb3IgIkNhbm5vdCBlbmFi
bGUgdGhlIERpc2Fzc2VtYmxlciB3aXRob3V0IGVuYWJsaW5nIHRoZSBBc3NlbWJsZXIiCi0jZWxz
ZQotI3VuZGVmIEVOQUJMRV9BU1NFTUJMRVIKLSNkZWZpbmUgRU5BQkxFX0FTU0VNQkxFUiAxCi0j
ZW5kaWYKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0VYQ0VQVElPTl9TQ09QRV9WRVJJ
RklDQVRJT04pCi0jZGVmaW5lIEVOQUJMRV9FWENFUFRJT05fU0NPUEVfVkVSSUZJQ0FUSU9OIEFT
U0VSVF9FTkFCTEVECi0jZW5kaWYKLQotI2lmIEVOQUJMRShERkdfSklUKSAmJiBIQVZFKE1BQ0hJ
TkVfQ09OVEVYVCkgJiYgKENQVShYODZfNjQpIHx8IENQVShBUk02NCkpCi0jZGVmaW5lIEVOQUJM
RV9TSUdOQUxfQkFTRURfVk1fVFJBUFMgMQotI2VuZGlmCi0KLS8qIENTUyBTZWxlY3RvciBKSVQg
Q29tcGlsZXIgKi8KLSNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTX1NFTEVDVE9SX0pJVCkgJiYgKChD
UFUoWDg2XzY0KSB8fCBDUFUoQVJNNjQpIHx8IChDUFUoQVJNX1RIVU1CMikgJiYgT1MoREFSV0lO
KSkpICYmIEVOQUJMRShKSVQpICYmIChPUyhEQVJXSU4pIHx8IFBMQVRGT1JNKEdUSykgfHwgUExB
VEZPUk0oV1BFKSkpCi0jZGVmaW5lIEVOQUJMRV9DU1NfU0VMRUNUT1JfSklUIDEKLSNlbmRpZgot
Ci0jaWYgUExBVEZPUk0oQ09DT0EpICYmICFQTEFURk9STShXQVRDSE9TKSAmJiAhUExBVEZPUk0o
QVBQTEVUVikgJiYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQotI2RlZmluZSBFTkFCTEVfREFUQV9E
RVRFQ1RJT04gMQotI2VuZGlmCi0KLSNpZiBDUFUoQVJNX1RIVU1CMikgfHwgQ1BVKEFSTTY0KQot
I2RlZmluZSBFTkFCTEVfQlJBTkNIX0NPTVBBQ1RJT04gMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5l
ZChFTkFCTEVfVEhSRUFESU5HX0xJQkRJU1BBVENIKSAmJiBIQVZFKERJU1BBVENIX0gpCi0jZGVm
aW5lIEVOQUJMRV9USFJFQURJTkdfTElCRElTUEFUQ0ggMQotI2VsaWYgIWRlZmluZWQoRU5BQkxF
X1RIUkVBRElOR19PUEVOTVApICYmIGRlZmluZWQoX09QRU5NUCkKLSNkZWZpbmUgRU5BQkxFX1RI
UkVBRElOR19PUEVOTVAgMQotI2VsaWYgIWRlZmluZWQoVEhSRUFESU5HX0dFTkVSSUMpCi0jZGVm
aW5lIEVOQUJMRV9USFJFQURJTkdfR0VORVJJQyAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVO
QUJMRV9HQ19WQUxJREFUSU9OKSAmJiAhZGVmaW5lZChOREVCVUcpCi0jZGVmaW5lIEVOQUJMRV9H
Q19WQUxJREFUSU9OIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0JJTkRJTkdfSU5U
RUdSSVRZKSAmJiAhT1MoV0lORE9XUykKLSNkZWZpbmUgRU5BQkxFX0JJTkRJTkdfSU5URUdSSVRZ
IDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX1RSRUVfREVCVUdHSU5HKSAmJiAhZGVm
aW5lZChOREVCVUcpCi0jZGVmaW5lIEVOQUJMRV9UUkVFX0RFQlVHR0lORyAxCi0jZW5kaWYKLQot
I2lmIFBMQVRGT1JNKENPQ09BKQotI2RlZmluZSBFTkFCTEVfUkVTT1VSQ0VfVVNBR0UgMQotI2Vu
ZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfT1BFTlRZUEVfVkVSVElDQUwpICYmIFBMQVRGT1JN
KEdUSykgfHwgUExBVEZPUk0oV1BFKQotI2RlZmluZSBFTkFCTEVfT1BFTlRZUEVfVkVSVElDQUwg
MQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfT1BFTlRZUEVfTUFUSCkgJiYgKE9TKERB
UldJTikgJiYgVVNFKENHKSkgfHwgKFVTRShGUkVFVFlQRSkgJiYgIVBMQVRGT1JNKEdUSykpIHx8
IChQTEFURk9STShXSU4pICYmIChVU0UoQ0cpIHx8IFVTRShDQUlSTykpKQotI2RlZmluZSBFTkFC
TEVfT1BFTlRZUEVfTUFUSCAxCi0jZW5kaWYKLQotLyoKLSAqIEVuYWJsZSB0aGlzIHRvIHB1dCBl
YWNoIElzb0hlYXAgYW5kIG90aGVyIGFsbG9jYXRpb24gY2F0ZWdvcmllcyBpbnRvIHRoZWlyIG93
biBtYWxsb2MgaGVhcHMsIHNvIHRoYXQgdG9vbHMgbGlrZSB2bW1hcCBjYW4gc2hvdyBob3cgYmln
IGVhY2ggaGVhcCBpcy4KLSAqIFR1cm4gQkVOQUJMRV9NQUxMT0NfSEVBUF9CUkVBS0RPV04gb24g
aW4gYm1hbGxvYyB0b2dldGhlciB3aGVuIHVzaW5nIHRoaXMuCi0gKi8KLSNpZiAhZGVmaW5lZChF
TkFCTEVfTUFMTE9DX0hFQVBfQlJFQUtET1dOKQotI2RlZmluZSBFTkFCTEVfTUFMTE9DX0hFQVBf
QlJFQUtET1dOIDAKLSNlbmRpZgotCi0vKiBEaXNhYmxlIFNoYXJlZEFycmF5QnVmZmVycyB1bnRp
bCBTcGVjdHJlIHNlY3VyaXR5IGNvbmNlcm5zIGFyZSBtaXRpZ2F0ZWQuICovCi0jZGVmaW5lIEVO
QUJMRV9TSEFSRURfQVJSQVlfQlVGRkVSIDAKLQotI2lmIFBMQVRGT1JNKE1BQykKLSNkZWZpbmUg
RU5BQkxFX1dFQl9QTEFZQkFDS19DT05UUk9MU19NQU5BR0VSIDEKLSNlbmRpZgotCi0jaWYgUExB
VEZPUk0oQ09DT0EpCi0vKiBGSVhNRTogVGhpcyBpcyBhIFVTRSBzdHlsZSBtYWNybywgYXMgaXQg
dHJpZ2dlcnMgdGhlIHVzZSBvZiBDRlVSTENvbm5lY3Rpb24gZnJhbWV3b3JrIHN0dWJzLiAqLwot
LyogRklYTUU6IElzIHRoaXMgc3RpbGwgbmVjZXNzYXJ5PyBDRlVSTENvbm5lY3Rpb24gaXNuJ3Qg
dXNlZCBvbiBDb2NvYSBwbGF0Zm9ybXMgYW55IG1vcmUuICovCi0jZGVmaW5lIEVOQUJMRV9TRUNf
SVRFTV9TSElNIDEKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oTUFDKQorI2lmICFkZWZpbmVkKEVO
QUJMRV9GVUxMX0tFWUJPQVJEX0FDQ0VTUykgJiYgUExBVEZPUk0oTUFDKQogI2RlZmluZSBFTkFC
TEVfRlVMTF9LRVlCT0FSRF9BQ0NFU1MgMQogI2VuZGlmCiAKLSNpZiAoKFBMQVRGT1JNKENPQ09B
KSB8fCBQTEFURk9STShQTEFZU1RBVElPTikgfHwgUExBVEZPUk0oV1BFKSkgJiYgRU5BQkxFKEFT
WU5DX1NDUk9MTElORykpIHx8IFBMQVRGT1JNKEdUSykKLSNkZWZpbmUgRU5BQkxFX0tJTkVUSUNf
U0NST0xMSU5HIDEKLSNlbmRpZgotCiAjaWYgIWRlZmluZWQoRU5BQkxFX01PTk9TUEFDRV9GT05U
X0VYQ0VQVElPTikgJiYgKChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPCAxMDE1MDApIHx8IFBMQVRGT1JNKFdBVENIT1MpIHx8IFBMQVRGT1JNKEFQUExF
VFYpKQogI2RlZmluZSBFTkFCTEVfTU9OT1NQQUNFX0ZPTlRfRVhDRVBUSU9OIDEKICNlbmRpZgpA
QCAtMTAxOSwzNyArMjI3LDE4IEBAIHRoZSBwdWJsaWMgaU9TIFNESy4gU2VlIDxodHRwczovL3dl
YmtpdC4KICNkZWZpbmUgRU5BQkxFX1BMQVRGT1JNX0RSSVZFTl9URVhUX0NIRUNLSU5HIDEKICNl
bmRpZgogCi0vKiBUaGlzIGZlYXR1cmUgd29ya3MgYnkgZW1iZWRkaW5nIHRoZSBPcGNvZGVJRCBp
biB0aGUgMzIgYml0IGp1c3QgYmVmb3JlIHRoZSBnZW5lcmF0ZWQgTExpbnQgY29kZQotICAgdGhh
dCBleGVjdXRlcyBlYWNoIG9wY29kZS4gSXQgY2Fubm90IGJlIHN1cHBvcnRlZCBieSB0aGUgQ0xv
b3Agc2luY2UgdGhlcmUncyBubyB3YXkgdG8gZW1iZWQgdGhlCi0gICBPcGNvZGVJRCB3b3JkIGlu
IHRoZSBDTG9vcCdzIHN3aXRjaCBzdGF0ZW1lbnQgY2FzZXMuIEl0IGlzIGFsc28gY3VycmVudGx5
IG5vdCBpbXBsZW1lbnRlZCBmb3IgTVNWQy4KLSovCi0jaWYgIWRlZmluZWQoRU5BQkxFX0xMSU5U
X0VNQkVEREVEX09QQ09ERV9JRCkgJiYgIUVOQUJMRShDX0xPT1ApICYmICFDT01QSUxFUihNU1ZD
KSAmJiAoQ1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTTY0KSB8fCAoQ1BVKEFSTV9U
SFVNQjIpICYmIE9TKERBUldJTikpKQotI2RlZmluZSBFTkFCTEVfTExJTlRfRU1CRURERURfT1BD
T0RFX0lEIDEKLSNlbmRpZgotCi0KLS8qIEFzc2VydHMsIGludmFyaWFudHMgZm9yIG1hY3JvIGRl
ZmluaXRpb25zICovCi0KLSNpZiBFTkFCTEUoVklERU9fVFJBQ0spICYmICFFTkFCTEUoVklERU8p
Ci0jZXJyb3IgIkVOQUJMRShWSURFT19UUkFDSykgcmVxdWlyZXMgRU5BQkxFKFZJREVPKSIKLSNl
bmRpZgotCi0jaWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX1NDUklQVCkgJiYgIUVOQUJMRShWSURF
TykKLSNlcnJvciAiRU5BQkxFKE1FRElBX0NPTlRST0xTX1NDUklQVCkgcmVxdWlyZXMgRU5BQkxF
KFZJREVPKSIKLSNlbmRpZgotCi0jaWYgRU5BQkxFKElOU1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFU
Q0hFUlMpICYmICFFTkFCTEUoUkVNT1RFX0lOU1BFQ1RPUikKLSNlcnJvciAiRU5BQkxFKElOU1BF
Q1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hFUlMpIHJlcXVpcmVzIEVOQUJMRShSRU1PVEVfSU5TUEVD
VE9SKSIKKyNpZiAhZGVmaW5lZChFTkFCTEVfV0VCX1BMQVlCQUNLX0NPTlRST0xTX01BTkFHRVIp
ICYmIFBMQVRGT1JNKE1BQykKKyNkZWZpbmUgRU5BQkxFX1dFQl9QTEFZQkFDS19DT05UUk9MU19N
QU5BR0VSIDEKICNlbmRpZgogCi0jaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpICYmICFFTkFC
TEUoVE9VQ0hfRVZFTlRTKQotI2Vycm9yICJFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykgcmVxdWly
ZXMgRU5BQkxFKFRPVUNIX0VWRU5UUykiCisjaWYgIWRlZmluZWQoRU5BQkxFX1JFU09VUkNFX1VT
QUdFKQorI2RlZmluZSBFTkFCTEVfUkVTT1VSQ0VfVVNBR0UgMQogI2VuZGlmCiAKLSNpZiBFTkFC
TEUoV0VCR0wpICYmICFFTkFCTEUoR1JBUEhJQ1NfQ09OVEVYVF9HTCkKLSNlcnJvciAiRU5BQkxF
KFdFQkdMKSByZXF1aXJlcyBFTkFCTEUoR1JBUEhJQ1NfQ09OVEVYVF9HTCkiCisjaWYgIWRlZmlu
ZWQoRU5BQkxFX1NFQ19JVEVNX1NISU0pCisjZGVmaW5lIEVOQUJMRV9TRUNfSVRFTV9TSElNIDEK
ICNlbmRpZgogCi0jaWYgRU5BQkxFKFdFQkdMMikgJiYgIUVOQUJMRShXRUJHTCkKLSNlcnJvciAi
RU5BQkxFKFdFQkdMMikgcmVxdWlyZXMgRU5BQkxFKFdFQkdMKSIKKyNpZiAhZGVmaW5lZChFTkFC
TEVfREFUQV9ERVRFQ1RJT04pICYmICghUExBVEZPUk0oV0FUQ0hPUykgJiYgIVBMQVRGT1JNKEFQ
UExFVFYpICYmICFQTEFURk9STShNQUNDQVRBTFlTVCkpCisjZGVmaW5lIEVOQUJMRV9EQVRBX0RF
VEVDVElPTiAxCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlV2lu
QXBwbGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZVdpbkFw
cGxlLmgJKHJldmlzaW9uIDI1NTU1MikJKGZyb20gU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFi
bGUuaDoyNTU1NTIpCisrKyBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZVdpbkFwcGxlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDA2LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDA3LTIwMDkgVG9yY2ggTW9iaWxlLCBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIw
MTEgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTMgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpZm5kZWYgV1RGX1BMQVRGT1JNX0dVQVJEX0FHQUlOU1RfSU5ESVJFQ1RfSU5DTFVT
SU9OCisjZXJyb3IgIlBsZWFzZSAjaW5jbHVkZSA8d3RmL1BsYXRmb3JtLmg+IGluc3RlYWQgb2Yg
dGhpcyBmaWxlIGRpcmVjdGx5LiIKKyNlbmRpZgorCisKKyNkZWZpbmUgRU5BQkxFKFdURl9GRUFU
VVJFKSAoZGVmaW5lZCBFTkFCTEVfIyNXVEZfRkVBVFVSRSAmJiBFTkFCTEVfIyNXVEZfRkVBVFVS
RSkKKworLyogVXNlIHRoaXMgZmlsZSB0byBsaXN0IF9hbGxfIEVOQUJMRSgpIG1hY3Jvcy4gRGVm
aW5lIHRoZSBtYWNyb3MgdG8gYmUgb25lIG9mIHRoZSBmb2xsb3dpbmcgdmFsdWVzOgorICogIC0g
IjAiIGRpc2FibGVzIHRoZSBmZWF0dXJlIGJ5IGRlZmF1bHQuIFRoZSBmZWF0dXJlIGNhbiBzdGls
bCBiZSBlbmFibGVkIGZvciBhIHNwZWNpZmljIHBvcnQgb3IgZW52aXJvbm1lbnQuCisgKiAgLSAi
MSIgZW5hYmxlcyB0aGUgZmVhdHVyZSBieSBkZWZhdWx0LiBUaGUgZmVhdHVyZSBjYW4gc3RpbGwg
YmUgZGlzYWJsZWQgZm9yIGEgc3BlY2lmaWMgcG9ydCBvciBlbnZpcm9ubWVudC4KKyAqCisgKiBU
aGUgZmVhdHVyZSBkZWZhdWx0cyBpbiB0aGlzIGZpbGUgYXJlIG9ubHkgdGFrZW4gaW50byBhY2Nv
dW50IGlmIHRoZSAocG9ydCBzcGVjaWZpYykgYnVpbGQgc3lzdGVtCisgKiBoYXMgbm90IGVuYWJs
ZWQgb3IgZGlzYWJsZWQgYSBwYXJ0aWN1bGFyIGZlYXR1cmUuCisgKgorICogVXNlIHRoaXMgZmls
ZSB0byBkZWZpbmUgRU5BQkxFKCkgbWFjcm9zIG9ubHkuIERvIG5vdCB1c2UgdGhpcyBmaWxlIHRv
IGRlZmluZSBVU0UoKSBvciBtYWNyb3MgIQorICoKKyAqIE9ubHkgZGVmaW5lIGEgbWFjcm8gaWYg
aXQgd2FzIG5vdCBkZWZpbmVkIGJlZm9yZSAtIGFsd2F5cyBjaGVjayBmb3IgIWRlZmluZWQgZmly
c3QuCisgKgorICogS2VlcCB0aGUgZmlsZSBzb3J0ZWQgYnkgdGhlIG5hbWUgb2YgdGhlIGRlZmlu
ZXMuIEFzIGFuIGV4Y2VwdGlvbiB5b3UgY2FuIGNoYW5nZSB0aGUgb3JkZXIKKyAqIHRvIGFsbG93
IGludGVyZGVwZW5kZW5jaWVzIGJldHdlZW4gdGhlIGRlZmF1bHQgdmFsdWVzLgorICoKKyAqIEJl
bG93IGFyZSBhIGZldyBwb3RlbnRpYWwgY29tbWFuZHMgdG8gdGFrZSBhZHZhbnRhZ2Ugb2YgdGhp
cyBmaWxlIHJ1bm5pbmcgZnJvbSB0aGUgU291cmNlL1dURiBkaXJlY3RvcnkKKyAqCisgKiBHZXQg
dGhlIGxpc3Qgb2YgZmVhdHVyZSBkZWZpbmVzOiBncmVwIC1vICJFTkFCTEVfXChcd1wrXCkiIHd0
Zi9QbGF0Zm9ybUVuYWJsZS5oIHwgc29ydCB8IHVuaXEKKyAqIEdldCB0aGUgbGlzdCBvZiBmZWF0
dXJlcyBlbmFibGVkIGJ5IGRlZmF1bHQgZm9yIGEgUExBVEZPUk0oWFhYKTogZ2NjIC1FIC1kTSAt
SS4gLURXVEZfUExBVEZPUk1fWFhYICJ3dGYvUGxhdGZvcm0uaCIgfCBncmVwICJFTkFCTEVfXHdc
KyAxIiB8IGN1dCAtZCcgJyAtZjIgfCBzb3J0CisgKi8KKworCisvKiBGSVhNRTogVGhpcyBzaG91
bGQgYmUgcmVuYW1lZCB0byBFTkFCTEVfQVNTRVJUUyBmb3IgY29uc2lzdGVuY3kgYW5kIHNvIGl0
IGNhbiBiZSB1c2VkIGFzIEVOQUJMRShBU1NFUlRTKS4gKi8KKy8qIEFTU0VSVF9FTkFCTEVEIHNo
b3VsZCBiZSB0cnVlIGlmIHdlIHdhbnQgdGhlIGN1cnJlbnQgY29tcGlsYXRpb24gdW5pdCB0bwor
ICAgZG8gZGVidWcgYXNzZXJ0aW9uIGNoZWNrcyB1bmNvbmRpdGlvbmFsbHkgKGUuZy4gdHJlYXQg
YSBkZWJ1ZyBBU1NFUlQKKyAgIGxpa2UgYSBSRUxFQVNFX0FTU0VSVC4KKyovCisjaWZuZGVmIEFT
U0VSVF9FTkFCTEVECisjaWZkZWYgTkRFQlVHCisjZGVmaW5lIEFTU0VSVF9FTkFCTEVEIDAKKyNl
bHNlCisjZGVmaW5lIEFTU0VSVF9FTkFCTEVEIDEKKyNlbmRpZgorI2VuZGlmCisKKy8qID09PT0g
UGxhdGZvcm0gYWRkaXRpb25zOiBhZGRpdGlvbnMgdG8gUGxhdGZvcm1FbmFibGUuaCBmcm9tIG91
dHNpZGUgdGhlIG1haW4gcmVwb3NpdG9yeSA9PT09ICovCisKKyNpZiBVU0UoQVBQTEVfSU5URVJO
QUxfU0RLKSAmJiBfX2hhc19pbmNsdWRlKDxXZWJLaXRBZGRpdGlvbnMvQWRkaXRpb25hbEZlYXR1
cmVEZWZpbmVzLmg+KQorI2luY2x1ZGUgPFdlYktpdEFkZGl0aW9ucy9BZGRpdGlvbmFsRmVhdHVy
ZURlZmluZXMuaD4KKyNlbmRpZgorCisvKiBGSVhNRTogTW92ZSBvdXQgdGhlIFBMQVRGT1JNIHNw
ZWNpZmljIHJ1bGVzIGludG8gcGxhdGZvcm0gc3BlY2lmaWMgZmlsZXMuICovCisKKy8qIC0tLS0t
LS0tLSBBcHBsZSBpT1MgKGJ1dCBub3QgbWFjT1MpIHBvcnQgLS0tLS0tLS0tICovCisjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKKworI2lmICFkZWZpbmVkKEVOQUJMRV9BSVJQTEFZX1BJQ0tFUikK
KyNpZiAhUExBVEZPUk0oTUFDQ0FUQUxZU1QpCisjZGVmaW5lIEVOQUJMRV9BSVJQTEFZX1BJQ0tF
UiAxCisjZW5kaWYKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0FQUExFX1BBWV9SRU1P
VEVfVUkpCisjaWYgIVBMQVRGT1JNKEFQUExFVFYpICYmICFQTEFURk9STShNQUNDQVRBTFlTVCkg
JiYgIVBMQVRGT1JNKFdBVENIT1MpCisjZGVmaW5lIEVOQUJMRV9BUFBMRV9QQVlfUkVNT1RFX1VJ
IDEKKyNlbmRpZgorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQ09OVEVOVF9FWFRFTlNJ
T05TKQorI2RlZmluZSBFTkFCTEVfQ09OVEVOVF9FWFRFTlNJT05TIDEKKyNlbmRpZgorCisjaWYg
IWRlZmluZWQoRU5BQkxFX0NPTlRFWFRfTUVOVVMpCisjZGVmaW5lIEVOQUJMRV9DT05URVhUX01F
TlVTIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0NPTlRFWFRfTUVOVV9FVkVOVCkK
KyNpZiAhUExBVEZPUk0oTUFDQ0FUQUxZU1QpCisjZGVmaW5lIEVOQUJMRV9DT05URVhUX01FTlVf
RVZFTlQgMAorI2VuZGlmCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9DVVNUT01fQ1VS
U09SX1NVUFBPUlQpCisjZGVmaW5lIEVOQUJMRV9DVVNUT01fQ1VSU09SX1NVUFBPUlQgMAorI2Vu
ZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfRFJBR19TVVBQT1JUKQorI2RlZmluZSBFTkFCTEVf
RFJBR19TVVBQT1JUIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0dFT0xPQ0FUSU9O
KQorI2RlZmluZSBFTkFCTEVfR0VPTE9DQVRJT04gMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChF
TkFCTEVfSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUykKKyNkZWZpbmUgRU5BQkxFX0lO
U1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hFUlMgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChF
TkFCTEVfSU5TUEVDVE9SX1RFTEVNRVRSWSkKKyNkZWZpbmUgRU5BQkxFX0lOU1BFQ1RPUl9URUxF
TUVUUlkgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTEVUVEVSUFJFU1MpCisjZGVm
aW5lIEVOQUJMRV9MRVRURVJQUkVTUyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9B
VVRPQ09SUkVDVCkKKyNkZWZpbmUgRU5BQkxFX0FVVE9DT1JSRUNUIDEKKyNlbmRpZgorCisjaWYg
IWRlZmluZWQoRU5BQkxFX0FVVE9DQVBJVEFMSVpFKQorI2RlZmluZSBFTkFCTEVfQVVUT0NBUElU
QUxJWkUgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfSU9TX0dFU1RVUkVfRVZFTlRT
KSAmJiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorI2RlZmluZSBFTkFCTEVfSU9TX0dFU1RVUkVf
RVZFTlRTIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykK
KyNkZWZpbmUgRU5BQkxFX1RFWFRfQVVUT1NJWklORyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVk
KEVOQUJMRV9JT1NfVE9VQ0hfRVZFTlRTKSAmJiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorI2Rl
ZmluZSBFTkFCTEVfSU9TX1RPVUNIX0VWRU5UUyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVO
QUJMRV9NRVRFUl9FTEVNRU5UKQorI2RlZmluZSBFTkFCTEVfTUVURVJfRUxFTUVOVCAwCisjZW5k
aWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJKQorI2RlZmluZSBF
TkFCTEVfTkVUU0NBUEVfUExVR0lOX0FQSSAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJM
RV9PUklFTlRBVElPTl9FVkVOVFMpCisjZGVmaW5lIEVOQUJMRV9PUklFTlRBVElPTl9FVkVOVFMg
MQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfUE9JTlRFUl9MT0NLKQorI2RlZmluZSBF
TkFCTEVfUE9JTlRFUl9MT0NLIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1JFTU9U
RV9JTlNQRUNUT1IpCisjZGVmaW5lIEVOQUJMRV9SRU1PVEVfSU5TUEVDVE9SIDEKKyNlbmRpZgor
CisjaWYgIWRlZmluZWQoRU5BQkxFX1RFWFRfQ0FSRVQpCisjZGVmaW5lIEVOQUJMRV9URVhUX0NB
UkVUIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1RFWFRfU0VMRUNUSU9OKQorI2Rl
ZmluZSBFTkFCTEVfVEVYVF9TRUxFQ1RJT04gMAorI2VuZGlmCisKKy8qIEZJWE1FOiBSZW1vdmUg
dGhlIFVTRShBUFBMRV9JTlRFUk5BTF9TREspIGNvbmp1bmN0IG9uY2Ugd2Ugc3VwcG9ydCB0b3Vj
aCBldmVudHMgd2hlbiBidWlsZGluZyBhZ2FpbnN0Cit0aGUgcHVibGljIGlPUyBTREsuIFNlZSA8
aHR0cHM6Ly93ZWJraXQub3JnL2IvMTc5MTY3Pi4gKi8KKyNpZiAhZGVmaW5lZChFTkFCTEVfVE9V
Q0hfRVZFTlRTKSAmJiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorI2RlZmluZSBFTkFCTEVfVE9V
Q0hfRVZFTlRTIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1dFQl9BUkNISVZFKQor
I2RlZmluZSBFTkFCTEVfV0VCX0FSQ0hJVkUgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFC
TEVfV0VCR0wpCisjZGVmaW5lIEVOQUJMRV9XRUJHTCAxCisjZW5kaWYKKworI2lmICFkZWZpbmVk
KEVOQUJMRV9QUklNQVJZX1NOQVBTSE9UVEVEX1BMVUdJTl9IRVVSSVNUSUMpCisjZGVmaW5lIEVO
QUJMRV9QUklNQVJZX1NOQVBTSE9UVEVEX1BMVUdJTl9IRVVSSVNUSUMgMQorI2VuZGlmCisKKyNp
ZiAhZGVmaW5lZChFTkFCTEVfRE9XTkxPQURfQVRUUklCVVRFKQorI2RlZmluZSBFTkFCTEVfRE9X
TkxPQURfQVRUUklCVVRFIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1dLUERGVklF
VykgJiYgUExBVEZPUk0oSU9TKQorI2RlZmluZSBFTkFCTEVfV0tQREZWSUVXIDEKKyNlbmRpZgor
CisjaWYgIWRlZmluZWQoRU5BQkxFX01FRElBX1NPVVJDRSkKKyNkZWZpbmUgRU5BQkxFX01FRElB
X1NPVVJDRSAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9QUkVWSUVXX0NPTlZFUlRF
UikgJiYgUExBVEZPUk0oSU9TKQorI2RlZmluZSBFTkFCTEVfUFJFVklFV19DT05WRVJURVIgMQor
I2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTUVUQV9WSUVXUE9SVCkKKyNkZWZpbmUgRU5B
QkxFX01FVEFfVklFV1BPUlQgMQorI2VuZGlmCisKKyNlbmRpZiAvKiBQTEFURk9STShJT1NfRkFN
SUxZKSAqLworCisvKiAtLS0tLS0tLS0gQXBwbGUgd2F0Y2hPUyBwb3J0IC0tLS0tLS0tLSAqLwor
I2lmIFBMQVRGT1JNKFdBVENIT1MpCisKKyNlbmRpZiAvKiBQTEFURk9STShXQVRDSE9TKSAqLwor
CisvKiAtLS0tLS0tLS0gQXBwbGUgbWFjT1MgcG9ydCAobm90IGlPUykgLS0tLS0tLS0tICovCisj
aWYgUExBVEZPUk0oTUFDKQorCisjaWYgIWRlZmluZWQoRU5BQkxFX0NPTlRFTlRfRVhURU5TSU9O
UykKKyNkZWZpbmUgRU5BQkxFX0NPTlRFTlRfRVhURU5TSU9OUyAxCisjZW5kaWYKKworI2lmICFk
ZWZpbmVkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkKKyNkZWZpbmUgRU5BQkxFX0ZVTExTQ1JFRU5f
QVBJIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpCisj
ZGVmaW5lIEVOQUJMRV9SRU1PVEVfSU5TUEVDVE9SIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQo
RU5BQkxFX0lOU1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hFUlMpCisjZGVmaW5lIEVOQUJMRV9J
TlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENIRVJTIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQo
RU5BQkxFX0lOU1BFQ1RPUl9URUxFTUVUUlkpCisjZGVmaW5lIEVOQUJMRV9JTlNQRUNUT1JfVEVM
RU1FVFJZIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1NNT09USF9TQ1JPTExJTkcp
CisjZGVmaW5lIEVOQUJMRV9TTU9PVEhfU0NST0xMSU5HIDEKKyNlbmRpZgorCisjaWYgRU5BQkxF
KFZJREVPKQorI2lmICFkZWZpbmVkKEVOQUJMRV9WSURFT19UUkFDSykKKyNkZWZpbmUgRU5BQkxF
X1ZJREVPX1RSQUNLIDEKKyNlbmRpZgorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfV0VC
X0FSQ0hJVkUpCisjZGVmaW5lIEVOQUJMRV9XRUJfQVJDSElWRSAxCisjZW5kaWYKKworI2lmICFk
ZWZpbmVkKEVOQUJMRV9XRUJfQVVESU8pCisjZGVmaW5lIEVOQUJMRV9XRUJfQVVESU8gMQorI2Vu
ZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkpCisjZGVmaW5lIEVO
QUJMRV9DVVJTT1JfVklTSUJJTElUWSAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9Q
UklNQVJZX1NOQVBTSE9UVEVEX1BMVUdJTl9IRVVSSVNUSUMpCisjZGVmaW5lIEVOQUJMRV9QUklN
QVJZX1NOQVBTSE9UVEVEX1BMVUdJTl9IRVVSSVNUSUMgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5l
ZChFTkFCTEVfTUFDX0dFU1RVUkVfRVZFTlRTKSAmJiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQor
I2RlZmluZSBFTkFCTEVfTUFDX0dFU1RVUkVfRVZFTlRTIDEKKyNlbmRpZgorCisjaWYgIWRlZmlu
ZWQoRU5BQkxFX1dFQlBST0NFU1NfTlNSVU5MT09QKQorI2RlZmluZSBFTkFCTEVfV0VCUFJPQ0VT
U19OU1JVTkxPT1AgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE0MDAKKyNl
bmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1dFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NL
SU5HKQorI2RlZmluZSBFTkFCTEVfV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcgRU5B
QkxFX1dFQlBST0NFU1NfTlNSVU5MT09QCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9N
RURJQV9TT1VSQ0UpCisjZGVmaW5lIEVOQUJMRV9NRURJQV9TT1VSQ0UgMQorI2VuZGlmCisKKyNl
bmRpZiAvKiBQTEFURk9STShNQUMpICovCisKKy8qIC0tLS0tLS0tLSBBcHBsZSBDb2NvYSBwbGF0
Zm9ybXMgLS0tLS0tLS0tICovCisKKyNpZiBQTEFURk9STShDT0NPQSkKKworI2lmICFkZWZpbmVk
KEVOQUJMRV9MRUdBQ1lfRU5DUllQVEVEX01FRElBKQorI2lmIFBMQVRGT1JNKE1BQ0NBVEFMWVNU
KQorI2RlZmluZSBFTkFCTEVfTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSAwCisjZWxzZQorI2RlZmlu
ZSBFTkFCTEVfTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSAxCisjZW5kaWYKKyNlbmRpZgorCisjaWYg
IWRlZmluZWQoRU5BQkxFX0ZJTEVfUkVQTEFDRU1FTlQpCisjZGVmaW5lIEVOQUJMRV9GSUxFX1JF
UExBQ0VNRU5UIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1BBWU1FTlRfUkVRVUVT
VCkKKyNkZWZpbmUgRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCAxCisjZW5kaWYKKworI2lmICFkZWZp
bmVkKEVOQUJMRV9BU1lOQ19TQ1JPTExJTkcpCisjZGVmaW5lIEVOQUJMRV9BU1lOQ19TQ1JPTExJ
TkcgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfVUlfU0lERV9DT01QT1NJVElORykK
KyNkZWZpbmUgRU5BQkxFX1VJX1NJREVfQ09NUE9TSVRJTkcgMQorI2VuZGlmCisKKyNlbmRpZiAv
KiBQTEFURk9STShDT0NPQSkgKi8KKworI2lmICFQTEFURk9STShDT0NPQSkKKworI2lmICFkZWZp
bmVkKEpTQ19PQkpDX0FQSV9FTkFCTEVEKQorI2RlZmluZSBKU0NfT0JKQ19BUElfRU5BQkxFRCAw
CisjZW5kaWYKKworI2VuZGlmIC8qICFQTEFURk9STShDT0NPQSkgKi8KKworCisvKiAtLS0tLS0t
LS0gQXBwbGUgV2luZG93cyBwb3J0IC0tLS0tLS0tLSAqLworI2lmIFBMQVRGT1JNKFdJTikgJiYg
IVBMQVRGT1JNKFdJTl9DQUlSTykKKworI2lmICFkZWZpbmVkKEVOQUJMRV9GVUxMU0NSRUVOX0FQ
SSkKKyNkZWZpbmUgRU5BQkxFX0ZVTExTQ1JFRU5fQVBJIDEKKyNlbmRpZgorCisjaWYgIWRlZmlu
ZWQoRU5BQkxFX1dFQl9BUkNISVZFKQorI2RlZmluZSBFTkFCTEVfV0VCX0FSQ0hJVkUgMQorI2Vu
ZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfV0VCR0wpCisjZGVmaW5lIEVOQUJMRV9XRUJHTCAw
CisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9HRU9MT0NBVElPTikKKyNkZWZpbmUgRU5B
QkxFX0dFT0xPQ0FUSU9OIDEKKyNlbmRpZgorCisjZW5kaWYgLyogUExBVEZPUk0oV0lOKSAmJiAh
UExBVEZPUk0oV0lOX0NBSVJPKSAqLworCisvKiAtLS0tLS0tLS0gV2luZG93cyBDQUlSTyBwb3J0
IC0tLS0tLS0tLSAqLworLyogUExBVEZPUk0oV0lOX0NBSVJPKSBpcyBhIHNwZWNpYWxpemF0aW9u
IG9mIFBMQVRGT1JNKFdJTikuICovCisvKiBQTEFURk9STShXSU4pIGlzIGFsd2F5cyBlbmFibGVk
IHdoZW4gUExBVEZPUk0oV0lOX0NBSVJPKSBpcyBlbmFibGVkLiAqLworI2lmIFBMQVRGT1JNKFdJ
Tl9DQUlSTykKKworI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJfQVJDSElWRSkKKyNkZWZpbmUgRU5B
QkxFX1dFQl9BUkNISVZFIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1dFQkdMKQor
I2RlZmluZSBFTkFCTEVfV0VCR0wgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfR0VP
TE9DQVRJT04pCisjZGVmaW5lIEVOQUJMRV9HRU9MT0NBVElPTiAxCisjZW5kaWYKKworI2VuZGlm
IC8qIFBMQVRGT1JNKFdJTl9DQUlSTykgKi8KKworLyogRU5BQkxFIG1hY3JvIGRlZmF1bHRzIGZv
ciBXZWJDb3JlICovCisvKiBEbyBub3QgdXNlIFBMQVRGT1JNKCkgdGVzdHMgaW4gdGhpcyBzZWN0
aW9uICEgKi8KKworI2lmICFkZWZpbmVkKEVOQUJMRV8zRF9UUkFOU0ZPUk1TKQorI2RlZmluZSBF
TkFCTEVfM0RfVFJBTlNGT1JNUyAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9BQ0NF
U1NJQklMSVRZKQorI2RlZmluZSBFTkFCTEVfQUNDRVNTSUJJTElUWSAxCisjZW5kaWYKKworI2lm
ICFkZWZpbmVkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpCisjZGVmaW5lIEVOQUJMRV9B
Q0NFTEVSQVRFRF8yRF9DQU5WQVMgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfT1ZF
UkZMT1dfU0NST0xMSU5HX1RPVUNIKQorI2RlZmluZSBFTkFCTEVfT1ZFUkZMT1dfU0NST0xMSU5H
X1RPVUNIIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0FQTkcpCisjZGVmaW5lIEVO
QUJMRV9BUE5HIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0NIQU5ORUxfTUVTU0FH
SU5HKQorI2RlZmluZSBFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcgMQorI2VuZGlmCisKKyNpZiAh
ZGVmaW5lZChFTkFCTEVfQ09OVEVOVF9FWFRFTlNJT05TKQorI2RlZmluZSBFTkFCTEVfQ09OVEVO
VF9FWFRFTlNJT05TIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0NPTlRFWFRfTUVO
VVMpCisjZGVmaW5lIEVOQUJMRV9DT05URVhUX01FTlVTIDEKKyNlbmRpZgorCisjaWYgIWRlZmlu
ZWQoRU5BQkxFX0NPTlRFWFRfTUVOVV9FVkVOVCkKKyNkZWZpbmUgRU5BQkxFX0NPTlRFWFRfTUVO
VV9FVkVOVCAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9DU1MzX1RFWFQpCisjZGVm
aW5lIEVOQUJMRV9DU1MzX1RFWFQgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQ1NT
X0JPWF9ERUNPUkFUSU9OX0JSRUFLKQorI2RlZmluZSBFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9O
X0JSRUFLIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0NTU19ERVZJQ0VfQURBUFRB
VElPTikKKyNkZWZpbmUgRU5BQkxFX0NTU19ERVZJQ0VfQURBUFRBVElPTiAwCisjZW5kaWYKKwor
I2lmICFkZWZpbmVkKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpCisjZGVmaW5lIEVOQUJMRV9DU1Nf
Q09NUE9TSVRJTkcgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTX0lNQUdFX1JF
U09MVVRJT04pCisjZGVmaW5lIEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTiAwCisjZW5kaWYK
KworI2lmICFkZWZpbmVkKEVOQUJMRV9DU1NfQ09OSUNfR1JBRElFTlRTKQorI2RlZmluZSBFTkFC
TEVfQ1NTX0NPTklDX0dSQURJRU5UUyAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9D
VVNUT01fQ1VSU09SX1NVUFBPUlQpCisjZGVmaW5lIEVOQUJMRV9DVVNUT01fQ1VSU09SX1NVUFBP
UlQgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVS
KQorI2RlZmluZSBFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSIDAKKyNlbmRpZgorCisjaWYg
IWRlZmluZWQoRU5BQkxFX0RBUktfTU9ERV9DU1MpCisjZGVmaW5lIEVOQUJMRV9EQVJLX01PREVf
Q1NTIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQpCisj
ZGVmaW5lIEVOQUJMRV9EQVRBTElTVF9FTEVNRU5UIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQo
RU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikKKyNkZWZpbmUgRU5BQkxFX0RFVklDRV9PUklFTlRB
VElPTiAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9ET1dOTE9BRF9BVFRSSUJVVEUp
CisjZGVmaW5lIEVOQUJMRV9ET1dOTE9BRF9BVFRSSUJVVEUgMQorI2VuZGlmCisKKyNpZiAhZGVm
aW5lZChFTkFCTEVfRFJBR19TVVBQT1JUKQorI2RlZmluZSBFTkFCTEVfRFJBR19TVVBQT1JUIDEK
KyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSkKKyNkZWZpbmUg
RU5BQkxFX0VOQ1JZUFRFRF9NRURJQSAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9G
SUxURVJTX0xFVkVMXzIpCisjZGVmaW5lIEVOQUJMRV9GSUxURVJTX0xFVkVMXzIgMAorI2VuZGlm
CisKKyNpZiAhZGVmaW5lZChFTkFCTEVfRlRQRElSKQorI2RlZmluZSBFTkFCTEVfRlRQRElSIDEK
KyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKQorI2RlZmluZSBF
TkFCTEVfRlVMTFNDUkVFTl9BUEkgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfR0FN
RVBBRCkKKyNkZWZpbmUgRU5BQkxFX0dBTUVQQUQgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChF
TkFCTEVfR0VPTE9DQVRJT04pCisjZGVmaW5lIEVOQUJMRV9HRU9MT0NBVElPTiAwCisjZW5kaWYK
KworI2lmICFkZWZpbmVkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKQorI2RlZmluZSBFTkFCTEVf
SU5ERVhFRF9EQVRBQkFTRSAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9JTkRFWEVE
X0RBVEFCQVNFX0lOX1dPUktFUlMpCisjZGVmaW5lIEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFX0lO
X1dPUktFUlMgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfSU5QVVRfVFlQRV9DT0xP
UikKKyNkZWZpbmUgRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IgMQorI2VuZGlmCisKKyNpZiAhZGVm
aW5lZChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKQorI2RlZmluZSBFTkFCTEVfSU5QVVRfVFlQRV9E
QVRFIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVf
SU5DT01QTEVURSkKKyNkZWZpbmUgRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVfSU5DT01QTEVU
RSAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9D
QUwpCisjZGVmaW5lIEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwgMAorI2VuZGlmCisK
KyNpZiAhZGVmaW5lZChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCkKKyNkZWZpbmUgRU5BQkxFX0lO
UFVUX1RZUEVfTU9OVEggMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfSU5QVVRfVFlQ
RV9USU1FKQorI2RlZmluZSBFTkFCTEVfSU5QVVRfVFlQRV9USU1FIDAKKyNlbmRpZgorCisjaWYg
IWRlZmluZWQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykKKyNkZWZpbmUgRU5BQkxFX0lOUFVUX1RZ
UEVfV0VFSyAwCisjZW5kaWYKKworI2lmIEVOQUJMRShJTlBVVF9UWVBFX0RBVEUpIHx8IEVOQUJM
RShJTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUpIHx8IEVOQUJMRShJTlBVVF9UWVBFX0RB
VEVUSU1FTE9DQUwpIHx8IEVOQUJMRShJTlBVVF9UWVBFX01PTlRIKSB8fCBFTkFCTEUoSU5QVVRf
VFlQRV9USU1FKSB8fCBFTkFCTEUoSU5QVVRfVFlQRV9XRUVLKQorI2lmICFkZWZpbmVkKEVOQUJM
RV9EQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQorI2RlZmluZSBFTkFCTEVfREFURV9BTkRfVElN
RV9JTlBVVF9UWVBFUyAxCisjZW5kaWYKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0lO
U1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hFUlMpCisjZGVmaW5lIEVOQUJMRV9JTlNQRUNUT1Jf
QUxURVJOQVRFX0RJU1BBVENIRVJTIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0lO
U1BFQ1RPUl9URUxFTUVUUlkpCisjZGVmaW5lIEVOQUJMRV9JTlNQRUNUT1JfVEVMRU1FVFJZIDAK
KyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0lOVEwpCisjZGVmaW5lIEVOQUJMRV9JTlRM
IDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0xBWU9VVF9GT1JNQVRUSU5HX0NPTlRF
WFQpCisjZGVmaW5lIEVOQUJMRV9MQVlPVVRfRk9STUFUVElOR19DT05URVhUIDAKKyNlbmRpZgor
CisjaWYgIWRlZmluZWQoRU5BQkxFX0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJWEVTKQorI2RlZmlu
ZSBFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMgMAorI2VuZGlmCisKKyNpZiAhZGVm
aW5lZChFTkFCTEVfTEVUVEVSUFJFU1MpCisjZGVmaW5lIEVOQUJMRV9MRVRURVJQUkVTUyAwCisj
ZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9NQVRITUwpCisjZGVmaW5lIEVOQUJMRV9NQVRI
TUwgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTUVESUFfQ0FQVFVSRSkKKyNkZWZp
bmUgRU5BQkxFX01FRElBX0NBUFRVUkUgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVf
TUVESUFfQ09OVFJPTFNfU0NSSVBUKQorI2RlZmluZSBFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NS
SVBUIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX01FRElBX1NPVVJDRSkKKyNkZWZp
bmUgRU5BQkxFX01FRElBX1NPVVJDRSAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9N
RURJQV9TVEFUSVNUSUNTKQorI2RlZmluZSBFTkFCTEVfTUVESUFfU1RBVElTVElDUyAwCisjZW5k
aWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9NRURJQV9TVFJFQU0pCisjZGVmaW5lIEVOQUJMRV9N
RURJQV9TVFJFQU0gMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTUVURVJfRUxFTUVO
VCkKKyNkZWZpbmUgRU5BQkxFX01FVEVSX0VMRU1FTlQgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5l
ZChFTkFCTEVfTUhUTUwpCisjZGVmaW5lIEVOQUJMRV9NSFRNTCAwCisjZW5kaWYKKworI2lmICFk
ZWZpbmVkKEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUpCisjZGVmaW5lIEVOQUJMRV9NT1VTRV9D
VVJTT1JfU0NBTEUgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTU9VU0VfRk9SQ0Vf
RVZFTlRTKQorI2RlZmluZSBFTkFCTEVfTU9VU0VfRk9SQ0VfRVZFTlRTIDEKKyNlbmRpZgorCisj
aWYgIWRlZmluZWQoRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9BUEkpCisjZGVmaW5lIEVOQUJMRV9O
RVRTQ0FQRV9QTFVHSU5fQVBJIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX05FVFND
QVBFX1BMVUdJTl9NRVRBREFUQV9DQUNIRSkKKyNkZWZpbmUgRU5BQkxFX05FVFNDQVBFX1BMVUdJ
Tl9NRVRBREFUQV9DQUNIRSAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9OT1RJRklD
QVRJT05TKQorI2RlZmluZSBFTkFCTEVfTk9USUZJQ0FUSU9OUyAwCisjZW5kaWYKKworI2lmICFk
ZWZpbmVkKEVOQUJMRV9PRkZTQ1JFRU5fQ0FOVkFTKQorI2RlZmluZSBFTkFCTEVfT0ZGU0NSRUVO
X0NBTlZBUyAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9PUklFTlRBVElPTl9FVkVO
VFMpCisjZGVmaW5lIEVOQUJMRV9PUklFTlRBVElPTl9FVkVOVFMgMAorI2VuZGlmCisKKyNpZiBP
UyhXSU5ET1dTKQorI2lmICFkZWZpbmVkKEVOQUJMRV9QQU5fU0NST0xMSU5HKQorI2RlZmluZSBF
TkFCTEVfUEFOX1NDUk9MTElORyAxCisjZW5kaWYKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5B
QkxFX1BBWU1FTlRfUkVRVUVTVCkKKyNkZWZpbmUgRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCAwCisj
ZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9QT0lOVEVSX0xPQ0spCisjZGVmaW5lIEVOQUJM
RV9QT0lOVEVSX0xPQ0sgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfUVVPVEEpCisj
ZGVmaW5lIEVOQUJMRV9RVU9UQSAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9SRU1P
VEVfSU5TUEVDVE9SKQorI2RlZmluZSBFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUiAwCisjZW5kaWYK
KworI2lmICFkZWZpbmVkKEVOQUJMRV9SVUJCRVJfQkFORElORykKKyNkZWZpbmUgRU5BQkxFX1JV
QkJFUl9CQU5ESU5HIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1NFQ1VSSVRZX0FT
U0VSVElPTlMpCisvKiBFbmFibGUgc2VjdXJpdHkgYXNzZXJ0aW9ucyBvbiBhbGwgQVNBTiBidWls
ZHMgYW5kIGRlYnVnIGJ1aWxkcy4gKi8KKyNpZiBBU0FOX0VOQUJMRUQgfHwgIWRlZmluZWQoTkRF
QlVHKQorI2RlZmluZSBFTkFCTEVfU0VDVVJJVFlfQVNTRVJUSU9OUyAxCisjZW5kaWYKKyNlbmRp
ZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1NNT09USF9TQ1JPTExJTkcpCisjZGVmaW5lIEVOQUJM
RV9TTU9PVEhfU0NST0xMSU5HIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1NQRUVD
SF9TWU5USEVTSVMpCisjZGVmaW5lIEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTIDAKKyNlbmRpZgor
CisjaWYgIWRlZmluZWQoRU5BQkxFX1NQRUxMQ0hFQ0spCisjZGVmaW5lIEVOQUJMRV9TUEVMTENI
RUNLIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1NUUkVBTVNfQVBJKQorI2RlZmlu
ZSBFTkFCTEVfU1RSRUFNU19BUEkgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfU1ZH
X0ZPTlRTKQorI2RlZmluZSBFTkFCTEVfU1ZHX0ZPTlRTIDEKKyNlbmRpZgorCisjaWYgIWRlZmlu
ZWQoRU5BQkxFX1RFWFRfQ0FSRVQpCisjZGVmaW5lIEVOQUJMRV9URVhUX0NBUkVUIDEKKyNlbmRp
ZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1RFWFRfU0VMRUNUSU9OKQorI2RlZmluZSBFTkFCTEVf
VEVYVF9TRUxFQ1RJT04gMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQVNZTkNfU0NS
T0xMSU5HKQorI2RlZmluZSBFTkFCTEVfQVNZTkNfU0NST0xMSU5HIDAKKyNlbmRpZgorCisjaWYg
IWRlZmluZWQoRU5BQkxFX1RPVUNIX0VWRU5UUykKKyNkZWZpbmUgRU5BQkxFX1RPVUNIX0VWRU5U
UyAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9WSURFTykKKyNkZWZpbmUgRU5BQkxF
X1ZJREVPIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1ZJREVPX1RSQUNLKQorI2Rl
ZmluZSBFTkFCTEVfVklERU9fVFJBQ0sgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVf
REFUQUNVRV9WQUxVRSkKKyNkZWZpbmUgRU5BQkxFX0RBVEFDVUVfVkFMVUUgMAorI2VuZGlmCisK
KyNpZiAhZGVmaW5lZChFTkFCTEVfV0VCR0wpCisjZGVmaW5lIEVOQUJMRV9XRUJHTCAwCisjZW5k
aWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9HUkFQSElDU19DT05URVhUX0dMKQorI2RlZmluZSBF
TkFCTEVfR1JBUEhJQ1NfQ09OVEVYVF9HTCBFTkFCTEVfV0VCR0wKKyNlbmRpZgorCisjaWYgIWRl
ZmluZWQoRU5BQkxFX1dFQl9BUkNISVZFKQorI2RlZmluZSBFTkFCTEVfV0VCX0FSQ0hJVkUgMAor
I2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfV0VCX0FVRElPKQorI2RlZmluZSBFTkFCTEVf
V0VCX0FVRElPIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1hTTFQpCisjZGVmaW5l
IEVOQUJMRV9YU0xUIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0RBVEFfSU5URVJB
Q1RJT04pCisjZGVmaW5lIEVOQUJMRV9EQVRBX0lOVEVSQUNUSU9OIDAKKyNlbmRpZgorCisjaWYg
IWRlZmluZWQoRU5BQkxFX1NFUlZJQ0VfV09SS0VSKQorI2RlZmluZSBFTkFCTEVfU0VSVklDRV9X
T1JLRVIgMQorI2VuZGlmCisKKworLyogSklUIEZlYXR1cmVzICovCisKKy8qIFRoZSBKSVQgaXMg
ZW5hYmxlZCBieSBkZWZhdWx0IG9uIGFsbCB4ODYtNjQgJiBBUk02NCBwbGF0Zm9ybXMuICovCisj
aWYgIWRlZmluZWQoRU5BQkxFX0pJVCkgJiYgKENQVShYODZfNjQpIHx8IENQVShBUk02NCkpICYm
ICFDUFUoQVBQTEVfQVJNVjdLKQorI2RlZmluZSBFTkFCTEVfSklUIDEKKyNlbmRpZgorCisjaWYg
VVNFKEpTVkFMVUUzMl82NCkKKyNpZiAoQ1BVKEFSTV9USFVNQjIpIHx8IENQVShNSVBTKSkgJiYg
T1MoTElOVVgpCisvKiBPbiBBUk12NyBhbmQgTUlQUyBvbiBMaW51eCB0aGUgSklUIGlzIGVuYWJs
ZWQgdW5sZXNzIGV4cGxpY2l0bHkgZGlzYWJsZWQuICovCisjaWYgIWRlZmluZWQoRU5BQkxFX0pJ
VCkKKyNkZWZpbmUgRU5BQkxFX0pJVCAxCisjZW5kaWYKKyNlbHNlCisvKiBEaXNhYmxlIEpJVCBh
bmQgZm9yY2UgQ19MT09QIG9uIGFsbCBvdGhlciAzMmJpdCBhcmNoaXRlY3R1cmVzLiAqLworI3Vu
ZGVmIEVOQUJMRV9KSVQKKyNkZWZpbmUgRU5BQkxFX0pJVCAwCisjdW5kZWYgRU5BQkxFX0NfTE9P
UAorI2RlZmluZSBFTkFCTEVfQ19MT09QIDEKKyNlbmRpZgorI2VuZGlmCisKKyNpZiAhZGVmaW5l
ZChFTkFCTEVfQ19MT09QKQorI2lmIEVOQUJMRShKSVQpIHx8IENQVShYODZfNjQpIHx8IChDUFUo
QVJNNjQpICYmICFkZWZpbmVkKF9fSUxQMzJfXykpCisjZGVmaW5lIEVOQUJMRV9DX0xPT1AgMAor
I2Vsc2UKKyNkZWZpbmUgRU5BQkxFX0NfTE9PUCAxCisjZW5kaWYKKyNlbmRpZgorCisvKiBGSVhN
RTogVGhpcyBzaG91bGQgYmUgdHVybmVkIGludG8gYW4gI2Vycm9yIGludmFyaWFudCAqLworLyog
VGhlIEZUTCAqZG9lcyBub3QqIHdvcmsgb24gMzItYml0IHBsYXRmb3Jtcy4gRGlzYWJsZSBpdCBl
dmVuIGlmIHNvbWVvbmUgYXNrZWQgdXMgdG8gZW5hYmxlIGl0LiAqLworI2lmIFVTRShKU1ZBTFVF
MzJfNjQpCisjdW5kZWYgRU5BQkxFX0ZUTF9KSVQKKyNkZWZpbmUgRU5BQkxFX0ZUTF9KSVQgMAor
I2VuZGlmCisKKy8qIEZJWE1FOiBUaGlzIHNob3VsZCBiZSB0dXJuZWQgaW50byBhbiAjZXJyb3Ig
aW52YXJpYW50ICovCisvKiBUaGUgRlRMIGlzIGRpc2FibGVkIG9uIHRoZSBpT1Mgc2ltdWxhdG9y
LCBtb3N0bHkgZm9yIHNpbXBsaWNpdHkuICovCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWV9TSU1V
TEFUT1IpCisjdW5kZWYgRU5BQkxFX0ZUTF9KSVQKKyNkZWZpbmUgRU5BQkxFX0ZUTF9KSVQgMAor
I2VuZGlmCisKKy8qIElmIHBvc3NpYmxlLCB0cnkgdG8gZW5hYmxlIGEgZGlzYXNzZW1ibGVyLiBU
aGlzIGlzIG9wdGlvbmFsLiBXZSBwcm9jZWVkIGluIHR3bworICAgc3RlcHM6IGZpcnN0IHdlIHRy
eSB0byBmaW5kIHNvbWUgZGlzYXNzZW1ibGVyIHRoYXQgd2UgY2FuIHVzZSwgYW5kIHRoZW4gd2UK
KyAgIGRlY2lkZSBpZiB0aGUgaGlnaC1sZXZlbCBkaXNhc3NlbWJsZXIgQVBJIGNhbiBiZSBlbmFi
bGVkLiAqLworI2lmICFkZWZpbmVkKEVOQUJMRV9VRElTODYpICYmIEVOQUJMRShKSVQpICYmIENQ
VShYODZfNjQpICYmICFVU0UoQ0FQU1RPTkUpCisjZGVmaW5lIEVOQUJMRV9VRElTODYgMQorI2Vu
ZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQVJNNjRfRElTQVNTRU1CTEVSKSAmJiBFTkFCTEUo
SklUKSAmJiBDUFUoQVJNNjQpICYmICFVU0UoQ0FQU1RPTkUpCisjZGVmaW5lIEVOQUJMRV9BUk02
NF9ESVNBU1NFTUJMRVIgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfRElTQVNTRU1C
TEVSKSAmJiAoRU5BQkxFKFVESVM4NikgfHwgRU5BQkxFKEFSTTY0X0RJU0FTU0VNQkxFUikgfHwg
KEVOQUJMRShKSVQpICYmIFVTRShDQVBTVE9ORSkpKQorI2RlZmluZSBFTkFCTEVfRElTQVNTRU1C
TEVSIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0RGR19KSVQpICYmIEVOQUJMRShK
SVQpCisKKy8qIEVuYWJsZSB0aGUgREZHIEpJVCBvbiBYODYgYW5kIFg4Nl82NC4gKi8KKyNpZiBD
UFUoWDg2XzY0KSAmJiAoT1MoREFSV0lOKSB8fCBPUyhMSU5VWCkgfHwgT1MoRlJFRUJTRCkgfHwg
T1MoSFVSRCkgfHwgT1MoV0lORE9XUykpCisjZGVmaW5lIEVOQUJMRV9ERkdfSklUIDEKKyNlbmRp
ZgorCisvKiBFbmFibGUgdGhlIERGRyBKSVQgb24gQVJNdjcuICBPbmx5IHRlc3RlZCBvbiBpT1Ms
IExpbnV4LCBhbmQgRnJlZUJTRC4gKi8KKyNpZiAoQ1BVKEFSTV9USFVNQjIpIHx8IENQVShBUk02
NCkpICYmIChPUyhEQVJXSU4pIHx8IE9TKExJTlVYKSB8fCBPUyhGUkVFQlNEKSkKKyNkZWZpbmUg
RU5BQkxFX0RGR19KSVQgMQorI2VuZGlmCisKKy8qIEVuYWJsZSB0aGUgREZHIEpJVCBvbiBNSVBT
LiAqLworI2lmIENQVShNSVBTKQorI2RlZmluZSBFTkFCTEVfREZHX0pJVCAxCisjZW5kaWYKKwor
I2VuZGlmIC8qICFkZWZpbmVkKEVOQUJMRV9ERkdfSklUKSAmJiBFTkFCTEUoSklUKSAqLworCisv
KiBDb25jdXJyZW50IEpTIG9ubHkgd29ya3Mgb24gNjQtYml0IHBsYXRmb3JtcyBiZWNhdXNlIGl0
IHJlcXVpcmVzIHRoYXQKKyAgIHZhbHVlcyBnZXQgc3RvcmVkIHRvIGF0b21pY2FsbHkuIFRoaXMg
aXMgdHJpdmlhbGx5IHRydWUgb24gNjQtYml0IHBsYXRmb3JtcywKKyAgIGJ1dCBub3QgdHJ1ZSBh
dCBhbGwgb24gMzItYml0IHBsYXRmb3JtcyB3aGVyZSB2YWx1ZXMgYXJlIGNvbXBvc2VkIG9mIHR3
bworICAgc2VwYXJhdGUgc3ViLXZhbHVlcy4gKi8KKyNpZiBFTkFCTEUoSklUKSAmJiBVU0UoSlNW
QUxVRTY0KQorI2RlZmluZSBFTkFCTEVfQ09OQ1VSUkVOVF9KUyAxCisjZW5kaWYKKworI2lmIChD
UFUoWDg2XzY0KSB8fCBDUFUoQVJNNjQpKSAmJiBIQVZFKEZBU1RfVExTKQorI2RlZmluZSBFTkFC
TEVfRkFTVF9UTFNfSklUIDEKKyNlbmRpZgorCisjaWYgRU5BQkxFKEpJVCkgJiYgKENQVShYODYp
IHx8IENQVShYODZfNjQpIHx8IENQVShBUk1fVEhVTUIyKSB8fCBDUFUoQVJNNjQpIHx8IENQVShN
SVBTKSkKKyNkZWZpbmUgRU5BQkxFX01BU01fUFJPQkUgMQorI2VuZGlmCisKKy8qIEZJWE1FOiBU
aGlzIHNob3VsZCBiZSB0dXJuZWQgaW50byBhbiAjZXJyb3IgaW52YXJpYW50ICovCisvKiBJZiB0
aGUgYmFzZWxpbmUgaml0IGlzIG5vdCBhdmFpbGFibGUsIHRoZW4gZGlzYWJsZSB1cHBlciB0aWVy
cyBhcyB3ZWxsLgorICAgVGhlIE1hY3JvQXNzZW1ibGVyOjpwcm9iZSgpIGlzIGFsc28gcmVxdWly
ZWQgZm9yIHN1cHBvcnRpbmcgdGhlIHVwcGVyIHRpZXJzLiAqLworI2lmICFFTkFCTEUoSklUKSB8
fCAhRU5BQkxFKE1BU01fUFJPQkUpCisjdW5kZWYgRU5BQkxFX0RGR19KSVQKKyN1bmRlZiBFTkFC
TEVfRlRMX0pJVAorI2RlZmluZSBFTkFCTEVfREZHX0pJVCAwCisjZGVmaW5lIEVOQUJMRV9GVExf
SklUIDAKKyNlbmRpZgorCisvKiBGSVhNRTogVGhpcyBzaG91bGQgYmUgdHVybmVkIGludG8gYW4g
I2Vycm9yIGludmFyaWFudCAqLworLyogSWYgdGhlIERGRyBqaXQgaXMgbm90IGF2YWlsYWJsZSwg
dGhlbiBkaXNhYmxlIHVwcGVyIHRpZXJzIGFzIHdlbGw6ICovCisjaWYgIUVOQUJMRShERkdfSklU
KQorI3VuZGVmIEVOQUJMRV9GVExfSklUCisjZGVmaW5lIEVOQUJMRV9GVExfSklUIDAKKyNlbmRp
ZgorCisvKiBUaGlzIGNvbnRyb2xzIHdoZXRoZXIgQjMgaXMgYnVpbHQuIEIzIGlzIG5lZWRlZCBm
b3IgRlRMIEpJVCBhbmQgV2ViQXNzZW1ibHkgKi8KKyNpZiBFTkFCTEUoRlRMX0pJVCkKKyNkZWZp
bmUgRU5BQkxFX0IzX0pJVCAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJBU1NF
TUJMWSkgJiYgKEVOQUJMRShCM19KSVQpICYmIFBMQVRGT1JNKENPQ09BKSAmJiBDUFUoQUREUkVT
UzY0KSkKKyNkZWZpbmUgRU5BQkxFX1dFQkFTU0VNQkxZIDEKKyNlbmRpZgorCisvKiBUaGUgU2Ft
cGxpbmdQcm9maWxlciBpcyB0aGUgcHJvYmFiaWxpc3RpYyBhbmQgbG93LW92ZXJoZWFkIHByb2Zp
bGVyIHVzZWQgYnkKKyAqIEpTQyB0byBtZWFzdXJlIHdoZXJlIHRpbWUgaXMgc3BlbnQgaW5zaWRl
IGEgSmF2YVNjcmlwdCBwcm9ncmFtLgorICogSW4gY29uZmlndXJhdGlvbnMgb3RoZXIgdGhhbiBX
aW5kb3dzIGFuZCBEYXJ3aW4sIGJlY2F1c2UgbGF5b3V0IG9mIG1jb250ZXh0X3QgZGVwZW5kcyBv
biBzdGFuZGFyZCBsaWJyYXJpZXMgKGxpa2UgZ2xpYmMpLAorICogc2FtcGxpbmcgcHJvZmlsZXIg
aXMgZW5hYmxlZCBpZiBXZWJLaXQgdXNlcyBwdGhyZWFkcyBhbmQgZ2xpYmMuICovCisjaWYgIWRl
ZmluZWQoRU5BQkxFX1NBTVBMSU5HX1BST0ZJTEVSKSAmJiAoIUVOQUJMRShDX0xPT1ApICYmIChP
UyhXSU5ET1dTKSB8fCBIQVZFKE1BQ0hJTkVfQ09OVEVYVCkpKQorI2RlZmluZSBFTkFCTEVfU0FN
UExJTkdfUFJPRklMRVIgMQorI2VuZGlmCisKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpICYmIEhB
VkUoTUFDSElORV9DT05URVhUKQorI2RlZmluZSBFTkFCTEVfV0VCQVNTRU1CTFlfRkFTVF9NRU1P
UlkgMQorI2VuZGlmCisKKy8qIENvdW50cyB1c2VzIG9mIHdyaXRlIGJhcnJpZXJzIHVzaW5nIHNh
bXBsaW5nIGNvdW50ZXJzLiBCZSBzdXJlIHRvIGFsc28KKyAgIHNldCBFTkFCTEVfU0FNUExJTkdf
Q09VTlRFUlMgdG8gMS4gKi8KKyNpZiAhZGVmaW5lZChFTkFCTEVfV1JJVEVfQkFSUklFUl9QUk9G
SUxJTkcpCisjZGVmaW5lIEVOQUJMRV9XUklURV9CQVJSSUVSX1BST0ZJTElORyAwCisjZW5kaWYK
KworLyogTG9ncyBhbGwgYWxsb2NhdGlvbi1yZWxhdGVkIGFjdGl2aXR5IHRoYXQgZ29lcyB0aHJv
dWdoIGZhc3RNYWxsb2Mgb3IgdGhlCisgICBKU0MgR0MgKGJvdGggY2VsbHMgYW5kIGJ1dHRlcmZs
aWVzKS4gQWxzbyBsb2dzIG1hcmtpbmcuIE5vdGUgdGhhdCB0aGlzCisgICBpc24ndCBhIGNvbXBs
ZXRlbHkgYWNjdXJhdGUgdmlldyBvZiB0aGUgaGVhcCBzaW5jZSBpdCBkb2Vzbid0IGluY2x1ZGUg
YWxsCisgICBidXR0ZXJmbHkgcmVzaXplIG9wZXJhdGlvbnMsIGRvZXNuJ3QgdGVsbCB5b3Ugd2hh
dCBpcyBnb2luZyBvbiB3aXRoIHdlYWsKKyAgIHJlZmVyZW5jZXMgKG90aGVyIHRoYW4gdG8gdGVs
bCB5b3Ugd2hlbiB0aGV5J3JlIG1hcmtlZCksIGFuZCBkb2Vzbid0CisgICB0cmFjayBkaXJlY3Qg
bW1hcCgpIGFsbG9jYXRpb25zIG9yIHRoaW5ncyBsaWtlIEpJVCBhbGxvY2F0aW9uLiAqLworI2lm
ICFkZWZpbmVkKEVOQUJMRV9BTExPQ0FUSU9OX0xPR0dJTkcpCisjZGVmaW5lIEVOQUJMRV9BTExP
Q0FUSU9OX0xPR0dJTkcgMAorI2VuZGlmCisKKy8qIEVuYWJsZSB2ZXJpZmljYXRpb24gdGhhdCB0
aGF0IHJlZ2lzdGVyIGFsbG9jYXRpb25zIGFyZSBub3QgbWFkZSB3aXRoaW4gZ2VuZXJhdGVkIGNv
bnRyb2wgZmxvdy4KKyAgIFR1cm5lZCBvbiBmb3IgZGVidWcgYnVpbGRzLiAqLworI2lmICFkZWZp
bmVkKEVOQUJMRV9ERkdfUkVHSVNURVJfQUxMT0NBVElPTl9WQUxJREFUSU9OKSAmJiBFTkFCTEUo
REZHX0pJVCkgJiYgIWRlZmluZWQoTkRFQlVHKQorI2RlZmluZSBFTkFCTEVfREZHX1JFR0lTVEVS
X0FMTE9DQVRJT05fVkFMSURBVElPTiAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9T
RVBBUkFURURfV1hfSEVBUCkgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgQ1BVKEFSTTY0KSAm
JiAoIUVOQUJMRShGQVNUX0pJVF9QRVJNSVNTSU9OUykgfHwgIUNQVShBUk02NEUpKQorI2RlZmlu
ZSBFTkFCTEVfU0VQQVJBVEVEX1dYX0hFQVAgMQorI2VuZGlmCisKKy8qIERldGVybWluZSBpZiB3
ZSBuZWVkIHRvIGVuYWJsZSBDb21wdXRlZCBHb3RvIE9wY29kZXMgb3Igbm90OiAqLworI2lmIEhB
VkUoQ09NUFVURURfR09UTykgfHwgIUVOQUJMRShDX0xPT1ApCisjZGVmaW5lIEVOQUJMRV9DT01Q
VVRFRF9HT1RPX09QQ09ERVMgMQorI2VuZGlmCisKKy8qIFJlZ3VsYXIgRXhwcmVzc2lvbiBUcmFj
aW5nIC0gU2V0IHRvIDEgdG8gdHJhY2UgUmVnRXhwJ3MgaW4ganNjLiAgUmVzdWx0cyBkdW1wZWQg
YXQgZXhpdCAqLworI2lmICFkZWZpbmVkKEVOQUJMRV9SRUdFWFBfVFJBQ0lORykKKyNkZWZpbmUg
RU5BQkxFX1JFR0VYUF9UUkFDSU5HIDAKKyNlbmRpZgorCisvKiBZZXQgQW5vdGhlciBSZWdleCBS
dW50aW1lIC0gdHVybmVkIG9uIGJ5IGRlZmF1bHQgZm9yIEpJVCBlbmFibGVkIHBvcnRzLiAqLwor
I2lmICFkZWZpbmVkKEVOQUJMRV9ZQVJSX0pJVCkgJiYgRU5BQkxFKEpJVCkKKyNkZWZpbmUgRU5B
QkxFX1lBUlJfSklUIDEKKyNlbmRpZgorCisvKiBTZXR0aW5nIHRoaXMgZmxhZyBjb21wYXJlcyBK
SVQgcmVzdWx0cyB3aXRoIGludGVycHJldGVyIHJlc3VsdHMuICovCisjaWYgIWRlZmluZWQoRU5B
QkxFX1lBUlJfSklUKSAmJiBFTkFCTEUoSklUKQorI2RlZmluZSBFTkFCTEVfWUFSUl9KSVRfREVC
VUcgMAorI2VuZGlmCisKKy8qIEVuYWJsZSBKSVQnaW5nIFJlZ3VsYXIgRXhwcmVzc2lvbnMgdGhh
dCBoYXZlIG5lc3RlZCBwYXJlbnRoZXNpcyAuICovCisjaWYgRU5BQkxFKFlBUlJfSklUKSAmJiAo
Q1BVKEFSTTY0KSB8fCAoQ1BVKFg4Nl82NCkgJiYgIU9TKFdJTkRPV1MpKSkKKyNkZWZpbmUgRU5B
QkxFX1lBUlJfSklUX0FMTF9QQVJFTlNfRVhQUkVTU0lPTlMgMQorI2VuZGlmCisKKy8qIEVuYWJs
ZSBKSVQnaW5nIFJlZ3VsYXIgRXhwcmVzc2lvbnMgdGhhdCBoYXZlIG5lc3RlZCBiYWNrIHJlZmVy
ZW5jZXMuICovCisjaWYgRU5BQkxFKFlBUlJfSklUKSAmJiAoQ1BVKEFSTTY0KSB8fCAoQ1BVKFg4
Nl82NCkgJiYgIU9TKFdJTkRPV1MpKSkKKyNkZWZpbmUgRU5BQkxFX1lBUlJfSklUX0JBQ0tSRUZF
UkVOQ0VTIDEKKyNlbmRpZgorCisvKiBJZiBlaXRoZXIgdGhlIEpJVCBvciB0aGUgUmVnRXhwIEpJ
VCBpcyBlbmFibGVkLCB0aGVuIHRoZSBBc3NlbWJsZXIgbXVzdCBiZQorICAgZW5hYmxlZCBhcyB3
ZWxsOiAqLworI2lmIEVOQUJMRShKSVQpIHx8IEVOQUJMRShZQVJSX0pJVCkgfHwgIUVOQUJMRShD
X0xPT1ApCisjaWYgZGVmaW5lZChFTkFCTEVfQVNTRU1CTEVSKSAmJiAhRU5BQkxFX0FTU0VNQkxF
UgorI2Vycm9yICJDYW5ub3QgZW5hYmxlIHRoZSBKSVQgb3IgUmVnRXhwIEpJVCB3aXRob3V0IGVu
YWJsaW5nIHRoZSBBc3NlbWJsZXIiCisjZWxzZQorI3VuZGVmIEVOQUJMRV9BU1NFTUJMRVIKKyNk
ZWZpbmUgRU5BQkxFX0FTU0VNQkxFUiAxCisjZW5kaWYKKyNlbmRpZgorCisvKiBJZiB0aGUgRGlz
YXNzZW1ibGVyIGlzIGVuYWJsZWQsIHRoZW4gdGhlIEFzc2VtYmxlciBtdXN0IGJlIGVuYWJsZWQg
YXMgd2VsbDogKi8KKyNpZiBFTkFCTEUoRElTQVNTRU1CTEVSKQorI2lmIGRlZmluZWQoRU5BQkxF
X0FTU0VNQkxFUikgJiYgIUVOQUJMRV9BU1NFTUJMRVIKKyNlcnJvciAiQ2Fubm90IGVuYWJsZSB0
aGUgRGlzYXNzZW1ibGVyIHdpdGhvdXQgZW5hYmxpbmcgdGhlIEFzc2VtYmxlciIKKyNlbHNlCisj
dW5kZWYgRU5BQkxFX0FTU0VNQkxFUgorI2RlZmluZSBFTkFCTEVfQVNTRU1CTEVSIDEKKyNlbmRp
ZgorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfRVhDRVBUSU9OX1NDT1BFX1ZFUklGSUNB
VElPTikKKyNkZWZpbmUgRU5BQkxFX0VYQ0VQVElPTl9TQ09QRV9WRVJJRklDQVRJT04gQVNTRVJU
X0VOQUJMRUQKKyNlbmRpZgorCisjaWYgRU5BQkxFKERGR19KSVQpICYmIEhBVkUoTUFDSElORV9D
T05URVhUKSAmJiAoQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTTY0KSkKKyNkZWZpbmUgRU5BQkxFX1NJ
R05BTF9CQVNFRF9WTV9UUkFQUyAxCisjZW5kaWYKKworLyogQ1NTIFNlbGVjdG9yIEpJVCBDb21w
aWxlciAqLworI2lmICFkZWZpbmVkKEVOQUJMRV9DU1NfU0VMRUNUT1JfSklUKSAmJiAoKENQVShY
ODZfNjQpIHx8IENQVShBUk02NCkgfHwgKENQVShBUk1fVEhVTUIyKSAmJiBPUyhEQVJXSU4pKSkg
JiYgRU5BQkxFKEpJVCkgJiYgKE9TKERBUldJTikgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9S
TShXUEUpKSkKKyNkZWZpbmUgRU5BQkxFX0NTU19TRUxFQ1RPUl9KSVQgMQorI2VuZGlmCisKKyNp
ZiBQTEFURk9STShDT0NPQSkgJiYgIVBMQVRGT1JNKFdBVENIT1MpICYmICFQTEFURk9STShBUFBM
RVRWKSAmJiAhUExBVEZPUk0oTUFDQ0FUQUxZU1QpCisjZGVmaW5lIEVOQUJMRV9EQVRBX0RFVEVD
VElPTiAxCisjZW5kaWYKKworI2lmIENQVShBUk1fVEhVTUIyKSB8fCBDUFUoQVJNNjQpCisjZGVm
aW5lIEVOQUJMRV9CUkFOQ0hfQ09NUEFDVElPTiAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVO
QUJMRV9USFJFQURJTkdfTElCRElTUEFUQ0gpICYmIEhBVkUoRElTUEFUQ0hfSCkKKyNkZWZpbmUg
RU5BQkxFX1RIUkVBRElOR19MSUJESVNQQVRDSCAxCisjZWxpZiAhZGVmaW5lZChFTkFCTEVfVEhS
RUFESU5HX09QRU5NUCkgJiYgZGVmaW5lZChfT1BFTk1QKQorI2RlZmluZSBFTkFCTEVfVEhSRUFE
SU5HX09QRU5NUCAxCisjZWxpZiAhZGVmaW5lZChUSFJFQURJTkdfR0VORVJJQykKKyNkZWZpbmUg
RU5BQkxFX1RIUkVBRElOR19HRU5FUklDIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxF
X0dDX1ZBTElEQVRJT04pICYmICFkZWZpbmVkKE5ERUJVRykKKyNkZWZpbmUgRU5BQkxFX0dDX1ZB
TElEQVRJT04gMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQklORElOR19JTlRFR1JJ
VFkpICYmICFPUyhXSU5ET1dTKQorI2RlZmluZSBFTkFCTEVfQklORElOR19JTlRFR1JJVFkgMQor
I2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfVFJFRV9ERUJVR0dJTkcpICYmICFkZWZpbmVk
KE5ERUJVRykKKyNkZWZpbmUgRU5BQkxFX1RSRUVfREVCVUdHSU5HIDEKKyNlbmRpZgorCisjaWYg
UExBVEZPUk0oQ09DT0EpCisjZGVmaW5lIEVOQUJMRV9SRVNPVVJDRV9VU0FHRSAxCisjZW5kaWYK
KworI2lmICFkZWZpbmVkKEVOQUJMRV9PUEVOVFlQRV9WRVJUSUNBTCkgJiYgUExBVEZPUk0oR1RL
KSB8fCBQTEFURk9STShXUEUpCisjZGVmaW5lIEVOQUJMRV9PUEVOVFlQRV9WRVJUSUNBTCAxCisj
ZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9PUEVOVFlQRV9NQVRIKSAmJiAoT1MoREFSV0lO
KSAmJiBVU0UoQ0cpKSB8fCAoVVNFKEZSRUVUWVBFKSAmJiAhUExBVEZPUk0oR1RLKSkgfHwgKFBM
QVRGT1JNKFdJTikgJiYgKFVTRShDRykgfHwgVVNFKENBSVJPKSkpCisjZGVmaW5lIEVOQUJMRV9P
UEVOVFlQRV9NQVRIIDEKKyNlbmRpZgorCisvKgorICogRW5hYmxlIHRoaXMgdG8gcHV0IGVhY2gg
SXNvSGVhcCBhbmQgb3RoZXIgYWxsb2NhdGlvbiBjYXRlZ29yaWVzIGludG8gdGhlaXIgb3duIG1h
bGxvYyBoZWFwcywgc28gdGhhdCB0b29scyBsaWtlIHZtbWFwIGNhbiBzaG93IGhvdyBiaWcgZWFj
aCBoZWFwIGlzLgorICogVHVybiBCRU5BQkxFX01BTExPQ19IRUFQX0JSRUFLRE9XTiBvbiBpbiBi
bWFsbG9jIHRvZ2V0aGVyIHdoZW4gdXNpbmcgdGhpcy4KKyAqLworI2lmICFkZWZpbmVkKEVOQUJM
RV9NQUxMT0NfSEVBUF9CUkVBS0RPV04pCisjZGVmaW5lIEVOQUJMRV9NQUxMT0NfSEVBUF9CUkVB
S0RPV04gMAorI2VuZGlmCisKKy8qIERpc2FibGUgU2hhcmVkQXJyYXlCdWZmZXJzIHVudGlsIFNw
ZWN0cmUgc2VjdXJpdHkgY29uY2VybnMgYXJlIG1pdGlnYXRlZC4gKi8KKyNkZWZpbmUgRU5BQkxF
X1NIQVJFRF9BUlJBWV9CVUZGRVIgMAorCisjaWYgUExBVEZPUk0oTUFDKQorI2RlZmluZSBFTkFC
TEVfV0VCX1BMQVlCQUNLX0NPTlRST0xTX01BTkFHRVIgMQorI2VuZGlmCisKKyNpZiBQTEFURk9S
TShDT0NPQSkKKy8qIEZJWE1FOiBUaGlzIGlzIGEgVVNFIHN0eWxlIG1hY3JvLCBhcyBpdCB0cmln
Z2VycyB0aGUgdXNlIG9mIENGVVJMQ29ubmVjdGlvbiBmcmFtZXdvcmsgc3R1YnMuICovCisvKiBG
SVhNRTogSXMgdGhpcyBzdGlsbCBuZWNlc3Nhcnk/IENGVVJMQ29ubmVjdGlvbiBpc24ndCB1c2Vk
IG9uIENvY29hIHBsYXRmb3JtcyBhbnkgbW9yZS4gKi8KKyNkZWZpbmUgRU5BQkxFX1NFQ19JVEVN
X1NISU0gMQorI2VuZGlmCisKKyNpZiBQTEFURk9STShNQUMpCisjZGVmaW5lIEVOQUJMRV9GVUxM
X0tFWUJPQVJEX0FDQ0VTUyAxCisjZW5kaWYKKworI2lmICgoUExBVEZPUk0oQ09DT0EpIHx8IFBM
QVRGT1JNKFBMQVlTVEFUSU9OKSB8fCBQTEFURk9STShXUEUpKSAmJiBFTkFCTEUoQVNZTkNfU0NS
T0xMSU5HKSkgfHwgUExBVEZPUk0oR1RLKQorI2RlZmluZSBFTkFCTEVfS0lORVRJQ19TQ1JPTExJ
TkcgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTU9OT1NQQUNFX0ZPTlRfRVhDRVBU
SU9OKSAmJiAoKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA8IDEwMTUwMCkgfHwgUExBVEZPUk0oV0FUQ0hPUykgfHwgUExBVEZPUk0oQVBQTEVUVikpCisj
ZGVmaW5lIEVOQUJMRV9NT05PU1BBQ0VfRk9OVF9FWENFUFRJT04gMQorI2VuZGlmCisKKyNpZiAh
ZGVmaW5lZChFTkFCTEVfUExBVEZPUk1fRFJJVkVOX1RFWFRfQ0hFQ0tJTkcpICYmIFBMQVRGT1JN
KE1BQ0NBVEFMWVNUKQorI2RlZmluZSBFTkFCTEVfUExBVEZPUk1fRFJJVkVOX1RFWFRfQ0hFQ0tJ
TkcgMQorI2VuZGlmCisKKy8qIFRoaXMgZmVhdHVyZSB3b3JrcyBieSBlbWJlZGRpbmcgdGhlIE9w
Y29kZUlEIGluIHRoZSAzMiBiaXQganVzdCBiZWZvcmUgdGhlIGdlbmVyYXRlZCBMTGludCBjb2Rl
CisgICB0aGF0IGV4ZWN1dGVzIGVhY2ggb3Bjb2RlLiBJdCBjYW5ub3QgYmUgc3VwcG9ydGVkIGJ5
IHRoZSBDTG9vcCBzaW5jZSB0aGVyZSdzIG5vIHdheSB0byBlbWJlZCB0aGUKKyAgIE9wY29kZUlE
IHdvcmQgaW4gdGhlIENMb29wJ3Mgc3dpdGNoIHN0YXRlbWVudCBjYXNlcy4gSXQgaXMgYWxzbyBj
dXJyZW50bHkgbm90IGltcGxlbWVudGVkIGZvciBNU1ZDLgorKi8KKyNpZiAhZGVmaW5lZChFTkFC
TEVfTExJTlRfRU1CRURERURfT1BDT0RFX0lEKSAmJiAhRU5BQkxFKENfTE9PUCkgJiYgIUNPTVBJ
TEVSKE1TVkMpICYmIChDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KSB8fCBDUFUoQVJNNjQpIHx8IChD
UFUoQVJNX1RIVU1CMikgJiYgT1MoREFSV0lOKSkpCisjZGVmaW5lIEVOQUJMRV9MTElOVF9FTUJF
RERFRF9PUENPREVfSUQgMQorI2VuZGlmCisKKworLyogQXNzZXJ0cywgaW52YXJpYW50cyBmb3Ig
bWFjcm8gZGVmaW5pdGlvbnMgKi8KKworI2lmIEVOQUJMRShWSURFT19UUkFDSykgJiYgIUVOQUJM
RShWSURFTykKKyNlcnJvciAiRU5BQkxFKFZJREVPX1RSQUNLKSByZXF1aXJlcyBFTkFCTEUoVklE
RU8pIgorI2VuZGlmCisKKyNpZiBFTkFCTEUoTUVESUFfQ09OVFJPTFNfU0NSSVBUKSAmJiAhRU5B
QkxFKFZJREVPKQorI2Vycm9yICJFTkFCTEUoTUVESUFfQ09OVFJPTFNfU0NSSVBUKSByZXF1aXJl
cyBFTkFCTEUoVklERU8pIgorI2VuZGlmCisKKyNpZiBFTkFCTEUoSU5TUEVDVE9SX0FMVEVSTkFU
RV9ESVNQQVRDSEVSUykgJiYgIUVOQUJMRShSRU1PVEVfSU5TUEVDVE9SKQorI2Vycm9yICJFTkFC
TEUoSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUykgcmVxdWlyZXMgRU5BQkxFKFJFTU9U
RV9JTlNQRUNUT1IpIgorI2VuZGlmCisKKyNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykgJiYg
IUVOQUJMRShUT1VDSF9FVkVOVFMpCisjZXJyb3IgIkVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKSBy
ZXF1aXJlcyBFTkFCTEUoVE9VQ0hfRVZFTlRTKSIKKyNlbmRpZgorCisjaWYgRU5BQkxFKFdFQkdM
KSAmJiAhRU5BQkxFKEdSQVBISUNTX0NPTlRFWFRfR0wpCisjZXJyb3IgIkVOQUJMRShXRUJHTCkg
cmVxdWlyZXMgRU5BQkxFKEdSQVBISUNTX0NPTlRFWFRfR0wpIgorI2VuZGlmCisKKyNpZiBFTkFC
TEUoV0VCR0wyKSAmJiAhRU5BQkxFKFdFQkdMKQorI2Vycm9yICJFTkFCTEUoV0VCR0wyKSByZXF1
aXJlcyBFTkFCTEUoV0VCR0wpIgorI2VuZGlmCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bUVuYWJsZVdpbkFwcGxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvUGxhdGZvcm1F
bmFibGVXaW5BcHBsZS5oCShyZXZpc2lvbiAyNTU1NTIpCisrKyBTb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybUVuYWJsZVdpbkFwcGxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA3LTIwMDkgVG9yY2ggTW9iaWxlLCBJbmMuCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMTAsIDIwMTEgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMgU2Ftc3VuZyBFbGVjdHJvbmlj
cy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KQEAgLTMyLDMwNSArMzIsMTIgQEAKICNlcnJvciAiUGxl
YXNlICNpbmNsdWRlIDx3dGYvUGxhdGZvcm0uaD4gaW5zdGVhZCBvZiB0aGlzIGZpbGUgZGlyZWN0
bHkuIgogI2VuZGlmCiAKLQotI2RlZmluZSBFTkFCTEUoV1RGX0ZFQVRVUkUpIChkZWZpbmVkIEVO
QUJMRV8jI1dURl9GRUFUVVJFICYmIEVOQUJMRV8jI1dURl9GRUFUVVJFKQotCi0vKiBVc2UgdGhp
cyBmaWxlIHRvIGxpc3QgX2FsbF8gRU5BQkxFKCkgbWFjcm9zLiBEZWZpbmUgdGhlIG1hY3JvcyB0
byBiZSBvbmUgb2YgdGhlIGZvbGxvd2luZyB2YWx1ZXM6Ci0gKiAgLSAiMCIgZGlzYWJsZXMgdGhl
IGZlYXR1cmUgYnkgZGVmYXVsdC4gVGhlIGZlYXR1cmUgY2FuIHN0aWxsIGJlIGVuYWJsZWQgZm9y
IGEgc3BlY2lmaWMgcG9ydCBvciBlbnZpcm9ubWVudC4KLSAqICAtICIxIiBlbmFibGVzIHRoZSBm
ZWF0dXJlIGJ5IGRlZmF1bHQuIFRoZSBmZWF0dXJlIGNhbiBzdGlsbCBiZSBkaXNhYmxlZCBmb3Ig
YSBzcGVjaWZpYyBwb3J0IG9yIGVudmlyb25tZW50LgotICoKLSAqIFRoZSBmZWF0dXJlIGRlZmF1
bHRzIGluIHRoaXMgZmlsZSBhcmUgb25seSB0YWtlbiBpbnRvIGFjY291bnQgaWYgdGhlIChwb3J0
IHNwZWNpZmljKSBidWlsZCBzeXN0ZW0KLSAqIGhhcyBub3QgZW5hYmxlZCBvciBkaXNhYmxlZCBh
IHBhcnRpY3VsYXIgZmVhdHVyZS4KLSAqCi0gKiBVc2UgdGhpcyBmaWxlIHRvIGRlZmluZSBFTkFC
TEUoKSBtYWNyb3Mgb25seS4gRG8gbm90IHVzZSB0aGlzIGZpbGUgdG8gZGVmaW5lIFVTRSgpIG9y
IG1hY3JvcyAhCi0gKgotICogT25seSBkZWZpbmUgYSBtYWNybyBpZiBpdCB3YXMgbm90IGRlZmlu
ZWQgYmVmb3JlIC0gYWx3YXlzIGNoZWNrIGZvciAhZGVmaW5lZCBmaXJzdC4KLSAqCi0gKiBLZWVw
IHRoZSBmaWxlIHNvcnRlZCBieSB0aGUgbmFtZSBvZiB0aGUgZGVmaW5lcy4gQXMgYW4gZXhjZXB0
aW9uIHlvdSBjYW4gY2hhbmdlIHRoZSBvcmRlcgotICogdG8gYWxsb3cgaW50ZXJkZXBlbmRlbmNp
ZXMgYmV0d2VlbiB0aGUgZGVmYXVsdCB2YWx1ZXMuCi0gKgotICogQmVsb3cgYXJlIGEgZmV3IHBv
dGVudGlhbCBjb21tYW5kcyB0byB0YWtlIGFkdmFudGFnZSBvZiB0aGlzIGZpbGUgcnVubmluZyBm
cm9tIHRoZSBTb3VyY2UvV1RGIGRpcmVjdG9yeQotICoKLSAqIEdldCB0aGUgbGlzdCBvZiBmZWF0
dXJlIGRlZmluZXM6IGdyZXAgLW8gIkVOQUJMRV9cKFx3XCtcKSIgd3RmL1BsYXRmb3JtRW5hYmxl
LmggfCBzb3J0IHwgdW5pcQotICogR2V0IHRoZSBsaXN0IG9mIGZlYXR1cmVzIGVuYWJsZWQgYnkg
ZGVmYXVsdCBmb3IgYSBQTEFURk9STShYWFgpOiBnY2MgLUUgLWRNIC1JLiAtRFdURl9QTEFURk9S
TV9YWFggInd0Zi9QbGF0Zm9ybS5oIiB8IGdyZXAgIkVOQUJMRV9cd1wrIDEiIHwgY3V0IC1kJyAn
IC1mMiB8IHNvcnQKLSAqLwotCi0KLS8qIEZJWE1FOiBUaGlzIHNob3VsZCBiZSByZW5hbWVkIHRv
IEVOQUJMRV9BU1NFUlRTIGZvciBjb25zaXN0ZW5jeSBhbmQgc28gaXQgY2FuIGJlIHVzZWQgYXMg
RU5BQkxFKEFTU0VSVFMpLiAqLwotLyogQVNTRVJUX0VOQUJMRUQgc2hvdWxkIGJlIHRydWUgaWYg
d2Ugd2FudCB0aGUgY3VycmVudCBjb21waWxhdGlvbiB1bml0IHRvCi0gICBkbyBkZWJ1ZyBhc3Nl
cnRpb24gY2hlY2tzIHVuY29uZGl0aW9uYWxseSAoZS5nLiB0cmVhdCBhIGRlYnVnIEFTU0VSVAot
ICAgbGlrZSBhIFJFTEVBU0VfQVNTRVJULgotKi8KLSNpZm5kZWYgQVNTRVJUX0VOQUJMRUQKLSNp
ZmRlZiBOREVCVUcKLSNkZWZpbmUgQVNTRVJUX0VOQUJMRUQgMAotI2Vsc2UKLSNkZWZpbmUgQVNT
RVJUX0VOQUJMRUQgMQotI2VuZGlmCi0jZW5kaWYKLQotLyogPT09PSBQbGF0Zm9ybSBhZGRpdGlv
bnM6IGFkZGl0aW9ucyB0byBQbGF0Zm9ybUVuYWJsZS5oIGZyb20gb3V0c2lkZSB0aGUgbWFpbiBy
ZXBvc2l0b3J5ID09PT0gKi8KLQotI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspICYmIF9faGFz
X2luY2x1ZGUoPFdlYktpdEFkZGl0aW9ucy9BZGRpdGlvbmFsRmVhdHVyZURlZmluZXMuaD4pCi0j
aW5jbHVkZSA8V2ViS2l0QWRkaXRpb25zL0FkZGl0aW9uYWxGZWF0dXJlRGVmaW5lcy5oPgotI2Vu
ZGlmCi0KLS8qIEZJWE1FOiBNb3ZlIG91dCB0aGUgUExBVEZPUk0gc3BlY2lmaWMgcnVsZXMgaW50
byBwbGF0Zm9ybSBzcGVjaWZpYyBmaWxlcy4gKi8KLQotLyogLS0tLS0tLS0tIEFwcGxlIGlPUyAo
YnV0IG5vdCBtYWNPUykgcG9ydCAtLS0tLS0tLS0gKi8KLSNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0FJUlBMQVlfUElDS0VSKQotI2lmICFQTEFURk9STShN
QUNDQVRBTFlTVCkKLSNkZWZpbmUgRU5BQkxFX0FJUlBMQVlfUElDS0VSIDEKLSNlbmRpZgotI2Vu
ZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfQVBQTEVfUEFZX1JFTU9URV9VSSkKLSNpZiAhUExB
VEZPUk0oQVBQTEVUVikgJiYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKSAmJiAhUExBVEZPUk0oV0FU
Q0hPUykKLSNkZWZpbmUgRU5BQkxFX0FQUExFX1BBWV9SRU1PVEVfVUkgMQotI2VuZGlmCi0jZW5k
aWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9DT05URU5UX0VYVEVOU0lPTlMpCi0jZGVmaW5lIEVO
QUJMRV9DT05URU5UX0VYVEVOU0lPTlMgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVf
Q09OVEVYVF9NRU5VUykKLSNkZWZpbmUgRU5BQkxFX0NPTlRFWFRfTUVOVVMgMAotI2VuZGlmCi0K
LSNpZiAhZGVmaW5lZChFTkFCTEVfQ09OVEVYVF9NRU5VX0VWRU5UKQotI2lmICFQTEFURk9STShN
QUNDQVRBTFlTVCkKLSNkZWZpbmUgRU5BQkxFX0NPTlRFWFRfTUVOVV9FVkVOVCAwCi0jZW5kaWYK
LSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0NVU1RPTV9DVVJTT1JfU1VQUE9SVCkKLSNk
ZWZpbmUgRU5BQkxFX0NVU1RPTV9DVVJTT1JfU1VQUE9SVCAwCi0jZW5kaWYKLQotI2lmICFkZWZp
bmVkKEVOQUJMRV9EUkFHX1NVUFBPUlQpCi0jZGVmaW5lIEVOQUJMRV9EUkFHX1NVUFBPUlQgMAot
I2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfR0VPTE9DQVRJT04pCi0jZGVmaW5lIEVOQUJM
RV9HRU9MT0NBVElPTiAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9JTlNQRUNUT1Jf
QUxURVJOQVRFX0RJU1BBVENIRVJTKQotI2RlZmluZSBFTkFCTEVfSU5TUEVDVE9SX0FMVEVSTkFU
RV9ESVNQQVRDSEVSUyAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9JTlNQRUNUT1Jf
VEVMRU1FVFJZKQotI2RlZmluZSBFTkFCTEVfSU5TUEVDVE9SX1RFTEVNRVRSWSAwCi0jZW5kaWYK
LQotI2lmICFkZWZpbmVkKEVOQUJMRV9MRVRURVJQUkVTUykKLSNkZWZpbmUgRU5BQkxFX0xFVFRF
UlBSRVNTIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0FVVE9DT1JSRUNUKQotI2Rl
ZmluZSBFTkFCTEVfQVVUT0NPUlJFQ1QgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVf
QVVUT0NBUElUQUxJWkUpCi0jZGVmaW5lIEVOQUJMRV9BVVRPQ0FQSVRBTElaRSAxCi0jZW5kaWYK
LQotI2lmICFkZWZpbmVkKEVOQUJMRV9JT1NfR0VTVFVSRV9FVkVOVFMpICYmIFVTRShBUFBMRV9J
TlRFUk5BTF9TREspCi0jZGVmaW5lIEVOQUJMRV9JT1NfR0VTVFVSRV9FVkVOVFMgMQotI2VuZGlm
Ci0KLSNpZiAhZGVmaW5lZChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKQotI2RlZmluZSBFTkFCTEVf
VEVYVF9BVVRPU0laSU5HIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0lPU19UT1VD
SF9FVkVOVFMpICYmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCi0jZGVmaW5lIEVOQUJMRV9JT1Nf
VE9VQ0hfRVZFTlRTIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX01FVEVSX0VMRU1F
TlQpCi0jZGVmaW5lIEVOQUJMRV9NRVRFUl9FTEVNRU5UIDAKLSNlbmRpZgotCi0jaWYgIWRlZmlu
ZWQoRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9BUEkpCi0jZGVmaW5lIEVOQUJMRV9ORVRTQ0FQRV9Q
TFVHSU5fQVBJIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX09SSUVOVEFUSU9OX0VW
RU5UUykKLSNkZWZpbmUgRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUyAxCi0jZW5kaWYKLQotI2lm
ICFkZWZpbmVkKEVOQUJMRV9QT0lOVEVSX0xPQ0spCi0jZGVmaW5lIEVOQUJMRV9QT0lOVEVSX0xP
Q0sgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUikKLSNk
ZWZpbmUgRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChF
TkFCTEVfVEVYVF9DQVJFVCkKLSNkZWZpbmUgRU5BQkxFX1RFWFRfQ0FSRVQgMAotI2VuZGlmCi0K
LSNpZiAhZGVmaW5lZChFTkFCTEVfVEVYVF9TRUxFQ1RJT04pCi0jZGVmaW5lIEVOQUJMRV9URVhU
X1NFTEVDVElPTiAwCi0jZW5kaWYKLQotLyogRklYTUU6IFJlbW92ZSB0aGUgVVNFKEFQUExFX0lO
VEVSTkFMX1NESykgY29uanVuY3Qgb25jZSB3ZSBzdXBwb3J0IHRvdWNoIGV2ZW50cyB3aGVuIGJ1
aWxkaW5nIGFnYWluc3QKLXRoZSBwdWJsaWMgaU9TIFNESy4gU2VlIDxodHRwczovL3dlYmtpdC5v
cmcvYi8xNzkxNjc+LiAqLwotI2lmICFkZWZpbmVkKEVOQUJMRV9UT1VDSF9FVkVOVFMpICYmIFVT
RShBUFBMRV9JTlRFUk5BTF9TREspCi0jZGVmaW5lIEVOQUJMRV9UT1VDSF9FVkVOVFMgMQotI2Vu
ZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfV0VCX0FSQ0hJVkUpCi0jZGVmaW5lIEVOQUJMRV9X
RUJfQVJDSElWRSAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJHTCkKLSNkZWZp
bmUgRU5BQkxFX1dFQkdMIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX1BSSU1BUllf
U05BUFNIT1RURURfUExVR0lOX0hFVVJJU1RJQykKLSNkZWZpbmUgRU5BQkxFX1BSSU1BUllfU05B
UFNIT1RURURfUExVR0lOX0hFVVJJU1RJQyAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJM
RV9ET1dOTE9BRF9BVFRSSUJVVEUpCi0jZGVmaW5lIEVOQUJMRV9ET1dOTE9BRF9BVFRSSUJVVEUg
MQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfV0tQREZWSUVXKSAmJiBQTEFURk9STShJ
T1MpCi0jZGVmaW5lIEVOQUJMRV9XS1BERlZJRVcgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChF
TkFCTEVfTUVESUFfU09VUkNFKQotI2RlZmluZSBFTkFCTEVfTUVESUFfU09VUkNFIDAKLSNlbmRp
ZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX1BSRVZJRVdfQ09OVkVSVEVSKSAmJiBQTEFURk9STShJ
T1MpCi0jZGVmaW5lIEVOQUJMRV9QUkVWSUVXX0NPTlZFUlRFUiAxCi0jZW5kaWYKLQotI2lmICFk
ZWZpbmVkKEVOQUJMRV9NRVRBX1ZJRVdQT1JUKQotI2RlZmluZSBFTkFCTEVfTUVUQV9WSUVXUE9S
VCAxCisjaWYgIShQTEFURk9STShXSU4pICYmICFQTEFURk9STShXSU5fQ0FJUk8pKQorI2Vycm9y
ICJUaGlzIGZpbGUgc2hvdWxkIG9ubHkgYmUgaW5jbHVkZWQgd2hlbiBidWlsZGluZyBBcHBsZSdz
IFdpbmRvd3MgcG9ydC4iCiAjZW5kaWYKIAotI2VuZGlmIC8qIFBMQVRGT1JNKElPU19GQU1JTFkp
ICovCi0KLS8qIC0tLS0tLS0tLSBBcHBsZSB3YXRjaE9TIHBvcnQgLS0tLS0tLS0tICovCi0jaWYg
UExBVEZPUk0oV0FUQ0hPUykKLQotI2VuZGlmIC8qIFBMQVRGT1JNKFdBVENIT1MpICovCi0KLS8q
IC0tLS0tLS0tLSBBcHBsZSBtYWNPUyBwb3J0IChub3QgaU9TKSAtLS0tLS0tLS0gKi8KLSNpZiBQ
TEFURk9STShNQUMpCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfQ09OVEVOVF9FWFRFTlNJT05TKQot
I2RlZmluZSBFTkFCTEVfQ09OVEVOVF9FWFRFTlNJT05TIDEKLSNlbmRpZgotCi0jaWYgIWRlZmlu
ZWQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKQotI2RlZmluZSBFTkFCTEVfRlVMTFNDUkVFTl9BUEkg
MQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUikKLSNkZWZp
bmUgRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFC
TEVfSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUykKLSNkZWZpbmUgRU5BQkxFX0lOU1BF
Q1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hFUlMgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFC
TEVfSU5TUEVDVE9SX1RFTEVNRVRSWSkKLSNkZWZpbmUgRU5BQkxFX0lOU1BFQ1RPUl9URUxFTUVU
UlkgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfU01PT1RIX1NDUk9MTElORykKLSNk
ZWZpbmUgRU5BQkxFX1NNT09USF9TQ1JPTExJTkcgMQotI2VuZGlmCi0KLSNpZiBFTkFCTEUoVklE
RU8pCi0jaWYgIWRlZmluZWQoRU5BQkxFX1ZJREVPX1RSQUNLKQotI2RlZmluZSBFTkFCTEVfVklE
RU9fVFJBQ0sgMQotI2VuZGlmCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJfQVJD
SElWRSkKLSNkZWZpbmUgRU5BQkxFX1dFQl9BUkNISVZFIDEKLSNlbmRpZgotCi0jaWYgIWRlZmlu
ZWQoRU5BQkxFX1dFQl9BVURJTykKLSNkZWZpbmUgRU5BQkxFX1dFQl9BVURJTyAxCi0jZW5kaWYK
LQotI2lmICFkZWZpbmVkKEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSkKLSNkZWZpbmUgRU5BQkxF
X0NVUlNPUl9WSVNJQklMSVRZIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX1BSSU1B
UllfU05BUFNIT1RURURfUExVR0lOX0hFVVJJU1RJQykKLSNkZWZpbmUgRU5BQkxFX1BSSU1BUllf
U05BUFNIT1RURURfUExVR0lOX0hFVVJJU1RJQyAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVO
QUJMRV9NQUNfR0VTVFVSRV9FVkVOVFMpICYmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCi0jZGVm
aW5lIEVOQUJMRV9NQUNfR0VTVFVSRV9FVkVOVFMgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChF
TkFCTEVfV0VCUFJPQ0VTU19OU1JVTkxPT1ApCi0jZGVmaW5lIEVOQUJMRV9XRUJQUk9DRVNTX05T
UlVOTE9PUCBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTQwMAotI2VuZGlm
Ci0KLSNpZiAhZGVmaW5lZChFTkFCTEVfV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcp
Ci0jZGVmaW5lIEVOQUJMRV9XRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORyBFTkFCTEVf
V0VCUFJPQ0VTU19OU1JVTkxPT1AKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX01FRElB
X1NPVVJDRSkKLSNkZWZpbmUgRU5BQkxFX01FRElBX1NPVVJDRSAxCi0jZW5kaWYKLQotI2VuZGlm
IC8qIFBMQVRGT1JNKE1BQykgKi8KLQotLyogLS0tLS0tLS0tIEFwcGxlIENvY29hIHBsYXRmb3Jt
cyAtLS0tLS0tLS0gKi8KLQotI2lmIFBMQVRGT1JNKENPQ09BKQotCi0jaWYgIWRlZmluZWQoRU5B
QkxFX0xFR0FDWV9FTkNSWVBURURfTUVESUEpCi0jaWYgUExBVEZPUk0oTUFDQ0FUQUxZU1QpCi0j
ZGVmaW5lIEVOQUJMRV9MRUdBQ1lfRU5DUllQVEVEX01FRElBIDAKLSNlbHNlCi0jZGVmaW5lIEVO
QUJMRV9MRUdBQ1lfRU5DUllQVEVEX01FRElBIDEKLSNlbmRpZgotI2VuZGlmCi0KLSNpZiAhZGVm
aW5lZChFTkFCTEVfRklMRV9SRVBMQUNFTUVOVCkKLSNkZWZpbmUgRU5BQkxFX0ZJTEVfUkVQTEFD
RU1FTlQgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfUEFZTUVOVF9SRVFVRVNUKQot
I2RlZmluZSBFTkFCTEVfUEFZTUVOVF9SRVFVRVNUIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQo
RU5BQkxFX0FTWU5DX1NDUk9MTElORykKLSNkZWZpbmUgRU5BQkxFX0FTWU5DX1NDUk9MTElORyAx
Ci0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9VSV9TSURFX0NPTVBPU0lUSU5HKQotI2Rl
ZmluZSBFTkFCTEVfVUlfU0lERV9DT01QT1NJVElORyAxCi0jZW5kaWYKLQotI2VuZGlmIC8qIFBM
QVRGT1JNKENPQ09BKSAqLwotCi0jaWYgIVBMQVRGT1JNKENPQ09BKQotCi0jaWYgIWRlZmluZWQo
SlNDX09CSkNfQVBJX0VOQUJMRUQpCi0jZGVmaW5lIEpTQ19PQkpDX0FQSV9FTkFCTEVEIDAKLSNl
bmRpZgotCi0jZW5kaWYgLyogIVBMQVRGT1JNKENPQ09BKSAqLwotCiAKIC8qIC0tLS0tLS0tLSBB
cHBsZSBXaW5kb3dzIHBvcnQgLS0tLS0tLS0tICovCi0jaWYgUExBVEZPUk0oV0lOKSAmJiAhUExB
VEZPUk0oV0lOX0NBSVJPKQogCiAjaWYgIWRlZmluZWQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKQog
I2RlZmluZSBFTkFCTEVfRlVMTFNDUkVFTl9BUEkgMQpAQCAtMzQ3LDcwOSArNTQsMyBAQCB0aGUg
cHVibGljIGlPUyBTREsuIFNlZSA8aHR0cHM6Ly93ZWJraXQuCiAjaWYgIWRlZmluZWQoRU5BQkxF
X0dFT0xPQ0FUSU9OKQogI2RlZmluZSBFTkFCTEVfR0VPTE9DQVRJT04gMQogI2VuZGlmCi0KLSNl
bmRpZiAvKiBQTEFURk9STShXSU4pICYmICFQTEFURk9STShXSU5fQ0FJUk8pICovCi0KLS8qIC0t
LS0tLS0tLSBXaW5kb3dzIENBSVJPIHBvcnQgLS0tLS0tLS0tICovCi0vKiBQTEFURk9STShXSU5f
Q0FJUk8pIGlzIGEgc3BlY2lhbGl6YXRpb24gb2YgUExBVEZPUk0oV0lOKS4gKi8KLS8qIFBMQVRG
T1JNKFdJTikgaXMgYWx3YXlzIGVuYWJsZWQgd2hlbiBQTEFURk9STShXSU5fQ0FJUk8pIGlzIGVu
YWJsZWQuICovCi0jaWYgUExBVEZPUk0oV0lOX0NBSVJPKQotCi0jaWYgIWRlZmluZWQoRU5BQkxF
X1dFQl9BUkNISVZFKQotI2RlZmluZSBFTkFCTEVfV0VCX0FSQ0hJVkUgMQotI2VuZGlmCi0KLSNp
ZiAhZGVmaW5lZChFTkFCTEVfV0VCR0wpCi0jZGVmaW5lIEVOQUJMRV9XRUJHTCAxCi0jZW5kaWYK
LQotI2lmICFkZWZpbmVkKEVOQUJMRV9HRU9MT0NBVElPTikKLSNkZWZpbmUgRU5BQkxFX0dFT0xP
Q0FUSU9OIDEKLSNlbmRpZgotCi0jZW5kaWYgLyogUExBVEZPUk0oV0lOX0NBSVJPKSAqLwotCi0v
KiBFTkFCTEUgbWFjcm8gZGVmYXVsdHMgZm9yIFdlYkNvcmUgKi8KLS8qIERvIG5vdCB1c2UgUExB
VEZPUk0oKSB0ZXN0cyBpbiB0aGlzIHNlY3Rpb24gISAqLwotCi0jaWYgIWRlZmluZWQoRU5BQkxF
XzNEX1RSQU5TRk9STVMpCi0jZGVmaW5lIEVOQUJMRV8zRF9UUkFOU0ZPUk1TIDAKLSNlbmRpZgot
Ci0jaWYgIWRlZmluZWQoRU5BQkxFX0FDQ0VTU0lCSUxJVFkpCi0jZGVmaW5lIEVOQUJMRV9BQ0NF
U1NJQklMSVRZIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJE
X0NBTlZBUykKLSNkZWZpbmUgRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUyAwCi0jZW5kaWYK
LQotI2lmICFkZWZpbmVkKEVOQUJMRV9PVkVSRkxPV19TQ1JPTExJTkdfVE9VQ0gpCi0jZGVmaW5l
IEVOQUJMRV9PVkVSRkxPV19TQ1JPTExJTkdfVE9VQ0ggMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5l
ZChFTkFCTEVfQVBORykKLSNkZWZpbmUgRU5BQkxFX0FQTkcgMQotI2VuZGlmCi0KLSNpZiAhZGVm
aW5lZChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpCi0jZGVmaW5lIEVOQUJMRV9DSEFOTkVMX01F
U1NBR0lORyAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9DT05URU5UX0VYVEVOU0lP
TlMpCi0jZGVmaW5lIEVOQUJMRV9DT05URU5UX0VYVEVOU0lPTlMgMAotI2VuZGlmCi0KLSNpZiAh
ZGVmaW5lZChFTkFCTEVfQ09OVEVYVF9NRU5VUykKLSNkZWZpbmUgRU5BQkxFX0NPTlRFWFRfTUVO
VVMgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfQ09OVEVYVF9NRU5VX0VWRU5UKQot
I2RlZmluZSBFTkFCTEVfQ09OVEVYVF9NRU5VX0VWRU5UIDEKLSNlbmRpZgotCi0jaWYgIWRlZmlu
ZWQoRU5BQkxFX0NTUzNfVEVYVCkKLSNkZWZpbmUgRU5BQkxFX0NTUzNfVEVYVCAwCi0jZW5kaWYK
LQotI2lmICFkZWZpbmVkKEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUspCi0jZGVmaW5l
IEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUsgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5l
ZChFTkFCTEVfQ1NTX0RFVklDRV9BREFQVEFUSU9OKQotI2RlZmluZSBFTkFCTEVfQ1NTX0RFVklD
RV9BREFQVEFUSU9OIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0NTU19DT01QT1NJ
VElORykKLSNkZWZpbmUgRU5BQkxFX0NTU19DT01QT1NJVElORyAwCi0jZW5kaWYKLQotI2lmICFk
ZWZpbmVkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikKLSNkZWZpbmUgRU5BQkxFX0NTU19J
TUFHRV9SRVNPTFVUSU9OIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0NTU19DT05J
Q19HUkFESUVOVFMpCi0jZGVmaW5lIEVOQUJMRV9DU1NfQ09OSUNfR1JBRElFTlRTIDAKLSNlbmRp
ZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0NVU1RPTV9DVVJTT1JfU1VQUE9SVCkKLSNkZWZpbmUg
RU5BQkxFX0NVU1RPTV9DVVJTT1JfU1VQUE9SVCAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVO
QUJMRV9DVVNUT01fU0NIRU1FX0hBTkRMRVIpCi0jZGVmaW5lIEVOQUJMRV9DVVNUT01fU0NIRU1F
X0hBTkRMRVIgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfREFSS19NT0RFX0NTUykK
LSNkZWZpbmUgRU5BQkxFX0RBUktfTU9ERV9DU1MgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChF
TkFCTEVfREFUQUxJU1RfRUxFTUVOVCkKLSNkZWZpbmUgRU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQg
MAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKQotI2Rl
ZmluZSBFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQo
RU5BQkxFX0RPV05MT0FEX0FUVFJJQlVURSkKLSNkZWZpbmUgRU5BQkxFX0RPV05MT0FEX0FUVFJJ
QlVURSAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9EUkFHX1NVUFBPUlQpCi0jZGVm
aW5lIEVOQUJMRV9EUkFHX1NVUFBPUlQgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVf
RU5DUllQVEVEX01FRElBKQotI2RlZmluZSBFTkFCTEVfRU5DUllQVEVEX01FRElBIDAKLSNlbmRp
ZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0ZJTFRFUlNfTEVWRUxfMikKLSNkZWZpbmUgRU5BQkxF
X0ZJTFRFUlNfTEVWRUxfMiAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9GVFBESVIp
Ci0jZGVmaW5lIEVOQUJMRV9GVFBESVIgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVf
RlVMTFNDUkVFTl9BUEkpCi0jZGVmaW5lIEVOQUJMRV9GVUxMU0NSRUVOX0FQSSAwCi0jZW5kaWYK
LQotI2lmICFkZWZpbmVkKEVOQUJMRV9HQU1FUEFEKQotI2RlZmluZSBFTkFCTEVfR0FNRVBBRCAw
Ci0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9HRU9MT0NBVElPTikKLSNkZWZpbmUgRU5B
QkxFX0dFT0xPQ0FUSU9OIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0lOREVYRURf
REFUQUJBU0UpCi0jZGVmaW5lIEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFIDAKLSNlbmRpZgotCi0j
aWYgIWRlZmluZWQoRU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUykKLSNkZWZpbmUg
RU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUyAwCi0jZW5kaWYKLQotI2lmICFkZWZp
bmVkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKQotI2RlZmluZSBFTkFCTEVfSU5QVVRfVFlQRV9D
T0xPUiAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpCi0j
ZGVmaW5lIEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChF
TkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKQotI2RlZmluZSBFTkFCTEVfSU5Q
VVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5B
QkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkKLSNkZWZpbmUgRU5BQkxFX0lOUFVUX1RZUEVf
REFURVRJTUVMT0NBTCAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9JTlBVVF9UWVBF
X01PTlRIKQotI2RlZmluZSBFTkFCTEVfSU5QVVRfVFlQRV9NT05USCAwCi0jZW5kaWYKLQotI2lm
ICFkZWZpbmVkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpCi0jZGVmaW5lIEVOQUJMRV9JTlBVVF9U
WVBFX1RJTUUgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfSU5QVVRfVFlQRV9XRUVL
KQotI2RlZmluZSBFTkFCTEVfSU5QVVRfVFlQRV9XRUVLIDAKLSNlbmRpZgotCi0jaWYgRU5BQkxF
KElOUFVUX1RZUEVfREFURSkgfHwgRU5BQkxFKElOUFVUX1RZUEVfREFURVRJTUVfSU5DT01QTEVU
RSkgfHwgRU5BQkxFKElOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgfHwgRU5BQkxFKElOUFVUX1RZ
UEVfTU9OVEgpIHx8IEVOQUJMRShJTlBVVF9UWVBFX1RJTUUpIHx8IEVOQUJMRShJTlBVVF9UWVBF
X1dFRUspCi0jaWYgIWRlZmluZWQoRU5BQkxFX0RBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCi0j
ZGVmaW5lIEVOQUJMRV9EQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTIDEKLSNlbmRpZgotI2VuZGlm
Ci0KLSNpZiAhZGVmaW5lZChFTkFCTEVfSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUykK
LSNkZWZpbmUgRU5BQkxFX0lOU1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hFUlMgMAotI2VuZGlm
Ci0KLSNpZiAhZGVmaW5lZChFTkFCTEVfSU5TUEVDVE9SX1RFTEVNRVRSWSkKLSNkZWZpbmUgRU5B
QkxFX0lOU1BFQ1RPUl9URUxFTUVUUlkgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVf
SU5UTCkKLSNkZWZpbmUgRU5BQkxFX0lOVEwgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFC
TEVfTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKLSNkZWZpbmUgRU5BQkxFX0xBWU9VVF9GT1JN
QVRUSU5HX0NPTlRFWFQgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfTEVHQUNZX0NT
U19WRU5ET1JfUFJFRklYRVMpCi0jZGVmaW5lIEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVG
SVhFUyAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9MRVRURVJQUkVTUykKLSNkZWZp
bmUgRU5BQkxFX0xFVFRFUlBSRVNTIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX01B
VEhNTCkKLSNkZWZpbmUgRU5BQkxFX01BVEhNTCAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVO
QUJMRV9NRURJQV9DQVBUVVJFKQotI2RlZmluZSBFTkFCTEVfTUVESUFfQ0FQVFVSRSAwCi0jZW5k
aWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQpCi0jZGVmaW5l
IEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChF
TkFCTEVfTUVESUFfU09VUkNFKQotI2RlZmluZSBFTkFCTEVfTUVESUFfU09VUkNFIDAKLSNlbmRp
ZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpCi0jZGVmaW5lIEVOQUJM
RV9NRURJQV9TVEFUSVNUSUNTIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX01FRElB
X1NUUkVBTSkKLSNkZWZpbmUgRU5BQkxFX01FRElBX1NUUkVBTSAwCi0jZW5kaWYKLQotI2lmICFk
ZWZpbmVkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKQotI2RlZmluZSBFTkFCTEVfTUVURVJfRUxFTUVO
VCAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9NSFRNTCkKLSNkZWZpbmUgRU5BQkxF
X01IVE1MIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FM
RSkKLSNkZWZpbmUgRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FMRSAwCi0jZW5kaWYKLQotI2lmICFk
ZWZpbmVkKEVOQUJMRV9NT1VTRV9GT1JDRV9FVkVOVFMpCi0jZGVmaW5lIEVOQUJMRV9NT1VTRV9G
T1JDRV9FVkVOVFMgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfTkVUU0NBUEVfUExV
R0lOX0FQSSkKLSNkZWZpbmUgRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9BUEkgMQotI2VuZGlmCi0K
LSNpZiAhZGVmaW5lZChFTkFCTEVfTkVUU0NBUEVfUExVR0lOX01FVEFEQVRBX0NBQ0hFKQotI2Rl
ZmluZSBFTkFCTEVfTkVUU0NBUEVfUExVR0lOX01FVEFEQVRBX0NBQ0hFIDAKLSNlbmRpZgotCi0j
aWYgIWRlZmluZWQoRU5BQkxFX05PVElGSUNBVElPTlMpCi0jZGVmaW5lIEVOQUJMRV9OT1RJRklD
QVRJT05TIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX09GRlNDUkVFTl9DQU5WQVMp
Ci0jZGVmaW5lIEVOQUJMRV9PRkZTQ1JFRU5fQ0FOVkFTIDAKLSNlbmRpZgotCi0jaWYgIWRlZmlu
ZWQoRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUykKLSNkZWZpbmUgRU5BQkxFX09SSUVOVEFUSU9O
X0VWRU5UUyAwCi0jZW5kaWYKLQotI2lmIE9TKFdJTkRPV1MpCi0jaWYgIWRlZmluZWQoRU5BQkxF
X1BBTl9TQ1JPTExJTkcpCi0jZGVmaW5lIEVOQUJMRV9QQU5fU0NST0xMSU5HIDEKLSNlbmRpZgot
I2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfUEFZTUVOVF9SRVFVRVNUKQotI2RlZmluZSBF
TkFCTEVfUEFZTUVOVF9SRVFVRVNUIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX1BP
SU5URVJfTE9DSykKLSNkZWZpbmUgRU5BQkxFX1BPSU5URVJfTE9DSyAxCi0jZW5kaWYKLQotI2lm
ICFkZWZpbmVkKEVOQUJMRV9RVU9UQSkKLSNkZWZpbmUgRU5BQkxFX1FVT1RBIDAKLSNlbmRpZgot
Ci0jaWYgIWRlZmluZWQoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpCi0jZGVmaW5lIEVOQUJMRV9S
RU1PVEVfSU5TUEVDVE9SIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX1JVQkJFUl9C
QU5ESU5HKQotI2RlZmluZSBFTkFCTEVfUlVCQkVSX0JBTkRJTkcgMAotI2VuZGlmCi0KLSNpZiAh
ZGVmaW5lZChFTkFCTEVfU0VDVVJJVFlfQVNTRVJUSU9OUykKLS8qIEVuYWJsZSBzZWN1cml0eSBh
c3NlcnRpb25zIG9uIGFsbCBBU0FOIGJ1aWxkcyBhbmQgZGVidWcgYnVpbGRzLiAqLwotI2lmIEFT
QU5fRU5BQkxFRCB8fCAhZGVmaW5lZChOREVCVUcpCi0jZGVmaW5lIEVOQUJMRV9TRUNVUklUWV9B
U1NFUlRJT05TIDEKLSNlbmRpZgotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfU01PT1RI
X1NDUk9MTElORykKLSNkZWZpbmUgRU5BQkxFX1NNT09USF9TQ1JPTExJTkcgMAotI2VuZGlmCi0K
LSNpZiAhZGVmaW5lZChFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUykKLSNkZWZpbmUgRU5BQkxFX1NQ
RUVDSF9TWU5USEVTSVMgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfU1BFTExDSEVD
SykKLSNkZWZpbmUgRU5BQkxFX1NQRUxMQ0hFQ0sgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChF
TkFCTEVfU1RSRUFNU19BUEkpCi0jZGVmaW5lIEVOQUJMRV9TVFJFQU1TX0FQSSAxCi0jZW5kaWYK
LQotI2lmICFkZWZpbmVkKEVOQUJMRV9TVkdfRk9OVFMpCi0jZGVmaW5lIEVOQUJMRV9TVkdfRk9O
VFMgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfVEVYVF9DQVJFVCkKLSNkZWZpbmUg
RU5BQkxFX1RFWFRfQ0FSRVQgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfVEVYVF9T
RUxFQ1RJT04pCi0jZGVmaW5lIEVOQUJMRV9URVhUX1NFTEVDVElPTiAxCi0jZW5kaWYKLQotI2lm
ICFkZWZpbmVkKEVOQUJMRV9BU1lOQ19TQ1JPTExJTkcpCi0jZGVmaW5lIEVOQUJMRV9BU1lOQ19T
Q1JPTExJTkcgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfVE9VQ0hfRVZFTlRTKQot
I2RlZmluZSBFTkFCTEVfVE9VQ0hfRVZFTlRTIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5B
QkxFX1ZJREVPKQotI2RlZmluZSBFTkFCTEVfVklERU8gMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5l
ZChFTkFCTEVfVklERU9fVFJBQ0spCi0jZGVmaW5lIEVOQUJMRV9WSURFT19UUkFDSyAwCi0jZW5k
aWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9EQVRBQ1VFX1ZBTFVFKQotI2RlZmluZSBFTkFCTEVf
REFUQUNVRV9WQUxVRSAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJHTCkKLSNk
ZWZpbmUgRU5BQkxFX1dFQkdMIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0dSQVBI
SUNTX0NPTlRFWFRfR0wpCi0jZGVmaW5lIEVOQUJMRV9HUkFQSElDU19DT05URVhUX0dMIEVOQUJM
RV9XRUJHTAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfV0VCX0FSQ0hJVkUpCi0jZGVm
aW5lIEVOQUJMRV9XRUJfQVJDSElWRSAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9X
RUJfQVVESU8pCi0jZGVmaW5lIEVOQUJMRV9XRUJfQVVESU8gMAotI2VuZGlmCi0KLSNpZiAhZGVm
aW5lZChFTkFCTEVfWFNMVCkKLSNkZWZpbmUgRU5BQkxFX1hTTFQgMQotI2VuZGlmCi0KLSNpZiAh
ZGVmaW5lZChFTkFCTEVfREFUQV9JTlRFUkFDVElPTikKLSNkZWZpbmUgRU5BQkxFX0RBVEFfSU5U
RVJBQ1RJT04gMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfU0VSVklDRV9XT1JLRVIp
Ci0jZGVmaW5lIEVOQUJMRV9TRVJWSUNFX1dPUktFUiAxCi0jZW5kaWYKLQotCi0vKiBKSVQgRmVh
dHVyZXMgKi8KLQotLyogVGhlIEpJVCBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgb24gYWxsIHg4Ni02
NCAmIEFSTTY0IHBsYXRmb3Jtcy4gKi8KLSNpZiAhZGVmaW5lZChFTkFCTEVfSklUKSAmJiAoQ1BV
KFg4Nl82NCkgfHwgQ1BVKEFSTTY0KSkgJiYgIUNQVShBUFBMRV9BUk1WN0spCi0jZGVmaW5lIEVO
QUJMRV9KSVQgMQotI2VuZGlmCi0KLSNpZiBVU0UoSlNWQUxVRTMyXzY0KQotI2lmIChDUFUoQVJN
X1RIVU1CMikgfHwgQ1BVKE1JUFMpKSAmJiBPUyhMSU5VWCkKLS8qIE9uIEFSTXY3IGFuZCBNSVBT
IG9uIExpbnV4IHRoZSBKSVQgaXMgZW5hYmxlZCB1bmxlc3MgZXhwbGljaXRseSBkaXNhYmxlZC4g
Ki8KLSNpZiAhZGVmaW5lZChFTkFCTEVfSklUKQotI2RlZmluZSBFTkFCTEVfSklUIDEKLSNlbmRp
ZgotI2Vsc2UKLS8qIERpc2FibGUgSklUIGFuZCBmb3JjZSBDX0xPT1Agb24gYWxsIG90aGVyIDMy
Yml0IGFyY2hpdGVjdHVyZXMuICovCi0jdW5kZWYgRU5BQkxFX0pJVAotI2RlZmluZSBFTkFCTEVf
SklUIDAKLSN1bmRlZiBFTkFCTEVfQ19MT09QCi0jZGVmaW5lIEVOQUJMRV9DX0xPT1AgMQotI2Vu
ZGlmCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9DX0xPT1ApCi0jaWYgRU5BQkxFKEpJ
VCkgfHwgQ1BVKFg4Nl82NCkgfHwgKENQVShBUk02NCkgJiYgIWRlZmluZWQoX19JTFAzMl9fKSkK
LSNkZWZpbmUgRU5BQkxFX0NfTE9PUCAwCi0jZWxzZQotI2RlZmluZSBFTkFCTEVfQ19MT09QIDEK
LSNlbmRpZgotI2VuZGlmCi0KLS8qIEZJWE1FOiBUaGlzIHNob3VsZCBiZSB0dXJuZWQgaW50byBh
biAjZXJyb3IgaW52YXJpYW50ICovCi0vKiBUaGUgRlRMICpkb2VzIG5vdCogd29yayBvbiAzMi1i
aXQgcGxhdGZvcm1zLiBEaXNhYmxlIGl0IGV2ZW4gaWYgc29tZW9uZSBhc2tlZCB1cyB0byBlbmFi
bGUgaXQuICovCi0jaWYgVVNFKEpTVkFMVUUzMl82NCkKLSN1bmRlZiBFTkFCTEVfRlRMX0pJVAot
I2RlZmluZSBFTkFCTEVfRlRMX0pJVCAwCi0jZW5kaWYKLQotLyogRklYTUU6IFRoaXMgc2hvdWxk
IGJlIHR1cm5lZCBpbnRvIGFuICNlcnJvciBpbnZhcmlhbnQgKi8KLS8qIFRoZSBGVEwgaXMgZGlz
YWJsZWQgb24gdGhlIGlPUyBzaW11bGF0b3IsIG1vc3RseSBmb3Igc2ltcGxpY2l0eS4gKi8KLSNp
ZiBQTEFURk9STShJT1NfRkFNSUxZX1NJTVVMQVRPUikKLSN1bmRlZiBFTkFCTEVfRlRMX0pJVAot
I2RlZmluZSBFTkFCTEVfRlRMX0pJVCAwCi0jZW5kaWYKLQotLyogSWYgcG9zc2libGUsIHRyeSB0
byBlbmFibGUgYSBkaXNhc3NlbWJsZXIuIFRoaXMgaXMgb3B0aW9uYWwuIFdlIHByb2NlZWQgaW4g
dHdvCi0gICBzdGVwczogZmlyc3Qgd2UgdHJ5IHRvIGZpbmQgc29tZSBkaXNhc3NlbWJsZXIgdGhh
dCB3ZSBjYW4gdXNlLCBhbmQgdGhlbiB3ZQotICAgZGVjaWRlIGlmIHRoZSBoaWdoLWxldmVsIGRp
c2Fzc2VtYmxlciBBUEkgY2FuIGJlIGVuYWJsZWQuICovCi0jaWYgIWRlZmluZWQoRU5BQkxFX1VE
SVM4NikgJiYgRU5BQkxFKEpJVCkgJiYgQ1BVKFg4Nl82NCkgJiYgIVVTRShDQVBTVE9ORSkKLSNk
ZWZpbmUgRU5BQkxFX1VESVM4NiAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9BUk02
NF9ESVNBU1NFTUJMRVIpICYmIEVOQUJMRShKSVQpICYmIENQVShBUk02NCkgJiYgIVVTRShDQVBT
VE9ORSkKLSNkZWZpbmUgRU5BQkxFX0FSTTY0X0RJU0FTU0VNQkxFUiAxCi0jZW5kaWYKLQotI2lm
ICFkZWZpbmVkKEVOQUJMRV9ESVNBU1NFTUJMRVIpICYmIChFTkFCTEUoVURJUzg2KSB8fCBFTkFC
TEUoQVJNNjRfRElTQVNTRU1CTEVSKSB8fCAoRU5BQkxFKEpJVCkgJiYgVVNFKENBUFNUT05FKSkp
Ci0jZGVmaW5lIEVOQUJMRV9ESVNBU1NFTUJMRVIgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChF
TkFCTEVfREZHX0pJVCkgJiYgRU5BQkxFKEpJVCkKLQotLyogRW5hYmxlIHRoZSBERkcgSklUIG9u
IFg4NiBhbmQgWDg2XzY0LiAqLwotI2lmIENQVShYODZfNjQpICYmIChPUyhEQVJXSU4pIHx8IE9T
KExJTlVYKSB8fCBPUyhGUkVFQlNEKSB8fCBPUyhIVVJEKSB8fCBPUyhXSU5ET1dTKSkKLSNkZWZp
bmUgRU5BQkxFX0RGR19KSVQgMQotI2VuZGlmCi0KLS8qIEVuYWJsZSB0aGUgREZHIEpJVCBvbiBB
Uk12Ny4gIE9ubHkgdGVzdGVkIG9uIGlPUywgTGludXgsIGFuZCBGcmVlQlNELiAqLwotI2lmIChD
UFUoQVJNX1RIVU1CMikgfHwgQ1BVKEFSTTY0KSkgJiYgKE9TKERBUldJTikgfHwgT1MoTElOVVgp
IHx8IE9TKEZSRUVCU0QpKQotI2RlZmluZSBFTkFCTEVfREZHX0pJVCAxCi0jZW5kaWYKLQotLyog
RW5hYmxlIHRoZSBERkcgSklUIG9uIE1JUFMuICovCi0jaWYgQ1BVKE1JUFMpCi0jZGVmaW5lIEVO
QUJMRV9ERkdfSklUIDEKLSNlbmRpZgotCi0jZW5kaWYgLyogIWRlZmluZWQoRU5BQkxFX0RGR19K
SVQpICYmIEVOQUJMRShKSVQpICovCi0KLS8qIENvbmN1cnJlbnQgSlMgb25seSB3b3JrcyBvbiA2
NC1iaXQgcGxhdGZvcm1zIGJlY2F1c2UgaXQgcmVxdWlyZXMgdGhhdAotICAgdmFsdWVzIGdldCBz
dG9yZWQgdG8gYXRvbWljYWxseS4gVGhpcyBpcyB0cml2aWFsbHkgdHJ1ZSBvbiA2NC1iaXQgcGxh
dGZvcm1zLAotICAgYnV0IG5vdCB0cnVlIGF0IGFsbCBvbiAzMi1iaXQgcGxhdGZvcm1zIHdoZXJl
IHZhbHVlcyBhcmUgY29tcG9zZWQgb2YgdHdvCi0gICBzZXBhcmF0ZSBzdWItdmFsdWVzLiAqLwot
I2lmIEVOQUJMRShKSVQpICYmIFVTRShKU1ZBTFVFNjQpCi0jZGVmaW5lIEVOQUJMRV9DT05DVVJS
RU5UX0pTIDEKLSNlbmRpZgotCi0jaWYgKENQVShYODZfNjQpIHx8IENQVShBUk02NCkpICYmIEhB
VkUoRkFTVF9UTFMpCi0jZGVmaW5lIEVOQUJMRV9GQVNUX1RMU19KSVQgMQotI2VuZGlmCi0KLSNp
ZiBFTkFCTEUoSklUKSAmJiAoQ1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTV9USFVN
QjIpIHx8IENQVShBUk02NCkgfHwgQ1BVKE1JUFMpKQotI2RlZmluZSBFTkFCTEVfTUFTTV9QUk9C
RSAxCi0jZW5kaWYKLQotLyogRklYTUU6IFRoaXMgc2hvdWxkIGJlIHR1cm5lZCBpbnRvIGFuICNl
cnJvciBpbnZhcmlhbnQgKi8KLS8qIElmIHRoZSBiYXNlbGluZSBqaXQgaXMgbm90IGF2YWlsYWJs
ZSwgdGhlbiBkaXNhYmxlIHVwcGVyIHRpZXJzIGFzIHdlbGwuCi0gICBUaGUgTWFjcm9Bc3NlbWJs
ZXI6OnByb2JlKCkgaXMgYWxzbyByZXF1aXJlZCBmb3Igc3VwcG9ydGluZyB0aGUgdXBwZXIgdGll
cnMuICovCi0jaWYgIUVOQUJMRShKSVQpIHx8ICFFTkFCTEUoTUFTTV9QUk9CRSkKLSN1bmRlZiBF
TkFCTEVfREZHX0pJVAotI3VuZGVmIEVOQUJMRV9GVExfSklUCi0jZGVmaW5lIEVOQUJMRV9ERkdf
SklUIDAKLSNkZWZpbmUgRU5BQkxFX0ZUTF9KSVQgMAotI2VuZGlmCi0KLS8qIEZJWE1FOiBUaGlz
IHNob3VsZCBiZSB0dXJuZWQgaW50byBhbiAjZXJyb3IgaW52YXJpYW50ICovCi0vKiBJZiB0aGUg
REZHIGppdCBpcyBub3QgYXZhaWxhYmxlLCB0aGVuIGRpc2FibGUgdXBwZXIgdGllcnMgYXMgd2Vs
bDogKi8KLSNpZiAhRU5BQkxFKERGR19KSVQpCi0jdW5kZWYgRU5BQkxFX0ZUTF9KSVQKLSNkZWZp
bmUgRU5BQkxFX0ZUTF9KSVQgMAotI2VuZGlmCi0KLS8qIFRoaXMgY29udHJvbHMgd2hldGhlciBC
MyBpcyBidWlsdC4gQjMgaXMgbmVlZGVkIGZvciBGVEwgSklUIGFuZCBXZWJBc3NlbWJseSAqLwot
I2lmIEVOQUJMRShGVExfSklUKQotI2RlZmluZSBFTkFCTEVfQjNfSklUIDEKLSNlbmRpZgotCi0j
aWYgIWRlZmluZWQoRU5BQkxFX1dFQkFTU0VNQkxZKSAmJiAoRU5BQkxFKEIzX0pJVCkgJiYgUExB
VEZPUk0oQ09DT0EpICYmIENQVShBRERSRVNTNjQpKQotI2RlZmluZSBFTkFCTEVfV0VCQVNTRU1C
TFkgMQotI2VuZGlmCi0KLS8qIFRoZSBTYW1wbGluZ1Byb2ZpbGVyIGlzIHRoZSBwcm9iYWJpbGlz
dGljIGFuZCBsb3ctb3ZlcmhlYWQgcHJvZmlsZXIgdXNlZCBieQotICogSlNDIHRvIG1lYXN1cmUg
d2hlcmUgdGltZSBpcyBzcGVudCBpbnNpZGUgYSBKYXZhU2NyaXB0IHByb2dyYW0uCi0gKiBJbiBj
b25maWd1cmF0aW9ucyBvdGhlciB0aGFuIFdpbmRvd3MgYW5kIERhcndpbiwgYmVjYXVzZSBsYXlv
dXQgb2YgbWNvbnRleHRfdCBkZXBlbmRzIG9uIHN0YW5kYXJkIGxpYnJhcmllcyAobGlrZSBnbGli
YyksCi0gKiBzYW1wbGluZyBwcm9maWxlciBpcyBlbmFibGVkIGlmIFdlYktpdCB1c2VzIHB0aHJl
YWRzIGFuZCBnbGliYy4gKi8KLSNpZiAhZGVmaW5lZChFTkFCTEVfU0FNUExJTkdfUFJPRklMRVIp
ICYmICghRU5BQkxFKENfTE9PUCkgJiYgKE9TKFdJTkRPV1MpIHx8IEhBVkUoTUFDSElORV9DT05U
RVhUKSkpCi0jZGVmaW5lIEVOQUJMRV9TQU1QTElOR19QUk9GSUxFUiAxCi0jZW5kaWYKLQotI2lm
IEVOQUJMRShXRUJBU1NFTUJMWSkgJiYgSEFWRShNQUNISU5FX0NPTlRFWFQpCi0jZGVmaW5lIEVO
QUJMRV9XRUJBU1NFTUJMWV9GQVNUX01FTU9SWSAxCi0jZW5kaWYKLQotLyogQ291bnRzIHVzZXMg
b2Ygd3JpdGUgYmFycmllcnMgdXNpbmcgc2FtcGxpbmcgY291bnRlcnMuIEJlIHN1cmUgdG8gYWxz
bwotICAgc2V0IEVOQUJMRV9TQU1QTElOR19DT1VOVEVSUyB0byAxLiAqLwotI2lmICFkZWZpbmVk
KEVOQUJMRV9XUklURV9CQVJSSUVSX1BST0ZJTElORykKLSNkZWZpbmUgRU5BQkxFX1dSSVRFX0JB
UlJJRVJfUFJPRklMSU5HIDAKLSNlbmRpZgotCi0vKiBMb2dzIGFsbCBhbGxvY2F0aW9uLXJlbGF0
ZWQgYWN0aXZpdHkgdGhhdCBnb2VzIHRocm91Z2ggZmFzdE1hbGxvYyBvciB0aGUKLSAgIEpTQyBH
QyAoYm90aCBjZWxscyBhbmQgYnV0dGVyZmxpZXMpLiBBbHNvIGxvZ3MgbWFya2luZy4gTm90ZSB0
aGF0IHRoaXMKLSAgIGlzbid0IGEgY29tcGxldGVseSBhY2N1cmF0ZSB2aWV3IG9mIHRoZSBoZWFw
IHNpbmNlIGl0IGRvZXNuJ3QgaW5jbHVkZSBhbGwKLSAgIGJ1dHRlcmZseSByZXNpemUgb3BlcmF0
aW9ucywgZG9lc24ndCB0ZWxsIHlvdSB3aGF0IGlzIGdvaW5nIG9uIHdpdGggd2VhawotICAgcmVm
ZXJlbmNlcyAob3RoZXIgdGhhbiB0byB0ZWxsIHlvdSB3aGVuIHRoZXkncmUgbWFya2VkKSwgYW5k
IGRvZXNuJ3QKLSAgIHRyYWNrIGRpcmVjdCBtbWFwKCkgYWxsb2NhdGlvbnMgb3IgdGhpbmdzIGxp
a2UgSklUIGFsbG9jYXRpb24uICovCi0jaWYgIWRlZmluZWQoRU5BQkxFX0FMTE9DQVRJT05fTE9H
R0lORykKLSNkZWZpbmUgRU5BQkxFX0FMTE9DQVRJT05fTE9HR0lORyAwCi0jZW5kaWYKLQotLyog
RW5hYmxlIHZlcmlmaWNhdGlvbiB0aGF0IHRoYXQgcmVnaXN0ZXIgYWxsb2NhdGlvbnMgYXJlIG5v
dCBtYWRlIHdpdGhpbiBnZW5lcmF0ZWQgY29udHJvbCBmbG93LgotICAgVHVybmVkIG9uIGZvciBk
ZWJ1ZyBidWlsZHMuICovCi0jaWYgIWRlZmluZWQoRU5BQkxFX0RGR19SRUdJU1RFUl9BTExPQ0FU
SU9OX1ZBTElEQVRJT04pICYmIEVOQUJMRShERkdfSklUKSAmJiAhZGVmaW5lZChOREVCVUcpCi0j
ZGVmaW5lIEVOQUJMRV9ERkdfUkVHSVNURVJfQUxMT0NBVElPTl9WQUxJREFUSU9OIDEKLSNlbmRp
ZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX1NFUEFSQVRFRF9XWF9IRUFQKSAmJiBQTEFURk9STShJ
T1NfRkFNSUxZKSAmJiBDUFUoQVJNNjQpICYmICghRU5BQkxFKEZBU1RfSklUX1BFUk1JU1NJT05T
KSB8fCAhQ1BVKEFSTTY0RSkpCi0jZGVmaW5lIEVOQUJMRV9TRVBBUkFURURfV1hfSEVBUCAxCi0j
ZW5kaWYKLQotLyogRGV0ZXJtaW5lIGlmIHdlIG5lZWQgdG8gZW5hYmxlIENvbXB1dGVkIEdvdG8g
T3Bjb2RlcyBvciBub3Q6ICovCi0jaWYgSEFWRShDT01QVVRFRF9HT1RPKSB8fCAhRU5BQkxFKENf
TE9PUCkKLSNkZWZpbmUgRU5BQkxFX0NPTVBVVEVEX0dPVE9fT1BDT0RFUyAxCi0jZW5kaWYKLQot
LyogUmVndWxhciBFeHByZXNzaW9uIFRyYWNpbmcgLSBTZXQgdG8gMSB0byB0cmFjZSBSZWdFeHAn
cyBpbiBqc2MuICBSZXN1bHRzIGR1bXBlZCBhdCBleGl0ICovCi0jaWYgIWRlZmluZWQoRU5BQkxF
X1JFR0VYUF9UUkFDSU5HKQotI2RlZmluZSBFTkFCTEVfUkVHRVhQX1RSQUNJTkcgMAotI2VuZGlm
Ci0KLS8qIFlldCBBbm90aGVyIFJlZ2V4IFJ1bnRpbWUgLSB0dXJuZWQgb24gYnkgZGVmYXVsdCBm
b3IgSklUIGVuYWJsZWQgcG9ydHMuICovCi0jaWYgIWRlZmluZWQoRU5BQkxFX1lBUlJfSklUKSAm
JiBFTkFCTEUoSklUKQotI2RlZmluZSBFTkFCTEVfWUFSUl9KSVQgMQotI2VuZGlmCi0KLS8qIFNl
dHRpbmcgdGhpcyBmbGFnIGNvbXBhcmVzIEpJVCByZXN1bHRzIHdpdGggaW50ZXJwcmV0ZXIgcmVz
dWx0cy4gKi8KLSNpZiAhZGVmaW5lZChFTkFCTEVfWUFSUl9KSVQpICYmIEVOQUJMRShKSVQpCi0j
ZGVmaW5lIEVOQUJMRV9ZQVJSX0pJVF9ERUJVRyAwCi0jZW5kaWYKLQotLyogRW5hYmxlIEpJVCdp
bmcgUmVndWxhciBFeHByZXNzaW9ucyB0aGF0IGhhdmUgbmVzdGVkIHBhcmVudGhlc2lzIC4gKi8K
LSNpZiBFTkFCTEUoWUFSUl9KSVQpICYmIChDUFUoQVJNNjQpIHx8IChDUFUoWDg2XzY0KSAmJiAh
T1MoV0lORE9XUykpKQotI2RlZmluZSBFTkFCTEVfWUFSUl9KSVRfQUxMX1BBUkVOU19FWFBSRVNT
SU9OUyAxCi0jZW5kaWYKLQotLyogRW5hYmxlIEpJVCdpbmcgUmVndWxhciBFeHByZXNzaW9ucyB0
aGF0IGhhdmUgbmVzdGVkIGJhY2sgcmVmZXJlbmNlcy4gKi8KLSNpZiBFTkFCTEUoWUFSUl9KSVQp
ICYmIChDUFUoQVJNNjQpIHx8IChDUFUoWDg2XzY0KSAmJiAhT1MoV0lORE9XUykpKQotI2RlZmlu
ZSBFTkFCTEVfWUFSUl9KSVRfQkFDS1JFRkVSRU5DRVMgMQotI2VuZGlmCi0KLS8qIElmIGVpdGhl
ciB0aGUgSklUIG9yIHRoZSBSZWdFeHAgSklUIGlzIGVuYWJsZWQsIHRoZW4gdGhlIEFzc2VtYmxl
ciBtdXN0IGJlCi0gICBlbmFibGVkIGFzIHdlbGw6ICovCi0jaWYgRU5BQkxFKEpJVCkgfHwgRU5B
QkxFKFlBUlJfSklUKSB8fCAhRU5BQkxFKENfTE9PUCkKLSNpZiBkZWZpbmVkKEVOQUJMRV9BU1NF
TUJMRVIpICYmICFFTkFCTEVfQVNTRU1CTEVSCi0jZXJyb3IgIkNhbm5vdCBlbmFibGUgdGhlIEpJ
VCBvciBSZWdFeHAgSklUIHdpdGhvdXQgZW5hYmxpbmcgdGhlIEFzc2VtYmxlciIKLSNlbHNlCi0j
dW5kZWYgRU5BQkxFX0FTU0VNQkxFUgotI2RlZmluZSBFTkFCTEVfQVNTRU1CTEVSIDEKLSNlbmRp
ZgotI2VuZGlmCi0KLS8qIElmIHRoZSBEaXNhc3NlbWJsZXIgaXMgZW5hYmxlZCwgdGhlbiB0aGUg
QXNzZW1ibGVyIG11c3QgYmUgZW5hYmxlZCBhcyB3ZWxsOiAqLwotI2lmIEVOQUJMRShESVNBU1NF
TUJMRVIpCi0jaWYgZGVmaW5lZChFTkFCTEVfQVNTRU1CTEVSKSAmJiAhRU5BQkxFX0FTU0VNQkxF
UgotI2Vycm9yICJDYW5ub3QgZW5hYmxlIHRoZSBEaXNhc3NlbWJsZXIgd2l0aG91dCBlbmFibGlu
ZyB0aGUgQXNzZW1ibGVyIgotI2Vsc2UKLSN1bmRlZiBFTkFCTEVfQVNTRU1CTEVSCi0jZGVmaW5l
IEVOQUJMRV9BU1NFTUJMRVIgMQotI2VuZGlmCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJM
RV9FWENFUFRJT05fU0NPUEVfVkVSSUZJQ0FUSU9OKQotI2RlZmluZSBFTkFCTEVfRVhDRVBUSU9O
X1NDT1BFX1ZFUklGSUNBVElPTiBBU1NFUlRfRU5BQkxFRAotI2VuZGlmCi0KLSNpZiBFTkFCTEUo
REZHX0pJVCkgJiYgSEFWRShNQUNISU5FX0NPTlRFWFQpICYmIChDUFUoWDg2XzY0KSB8fCBDUFUo
QVJNNjQpKQotI2RlZmluZSBFTkFCTEVfU0lHTkFMX0JBU0VEX1ZNX1RSQVBTIDEKLSNlbmRpZgot
Ci0vKiBDU1MgU2VsZWN0b3IgSklUIENvbXBpbGVyICovCi0jaWYgIWRlZmluZWQoRU5BQkxFX0NT
U19TRUxFQ1RPUl9KSVQpICYmICgoQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTTY0KSB8fCAoQ1BVKEFS
TV9USFVNQjIpICYmIE9TKERBUldJTikpKSAmJiBFTkFCTEUoSklUKSAmJiAoT1MoREFSV0lOKSB8
fCBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkpKQotI2RlZmluZSBFTkFCTEVfQ1NTX1NF
TEVDVE9SX0pJVCAxCi0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKENPQ09BKSAmJiAhUExBVEZPUk0o
V0FUQ0hPUykgJiYgIVBMQVRGT1JNKEFQUExFVFYpICYmICFQTEFURk9STShNQUNDQVRBTFlTVCkK
LSNkZWZpbmUgRU5BQkxFX0RBVEFfREVURUNUSU9OIDEKLSNlbmRpZgotCi0jaWYgQ1BVKEFSTV9U
SFVNQjIpIHx8IENQVShBUk02NCkKLSNkZWZpbmUgRU5BQkxFX0JSQU5DSF9DT01QQUNUSU9OIDEK
LSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX1RIUkVBRElOR19MSUJESVNQQVRDSCkgJiYg
SEFWRShESVNQQVRDSF9IKQotI2RlZmluZSBFTkFCTEVfVEhSRUFESU5HX0xJQkRJU1BBVENIIDEK
LSNlbGlmICFkZWZpbmVkKEVOQUJMRV9USFJFQURJTkdfT1BFTk1QKSAmJiBkZWZpbmVkKF9PUEVO
TVApCi0jZGVmaW5lIEVOQUJMRV9USFJFQURJTkdfT1BFTk1QIDEKLSNlbGlmICFkZWZpbmVkKFRI
UkVBRElOR19HRU5FUklDKQotI2RlZmluZSBFTkFCTEVfVEhSRUFESU5HX0dFTkVSSUMgMQotI2Vu
ZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfR0NfVkFMSURBVElPTikgJiYgIWRlZmluZWQoTkRF
QlVHKQotI2RlZmluZSBFTkFCTEVfR0NfVkFMSURBVElPTiAxCi0jZW5kaWYKLQotI2lmICFkZWZp
bmVkKEVOQUJMRV9CSU5ESU5HX0lOVEVHUklUWSkgJiYgIU9TKFdJTkRPV1MpCi0jZGVmaW5lIEVO
QUJMRV9CSU5ESU5HX0lOVEVHUklUWSAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9U
UkVFX0RFQlVHR0lORykgJiYgIWRlZmluZWQoTkRFQlVHKQotI2RlZmluZSBFTkFCTEVfVFJFRV9E
RUJVR0dJTkcgMQotI2VuZGlmCi0KLSNpZiBQTEFURk9STShDT0NPQSkKLSNkZWZpbmUgRU5BQkxF
X1JFU09VUkNFX1VTQUdFIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX09QRU5UWVBF
X1ZFUlRJQ0FMKSAmJiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKLSNkZWZpbmUgRU5B
QkxFX09QRU5UWVBFX1ZFUlRJQ0FMIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX09Q
RU5UWVBFX01BVEgpICYmIChPUyhEQVJXSU4pICYmIFVTRShDRykpIHx8IChVU0UoRlJFRVRZUEUp
ICYmICFQTEFURk9STShHVEspKSB8fCAoUExBVEZPUk0oV0lOKSAmJiAoVVNFKENHKSB8fCBVU0Uo
Q0FJUk8pKSkKLSNkZWZpbmUgRU5BQkxFX09QRU5UWVBFX01BVEggMQotI2VuZGlmCi0KLS8qCi0g
KiBFbmFibGUgdGhpcyB0byBwdXQgZWFjaCBJc29IZWFwIGFuZCBvdGhlciBhbGxvY2F0aW9uIGNh
dGVnb3JpZXMgaW50byB0aGVpciBvd24gbWFsbG9jIGhlYXBzLCBzbyB0aGF0IHRvb2xzIGxpa2Ug
dm1tYXAgY2FuIHNob3cgaG93IGJpZyBlYWNoIGhlYXAgaXMuCi0gKiBUdXJuIEJFTkFCTEVfTUFM
TE9DX0hFQVBfQlJFQUtET1dOIG9uIGluIGJtYWxsb2MgdG9nZXRoZXIgd2hlbiB1c2luZyB0aGlz
LgotICovCi0jaWYgIWRlZmluZWQoRU5BQkxFX01BTExPQ19IRUFQX0JSRUFLRE9XTikKLSNkZWZp
bmUgRU5BQkxFX01BTExPQ19IRUFQX0JSRUFLRE9XTiAwCi0jZW5kaWYKLQotLyogRGlzYWJsZSBT
aGFyZWRBcnJheUJ1ZmZlcnMgdW50aWwgU3BlY3RyZSBzZWN1cml0eSBjb25jZXJucyBhcmUgbWl0
aWdhdGVkLiAqLwotI2RlZmluZSBFTkFCTEVfU0hBUkVEX0FSUkFZX0JVRkZFUiAwCi0KLSNpZiBQ
TEFURk9STShNQUMpCi0jZGVmaW5lIEVOQUJMRV9XRUJfUExBWUJBQ0tfQ09OVFJPTFNfTUFOQUdF
UiAxCi0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKENPQ09BKQotLyogRklYTUU6IFRoaXMgaXMgYSBV
U0Ugc3R5bGUgbWFjcm8sIGFzIGl0IHRyaWdnZXJzIHRoZSB1c2Ugb2YgQ0ZVUkxDb25uZWN0aW9u
IGZyYW1ld29yayBzdHVicy4gKi8KLS8qIEZJWE1FOiBJcyB0aGlzIHN0aWxsIG5lY2Vzc2FyeT8g
Q0ZVUkxDb25uZWN0aW9uIGlzbid0IHVzZWQgb24gQ29jb2EgcGxhdGZvcm1zIGFueSBtb3JlLiAq
LwotI2RlZmluZSBFTkFCTEVfU0VDX0lURU1fU0hJTSAxCi0jZW5kaWYKLQotI2lmIFBMQVRGT1JN
KE1BQykKLSNkZWZpbmUgRU5BQkxFX0ZVTExfS0VZQk9BUkRfQUNDRVNTIDEKLSNlbmRpZgotCi0j
aWYgKChQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oUExBWVNUQVRJT04pIHx8IFBMQVRGT1JN
KFdQRSkpICYmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpKSB8fCBQTEFURk9STShHVEspCi0jZGVm
aW5lIEVOQUJMRV9LSU5FVElDX1NDUk9MTElORyAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVO
QUJMRV9NT05PU1BBQ0VfRk9OVF9FWENFUFRJT04pICYmICgoUExBVEZPUk0oTUFDKSAmJiBfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDwgMTAxNTAwKSB8fCBQTEFURk9STShXQVRDSE9T
KSB8fCBQTEFURk9STShBUFBMRVRWKSkKLSNkZWZpbmUgRU5BQkxFX01PTk9TUEFDRV9GT05UX0VY
Q0VQVElPTiAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9QTEFURk9STV9EUklWRU5f
VEVYVF9DSEVDS0lORykgJiYgUExBVEZPUk0oTUFDQ0FUQUxZU1QpCi0jZGVmaW5lIEVOQUJMRV9Q
TEFURk9STV9EUklWRU5fVEVYVF9DSEVDS0lORyAxCi0jZW5kaWYKLQotLyogVGhpcyBmZWF0dXJl
IHdvcmtzIGJ5IGVtYmVkZGluZyB0aGUgT3Bjb2RlSUQgaW4gdGhlIDMyIGJpdCBqdXN0IGJlZm9y
ZSB0aGUgZ2VuZXJhdGVkIExMaW50IGNvZGUKLSAgIHRoYXQgZXhlY3V0ZXMgZWFjaCBvcGNvZGUu
IEl0IGNhbm5vdCBiZSBzdXBwb3J0ZWQgYnkgdGhlIENMb29wIHNpbmNlIHRoZXJlJ3Mgbm8gd2F5
IHRvIGVtYmVkIHRoZQotICAgT3Bjb2RlSUQgd29yZCBpbiB0aGUgQ0xvb3AncyBzd2l0Y2ggc3Rh
dGVtZW50IGNhc2VzLiBJdCBpcyBhbHNvIGN1cnJlbnRseSBub3QgaW1wbGVtZW50ZWQgZm9yIE1T
VkMuCi0qLwotI2lmICFkZWZpbmVkKEVOQUJMRV9MTElOVF9FTUJFRERFRF9PUENPREVfSUQpICYm
ICFFTkFCTEUoQ19MT09QKSAmJiAhQ09NUElMRVIoTVNWQykgJiYgKENQVShYODYpIHx8IENQVShY
ODZfNjQpIHx8IENQVShBUk02NCkgfHwgKENQVShBUk1fVEhVTUIyKSAmJiBPUyhEQVJXSU4pKSkK
LSNkZWZpbmUgRU5BQkxFX0xMSU5UX0VNQkVEREVEX09QQ09ERV9JRCAxCi0jZW5kaWYKLQotCi0v
KiBBc3NlcnRzLCBpbnZhcmlhbnRzIGZvciBtYWNybyBkZWZpbml0aW9ucyAqLwotCi0jaWYgRU5B
QkxFKFZJREVPX1RSQUNLKSAmJiAhRU5BQkxFKFZJREVPKQotI2Vycm9yICJFTkFCTEUoVklERU9f
VFJBQ0spIHJlcXVpcmVzIEVOQUJMRShWSURFTykiCi0jZW5kaWYKLQotI2lmIEVOQUJMRShNRURJ
QV9DT05UUk9MU19TQ1JJUFQpICYmICFFTkFCTEUoVklERU8pCi0jZXJyb3IgIkVOQUJMRShNRURJ
QV9DT05UUk9MU19TQ1JJUFQpIHJlcXVpcmVzIEVOQUJMRShWSURFTykiCi0jZW5kaWYKLQotI2lm
IEVOQUJMRShJTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENIRVJTKSAmJiAhRU5BQkxFKFJFTU9U
RV9JTlNQRUNUT1IpCi0jZXJyb3IgIkVOQUJMRShJTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENI
RVJTKSByZXF1aXJlcyBFTkFCTEUoUkVNT1RFX0lOU1BFQ1RPUikiCi0jZW5kaWYKLQotI2lmIEVO
QUJMRShJT1NfVE9VQ0hfRVZFTlRTKSAmJiAhRU5BQkxFKFRPVUNIX0VWRU5UUykKLSNlcnJvciAi
RU5BQkxFKElPU19UT1VDSF9FVkVOVFMpIHJlcXVpcmVzIEVOQUJMRShUT1VDSF9FVkVOVFMpIgot
I2VuZGlmCi0KLSNpZiBFTkFCTEUoV0VCR0wpICYmICFFTkFCTEUoR1JBUEhJQ1NfQ09OVEVYVF9H
TCkKLSNlcnJvciAiRU5BQkxFKFdFQkdMKSByZXF1aXJlcyBFTkFCTEUoR1JBUEhJQ1NfQ09OVEVY
VF9HTCkiCi0jZW5kaWYKLQotI2lmIEVOQUJMRShXRUJHTDIpICYmICFFTkFCTEUoV0VCR0wpCi0j
ZXJyb3IgIkVOQUJMRShXRUJHTDIpIHJlcXVpcmVzIEVOQUJMRShXRUJHTCkiCi0jZW5kaWYKSW5k
ZXg6IFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlV2luQ2Fpcm8uaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZVdpbkNhaXJvLmgJKHJldmlzaW9uIDI1NTU1
MikJKGZyb20gU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGUuaDoyNTU1NTIpCisrKyBTb3Vy
Y2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZVdpbkNhaXJvLmgJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSwxMDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTkgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA3LTIwMDkgVG9yY2ggTW9i
aWxlLCBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTEgUmVzZWFyY2ggSW4gTW90aW9u
IExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgU2Ft
c3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZm5kZWYgV1RGX1BM
QVRGT1JNX0dVQVJEX0FHQUlOU1RfSU5ESVJFQ1RfSU5DTFVTSU9OCisjZXJyb3IgIlBsZWFzZSAj
aW5jbHVkZSA8d3RmL1BsYXRmb3JtLmg+IGluc3RlYWQgb2YgdGhpcyBmaWxlIGRpcmVjdGx5LiIK
KyNlbmRpZgorCisKKyNkZWZpbmUgRU5BQkxFKFdURl9GRUFUVVJFKSAoZGVmaW5lZCBFTkFCTEVf
IyNXVEZfRkVBVFVSRSAmJiBFTkFCTEVfIyNXVEZfRkVBVFVSRSkKKworLyogVXNlIHRoaXMgZmls
ZSB0byBsaXN0IF9hbGxfIEVOQUJMRSgpIG1hY3Jvcy4gRGVmaW5lIHRoZSBtYWNyb3MgdG8gYmUg
b25lIG9mIHRoZSBmb2xsb3dpbmcgdmFsdWVzOgorICogIC0gIjAiIGRpc2FibGVzIHRoZSBmZWF0
dXJlIGJ5IGRlZmF1bHQuIFRoZSBmZWF0dXJlIGNhbiBzdGlsbCBiZSBlbmFibGVkIGZvciBhIHNw
ZWNpZmljIHBvcnQgb3IgZW52aXJvbm1lbnQuCisgKiAgLSAiMSIgZW5hYmxlcyB0aGUgZmVhdHVy
ZSBieSBkZWZhdWx0LiBUaGUgZmVhdHVyZSBjYW4gc3RpbGwgYmUgZGlzYWJsZWQgZm9yIGEgc3Bl
Y2lmaWMgcG9ydCBvciBlbnZpcm9ubWVudC4KKyAqCisgKiBUaGUgZmVhdHVyZSBkZWZhdWx0cyBp
biB0aGlzIGZpbGUgYXJlIG9ubHkgdGFrZW4gaW50byBhY2NvdW50IGlmIHRoZSAocG9ydCBzcGVj
aWZpYykgYnVpbGQgc3lzdGVtCisgKiBoYXMgbm90IGVuYWJsZWQgb3IgZGlzYWJsZWQgYSBwYXJ0
aWN1bGFyIGZlYXR1cmUuCisgKgorICogVXNlIHRoaXMgZmlsZSB0byBkZWZpbmUgRU5BQkxFKCkg
bWFjcm9zIG9ubHkuIERvIG5vdCB1c2UgdGhpcyBmaWxlIHRvIGRlZmluZSBVU0UoKSBvciBtYWNy
b3MgIQorICoKKyAqIE9ubHkgZGVmaW5lIGEgbWFjcm8gaWYgaXQgd2FzIG5vdCBkZWZpbmVkIGJl
Zm9yZSAtIGFsd2F5cyBjaGVjayBmb3IgIWRlZmluZWQgZmlyc3QuCisgKgorICogS2VlcCB0aGUg
ZmlsZSBzb3J0ZWQgYnkgdGhlIG5hbWUgb2YgdGhlIGRlZmluZXMuIEFzIGFuIGV4Y2VwdGlvbiB5
b3UgY2FuIGNoYW5nZSB0aGUgb3JkZXIKKyAqIHRvIGFsbG93IGludGVyZGVwZW5kZW5jaWVzIGJl
dHdlZW4gdGhlIGRlZmF1bHQgdmFsdWVzLgorICoKKyAqIEJlbG93IGFyZSBhIGZldyBwb3RlbnRp
YWwgY29tbWFuZHMgdG8gdGFrZSBhZHZhbnRhZ2Ugb2YgdGhpcyBmaWxlIHJ1bm5pbmcgZnJvbSB0
aGUgU291cmNlL1dURiBkaXJlY3RvcnkKKyAqCisgKiBHZXQgdGhlIGxpc3Qgb2YgZmVhdHVyZSBk
ZWZpbmVzOiBncmVwIC1vICJFTkFCTEVfXChcd1wrXCkiIHd0Zi9QbGF0Zm9ybUVuYWJsZS5oIHwg
c29ydCB8IHVuaXEKKyAqIEdldCB0aGUgbGlzdCBvZiBmZWF0dXJlcyBlbmFibGVkIGJ5IGRlZmF1
bHQgZm9yIGEgUExBVEZPUk0oWFhYKTogZ2NjIC1FIC1kTSAtSS4gLURXVEZfUExBVEZPUk1fWFhY
ICJ3dGYvUGxhdGZvcm0uaCIgfCBncmVwICJFTkFCTEVfXHdcKyAxIiB8IGN1dCAtZCcgJyAtZjIg
fCBzb3J0CisgKi8KKworCisvKiBGSVhNRTogVGhpcyBzaG91bGQgYmUgcmVuYW1lZCB0byBFTkFC
TEVfQVNTRVJUUyBmb3IgY29uc2lzdGVuY3kgYW5kIHNvIGl0IGNhbiBiZSB1c2VkIGFzIEVOQUJM
RShBU1NFUlRTKS4gKi8KKy8qIEFTU0VSVF9FTkFCTEVEIHNob3VsZCBiZSB0cnVlIGlmIHdlIHdh
bnQgdGhlIGN1cnJlbnQgY29tcGlsYXRpb24gdW5pdCB0bworICAgZG8gZGVidWcgYXNzZXJ0aW9u
IGNoZWNrcyB1bmNvbmRpdGlvbmFsbHkgKGUuZy4gdHJlYXQgYSBkZWJ1ZyBBU1NFUlQKKyAgIGxp
a2UgYSBSRUxFQVNFX0FTU0VSVC4KKyovCisjaWZuZGVmIEFTU0VSVF9FTkFCTEVECisjaWZkZWYg
TkRFQlVHCisjZGVmaW5lIEFTU0VSVF9FTkFCTEVEIDAKKyNlbHNlCisjZGVmaW5lIEFTU0VSVF9F
TkFCTEVEIDEKKyNlbmRpZgorI2VuZGlmCisKKy8qID09PT0gUGxhdGZvcm0gYWRkaXRpb25zOiBh
ZGRpdGlvbnMgdG8gUGxhdGZvcm1FbmFibGUuaCBmcm9tIG91dHNpZGUgdGhlIG1haW4gcmVwb3Np
dG9yeSA9PT09ICovCisKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKSAmJiBfX2hhc19pbmNs
dWRlKDxXZWJLaXRBZGRpdGlvbnMvQWRkaXRpb25hbEZlYXR1cmVEZWZpbmVzLmg+KQorI2luY2x1
ZGUgPFdlYktpdEFkZGl0aW9ucy9BZGRpdGlvbmFsRmVhdHVyZURlZmluZXMuaD4KKyNlbmRpZgor
CisvKiBGSVhNRTogTW92ZSBvdXQgdGhlIFBMQVRGT1JNIHNwZWNpZmljIHJ1bGVzIGludG8gcGxh
dGZvcm0gc3BlY2lmaWMgZmlsZXMuICovCisKKy8qIC0tLS0tLS0tLSBBcHBsZSBpT1MgKGJ1dCBu
b3QgbWFjT1MpIHBvcnQgLS0tLS0tLS0tICovCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKwor
I2lmICFkZWZpbmVkKEVOQUJMRV9BSVJQTEFZX1BJQ0tFUikKKyNpZiAhUExBVEZPUk0oTUFDQ0FU
QUxZU1QpCisjZGVmaW5lIEVOQUJMRV9BSVJQTEFZX1BJQ0tFUiAxCisjZW5kaWYKKyNlbmRpZgor
CisjaWYgIWRlZmluZWQoRU5BQkxFX0FQUExFX1BBWV9SRU1PVEVfVUkpCisjaWYgIVBMQVRGT1JN
KEFQUExFVFYpICYmICFQTEFURk9STShNQUNDQVRBTFlTVCkgJiYgIVBMQVRGT1JNKFdBVENIT1Mp
CisjZGVmaW5lIEVOQUJMRV9BUFBMRV9QQVlfUkVNT1RFX1VJIDEKKyNlbmRpZgorI2VuZGlmCisK
KyNpZiAhZGVmaW5lZChFTkFCTEVfQ09OVEVOVF9FWFRFTlNJT05TKQorI2RlZmluZSBFTkFCTEVf
Q09OVEVOVF9FWFRFTlNJT05TIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0NPTlRF
WFRfTUVOVVMpCisjZGVmaW5lIEVOQUJMRV9DT05URVhUX01FTlVTIDAKKyNlbmRpZgorCisjaWYg
IWRlZmluZWQoRU5BQkxFX0NPTlRFWFRfTUVOVV9FVkVOVCkKKyNpZiAhUExBVEZPUk0oTUFDQ0FU
QUxZU1QpCisjZGVmaW5lIEVOQUJMRV9DT05URVhUX01FTlVfRVZFTlQgMAorI2VuZGlmCisjZW5k
aWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9DVVNUT01fQ1VSU09SX1NVUFBPUlQpCisjZGVmaW5l
IEVOQUJMRV9DVVNUT01fQ1VSU09SX1NVUFBPUlQgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChF
TkFCTEVfRFJBR19TVVBQT1JUKQorI2RlZmluZSBFTkFCTEVfRFJBR19TVVBQT1JUIDAKKyNlbmRp
ZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0dFT0xPQ0FUSU9OKQorI2RlZmluZSBFTkFCTEVfR0VP
TE9DQVRJT04gMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfSU5TUEVDVE9SX0FMVEVS
TkFURV9ESVNQQVRDSEVSUykKKyNkZWZpbmUgRU5BQkxFX0lOU1BFQ1RPUl9BTFRFUk5BVEVfRElT
UEFUQ0hFUlMgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfSU5TUEVDVE9SX1RFTEVN
RVRSWSkKKyNkZWZpbmUgRU5BQkxFX0lOU1BFQ1RPUl9URUxFTUVUUlkgMAorI2VuZGlmCisKKyNp
ZiAhZGVmaW5lZChFTkFCTEVfTEVUVEVSUFJFU1MpCisjZGVmaW5lIEVOQUJMRV9MRVRURVJQUkVT
UyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9BVVRPQ09SUkVDVCkKKyNkZWZpbmUg
RU5BQkxFX0FVVE9DT1JSRUNUIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0FVVE9D
QVBJVEFMSVpFKQorI2RlZmluZSBFTkFCTEVfQVVUT0NBUElUQUxJWkUgMQorI2VuZGlmCisKKyNp
ZiAhZGVmaW5lZChFTkFCTEVfSU9TX0dFU1RVUkVfRVZFTlRTKSAmJiBVU0UoQVBQTEVfSU5URVJO
QUxfU0RLKQorI2RlZmluZSBFTkFCTEVfSU9TX0dFU1RVUkVfRVZFTlRTIDEKKyNlbmRpZgorCisj
aWYgIWRlZmluZWQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykKKyNkZWZpbmUgRU5BQkxFX1RFWFRf
QVVUT1NJWklORyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9JT1NfVE9VQ0hfRVZF
TlRTKSAmJiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorI2RlZmluZSBFTkFCTEVfSU9TX1RPVUNI
X0VWRU5UUyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKQor
I2RlZmluZSBFTkFCTEVfTUVURVJfRUxFTUVOVCAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVO
QUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJKQorI2RlZmluZSBFTkFCTEVfTkVUU0NBUEVfUExVR0lO
X0FQSSAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9PUklFTlRBVElPTl9FVkVOVFMp
CisjZGVmaW5lIEVOQUJMRV9PUklFTlRBVElPTl9FVkVOVFMgMQorI2VuZGlmCisKKyNpZiAhZGVm
aW5lZChFTkFCTEVfUE9JTlRFUl9MT0NLKQorI2RlZmluZSBFTkFCTEVfUE9JTlRFUl9MT0NLIDAK
KyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpCisjZGVmaW5l
IEVOQUJMRV9SRU1PVEVfSU5TUEVDVE9SIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxF
X1RFWFRfQ0FSRVQpCisjZGVmaW5lIEVOQUJMRV9URVhUX0NBUkVUIDAKKyNlbmRpZgorCisjaWYg
IWRlZmluZWQoRU5BQkxFX1RFWFRfU0VMRUNUSU9OKQorI2RlZmluZSBFTkFCTEVfVEVYVF9TRUxF
Q1RJT04gMAorI2VuZGlmCisKKy8qIEZJWE1FOiBSZW1vdmUgdGhlIFVTRShBUFBMRV9JTlRFUk5B
TF9TREspIGNvbmp1bmN0IG9uY2Ugd2Ugc3VwcG9ydCB0b3VjaCBldmVudHMgd2hlbiBidWlsZGlu
ZyBhZ2FpbnN0Cit0aGUgcHVibGljIGlPUyBTREsuIFNlZSA8aHR0cHM6Ly93ZWJraXQub3JnL2Iv
MTc5MTY3Pi4gKi8KKyNpZiAhZGVmaW5lZChFTkFCTEVfVE9VQ0hfRVZFTlRTKSAmJiBVU0UoQVBQ
TEVfSU5URVJOQUxfU0RLKQorI2RlZmluZSBFTkFCTEVfVE9VQ0hfRVZFTlRTIDEKKyNlbmRpZgor
CisjaWYgIWRlZmluZWQoRU5BQkxFX1dFQl9BUkNISVZFKQorI2RlZmluZSBFTkFCTEVfV0VCX0FS
Q0hJVkUgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfV0VCR0wpCisjZGVmaW5lIEVO
QUJMRV9XRUJHTCAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9QUklNQVJZX1NOQVBT
SE9UVEVEX1BMVUdJTl9IRVVSSVNUSUMpCisjZGVmaW5lIEVOQUJMRV9QUklNQVJZX1NOQVBTSE9U
VEVEX1BMVUdJTl9IRVVSSVNUSUMgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfRE9X
TkxPQURfQVRUUklCVVRFKQorI2RlZmluZSBFTkFCTEVfRE9XTkxPQURfQVRUUklCVVRFIDEKKyNl
bmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1dLUERGVklFVykgJiYgUExBVEZPUk0oSU9TKQor
I2RlZmluZSBFTkFCTEVfV0tQREZWSUVXIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxF
X01FRElBX1NPVVJDRSkKKyNkZWZpbmUgRU5BQkxFX01FRElBX1NPVVJDRSAwCisjZW5kaWYKKwor
I2lmICFkZWZpbmVkKEVOQUJMRV9QUkVWSUVXX0NPTlZFUlRFUikgJiYgUExBVEZPUk0oSU9TKQor
I2RlZmluZSBFTkFCTEVfUFJFVklFV19DT05WRVJURVIgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5l
ZChFTkFCTEVfTUVUQV9WSUVXUE9SVCkKKyNkZWZpbmUgRU5BQkxFX01FVEFfVklFV1BPUlQgMQor
I2VuZGlmCisKKyNlbmRpZiAvKiBQTEFURk9STShJT1NfRkFNSUxZKSAqLworCisvKiAtLS0tLS0t
LS0gQXBwbGUgd2F0Y2hPUyBwb3J0IC0tLS0tLS0tLSAqLworI2lmIFBMQVRGT1JNKFdBVENIT1Mp
CisKKyNlbmRpZiAvKiBQTEFURk9STShXQVRDSE9TKSAqLworCisvKiAtLS0tLS0tLS0gQXBwbGUg
bWFjT1MgcG9ydCAobm90IGlPUykgLS0tLS0tLS0tICovCisjaWYgUExBVEZPUk0oTUFDKQorCisj
aWYgIWRlZmluZWQoRU5BQkxFX0NPTlRFTlRfRVhURU5TSU9OUykKKyNkZWZpbmUgRU5BQkxFX0NP
TlRFTlRfRVhURU5TSU9OUyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9GVUxMU0NS
RUVOX0FQSSkKKyNkZWZpbmUgRU5BQkxFX0ZVTExTQ1JFRU5fQVBJIDEKKyNlbmRpZgorCisjaWYg
IWRlZmluZWQoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpCisjZGVmaW5lIEVOQUJMRV9SRU1PVEVf
SU5TUEVDVE9SIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0lOU1BFQ1RPUl9BTFRF
Uk5BVEVfRElTUEFUQ0hFUlMpCisjZGVmaW5lIEVOQUJMRV9JTlNQRUNUT1JfQUxURVJOQVRFX0RJ
U1BBVENIRVJTIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0lOU1BFQ1RPUl9URUxF
TUVUUlkpCisjZGVmaW5lIEVOQUJMRV9JTlNQRUNUT1JfVEVMRU1FVFJZIDEKKyNlbmRpZgorCisj
aWYgIWRlZmluZWQoRU5BQkxFX1NNT09USF9TQ1JPTExJTkcpCisjZGVmaW5lIEVOQUJMRV9TTU9P
VEhfU0NST0xMSU5HIDEKKyNlbmRpZgorCisjaWYgRU5BQkxFKFZJREVPKQorI2lmICFkZWZpbmVk
KEVOQUJMRV9WSURFT19UUkFDSykKKyNkZWZpbmUgRU5BQkxFX1ZJREVPX1RSQUNLIDEKKyNlbmRp
ZgorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfV0VCX0FSQ0hJVkUpCisjZGVmaW5lIEVO
QUJMRV9XRUJfQVJDSElWRSAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJfQVVE
SU8pCisjZGVmaW5lIEVOQUJMRV9XRUJfQVVESU8gMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChF
TkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkpCisjZGVmaW5lIEVOQUJMRV9DVVJTT1JfVklTSUJJTElU
WSAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9QUklNQVJZX1NOQVBTSE9UVEVEX1BM
VUdJTl9IRVVSSVNUSUMpCisjZGVmaW5lIEVOQUJMRV9QUklNQVJZX1NOQVBTSE9UVEVEX1BMVUdJ
Tl9IRVVSSVNUSUMgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTUFDX0dFU1RVUkVf
RVZFTlRTKSAmJiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorI2RlZmluZSBFTkFCTEVfTUFDX0dF
U1RVUkVfRVZFTlRTIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1dFQlBST0NFU1Nf
TlNSVU5MT09QKQorI2RlZmluZSBFTkFCTEVfV0VCUFJPQ0VTU19OU1JVTkxPT1AgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE0MDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQo
RU5BQkxFX1dFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQorI2RlZmluZSBFTkFCTEVf
V0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcgRU5BQkxFX1dFQlBST0NFU1NfTlNSVU5M
T09QCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9NRURJQV9TT1VSQ0UpCisjZGVmaW5l
IEVOQUJMRV9NRURJQV9TT1VSQ0UgMQorI2VuZGlmCisKKyNlbmRpZiAvKiBQTEFURk9STShNQUMp
ICovCisKKy8qIC0tLS0tLS0tLSBBcHBsZSBDb2NvYSBwbGF0Zm9ybXMgLS0tLS0tLS0tICovCisK
KyNpZiBQTEFURk9STShDT0NPQSkKKworI2lmICFkZWZpbmVkKEVOQUJMRV9MRUdBQ1lfRU5DUllQ
VEVEX01FRElBKQorI2lmIFBMQVRGT1JNKE1BQ0NBVEFMWVNUKQorI2RlZmluZSBFTkFCTEVfTEVH
QUNZX0VOQ1JZUFRFRF9NRURJQSAwCisjZWxzZQorI2RlZmluZSBFTkFCTEVfTEVHQUNZX0VOQ1JZ
UFRFRF9NRURJQSAxCisjZW5kaWYKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0ZJTEVf
UkVQTEFDRU1FTlQpCisjZGVmaW5lIEVOQUJMRV9GSUxFX1JFUExBQ0VNRU5UIDEKKyNlbmRpZgor
CisjaWYgIWRlZmluZWQoRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCkKKyNkZWZpbmUgRU5BQkxFX1BB
WU1FTlRfUkVRVUVTVCAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9BU1lOQ19TQ1JP
TExJTkcpCisjZGVmaW5lIEVOQUJMRV9BU1lOQ19TQ1JPTExJTkcgMQorI2VuZGlmCisKKyNpZiAh
ZGVmaW5lZChFTkFCTEVfVUlfU0lERV9DT01QT1NJVElORykKKyNkZWZpbmUgRU5BQkxFX1VJX1NJ
REVfQ09NUE9TSVRJTkcgMQorI2VuZGlmCisKKyNlbmRpZiAvKiBQTEFURk9STShDT0NPQSkgKi8K
KworI2lmICFQTEFURk9STShDT0NPQSkKKworI2lmICFkZWZpbmVkKEpTQ19PQkpDX0FQSV9FTkFC
TEVEKQorI2RlZmluZSBKU0NfT0JKQ19BUElfRU5BQkxFRCAwCisjZW5kaWYKKworI2VuZGlmIC8q
ICFQTEFURk9STShDT0NPQSkgKi8KKworCisvKiAtLS0tLS0tLS0gQXBwbGUgV2luZG93cyBwb3J0
IC0tLS0tLS0tLSAqLworI2lmIFBMQVRGT1JNKFdJTikgJiYgIVBMQVRGT1JNKFdJTl9DQUlSTykK
KworI2lmICFkZWZpbmVkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkKKyNkZWZpbmUgRU5BQkxFX0ZV
TExTQ1JFRU5fQVBJIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1dFQl9BUkNISVZF
KQorI2RlZmluZSBFTkFCTEVfV0VCX0FSQ0hJVkUgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChF
TkFCTEVfV0VCR0wpCisjZGVmaW5lIEVOQUJMRV9XRUJHTCAwCisjZW5kaWYKKworI2lmICFkZWZp
bmVkKEVOQUJMRV9HRU9MT0NBVElPTikKKyNkZWZpbmUgRU5BQkxFX0dFT0xPQ0FUSU9OIDEKKyNl
bmRpZgorCisjZW5kaWYgLyogUExBVEZPUk0oV0lOKSAmJiAhUExBVEZPUk0oV0lOX0NBSVJPKSAq
LworCisvKiAtLS0tLS0tLS0gV2luZG93cyBDQUlSTyBwb3J0IC0tLS0tLS0tLSAqLworLyogUExB
VEZPUk0oV0lOX0NBSVJPKSBpcyBhIHNwZWNpYWxpemF0aW9uIG9mIFBMQVRGT1JNKFdJTikuICov
CisvKiBQTEFURk9STShXSU4pIGlzIGFsd2F5cyBlbmFibGVkIHdoZW4gUExBVEZPUk0oV0lOX0NB
SVJPKSBpcyBlbmFibGVkLiAqLworI2lmIFBMQVRGT1JNKFdJTl9DQUlSTykKKworI2lmICFkZWZp
bmVkKEVOQUJMRV9XRUJfQVJDSElWRSkKKyNkZWZpbmUgRU5BQkxFX1dFQl9BUkNISVZFIDEKKyNl
bmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1dFQkdMKQorI2RlZmluZSBFTkFCTEVfV0VCR0wg
MQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfR0VPTE9DQVRJT04pCisjZGVmaW5lIEVO
QUJMRV9HRU9MT0NBVElPTiAxCisjZW5kaWYKKworI2VuZGlmIC8qIFBMQVRGT1JNKFdJTl9DQUlS
TykgKi8KKworLyogRU5BQkxFIG1hY3JvIGRlZmF1bHRzIGZvciBXZWJDb3JlICovCisvKiBEbyBu
b3QgdXNlIFBMQVRGT1JNKCkgdGVzdHMgaW4gdGhpcyBzZWN0aW9uICEgKi8KKworI2lmICFkZWZp
bmVkKEVOQUJMRV8zRF9UUkFOU0ZPUk1TKQorI2RlZmluZSBFTkFCTEVfM0RfVFJBTlNGT1JNUyAw
CisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9BQ0NFU1NJQklMSVRZKQorI2RlZmluZSBF
TkFCTEVfQUNDRVNTSUJJTElUWSAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9BQ0NF
TEVSQVRFRF8yRF9DQU5WQVMpCisjZGVmaW5lIEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMg
MAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfT1ZFUkZMT1dfU0NST0xMSU5HX1RPVUNI
KQorI2RlZmluZSBFTkFCTEVfT1ZFUkZMT1dfU0NST0xMSU5HX1RPVUNIIDAKKyNlbmRpZgorCisj
aWYgIWRlZmluZWQoRU5BQkxFX0FQTkcpCisjZGVmaW5lIEVOQUJMRV9BUE5HIDEKKyNlbmRpZgor
CisjaWYgIWRlZmluZWQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKQorI2RlZmluZSBFTkFCTEVf
Q0hBTk5FTF9NRVNTQUdJTkcgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQ09OVEVO
VF9FWFRFTlNJT05TKQorI2RlZmluZSBFTkFCTEVfQ09OVEVOVF9FWFRFTlNJT05TIDAKKyNlbmRp
ZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0NPTlRFWFRfTUVOVVMpCisjZGVmaW5lIEVOQUJMRV9D
T05URVhUX01FTlVTIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0NPTlRFWFRfTUVO
VV9FVkVOVCkKKyNkZWZpbmUgRU5BQkxFX0NPTlRFWFRfTUVOVV9FVkVOVCAxCisjZW5kaWYKKwor
I2lmICFkZWZpbmVkKEVOQUJMRV9DU1MzX1RFWFQpCisjZGVmaW5lIEVOQUJMRV9DU1MzX1RFWFQg
MAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFL
KQorI2RlZmluZSBFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLIDEKKyNlbmRpZgorCisj
aWYgIWRlZmluZWQoRU5BQkxFX0NTU19ERVZJQ0VfQURBUFRBVElPTikKKyNkZWZpbmUgRU5BQkxF
X0NTU19ERVZJQ0VfQURBUFRBVElPTiAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9D
U1NfQ09NUE9TSVRJTkcpCisjZGVmaW5lIEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcgMAorI2VuZGlm
CisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pCisjZGVmaW5lIEVO
QUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTiAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJM
RV9DU1NfQ09OSUNfR1JBRElFTlRTKQorI2RlZmluZSBFTkFCTEVfQ1NTX0NPTklDX0dSQURJRU5U
UyAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9DVVNUT01fQ1VSU09SX1NVUFBPUlQp
CisjZGVmaW5lIEVOQUJMRV9DVVNUT01fQ1VSU09SX1NVUFBPUlQgMQorI2VuZGlmCisKKyNpZiAh
ZGVmaW5lZChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKQorI2RlZmluZSBFTkFCTEVfQ1VT
VE9NX1NDSEVNRV9IQU5ETEVSIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0RBUktf
TU9ERV9DU1MpCisjZGVmaW5lIEVOQUJMRV9EQVJLX01PREVfQ1NTIDAKKyNlbmRpZgorCisjaWYg
IWRlZmluZWQoRU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQpCisjZGVmaW5lIEVOQUJMRV9EQVRBTElT
VF9FTEVNRU5UIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0RFVklDRV9PUklFTlRB
VElPTikKKyNkZWZpbmUgRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTiAwCisjZW5kaWYKKworI2lm
ICFkZWZpbmVkKEVOQUJMRV9ET1dOTE9BRF9BVFRSSUJVVEUpCisjZGVmaW5lIEVOQUJMRV9ET1dO
TE9BRF9BVFRSSUJVVEUgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfRFJBR19TVVBQ
T1JUKQorI2RlZmluZSBFTkFCTEVfRFJBR19TVVBQT1JUIDEKKyNlbmRpZgorCisjaWYgIWRlZmlu
ZWQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSkKKyNkZWZpbmUgRU5BQkxFX0VOQ1JZUFRFRF9NRURJ
QSAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9GSUxURVJTX0xFVkVMXzIpCisjZGVm
aW5lIEVOQUJMRV9GSUxURVJTX0xFVkVMXzIgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFC
TEVfRlRQRElSKQorI2RlZmluZSBFTkFCTEVfRlRQRElSIDEKKyNlbmRpZgorCisjaWYgIWRlZmlu
ZWQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKQorI2RlZmluZSBFTkFCTEVfRlVMTFNDUkVFTl9BUEkg
MAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfR0FNRVBBRCkKKyNkZWZpbmUgRU5BQkxF
X0dBTUVQQUQgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfR0VPTE9DQVRJT04pCisj
ZGVmaW5lIEVOQUJMRV9HRU9MT0NBVElPTiAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJM
RV9JTkRFWEVEX0RBVEFCQVNFKQorI2RlZmluZSBFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSAwCisj
ZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktFUlMp
CisjZGVmaW5lIEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktFUlMgMAorI2VuZGlmCisK
KyNpZiAhZGVmaW5lZChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikKKyNkZWZpbmUgRU5BQkxFX0lO
UFVUX1RZUEVfQ09MT1IgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfSU5QVVRfVFlQ
RV9EQVRFKQorI2RlZmluZSBFTkFCTEVfSU5QVVRfVFlQRV9EQVRFIDAKKyNlbmRpZgorCisjaWYg
IWRlZmluZWQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVfSU5DT01QTEVURSkKKyNkZWZpbmUg
RU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVfSU5DT01QTEVURSAwCisjZW5kaWYKKworI2lmICFk
ZWZpbmVkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpCisjZGVmaW5lIEVOQUJMRV9J
TlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVf
SU5QVVRfVFlQRV9NT05USCkKKyNkZWZpbmUgRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEggMAorI2Vu
ZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKQorI2RlZmluZSBFTkFC
TEVfSU5QVVRfVFlQRV9USU1FIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0lOUFVU
X1RZUEVfV0VFSykKKyNkZWZpbmUgRU5BQkxFX0lOUFVUX1RZUEVfV0VFSyAwCisjZW5kaWYKKwor
I2lmIEVOQUJMRShJTlBVVF9UWVBFX0RBVEUpIHx8IEVOQUJMRShJTlBVVF9UWVBFX0RBVEVUSU1F
X0lOQ09NUExFVEUpIHx8IEVOQUJMRShJTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpIHx8IEVOQUJM
RShJTlBVVF9UWVBFX01PTlRIKSB8fCBFTkFCTEUoSU5QVVRfVFlQRV9USU1FKSB8fCBFTkFCTEUo
SU5QVVRfVFlQRV9XRUVLKQorI2lmICFkZWZpbmVkKEVOQUJMRV9EQVRFX0FORF9USU1FX0lOUFVU
X1RZUEVTKQorI2RlZmluZSBFTkFCTEVfREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUyAxCisjZW5k
aWYKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0lOU1BFQ1RPUl9BTFRFUk5BVEVfRElT
UEFUQ0hFUlMpCisjZGVmaW5lIEVOQUJMRV9JTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENIRVJT
IDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0lOU1BFQ1RPUl9URUxFTUVUUlkpCisj
ZGVmaW5lIEVOQUJMRV9JTlNQRUNUT1JfVEVMRU1FVFJZIDAKKyNlbmRpZgorCisjaWYgIWRlZmlu
ZWQoRU5BQkxFX0lOVEwpCisjZGVmaW5lIEVOQUJMRV9JTlRMIDAKKyNlbmRpZgorCisjaWYgIWRl
ZmluZWQoRU5BQkxFX0xBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCisjZGVmaW5lIEVOQUJMRV9M
QVlPVVRfRk9STUFUVElOR19DT05URVhUIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxF
X0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJWEVTKQorI2RlZmluZSBFTkFCTEVfTEVHQUNZX0NTU19W
RU5ET1JfUFJFRklYRVMgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTEVUVEVSUFJF
U1MpCisjZGVmaW5lIEVOQUJMRV9MRVRURVJQUkVTUyAwCisjZW5kaWYKKworI2lmICFkZWZpbmVk
KEVOQUJMRV9NQVRITUwpCisjZGVmaW5lIEVOQUJMRV9NQVRITUwgMQorI2VuZGlmCisKKyNpZiAh
ZGVmaW5lZChFTkFCTEVfTUVESUFfQ0FQVFVSRSkKKyNkZWZpbmUgRU5BQkxFX01FRElBX0NBUFRV
UkUgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBU
KQorI2RlZmluZSBFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBUIDAKKyNlbmRpZgorCisjaWYg
IWRlZmluZWQoRU5BQkxFX01FRElBX1NPVVJDRSkKKyNkZWZpbmUgRU5BQkxFX01FRElBX1NPVVJD
RSAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKQorI2Rl
ZmluZSBFTkFCTEVfTUVESUFfU1RBVElTVElDUyAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVO
QUJMRV9NRURJQV9TVFJFQU0pCisjZGVmaW5lIEVOQUJMRV9NRURJQV9TVFJFQU0gMAorI2VuZGlm
CisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTUVURVJfRUxFTUVOVCkKKyNkZWZpbmUgRU5BQkxFX01F
VEVSX0VMRU1FTlQgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTUhUTUwpCisjZGVm
aW5lIEVOQUJMRV9NSFRNTCAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9NT1VTRV9D
VVJTT1JfU0NBTEUpCisjZGVmaW5lIEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUgMAorI2VuZGlm
CisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTU9VU0VfRk9SQ0VfRVZFTlRTKQorI2RlZmluZSBFTkFC
TEVfTU9VU0VfRk9SQ0VfRVZFTlRTIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX05F
VFNDQVBFX1BMVUdJTl9BUEkpCisjZGVmaW5lIEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJIDEK
KyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9NRVRBREFUQV9D
QUNIRSkKKyNkZWZpbmUgRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9NRVRBREFUQV9DQUNIRSAwCisj
ZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9OT1RJRklDQVRJT05TKQorI2RlZmluZSBFTkFC
TEVfTk9USUZJQ0FUSU9OUyAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9PRkZTQ1JF
RU5fQ0FOVkFTKQorI2RlZmluZSBFTkFCTEVfT0ZGU0NSRUVOX0NBTlZBUyAwCisjZW5kaWYKKwor
I2lmICFkZWZpbmVkKEVOQUJMRV9PUklFTlRBVElPTl9FVkVOVFMpCisjZGVmaW5lIEVOQUJMRV9P
UklFTlRBVElPTl9FVkVOVFMgMAorI2VuZGlmCisKKyNpZiBPUyhXSU5ET1dTKQorI2lmICFkZWZp
bmVkKEVOQUJMRV9QQU5fU0NST0xMSU5HKQorI2RlZmluZSBFTkFCTEVfUEFOX1NDUk9MTElORyAx
CisjZW5kaWYKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCkK
KyNkZWZpbmUgRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCAwCisjZW5kaWYKKworI2lmICFkZWZpbmVk
KEVOQUJMRV9QT0lOVEVSX0xPQ0spCisjZGVmaW5lIEVOQUJMRV9QT0lOVEVSX0xPQ0sgMQorI2Vu
ZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfUVVPVEEpCisjZGVmaW5lIEVOQUJMRV9RVU9UQSAw
CisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9SRU1PVEVfSU5TUEVDVE9SKQorI2RlZmlu
ZSBFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUiAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJM
RV9SVUJCRVJfQkFORElORykKKyNkZWZpbmUgRU5BQkxFX1JVQkJFUl9CQU5ESU5HIDAKKyNlbmRp
ZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1NFQ1VSSVRZX0FTU0VSVElPTlMpCisvKiBFbmFibGUg
c2VjdXJpdHkgYXNzZXJ0aW9ucyBvbiBhbGwgQVNBTiBidWlsZHMgYW5kIGRlYnVnIGJ1aWxkcy4g
Ki8KKyNpZiBBU0FOX0VOQUJMRUQgfHwgIWRlZmluZWQoTkRFQlVHKQorI2RlZmluZSBFTkFCTEVf
U0VDVVJJVFlfQVNTRVJUSU9OUyAxCisjZW5kaWYKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5B
QkxFX1NNT09USF9TQ1JPTExJTkcpCisjZGVmaW5lIEVOQUJMRV9TTU9PVEhfU0NST0xMSU5HIDAK
KyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpCisjZGVmaW5l
IEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxF
X1NQRUxMQ0hFQ0spCisjZGVmaW5lIEVOQUJMRV9TUEVMTENIRUNLIDAKKyNlbmRpZgorCisjaWYg
IWRlZmluZWQoRU5BQkxFX1NUUkVBTVNfQVBJKQorI2RlZmluZSBFTkFCTEVfU1RSRUFNU19BUEkg
MQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfU1ZHX0ZPTlRTKQorI2RlZmluZSBFTkFC
TEVfU1ZHX0ZPTlRTIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1RFWFRfQ0FSRVQp
CisjZGVmaW5lIEVOQUJMRV9URVhUX0NBUkVUIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5B
QkxFX1RFWFRfU0VMRUNUSU9OKQorI2RlZmluZSBFTkFCTEVfVEVYVF9TRUxFQ1RJT04gMQorI2Vu
ZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQVNZTkNfU0NST0xMSU5HKQorI2RlZmluZSBFTkFC
TEVfQVNZTkNfU0NST0xMSU5HIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1RPVUNI
X0VWRU5UUykKKyNkZWZpbmUgRU5BQkxFX1RPVUNIX0VWRU5UUyAwCisjZW5kaWYKKworI2lmICFk
ZWZpbmVkKEVOQUJMRV9WSURFTykKKyNkZWZpbmUgRU5BQkxFX1ZJREVPIDAKKyNlbmRpZgorCisj
aWYgIWRlZmluZWQoRU5BQkxFX1ZJREVPX1RSQUNLKQorI2RlZmluZSBFTkFCTEVfVklERU9fVFJB
Q0sgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfREFUQUNVRV9WQUxVRSkKKyNkZWZp
bmUgRU5BQkxFX0RBVEFDVUVfVkFMVUUgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVf
V0VCR0wpCisjZGVmaW5lIEVOQUJMRV9XRUJHTCAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVO
QUJMRV9HUkFQSElDU19DT05URVhUX0dMKQorI2RlZmluZSBFTkFCTEVfR1JBUEhJQ1NfQ09OVEVY
VF9HTCBFTkFCTEVfV0VCR0wKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1dFQl9BUkNI
SVZFKQorI2RlZmluZSBFTkFCTEVfV0VCX0FSQ0hJVkUgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5l
ZChFTkFCTEVfV0VCX0FVRElPKQorI2RlZmluZSBFTkFCTEVfV0VCX0FVRElPIDAKKyNlbmRpZgor
CisjaWYgIWRlZmluZWQoRU5BQkxFX1hTTFQpCisjZGVmaW5lIEVOQUJMRV9YU0xUIDEKKyNlbmRp
ZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0RBVEFfSU5URVJBQ1RJT04pCisjZGVmaW5lIEVOQUJM
RV9EQVRBX0lOVEVSQUNUSU9OIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1NFUlZJ
Q0VfV09SS0VSKQorI2RlZmluZSBFTkFCTEVfU0VSVklDRV9XT1JLRVIgMQorI2VuZGlmCisKKwor
LyogSklUIEZlYXR1cmVzICovCisKKy8qIFRoZSBKSVQgaXMgZW5hYmxlZCBieSBkZWZhdWx0IG9u
IGFsbCB4ODYtNjQgJiBBUk02NCBwbGF0Zm9ybXMuICovCisjaWYgIWRlZmluZWQoRU5BQkxFX0pJ
VCkgJiYgKENQVShYODZfNjQpIHx8IENQVShBUk02NCkpICYmICFDUFUoQVBQTEVfQVJNVjdLKQor
I2RlZmluZSBFTkFCTEVfSklUIDEKKyNlbmRpZgorCisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyNp
ZiAoQ1BVKEFSTV9USFVNQjIpIHx8IENQVShNSVBTKSkgJiYgT1MoTElOVVgpCisvKiBPbiBBUk12
NyBhbmQgTUlQUyBvbiBMaW51eCB0aGUgSklUIGlzIGVuYWJsZWQgdW5sZXNzIGV4cGxpY2l0bHkg
ZGlzYWJsZWQuICovCisjaWYgIWRlZmluZWQoRU5BQkxFX0pJVCkKKyNkZWZpbmUgRU5BQkxFX0pJ
VCAxCisjZW5kaWYKKyNlbHNlCisvKiBEaXNhYmxlIEpJVCBhbmQgZm9yY2UgQ19MT09QIG9uIGFs
bCBvdGhlciAzMmJpdCBhcmNoaXRlY3R1cmVzLiAqLworI3VuZGVmIEVOQUJMRV9KSVQKKyNkZWZp
bmUgRU5BQkxFX0pJVCAwCisjdW5kZWYgRU5BQkxFX0NfTE9PUAorI2RlZmluZSBFTkFCTEVfQ19M
T09QIDEKKyNlbmRpZgorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQ19MT09QKQorI2lm
IEVOQUJMRShKSVQpIHx8IENQVShYODZfNjQpIHx8IChDUFUoQVJNNjQpICYmICFkZWZpbmVkKF9f
SUxQMzJfXykpCisjZGVmaW5lIEVOQUJMRV9DX0xPT1AgMAorI2Vsc2UKKyNkZWZpbmUgRU5BQkxF
X0NfTE9PUCAxCisjZW5kaWYKKyNlbmRpZgorCisvKiBGSVhNRTogVGhpcyBzaG91bGQgYmUgdHVy
bmVkIGludG8gYW4gI2Vycm9yIGludmFyaWFudCAqLworLyogVGhlIEZUTCAqZG9lcyBub3QqIHdv
cmsgb24gMzItYml0IHBsYXRmb3Jtcy4gRGlzYWJsZSBpdCBldmVuIGlmIHNvbWVvbmUgYXNrZWQg
dXMgdG8gZW5hYmxlIGl0LiAqLworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisjdW5kZWYgRU5BQkxF
X0ZUTF9KSVQKKyNkZWZpbmUgRU5BQkxFX0ZUTF9KSVQgMAorI2VuZGlmCisKKy8qIEZJWE1FOiBU
aGlzIHNob3VsZCBiZSB0dXJuZWQgaW50byBhbiAjZXJyb3IgaW52YXJpYW50ICovCisvKiBUaGUg
RlRMIGlzIGRpc2FibGVkIG9uIHRoZSBpT1Mgc2ltdWxhdG9yLCBtb3N0bHkgZm9yIHNpbXBsaWNp
dHkuICovCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWV9TSU1VTEFUT1IpCisjdW5kZWYgRU5BQkxF
X0ZUTF9KSVQKKyNkZWZpbmUgRU5BQkxFX0ZUTF9KSVQgMAorI2VuZGlmCisKKy8qIElmIHBvc3Np
YmxlLCB0cnkgdG8gZW5hYmxlIGEgZGlzYXNzZW1ibGVyLiBUaGlzIGlzIG9wdGlvbmFsLiBXZSBw
cm9jZWVkIGluIHR3bworICAgc3RlcHM6IGZpcnN0IHdlIHRyeSB0byBmaW5kIHNvbWUgZGlzYXNz
ZW1ibGVyIHRoYXQgd2UgY2FuIHVzZSwgYW5kIHRoZW4gd2UKKyAgIGRlY2lkZSBpZiB0aGUgaGln
aC1sZXZlbCBkaXNhc3NlbWJsZXIgQVBJIGNhbiBiZSBlbmFibGVkLiAqLworI2lmICFkZWZpbmVk
KEVOQUJMRV9VRElTODYpICYmIEVOQUJMRShKSVQpICYmIENQVShYODZfNjQpICYmICFVU0UoQ0FQ
U1RPTkUpCisjZGVmaW5lIEVOQUJMRV9VRElTODYgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChF
TkFCTEVfQVJNNjRfRElTQVNTRU1CTEVSKSAmJiBFTkFCTEUoSklUKSAmJiBDUFUoQVJNNjQpICYm
ICFVU0UoQ0FQU1RPTkUpCisjZGVmaW5lIEVOQUJMRV9BUk02NF9ESVNBU1NFTUJMRVIgMQorI2Vu
ZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfRElTQVNTRU1CTEVSKSAmJiAoRU5BQkxFKFVESVM4
NikgfHwgRU5BQkxFKEFSTTY0X0RJU0FTU0VNQkxFUikgfHwgKEVOQUJMRShKSVQpICYmIFVTRShD
QVBTVE9ORSkpKQorI2RlZmluZSBFTkFCTEVfRElTQVNTRU1CTEVSIDEKKyNlbmRpZgorCisjaWYg
IWRlZmluZWQoRU5BQkxFX0RGR19KSVQpICYmIEVOQUJMRShKSVQpCisKKy8qIEVuYWJsZSB0aGUg
REZHIEpJVCBvbiBYODYgYW5kIFg4Nl82NC4gKi8KKyNpZiBDUFUoWDg2XzY0KSAmJiAoT1MoREFS
V0lOKSB8fCBPUyhMSU5VWCkgfHwgT1MoRlJFRUJTRCkgfHwgT1MoSFVSRCkgfHwgT1MoV0lORE9X
UykpCisjZGVmaW5lIEVOQUJMRV9ERkdfSklUIDEKKyNlbmRpZgorCisvKiBFbmFibGUgdGhlIERG
RyBKSVQgb24gQVJNdjcuICBPbmx5IHRlc3RlZCBvbiBpT1MsIExpbnV4LCBhbmQgRnJlZUJTRC4g
Ki8KKyNpZiAoQ1BVKEFSTV9USFVNQjIpIHx8IENQVShBUk02NCkpICYmIChPUyhEQVJXSU4pIHx8
IE9TKExJTlVYKSB8fCBPUyhGUkVFQlNEKSkKKyNkZWZpbmUgRU5BQkxFX0RGR19KSVQgMQorI2Vu
ZGlmCisKKy8qIEVuYWJsZSB0aGUgREZHIEpJVCBvbiBNSVBTLiAqLworI2lmIENQVShNSVBTKQor
I2RlZmluZSBFTkFCTEVfREZHX0pJVCAxCisjZW5kaWYKKworI2VuZGlmIC8qICFkZWZpbmVkKEVO
QUJMRV9ERkdfSklUKSAmJiBFTkFCTEUoSklUKSAqLworCisvKiBDb25jdXJyZW50IEpTIG9ubHkg
d29ya3Mgb24gNjQtYml0IHBsYXRmb3JtcyBiZWNhdXNlIGl0IHJlcXVpcmVzIHRoYXQKKyAgIHZh
bHVlcyBnZXQgc3RvcmVkIHRvIGF0b21pY2FsbHkuIFRoaXMgaXMgdHJpdmlhbGx5IHRydWUgb24g
NjQtYml0IHBsYXRmb3JtcywKKyAgIGJ1dCBub3QgdHJ1ZSBhdCBhbGwgb24gMzItYml0IHBsYXRm
b3JtcyB3aGVyZSB2YWx1ZXMgYXJlIGNvbXBvc2VkIG9mIHR3bworICAgc2VwYXJhdGUgc3ViLXZh
bHVlcy4gKi8KKyNpZiBFTkFCTEUoSklUKSAmJiBVU0UoSlNWQUxVRTY0KQorI2RlZmluZSBFTkFC
TEVfQ09OQ1VSUkVOVF9KUyAxCisjZW5kaWYKKworI2lmIChDUFUoWDg2XzY0KSB8fCBDUFUoQVJN
NjQpKSAmJiBIQVZFKEZBU1RfVExTKQorI2RlZmluZSBFTkFCTEVfRkFTVF9UTFNfSklUIDEKKyNl
bmRpZgorCisjaWYgRU5BQkxFKEpJVCkgJiYgKENQVShYODYpIHx8IENQVShYODZfNjQpIHx8IENQ
VShBUk1fVEhVTUIyKSB8fCBDUFUoQVJNNjQpIHx8IENQVShNSVBTKSkKKyNkZWZpbmUgRU5BQkxF
X01BU01fUFJPQkUgMQorI2VuZGlmCisKKy8qIEZJWE1FOiBUaGlzIHNob3VsZCBiZSB0dXJuZWQg
aW50byBhbiAjZXJyb3IgaW52YXJpYW50ICovCisvKiBJZiB0aGUgYmFzZWxpbmUgaml0IGlzIG5v
dCBhdmFpbGFibGUsIHRoZW4gZGlzYWJsZSB1cHBlciB0aWVycyBhcyB3ZWxsLgorICAgVGhlIE1h
Y3JvQXNzZW1ibGVyOjpwcm9iZSgpIGlzIGFsc28gcmVxdWlyZWQgZm9yIHN1cHBvcnRpbmcgdGhl
IHVwcGVyIHRpZXJzLiAqLworI2lmICFFTkFCTEUoSklUKSB8fCAhRU5BQkxFKE1BU01fUFJPQkUp
CisjdW5kZWYgRU5BQkxFX0RGR19KSVQKKyN1bmRlZiBFTkFCTEVfRlRMX0pJVAorI2RlZmluZSBF
TkFCTEVfREZHX0pJVCAwCisjZGVmaW5lIEVOQUJMRV9GVExfSklUIDAKKyNlbmRpZgorCisvKiBG
SVhNRTogVGhpcyBzaG91bGQgYmUgdHVybmVkIGludG8gYW4gI2Vycm9yIGludmFyaWFudCAqLwor
LyogSWYgdGhlIERGRyBqaXQgaXMgbm90IGF2YWlsYWJsZSwgdGhlbiBkaXNhYmxlIHVwcGVyIHRp
ZXJzIGFzIHdlbGw6ICovCisjaWYgIUVOQUJMRShERkdfSklUKQorI3VuZGVmIEVOQUJMRV9GVExf
SklUCisjZGVmaW5lIEVOQUJMRV9GVExfSklUIDAKKyNlbmRpZgorCisvKiBUaGlzIGNvbnRyb2xz
IHdoZXRoZXIgQjMgaXMgYnVpbHQuIEIzIGlzIG5lZWRlZCBmb3IgRlRMIEpJVCBhbmQgV2ViQXNz
ZW1ibHkgKi8KKyNpZiBFTkFCTEUoRlRMX0pJVCkKKyNkZWZpbmUgRU5BQkxFX0IzX0pJVCAxCisj
ZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJBU1NFTUJMWSkgJiYgKEVOQUJMRShCM19K
SVQpICYmIFBMQVRGT1JNKENPQ09BKSAmJiBDUFUoQUREUkVTUzY0KSkKKyNkZWZpbmUgRU5BQkxF
X1dFQkFTU0VNQkxZIDEKKyNlbmRpZgorCisvKiBUaGUgU2FtcGxpbmdQcm9maWxlciBpcyB0aGUg
cHJvYmFiaWxpc3RpYyBhbmQgbG93LW92ZXJoZWFkIHByb2ZpbGVyIHVzZWQgYnkKKyAqIEpTQyB0
byBtZWFzdXJlIHdoZXJlIHRpbWUgaXMgc3BlbnQgaW5zaWRlIGEgSmF2YVNjcmlwdCBwcm9ncmFt
LgorICogSW4gY29uZmlndXJhdGlvbnMgb3RoZXIgdGhhbiBXaW5kb3dzIGFuZCBEYXJ3aW4sIGJl
Y2F1c2UgbGF5b3V0IG9mIG1jb250ZXh0X3QgZGVwZW5kcyBvbiBzdGFuZGFyZCBsaWJyYXJpZXMg
KGxpa2UgZ2xpYmMpLAorICogc2FtcGxpbmcgcHJvZmlsZXIgaXMgZW5hYmxlZCBpZiBXZWJLaXQg
dXNlcyBwdGhyZWFkcyBhbmQgZ2xpYmMuICovCisjaWYgIWRlZmluZWQoRU5BQkxFX1NBTVBMSU5H
X1BST0ZJTEVSKSAmJiAoIUVOQUJMRShDX0xPT1ApICYmIChPUyhXSU5ET1dTKSB8fCBIQVZFKE1B
Q0hJTkVfQ09OVEVYVCkpKQorI2RlZmluZSBFTkFCTEVfU0FNUExJTkdfUFJPRklMRVIgMQorI2Vu
ZGlmCisKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpICYmIEhBVkUoTUFDSElORV9DT05URVhUKQor
I2RlZmluZSBFTkFCTEVfV0VCQVNTRU1CTFlfRkFTVF9NRU1PUlkgMQorI2VuZGlmCisKKy8qIENv
dW50cyB1c2VzIG9mIHdyaXRlIGJhcnJpZXJzIHVzaW5nIHNhbXBsaW5nIGNvdW50ZXJzLiBCZSBz
dXJlIHRvIGFsc28KKyAgIHNldCBFTkFCTEVfU0FNUExJTkdfQ09VTlRFUlMgdG8gMS4gKi8KKyNp
ZiAhZGVmaW5lZChFTkFCTEVfV1JJVEVfQkFSUklFUl9QUk9GSUxJTkcpCisjZGVmaW5lIEVOQUJM
RV9XUklURV9CQVJSSUVSX1BST0ZJTElORyAwCisjZW5kaWYKKworLyogTG9ncyBhbGwgYWxsb2Nh
dGlvbi1yZWxhdGVkIGFjdGl2aXR5IHRoYXQgZ29lcyB0aHJvdWdoIGZhc3RNYWxsb2Mgb3IgdGhl
CisgICBKU0MgR0MgKGJvdGggY2VsbHMgYW5kIGJ1dHRlcmZsaWVzKS4gQWxzbyBsb2dzIG1hcmtp
bmcuIE5vdGUgdGhhdCB0aGlzCisgICBpc24ndCBhIGNvbXBsZXRlbHkgYWNjdXJhdGUgdmlldyBv
ZiB0aGUgaGVhcCBzaW5jZSBpdCBkb2Vzbid0IGluY2x1ZGUgYWxsCisgICBidXR0ZXJmbHkgcmVz
aXplIG9wZXJhdGlvbnMsIGRvZXNuJ3QgdGVsbCB5b3Ugd2hhdCBpcyBnb2luZyBvbiB3aXRoIHdl
YWsKKyAgIHJlZmVyZW5jZXMgKG90aGVyIHRoYW4gdG8gdGVsbCB5b3Ugd2hlbiB0aGV5J3JlIG1h
cmtlZCksIGFuZCBkb2Vzbid0CisgICB0cmFjayBkaXJlY3QgbW1hcCgpIGFsbG9jYXRpb25zIG9y
IHRoaW5ncyBsaWtlIEpJVCBhbGxvY2F0aW9uLiAqLworI2lmICFkZWZpbmVkKEVOQUJMRV9BTExP
Q0FUSU9OX0xPR0dJTkcpCisjZGVmaW5lIEVOQUJMRV9BTExPQ0FUSU9OX0xPR0dJTkcgMAorI2Vu
ZGlmCisKKy8qIEVuYWJsZSB2ZXJpZmljYXRpb24gdGhhdCB0aGF0IHJlZ2lzdGVyIGFsbG9jYXRp
b25zIGFyZSBub3QgbWFkZSB3aXRoaW4gZ2VuZXJhdGVkIGNvbnRyb2wgZmxvdy4KKyAgIFR1cm5l
ZCBvbiBmb3IgZGVidWcgYnVpbGRzLiAqLworI2lmICFkZWZpbmVkKEVOQUJMRV9ERkdfUkVHSVNU
RVJfQUxMT0NBVElPTl9WQUxJREFUSU9OKSAmJiBFTkFCTEUoREZHX0pJVCkgJiYgIWRlZmluZWQo
TkRFQlVHKQorI2RlZmluZSBFTkFCTEVfREZHX1JFR0lTVEVSX0FMTE9DQVRJT05fVkFMSURBVElP
TiAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9TRVBBUkFURURfV1hfSEVBUCkgJiYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgQ1BVKEFSTTY0KSAmJiAoIUVOQUJMRShGQVNUX0pJVF9Q
RVJNSVNTSU9OUykgfHwgIUNQVShBUk02NEUpKQorI2RlZmluZSBFTkFCTEVfU0VQQVJBVEVEX1dY
X0hFQVAgMQorI2VuZGlmCisKKy8qIERldGVybWluZSBpZiB3ZSBuZWVkIHRvIGVuYWJsZSBDb21w
dXRlZCBHb3RvIE9wY29kZXMgb3Igbm90OiAqLworI2lmIEhBVkUoQ09NUFVURURfR09UTykgfHwg
IUVOQUJMRShDX0xPT1ApCisjZGVmaW5lIEVOQUJMRV9DT01QVVRFRF9HT1RPX09QQ09ERVMgMQor
I2VuZGlmCisKKy8qIFJlZ3VsYXIgRXhwcmVzc2lvbiBUcmFjaW5nIC0gU2V0IHRvIDEgdG8gdHJh
Y2UgUmVnRXhwJ3MgaW4ganNjLiAgUmVzdWx0cyBkdW1wZWQgYXQgZXhpdCAqLworI2lmICFkZWZp
bmVkKEVOQUJMRV9SRUdFWFBfVFJBQ0lORykKKyNkZWZpbmUgRU5BQkxFX1JFR0VYUF9UUkFDSU5H
IDAKKyNlbmRpZgorCisvKiBZZXQgQW5vdGhlciBSZWdleCBSdW50aW1lIC0gdHVybmVkIG9uIGJ5
IGRlZmF1bHQgZm9yIEpJVCBlbmFibGVkIHBvcnRzLiAqLworI2lmICFkZWZpbmVkKEVOQUJMRV9Z
QVJSX0pJVCkgJiYgRU5BQkxFKEpJVCkKKyNkZWZpbmUgRU5BQkxFX1lBUlJfSklUIDEKKyNlbmRp
ZgorCisvKiBTZXR0aW5nIHRoaXMgZmxhZyBjb21wYXJlcyBKSVQgcmVzdWx0cyB3aXRoIGludGVy
cHJldGVyIHJlc3VsdHMuICovCisjaWYgIWRlZmluZWQoRU5BQkxFX1lBUlJfSklUKSAmJiBFTkFC
TEUoSklUKQorI2RlZmluZSBFTkFCTEVfWUFSUl9KSVRfREVCVUcgMAorI2VuZGlmCisKKy8qIEVu
YWJsZSBKSVQnaW5nIFJlZ3VsYXIgRXhwcmVzc2lvbnMgdGhhdCBoYXZlIG5lc3RlZCBwYXJlbnRo
ZXNpcyAuICovCisjaWYgRU5BQkxFKFlBUlJfSklUKSAmJiAoQ1BVKEFSTTY0KSB8fCAoQ1BVKFg4
Nl82NCkgJiYgIU9TKFdJTkRPV1MpKSkKKyNkZWZpbmUgRU5BQkxFX1lBUlJfSklUX0FMTF9QQVJF
TlNfRVhQUkVTU0lPTlMgMQorI2VuZGlmCisKKy8qIEVuYWJsZSBKSVQnaW5nIFJlZ3VsYXIgRXhw
cmVzc2lvbnMgdGhhdCBoYXZlIG5lc3RlZCBiYWNrIHJlZmVyZW5jZXMuICovCisjaWYgRU5BQkxF
KFlBUlJfSklUKSAmJiAoQ1BVKEFSTTY0KSB8fCAoQ1BVKFg4Nl82NCkgJiYgIU9TKFdJTkRPV1Mp
KSkKKyNkZWZpbmUgRU5BQkxFX1lBUlJfSklUX0JBQ0tSRUZFUkVOQ0VTIDEKKyNlbmRpZgorCisv
KiBJZiBlaXRoZXIgdGhlIEpJVCBvciB0aGUgUmVnRXhwIEpJVCBpcyBlbmFibGVkLCB0aGVuIHRo
ZSBBc3NlbWJsZXIgbXVzdCBiZQorICAgZW5hYmxlZCBhcyB3ZWxsOiAqLworI2lmIEVOQUJMRShK
SVQpIHx8IEVOQUJMRShZQVJSX0pJVCkgfHwgIUVOQUJMRShDX0xPT1ApCisjaWYgZGVmaW5lZChF
TkFCTEVfQVNTRU1CTEVSKSAmJiAhRU5BQkxFX0FTU0VNQkxFUgorI2Vycm9yICJDYW5ub3QgZW5h
YmxlIHRoZSBKSVQgb3IgUmVnRXhwIEpJVCB3aXRob3V0IGVuYWJsaW5nIHRoZSBBc3NlbWJsZXIi
CisjZWxzZQorI3VuZGVmIEVOQUJMRV9BU1NFTUJMRVIKKyNkZWZpbmUgRU5BQkxFX0FTU0VNQkxF
UiAxCisjZW5kaWYKKyNlbmRpZgorCisvKiBJZiB0aGUgRGlzYXNzZW1ibGVyIGlzIGVuYWJsZWQs
IHRoZW4gdGhlIEFzc2VtYmxlciBtdXN0IGJlIGVuYWJsZWQgYXMgd2VsbDogKi8KKyNpZiBFTkFC
TEUoRElTQVNTRU1CTEVSKQorI2lmIGRlZmluZWQoRU5BQkxFX0FTU0VNQkxFUikgJiYgIUVOQUJM
RV9BU1NFTUJMRVIKKyNlcnJvciAiQ2Fubm90IGVuYWJsZSB0aGUgRGlzYXNzZW1ibGVyIHdpdGhv
dXQgZW5hYmxpbmcgdGhlIEFzc2VtYmxlciIKKyNlbHNlCisjdW5kZWYgRU5BQkxFX0FTU0VNQkxF
UgorI2RlZmluZSBFTkFCTEVfQVNTRU1CTEVSIDEKKyNlbmRpZgorI2VuZGlmCisKKyNpZiAhZGVm
aW5lZChFTkFCTEVfRVhDRVBUSU9OX1NDT1BFX1ZFUklGSUNBVElPTikKKyNkZWZpbmUgRU5BQkxF
X0VYQ0VQVElPTl9TQ09QRV9WRVJJRklDQVRJT04gQVNTRVJUX0VOQUJMRUQKKyNlbmRpZgorCisj
aWYgRU5BQkxFKERGR19KSVQpICYmIEhBVkUoTUFDSElORV9DT05URVhUKSAmJiAoQ1BVKFg4Nl82
NCkgfHwgQ1BVKEFSTTY0KSkKKyNkZWZpbmUgRU5BQkxFX1NJR05BTF9CQVNFRF9WTV9UUkFQUyAx
CisjZW5kaWYKKworLyogQ1NTIFNlbGVjdG9yIEpJVCBDb21waWxlciAqLworI2lmICFkZWZpbmVk
KEVOQUJMRV9DU1NfU0VMRUNUT1JfSklUKSAmJiAoKENQVShYODZfNjQpIHx8IENQVShBUk02NCkg
fHwgKENQVShBUk1fVEhVTUIyKSAmJiBPUyhEQVJXSU4pKSkgJiYgRU5BQkxFKEpJVCkgJiYgKE9T
KERBUldJTikgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpKSkKKyNkZWZpbmUgRU5B
QkxFX0NTU19TRUxFQ1RPUl9KSVQgMQorI2VuZGlmCisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYg
IVBMQVRGT1JNKFdBVENIT1MpICYmICFQTEFURk9STShBUFBMRVRWKSAmJiAhUExBVEZPUk0oTUFD
Q0FUQUxZU1QpCisjZGVmaW5lIEVOQUJMRV9EQVRBX0RFVEVDVElPTiAxCisjZW5kaWYKKworI2lm
IENQVShBUk1fVEhVTUIyKSB8fCBDUFUoQVJNNjQpCisjZGVmaW5lIEVOQUJMRV9CUkFOQ0hfQ09N
UEFDVElPTiAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9USFJFQURJTkdfTElCRElT
UEFUQ0gpICYmIEhBVkUoRElTUEFUQ0hfSCkKKyNkZWZpbmUgRU5BQkxFX1RIUkVBRElOR19MSUJE
SVNQQVRDSCAxCisjZWxpZiAhZGVmaW5lZChFTkFCTEVfVEhSRUFESU5HX09QRU5NUCkgJiYgZGVm
aW5lZChfT1BFTk1QKQorI2RlZmluZSBFTkFCTEVfVEhSRUFESU5HX09QRU5NUCAxCisjZWxpZiAh
ZGVmaW5lZChUSFJFQURJTkdfR0VORVJJQykKKyNkZWZpbmUgRU5BQkxFX1RIUkVBRElOR19HRU5F
UklDIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0dDX1ZBTElEQVRJT04pICYmICFk
ZWZpbmVkKE5ERUJVRykKKyNkZWZpbmUgRU5BQkxFX0dDX1ZBTElEQVRJT04gMQorI2VuZGlmCisK
KyNpZiAhZGVmaW5lZChFTkFCTEVfQklORElOR19JTlRFR1JJVFkpICYmICFPUyhXSU5ET1dTKQor
I2RlZmluZSBFTkFCTEVfQklORElOR19JTlRFR1JJVFkgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5l
ZChFTkFCTEVfVFJFRV9ERUJVR0dJTkcpICYmICFkZWZpbmVkKE5ERUJVRykKKyNkZWZpbmUgRU5B
QkxFX1RSRUVfREVCVUdHSU5HIDEKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisjZGVm
aW5lIEVOQUJMRV9SRVNPVVJDRV9VU0FHRSAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJM
RV9PUEVOVFlQRV9WRVJUSUNBTCkgJiYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCisj
ZGVmaW5lIEVOQUJMRV9PUEVOVFlQRV9WRVJUSUNBTCAxCisjZW5kaWYKKworI2lmICFkZWZpbmVk
KEVOQUJMRV9PUEVOVFlQRV9NQVRIKSAmJiAoT1MoREFSV0lOKSAmJiBVU0UoQ0cpKSB8fCAoVVNF
KEZSRUVUWVBFKSAmJiAhUExBVEZPUk0oR1RLKSkgfHwgKFBMQVRGT1JNKFdJTikgJiYgKFVTRShD
RykgfHwgVVNFKENBSVJPKSkpCisjZGVmaW5lIEVOQUJMRV9PUEVOVFlQRV9NQVRIIDEKKyNlbmRp
ZgorCisvKgorICogRW5hYmxlIHRoaXMgdG8gcHV0IGVhY2ggSXNvSGVhcCBhbmQgb3RoZXIgYWxs
b2NhdGlvbiBjYXRlZ29yaWVzIGludG8gdGhlaXIgb3duIG1hbGxvYyBoZWFwcywgc28gdGhhdCB0
b29scyBsaWtlIHZtbWFwIGNhbiBzaG93IGhvdyBiaWcgZWFjaCBoZWFwIGlzLgorICogVHVybiBC
RU5BQkxFX01BTExPQ19IRUFQX0JSRUFLRE9XTiBvbiBpbiBibWFsbG9jIHRvZ2V0aGVyIHdoZW4g
dXNpbmcgdGhpcy4KKyAqLworI2lmICFkZWZpbmVkKEVOQUJMRV9NQUxMT0NfSEVBUF9CUkVBS0RP
V04pCisjZGVmaW5lIEVOQUJMRV9NQUxMT0NfSEVBUF9CUkVBS0RPV04gMAorI2VuZGlmCisKKy8q
IERpc2FibGUgU2hhcmVkQXJyYXlCdWZmZXJzIHVudGlsIFNwZWN0cmUgc2VjdXJpdHkgY29uY2Vy
bnMgYXJlIG1pdGlnYXRlZC4gKi8KKyNkZWZpbmUgRU5BQkxFX1NIQVJFRF9BUlJBWV9CVUZGRVIg
MAorCisjaWYgUExBVEZPUk0oTUFDKQorI2RlZmluZSBFTkFCTEVfV0VCX1BMQVlCQUNLX0NPTlRS
T0xTX01BTkFHRVIgMQorI2VuZGlmCisKKyNpZiBQTEFURk9STShDT0NPQSkKKy8qIEZJWE1FOiBU
aGlzIGlzIGEgVVNFIHN0eWxlIG1hY3JvLCBhcyBpdCB0cmlnZ2VycyB0aGUgdXNlIG9mIENGVVJM
Q29ubmVjdGlvbiBmcmFtZXdvcmsgc3R1YnMuICovCisvKiBGSVhNRTogSXMgdGhpcyBzdGlsbCBu
ZWNlc3Nhcnk/IENGVVJMQ29ubmVjdGlvbiBpc24ndCB1c2VkIG9uIENvY29hIHBsYXRmb3JtcyBh
bnkgbW9yZS4gKi8KKyNkZWZpbmUgRU5BQkxFX1NFQ19JVEVNX1NISU0gMQorI2VuZGlmCisKKyNp
ZiBQTEFURk9STShNQUMpCisjZGVmaW5lIEVOQUJMRV9GVUxMX0tFWUJPQVJEX0FDQ0VTUyAxCisj
ZW5kaWYKKworI2lmICgoUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKFBMQVlTVEFUSU9OKSB8
fCBQTEFURk9STShXUEUpKSAmJiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKSkgfHwgUExBVEZPUk0o
R1RLKQorI2RlZmluZSBFTkFCTEVfS0lORVRJQ19TQ1JPTExJTkcgMQorI2VuZGlmCisKKyNpZiAh
ZGVmaW5lZChFTkFCTEVfTU9OT1NQQUNFX0ZPTlRfRVhDRVBUSU9OKSAmJiAoKFBMQVRGT1JNKE1B
QykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8IDEwMTUwMCkgfHwgUExBVEZP
Uk0oV0FUQ0hPUykgfHwgUExBVEZPUk0oQVBQTEVUVikpCisjZGVmaW5lIEVOQUJMRV9NT05PU1BB
Q0VfRk9OVF9FWENFUFRJT04gMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfUExBVEZP
Uk1fRFJJVkVOX1RFWFRfQ0hFQ0tJTkcpICYmIFBMQVRGT1JNKE1BQ0NBVEFMWVNUKQorI2RlZmlu
ZSBFTkFCTEVfUExBVEZPUk1fRFJJVkVOX1RFWFRfQ0hFQ0tJTkcgMQorI2VuZGlmCisKKy8qIFRo
aXMgZmVhdHVyZSB3b3JrcyBieSBlbWJlZGRpbmcgdGhlIE9wY29kZUlEIGluIHRoZSAzMiBiaXQg
anVzdCBiZWZvcmUgdGhlIGdlbmVyYXRlZCBMTGludCBjb2RlCisgICB0aGF0IGV4ZWN1dGVzIGVh
Y2ggb3Bjb2RlLiBJdCBjYW5ub3QgYmUgc3VwcG9ydGVkIGJ5IHRoZSBDTG9vcCBzaW5jZSB0aGVy
ZSdzIG5vIHdheSB0byBlbWJlZCB0aGUKKyAgIE9wY29kZUlEIHdvcmQgaW4gdGhlIENMb29wJ3Mg
c3dpdGNoIHN0YXRlbWVudCBjYXNlcy4gSXQgaXMgYWxzbyBjdXJyZW50bHkgbm90IGltcGxlbWVu
dGVkIGZvciBNU1ZDLgorKi8KKyNpZiAhZGVmaW5lZChFTkFCTEVfTExJTlRfRU1CRURERURfT1BD
T0RFX0lEKSAmJiAhRU5BQkxFKENfTE9PUCkgJiYgIUNPTVBJTEVSKE1TVkMpICYmIChDUFUoWDg2
KSB8fCBDUFUoWDg2XzY0KSB8fCBDUFUoQVJNNjQpIHx8IChDUFUoQVJNX1RIVU1CMikgJiYgT1Mo
REFSV0lOKSkpCisjZGVmaW5lIEVOQUJMRV9MTElOVF9FTUJFRERFRF9PUENPREVfSUQgMQorI2Vu
ZGlmCisKKworLyogQXNzZXJ0cywgaW52YXJpYW50cyBmb3IgbWFjcm8gZGVmaW5pdGlvbnMgKi8K
KworI2lmIEVOQUJMRShWSURFT19UUkFDSykgJiYgIUVOQUJMRShWSURFTykKKyNlcnJvciAiRU5B
QkxFKFZJREVPX1RSQUNLKSByZXF1aXJlcyBFTkFCTEUoVklERU8pIgorI2VuZGlmCisKKyNpZiBF
TkFCTEUoTUVESUFfQ09OVFJPTFNfU0NSSVBUKSAmJiAhRU5BQkxFKFZJREVPKQorI2Vycm9yICJF
TkFCTEUoTUVESUFfQ09OVFJPTFNfU0NSSVBUKSByZXF1aXJlcyBFTkFCTEUoVklERU8pIgorI2Vu
ZGlmCisKKyNpZiBFTkFCTEUoSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUykgJiYgIUVO
QUJMRShSRU1PVEVfSU5TUEVDVE9SKQorI2Vycm9yICJFTkFCTEUoSU5TUEVDVE9SX0FMVEVSTkFU
RV9ESVNQQVRDSEVSUykgcmVxdWlyZXMgRU5BQkxFKFJFTU9URV9JTlNQRUNUT1IpIgorI2VuZGlm
CisKKyNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykgJiYgIUVOQUJMRShUT1VDSF9FVkVOVFMp
CisjZXJyb3IgIkVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKSByZXF1aXJlcyBFTkFCTEUoVE9VQ0hf
RVZFTlRTKSIKKyNlbmRpZgorCisjaWYgRU5BQkxFKFdFQkdMKSAmJiAhRU5BQkxFKEdSQVBISUNT
X0NPTlRFWFRfR0wpCisjZXJyb3IgIkVOQUJMRShXRUJHTCkgcmVxdWlyZXMgRU5BQkxFKEdSQVBI
SUNTX0NPTlRFWFRfR0wpIgorI2VuZGlmCisKKyNpZiBFTkFCTEUoV0VCR0wyKSAmJiAhRU5BQkxF
KFdFQkdMKQorI2Vycm9yICJFTkFCTEUoV0VCR0wyKSByZXF1aXJlcyBFTkFCTEUoV0VCR0wpIgor
I2VuZGlmCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZVdpbkNhaXJvLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVXaW5DYWlyby5oCShyZXZp
c2lvbiAyNTU1NTIpCisrKyBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZVdpbkNhaXJvLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTMyLDE1NyArMzIsMTYgQEAKICNlcnJvciAiUGxlYXNlICNpbmNs
dWRlIDx3dGYvUGxhdGZvcm0uaD4gaW5zdGVhZCBvZiB0aGlzIGZpbGUgZGlyZWN0bHkuIgogI2Vu
ZGlmCiAKLQotI2RlZmluZSBFTkFCTEUoV1RGX0ZFQVRVUkUpIChkZWZpbmVkIEVOQUJMRV8jI1dU
Rl9GRUFUVVJFICYmIEVOQUJMRV8jI1dURl9GRUFUVVJFKQotCi0vKiBVc2UgdGhpcyBmaWxlIHRv
IGxpc3QgX2FsbF8gRU5BQkxFKCkgbWFjcm9zLiBEZWZpbmUgdGhlIG1hY3JvcyB0byBiZSBvbmUg
b2YgdGhlIGZvbGxvd2luZyB2YWx1ZXM6Ci0gKiAgLSAiMCIgZGlzYWJsZXMgdGhlIGZlYXR1cmUg
YnkgZGVmYXVsdC4gVGhlIGZlYXR1cmUgY2FuIHN0aWxsIGJlIGVuYWJsZWQgZm9yIGEgc3BlY2lm
aWMgcG9ydCBvciBlbnZpcm9ubWVudC4KLSAqICAtICIxIiBlbmFibGVzIHRoZSBmZWF0dXJlIGJ5
IGRlZmF1bHQuIFRoZSBmZWF0dXJlIGNhbiBzdGlsbCBiZSBkaXNhYmxlZCBmb3IgYSBzcGVjaWZp
YyBwb3J0IG9yIGVudmlyb25tZW50LgotICoKLSAqIFRoZSBmZWF0dXJlIGRlZmF1bHRzIGluIHRo
aXMgZmlsZSBhcmUgb25seSB0YWtlbiBpbnRvIGFjY291bnQgaWYgdGhlIChwb3J0IHNwZWNpZmlj
KSBidWlsZCBzeXN0ZW0KLSAqIGhhcyBub3QgZW5hYmxlZCBvciBkaXNhYmxlZCBhIHBhcnRpY3Vs
YXIgZmVhdHVyZS4KLSAqCi0gKiBVc2UgdGhpcyBmaWxlIHRvIGRlZmluZSBFTkFCTEUoKSBtYWNy
b3Mgb25seS4gRG8gbm90IHVzZSB0aGlzIGZpbGUgdG8gZGVmaW5lIFVTRSgpIG9yIG1hY3JvcyAh
Ci0gKgotICogT25seSBkZWZpbmUgYSBtYWNybyBpZiBpdCB3YXMgbm90IGRlZmluZWQgYmVmb3Jl
IC0gYWx3YXlzIGNoZWNrIGZvciAhZGVmaW5lZCBmaXJzdC4KLSAqCi0gKiBLZWVwIHRoZSBmaWxl
IHNvcnRlZCBieSB0aGUgbmFtZSBvZiB0aGUgZGVmaW5lcy4gQXMgYW4gZXhjZXB0aW9uIHlvdSBj
YW4gY2hhbmdlIHRoZSBvcmRlcgotICogdG8gYWxsb3cgaW50ZXJkZXBlbmRlbmNpZXMgYmV0d2Vl
biB0aGUgZGVmYXVsdCB2YWx1ZXMuCi0gKgotICogQmVsb3cgYXJlIGEgZmV3IHBvdGVudGlhbCBj
b21tYW5kcyB0byB0YWtlIGFkdmFudGFnZSBvZiB0aGlzIGZpbGUgcnVubmluZyBmcm9tIHRoZSBT
b3VyY2UvV1RGIGRpcmVjdG9yeQotICoKLSAqIEdldCB0aGUgbGlzdCBvZiBmZWF0dXJlIGRlZmlu
ZXM6IGdyZXAgLW8gIkVOQUJMRV9cKFx3XCtcKSIgd3RmL1BsYXRmb3JtRW5hYmxlLmggfCBzb3J0
IHwgdW5pcQotICogR2V0IHRoZSBsaXN0IG9mIGZlYXR1cmVzIGVuYWJsZWQgYnkgZGVmYXVsdCBm
b3IgYSBQTEFURk9STShYWFgpOiBnY2MgLUUgLWRNIC1JLiAtRFdURl9QTEFURk9STV9YWFggInd0
Zi9QbGF0Zm9ybS5oIiB8IGdyZXAgIkVOQUJMRV9cd1wrIDEiIHwgY3V0IC1kJyAnIC1mMiB8IHNv
cnQKLSAqLwotCi0KLS8qIEZJWE1FOiBUaGlzIHNob3VsZCBiZSByZW5hbWVkIHRvIEVOQUJMRV9B
U1NFUlRTIGZvciBjb25zaXN0ZW5jeSBhbmQgc28gaXQgY2FuIGJlIHVzZWQgYXMgRU5BQkxFKEFT
U0VSVFMpLiAqLwotLyogQVNTRVJUX0VOQUJMRUQgc2hvdWxkIGJlIHRydWUgaWYgd2Ugd2FudCB0
aGUgY3VycmVudCBjb21waWxhdGlvbiB1bml0IHRvCi0gICBkbyBkZWJ1ZyBhc3NlcnRpb24gY2hl
Y2tzIHVuY29uZGl0aW9uYWxseSAoZS5nLiB0cmVhdCBhIGRlYnVnIEFTU0VSVAotICAgbGlrZSBh
IFJFTEVBU0VfQVNTRVJULgotKi8KLSNpZm5kZWYgQVNTRVJUX0VOQUJMRUQKLSNpZmRlZiBOREVC
VUcKLSNkZWZpbmUgQVNTRVJUX0VOQUJMRUQgMAotI2Vsc2UKLSNkZWZpbmUgQVNTRVJUX0VOQUJM
RUQgMQotI2VuZGlmCi0jZW5kaWYKLQotLyogPT09PSBQbGF0Zm9ybSBhZGRpdGlvbnM6IGFkZGl0
aW9ucyB0byBQbGF0Zm9ybUVuYWJsZS5oIGZyb20gb3V0c2lkZSB0aGUgbWFpbiByZXBvc2l0b3J5
ID09PT0gKi8KLQotI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspICYmIF9faGFzX2luY2x1ZGUo
PFdlYktpdEFkZGl0aW9ucy9BZGRpdGlvbmFsRmVhdHVyZURlZmluZXMuaD4pCi0jaW5jbHVkZSA8
V2ViS2l0QWRkaXRpb25zL0FkZGl0aW9uYWxGZWF0dXJlRGVmaW5lcy5oPgotI2VuZGlmCi0KLS8q
IEZJWE1FOiBNb3ZlIG91dCB0aGUgUExBVEZPUk0gc3BlY2lmaWMgcnVsZXMgaW50byBwbGF0Zm9y
bSBzcGVjaWZpYyBmaWxlcy4gKi8KLQotLyogLS0tLS0tLS0tIEFwcGxlIGlPUyAoYnV0IG5vdCBt
YWNPUykgcG9ydCAtLS0tLS0tLS0gKi8KLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotCi0jaWYg
IWRlZmluZWQoRU5BQkxFX0FJUlBMQVlfUElDS0VSKQotI2lmICFQTEFURk9STShNQUNDQVRBTFlT
VCkKLSNkZWZpbmUgRU5BQkxFX0FJUlBMQVlfUElDS0VSIDEKLSNlbmRpZgotI2VuZGlmCi0KLSNp
ZiAhZGVmaW5lZChFTkFCTEVfQVBQTEVfUEFZX1JFTU9URV9VSSkKLSNpZiAhUExBVEZPUk0oQVBQ
TEVUVikgJiYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKSAmJiAhUExBVEZPUk0oV0FUQ0hPUykKLSNk
ZWZpbmUgRU5BQkxFX0FQUExFX1BBWV9SRU1PVEVfVUkgMQotI2VuZGlmCi0jZW5kaWYKLQotI2lm
ICFkZWZpbmVkKEVOQUJMRV9DT05URU5UX0VYVEVOU0lPTlMpCi0jZGVmaW5lIEVOQUJMRV9DT05U
RU5UX0VYVEVOU0lPTlMgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfQ09OVEVYVF9N
RU5VUykKLSNkZWZpbmUgRU5BQkxFX0NPTlRFWFRfTUVOVVMgMAotI2VuZGlmCi0KLSNpZiAhZGVm
aW5lZChFTkFCTEVfQ09OVEVYVF9NRU5VX0VWRU5UKQotI2lmICFQTEFURk9STShNQUNDQVRBTFlT
VCkKLSNkZWZpbmUgRU5BQkxFX0NPTlRFWFRfTUVOVV9FVkVOVCAwCi0jZW5kaWYKLSNlbmRpZgot
Ci0jaWYgIWRlZmluZWQoRU5BQkxFX0NVU1RPTV9DVVJTT1JfU1VQUE9SVCkKLSNkZWZpbmUgRU5B
QkxFX0NVU1RPTV9DVVJTT1JfU1VQUE9SVCAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJM
RV9EUkFHX1NVUFBPUlQpCi0jZGVmaW5lIEVOQUJMRV9EUkFHX1NVUFBPUlQgMAotI2VuZGlmCi0K
LSNpZiAhZGVmaW5lZChFTkFCTEVfR0VPTE9DQVRJT04pCi0jZGVmaW5lIEVOQUJMRV9HRU9MT0NB
VElPTiAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9JTlNQRUNUT1JfQUxURVJOQVRF
X0RJU1BBVENIRVJTKQotI2RlZmluZSBFTkFCTEVfSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRD
SEVSUyAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9JTlNQRUNUT1JfVEVMRU1FVFJZ
KQotI2RlZmluZSBFTkFCTEVfSU5TUEVDVE9SX1RFTEVNRVRSWSAwCi0jZW5kaWYKLQotI2lmICFk
ZWZpbmVkKEVOQUJMRV9MRVRURVJQUkVTUykKLSNkZWZpbmUgRU5BQkxFX0xFVFRFUlBSRVNTIDEK
LSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0FVVE9DT1JSRUNUKQotI2RlZmluZSBFTkFC
TEVfQVVUT0NPUlJFQ1QgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfQVVUT0NBUElU
QUxJWkUpCi0jZGVmaW5lIEVOQUJMRV9BVVRPQ0FQSVRBTElaRSAxCi0jZW5kaWYKLQotI2lmICFk
ZWZpbmVkKEVOQUJMRV9JT1NfR0VTVFVSRV9FVkVOVFMpICYmIFVTRShBUFBMRV9JTlRFUk5BTF9T
REspCi0jZGVmaW5lIEVOQUJMRV9JT1NfR0VTVFVSRV9FVkVOVFMgMQotI2VuZGlmCi0KLSNpZiAh
ZGVmaW5lZChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKQotI2RlZmluZSBFTkFCTEVfVEVYVF9BVVRP
U0laSU5HIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0lPU19UT1VDSF9FVkVOVFMp
ICYmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCi0jZGVmaW5lIEVOQUJMRV9JT1NfVE9VQ0hfRVZF
TlRTIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX01FVEVSX0VMRU1FTlQpCi0jZGVm
aW5lIEVOQUJMRV9NRVRFUl9FTEVNRU5UIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxF
X05FVFNDQVBFX1BMVUdJTl9BUEkpCi0jZGVmaW5lIEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJ
IDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUykKLSNk
ZWZpbmUgRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUyAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVk
KEVOQUJMRV9QT0lOVEVSX0xPQ0spCi0jZGVmaW5lIEVOQUJMRV9QT0lOVEVSX0xPQ0sgMAorI2lm
ICFQTEFURk9STShXSU5fQ0FJUk8pCisjZXJyb3IgIlRoaXMgZmlsZSBzaG91bGQgb25seSBiZSBp
bmNsdWRlZCB3aGVuIGJ1aWxkaW5nIHRoZSBXaW5kb3dzIENBSVJPIHBvcnQuIgogI2VuZGlmCiAK
LSNpZiAhZGVmaW5lZChFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUikKLSNkZWZpbmUgRU5BQkxFX1JF
TU9URV9JTlNQRUNUT1IgMQotI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChFTkFCTEVfVEVYVF9DQVJF
VCkKLSNkZWZpbmUgRU5BQkxFX1RFWFRfQ0FSRVQgMAotI2VuZGlmCisvKiAtLS0tLS0tLS0gV2lu
ZG93cyBDQUlSTyBwb3J0IC0tLS0tLS0tLSAqLwogCi0jaWYgIWRlZmluZWQoRU5BQkxFX1RFWFRf
U0VMRUNUSU9OKQotI2RlZmluZSBFTkFCTEVfVEVYVF9TRUxFQ1RJT04gMAotI2VuZGlmCisvKiBQ
TEFURk9STShXSU5fQ0FJUk8pIGlzIGEgc3BlY2lhbGl6YXRpb24gb2YgUExBVEZPUk0oV0lOKS4g
Ki8KKy8qIFBMQVRGT1JNKFdJTikgaXMgYWx3YXlzIGVuYWJsZWQgd2hlbiBQTEFURk9STShXSU5f
Q0FJUk8pIGlzIGVuYWJsZWQuICovCiAKLS8qIEZJWE1FOiBSZW1vdmUgdGhlIFVTRShBUFBMRV9J
TlRFUk5BTF9TREspIGNvbmp1bmN0IG9uY2Ugd2Ugc3VwcG9ydCB0b3VjaCBldmVudHMgd2hlbiBi
dWlsZGluZyBhZ2FpbnN0Ci10aGUgcHVibGljIGlPUyBTREsuIFNlZSA8aHR0cHM6Ly93ZWJraXQu
b3JnL2IvMTc5MTY3Pi4gKi8KLSNpZiAhZGVmaW5lZChFTkFCTEVfVE9VQ0hfRVZFTlRTKSAmJiBV
U0UoQVBQTEVfSU5URVJOQUxfU0RLKQotI2RlZmluZSBFTkFCTEVfVE9VQ0hfRVZFTlRTIDEKLSNl
bmRpZgogCiAjaWYgIWRlZmluZWQoRU5BQkxFX1dFQl9BUkNISVZFKQogI2RlZmluZSBFTkFCTEVf
V0VCX0FSQ0hJVkUgMQpAQCAtMTkyLDE4NiArNTEsOTAgQEAgdGhlIHB1YmxpYyBpT1MgU0RLLiBT
ZWUgPGh0dHBzOi8vd2Via2l0LgogI2RlZmluZSBFTkFCTEVfV0VCR0wgMQogI2VuZGlmCiAKLSNp
ZiAhZGVmaW5lZChFTkFCTEVfUFJJTUFSWV9TTkFQU0hPVFRFRF9QTFVHSU5fSEVVUklTVElDKQot
I2RlZmluZSBFTkFCTEVfUFJJTUFSWV9TTkFQU0hPVFRFRF9QTFVHSU5fSEVVUklTVElDIDEKKyNp
ZiAhZGVmaW5lZChFTkFCTEVfR0VPTE9DQVRJT04pCisjZGVmaW5lIEVOQUJMRV9HRU9MT0NBVElP
TiAxCiAjZW5kaWYKIAotI2lmICFkZWZpbmVkKEVOQUJMRV9ET1dOTE9BRF9BVFRSSUJVVEUpCi0j
ZGVmaW5lIEVOQUJMRV9ET1dOTE9BRF9BVFRSSUJVVEUgMQotI2VuZGlmCiAKLSNpZiAhZGVmaW5l
ZChFTkFCTEVfV0tQREZWSUVXKSAmJiBQTEFURk9STShJT1MpCi0jZGVmaW5lIEVOQUJMRV9XS1BE
RlZJRVcgMQotI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChFTkFCTEVfTUVESUFfU09VUkNFKQotI2Rl
ZmluZSBFTkFCTEVfTUVESUFfU09VUkNFIDAKLSNlbmRpZgogCi0jaWYgIWRlZmluZWQoRU5BQkxF
X1BSRVZJRVdfQ09OVkVSVEVSKSAmJiBQTEFURk9STShJT1MpCi0jZGVmaW5lIEVOQUJMRV9QUkVW
SUVXX0NPTlZFUlRFUiAxCi0jZW5kaWYKIAotI2lmICFkZWZpbmVkKEVOQUJMRV9NRVRBX1ZJRVdQ
T1JUKQotI2RlZmluZSBFTkFCTEVfTUVUQV9WSUVXUE9SVCAxCi0jZW5kaWYKIAotI2VuZGlmIC8q
IFBMQVRGT1JNKElPU19GQU1JTFkpICovCiAKLS8qIC0tLS0tLS0tLSBBcHBsZSB3YXRjaE9TIHBv
cnQgLS0tLS0tLS0tICovCi0jaWYgUExBVEZPUk0oV0FUQ0hPUykKIAotI2VuZGlmIC8qIFBMQVRG
T1JNKFdBVENIT1MpICovCiAKLS8qIC0tLS0tLS0tLSBBcHBsZSBtYWNPUyBwb3J0IChub3QgaU9T
KSAtLS0tLS0tLS0gKi8KLSNpZiBQTEFURk9STShNQUMpCisvKiBFTkFCTEUgbWFjcm8gZGVmYXVs
dHMgKi8KKy8qIERvIG5vdCB1c2UgUExBVEZPUk0oKSB0ZXN0cyBpbiB0aGlzIHNlY3Rpb24gISAq
LwogCi0jaWYgIWRlZmluZWQoRU5BQkxFX0NPTlRFTlRfRVhURU5TSU9OUykKLSNkZWZpbmUgRU5B
QkxFX0NPTlRFTlRfRVhURU5TSU9OUyAxCisjaWYgIWRlZmluZWQoRU5BQkxFX1dFQlBST0NFU1Nf
TlNSVU5MT09QKQorI2RlZmluZSBFTkFCTEVfV0VCUFJPQ0VTU19OU1JVTkxPT1AgMAogI2VuZGlm
CiAKLSNpZiAhZGVmaW5lZChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpCi0jZGVmaW5lIEVOQUJMRV9G
VUxMU0NSRUVOX0FQSSAxCisjaWYgIWRlZmluZWQoRU5BQkxFX1dFQlBST0NFU1NfV0lORE9XU0VS
VkVSX0JMT0NLSU5HKQorI2RlZmluZSBFTkFCTEVfV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxP
Q0tJTkcgMAogI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUikK
LSNkZWZpbmUgRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IgMQorI2lmICFkZWZpbmVkKEVOQUJMRV9N
QUNfR0VTVFVSRV9FVkVOVFMpCisjZGVmaW5lIEVOQUJMRV9NQUNfR0VTVFVSRV9FVkVOVFMgMAog
I2VuZGlmCiAKLSNpZiAhZGVmaW5lZChFTkFCTEVfSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRD
SEVSUykKLSNkZWZpbmUgRU5BQkxFX0lOU1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hFUlMgMQor
I2lmICFkZWZpbmVkKEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSkKKyNkZWZpbmUgRU5BQkxFX0NV
UlNPUl9WSVNJQklMSVRZIDAKICNlbmRpZgogCi0jaWYgIWRlZmluZWQoRU5BQkxFX0lOU1BFQ1RP
Ul9URUxFTUVUUlkpCi0jZGVmaW5lIEVOQUJMRV9JTlNQRUNUT1JfVEVMRU1FVFJZIDEKKyNpZiAh
ZGVmaW5lZChFTkFCTEVfQUlSUExBWV9QSUNLRVIpCisjZGVmaW5lIEVOQUJMRV9BSVJQTEFZX1BJ
Q0tFUiAwCiAjZW5kaWYKIAotI2lmICFkZWZpbmVkKEVOQUJMRV9TTU9PVEhfU0NST0xMSU5HKQot
I2RlZmluZSBFTkFCTEVfU01PT1RIX1NDUk9MTElORyAxCisjaWYgIWRlZmluZWQoRU5BQkxFX0FQ
UExFX1BBWV9SRU1PVEVfVUkpCisjZGVmaW5lIEVOQUJMRV9BUFBMRV9QQVlfUkVNT1RFX1VJIDAK
ICNlbmRpZgogCi0jaWYgRU5BQkxFKFZJREVPKQotI2lmICFkZWZpbmVkKEVOQUJMRV9WSURFT19U
UkFDSykKLSNkZWZpbmUgRU5BQkxFX1ZJREVPX1RSQUNLIDEKLSNlbmRpZgorI2lmICFkZWZpbmVk
KEVOQUJMRV9BVVRPQ09SUkVDVCkKKyNkZWZpbmUgRU5BQkxFX0FVVE9DT1JSRUNUIDAKICNlbmRp
ZgogCi0jaWYgIWRlZmluZWQoRU5BQkxFX1dFQl9BUkNISVZFKQotI2RlZmluZSBFTkFCTEVfV0VC
X0FSQ0hJVkUgMQorI2lmICFkZWZpbmVkKEVOQUJMRV9BVVRPQ0FQSVRBTElaRSkKKyNkZWZpbmUg
RU5BQkxFX0FVVE9DQVBJVEFMSVpFIDAKICNlbmRpZgogCi0jaWYgIWRlZmluZWQoRU5BQkxFX1dF
Ql9BVURJTykKLSNkZWZpbmUgRU5BQkxFX1dFQl9BVURJTyAxCisjaWYgIWRlZmluZWQoRU5BQkxF
X1RFWFRfQVVUT1NJWklORykKKyNkZWZpbmUgRU5BQkxFX1RFWFRfQVVUT1NJWklORyAwCiAjZW5k
aWYKIAotI2lmICFkZWZpbmVkKEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSkKLSNkZWZpbmUgRU5B
QkxFX0NVUlNPUl9WSVNJQklMSVRZIDEKKyNpZiAhZGVmaW5lZChFTkFCTEVfSU9TX0dFU1RVUkVf
RVZFTlRTKQorI2RlZmluZSBFTkFCTEVfSU9TX0dFU1RVUkVfRVZFTlRTIDAKICNlbmRpZgogCi0j
aWYgIWRlZmluZWQoRU5BQkxFX1BSSU1BUllfU05BUFNIT1RURURfUExVR0lOX0hFVVJJU1RJQykK
LSNkZWZpbmUgRU5BQkxFX1BSSU1BUllfU05BUFNIT1RURURfUExVR0lOX0hFVVJJU1RJQyAxCisj
aWYgIWRlZmluZWQoRU5BQkxFX0lPU19UT1VDSF9FVkVOVFMpCisjZGVmaW5lIEVOQUJMRV9JT1Nf
VE9VQ0hfRVZFTlRTIDAKICNlbmRpZgogCi0jaWYgIWRlZmluZWQoRU5BQkxFX01BQ19HRVNUVVJF
X0VWRU5UUykgJiYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKLSNkZWZpbmUgRU5BQkxFX01BQ19H
RVNUVVJFX0VWRU5UUyAxCisjaWYgIWRlZmluZWQoRU5BQkxFX1BSSU1BUllfU05BUFNIT1RURURf
UExVR0lOX0hFVVJJU1RJQykKKyNkZWZpbmUgRU5BQkxFX1BSSU1BUllfU05BUFNIT1RURURfUExV
R0lOX0hFVVJJU1RJQyAwCiAjZW5kaWYKIAotI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJQUk9DRVNT
X05TUlVOTE9PUCkKLSNkZWZpbmUgRU5BQkxFX1dFQlBST0NFU1NfTlNSVU5MT09QIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNDAwCisjaWYgIWRlZmluZWQoRU5BQkxFX1dL
UERGVklFVykKKyNkZWZpbmUgRU5BQkxFX1dLUERGVklFVyAwCiAjZW5kaWYKIAotI2lmICFkZWZp
bmVkKEVOQUJMRV9XRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykKLSNkZWZpbmUgRU5B
QkxFX1dFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HIEVOQUJMRV9XRUJQUk9DRVNTX05T
UlVOTE9PUAorI2lmICFkZWZpbmVkKEVOQUJMRV9QUkVWSUVXX0NPTlZFUlRFUikKKyNkZWZpbmUg
RU5BQkxFX1BSRVZJRVdfQ09OVkVSVEVSIDAKICNlbmRpZgogCi0jaWYgIWRlZmluZWQoRU5BQkxF
X01FRElBX1NPVVJDRSkKLSNkZWZpbmUgRU5BQkxFX01FRElBX1NPVVJDRSAxCisjaWYgIWRlZmlu
ZWQoRU5BQkxFX01FVEFfVklFV1BPUlQpCisjZGVmaW5lIEVOQUJMRV9NRVRBX1ZJRVdQT1JUIDAK
ICNlbmRpZgogCi0jZW5kaWYgLyogUExBVEZPUk0oTUFDKSAqLwotCi0vKiAtLS0tLS0tLS0gQXBw
bGUgQ29jb2EgcGxhdGZvcm1zIC0tLS0tLS0tLSAqLwotCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0K
LSNpZiAhZGVmaW5lZChFTkFCTEVfTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkKLSNpZiBQTEFURk9S
TShNQUNDQVRBTFlTVCkKLSNkZWZpbmUgRU5BQkxFX0xFR0FDWV9FTkNSWVBURURfTUVESUEgMAot
I2Vsc2UKLSNkZWZpbmUgRU5BQkxFX0xFR0FDWV9FTkNSWVBURURfTUVESUEgMQotI2VuZGlmCi0j
ZW5kaWYKIAogI2lmICFkZWZpbmVkKEVOQUJMRV9GSUxFX1JFUExBQ0VNRU5UKQotI2RlZmluZSBF
TkFCTEVfRklMRV9SRVBMQUNFTUVOVCAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9Q
QVlNRU5UX1JFUVVFU1QpCi0jZGVmaW5lIEVOQUJMRV9QQVlNRU5UX1JFUVVFU1QgMQotI2VuZGlm
Ci0KLSNpZiAhZGVmaW5lZChFTkFCTEVfQVNZTkNfU0NST0xMSU5HKQotI2RlZmluZSBFTkFCTEVf
QVNZTkNfU0NST0xMSU5HIDEKKyNkZWZpbmUgRU5BQkxFX0ZJTEVfUkVQTEFDRU1FTlQgMAogI2Vu
ZGlmCiAKICNpZiAhZGVmaW5lZChFTkFCTEVfVUlfU0lERV9DT01QT1NJVElORykKLSNkZWZpbmUg
RU5BQkxFX1VJX1NJREVfQ09NUE9TSVRJTkcgMQorI2RlZmluZSBFTkFCTEVfVUlfU0lERV9DT01Q
T1NJVElORyAwCiAjZW5kaWYKIAotI2VuZGlmIC8qIFBMQVRGT1JNKENPQ09BKSAqLwotCi0jaWYg
IVBMQVRGT1JNKENPQ09BKQotCi0jaWYgIWRlZmluZWQoSlNDX09CSkNfQVBJX0VOQUJMRUQpCi0j
ZGVmaW5lIEpTQ19PQkpDX0FQSV9FTkFCTEVEIDAKLSNlbmRpZgotCi0jZW5kaWYgLyogIVBMQVRG
T1JNKENPQ09BKSAqLwotCi0KLS8qIC0tLS0tLS0tLSBBcHBsZSBXaW5kb3dzIHBvcnQgLS0tLS0t
LS0tICovCi0jaWYgUExBVEZPUk0oV0lOKSAmJiAhUExBVEZPUk0oV0lOX0NBSVJPKQotCi0jaWYg
IWRlZmluZWQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKQotI2RlZmluZSBFTkFCTEVfRlVMTFNDUkVF
Tl9BUEkgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfV0VCX0FSQ0hJVkUpCi0jZGVm
aW5lIEVOQUJMRV9XRUJfQVJDSElWRSAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9X
RUJHTCkKLSNkZWZpbmUgRU5BQkxFX1dFQkdMIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5B
QkxFX0dFT0xPQ0FUSU9OKQotI2RlZmluZSBFTkFCTEVfR0VPTE9DQVRJT04gMQotI2VuZGlmCi0K
LSNlbmRpZiAvKiBQTEFURk9STShXSU4pICYmICFQTEFURk9STShXSU5fQ0FJUk8pICovCi0KLS8q
IC0tLS0tLS0tLSBXaW5kb3dzIENBSVJPIHBvcnQgLS0tLS0tLS0tICovCi0vKiBQTEFURk9STShX
SU5fQ0FJUk8pIGlzIGEgc3BlY2lhbGl6YXRpb24gb2YgUExBVEZPUk0oV0lOKS4gKi8KLS8qIFBM
QVRGT1JNKFdJTikgaXMgYWx3YXlzIGVuYWJsZWQgd2hlbiBQTEFURk9STShXSU5fQ0FJUk8pIGlz
IGVuYWJsZWQuICovCi0jaWYgUExBVEZPUk0oV0lOX0NBSVJPKQotCi0jaWYgIWRlZmluZWQoRU5B
QkxFX1dFQl9BUkNISVZFKQotI2RlZmluZSBFTkFCTEVfV0VCX0FSQ0hJVkUgMQotI2VuZGlmCi0K
LSNpZiAhZGVmaW5lZChFTkFCTEVfV0VCR0wpCi0jZGVmaW5lIEVOQUJMRV9XRUJHTCAxCi0jZW5k
aWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9HRU9MT0NBVElPTikKLSNkZWZpbmUgRU5BQkxFX0dF
T0xPQ0FUSU9OIDEKLSNlbmRpZgotCi0jZW5kaWYgLyogUExBVEZPUk0oV0lOX0NBSVJPKSAqLwot
Ci0vKiBFTkFCTEUgbWFjcm8gZGVmYXVsdHMgZm9yIFdlYkNvcmUgKi8KLS8qIERvIG5vdCB1c2Ug
UExBVEZPUk0oKSB0ZXN0cyBpbiB0aGlzIHNlY3Rpb24gISAqLwotCiAjaWYgIWRlZmluZWQoRU5B
QkxFXzNEX1RSQU5TRk9STVMpCiAjZGVmaW5lIEVOQUJMRV8zRF9UUkFOU0ZPUk1TIDAKICNlbmRp
ZgpAQCAtNzIwLDMxMiArNDgzLDEzIEBAIHRoZSBwdWJsaWMgaU9TIFNESy4gU2VlIDxodHRwczov
L3dlYmtpdC4KICNlbmRpZgogCiAKLS8qIEpJVCBGZWF0dXJlcyAqLwotCi0vKiBUaGUgSklUIGlz
IGVuYWJsZWQgYnkgZGVmYXVsdCBvbiBhbGwgeDg2LTY0ICYgQVJNNjQgcGxhdGZvcm1zLiAqLwot
I2lmICFkZWZpbmVkKEVOQUJMRV9KSVQpICYmIChDUFUoWDg2XzY0KSB8fCBDUFUoQVJNNjQpKSAm
JiAhQ1BVKEFQUExFX0FSTVY3SykKLSNkZWZpbmUgRU5BQkxFX0pJVCAxCi0jZW5kaWYKLQotI2lm
IFVTRShKU1ZBTFVFMzJfNjQpCi0jaWYgKENQVShBUk1fVEhVTUIyKSB8fCBDUFUoTUlQUykpICYm
IE9TKExJTlVYKQotLyogT24gQVJNdjcgYW5kIE1JUFMgb24gTGludXggdGhlIEpJVCBpcyBlbmFi
bGVkIHVubGVzcyBleHBsaWNpdGx5IGRpc2FibGVkLiAqLwotI2lmICFkZWZpbmVkKEVOQUJMRV9K
SVQpCi0jZGVmaW5lIEVOQUJMRV9KSVQgMQotI2VuZGlmCi0jZWxzZQotLyogRGlzYWJsZSBKSVQg
YW5kIGZvcmNlIENfTE9PUCBvbiBhbGwgb3RoZXIgMzJiaXQgYXJjaGl0ZWN0dXJlcy4gKi8KLSN1
bmRlZiBFTkFCTEVfSklUCi0jZGVmaW5lIEVOQUJMRV9KSVQgMAotI3VuZGVmIEVOQUJMRV9DX0xP
T1AKLSNkZWZpbmUgRU5BQkxFX0NfTE9PUCAxCi0jZW5kaWYKLSNlbmRpZgotCi0jaWYgIWRlZmlu
ZWQoRU5BQkxFX0NfTE9PUCkKLSNpZiBFTkFCTEUoSklUKSB8fCBDUFUoWDg2XzY0KSB8fCAoQ1BV
KEFSTTY0KSAmJiAhZGVmaW5lZChfX0lMUDMyX18pKQotI2RlZmluZSBFTkFCTEVfQ19MT09QIDAK
LSNlbHNlCi0jZGVmaW5lIEVOQUJMRV9DX0xPT1AgMQotI2VuZGlmCi0jZW5kaWYKLQotLyogRklY
TUU6IFRoaXMgc2hvdWxkIGJlIHR1cm5lZCBpbnRvIGFuICNlcnJvciBpbnZhcmlhbnQgKi8KLS8q
IFRoZSBGVEwgKmRvZXMgbm90KiB3b3JrIG9uIDMyLWJpdCBwbGF0Zm9ybXMuIERpc2FibGUgaXQg
ZXZlbiBpZiBzb21lb25lIGFza2VkIHVzIHRvIGVuYWJsZSBpdC4gKi8KLSNpZiBVU0UoSlNWQUxV
RTMyXzY0KQotI3VuZGVmIEVOQUJMRV9GVExfSklUCi0jZGVmaW5lIEVOQUJMRV9GVExfSklUIDAK
LSNlbmRpZgotCi0vKiBGSVhNRTogVGhpcyBzaG91bGQgYmUgdHVybmVkIGludG8gYW4gI2Vycm9y
IGludmFyaWFudCAqLwotLyogVGhlIEZUTCBpcyBkaXNhYmxlZCBvbiB0aGUgaU9TIHNpbXVsYXRv
ciwgbW9zdGx5IGZvciBzaW1wbGljaXR5LiAqLwotI2lmIFBMQVRGT1JNKElPU19GQU1JTFlfU0lN
VUxBVE9SKQotI3VuZGVmIEVOQUJMRV9GVExfSklUCi0jZGVmaW5lIEVOQUJMRV9GVExfSklUIDAK
LSNlbmRpZgogCi0vKiBJZiBwb3NzaWJsZSwgdHJ5IHRvIGVuYWJsZSBhIGRpc2Fzc2VtYmxlci4g
VGhpcyBpcyBvcHRpb25hbC4gV2UgcHJvY2VlZCBpbiB0d28KLSAgIHN0ZXBzOiBmaXJzdCB3ZSB0
cnkgdG8gZmluZCBzb21lIGRpc2Fzc2VtYmxlciB0aGF0IHdlIGNhbiB1c2UsIGFuZCB0aGVuIHdl
Ci0gICBkZWNpZGUgaWYgdGhlIGhpZ2gtbGV2ZWwgZGlzYXNzZW1ibGVyIEFQSSBjYW4gYmUgZW5h
YmxlZC4gKi8KLSNpZiAhZGVmaW5lZChFTkFCTEVfVURJUzg2KSAmJiBFTkFCTEUoSklUKSAmJiBD
UFUoWDg2XzY0KSAmJiAhVVNFKENBUFNUT05FKQotI2RlZmluZSBFTkFCTEVfVURJUzg2IDEKLSNl
bmRpZgogCi0jaWYgIWRlZmluZWQoRU5BQkxFX0FSTTY0X0RJU0FTU0VNQkxFUikgJiYgRU5BQkxF
KEpJVCkgJiYgQ1BVKEFSTTY0KSAmJiAhVVNFKENBUFNUT05FKQotI2RlZmluZSBFTkFCTEVfQVJN
NjRfRElTQVNTRU1CTEVSIDEKLSNlbmRpZgogCi0jaWYgIWRlZmluZWQoRU5BQkxFX0RJU0FTU0VN
QkxFUikgJiYgKEVOQUJMRShVRElTODYpIHx8IEVOQUJMRShBUk02NF9ESVNBU1NFTUJMRVIpIHx8
IChFTkFCTEUoSklUKSAmJiBVU0UoQ0FQU1RPTkUpKSkKLSNkZWZpbmUgRU5BQkxFX0RJU0FTU0VN
QkxFUiAxCi0jZW5kaWYKIAotI2lmICFkZWZpbmVkKEVOQUJMRV9ERkdfSklUKSAmJiBFTkFCTEUo
SklUKQogCi0vKiBFbmFibGUgdGhlIERGRyBKSVQgb24gWDg2IGFuZCBYODZfNjQuICovCi0jaWYg
Q1BVKFg4Nl82NCkgJiYgKE9TKERBUldJTikgfHwgT1MoTElOVVgpIHx8IE9TKEZSRUVCU0QpIHx8
IE9TKEhVUkQpIHx8IE9TKFdJTkRPV1MpKQotI2RlZmluZSBFTkFCTEVfREZHX0pJVCAxCi0jZW5k
aWYKIAotLyogRW5hYmxlIHRoZSBERkcgSklUIG9uIEFSTXY3LiAgT25seSB0ZXN0ZWQgb24gaU9T
LCBMaW51eCwgYW5kIEZyZWVCU0QuICovCi0jaWYgKENQVShBUk1fVEhVTUIyKSB8fCBDUFUoQVJN
NjQpKSAmJiAoT1MoREFSV0lOKSB8fCBPUyhMSU5VWCkgfHwgT1MoRlJFRUJTRCkpCi0jZGVmaW5l
IEVOQUJMRV9ERkdfSklUIDEKLSNlbmRpZgogCi0vKiBFbmFibGUgdGhlIERGRyBKSVQgb24gTUlQ
Uy4gKi8KLSNpZiBDUFUoTUlQUykKLSNkZWZpbmUgRU5BQkxFX0RGR19KSVQgMQotI2VuZGlmCi0K
LSNlbmRpZiAvKiAhZGVmaW5lZChFTkFCTEVfREZHX0pJVCkgJiYgRU5BQkxFKEpJVCkgKi8KLQot
LyogQ29uY3VycmVudCBKUyBvbmx5IHdvcmtzIG9uIDY0LWJpdCBwbGF0Zm9ybXMgYmVjYXVzZSBp
dCByZXF1aXJlcyB0aGF0Ci0gICB2YWx1ZXMgZ2V0IHN0b3JlZCB0byBhdG9taWNhbGx5LiBUaGlz
IGlzIHRyaXZpYWxseSB0cnVlIG9uIDY0LWJpdCBwbGF0Zm9ybXMsCi0gICBidXQgbm90IHRydWUg
YXQgYWxsIG9uIDMyLWJpdCBwbGF0Zm9ybXMgd2hlcmUgdmFsdWVzIGFyZSBjb21wb3NlZCBvZiB0
d28KLSAgIHNlcGFyYXRlIHN1Yi12YWx1ZXMuICovCi0jaWYgRU5BQkxFKEpJVCkgJiYgVVNFKEpT
VkFMVUU2NCkKLSNkZWZpbmUgRU5BQkxFX0NPTkNVUlJFTlRfSlMgMQotI2VuZGlmCi0KLSNpZiAo
Q1BVKFg4Nl82NCkgfHwgQ1BVKEFSTTY0KSkgJiYgSEFWRShGQVNUX1RMUykKLSNkZWZpbmUgRU5B
QkxFX0ZBU1RfVExTX0pJVCAxCi0jZW5kaWYKLQotI2lmIEVOQUJMRShKSVQpICYmIChDUFUoWDg2
KSB8fCBDUFUoWDg2XzY0KSB8fCBDUFUoQVJNX1RIVU1CMikgfHwgQ1BVKEFSTTY0KSB8fCBDUFUo
TUlQUykpCi0jZGVmaW5lIEVOQUJMRV9NQVNNX1BST0JFIDEKLSNlbmRpZgotCi0vKiBGSVhNRTog
VGhpcyBzaG91bGQgYmUgdHVybmVkIGludG8gYW4gI2Vycm9yIGludmFyaWFudCAqLwotLyogSWYg
dGhlIGJhc2VsaW5lIGppdCBpcyBub3QgYXZhaWxhYmxlLCB0aGVuIGRpc2FibGUgdXBwZXIgdGll
cnMgYXMgd2VsbC4KLSAgIFRoZSBNYWNyb0Fzc2VtYmxlcjo6cHJvYmUoKSBpcyBhbHNvIHJlcXVp
cmVkIGZvciBzdXBwb3J0aW5nIHRoZSB1cHBlciB0aWVycy4gKi8KLSNpZiAhRU5BQkxFKEpJVCkg
fHwgIUVOQUJMRShNQVNNX1BST0JFKQotI3VuZGVmIEVOQUJMRV9ERkdfSklUCi0jdW5kZWYgRU5B
QkxFX0ZUTF9KSVQKLSNkZWZpbmUgRU5BQkxFX0RGR19KSVQgMAotI2RlZmluZSBFTkFCTEVfRlRM
X0pJVCAwCi0jZW5kaWYKLQotLyogRklYTUU6IFRoaXMgc2hvdWxkIGJlIHR1cm5lZCBpbnRvIGFu
ICNlcnJvciBpbnZhcmlhbnQgKi8KLS8qIElmIHRoZSBERkcgaml0IGlzIG5vdCBhdmFpbGFibGUs
IHRoZW4gZGlzYWJsZSB1cHBlciB0aWVycyBhcyB3ZWxsOiAqLwotI2lmICFFTkFCTEUoREZHX0pJ
VCkKLSN1bmRlZiBFTkFCTEVfRlRMX0pJVAotI2RlZmluZSBFTkFCTEVfRlRMX0pJVCAwCi0jZW5k
aWYKLQotLyogVGhpcyBjb250cm9scyB3aGV0aGVyIEIzIGlzIGJ1aWx0LiBCMyBpcyBuZWVkZWQg
Zm9yIEZUTCBKSVQgYW5kIFdlYkFzc2VtYmx5ICovCi0jaWYgRU5BQkxFKEZUTF9KSVQpCi0jZGVm
aW5lIEVOQUJMRV9CM19KSVQgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfV0VCQVNT
RU1CTFkpICYmIChFTkFCTEUoQjNfSklUKSAmJiBQTEFURk9STShDT0NPQSkgJiYgQ1BVKEFERFJF
U1M2NCkpCi0jZGVmaW5lIEVOQUJMRV9XRUJBU1NFTUJMWSAxCi0jZW5kaWYKLQotLyogVGhlIFNh
bXBsaW5nUHJvZmlsZXIgaXMgdGhlIHByb2JhYmlsaXN0aWMgYW5kIGxvdy1vdmVyaGVhZCBwcm9m
aWxlciB1c2VkIGJ5Ci0gKiBKU0MgdG8gbWVhc3VyZSB3aGVyZSB0aW1lIGlzIHNwZW50IGluc2lk
ZSBhIEphdmFTY3JpcHQgcHJvZ3JhbS4KLSAqIEluIGNvbmZpZ3VyYXRpb25zIG90aGVyIHRoYW4g
V2luZG93cyBhbmQgRGFyd2luLCBiZWNhdXNlIGxheW91dCBvZiBtY29udGV4dF90IGRlcGVuZHMg
b24gc3RhbmRhcmQgbGlicmFyaWVzIChsaWtlIGdsaWJjKSwKLSAqIHNhbXBsaW5nIHByb2ZpbGVy
IGlzIGVuYWJsZWQgaWYgV2ViS2l0IHVzZXMgcHRocmVhZHMgYW5kIGdsaWJjLiAqLwotI2lmICFk
ZWZpbmVkKEVOQUJMRV9TQU1QTElOR19QUk9GSUxFUikgJiYgKCFFTkFCTEUoQ19MT09QKSAmJiAo
T1MoV0lORE9XUykgfHwgSEFWRShNQUNISU5FX0NPTlRFWFQpKSkKLSNkZWZpbmUgRU5BQkxFX1NB
TVBMSU5HX1BST0ZJTEVSIDEKLSNlbmRpZgotCi0jaWYgRU5BQkxFKFdFQkFTU0VNQkxZKSAmJiBI
QVZFKE1BQ0hJTkVfQ09OVEVYVCkKLSNkZWZpbmUgRU5BQkxFX1dFQkFTU0VNQkxZX0ZBU1RfTUVN
T1JZIDEKLSNlbmRpZgotCi0vKiBDb3VudHMgdXNlcyBvZiB3cml0ZSBiYXJyaWVycyB1c2luZyBz
YW1wbGluZyBjb3VudGVycy4gQmUgc3VyZSB0byBhbHNvCi0gICBzZXQgRU5BQkxFX1NBTVBMSU5H
X0NPVU5URVJTIHRvIDEuICovCi0jaWYgIWRlZmluZWQoRU5BQkxFX1dSSVRFX0JBUlJJRVJfUFJP
RklMSU5HKQotI2RlZmluZSBFTkFCTEVfV1JJVEVfQkFSUklFUl9QUk9GSUxJTkcgMAotI2VuZGlm
Ci0KLS8qIExvZ3MgYWxsIGFsbG9jYXRpb24tcmVsYXRlZCBhY3Rpdml0eSB0aGF0IGdvZXMgdGhy
b3VnaCBmYXN0TWFsbG9jIG9yIHRoZQotICAgSlNDIEdDIChib3RoIGNlbGxzIGFuZCBidXR0ZXJm
bGllcykuIEFsc28gbG9ncyBtYXJraW5nLiBOb3RlIHRoYXQgdGhpcwotICAgaXNuJ3QgYSBjb21w
bGV0ZWx5IGFjY3VyYXRlIHZpZXcgb2YgdGhlIGhlYXAgc2luY2UgaXQgZG9lc24ndCBpbmNsdWRl
IGFsbAotICAgYnV0dGVyZmx5IHJlc2l6ZSBvcGVyYXRpb25zLCBkb2Vzbid0IHRlbGwgeW91IHdo
YXQgaXMgZ29pbmcgb24gd2l0aCB3ZWFrCi0gICByZWZlcmVuY2VzIChvdGhlciB0aGFuIHRvIHRl
bGwgeW91IHdoZW4gdGhleSdyZSBtYXJrZWQpLCBhbmQgZG9lc24ndAotICAgdHJhY2sgZGlyZWN0
IG1tYXAoKSBhbGxvY2F0aW9ucyBvciB0aGluZ3MgbGlrZSBKSVQgYWxsb2NhdGlvbi4gKi8KLSNp
ZiAhZGVmaW5lZChFTkFCTEVfQUxMT0NBVElPTl9MT0dHSU5HKQotI2RlZmluZSBFTkFCTEVfQUxM
T0NBVElPTl9MT0dHSU5HIDAKLSNlbmRpZgotCi0vKiBFbmFibGUgdmVyaWZpY2F0aW9uIHRoYXQg
dGhhdCByZWdpc3RlciBhbGxvY2F0aW9ucyBhcmUgbm90IG1hZGUgd2l0aGluIGdlbmVyYXRlZCBj
b250cm9sIGZsb3cuCi0gICBUdXJuZWQgb24gZm9yIGRlYnVnIGJ1aWxkcy4gKi8KLSNpZiAhZGVm
aW5lZChFTkFCTEVfREZHX1JFR0lTVEVSX0FMTE9DQVRJT05fVkFMSURBVElPTikgJiYgRU5BQkxF
KERGR19KSVQpICYmICFkZWZpbmVkKE5ERUJVRykKLSNkZWZpbmUgRU5BQkxFX0RGR19SRUdJU1RF
Ul9BTExPQ0FUSU9OX1ZBTElEQVRJT04gMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVf
U0VQQVJBVEVEX1dYX0hFQVApICYmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIENQVShBUk02NCkg
JiYgKCFFTkFCTEUoRkFTVF9KSVRfUEVSTUlTU0lPTlMpIHx8ICFDUFUoQVJNNjRFKSkKLSNkZWZp
bmUgRU5BQkxFX1NFUEFSQVRFRF9XWF9IRUFQIDEKLSNlbmRpZgotCi0vKiBEZXRlcm1pbmUgaWYg
d2UgbmVlZCB0byBlbmFibGUgQ29tcHV0ZWQgR290byBPcGNvZGVzIG9yIG5vdDogKi8KLSNpZiBI
QVZFKENPTVBVVEVEX0dPVE8pIHx8ICFFTkFCTEUoQ19MT09QKQotI2RlZmluZSBFTkFCTEVfQ09N
UFVURURfR09UT19PUENPREVTIDEKLSNlbmRpZgotCi0vKiBSZWd1bGFyIEV4cHJlc3Npb24gVHJh
Y2luZyAtIFNldCB0byAxIHRvIHRyYWNlIFJlZ0V4cCdzIGluIGpzYy4gIFJlc3VsdHMgZHVtcGVk
IGF0IGV4aXQgKi8KLSNpZiAhZGVmaW5lZChFTkFCTEVfUkVHRVhQX1RSQUNJTkcpCi0jZGVmaW5l
IEVOQUJMRV9SRUdFWFBfVFJBQ0lORyAwCi0jZW5kaWYKLQotLyogWWV0IEFub3RoZXIgUmVnZXgg
UnVudGltZSAtIHR1cm5lZCBvbiBieSBkZWZhdWx0IGZvciBKSVQgZW5hYmxlZCBwb3J0cy4gKi8K
LSNpZiAhZGVmaW5lZChFTkFCTEVfWUFSUl9KSVQpICYmIEVOQUJMRShKSVQpCi0jZGVmaW5lIEVO
QUJMRV9ZQVJSX0pJVCAxCi0jZW5kaWYKLQotLyogU2V0dGluZyB0aGlzIGZsYWcgY29tcGFyZXMg
SklUIHJlc3VsdHMgd2l0aCBpbnRlcnByZXRlciByZXN1bHRzLiAqLwotI2lmICFkZWZpbmVkKEVO
QUJMRV9ZQVJSX0pJVCkgJiYgRU5BQkxFKEpJVCkKLSNkZWZpbmUgRU5BQkxFX1lBUlJfSklUX0RF
QlVHIDAKLSNlbmRpZgotCi0vKiBFbmFibGUgSklUJ2luZyBSZWd1bGFyIEV4cHJlc3Npb25zIHRo
YXQgaGF2ZSBuZXN0ZWQgcGFyZW50aGVzaXMgLiAqLwotI2lmIEVOQUJMRShZQVJSX0pJVCkgJiYg
KENQVShBUk02NCkgfHwgKENQVShYODZfNjQpICYmICFPUyhXSU5ET1dTKSkpCi0jZGVmaW5lIEVO
QUJMRV9ZQVJSX0pJVF9BTExfUEFSRU5TX0VYUFJFU1NJT05TIDEKLSNlbmRpZgotCi0vKiBFbmFi
bGUgSklUJ2luZyBSZWd1bGFyIEV4cHJlc3Npb25zIHRoYXQgaGF2ZSBuZXN0ZWQgYmFjayByZWZl
cmVuY2VzLiAqLwotI2lmIEVOQUJMRShZQVJSX0pJVCkgJiYgKENQVShBUk02NCkgfHwgKENQVShY
ODZfNjQpICYmICFPUyhXSU5ET1dTKSkpCi0jZGVmaW5lIEVOQUJMRV9ZQVJSX0pJVF9CQUNLUkVG
RVJFTkNFUyAxCi0jZW5kaWYKLQotLyogSWYgZWl0aGVyIHRoZSBKSVQgb3IgdGhlIFJlZ0V4cCBK
SVQgaXMgZW5hYmxlZCwgdGhlbiB0aGUgQXNzZW1ibGVyIG11c3QgYmUKLSAgIGVuYWJsZWQgYXMg
d2VsbDogKi8KLSNpZiBFTkFCTEUoSklUKSB8fCBFTkFCTEUoWUFSUl9KSVQpIHx8ICFFTkFCTEUo
Q19MT09QKQotI2lmIGRlZmluZWQoRU5BQkxFX0FTU0VNQkxFUikgJiYgIUVOQUJMRV9BU1NFTUJM
RVIKLSNlcnJvciAiQ2Fubm90IGVuYWJsZSB0aGUgSklUIG9yIFJlZ0V4cCBKSVQgd2l0aG91dCBl
bmFibGluZyB0aGUgQXNzZW1ibGVyIgotI2Vsc2UKLSN1bmRlZiBFTkFCTEVfQVNTRU1CTEVSCi0j
ZGVmaW5lIEVOQUJMRV9BU1NFTUJMRVIgMQotI2VuZGlmCi0jZW5kaWYKLQotLyogSWYgdGhlIERp
c2Fzc2VtYmxlciBpcyBlbmFibGVkLCB0aGVuIHRoZSBBc3NlbWJsZXIgbXVzdCBiZSBlbmFibGVk
IGFzIHdlbGw6ICovCi0jaWYgRU5BQkxFKERJU0FTU0VNQkxFUikKLSNpZiBkZWZpbmVkKEVOQUJM
RV9BU1NFTUJMRVIpICYmICFFTkFCTEVfQVNTRU1CTEVSCi0jZXJyb3IgIkNhbm5vdCBlbmFibGUg
dGhlIERpc2Fzc2VtYmxlciB3aXRob3V0IGVuYWJsaW5nIHRoZSBBc3NlbWJsZXIiCi0jZWxzZQot
I3VuZGVmIEVOQUJMRV9BU1NFTUJMRVIKLSNkZWZpbmUgRU5BQkxFX0FTU0VNQkxFUiAxCi0jZW5k
aWYKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0VYQ0VQVElPTl9TQ09QRV9WRVJJRklD
QVRJT04pCi0jZGVmaW5lIEVOQUJMRV9FWENFUFRJT05fU0NPUEVfVkVSSUZJQ0FUSU9OIEFTU0VS
VF9FTkFCTEVECi0jZW5kaWYKLQotI2lmIEVOQUJMRShERkdfSklUKSAmJiBIQVZFKE1BQ0hJTkVf
Q09OVEVYVCkgJiYgKENQVShYODZfNjQpIHx8IENQVShBUk02NCkpCi0jZGVmaW5lIEVOQUJMRV9T
SUdOQUxfQkFTRURfVk1fVFJBUFMgMQotI2VuZGlmCi0KLS8qIENTUyBTZWxlY3RvciBKSVQgQ29t
cGlsZXIgKi8KLSNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTX1NFTEVDVE9SX0pJVCkgJiYgKChDUFUo
WDg2XzY0KSB8fCBDUFUoQVJNNjQpIHx8IChDUFUoQVJNX1RIVU1CMikgJiYgT1MoREFSV0lOKSkp
ICYmIEVOQUJMRShKSVQpICYmIChPUyhEQVJXSU4pIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZP
Uk0oV1BFKSkpCi0jZGVmaW5lIEVOQUJMRV9DU1NfU0VMRUNUT1JfSklUIDEKLSNlbmRpZgotCi0j
aWYgUExBVEZPUk0oQ09DT0EpICYmICFQTEFURk9STShXQVRDSE9TKSAmJiAhUExBVEZPUk0oQVBQ
TEVUVikgJiYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQotI2RlZmluZSBFTkFCTEVfREFUQV9ERVRF
Q1RJT04gMQotI2VuZGlmCi0KLSNpZiBDUFUoQVJNX1RIVU1CMikgfHwgQ1BVKEFSTTY0KQotI2Rl
ZmluZSBFTkFCTEVfQlJBTkNIX0NPTVBBQ1RJT04gMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChF
TkFCTEVfVEhSRUFESU5HX0xJQkRJU1BBVENIKSAmJiBIQVZFKERJU1BBVENIX0gpCi0jZGVmaW5l
IEVOQUJMRV9USFJFQURJTkdfTElCRElTUEFUQ0ggMQotI2VsaWYgIWRlZmluZWQoRU5BQkxFX1RI
UkVBRElOR19PUEVOTVApICYmIGRlZmluZWQoX09QRU5NUCkKLSNkZWZpbmUgRU5BQkxFX1RIUkVB
RElOR19PUEVOTVAgMQotI2VsaWYgIWRlZmluZWQoVEhSRUFESU5HX0dFTkVSSUMpCi0jZGVmaW5l
IEVOQUJMRV9USFJFQURJTkdfR0VORVJJQyAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJM
RV9HQ19WQUxJREFUSU9OKSAmJiAhZGVmaW5lZChOREVCVUcpCi0jZGVmaW5lIEVOQUJMRV9HQ19W
QUxJREFUSU9OIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0JJTkRJTkdfSU5URUdS
SVRZKSAmJiAhT1MoV0lORE9XUykKLSNkZWZpbmUgRU5BQkxFX0JJTkRJTkdfSU5URUdSSVRZIDEK
LSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX1RSRUVfREVCVUdHSU5HKSAmJiAhZGVmaW5l
ZChOREVCVUcpCi0jZGVmaW5lIEVOQUJMRV9UUkVFX0RFQlVHR0lORyAxCi0jZW5kaWYKLQotI2lm
IFBMQVRGT1JNKENPQ09BKQotI2RlZmluZSBFTkFCTEVfUkVTT1VSQ0VfVVNBR0UgMQotI2VuZGlm
Ci0KLSNpZiAhZGVmaW5lZChFTkFCTEVfT1BFTlRZUEVfVkVSVElDQUwpICYmIFBMQVRGT1JNKEdU
SykgfHwgUExBVEZPUk0oV1BFKQotI2RlZmluZSBFTkFCTEVfT1BFTlRZUEVfVkVSVElDQUwgMQot
I2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfT1BFTlRZUEVfTUFUSCkgJiYgKE9TKERBUldJ
TikgJiYgVVNFKENHKSkgfHwgKFVTRShGUkVFVFlQRSkgJiYgIVBMQVRGT1JNKEdUSykpIHx8IChQ
TEFURk9STShXSU4pICYmIChVU0UoQ0cpIHx8IFVTRShDQUlSTykpKQotI2RlZmluZSBFTkFCTEVf
T1BFTlRZUEVfTUFUSCAxCi0jZW5kaWYKLQotLyoKLSAqIEVuYWJsZSB0aGlzIHRvIHB1dCBlYWNo
IElzb0hlYXAgYW5kIG90aGVyIGFsbG9jYXRpb24gY2F0ZWdvcmllcyBpbnRvIHRoZWlyIG93biBt
YWxsb2MgaGVhcHMsIHNvIHRoYXQgdG9vbHMgbGlrZSB2bW1hcCBjYW4gc2hvdyBob3cgYmlnIGVh
Y2ggaGVhcCBpcy4KLSAqIFR1cm4gQkVOQUJMRV9NQUxMT0NfSEVBUF9CUkVBS0RPV04gb24gaW4g
Ym1hbGxvYyB0b2dldGhlciB3aGVuIHVzaW5nIHRoaXMuCi0gKi8KLSNpZiAhZGVmaW5lZChFTkFC
TEVfTUFMTE9DX0hFQVBfQlJFQUtET1dOKQotI2RlZmluZSBFTkFCTEVfTUFMTE9DX0hFQVBfQlJF
QUtET1dOIDAKLSNlbmRpZgotCi0vKiBEaXNhYmxlIFNoYXJlZEFycmF5QnVmZmVycyB1bnRpbCBT
cGVjdHJlIHNlY3VyaXR5IGNvbmNlcm5zIGFyZSBtaXRpZ2F0ZWQuICovCi0jZGVmaW5lIEVOQUJM
RV9TSEFSRURfQVJSQVlfQlVGRkVSIDAKLQotI2lmIFBMQVRGT1JNKE1BQykKLSNkZWZpbmUgRU5B
QkxFX1dFQl9QTEFZQkFDS19DT05UUk9MU19NQU5BR0VSIDEKLSNlbmRpZgotCi0jaWYgUExBVEZP
Uk0oQ09DT0EpCi0vKiBGSVhNRTogVGhpcyBpcyBhIFVTRSBzdHlsZSBtYWNybywgYXMgaXQgdHJp
Z2dlcnMgdGhlIHVzZSBvZiBDRlVSTENvbm5lY3Rpb24gZnJhbWV3b3JrIHN0dWJzLiAqLwotLyog
RklYTUU6IElzIHRoaXMgc3RpbGwgbmVjZXNzYXJ5PyBDRlVSTENvbm5lY3Rpb24gaXNuJ3QgdXNl
ZCBvbiBDb2NvYSBwbGF0Zm9ybXMgYW55IG1vcmUuICovCi0jZGVmaW5lIEVOQUJMRV9TRUNfSVRF
TV9TSElNIDEKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oTUFDKQotI2RlZmluZSBFTkFCTEVfRlVM
TF9LRVlCT0FSRF9BQ0NFU1MgMQotI2VuZGlmCi0KLSNpZiAoKFBMQVRGT1JNKENPQ09BKSB8fCBQ
TEFURk9STShQTEFZU1RBVElPTikgfHwgUExBVEZPUk0oV1BFKSkgJiYgRU5BQkxFKEFTWU5DX1ND
Uk9MTElORykpIHx8IFBMQVRGT1JNKEdUSykKLSNkZWZpbmUgRU5BQkxFX0tJTkVUSUNfU0NST0xM
SU5HIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX01PTk9TUEFDRV9GT05UX0VYQ0VQ
VElPTikgJiYgKChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPCAxMDE1MDApIHx8IFBMQVRGT1JNKFdBVENIT1MpIHx8IFBMQVRGT1JNKEFQUExFVFYpKQot
I2RlZmluZSBFTkFCTEVfTU9OT1NQQUNFX0ZPTlRfRVhDRVBUSU9OIDEKLSNlbmRpZgotCi0jaWYg
IWRlZmluZWQoRU5BQkxFX1BMQVRGT1JNX0RSSVZFTl9URVhUX0NIRUNLSU5HKSAmJiBQTEFURk9S
TShNQUNDQVRBTFlTVCkKLSNkZWZpbmUgRU5BQkxFX1BMQVRGT1JNX0RSSVZFTl9URVhUX0NIRUNL
SU5HIDEKLSNlbmRpZgotCi0vKiBUaGlzIGZlYXR1cmUgd29ya3MgYnkgZW1iZWRkaW5nIHRoZSBP
cGNvZGVJRCBpbiB0aGUgMzIgYml0IGp1c3QgYmVmb3JlIHRoZSBnZW5lcmF0ZWQgTExpbnQgY29k
ZQotICAgdGhhdCBleGVjdXRlcyBlYWNoIG9wY29kZS4gSXQgY2Fubm90IGJlIHN1cHBvcnRlZCBi
eSB0aGUgQ0xvb3Agc2luY2UgdGhlcmUncyBubyB3YXkgdG8gZW1iZWQgdGhlCi0gICBPcGNvZGVJ
RCB3b3JkIGluIHRoZSBDTG9vcCdzIHN3aXRjaCBzdGF0ZW1lbnQgY2FzZXMuIEl0IGlzIGFsc28g
Y3VycmVudGx5IG5vdCBpbXBsZW1lbnRlZCBmb3IgTVNWQy4KLSovCi0jaWYgIWRlZmluZWQoRU5B
QkxFX0xMSU5UX0VNQkVEREVEX09QQ09ERV9JRCkgJiYgIUVOQUJMRShDX0xPT1ApICYmICFDT01Q
SUxFUihNU1ZDKSAmJiAoQ1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTTY0KSB8fCAo
Q1BVKEFSTV9USFVNQjIpICYmIE9TKERBUldJTikpKQotI2RlZmluZSBFTkFCTEVfTExJTlRfRU1C
RURERURfT1BDT0RFX0lEIDEKLSNlbmRpZgogCiAKIC8qIEFzc2VydHMsIGludmFyaWFudHMgZm9y
IG1hY3JvIGRlZmluaXRpb25zICovCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>389485</attachid>
            <date>2020-02-02 18:25:38 -0800</date>
            <delta_ts>2020-02-02 18:33:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207105-20200202182537.patch</filename>
            <type>text/plain</type>
            <size>197340</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNTU1NTIpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDIwLTAyLTAyICBTYW0gV2VpbmlnICA8d2Vpbmln
QGFwcGxlLmNvbT4KKworICAgICAgICBTdGFydCBzcGxpdHRpbmcgcGxhdGZvcm0gc3BlY2lmaWMg
b3ZlcnJpZGVzIG9mIGRlZmF1bHQgZW5hYmxlIGJlaGF2aW9yIGludG8gdGhlaXIgb3duIGZpbGVz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDcxMDUK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTcGxpdHMg
b3V0IHBsYXRmb3JtIHNwZWNpZmljIG92ZXJyaWRlcyBvZiBkZWZhdWx0IGVuYWJsZSBiZWhhdmlv
ciBpbnRvIHNlcGFyYXRlIGZpbGVzLCAKKyAgICAgICAgc3RhcnRpbmcgd2l0aCBvbmUgZm9yIGFs
bCBvZiB0aGUgQ29jb2EgcmVsYXRlZCBwb3J0cywgb25lIGZvciBBcHBsZSdzIFdpbmRvd3MgcG9y
dCwgYW5kCisgICAgICAgIG9uZSBmb3IgdGhlIFdpbkNhcmlvIHBvcnQuCisgICAgICAgIAorICAg
ICAgICBUaGUgcnVsZSBpcyBub3cgdGhhdCBhbGwgRU5BQkxFXyogbWFjcm9zIHNob3VsZCBoYXZl
IGEgZGVmYXVsdCBkZWZpbmVkIGluIFBsYXRmb3JtRW5hYmxlLmgsCisgICAgICAgIGJ1dCBwbGF0
Zm9ybXMgYXJlIGFsbG93ZWQgdG8gb3ZlcnJpZGUgaXQgdmlhIHRoZWlyIFBsYXRmb3JtRW5hYmxl
Ki5oIGZpbGUuIEZvciBub3csIEkgbWFudWFsbHkKKyAgICAgICAgZW5zdXJlZCB0aGF0IGFsbCB0
aGUgZGVmaW5lcyBpbiBQbGF0Zm9ybUVuYWJsZUNvY29hLmgsIFBsYXRmb3JtRW5hYmxlV2luQXBw
bGUuaCBhbmQgUGxhdGZvcm1FbmFibGVXaW5DYWlyby5oCisgICAgICAgIGFsc28gaGFkIGRlZmF1
bHRzIGluIFBsYXRmb3JtRW5hYmxlLmgsIGJ1dCBnb2luZyBmb3J3YXJkIHRoaXMgbmVlZHMgYmUg
dmFsaWRhdGVkIGVpdGhlciB0aHJvdWdoCisgICAgICAgIHNvbWUgc29ydCBvZiBtYWNyby1iYXNl
ZCB2YWxpZGF0aW9uLCB0aHJvdWdoIHRoZSBzdHlsZSBjaGVja2VyIG9yIHNvbWV0aGluZyBlbHNl
LgorCisgICAgICAgICogV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
d3RmL0NNYWtlTGlzdHMudHh0OgorICAgICAgICAqIHd0Zi9QbGF0Zm9ybUVuYWJsZS5oOgorICAg
ICAgICAqIHd0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XVEYv
d3RmL1BsYXRmb3JtRW5hYmxlLmguCisgICAgICAgICogd3RmL1BsYXRmb3JtRW5hYmxlV2luQXBw
bGUuaDogQ29waWVkIGZyb20gU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGUuaC4KKyAgICAg
ICAgKiB3dGYvUGxhdGZvcm1FbmFibGVXaW5DYWlyby5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV1RG
L3d0Zi9QbGF0Zm9ybUVuYWJsZS5oLgorCiAyMDIwLTAxLTMxICBEb24gT2xtc3RlYWQgIDxkb24u
b2xtc3RlYWRAc29ueS5jb20+CiAKICAgICAgICAgW0NNYWtlXSBBZGQgX1BSSVZBVEVfTElCUkFS
SUVTIHRvIGZyYW1ld29yawpJbmRleDogU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCShyZXZpc2lvbiAyNTU1NTIpCisrKyBTb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC00NTAsNiArNDUwLDkgQEAKIAkJN0M0MjMw
NzMyM0NFMkQ4QjAwNkU1NEQwIC8qIFBsYXRmb3JtT1MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUGxhdGZvcm1PUy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3
QzQyMzA3NDIzQ0VCMTg3MDA2RTU0RDAgLyogUGxhdGZvcm1MZWdhY3kuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1MZWdhY3kuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJN0M5NjkyOTQxRjY2MzA2RTAwMjY3QTlFIC8qIEtleVZhbHVlUGFpci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBLZXlWYWx1ZVBhaXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0M5OENEQzcyM0U3QTlCODAwMTJGMjMyIC8qIFBsYXRmb3Jt
RW5hYmxlQ29jb2EuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1F
bmFibGVDb2NvYS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3Qzk4Q0RDODIzRTdB
RkM4MDAxMkYyMzIgLyogUGxhdGZvcm1FbmFibGVXaW5BcHBsZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybUVuYWJsZVdpbkFwcGxlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTdDOThDREM5MjNFN0FGQzgwMDEyRjIzMiAvKiBQbGF0Zm9ybUVuYWJs
ZVdpbkNhaXJvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtRW5h
YmxlV2luQ2Fpcm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NCQkEwNzMxOUJC
N0ZEQzAwQkJGMDI1IC8qIE9TT2JqZWN0UHRyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IE9TT2JqZWN0UHRyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDRDBE
NUE3MUQ1NTMyMkEwMDBDQzlFMSAvKiBWYXJpYW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFZhcmlhbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NENEMy
NkYxRTJDODJCOTAwOTI5NDcwIC8qIFN0cmluZ0NvbmNhdGVuYXRlTnVtYmVycy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHJpbmdDb25jYXRlbmF0ZU51bWJlcnMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExMzAsNiArMTEzMyw5IEBACiAJCQkJN0NFRjIz
RUIyM0QxMjU3OTAwRjhCOTA0IC8qIFBsYXRmb3JtQ2FsbGluZ0NvbnZlbnRpb25zLmggKi8sCiAJ
CQkJN0M0MjMwNzIyM0NFMkQ4QTAwNkU1NEQwIC8qIFBsYXRmb3JtQ1BVLmggKi8sCiAJCQkJN0M0
MjMwNzEyM0NFMkQ4QTAwNkU1NEQwIC8qIFBsYXRmb3JtRW5hYmxlLmggKi8sCisJCQkJN0M5OENE
QzcyM0U3QTlCODAwMTJGMjMyIC8qIFBsYXRmb3JtRW5hYmxlQ29jb2EuaCAqLywKKwkJCQk3Qzk4
Q0RDODIzRTdBRkM4MDAxMkYyMzIgLyogUGxhdGZvcm1FbmFibGVXaW5BcHBsZS5oICovLAorCQkJ
CTdDOThDREM5MjNFN0FGQzgwMDEyRjIzMiAvKiBQbGF0Zm9ybUVuYWJsZVdpbkNhaXJvLmggKi8s
CiAJCQkJN0MzQTQ1RDAyM0NGQTg4MzAwN0RFM0E2IC8qIFBsYXRmb3JtSGF2ZS5oICovLAogCQkJ
CTdDNDIzMDc0MjNDRUIxODcwMDZFNTREMCAvKiBQbGF0Zm9ybUxlZ2FjeS5oICovLAogCQkJCTdD
NDIzMDczMjNDRTJEOEIwMDZFNTREMCAvKiBQbGF0Zm9ybU9TLmggKi8sCkluZGV4OiBTb3VyY2Uv
V1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9DTWFr
ZUxpc3RzLnR4dAkocmV2aXNpb24gMjU1NTUyKQorKysgU291cmNlL1dURi93dGYvQ01ha2VMaXN0
cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTE3Myw2ICsxNzMsOSBAQCBzZXQoV1RGX1BVQkxJQ19I
RUFERVJTCiAgICAgUGxhdGZvcm1DYWxsaW5nQ29udmVudGlvbnMuaAogICAgIFBsYXRmb3JtQ1BV
LmgKICAgICBQbGF0Zm9ybUVuYWJsZS5oCisgICAgUGxhdGZvcm1FbmFibGVDb2NvYS5oCisgICAg
UGxhdGZvcm1FbmFibGVXaW5BcHBsZS5oCisgICAgUGxhdGZvcm1FbmFibGVXaW5DYWlyby5oCiAg
ICAgUGxhdGZvcm1IYXZlLmgKICAgICBQbGF0Zm9ybUxlZ2FjeS5oCiAgICAgUGxhdGZvcm1PUy5o
CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlLmgJKHJldmlzaW9uIDI1NTU1MikKKysrIFNvdXJj
ZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTY5LDMwOSArNjks
MTA3IEBACiAjZW5kaWYKICNlbmRpZgogCisKIC8qID09PT0gUGxhdGZvcm0gYWRkaXRpb25zOiBh
ZGRpdGlvbnMgdG8gUGxhdGZvcm1FbmFibGUuaCBmcm9tIG91dHNpZGUgdGhlIG1haW4gcmVwb3Np
dG9yeSA9PT09ICovCiAKICNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKSAmJiBfX2hhc19pbmNs
dWRlKDxXZWJLaXRBZGRpdGlvbnMvQWRkaXRpb25hbEZlYXR1cmVEZWZpbmVzLmg+KQogI2luY2x1
ZGUgPFdlYktpdEFkZGl0aW9ucy9BZGRpdGlvbmFsRmVhdHVyZURlZmluZXMuaD4KICNlbmRpZgog
Ci0vKiBGSVhNRTogTW92ZSBvdXQgdGhlIFBMQVRGT1JNIHNwZWNpZmljIHJ1bGVzIGludG8gcGxh
dGZvcm0gc3BlY2lmaWMgZmlsZXMuICovCi0KLS8qIC0tLS0tLS0tLSBBcHBsZSBpT1MgKGJ1dCBu
b3QgbWFjT1MpIHBvcnQgLS0tLS0tLS0tICovCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKIAot
I2lmICFkZWZpbmVkKEVOQUJMRV9BSVJQTEFZX1BJQ0tFUikKLSNpZiAhUExBVEZPUk0oTUFDQ0FU
QUxZU1QpCi0jZGVmaW5lIEVOQUJMRV9BSVJQTEFZX1BJQ0tFUiAxCi0jZW5kaWYKLSNlbmRpZgog
Ci0jaWYgIWRlZmluZWQoRU5BQkxFX0FQUExFX1BBWV9SRU1PVEVfVUkpCi0jaWYgIVBMQVRGT1JN
KEFQUExFVFYpICYmICFQTEFURk9STShNQUNDQVRBTFlTVCkgJiYgIVBMQVRGT1JNKFdBVENIT1Mp
Ci0jZGVmaW5lIEVOQUJMRV9BUFBMRV9QQVlfUkVNT1RFX1VJIDEKLSNlbmRpZgotI2VuZGlmCisv
KiA9PT09IFBsYXRmb3JtIHNwZWNpZmljIGRlZmF1bHRzID09PT0gKi8KIAotI2lmICFkZWZpbmVk
KEVOQUJMRV9DT05URU5UX0VYVEVOU0lPTlMpCi0jZGVmaW5lIEVOQUJMRV9DT05URU5UX0VYVEVO
U0lPTlMgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfQ09OVEVYVF9NRU5VUykKLSNk
ZWZpbmUgRU5BQkxFX0NPTlRFWFRfTUVOVVMgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFC
TEVfQ09OVEVYVF9NRU5VX0VWRU5UKQotI2lmICFQTEFURk9STShNQUNDQVRBTFlTVCkKLSNkZWZp
bmUgRU5BQkxFX0NPTlRFWFRfTUVOVV9FVkVOVCAwCi0jZW5kaWYKLSNlbmRpZgotCi0jaWYgIWRl
ZmluZWQoRU5BQkxFX0NVU1RPTV9DVVJTT1JfU1VQUE9SVCkKLSNkZWZpbmUgRU5BQkxFX0NVU1RP
TV9DVVJTT1JfU1VQUE9SVCAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9EUkFHX1NV
UFBPUlQpCi0jZGVmaW5lIEVOQUJMRV9EUkFHX1NVUFBPUlQgMAotI2VuZGlmCi0KLSNpZiAhZGVm
aW5lZChFTkFCTEVfR0VPTE9DQVRJT04pCi0jZGVmaW5lIEVOQUJMRV9HRU9MT0NBVElPTiAxCi0j
ZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9JTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENI
RVJTKQotI2RlZmluZSBFTkFCTEVfSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUyAxCisv
KiAtLS0tLS0tLS0gQXBwbGUgQ29jb2EgcGxhdGZvcm1zIC0tLS0tLS0tLSAqLworI2lmIFBMQVRG
T1JNKENPQ09BKQorI2luY2x1ZGUgPHd0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmg+CiAjZW5kaWYK
IAotI2lmICFkZWZpbmVkKEVOQUJMRV9JTlNQRUNUT1JfVEVMRU1FVFJZKQotI2RlZmluZSBFTkFC
TEVfSU5TUEVDVE9SX1RFTEVNRVRSWSAwCisvKiAtLS0tLS0tLS0gQXBwbGUgV2luZG93cyBwb3J0
IC0tLS0tLS0tLSAqLworI2lmIFBMQVRGT1JNKFdJTikgJiYgIVBMQVRGT1JNKFdJTl9DQUlSTykK
KyNpbmNsdWRlIDx3dGYvUGxhdGZvcm1FbmFibGVXaW5BcHBsZS5oPgogI2VuZGlmCiAKLSNpZiAh
ZGVmaW5lZChFTkFCTEVfTEVUVEVSUFJFU1MpCi0jZGVmaW5lIEVOQUJMRV9MRVRURVJQUkVTUyAx
CisvKiAtLS0tLS0tLS0gV2luZG93cyBDQUlSTyBwb3J0IC0tLS0tLS0tLSAqLworI2lmIFBMQVRG
T1JNKFdJTl9DQUlSTykKKyNpbmNsdWRlIDx3dGYvUGxhdGZvcm1FbmFibGVXaW5DYWlyby5oPgog
I2VuZGlmCiAKLSNpZiAhZGVmaW5lZChFTkFCTEVfQVVUT0NPUlJFQ1QpCi0jZGVmaW5lIEVOQUJM
RV9BVVRPQ09SUkVDVCAxCi0jZW5kaWYKIAotI2lmICFkZWZpbmVkKEVOQUJMRV9BVVRPQ0FQSVRB
TElaRSkKLSNkZWZpbmUgRU5BQkxFX0FVVE9DQVBJVEFMSVpFIDEKLSNlbmRpZgogCi0jaWYgIWRl
ZmluZWQoRU5BQkxFX0lPU19HRVNUVVJFX0VWRU5UUykgJiYgVVNFKEFQUExFX0lOVEVSTkFMX1NE
SykKLSNkZWZpbmUgRU5BQkxFX0lPU19HRVNUVVJFX0VWRU5UUyAxCi0jZW5kaWYKKy8qIC0tLS0t
LS0tLSAgRU5BQkxFIG1hY3JvIGRlZmF1bHRzIC0tLS0tLS0tLSAqLwogCi0jaWYgIWRlZmluZWQo
RU5BQkxFX1RFWFRfQVVUT1NJWklORykKLSNkZWZpbmUgRU5BQkxFX1RFWFRfQVVUT1NJWklORyAx
Ci0jZW5kaWYKKy8qIERvIG5vdCB1c2UgUExBVEZPUk0oKSB0ZXN0cyBpbiB0aGlzIHNlY3Rpb24g
ISAqLwogCi0jaWYgIWRlZmluZWQoRU5BQkxFX0lPU19UT1VDSF9FVkVOVFMpICYmIFVTRShBUFBM
RV9JTlRFUk5BTF9TREspCi0jZGVmaW5lIEVOQUJMRV9JT1NfVE9VQ0hfRVZFTlRTIDEKKyNpZiAh
ZGVmaW5lZChFTkFCTEVfV0VCUFJPQ0VTU19OU1JVTkxPT1ApCisjZGVmaW5lIEVOQUJMRV9XRUJQ
Uk9DRVNTX05TUlVOTE9PUCAwCiAjZW5kaWYKIAotI2lmICFkZWZpbmVkKEVOQUJMRV9NRVRFUl9F
TEVNRU5UKQotI2RlZmluZSBFTkFCTEVfTUVURVJfRUxFTUVOVCAwCisjaWYgIWRlZmluZWQoRU5B
QkxFX1dFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQorI2RlZmluZSBFTkFCTEVfV0VC
UFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcgMAogI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChF
TkFCTEVfTkVUU0NBUEVfUExVR0lOX0FQSSkKLSNkZWZpbmUgRU5BQkxFX05FVFNDQVBFX1BMVUdJ
Tl9BUEkgMAorI2lmICFkZWZpbmVkKEVOQUJMRV9NQUNfR0VTVFVSRV9FVkVOVFMpCisjZGVmaW5l
IEVOQUJMRV9NQUNfR0VTVFVSRV9FVkVOVFMgMAogI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChFTkFC
TEVfT1JJRU5UQVRJT05fRVZFTlRTKQotI2RlZmluZSBFTkFCTEVfT1JJRU5UQVRJT05fRVZFTlRT
IDEKKyNpZiAhZGVmaW5lZChFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkpCisjZGVmaW5lIEVOQUJM
RV9DVVJTT1JfVklTSUJJTElUWSAwCiAjZW5kaWYKIAotI2lmICFkZWZpbmVkKEVOQUJMRV9QT0lO
VEVSX0xPQ0spCi0jZGVmaW5lIEVOQUJMRV9QT0lOVEVSX0xPQ0sgMAorI2lmICFkZWZpbmVkKEVO
QUJMRV9BSVJQTEFZX1BJQ0tFUikKKyNkZWZpbmUgRU5BQkxFX0FJUlBMQVlfUElDS0VSIDAKICNl
bmRpZgogCi0jaWYgIWRlZmluZWQoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpCi0jZGVmaW5lIEVO
QUJMRV9SRU1PVEVfSU5TUEVDVE9SIDEKKyNpZiAhZGVmaW5lZChFTkFCTEVfQVBQTEVfUEFZX1JF
TU9URV9VSSkKKyNkZWZpbmUgRU5BQkxFX0FQUExFX1BBWV9SRU1PVEVfVUkgMAogI2VuZGlmCiAK
LSNpZiAhZGVmaW5lZChFTkFCTEVfVEVYVF9DQVJFVCkKLSNkZWZpbmUgRU5BQkxFX1RFWFRfQ0FS
RVQgMAorI2lmICFkZWZpbmVkKEVOQUJMRV9BVVRPQ09SUkVDVCkKKyNkZWZpbmUgRU5BQkxFX0FV
VE9DT1JSRUNUIDAKICNlbmRpZgogCi0jaWYgIWRlZmluZWQoRU5BQkxFX1RFWFRfU0VMRUNUSU9O
KQotI2RlZmluZSBFTkFCTEVfVEVYVF9TRUxFQ1RJT04gMAorI2lmICFkZWZpbmVkKEVOQUJMRV9B
VVRPQ0FQSVRBTElaRSkKKyNkZWZpbmUgRU5BQkxFX0FVVE9DQVBJVEFMSVpFIDAKICNlbmRpZgog
Ci0vKiBGSVhNRTogUmVtb3ZlIHRoZSBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKSBjb25qdW5jdCBv
bmNlIHdlIHN1cHBvcnQgdG91Y2ggZXZlbnRzIHdoZW4gYnVpbGRpbmcgYWdhaW5zdAotdGhlIHB1
YmxpYyBpT1MgU0RLLiBTZWUgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE3OTE2Nz4uICovCi0jaWYg
IWRlZmluZWQoRU5BQkxFX1RPVUNIX0VWRU5UUykgJiYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykK
LSNkZWZpbmUgRU5BQkxFX1RPVUNIX0VWRU5UUyAxCisjaWYgIWRlZmluZWQoRU5BQkxFX1RFWFRf
QVVUT1NJWklORykKKyNkZWZpbmUgRU5BQkxFX1RFWFRfQVVUT1NJWklORyAwCiAjZW5kaWYKIAot
I2lmICFkZWZpbmVkKEVOQUJMRV9XRUJfQVJDSElWRSkKLSNkZWZpbmUgRU5BQkxFX1dFQl9BUkNI
SVZFIDEKKyNpZiAhZGVmaW5lZChFTkFCTEVfSU9TX0dFU1RVUkVfRVZFTlRTKQorI2RlZmluZSBF
TkFCTEVfSU9TX0dFU1RVUkVfRVZFTlRTIDAKICNlbmRpZgogCi0jaWYgIWRlZmluZWQoRU5BQkxF
X1dFQkdMKQotI2RlZmluZSBFTkFCTEVfV0VCR0wgMQorI2lmICFkZWZpbmVkKEVOQUJMRV9JT1Nf
VE9VQ0hfRVZFTlRTKQorI2RlZmluZSBFTkFCTEVfSU9TX1RPVUNIX0VWRU5UUyAwCiAjZW5kaWYK
IAogI2lmICFkZWZpbmVkKEVOQUJMRV9QUklNQVJZX1NOQVBTSE9UVEVEX1BMVUdJTl9IRVVSSVNU
SUMpCi0jZGVmaW5lIEVOQUJMRV9QUklNQVJZX1NOQVBTSE9UVEVEX1BMVUdJTl9IRVVSSVNUSUMg
MQorI2RlZmluZSBFTkFCTEVfUFJJTUFSWV9TTkFQU0hPVFRFRF9QTFVHSU5fSEVVUklTVElDIDAK
ICNlbmRpZgogCi0jaWYgIWRlZmluZWQoRU5BQkxFX0RPV05MT0FEX0FUVFJJQlVURSkKLSNkZWZp
bmUgRU5BQkxFX0RPV05MT0FEX0FUVFJJQlVURSAxCisjaWYgIWRlZmluZWQoRU5BQkxFX1dLUERG
VklFVykKKyNkZWZpbmUgRU5BQkxFX1dLUERGVklFVyAwCiAjZW5kaWYKIAotI2lmICFkZWZpbmVk
KEVOQUJMRV9XS1BERlZJRVcpICYmIFBMQVRGT1JNKElPUykKLSNkZWZpbmUgRU5BQkxFX1dLUERG
VklFVyAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9NRURJQV9TT1VSQ0UpCi0jZGVm
aW5lIEVOQUJMRV9NRURJQV9TT1VSQ0UgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVf
UFJFVklFV19DT05WRVJURVIpICYmIFBMQVRGT1JNKElPUykKLSNkZWZpbmUgRU5BQkxFX1BSRVZJ
RVdfQ09OVkVSVEVSIDEKKyNpZiAhZGVmaW5lZChFTkFCTEVfUFJFVklFV19DT05WRVJURVIpCisj
ZGVmaW5lIEVOQUJMRV9QUkVWSUVXX0NPTlZFUlRFUiAwCiAjZW5kaWYKIAogI2lmICFkZWZpbmVk
KEVOQUJMRV9NRVRBX1ZJRVdQT1JUKQotI2RlZmluZSBFTkFCTEVfTUVUQV9WSUVXUE9SVCAxCisj
ZGVmaW5lIEVOQUJMRV9NRVRBX1ZJRVdQT1JUIDAKICNlbmRpZgogCi0jZW5kaWYgLyogUExBVEZP
Uk0oSU9TX0ZBTUlMWSkgKi8KLQotLyogLS0tLS0tLS0tIEFwcGxlIHdhdGNoT1MgcG9ydCAtLS0t
LS0tLS0gKi8KLSNpZiBQTEFURk9STShXQVRDSE9TKQotCi0jZW5kaWYgLyogUExBVEZPUk0oV0FU
Q0hPUykgKi8KLQotLyogLS0tLS0tLS0tIEFwcGxlIG1hY09TIHBvcnQgKG5vdCBpT1MpIC0tLS0t
LS0tLSAqLwotI2lmIFBMQVRGT1JNKE1BQykKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9DT05URU5U
X0VYVEVOU0lPTlMpCi0jZGVmaW5lIEVOQUJMRV9DT05URU5UX0VYVEVOU0lPTlMgMQotI2VuZGlm
Ci0KLSNpZiAhZGVmaW5lZChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpCi0jZGVmaW5lIEVOQUJMRV9G
VUxMU0NSRUVOX0FQSSAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9SRU1PVEVfSU5T
UEVDVE9SKQotI2RlZmluZSBFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUiAxCi0jZW5kaWYKLQotI2lm
ICFkZWZpbmVkKEVOQUJMRV9JTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENIRVJTKQotI2RlZmlu
ZSBFTkFCTEVfSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUyAxCi0jZW5kaWYKLQotI2lm
ICFkZWZpbmVkKEVOQUJMRV9JTlNQRUNUT1JfVEVMRU1FVFJZKQotI2RlZmluZSBFTkFCTEVfSU5T
UEVDVE9SX1RFTEVNRVRSWSAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9TTU9PVEhf
U0NST0xMSU5HKQotI2RlZmluZSBFTkFCTEVfU01PT1RIX1NDUk9MTElORyAxCi0jZW5kaWYKLQot
I2lmIEVOQUJMRShWSURFTykKLSNpZiAhZGVmaW5lZChFTkFCTEVfVklERU9fVFJBQ0spCi0jZGVm
aW5lIEVOQUJMRV9WSURFT19UUkFDSyAxCi0jZW5kaWYKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQo
RU5BQkxFX1dFQl9BUkNISVZFKQotI2RlZmluZSBFTkFCTEVfV0VCX0FSQ0hJVkUgMQotI2VuZGlm
Ci0KLSNpZiAhZGVmaW5lZChFTkFCTEVfV0VCX0FVRElPKQotI2RlZmluZSBFTkFCTEVfV0VCX0FV
RElPIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKQot
I2RlZmluZSBFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5l
ZChFTkFCTEVfUFJJTUFSWV9TTkFQU0hPVFRFRF9QTFVHSU5fSEVVUklTVElDKQotI2RlZmluZSBF
TkFCTEVfUFJJTUFSWV9TTkFQU0hPVFRFRF9QTFVHSU5fSEVVUklTVElDIDEKLSNlbmRpZgotCi0j
aWYgIWRlZmluZWQoRU5BQkxFX01BQ19HRVNUVVJFX0VWRU5UUykgJiYgVVNFKEFQUExFX0lOVEVS
TkFMX1NESykKLSNkZWZpbmUgRU5BQkxFX01BQ19HRVNUVVJFX0VWRU5UUyAxCi0jZW5kaWYKLQot
I2lmICFkZWZpbmVkKEVOQUJMRV9XRUJQUk9DRVNTX05TUlVOTE9PUCkKLSNkZWZpbmUgRU5BQkxF
X1dFQlBST0NFU1NfTlNSVU5MT09QIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTAxNDAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJQUk9DRVNTX1dJTkRPV1NF
UlZFUl9CTE9DS0lORykKLSNkZWZpbmUgRU5BQkxFX1dFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JM
T0NLSU5HIEVOQUJMRV9XRUJQUk9DRVNTX05TUlVOTE9PUAotI2VuZGlmCi0KLSNpZiAhZGVmaW5l
ZChFTkFCTEVfTUVESUFfU09VUkNFKQotI2RlZmluZSBFTkFCTEVfTUVESUFfU09VUkNFIDEKLSNl
bmRpZgotCi0jZW5kaWYgLyogUExBVEZPUk0oTUFDKSAqLwotCi0vKiAtLS0tLS0tLS0gQXBwbGUg
Q29jb2EgcGxhdGZvcm1zIC0tLS0tLS0tLSAqLwotCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0KLSNp
ZiAhZGVmaW5lZChFTkFCTEVfTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkKLSNpZiBQTEFURk9STShN
QUNDQVRBTFlTVCkKLSNkZWZpbmUgRU5BQkxFX0xFR0FDWV9FTkNSWVBURURfTUVESUEgMAotI2Vs
c2UKLSNkZWZpbmUgRU5BQkxFX0xFR0FDWV9FTkNSWVBURURfTUVESUEgMQotI2VuZGlmCi0jZW5k
aWYKIAogI2lmICFkZWZpbmVkKEVOQUJMRV9GSUxFX1JFUExBQ0VNRU5UKQotI2RlZmluZSBFTkFC
TEVfRklMRV9SRVBMQUNFTUVOVCAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9QQVlN
RU5UX1JFUVVFU1QpCi0jZGVmaW5lIEVOQUJMRV9QQVlNRU5UX1JFUVVFU1QgMQotI2VuZGlmCi0K
LSNpZiAhZGVmaW5lZChFTkFCTEVfQVNZTkNfU0NST0xMSU5HKQotI2RlZmluZSBFTkFCTEVfQVNZ
TkNfU0NST0xMSU5HIDEKKyNkZWZpbmUgRU5BQkxFX0ZJTEVfUkVQTEFDRU1FTlQgMAogI2VuZGlm
CiAKICNpZiAhZGVmaW5lZChFTkFCTEVfVUlfU0lERV9DT01QT1NJVElORykKLSNkZWZpbmUgRU5B
QkxFX1VJX1NJREVfQ09NUE9TSVRJTkcgMQotI2VuZGlmCi0KLSNlbmRpZiAvKiBQTEFURk9STShD
T0NPQSkgKi8KLQotI2lmICFQTEFURk9STShDT0NPQSkKLQotI2lmICFkZWZpbmVkKEpTQ19PQkpD
X0FQSV9FTkFCTEVEKQotI2RlZmluZSBKU0NfT0JKQ19BUElfRU5BQkxFRCAwCisjZGVmaW5lIEVO
QUJMRV9VSV9TSURFX0NPTVBPU0lUSU5HIDAKICNlbmRpZgogCi0jZW5kaWYgLyogIVBMQVRGT1JN
KENPQ09BKSAqLwotCi0KLS8qIC0tLS0tLS0tLSBBcHBsZSBXaW5kb3dzIHBvcnQgLS0tLS0tLS0t
ICovCi0jaWYgUExBVEZPUk0oV0lOKSAmJiAhUExBVEZPUk0oV0lOX0NBSVJPKQotCi0jaWYgIWRl
ZmluZWQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKQotI2RlZmluZSBFTkFCTEVfRlVMTFNDUkVFTl9B
UEkgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfV0VCX0FSQ0hJVkUpCi0jZGVmaW5l
IEVOQUJMRV9XRUJfQVJDSElWRSAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJH
TCkKLSNkZWZpbmUgRU5BQkxFX1dFQkdMIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxF
X0dFT0xPQ0FUSU9OKQotI2RlZmluZSBFTkFCTEVfR0VPTE9DQVRJT04gMQotI2VuZGlmCi0KLSNl
bmRpZiAvKiBQTEFURk9STShXSU4pICYmICFQTEFURk9STShXSU5fQ0FJUk8pICovCi0KLS8qIC0t
LS0tLS0tLSBXaW5kb3dzIENBSVJPIHBvcnQgLS0tLS0tLS0tICovCi0vKiBQTEFURk9STShXSU5f
Q0FJUk8pIGlzIGEgc3BlY2lhbGl6YXRpb24gb2YgUExBVEZPUk0oV0lOKS4gKi8KLS8qIFBMQVRG
T1JNKFdJTikgaXMgYWx3YXlzIGVuYWJsZWQgd2hlbiBQTEFURk9STShXSU5fQ0FJUk8pIGlzIGVu
YWJsZWQuICovCi0jaWYgUExBVEZPUk0oV0lOX0NBSVJPKQotCi0jaWYgIWRlZmluZWQoRU5BQkxF
X1dFQl9BUkNISVZFKQotI2RlZmluZSBFTkFCTEVfV0VCX0FSQ0hJVkUgMQotI2VuZGlmCi0KLSNp
ZiAhZGVmaW5lZChFTkFCTEVfV0VCR0wpCi0jZGVmaW5lIEVOQUJMRV9XRUJHTCAxCi0jZW5kaWYK
LQotI2lmICFkZWZpbmVkKEVOQUJMRV9HRU9MT0NBVElPTikKLSNkZWZpbmUgRU5BQkxFX0dFT0xP
Q0FUSU9OIDEKLSNlbmRpZgotCi0jZW5kaWYgLyogUExBVEZPUk0oV0lOX0NBSVJPKSAqLwotCi0v
KiBFTkFCTEUgbWFjcm8gZGVmYXVsdHMgZm9yIFdlYkNvcmUgKi8KLS8qIERvIG5vdCB1c2UgUExB
VEZPUk0oKSB0ZXN0cyBpbiB0aGlzIHNlY3Rpb24gISAqLwotCiAjaWYgIWRlZmluZWQoRU5BQkxF
XzNEX1RSQU5TRk9STVMpCiAjZGVmaW5lIEVOQUJMRV8zRF9UUkFOU0ZPUk1TIDAKICNlbmRpZgpA
QCAtNzE5LDggKzUxNyw1MyBAQCB0aGUgcHVibGljIGlPUyBTREsuIFNlZSA8aHR0cHM6Ly93ZWJr
aXQuCiAjZGVmaW5lIEVOQUJMRV9TRVJWSUNFX1dPUktFUiAxCiAjZW5kaWYKIAorI2lmICFkZWZp
bmVkKEVOQUJMRV9NT05PU1BBQ0VfRk9OVF9FWENFUFRJT04pCisjZGVmaW5lIEVOQUJMRV9NT05P
U1BBQ0VfRk9OVF9FWENFUFRJT04gMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfRlVM
TF9LRVlCT0FSRF9BQ0NFU1MpCisjZGVmaW5lIEVOQUJMRV9GVUxMX0tFWUJPQVJEX0FDQ0VTUyAw
CisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9QTEFURk9STV9EUklWRU5fVEVYVF9DSEVD
S0lORykKKyNkZWZpbmUgRU5BQkxFX1BMQVRGT1JNX0RSSVZFTl9URVhUX0NIRUNLSU5HIDAKKyNl
bmRpZgogCi0vKiBKSVQgRmVhdHVyZXMgKi8KKyNpZiAhZGVmaW5lZChFTkFCTEVfV0VCX1BMQVlC
QUNLX0NPTlRST0xTX01BTkFHRVIpCisjZGVmaW5lIEVOQUJMRV9XRUJfUExBWUJBQ0tfQ09OVFJP
TFNfTUFOQUdFUiAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9SRVNPVVJDRV9VU0FH
RSkKKyNkZWZpbmUgRU5BQkxFX1JFU09VUkNFX1VTQUdFIDAKKyNlbmRpZgorCisjaWYgIWRlZmlu
ZWQoRU5BQkxFX1NFQ19JVEVNX1NISU0pCisjZGVmaW5lIEVOQUJMRV9TRUNfSVRFTV9TSElNIDAK
KyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0RBVEFfREVURUNUSU9OKQorI2RlZmluZSBF
TkFCTEVfREFUQV9ERVRFQ1RJT04gMAorI2VuZGlmCisKKy8qCisgKiBFbmFibGUgdGhpcyB0byBw
dXQgZWFjaCBJc29IZWFwIGFuZCBvdGhlciBhbGxvY2F0aW9uIGNhdGVnb3JpZXMgaW50byB0aGVp
ciBvd24gbWFsbG9jIGhlYXBzLCBzbyB0aGF0IHRvb2xzIGxpa2Ugdm1tYXAgY2FuIHNob3cgaG93
IGJpZyBlYWNoIGhlYXAgaXMuCisgKiBUdXJuIEJFTkFCTEVfTUFMTE9DX0hFQVBfQlJFQUtET1dO
IG9uIGluIGJtYWxsb2MgdG9nZXRoZXIgd2hlbiB1c2luZyB0aGlzLgorICovCisjaWYgIWRlZmlu
ZWQoRU5BQkxFX01BTExPQ19IRUFQX0JSRUFLRE9XTikKKyNkZWZpbmUgRU5BQkxFX01BTExPQ19I
RUFQX0JSRUFLRE9XTiAwCisjZW5kaWYKKworCisKKworLyogRklYTUU6IFRoaXMgc2VjdGlvbiBv
ZiB0aGUgZmlsZSBoYXMgbm90IGJlZW4gY2xlYW5lZCB1cCB5ZXQgYW5kIG5lZWRzIG1ham9yIHdv
cmsuICovCisKKy8qIEZJWE1FOiBKU0NfT0JKQ19BUElfRU5BQkxFRCBkb2VzIG5vdCBtYXRjaCB0
aGUgbm9ybWFsIEVOQUJMRSBuYW1pbmcgY29udmVudGlvbi4gKi8KKyNpZiAhUExBVEZPUk0oQ09D
T0EpCisjaWYgIWRlZmluZWQoSlNDX09CSkNfQVBJX0VOQUJMRUQpCisjZGVmaW5lIEpTQ19PQkpD
X0FQSV9FTkFCTEVEIDAKKyNlbmRpZgorI2VuZGlmCiAKIC8qIFRoZSBKSVQgaXMgZW5hYmxlZCBi
eSBkZWZhdWx0IG9uIGFsbCB4ODYtNjQgJiBBUk02NCBwbGF0Zm9ybXMuICovCiAjaWYgIWRlZmlu
ZWQoRU5BQkxFX0pJVCkgJiYgKENQVShYODZfNjQpIHx8IENQVShBUk02NCkpICYmICFDUFUoQVBQ
TEVfQVJNVjdLKQpAQCAtOTQyLDEwICs3ODUsNiBAQCB0aGUgcHVibGljIGlPUyBTREsuIFNlZSA8
aHR0cHM6Ly93ZWJraXQuCiAjZGVmaW5lIEVOQUJMRV9DU1NfU0VMRUNUT1JfSklUIDEKICNlbmRp
ZgogCi0jaWYgUExBVEZPUk0oQ09DT0EpICYmICFQTEFURk9STShXQVRDSE9TKSAmJiAhUExBVEZP
Uk0oQVBQTEVUVikgJiYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQotI2RlZmluZSBFTkFCTEVfREFU
QV9ERVRFQ1RJT04gMQotI2VuZGlmCi0KICNpZiBDUFUoQVJNX1RIVU1CMikgfHwgQ1BVKEFSTTY0
KQogI2RlZmluZSBFTkFCTEVfQlJBTkNIX0NPTVBBQ1RJT04gMQogI2VuZGlmCkBAIC05NzAsMTAg
KzgwOSw2IEBAIHRoZSBwdWJsaWMgaU9TIFNESy4gU2VlIDxodHRwczovL3dlYmtpdC4KICNkZWZp
bmUgRU5BQkxFX1RSRUVfREVCVUdHSU5HIDEKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oQ09DT0Ep
Ci0jZGVmaW5lIEVOQUJMRV9SRVNPVVJDRV9VU0FHRSAxCi0jZW5kaWYKLQogI2lmICFkZWZpbmVk
KEVOQUJMRV9PUEVOVFlQRV9WRVJUSUNBTCkgJiYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShX
UEUpCiAjZGVmaW5lIEVOQUJMRV9PUEVOVFlQRV9WRVJUSUNBTCAxCiAjZW5kaWYKQEAgLTk4Miw0
MyArODE3LDE1IEBAIHRoZSBwdWJsaWMgaU9TIFNESy4gU2VlIDxodHRwczovL3dlYmtpdC4KICNk
ZWZpbmUgRU5BQkxFX09QRU5UWVBFX01BVEggMQogI2VuZGlmCiAKLS8qCi0gKiBFbmFibGUgdGhp
cyB0byBwdXQgZWFjaCBJc29IZWFwIGFuZCBvdGhlciBhbGxvY2F0aW9uIGNhdGVnb3JpZXMgaW50
byB0aGVpciBvd24gbWFsbG9jIGhlYXBzLCBzbyB0aGF0IHRvb2xzIGxpa2Ugdm1tYXAgY2FuIHNo
b3cgaG93IGJpZyBlYWNoIGhlYXAgaXMuCi0gKiBUdXJuIEJFTkFCTEVfTUFMTE9DX0hFQVBfQlJF
QUtET1dOIG9uIGluIGJtYWxsb2MgdG9nZXRoZXIgd2hlbiB1c2luZyB0aGlzLgotICovCi0jaWYg
IWRlZmluZWQoRU5BQkxFX01BTExPQ19IRUFQX0JSRUFLRE9XTikKLSNkZWZpbmUgRU5BQkxFX01B
TExPQ19IRUFQX0JSRUFLRE9XTiAwCi0jZW5kaWYKIAogLyogRGlzYWJsZSBTaGFyZWRBcnJheUJ1
ZmZlcnMgdW50aWwgU3BlY3RyZSBzZWN1cml0eSBjb25jZXJucyBhcmUgbWl0aWdhdGVkLiAqLwog
I2RlZmluZSBFTkFCTEVfU0hBUkVEX0FSUkFZX0JVRkZFUiAwCiAKLSNpZiBQTEFURk9STShNQUMp
Ci0jZGVmaW5lIEVOQUJMRV9XRUJfUExBWUJBQ0tfQ09OVFJPTFNfTUFOQUdFUiAxCi0jZW5kaWYK
LQotI2lmIFBMQVRGT1JNKENPQ09BKQotLyogRklYTUU6IFRoaXMgaXMgYSBVU0Ugc3R5bGUgbWFj
cm8sIGFzIGl0IHRyaWdnZXJzIHRoZSB1c2Ugb2YgQ0ZVUkxDb25uZWN0aW9uIGZyYW1ld29yayBz
dHVicy4gKi8KLS8qIEZJWE1FOiBJcyB0aGlzIHN0aWxsIG5lY2Vzc2FyeT8gQ0ZVUkxDb25uZWN0
aW9uIGlzbid0IHVzZWQgb24gQ29jb2EgcGxhdGZvcm1zIGFueSBtb3JlLiAqLwotI2RlZmluZSBF
TkFCTEVfU0VDX0lURU1fU0hJTSAxCi0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKE1BQykKLSNkZWZp
bmUgRU5BQkxFX0ZVTExfS0VZQk9BUkRfQUNDRVNTIDEKLSNlbmRpZgogCiAjaWYgKChQTEFURk9S
TShDT0NPQSkgfHwgUExBVEZPUk0oUExBWVNUQVRJT04pIHx8IFBMQVRGT1JNKFdQRSkpICYmIEVO
QUJMRShBU1lOQ19TQ1JPTExJTkcpKSB8fCBQTEFURk9STShHVEspCiAjZGVmaW5lIEVOQUJMRV9L
SU5FVElDX1NDUk9MTElORyAxCiAjZW5kaWYKIAotI2lmICFkZWZpbmVkKEVOQUJMRV9NT05PU1BB
Q0VfRk9OVF9FWENFUFRJT04pICYmICgoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEIDwgMTAxNTAwKSB8fCBQTEFURk9STShXQVRDSE9TKSB8fCBQTEFURk9S
TShBUFBMRVRWKSkKLSNkZWZpbmUgRU5BQkxFX01PTk9TUEFDRV9GT05UX0VYQ0VQVElPTiAxCi0j
ZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9QTEFURk9STV9EUklWRU5fVEVYVF9DSEVDS0lO
RykgJiYgUExBVEZPUk0oTUFDQ0FUQUxZU1QpCi0jZGVmaW5lIEVOQUJMRV9QTEFURk9STV9EUklW
RU5fVEVYVF9DSEVDS0lORyAxCi0jZW5kaWYKLQogLyogVGhpcyBmZWF0dXJlIHdvcmtzIGJ5IGVt
YmVkZGluZyB0aGUgT3Bjb2RlSUQgaW4gdGhlIDMyIGJpdCBqdXN0IGJlZm9yZSB0aGUgZ2VuZXJh
dGVkIExMaW50IGNvZGUKICAgIHRoYXQgZXhlY3V0ZXMgZWFjaCBvcGNvZGUuIEl0IGNhbm5vdCBi
ZSBzdXBwb3J0ZWQgYnkgdGhlIENMb29wIHNpbmNlIHRoZXJlJ3Mgbm8gd2F5IHRvIGVtYmVkIHRo
ZQogICAgT3Bjb2RlSUQgd29yZCBpbiB0aGUgQ0xvb3AncyBzd2l0Y2ggc3RhdGVtZW50IGNhc2Vz
LiBJdCBpcyBhbHNvIGN1cnJlbnRseSBub3QgaW1wbGVtZW50ZWQgZm9yIE1TVkMuCkBAIC0xMDI4
LDYgKzgzNSw5IEBAIHRoZSBwdWJsaWMgaU9TIFNESy4gU2VlIDxodHRwczovL3dlYmtpdC4KICNl
bmRpZgogCiAKKworCisKIC8qIEFzc2VydHMsIGludmFyaWFudHMgZm9yIG1hY3JvIGRlZmluaXRp
b25zICovCiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spICYmICFFTkFCTEUoVklERU8pCkluZGV4
OiBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oCShyZXZpc2lvbiAyNTU1NTIpCShmcm9t
IFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlLmg6MjU1NTUyKQorKysgU291cmNlL1dURi93
dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTA1NSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNi0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNy0yMDA5IFRvcmNoIE1vYmlsZSwgSW5jLgor
ICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDExIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzIFNhbXN1bmcgRWxlY3Ry
b25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWZuZGVmIFdURl9QTEFURk9STV9HVUFS
RF9BR0FJTlNUX0lORElSRUNUX0lOQ0xVU0lPTgorI2Vycm9yICJQbGVhc2UgI2luY2x1ZGUgPHd0
Zi9QbGF0Zm9ybS5oPiBpbnN0ZWFkIG9mIHRoaXMgZmlsZSBkaXJlY3RseS4iCisjZW5kaWYKKwor
CisjZGVmaW5lIEVOQUJMRShXVEZfRkVBVFVSRSkgKGRlZmluZWQgRU5BQkxFXyMjV1RGX0ZFQVRV
UkUgJiYgRU5BQkxFXyMjV1RGX0ZFQVRVUkUpCisKKy8qIFVzZSB0aGlzIGZpbGUgdG8gbGlzdCBf
YWxsXyBFTkFCTEUoKSBtYWNyb3MuIERlZmluZSB0aGUgbWFjcm9zIHRvIGJlIG9uZSBvZiB0aGUg
Zm9sbG93aW5nIHZhbHVlczoKKyAqICAtICIwIiBkaXNhYmxlcyB0aGUgZmVhdHVyZSBieSBkZWZh
dWx0LiBUaGUgZmVhdHVyZSBjYW4gc3RpbGwgYmUgZW5hYmxlZCBmb3IgYSBzcGVjaWZpYyBwb3J0
IG9yIGVudmlyb25tZW50LgorICogIC0gIjEiIGVuYWJsZXMgdGhlIGZlYXR1cmUgYnkgZGVmYXVs
dC4gVGhlIGZlYXR1cmUgY2FuIHN0aWxsIGJlIGRpc2FibGVkIGZvciBhIHNwZWNpZmljIHBvcnQg
b3IgZW52aXJvbm1lbnQuCisgKgorICogVGhlIGZlYXR1cmUgZGVmYXVsdHMgaW4gdGhpcyBmaWxl
IGFyZSBvbmx5IHRha2VuIGludG8gYWNjb3VudCBpZiB0aGUgKHBvcnQgc3BlY2lmaWMpIGJ1aWxk
IHN5c3RlbQorICogaGFzIG5vdCBlbmFibGVkIG9yIGRpc2FibGVkIGEgcGFydGljdWxhciBmZWF0
dXJlLgorICoKKyAqIFVzZSB0aGlzIGZpbGUgdG8gZGVmaW5lIEVOQUJMRSgpIG1hY3JvcyBvbmx5
LiBEbyBub3QgdXNlIHRoaXMgZmlsZSB0byBkZWZpbmUgVVNFKCkgb3IgbWFjcm9zICEKKyAqCisg
KiBPbmx5IGRlZmluZSBhIG1hY3JvIGlmIGl0IHdhcyBub3QgZGVmaW5lZCBiZWZvcmUgLSBhbHdh
eXMgY2hlY2sgZm9yICFkZWZpbmVkIGZpcnN0LgorICoKKyAqIEtlZXAgdGhlIGZpbGUgc29ydGVk
IGJ5IHRoZSBuYW1lIG9mIHRoZSBkZWZpbmVzLiBBcyBhbiBleGNlcHRpb24geW91IGNhbiBjaGFu
Z2UgdGhlIG9yZGVyCisgKiB0byBhbGxvdyBpbnRlcmRlcGVuZGVuY2llcyBiZXR3ZWVuIHRoZSBk
ZWZhdWx0IHZhbHVlcy4KKyAqCisgKiBCZWxvdyBhcmUgYSBmZXcgcG90ZW50aWFsIGNvbW1hbmRz
IHRvIHRha2UgYWR2YW50YWdlIG9mIHRoaXMgZmlsZSBydW5uaW5nIGZyb20gdGhlIFNvdXJjZS9X
VEYgZGlyZWN0b3J5CisgKgorICogR2V0IHRoZSBsaXN0IG9mIGZlYXR1cmUgZGVmaW5lczogZ3Jl
cCAtbyAiRU5BQkxFX1woXHdcK1wpIiB3dGYvUGxhdGZvcm1FbmFibGUuaCB8IHNvcnQgfCB1bmlx
CisgKiBHZXQgdGhlIGxpc3Qgb2YgZmVhdHVyZXMgZW5hYmxlZCBieSBkZWZhdWx0IGZvciBhIFBM
QVRGT1JNKFhYWCk6IGdjYyAtRSAtZE0gLUkuIC1EV1RGX1BMQVRGT1JNX1hYWCAid3RmL1BsYXRm
b3JtLmgiIHwgZ3JlcCAiRU5BQkxFX1x3XCsgMSIgfCBjdXQgLWQnICcgLWYyIHwgc29ydAorICov
CisKKworLyogRklYTUU6IFRoaXMgc2hvdWxkIGJlIHJlbmFtZWQgdG8gRU5BQkxFX0FTU0VSVFMg
Zm9yIGNvbnNpc3RlbmN5IGFuZCBzbyBpdCBjYW4gYmUgdXNlZCBhcyBFTkFCTEUoQVNTRVJUUyku
ICovCisvKiBBU1NFUlRfRU5BQkxFRCBzaG91bGQgYmUgdHJ1ZSBpZiB3ZSB3YW50IHRoZSBjdXJy
ZW50IGNvbXBpbGF0aW9uIHVuaXQgdG8KKyAgIGRvIGRlYnVnIGFzc2VydGlvbiBjaGVja3MgdW5j
b25kaXRpb25hbGx5IChlLmcuIHRyZWF0IGEgZGVidWcgQVNTRVJUCisgICBsaWtlIGEgUkVMRUFT
RV9BU1NFUlQuCisqLworI2lmbmRlZiBBU1NFUlRfRU5BQkxFRAorI2lmZGVmIE5ERUJVRworI2Rl
ZmluZSBBU1NFUlRfRU5BQkxFRCAwCisjZWxzZQorI2RlZmluZSBBU1NFUlRfRU5BQkxFRCAxCisj
ZW5kaWYKKyNlbmRpZgorCisvKiA9PT09IFBsYXRmb3JtIGFkZGl0aW9uczogYWRkaXRpb25zIHRv
IFBsYXRmb3JtRW5hYmxlLmggZnJvbSBvdXRzaWRlIHRoZSBtYWluIHJlcG9zaXRvcnkgPT09PSAq
LworCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykgJiYgX19oYXNfaW5jbHVkZSg8V2ViS2l0
QWRkaXRpb25zL0FkZGl0aW9uYWxGZWF0dXJlRGVmaW5lcy5oPikKKyNpbmNsdWRlIDxXZWJLaXRB
ZGRpdGlvbnMvQWRkaXRpb25hbEZlYXR1cmVEZWZpbmVzLmg+CisjZW5kaWYKKworLyogRklYTUU6
IE1vdmUgb3V0IHRoZSBQTEFURk9STSBzcGVjaWZpYyBydWxlcyBpbnRvIHBsYXRmb3JtIHNwZWNp
ZmljIGZpbGVzLiAqLworCisvKiAtLS0tLS0tLS0gQXBwbGUgaU9TIChidXQgbm90IG1hY09TKSBw
b3J0IC0tLS0tLS0tLSAqLworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisKKyNpZiAhZGVmaW5l
ZChFTkFCTEVfQUlSUExBWV9QSUNLRVIpCisjaWYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQorI2Rl
ZmluZSBFTkFCTEVfQUlSUExBWV9QSUNLRVIgMQorI2VuZGlmCisjZW5kaWYKKworI2lmICFkZWZp
bmVkKEVOQUJMRV9BUFBMRV9QQVlfUkVNT1RFX1VJKQorI2lmICFQTEFURk9STShBUFBMRVRWKSAm
JiAhUExBVEZPUk0oTUFDQ0FUQUxZU1QpICYmICFQTEFURk9STShXQVRDSE9TKQorI2RlZmluZSBF
TkFCTEVfQVBQTEVfUEFZX1JFTU9URV9VSSAxCisjZW5kaWYKKyNlbmRpZgorCisjaWYgIWRlZmlu
ZWQoRU5BQkxFX0NPTlRFTlRfRVhURU5TSU9OUykKKyNkZWZpbmUgRU5BQkxFX0NPTlRFTlRfRVhU
RU5TSU9OUyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9DT05URVhUX01FTlVTKQor
I2RlZmluZSBFTkFCTEVfQ09OVEVYVF9NRU5VUyAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVO
QUJMRV9DT05URVhUX01FTlVfRVZFTlQpCisjaWYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQorI2Rl
ZmluZSBFTkFCTEVfQ09OVEVYVF9NRU5VX0VWRU5UIDAKKyNlbmRpZgorI2VuZGlmCisKKyNpZiAh
ZGVmaW5lZChFTkFCTEVfQ1VTVE9NX0NVUlNPUl9TVVBQT1JUKQorI2RlZmluZSBFTkFCTEVfQ1VT
VE9NX0NVUlNPUl9TVVBQT1JUIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0RSQUdf
U1VQUE9SVCkKKyNkZWZpbmUgRU5BQkxFX0RSQUdfU1VQUE9SVCAwCisjZW5kaWYKKworI2lmICFk
ZWZpbmVkKEVOQUJMRV9HRU9MT0NBVElPTikKKyNkZWZpbmUgRU5BQkxFX0dFT0xPQ0FUSU9OIDEK
KyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0lOU1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFU
Q0hFUlMpCisjZGVmaW5lIEVOQUJMRV9JTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENIRVJTIDEK
KyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0lOU1BFQ1RPUl9URUxFTUVUUlkpCisjZGVm
aW5lIEVOQUJMRV9JTlNQRUNUT1JfVEVMRU1FVFJZIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQo
RU5BQkxFX0xFVFRFUlBSRVNTKQorI2RlZmluZSBFTkFCTEVfTEVUVEVSUFJFU1MgMQorI2VuZGlm
CisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQVVUT0NPUlJFQ1QpCisjZGVmaW5lIEVOQUJMRV9BVVRP
Q09SUkVDVCAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9BVVRPQ0FQSVRBTElaRSkK
KyNkZWZpbmUgRU5BQkxFX0FVVE9DQVBJVEFMSVpFIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQo
RU5BQkxFX0lPU19HRVNUVVJFX0VWRU5UUykgJiYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyNk
ZWZpbmUgRU5BQkxFX0lPU19HRVNUVVJFX0VWRU5UUyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVk
KEVOQUJMRV9URVhUX0FVVE9TSVpJTkcpCisjZGVmaW5lIEVOQUJMRV9URVhUX0FVVE9TSVpJTkcg
MQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfSU9TX1RPVUNIX0VWRU5UUykgJiYgVVNF
KEFQUExFX0lOVEVSTkFMX1NESykKKyNkZWZpbmUgRU5BQkxFX0lPU19UT1VDSF9FVkVOVFMgMQor
I2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTUVURVJfRUxFTUVOVCkKKyNkZWZpbmUgRU5B
QkxFX01FVEVSX0VMRU1FTlQgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTkVUU0NB
UEVfUExVR0lOX0FQSSkKKyNkZWZpbmUgRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9BUEkgMAorI2Vu
ZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfT1JJRU5UQVRJT05fRVZFTlRTKQorI2RlZmluZSBF
TkFCTEVfT1JJRU5UQVRJT05fRVZFTlRTIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxF
X1BPSU5URVJfTE9DSykKKyNkZWZpbmUgRU5BQkxFX1BPSU5URVJfTE9DSyAwCisjZW5kaWYKKwor
I2lmICFkZWZpbmVkKEVOQUJMRV9SRU1PVEVfSU5TUEVDVE9SKQorI2RlZmluZSBFTkFCTEVfUkVN
T1RFX0lOU1BFQ1RPUiAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9URVhUX0NBUkVU
KQorI2RlZmluZSBFTkFCTEVfVEVYVF9DQVJFVCAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVO
QUJMRV9URVhUX1NFTEVDVElPTikKKyNkZWZpbmUgRU5BQkxFX1RFWFRfU0VMRUNUSU9OIDAKKyNl
bmRpZgorCisvKiBGSVhNRTogUmVtb3ZlIHRoZSBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKSBjb25q
dW5jdCBvbmNlIHdlIHN1cHBvcnQgdG91Y2ggZXZlbnRzIHdoZW4gYnVpbGRpbmcgYWdhaW5zdAor
dGhlIHB1YmxpYyBpT1MgU0RLLiBTZWUgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE3OTE2Nz4uICov
CisjaWYgIWRlZmluZWQoRU5BQkxFX1RPVUNIX0VWRU5UUykgJiYgVVNFKEFQUExFX0lOVEVSTkFM
X1NESykKKyNkZWZpbmUgRU5BQkxFX1RPVUNIX0VWRU5UUyAxCisjZW5kaWYKKworI2lmICFkZWZp
bmVkKEVOQUJMRV9XRUJfQVJDSElWRSkKKyNkZWZpbmUgRU5BQkxFX1dFQl9BUkNISVZFIDEKKyNl
bmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1dFQkdMKQorI2RlZmluZSBFTkFCTEVfV0VCR0wg
MQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfUFJJTUFSWV9TTkFQU0hPVFRFRF9QTFVH
SU5fSEVVUklTVElDKQorI2RlZmluZSBFTkFCTEVfUFJJTUFSWV9TTkFQU0hPVFRFRF9QTFVHSU5f
SEVVUklTVElDIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0RPV05MT0FEX0FUVFJJ
QlVURSkKKyNkZWZpbmUgRU5BQkxFX0RPV05MT0FEX0FUVFJJQlVURSAxCisjZW5kaWYKKworI2lm
ICFkZWZpbmVkKEVOQUJMRV9XS1BERlZJRVcpICYmIFBMQVRGT1JNKElPUykKKyNkZWZpbmUgRU5B
QkxFX1dLUERGVklFVyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9NRURJQV9TT1VS
Q0UpCisjZGVmaW5lIEVOQUJMRV9NRURJQV9TT1VSQ0UgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5l
ZChFTkFCTEVfUFJFVklFV19DT05WRVJURVIpICYmIFBMQVRGT1JNKElPUykKKyNkZWZpbmUgRU5B
QkxFX1BSRVZJRVdfQ09OVkVSVEVSIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX01F
VEFfVklFV1BPUlQpCisjZGVmaW5lIEVOQUJMRV9NRVRBX1ZJRVdQT1JUIDEKKyNlbmRpZgorCisj
ZW5kaWYgLyogUExBVEZPUk0oSU9TX0ZBTUlMWSkgKi8KKworLyogLS0tLS0tLS0tIEFwcGxlIHdh
dGNoT1MgcG9ydCAtLS0tLS0tLS0gKi8KKyNpZiBQTEFURk9STShXQVRDSE9TKQorCisjZW5kaWYg
LyogUExBVEZPUk0oV0FUQ0hPUykgKi8KKworLyogLS0tLS0tLS0tIEFwcGxlIG1hY09TIHBvcnQg
KG5vdCBpT1MpIC0tLS0tLS0tLSAqLworI2lmIFBMQVRGT1JNKE1BQykKKworI2lmICFkZWZpbmVk
KEVOQUJMRV9DT05URU5UX0VYVEVOU0lPTlMpCisjZGVmaW5lIEVOQUJMRV9DT05URU5UX0VYVEVO
U0lPTlMgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpCisj
ZGVmaW5lIEVOQUJMRV9GVUxMU0NSRUVOX0FQSSAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVO
QUJMRV9SRU1PVEVfSU5TUEVDVE9SKQorI2RlZmluZSBFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUiAx
CisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9JTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BB
VENIRVJTKQorI2RlZmluZSBFTkFCTEVfSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUyAx
CisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9JTlNQRUNUT1JfVEVMRU1FVFJZKQorI2Rl
ZmluZSBFTkFCTEVfSU5TUEVDVE9SX1RFTEVNRVRSWSAxCisjZW5kaWYKKworI2lmICFkZWZpbmVk
KEVOQUJMRV9TTU9PVEhfU0NST0xMSU5HKQorI2RlZmluZSBFTkFCTEVfU01PT1RIX1NDUk9MTElO
RyAxCisjZW5kaWYKKworI2lmIEVOQUJMRShWSURFTykKKyNpZiAhZGVmaW5lZChFTkFCTEVfVklE
RU9fVFJBQ0spCisjZGVmaW5lIEVOQUJMRV9WSURFT19UUkFDSyAxCisjZW5kaWYKKyNlbmRpZgor
CisjaWYgIWRlZmluZWQoRU5BQkxFX1dFQl9BUkNISVZFKQorI2RlZmluZSBFTkFCTEVfV0VCX0FS
Q0hJVkUgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfV0VCX0FVRElPKQorI2RlZmlu
ZSBFTkFCTEVfV0VCX0FVRElPIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0NVUlNP
Ul9WSVNJQklMSVRZKQorI2RlZmluZSBFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkgMQorI2VuZGlm
CisKKyNpZiAhZGVmaW5lZChFTkFCTEVfUFJJTUFSWV9TTkFQU0hPVFRFRF9QTFVHSU5fSEVVUklT
VElDKQorI2RlZmluZSBFTkFCTEVfUFJJTUFSWV9TTkFQU0hPVFRFRF9QTFVHSU5fSEVVUklTVElD
IDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX01BQ19HRVNUVVJFX0VWRU5UUykgJiYg
VVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyNkZWZpbmUgRU5BQkxFX01BQ19HRVNUVVJFX0VWRU5U
UyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJQUk9DRVNTX05TUlVOTE9PUCkK
KyNkZWZpbmUgRU5BQkxFX1dFQlBST0NFU1NfTlNSVU5MT09QIF9fTUFDX09TX1hfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTAxNDAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJQ
Uk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykKKyNkZWZpbmUgRU5BQkxFX1dFQlBST0NFU1Nf
V0lORE9XU0VSVkVSX0JMT0NLSU5HIEVOQUJMRV9XRUJQUk9DRVNTX05TUlVOTE9PUAorI2VuZGlm
CisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTUVESUFfU09VUkNFKQorI2RlZmluZSBFTkFCTEVfTUVE
SUFfU09VUkNFIDEKKyNlbmRpZgorCisjZW5kaWYgLyogUExBVEZPUk0oTUFDKSAqLworCisvKiAt
LS0tLS0tLS0gQXBwbGUgQ29jb2EgcGxhdGZvcm1zIC0tLS0tLS0tLSAqLworCisjaWYgUExBVEZP
Uk0oQ09DT0EpCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkK
KyNpZiBQTEFURk9STShNQUNDQVRBTFlTVCkKKyNkZWZpbmUgRU5BQkxFX0xFR0FDWV9FTkNSWVBU
RURfTUVESUEgMAorI2Vsc2UKKyNkZWZpbmUgRU5BQkxFX0xFR0FDWV9FTkNSWVBURURfTUVESUEg
MQorI2VuZGlmCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9GSUxFX1JFUExBQ0VNRU5U
KQorI2RlZmluZSBFTkFCTEVfRklMRV9SRVBMQUNFTUVOVCAxCisjZW5kaWYKKworI2lmICFkZWZp
bmVkKEVOQUJMRV9QQVlNRU5UX1JFUVVFU1QpCisjZGVmaW5lIEVOQUJMRV9QQVlNRU5UX1JFUVVF
U1QgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQVNZTkNfU0NST0xMSU5HKQorI2Rl
ZmluZSBFTkFCTEVfQVNZTkNfU0NST0xMSU5HIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5B
QkxFX1VJX1NJREVfQ09NUE9TSVRJTkcpCisjZGVmaW5lIEVOQUJMRV9VSV9TSURFX0NPTVBPU0lU
SU5HIDEKKyNlbmRpZgorCisjZW5kaWYgLyogUExBVEZPUk0oQ09DT0EpICovCisKKyNpZiAhUExB
VEZPUk0oQ09DT0EpCisKKyNpZiAhZGVmaW5lZChKU0NfT0JKQ19BUElfRU5BQkxFRCkKKyNkZWZp
bmUgSlNDX09CSkNfQVBJX0VOQUJMRUQgMAorI2VuZGlmCisKKyNlbmRpZiAvKiAhUExBVEZPUk0o
Q09DT0EpICovCisKKworLyogLS0tLS0tLS0tIEFwcGxlIFdpbmRvd3MgcG9ydCAtLS0tLS0tLS0g
Ki8KKyNpZiBQTEFURk9STShXSU4pICYmICFQTEFURk9STShXSU5fQ0FJUk8pCisKKyNpZiAhZGVm
aW5lZChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpCisjZGVmaW5lIEVOQUJMRV9GVUxMU0NSRUVOX0FQ
SSAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJfQVJDSElWRSkKKyNkZWZpbmUg
RU5BQkxFX1dFQl9BUkNISVZFIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1dFQkdM
KQorI2RlZmluZSBFTkFCTEVfV0VCR0wgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVf
R0VPTE9DQVRJT04pCisjZGVmaW5lIEVOQUJMRV9HRU9MT0NBVElPTiAxCisjZW5kaWYKKworI2Vu
ZGlmIC8qIFBMQVRGT1JNKFdJTikgJiYgIVBMQVRGT1JNKFdJTl9DQUlSTykgKi8KKworLyogLS0t
LS0tLS0tIFdpbmRvd3MgQ0FJUk8gcG9ydCAtLS0tLS0tLS0gKi8KKy8qIFBMQVRGT1JNKFdJTl9D
QUlSTykgaXMgYSBzcGVjaWFsaXphdGlvbiBvZiBQTEFURk9STShXSU4pLiAqLworLyogUExBVEZP
Uk0oV0lOKSBpcyBhbHdheXMgZW5hYmxlZCB3aGVuIFBMQVRGT1JNKFdJTl9DQUlSTykgaXMgZW5h
YmxlZC4gKi8KKyNpZiBQTEFURk9STShXSU5fQ0FJUk8pCisKKyNpZiAhZGVmaW5lZChFTkFCTEVf
V0VCX0FSQ0hJVkUpCisjZGVmaW5lIEVOQUJMRV9XRUJfQVJDSElWRSAxCisjZW5kaWYKKworI2lm
ICFkZWZpbmVkKEVOQUJMRV9XRUJHTCkKKyNkZWZpbmUgRU5BQkxFX1dFQkdMIDEKKyNlbmRpZgor
CisjaWYgIWRlZmluZWQoRU5BQkxFX0dFT0xPQ0FUSU9OKQorI2RlZmluZSBFTkFCTEVfR0VPTE9D
QVRJT04gMQorI2VuZGlmCisKKyNlbmRpZiAvKiBQTEFURk9STShXSU5fQ0FJUk8pICovCisKKy8q
IEVOQUJMRSBtYWNybyBkZWZhdWx0cyBmb3IgV2ViQ29yZSAqLworLyogRG8gbm90IHVzZSBQTEFU
Rk9STSgpIHRlc3RzIGluIHRoaXMgc2VjdGlvbiAhICovCisKKyNpZiAhZGVmaW5lZChFTkFCTEVf
M0RfVFJBTlNGT1JNUykKKyNkZWZpbmUgRU5BQkxFXzNEX1RSQU5TRk9STVMgMAorI2VuZGlmCisK
KyNpZiAhZGVmaW5lZChFTkFCTEVfQUNDRVNTSUJJTElUWSkKKyNkZWZpbmUgRU5BQkxFX0FDQ0VT
U0lCSUxJVFkgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQUNDRUxFUkFURURfMkRf
Q0FOVkFTKQorI2RlZmluZSBFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTIDAKKyNlbmRpZgor
CisjaWYgIWRlZmluZWQoRU5BQkxFX09WRVJGTE9XX1NDUk9MTElOR19UT1VDSCkKKyNkZWZpbmUg
RU5BQkxFX09WRVJGTE9XX1NDUk9MTElOR19UT1VDSCAwCisjZW5kaWYKKworI2lmICFkZWZpbmVk
KEVOQUJMRV9BUE5HKQorI2RlZmluZSBFTkFCTEVfQVBORyAxCisjZW5kaWYKKworI2lmICFkZWZp
bmVkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykKKyNkZWZpbmUgRU5BQkxFX0NIQU5ORUxfTUVT
U0FHSU5HIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0NPTlRFTlRfRVhURU5TSU9O
UykKKyNkZWZpbmUgRU5BQkxFX0NPTlRFTlRfRVhURU5TSU9OUyAwCisjZW5kaWYKKworI2lmICFk
ZWZpbmVkKEVOQUJMRV9DT05URVhUX01FTlVTKQorI2RlZmluZSBFTkFCTEVfQ09OVEVYVF9NRU5V
UyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9DT05URVhUX01FTlVfRVZFTlQpCisj
ZGVmaW5lIEVOQUJMRV9DT05URVhUX01FTlVfRVZFTlQgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5l
ZChFTkFCTEVfQ1NTM19URVhUKQorI2RlZmluZSBFTkFCTEVfQ1NTM19URVhUIDAKKyNlbmRpZgor
CisjaWYgIWRlZmluZWQoRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSykKKyNkZWZpbmUg
RU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVk
KEVOQUJMRV9DU1NfREVWSUNFX0FEQVBUQVRJT04pCisjZGVmaW5lIEVOQUJMRV9DU1NfREVWSUNF
X0FEQVBUQVRJT04gMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTX0NPTVBPU0lU
SU5HKQorI2RlZmluZSBFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HIDAKKyNlbmRpZgorCisjaWYgIWRl
ZmluZWQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKQorI2RlZmluZSBFTkFCTEVfQ1NTX0lN
QUdFX1JFU09MVVRJT04gMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTX0NPTklD
X0dSQURJRU5UUykKKyNkZWZpbmUgRU5BQkxFX0NTU19DT05JQ19HUkFESUVOVFMgMAorI2VuZGlm
CisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQ1VTVE9NX0NVUlNPUl9TVVBQT1JUKQorI2RlZmluZSBF
TkFCTEVfQ1VTVE9NX0NVUlNPUl9TVVBQT1JUIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5B
QkxFX0NVU1RPTV9TQ0hFTUVfSEFORExFUikKKyNkZWZpbmUgRU5BQkxFX0NVU1RPTV9TQ0hFTUVf
SEFORExFUiAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9EQVJLX01PREVfQ1NTKQor
I2RlZmluZSBFTkFCTEVfREFSS19NT0RFX0NTUyAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVO
QUJMRV9EQVRBTElTVF9FTEVNRU5UKQorI2RlZmluZSBFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCAw
CisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pCisjZGVm
aW5lIEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04gMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChF
TkFCTEVfRE9XTkxPQURfQVRUUklCVVRFKQorI2RlZmluZSBFTkFCTEVfRE9XTkxPQURfQVRUUklC
VVRFIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0RSQUdfU1VQUE9SVCkKKyNkZWZp
bmUgRU5BQkxFX0RSQUdfU1VQUE9SVCAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9F
TkNSWVBURURfTUVESUEpCisjZGVmaW5lIEVOQUJMRV9FTkNSWVBURURfTUVESUEgMAorI2VuZGlm
CisKKyNpZiAhZGVmaW5lZChFTkFCTEVfRklMVEVSU19MRVZFTF8yKQorI2RlZmluZSBFTkFCTEVf
RklMVEVSU19MRVZFTF8yIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0ZUUERJUikK
KyNkZWZpbmUgRU5BQkxFX0ZUUERJUiAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9G
VUxMU0NSRUVOX0FQSSkKKyNkZWZpbmUgRU5BQkxFX0ZVTExTQ1JFRU5fQVBJIDAKKyNlbmRpZgor
CisjaWYgIWRlZmluZWQoRU5BQkxFX0dBTUVQQUQpCisjZGVmaW5lIEVOQUJMRV9HQU1FUEFEIDAK
KyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0dFT0xPQ0FUSU9OKQorI2RlZmluZSBFTkFC
TEVfR0VPTE9DQVRJT04gMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfSU5ERVhFRF9E
QVRBQkFTRSkKKyNkZWZpbmUgRU5BQkxFX0lOREVYRURfREFUQUJBU0UgMAorI2VuZGlmCisKKyNp
ZiAhZGVmaW5lZChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJTKQorI2RlZmluZSBF
TkFCTEVfSU5ERVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJTIDAKKyNlbmRpZgorCisjaWYgIWRlZmlu
ZWQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IpCisjZGVmaW5lIEVOQUJMRV9JTlBVVF9UWVBFX0NP
TE9SIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSkKKyNk
ZWZpbmUgRU5BQkxFX0lOUFVUX1RZUEVfREFURSAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVO
QUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUpCisjZGVmaW5lIEVOQUJMRV9JTlBV
VF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFC
TEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKQorI2RlZmluZSBFTkFCTEVfSU5QVVRfVFlQRV9E
QVRFVElNRUxPQ0FMIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0lOUFVUX1RZUEVf
TU9OVEgpCisjZGVmaW5lIEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIIDAKKyNlbmRpZgorCisjaWYg
IWRlZmluZWQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkKKyNkZWZpbmUgRU5BQkxFX0lOUFVUX1RZ
UEVfVElNRSAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUsp
CisjZGVmaW5lIEVOQUJMRV9JTlBVVF9UWVBFX1dFRUsgMAorI2VuZGlmCisKKyNpZiBFTkFCTEUo
SU5QVVRfVFlQRV9EQVRFKSB8fCBFTkFCTEUoSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRF
KSB8fCBFTkFCTEUoSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSB8fCBFTkFCTEUoSU5QVVRfVFlQ
RV9NT05USCkgfHwgRU5BQkxFKElOUFVUX1RZUEVfVElNRSkgfHwgRU5BQkxFKElOUFVUX1RZUEVf
V0VFSykKKyNpZiAhZGVmaW5lZChFTkFCTEVfREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKKyNk
ZWZpbmUgRU5BQkxFX0RBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMgMQorI2VuZGlmCisjZW5kaWYK
KworI2lmICFkZWZpbmVkKEVOQUJMRV9JTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENIRVJTKQor
I2RlZmluZSBFTkFCTEVfSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUyAwCisjZW5kaWYK
KworI2lmICFkZWZpbmVkKEVOQUJMRV9JTlNQRUNUT1JfVEVMRU1FVFJZKQorI2RlZmluZSBFTkFC
TEVfSU5TUEVDVE9SX1RFTEVNRVRSWSAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9J
TlRMKQorI2RlZmluZSBFTkFCTEVfSU5UTCAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJM
RV9MQVlPVVRfRk9STUFUVElOR19DT05URVhUKQorI2RlZmluZSBFTkFCTEVfTEFZT1VUX0ZPUk1B
VFRJTkdfQ09OVEVYVCAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9MRUdBQ1lfQ1NT
X1ZFTkRPUl9QUkVGSVhFUykKKyNkZWZpbmUgRU5BQkxFX0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJ
WEVTIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0xFVFRFUlBSRVNTKQorI2RlZmlu
ZSBFTkFCTEVfTEVUVEVSUFJFU1MgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTUFU
SE1MKQorI2RlZmluZSBFTkFCTEVfTUFUSE1MIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5B
QkxFX01FRElBX0NBUFRVUkUpCisjZGVmaW5lIEVOQUJMRV9NRURJQV9DQVBUVVJFIDAKKyNlbmRp
ZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX01FRElBX0NPTlRST0xTX1NDUklQVCkKKyNkZWZpbmUg
RU5BQkxFX01FRElBX0NPTlRST0xTX1NDUklQVCAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVO
QUJMRV9NRURJQV9TT1VSQ0UpCisjZGVmaW5lIEVOQUJMRV9NRURJQV9TT1VSQ0UgMAorI2VuZGlm
CisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTUVESUFfU1RBVElTVElDUykKKyNkZWZpbmUgRU5BQkxF
X01FRElBX1NUQVRJU1RJQ1MgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTUVESUFf
U1RSRUFNKQorI2RlZmluZSBFTkFCTEVfTUVESUFfU1RSRUFNIDAKKyNlbmRpZgorCisjaWYgIWRl
ZmluZWQoRU5BQkxFX01FVEVSX0VMRU1FTlQpCisjZGVmaW5lIEVOQUJMRV9NRVRFUl9FTEVNRU5U
IDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX01IVE1MKQorI2RlZmluZSBFTkFCTEVf
TUhUTUwgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxF
KQorI2RlZmluZSBFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFIDAKKyNlbmRpZgorCisjaWYgIWRl
ZmluZWQoRU5BQkxFX01PVVNFX0ZPUkNFX0VWRU5UUykKKyNkZWZpbmUgRU5BQkxFX01PVVNFX0ZP
UkNFX0VWRU5UUyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9ORVRTQ0FQRV9QTFVH
SU5fQVBJKQorI2RlZmluZSBFTkFCTEVfTkVUU0NBUEVfUExVR0lOX0FQSSAxCisjZW5kaWYKKwor
I2lmICFkZWZpbmVkKEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fTUVUQURBVEFfQ0FDSEUpCisjZGVm
aW5lIEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fTUVUQURBVEFfQ0FDSEUgMAorI2VuZGlmCisKKyNp
ZiAhZGVmaW5lZChFTkFCTEVfTk9USUZJQ0FUSU9OUykKKyNkZWZpbmUgRU5BQkxFX05PVElGSUNB
VElPTlMgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfT0ZGU0NSRUVOX0NBTlZBUykK
KyNkZWZpbmUgRU5BQkxFX09GRlNDUkVFTl9DQU5WQVMgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5l
ZChFTkFCTEVfT1JJRU5UQVRJT05fRVZFTlRTKQorI2RlZmluZSBFTkFCTEVfT1JJRU5UQVRJT05f
RVZFTlRTIDAKKyNlbmRpZgorCisjaWYgT1MoV0lORE9XUykKKyNpZiAhZGVmaW5lZChFTkFCTEVf
UEFOX1NDUk9MTElORykKKyNkZWZpbmUgRU5BQkxFX1BBTl9TQ1JPTExJTkcgMQorI2VuZGlmCisj
ZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9QQVlNRU5UX1JFUVVFU1QpCisjZGVmaW5lIEVO
QUJMRV9QQVlNRU5UX1JFUVVFU1QgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfUE9J
TlRFUl9MT0NLKQorI2RlZmluZSBFTkFCTEVfUE9JTlRFUl9MT0NLIDEKKyNlbmRpZgorCisjaWYg
IWRlZmluZWQoRU5BQkxFX1FVT1RBKQorI2RlZmluZSBFTkFCTEVfUVVPVEEgMAorI2VuZGlmCisK
KyNpZiAhZGVmaW5lZChFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUikKKyNkZWZpbmUgRU5BQkxFX1JF
TU9URV9JTlNQRUNUT1IgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfUlVCQkVSX0JB
TkRJTkcpCisjZGVmaW5lIEVOQUJMRV9SVUJCRVJfQkFORElORyAwCisjZW5kaWYKKworI2lmICFk
ZWZpbmVkKEVOQUJMRV9TRUNVUklUWV9BU1NFUlRJT05TKQorLyogRW5hYmxlIHNlY3VyaXR5IGFz
c2VydGlvbnMgb24gYWxsIEFTQU4gYnVpbGRzIGFuZCBkZWJ1ZyBidWlsZHMuICovCisjaWYgQVNB
Tl9FTkFCTEVEIHx8ICFkZWZpbmVkKE5ERUJVRykKKyNkZWZpbmUgRU5BQkxFX1NFQ1VSSVRZX0FT
U0VSVElPTlMgMQorI2VuZGlmCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9TTU9PVEhf
U0NST0xMSU5HKQorI2RlZmluZSBFTkFCTEVfU01PT1RIX1NDUk9MTElORyAwCisjZW5kaWYKKwor
I2lmICFkZWZpbmVkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKQorI2RlZmluZSBFTkFCTEVfU1BF
RUNIX1NZTlRIRVNJUyAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9TUEVMTENIRUNL
KQorI2RlZmluZSBFTkFCTEVfU1BFTExDSEVDSyAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVO
QUJMRV9TVFJFQU1TX0FQSSkKKyNkZWZpbmUgRU5BQkxFX1NUUkVBTVNfQVBJIDEKKyNlbmRpZgor
CisjaWYgIWRlZmluZWQoRU5BQkxFX1NWR19GT05UUykKKyNkZWZpbmUgRU5BQkxFX1NWR19GT05U
UyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9URVhUX0NBUkVUKQorI2RlZmluZSBF
TkFCTEVfVEVYVF9DQVJFVCAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9URVhUX1NF
TEVDVElPTikKKyNkZWZpbmUgRU5BQkxFX1RFWFRfU0VMRUNUSU9OIDEKKyNlbmRpZgorCisjaWYg
IWRlZmluZWQoRU5BQkxFX0FTWU5DX1NDUk9MTElORykKKyNkZWZpbmUgRU5BQkxFX0FTWU5DX1ND
Uk9MTElORyAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9UT1VDSF9FVkVOVFMpCisj
ZGVmaW5lIEVOQUJMRV9UT1VDSF9FVkVOVFMgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFC
TEVfVklERU8pCisjZGVmaW5lIEVOQUJMRV9WSURFTyAwCisjZW5kaWYKKworI2lmICFkZWZpbmVk
KEVOQUJMRV9WSURFT19UUkFDSykKKyNkZWZpbmUgRU5BQkxFX1ZJREVPX1RSQUNLIDAKKyNlbmRp
ZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0RBVEFDVUVfVkFMVUUpCisjZGVmaW5lIEVOQUJMRV9E
QVRBQ1VFX1ZBTFVFIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1dFQkdMKQorI2Rl
ZmluZSBFTkFCTEVfV0VCR0wgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfR1JBUEhJ
Q1NfQ09OVEVYVF9HTCkKKyNkZWZpbmUgRU5BQkxFX0dSQVBISUNTX0NPTlRFWFRfR0wgRU5BQkxF
X1dFQkdMCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJfQVJDSElWRSkKKyNkZWZp
bmUgRU5BQkxFX1dFQl9BUkNISVZFIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1dF
Ql9BVURJTykKKyNkZWZpbmUgRU5BQkxFX1dFQl9BVURJTyAwCisjZW5kaWYKKworI2lmICFkZWZp
bmVkKEVOQUJMRV9YU0xUKQorI2RlZmluZSBFTkFCTEVfWFNMVCAxCisjZW5kaWYKKworI2lmICFk
ZWZpbmVkKEVOQUJMRV9EQVRBX0lOVEVSQUNUSU9OKQorI2RlZmluZSBFTkFCTEVfREFUQV9JTlRF
UkFDVElPTiAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9TRVJWSUNFX1dPUktFUikK
KyNkZWZpbmUgRU5BQkxFX1NFUlZJQ0VfV09SS0VSIDEKKyNlbmRpZgorCisKKy8qIEpJVCBGZWF0
dXJlcyAqLworCisvKiBUaGUgSklUIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBvbiBhbGwgeDg2LTY0
ICYgQVJNNjQgcGxhdGZvcm1zLiAqLworI2lmICFkZWZpbmVkKEVOQUJMRV9KSVQpICYmIChDUFUo
WDg2XzY0KSB8fCBDUFUoQVJNNjQpKSAmJiAhQ1BVKEFQUExFX0FSTVY3SykKKyNkZWZpbmUgRU5B
QkxFX0pJVCAxCisjZW5kaWYKKworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisjaWYgKENQVShBUk1f
VEhVTUIyKSB8fCBDUFUoTUlQUykpICYmIE9TKExJTlVYKQorLyogT24gQVJNdjcgYW5kIE1JUFMg
b24gTGludXggdGhlIEpJVCBpcyBlbmFibGVkIHVubGVzcyBleHBsaWNpdGx5IGRpc2FibGVkLiAq
LworI2lmICFkZWZpbmVkKEVOQUJMRV9KSVQpCisjZGVmaW5lIEVOQUJMRV9KSVQgMQorI2VuZGlm
CisjZWxzZQorLyogRGlzYWJsZSBKSVQgYW5kIGZvcmNlIENfTE9PUCBvbiBhbGwgb3RoZXIgMzJi
aXQgYXJjaGl0ZWN0dXJlcy4gKi8KKyN1bmRlZiBFTkFCTEVfSklUCisjZGVmaW5lIEVOQUJMRV9K
SVQgMAorI3VuZGVmIEVOQUJMRV9DX0xPT1AKKyNkZWZpbmUgRU5BQkxFX0NfTE9PUCAxCisjZW5k
aWYKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0NfTE9PUCkKKyNpZiBFTkFCTEUoSklU
KSB8fCBDUFUoWDg2XzY0KSB8fCAoQ1BVKEFSTTY0KSAmJiAhZGVmaW5lZChfX0lMUDMyX18pKQor
I2RlZmluZSBFTkFCTEVfQ19MT09QIDAKKyNlbHNlCisjZGVmaW5lIEVOQUJMRV9DX0xPT1AgMQor
I2VuZGlmCisjZW5kaWYKKworLyogRklYTUU6IFRoaXMgc2hvdWxkIGJlIHR1cm5lZCBpbnRvIGFu
ICNlcnJvciBpbnZhcmlhbnQgKi8KKy8qIFRoZSBGVEwgKmRvZXMgbm90KiB3b3JrIG9uIDMyLWJp
dCBwbGF0Zm9ybXMuIERpc2FibGUgaXQgZXZlbiBpZiBzb21lb25lIGFza2VkIHVzIHRvIGVuYWJs
ZSBpdC4gKi8KKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorI3VuZGVmIEVOQUJMRV9GVExfSklUCisj
ZGVmaW5lIEVOQUJMRV9GVExfSklUIDAKKyNlbmRpZgorCisvKiBGSVhNRTogVGhpcyBzaG91bGQg
YmUgdHVybmVkIGludG8gYW4gI2Vycm9yIGludmFyaWFudCAqLworLyogVGhlIEZUTCBpcyBkaXNh
YmxlZCBvbiB0aGUgaU9TIHNpbXVsYXRvciwgbW9zdGx5IGZvciBzaW1wbGljaXR5LiAqLworI2lm
IFBMQVRGT1JNKElPU19GQU1JTFlfU0lNVUxBVE9SKQorI3VuZGVmIEVOQUJMRV9GVExfSklUCisj
ZGVmaW5lIEVOQUJMRV9GVExfSklUIDAKKyNlbmRpZgorCisvKiBJZiBwb3NzaWJsZSwgdHJ5IHRv
IGVuYWJsZSBhIGRpc2Fzc2VtYmxlci4gVGhpcyBpcyBvcHRpb25hbC4gV2UgcHJvY2VlZCBpbiB0
d28KKyAgIHN0ZXBzOiBmaXJzdCB3ZSB0cnkgdG8gZmluZCBzb21lIGRpc2Fzc2VtYmxlciB0aGF0
IHdlIGNhbiB1c2UsIGFuZCB0aGVuIHdlCisgICBkZWNpZGUgaWYgdGhlIGhpZ2gtbGV2ZWwgZGlz
YXNzZW1ibGVyIEFQSSBjYW4gYmUgZW5hYmxlZC4gKi8KKyNpZiAhZGVmaW5lZChFTkFCTEVfVURJ
Uzg2KSAmJiBFTkFCTEUoSklUKSAmJiBDUFUoWDg2XzY0KSAmJiAhVVNFKENBUFNUT05FKQorI2Rl
ZmluZSBFTkFCTEVfVURJUzg2IDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0FSTTY0
X0RJU0FTU0VNQkxFUikgJiYgRU5BQkxFKEpJVCkgJiYgQ1BVKEFSTTY0KSAmJiAhVVNFKENBUFNU
T05FKQorI2RlZmluZSBFTkFCTEVfQVJNNjRfRElTQVNTRU1CTEVSIDEKKyNlbmRpZgorCisjaWYg
IWRlZmluZWQoRU5BQkxFX0RJU0FTU0VNQkxFUikgJiYgKEVOQUJMRShVRElTODYpIHx8IEVOQUJM
RShBUk02NF9ESVNBU1NFTUJMRVIpIHx8IChFTkFCTEUoSklUKSAmJiBVU0UoQ0FQU1RPTkUpKSkK
KyNkZWZpbmUgRU5BQkxFX0RJU0FTU0VNQkxFUiAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVO
QUJMRV9ERkdfSklUKSAmJiBFTkFCTEUoSklUKQorCisvKiBFbmFibGUgdGhlIERGRyBKSVQgb24g
WDg2IGFuZCBYODZfNjQuICovCisjaWYgQ1BVKFg4Nl82NCkgJiYgKE9TKERBUldJTikgfHwgT1Mo
TElOVVgpIHx8IE9TKEZSRUVCU0QpIHx8IE9TKEhVUkQpIHx8IE9TKFdJTkRPV1MpKQorI2RlZmlu
ZSBFTkFCTEVfREZHX0pJVCAxCisjZW5kaWYKKworLyogRW5hYmxlIHRoZSBERkcgSklUIG9uIEFS
TXY3LiAgT25seSB0ZXN0ZWQgb24gaU9TLCBMaW51eCwgYW5kIEZyZWVCU0QuICovCisjaWYgKENQ
VShBUk1fVEhVTUIyKSB8fCBDUFUoQVJNNjQpKSAmJiAoT1MoREFSV0lOKSB8fCBPUyhMSU5VWCkg
fHwgT1MoRlJFRUJTRCkpCisjZGVmaW5lIEVOQUJMRV9ERkdfSklUIDEKKyNlbmRpZgorCisvKiBF
bmFibGUgdGhlIERGRyBKSVQgb24gTUlQUy4gKi8KKyNpZiBDUFUoTUlQUykKKyNkZWZpbmUgRU5B
QkxFX0RGR19KSVQgMQorI2VuZGlmCisKKyNlbmRpZiAvKiAhZGVmaW5lZChFTkFCTEVfREZHX0pJ
VCkgJiYgRU5BQkxFKEpJVCkgKi8KKworLyogQ29uY3VycmVudCBKUyBvbmx5IHdvcmtzIG9uIDY0
LWJpdCBwbGF0Zm9ybXMgYmVjYXVzZSBpdCByZXF1aXJlcyB0aGF0CisgICB2YWx1ZXMgZ2V0IHN0
b3JlZCB0byBhdG9taWNhbGx5LiBUaGlzIGlzIHRyaXZpYWxseSB0cnVlIG9uIDY0LWJpdCBwbGF0
Zm9ybXMsCisgICBidXQgbm90IHRydWUgYXQgYWxsIG9uIDMyLWJpdCBwbGF0Zm9ybXMgd2hlcmUg
dmFsdWVzIGFyZSBjb21wb3NlZCBvZiB0d28KKyAgIHNlcGFyYXRlIHN1Yi12YWx1ZXMuICovCisj
aWYgRU5BQkxFKEpJVCkgJiYgVVNFKEpTVkFMVUU2NCkKKyNkZWZpbmUgRU5BQkxFX0NPTkNVUlJF
TlRfSlMgMQorI2VuZGlmCisKKyNpZiAoQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTTY0KSkgJiYgSEFW
RShGQVNUX1RMUykKKyNkZWZpbmUgRU5BQkxFX0ZBU1RfVExTX0pJVCAxCisjZW5kaWYKKworI2lm
IEVOQUJMRShKSVQpICYmIChDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KSB8fCBDUFUoQVJNX1RIVU1C
MikgfHwgQ1BVKEFSTTY0KSB8fCBDUFUoTUlQUykpCisjZGVmaW5lIEVOQUJMRV9NQVNNX1BST0JF
IDEKKyNlbmRpZgorCisvKiBGSVhNRTogVGhpcyBzaG91bGQgYmUgdHVybmVkIGludG8gYW4gI2Vy
cm9yIGludmFyaWFudCAqLworLyogSWYgdGhlIGJhc2VsaW5lIGppdCBpcyBub3QgYXZhaWxhYmxl
LCB0aGVuIGRpc2FibGUgdXBwZXIgdGllcnMgYXMgd2VsbC4KKyAgIFRoZSBNYWNyb0Fzc2VtYmxl
cjo6cHJvYmUoKSBpcyBhbHNvIHJlcXVpcmVkIGZvciBzdXBwb3J0aW5nIHRoZSB1cHBlciB0aWVy
cy4gKi8KKyNpZiAhRU5BQkxFKEpJVCkgfHwgIUVOQUJMRShNQVNNX1BST0JFKQorI3VuZGVmIEVO
QUJMRV9ERkdfSklUCisjdW5kZWYgRU5BQkxFX0ZUTF9KSVQKKyNkZWZpbmUgRU5BQkxFX0RGR19K
SVQgMAorI2RlZmluZSBFTkFCTEVfRlRMX0pJVCAwCisjZW5kaWYKKworLyogRklYTUU6IFRoaXMg
c2hvdWxkIGJlIHR1cm5lZCBpbnRvIGFuICNlcnJvciBpbnZhcmlhbnQgKi8KKy8qIElmIHRoZSBE
Rkcgaml0IGlzIG5vdCBhdmFpbGFibGUsIHRoZW4gZGlzYWJsZSB1cHBlciB0aWVycyBhcyB3ZWxs
OiAqLworI2lmICFFTkFCTEUoREZHX0pJVCkKKyN1bmRlZiBFTkFCTEVfRlRMX0pJVAorI2RlZmlu
ZSBFTkFCTEVfRlRMX0pJVCAwCisjZW5kaWYKKworLyogVGhpcyBjb250cm9scyB3aGV0aGVyIEIz
IGlzIGJ1aWx0LiBCMyBpcyBuZWVkZWQgZm9yIEZUTCBKSVQgYW5kIFdlYkFzc2VtYmx5ICovCisj
aWYgRU5BQkxFKEZUTF9KSVQpCisjZGVmaW5lIEVOQUJMRV9CM19KSVQgMQorI2VuZGlmCisKKyNp
ZiAhZGVmaW5lZChFTkFCTEVfV0VCQVNTRU1CTFkpICYmIChFTkFCTEUoQjNfSklUKSAmJiBQTEFU
Rk9STShDT0NPQSkgJiYgQ1BVKEFERFJFU1M2NCkpCisjZGVmaW5lIEVOQUJMRV9XRUJBU1NFTUJM
WSAxCisjZW5kaWYKKworLyogVGhlIFNhbXBsaW5nUHJvZmlsZXIgaXMgdGhlIHByb2JhYmlsaXN0
aWMgYW5kIGxvdy1vdmVyaGVhZCBwcm9maWxlciB1c2VkIGJ5CisgKiBKU0MgdG8gbWVhc3VyZSB3
aGVyZSB0aW1lIGlzIHNwZW50IGluc2lkZSBhIEphdmFTY3JpcHQgcHJvZ3JhbS4KKyAqIEluIGNv
bmZpZ3VyYXRpb25zIG90aGVyIHRoYW4gV2luZG93cyBhbmQgRGFyd2luLCBiZWNhdXNlIGxheW91
dCBvZiBtY29udGV4dF90IGRlcGVuZHMgb24gc3RhbmRhcmQgbGlicmFyaWVzIChsaWtlIGdsaWJj
KSwKKyAqIHNhbXBsaW5nIHByb2ZpbGVyIGlzIGVuYWJsZWQgaWYgV2ViS2l0IHVzZXMgcHRocmVh
ZHMgYW5kIGdsaWJjLiAqLworI2lmICFkZWZpbmVkKEVOQUJMRV9TQU1QTElOR19QUk9GSUxFUikg
JiYgKCFFTkFCTEUoQ19MT09QKSAmJiAoT1MoV0lORE9XUykgfHwgSEFWRShNQUNISU5FX0NPTlRF
WFQpKSkKKyNkZWZpbmUgRU5BQkxFX1NBTVBMSU5HX1BST0ZJTEVSIDEKKyNlbmRpZgorCisjaWYg
RU5BQkxFKFdFQkFTU0VNQkxZKSAmJiBIQVZFKE1BQ0hJTkVfQ09OVEVYVCkKKyNkZWZpbmUgRU5B
QkxFX1dFQkFTU0VNQkxZX0ZBU1RfTUVNT1JZIDEKKyNlbmRpZgorCisvKiBDb3VudHMgdXNlcyBv
ZiB3cml0ZSBiYXJyaWVycyB1c2luZyBzYW1wbGluZyBjb3VudGVycy4gQmUgc3VyZSB0byBhbHNv
CisgICBzZXQgRU5BQkxFX1NBTVBMSU5HX0NPVU5URVJTIHRvIDEuICovCisjaWYgIWRlZmluZWQo
RU5BQkxFX1dSSVRFX0JBUlJJRVJfUFJPRklMSU5HKQorI2RlZmluZSBFTkFCTEVfV1JJVEVfQkFS
UklFUl9QUk9GSUxJTkcgMAorI2VuZGlmCisKKy8qIExvZ3MgYWxsIGFsbG9jYXRpb24tcmVsYXRl
ZCBhY3Rpdml0eSB0aGF0IGdvZXMgdGhyb3VnaCBmYXN0TWFsbG9jIG9yIHRoZQorICAgSlNDIEdD
IChib3RoIGNlbGxzIGFuZCBidXR0ZXJmbGllcykuIEFsc28gbG9ncyBtYXJraW5nLiBOb3RlIHRo
YXQgdGhpcworICAgaXNuJ3QgYSBjb21wbGV0ZWx5IGFjY3VyYXRlIHZpZXcgb2YgdGhlIGhlYXAg
c2luY2UgaXQgZG9lc24ndCBpbmNsdWRlIGFsbAorICAgYnV0dGVyZmx5IHJlc2l6ZSBvcGVyYXRp
b25zLCBkb2Vzbid0IHRlbGwgeW91IHdoYXQgaXMgZ29pbmcgb24gd2l0aCB3ZWFrCisgICByZWZl
cmVuY2VzIChvdGhlciB0aGFuIHRvIHRlbGwgeW91IHdoZW4gdGhleSdyZSBtYXJrZWQpLCBhbmQg
ZG9lc24ndAorICAgdHJhY2sgZGlyZWN0IG1tYXAoKSBhbGxvY2F0aW9ucyBvciB0aGluZ3MgbGlr
ZSBKSVQgYWxsb2NhdGlvbi4gKi8KKyNpZiAhZGVmaW5lZChFTkFCTEVfQUxMT0NBVElPTl9MT0dH
SU5HKQorI2RlZmluZSBFTkFCTEVfQUxMT0NBVElPTl9MT0dHSU5HIDAKKyNlbmRpZgorCisvKiBF
bmFibGUgdmVyaWZpY2F0aW9uIHRoYXQgdGhhdCByZWdpc3RlciBhbGxvY2F0aW9ucyBhcmUgbm90
IG1hZGUgd2l0aGluIGdlbmVyYXRlZCBjb250cm9sIGZsb3cuCisgICBUdXJuZWQgb24gZm9yIGRl
YnVnIGJ1aWxkcy4gKi8KKyNpZiAhZGVmaW5lZChFTkFCTEVfREZHX1JFR0lTVEVSX0FMTE9DQVRJ
T05fVkFMSURBVElPTikgJiYgRU5BQkxFKERGR19KSVQpICYmICFkZWZpbmVkKE5ERUJVRykKKyNk
ZWZpbmUgRU5BQkxFX0RGR19SRUdJU1RFUl9BTExPQ0FUSU9OX1ZBTElEQVRJT04gMQorI2VuZGlm
CisKKyNpZiAhZGVmaW5lZChFTkFCTEVfU0VQQVJBVEVEX1dYX0hFQVApICYmIFBMQVRGT1JNKElP
U19GQU1JTFkpICYmIENQVShBUk02NCkgJiYgKCFFTkFCTEUoRkFTVF9KSVRfUEVSTUlTU0lPTlMp
IHx8ICFDUFUoQVJNNjRFKSkKKyNkZWZpbmUgRU5BQkxFX1NFUEFSQVRFRF9XWF9IRUFQIDEKKyNl
bmRpZgorCisvKiBEZXRlcm1pbmUgaWYgd2UgbmVlZCB0byBlbmFibGUgQ29tcHV0ZWQgR290byBP
cGNvZGVzIG9yIG5vdDogKi8KKyNpZiBIQVZFKENPTVBVVEVEX0dPVE8pIHx8ICFFTkFCTEUoQ19M
T09QKQorI2RlZmluZSBFTkFCTEVfQ09NUFVURURfR09UT19PUENPREVTIDEKKyNlbmRpZgorCisv
KiBSZWd1bGFyIEV4cHJlc3Npb24gVHJhY2luZyAtIFNldCB0byAxIHRvIHRyYWNlIFJlZ0V4cCdz
IGluIGpzYy4gIFJlc3VsdHMgZHVtcGVkIGF0IGV4aXQgKi8KKyNpZiAhZGVmaW5lZChFTkFCTEVf
UkVHRVhQX1RSQUNJTkcpCisjZGVmaW5lIEVOQUJMRV9SRUdFWFBfVFJBQ0lORyAwCisjZW5kaWYK
KworLyogWWV0IEFub3RoZXIgUmVnZXggUnVudGltZSAtIHR1cm5lZCBvbiBieSBkZWZhdWx0IGZv
ciBKSVQgZW5hYmxlZCBwb3J0cy4gKi8KKyNpZiAhZGVmaW5lZChFTkFCTEVfWUFSUl9KSVQpICYm
IEVOQUJMRShKSVQpCisjZGVmaW5lIEVOQUJMRV9ZQVJSX0pJVCAxCisjZW5kaWYKKworLyogU2V0
dGluZyB0aGlzIGZsYWcgY29tcGFyZXMgSklUIHJlc3VsdHMgd2l0aCBpbnRlcnByZXRlciByZXN1
bHRzLiAqLworI2lmICFkZWZpbmVkKEVOQUJMRV9ZQVJSX0pJVCkgJiYgRU5BQkxFKEpJVCkKKyNk
ZWZpbmUgRU5BQkxFX1lBUlJfSklUX0RFQlVHIDAKKyNlbmRpZgorCisvKiBFbmFibGUgSklUJ2lu
ZyBSZWd1bGFyIEV4cHJlc3Npb25zIHRoYXQgaGF2ZSBuZXN0ZWQgcGFyZW50aGVzaXMgLiAqLwor
I2lmIEVOQUJMRShZQVJSX0pJVCkgJiYgKENQVShBUk02NCkgfHwgKENQVShYODZfNjQpICYmICFP
UyhXSU5ET1dTKSkpCisjZGVmaW5lIEVOQUJMRV9ZQVJSX0pJVF9BTExfUEFSRU5TX0VYUFJFU1NJ
T05TIDEKKyNlbmRpZgorCisvKiBFbmFibGUgSklUJ2luZyBSZWd1bGFyIEV4cHJlc3Npb25zIHRo
YXQgaGF2ZSBuZXN0ZWQgYmFjayByZWZlcmVuY2VzLiAqLworI2lmIEVOQUJMRShZQVJSX0pJVCkg
JiYgKENQVShBUk02NCkgfHwgKENQVShYODZfNjQpICYmICFPUyhXSU5ET1dTKSkpCisjZGVmaW5l
IEVOQUJMRV9ZQVJSX0pJVF9CQUNLUkVGRVJFTkNFUyAxCisjZW5kaWYKKworLyogSWYgZWl0aGVy
IHRoZSBKSVQgb3IgdGhlIFJlZ0V4cCBKSVQgaXMgZW5hYmxlZCwgdGhlbiB0aGUgQXNzZW1ibGVy
IG11c3QgYmUKKyAgIGVuYWJsZWQgYXMgd2VsbDogKi8KKyNpZiBFTkFCTEUoSklUKSB8fCBFTkFC
TEUoWUFSUl9KSVQpIHx8ICFFTkFCTEUoQ19MT09QKQorI2lmIGRlZmluZWQoRU5BQkxFX0FTU0VN
QkxFUikgJiYgIUVOQUJMRV9BU1NFTUJMRVIKKyNlcnJvciAiQ2Fubm90IGVuYWJsZSB0aGUgSklU
IG9yIFJlZ0V4cCBKSVQgd2l0aG91dCBlbmFibGluZyB0aGUgQXNzZW1ibGVyIgorI2Vsc2UKKyN1
bmRlZiBFTkFCTEVfQVNTRU1CTEVSCisjZGVmaW5lIEVOQUJMRV9BU1NFTUJMRVIgMQorI2VuZGlm
CisjZW5kaWYKKworLyogSWYgdGhlIERpc2Fzc2VtYmxlciBpcyBlbmFibGVkLCB0aGVuIHRoZSBB
c3NlbWJsZXIgbXVzdCBiZSBlbmFibGVkIGFzIHdlbGw6ICovCisjaWYgRU5BQkxFKERJU0FTU0VN
QkxFUikKKyNpZiBkZWZpbmVkKEVOQUJMRV9BU1NFTUJMRVIpICYmICFFTkFCTEVfQVNTRU1CTEVS
CisjZXJyb3IgIkNhbm5vdCBlbmFibGUgdGhlIERpc2Fzc2VtYmxlciB3aXRob3V0IGVuYWJsaW5n
IHRoZSBBc3NlbWJsZXIiCisjZWxzZQorI3VuZGVmIEVOQUJMRV9BU1NFTUJMRVIKKyNkZWZpbmUg
RU5BQkxFX0FTU0VNQkxFUiAxCisjZW5kaWYKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxF
X0VYQ0VQVElPTl9TQ09QRV9WRVJJRklDQVRJT04pCisjZGVmaW5lIEVOQUJMRV9FWENFUFRJT05f
U0NPUEVfVkVSSUZJQ0FUSU9OIEFTU0VSVF9FTkFCTEVECisjZW5kaWYKKworI2lmIEVOQUJMRShE
RkdfSklUKSAmJiBIQVZFKE1BQ0hJTkVfQ09OVEVYVCkgJiYgKENQVShYODZfNjQpIHx8IENQVShB
Uk02NCkpCisjZGVmaW5lIEVOQUJMRV9TSUdOQUxfQkFTRURfVk1fVFJBUFMgMQorI2VuZGlmCisK
Ky8qIENTUyBTZWxlY3RvciBKSVQgQ29tcGlsZXIgKi8KKyNpZiAhZGVmaW5lZChFTkFCTEVfQ1NT
X1NFTEVDVE9SX0pJVCkgJiYgKChDUFUoWDg2XzY0KSB8fCBDUFUoQVJNNjQpIHx8IChDUFUoQVJN
X1RIVU1CMikgJiYgT1MoREFSV0lOKSkpICYmIEVOQUJMRShKSVQpICYmIChPUyhEQVJXSU4pIHx8
IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKSkpCisjZGVmaW5lIEVOQUJMRV9DU1NfU0VM
RUNUT1JfSklUIDEKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmICFQTEFURk9STShX
QVRDSE9TKSAmJiAhUExBVEZPUk0oQVBQTEVUVikgJiYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQor
I2RlZmluZSBFTkFCTEVfREFUQV9ERVRFQ1RJT04gMQorI2VuZGlmCisKKyNpZiBDUFUoQVJNX1RI
VU1CMikgfHwgQ1BVKEFSTTY0KQorI2RlZmluZSBFTkFCTEVfQlJBTkNIX0NPTVBBQ1RJT04gMQor
I2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfVEhSRUFESU5HX0xJQkRJU1BBVENIKSAmJiBI
QVZFKERJU1BBVENIX0gpCisjZGVmaW5lIEVOQUJMRV9USFJFQURJTkdfTElCRElTUEFUQ0ggMQor
I2VsaWYgIWRlZmluZWQoRU5BQkxFX1RIUkVBRElOR19PUEVOTVApICYmIGRlZmluZWQoX09QRU5N
UCkKKyNkZWZpbmUgRU5BQkxFX1RIUkVBRElOR19PUEVOTVAgMQorI2VsaWYgIWRlZmluZWQoVEhS
RUFESU5HX0dFTkVSSUMpCisjZGVmaW5lIEVOQUJMRV9USFJFQURJTkdfR0VORVJJQyAxCisjZW5k
aWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9HQ19WQUxJREFUSU9OKSAmJiAhZGVmaW5lZChOREVC
VUcpCisjZGVmaW5lIEVOQUJMRV9HQ19WQUxJREFUSU9OIDEKKyNlbmRpZgorCisjaWYgIWRlZmlu
ZWQoRU5BQkxFX0JJTkRJTkdfSU5URUdSSVRZKSAmJiAhT1MoV0lORE9XUykKKyNkZWZpbmUgRU5B
QkxFX0JJTkRJTkdfSU5URUdSSVRZIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1RS
RUVfREVCVUdHSU5HKSAmJiAhZGVmaW5lZChOREVCVUcpCisjZGVmaW5lIEVOQUJMRV9UUkVFX0RF
QlVHR0lORyAxCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKENPQ09BKQorI2RlZmluZSBFTkFCTEVf
UkVTT1VSQ0VfVVNBR0UgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfT1BFTlRZUEVf
VkVSVElDQUwpICYmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQorI2RlZmluZSBFTkFC
TEVfT1BFTlRZUEVfVkVSVElDQUwgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfT1BF
TlRZUEVfTUFUSCkgJiYgKE9TKERBUldJTikgJiYgVVNFKENHKSkgfHwgKFVTRShGUkVFVFlQRSkg
JiYgIVBMQVRGT1JNKEdUSykpIHx8IChQTEFURk9STShXSU4pICYmIChVU0UoQ0cpIHx8IFVTRShD
QUlSTykpKQorI2RlZmluZSBFTkFCTEVfT1BFTlRZUEVfTUFUSCAxCisjZW5kaWYKKworLyoKKyAq
IEVuYWJsZSB0aGlzIHRvIHB1dCBlYWNoIElzb0hlYXAgYW5kIG90aGVyIGFsbG9jYXRpb24gY2F0
ZWdvcmllcyBpbnRvIHRoZWlyIG93biBtYWxsb2MgaGVhcHMsIHNvIHRoYXQgdG9vbHMgbGlrZSB2
bW1hcCBjYW4gc2hvdyBob3cgYmlnIGVhY2ggaGVhcCBpcy4KKyAqIFR1cm4gQkVOQUJMRV9NQUxM
T0NfSEVBUF9CUkVBS0RPV04gb24gaW4gYm1hbGxvYyB0b2dldGhlciB3aGVuIHVzaW5nIHRoaXMu
CisgKi8KKyNpZiAhZGVmaW5lZChFTkFCTEVfTUFMTE9DX0hFQVBfQlJFQUtET1dOKQorI2RlZmlu
ZSBFTkFCTEVfTUFMTE9DX0hFQVBfQlJFQUtET1dOIDAKKyNlbmRpZgorCisvKiBEaXNhYmxlIFNo
YXJlZEFycmF5QnVmZmVycyB1bnRpbCBTcGVjdHJlIHNlY3VyaXR5IGNvbmNlcm5zIGFyZSBtaXRp
Z2F0ZWQuICovCisjZGVmaW5lIEVOQUJMRV9TSEFSRURfQVJSQVlfQlVGRkVSIDAKKworI2lmIFBM
QVRGT1JNKE1BQykKKyNkZWZpbmUgRU5BQkxFX1dFQl9QTEFZQkFDS19DT05UUk9MU19NQU5BR0VS
IDEKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisvKiBGSVhNRTogVGhpcyBpcyBhIFVT
RSBzdHlsZSBtYWNybywgYXMgaXQgdHJpZ2dlcnMgdGhlIHVzZSBvZiBDRlVSTENvbm5lY3Rpb24g
ZnJhbWV3b3JrIHN0dWJzLiAqLworLyogRklYTUU6IElzIHRoaXMgc3RpbGwgbmVjZXNzYXJ5PyBD
RlVSTENvbm5lY3Rpb24gaXNuJ3QgdXNlZCBvbiBDb2NvYSBwbGF0Zm9ybXMgYW55IG1vcmUuICov
CisjZGVmaW5lIEVOQUJMRV9TRUNfSVRFTV9TSElNIDEKKyNlbmRpZgorCisjaWYgUExBVEZPUk0o
TUFDKQorI2RlZmluZSBFTkFCTEVfRlVMTF9LRVlCT0FSRF9BQ0NFU1MgMQorI2VuZGlmCisKKyNp
ZiAoKFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShQTEFZU1RBVElPTikgfHwgUExBVEZPUk0o
V1BFKSkgJiYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykpIHx8IFBMQVRGT1JNKEdUSykKKyNkZWZp
bmUgRU5BQkxFX0tJTkVUSUNfU0NST0xMSU5HIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5B
QkxFX01PTk9TUEFDRV9GT05UX0VYQ0VQVElPTikgJiYgKChQTEFURk9STShNQUMpICYmIF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPCAxMDE1MDApIHx8IFBMQVRGT1JNKFdBVENIT1Mp
IHx8IFBMQVRGT1JNKEFQUExFVFYpKQorI2RlZmluZSBFTkFCTEVfTU9OT1NQQUNFX0ZPTlRfRVhD
RVBUSU9OIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1BMQVRGT1JNX0RSSVZFTl9U
RVhUX0NIRUNLSU5HKSAmJiBQTEFURk9STShNQUNDQVRBTFlTVCkKKyNkZWZpbmUgRU5BQkxFX1BM
QVRGT1JNX0RSSVZFTl9URVhUX0NIRUNLSU5HIDEKKyNlbmRpZgorCisvKiBUaGlzIGZlYXR1cmUg
d29ya3MgYnkgZW1iZWRkaW5nIHRoZSBPcGNvZGVJRCBpbiB0aGUgMzIgYml0IGp1c3QgYmVmb3Jl
IHRoZSBnZW5lcmF0ZWQgTExpbnQgY29kZQorICAgdGhhdCBleGVjdXRlcyBlYWNoIG9wY29kZS4g
SXQgY2Fubm90IGJlIHN1cHBvcnRlZCBieSB0aGUgQ0xvb3Agc2luY2UgdGhlcmUncyBubyB3YXkg
dG8gZW1iZWQgdGhlCisgICBPcGNvZGVJRCB3b3JkIGluIHRoZSBDTG9vcCdzIHN3aXRjaCBzdGF0
ZW1lbnQgY2FzZXMuIEl0IGlzIGFsc28gY3VycmVudGx5IG5vdCBpbXBsZW1lbnRlZCBmb3IgTVNW
Qy4KKyovCisjaWYgIWRlZmluZWQoRU5BQkxFX0xMSU5UX0VNQkVEREVEX09QQ09ERV9JRCkgJiYg
IUVOQUJMRShDX0xPT1ApICYmICFDT01QSUxFUihNU1ZDKSAmJiAoQ1BVKFg4NikgfHwgQ1BVKFg4
Nl82NCkgfHwgQ1BVKEFSTTY0KSB8fCAoQ1BVKEFSTV9USFVNQjIpICYmIE9TKERBUldJTikpKQor
I2RlZmluZSBFTkFCTEVfTExJTlRfRU1CRURERURfT1BDT0RFX0lEIDEKKyNlbmRpZgorCisKKy8q
IEFzc2VydHMsIGludmFyaWFudHMgZm9yIG1hY3JvIGRlZmluaXRpb25zICovCisKKyNpZiBFTkFC
TEUoVklERU9fVFJBQ0spICYmICFFTkFCTEUoVklERU8pCisjZXJyb3IgIkVOQUJMRShWSURFT19U
UkFDSykgcmVxdWlyZXMgRU5BQkxFKFZJREVPKSIKKyNlbmRpZgorCisjaWYgRU5BQkxFKE1FRElB
X0NPTlRST0xTX1NDUklQVCkgJiYgIUVOQUJMRShWSURFTykKKyNlcnJvciAiRU5BQkxFKE1FRElB
X0NPTlRST0xTX1NDUklQVCkgcmVxdWlyZXMgRU5BQkxFKFZJREVPKSIKKyNlbmRpZgorCisjaWYg
RU5BQkxFKElOU1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hFUlMpICYmICFFTkFCTEUoUkVNT1RF
X0lOU1BFQ1RPUikKKyNlcnJvciAiRU5BQkxFKElOU1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hF
UlMpIHJlcXVpcmVzIEVOQUJMRShSRU1PVEVfSU5TUEVDVE9SKSIKKyNlbmRpZgorCisjaWYgRU5B
QkxFKElPU19UT1VDSF9FVkVOVFMpICYmICFFTkFCTEUoVE9VQ0hfRVZFTlRTKQorI2Vycm9yICJF
TkFCTEUoSU9TX1RPVUNIX0VWRU5UUykgcmVxdWlyZXMgRU5BQkxFKFRPVUNIX0VWRU5UUykiCisj
ZW5kaWYKKworI2lmIEVOQUJMRShXRUJHTCkgJiYgIUVOQUJMRShHUkFQSElDU19DT05URVhUX0dM
KQorI2Vycm9yICJFTkFCTEUoV0VCR0wpIHJlcXVpcmVzIEVOQUJMRShHUkFQSElDU19DT05URVhU
X0dMKSIKKyNlbmRpZgorCisjaWYgRU5BQkxFKFdFQkdMMikgJiYgIUVOQUJMRShXRUJHTCkKKyNl
cnJvciAiRU5BQkxFKFdFQkdMMikgcmVxdWlyZXMgRU5BQkxFKFdFQkdMKSIKKyNlbmRpZgpJbmRl
eDogU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaAkocmV2aXNpb24gMjU1NTUyKQorKysg
U291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNi0yMDE5IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNi0yMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwNy0yMDA5IFRvcmNoIE1v
YmlsZSwgSW5jLgogICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDExIFJlc2VhcmNoIEluIE1vdGlv
biBMaW1pdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEzIFNh
bXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCkBAIC0zMiwyNzUgKzMyLDE3
MiBAQAogI2Vycm9yICJQbGVhc2UgI2luY2x1ZGUgPHd0Zi9QbGF0Zm9ybS5oPiBpbnN0ZWFkIG9m
IHRoaXMgZmlsZSBkaXJlY3RseS4iCiAjZW5kaWYKIAotCi0jZGVmaW5lIEVOQUJMRShXVEZfRkVB
VFVSRSkgKGRlZmluZWQgRU5BQkxFXyMjV1RGX0ZFQVRVUkUgJiYgRU5BQkxFXyMjV1RGX0ZFQVRV
UkUpCi0KLS8qIFVzZSB0aGlzIGZpbGUgdG8gbGlzdCBfYWxsXyBFTkFCTEUoKSBtYWNyb3MuIERl
ZmluZSB0aGUgbWFjcm9zIHRvIGJlIG9uZSBvZiB0aGUgZm9sbG93aW5nIHZhbHVlczoKLSAqICAt
ICIwIiBkaXNhYmxlcyB0aGUgZmVhdHVyZSBieSBkZWZhdWx0LiBUaGUgZmVhdHVyZSBjYW4gc3Rp
bGwgYmUgZW5hYmxlZCBmb3IgYSBzcGVjaWZpYyBwb3J0IG9yIGVudmlyb25tZW50LgotICogIC0g
IjEiIGVuYWJsZXMgdGhlIGZlYXR1cmUgYnkgZGVmYXVsdC4gVGhlIGZlYXR1cmUgY2FuIHN0aWxs
IGJlIGRpc2FibGVkIGZvciBhIHNwZWNpZmljIHBvcnQgb3IgZW52aXJvbm1lbnQuCi0gKgotICog
VGhlIGZlYXR1cmUgZGVmYXVsdHMgaW4gdGhpcyBmaWxlIGFyZSBvbmx5IHRha2VuIGludG8gYWNj
b3VudCBpZiB0aGUgKHBvcnQgc3BlY2lmaWMpIGJ1aWxkIHN5c3RlbQotICogaGFzIG5vdCBlbmFi
bGVkIG9yIGRpc2FibGVkIGEgcGFydGljdWxhciBmZWF0dXJlLgotICoKLSAqIFVzZSB0aGlzIGZp
bGUgdG8gZGVmaW5lIEVOQUJMRSgpIG1hY3JvcyBvbmx5LiBEbyBub3QgdXNlIHRoaXMgZmlsZSB0
byBkZWZpbmUgVVNFKCkgb3IgbWFjcm9zICEKLSAqCi0gKiBPbmx5IGRlZmluZSBhIG1hY3JvIGlm
IGl0IHdhcyBub3QgZGVmaW5lZCBiZWZvcmUgLSBhbHdheXMgY2hlY2sgZm9yICFkZWZpbmVkIGZp
cnN0LgotICoKLSAqIEtlZXAgdGhlIGZpbGUgc29ydGVkIGJ5IHRoZSBuYW1lIG9mIHRoZSBkZWZp
bmVzLiBBcyBhbiBleGNlcHRpb24geW91IGNhbiBjaGFuZ2UgdGhlIG9yZGVyCi0gKiB0byBhbGxv
dyBpbnRlcmRlcGVuZGVuY2llcyBiZXR3ZWVuIHRoZSBkZWZhdWx0IHZhbHVlcy4KLSAqCi0gKiBC
ZWxvdyBhcmUgYSBmZXcgcG90ZW50aWFsIGNvbW1hbmRzIHRvIHRha2UgYWR2YW50YWdlIG9mIHRo
aXMgZmlsZSBydW5uaW5nIGZyb20gdGhlIFNvdXJjZS9XVEYgZGlyZWN0b3J5Ci0gKgotICogR2V0
IHRoZSBsaXN0IG9mIGZlYXR1cmUgZGVmaW5lczogZ3JlcCAtbyAiRU5BQkxFX1woXHdcK1wpIiB3
dGYvUGxhdGZvcm1FbmFibGUuaCB8IHNvcnQgfCB1bmlxCi0gKiBHZXQgdGhlIGxpc3Qgb2YgZmVh
dHVyZXMgZW5hYmxlZCBieSBkZWZhdWx0IGZvciBhIFBMQVRGT1JNKFhYWCk6IGdjYyAtRSAtZE0g
LUkuIC1EV1RGX1BMQVRGT1JNX1hYWCAid3RmL1BsYXRmb3JtLmgiIHwgZ3JlcCAiRU5BQkxFX1x3
XCsgMSIgfCBjdXQgLWQnICcgLWYyIHwgc29ydAotICovCi0KLQotLyogRklYTUU6IFRoaXMgc2hv
dWxkIGJlIHJlbmFtZWQgdG8gRU5BQkxFX0FTU0VSVFMgZm9yIGNvbnNpc3RlbmN5IGFuZCBzbyBp
dCBjYW4gYmUgdXNlZCBhcyBFTkFCTEUoQVNTRVJUUykuICovCi0vKiBBU1NFUlRfRU5BQkxFRCBz
aG91bGQgYmUgdHJ1ZSBpZiB3ZSB3YW50IHRoZSBjdXJyZW50IGNvbXBpbGF0aW9uIHVuaXQgdG8K
LSAgIGRvIGRlYnVnIGFzc2VydGlvbiBjaGVja3MgdW5jb25kaXRpb25hbGx5IChlLmcuIHRyZWF0
IGEgZGVidWcgQVNTRVJUCi0gICBsaWtlIGEgUkVMRUFTRV9BU1NFUlQuCi0qLwotI2lmbmRlZiBB
U1NFUlRfRU5BQkxFRAotI2lmZGVmIE5ERUJVRwotI2RlZmluZSBBU1NFUlRfRU5BQkxFRCAwCi0j
ZWxzZQotI2RlZmluZSBBU1NFUlRfRU5BQkxFRCAxCi0jZW5kaWYKKyNpZiAhUExBVEZPUk0oQ09D
T0EpCisjZXJyb3IgIlRoaXMgZmlsZSBzaG91bGQgb25seSBiZSBpbmNsdWRlZCB3aGVuIGJ1aWxk
aW5nIGZvciBvbmUgb2YgQXBwbGUncyBDb2NvYSBwbGF0Zm9ybXMuIgogI2VuZGlmCiAKLS8qID09
PT0gUGxhdGZvcm0gYWRkaXRpb25zOiBhZGRpdGlvbnMgdG8gUGxhdGZvcm1FbmFibGUuaCBmcm9t
IG91dHNpZGUgdGhlIG1haW4gcmVwb3NpdG9yeSA9PT09ICovCiAKLSNpZiBVU0UoQVBQTEVfSU5U
RVJOQUxfU0RLKSAmJiBfX2hhc19pbmNsdWRlKDxXZWJLaXRBZGRpdGlvbnMvQWRkaXRpb25hbEZl
YXR1cmVEZWZpbmVzLmg+KQotI2luY2x1ZGUgPFdlYktpdEFkZGl0aW9ucy9BZGRpdGlvbmFsRmVh
dHVyZURlZmluZXMuaD4KLSNlbmRpZgotCi0vKiBGSVhNRTogTW92ZSBvdXQgdGhlIFBMQVRGT1JN
IHNwZWNpZmljIHJ1bGVzIGludG8gcGxhdGZvcm0gc3BlY2lmaWMgZmlsZXMuICovCiAKLS8qIC0t
LS0tLS0tLSBBcHBsZSBpT1MgKGJ1dCBub3QgbWFjT1MpIHBvcnQgLS0tLS0tLS0tICovCi0jaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKIAotI2lmICFkZWZpbmVkKEVOQUJMRV9BSVJQTEFZX1BJQ0tF
UikKLSNpZiAhUExBVEZPUk0oTUFDQ0FUQUxZU1QpCisjaWYgIWRlZmluZWQoRU5BQkxFX0FJUlBM
QVlfUElDS0VSKSAmJiAoUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgIVBMQVRGT1JNKE1BQ0NBVEFM
WVNUKQogI2RlZmluZSBFTkFCTEVfQUlSUExBWV9QSUNLRVIgMQogI2VuZGlmCi0jZW5kaWYKIAot
I2lmICFkZWZpbmVkKEVOQUJMRV9BUFBMRV9QQVlfUkVNT1RFX1VJKQotI2lmICFQTEFURk9STShB
UFBMRVRWKSAmJiAhUExBVEZPUk0oTUFDQ0FUQUxZU1QpICYmICFQTEFURk9STShXQVRDSE9TKQor
I2lmICFkZWZpbmVkKEVOQUJMRV9BUFBMRV9QQVlfUkVNT1RFX1VJKSAmJiAoUExBVEZPUk0oSU9T
X0ZBTUlMWSkgJiYgIVBMQVRGT1JNKEFQUExFVFYpICYmICFQTEFURk9STShNQUNDQVRBTFlTVCkg
JiYgIVBMQVRGT1JNKFdBVENIT1MpKQogI2RlZmluZSBFTkFCTEVfQVBQTEVfUEFZX1JFTU9URV9V
SSAxCiAjZW5kaWYKLSNlbmRpZgogCi0jaWYgIWRlZmluZWQoRU5BQkxFX0NPTlRFTlRfRVhURU5T
SU9OUykKKyNpZiAhZGVmaW5lZChFTkFCTEVfQ09OVEVOVF9FWFRFTlNJT05TKSAmJiAoUExBVEZP
Uk0oSU9TX0ZBTUlMWSkgfHwgUExBVEZPUk0oTUFDKSkKICNkZWZpbmUgRU5BQkxFX0NPTlRFTlRf
RVhURU5TSU9OUyAxCiAjZW5kaWYKIAotI2lmICFkZWZpbmVkKEVOQUJMRV9DT05URVhUX01FTlVT
KQorI2lmICFkZWZpbmVkKEVOQUJMRV9DT05URVhUX01FTlVTKSAmJiBQTEFURk9STShJT1NfRkFN
SUxZKQogI2RlZmluZSBFTkFCTEVfQ09OVEVYVF9NRU5VUyAwCiAjZW5kaWYKIAotI2lmICFkZWZp
bmVkKEVOQUJMRV9DT05URVhUX01FTlVfRVZFTlQpCi0jaWYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNU
KQorI2lmICFkZWZpbmVkKEVOQUJMRV9DT05URVhUX01FTlVfRVZFTlQpICYmIChQTEFURk9STShJ
T1NfRkFNSUxZKSAmJiAhUExBVEZPUk0oTUFDQ0FUQUxZU1QpKQogI2RlZmluZSBFTkFCTEVfQ09O
VEVYVF9NRU5VX0VWRU5UIDAKICNlbmRpZgotI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChFTkFCTEVf
Q1VTVE9NX0NVUlNPUl9TVVBQT1JUKQorI2lmICFkZWZpbmVkKEVOQUJMRV9DVVNUT01fQ1VSU09S
X1NVUFBPUlQpICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAjZGVmaW5lIEVOQUJMRV9DVVNUT01f
Q1VSU09SX1NVUFBPUlQgMAogI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChFTkFCTEVfRFJBR19TVVBQ
T1JUKQorI2lmICFkZWZpbmVkKEVOQUJMRV9EUkFHX1NVUFBPUlQpICYmIFBMQVRGT1JNKElPU19G
QU1JTFkpCiAjZGVmaW5lIEVOQUJMRV9EUkFHX1NVUFBPUlQgMAogI2VuZGlmCiAKLSNpZiAhZGVm
aW5lZChFTkFCTEVfR0VPTE9DQVRJT04pCisjaWYgIWRlZmluZWQoRU5BQkxFX0dFT0xPQ0FUSU9O
KSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQogI2RlZmluZSBFTkFCTEVfR0VPTE9DQVRJT04gMQog
I2VuZGlmCiAKLSNpZiAhZGVmaW5lZChFTkFCTEVfSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRD
SEVSUykKKyNpZiAhZGVmaW5lZChFTkFCTEVfSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVS
UykgJiYgKFBMQVRGT1JNKElPU19GQU1JTFkpIHx8IFBMQVRGT1JNKE1BQykpCiAjZGVmaW5lIEVO
QUJMRV9JTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENIRVJTIDEKICNlbmRpZgogCi0jaWYgIWRl
ZmluZWQoRU5BQkxFX0lOU1BFQ1RPUl9URUxFTUVUUlkpCi0jZGVmaW5lIEVOQUJMRV9JTlNQRUNU
T1JfVEVMRU1FVFJZIDAKKyNpZiAhZGVmaW5lZChFTkFCTEVfSU5TUEVDVE9SX1RFTEVNRVRSWSkg
JiYgUExBVEZPUk0oTUFDKQorI2RlZmluZSBFTkFCTEVfSU5TUEVDVE9SX1RFTEVNRVRSWSAxCiAj
ZW5kaWYKIAotI2lmICFkZWZpbmVkKEVOQUJMRV9MRVRURVJQUkVTUykKKyNpZiAhZGVmaW5lZChF
TkFCTEVfTEVUVEVSUFJFU1MpICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAjZGVmaW5lIEVOQUJM
RV9MRVRURVJQUkVTUyAxCiAjZW5kaWYKIAotI2lmICFkZWZpbmVkKEVOQUJMRV9BVVRPQ09SUkVD
VCkKKyNpZiAhZGVmaW5lZChFTkFCTEVfQVVUT0NPUlJFQ1QpICYmIFBMQVRGT1JNKElPU19GQU1J
TFkpCiAjZGVmaW5lIEVOQUJMRV9BVVRPQ09SUkVDVCAxCiAjZW5kaWYKIAotI2lmICFkZWZpbmVk
KEVOQUJMRV9BVVRPQ0FQSVRBTElaRSkKKyNpZiAhZGVmaW5lZChFTkFCTEVfQVVUT0NBUElUQUxJ
WkUpICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAjZGVmaW5lIEVOQUJMRV9BVVRPQ0FQSVRBTEla
RSAxCiAjZW5kaWYKIAotI2lmICFkZWZpbmVkKEVOQUJMRV9JT1NfR0VTVFVSRV9FVkVOVFMpICYm
IFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisjaWYgIWRlZmluZWQoRU5BQkxFX0lPU19HRVNUVVJF
X0VWRU5UUykgJiYgKFBMQVRGT1JNKElPU19GQU1JTFkpICYmIFVTRShBUFBMRV9JTlRFUk5BTF9T
REspKQogI2RlZmluZSBFTkFCTEVfSU9TX0dFU1RVUkVfRVZFTlRTIDEKICNlbmRpZgogCi0jaWYg
IWRlZmluZWQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykKLSNkZWZpbmUgRU5BQkxFX1RFWFRfQVVU
T1NJWklORyAxCisjaWYgIWRlZmluZWQoRU5BQkxFX0lPU19UT1VDSF9FVkVOVFMpICYmIChQTEFU
Rk9STShJT1NfRkFNSUxZKSAmJiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKSkKKyNkZWZpbmUgRU5B
QkxFX0lPU19UT1VDSF9FVkVOVFMgMQogI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChFTkFCTEVfSU9T
X1RPVUNIX0VWRU5UUykgJiYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKLSNkZWZpbmUgRU5BQkxF
X0lPU19UT1VDSF9FVkVOVFMgMQorI2lmICFkZWZpbmVkKEVOQUJMRV9URVhUX0FVVE9TSVpJTkcp
ICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCisjZGVmaW5lIEVOQUJMRV9URVhUX0FVVE9TSVpJTkcg
MQogI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChFTkFCTEVfTUVURVJfRUxFTUVOVCkKKyNpZiAhZGVm
aW5lZChFTkFCTEVfTUVURVJfRUxFTUVOVCkgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICNkZWZp
bmUgRU5BQkxFX01FVEVSX0VMRU1FTlQgMAogI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChFTkFCTEVf
TkVUU0NBUEVfUExVR0lOX0FQSSkKKyNpZiAhZGVmaW5lZChFTkFCTEVfTkVUU0NBUEVfUExVR0lO
X0FQSSkgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICNkZWZpbmUgRU5BQkxFX05FVFNDQVBFX1BM
VUdJTl9BUEkgMAogI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChFTkFCTEVfT1JJRU5UQVRJT05fRVZF
TlRTKQorI2lmICFkZWZpbmVkKEVOQUJMRV9PUklFTlRBVElPTl9FVkVOVFMpICYmIFBMQVRGT1JN
KElPU19GQU1JTFkpCiAjZGVmaW5lIEVOQUJMRV9PUklFTlRBVElPTl9FVkVOVFMgMQogI2VuZGlm
CiAKLSNpZiAhZGVmaW5lZChFTkFCTEVfUE9JTlRFUl9MT0NLKQorI2lmICFkZWZpbmVkKEVOQUJM
RV9QT0lOVEVSX0xPQ0spICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAjZGVmaW5lIEVOQUJMRV9Q
T0lOVEVSX0xPQ0sgMAogI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChFTkFCTEVfUkVNT1RFX0lOU1BF
Q1RPUikKKyNpZiAhZGVmaW5lZChFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUikgJiYgKFBMQVRGT1JN
KElPU19GQU1JTFkpIHx8IFBMQUZPUk0oTUFDKSkKICNkZWZpbmUgRU5BQkxFX1JFTU9URV9JTlNQ
RUNUT1IgMQogI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChFTkFCTEVfVEVYVF9DQVJFVCkKKyNpZiAh
ZGVmaW5lZChFTkFCTEVfVEVYVF9DQVJFVCkgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICNkZWZp
bmUgRU5BQkxFX1RFWFRfQ0FSRVQgMAogI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChFTkFCTEVfVEVY
VF9TRUxFQ1RJT04pCisjaWYgIWRlZmluZWQoRU5BQkxFX1RFWFRfU0VMRUNUSU9OKSAmJiBQTEFU
Rk9STShJT1NfRkFNSUxZKQogI2RlZmluZSBFTkFCTEVfVEVYVF9TRUxFQ1RJT04gMAogI2VuZGlm
CiAKLS8qIEZJWE1FOiBSZW1vdmUgdGhlIFVTRShBUFBMRV9JTlRFUk5BTF9TREspIGNvbmp1bmN0
IG9uY2Ugd2Ugc3VwcG9ydCB0b3VjaCBldmVudHMgd2hlbiBidWlsZGluZyBhZ2FpbnN0Ci10aGUg
cHVibGljIGlPUyBTREsuIFNlZSA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTc5MTY3Pi4gKi8KLSNp
ZiAhZGVmaW5lZChFTkFCTEVfVE9VQ0hfRVZFTlRTKSAmJiBVU0UoQVBQTEVfSU5URVJOQUxfU0RL
KQorI2lmICFkZWZpbmVkKEVOQUJMRV9UT1VDSF9FVkVOVFMpICYmIChQTEFURk9STShJT1NfRkFN
SUxZKSAmJiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKSkKICNkZWZpbmUgRU5BQkxFX1RPVUNIX0VW
RU5UUyAxCiAjZW5kaWYKIAotI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJfQVJDSElWRSkKKyNpZiAh
ZGVmaW5lZChFTkFCTEVfV0VCX0FSQ0hJVkUpICYmIChQTEFURk9STShJT1NfRkFNSUxZKSB8fCBQ
TEFGT1JNKE1BQykpCiAjZGVmaW5lIEVOQUJMRV9XRUJfQVJDSElWRSAxCiAjZW5kaWYKIAotI2lm
ICFkZWZpbmVkKEVOQUJMRV9XRUJHTCkKKyNpZiAhZGVmaW5lZChFTkFCTEVfV0VCR0wpICYmIFBM
QVRGT1JNKElPU19GQU1JTFkpCiAjZGVmaW5lIEVOQUJMRV9XRUJHTCAxCiAjZW5kaWYKIAotI2lm
ICFkZWZpbmVkKEVOQUJMRV9QUklNQVJZX1NOQVBTSE9UVEVEX1BMVUdJTl9IRVVSSVNUSUMpCisj
aWYgIWRlZmluZWQoRU5BQkxFX1BSSU1BUllfU05BUFNIT1RURURfUExVR0lOX0hFVVJJU1RJQykg
JiYgKFBMQVRGT1JNKElPU19GQU1JTFkpIHx8IFBMQUZPUk0oTUFDKSkKICNkZWZpbmUgRU5BQkxF
X1BSSU1BUllfU05BUFNIT1RURURfUExVR0lOX0hFVVJJU1RJQyAxCiAjZW5kaWYKIAotI2lmICFk
ZWZpbmVkKEVOQUJMRV9ET1dOTE9BRF9BVFRSSUJVVEUpCi0jZGVmaW5lIEVOQUJMRV9ET1dOTE9B
RF9BVFRSSUJVVEUgMQotI2VuZGlmCi0KICNpZiAhZGVmaW5lZChFTkFCTEVfV0tQREZWSUVXKSAm
JiBQTEFURk9STShJT1MpCiAjZGVmaW5lIEVOQUJMRV9XS1BERlZJRVcgMQogI2VuZGlmCiAKLSNp
ZiAhZGVmaW5lZChFTkFCTEVfTUVESUFfU09VUkNFKQotI2RlZmluZSBFTkFCTEVfTUVESUFfU09V
UkNFIDAKKyNpZiAhZGVmaW5lZChFTkFCTEVfTUVESUFfU09VUkNFKSAmJiBQTEFURk9STShNQUMp
CisjZGVmaW5lIEVOQUJMRV9NRURJQV9TT1VSQ0UgMQogI2VuZGlmCiAKICNpZiAhZGVmaW5lZChF
TkFCTEVfUFJFVklFV19DT05WRVJURVIpICYmIFBMQVRGT1JNKElPUykKICNkZWZpbmUgRU5BQkxF
X1BSRVZJRVdfQ09OVkVSVEVSIDEKICNlbmRpZgogCi0jaWYgIWRlZmluZWQoRU5BQkxFX01FVEFf
VklFV1BPUlQpCisjaWYgIWRlZmluZWQoRU5BQkxFX01FVEFfVklFV1BPUlQpICYmIFBMQVRGT1JN
KElPU19GQU1JTFkpCiAjZGVmaW5lIEVOQUJMRV9NRVRBX1ZJRVdQT1JUIDEKICNlbmRpZgogCi0j
ZW5kaWYgLyogUExBVEZPUk0oSU9TX0ZBTUlMWSkgKi8KLQotLyogLS0tLS0tLS0tIEFwcGxlIHdh
dGNoT1MgcG9ydCAtLS0tLS0tLS0gKi8KLSNpZiBQTEFURk9STShXQVRDSE9TKQotCi0jZW5kaWYg
LyogUExBVEZPUk0oV0FUQ0hPUykgKi8KLQotLyogLS0tLS0tLS0tIEFwcGxlIG1hY09TIHBvcnQg
KG5vdCBpT1MpIC0tLS0tLS0tLSAqLwotI2lmIFBMQVRGT1JNKE1BQykKLQotI2lmICFkZWZpbmVk
KEVOQUJMRV9DT05URU5UX0VYVEVOU0lPTlMpCi0jZGVmaW5lIEVOQUJMRV9DT05URU5UX0VYVEVO
U0lPTlMgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpCisj
aWYgIWRlZmluZWQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAmJiBQTEFURk9STShNQUMpCiAjZGVm
aW5lIEVOQUJMRV9GVUxMU0NSRUVOX0FQSSAxCiAjZW5kaWYKIAotI2lmICFkZWZpbmVkKEVOQUJM
RV9SRU1PVEVfSU5TUEVDVE9SKQotI2RlZmluZSBFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUiAxCi0j
ZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9JTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENI
RVJTKQotI2RlZmluZSBFTkFCTEVfSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUyAxCi0j
ZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9JTlNQRUNUT1JfVEVMRU1FVFJZKQotI2RlZmlu
ZSBFTkFCTEVfSU5TUEVDVE9SX1RFTEVNRVRSWSAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVO
QUJMRV9TTU9PVEhfU0NST0xMSU5HKQorI2lmICFkZWZpbmVkKEVOQUJMRV9TTU9PVEhfU0NST0xM
SU5HKSAmJiBQTEFURk9STShNQUMpCiAjZGVmaW5lIEVOQUJMRV9TTU9PVEhfU0NST0xMSU5HIDEK
ICNlbmRpZgogCi0jaWYgRU5BQkxFKFZJREVPKQotI2lmICFkZWZpbmVkKEVOQUJMRV9WSURFT19U
UkFDSykKKyNpZiAhZGVmaW5lZChFTkFCTEVfVklERU9fVFJBQ0spICYmIFBMQVRGT1JNKE1BQykg
JiYgRU5BQkxFKFZJREVPKQogI2RlZmluZSBFTkFCTEVfVklERU9fVFJBQ0sgMQogI2VuZGlmCi0j
ZW5kaWYKIAotI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJfQVJDSElWRSkKLSNkZWZpbmUgRU5BQkxF
X1dFQl9BUkNISVZFIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX1dFQl9BVURJTykK
KyNpZiAhZGVmaW5lZChFTkFCTEVfV0VCX0FVRElPKSAmJiBQTEFURk9STShNQUMpCiAjZGVmaW5l
IEVOQUJMRV9XRUJfQVVESU8gMQogI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChFTkFCTEVfQ1VSU09S
X1ZJU0lCSUxJVFkpCisjaWYgIWRlZmluZWQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKSAmJiBQ
TEFURk9STShNQUMpCiAjZGVmaW5lIEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSAxCiAjZW5kaWYK
IAotI2lmICFkZWZpbmVkKEVOQUJMRV9QUklNQVJZX1NOQVBTSE9UVEVEX1BMVUdJTl9IRVVSSVNU
SUMpCi0jZGVmaW5lIEVOQUJMRV9QUklNQVJZX1NOQVBTSE9UVEVEX1BMVUdJTl9IRVVSSVNUSUMg
MQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfTUFDX0dFU1RVUkVfRVZFTlRTKSAmJiBV
U0UoQVBQTEVfSU5URVJOQUxfU0RLKQorI2lmICFkZWZpbmVkKEVOQUJMRV9NQUNfR0VTVFVSRV9F
VkVOVFMpICYmIChQTEFURk9STShNQUMpICYmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspKQogI2Rl
ZmluZSBFTkFCTEVfTUFDX0dFU1RVUkVfRVZFTlRTIDEKICNlbmRpZgogCi0jaWYgIWRlZmluZWQo
RU5BQkxFX1dFQlBST0NFU1NfTlNSVU5MT09QKQotI2RlZmluZSBFTkFCTEVfV0VCUFJPQ0VTU19O
U1JVTkxPT1AgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE0MDAKKyNpZiAh
ZGVmaW5lZChFTkFCTEVfV0VCUFJPQ0VTU19OU1JVTkxPT1ApICYmIChQTEFURk9STShNQUMpICYm
IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNDAwKQorI2RlZmluZSBFTkFC
TEVfV0VCUFJPQ0VTU19OU1JVTkxPT1AgMQogI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChFTkFCTEVf
V0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCi0jZGVmaW5lIEVOQUJMRV9XRUJQUk9D
RVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORyBFTkFCTEVfV0VCUFJPQ0VTU19OU1JVTkxPT1AKKyNp
ZiAhZGVmaW5lZChFTkFCTEVfV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpICYmIChQ
TEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNDAw
KQorI2RlZmluZSBFTkFCTEVfV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcgMQogI2Vu
ZGlmCiAKLSNpZiAhZGVmaW5lZChFTkFCTEVfTUVESUFfU09VUkNFKQotI2RlZmluZSBFTkFCTEVf
TUVESUFfU09VUkNFIDEKLSNlbmRpZgotCi0jZW5kaWYgLyogUExBVEZPUk0oTUFDKSAqLwotCi0v
KiAtLS0tLS0tLS0gQXBwbGUgQ29jb2EgcGxhdGZvcm1zIC0tLS0tLS0tLSAqLwotCi0jaWYgUExB
VEZPUk0oQ09DT0EpCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfTEVHQUNZX0VOQ1JZUFRFRF9NRURJ
QSkKLSNpZiBQTEFURk9STShNQUNDQVRBTFlTVCkKLSNkZWZpbmUgRU5BQkxFX0xFR0FDWV9FTkNS
WVBURURfTUVESUEgMAotI2Vsc2UKKyNpZiAhZGVmaW5lZChFTkFCTEVfTEVHQUNZX0VOQ1JZUFRF
RF9NRURJQSkgJiYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQogI2RlZmluZSBFTkFCTEVfTEVHQUNZ
X0VOQ1JZUFRFRF9NRURJQSAxCiAjZW5kaWYKLSNlbmRpZgogCiAjaWYgIWRlZmluZWQoRU5BQkxF
X0ZJTEVfUkVQTEFDRU1FTlQpCiAjZGVmaW5lIEVOQUJMRV9GSUxFX1JFUExBQ0VNRU5UIDEKQEAg
LTMxOCw2OTkgKzIxNSwxMCBAQCB0aGUgcHVibGljIGlPUyBTREsuIFNlZSA8aHR0cHM6Ly93ZWJr
aXQuCiAjZGVmaW5lIEVOQUJMRV9VSV9TSURFX0NPTVBPU0lUSU5HIDEKICNlbmRpZgogCi0jZW5k
aWYgLyogUExBVEZPUk0oQ09DT0EpICovCi0KLSNpZiAhUExBVEZPUk0oQ09DT0EpCi0KLSNpZiAh
ZGVmaW5lZChKU0NfT0JKQ19BUElfRU5BQkxFRCkKLSNkZWZpbmUgSlNDX09CSkNfQVBJX0VOQUJM
RUQgMAotI2VuZGlmCi0KLSNlbmRpZiAvKiAhUExBVEZPUk0oQ09DT0EpICovCi0KLQotLyogLS0t
LS0tLS0tIEFwcGxlIFdpbmRvd3MgcG9ydCAtLS0tLS0tLS0gKi8KLSNpZiBQTEFURk9STShXSU4p
ICYmICFQTEFURk9STShXSU5fQ0FJUk8pCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfRlVMTFNDUkVF
Tl9BUEkpCi0jZGVmaW5lIEVOQUJMRV9GVUxMU0NSRUVOX0FQSSAxCi0jZW5kaWYKLQotI2lmICFk
ZWZpbmVkKEVOQUJMRV9XRUJfQVJDSElWRSkKLSNkZWZpbmUgRU5BQkxFX1dFQl9BUkNISVZFIDEK
LSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX1dFQkdMKQotI2RlZmluZSBFTkFCTEVfV0VC
R0wgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfR0VPTE9DQVRJT04pCi0jZGVmaW5l
IEVOQUJMRV9HRU9MT0NBVElPTiAxCi0jZW5kaWYKLQotI2VuZGlmIC8qIFBMQVRGT1JNKFdJTikg
JiYgIVBMQVRGT1JNKFdJTl9DQUlSTykgKi8KLQotLyogLS0tLS0tLS0tIFdpbmRvd3MgQ0FJUk8g
cG9ydCAtLS0tLS0tLS0gKi8KLS8qIFBMQVRGT1JNKFdJTl9DQUlSTykgaXMgYSBzcGVjaWFsaXph
dGlvbiBvZiBQTEFURk9STShXSU4pLiAqLwotLyogUExBVEZPUk0oV0lOKSBpcyBhbHdheXMgZW5h
YmxlZCB3aGVuIFBMQVRGT1JNKFdJTl9DQUlSTykgaXMgZW5hYmxlZC4gKi8KLSNpZiBQTEFURk9S
TShXSU5fQ0FJUk8pCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfV0VCX0FSQ0hJVkUpCi0jZGVmaW5l
IEVOQUJMRV9XRUJfQVJDSElWRSAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJH
TCkKLSNkZWZpbmUgRU5BQkxFX1dFQkdMIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxF
X0dFT0xPQ0FUSU9OKQotI2RlZmluZSBFTkFCTEVfR0VPTE9DQVRJT04gMQotI2VuZGlmCi0KLSNl
bmRpZiAvKiBQTEFURk9STShXSU5fQ0FJUk8pICovCi0KLS8qIEVOQUJMRSBtYWNybyBkZWZhdWx0
cyBmb3IgV2ViQ29yZSAqLwotLyogRG8gbm90IHVzZSBQTEFURk9STSgpIHRlc3RzIGluIHRoaXMg
c2VjdGlvbiAhICovCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfM0RfVFJBTlNGT1JNUykKLSNkZWZp
bmUgRU5BQkxFXzNEX1RSQU5TRk9STVMgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVf
QUNDRVNTSUJJTElUWSkKLSNkZWZpbmUgRU5BQkxFX0FDQ0VTU0lCSUxJVFkgMQotI2VuZGlmCi0K
LSNpZiAhZGVmaW5lZChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKQotI2RlZmluZSBFTkFC
TEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxF
X09WRVJGTE9XX1NDUk9MTElOR19UT1VDSCkKLSNkZWZpbmUgRU5BQkxFX09WRVJGTE9XX1NDUk9M
TElOR19UT1VDSCAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9BUE5HKQotI2RlZmlu
ZSBFTkFCTEVfQVBORyAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9DSEFOTkVMX01F
U1NBR0lORykKLSNkZWZpbmUgRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HIDEKLSNlbmRpZgotCi0j
aWYgIWRlZmluZWQoRU5BQkxFX0NPTlRFTlRfRVhURU5TSU9OUykKLSNkZWZpbmUgRU5BQkxFX0NP
TlRFTlRfRVhURU5TSU9OUyAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9DT05URVhU
X01FTlVTKQotI2RlZmluZSBFTkFCTEVfQ09OVEVYVF9NRU5VUyAxCi0jZW5kaWYKLQotI2lmICFk
ZWZpbmVkKEVOQUJMRV9DT05URVhUX01FTlVfRVZFTlQpCi0jZGVmaW5lIEVOQUJMRV9DT05URVhU
X01FTlVfRVZFTlQgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTM19URVhUKQot
I2RlZmluZSBFTkFCTEVfQ1NTM19URVhUIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxF
X0NTU19CT1hfREVDT1JBVElPTl9CUkVBSykKLSNkZWZpbmUgRU5BQkxFX0NTU19CT1hfREVDT1JB
VElPTl9CUkVBSyAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9DU1NfREVWSUNFX0FE
QVBUQVRJT04pCi0jZGVmaW5lIEVOQUJMRV9DU1NfREVWSUNFX0FEQVBUQVRJT04gMAotI2VuZGlm
Ci0KLSNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKQotI2RlZmluZSBFTkFCTEVf
Q1NTX0NPTVBPU0lUSU5HIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0NTU19JTUFH
RV9SRVNPTFVUSU9OKQotI2RlZmluZSBFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04gMAotI2Vu
ZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTX0NPTklDX0dSQURJRU5UUykKLSNkZWZpbmUg
RU5BQkxFX0NTU19DT05JQ19HUkFESUVOVFMgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFC
TEVfQ1VTVE9NX0NVUlNPUl9TVVBQT1JUKQotI2RlZmluZSBFTkFCTEVfQ1VTVE9NX0NVUlNPUl9T
VVBQT1JUIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0NVU1RPTV9TQ0hFTUVfSEFO
RExFUikKLSNkZWZpbmUgRU5BQkxFX0NVU1RPTV9TQ0hFTUVfSEFORExFUiAwCi0jZW5kaWYKLQot
I2lmICFkZWZpbmVkKEVOQUJMRV9EQVJLX01PREVfQ1NTKQotI2RlZmluZSBFTkFCTEVfREFSS19N
T0RFX0NTUyAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9EQVRBTElTVF9FTEVNRU5U
KQotI2RlZmluZSBFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCAwCi0jZW5kaWYKLQotI2lmICFkZWZp
bmVkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pCi0jZGVmaW5lIEVOQUJMRV9ERVZJQ0VfT1JJ
RU5UQVRJT04gMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfRE9XTkxPQURfQVRUUklC
VVRFKQotI2RlZmluZSBFTkFCTEVfRE9XTkxPQURfQVRUUklCVVRFIDEKLSNlbmRpZgotCi0jaWYg
IWRlZmluZWQoRU5BQkxFX0RSQUdfU1VQUE9SVCkKLSNkZWZpbmUgRU5BQkxFX0RSQUdfU1VQUE9S
VCAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9FTkNSWVBURURfTUVESUEpCi0jZGVm
aW5lIEVOQUJMRV9FTkNSWVBURURfTUVESUEgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFC
TEVfRklMVEVSU19MRVZFTF8yKQotI2RlZmluZSBFTkFCTEVfRklMVEVSU19MRVZFTF8yIDAKLSNl
bmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0ZUUERJUikKLSNkZWZpbmUgRU5BQkxFX0ZUUERJ
UiAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkKLSNkZWZp
bmUgRU5BQkxFX0ZVTExTQ1JFRU5fQVBJIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxF
X0dBTUVQQUQpCi0jZGVmaW5lIEVOQUJMRV9HQU1FUEFEIDAKLSNlbmRpZgotCi0jaWYgIWRlZmlu
ZWQoRU5BQkxFX0dFT0xPQ0FUSU9OKQotI2RlZmluZSBFTkFCTEVfR0VPTE9DQVRJT04gMAotI2Vu
ZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkKLSNkZWZpbmUgRU5B
QkxFX0lOREVYRURfREFUQUJBU0UgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfSU5E
RVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJTKQotI2RlZmluZSBFTkFCTEVfSU5ERVhFRF9EQVRBQkFT
RV9JTl9XT1JLRVJTIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0lOUFVUX1RZUEVf
Q09MT1IpCi0jZGVmaW5lIEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SIDEKLSNlbmRpZgotCi0jaWYg
IWRlZmluZWQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSkKLSNkZWZpbmUgRU5BQkxFX0lOUFVUX1RZ
UEVfREFURSAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVU
SU1FX0lOQ09NUExFVEUpCi0jZGVmaW5lIEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09N
UExFVEUgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElN
RUxPQ0FMKQotI2RlZmluZSBFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMIDAKLSNlbmRp
ZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpCi0jZGVmaW5lIEVOQUJM
RV9JTlBVVF9UWVBFX01PTlRIIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0lOUFVU
X1RZUEVfVElNRSkKLSNkZWZpbmUgRU5BQkxFX0lOUFVUX1RZUEVfVElNRSAwCi0jZW5kaWYKLQot
I2lmICFkZWZpbmVkKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspCi0jZGVmaW5lIEVOQUJMRV9JTlBV
VF9UWVBFX1dFRUsgMAotI2VuZGlmCi0KLSNpZiBFTkFCTEUoSU5QVVRfVFlQRV9EQVRFKSB8fCBF
TkFCTEUoSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKSB8fCBFTkFCTEUoSU5QVVRfVFlQ
RV9EQVRFVElNRUxPQ0FMKSB8fCBFTkFCTEUoSU5QVVRfVFlQRV9NT05USCkgfHwgRU5BQkxFKElO
UFVUX1RZUEVfVElNRSkgfHwgRU5BQkxFKElOUFVUX1RZUEVfV0VFSykKLSNpZiAhZGVmaW5lZChF
TkFCTEVfREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKLSNkZWZpbmUgRU5BQkxFX0RBVEVfQU5E
X1RJTUVfSU5QVVRfVFlQRVMgMQotI2VuZGlmCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJM
RV9JTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENIRVJTKQotI2RlZmluZSBFTkFCTEVfSU5TUEVD
VE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUyAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJM
RV9JTlNQRUNUT1JfVEVMRU1FVFJZKQotI2RlZmluZSBFTkFCTEVfSU5TUEVDVE9SX1RFTEVNRVRS
WSAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9JTlRMKQotI2RlZmluZSBFTkFCTEVf
SU5UTCAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9MQVlPVVRfRk9STUFUVElOR19D
T05URVhUKQotI2RlZmluZSBFTkFCTEVfTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCAwCi0jZW5k
aWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUykKLSNk
ZWZpbmUgRU5BQkxFX0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJWEVTIDAKLSNlbmRpZgotCi0jaWYg
IWRlZmluZWQoRU5BQkxFX0xFVFRFUlBSRVNTKQotI2RlZmluZSBFTkFCTEVfTEVUVEVSUFJFU1Mg
MAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfTUFUSE1MKQotI2RlZmluZSBFTkFCTEVf
TUFUSE1MIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX01FRElBX0NBUFRVUkUpCi0j
ZGVmaW5lIEVOQUJMRV9NRURJQV9DQVBUVVJFIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5B
QkxFX01FRElBX0NPTlRST0xTX1NDUklQVCkKLSNkZWZpbmUgRU5BQkxFX01FRElBX0NPTlRST0xT
X1NDUklQVCAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9NRURJQV9TT1VSQ0UpCi0j
ZGVmaW5lIEVOQUJMRV9NRURJQV9TT1VSQ0UgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFC
TEVfTUVESUFfU1RBVElTVElDUykKLSNkZWZpbmUgRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MgMAot
I2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfTUVESUFfU1RSRUFNKQotI2RlZmluZSBFTkFC
TEVfTUVESUFfU1RSRUFNIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX01FVEVSX0VM
RU1FTlQpCi0jZGVmaW5lIEVOQUJMRV9NRVRFUl9FTEVNRU5UIDEKLSNlbmRpZgotCi0jaWYgIWRl
ZmluZWQoRU5BQkxFX01IVE1MKQotI2RlZmluZSBFTkFCTEVfTUhUTUwgMAotI2VuZGlmCi0KLSNp
ZiAhZGVmaW5lZChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFKQotI2RlZmluZSBFTkFCTEVfTU9V
U0VfQ1VSU09SX1NDQUxFIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX01PVVNFX0ZP
UkNFX0VWRU5UUykKLSNkZWZpbmUgRU5BQkxFX01PVVNFX0ZPUkNFX0VWRU5UUyAxCi0jZW5kaWYK
LQotI2lmICFkZWZpbmVkKEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJKQotI2RlZmluZSBFTkFC
TEVfTkVUU0NBUEVfUExVR0lOX0FQSSAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9O
RVRTQ0FQRV9QTFVHSU5fTUVUQURBVEFfQ0FDSEUpCi0jZGVmaW5lIEVOQUJMRV9ORVRTQ0FQRV9Q
TFVHSU5fTUVUQURBVEFfQ0FDSEUgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfTk9U
SUZJQ0FUSU9OUykKLSNkZWZpbmUgRU5BQkxFX05PVElGSUNBVElPTlMgMAotI2VuZGlmCi0KLSNp
ZiAhZGVmaW5lZChFTkFCTEVfT0ZGU0NSRUVOX0NBTlZBUykKLSNkZWZpbmUgRU5BQkxFX09GRlND
UkVFTl9DQU5WQVMgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfT1JJRU5UQVRJT05f
RVZFTlRTKQotI2RlZmluZSBFTkFCTEVfT1JJRU5UQVRJT05fRVZFTlRTIDAKLSNlbmRpZgotCi0j
aWYgT1MoV0lORE9XUykKLSNpZiAhZGVmaW5lZChFTkFCTEVfUEFOX1NDUk9MTElORykKLSNkZWZp
bmUgRU5BQkxFX1BBTl9TQ1JPTExJTkcgMQotI2VuZGlmCi0jZW5kaWYKLQotI2lmICFkZWZpbmVk
KEVOQUJMRV9QQVlNRU5UX1JFUVVFU1QpCi0jZGVmaW5lIEVOQUJMRV9QQVlNRU5UX1JFUVVFU1Qg
MAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfUE9JTlRFUl9MT0NLKQotI2RlZmluZSBF
TkFCTEVfUE9JTlRFUl9MT0NLIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX1FVT1RB
KQotI2RlZmluZSBFTkFCTEVfUVVPVEEgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVf
UkVNT1RFX0lOU1BFQ1RPUikKLSNkZWZpbmUgRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IgMAotI2Vu
ZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfUlVCQkVSX0JBTkRJTkcpCi0jZGVmaW5lIEVOQUJM
RV9SVUJCRVJfQkFORElORyAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9TRUNVUklU
WV9BU1NFUlRJT05TKQotLyogRW5hYmxlIHNlY3VyaXR5IGFzc2VydGlvbnMgb24gYWxsIEFTQU4g
YnVpbGRzIGFuZCBkZWJ1ZyBidWlsZHMuICovCi0jaWYgQVNBTl9FTkFCTEVEIHx8ICFkZWZpbmVk
KE5ERUJVRykKLSNkZWZpbmUgRU5BQkxFX1NFQ1VSSVRZX0FTU0VSVElPTlMgMQotI2VuZGlmCi0j
ZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9TTU9PVEhfU0NST0xMSU5HKQotI2RlZmluZSBF
TkFCTEVfU01PT1RIX1NDUk9MTElORyAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9T
UEVFQ0hfU1lOVEhFU0lTKQotI2RlZmluZSBFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUyAwCi0jZW5k
aWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9TUEVMTENIRUNLKQotI2RlZmluZSBFTkFCTEVfU1BF
TExDSEVDSyAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9TVFJFQU1TX0FQSSkKLSNk
ZWZpbmUgRU5BQkxFX1NUUkVBTVNfQVBJIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxF
X1NWR19GT05UUykKLSNkZWZpbmUgRU5BQkxFX1NWR19GT05UUyAxCi0jZW5kaWYKLQotI2lmICFk
ZWZpbmVkKEVOQUJMRV9URVhUX0NBUkVUKQotI2RlZmluZSBFTkFCTEVfVEVYVF9DQVJFVCAxCi0j
ZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9URVhUX1NFTEVDVElPTikKLSNkZWZpbmUgRU5B
QkxFX1RFWFRfU0VMRUNUSU9OIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0FTWU5D
X1NDUk9MTElORykKLSNkZWZpbmUgRU5BQkxFX0FTWU5DX1NDUk9MTElORyAwCi0jZW5kaWYKLQot
I2lmICFkZWZpbmVkKEVOQUJMRV9UT1VDSF9FVkVOVFMpCi0jZGVmaW5lIEVOQUJMRV9UT1VDSF9F
VkVOVFMgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfVklERU8pCi0jZGVmaW5lIEVO
QUJMRV9WSURFTyAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9WSURFT19UUkFDSykK
LSNkZWZpbmUgRU5BQkxFX1ZJREVPX1RSQUNLIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5B
QkxFX0RBVEFDVUVfVkFMVUUpCi0jZGVmaW5lIEVOQUJMRV9EQVRBQ1VFX1ZBTFVFIDAKLSNlbmRp
ZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX1dFQkdMKQotI2RlZmluZSBFTkFCTEVfV0VCR0wgMAot
I2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfR1JBUEhJQ1NfQ09OVEVYVF9HTCkKLSNkZWZp
bmUgRU5BQkxFX0dSQVBISUNTX0NPTlRFWFRfR0wgRU5BQkxFX1dFQkdMCi0jZW5kaWYKLQotI2lm
ICFkZWZpbmVkKEVOQUJMRV9XRUJfQVJDSElWRSkKLSNkZWZpbmUgRU5BQkxFX1dFQl9BUkNISVZF
IDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX1dFQl9BVURJTykKLSNkZWZpbmUgRU5B
QkxFX1dFQl9BVURJTyAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9YU0xUKQotI2Rl
ZmluZSBFTkFCTEVfWFNMVCAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9EQVRBX0lO
VEVSQUNUSU9OKQotI2RlZmluZSBFTkFCTEVfREFUQV9JTlRFUkFDVElPTiAwCi0jZW5kaWYKLQot
I2lmICFkZWZpbmVkKEVOQUJMRV9TRVJWSUNFX1dPUktFUikKLSNkZWZpbmUgRU5BQkxFX1NFUlZJ
Q0VfV09SS0VSIDEKLSNlbmRpZgotCi0KLS8qIEpJVCBGZWF0dXJlcyAqLwotCi0vKiBUaGUgSklU
IGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBvbiBhbGwgeDg2LTY0ICYgQVJNNjQgcGxhdGZvcm1zLiAq
LwotI2lmICFkZWZpbmVkKEVOQUJMRV9KSVQpICYmIChDUFUoWDg2XzY0KSB8fCBDUFUoQVJNNjQp
KSAmJiAhQ1BVKEFQUExFX0FSTVY3SykKLSNkZWZpbmUgRU5BQkxFX0pJVCAxCi0jZW5kaWYKLQot
I2lmIFVTRShKU1ZBTFVFMzJfNjQpCi0jaWYgKENQVShBUk1fVEhVTUIyKSB8fCBDUFUoTUlQUykp
ICYmIE9TKExJTlVYKQotLyogT24gQVJNdjcgYW5kIE1JUFMgb24gTGludXggdGhlIEpJVCBpcyBl
bmFibGVkIHVubGVzcyBleHBsaWNpdGx5IGRpc2FibGVkLiAqLwotI2lmICFkZWZpbmVkKEVOQUJM
RV9KSVQpCi0jZGVmaW5lIEVOQUJMRV9KSVQgMQotI2VuZGlmCi0jZWxzZQotLyogRGlzYWJsZSBK
SVQgYW5kIGZvcmNlIENfTE9PUCBvbiBhbGwgb3RoZXIgMzJiaXQgYXJjaGl0ZWN0dXJlcy4gKi8K
LSN1bmRlZiBFTkFCTEVfSklUCi0jZGVmaW5lIEVOQUJMRV9KSVQgMAotI3VuZGVmIEVOQUJMRV9D
X0xPT1AKLSNkZWZpbmUgRU5BQkxFX0NfTE9PUCAxCi0jZW5kaWYKLSNlbmRpZgotCi0jaWYgIWRl
ZmluZWQoRU5BQkxFX0NfTE9PUCkKLSNpZiBFTkFCTEUoSklUKSB8fCBDUFUoWDg2XzY0KSB8fCAo
Q1BVKEFSTTY0KSAmJiAhZGVmaW5lZChfX0lMUDMyX18pKQotI2RlZmluZSBFTkFCTEVfQ19MT09Q
IDAKLSNlbHNlCi0jZGVmaW5lIEVOQUJMRV9DX0xPT1AgMQotI2VuZGlmCi0jZW5kaWYKLQotLyog
RklYTUU6IFRoaXMgc2hvdWxkIGJlIHR1cm5lZCBpbnRvIGFuICNlcnJvciBpbnZhcmlhbnQgKi8K
LS8qIFRoZSBGVEwgKmRvZXMgbm90KiB3b3JrIG9uIDMyLWJpdCBwbGF0Zm9ybXMuIERpc2FibGUg
aXQgZXZlbiBpZiBzb21lb25lIGFza2VkIHVzIHRvIGVuYWJsZSBpdC4gKi8KLSNpZiBVU0UoSlNW
QUxVRTMyXzY0KQotI3VuZGVmIEVOQUJMRV9GVExfSklUCi0jZGVmaW5lIEVOQUJMRV9GVExfSklU
IDAKLSNlbmRpZgotCi0vKiBGSVhNRTogVGhpcyBzaG91bGQgYmUgdHVybmVkIGludG8gYW4gI2Vy
cm9yIGludmFyaWFudCAqLwotLyogVGhlIEZUTCBpcyBkaXNhYmxlZCBvbiB0aGUgaU9TIHNpbXVs
YXRvciwgbW9zdGx5IGZvciBzaW1wbGljaXR5LiAqLwotI2lmIFBMQVRGT1JNKElPU19GQU1JTFlf
U0lNVUxBVE9SKQotI3VuZGVmIEVOQUJMRV9GVExfSklUCi0jZGVmaW5lIEVOQUJMRV9GVExfSklU
IDAKLSNlbmRpZgotCi0vKiBJZiBwb3NzaWJsZSwgdHJ5IHRvIGVuYWJsZSBhIGRpc2Fzc2VtYmxl
ci4gVGhpcyBpcyBvcHRpb25hbC4gV2UgcHJvY2VlZCBpbiB0d28KLSAgIHN0ZXBzOiBmaXJzdCB3
ZSB0cnkgdG8gZmluZCBzb21lIGRpc2Fzc2VtYmxlciB0aGF0IHdlIGNhbiB1c2UsIGFuZCB0aGVu
IHdlCi0gICBkZWNpZGUgaWYgdGhlIGhpZ2gtbGV2ZWwgZGlzYXNzZW1ibGVyIEFQSSBjYW4gYmUg
ZW5hYmxlZC4gKi8KLSNpZiAhZGVmaW5lZChFTkFCTEVfVURJUzg2KSAmJiBFTkFCTEUoSklUKSAm
JiBDUFUoWDg2XzY0KSAmJiAhVVNFKENBUFNUT05FKQotI2RlZmluZSBFTkFCTEVfVURJUzg2IDEK
LSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0FSTTY0X0RJU0FTU0VNQkxFUikgJiYgRU5B
QkxFKEpJVCkgJiYgQ1BVKEFSTTY0KSAmJiAhVVNFKENBUFNUT05FKQotI2RlZmluZSBFTkFCTEVf
QVJNNjRfRElTQVNTRU1CTEVSIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0RJU0FT
U0VNQkxFUikgJiYgKEVOQUJMRShVRElTODYpIHx8IEVOQUJMRShBUk02NF9ESVNBU1NFTUJMRVIp
IHx8IChFTkFCTEUoSklUKSAmJiBVU0UoQ0FQU1RPTkUpKSkKLSNkZWZpbmUgRU5BQkxFX0RJU0FT
U0VNQkxFUiAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9ERkdfSklUKSAmJiBFTkFC
TEUoSklUKQotCi0vKiBFbmFibGUgdGhlIERGRyBKSVQgb24gWDg2IGFuZCBYODZfNjQuICovCi0j
aWYgQ1BVKFg4Nl82NCkgJiYgKE9TKERBUldJTikgfHwgT1MoTElOVVgpIHx8IE9TKEZSRUVCU0Qp
IHx8IE9TKEhVUkQpIHx8IE9TKFdJTkRPV1MpKQotI2RlZmluZSBFTkFCTEVfREZHX0pJVCAxCi0j
ZW5kaWYKLQotLyogRW5hYmxlIHRoZSBERkcgSklUIG9uIEFSTXY3LiAgT25seSB0ZXN0ZWQgb24g
aU9TLCBMaW51eCwgYW5kIEZyZWVCU0QuICovCi0jaWYgKENQVShBUk1fVEhVTUIyKSB8fCBDUFUo
QVJNNjQpKSAmJiAoT1MoREFSV0lOKSB8fCBPUyhMSU5VWCkgfHwgT1MoRlJFRUJTRCkpCi0jZGVm
aW5lIEVOQUJMRV9ERkdfSklUIDEKLSNlbmRpZgotCi0vKiBFbmFibGUgdGhlIERGRyBKSVQgb24g
TUlQUy4gKi8KLSNpZiBDUFUoTUlQUykKLSNkZWZpbmUgRU5BQkxFX0RGR19KSVQgMQotI2VuZGlm
Ci0KLSNlbmRpZiAvKiAhZGVmaW5lZChFTkFCTEVfREZHX0pJVCkgJiYgRU5BQkxFKEpJVCkgKi8K
LQotLyogQ29uY3VycmVudCBKUyBvbmx5IHdvcmtzIG9uIDY0LWJpdCBwbGF0Zm9ybXMgYmVjYXVz
ZSBpdCByZXF1aXJlcyB0aGF0Ci0gICB2YWx1ZXMgZ2V0IHN0b3JlZCB0byBhdG9taWNhbGx5LiBU
aGlzIGlzIHRyaXZpYWxseSB0cnVlIG9uIDY0LWJpdCBwbGF0Zm9ybXMsCi0gICBidXQgbm90IHRy
dWUgYXQgYWxsIG9uIDMyLWJpdCBwbGF0Zm9ybXMgd2hlcmUgdmFsdWVzIGFyZSBjb21wb3NlZCBv
ZiB0d28KLSAgIHNlcGFyYXRlIHN1Yi12YWx1ZXMuICovCi0jaWYgRU5BQkxFKEpJVCkgJiYgVVNF
KEpTVkFMVUU2NCkKLSNkZWZpbmUgRU5BQkxFX0NPTkNVUlJFTlRfSlMgMQotI2VuZGlmCi0KLSNp
ZiAoQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTTY0KSkgJiYgSEFWRShGQVNUX1RMUykKLSNkZWZpbmUg
RU5BQkxFX0ZBU1RfVExTX0pJVCAxCi0jZW5kaWYKLQotI2lmIEVOQUJMRShKSVQpICYmIChDUFUo
WDg2KSB8fCBDUFUoWDg2XzY0KSB8fCBDUFUoQVJNX1RIVU1CMikgfHwgQ1BVKEFSTTY0KSB8fCBD
UFUoTUlQUykpCi0jZGVmaW5lIEVOQUJMRV9NQVNNX1BST0JFIDEKLSNlbmRpZgotCi0vKiBGSVhN
RTogVGhpcyBzaG91bGQgYmUgdHVybmVkIGludG8gYW4gI2Vycm9yIGludmFyaWFudCAqLwotLyog
SWYgdGhlIGJhc2VsaW5lIGppdCBpcyBub3QgYXZhaWxhYmxlLCB0aGVuIGRpc2FibGUgdXBwZXIg
dGllcnMgYXMgd2VsbC4KLSAgIFRoZSBNYWNyb0Fzc2VtYmxlcjo6cHJvYmUoKSBpcyBhbHNvIHJl
cXVpcmVkIGZvciBzdXBwb3J0aW5nIHRoZSB1cHBlciB0aWVycy4gKi8KLSNpZiAhRU5BQkxFKEpJ
VCkgfHwgIUVOQUJMRShNQVNNX1BST0JFKQotI3VuZGVmIEVOQUJMRV9ERkdfSklUCi0jdW5kZWYg
RU5BQkxFX0ZUTF9KSVQKLSNkZWZpbmUgRU5BQkxFX0RGR19KSVQgMAotI2RlZmluZSBFTkFCTEVf
RlRMX0pJVCAwCi0jZW5kaWYKLQotLyogRklYTUU6IFRoaXMgc2hvdWxkIGJlIHR1cm5lZCBpbnRv
IGFuICNlcnJvciBpbnZhcmlhbnQgKi8KLS8qIElmIHRoZSBERkcgaml0IGlzIG5vdCBhdmFpbGFi
bGUsIHRoZW4gZGlzYWJsZSB1cHBlciB0aWVycyBhcyB3ZWxsOiAqLwotI2lmICFFTkFCTEUoREZH
X0pJVCkKLSN1bmRlZiBFTkFCTEVfRlRMX0pJVAotI2RlZmluZSBFTkFCTEVfRlRMX0pJVCAwCi0j
ZW5kaWYKLQotLyogVGhpcyBjb250cm9scyB3aGV0aGVyIEIzIGlzIGJ1aWx0LiBCMyBpcyBuZWVk
ZWQgZm9yIEZUTCBKSVQgYW5kIFdlYkFzc2VtYmx5ICovCi0jaWYgRU5BQkxFKEZUTF9KSVQpCi0j
ZGVmaW5lIEVOQUJMRV9CM19KSVQgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfV0VC
QVNTRU1CTFkpICYmIChFTkFCTEUoQjNfSklUKSAmJiBQTEFURk9STShDT0NPQSkgJiYgQ1BVKEFE
RFJFU1M2NCkpCi0jZGVmaW5lIEVOQUJMRV9XRUJBU1NFTUJMWSAxCi0jZW5kaWYKLQotLyogVGhl
IFNhbXBsaW5nUHJvZmlsZXIgaXMgdGhlIHByb2JhYmlsaXN0aWMgYW5kIGxvdy1vdmVyaGVhZCBw
cm9maWxlciB1c2VkIGJ5Ci0gKiBKU0MgdG8gbWVhc3VyZSB3aGVyZSB0aW1lIGlzIHNwZW50IGlu
c2lkZSBhIEphdmFTY3JpcHQgcHJvZ3JhbS4KLSAqIEluIGNvbmZpZ3VyYXRpb25zIG90aGVyIHRo
YW4gV2luZG93cyBhbmQgRGFyd2luLCBiZWNhdXNlIGxheW91dCBvZiBtY29udGV4dF90IGRlcGVu
ZHMgb24gc3RhbmRhcmQgbGlicmFyaWVzIChsaWtlIGdsaWJjKSwKLSAqIHNhbXBsaW5nIHByb2Zp
bGVyIGlzIGVuYWJsZWQgaWYgV2ViS2l0IHVzZXMgcHRocmVhZHMgYW5kIGdsaWJjLiAqLwotI2lm
ICFkZWZpbmVkKEVOQUJMRV9TQU1QTElOR19QUk9GSUxFUikgJiYgKCFFTkFCTEUoQ19MT09QKSAm
JiAoT1MoV0lORE9XUykgfHwgSEFWRShNQUNISU5FX0NPTlRFWFQpKSkKLSNkZWZpbmUgRU5BQkxF
X1NBTVBMSU5HX1BST0ZJTEVSIDEKLSNlbmRpZgotCi0jaWYgRU5BQkxFKFdFQkFTU0VNQkxZKSAm
JiBIQVZFKE1BQ0hJTkVfQ09OVEVYVCkKLSNkZWZpbmUgRU5BQkxFX1dFQkFTU0VNQkxZX0ZBU1Rf
TUVNT1JZIDEKLSNlbmRpZgotCi0vKiBDb3VudHMgdXNlcyBvZiB3cml0ZSBiYXJyaWVycyB1c2lu
ZyBzYW1wbGluZyBjb3VudGVycy4gQmUgc3VyZSB0byBhbHNvCi0gICBzZXQgRU5BQkxFX1NBTVBM
SU5HX0NPVU5URVJTIHRvIDEuICovCi0jaWYgIWRlZmluZWQoRU5BQkxFX1dSSVRFX0JBUlJJRVJf
UFJPRklMSU5HKQotI2RlZmluZSBFTkFCTEVfV1JJVEVfQkFSUklFUl9QUk9GSUxJTkcgMAotI2Vu
ZGlmCi0KLS8qIExvZ3MgYWxsIGFsbG9jYXRpb24tcmVsYXRlZCBhY3Rpdml0eSB0aGF0IGdvZXMg
dGhyb3VnaCBmYXN0TWFsbG9jIG9yIHRoZQotICAgSlNDIEdDIChib3RoIGNlbGxzIGFuZCBidXR0
ZXJmbGllcykuIEFsc28gbG9ncyBtYXJraW5nLiBOb3RlIHRoYXQgdGhpcwotICAgaXNuJ3QgYSBj
b21wbGV0ZWx5IGFjY3VyYXRlIHZpZXcgb2YgdGhlIGhlYXAgc2luY2UgaXQgZG9lc24ndCBpbmNs
dWRlIGFsbAotICAgYnV0dGVyZmx5IHJlc2l6ZSBvcGVyYXRpb25zLCBkb2Vzbid0IHRlbGwgeW91
IHdoYXQgaXMgZ29pbmcgb24gd2l0aCB3ZWFrCi0gICByZWZlcmVuY2VzIChvdGhlciB0aGFuIHRv
IHRlbGwgeW91IHdoZW4gdGhleSdyZSBtYXJrZWQpLCBhbmQgZG9lc24ndAotICAgdHJhY2sgZGly
ZWN0IG1tYXAoKSBhbGxvY2F0aW9ucyBvciB0aGluZ3MgbGlrZSBKSVQgYWxsb2NhdGlvbi4gKi8K
LSNpZiAhZGVmaW5lZChFTkFCTEVfQUxMT0NBVElPTl9MT0dHSU5HKQotI2RlZmluZSBFTkFCTEVf
QUxMT0NBVElPTl9MT0dHSU5HIDAKLSNlbmRpZgotCi0vKiBFbmFibGUgdmVyaWZpY2F0aW9uIHRo
YXQgdGhhdCByZWdpc3RlciBhbGxvY2F0aW9ucyBhcmUgbm90IG1hZGUgd2l0aGluIGdlbmVyYXRl
ZCBjb250cm9sIGZsb3cuCi0gICBUdXJuZWQgb24gZm9yIGRlYnVnIGJ1aWxkcy4gKi8KLSNpZiAh
ZGVmaW5lZChFTkFCTEVfREZHX1JFR0lTVEVSX0FMTE9DQVRJT05fVkFMSURBVElPTikgJiYgRU5B
QkxFKERGR19KSVQpICYmICFkZWZpbmVkKE5ERUJVRykKLSNkZWZpbmUgRU5BQkxFX0RGR19SRUdJ
U1RFUl9BTExPQ0FUSU9OX1ZBTElEQVRJT04gMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFC
TEVfU0VQQVJBVEVEX1dYX0hFQVApICYmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIENQVShBUk02
NCkgJiYgKCFFTkFCTEUoRkFTVF9KSVRfUEVSTUlTU0lPTlMpIHx8ICFDUFUoQVJNNjRFKSkKLSNk
ZWZpbmUgRU5BQkxFX1NFUEFSQVRFRF9XWF9IRUFQIDEKLSNlbmRpZgotCi0vKiBEZXRlcm1pbmUg
aWYgd2UgbmVlZCB0byBlbmFibGUgQ29tcHV0ZWQgR290byBPcGNvZGVzIG9yIG5vdDogKi8KLSNp
ZiBIQVZFKENPTVBVVEVEX0dPVE8pIHx8ICFFTkFCTEUoQ19MT09QKQotI2RlZmluZSBFTkFCTEVf
Q09NUFVURURfR09UT19PUENPREVTIDEKLSNlbmRpZgotCi0vKiBSZWd1bGFyIEV4cHJlc3Npb24g
VHJhY2luZyAtIFNldCB0byAxIHRvIHRyYWNlIFJlZ0V4cCdzIGluIGpzYy4gIFJlc3VsdHMgZHVt
cGVkIGF0IGV4aXQgKi8KLSNpZiAhZGVmaW5lZChFTkFCTEVfUkVHRVhQX1RSQUNJTkcpCi0jZGVm
aW5lIEVOQUJMRV9SRUdFWFBfVFJBQ0lORyAwCi0jZW5kaWYKLQotLyogWWV0IEFub3RoZXIgUmVn
ZXggUnVudGltZSAtIHR1cm5lZCBvbiBieSBkZWZhdWx0IGZvciBKSVQgZW5hYmxlZCBwb3J0cy4g
Ki8KLSNpZiAhZGVmaW5lZChFTkFCTEVfWUFSUl9KSVQpICYmIEVOQUJMRShKSVQpCi0jZGVmaW5l
IEVOQUJMRV9ZQVJSX0pJVCAxCi0jZW5kaWYKLQotLyogU2V0dGluZyB0aGlzIGZsYWcgY29tcGFy
ZXMgSklUIHJlc3VsdHMgd2l0aCBpbnRlcnByZXRlciByZXN1bHRzLiAqLwotI2lmICFkZWZpbmVk
KEVOQUJMRV9ZQVJSX0pJVCkgJiYgRU5BQkxFKEpJVCkKLSNkZWZpbmUgRU5BQkxFX1lBUlJfSklU
X0RFQlVHIDAKLSNlbmRpZgotCi0vKiBFbmFibGUgSklUJ2luZyBSZWd1bGFyIEV4cHJlc3Npb25z
IHRoYXQgaGF2ZSBuZXN0ZWQgcGFyZW50aGVzaXMgLiAqLwotI2lmIEVOQUJMRShZQVJSX0pJVCkg
JiYgKENQVShBUk02NCkgfHwgKENQVShYODZfNjQpICYmICFPUyhXSU5ET1dTKSkpCi0jZGVmaW5l
IEVOQUJMRV9ZQVJSX0pJVF9BTExfUEFSRU5TX0VYUFJFU1NJT05TIDEKLSNlbmRpZgotCi0vKiBF
bmFibGUgSklUJ2luZyBSZWd1bGFyIEV4cHJlc3Npb25zIHRoYXQgaGF2ZSBuZXN0ZWQgYmFjayBy
ZWZlcmVuY2VzLiAqLwotI2lmIEVOQUJMRShZQVJSX0pJVCkgJiYgKENQVShBUk02NCkgfHwgKENQ
VShYODZfNjQpICYmICFPUyhXSU5ET1dTKSkpCi0jZGVmaW5lIEVOQUJMRV9ZQVJSX0pJVF9CQUNL
UkVGRVJFTkNFUyAxCi0jZW5kaWYKLQotLyogSWYgZWl0aGVyIHRoZSBKSVQgb3IgdGhlIFJlZ0V4
cCBKSVQgaXMgZW5hYmxlZCwgdGhlbiB0aGUgQXNzZW1ibGVyIG11c3QgYmUKLSAgIGVuYWJsZWQg
YXMgd2VsbDogKi8KLSNpZiBFTkFCTEUoSklUKSB8fCBFTkFCTEUoWUFSUl9KSVQpIHx8ICFFTkFC
TEUoQ19MT09QKQotI2lmIGRlZmluZWQoRU5BQkxFX0FTU0VNQkxFUikgJiYgIUVOQUJMRV9BU1NF
TUJMRVIKLSNlcnJvciAiQ2Fubm90IGVuYWJsZSB0aGUgSklUIG9yIFJlZ0V4cCBKSVQgd2l0aG91
dCBlbmFibGluZyB0aGUgQXNzZW1ibGVyIgotI2Vsc2UKLSN1bmRlZiBFTkFCTEVfQVNTRU1CTEVS
Ci0jZGVmaW5lIEVOQUJMRV9BU1NFTUJMRVIgMQotI2VuZGlmCi0jZW5kaWYKLQotLyogSWYgdGhl
IERpc2Fzc2VtYmxlciBpcyBlbmFibGVkLCB0aGVuIHRoZSBBc3NlbWJsZXIgbXVzdCBiZSBlbmFi
bGVkIGFzIHdlbGw6ICovCi0jaWYgRU5BQkxFKERJU0FTU0VNQkxFUikKLSNpZiBkZWZpbmVkKEVO
QUJMRV9BU1NFTUJMRVIpICYmICFFTkFCTEVfQVNTRU1CTEVSCi0jZXJyb3IgIkNhbm5vdCBlbmFi
bGUgdGhlIERpc2Fzc2VtYmxlciB3aXRob3V0IGVuYWJsaW5nIHRoZSBBc3NlbWJsZXIiCi0jZWxz
ZQotI3VuZGVmIEVOQUJMRV9BU1NFTUJMRVIKLSNkZWZpbmUgRU5BQkxFX0FTU0VNQkxFUiAxCi0j
ZW5kaWYKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0VYQ0VQVElPTl9TQ09QRV9WRVJJ
RklDQVRJT04pCi0jZGVmaW5lIEVOQUJMRV9FWENFUFRJT05fU0NPUEVfVkVSSUZJQ0FUSU9OIEFT
U0VSVF9FTkFCTEVECi0jZW5kaWYKLQotI2lmIEVOQUJMRShERkdfSklUKSAmJiBIQVZFKE1BQ0hJ
TkVfQ09OVEVYVCkgJiYgKENQVShYODZfNjQpIHx8IENQVShBUk02NCkpCi0jZGVmaW5lIEVOQUJM
RV9TSUdOQUxfQkFTRURfVk1fVFJBUFMgMQotI2VuZGlmCi0KLS8qIENTUyBTZWxlY3RvciBKSVQg
Q29tcGlsZXIgKi8KLSNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTX1NFTEVDVE9SX0pJVCkgJiYgKChD
UFUoWDg2XzY0KSB8fCBDUFUoQVJNNjQpIHx8IChDUFUoQVJNX1RIVU1CMikgJiYgT1MoREFSV0lO
KSkpICYmIEVOQUJMRShKSVQpICYmIChPUyhEQVJXSU4pIHx8IFBMQVRGT1JNKEdUSykgfHwgUExB
VEZPUk0oV1BFKSkpCi0jZGVmaW5lIEVOQUJMRV9DU1NfU0VMRUNUT1JfSklUIDEKLSNlbmRpZgot
Ci0jaWYgUExBVEZPUk0oQ09DT0EpICYmICFQTEFURk9STShXQVRDSE9TKSAmJiAhUExBVEZPUk0o
QVBQTEVUVikgJiYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQotI2RlZmluZSBFTkFCTEVfREFUQV9E
RVRFQ1RJT04gMQotI2VuZGlmCi0KLSNpZiBDUFUoQVJNX1RIVU1CMikgfHwgQ1BVKEFSTTY0KQot
I2RlZmluZSBFTkFCTEVfQlJBTkNIX0NPTVBBQ1RJT04gMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5l
ZChFTkFCTEVfVEhSRUFESU5HX0xJQkRJU1BBVENIKSAmJiBIQVZFKERJU1BBVENIX0gpCi0jZGVm
aW5lIEVOQUJMRV9USFJFQURJTkdfTElCRElTUEFUQ0ggMQotI2VsaWYgIWRlZmluZWQoRU5BQkxF
X1RIUkVBRElOR19PUEVOTVApICYmIGRlZmluZWQoX09QRU5NUCkKLSNkZWZpbmUgRU5BQkxFX1RI
UkVBRElOR19PUEVOTVAgMQotI2VsaWYgIWRlZmluZWQoVEhSRUFESU5HX0dFTkVSSUMpCi0jZGVm
aW5lIEVOQUJMRV9USFJFQURJTkdfR0VORVJJQyAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVO
QUJMRV9HQ19WQUxJREFUSU9OKSAmJiAhZGVmaW5lZChOREVCVUcpCi0jZGVmaW5lIEVOQUJMRV9H
Q19WQUxJREFUSU9OIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0JJTkRJTkdfSU5U
RUdSSVRZKSAmJiAhT1MoV0lORE9XUykKLSNkZWZpbmUgRU5BQkxFX0JJTkRJTkdfSU5URUdSSVRZ
IDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX1RSRUVfREVCVUdHSU5HKSAmJiAhZGVm
aW5lZChOREVCVUcpCi0jZGVmaW5lIEVOQUJMRV9UUkVFX0RFQlVHR0lORyAxCi0jZW5kaWYKLQot
I2lmIFBMQVRGT1JNKENPQ09BKQotI2RlZmluZSBFTkFCTEVfUkVTT1VSQ0VfVVNBR0UgMQotI2Vu
ZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfT1BFTlRZUEVfVkVSVElDQUwpICYmIFBMQVRGT1JN
KEdUSykgfHwgUExBVEZPUk0oV1BFKQotI2RlZmluZSBFTkFCTEVfT1BFTlRZUEVfVkVSVElDQUwg
MQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfT1BFTlRZUEVfTUFUSCkgJiYgKE9TKERB
UldJTikgJiYgVVNFKENHKSkgfHwgKFVTRShGUkVFVFlQRSkgJiYgIVBMQVRGT1JNKEdUSykpIHx8
IChQTEFURk9STShXSU4pICYmIChVU0UoQ0cpIHx8IFVTRShDQUlSTykpKQotI2RlZmluZSBFTkFC
TEVfT1BFTlRZUEVfTUFUSCAxCi0jZW5kaWYKLQotLyoKLSAqIEVuYWJsZSB0aGlzIHRvIHB1dCBl
YWNoIElzb0hlYXAgYW5kIG90aGVyIGFsbG9jYXRpb24gY2F0ZWdvcmllcyBpbnRvIHRoZWlyIG93
biBtYWxsb2MgaGVhcHMsIHNvIHRoYXQgdG9vbHMgbGlrZSB2bW1hcCBjYW4gc2hvdyBob3cgYmln
IGVhY2ggaGVhcCBpcy4KLSAqIFR1cm4gQkVOQUJMRV9NQUxMT0NfSEVBUF9CUkVBS0RPV04gb24g
aW4gYm1hbGxvYyB0b2dldGhlciB3aGVuIHVzaW5nIHRoaXMuCi0gKi8KLSNpZiAhZGVmaW5lZChF
TkFCTEVfTUFMTE9DX0hFQVBfQlJFQUtET1dOKQotI2RlZmluZSBFTkFCTEVfTUFMTE9DX0hFQVBf
QlJFQUtET1dOIDAKLSNlbmRpZgotCi0vKiBEaXNhYmxlIFNoYXJlZEFycmF5QnVmZmVycyB1bnRp
bCBTcGVjdHJlIHNlY3VyaXR5IGNvbmNlcm5zIGFyZSBtaXRpZ2F0ZWQuICovCi0jZGVmaW5lIEVO
QUJMRV9TSEFSRURfQVJSQVlfQlVGRkVSIDAKLQotI2lmIFBMQVRGT1JNKE1BQykKLSNkZWZpbmUg
RU5BQkxFX1dFQl9QTEFZQkFDS19DT05UUk9MU19NQU5BR0VSIDEKLSNlbmRpZgotCi0jaWYgUExB
VEZPUk0oQ09DT0EpCi0vKiBGSVhNRTogVGhpcyBpcyBhIFVTRSBzdHlsZSBtYWNybywgYXMgaXQg
dHJpZ2dlcnMgdGhlIHVzZSBvZiBDRlVSTENvbm5lY3Rpb24gZnJhbWV3b3JrIHN0dWJzLiAqLwot
LyogRklYTUU6IElzIHRoaXMgc3RpbGwgbmVjZXNzYXJ5PyBDRlVSTENvbm5lY3Rpb24gaXNuJ3Qg
dXNlZCBvbiBDb2NvYSBwbGF0Zm9ybXMgYW55IG1vcmUuICovCi0jZGVmaW5lIEVOQUJMRV9TRUNf
SVRFTV9TSElNIDEKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oTUFDKQorI2lmICFkZWZpbmVkKEVO
QUJMRV9GVUxMX0tFWUJPQVJEX0FDQ0VTUykgJiYgUExBVEZPUk0oTUFDKQogI2RlZmluZSBFTkFC
TEVfRlVMTF9LRVlCT0FSRF9BQ0NFU1MgMQogI2VuZGlmCiAKLSNpZiAoKFBMQVRGT1JNKENPQ09B
KSB8fCBQTEFURk9STShQTEFZU1RBVElPTikgfHwgUExBVEZPUk0oV1BFKSkgJiYgRU5BQkxFKEFT
WU5DX1NDUk9MTElORykpIHx8IFBMQVRGT1JNKEdUSykKLSNkZWZpbmUgRU5BQkxFX0tJTkVUSUNf
U0NST0xMSU5HIDEKLSNlbmRpZgotCiAjaWYgIWRlZmluZWQoRU5BQkxFX01PTk9TUEFDRV9GT05U
X0VYQ0VQVElPTikgJiYgKChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPCAxMDE1MDApIHx8IFBMQVRGT1JNKFdBVENIT1MpIHx8IFBMQVRGT1JNKEFQUExF
VFYpKQogI2RlZmluZSBFTkFCTEVfTU9OT1NQQUNFX0ZPTlRfRVhDRVBUSU9OIDEKICNlbmRpZgpA
QCAtMTAxOSwzNyArMjI3LDE4IEBAIHRoZSBwdWJsaWMgaU9TIFNESy4gU2VlIDxodHRwczovL3dl
YmtpdC4KICNkZWZpbmUgRU5BQkxFX1BMQVRGT1JNX0RSSVZFTl9URVhUX0NIRUNLSU5HIDEKICNl
bmRpZgogCi0vKiBUaGlzIGZlYXR1cmUgd29ya3MgYnkgZW1iZWRkaW5nIHRoZSBPcGNvZGVJRCBp
biB0aGUgMzIgYml0IGp1c3QgYmVmb3JlIHRoZSBnZW5lcmF0ZWQgTExpbnQgY29kZQotICAgdGhh
dCBleGVjdXRlcyBlYWNoIG9wY29kZS4gSXQgY2Fubm90IGJlIHN1cHBvcnRlZCBieSB0aGUgQ0xv
b3Agc2luY2UgdGhlcmUncyBubyB3YXkgdG8gZW1iZWQgdGhlCi0gICBPcGNvZGVJRCB3b3JkIGlu
IHRoZSBDTG9vcCdzIHN3aXRjaCBzdGF0ZW1lbnQgY2FzZXMuIEl0IGlzIGFsc28gY3VycmVudGx5
IG5vdCBpbXBsZW1lbnRlZCBmb3IgTVNWQy4KLSovCi0jaWYgIWRlZmluZWQoRU5BQkxFX0xMSU5U
X0VNQkVEREVEX09QQ09ERV9JRCkgJiYgIUVOQUJMRShDX0xPT1ApICYmICFDT01QSUxFUihNU1ZD
KSAmJiAoQ1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTTY0KSB8fCAoQ1BVKEFSTV9U
SFVNQjIpICYmIE9TKERBUldJTikpKQotI2RlZmluZSBFTkFCTEVfTExJTlRfRU1CRURERURfT1BD
T0RFX0lEIDEKLSNlbmRpZgotCi0KLS8qIEFzc2VydHMsIGludmFyaWFudHMgZm9yIG1hY3JvIGRl
ZmluaXRpb25zICovCi0KLSNpZiBFTkFCTEUoVklERU9fVFJBQ0spICYmICFFTkFCTEUoVklERU8p
Ci0jZXJyb3IgIkVOQUJMRShWSURFT19UUkFDSykgcmVxdWlyZXMgRU5BQkxFKFZJREVPKSIKLSNl
bmRpZgotCi0jaWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX1NDUklQVCkgJiYgIUVOQUJMRShWSURF
TykKLSNlcnJvciAiRU5BQkxFKE1FRElBX0NPTlRST0xTX1NDUklQVCkgcmVxdWlyZXMgRU5BQkxF
KFZJREVPKSIKLSNlbmRpZgotCi0jaWYgRU5BQkxFKElOU1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFU
Q0hFUlMpICYmICFFTkFCTEUoUkVNT1RFX0lOU1BFQ1RPUikKLSNlcnJvciAiRU5BQkxFKElOU1BF
Q1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hFUlMpIHJlcXVpcmVzIEVOQUJMRShSRU1PVEVfSU5TUEVD
VE9SKSIKKyNpZiAhZGVmaW5lZChFTkFCTEVfV0VCX1BMQVlCQUNLX0NPTlRST0xTX01BTkFHRVIp
ICYmIFBMQVRGT1JNKE1BQykKKyNkZWZpbmUgRU5BQkxFX1dFQl9QTEFZQkFDS19DT05UUk9MU19N
QU5BR0VSIDEKICNlbmRpZgogCi0jaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpICYmICFFTkFC
TEUoVE9VQ0hfRVZFTlRTKQotI2Vycm9yICJFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykgcmVxdWly
ZXMgRU5BQkxFKFRPVUNIX0VWRU5UUykiCisjaWYgIWRlZmluZWQoRU5BQkxFX1JFU09VUkNFX1VT
QUdFKQorI2RlZmluZSBFTkFCTEVfUkVTT1VSQ0VfVVNBR0UgMQogI2VuZGlmCiAKLSNpZiBFTkFC
TEUoV0VCR0wpICYmICFFTkFCTEUoR1JBUEhJQ1NfQ09OVEVYVF9HTCkKLSNlcnJvciAiRU5BQkxF
KFdFQkdMKSByZXF1aXJlcyBFTkFCTEUoR1JBUEhJQ1NfQ09OVEVYVF9HTCkiCisjaWYgIWRlZmlu
ZWQoRU5BQkxFX1NFQ19JVEVNX1NISU0pCisjZGVmaW5lIEVOQUJMRV9TRUNfSVRFTV9TSElNIDEK
ICNlbmRpZgogCi0jaWYgRU5BQkxFKFdFQkdMMikgJiYgIUVOQUJMRShXRUJHTCkKLSNlcnJvciAi
RU5BQkxFKFdFQkdMMikgcmVxdWlyZXMgRU5BQkxFKFdFQkdMKSIKKyNpZiAhZGVmaW5lZChFTkFC
TEVfREFUQV9ERVRFQ1RJT04pICYmICghUExBVEZPUk0oV0FUQ0hPUykgJiYgIVBMQVRGT1JNKEFQ
UExFVFYpICYmICFQTEFURk9STShNQUNDQVRBTFlTVCkpCisjZGVmaW5lIEVOQUJMRV9EQVRBX0RF
VEVDVElPTiAxCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlV2lu
QXBwbGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZVdpbkFw
cGxlLmgJKHJldmlzaW9uIDI1NTU1MikJKGZyb20gU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFi
bGUuaDoyNTU1NTIpCisrKyBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZVdpbkFwcGxlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDA2LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDA3LTIwMDkgVG9yY2ggTW9iaWxlLCBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIw
MTEgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTMgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpZm5kZWYgV1RGX1BMQVRGT1JNX0dVQVJEX0FHQUlOU1RfSU5ESVJFQ1RfSU5DTFVT
SU9OCisjZXJyb3IgIlBsZWFzZSAjaW5jbHVkZSA8d3RmL1BsYXRmb3JtLmg+IGluc3RlYWQgb2Yg
dGhpcyBmaWxlIGRpcmVjdGx5LiIKKyNlbmRpZgorCisKKyNkZWZpbmUgRU5BQkxFKFdURl9GRUFU
VVJFKSAoZGVmaW5lZCBFTkFCTEVfIyNXVEZfRkVBVFVSRSAmJiBFTkFCTEVfIyNXVEZfRkVBVFVS
RSkKKworLyogVXNlIHRoaXMgZmlsZSB0byBsaXN0IF9hbGxfIEVOQUJMRSgpIG1hY3Jvcy4gRGVm
aW5lIHRoZSBtYWNyb3MgdG8gYmUgb25lIG9mIHRoZSBmb2xsb3dpbmcgdmFsdWVzOgorICogIC0g
IjAiIGRpc2FibGVzIHRoZSBmZWF0dXJlIGJ5IGRlZmF1bHQuIFRoZSBmZWF0dXJlIGNhbiBzdGls
bCBiZSBlbmFibGVkIGZvciBhIHNwZWNpZmljIHBvcnQgb3IgZW52aXJvbm1lbnQuCisgKiAgLSAi
MSIgZW5hYmxlcyB0aGUgZmVhdHVyZSBieSBkZWZhdWx0LiBUaGUgZmVhdHVyZSBjYW4gc3RpbGwg
YmUgZGlzYWJsZWQgZm9yIGEgc3BlY2lmaWMgcG9ydCBvciBlbnZpcm9ubWVudC4KKyAqCisgKiBU
aGUgZmVhdHVyZSBkZWZhdWx0cyBpbiB0aGlzIGZpbGUgYXJlIG9ubHkgdGFrZW4gaW50byBhY2Nv
dW50IGlmIHRoZSAocG9ydCBzcGVjaWZpYykgYnVpbGQgc3lzdGVtCisgKiBoYXMgbm90IGVuYWJs
ZWQgb3IgZGlzYWJsZWQgYSBwYXJ0aWN1bGFyIGZlYXR1cmUuCisgKgorICogVXNlIHRoaXMgZmls
ZSB0byBkZWZpbmUgRU5BQkxFKCkgbWFjcm9zIG9ubHkuIERvIG5vdCB1c2UgdGhpcyBmaWxlIHRv
IGRlZmluZSBVU0UoKSBvciBtYWNyb3MgIQorICoKKyAqIE9ubHkgZGVmaW5lIGEgbWFjcm8gaWYg
aXQgd2FzIG5vdCBkZWZpbmVkIGJlZm9yZSAtIGFsd2F5cyBjaGVjayBmb3IgIWRlZmluZWQgZmly
c3QuCisgKgorICogS2VlcCB0aGUgZmlsZSBzb3J0ZWQgYnkgdGhlIG5hbWUgb2YgdGhlIGRlZmlu
ZXMuIEFzIGFuIGV4Y2VwdGlvbiB5b3UgY2FuIGNoYW5nZSB0aGUgb3JkZXIKKyAqIHRvIGFsbG93
IGludGVyZGVwZW5kZW5jaWVzIGJldHdlZW4gdGhlIGRlZmF1bHQgdmFsdWVzLgorICoKKyAqIEJl
bG93IGFyZSBhIGZldyBwb3RlbnRpYWwgY29tbWFuZHMgdG8gdGFrZSBhZHZhbnRhZ2Ugb2YgdGhp
cyBmaWxlIHJ1bm5pbmcgZnJvbSB0aGUgU291cmNlL1dURiBkaXJlY3RvcnkKKyAqCisgKiBHZXQg
dGhlIGxpc3Qgb2YgZmVhdHVyZSBkZWZpbmVzOiBncmVwIC1vICJFTkFCTEVfXChcd1wrXCkiIHd0
Zi9QbGF0Zm9ybUVuYWJsZS5oIHwgc29ydCB8IHVuaXEKKyAqIEdldCB0aGUgbGlzdCBvZiBmZWF0
dXJlcyBlbmFibGVkIGJ5IGRlZmF1bHQgZm9yIGEgUExBVEZPUk0oWFhYKTogZ2NjIC1FIC1kTSAt
SS4gLURXVEZfUExBVEZPUk1fWFhYICJ3dGYvUGxhdGZvcm0uaCIgfCBncmVwICJFTkFCTEVfXHdc
KyAxIiB8IGN1dCAtZCcgJyAtZjIgfCBzb3J0CisgKi8KKworCisvKiBGSVhNRTogVGhpcyBzaG91
bGQgYmUgcmVuYW1lZCB0byBFTkFCTEVfQVNTRVJUUyBmb3IgY29uc2lzdGVuY3kgYW5kIHNvIGl0
IGNhbiBiZSB1c2VkIGFzIEVOQUJMRShBU1NFUlRTKS4gKi8KKy8qIEFTU0VSVF9FTkFCTEVEIHNo
b3VsZCBiZSB0cnVlIGlmIHdlIHdhbnQgdGhlIGN1cnJlbnQgY29tcGlsYXRpb24gdW5pdCB0bwor
ICAgZG8gZGVidWcgYXNzZXJ0aW9uIGNoZWNrcyB1bmNvbmRpdGlvbmFsbHkgKGUuZy4gdHJlYXQg
YSBkZWJ1ZyBBU1NFUlQKKyAgIGxpa2UgYSBSRUxFQVNFX0FTU0VSVC4KKyovCisjaWZuZGVmIEFT
U0VSVF9FTkFCTEVECisjaWZkZWYgTkRFQlVHCisjZGVmaW5lIEFTU0VSVF9FTkFCTEVEIDAKKyNl
bHNlCisjZGVmaW5lIEFTU0VSVF9FTkFCTEVEIDEKKyNlbmRpZgorI2VuZGlmCisKKy8qID09PT0g
UGxhdGZvcm0gYWRkaXRpb25zOiBhZGRpdGlvbnMgdG8gUGxhdGZvcm1FbmFibGUuaCBmcm9tIG91
dHNpZGUgdGhlIG1haW4gcmVwb3NpdG9yeSA9PT09ICovCisKKyNpZiBVU0UoQVBQTEVfSU5URVJO
QUxfU0RLKSAmJiBfX2hhc19pbmNsdWRlKDxXZWJLaXRBZGRpdGlvbnMvQWRkaXRpb25hbEZlYXR1
cmVEZWZpbmVzLmg+KQorI2luY2x1ZGUgPFdlYktpdEFkZGl0aW9ucy9BZGRpdGlvbmFsRmVhdHVy
ZURlZmluZXMuaD4KKyNlbmRpZgorCisvKiBGSVhNRTogTW92ZSBvdXQgdGhlIFBMQVRGT1JNIHNw
ZWNpZmljIHJ1bGVzIGludG8gcGxhdGZvcm0gc3BlY2lmaWMgZmlsZXMuICovCisKKy8qIC0tLS0t
LS0tLSBBcHBsZSBpT1MgKGJ1dCBub3QgbWFjT1MpIHBvcnQgLS0tLS0tLS0tICovCisjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKKworI2lmICFkZWZpbmVkKEVOQUJMRV9BSVJQTEFZX1BJQ0tFUikK
KyNpZiAhUExBVEZPUk0oTUFDQ0FUQUxZU1QpCisjZGVmaW5lIEVOQUJMRV9BSVJQTEFZX1BJQ0tF
UiAxCisjZW5kaWYKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0FQUExFX1BBWV9SRU1P
VEVfVUkpCisjaWYgIVBMQVRGT1JNKEFQUExFVFYpICYmICFQTEFURk9STShNQUNDQVRBTFlTVCkg
JiYgIVBMQVRGT1JNKFdBVENIT1MpCisjZGVmaW5lIEVOQUJMRV9BUFBMRV9QQVlfUkVNT1RFX1VJ
IDEKKyNlbmRpZgorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQ09OVEVOVF9FWFRFTlNJ
T05TKQorI2RlZmluZSBFTkFCTEVfQ09OVEVOVF9FWFRFTlNJT05TIDEKKyNlbmRpZgorCisjaWYg
IWRlZmluZWQoRU5BQkxFX0NPTlRFWFRfTUVOVVMpCisjZGVmaW5lIEVOQUJMRV9DT05URVhUX01F
TlVTIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0NPTlRFWFRfTUVOVV9FVkVOVCkK
KyNpZiAhUExBVEZPUk0oTUFDQ0FUQUxZU1QpCisjZGVmaW5lIEVOQUJMRV9DT05URVhUX01FTlVf
RVZFTlQgMAorI2VuZGlmCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9DVVNUT01fQ1VS
U09SX1NVUFBPUlQpCisjZGVmaW5lIEVOQUJMRV9DVVNUT01fQ1VSU09SX1NVUFBPUlQgMAorI2Vu
ZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfRFJBR19TVVBQT1JUKQorI2RlZmluZSBFTkFCTEVf
RFJBR19TVVBQT1JUIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0dFT0xPQ0FUSU9O
KQorI2RlZmluZSBFTkFCTEVfR0VPTE9DQVRJT04gMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChF
TkFCTEVfSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUykKKyNkZWZpbmUgRU5BQkxFX0lO
U1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hFUlMgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChF
TkFCTEVfSU5TUEVDVE9SX1RFTEVNRVRSWSkKKyNkZWZpbmUgRU5BQkxFX0lOU1BFQ1RPUl9URUxF
TUVUUlkgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTEVUVEVSUFJFU1MpCisjZGVm
aW5lIEVOQUJMRV9MRVRURVJQUkVTUyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9B
VVRPQ09SUkVDVCkKKyNkZWZpbmUgRU5BQkxFX0FVVE9DT1JSRUNUIDEKKyNlbmRpZgorCisjaWYg
IWRlZmluZWQoRU5BQkxFX0FVVE9DQVBJVEFMSVpFKQorI2RlZmluZSBFTkFCTEVfQVVUT0NBUElU
QUxJWkUgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfSU9TX0dFU1RVUkVfRVZFTlRT
KSAmJiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorI2RlZmluZSBFTkFCTEVfSU9TX0dFU1RVUkVf
RVZFTlRTIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykK
KyNkZWZpbmUgRU5BQkxFX1RFWFRfQVVUT1NJWklORyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVk
KEVOQUJMRV9JT1NfVE9VQ0hfRVZFTlRTKSAmJiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorI2Rl
ZmluZSBFTkFCTEVfSU9TX1RPVUNIX0VWRU5UUyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVO
QUJMRV9NRVRFUl9FTEVNRU5UKQorI2RlZmluZSBFTkFCTEVfTUVURVJfRUxFTUVOVCAwCisjZW5k
aWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJKQorI2RlZmluZSBF
TkFCTEVfTkVUU0NBUEVfUExVR0lOX0FQSSAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJM
RV9PUklFTlRBVElPTl9FVkVOVFMpCisjZGVmaW5lIEVOQUJMRV9PUklFTlRBVElPTl9FVkVOVFMg
MQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfUE9JTlRFUl9MT0NLKQorI2RlZmluZSBF
TkFCTEVfUE9JTlRFUl9MT0NLIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1JFTU9U
RV9JTlNQRUNUT1IpCisjZGVmaW5lIEVOQUJMRV9SRU1PVEVfSU5TUEVDVE9SIDEKKyNlbmRpZgor
CisjaWYgIWRlZmluZWQoRU5BQkxFX1RFWFRfQ0FSRVQpCisjZGVmaW5lIEVOQUJMRV9URVhUX0NB
UkVUIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1RFWFRfU0VMRUNUSU9OKQorI2Rl
ZmluZSBFTkFCTEVfVEVYVF9TRUxFQ1RJT04gMAorI2VuZGlmCisKKy8qIEZJWE1FOiBSZW1vdmUg
dGhlIFVTRShBUFBMRV9JTlRFUk5BTF9TREspIGNvbmp1bmN0IG9uY2Ugd2Ugc3VwcG9ydCB0b3Vj
aCBldmVudHMgd2hlbiBidWlsZGluZyBhZ2FpbnN0Cit0aGUgcHVibGljIGlPUyBTREsuIFNlZSA8
aHR0cHM6Ly93ZWJraXQub3JnL2IvMTc5MTY3Pi4gKi8KKyNpZiAhZGVmaW5lZChFTkFCTEVfVE9V
Q0hfRVZFTlRTKSAmJiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorI2RlZmluZSBFTkFCTEVfVE9V
Q0hfRVZFTlRTIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1dFQl9BUkNISVZFKQor
I2RlZmluZSBFTkFCTEVfV0VCX0FSQ0hJVkUgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFC
TEVfV0VCR0wpCisjZGVmaW5lIEVOQUJMRV9XRUJHTCAxCisjZW5kaWYKKworI2lmICFkZWZpbmVk
KEVOQUJMRV9QUklNQVJZX1NOQVBTSE9UVEVEX1BMVUdJTl9IRVVSSVNUSUMpCisjZGVmaW5lIEVO
QUJMRV9QUklNQVJZX1NOQVBTSE9UVEVEX1BMVUdJTl9IRVVSSVNUSUMgMQorI2VuZGlmCisKKyNp
ZiAhZGVmaW5lZChFTkFCTEVfRE9XTkxPQURfQVRUUklCVVRFKQorI2RlZmluZSBFTkFCTEVfRE9X
TkxPQURfQVRUUklCVVRFIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1dLUERGVklF
VykgJiYgUExBVEZPUk0oSU9TKQorI2RlZmluZSBFTkFCTEVfV0tQREZWSUVXIDEKKyNlbmRpZgor
CisjaWYgIWRlZmluZWQoRU5BQkxFX01FRElBX1NPVVJDRSkKKyNkZWZpbmUgRU5BQkxFX01FRElB
X1NPVVJDRSAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9QUkVWSUVXX0NPTlZFUlRF
UikgJiYgUExBVEZPUk0oSU9TKQorI2RlZmluZSBFTkFCTEVfUFJFVklFV19DT05WRVJURVIgMQor
I2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTUVUQV9WSUVXUE9SVCkKKyNkZWZpbmUgRU5B
QkxFX01FVEFfVklFV1BPUlQgMQorI2VuZGlmCisKKyNlbmRpZiAvKiBQTEFURk9STShJT1NfRkFN
SUxZKSAqLworCisvKiAtLS0tLS0tLS0gQXBwbGUgd2F0Y2hPUyBwb3J0IC0tLS0tLS0tLSAqLwor
I2lmIFBMQVRGT1JNKFdBVENIT1MpCisKKyNlbmRpZiAvKiBQTEFURk9STShXQVRDSE9TKSAqLwor
CisvKiAtLS0tLS0tLS0gQXBwbGUgbWFjT1MgcG9ydCAobm90IGlPUykgLS0tLS0tLS0tICovCisj
aWYgUExBVEZPUk0oTUFDKQorCisjaWYgIWRlZmluZWQoRU5BQkxFX0NPTlRFTlRfRVhURU5TSU9O
UykKKyNkZWZpbmUgRU5BQkxFX0NPTlRFTlRfRVhURU5TSU9OUyAxCisjZW5kaWYKKworI2lmICFk
ZWZpbmVkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkKKyNkZWZpbmUgRU5BQkxFX0ZVTExTQ1JFRU5f
QVBJIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpCisj
ZGVmaW5lIEVOQUJMRV9SRU1PVEVfSU5TUEVDVE9SIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQo
RU5BQkxFX0lOU1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hFUlMpCisjZGVmaW5lIEVOQUJMRV9J
TlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENIRVJTIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQo
RU5BQkxFX0lOU1BFQ1RPUl9URUxFTUVUUlkpCisjZGVmaW5lIEVOQUJMRV9JTlNQRUNUT1JfVEVM
RU1FVFJZIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1NNT09USF9TQ1JPTExJTkcp
CisjZGVmaW5lIEVOQUJMRV9TTU9PVEhfU0NST0xMSU5HIDEKKyNlbmRpZgorCisjaWYgRU5BQkxF
KFZJREVPKQorI2lmICFkZWZpbmVkKEVOQUJMRV9WSURFT19UUkFDSykKKyNkZWZpbmUgRU5BQkxF
X1ZJREVPX1RSQUNLIDEKKyNlbmRpZgorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfV0VC
X0FSQ0hJVkUpCisjZGVmaW5lIEVOQUJMRV9XRUJfQVJDSElWRSAxCisjZW5kaWYKKworI2lmICFk
ZWZpbmVkKEVOQUJMRV9XRUJfQVVESU8pCisjZGVmaW5lIEVOQUJMRV9XRUJfQVVESU8gMQorI2Vu
ZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkpCisjZGVmaW5lIEVO
QUJMRV9DVVJTT1JfVklTSUJJTElUWSAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9Q
UklNQVJZX1NOQVBTSE9UVEVEX1BMVUdJTl9IRVVSSVNUSUMpCisjZGVmaW5lIEVOQUJMRV9QUklN
QVJZX1NOQVBTSE9UVEVEX1BMVUdJTl9IRVVSSVNUSUMgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5l
ZChFTkFCTEVfTUFDX0dFU1RVUkVfRVZFTlRTKSAmJiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQor
I2RlZmluZSBFTkFCTEVfTUFDX0dFU1RVUkVfRVZFTlRTIDEKKyNlbmRpZgorCisjaWYgIWRlZmlu
ZWQoRU5BQkxFX1dFQlBST0NFU1NfTlNSVU5MT09QKQorI2RlZmluZSBFTkFCTEVfV0VCUFJPQ0VT
U19OU1JVTkxPT1AgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE0MDAKKyNl
bmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1dFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NL
SU5HKQorI2RlZmluZSBFTkFCTEVfV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcgRU5B
QkxFX1dFQlBST0NFU1NfTlNSVU5MT09QCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9N
RURJQV9TT1VSQ0UpCisjZGVmaW5lIEVOQUJMRV9NRURJQV9TT1VSQ0UgMQorI2VuZGlmCisKKyNl
bmRpZiAvKiBQTEFURk9STShNQUMpICovCisKKy8qIC0tLS0tLS0tLSBBcHBsZSBDb2NvYSBwbGF0
Zm9ybXMgLS0tLS0tLS0tICovCisKKyNpZiBQTEFURk9STShDT0NPQSkKKworI2lmICFkZWZpbmVk
KEVOQUJMRV9MRUdBQ1lfRU5DUllQVEVEX01FRElBKQorI2lmIFBMQVRGT1JNKE1BQ0NBVEFMWVNU
KQorI2RlZmluZSBFTkFCTEVfTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSAwCisjZWxzZQorI2RlZmlu
ZSBFTkFCTEVfTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSAxCisjZW5kaWYKKyNlbmRpZgorCisjaWYg
IWRlZmluZWQoRU5BQkxFX0ZJTEVfUkVQTEFDRU1FTlQpCisjZGVmaW5lIEVOQUJMRV9GSUxFX1JF
UExBQ0VNRU5UIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1BBWU1FTlRfUkVRVUVT
VCkKKyNkZWZpbmUgRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCAxCisjZW5kaWYKKworI2lmICFkZWZp
bmVkKEVOQUJMRV9BU1lOQ19TQ1JPTExJTkcpCisjZGVmaW5lIEVOQUJMRV9BU1lOQ19TQ1JPTExJ
TkcgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfVUlfU0lERV9DT01QT1NJVElORykK
KyNkZWZpbmUgRU5BQkxFX1VJX1NJREVfQ09NUE9TSVRJTkcgMQorI2VuZGlmCisKKyNlbmRpZiAv
KiBQTEFURk9STShDT0NPQSkgKi8KKworI2lmICFQTEFURk9STShDT0NPQSkKKworI2lmICFkZWZp
bmVkKEpTQ19PQkpDX0FQSV9FTkFCTEVEKQorI2RlZmluZSBKU0NfT0JKQ19BUElfRU5BQkxFRCAw
CisjZW5kaWYKKworI2VuZGlmIC8qICFQTEFURk9STShDT0NPQSkgKi8KKworCisvKiAtLS0tLS0t
LS0gQXBwbGUgV2luZG93cyBwb3J0IC0tLS0tLS0tLSAqLworI2lmIFBMQVRGT1JNKFdJTikgJiYg
IVBMQVRGT1JNKFdJTl9DQUlSTykKKworI2lmICFkZWZpbmVkKEVOQUJMRV9GVUxMU0NSRUVOX0FQ
SSkKKyNkZWZpbmUgRU5BQkxFX0ZVTExTQ1JFRU5fQVBJIDEKKyNlbmRpZgorCisjaWYgIWRlZmlu
ZWQoRU5BQkxFX1dFQl9BUkNISVZFKQorI2RlZmluZSBFTkFCTEVfV0VCX0FSQ0hJVkUgMQorI2Vu
ZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfV0VCR0wpCisjZGVmaW5lIEVOQUJMRV9XRUJHTCAw
CisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9HRU9MT0NBVElPTikKKyNkZWZpbmUgRU5B
QkxFX0dFT0xPQ0FUSU9OIDEKKyNlbmRpZgorCisjZW5kaWYgLyogUExBVEZPUk0oV0lOKSAmJiAh
UExBVEZPUk0oV0lOX0NBSVJPKSAqLworCisvKiAtLS0tLS0tLS0gV2luZG93cyBDQUlSTyBwb3J0
IC0tLS0tLS0tLSAqLworLyogUExBVEZPUk0oV0lOX0NBSVJPKSBpcyBhIHNwZWNpYWxpemF0aW9u
IG9mIFBMQVRGT1JNKFdJTikuICovCisvKiBQTEFURk9STShXSU4pIGlzIGFsd2F5cyBlbmFibGVk
IHdoZW4gUExBVEZPUk0oV0lOX0NBSVJPKSBpcyBlbmFibGVkLiAqLworI2lmIFBMQVRGT1JNKFdJ
Tl9DQUlSTykKKworI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJfQVJDSElWRSkKKyNkZWZpbmUgRU5B
QkxFX1dFQl9BUkNISVZFIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1dFQkdMKQor
I2RlZmluZSBFTkFCTEVfV0VCR0wgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfR0VP
TE9DQVRJT04pCisjZGVmaW5lIEVOQUJMRV9HRU9MT0NBVElPTiAxCisjZW5kaWYKKworI2VuZGlm
IC8qIFBMQVRGT1JNKFdJTl9DQUlSTykgKi8KKworLyogRU5BQkxFIG1hY3JvIGRlZmF1bHRzIGZv
ciBXZWJDb3JlICovCisvKiBEbyBub3QgdXNlIFBMQVRGT1JNKCkgdGVzdHMgaW4gdGhpcyBzZWN0
aW9uICEgKi8KKworI2lmICFkZWZpbmVkKEVOQUJMRV8zRF9UUkFOU0ZPUk1TKQorI2RlZmluZSBF
TkFCTEVfM0RfVFJBTlNGT1JNUyAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9BQ0NF
U1NJQklMSVRZKQorI2RlZmluZSBFTkFCTEVfQUNDRVNTSUJJTElUWSAxCisjZW5kaWYKKworI2lm
ICFkZWZpbmVkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpCisjZGVmaW5lIEVOQUJMRV9B
Q0NFTEVSQVRFRF8yRF9DQU5WQVMgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfT1ZF
UkZMT1dfU0NST0xMSU5HX1RPVUNIKQorI2RlZmluZSBFTkFCTEVfT1ZFUkZMT1dfU0NST0xMSU5H
X1RPVUNIIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0FQTkcpCisjZGVmaW5lIEVO
QUJMRV9BUE5HIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0NIQU5ORUxfTUVTU0FH
SU5HKQorI2RlZmluZSBFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcgMQorI2VuZGlmCisKKyNpZiAh
ZGVmaW5lZChFTkFCTEVfQ09OVEVOVF9FWFRFTlNJT05TKQorI2RlZmluZSBFTkFCTEVfQ09OVEVO
VF9FWFRFTlNJT05TIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0NPTlRFWFRfTUVO
VVMpCisjZGVmaW5lIEVOQUJMRV9DT05URVhUX01FTlVTIDEKKyNlbmRpZgorCisjaWYgIWRlZmlu
ZWQoRU5BQkxFX0NPTlRFWFRfTUVOVV9FVkVOVCkKKyNkZWZpbmUgRU5BQkxFX0NPTlRFWFRfTUVO
VV9FVkVOVCAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9DU1MzX1RFWFQpCisjZGVm
aW5lIEVOQUJMRV9DU1MzX1RFWFQgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQ1NT
X0JPWF9ERUNPUkFUSU9OX0JSRUFLKQorI2RlZmluZSBFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9O
X0JSRUFLIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0NTU19ERVZJQ0VfQURBUFRB
VElPTikKKyNkZWZpbmUgRU5BQkxFX0NTU19ERVZJQ0VfQURBUFRBVElPTiAwCisjZW5kaWYKKwor
I2lmICFkZWZpbmVkKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpCisjZGVmaW5lIEVOQUJMRV9DU1Nf
Q09NUE9TSVRJTkcgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTX0lNQUdFX1JF
U09MVVRJT04pCisjZGVmaW5lIEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTiAwCisjZW5kaWYK
KworI2lmICFkZWZpbmVkKEVOQUJMRV9DU1NfQ09OSUNfR1JBRElFTlRTKQorI2RlZmluZSBFTkFC
TEVfQ1NTX0NPTklDX0dSQURJRU5UUyAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9D
VVNUT01fQ1VSU09SX1NVUFBPUlQpCisjZGVmaW5lIEVOQUJMRV9DVVNUT01fQ1VSU09SX1NVUFBP
UlQgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVS
KQorI2RlZmluZSBFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSIDAKKyNlbmRpZgorCisjaWYg
IWRlZmluZWQoRU5BQkxFX0RBUktfTU9ERV9DU1MpCisjZGVmaW5lIEVOQUJMRV9EQVJLX01PREVf
Q1NTIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQpCisj
ZGVmaW5lIEVOQUJMRV9EQVRBTElTVF9FTEVNRU5UIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQo
RU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikKKyNkZWZpbmUgRU5BQkxFX0RFVklDRV9PUklFTlRB
VElPTiAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9ET1dOTE9BRF9BVFRSSUJVVEUp
CisjZGVmaW5lIEVOQUJMRV9ET1dOTE9BRF9BVFRSSUJVVEUgMQorI2VuZGlmCisKKyNpZiAhZGVm
aW5lZChFTkFCTEVfRFJBR19TVVBQT1JUKQorI2RlZmluZSBFTkFCTEVfRFJBR19TVVBQT1JUIDEK
KyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSkKKyNkZWZpbmUg
RU5BQkxFX0VOQ1JZUFRFRF9NRURJQSAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9G
SUxURVJTX0xFVkVMXzIpCisjZGVmaW5lIEVOQUJMRV9GSUxURVJTX0xFVkVMXzIgMAorI2VuZGlm
CisKKyNpZiAhZGVmaW5lZChFTkFCTEVfRlRQRElSKQorI2RlZmluZSBFTkFCTEVfRlRQRElSIDEK
KyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKQorI2RlZmluZSBF
TkFCTEVfRlVMTFNDUkVFTl9BUEkgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfR0FN
RVBBRCkKKyNkZWZpbmUgRU5BQkxFX0dBTUVQQUQgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChF
TkFCTEVfR0VPTE9DQVRJT04pCisjZGVmaW5lIEVOQUJMRV9HRU9MT0NBVElPTiAwCisjZW5kaWYK
KworI2lmICFkZWZpbmVkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKQorI2RlZmluZSBFTkFCTEVf
SU5ERVhFRF9EQVRBQkFTRSAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9JTkRFWEVE
X0RBVEFCQVNFX0lOX1dPUktFUlMpCisjZGVmaW5lIEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFX0lO
X1dPUktFUlMgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfSU5QVVRfVFlQRV9DT0xP
UikKKyNkZWZpbmUgRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IgMQorI2VuZGlmCisKKyNpZiAhZGVm
aW5lZChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKQorI2RlZmluZSBFTkFCTEVfSU5QVVRfVFlQRV9E
QVRFIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVf
SU5DT01QTEVURSkKKyNkZWZpbmUgRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVfSU5DT01QTEVU
RSAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9D
QUwpCisjZGVmaW5lIEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwgMAorI2VuZGlmCisK
KyNpZiAhZGVmaW5lZChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCkKKyNkZWZpbmUgRU5BQkxFX0lO
UFVUX1RZUEVfTU9OVEggMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfSU5QVVRfVFlQ
RV9USU1FKQorI2RlZmluZSBFTkFCTEVfSU5QVVRfVFlQRV9USU1FIDAKKyNlbmRpZgorCisjaWYg
IWRlZmluZWQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykKKyNkZWZpbmUgRU5BQkxFX0lOUFVUX1RZ
UEVfV0VFSyAwCisjZW5kaWYKKworI2lmIEVOQUJMRShJTlBVVF9UWVBFX0RBVEUpIHx8IEVOQUJM
RShJTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUpIHx8IEVOQUJMRShJTlBVVF9UWVBFX0RB
VEVUSU1FTE9DQUwpIHx8IEVOQUJMRShJTlBVVF9UWVBFX01PTlRIKSB8fCBFTkFCTEUoSU5QVVRf
VFlQRV9USU1FKSB8fCBFTkFCTEUoSU5QVVRfVFlQRV9XRUVLKQorI2lmICFkZWZpbmVkKEVOQUJM
RV9EQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQorI2RlZmluZSBFTkFCTEVfREFURV9BTkRfVElN
RV9JTlBVVF9UWVBFUyAxCisjZW5kaWYKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0lO
U1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hFUlMpCisjZGVmaW5lIEVOQUJMRV9JTlNQRUNUT1Jf
QUxURVJOQVRFX0RJU1BBVENIRVJTIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0lO
U1BFQ1RPUl9URUxFTUVUUlkpCisjZGVmaW5lIEVOQUJMRV9JTlNQRUNUT1JfVEVMRU1FVFJZIDAK
KyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0lOVEwpCisjZGVmaW5lIEVOQUJMRV9JTlRM
IDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0xBWU9VVF9GT1JNQVRUSU5HX0NPTlRF
WFQpCisjZGVmaW5lIEVOQUJMRV9MQVlPVVRfRk9STUFUVElOR19DT05URVhUIDAKKyNlbmRpZgor
CisjaWYgIWRlZmluZWQoRU5BQkxFX0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJWEVTKQorI2RlZmlu
ZSBFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMgMAorI2VuZGlmCisKKyNpZiAhZGVm
aW5lZChFTkFCTEVfTEVUVEVSUFJFU1MpCisjZGVmaW5lIEVOQUJMRV9MRVRURVJQUkVTUyAwCisj
ZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9NQVRITUwpCisjZGVmaW5lIEVOQUJMRV9NQVRI
TUwgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTUVESUFfQ0FQVFVSRSkKKyNkZWZp
bmUgRU5BQkxFX01FRElBX0NBUFRVUkUgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVf
TUVESUFfQ09OVFJPTFNfU0NSSVBUKQorI2RlZmluZSBFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NS
SVBUIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX01FRElBX1NPVVJDRSkKKyNkZWZp
bmUgRU5BQkxFX01FRElBX1NPVVJDRSAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9N
RURJQV9TVEFUSVNUSUNTKQorI2RlZmluZSBFTkFCTEVfTUVESUFfU1RBVElTVElDUyAwCisjZW5k
aWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9NRURJQV9TVFJFQU0pCisjZGVmaW5lIEVOQUJMRV9N
RURJQV9TVFJFQU0gMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTUVURVJfRUxFTUVO
VCkKKyNkZWZpbmUgRU5BQkxFX01FVEVSX0VMRU1FTlQgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5l
ZChFTkFCTEVfTUhUTUwpCisjZGVmaW5lIEVOQUJMRV9NSFRNTCAwCisjZW5kaWYKKworI2lmICFk
ZWZpbmVkKEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUpCisjZGVmaW5lIEVOQUJMRV9NT1VTRV9D
VVJTT1JfU0NBTEUgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTU9VU0VfRk9SQ0Vf
RVZFTlRTKQorI2RlZmluZSBFTkFCTEVfTU9VU0VfRk9SQ0VfRVZFTlRTIDEKKyNlbmRpZgorCisj
aWYgIWRlZmluZWQoRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9BUEkpCisjZGVmaW5lIEVOQUJMRV9O
RVRTQ0FQRV9QTFVHSU5fQVBJIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX05FVFND
QVBFX1BMVUdJTl9NRVRBREFUQV9DQUNIRSkKKyNkZWZpbmUgRU5BQkxFX05FVFNDQVBFX1BMVUdJ
Tl9NRVRBREFUQV9DQUNIRSAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9OT1RJRklD
QVRJT05TKQorI2RlZmluZSBFTkFCTEVfTk9USUZJQ0FUSU9OUyAwCisjZW5kaWYKKworI2lmICFk
ZWZpbmVkKEVOQUJMRV9PRkZTQ1JFRU5fQ0FOVkFTKQorI2RlZmluZSBFTkFCTEVfT0ZGU0NSRUVO
X0NBTlZBUyAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9PUklFTlRBVElPTl9FVkVO
VFMpCisjZGVmaW5lIEVOQUJMRV9PUklFTlRBVElPTl9FVkVOVFMgMAorI2VuZGlmCisKKyNpZiBP
UyhXSU5ET1dTKQorI2lmICFkZWZpbmVkKEVOQUJMRV9QQU5fU0NST0xMSU5HKQorI2RlZmluZSBF
TkFCTEVfUEFOX1NDUk9MTElORyAxCisjZW5kaWYKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5B
QkxFX1BBWU1FTlRfUkVRVUVTVCkKKyNkZWZpbmUgRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCAwCisj
ZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9QT0lOVEVSX0xPQ0spCisjZGVmaW5lIEVOQUJM
RV9QT0lOVEVSX0xPQ0sgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfUVVPVEEpCisj
ZGVmaW5lIEVOQUJMRV9RVU9UQSAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9SRU1P
VEVfSU5TUEVDVE9SKQorI2RlZmluZSBFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUiAwCisjZW5kaWYK
KworI2lmICFkZWZpbmVkKEVOQUJMRV9SVUJCRVJfQkFORElORykKKyNkZWZpbmUgRU5BQkxFX1JV
QkJFUl9CQU5ESU5HIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1NFQ1VSSVRZX0FT
U0VSVElPTlMpCisvKiBFbmFibGUgc2VjdXJpdHkgYXNzZXJ0aW9ucyBvbiBhbGwgQVNBTiBidWls
ZHMgYW5kIGRlYnVnIGJ1aWxkcy4gKi8KKyNpZiBBU0FOX0VOQUJMRUQgfHwgIWRlZmluZWQoTkRF
QlVHKQorI2RlZmluZSBFTkFCTEVfU0VDVVJJVFlfQVNTRVJUSU9OUyAxCisjZW5kaWYKKyNlbmRp
ZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1NNT09USF9TQ1JPTExJTkcpCisjZGVmaW5lIEVOQUJM
RV9TTU9PVEhfU0NST0xMSU5HIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1NQRUVD
SF9TWU5USEVTSVMpCisjZGVmaW5lIEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTIDAKKyNlbmRpZgor
CisjaWYgIWRlZmluZWQoRU5BQkxFX1NQRUxMQ0hFQ0spCisjZGVmaW5lIEVOQUJMRV9TUEVMTENI
RUNLIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1NUUkVBTVNfQVBJKQorI2RlZmlu
ZSBFTkFCTEVfU1RSRUFNU19BUEkgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfU1ZH
X0ZPTlRTKQorI2RlZmluZSBFTkFCTEVfU1ZHX0ZPTlRTIDEKKyNlbmRpZgorCisjaWYgIWRlZmlu
ZWQoRU5BQkxFX1RFWFRfQ0FSRVQpCisjZGVmaW5lIEVOQUJMRV9URVhUX0NBUkVUIDEKKyNlbmRp
ZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1RFWFRfU0VMRUNUSU9OKQorI2RlZmluZSBFTkFCTEVf
VEVYVF9TRUxFQ1RJT04gMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQVNZTkNfU0NS
T0xMSU5HKQorI2RlZmluZSBFTkFCTEVfQVNZTkNfU0NST0xMSU5HIDAKKyNlbmRpZgorCisjaWYg
IWRlZmluZWQoRU5BQkxFX1RPVUNIX0VWRU5UUykKKyNkZWZpbmUgRU5BQkxFX1RPVUNIX0VWRU5U
UyAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9WSURFTykKKyNkZWZpbmUgRU5BQkxF
X1ZJREVPIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1ZJREVPX1RSQUNLKQorI2Rl
ZmluZSBFTkFCTEVfVklERU9fVFJBQ0sgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVf
REFUQUNVRV9WQUxVRSkKKyNkZWZpbmUgRU5BQkxFX0RBVEFDVUVfVkFMVUUgMAorI2VuZGlmCisK
KyNpZiAhZGVmaW5lZChFTkFCTEVfV0VCR0wpCisjZGVmaW5lIEVOQUJMRV9XRUJHTCAwCisjZW5k
aWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9HUkFQSElDU19DT05URVhUX0dMKQorI2RlZmluZSBF
TkFCTEVfR1JBUEhJQ1NfQ09OVEVYVF9HTCBFTkFCTEVfV0VCR0wKKyNlbmRpZgorCisjaWYgIWRl
ZmluZWQoRU5BQkxFX1dFQl9BUkNISVZFKQorI2RlZmluZSBFTkFCTEVfV0VCX0FSQ0hJVkUgMAor
I2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfV0VCX0FVRElPKQorI2RlZmluZSBFTkFCTEVf
V0VCX0FVRElPIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1hTTFQpCisjZGVmaW5l
IEVOQUJMRV9YU0xUIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0RBVEFfSU5URVJB
Q1RJT04pCisjZGVmaW5lIEVOQUJMRV9EQVRBX0lOVEVSQUNUSU9OIDAKKyNlbmRpZgorCisjaWYg
IWRlZmluZWQoRU5BQkxFX1NFUlZJQ0VfV09SS0VSKQorI2RlZmluZSBFTkFCTEVfU0VSVklDRV9X
T1JLRVIgMQorI2VuZGlmCisKKworLyogSklUIEZlYXR1cmVzICovCisKKy8qIFRoZSBKSVQgaXMg
ZW5hYmxlZCBieSBkZWZhdWx0IG9uIGFsbCB4ODYtNjQgJiBBUk02NCBwbGF0Zm9ybXMuICovCisj
aWYgIWRlZmluZWQoRU5BQkxFX0pJVCkgJiYgKENQVShYODZfNjQpIHx8IENQVShBUk02NCkpICYm
ICFDUFUoQVBQTEVfQVJNVjdLKQorI2RlZmluZSBFTkFCTEVfSklUIDEKKyNlbmRpZgorCisjaWYg
VVNFKEpTVkFMVUUzMl82NCkKKyNpZiAoQ1BVKEFSTV9USFVNQjIpIHx8IENQVShNSVBTKSkgJiYg
T1MoTElOVVgpCisvKiBPbiBBUk12NyBhbmQgTUlQUyBvbiBMaW51eCB0aGUgSklUIGlzIGVuYWJs
ZWQgdW5sZXNzIGV4cGxpY2l0bHkgZGlzYWJsZWQuICovCisjaWYgIWRlZmluZWQoRU5BQkxFX0pJ
VCkKKyNkZWZpbmUgRU5BQkxFX0pJVCAxCisjZW5kaWYKKyNlbHNlCisvKiBEaXNhYmxlIEpJVCBh
bmQgZm9yY2UgQ19MT09QIG9uIGFsbCBvdGhlciAzMmJpdCBhcmNoaXRlY3R1cmVzLiAqLworI3Vu
ZGVmIEVOQUJMRV9KSVQKKyNkZWZpbmUgRU5BQkxFX0pJVCAwCisjdW5kZWYgRU5BQkxFX0NfTE9P
UAorI2RlZmluZSBFTkFCTEVfQ19MT09QIDEKKyNlbmRpZgorI2VuZGlmCisKKyNpZiAhZGVmaW5l
ZChFTkFCTEVfQ19MT09QKQorI2lmIEVOQUJMRShKSVQpIHx8IENQVShYODZfNjQpIHx8IChDUFUo
QVJNNjQpICYmICFkZWZpbmVkKF9fSUxQMzJfXykpCisjZGVmaW5lIEVOQUJMRV9DX0xPT1AgMAor
I2Vsc2UKKyNkZWZpbmUgRU5BQkxFX0NfTE9PUCAxCisjZW5kaWYKKyNlbmRpZgorCisvKiBGSVhN
RTogVGhpcyBzaG91bGQgYmUgdHVybmVkIGludG8gYW4gI2Vycm9yIGludmFyaWFudCAqLworLyog
VGhlIEZUTCAqZG9lcyBub3QqIHdvcmsgb24gMzItYml0IHBsYXRmb3Jtcy4gRGlzYWJsZSBpdCBl
dmVuIGlmIHNvbWVvbmUgYXNrZWQgdXMgdG8gZW5hYmxlIGl0LiAqLworI2lmIFVTRShKU1ZBTFVF
MzJfNjQpCisjdW5kZWYgRU5BQkxFX0ZUTF9KSVQKKyNkZWZpbmUgRU5BQkxFX0ZUTF9KSVQgMAor
I2VuZGlmCisKKy8qIEZJWE1FOiBUaGlzIHNob3VsZCBiZSB0dXJuZWQgaW50byBhbiAjZXJyb3Ig
aW52YXJpYW50ICovCisvKiBUaGUgRlRMIGlzIGRpc2FibGVkIG9uIHRoZSBpT1Mgc2ltdWxhdG9y
LCBtb3N0bHkgZm9yIHNpbXBsaWNpdHkuICovCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWV9TSU1V
TEFUT1IpCisjdW5kZWYgRU5BQkxFX0ZUTF9KSVQKKyNkZWZpbmUgRU5BQkxFX0ZUTF9KSVQgMAor
I2VuZGlmCisKKy8qIElmIHBvc3NpYmxlLCB0cnkgdG8gZW5hYmxlIGEgZGlzYXNzZW1ibGVyLiBU
aGlzIGlzIG9wdGlvbmFsLiBXZSBwcm9jZWVkIGluIHR3bworICAgc3RlcHM6IGZpcnN0IHdlIHRy
eSB0byBmaW5kIHNvbWUgZGlzYXNzZW1ibGVyIHRoYXQgd2UgY2FuIHVzZSwgYW5kIHRoZW4gd2UK
KyAgIGRlY2lkZSBpZiB0aGUgaGlnaC1sZXZlbCBkaXNhc3NlbWJsZXIgQVBJIGNhbiBiZSBlbmFi
bGVkLiAqLworI2lmICFkZWZpbmVkKEVOQUJMRV9VRElTODYpICYmIEVOQUJMRShKSVQpICYmIENQ
VShYODZfNjQpICYmICFVU0UoQ0FQU1RPTkUpCisjZGVmaW5lIEVOQUJMRV9VRElTODYgMQorI2Vu
ZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQVJNNjRfRElTQVNTRU1CTEVSKSAmJiBFTkFCTEUo
SklUKSAmJiBDUFUoQVJNNjQpICYmICFVU0UoQ0FQU1RPTkUpCisjZGVmaW5lIEVOQUJMRV9BUk02
NF9ESVNBU1NFTUJMRVIgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfRElTQVNTRU1C
TEVSKSAmJiAoRU5BQkxFKFVESVM4NikgfHwgRU5BQkxFKEFSTTY0X0RJU0FTU0VNQkxFUikgfHwg
KEVOQUJMRShKSVQpICYmIFVTRShDQVBTVE9ORSkpKQorI2RlZmluZSBFTkFCTEVfRElTQVNTRU1C
TEVSIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0RGR19KSVQpICYmIEVOQUJMRShK
SVQpCisKKy8qIEVuYWJsZSB0aGUgREZHIEpJVCBvbiBYODYgYW5kIFg4Nl82NC4gKi8KKyNpZiBD
UFUoWDg2XzY0KSAmJiAoT1MoREFSV0lOKSB8fCBPUyhMSU5VWCkgfHwgT1MoRlJFRUJTRCkgfHwg
T1MoSFVSRCkgfHwgT1MoV0lORE9XUykpCisjZGVmaW5lIEVOQUJMRV9ERkdfSklUIDEKKyNlbmRp
ZgorCisvKiBFbmFibGUgdGhlIERGRyBKSVQgb24gQVJNdjcuICBPbmx5IHRlc3RlZCBvbiBpT1Ms
IExpbnV4LCBhbmQgRnJlZUJTRC4gKi8KKyNpZiAoQ1BVKEFSTV9USFVNQjIpIHx8IENQVShBUk02
NCkpICYmIChPUyhEQVJXSU4pIHx8IE9TKExJTlVYKSB8fCBPUyhGUkVFQlNEKSkKKyNkZWZpbmUg
RU5BQkxFX0RGR19KSVQgMQorI2VuZGlmCisKKy8qIEVuYWJsZSB0aGUgREZHIEpJVCBvbiBNSVBT
LiAqLworI2lmIENQVShNSVBTKQorI2RlZmluZSBFTkFCTEVfREZHX0pJVCAxCisjZW5kaWYKKwor
I2VuZGlmIC8qICFkZWZpbmVkKEVOQUJMRV9ERkdfSklUKSAmJiBFTkFCTEUoSklUKSAqLworCisv
KiBDb25jdXJyZW50IEpTIG9ubHkgd29ya3Mgb24gNjQtYml0IHBsYXRmb3JtcyBiZWNhdXNlIGl0
IHJlcXVpcmVzIHRoYXQKKyAgIHZhbHVlcyBnZXQgc3RvcmVkIHRvIGF0b21pY2FsbHkuIFRoaXMg
aXMgdHJpdmlhbGx5IHRydWUgb24gNjQtYml0IHBsYXRmb3JtcywKKyAgIGJ1dCBub3QgdHJ1ZSBh
dCBhbGwgb24gMzItYml0IHBsYXRmb3JtcyB3aGVyZSB2YWx1ZXMgYXJlIGNvbXBvc2VkIG9mIHR3
bworICAgc2VwYXJhdGUgc3ViLXZhbHVlcy4gKi8KKyNpZiBFTkFCTEUoSklUKSAmJiBVU0UoSlNW
QUxVRTY0KQorI2RlZmluZSBFTkFCTEVfQ09OQ1VSUkVOVF9KUyAxCisjZW5kaWYKKworI2lmIChD
UFUoWDg2XzY0KSB8fCBDUFUoQVJNNjQpKSAmJiBIQVZFKEZBU1RfVExTKQorI2RlZmluZSBFTkFC
TEVfRkFTVF9UTFNfSklUIDEKKyNlbmRpZgorCisjaWYgRU5BQkxFKEpJVCkgJiYgKENQVShYODYp
IHx8IENQVShYODZfNjQpIHx8IENQVShBUk1fVEhVTUIyKSB8fCBDUFUoQVJNNjQpIHx8IENQVShN
SVBTKSkKKyNkZWZpbmUgRU5BQkxFX01BU01fUFJPQkUgMQorI2VuZGlmCisKKy8qIEZJWE1FOiBU
aGlzIHNob3VsZCBiZSB0dXJuZWQgaW50byBhbiAjZXJyb3IgaW52YXJpYW50ICovCisvKiBJZiB0
aGUgYmFzZWxpbmUgaml0IGlzIG5vdCBhdmFpbGFibGUsIHRoZW4gZGlzYWJsZSB1cHBlciB0aWVy
cyBhcyB3ZWxsLgorICAgVGhlIE1hY3JvQXNzZW1ibGVyOjpwcm9iZSgpIGlzIGFsc28gcmVxdWly
ZWQgZm9yIHN1cHBvcnRpbmcgdGhlIHVwcGVyIHRpZXJzLiAqLworI2lmICFFTkFCTEUoSklUKSB8
fCAhRU5BQkxFKE1BU01fUFJPQkUpCisjdW5kZWYgRU5BQkxFX0RGR19KSVQKKyN1bmRlZiBFTkFC
TEVfRlRMX0pJVAorI2RlZmluZSBFTkFCTEVfREZHX0pJVCAwCisjZGVmaW5lIEVOQUJMRV9GVExf
SklUIDAKKyNlbmRpZgorCisvKiBGSVhNRTogVGhpcyBzaG91bGQgYmUgdHVybmVkIGludG8gYW4g
I2Vycm9yIGludmFyaWFudCAqLworLyogSWYgdGhlIERGRyBqaXQgaXMgbm90IGF2YWlsYWJsZSwg
dGhlbiBkaXNhYmxlIHVwcGVyIHRpZXJzIGFzIHdlbGw6ICovCisjaWYgIUVOQUJMRShERkdfSklU
KQorI3VuZGVmIEVOQUJMRV9GVExfSklUCisjZGVmaW5lIEVOQUJMRV9GVExfSklUIDAKKyNlbmRp
ZgorCisvKiBUaGlzIGNvbnRyb2xzIHdoZXRoZXIgQjMgaXMgYnVpbHQuIEIzIGlzIG5lZWRlZCBm
b3IgRlRMIEpJVCBhbmQgV2ViQXNzZW1ibHkgKi8KKyNpZiBFTkFCTEUoRlRMX0pJVCkKKyNkZWZp
bmUgRU5BQkxFX0IzX0pJVCAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJBU1NF
TUJMWSkgJiYgKEVOQUJMRShCM19KSVQpICYmIFBMQVRGT1JNKENPQ09BKSAmJiBDUFUoQUREUkVT
UzY0KSkKKyNkZWZpbmUgRU5BQkxFX1dFQkFTU0VNQkxZIDEKKyNlbmRpZgorCisvKiBUaGUgU2Ft
cGxpbmdQcm9maWxlciBpcyB0aGUgcHJvYmFiaWxpc3RpYyBhbmQgbG93LW92ZXJoZWFkIHByb2Zp
bGVyIHVzZWQgYnkKKyAqIEpTQyB0byBtZWFzdXJlIHdoZXJlIHRpbWUgaXMgc3BlbnQgaW5zaWRl
IGEgSmF2YVNjcmlwdCBwcm9ncmFtLgorICogSW4gY29uZmlndXJhdGlvbnMgb3RoZXIgdGhhbiBX
aW5kb3dzIGFuZCBEYXJ3aW4sIGJlY2F1c2UgbGF5b3V0IG9mIG1jb250ZXh0X3QgZGVwZW5kcyBv
biBzdGFuZGFyZCBsaWJyYXJpZXMgKGxpa2UgZ2xpYmMpLAorICogc2FtcGxpbmcgcHJvZmlsZXIg
aXMgZW5hYmxlZCBpZiBXZWJLaXQgdXNlcyBwdGhyZWFkcyBhbmQgZ2xpYmMuICovCisjaWYgIWRl
ZmluZWQoRU5BQkxFX1NBTVBMSU5HX1BST0ZJTEVSKSAmJiAoIUVOQUJMRShDX0xPT1ApICYmIChP
UyhXSU5ET1dTKSB8fCBIQVZFKE1BQ0hJTkVfQ09OVEVYVCkpKQorI2RlZmluZSBFTkFCTEVfU0FN
UExJTkdfUFJPRklMRVIgMQorI2VuZGlmCisKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpICYmIEhB
VkUoTUFDSElORV9DT05URVhUKQorI2RlZmluZSBFTkFCTEVfV0VCQVNTRU1CTFlfRkFTVF9NRU1P
UlkgMQorI2VuZGlmCisKKy8qIENvdW50cyB1c2VzIG9mIHdyaXRlIGJhcnJpZXJzIHVzaW5nIHNh
bXBsaW5nIGNvdW50ZXJzLiBCZSBzdXJlIHRvIGFsc28KKyAgIHNldCBFTkFCTEVfU0FNUExJTkdf
Q09VTlRFUlMgdG8gMS4gKi8KKyNpZiAhZGVmaW5lZChFTkFCTEVfV1JJVEVfQkFSUklFUl9QUk9G
SUxJTkcpCisjZGVmaW5lIEVOQUJMRV9XUklURV9CQVJSSUVSX1BST0ZJTElORyAwCisjZW5kaWYK
KworLyogTG9ncyBhbGwgYWxsb2NhdGlvbi1yZWxhdGVkIGFjdGl2aXR5IHRoYXQgZ29lcyB0aHJv
dWdoIGZhc3RNYWxsb2Mgb3IgdGhlCisgICBKU0MgR0MgKGJvdGggY2VsbHMgYW5kIGJ1dHRlcmZs
aWVzKS4gQWxzbyBsb2dzIG1hcmtpbmcuIE5vdGUgdGhhdCB0aGlzCisgICBpc24ndCBhIGNvbXBs
ZXRlbHkgYWNjdXJhdGUgdmlldyBvZiB0aGUgaGVhcCBzaW5jZSBpdCBkb2Vzbid0IGluY2x1ZGUg
YWxsCisgICBidXR0ZXJmbHkgcmVzaXplIG9wZXJhdGlvbnMsIGRvZXNuJ3QgdGVsbCB5b3Ugd2hh
dCBpcyBnb2luZyBvbiB3aXRoIHdlYWsKKyAgIHJlZmVyZW5jZXMgKG90aGVyIHRoYW4gdG8gdGVs
bCB5b3Ugd2hlbiB0aGV5J3JlIG1hcmtlZCksIGFuZCBkb2Vzbid0CisgICB0cmFjayBkaXJlY3Qg
bW1hcCgpIGFsbG9jYXRpb25zIG9yIHRoaW5ncyBsaWtlIEpJVCBhbGxvY2F0aW9uLiAqLworI2lm
ICFkZWZpbmVkKEVOQUJMRV9BTExPQ0FUSU9OX0xPR0dJTkcpCisjZGVmaW5lIEVOQUJMRV9BTExP
Q0FUSU9OX0xPR0dJTkcgMAorI2VuZGlmCisKKy8qIEVuYWJsZSB2ZXJpZmljYXRpb24gdGhhdCB0
aGF0IHJlZ2lzdGVyIGFsbG9jYXRpb25zIGFyZSBub3QgbWFkZSB3aXRoaW4gZ2VuZXJhdGVkIGNv
bnRyb2wgZmxvdy4KKyAgIFR1cm5lZCBvbiBmb3IgZGVidWcgYnVpbGRzLiAqLworI2lmICFkZWZp
bmVkKEVOQUJMRV9ERkdfUkVHSVNURVJfQUxMT0NBVElPTl9WQUxJREFUSU9OKSAmJiBFTkFCTEUo
REZHX0pJVCkgJiYgIWRlZmluZWQoTkRFQlVHKQorI2RlZmluZSBFTkFCTEVfREZHX1JFR0lTVEVS
X0FMTE9DQVRJT05fVkFMSURBVElPTiAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9T
RVBBUkFURURfV1hfSEVBUCkgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgQ1BVKEFSTTY0KSAm
JiAoIUVOQUJMRShGQVNUX0pJVF9QRVJNSVNTSU9OUykgfHwgIUNQVShBUk02NEUpKQorI2RlZmlu
ZSBFTkFCTEVfU0VQQVJBVEVEX1dYX0hFQVAgMQorI2VuZGlmCisKKy8qIERldGVybWluZSBpZiB3
ZSBuZWVkIHRvIGVuYWJsZSBDb21wdXRlZCBHb3RvIE9wY29kZXMgb3Igbm90OiAqLworI2lmIEhB
VkUoQ09NUFVURURfR09UTykgfHwgIUVOQUJMRShDX0xPT1ApCisjZGVmaW5lIEVOQUJMRV9DT01Q
VVRFRF9HT1RPX09QQ09ERVMgMQorI2VuZGlmCisKKy8qIFJlZ3VsYXIgRXhwcmVzc2lvbiBUcmFj
aW5nIC0gU2V0IHRvIDEgdG8gdHJhY2UgUmVnRXhwJ3MgaW4ganNjLiAgUmVzdWx0cyBkdW1wZWQg
YXQgZXhpdCAqLworI2lmICFkZWZpbmVkKEVOQUJMRV9SRUdFWFBfVFJBQ0lORykKKyNkZWZpbmUg
RU5BQkxFX1JFR0VYUF9UUkFDSU5HIDAKKyNlbmRpZgorCisvKiBZZXQgQW5vdGhlciBSZWdleCBS
dW50aW1lIC0gdHVybmVkIG9uIGJ5IGRlZmF1bHQgZm9yIEpJVCBlbmFibGVkIHBvcnRzLiAqLwor
I2lmICFkZWZpbmVkKEVOQUJMRV9ZQVJSX0pJVCkgJiYgRU5BQkxFKEpJVCkKKyNkZWZpbmUgRU5B
QkxFX1lBUlJfSklUIDEKKyNlbmRpZgorCisvKiBTZXR0aW5nIHRoaXMgZmxhZyBjb21wYXJlcyBK
SVQgcmVzdWx0cyB3aXRoIGludGVycHJldGVyIHJlc3VsdHMuICovCisjaWYgIWRlZmluZWQoRU5B
QkxFX1lBUlJfSklUKSAmJiBFTkFCTEUoSklUKQorI2RlZmluZSBFTkFCTEVfWUFSUl9KSVRfREVC
VUcgMAorI2VuZGlmCisKKy8qIEVuYWJsZSBKSVQnaW5nIFJlZ3VsYXIgRXhwcmVzc2lvbnMgdGhh
dCBoYXZlIG5lc3RlZCBwYXJlbnRoZXNpcyAuICovCisjaWYgRU5BQkxFKFlBUlJfSklUKSAmJiAo
Q1BVKEFSTTY0KSB8fCAoQ1BVKFg4Nl82NCkgJiYgIU9TKFdJTkRPV1MpKSkKKyNkZWZpbmUgRU5B
QkxFX1lBUlJfSklUX0FMTF9QQVJFTlNfRVhQUkVTU0lPTlMgMQorI2VuZGlmCisKKy8qIEVuYWJs
ZSBKSVQnaW5nIFJlZ3VsYXIgRXhwcmVzc2lvbnMgdGhhdCBoYXZlIG5lc3RlZCBiYWNrIHJlZmVy
ZW5jZXMuICovCisjaWYgRU5BQkxFKFlBUlJfSklUKSAmJiAoQ1BVKEFSTTY0KSB8fCAoQ1BVKFg4
Nl82NCkgJiYgIU9TKFdJTkRPV1MpKSkKKyNkZWZpbmUgRU5BQkxFX1lBUlJfSklUX0JBQ0tSRUZF
UkVOQ0VTIDEKKyNlbmRpZgorCisvKiBJZiBlaXRoZXIgdGhlIEpJVCBvciB0aGUgUmVnRXhwIEpJ
VCBpcyBlbmFibGVkLCB0aGVuIHRoZSBBc3NlbWJsZXIgbXVzdCBiZQorICAgZW5hYmxlZCBhcyB3
ZWxsOiAqLworI2lmIEVOQUJMRShKSVQpIHx8IEVOQUJMRShZQVJSX0pJVCkgfHwgIUVOQUJMRShD
X0xPT1ApCisjaWYgZGVmaW5lZChFTkFCTEVfQVNTRU1CTEVSKSAmJiAhRU5BQkxFX0FTU0VNQkxF
UgorI2Vycm9yICJDYW5ub3QgZW5hYmxlIHRoZSBKSVQgb3IgUmVnRXhwIEpJVCB3aXRob3V0IGVu
YWJsaW5nIHRoZSBBc3NlbWJsZXIiCisjZWxzZQorI3VuZGVmIEVOQUJMRV9BU1NFTUJMRVIKKyNk
ZWZpbmUgRU5BQkxFX0FTU0VNQkxFUiAxCisjZW5kaWYKKyNlbmRpZgorCisvKiBJZiB0aGUgRGlz
YXNzZW1ibGVyIGlzIGVuYWJsZWQsIHRoZW4gdGhlIEFzc2VtYmxlciBtdXN0IGJlIGVuYWJsZWQg
YXMgd2VsbDogKi8KKyNpZiBFTkFCTEUoRElTQVNTRU1CTEVSKQorI2lmIGRlZmluZWQoRU5BQkxF
X0FTU0VNQkxFUikgJiYgIUVOQUJMRV9BU1NFTUJMRVIKKyNlcnJvciAiQ2Fubm90IGVuYWJsZSB0
aGUgRGlzYXNzZW1ibGVyIHdpdGhvdXQgZW5hYmxpbmcgdGhlIEFzc2VtYmxlciIKKyNlbHNlCisj
dW5kZWYgRU5BQkxFX0FTU0VNQkxFUgorI2RlZmluZSBFTkFCTEVfQVNTRU1CTEVSIDEKKyNlbmRp
ZgorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfRVhDRVBUSU9OX1NDT1BFX1ZFUklGSUNB
VElPTikKKyNkZWZpbmUgRU5BQkxFX0VYQ0VQVElPTl9TQ09QRV9WRVJJRklDQVRJT04gQVNTRVJU
X0VOQUJMRUQKKyNlbmRpZgorCisjaWYgRU5BQkxFKERGR19KSVQpICYmIEhBVkUoTUFDSElORV9D
T05URVhUKSAmJiAoQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTTY0KSkKKyNkZWZpbmUgRU5BQkxFX1NJ
R05BTF9CQVNFRF9WTV9UUkFQUyAxCisjZW5kaWYKKworLyogQ1NTIFNlbGVjdG9yIEpJVCBDb21w
aWxlciAqLworI2lmICFkZWZpbmVkKEVOQUJMRV9DU1NfU0VMRUNUT1JfSklUKSAmJiAoKENQVShY
ODZfNjQpIHx8IENQVShBUk02NCkgfHwgKENQVShBUk1fVEhVTUIyKSAmJiBPUyhEQVJXSU4pKSkg
JiYgRU5BQkxFKEpJVCkgJiYgKE9TKERBUldJTikgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9S
TShXUEUpKSkKKyNkZWZpbmUgRU5BQkxFX0NTU19TRUxFQ1RPUl9KSVQgMQorI2VuZGlmCisKKyNp
ZiBQTEFURk9STShDT0NPQSkgJiYgIVBMQVRGT1JNKFdBVENIT1MpICYmICFQTEFURk9STShBUFBM
RVRWKSAmJiAhUExBVEZPUk0oTUFDQ0FUQUxZU1QpCisjZGVmaW5lIEVOQUJMRV9EQVRBX0RFVEVD
VElPTiAxCisjZW5kaWYKKworI2lmIENQVShBUk1fVEhVTUIyKSB8fCBDUFUoQVJNNjQpCisjZGVm
aW5lIEVOQUJMRV9CUkFOQ0hfQ09NUEFDVElPTiAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVO
QUJMRV9USFJFQURJTkdfTElCRElTUEFUQ0gpICYmIEhBVkUoRElTUEFUQ0hfSCkKKyNkZWZpbmUg
RU5BQkxFX1RIUkVBRElOR19MSUJESVNQQVRDSCAxCisjZWxpZiAhZGVmaW5lZChFTkFCTEVfVEhS
RUFESU5HX09QRU5NUCkgJiYgZGVmaW5lZChfT1BFTk1QKQorI2RlZmluZSBFTkFCTEVfVEhSRUFE
SU5HX09QRU5NUCAxCisjZWxpZiAhZGVmaW5lZChUSFJFQURJTkdfR0VORVJJQykKKyNkZWZpbmUg
RU5BQkxFX1RIUkVBRElOR19HRU5FUklDIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxF
X0dDX1ZBTElEQVRJT04pICYmICFkZWZpbmVkKE5ERUJVRykKKyNkZWZpbmUgRU5BQkxFX0dDX1ZB
TElEQVRJT04gMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQklORElOR19JTlRFR1JJ
VFkpICYmICFPUyhXSU5ET1dTKQorI2RlZmluZSBFTkFCTEVfQklORElOR19JTlRFR1JJVFkgMQor
I2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfVFJFRV9ERUJVR0dJTkcpICYmICFkZWZpbmVk
KE5ERUJVRykKKyNkZWZpbmUgRU5BQkxFX1RSRUVfREVCVUdHSU5HIDEKKyNlbmRpZgorCisjaWYg
UExBVEZPUk0oQ09DT0EpCisjZGVmaW5lIEVOQUJMRV9SRVNPVVJDRV9VU0FHRSAxCisjZW5kaWYK
KworI2lmICFkZWZpbmVkKEVOQUJMRV9PUEVOVFlQRV9WRVJUSUNBTCkgJiYgUExBVEZPUk0oR1RL
KSB8fCBQTEFURk9STShXUEUpCisjZGVmaW5lIEVOQUJMRV9PUEVOVFlQRV9WRVJUSUNBTCAxCisj
ZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9PUEVOVFlQRV9NQVRIKSAmJiAoT1MoREFSV0lO
KSAmJiBVU0UoQ0cpKSB8fCAoVVNFKEZSRUVUWVBFKSAmJiAhUExBVEZPUk0oR1RLKSkgfHwgKFBM
QVRGT1JNKFdJTikgJiYgKFVTRShDRykgfHwgVVNFKENBSVJPKSkpCisjZGVmaW5lIEVOQUJMRV9P
UEVOVFlQRV9NQVRIIDEKKyNlbmRpZgorCisvKgorICogRW5hYmxlIHRoaXMgdG8gcHV0IGVhY2gg
SXNvSGVhcCBhbmQgb3RoZXIgYWxsb2NhdGlvbiBjYXRlZ29yaWVzIGludG8gdGhlaXIgb3duIG1h
bGxvYyBoZWFwcywgc28gdGhhdCB0b29scyBsaWtlIHZtbWFwIGNhbiBzaG93IGhvdyBiaWcgZWFj
aCBoZWFwIGlzLgorICogVHVybiBCRU5BQkxFX01BTExPQ19IRUFQX0JSRUFLRE9XTiBvbiBpbiBi
bWFsbG9jIHRvZ2V0aGVyIHdoZW4gdXNpbmcgdGhpcy4KKyAqLworI2lmICFkZWZpbmVkKEVOQUJM
RV9NQUxMT0NfSEVBUF9CUkVBS0RPV04pCisjZGVmaW5lIEVOQUJMRV9NQUxMT0NfSEVBUF9CUkVB
S0RPV04gMAorI2VuZGlmCisKKy8qIERpc2FibGUgU2hhcmVkQXJyYXlCdWZmZXJzIHVudGlsIFNw
ZWN0cmUgc2VjdXJpdHkgY29uY2VybnMgYXJlIG1pdGlnYXRlZC4gKi8KKyNkZWZpbmUgRU5BQkxF
X1NIQVJFRF9BUlJBWV9CVUZGRVIgMAorCisjaWYgUExBVEZPUk0oTUFDKQorI2RlZmluZSBFTkFC
TEVfV0VCX1BMQVlCQUNLX0NPTlRST0xTX01BTkFHRVIgMQorI2VuZGlmCisKKyNpZiBQTEFURk9S
TShDT0NPQSkKKy8qIEZJWE1FOiBUaGlzIGlzIGEgVVNFIHN0eWxlIG1hY3JvLCBhcyBpdCB0cmln
Z2VycyB0aGUgdXNlIG9mIENGVVJMQ29ubmVjdGlvbiBmcmFtZXdvcmsgc3R1YnMuICovCisvKiBG
SVhNRTogSXMgdGhpcyBzdGlsbCBuZWNlc3Nhcnk/IENGVVJMQ29ubmVjdGlvbiBpc24ndCB1c2Vk
IG9uIENvY29hIHBsYXRmb3JtcyBhbnkgbW9yZS4gKi8KKyNkZWZpbmUgRU5BQkxFX1NFQ19JVEVN
X1NISU0gMQorI2VuZGlmCisKKyNpZiBQTEFURk9STShNQUMpCisjZGVmaW5lIEVOQUJMRV9GVUxM
X0tFWUJPQVJEX0FDQ0VTUyAxCisjZW5kaWYKKworI2lmICgoUExBVEZPUk0oQ09DT0EpIHx8IFBM
QVRGT1JNKFBMQVlTVEFUSU9OKSB8fCBQTEFURk9STShXUEUpKSAmJiBFTkFCTEUoQVNZTkNfU0NS
T0xMSU5HKSkgfHwgUExBVEZPUk0oR1RLKQorI2RlZmluZSBFTkFCTEVfS0lORVRJQ19TQ1JPTExJ
TkcgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTU9OT1NQQUNFX0ZPTlRfRVhDRVBU
SU9OKSAmJiAoKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA8IDEwMTUwMCkgfHwgUExBVEZPUk0oV0FUQ0hPUykgfHwgUExBVEZPUk0oQVBQTEVUVikpCisj
ZGVmaW5lIEVOQUJMRV9NT05PU1BBQ0VfRk9OVF9FWENFUFRJT04gMQorI2VuZGlmCisKKyNpZiAh
ZGVmaW5lZChFTkFCTEVfUExBVEZPUk1fRFJJVkVOX1RFWFRfQ0hFQ0tJTkcpICYmIFBMQVRGT1JN
KE1BQ0NBVEFMWVNUKQorI2RlZmluZSBFTkFCTEVfUExBVEZPUk1fRFJJVkVOX1RFWFRfQ0hFQ0tJ
TkcgMQorI2VuZGlmCisKKy8qIFRoaXMgZmVhdHVyZSB3b3JrcyBieSBlbWJlZGRpbmcgdGhlIE9w
Y29kZUlEIGluIHRoZSAzMiBiaXQganVzdCBiZWZvcmUgdGhlIGdlbmVyYXRlZCBMTGludCBjb2Rl
CisgICB0aGF0IGV4ZWN1dGVzIGVhY2ggb3Bjb2RlLiBJdCBjYW5ub3QgYmUgc3VwcG9ydGVkIGJ5
IHRoZSBDTG9vcCBzaW5jZSB0aGVyZSdzIG5vIHdheSB0byBlbWJlZCB0aGUKKyAgIE9wY29kZUlE
IHdvcmQgaW4gdGhlIENMb29wJ3Mgc3dpdGNoIHN0YXRlbWVudCBjYXNlcy4gSXQgaXMgYWxzbyBj
dXJyZW50bHkgbm90IGltcGxlbWVudGVkIGZvciBNU1ZDLgorKi8KKyNpZiAhZGVmaW5lZChFTkFC
TEVfTExJTlRfRU1CRURERURfT1BDT0RFX0lEKSAmJiAhRU5BQkxFKENfTE9PUCkgJiYgIUNPTVBJ
TEVSKE1TVkMpICYmIChDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KSB8fCBDUFUoQVJNNjQpIHx8IChD
UFUoQVJNX1RIVU1CMikgJiYgT1MoREFSV0lOKSkpCisjZGVmaW5lIEVOQUJMRV9MTElOVF9FTUJF
RERFRF9PUENPREVfSUQgMQorI2VuZGlmCisKKworLyogQXNzZXJ0cywgaW52YXJpYW50cyBmb3Ig
bWFjcm8gZGVmaW5pdGlvbnMgKi8KKworI2lmIEVOQUJMRShWSURFT19UUkFDSykgJiYgIUVOQUJM
RShWSURFTykKKyNlcnJvciAiRU5BQkxFKFZJREVPX1RSQUNLKSByZXF1aXJlcyBFTkFCTEUoVklE
RU8pIgorI2VuZGlmCisKKyNpZiBFTkFCTEUoTUVESUFfQ09OVFJPTFNfU0NSSVBUKSAmJiAhRU5B
QkxFKFZJREVPKQorI2Vycm9yICJFTkFCTEUoTUVESUFfQ09OVFJPTFNfU0NSSVBUKSByZXF1aXJl
cyBFTkFCTEUoVklERU8pIgorI2VuZGlmCisKKyNpZiBFTkFCTEUoSU5TUEVDVE9SX0FMVEVSTkFU
RV9ESVNQQVRDSEVSUykgJiYgIUVOQUJMRShSRU1PVEVfSU5TUEVDVE9SKQorI2Vycm9yICJFTkFC
TEUoSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUykgcmVxdWlyZXMgRU5BQkxFKFJFTU9U
RV9JTlNQRUNUT1IpIgorI2VuZGlmCisKKyNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykgJiYg
IUVOQUJMRShUT1VDSF9FVkVOVFMpCisjZXJyb3IgIkVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKSBy
ZXF1aXJlcyBFTkFCTEUoVE9VQ0hfRVZFTlRTKSIKKyNlbmRpZgorCisjaWYgRU5BQkxFKFdFQkdM
KSAmJiAhRU5BQkxFKEdSQVBISUNTX0NPTlRFWFRfR0wpCisjZXJyb3IgIkVOQUJMRShXRUJHTCkg
cmVxdWlyZXMgRU5BQkxFKEdSQVBISUNTX0NPTlRFWFRfR0wpIgorI2VuZGlmCisKKyNpZiBFTkFC
TEUoV0VCR0wyKSAmJiAhRU5BQkxFKFdFQkdMKQorI2Vycm9yICJFTkFCTEUoV0VCR0wyKSByZXF1
aXJlcyBFTkFCTEUoV0VCR0wpIgorI2VuZGlmCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bUVuYWJsZVdpbkFwcGxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvUGxhdGZvcm1F
bmFibGVXaW5BcHBsZS5oCShyZXZpc2lvbiAyNTU1NTIpCisrKyBTb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybUVuYWJsZVdpbkFwcGxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA3LTIwMDkgVG9yY2ggTW9iaWxlLCBJbmMuCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMTAsIDIwMTEgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMgU2Ftc3VuZyBFbGVjdHJvbmlj
cy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KQEAgLTMyLDMwNSArMzIsMTIgQEAKICNlcnJvciAiUGxl
YXNlICNpbmNsdWRlIDx3dGYvUGxhdGZvcm0uaD4gaW5zdGVhZCBvZiB0aGlzIGZpbGUgZGlyZWN0
bHkuIgogI2VuZGlmCiAKLQotI2RlZmluZSBFTkFCTEUoV1RGX0ZFQVRVUkUpIChkZWZpbmVkIEVO
QUJMRV8jI1dURl9GRUFUVVJFICYmIEVOQUJMRV8jI1dURl9GRUFUVVJFKQotCi0vKiBVc2UgdGhp
cyBmaWxlIHRvIGxpc3QgX2FsbF8gRU5BQkxFKCkgbWFjcm9zLiBEZWZpbmUgdGhlIG1hY3JvcyB0
byBiZSBvbmUgb2YgdGhlIGZvbGxvd2luZyB2YWx1ZXM6Ci0gKiAgLSAiMCIgZGlzYWJsZXMgdGhl
IGZlYXR1cmUgYnkgZGVmYXVsdC4gVGhlIGZlYXR1cmUgY2FuIHN0aWxsIGJlIGVuYWJsZWQgZm9y
IGEgc3BlY2lmaWMgcG9ydCBvciBlbnZpcm9ubWVudC4KLSAqICAtICIxIiBlbmFibGVzIHRoZSBm
ZWF0dXJlIGJ5IGRlZmF1bHQuIFRoZSBmZWF0dXJlIGNhbiBzdGlsbCBiZSBkaXNhYmxlZCBmb3Ig
YSBzcGVjaWZpYyBwb3J0IG9yIGVudmlyb25tZW50LgotICoKLSAqIFRoZSBmZWF0dXJlIGRlZmF1
bHRzIGluIHRoaXMgZmlsZSBhcmUgb25seSB0YWtlbiBpbnRvIGFjY291bnQgaWYgdGhlIChwb3J0
IHNwZWNpZmljKSBidWlsZCBzeXN0ZW0KLSAqIGhhcyBub3QgZW5hYmxlZCBvciBkaXNhYmxlZCBh
IHBhcnRpY3VsYXIgZmVhdHVyZS4KLSAqCi0gKiBVc2UgdGhpcyBmaWxlIHRvIGRlZmluZSBFTkFC
TEUoKSBtYWNyb3Mgb25seS4gRG8gbm90IHVzZSB0aGlzIGZpbGUgdG8gZGVmaW5lIFVTRSgpIG9y
IG1hY3JvcyAhCi0gKgotICogT25seSBkZWZpbmUgYSBtYWNybyBpZiBpdCB3YXMgbm90IGRlZmlu
ZWQgYmVmb3JlIC0gYWx3YXlzIGNoZWNrIGZvciAhZGVmaW5lZCBmaXJzdC4KLSAqCi0gKiBLZWVw
IHRoZSBmaWxlIHNvcnRlZCBieSB0aGUgbmFtZSBvZiB0aGUgZGVmaW5lcy4gQXMgYW4gZXhjZXB0
aW9uIHlvdSBjYW4gY2hhbmdlIHRoZSBvcmRlcgotICogdG8gYWxsb3cgaW50ZXJkZXBlbmRlbmNp
ZXMgYmV0d2VlbiB0aGUgZGVmYXVsdCB2YWx1ZXMuCi0gKgotICogQmVsb3cgYXJlIGEgZmV3IHBv
dGVudGlhbCBjb21tYW5kcyB0byB0YWtlIGFkdmFudGFnZSBvZiB0aGlzIGZpbGUgcnVubmluZyBm
cm9tIHRoZSBTb3VyY2UvV1RGIGRpcmVjdG9yeQotICoKLSAqIEdldCB0aGUgbGlzdCBvZiBmZWF0
dXJlIGRlZmluZXM6IGdyZXAgLW8gIkVOQUJMRV9cKFx3XCtcKSIgd3RmL1BsYXRmb3JtRW5hYmxl
LmggfCBzb3J0IHwgdW5pcQotICogR2V0IHRoZSBsaXN0IG9mIGZlYXR1cmVzIGVuYWJsZWQgYnkg
ZGVmYXVsdCBmb3IgYSBQTEFURk9STShYWFgpOiBnY2MgLUUgLWRNIC1JLiAtRFdURl9QTEFURk9S
TV9YWFggInd0Zi9QbGF0Zm9ybS5oIiB8IGdyZXAgIkVOQUJMRV9cd1wrIDEiIHwgY3V0IC1kJyAn
IC1mMiB8IHNvcnQKLSAqLwotCi0KLS8qIEZJWE1FOiBUaGlzIHNob3VsZCBiZSByZW5hbWVkIHRv
IEVOQUJMRV9BU1NFUlRTIGZvciBjb25zaXN0ZW5jeSBhbmQgc28gaXQgY2FuIGJlIHVzZWQgYXMg
RU5BQkxFKEFTU0VSVFMpLiAqLwotLyogQVNTRVJUX0VOQUJMRUQgc2hvdWxkIGJlIHRydWUgaWYg
d2Ugd2FudCB0aGUgY3VycmVudCBjb21waWxhdGlvbiB1bml0IHRvCi0gICBkbyBkZWJ1ZyBhc3Nl
cnRpb24gY2hlY2tzIHVuY29uZGl0aW9uYWxseSAoZS5nLiB0cmVhdCBhIGRlYnVnIEFTU0VSVAot
ICAgbGlrZSBhIFJFTEVBU0VfQVNTRVJULgotKi8KLSNpZm5kZWYgQVNTRVJUX0VOQUJMRUQKLSNp
ZmRlZiBOREVCVUcKLSNkZWZpbmUgQVNTRVJUX0VOQUJMRUQgMAotI2Vsc2UKLSNkZWZpbmUgQVNT
RVJUX0VOQUJMRUQgMQotI2VuZGlmCi0jZW5kaWYKLQotLyogPT09PSBQbGF0Zm9ybSBhZGRpdGlv
bnM6IGFkZGl0aW9ucyB0byBQbGF0Zm9ybUVuYWJsZS5oIGZyb20gb3V0c2lkZSB0aGUgbWFpbiBy
ZXBvc2l0b3J5ID09PT0gKi8KLQotI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspICYmIF9faGFz
X2luY2x1ZGUoPFdlYktpdEFkZGl0aW9ucy9BZGRpdGlvbmFsRmVhdHVyZURlZmluZXMuaD4pCi0j
aW5jbHVkZSA8V2ViS2l0QWRkaXRpb25zL0FkZGl0aW9uYWxGZWF0dXJlRGVmaW5lcy5oPgotI2Vu
ZGlmCi0KLS8qIEZJWE1FOiBNb3ZlIG91dCB0aGUgUExBVEZPUk0gc3BlY2lmaWMgcnVsZXMgaW50
byBwbGF0Zm9ybSBzcGVjaWZpYyBmaWxlcy4gKi8KLQotLyogLS0tLS0tLS0tIEFwcGxlIGlPUyAo
YnV0IG5vdCBtYWNPUykgcG9ydCAtLS0tLS0tLS0gKi8KLSNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0FJUlBMQVlfUElDS0VSKQotI2lmICFQTEFURk9STShN
QUNDQVRBTFlTVCkKLSNkZWZpbmUgRU5BQkxFX0FJUlBMQVlfUElDS0VSIDEKLSNlbmRpZgotI2Vu
ZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfQVBQTEVfUEFZX1JFTU9URV9VSSkKLSNpZiAhUExB
VEZPUk0oQVBQTEVUVikgJiYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKSAmJiAhUExBVEZPUk0oV0FU
Q0hPUykKLSNkZWZpbmUgRU5BQkxFX0FQUExFX1BBWV9SRU1PVEVfVUkgMQotI2VuZGlmCi0jZW5k
aWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9DT05URU5UX0VYVEVOU0lPTlMpCi0jZGVmaW5lIEVO
QUJMRV9DT05URU5UX0VYVEVOU0lPTlMgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVf
Q09OVEVYVF9NRU5VUykKLSNkZWZpbmUgRU5BQkxFX0NPTlRFWFRfTUVOVVMgMAotI2VuZGlmCi0K
LSNpZiAhZGVmaW5lZChFTkFCTEVfQ09OVEVYVF9NRU5VX0VWRU5UKQotI2lmICFQTEFURk9STShN
QUNDQVRBTFlTVCkKLSNkZWZpbmUgRU5BQkxFX0NPTlRFWFRfTUVOVV9FVkVOVCAwCi0jZW5kaWYK
LSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0NVU1RPTV9DVVJTT1JfU1VQUE9SVCkKLSNk
ZWZpbmUgRU5BQkxFX0NVU1RPTV9DVVJTT1JfU1VQUE9SVCAwCi0jZW5kaWYKLQotI2lmICFkZWZp
bmVkKEVOQUJMRV9EUkFHX1NVUFBPUlQpCi0jZGVmaW5lIEVOQUJMRV9EUkFHX1NVUFBPUlQgMAot
I2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfR0VPTE9DQVRJT04pCi0jZGVmaW5lIEVOQUJM
RV9HRU9MT0NBVElPTiAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9JTlNQRUNUT1Jf
QUxURVJOQVRFX0RJU1BBVENIRVJTKQotI2RlZmluZSBFTkFCTEVfSU5TUEVDVE9SX0FMVEVSTkFU
RV9ESVNQQVRDSEVSUyAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9JTlNQRUNUT1Jf
VEVMRU1FVFJZKQotI2RlZmluZSBFTkFCTEVfSU5TUEVDVE9SX1RFTEVNRVRSWSAwCi0jZW5kaWYK
LQotI2lmICFkZWZpbmVkKEVOQUJMRV9MRVRURVJQUkVTUykKLSNkZWZpbmUgRU5BQkxFX0xFVFRF
UlBSRVNTIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0FVVE9DT1JSRUNUKQotI2Rl
ZmluZSBFTkFCTEVfQVVUT0NPUlJFQ1QgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVf
QVVUT0NBUElUQUxJWkUpCi0jZGVmaW5lIEVOQUJMRV9BVVRPQ0FQSVRBTElaRSAxCi0jZW5kaWYK
LQotI2lmICFkZWZpbmVkKEVOQUJMRV9JT1NfR0VTVFVSRV9FVkVOVFMpICYmIFVTRShBUFBMRV9J
TlRFUk5BTF9TREspCi0jZGVmaW5lIEVOQUJMRV9JT1NfR0VTVFVSRV9FVkVOVFMgMQotI2VuZGlm
Ci0KLSNpZiAhZGVmaW5lZChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKQotI2RlZmluZSBFTkFCTEVf
VEVYVF9BVVRPU0laSU5HIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0lPU19UT1VD
SF9FVkVOVFMpICYmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCi0jZGVmaW5lIEVOQUJMRV9JT1Nf
VE9VQ0hfRVZFTlRTIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX01FVEVSX0VMRU1F
TlQpCi0jZGVmaW5lIEVOQUJMRV9NRVRFUl9FTEVNRU5UIDAKLSNlbmRpZgotCi0jaWYgIWRlZmlu
ZWQoRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9BUEkpCi0jZGVmaW5lIEVOQUJMRV9ORVRTQ0FQRV9Q
TFVHSU5fQVBJIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX09SSUVOVEFUSU9OX0VW
RU5UUykKLSNkZWZpbmUgRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUyAxCi0jZW5kaWYKLQotI2lm
ICFkZWZpbmVkKEVOQUJMRV9QT0lOVEVSX0xPQ0spCi0jZGVmaW5lIEVOQUJMRV9QT0lOVEVSX0xP
Q0sgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUikKLSNk
ZWZpbmUgRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChF
TkFCTEVfVEVYVF9DQVJFVCkKLSNkZWZpbmUgRU5BQkxFX1RFWFRfQ0FSRVQgMAotI2VuZGlmCi0K
LSNpZiAhZGVmaW5lZChFTkFCTEVfVEVYVF9TRUxFQ1RJT04pCi0jZGVmaW5lIEVOQUJMRV9URVhU
X1NFTEVDVElPTiAwCi0jZW5kaWYKLQotLyogRklYTUU6IFJlbW92ZSB0aGUgVVNFKEFQUExFX0lO
VEVSTkFMX1NESykgY29uanVuY3Qgb25jZSB3ZSBzdXBwb3J0IHRvdWNoIGV2ZW50cyB3aGVuIGJ1
aWxkaW5nIGFnYWluc3QKLXRoZSBwdWJsaWMgaU9TIFNESy4gU2VlIDxodHRwczovL3dlYmtpdC5v
cmcvYi8xNzkxNjc+LiAqLwotI2lmICFkZWZpbmVkKEVOQUJMRV9UT1VDSF9FVkVOVFMpICYmIFVT
RShBUFBMRV9JTlRFUk5BTF9TREspCi0jZGVmaW5lIEVOQUJMRV9UT1VDSF9FVkVOVFMgMQotI2Vu
ZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfV0VCX0FSQ0hJVkUpCi0jZGVmaW5lIEVOQUJMRV9X
RUJfQVJDSElWRSAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJHTCkKLSNkZWZp
bmUgRU5BQkxFX1dFQkdMIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX1BSSU1BUllf
U05BUFNIT1RURURfUExVR0lOX0hFVVJJU1RJQykKLSNkZWZpbmUgRU5BQkxFX1BSSU1BUllfU05B
UFNIT1RURURfUExVR0lOX0hFVVJJU1RJQyAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJM
RV9ET1dOTE9BRF9BVFRSSUJVVEUpCi0jZGVmaW5lIEVOQUJMRV9ET1dOTE9BRF9BVFRSSUJVVEUg
MQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfV0tQREZWSUVXKSAmJiBQTEFURk9STShJ
T1MpCi0jZGVmaW5lIEVOQUJMRV9XS1BERlZJRVcgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChF
TkFCTEVfTUVESUFfU09VUkNFKQotI2RlZmluZSBFTkFCTEVfTUVESUFfU09VUkNFIDAKLSNlbmRp
ZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX1BSRVZJRVdfQ09OVkVSVEVSKSAmJiBQTEFURk9STShJ
T1MpCi0jZGVmaW5lIEVOQUJMRV9QUkVWSUVXX0NPTlZFUlRFUiAxCi0jZW5kaWYKLQotI2lmICFk
ZWZpbmVkKEVOQUJMRV9NRVRBX1ZJRVdQT1JUKQotI2RlZmluZSBFTkFCTEVfTUVUQV9WSUVXUE9S
VCAxCisjaWYgIShQTEFURk9STShXSU4pICYmICFQTEFURk9STShXSU5fQ0FJUk8pKQorI2Vycm9y
ICJUaGlzIGZpbGUgc2hvdWxkIG9ubHkgYmUgaW5jbHVkZWQgd2hlbiBidWlsZGluZyBBcHBsZSdz
IFdpbmRvd3MgcG9ydC4iCiAjZW5kaWYKIAotI2VuZGlmIC8qIFBMQVRGT1JNKElPU19GQU1JTFkp
ICovCi0KLS8qIC0tLS0tLS0tLSBBcHBsZSB3YXRjaE9TIHBvcnQgLS0tLS0tLS0tICovCi0jaWYg
UExBVEZPUk0oV0FUQ0hPUykKLQotI2VuZGlmIC8qIFBMQVRGT1JNKFdBVENIT1MpICovCi0KLS8q
IC0tLS0tLS0tLSBBcHBsZSBtYWNPUyBwb3J0IChub3QgaU9TKSAtLS0tLS0tLS0gKi8KLSNpZiBQ
TEFURk9STShNQUMpCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfQ09OVEVOVF9FWFRFTlNJT05TKQot
I2RlZmluZSBFTkFCTEVfQ09OVEVOVF9FWFRFTlNJT05TIDEKLSNlbmRpZgotCi0jaWYgIWRlZmlu
ZWQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKQotI2RlZmluZSBFTkFCTEVfRlVMTFNDUkVFTl9BUEkg
MQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUikKLSNkZWZp
bmUgRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFC
TEVfSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUykKLSNkZWZpbmUgRU5BQkxFX0lOU1BF
Q1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hFUlMgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFC
TEVfSU5TUEVDVE9SX1RFTEVNRVRSWSkKLSNkZWZpbmUgRU5BQkxFX0lOU1BFQ1RPUl9URUxFTUVU
UlkgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfU01PT1RIX1NDUk9MTElORykKLSNk
ZWZpbmUgRU5BQkxFX1NNT09USF9TQ1JPTExJTkcgMQotI2VuZGlmCi0KLSNpZiBFTkFCTEUoVklE
RU8pCi0jaWYgIWRlZmluZWQoRU5BQkxFX1ZJREVPX1RSQUNLKQotI2RlZmluZSBFTkFCTEVfVklE
RU9fVFJBQ0sgMQotI2VuZGlmCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJfQVJD
SElWRSkKLSNkZWZpbmUgRU5BQkxFX1dFQl9BUkNISVZFIDEKLSNlbmRpZgotCi0jaWYgIWRlZmlu
ZWQoRU5BQkxFX1dFQl9BVURJTykKLSNkZWZpbmUgRU5BQkxFX1dFQl9BVURJTyAxCi0jZW5kaWYK
LQotI2lmICFkZWZpbmVkKEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSkKLSNkZWZpbmUgRU5BQkxF
X0NVUlNPUl9WSVNJQklMSVRZIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX1BSSU1B
UllfU05BUFNIT1RURURfUExVR0lOX0hFVVJJU1RJQykKLSNkZWZpbmUgRU5BQkxFX1BSSU1BUllf
U05BUFNIT1RURURfUExVR0lOX0hFVVJJU1RJQyAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVO
QUJMRV9NQUNfR0VTVFVSRV9FVkVOVFMpICYmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCi0jZGVm
aW5lIEVOQUJMRV9NQUNfR0VTVFVSRV9FVkVOVFMgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChF
TkFCTEVfV0VCUFJPQ0VTU19OU1JVTkxPT1ApCi0jZGVmaW5lIEVOQUJMRV9XRUJQUk9DRVNTX05T
UlVOTE9PUCBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTQwMAotI2VuZGlm
Ci0KLSNpZiAhZGVmaW5lZChFTkFCTEVfV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcp
Ci0jZGVmaW5lIEVOQUJMRV9XRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORyBFTkFCTEVf
V0VCUFJPQ0VTU19OU1JVTkxPT1AKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX01FRElB
X1NPVVJDRSkKLSNkZWZpbmUgRU5BQkxFX01FRElBX1NPVVJDRSAxCi0jZW5kaWYKLQotI2VuZGlm
IC8qIFBMQVRGT1JNKE1BQykgKi8KLQotLyogLS0tLS0tLS0tIEFwcGxlIENvY29hIHBsYXRmb3Jt
cyAtLS0tLS0tLS0gKi8KLQotI2lmIFBMQVRGT1JNKENPQ09BKQotCi0jaWYgIWRlZmluZWQoRU5B
QkxFX0xFR0FDWV9FTkNSWVBURURfTUVESUEpCi0jaWYgUExBVEZPUk0oTUFDQ0FUQUxZU1QpCi0j
ZGVmaW5lIEVOQUJMRV9MRUdBQ1lfRU5DUllQVEVEX01FRElBIDAKLSNlbHNlCi0jZGVmaW5lIEVO
QUJMRV9MRUdBQ1lfRU5DUllQVEVEX01FRElBIDEKLSNlbmRpZgotI2VuZGlmCi0KLSNpZiAhZGVm
aW5lZChFTkFCTEVfRklMRV9SRVBMQUNFTUVOVCkKLSNkZWZpbmUgRU5BQkxFX0ZJTEVfUkVQTEFD
RU1FTlQgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfUEFZTUVOVF9SRVFVRVNUKQot
I2RlZmluZSBFTkFCTEVfUEFZTUVOVF9SRVFVRVNUIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQo
RU5BQkxFX0FTWU5DX1NDUk9MTElORykKLSNkZWZpbmUgRU5BQkxFX0FTWU5DX1NDUk9MTElORyAx
Ci0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9VSV9TSURFX0NPTVBPU0lUSU5HKQotI2Rl
ZmluZSBFTkFCTEVfVUlfU0lERV9DT01QT1NJVElORyAxCi0jZW5kaWYKLQotI2VuZGlmIC8qIFBM
QVRGT1JNKENPQ09BKSAqLwotCi0jaWYgIVBMQVRGT1JNKENPQ09BKQotCi0jaWYgIWRlZmluZWQo
SlNDX09CSkNfQVBJX0VOQUJMRUQpCi0jZGVmaW5lIEpTQ19PQkpDX0FQSV9FTkFCTEVEIDAKLSNl
bmRpZgotCi0jZW5kaWYgLyogIVBMQVRGT1JNKENPQ09BKSAqLwotCiAKIC8qIC0tLS0tLS0tLSBB
cHBsZSBXaW5kb3dzIHBvcnQgLS0tLS0tLS0tICovCi0jaWYgUExBVEZPUk0oV0lOKSAmJiAhUExB
VEZPUk0oV0lOX0NBSVJPKQogCiAjaWYgIWRlZmluZWQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKQog
I2RlZmluZSBFTkFCTEVfRlVMTFNDUkVFTl9BUEkgMQpAQCAtMzQ3LDcwOSArNTQsMyBAQCB0aGUg
cHVibGljIGlPUyBTREsuIFNlZSA8aHR0cHM6Ly93ZWJraXQuCiAjaWYgIWRlZmluZWQoRU5BQkxF
X0dFT0xPQ0FUSU9OKQogI2RlZmluZSBFTkFCTEVfR0VPTE9DQVRJT04gMQogI2VuZGlmCi0KLSNl
bmRpZiAvKiBQTEFURk9STShXSU4pICYmICFQTEFURk9STShXSU5fQ0FJUk8pICovCi0KLS8qIC0t
LS0tLS0tLSBXaW5kb3dzIENBSVJPIHBvcnQgLS0tLS0tLS0tICovCi0vKiBQTEFURk9STShXSU5f
Q0FJUk8pIGlzIGEgc3BlY2lhbGl6YXRpb24gb2YgUExBVEZPUk0oV0lOKS4gKi8KLS8qIFBMQVRG
T1JNKFdJTikgaXMgYWx3YXlzIGVuYWJsZWQgd2hlbiBQTEFURk9STShXSU5fQ0FJUk8pIGlzIGVu
YWJsZWQuICovCi0jaWYgUExBVEZPUk0oV0lOX0NBSVJPKQotCi0jaWYgIWRlZmluZWQoRU5BQkxF
X1dFQl9BUkNISVZFKQotI2RlZmluZSBFTkFCTEVfV0VCX0FSQ0hJVkUgMQotI2VuZGlmCi0KLSNp
ZiAhZGVmaW5lZChFTkFCTEVfV0VCR0wpCi0jZGVmaW5lIEVOQUJMRV9XRUJHTCAxCi0jZW5kaWYK
LQotI2lmICFkZWZpbmVkKEVOQUJMRV9HRU9MT0NBVElPTikKLSNkZWZpbmUgRU5BQkxFX0dFT0xP
Q0FUSU9OIDEKLSNlbmRpZgotCi0jZW5kaWYgLyogUExBVEZPUk0oV0lOX0NBSVJPKSAqLwotCi0v
KiBFTkFCTEUgbWFjcm8gZGVmYXVsdHMgZm9yIFdlYkNvcmUgKi8KLS8qIERvIG5vdCB1c2UgUExB
VEZPUk0oKSB0ZXN0cyBpbiB0aGlzIHNlY3Rpb24gISAqLwotCi0jaWYgIWRlZmluZWQoRU5BQkxF
XzNEX1RSQU5TRk9STVMpCi0jZGVmaW5lIEVOQUJMRV8zRF9UUkFOU0ZPUk1TIDAKLSNlbmRpZgot
Ci0jaWYgIWRlZmluZWQoRU5BQkxFX0FDQ0VTU0lCSUxJVFkpCi0jZGVmaW5lIEVOQUJMRV9BQ0NF
U1NJQklMSVRZIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJE
X0NBTlZBUykKLSNkZWZpbmUgRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUyAwCi0jZW5kaWYK
LQotI2lmICFkZWZpbmVkKEVOQUJMRV9PVkVSRkxPV19TQ1JPTExJTkdfVE9VQ0gpCi0jZGVmaW5l
IEVOQUJMRV9PVkVSRkxPV19TQ1JPTExJTkdfVE9VQ0ggMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5l
ZChFTkFCTEVfQVBORykKLSNkZWZpbmUgRU5BQkxFX0FQTkcgMQotI2VuZGlmCi0KLSNpZiAhZGVm
aW5lZChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpCi0jZGVmaW5lIEVOQUJMRV9DSEFOTkVMX01F
U1NBR0lORyAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9DT05URU5UX0VYVEVOU0lP
TlMpCi0jZGVmaW5lIEVOQUJMRV9DT05URU5UX0VYVEVOU0lPTlMgMAotI2VuZGlmCi0KLSNpZiAh
ZGVmaW5lZChFTkFCTEVfQ09OVEVYVF9NRU5VUykKLSNkZWZpbmUgRU5BQkxFX0NPTlRFWFRfTUVO
VVMgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfQ09OVEVYVF9NRU5VX0VWRU5UKQot
I2RlZmluZSBFTkFCTEVfQ09OVEVYVF9NRU5VX0VWRU5UIDEKLSNlbmRpZgotCi0jaWYgIWRlZmlu
ZWQoRU5BQkxFX0NTUzNfVEVYVCkKLSNkZWZpbmUgRU5BQkxFX0NTUzNfVEVYVCAwCi0jZW5kaWYK
LQotI2lmICFkZWZpbmVkKEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUspCi0jZGVmaW5l
IEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUsgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5l
ZChFTkFCTEVfQ1NTX0RFVklDRV9BREFQVEFUSU9OKQotI2RlZmluZSBFTkFCTEVfQ1NTX0RFVklD
RV9BREFQVEFUSU9OIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0NTU19DT01QT1NJ
VElORykKLSNkZWZpbmUgRU5BQkxFX0NTU19DT01QT1NJVElORyAwCi0jZW5kaWYKLQotI2lmICFk
ZWZpbmVkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikKLSNkZWZpbmUgRU5BQkxFX0NTU19J
TUFHRV9SRVNPTFVUSU9OIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0NTU19DT05J
Q19HUkFESUVOVFMpCi0jZGVmaW5lIEVOQUJMRV9DU1NfQ09OSUNfR1JBRElFTlRTIDAKLSNlbmRp
ZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0NVU1RPTV9DVVJTT1JfU1VQUE9SVCkKLSNkZWZpbmUg
RU5BQkxFX0NVU1RPTV9DVVJTT1JfU1VQUE9SVCAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVO
QUJMRV9DVVNUT01fU0NIRU1FX0hBTkRMRVIpCi0jZGVmaW5lIEVOQUJMRV9DVVNUT01fU0NIRU1F
X0hBTkRMRVIgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfREFSS19NT0RFX0NTUykK
LSNkZWZpbmUgRU5BQkxFX0RBUktfTU9ERV9DU1MgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChF
TkFCTEVfREFUQUxJU1RfRUxFTUVOVCkKLSNkZWZpbmUgRU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQg
MAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKQotI2Rl
ZmluZSBFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQo
RU5BQkxFX0RPV05MT0FEX0FUVFJJQlVURSkKLSNkZWZpbmUgRU5BQkxFX0RPV05MT0FEX0FUVFJJ
QlVURSAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9EUkFHX1NVUFBPUlQpCi0jZGVm
aW5lIEVOQUJMRV9EUkFHX1NVUFBPUlQgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVf
RU5DUllQVEVEX01FRElBKQotI2RlZmluZSBFTkFCTEVfRU5DUllQVEVEX01FRElBIDAKLSNlbmRp
ZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0ZJTFRFUlNfTEVWRUxfMikKLSNkZWZpbmUgRU5BQkxF
X0ZJTFRFUlNfTEVWRUxfMiAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9GVFBESVIp
Ci0jZGVmaW5lIEVOQUJMRV9GVFBESVIgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVf
RlVMTFNDUkVFTl9BUEkpCi0jZGVmaW5lIEVOQUJMRV9GVUxMU0NSRUVOX0FQSSAwCi0jZW5kaWYK
LQotI2lmICFkZWZpbmVkKEVOQUJMRV9HQU1FUEFEKQotI2RlZmluZSBFTkFCTEVfR0FNRVBBRCAw
Ci0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9HRU9MT0NBVElPTikKLSNkZWZpbmUgRU5B
QkxFX0dFT0xPQ0FUSU9OIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0lOREVYRURf
REFUQUJBU0UpCi0jZGVmaW5lIEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFIDAKLSNlbmRpZgotCi0j
aWYgIWRlZmluZWQoRU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUykKLSNkZWZpbmUg
RU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUyAwCi0jZW5kaWYKLQotI2lmICFkZWZp
bmVkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKQotI2RlZmluZSBFTkFCTEVfSU5QVVRfVFlQRV9D
T0xPUiAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpCi0j
ZGVmaW5lIEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChF
TkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKQotI2RlZmluZSBFTkFCTEVfSU5Q
VVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5B
QkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkKLSNkZWZpbmUgRU5BQkxFX0lOUFVUX1RZUEVf
REFURVRJTUVMT0NBTCAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9JTlBVVF9UWVBF
X01PTlRIKQotI2RlZmluZSBFTkFCTEVfSU5QVVRfVFlQRV9NT05USCAwCi0jZW5kaWYKLQotI2lm
ICFkZWZpbmVkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpCi0jZGVmaW5lIEVOQUJMRV9JTlBVVF9U
WVBFX1RJTUUgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfSU5QVVRfVFlQRV9XRUVL
KQotI2RlZmluZSBFTkFCTEVfSU5QVVRfVFlQRV9XRUVLIDAKLSNlbmRpZgotCi0jaWYgRU5BQkxF
KElOUFVUX1RZUEVfREFURSkgfHwgRU5BQkxFKElOUFVUX1RZUEVfREFURVRJTUVfSU5DT01QTEVU
RSkgfHwgRU5BQkxFKElOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgfHwgRU5BQkxFKElOUFVUX1RZ
UEVfTU9OVEgpIHx8IEVOQUJMRShJTlBVVF9UWVBFX1RJTUUpIHx8IEVOQUJMRShJTlBVVF9UWVBF
X1dFRUspCi0jaWYgIWRlZmluZWQoRU5BQkxFX0RBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCi0j
ZGVmaW5lIEVOQUJMRV9EQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTIDEKLSNlbmRpZgotI2VuZGlm
Ci0KLSNpZiAhZGVmaW5lZChFTkFCTEVfSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUykK
LSNkZWZpbmUgRU5BQkxFX0lOU1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hFUlMgMAotI2VuZGlm
Ci0KLSNpZiAhZGVmaW5lZChFTkFCTEVfSU5TUEVDVE9SX1RFTEVNRVRSWSkKLSNkZWZpbmUgRU5B
QkxFX0lOU1BFQ1RPUl9URUxFTUVUUlkgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVf
SU5UTCkKLSNkZWZpbmUgRU5BQkxFX0lOVEwgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFC
TEVfTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKLSNkZWZpbmUgRU5BQkxFX0xBWU9VVF9GT1JN
QVRUSU5HX0NPTlRFWFQgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfTEVHQUNZX0NT
U19WRU5ET1JfUFJFRklYRVMpCi0jZGVmaW5lIEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVG
SVhFUyAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9MRVRURVJQUkVTUykKLSNkZWZp
bmUgRU5BQkxFX0xFVFRFUlBSRVNTIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX01B
VEhNTCkKLSNkZWZpbmUgRU5BQkxFX01BVEhNTCAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVO
QUJMRV9NRURJQV9DQVBUVVJFKQotI2RlZmluZSBFTkFCTEVfTUVESUFfQ0FQVFVSRSAwCi0jZW5k
aWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQpCi0jZGVmaW5l
IEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChF
TkFCTEVfTUVESUFfU09VUkNFKQotI2RlZmluZSBFTkFCTEVfTUVESUFfU09VUkNFIDAKLSNlbmRp
ZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpCi0jZGVmaW5lIEVOQUJM
RV9NRURJQV9TVEFUSVNUSUNTIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX01FRElB
X1NUUkVBTSkKLSNkZWZpbmUgRU5BQkxFX01FRElBX1NUUkVBTSAwCi0jZW5kaWYKLQotI2lmICFk
ZWZpbmVkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKQotI2RlZmluZSBFTkFCTEVfTUVURVJfRUxFTUVO
VCAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9NSFRNTCkKLSNkZWZpbmUgRU5BQkxF
X01IVE1MIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FM
RSkKLSNkZWZpbmUgRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FMRSAwCi0jZW5kaWYKLQotI2lmICFk
ZWZpbmVkKEVOQUJMRV9NT1VTRV9GT1JDRV9FVkVOVFMpCi0jZGVmaW5lIEVOQUJMRV9NT1VTRV9G
T1JDRV9FVkVOVFMgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfTkVUU0NBUEVfUExV
R0lOX0FQSSkKLSNkZWZpbmUgRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9BUEkgMQotI2VuZGlmCi0K
LSNpZiAhZGVmaW5lZChFTkFCTEVfTkVUU0NBUEVfUExVR0lOX01FVEFEQVRBX0NBQ0hFKQotI2Rl
ZmluZSBFTkFCTEVfTkVUU0NBUEVfUExVR0lOX01FVEFEQVRBX0NBQ0hFIDAKLSNlbmRpZgotCi0j
aWYgIWRlZmluZWQoRU5BQkxFX05PVElGSUNBVElPTlMpCi0jZGVmaW5lIEVOQUJMRV9OT1RJRklD
QVRJT05TIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX09GRlNDUkVFTl9DQU5WQVMp
Ci0jZGVmaW5lIEVOQUJMRV9PRkZTQ1JFRU5fQ0FOVkFTIDAKLSNlbmRpZgotCi0jaWYgIWRlZmlu
ZWQoRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUykKLSNkZWZpbmUgRU5BQkxFX09SSUVOVEFUSU9O
X0VWRU5UUyAwCi0jZW5kaWYKLQotI2lmIE9TKFdJTkRPV1MpCi0jaWYgIWRlZmluZWQoRU5BQkxF
X1BBTl9TQ1JPTExJTkcpCi0jZGVmaW5lIEVOQUJMRV9QQU5fU0NST0xMSU5HIDEKLSNlbmRpZgot
I2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfUEFZTUVOVF9SRVFVRVNUKQotI2RlZmluZSBF
TkFCTEVfUEFZTUVOVF9SRVFVRVNUIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX1BP
SU5URVJfTE9DSykKLSNkZWZpbmUgRU5BQkxFX1BPSU5URVJfTE9DSyAxCi0jZW5kaWYKLQotI2lm
ICFkZWZpbmVkKEVOQUJMRV9RVU9UQSkKLSNkZWZpbmUgRU5BQkxFX1FVT1RBIDAKLSNlbmRpZgot
Ci0jaWYgIWRlZmluZWQoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpCi0jZGVmaW5lIEVOQUJMRV9S
RU1PVEVfSU5TUEVDVE9SIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX1JVQkJFUl9C
QU5ESU5HKQotI2RlZmluZSBFTkFCTEVfUlVCQkVSX0JBTkRJTkcgMAotI2VuZGlmCi0KLSNpZiAh
ZGVmaW5lZChFTkFCTEVfU0VDVVJJVFlfQVNTRVJUSU9OUykKLS8qIEVuYWJsZSBzZWN1cml0eSBh
c3NlcnRpb25zIG9uIGFsbCBBU0FOIGJ1aWxkcyBhbmQgZGVidWcgYnVpbGRzLiAqLwotI2lmIEFT
QU5fRU5BQkxFRCB8fCAhZGVmaW5lZChOREVCVUcpCi0jZGVmaW5lIEVOQUJMRV9TRUNVUklUWV9B
U1NFUlRJT05TIDEKLSNlbmRpZgotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfU01PT1RI
X1NDUk9MTElORykKLSNkZWZpbmUgRU5BQkxFX1NNT09USF9TQ1JPTExJTkcgMAotI2VuZGlmCi0K
LSNpZiAhZGVmaW5lZChFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUykKLSNkZWZpbmUgRU5BQkxFX1NQ
RUVDSF9TWU5USEVTSVMgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfU1BFTExDSEVD
SykKLSNkZWZpbmUgRU5BQkxFX1NQRUxMQ0hFQ0sgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChF
TkFCTEVfU1RSRUFNU19BUEkpCi0jZGVmaW5lIEVOQUJMRV9TVFJFQU1TX0FQSSAxCi0jZW5kaWYK
LQotI2lmICFkZWZpbmVkKEVOQUJMRV9TVkdfRk9OVFMpCi0jZGVmaW5lIEVOQUJMRV9TVkdfRk9O
VFMgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfVEVYVF9DQVJFVCkKLSNkZWZpbmUg
RU5BQkxFX1RFWFRfQ0FSRVQgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfVEVYVF9T
RUxFQ1RJT04pCi0jZGVmaW5lIEVOQUJMRV9URVhUX1NFTEVDVElPTiAxCi0jZW5kaWYKLQotI2lm
ICFkZWZpbmVkKEVOQUJMRV9BU1lOQ19TQ1JPTExJTkcpCi0jZGVmaW5lIEVOQUJMRV9BU1lOQ19T
Q1JPTExJTkcgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfVE9VQ0hfRVZFTlRTKQot
I2RlZmluZSBFTkFCTEVfVE9VQ0hfRVZFTlRTIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5B
QkxFX1ZJREVPKQotI2RlZmluZSBFTkFCTEVfVklERU8gMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5l
ZChFTkFCTEVfVklERU9fVFJBQ0spCi0jZGVmaW5lIEVOQUJMRV9WSURFT19UUkFDSyAwCi0jZW5k
aWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9EQVRBQ1VFX1ZBTFVFKQotI2RlZmluZSBFTkFCTEVf
REFUQUNVRV9WQUxVRSAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJHTCkKLSNk
ZWZpbmUgRU5BQkxFX1dFQkdMIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0dSQVBI
SUNTX0NPTlRFWFRfR0wpCi0jZGVmaW5lIEVOQUJMRV9HUkFQSElDU19DT05URVhUX0dMIEVOQUJM
RV9XRUJHTAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfV0VCX0FSQ0hJVkUpCi0jZGVm
aW5lIEVOQUJMRV9XRUJfQVJDSElWRSAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9X
RUJfQVVESU8pCi0jZGVmaW5lIEVOQUJMRV9XRUJfQVVESU8gMAotI2VuZGlmCi0KLSNpZiAhZGVm
aW5lZChFTkFCTEVfWFNMVCkKLSNkZWZpbmUgRU5BQkxFX1hTTFQgMQotI2VuZGlmCi0KLSNpZiAh
ZGVmaW5lZChFTkFCTEVfREFUQV9JTlRFUkFDVElPTikKLSNkZWZpbmUgRU5BQkxFX0RBVEFfSU5U
RVJBQ1RJT04gMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfU0VSVklDRV9XT1JLRVIp
Ci0jZGVmaW5lIEVOQUJMRV9TRVJWSUNFX1dPUktFUiAxCi0jZW5kaWYKLQotCi0vKiBKSVQgRmVh
dHVyZXMgKi8KLQotLyogVGhlIEpJVCBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgb24gYWxsIHg4Ni02
NCAmIEFSTTY0IHBsYXRmb3Jtcy4gKi8KLSNpZiAhZGVmaW5lZChFTkFCTEVfSklUKSAmJiAoQ1BV
KFg4Nl82NCkgfHwgQ1BVKEFSTTY0KSkgJiYgIUNQVShBUFBMRV9BUk1WN0spCi0jZGVmaW5lIEVO
QUJMRV9KSVQgMQotI2VuZGlmCi0KLSNpZiBVU0UoSlNWQUxVRTMyXzY0KQotI2lmIChDUFUoQVJN
X1RIVU1CMikgfHwgQ1BVKE1JUFMpKSAmJiBPUyhMSU5VWCkKLS8qIE9uIEFSTXY3IGFuZCBNSVBT
IG9uIExpbnV4IHRoZSBKSVQgaXMgZW5hYmxlZCB1bmxlc3MgZXhwbGljaXRseSBkaXNhYmxlZC4g
Ki8KLSNpZiAhZGVmaW5lZChFTkFCTEVfSklUKQotI2RlZmluZSBFTkFCTEVfSklUIDEKLSNlbmRp
ZgotI2Vsc2UKLS8qIERpc2FibGUgSklUIGFuZCBmb3JjZSBDX0xPT1Agb24gYWxsIG90aGVyIDMy
Yml0IGFyY2hpdGVjdHVyZXMuICovCi0jdW5kZWYgRU5BQkxFX0pJVAotI2RlZmluZSBFTkFCTEVf
SklUIDAKLSN1bmRlZiBFTkFCTEVfQ19MT09QCi0jZGVmaW5lIEVOQUJMRV9DX0xPT1AgMQotI2Vu
ZGlmCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9DX0xPT1ApCi0jaWYgRU5BQkxFKEpJ
VCkgfHwgQ1BVKFg4Nl82NCkgfHwgKENQVShBUk02NCkgJiYgIWRlZmluZWQoX19JTFAzMl9fKSkK
LSNkZWZpbmUgRU5BQkxFX0NfTE9PUCAwCi0jZWxzZQotI2RlZmluZSBFTkFCTEVfQ19MT09QIDEK
LSNlbmRpZgotI2VuZGlmCi0KLS8qIEZJWE1FOiBUaGlzIHNob3VsZCBiZSB0dXJuZWQgaW50byBh
biAjZXJyb3IgaW52YXJpYW50ICovCi0vKiBUaGUgRlRMICpkb2VzIG5vdCogd29yayBvbiAzMi1i
aXQgcGxhdGZvcm1zLiBEaXNhYmxlIGl0IGV2ZW4gaWYgc29tZW9uZSBhc2tlZCB1cyB0byBlbmFi
bGUgaXQuICovCi0jaWYgVVNFKEpTVkFMVUUzMl82NCkKLSN1bmRlZiBFTkFCTEVfRlRMX0pJVAot
I2RlZmluZSBFTkFCTEVfRlRMX0pJVCAwCi0jZW5kaWYKLQotLyogRklYTUU6IFRoaXMgc2hvdWxk
IGJlIHR1cm5lZCBpbnRvIGFuICNlcnJvciBpbnZhcmlhbnQgKi8KLS8qIFRoZSBGVEwgaXMgZGlz
YWJsZWQgb24gdGhlIGlPUyBzaW11bGF0b3IsIG1vc3RseSBmb3Igc2ltcGxpY2l0eS4gKi8KLSNp
ZiBQTEFURk9STShJT1NfRkFNSUxZX1NJTVVMQVRPUikKLSN1bmRlZiBFTkFCTEVfRlRMX0pJVAot
I2RlZmluZSBFTkFCTEVfRlRMX0pJVCAwCi0jZW5kaWYKLQotLyogSWYgcG9zc2libGUsIHRyeSB0
byBlbmFibGUgYSBkaXNhc3NlbWJsZXIuIFRoaXMgaXMgb3B0aW9uYWwuIFdlIHByb2NlZWQgaW4g
dHdvCi0gICBzdGVwczogZmlyc3Qgd2UgdHJ5IHRvIGZpbmQgc29tZSBkaXNhc3NlbWJsZXIgdGhh
dCB3ZSBjYW4gdXNlLCBhbmQgdGhlbiB3ZQotICAgZGVjaWRlIGlmIHRoZSBoaWdoLWxldmVsIGRp
c2Fzc2VtYmxlciBBUEkgY2FuIGJlIGVuYWJsZWQuICovCi0jaWYgIWRlZmluZWQoRU5BQkxFX1VE
SVM4NikgJiYgRU5BQkxFKEpJVCkgJiYgQ1BVKFg4Nl82NCkgJiYgIVVTRShDQVBTVE9ORSkKLSNk
ZWZpbmUgRU5BQkxFX1VESVM4NiAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9BUk02
NF9ESVNBU1NFTUJMRVIpICYmIEVOQUJMRShKSVQpICYmIENQVShBUk02NCkgJiYgIVVTRShDQVBT
VE9ORSkKLSNkZWZpbmUgRU5BQkxFX0FSTTY0X0RJU0FTU0VNQkxFUiAxCi0jZW5kaWYKLQotI2lm
ICFkZWZpbmVkKEVOQUJMRV9ESVNBU1NFTUJMRVIpICYmIChFTkFCTEUoVURJUzg2KSB8fCBFTkFC
TEUoQVJNNjRfRElTQVNTRU1CTEVSKSB8fCAoRU5BQkxFKEpJVCkgJiYgVVNFKENBUFNUT05FKSkp
Ci0jZGVmaW5lIEVOQUJMRV9ESVNBU1NFTUJMRVIgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChF
TkFCTEVfREZHX0pJVCkgJiYgRU5BQkxFKEpJVCkKLQotLyogRW5hYmxlIHRoZSBERkcgSklUIG9u
IFg4NiBhbmQgWDg2XzY0LiAqLwotI2lmIENQVShYODZfNjQpICYmIChPUyhEQVJXSU4pIHx8IE9T
KExJTlVYKSB8fCBPUyhGUkVFQlNEKSB8fCBPUyhIVVJEKSB8fCBPUyhXSU5ET1dTKSkKLSNkZWZp
bmUgRU5BQkxFX0RGR19KSVQgMQotI2VuZGlmCi0KLS8qIEVuYWJsZSB0aGUgREZHIEpJVCBvbiBB
Uk12Ny4gIE9ubHkgdGVzdGVkIG9uIGlPUywgTGludXgsIGFuZCBGcmVlQlNELiAqLwotI2lmIChD
UFUoQVJNX1RIVU1CMikgfHwgQ1BVKEFSTTY0KSkgJiYgKE9TKERBUldJTikgfHwgT1MoTElOVVgp
IHx8IE9TKEZSRUVCU0QpKQotI2RlZmluZSBFTkFCTEVfREZHX0pJVCAxCi0jZW5kaWYKLQotLyog
RW5hYmxlIHRoZSBERkcgSklUIG9uIE1JUFMuICovCi0jaWYgQ1BVKE1JUFMpCi0jZGVmaW5lIEVO
QUJMRV9ERkdfSklUIDEKLSNlbmRpZgotCi0jZW5kaWYgLyogIWRlZmluZWQoRU5BQkxFX0RGR19K
SVQpICYmIEVOQUJMRShKSVQpICovCi0KLS8qIENvbmN1cnJlbnQgSlMgb25seSB3b3JrcyBvbiA2
NC1iaXQgcGxhdGZvcm1zIGJlY2F1c2UgaXQgcmVxdWlyZXMgdGhhdAotICAgdmFsdWVzIGdldCBz
dG9yZWQgdG8gYXRvbWljYWxseS4gVGhpcyBpcyB0cml2aWFsbHkgdHJ1ZSBvbiA2NC1iaXQgcGxh
dGZvcm1zLAotICAgYnV0IG5vdCB0cnVlIGF0IGFsbCBvbiAzMi1iaXQgcGxhdGZvcm1zIHdoZXJl
IHZhbHVlcyBhcmUgY29tcG9zZWQgb2YgdHdvCi0gICBzZXBhcmF0ZSBzdWItdmFsdWVzLiAqLwot
I2lmIEVOQUJMRShKSVQpICYmIFVTRShKU1ZBTFVFNjQpCi0jZGVmaW5lIEVOQUJMRV9DT05DVVJS
RU5UX0pTIDEKLSNlbmRpZgotCi0jaWYgKENQVShYODZfNjQpIHx8IENQVShBUk02NCkpICYmIEhB
VkUoRkFTVF9UTFMpCi0jZGVmaW5lIEVOQUJMRV9GQVNUX1RMU19KSVQgMQotI2VuZGlmCi0KLSNp
ZiBFTkFCTEUoSklUKSAmJiAoQ1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTV9USFVN
QjIpIHx8IENQVShBUk02NCkgfHwgQ1BVKE1JUFMpKQotI2RlZmluZSBFTkFCTEVfTUFTTV9QUk9C
RSAxCi0jZW5kaWYKLQotLyogRklYTUU6IFRoaXMgc2hvdWxkIGJlIHR1cm5lZCBpbnRvIGFuICNl
cnJvciBpbnZhcmlhbnQgKi8KLS8qIElmIHRoZSBiYXNlbGluZSBqaXQgaXMgbm90IGF2YWlsYWJs
ZSwgdGhlbiBkaXNhYmxlIHVwcGVyIHRpZXJzIGFzIHdlbGwuCi0gICBUaGUgTWFjcm9Bc3NlbWJs
ZXI6OnByb2JlKCkgaXMgYWxzbyByZXF1aXJlZCBmb3Igc3VwcG9ydGluZyB0aGUgdXBwZXIgdGll
cnMuICovCi0jaWYgIUVOQUJMRShKSVQpIHx8ICFFTkFCTEUoTUFTTV9QUk9CRSkKLSN1bmRlZiBF
TkFCTEVfREZHX0pJVAotI3VuZGVmIEVOQUJMRV9GVExfSklUCi0jZGVmaW5lIEVOQUJMRV9ERkdf
SklUIDAKLSNkZWZpbmUgRU5BQkxFX0ZUTF9KSVQgMAotI2VuZGlmCi0KLS8qIEZJWE1FOiBUaGlz
IHNob3VsZCBiZSB0dXJuZWQgaW50byBhbiAjZXJyb3IgaW52YXJpYW50ICovCi0vKiBJZiB0aGUg
REZHIGppdCBpcyBub3QgYXZhaWxhYmxlLCB0aGVuIGRpc2FibGUgdXBwZXIgdGllcnMgYXMgd2Vs
bDogKi8KLSNpZiAhRU5BQkxFKERGR19KSVQpCi0jdW5kZWYgRU5BQkxFX0ZUTF9KSVQKLSNkZWZp
bmUgRU5BQkxFX0ZUTF9KSVQgMAotI2VuZGlmCi0KLS8qIFRoaXMgY29udHJvbHMgd2hldGhlciBC
MyBpcyBidWlsdC4gQjMgaXMgbmVlZGVkIGZvciBGVEwgSklUIGFuZCBXZWJBc3NlbWJseSAqLwot
I2lmIEVOQUJMRShGVExfSklUKQotI2RlZmluZSBFTkFCTEVfQjNfSklUIDEKLSNlbmRpZgotCi0j
aWYgIWRlZmluZWQoRU5BQkxFX1dFQkFTU0VNQkxZKSAmJiAoRU5BQkxFKEIzX0pJVCkgJiYgUExB
VEZPUk0oQ09DT0EpICYmIENQVShBRERSRVNTNjQpKQotI2RlZmluZSBFTkFCTEVfV0VCQVNTRU1C
TFkgMQotI2VuZGlmCi0KLS8qIFRoZSBTYW1wbGluZ1Byb2ZpbGVyIGlzIHRoZSBwcm9iYWJpbGlz
dGljIGFuZCBsb3ctb3ZlcmhlYWQgcHJvZmlsZXIgdXNlZCBieQotICogSlNDIHRvIG1lYXN1cmUg
d2hlcmUgdGltZSBpcyBzcGVudCBpbnNpZGUgYSBKYXZhU2NyaXB0IHByb2dyYW0uCi0gKiBJbiBj
b25maWd1cmF0aW9ucyBvdGhlciB0aGFuIFdpbmRvd3MgYW5kIERhcndpbiwgYmVjYXVzZSBsYXlv
dXQgb2YgbWNvbnRleHRfdCBkZXBlbmRzIG9uIHN0YW5kYXJkIGxpYnJhcmllcyAobGlrZSBnbGli
YyksCi0gKiBzYW1wbGluZyBwcm9maWxlciBpcyBlbmFibGVkIGlmIFdlYktpdCB1c2VzIHB0aHJl
YWRzIGFuZCBnbGliYy4gKi8KLSNpZiAhZGVmaW5lZChFTkFCTEVfU0FNUExJTkdfUFJPRklMRVIp
ICYmICghRU5BQkxFKENfTE9PUCkgJiYgKE9TKFdJTkRPV1MpIHx8IEhBVkUoTUFDSElORV9DT05U
RVhUKSkpCi0jZGVmaW5lIEVOQUJMRV9TQU1QTElOR19QUk9GSUxFUiAxCi0jZW5kaWYKLQotI2lm
IEVOQUJMRShXRUJBU1NFTUJMWSkgJiYgSEFWRShNQUNISU5FX0NPTlRFWFQpCi0jZGVmaW5lIEVO
QUJMRV9XRUJBU1NFTUJMWV9GQVNUX01FTU9SWSAxCi0jZW5kaWYKLQotLyogQ291bnRzIHVzZXMg
b2Ygd3JpdGUgYmFycmllcnMgdXNpbmcgc2FtcGxpbmcgY291bnRlcnMuIEJlIHN1cmUgdG8gYWxz
bwotICAgc2V0IEVOQUJMRV9TQU1QTElOR19DT1VOVEVSUyB0byAxLiAqLwotI2lmICFkZWZpbmVk
KEVOQUJMRV9XUklURV9CQVJSSUVSX1BST0ZJTElORykKLSNkZWZpbmUgRU5BQkxFX1dSSVRFX0JB
UlJJRVJfUFJPRklMSU5HIDAKLSNlbmRpZgotCi0vKiBMb2dzIGFsbCBhbGxvY2F0aW9uLXJlbGF0
ZWQgYWN0aXZpdHkgdGhhdCBnb2VzIHRocm91Z2ggZmFzdE1hbGxvYyBvciB0aGUKLSAgIEpTQyBH
QyAoYm90aCBjZWxscyBhbmQgYnV0dGVyZmxpZXMpLiBBbHNvIGxvZ3MgbWFya2luZy4gTm90ZSB0
aGF0IHRoaXMKLSAgIGlzbid0IGEgY29tcGxldGVseSBhY2N1cmF0ZSB2aWV3IG9mIHRoZSBoZWFw
IHNpbmNlIGl0IGRvZXNuJ3QgaW5jbHVkZSBhbGwKLSAgIGJ1dHRlcmZseSByZXNpemUgb3BlcmF0
aW9ucywgZG9lc24ndCB0ZWxsIHlvdSB3aGF0IGlzIGdvaW5nIG9uIHdpdGggd2VhawotICAgcmVm
ZXJlbmNlcyAob3RoZXIgdGhhbiB0byB0ZWxsIHlvdSB3aGVuIHRoZXkncmUgbWFya2VkKSwgYW5k
IGRvZXNuJ3QKLSAgIHRyYWNrIGRpcmVjdCBtbWFwKCkgYWxsb2NhdGlvbnMgb3IgdGhpbmdzIGxp
a2UgSklUIGFsbG9jYXRpb24uICovCi0jaWYgIWRlZmluZWQoRU5BQkxFX0FMTE9DQVRJT05fTE9H
R0lORykKLSNkZWZpbmUgRU5BQkxFX0FMTE9DQVRJT05fTE9HR0lORyAwCi0jZW5kaWYKLQotLyog
RW5hYmxlIHZlcmlmaWNhdGlvbiB0aGF0IHRoYXQgcmVnaXN0ZXIgYWxsb2NhdGlvbnMgYXJlIG5v
dCBtYWRlIHdpdGhpbiBnZW5lcmF0ZWQgY29udHJvbCBmbG93LgotICAgVHVybmVkIG9uIGZvciBk
ZWJ1ZyBidWlsZHMuICovCi0jaWYgIWRlZmluZWQoRU5BQkxFX0RGR19SRUdJU1RFUl9BTExPQ0FU
SU9OX1ZBTElEQVRJT04pICYmIEVOQUJMRShERkdfSklUKSAmJiAhZGVmaW5lZChOREVCVUcpCi0j
ZGVmaW5lIEVOQUJMRV9ERkdfUkVHSVNURVJfQUxMT0NBVElPTl9WQUxJREFUSU9OIDEKLSNlbmRp
ZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX1NFUEFSQVRFRF9XWF9IRUFQKSAmJiBQTEFURk9STShJ
T1NfRkFNSUxZKSAmJiBDUFUoQVJNNjQpICYmICghRU5BQkxFKEZBU1RfSklUX1BFUk1JU1NJT05T
KSB8fCAhQ1BVKEFSTTY0RSkpCi0jZGVmaW5lIEVOQUJMRV9TRVBBUkFURURfV1hfSEVBUCAxCi0j
ZW5kaWYKLQotLyogRGV0ZXJtaW5lIGlmIHdlIG5lZWQgdG8gZW5hYmxlIENvbXB1dGVkIEdvdG8g
T3Bjb2RlcyBvciBub3Q6ICovCi0jaWYgSEFWRShDT01QVVRFRF9HT1RPKSB8fCAhRU5BQkxFKENf
TE9PUCkKLSNkZWZpbmUgRU5BQkxFX0NPTVBVVEVEX0dPVE9fT1BDT0RFUyAxCi0jZW5kaWYKLQot
LyogUmVndWxhciBFeHByZXNzaW9uIFRyYWNpbmcgLSBTZXQgdG8gMSB0byB0cmFjZSBSZWdFeHAn
cyBpbiBqc2MuICBSZXN1bHRzIGR1bXBlZCBhdCBleGl0ICovCi0jaWYgIWRlZmluZWQoRU5BQkxF
X1JFR0VYUF9UUkFDSU5HKQotI2RlZmluZSBFTkFCTEVfUkVHRVhQX1RSQUNJTkcgMAotI2VuZGlm
Ci0KLS8qIFlldCBBbm90aGVyIFJlZ2V4IFJ1bnRpbWUgLSB0dXJuZWQgb24gYnkgZGVmYXVsdCBm
b3IgSklUIGVuYWJsZWQgcG9ydHMuICovCi0jaWYgIWRlZmluZWQoRU5BQkxFX1lBUlJfSklUKSAm
JiBFTkFCTEUoSklUKQotI2RlZmluZSBFTkFCTEVfWUFSUl9KSVQgMQotI2VuZGlmCi0KLS8qIFNl
dHRpbmcgdGhpcyBmbGFnIGNvbXBhcmVzIEpJVCByZXN1bHRzIHdpdGggaW50ZXJwcmV0ZXIgcmVz
dWx0cy4gKi8KLSNpZiAhZGVmaW5lZChFTkFCTEVfWUFSUl9KSVQpICYmIEVOQUJMRShKSVQpCi0j
ZGVmaW5lIEVOQUJMRV9ZQVJSX0pJVF9ERUJVRyAwCi0jZW5kaWYKLQotLyogRW5hYmxlIEpJVCdp
bmcgUmVndWxhciBFeHByZXNzaW9ucyB0aGF0IGhhdmUgbmVzdGVkIHBhcmVudGhlc2lzIC4gKi8K
LSNpZiBFTkFCTEUoWUFSUl9KSVQpICYmIChDUFUoQVJNNjQpIHx8IChDUFUoWDg2XzY0KSAmJiAh
T1MoV0lORE9XUykpKQotI2RlZmluZSBFTkFCTEVfWUFSUl9KSVRfQUxMX1BBUkVOU19FWFBSRVNT
SU9OUyAxCi0jZW5kaWYKLQotLyogRW5hYmxlIEpJVCdpbmcgUmVndWxhciBFeHByZXNzaW9ucyB0
aGF0IGhhdmUgbmVzdGVkIGJhY2sgcmVmZXJlbmNlcy4gKi8KLSNpZiBFTkFCTEUoWUFSUl9KSVQp
ICYmIChDUFUoQVJNNjQpIHx8IChDUFUoWDg2XzY0KSAmJiAhT1MoV0lORE9XUykpKQotI2RlZmlu
ZSBFTkFCTEVfWUFSUl9KSVRfQkFDS1JFRkVSRU5DRVMgMQotI2VuZGlmCi0KLS8qIElmIGVpdGhl
ciB0aGUgSklUIG9yIHRoZSBSZWdFeHAgSklUIGlzIGVuYWJsZWQsIHRoZW4gdGhlIEFzc2VtYmxl
ciBtdXN0IGJlCi0gICBlbmFibGVkIGFzIHdlbGw6ICovCi0jaWYgRU5BQkxFKEpJVCkgfHwgRU5B
QkxFKFlBUlJfSklUKSB8fCAhRU5BQkxFKENfTE9PUCkKLSNpZiBkZWZpbmVkKEVOQUJMRV9BU1NF
TUJMRVIpICYmICFFTkFCTEVfQVNTRU1CTEVSCi0jZXJyb3IgIkNhbm5vdCBlbmFibGUgdGhlIEpJ
VCBvciBSZWdFeHAgSklUIHdpdGhvdXQgZW5hYmxpbmcgdGhlIEFzc2VtYmxlciIKLSNlbHNlCi0j
dW5kZWYgRU5BQkxFX0FTU0VNQkxFUgotI2RlZmluZSBFTkFCTEVfQVNTRU1CTEVSIDEKLSNlbmRp
ZgotI2VuZGlmCi0KLS8qIElmIHRoZSBEaXNhc3NlbWJsZXIgaXMgZW5hYmxlZCwgdGhlbiB0aGUg
QXNzZW1ibGVyIG11c3QgYmUgZW5hYmxlZCBhcyB3ZWxsOiAqLwotI2lmIEVOQUJMRShESVNBU1NF
TUJMRVIpCi0jaWYgZGVmaW5lZChFTkFCTEVfQVNTRU1CTEVSKSAmJiAhRU5BQkxFX0FTU0VNQkxF
UgotI2Vycm9yICJDYW5ub3QgZW5hYmxlIHRoZSBEaXNhc3NlbWJsZXIgd2l0aG91dCBlbmFibGlu
ZyB0aGUgQXNzZW1ibGVyIgotI2Vsc2UKLSN1bmRlZiBFTkFCTEVfQVNTRU1CTEVSCi0jZGVmaW5l
IEVOQUJMRV9BU1NFTUJMRVIgMQotI2VuZGlmCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJM
RV9FWENFUFRJT05fU0NPUEVfVkVSSUZJQ0FUSU9OKQotI2RlZmluZSBFTkFCTEVfRVhDRVBUSU9O
X1NDT1BFX1ZFUklGSUNBVElPTiBBU1NFUlRfRU5BQkxFRAotI2VuZGlmCi0KLSNpZiBFTkFCTEUo
REZHX0pJVCkgJiYgSEFWRShNQUNISU5FX0NPTlRFWFQpICYmIChDUFUoWDg2XzY0KSB8fCBDUFUo
QVJNNjQpKQotI2RlZmluZSBFTkFCTEVfU0lHTkFMX0JBU0VEX1ZNX1RSQVBTIDEKLSNlbmRpZgot
Ci0vKiBDU1MgU2VsZWN0b3IgSklUIENvbXBpbGVyICovCi0jaWYgIWRlZmluZWQoRU5BQkxFX0NT
U19TRUxFQ1RPUl9KSVQpICYmICgoQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTTY0KSB8fCAoQ1BVKEFS
TV9USFVNQjIpICYmIE9TKERBUldJTikpKSAmJiBFTkFCTEUoSklUKSAmJiAoT1MoREFSV0lOKSB8
fCBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkpKQotI2RlZmluZSBFTkFCTEVfQ1NTX1NF
TEVDVE9SX0pJVCAxCi0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKENPQ09BKSAmJiAhUExBVEZPUk0o
V0FUQ0hPUykgJiYgIVBMQVRGT1JNKEFQUExFVFYpICYmICFQTEFURk9STShNQUNDQVRBTFlTVCkK
LSNkZWZpbmUgRU5BQkxFX0RBVEFfREVURUNUSU9OIDEKLSNlbmRpZgotCi0jaWYgQ1BVKEFSTV9U
SFVNQjIpIHx8IENQVShBUk02NCkKLSNkZWZpbmUgRU5BQkxFX0JSQU5DSF9DT01QQUNUSU9OIDEK
LSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX1RIUkVBRElOR19MSUJESVNQQVRDSCkgJiYg
SEFWRShESVNQQVRDSF9IKQotI2RlZmluZSBFTkFCTEVfVEhSRUFESU5HX0xJQkRJU1BBVENIIDEK
LSNlbGlmICFkZWZpbmVkKEVOQUJMRV9USFJFQURJTkdfT1BFTk1QKSAmJiBkZWZpbmVkKF9PUEVO
TVApCi0jZGVmaW5lIEVOQUJMRV9USFJFQURJTkdfT1BFTk1QIDEKLSNlbGlmICFkZWZpbmVkKFRI
UkVBRElOR19HRU5FUklDKQotI2RlZmluZSBFTkFCTEVfVEhSRUFESU5HX0dFTkVSSUMgMQotI2Vu
ZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfR0NfVkFMSURBVElPTikgJiYgIWRlZmluZWQoTkRF
QlVHKQotI2RlZmluZSBFTkFCTEVfR0NfVkFMSURBVElPTiAxCi0jZW5kaWYKLQotI2lmICFkZWZp
bmVkKEVOQUJMRV9CSU5ESU5HX0lOVEVHUklUWSkgJiYgIU9TKFdJTkRPV1MpCi0jZGVmaW5lIEVO
QUJMRV9CSU5ESU5HX0lOVEVHUklUWSAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9U
UkVFX0RFQlVHR0lORykgJiYgIWRlZmluZWQoTkRFQlVHKQotI2RlZmluZSBFTkFCTEVfVFJFRV9E
RUJVR0dJTkcgMQotI2VuZGlmCi0KLSNpZiBQTEFURk9STShDT0NPQSkKLSNkZWZpbmUgRU5BQkxF
X1JFU09VUkNFX1VTQUdFIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX09QRU5UWVBF
X1ZFUlRJQ0FMKSAmJiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKLSNkZWZpbmUgRU5B
QkxFX09QRU5UWVBFX1ZFUlRJQ0FMIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX09Q
RU5UWVBFX01BVEgpICYmIChPUyhEQVJXSU4pICYmIFVTRShDRykpIHx8IChVU0UoRlJFRVRZUEUp
ICYmICFQTEFURk9STShHVEspKSB8fCAoUExBVEZPUk0oV0lOKSAmJiAoVVNFKENHKSB8fCBVU0Uo
Q0FJUk8pKSkKLSNkZWZpbmUgRU5BQkxFX09QRU5UWVBFX01BVEggMQotI2VuZGlmCi0KLS8qCi0g
KiBFbmFibGUgdGhpcyB0byBwdXQgZWFjaCBJc29IZWFwIGFuZCBvdGhlciBhbGxvY2F0aW9uIGNh
dGVnb3JpZXMgaW50byB0aGVpciBvd24gbWFsbG9jIGhlYXBzLCBzbyB0aGF0IHRvb2xzIGxpa2Ug
dm1tYXAgY2FuIHNob3cgaG93IGJpZyBlYWNoIGhlYXAgaXMuCi0gKiBUdXJuIEJFTkFCTEVfTUFM
TE9DX0hFQVBfQlJFQUtET1dOIG9uIGluIGJtYWxsb2MgdG9nZXRoZXIgd2hlbiB1c2luZyB0aGlz
LgotICovCi0jaWYgIWRlZmluZWQoRU5BQkxFX01BTExPQ19IRUFQX0JSRUFLRE9XTikKLSNkZWZp
bmUgRU5BQkxFX01BTExPQ19IRUFQX0JSRUFLRE9XTiAwCi0jZW5kaWYKLQotLyogRGlzYWJsZSBT
aGFyZWRBcnJheUJ1ZmZlcnMgdW50aWwgU3BlY3RyZSBzZWN1cml0eSBjb25jZXJucyBhcmUgbWl0
aWdhdGVkLiAqLwotI2RlZmluZSBFTkFCTEVfU0hBUkVEX0FSUkFZX0JVRkZFUiAwCi0KLSNpZiBQ
TEFURk9STShNQUMpCi0jZGVmaW5lIEVOQUJMRV9XRUJfUExBWUJBQ0tfQ09OVFJPTFNfTUFOQUdF
UiAxCi0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKENPQ09BKQotLyogRklYTUU6IFRoaXMgaXMgYSBV
U0Ugc3R5bGUgbWFjcm8sIGFzIGl0IHRyaWdnZXJzIHRoZSB1c2Ugb2YgQ0ZVUkxDb25uZWN0aW9u
IGZyYW1ld29yayBzdHVicy4gKi8KLS8qIEZJWE1FOiBJcyB0aGlzIHN0aWxsIG5lY2Vzc2FyeT8g
Q0ZVUkxDb25uZWN0aW9uIGlzbid0IHVzZWQgb24gQ29jb2EgcGxhdGZvcm1zIGFueSBtb3JlLiAq
LwotI2RlZmluZSBFTkFCTEVfU0VDX0lURU1fU0hJTSAxCi0jZW5kaWYKLQotI2lmIFBMQVRGT1JN
KE1BQykKLSNkZWZpbmUgRU5BQkxFX0ZVTExfS0VZQk9BUkRfQUNDRVNTIDEKLSNlbmRpZgotCi0j
aWYgKChQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oUExBWVNUQVRJT04pIHx8IFBMQVRGT1JN
KFdQRSkpICYmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpKSB8fCBQTEFURk9STShHVEspCi0jZGVm
aW5lIEVOQUJMRV9LSU5FVElDX1NDUk9MTElORyAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVO
QUJMRV9NT05PU1BBQ0VfRk9OVF9FWENFUFRJT04pICYmICgoUExBVEZPUk0oTUFDKSAmJiBfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDwgMTAxNTAwKSB8fCBQTEFURk9STShXQVRDSE9T
KSB8fCBQTEFURk9STShBUFBMRVRWKSkKLSNkZWZpbmUgRU5BQkxFX01PTk9TUEFDRV9GT05UX0VY
Q0VQVElPTiAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9QTEFURk9STV9EUklWRU5f
VEVYVF9DSEVDS0lORykgJiYgUExBVEZPUk0oTUFDQ0FUQUxZU1QpCi0jZGVmaW5lIEVOQUJMRV9Q
TEFURk9STV9EUklWRU5fVEVYVF9DSEVDS0lORyAxCi0jZW5kaWYKLQotLyogVGhpcyBmZWF0dXJl
IHdvcmtzIGJ5IGVtYmVkZGluZyB0aGUgT3Bjb2RlSUQgaW4gdGhlIDMyIGJpdCBqdXN0IGJlZm9y
ZSB0aGUgZ2VuZXJhdGVkIExMaW50IGNvZGUKLSAgIHRoYXQgZXhlY3V0ZXMgZWFjaCBvcGNvZGUu
IEl0IGNhbm5vdCBiZSBzdXBwb3J0ZWQgYnkgdGhlIENMb29wIHNpbmNlIHRoZXJlJ3Mgbm8gd2F5
IHRvIGVtYmVkIHRoZQotICAgT3Bjb2RlSUQgd29yZCBpbiB0aGUgQ0xvb3AncyBzd2l0Y2ggc3Rh
dGVtZW50IGNhc2VzLiBJdCBpcyBhbHNvIGN1cnJlbnRseSBub3QgaW1wbGVtZW50ZWQgZm9yIE1T
VkMuCi0qLwotI2lmICFkZWZpbmVkKEVOQUJMRV9MTElOVF9FTUJFRERFRF9PUENPREVfSUQpICYm
ICFFTkFCTEUoQ19MT09QKSAmJiAhQ09NUElMRVIoTVNWQykgJiYgKENQVShYODYpIHx8IENQVShY
ODZfNjQpIHx8IENQVShBUk02NCkgfHwgKENQVShBUk1fVEhVTUIyKSAmJiBPUyhEQVJXSU4pKSkK
LSNkZWZpbmUgRU5BQkxFX0xMSU5UX0VNQkVEREVEX09QQ09ERV9JRCAxCi0jZW5kaWYKLQotCi0v
KiBBc3NlcnRzLCBpbnZhcmlhbnRzIGZvciBtYWNybyBkZWZpbml0aW9ucyAqLwotCi0jaWYgRU5B
QkxFKFZJREVPX1RSQUNLKSAmJiAhRU5BQkxFKFZJREVPKQotI2Vycm9yICJFTkFCTEUoVklERU9f
VFJBQ0spIHJlcXVpcmVzIEVOQUJMRShWSURFTykiCi0jZW5kaWYKLQotI2lmIEVOQUJMRShNRURJ
QV9DT05UUk9MU19TQ1JJUFQpICYmICFFTkFCTEUoVklERU8pCi0jZXJyb3IgIkVOQUJMRShNRURJ
QV9DT05UUk9MU19TQ1JJUFQpIHJlcXVpcmVzIEVOQUJMRShWSURFTykiCi0jZW5kaWYKLQotI2lm
IEVOQUJMRShJTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENIRVJTKSAmJiAhRU5BQkxFKFJFTU9U
RV9JTlNQRUNUT1IpCi0jZXJyb3IgIkVOQUJMRShJTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENI
RVJTKSByZXF1aXJlcyBFTkFCTEUoUkVNT1RFX0lOU1BFQ1RPUikiCi0jZW5kaWYKLQotI2lmIEVO
QUJMRShJT1NfVE9VQ0hfRVZFTlRTKSAmJiAhRU5BQkxFKFRPVUNIX0VWRU5UUykKLSNlcnJvciAi
RU5BQkxFKElPU19UT1VDSF9FVkVOVFMpIHJlcXVpcmVzIEVOQUJMRShUT1VDSF9FVkVOVFMpIgot
I2VuZGlmCi0KLSNpZiBFTkFCTEUoV0VCR0wpICYmICFFTkFCTEUoR1JBUEhJQ1NfQ09OVEVYVF9H
TCkKLSNlcnJvciAiRU5BQkxFKFdFQkdMKSByZXF1aXJlcyBFTkFCTEUoR1JBUEhJQ1NfQ09OVEVY
VF9HTCkiCi0jZW5kaWYKLQotI2lmIEVOQUJMRShXRUJHTDIpICYmICFFTkFCTEUoV0VCR0wpCi0j
ZXJyb3IgIkVOQUJMRShXRUJHTDIpIHJlcXVpcmVzIEVOQUJMRShXRUJHTCkiCi0jZW5kaWYKSW5k
ZXg6IFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlV2luQ2Fpcm8uaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZVdpbkNhaXJvLmgJKHJldmlzaW9uIDI1NTU1
MikJKGZyb20gU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGUuaDoyNTU1NTIpCisrKyBTb3Vy
Y2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZVdpbkNhaXJvLmgJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSwxMDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTkgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA3LTIwMDkgVG9yY2ggTW9i
aWxlLCBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTEgUmVzZWFyY2ggSW4gTW90aW9u
IExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgU2Ft
c3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZm5kZWYgV1RGX1BM
QVRGT1JNX0dVQVJEX0FHQUlOU1RfSU5ESVJFQ1RfSU5DTFVTSU9OCisjZXJyb3IgIlBsZWFzZSAj
aW5jbHVkZSA8d3RmL1BsYXRmb3JtLmg+IGluc3RlYWQgb2YgdGhpcyBmaWxlIGRpcmVjdGx5LiIK
KyNlbmRpZgorCisKKyNkZWZpbmUgRU5BQkxFKFdURl9GRUFUVVJFKSAoZGVmaW5lZCBFTkFCTEVf
IyNXVEZfRkVBVFVSRSAmJiBFTkFCTEVfIyNXVEZfRkVBVFVSRSkKKworLyogVXNlIHRoaXMgZmls
ZSB0byBsaXN0IF9hbGxfIEVOQUJMRSgpIG1hY3Jvcy4gRGVmaW5lIHRoZSBtYWNyb3MgdG8gYmUg
b25lIG9mIHRoZSBmb2xsb3dpbmcgdmFsdWVzOgorICogIC0gIjAiIGRpc2FibGVzIHRoZSBmZWF0
dXJlIGJ5IGRlZmF1bHQuIFRoZSBmZWF0dXJlIGNhbiBzdGlsbCBiZSBlbmFibGVkIGZvciBhIHNw
ZWNpZmljIHBvcnQgb3IgZW52aXJvbm1lbnQuCisgKiAgLSAiMSIgZW5hYmxlcyB0aGUgZmVhdHVy
ZSBieSBkZWZhdWx0LiBUaGUgZmVhdHVyZSBjYW4gc3RpbGwgYmUgZGlzYWJsZWQgZm9yIGEgc3Bl
Y2lmaWMgcG9ydCBvciBlbnZpcm9ubWVudC4KKyAqCisgKiBUaGUgZmVhdHVyZSBkZWZhdWx0cyBp
biB0aGlzIGZpbGUgYXJlIG9ubHkgdGFrZW4gaW50byBhY2NvdW50IGlmIHRoZSAocG9ydCBzcGVj
aWZpYykgYnVpbGQgc3lzdGVtCisgKiBoYXMgbm90IGVuYWJsZWQgb3IgZGlzYWJsZWQgYSBwYXJ0
aWN1bGFyIGZlYXR1cmUuCisgKgorICogVXNlIHRoaXMgZmlsZSB0byBkZWZpbmUgRU5BQkxFKCkg
bWFjcm9zIG9ubHkuIERvIG5vdCB1c2UgdGhpcyBmaWxlIHRvIGRlZmluZSBVU0UoKSBvciBtYWNy
b3MgIQorICoKKyAqIE9ubHkgZGVmaW5lIGEgbWFjcm8gaWYgaXQgd2FzIG5vdCBkZWZpbmVkIGJl
Zm9yZSAtIGFsd2F5cyBjaGVjayBmb3IgIWRlZmluZWQgZmlyc3QuCisgKgorICogS2VlcCB0aGUg
ZmlsZSBzb3J0ZWQgYnkgdGhlIG5hbWUgb2YgdGhlIGRlZmluZXMuIEFzIGFuIGV4Y2VwdGlvbiB5
b3UgY2FuIGNoYW5nZSB0aGUgb3JkZXIKKyAqIHRvIGFsbG93IGludGVyZGVwZW5kZW5jaWVzIGJl
dHdlZW4gdGhlIGRlZmF1bHQgdmFsdWVzLgorICoKKyAqIEJlbG93IGFyZSBhIGZldyBwb3RlbnRp
YWwgY29tbWFuZHMgdG8gdGFrZSBhZHZhbnRhZ2Ugb2YgdGhpcyBmaWxlIHJ1bm5pbmcgZnJvbSB0
aGUgU291cmNlL1dURiBkaXJlY3RvcnkKKyAqCisgKiBHZXQgdGhlIGxpc3Qgb2YgZmVhdHVyZSBk
ZWZpbmVzOiBncmVwIC1vICJFTkFCTEVfXChcd1wrXCkiIHd0Zi9QbGF0Zm9ybUVuYWJsZS5oIHwg
c29ydCB8IHVuaXEKKyAqIEdldCB0aGUgbGlzdCBvZiBmZWF0dXJlcyBlbmFibGVkIGJ5IGRlZmF1
bHQgZm9yIGEgUExBVEZPUk0oWFhYKTogZ2NjIC1FIC1kTSAtSS4gLURXVEZfUExBVEZPUk1fWFhY
ICJ3dGYvUGxhdGZvcm0uaCIgfCBncmVwICJFTkFCTEVfXHdcKyAxIiB8IGN1dCAtZCcgJyAtZjIg
fCBzb3J0CisgKi8KKworCisvKiBGSVhNRTogVGhpcyBzaG91bGQgYmUgcmVuYW1lZCB0byBFTkFC
TEVfQVNTRVJUUyBmb3IgY29uc2lzdGVuY3kgYW5kIHNvIGl0IGNhbiBiZSB1c2VkIGFzIEVOQUJM
RShBU1NFUlRTKS4gKi8KKy8qIEFTU0VSVF9FTkFCTEVEIHNob3VsZCBiZSB0cnVlIGlmIHdlIHdh
bnQgdGhlIGN1cnJlbnQgY29tcGlsYXRpb24gdW5pdCB0bworICAgZG8gZGVidWcgYXNzZXJ0aW9u
IGNoZWNrcyB1bmNvbmRpdGlvbmFsbHkgKGUuZy4gdHJlYXQgYSBkZWJ1ZyBBU1NFUlQKKyAgIGxp
a2UgYSBSRUxFQVNFX0FTU0VSVC4KKyovCisjaWZuZGVmIEFTU0VSVF9FTkFCTEVECisjaWZkZWYg
TkRFQlVHCisjZGVmaW5lIEFTU0VSVF9FTkFCTEVEIDAKKyNlbHNlCisjZGVmaW5lIEFTU0VSVF9F
TkFCTEVEIDEKKyNlbmRpZgorI2VuZGlmCisKKy8qID09PT0gUGxhdGZvcm0gYWRkaXRpb25zOiBh
ZGRpdGlvbnMgdG8gUGxhdGZvcm1FbmFibGUuaCBmcm9tIG91dHNpZGUgdGhlIG1haW4gcmVwb3Np
dG9yeSA9PT09ICovCisKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKSAmJiBfX2hhc19pbmNs
dWRlKDxXZWJLaXRBZGRpdGlvbnMvQWRkaXRpb25hbEZlYXR1cmVEZWZpbmVzLmg+KQorI2luY2x1
ZGUgPFdlYktpdEFkZGl0aW9ucy9BZGRpdGlvbmFsRmVhdHVyZURlZmluZXMuaD4KKyNlbmRpZgor
CisvKiBGSVhNRTogTW92ZSBvdXQgdGhlIFBMQVRGT1JNIHNwZWNpZmljIHJ1bGVzIGludG8gcGxh
dGZvcm0gc3BlY2lmaWMgZmlsZXMuICovCisKKy8qIC0tLS0tLS0tLSBBcHBsZSBpT1MgKGJ1dCBu
b3QgbWFjT1MpIHBvcnQgLS0tLS0tLS0tICovCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKwor
I2lmICFkZWZpbmVkKEVOQUJMRV9BSVJQTEFZX1BJQ0tFUikKKyNpZiAhUExBVEZPUk0oTUFDQ0FU
QUxZU1QpCisjZGVmaW5lIEVOQUJMRV9BSVJQTEFZX1BJQ0tFUiAxCisjZW5kaWYKKyNlbmRpZgor
CisjaWYgIWRlZmluZWQoRU5BQkxFX0FQUExFX1BBWV9SRU1PVEVfVUkpCisjaWYgIVBMQVRGT1JN
KEFQUExFVFYpICYmICFQTEFURk9STShNQUNDQVRBTFlTVCkgJiYgIVBMQVRGT1JNKFdBVENIT1Mp
CisjZGVmaW5lIEVOQUJMRV9BUFBMRV9QQVlfUkVNT1RFX1VJIDEKKyNlbmRpZgorI2VuZGlmCisK
KyNpZiAhZGVmaW5lZChFTkFCTEVfQ09OVEVOVF9FWFRFTlNJT05TKQorI2RlZmluZSBFTkFCTEVf
Q09OVEVOVF9FWFRFTlNJT05TIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0NPTlRF
WFRfTUVOVVMpCisjZGVmaW5lIEVOQUJMRV9DT05URVhUX01FTlVTIDAKKyNlbmRpZgorCisjaWYg
IWRlZmluZWQoRU5BQkxFX0NPTlRFWFRfTUVOVV9FVkVOVCkKKyNpZiAhUExBVEZPUk0oTUFDQ0FU
QUxZU1QpCisjZGVmaW5lIEVOQUJMRV9DT05URVhUX01FTlVfRVZFTlQgMAorI2VuZGlmCisjZW5k
aWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9DVVNUT01fQ1VSU09SX1NVUFBPUlQpCisjZGVmaW5l
IEVOQUJMRV9DVVNUT01fQ1VSU09SX1NVUFBPUlQgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChF
TkFCTEVfRFJBR19TVVBQT1JUKQorI2RlZmluZSBFTkFCTEVfRFJBR19TVVBQT1JUIDAKKyNlbmRp
ZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0dFT0xPQ0FUSU9OKQorI2RlZmluZSBFTkFCTEVfR0VP
TE9DQVRJT04gMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfSU5TUEVDVE9SX0FMVEVS
TkFURV9ESVNQQVRDSEVSUykKKyNkZWZpbmUgRU5BQkxFX0lOU1BFQ1RPUl9BTFRFUk5BVEVfRElT
UEFUQ0hFUlMgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfSU5TUEVDVE9SX1RFTEVN
RVRSWSkKKyNkZWZpbmUgRU5BQkxFX0lOU1BFQ1RPUl9URUxFTUVUUlkgMAorI2VuZGlmCisKKyNp
ZiAhZGVmaW5lZChFTkFCTEVfTEVUVEVSUFJFU1MpCisjZGVmaW5lIEVOQUJMRV9MRVRURVJQUkVT
UyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9BVVRPQ09SUkVDVCkKKyNkZWZpbmUg
RU5BQkxFX0FVVE9DT1JSRUNUIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0FVVE9D
QVBJVEFMSVpFKQorI2RlZmluZSBFTkFCTEVfQVVUT0NBUElUQUxJWkUgMQorI2VuZGlmCisKKyNp
ZiAhZGVmaW5lZChFTkFCTEVfSU9TX0dFU1RVUkVfRVZFTlRTKSAmJiBVU0UoQVBQTEVfSU5URVJO
QUxfU0RLKQorI2RlZmluZSBFTkFCTEVfSU9TX0dFU1RVUkVfRVZFTlRTIDEKKyNlbmRpZgorCisj
aWYgIWRlZmluZWQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykKKyNkZWZpbmUgRU5BQkxFX1RFWFRf
QVVUT1NJWklORyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9JT1NfVE9VQ0hfRVZF
TlRTKSAmJiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorI2RlZmluZSBFTkFCTEVfSU9TX1RPVUNI
X0VWRU5UUyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKQor
I2RlZmluZSBFTkFCTEVfTUVURVJfRUxFTUVOVCAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVO
QUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJKQorI2RlZmluZSBFTkFCTEVfTkVUU0NBUEVfUExVR0lO
X0FQSSAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9PUklFTlRBVElPTl9FVkVOVFMp
CisjZGVmaW5lIEVOQUJMRV9PUklFTlRBVElPTl9FVkVOVFMgMQorI2VuZGlmCisKKyNpZiAhZGVm
aW5lZChFTkFCTEVfUE9JTlRFUl9MT0NLKQorI2RlZmluZSBFTkFCTEVfUE9JTlRFUl9MT0NLIDAK
KyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpCisjZGVmaW5l
IEVOQUJMRV9SRU1PVEVfSU5TUEVDVE9SIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxF
X1RFWFRfQ0FSRVQpCisjZGVmaW5lIEVOQUJMRV9URVhUX0NBUkVUIDAKKyNlbmRpZgorCisjaWYg
IWRlZmluZWQoRU5BQkxFX1RFWFRfU0VMRUNUSU9OKQorI2RlZmluZSBFTkFCTEVfVEVYVF9TRUxF
Q1RJT04gMAorI2VuZGlmCisKKy8qIEZJWE1FOiBSZW1vdmUgdGhlIFVTRShBUFBMRV9JTlRFUk5B
TF9TREspIGNvbmp1bmN0IG9uY2Ugd2Ugc3VwcG9ydCB0b3VjaCBldmVudHMgd2hlbiBidWlsZGlu
ZyBhZ2FpbnN0Cit0aGUgcHVibGljIGlPUyBTREsuIFNlZSA8aHR0cHM6Ly93ZWJraXQub3JnL2Iv
MTc5MTY3Pi4gKi8KKyNpZiAhZGVmaW5lZChFTkFCTEVfVE9VQ0hfRVZFTlRTKSAmJiBVU0UoQVBQ
TEVfSU5URVJOQUxfU0RLKQorI2RlZmluZSBFTkFCTEVfVE9VQ0hfRVZFTlRTIDEKKyNlbmRpZgor
CisjaWYgIWRlZmluZWQoRU5BQkxFX1dFQl9BUkNISVZFKQorI2RlZmluZSBFTkFCTEVfV0VCX0FS
Q0hJVkUgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfV0VCR0wpCisjZGVmaW5lIEVO
QUJMRV9XRUJHTCAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9QUklNQVJZX1NOQVBT
SE9UVEVEX1BMVUdJTl9IRVVSSVNUSUMpCisjZGVmaW5lIEVOQUJMRV9QUklNQVJZX1NOQVBTSE9U
VEVEX1BMVUdJTl9IRVVSSVNUSUMgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfRE9X
TkxPQURfQVRUUklCVVRFKQorI2RlZmluZSBFTkFCTEVfRE9XTkxPQURfQVRUUklCVVRFIDEKKyNl
bmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1dLUERGVklFVykgJiYgUExBVEZPUk0oSU9TKQor
I2RlZmluZSBFTkFCTEVfV0tQREZWSUVXIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxF
X01FRElBX1NPVVJDRSkKKyNkZWZpbmUgRU5BQkxFX01FRElBX1NPVVJDRSAwCisjZW5kaWYKKwor
I2lmICFkZWZpbmVkKEVOQUJMRV9QUkVWSUVXX0NPTlZFUlRFUikgJiYgUExBVEZPUk0oSU9TKQor
I2RlZmluZSBFTkFCTEVfUFJFVklFV19DT05WRVJURVIgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5l
ZChFTkFCTEVfTUVUQV9WSUVXUE9SVCkKKyNkZWZpbmUgRU5BQkxFX01FVEFfVklFV1BPUlQgMQor
I2VuZGlmCisKKyNlbmRpZiAvKiBQTEFURk9STShJT1NfRkFNSUxZKSAqLworCisvKiAtLS0tLS0t
LS0gQXBwbGUgd2F0Y2hPUyBwb3J0IC0tLS0tLS0tLSAqLworI2lmIFBMQVRGT1JNKFdBVENIT1Mp
CisKKyNlbmRpZiAvKiBQTEFURk9STShXQVRDSE9TKSAqLworCisvKiAtLS0tLS0tLS0gQXBwbGUg
bWFjT1MgcG9ydCAobm90IGlPUykgLS0tLS0tLS0tICovCisjaWYgUExBVEZPUk0oTUFDKQorCisj
aWYgIWRlZmluZWQoRU5BQkxFX0NPTlRFTlRfRVhURU5TSU9OUykKKyNkZWZpbmUgRU5BQkxFX0NP
TlRFTlRfRVhURU5TSU9OUyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9GVUxMU0NS
RUVOX0FQSSkKKyNkZWZpbmUgRU5BQkxFX0ZVTExTQ1JFRU5fQVBJIDEKKyNlbmRpZgorCisjaWYg
IWRlZmluZWQoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpCisjZGVmaW5lIEVOQUJMRV9SRU1PVEVf
SU5TUEVDVE9SIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0lOU1BFQ1RPUl9BTFRF
Uk5BVEVfRElTUEFUQ0hFUlMpCisjZGVmaW5lIEVOQUJMRV9JTlNQRUNUT1JfQUxURVJOQVRFX0RJ
U1BBVENIRVJTIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0lOU1BFQ1RPUl9URUxF
TUVUUlkpCisjZGVmaW5lIEVOQUJMRV9JTlNQRUNUT1JfVEVMRU1FVFJZIDEKKyNlbmRpZgorCisj
aWYgIWRlZmluZWQoRU5BQkxFX1NNT09USF9TQ1JPTExJTkcpCisjZGVmaW5lIEVOQUJMRV9TTU9P
VEhfU0NST0xMSU5HIDEKKyNlbmRpZgorCisjaWYgRU5BQkxFKFZJREVPKQorI2lmICFkZWZpbmVk
KEVOQUJMRV9WSURFT19UUkFDSykKKyNkZWZpbmUgRU5BQkxFX1ZJREVPX1RSQUNLIDEKKyNlbmRp
ZgorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfV0VCX0FSQ0hJVkUpCisjZGVmaW5lIEVO
QUJMRV9XRUJfQVJDSElWRSAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJfQVVE
SU8pCisjZGVmaW5lIEVOQUJMRV9XRUJfQVVESU8gMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChF
TkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkpCisjZGVmaW5lIEVOQUJMRV9DVVJTT1JfVklTSUJJTElU
WSAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9QUklNQVJZX1NOQVBTSE9UVEVEX1BM
VUdJTl9IRVVSSVNUSUMpCisjZGVmaW5lIEVOQUJMRV9QUklNQVJZX1NOQVBTSE9UVEVEX1BMVUdJ
Tl9IRVVSSVNUSUMgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTUFDX0dFU1RVUkVf
RVZFTlRTKSAmJiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorI2RlZmluZSBFTkFCTEVfTUFDX0dF
U1RVUkVfRVZFTlRTIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1dFQlBST0NFU1Nf
TlNSVU5MT09QKQorI2RlZmluZSBFTkFCTEVfV0VCUFJPQ0VTU19OU1JVTkxPT1AgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE0MDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQo
RU5BQkxFX1dFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQorI2RlZmluZSBFTkFCTEVf
V0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcgRU5BQkxFX1dFQlBST0NFU1NfTlNSVU5M
T09QCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9NRURJQV9TT1VSQ0UpCisjZGVmaW5l
IEVOQUJMRV9NRURJQV9TT1VSQ0UgMQorI2VuZGlmCisKKyNlbmRpZiAvKiBQTEFURk9STShNQUMp
ICovCisKKy8qIC0tLS0tLS0tLSBBcHBsZSBDb2NvYSBwbGF0Zm9ybXMgLS0tLS0tLS0tICovCisK
KyNpZiBQTEFURk9STShDT0NPQSkKKworI2lmICFkZWZpbmVkKEVOQUJMRV9MRUdBQ1lfRU5DUllQ
VEVEX01FRElBKQorI2lmIFBMQVRGT1JNKE1BQ0NBVEFMWVNUKQorI2RlZmluZSBFTkFCTEVfTEVH
QUNZX0VOQ1JZUFRFRF9NRURJQSAwCisjZWxzZQorI2RlZmluZSBFTkFCTEVfTEVHQUNZX0VOQ1JZ
UFRFRF9NRURJQSAxCisjZW5kaWYKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0ZJTEVf
UkVQTEFDRU1FTlQpCisjZGVmaW5lIEVOQUJMRV9GSUxFX1JFUExBQ0VNRU5UIDEKKyNlbmRpZgor
CisjaWYgIWRlZmluZWQoRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCkKKyNkZWZpbmUgRU5BQkxFX1BB
WU1FTlRfUkVRVUVTVCAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9BU1lOQ19TQ1JP
TExJTkcpCisjZGVmaW5lIEVOQUJMRV9BU1lOQ19TQ1JPTExJTkcgMQorI2VuZGlmCisKKyNpZiAh
ZGVmaW5lZChFTkFCTEVfVUlfU0lERV9DT01QT1NJVElORykKKyNkZWZpbmUgRU5BQkxFX1VJX1NJ
REVfQ09NUE9TSVRJTkcgMQorI2VuZGlmCisKKyNlbmRpZiAvKiBQTEFURk9STShDT0NPQSkgKi8K
KworI2lmICFQTEFURk9STShDT0NPQSkKKworI2lmICFkZWZpbmVkKEpTQ19PQkpDX0FQSV9FTkFC
TEVEKQorI2RlZmluZSBKU0NfT0JKQ19BUElfRU5BQkxFRCAwCisjZW5kaWYKKworI2VuZGlmIC8q
ICFQTEFURk9STShDT0NPQSkgKi8KKworCisvKiAtLS0tLS0tLS0gQXBwbGUgV2luZG93cyBwb3J0
IC0tLS0tLS0tLSAqLworI2lmIFBMQVRGT1JNKFdJTikgJiYgIVBMQVRGT1JNKFdJTl9DQUlSTykK
KworI2lmICFkZWZpbmVkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkKKyNkZWZpbmUgRU5BQkxFX0ZV
TExTQ1JFRU5fQVBJIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1dFQl9BUkNISVZF
KQorI2RlZmluZSBFTkFCTEVfV0VCX0FSQ0hJVkUgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChF
TkFCTEVfV0VCR0wpCisjZGVmaW5lIEVOQUJMRV9XRUJHTCAwCisjZW5kaWYKKworI2lmICFkZWZp
bmVkKEVOQUJMRV9HRU9MT0NBVElPTikKKyNkZWZpbmUgRU5BQkxFX0dFT0xPQ0FUSU9OIDEKKyNl
bmRpZgorCisjZW5kaWYgLyogUExBVEZPUk0oV0lOKSAmJiAhUExBVEZPUk0oV0lOX0NBSVJPKSAq
LworCisvKiAtLS0tLS0tLS0gV2luZG93cyBDQUlSTyBwb3J0IC0tLS0tLS0tLSAqLworLyogUExB
VEZPUk0oV0lOX0NBSVJPKSBpcyBhIHNwZWNpYWxpemF0aW9uIG9mIFBMQVRGT1JNKFdJTikuICov
CisvKiBQTEFURk9STShXSU4pIGlzIGFsd2F5cyBlbmFibGVkIHdoZW4gUExBVEZPUk0oV0lOX0NB
SVJPKSBpcyBlbmFibGVkLiAqLworI2lmIFBMQVRGT1JNKFdJTl9DQUlSTykKKworI2lmICFkZWZp
bmVkKEVOQUJMRV9XRUJfQVJDSElWRSkKKyNkZWZpbmUgRU5BQkxFX1dFQl9BUkNISVZFIDEKKyNl
bmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1dFQkdMKQorI2RlZmluZSBFTkFCTEVfV0VCR0wg
MQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfR0VPTE9DQVRJT04pCisjZGVmaW5lIEVO
QUJMRV9HRU9MT0NBVElPTiAxCisjZW5kaWYKKworI2VuZGlmIC8qIFBMQVRGT1JNKFdJTl9DQUlS
TykgKi8KKworLyogRU5BQkxFIG1hY3JvIGRlZmF1bHRzIGZvciBXZWJDb3JlICovCisvKiBEbyBu
b3QgdXNlIFBMQVRGT1JNKCkgdGVzdHMgaW4gdGhpcyBzZWN0aW9uICEgKi8KKworI2lmICFkZWZp
bmVkKEVOQUJMRV8zRF9UUkFOU0ZPUk1TKQorI2RlZmluZSBFTkFCTEVfM0RfVFJBTlNGT1JNUyAw
CisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9BQ0NFU1NJQklMSVRZKQorI2RlZmluZSBF
TkFCTEVfQUNDRVNTSUJJTElUWSAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9BQ0NF
TEVSQVRFRF8yRF9DQU5WQVMpCisjZGVmaW5lIEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMg
MAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfT1ZFUkZMT1dfU0NST0xMSU5HX1RPVUNI
KQorI2RlZmluZSBFTkFCTEVfT1ZFUkZMT1dfU0NST0xMSU5HX1RPVUNIIDAKKyNlbmRpZgorCisj
aWYgIWRlZmluZWQoRU5BQkxFX0FQTkcpCisjZGVmaW5lIEVOQUJMRV9BUE5HIDEKKyNlbmRpZgor
CisjaWYgIWRlZmluZWQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKQorI2RlZmluZSBFTkFCTEVf
Q0hBTk5FTF9NRVNTQUdJTkcgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQ09OVEVO
VF9FWFRFTlNJT05TKQorI2RlZmluZSBFTkFCTEVfQ09OVEVOVF9FWFRFTlNJT05TIDAKKyNlbmRp
ZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0NPTlRFWFRfTUVOVVMpCisjZGVmaW5lIEVOQUJMRV9D
T05URVhUX01FTlVTIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0NPTlRFWFRfTUVO
VV9FVkVOVCkKKyNkZWZpbmUgRU5BQkxFX0NPTlRFWFRfTUVOVV9FVkVOVCAxCisjZW5kaWYKKwor
I2lmICFkZWZpbmVkKEVOQUJMRV9DU1MzX1RFWFQpCisjZGVmaW5lIEVOQUJMRV9DU1MzX1RFWFQg
MAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFL
KQorI2RlZmluZSBFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLIDEKKyNlbmRpZgorCisj
aWYgIWRlZmluZWQoRU5BQkxFX0NTU19ERVZJQ0VfQURBUFRBVElPTikKKyNkZWZpbmUgRU5BQkxF
X0NTU19ERVZJQ0VfQURBUFRBVElPTiAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9D
U1NfQ09NUE9TSVRJTkcpCisjZGVmaW5lIEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcgMAorI2VuZGlm
CisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pCisjZGVmaW5lIEVO
QUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTiAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJM
RV9DU1NfQ09OSUNfR1JBRElFTlRTKQorI2RlZmluZSBFTkFCTEVfQ1NTX0NPTklDX0dSQURJRU5U
UyAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9DVVNUT01fQ1VSU09SX1NVUFBPUlQp
CisjZGVmaW5lIEVOQUJMRV9DVVNUT01fQ1VSU09SX1NVUFBPUlQgMQorI2VuZGlmCisKKyNpZiAh
ZGVmaW5lZChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKQorI2RlZmluZSBFTkFCTEVfQ1VT
VE9NX1NDSEVNRV9IQU5ETEVSIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0RBUktf
TU9ERV9DU1MpCisjZGVmaW5lIEVOQUJMRV9EQVJLX01PREVfQ1NTIDAKKyNlbmRpZgorCisjaWYg
IWRlZmluZWQoRU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQpCisjZGVmaW5lIEVOQUJMRV9EQVRBTElT
VF9FTEVNRU5UIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0RFVklDRV9PUklFTlRB
VElPTikKKyNkZWZpbmUgRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTiAwCisjZW5kaWYKKworI2lm
ICFkZWZpbmVkKEVOQUJMRV9ET1dOTE9BRF9BVFRSSUJVVEUpCisjZGVmaW5lIEVOQUJMRV9ET1dO
TE9BRF9BVFRSSUJVVEUgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfRFJBR19TVVBQ
T1JUKQorI2RlZmluZSBFTkFCTEVfRFJBR19TVVBQT1JUIDEKKyNlbmRpZgorCisjaWYgIWRlZmlu
ZWQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSkKKyNkZWZpbmUgRU5BQkxFX0VOQ1JZUFRFRF9NRURJ
QSAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9GSUxURVJTX0xFVkVMXzIpCisjZGVm
aW5lIEVOQUJMRV9GSUxURVJTX0xFVkVMXzIgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFC
TEVfRlRQRElSKQorI2RlZmluZSBFTkFCTEVfRlRQRElSIDEKKyNlbmRpZgorCisjaWYgIWRlZmlu
ZWQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKQorI2RlZmluZSBFTkFCTEVfRlVMTFNDUkVFTl9BUEkg
MAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfR0FNRVBBRCkKKyNkZWZpbmUgRU5BQkxF
X0dBTUVQQUQgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfR0VPTE9DQVRJT04pCisj
ZGVmaW5lIEVOQUJMRV9HRU9MT0NBVElPTiAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJM
RV9JTkRFWEVEX0RBVEFCQVNFKQorI2RlZmluZSBFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSAwCisj
ZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktFUlMp
CisjZGVmaW5lIEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktFUlMgMAorI2VuZGlmCisK
KyNpZiAhZGVmaW5lZChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikKKyNkZWZpbmUgRU5BQkxFX0lO
UFVUX1RZUEVfQ09MT1IgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfSU5QVVRfVFlQ
RV9EQVRFKQorI2RlZmluZSBFTkFCTEVfSU5QVVRfVFlQRV9EQVRFIDAKKyNlbmRpZgorCisjaWYg
IWRlZmluZWQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVfSU5DT01QTEVURSkKKyNkZWZpbmUg
RU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVfSU5DT01QTEVURSAwCisjZW5kaWYKKworI2lmICFk
ZWZpbmVkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpCisjZGVmaW5lIEVOQUJMRV9J
TlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVf
SU5QVVRfVFlQRV9NT05USCkKKyNkZWZpbmUgRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEggMAorI2Vu
ZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKQorI2RlZmluZSBFTkFC
TEVfSU5QVVRfVFlQRV9USU1FIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0lOUFVU
X1RZUEVfV0VFSykKKyNkZWZpbmUgRU5BQkxFX0lOUFVUX1RZUEVfV0VFSyAwCisjZW5kaWYKKwor
I2lmIEVOQUJMRShJTlBVVF9UWVBFX0RBVEUpIHx8IEVOQUJMRShJTlBVVF9UWVBFX0RBVEVUSU1F
X0lOQ09NUExFVEUpIHx8IEVOQUJMRShJTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpIHx8IEVOQUJM
RShJTlBVVF9UWVBFX01PTlRIKSB8fCBFTkFCTEUoSU5QVVRfVFlQRV9USU1FKSB8fCBFTkFCTEUo
SU5QVVRfVFlQRV9XRUVLKQorI2lmICFkZWZpbmVkKEVOQUJMRV9EQVRFX0FORF9USU1FX0lOUFVU
X1RZUEVTKQorI2RlZmluZSBFTkFCTEVfREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUyAxCisjZW5k
aWYKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0lOU1BFQ1RPUl9BTFRFUk5BVEVfRElT
UEFUQ0hFUlMpCisjZGVmaW5lIEVOQUJMRV9JTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENIRVJT
IDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0lOU1BFQ1RPUl9URUxFTUVUUlkpCisj
ZGVmaW5lIEVOQUJMRV9JTlNQRUNUT1JfVEVMRU1FVFJZIDAKKyNlbmRpZgorCisjaWYgIWRlZmlu
ZWQoRU5BQkxFX0lOVEwpCisjZGVmaW5lIEVOQUJMRV9JTlRMIDAKKyNlbmRpZgorCisjaWYgIWRl
ZmluZWQoRU5BQkxFX0xBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCisjZGVmaW5lIEVOQUJMRV9M
QVlPVVRfRk9STUFUVElOR19DT05URVhUIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxF
X0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJWEVTKQorI2RlZmluZSBFTkFCTEVfTEVHQUNZX0NTU19W
RU5ET1JfUFJFRklYRVMgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTEVUVEVSUFJF
U1MpCisjZGVmaW5lIEVOQUJMRV9MRVRURVJQUkVTUyAwCisjZW5kaWYKKworI2lmICFkZWZpbmVk
KEVOQUJMRV9NQVRITUwpCisjZGVmaW5lIEVOQUJMRV9NQVRITUwgMQorI2VuZGlmCisKKyNpZiAh
ZGVmaW5lZChFTkFCTEVfTUVESUFfQ0FQVFVSRSkKKyNkZWZpbmUgRU5BQkxFX01FRElBX0NBUFRV
UkUgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBU
KQorI2RlZmluZSBFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBUIDAKKyNlbmRpZgorCisjaWYg
IWRlZmluZWQoRU5BQkxFX01FRElBX1NPVVJDRSkKKyNkZWZpbmUgRU5BQkxFX01FRElBX1NPVVJD
RSAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKQorI2Rl
ZmluZSBFTkFCTEVfTUVESUFfU1RBVElTVElDUyAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVO
QUJMRV9NRURJQV9TVFJFQU0pCisjZGVmaW5lIEVOQUJMRV9NRURJQV9TVFJFQU0gMAorI2VuZGlm
CisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTUVURVJfRUxFTUVOVCkKKyNkZWZpbmUgRU5BQkxFX01F
VEVSX0VMRU1FTlQgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTUhUTUwpCisjZGVm
aW5lIEVOQUJMRV9NSFRNTCAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9NT1VTRV9D
VVJTT1JfU0NBTEUpCisjZGVmaW5lIEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUgMAorI2VuZGlm
CisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTU9VU0VfRk9SQ0VfRVZFTlRTKQorI2RlZmluZSBFTkFC
TEVfTU9VU0VfRk9SQ0VfRVZFTlRTIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX05F
VFNDQVBFX1BMVUdJTl9BUEkpCisjZGVmaW5lIEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJIDEK
KyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9NRVRBREFUQV9D
QUNIRSkKKyNkZWZpbmUgRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9NRVRBREFUQV9DQUNIRSAwCisj
ZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9OT1RJRklDQVRJT05TKQorI2RlZmluZSBFTkFC
TEVfTk9USUZJQ0FUSU9OUyAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9PRkZTQ1JF
RU5fQ0FOVkFTKQorI2RlZmluZSBFTkFCTEVfT0ZGU0NSRUVOX0NBTlZBUyAwCisjZW5kaWYKKwor
I2lmICFkZWZpbmVkKEVOQUJMRV9PUklFTlRBVElPTl9FVkVOVFMpCisjZGVmaW5lIEVOQUJMRV9P
UklFTlRBVElPTl9FVkVOVFMgMAorI2VuZGlmCisKKyNpZiBPUyhXSU5ET1dTKQorI2lmICFkZWZp
bmVkKEVOQUJMRV9QQU5fU0NST0xMSU5HKQorI2RlZmluZSBFTkFCTEVfUEFOX1NDUk9MTElORyAx
CisjZW5kaWYKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCkK
KyNkZWZpbmUgRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCAwCisjZW5kaWYKKworI2lmICFkZWZpbmVk
KEVOQUJMRV9QT0lOVEVSX0xPQ0spCisjZGVmaW5lIEVOQUJMRV9QT0lOVEVSX0xPQ0sgMQorI2Vu
ZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfUVVPVEEpCisjZGVmaW5lIEVOQUJMRV9RVU9UQSAw
CisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9SRU1PVEVfSU5TUEVDVE9SKQorI2RlZmlu
ZSBFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUiAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJM
RV9SVUJCRVJfQkFORElORykKKyNkZWZpbmUgRU5BQkxFX1JVQkJFUl9CQU5ESU5HIDAKKyNlbmRp
ZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1NFQ1VSSVRZX0FTU0VSVElPTlMpCisvKiBFbmFibGUg
c2VjdXJpdHkgYXNzZXJ0aW9ucyBvbiBhbGwgQVNBTiBidWlsZHMgYW5kIGRlYnVnIGJ1aWxkcy4g
Ki8KKyNpZiBBU0FOX0VOQUJMRUQgfHwgIWRlZmluZWQoTkRFQlVHKQorI2RlZmluZSBFTkFCTEVf
U0VDVVJJVFlfQVNTRVJUSU9OUyAxCisjZW5kaWYKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5B
QkxFX1NNT09USF9TQ1JPTExJTkcpCisjZGVmaW5lIEVOQUJMRV9TTU9PVEhfU0NST0xMSU5HIDAK
KyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpCisjZGVmaW5l
IEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxF
X1NQRUxMQ0hFQ0spCisjZGVmaW5lIEVOQUJMRV9TUEVMTENIRUNLIDAKKyNlbmRpZgorCisjaWYg
IWRlZmluZWQoRU5BQkxFX1NUUkVBTVNfQVBJKQorI2RlZmluZSBFTkFCTEVfU1RSRUFNU19BUEkg
MQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfU1ZHX0ZPTlRTKQorI2RlZmluZSBFTkFC
TEVfU1ZHX0ZPTlRTIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1RFWFRfQ0FSRVQp
CisjZGVmaW5lIEVOQUJMRV9URVhUX0NBUkVUIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5B
QkxFX1RFWFRfU0VMRUNUSU9OKQorI2RlZmluZSBFTkFCTEVfVEVYVF9TRUxFQ1RJT04gMQorI2Vu
ZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQVNZTkNfU0NST0xMSU5HKQorI2RlZmluZSBFTkFC
TEVfQVNZTkNfU0NST0xMSU5HIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1RPVUNI
X0VWRU5UUykKKyNkZWZpbmUgRU5BQkxFX1RPVUNIX0VWRU5UUyAwCisjZW5kaWYKKworI2lmICFk
ZWZpbmVkKEVOQUJMRV9WSURFTykKKyNkZWZpbmUgRU5BQkxFX1ZJREVPIDAKKyNlbmRpZgorCisj
aWYgIWRlZmluZWQoRU5BQkxFX1ZJREVPX1RSQUNLKQorI2RlZmluZSBFTkFCTEVfVklERU9fVFJB
Q0sgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfREFUQUNVRV9WQUxVRSkKKyNkZWZp
bmUgRU5BQkxFX0RBVEFDVUVfVkFMVUUgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVf
V0VCR0wpCisjZGVmaW5lIEVOQUJMRV9XRUJHTCAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVO
QUJMRV9HUkFQSElDU19DT05URVhUX0dMKQorI2RlZmluZSBFTkFCTEVfR1JBUEhJQ1NfQ09OVEVY
VF9HTCBFTkFCTEVfV0VCR0wKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1dFQl9BUkNI
SVZFKQorI2RlZmluZSBFTkFCTEVfV0VCX0FSQ0hJVkUgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5l
ZChFTkFCTEVfV0VCX0FVRElPKQorI2RlZmluZSBFTkFCTEVfV0VCX0FVRElPIDAKKyNlbmRpZgor
CisjaWYgIWRlZmluZWQoRU5BQkxFX1hTTFQpCisjZGVmaW5lIEVOQUJMRV9YU0xUIDEKKyNlbmRp
ZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0RBVEFfSU5URVJBQ1RJT04pCisjZGVmaW5lIEVOQUJM
RV9EQVRBX0lOVEVSQUNUSU9OIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1NFUlZJ
Q0VfV09SS0VSKQorI2RlZmluZSBFTkFCTEVfU0VSVklDRV9XT1JLRVIgMQorI2VuZGlmCisKKwor
LyogSklUIEZlYXR1cmVzICovCisKKy8qIFRoZSBKSVQgaXMgZW5hYmxlZCBieSBkZWZhdWx0IG9u
IGFsbCB4ODYtNjQgJiBBUk02NCBwbGF0Zm9ybXMuICovCisjaWYgIWRlZmluZWQoRU5BQkxFX0pJ
VCkgJiYgKENQVShYODZfNjQpIHx8IENQVShBUk02NCkpICYmICFDUFUoQVBQTEVfQVJNVjdLKQor
I2RlZmluZSBFTkFCTEVfSklUIDEKKyNlbmRpZgorCisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyNp
ZiAoQ1BVKEFSTV9USFVNQjIpIHx8IENQVShNSVBTKSkgJiYgT1MoTElOVVgpCisvKiBPbiBBUk12
NyBhbmQgTUlQUyBvbiBMaW51eCB0aGUgSklUIGlzIGVuYWJsZWQgdW5sZXNzIGV4cGxpY2l0bHkg
ZGlzYWJsZWQuICovCisjaWYgIWRlZmluZWQoRU5BQkxFX0pJVCkKKyNkZWZpbmUgRU5BQkxFX0pJ
VCAxCisjZW5kaWYKKyNlbHNlCisvKiBEaXNhYmxlIEpJVCBhbmQgZm9yY2UgQ19MT09QIG9uIGFs
bCBvdGhlciAzMmJpdCBhcmNoaXRlY3R1cmVzLiAqLworI3VuZGVmIEVOQUJMRV9KSVQKKyNkZWZp
bmUgRU5BQkxFX0pJVCAwCisjdW5kZWYgRU5BQkxFX0NfTE9PUAorI2RlZmluZSBFTkFCTEVfQ19M
T09QIDEKKyNlbmRpZgorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQ19MT09QKQorI2lm
IEVOQUJMRShKSVQpIHx8IENQVShYODZfNjQpIHx8IChDUFUoQVJNNjQpICYmICFkZWZpbmVkKF9f
SUxQMzJfXykpCisjZGVmaW5lIEVOQUJMRV9DX0xPT1AgMAorI2Vsc2UKKyNkZWZpbmUgRU5BQkxF
X0NfTE9PUCAxCisjZW5kaWYKKyNlbmRpZgorCisvKiBGSVhNRTogVGhpcyBzaG91bGQgYmUgdHVy
bmVkIGludG8gYW4gI2Vycm9yIGludmFyaWFudCAqLworLyogVGhlIEZUTCAqZG9lcyBub3QqIHdv
cmsgb24gMzItYml0IHBsYXRmb3Jtcy4gRGlzYWJsZSBpdCBldmVuIGlmIHNvbWVvbmUgYXNrZWQg
dXMgdG8gZW5hYmxlIGl0LiAqLworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisjdW5kZWYgRU5BQkxF
X0ZUTF9KSVQKKyNkZWZpbmUgRU5BQkxFX0ZUTF9KSVQgMAorI2VuZGlmCisKKy8qIEZJWE1FOiBU
aGlzIHNob3VsZCBiZSB0dXJuZWQgaW50byBhbiAjZXJyb3IgaW52YXJpYW50ICovCisvKiBUaGUg
RlRMIGlzIGRpc2FibGVkIG9uIHRoZSBpT1Mgc2ltdWxhdG9yLCBtb3N0bHkgZm9yIHNpbXBsaWNp
dHkuICovCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWV9TSU1VTEFUT1IpCisjdW5kZWYgRU5BQkxF
X0ZUTF9KSVQKKyNkZWZpbmUgRU5BQkxFX0ZUTF9KSVQgMAorI2VuZGlmCisKKy8qIElmIHBvc3Np
YmxlLCB0cnkgdG8gZW5hYmxlIGEgZGlzYXNzZW1ibGVyLiBUaGlzIGlzIG9wdGlvbmFsLiBXZSBw
cm9jZWVkIGluIHR3bworICAgc3RlcHM6IGZpcnN0IHdlIHRyeSB0byBmaW5kIHNvbWUgZGlzYXNz
ZW1ibGVyIHRoYXQgd2UgY2FuIHVzZSwgYW5kIHRoZW4gd2UKKyAgIGRlY2lkZSBpZiB0aGUgaGln
aC1sZXZlbCBkaXNhc3NlbWJsZXIgQVBJIGNhbiBiZSBlbmFibGVkLiAqLworI2lmICFkZWZpbmVk
KEVOQUJMRV9VRElTODYpICYmIEVOQUJMRShKSVQpICYmIENQVShYODZfNjQpICYmICFVU0UoQ0FQ
U1RPTkUpCisjZGVmaW5lIEVOQUJMRV9VRElTODYgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChF
TkFCTEVfQVJNNjRfRElTQVNTRU1CTEVSKSAmJiBFTkFCTEUoSklUKSAmJiBDUFUoQVJNNjQpICYm
ICFVU0UoQ0FQU1RPTkUpCisjZGVmaW5lIEVOQUJMRV9BUk02NF9ESVNBU1NFTUJMRVIgMQorI2Vu
ZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfRElTQVNTRU1CTEVSKSAmJiAoRU5BQkxFKFVESVM4
NikgfHwgRU5BQkxFKEFSTTY0X0RJU0FTU0VNQkxFUikgfHwgKEVOQUJMRShKSVQpICYmIFVTRShD
QVBTVE9ORSkpKQorI2RlZmluZSBFTkFCTEVfRElTQVNTRU1CTEVSIDEKKyNlbmRpZgorCisjaWYg
IWRlZmluZWQoRU5BQkxFX0RGR19KSVQpICYmIEVOQUJMRShKSVQpCisKKy8qIEVuYWJsZSB0aGUg
REZHIEpJVCBvbiBYODYgYW5kIFg4Nl82NC4gKi8KKyNpZiBDUFUoWDg2XzY0KSAmJiAoT1MoREFS
V0lOKSB8fCBPUyhMSU5VWCkgfHwgT1MoRlJFRUJTRCkgfHwgT1MoSFVSRCkgfHwgT1MoV0lORE9X
UykpCisjZGVmaW5lIEVOQUJMRV9ERkdfSklUIDEKKyNlbmRpZgorCisvKiBFbmFibGUgdGhlIERG
RyBKSVQgb24gQVJNdjcuICBPbmx5IHRlc3RlZCBvbiBpT1MsIExpbnV4LCBhbmQgRnJlZUJTRC4g
Ki8KKyNpZiAoQ1BVKEFSTV9USFVNQjIpIHx8IENQVShBUk02NCkpICYmIChPUyhEQVJXSU4pIHx8
IE9TKExJTlVYKSB8fCBPUyhGUkVFQlNEKSkKKyNkZWZpbmUgRU5BQkxFX0RGR19KSVQgMQorI2Vu
ZGlmCisKKy8qIEVuYWJsZSB0aGUgREZHIEpJVCBvbiBNSVBTLiAqLworI2lmIENQVShNSVBTKQor
I2RlZmluZSBFTkFCTEVfREZHX0pJVCAxCisjZW5kaWYKKworI2VuZGlmIC8qICFkZWZpbmVkKEVO
QUJMRV9ERkdfSklUKSAmJiBFTkFCTEUoSklUKSAqLworCisvKiBDb25jdXJyZW50IEpTIG9ubHkg
d29ya3Mgb24gNjQtYml0IHBsYXRmb3JtcyBiZWNhdXNlIGl0IHJlcXVpcmVzIHRoYXQKKyAgIHZh
bHVlcyBnZXQgc3RvcmVkIHRvIGF0b21pY2FsbHkuIFRoaXMgaXMgdHJpdmlhbGx5IHRydWUgb24g
NjQtYml0IHBsYXRmb3JtcywKKyAgIGJ1dCBub3QgdHJ1ZSBhdCBhbGwgb24gMzItYml0IHBsYXRm
b3JtcyB3aGVyZSB2YWx1ZXMgYXJlIGNvbXBvc2VkIG9mIHR3bworICAgc2VwYXJhdGUgc3ViLXZh
bHVlcy4gKi8KKyNpZiBFTkFCTEUoSklUKSAmJiBVU0UoSlNWQUxVRTY0KQorI2RlZmluZSBFTkFC
TEVfQ09OQ1VSUkVOVF9KUyAxCisjZW5kaWYKKworI2lmIChDUFUoWDg2XzY0KSB8fCBDUFUoQVJN
NjQpKSAmJiBIQVZFKEZBU1RfVExTKQorI2RlZmluZSBFTkFCTEVfRkFTVF9UTFNfSklUIDEKKyNl
bmRpZgorCisjaWYgRU5BQkxFKEpJVCkgJiYgKENQVShYODYpIHx8IENQVShYODZfNjQpIHx8IENQ
VShBUk1fVEhVTUIyKSB8fCBDUFUoQVJNNjQpIHx8IENQVShNSVBTKSkKKyNkZWZpbmUgRU5BQkxF
X01BU01fUFJPQkUgMQorI2VuZGlmCisKKy8qIEZJWE1FOiBUaGlzIHNob3VsZCBiZSB0dXJuZWQg
aW50byBhbiAjZXJyb3IgaW52YXJpYW50ICovCisvKiBJZiB0aGUgYmFzZWxpbmUgaml0IGlzIG5v
dCBhdmFpbGFibGUsIHRoZW4gZGlzYWJsZSB1cHBlciB0aWVycyBhcyB3ZWxsLgorICAgVGhlIE1h
Y3JvQXNzZW1ibGVyOjpwcm9iZSgpIGlzIGFsc28gcmVxdWlyZWQgZm9yIHN1cHBvcnRpbmcgdGhl
IHVwcGVyIHRpZXJzLiAqLworI2lmICFFTkFCTEUoSklUKSB8fCAhRU5BQkxFKE1BU01fUFJPQkUp
CisjdW5kZWYgRU5BQkxFX0RGR19KSVQKKyN1bmRlZiBFTkFCTEVfRlRMX0pJVAorI2RlZmluZSBF
TkFCTEVfREZHX0pJVCAwCisjZGVmaW5lIEVOQUJMRV9GVExfSklUIDAKKyNlbmRpZgorCisvKiBG
SVhNRTogVGhpcyBzaG91bGQgYmUgdHVybmVkIGludG8gYW4gI2Vycm9yIGludmFyaWFudCAqLwor
LyogSWYgdGhlIERGRyBqaXQgaXMgbm90IGF2YWlsYWJsZSwgdGhlbiBkaXNhYmxlIHVwcGVyIHRp
ZXJzIGFzIHdlbGw6ICovCisjaWYgIUVOQUJMRShERkdfSklUKQorI3VuZGVmIEVOQUJMRV9GVExf
SklUCisjZGVmaW5lIEVOQUJMRV9GVExfSklUIDAKKyNlbmRpZgorCisvKiBUaGlzIGNvbnRyb2xz
IHdoZXRoZXIgQjMgaXMgYnVpbHQuIEIzIGlzIG5lZWRlZCBmb3IgRlRMIEpJVCBhbmQgV2ViQXNz
ZW1ibHkgKi8KKyNpZiBFTkFCTEUoRlRMX0pJVCkKKyNkZWZpbmUgRU5BQkxFX0IzX0pJVCAxCisj
ZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJBU1NFTUJMWSkgJiYgKEVOQUJMRShCM19K
SVQpICYmIFBMQVRGT1JNKENPQ09BKSAmJiBDUFUoQUREUkVTUzY0KSkKKyNkZWZpbmUgRU5BQkxF
X1dFQkFTU0VNQkxZIDEKKyNlbmRpZgorCisvKiBUaGUgU2FtcGxpbmdQcm9maWxlciBpcyB0aGUg
cHJvYmFiaWxpc3RpYyBhbmQgbG93LW92ZXJoZWFkIHByb2ZpbGVyIHVzZWQgYnkKKyAqIEpTQyB0
byBtZWFzdXJlIHdoZXJlIHRpbWUgaXMgc3BlbnQgaW5zaWRlIGEgSmF2YVNjcmlwdCBwcm9ncmFt
LgorICogSW4gY29uZmlndXJhdGlvbnMgb3RoZXIgdGhhbiBXaW5kb3dzIGFuZCBEYXJ3aW4sIGJl
Y2F1c2UgbGF5b3V0IG9mIG1jb250ZXh0X3QgZGVwZW5kcyBvbiBzdGFuZGFyZCBsaWJyYXJpZXMg
KGxpa2UgZ2xpYmMpLAorICogc2FtcGxpbmcgcHJvZmlsZXIgaXMgZW5hYmxlZCBpZiBXZWJLaXQg
dXNlcyBwdGhyZWFkcyBhbmQgZ2xpYmMuICovCisjaWYgIWRlZmluZWQoRU5BQkxFX1NBTVBMSU5H
X1BST0ZJTEVSKSAmJiAoIUVOQUJMRShDX0xPT1ApICYmIChPUyhXSU5ET1dTKSB8fCBIQVZFKE1B
Q0hJTkVfQ09OVEVYVCkpKQorI2RlZmluZSBFTkFCTEVfU0FNUExJTkdfUFJPRklMRVIgMQorI2Vu
ZGlmCisKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpICYmIEhBVkUoTUFDSElORV9DT05URVhUKQor
I2RlZmluZSBFTkFCTEVfV0VCQVNTRU1CTFlfRkFTVF9NRU1PUlkgMQorI2VuZGlmCisKKy8qIENv
dW50cyB1c2VzIG9mIHdyaXRlIGJhcnJpZXJzIHVzaW5nIHNhbXBsaW5nIGNvdW50ZXJzLiBCZSBz
dXJlIHRvIGFsc28KKyAgIHNldCBFTkFCTEVfU0FNUExJTkdfQ09VTlRFUlMgdG8gMS4gKi8KKyNp
ZiAhZGVmaW5lZChFTkFCTEVfV1JJVEVfQkFSUklFUl9QUk9GSUxJTkcpCisjZGVmaW5lIEVOQUJM
RV9XUklURV9CQVJSSUVSX1BST0ZJTElORyAwCisjZW5kaWYKKworLyogTG9ncyBhbGwgYWxsb2Nh
dGlvbi1yZWxhdGVkIGFjdGl2aXR5IHRoYXQgZ29lcyB0aHJvdWdoIGZhc3RNYWxsb2Mgb3IgdGhl
CisgICBKU0MgR0MgKGJvdGggY2VsbHMgYW5kIGJ1dHRlcmZsaWVzKS4gQWxzbyBsb2dzIG1hcmtp
bmcuIE5vdGUgdGhhdCB0aGlzCisgICBpc24ndCBhIGNvbXBsZXRlbHkgYWNjdXJhdGUgdmlldyBv
ZiB0aGUgaGVhcCBzaW5jZSBpdCBkb2Vzbid0IGluY2x1ZGUgYWxsCisgICBidXR0ZXJmbHkgcmVz
aXplIG9wZXJhdGlvbnMsIGRvZXNuJ3QgdGVsbCB5b3Ugd2hhdCBpcyBnb2luZyBvbiB3aXRoIHdl
YWsKKyAgIHJlZmVyZW5jZXMgKG90aGVyIHRoYW4gdG8gdGVsbCB5b3Ugd2hlbiB0aGV5J3JlIG1h
cmtlZCksIGFuZCBkb2Vzbid0CisgICB0cmFjayBkaXJlY3QgbW1hcCgpIGFsbG9jYXRpb25zIG9y
IHRoaW5ncyBsaWtlIEpJVCBhbGxvY2F0aW9uLiAqLworI2lmICFkZWZpbmVkKEVOQUJMRV9BTExP
Q0FUSU9OX0xPR0dJTkcpCisjZGVmaW5lIEVOQUJMRV9BTExPQ0FUSU9OX0xPR0dJTkcgMAorI2Vu
ZGlmCisKKy8qIEVuYWJsZSB2ZXJpZmljYXRpb24gdGhhdCB0aGF0IHJlZ2lzdGVyIGFsbG9jYXRp
b25zIGFyZSBub3QgbWFkZSB3aXRoaW4gZ2VuZXJhdGVkIGNvbnRyb2wgZmxvdy4KKyAgIFR1cm5l
ZCBvbiBmb3IgZGVidWcgYnVpbGRzLiAqLworI2lmICFkZWZpbmVkKEVOQUJMRV9ERkdfUkVHSVNU
RVJfQUxMT0NBVElPTl9WQUxJREFUSU9OKSAmJiBFTkFCTEUoREZHX0pJVCkgJiYgIWRlZmluZWQo
TkRFQlVHKQorI2RlZmluZSBFTkFCTEVfREZHX1JFR0lTVEVSX0FMTE9DQVRJT05fVkFMSURBVElP
TiAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9TRVBBUkFURURfV1hfSEVBUCkgJiYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgQ1BVKEFSTTY0KSAmJiAoIUVOQUJMRShGQVNUX0pJVF9Q
RVJNSVNTSU9OUykgfHwgIUNQVShBUk02NEUpKQorI2RlZmluZSBFTkFCTEVfU0VQQVJBVEVEX1dY
X0hFQVAgMQorI2VuZGlmCisKKy8qIERldGVybWluZSBpZiB3ZSBuZWVkIHRvIGVuYWJsZSBDb21w
dXRlZCBHb3RvIE9wY29kZXMgb3Igbm90OiAqLworI2lmIEhBVkUoQ09NUFVURURfR09UTykgfHwg
IUVOQUJMRShDX0xPT1ApCisjZGVmaW5lIEVOQUJMRV9DT01QVVRFRF9HT1RPX09QQ09ERVMgMQor
I2VuZGlmCisKKy8qIFJlZ3VsYXIgRXhwcmVzc2lvbiBUcmFjaW5nIC0gU2V0IHRvIDEgdG8gdHJh
Y2UgUmVnRXhwJ3MgaW4ganNjLiAgUmVzdWx0cyBkdW1wZWQgYXQgZXhpdCAqLworI2lmICFkZWZp
bmVkKEVOQUJMRV9SRUdFWFBfVFJBQ0lORykKKyNkZWZpbmUgRU5BQkxFX1JFR0VYUF9UUkFDSU5H
IDAKKyNlbmRpZgorCisvKiBZZXQgQW5vdGhlciBSZWdleCBSdW50aW1lIC0gdHVybmVkIG9uIGJ5
IGRlZmF1bHQgZm9yIEpJVCBlbmFibGVkIHBvcnRzLiAqLworI2lmICFkZWZpbmVkKEVOQUJMRV9Z
QVJSX0pJVCkgJiYgRU5BQkxFKEpJVCkKKyNkZWZpbmUgRU5BQkxFX1lBUlJfSklUIDEKKyNlbmRp
ZgorCisvKiBTZXR0aW5nIHRoaXMgZmxhZyBjb21wYXJlcyBKSVQgcmVzdWx0cyB3aXRoIGludGVy
cHJldGVyIHJlc3VsdHMuICovCisjaWYgIWRlZmluZWQoRU5BQkxFX1lBUlJfSklUKSAmJiBFTkFC
TEUoSklUKQorI2RlZmluZSBFTkFCTEVfWUFSUl9KSVRfREVCVUcgMAorI2VuZGlmCisKKy8qIEVu
YWJsZSBKSVQnaW5nIFJlZ3VsYXIgRXhwcmVzc2lvbnMgdGhhdCBoYXZlIG5lc3RlZCBwYXJlbnRo
ZXNpcyAuICovCisjaWYgRU5BQkxFKFlBUlJfSklUKSAmJiAoQ1BVKEFSTTY0KSB8fCAoQ1BVKFg4
Nl82NCkgJiYgIU9TKFdJTkRPV1MpKSkKKyNkZWZpbmUgRU5BQkxFX1lBUlJfSklUX0FMTF9QQVJF
TlNfRVhQUkVTU0lPTlMgMQorI2VuZGlmCisKKy8qIEVuYWJsZSBKSVQnaW5nIFJlZ3VsYXIgRXhw
cmVzc2lvbnMgdGhhdCBoYXZlIG5lc3RlZCBiYWNrIHJlZmVyZW5jZXMuICovCisjaWYgRU5BQkxF
KFlBUlJfSklUKSAmJiAoQ1BVKEFSTTY0KSB8fCAoQ1BVKFg4Nl82NCkgJiYgIU9TKFdJTkRPV1Mp
KSkKKyNkZWZpbmUgRU5BQkxFX1lBUlJfSklUX0JBQ0tSRUZFUkVOQ0VTIDEKKyNlbmRpZgorCisv
KiBJZiBlaXRoZXIgdGhlIEpJVCBvciB0aGUgUmVnRXhwIEpJVCBpcyBlbmFibGVkLCB0aGVuIHRo
ZSBBc3NlbWJsZXIgbXVzdCBiZQorICAgZW5hYmxlZCBhcyB3ZWxsOiAqLworI2lmIEVOQUJMRShK
SVQpIHx8IEVOQUJMRShZQVJSX0pJVCkgfHwgIUVOQUJMRShDX0xPT1ApCisjaWYgZGVmaW5lZChF
TkFCTEVfQVNTRU1CTEVSKSAmJiAhRU5BQkxFX0FTU0VNQkxFUgorI2Vycm9yICJDYW5ub3QgZW5h
YmxlIHRoZSBKSVQgb3IgUmVnRXhwIEpJVCB3aXRob3V0IGVuYWJsaW5nIHRoZSBBc3NlbWJsZXIi
CisjZWxzZQorI3VuZGVmIEVOQUJMRV9BU1NFTUJMRVIKKyNkZWZpbmUgRU5BQkxFX0FTU0VNQkxF
UiAxCisjZW5kaWYKKyNlbmRpZgorCisvKiBJZiB0aGUgRGlzYXNzZW1ibGVyIGlzIGVuYWJsZWQs
IHRoZW4gdGhlIEFzc2VtYmxlciBtdXN0IGJlIGVuYWJsZWQgYXMgd2VsbDogKi8KKyNpZiBFTkFC
TEUoRElTQVNTRU1CTEVSKQorI2lmIGRlZmluZWQoRU5BQkxFX0FTU0VNQkxFUikgJiYgIUVOQUJM
RV9BU1NFTUJMRVIKKyNlcnJvciAiQ2Fubm90IGVuYWJsZSB0aGUgRGlzYXNzZW1ibGVyIHdpdGhv
dXQgZW5hYmxpbmcgdGhlIEFzc2VtYmxlciIKKyNlbHNlCisjdW5kZWYgRU5BQkxFX0FTU0VNQkxF
UgorI2RlZmluZSBFTkFCTEVfQVNTRU1CTEVSIDEKKyNlbmRpZgorI2VuZGlmCisKKyNpZiAhZGVm
aW5lZChFTkFCTEVfRVhDRVBUSU9OX1NDT1BFX1ZFUklGSUNBVElPTikKKyNkZWZpbmUgRU5BQkxF
X0VYQ0VQVElPTl9TQ09QRV9WRVJJRklDQVRJT04gQVNTRVJUX0VOQUJMRUQKKyNlbmRpZgorCisj
aWYgRU5BQkxFKERGR19KSVQpICYmIEhBVkUoTUFDSElORV9DT05URVhUKSAmJiAoQ1BVKFg4Nl82
NCkgfHwgQ1BVKEFSTTY0KSkKKyNkZWZpbmUgRU5BQkxFX1NJR05BTF9CQVNFRF9WTV9UUkFQUyAx
CisjZW5kaWYKKworLyogQ1NTIFNlbGVjdG9yIEpJVCBDb21waWxlciAqLworI2lmICFkZWZpbmVk
KEVOQUJMRV9DU1NfU0VMRUNUT1JfSklUKSAmJiAoKENQVShYODZfNjQpIHx8IENQVShBUk02NCkg
fHwgKENQVShBUk1fVEhVTUIyKSAmJiBPUyhEQVJXSU4pKSkgJiYgRU5BQkxFKEpJVCkgJiYgKE9T
KERBUldJTikgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpKSkKKyNkZWZpbmUgRU5B
QkxFX0NTU19TRUxFQ1RPUl9KSVQgMQorI2VuZGlmCisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYg
IVBMQVRGT1JNKFdBVENIT1MpICYmICFQTEFURk9STShBUFBMRVRWKSAmJiAhUExBVEZPUk0oTUFD
Q0FUQUxZU1QpCisjZGVmaW5lIEVOQUJMRV9EQVRBX0RFVEVDVElPTiAxCisjZW5kaWYKKworI2lm
IENQVShBUk1fVEhVTUIyKSB8fCBDUFUoQVJNNjQpCisjZGVmaW5lIEVOQUJMRV9CUkFOQ0hfQ09N
UEFDVElPTiAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9USFJFQURJTkdfTElCRElT
UEFUQ0gpICYmIEhBVkUoRElTUEFUQ0hfSCkKKyNkZWZpbmUgRU5BQkxFX1RIUkVBRElOR19MSUJE
SVNQQVRDSCAxCisjZWxpZiAhZGVmaW5lZChFTkFCTEVfVEhSRUFESU5HX09QRU5NUCkgJiYgZGVm
aW5lZChfT1BFTk1QKQorI2RlZmluZSBFTkFCTEVfVEhSRUFESU5HX09QRU5NUCAxCisjZWxpZiAh
ZGVmaW5lZChUSFJFQURJTkdfR0VORVJJQykKKyNkZWZpbmUgRU5BQkxFX1RIUkVBRElOR19HRU5F
UklDIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0dDX1ZBTElEQVRJT04pICYmICFk
ZWZpbmVkKE5ERUJVRykKKyNkZWZpbmUgRU5BQkxFX0dDX1ZBTElEQVRJT04gMQorI2VuZGlmCisK
KyNpZiAhZGVmaW5lZChFTkFCTEVfQklORElOR19JTlRFR1JJVFkpICYmICFPUyhXSU5ET1dTKQor
I2RlZmluZSBFTkFCTEVfQklORElOR19JTlRFR1JJVFkgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5l
ZChFTkFCTEVfVFJFRV9ERUJVR0dJTkcpICYmICFkZWZpbmVkKE5ERUJVRykKKyNkZWZpbmUgRU5B
QkxFX1RSRUVfREVCVUdHSU5HIDEKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisjZGVm
aW5lIEVOQUJMRV9SRVNPVVJDRV9VU0FHRSAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJM
RV9PUEVOVFlQRV9WRVJUSUNBTCkgJiYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCisj
ZGVmaW5lIEVOQUJMRV9PUEVOVFlQRV9WRVJUSUNBTCAxCisjZW5kaWYKKworI2lmICFkZWZpbmVk
KEVOQUJMRV9PUEVOVFlQRV9NQVRIKSAmJiAoT1MoREFSV0lOKSAmJiBVU0UoQ0cpKSB8fCAoVVNF
KEZSRUVUWVBFKSAmJiAhUExBVEZPUk0oR1RLKSkgfHwgKFBMQVRGT1JNKFdJTikgJiYgKFVTRShD
RykgfHwgVVNFKENBSVJPKSkpCisjZGVmaW5lIEVOQUJMRV9PUEVOVFlQRV9NQVRIIDEKKyNlbmRp
ZgorCisvKgorICogRW5hYmxlIHRoaXMgdG8gcHV0IGVhY2ggSXNvSGVhcCBhbmQgb3RoZXIgYWxs
b2NhdGlvbiBjYXRlZ29yaWVzIGludG8gdGhlaXIgb3duIG1hbGxvYyBoZWFwcywgc28gdGhhdCB0
b29scyBsaWtlIHZtbWFwIGNhbiBzaG93IGhvdyBiaWcgZWFjaCBoZWFwIGlzLgorICogVHVybiBC
RU5BQkxFX01BTExPQ19IRUFQX0JSRUFLRE9XTiBvbiBpbiBibWFsbG9jIHRvZ2V0aGVyIHdoZW4g
dXNpbmcgdGhpcy4KKyAqLworI2lmICFkZWZpbmVkKEVOQUJMRV9NQUxMT0NfSEVBUF9CUkVBS0RP
V04pCisjZGVmaW5lIEVOQUJMRV9NQUxMT0NfSEVBUF9CUkVBS0RPV04gMAorI2VuZGlmCisKKy8q
IERpc2FibGUgU2hhcmVkQXJyYXlCdWZmZXJzIHVudGlsIFNwZWN0cmUgc2VjdXJpdHkgY29uY2Vy
bnMgYXJlIG1pdGlnYXRlZC4gKi8KKyNkZWZpbmUgRU5BQkxFX1NIQVJFRF9BUlJBWV9CVUZGRVIg
MAorCisjaWYgUExBVEZPUk0oTUFDKQorI2RlZmluZSBFTkFCTEVfV0VCX1BMQVlCQUNLX0NPTlRS
T0xTX01BTkFHRVIgMQorI2VuZGlmCisKKyNpZiBQTEFURk9STShDT0NPQSkKKy8qIEZJWE1FOiBU
aGlzIGlzIGEgVVNFIHN0eWxlIG1hY3JvLCBhcyBpdCB0cmlnZ2VycyB0aGUgdXNlIG9mIENGVVJM
Q29ubmVjdGlvbiBmcmFtZXdvcmsgc3R1YnMuICovCisvKiBGSVhNRTogSXMgdGhpcyBzdGlsbCBu
ZWNlc3Nhcnk/IENGVVJMQ29ubmVjdGlvbiBpc24ndCB1c2VkIG9uIENvY29hIHBsYXRmb3JtcyBh
bnkgbW9yZS4gKi8KKyNkZWZpbmUgRU5BQkxFX1NFQ19JVEVNX1NISU0gMQorI2VuZGlmCisKKyNp
ZiBQTEFURk9STShNQUMpCisjZGVmaW5lIEVOQUJMRV9GVUxMX0tFWUJPQVJEX0FDQ0VTUyAxCisj
ZW5kaWYKKworI2lmICgoUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKFBMQVlTVEFUSU9OKSB8
fCBQTEFURk9STShXUEUpKSAmJiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKSkgfHwgUExBVEZPUk0o
R1RLKQorI2RlZmluZSBFTkFCTEVfS0lORVRJQ19TQ1JPTExJTkcgMQorI2VuZGlmCisKKyNpZiAh
ZGVmaW5lZChFTkFCTEVfTU9OT1NQQUNFX0ZPTlRfRVhDRVBUSU9OKSAmJiAoKFBMQVRGT1JNKE1B
QykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8IDEwMTUwMCkgfHwgUExBVEZP
Uk0oV0FUQ0hPUykgfHwgUExBVEZPUk0oQVBQTEVUVikpCisjZGVmaW5lIEVOQUJMRV9NT05PU1BB
Q0VfRk9OVF9FWENFUFRJT04gMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfUExBVEZP
Uk1fRFJJVkVOX1RFWFRfQ0hFQ0tJTkcpICYmIFBMQVRGT1JNKE1BQ0NBVEFMWVNUKQorI2RlZmlu
ZSBFTkFCTEVfUExBVEZPUk1fRFJJVkVOX1RFWFRfQ0hFQ0tJTkcgMQorI2VuZGlmCisKKy8qIFRo
aXMgZmVhdHVyZSB3b3JrcyBieSBlbWJlZGRpbmcgdGhlIE9wY29kZUlEIGluIHRoZSAzMiBiaXQg
anVzdCBiZWZvcmUgdGhlIGdlbmVyYXRlZCBMTGludCBjb2RlCisgICB0aGF0IGV4ZWN1dGVzIGVh
Y2ggb3Bjb2RlLiBJdCBjYW5ub3QgYmUgc3VwcG9ydGVkIGJ5IHRoZSBDTG9vcCBzaW5jZSB0aGVy
ZSdzIG5vIHdheSB0byBlbWJlZCB0aGUKKyAgIE9wY29kZUlEIHdvcmQgaW4gdGhlIENMb29wJ3Mg
c3dpdGNoIHN0YXRlbWVudCBjYXNlcy4gSXQgaXMgYWxzbyBjdXJyZW50bHkgbm90IGltcGxlbWVu
dGVkIGZvciBNU1ZDLgorKi8KKyNpZiAhZGVmaW5lZChFTkFCTEVfTExJTlRfRU1CRURERURfT1BD
T0RFX0lEKSAmJiAhRU5BQkxFKENfTE9PUCkgJiYgIUNPTVBJTEVSKE1TVkMpICYmIChDUFUoWDg2
KSB8fCBDUFUoWDg2XzY0KSB8fCBDUFUoQVJNNjQpIHx8IChDUFUoQVJNX1RIVU1CMikgJiYgT1Mo
REFSV0lOKSkpCisjZGVmaW5lIEVOQUJMRV9MTElOVF9FTUJFRERFRF9PUENPREVfSUQgMQorI2Vu
ZGlmCisKKworLyogQXNzZXJ0cywgaW52YXJpYW50cyBmb3IgbWFjcm8gZGVmaW5pdGlvbnMgKi8K
KworI2lmIEVOQUJMRShWSURFT19UUkFDSykgJiYgIUVOQUJMRShWSURFTykKKyNlcnJvciAiRU5B
QkxFKFZJREVPX1RSQUNLKSByZXF1aXJlcyBFTkFCTEUoVklERU8pIgorI2VuZGlmCisKKyNpZiBF
TkFCTEUoTUVESUFfQ09OVFJPTFNfU0NSSVBUKSAmJiAhRU5BQkxFKFZJREVPKQorI2Vycm9yICJF
TkFCTEUoTUVESUFfQ09OVFJPTFNfU0NSSVBUKSByZXF1aXJlcyBFTkFCTEUoVklERU8pIgorI2Vu
ZGlmCisKKyNpZiBFTkFCTEUoSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUykgJiYgIUVO
QUJMRShSRU1PVEVfSU5TUEVDVE9SKQorI2Vycm9yICJFTkFCTEUoSU5TUEVDVE9SX0FMVEVSTkFU
RV9ESVNQQVRDSEVSUykgcmVxdWlyZXMgRU5BQkxFKFJFTU9URV9JTlNQRUNUT1IpIgorI2VuZGlm
CisKKyNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykgJiYgIUVOQUJMRShUT1VDSF9FVkVOVFMp
CisjZXJyb3IgIkVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKSByZXF1aXJlcyBFTkFCTEUoVE9VQ0hf
RVZFTlRTKSIKKyNlbmRpZgorCisjaWYgRU5BQkxFKFdFQkdMKSAmJiAhRU5BQkxFKEdSQVBISUNT
X0NPTlRFWFRfR0wpCisjZXJyb3IgIkVOQUJMRShXRUJHTCkgcmVxdWlyZXMgRU5BQkxFKEdSQVBI
SUNTX0NPTlRFWFRfR0wpIgorI2VuZGlmCisKKyNpZiBFTkFCTEUoV0VCR0wyKSAmJiAhRU5BQkxF
KFdFQkdMKQorI2Vycm9yICJFTkFCTEUoV0VCR0wyKSByZXF1aXJlcyBFTkFCTEUoV0VCR0wpIgor
I2VuZGlmCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZVdpbkNhaXJvLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVXaW5DYWlyby5oCShyZXZp
c2lvbiAyNTU1NTIpCisrKyBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZVdpbkNhaXJvLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTMyLDMyOCArMzIsMTYgQEAKICNlcnJvciAiUGxlYXNlICNpbmNs
dWRlIDx3dGYvUGxhdGZvcm0uaD4gaW5zdGVhZCBvZiB0aGlzIGZpbGUgZGlyZWN0bHkuIgogI2Vu
ZGlmCiAKLQotI2RlZmluZSBFTkFCTEUoV1RGX0ZFQVRVUkUpIChkZWZpbmVkIEVOQUJMRV8jI1dU
Rl9GRUFUVVJFICYmIEVOQUJMRV8jI1dURl9GRUFUVVJFKQotCi0vKiBVc2UgdGhpcyBmaWxlIHRv
IGxpc3QgX2FsbF8gRU5BQkxFKCkgbWFjcm9zLiBEZWZpbmUgdGhlIG1hY3JvcyB0byBiZSBvbmUg
b2YgdGhlIGZvbGxvd2luZyB2YWx1ZXM6Ci0gKiAgLSAiMCIgZGlzYWJsZXMgdGhlIGZlYXR1cmUg
YnkgZGVmYXVsdC4gVGhlIGZlYXR1cmUgY2FuIHN0aWxsIGJlIGVuYWJsZWQgZm9yIGEgc3BlY2lm
aWMgcG9ydCBvciBlbnZpcm9ubWVudC4KLSAqICAtICIxIiBlbmFibGVzIHRoZSBmZWF0dXJlIGJ5
IGRlZmF1bHQuIFRoZSBmZWF0dXJlIGNhbiBzdGlsbCBiZSBkaXNhYmxlZCBmb3IgYSBzcGVjaWZp
YyBwb3J0IG9yIGVudmlyb25tZW50LgotICoKLSAqIFRoZSBmZWF0dXJlIGRlZmF1bHRzIGluIHRo
aXMgZmlsZSBhcmUgb25seSB0YWtlbiBpbnRvIGFjY291bnQgaWYgdGhlIChwb3J0IHNwZWNpZmlj
KSBidWlsZCBzeXN0ZW0KLSAqIGhhcyBub3QgZW5hYmxlZCBvciBkaXNhYmxlZCBhIHBhcnRpY3Vs
YXIgZmVhdHVyZS4KLSAqCi0gKiBVc2UgdGhpcyBmaWxlIHRvIGRlZmluZSBFTkFCTEUoKSBtYWNy
b3Mgb25seS4gRG8gbm90IHVzZSB0aGlzIGZpbGUgdG8gZGVmaW5lIFVTRSgpIG9yIG1hY3JvcyAh
Ci0gKgotICogT25seSBkZWZpbmUgYSBtYWNybyBpZiBpdCB3YXMgbm90IGRlZmluZWQgYmVmb3Jl
IC0gYWx3YXlzIGNoZWNrIGZvciAhZGVmaW5lZCBmaXJzdC4KLSAqCi0gKiBLZWVwIHRoZSBmaWxl
IHNvcnRlZCBieSB0aGUgbmFtZSBvZiB0aGUgZGVmaW5lcy4gQXMgYW4gZXhjZXB0aW9uIHlvdSBj
YW4gY2hhbmdlIHRoZSBvcmRlcgotICogdG8gYWxsb3cgaW50ZXJkZXBlbmRlbmNpZXMgYmV0d2Vl
biB0aGUgZGVmYXVsdCB2YWx1ZXMuCi0gKgotICogQmVsb3cgYXJlIGEgZmV3IHBvdGVudGlhbCBj
b21tYW5kcyB0byB0YWtlIGFkdmFudGFnZSBvZiB0aGlzIGZpbGUgcnVubmluZyBmcm9tIHRoZSBT
b3VyY2UvV1RGIGRpcmVjdG9yeQotICoKLSAqIEdldCB0aGUgbGlzdCBvZiBmZWF0dXJlIGRlZmlu
ZXM6IGdyZXAgLW8gIkVOQUJMRV9cKFx3XCtcKSIgd3RmL1BsYXRmb3JtRW5hYmxlLmggfCBzb3J0
IHwgdW5pcQotICogR2V0IHRoZSBsaXN0IG9mIGZlYXR1cmVzIGVuYWJsZWQgYnkgZGVmYXVsdCBm
b3IgYSBQTEFURk9STShYWFgpOiBnY2MgLUUgLWRNIC1JLiAtRFdURl9QTEFURk9STV9YWFggInd0
Zi9QbGF0Zm9ybS5oIiB8IGdyZXAgIkVOQUJMRV9cd1wrIDEiIHwgY3V0IC1kJyAnIC1mMiB8IHNv
cnQKLSAqLwotCi0KLS8qIEZJWE1FOiBUaGlzIHNob3VsZCBiZSByZW5hbWVkIHRvIEVOQUJMRV9B
U1NFUlRTIGZvciBjb25zaXN0ZW5jeSBhbmQgc28gaXQgY2FuIGJlIHVzZWQgYXMgRU5BQkxFKEFT
U0VSVFMpLiAqLwotLyogQVNTRVJUX0VOQUJMRUQgc2hvdWxkIGJlIHRydWUgaWYgd2Ugd2FudCB0
aGUgY3VycmVudCBjb21waWxhdGlvbiB1bml0IHRvCi0gICBkbyBkZWJ1ZyBhc3NlcnRpb24gY2hl
Y2tzIHVuY29uZGl0aW9uYWxseSAoZS5nLiB0cmVhdCBhIGRlYnVnIEFTU0VSVAotICAgbGlrZSBh
IFJFTEVBU0VfQVNTRVJULgotKi8KLSNpZm5kZWYgQVNTRVJUX0VOQUJMRUQKLSNpZmRlZiBOREVC
VUcKLSNkZWZpbmUgQVNTRVJUX0VOQUJMRUQgMAotI2Vsc2UKLSNkZWZpbmUgQVNTRVJUX0VOQUJM
RUQgMQotI2VuZGlmCi0jZW5kaWYKLQotLyogPT09PSBQbGF0Zm9ybSBhZGRpdGlvbnM6IGFkZGl0
aW9ucyB0byBQbGF0Zm9ybUVuYWJsZS5oIGZyb20gb3V0c2lkZSB0aGUgbWFpbiByZXBvc2l0b3J5
ID09PT0gKi8KLQotI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspICYmIF9faGFzX2luY2x1ZGUo
PFdlYktpdEFkZGl0aW9ucy9BZGRpdGlvbmFsRmVhdHVyZURlZmluZXMuaD4pCi0jaW5jbHVkZSA8
V2ViS2l0QWRkaXRpb25zL0FkZGl0aW9uYWxGZWF0dXJlRGVmaW5lcy5oPgotI2VuZGlmCi0KLS8q
IEZJWE1FOiBNb3ZlIG91dCB0aGUgUExBVEZPUk0gc3BlY2lmaWMgcnVsZXMgaW50byBwbGF0Zm9y
bSBzcGVjaWZpYyBmaWxlcy4gKi8KLQotLyogLS0tLS0tLS0tIEFwcGxlIGlPUyAoYnV0IG5vdCBt
YWNPUykgcG9ydCAtLS0tLS0tLS0gKi8KLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotCi0jaWYg
IWRlZmluZWQoRU5BQkxFX0FJUlBMQVlfUElDS0VSKQotI2lmICFQTEFURk9STShNQUNDQVRBTFlT
VCkKLSNkZWZpbmUgRU5BQkxFX0FJUlBMQVlfUElDS0VSIDEKLSNlbmRpZgotI2VuZGlmCi0KLSNp
ZiAhZGVmaW5lZChFTkFCTEVfQVBQTEVfUEFZX1JFTU9URV9VSSkKLSNpZiAhUExBVEZPUk0oQVBQ
TEVUVikgJiYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKSAmJiAhUExBVEZPUk0oV0FUQ0hPUykKLSNk
ZWZpbmUgRU5BQkxFX0FQUExFX1BBWV9SRU1PVEVfVUkgMQotI2VuZGlmCi0jZW5kaWYKLQotI2lm
ICFkZWZpbmVkKEVOQUJMRV9DT05URU5UX0VYVEVOU0lPTlMpCi0jZGVmaW5lIEVOQUJMRV9DT05U
RU5UX0VYVEVOU0lPTlMgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfQ09OVEVYVF9N
RU5VUykKLSNkZWZpbmUgRU5BQkxFX0NPTlRFWFRfTUVOVVMgMAotI2VuZGlmCi0KLSNpZiAhZGVm
aW5lZChFTkFCTEVfQ09OVEVYVF9NRU5VX0VWRU5UKQotI2lmICFQTEFURk9STShNQUNDQVRBTFlT
VCkKLSNkZWZpbmUgRU5BQkxFX0NPTlRFWFRfTUVOVV9FVkVOVCAwCi0jZW5kaWYKLSNlbmRpZgot
Ci0jaWYgIWRlZmluZWQoRU5BQkxFX0NVU1RPTV9DVVJTT1JfU1VQUE9SVCkKLSNkZWZpbmUgRU5B
QkxFX0NVU1RPTV9DVVJTT1JfU1VQUE9SVCAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJM
RV9EUkFHX1NVUFBPUlQpCi0jZGVmaW5lIEVOQUJMRV9EUkFHX1NVUFBPUlQgMAotI2VuZGlmCi0K
LSNpZiAhZGVmaW5lZChFTkFCTEVfR0VPTE9DQVRJT04pCi0jZGVmaW5lIEVOQUJMRV9HRU9MT0NB
VElPTiAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9JTlNQRUNUT1JfQUxURVJOQVRF
X0RJU1BBVENIRVJTKQotI2RlZmluZSBFTkFCTEVfSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRD
SEVSUyAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9JTlNQRUNUT1JfVEVMRU1FVFJZ
KQotI2RlZmluZSBFTkFCTEVfSU5TUEVDVE9SX1RFTEVNRVRSWSAwCi0jZW5kaWYKLQotI2lmICFk
ZWZpbmVkKEVOQUJMRV9MRVRURVJQUkVTUykKLSNkZWZpbmUgRU5BQkxFX0xFVFRFUlBSRVNTIDEK
LSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0FVVE9DT1JSRUNUKQotI2RlZmluZSBFTkFC
TEVfQVVUT0NPUlJFQ1QgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfQVVUT0NBUElU
QUxJWkUpCi0jZGVmaW5lIEVOQUJMRV9BVVRPQ0FQSVRBTElaRSAxCi0jZW5kaWYKLQotI2lmICFk
ZWZpbmVkKEVOQUJMRV9JT1NfR0VTVFVSRV9FVkVOVFMpICYmIFVTRShBUFBMRV9JTlRFUk5BTF9T
REspCi0jZGVmaW5lIEVOQUJMRV9JT1NfR0VTVFVSRV9FVkVOVFMgMQotI2VuZGlmCi0KLSNpZiAh
ZGVmaW5lZChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKQotI2RlZmluZSBFTkFCTEVfVEVYVF9BVVRP
U0laSU5HIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0lPU19UT1VDSF9FVkVOVFMp
ICYmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCi0jZGVmaW5lIEVOQUJMRV9JT1NfVE9VQ0hfRVZF
TlRTIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX01FVEVSX0VMRU1FTlQpCi0jZGVm
aW5lIEVOQUJMRV9NRVRFUl9FTEVNRU5UIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxF
X05FVFNDQVBFX1BMVUdJTl9BUEkpCi0jZGVmaW5lIEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJ
IDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUykKLSNk
ZWZpbmUgRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUyAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVk
KEVOQUJMRV9QT0lOVEVSX0xPQ0spCi0jZGVmaW5lIEVOQUJMRV9QT0lOVEVSX0xPQ0sgMAotI2Vu
ZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUikKLSNkZWZpbmUgRU5B
QkxFX1JFTU9URV9JTlNQRUNUT1IgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfVEVY
VF9DQVJFVCkKLSNkZWZpbmUgRU5BQkxFX1RFWFRfQ0FSRVQgMAotI2VuZGlmCi0KLSNpZiAhZGVm
aW5lZChFTkFCTEVfVEVYVF9TRUxFQ1RJT04pCi0jZGVmaW5lIEVOQUJMRV9URVhUX1NFTEVDVElP
TiAwCi0jZW5kaWYKLQotLyogRklYTUU6IFJlbW92ZSB0aGUgVVNFKEFQUExFX0lOVEVSTkFMX1NE
SykgY29uanVuY3Qgb25jZSB3ZSBzdXBwb3J0IHRvdWNoIGV2ZW50cyB3aGVuIGJ1aWxkaW5nIGFn
YWluc3QKLXRoZSBwdWJsaWMgaU9TIFNESy4gU2VlIDxodHRwczovL3dlYmtpdC5vcmcvYi8xNzkx
Njc+LiAqLwotI2lmICFkZWZpbmVkKEVOQUJMRV9UT1VDSF9FVkVOVFMpICYmIFVTRShBUFBMRV9J
TlRFUk5BTF9TREspCi0jZGVmaW5lIEVOQUJMRV9UT1VDSF9FVkVOVFMgMQotI2VuZGlmCi0KLSNp
ZiAhZGVmaW5lZChFTkFCTEVfV0VCX0FSQ0hJVkUpCi0jZGVmaW5lIEVOQUJMRV9XRUJfQVJDSElW
RSAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJHTCkKLSNkZWZpbmUgRU5BQkxF
X1dFQkdMIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX1BSSU1BUllfU05BUFNIT1RU
RURfUExVR0lOX0hFVVJJU1RJQykKLSNkZWZpbmUgRU5BQkxFX1BSSU1BUllfU05BUFNIT1RURURf
UExVR0lOX0hFVVJJU1RJQyAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9ET1dOTE9B
RF9BVFRSSUJVVEUpCi0jZGVmaW5lIEVOQUJMRV9ET1dOTE9BRF9BVFRSSUJVVEUgMQotI2VuZGlm
Ci0KLSNpZiAhZGVmaW5lZChFTkFCTEVfV0tQREZWSUVXKSAmJiBQTEFURk9STShJT1MpCi0jZGVm
aW5lIEVOQUJMRV9XS1BERlZJRVcgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfTUVE
SUFfU09VUkNFKQotI2RlZmluZSBFTkFCTEVfTUVESUFfU09VUkNFIDAKLSNlbmRpZgotCi0jaWYg
IWRlZmluZWQoRU5BQkxFX1BSRVZJRVdfQ09OVkVSVEVSKSAmJiBQTEFURk9STShJT1MpCi0jZGVm
aW5lIEVOQUJMRV9QUkVWSUVXX0NPTlZFUlRFUiAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVO
QUJMRV9NRVRBX1ZJRVdQT1JUKQotI2RlZmluZSBFTkFCTEVfTUVUQV9WSUVXUE9SVCAxCi0jZW5k
aWYKLQotI2VuZGlmIC8qIFBMQVRGT1JNKElPU19GQU1JTFkpICovCi0KLS8qIC0tLS0tLS0tLSBB
cHBsZSB3YXRjaE9TIHBvcnQgLS0tLS0tLS0tICovCi0jaWYgUExBVEZPUk0oV0FUQ0hPUykKLQot
I2VuZGlmIC8qIFBMQVRGT1JNKFdBVENIT1MpICovCi0KLS8qIC0tLS0tLS0tLSBBcHBsZSBtYWNP
UyBwb3J0IChub3QgaU9TKSAtLS0tLS0tLS0gKi8KLSNpZiBQTEFURk9STShNQUMpCi0KLSNpZiAh
ZGVmaW5lZChFTkFCTEVfQ09OVEVOVF9FWFRFTlNJT05TKQotI2RlZmluZSBFTkFCTEVfQ09OVEVO
VF9FWFRFTlNJT05TIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0ZVTExTQ1JFRU5f
QVBJKQotI2RlZmluZSBFTkFCTEVfRlVMTFNDUkVFTl9BUEkgMQorI2lmICFQTEFURk9STShXSU5f
Q0FJUk8pCisjZXJyb3IgIlRoaXMgZmlsZSBzaG91bGQgb25seSBiZSBpbmNsdWRlZCB3aGVuIGJ1
aWxkaW5nIHRoZSBXaW5kb3dzIENBSVJPIHBvcnQuIgogI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChF
TkFCTEVfUkVNT1RFX0lOU1BFQ1RPUikKLSNkZWZpbmUgRU5BQkxFX1JFTU9URV9JTlNQRUNUT1Ig
MQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQ
QVRDSEVSUykKLSNkZWZpbmUgRU5BQkxFX0lOU1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hFUlMg
MQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfSU5TUEVDVE9SX1RFTEVNRVRSWSkKLSNk
ZWZpbmUgRU5BQkxFX0lOU1BFQ1RPUl9URUxFTUVUUlkgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5l
ZChFTkFCTEVfU01PT1RIX1NDUk9MTElORykKLSNkZWZpbmUgRU5BQkxFX1NNT09USF9TQ1JPTExJ
TkcgMQotI2VuZGlmCi0KLSNpZiBFTkFCTEUoVklERU8pCi0jaWYgIWRlZmluZWQoRU5BQkxFX1ZJ
REVPX1RSQUNLKQotI2RlZmluZSBFTkFCTEVfVklERU9fVFJBQ0sgMQotI2VuZGlmCi0jZW5kaWYK
LQotI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJfQVJDSElWRSkKLSNkZWZpbmUgRU5BQkxFX1dFQl9B
UkNISVZFIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX1dFQl9BVURJTykKLSNkZWZp
bmUgRU5BQkxFX1dFQl9BVURJTyAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9DVVJT
T1JfVklTSUJJTElUWSkKLSNkZWZpbmUgRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZIDEKLSNlbmRp
ZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX1BSSU1BUllfU05BUFNIT1RURURfUExVR0lOX0hFVVJJ
U1RJQykKLSNkZWZpbmUgRU5BQkxFX1BSSU1BUllfU05BUFNIT1RURURfUExVR0lOX0hFVVJJU1RJ
QyAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9NQUNfR0VTVFVSRV9FVkVOVFMpICYm
IFVTRShBUFBMRV9JTlRFUk5BTF9TREspCi0jZGVmaW5lIEVOQUJMRV9NQUNfR0VTVFVSRV9FVkVO
VFMgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfV0VCUFJPQ0VTU19OU1JVTkxPT1Ap
Ci0jZGVmaW5lIEVOQUJMRV9XRUJQUk9DRVNTX05TUlVOTE9PUCBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEwMTQwMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfV0VC
UFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCi0jZGVmaW5lIEVOQUJMRV9XRUJQUk9DRVNT
X1dJTkRPV1NFUlZFUl9CTE9DS0lORyBFTkFCTEVfV0VCUFJPQ0VTU19OU1JVTkxPT1AKLSNlbmRp
ZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX01FRElBX1NPVVJDRSkKLSNkZWZpbmUgRU5BQkxFX01F
RElBX1NPVVJDRSAxCi0jZW5kaWYKLQotI2VuZGlmIC8qIFBMQVRGT1JNKE1BQykgKi8KLQotLyog
LS0tLS0tLS0tIEFwcGxlIENvY29hIHBsYXRmb3JtcyAtLS0tLS0tLS0gKi8KLQotI2lmIFBMQVRG
T1JNKENPQ09BKQotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0xFR0FDWV9FTkNSWVBURURfTUVESUEp
Ci0jaWYgUExBVEZPUk0oTUFDQ0FUQUxZU1QpCi0jZGVmaW5lIEVOQUJMRV9MRUdBQ1lfRU5DUllQ
VEVEX01FRElBIDAKLSNlbHNlCi0jZGVmaW5lIEVOQUJMRV9MRUdBQ1lfRU5DUllQVEVEX01FRElB
IDEKLSNlbmRpZgotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfRklMRV9SRVBMQUNFTUVO
VCkKLSNkZWZpbmUgRU5BQkxFX0ZJTEVfUkVQTEFDRU1FTlQgMQotI2VuZGlmCi0KLSNpZiAhZGVm
aW5lZChFTkFCTEVfUEFZTUVOVF9SRVFVRVNUKQotI2RlZmluZSBFTkFCTEVfUEFZTUVOVF9SRVFV
RVNUIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0FTWU5DX1NDUk9MTElORykKLSNk
ZWZpbmUgRU5BQkxFX0FTWU5DX1NDUk9MTElORyAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVO
QUJMRV9VSV9TSURFX0NPTVBPU0lUSU5HKQotI2RlZmluZSBFTkFCTEVfVUlfU0lERV9DT01QT1NJ
VElORyAxCi0jZW5kaWYKLQotI2VuZGlmIC8qIFBMQVRGT1JNKENPQ09BKSAqLwotCi0jaWYgIVBM
QVRGT1JNKENPQ09BKQotCi0jaWYgIWRlZmluZWQoSlNDX09CSkNfQVBJX0VOQUJMRUQpCi0jZGVm
aW5lIEpTQ19PQkpDX0FQSV9FTkFCTEVEIDAKLSNlbmRpZgotCi0jZW5kaWYgLyogIVBMQVRGT1JN
KENPQ09BKSAqLwotCi0KLS8qIC0tLS0tLS0tLSBBcHBsZSBXaW5kb3dzIHBvcnQgLS0tLS0tLS0t
ICovCi0jaWYgUExBVEZPUk0oV0lOKSAmJiAhUExBVEZPUk0oV0lOX0NBSVJPKQotCi0jaWYgIWRl
ZmluZWQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKQotI2RlZmluZSBFTkFCTEVfRlVMTFNDUkVFTl9B
UEkgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfV0VCX0FSQ0hJVkUpCi0jZGVmaW5l
IEVOQUJMRV9XRUJfQVJDSElWRSAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJH
TCkKLSNkZWZpbmUgRU5BQkxFX1dFQkdMIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxF
X0dFT0xPQ0FUSU9OKQotI2RlZmluZSBFTkFCTEVfR0VPTE9DQVRJT04gMQotI2VuZGlmCi0KLSNl
bmRpZiAvKiBQTEFURk9STShXSU4pICYmICFQTEFURk9STShXSU5fQ0FJUk8pICovCiAKIC8qIC0t
LS0tLS0tLSBXaW5kb3dzIENBSVJPIHBvcnQgLS0tLS0tLS0tICovCisKIC8qIFBMQVRGT1JNKFdJ
Tl9DQUlSTykgaXMgYSBzcGVjaWFsaXphdGlvbiBvZiBQTEFURk9STShXSU4pLiAqLwogLyogUExB
VEZPUk0oV0lOKSBpcyBhbHdheXMgZW5hYmxlZCB3aGVuIFBMQVRGT1JNKFdJTl9DQUlSTykgaXMg
ZW5hYmxlZC4gKi8KLSNpZiBQTEFURk9STShXSU5fQ0FJUk8pCisKIAogI2lmICFkZWZpbmVkKEVO
QUJMRV9XRUJfQVJDSElWRSkKICNkZWZpbmUgRU5BQkxFX1dFQl9BUkNISVZFIDEKQEAgLTM2Niw2
OTAgKzU0LDMgQEAgdGhlIHB1YmxpYyBpT1MgU0RLLiBTZWUgPGh0dHBzOi8vd2Via2l0LgogI2lm
ICFkZWZpbmVkKEVOQUJMRV9HRU9MT0NBVElPTikKICNkZWZpbmUgRU5BQkxFX0dFT0xPQ0FUSU9O
IDEKICNlbmRpZgotCi0jZW5kaWYgLyogUExBVEZPUk0oV0lOX0NBSVJPKSAqLwotCi0vKiBFTkFC
TEUgbWFjcm8gZGVmYXVsdHMgZm9yIFdlYkNvcmUgKi8KLS8qIERvIG5vdCB1c2UgUExBVEZPUk0o
KSB0ZXN0cyBpbiB0aGlzIHNlY3Rpb24gISAqLwotCi0jaWYgIWRlZmluZWQoRU5BQkxFXzNEX1RS
QU5TRk9STVMpCi0jZGVmaW5lIEVOQUJMRV8zRF9UUkFOU0ZPUk1TIDAKLSNlbmRpZgotCi0jaWYg
IWRlZmluZWQoRU5BQkxFX0FDQ0VTU0lCSUxJVFkpCi0jZGVmaW5lIEVOQUJMRV9BQ0NFU1NJQklM
SVRZIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZB
UykKLSNkZWZpbmUgRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUyAwCi0jZW5kaWYKLQotI2lm
ICFkZWZpbmVkKEVOQUJMRV9PVkVSRkxPV19TQ1JPTExJTkdfVE9VQ0gpCi0jZGVmaW5lIEVOQUJM
RV9PVkVSRkxPV19TQ1JPTExJTkdfVE9VQ0ggMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFC
TEVfQVBORykKLSNkZWZpbmUgRU5BQkxFX0FQTkcgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChF
TkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpCi0jZGVmaW5lIEVOQUJMRV9DSEFOTkVMX01FU1NBR0lO
RyAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9DT05URU5UX0VYVEVOU0lPTlMpCi0j
ZGVmaW5lIEVOQUJMRV9DT05URU5UX0VYVEVOU0lPTlMgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5l
ZChFTkFCTEVfQ09OVEVYVF9NRU5VUykKLSNkZWZpbmUgRU5BQkxFX0NPTlRFWFRfTUVOVVMgMQot
I2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfQ09OVEVYVF9NRU5VX0VWRU5UKQotI2RlZmlu
ZSBFTkFCTEVfQ09OVEVYVF9NRU5VX0VWRU5UIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5B
QkxFX0NTUzNfVEVYVCkKLSNkZWZpbmUgRU5BQkxFX0NTUzNfVEVYVCAwCi0jZW5kaWYKLQotI2lm
ICFkZWZpbmVkKEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUspCi0jZGVmaW5lIEVOQUJM
RV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUsgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFC
TEVfQ1NTX0RFVklDRV9BREFQVEFUSU9OKQotI2RlZmluZSBFTkFCTEVfQ1NTX0RFVklDRV9BREFQ
VEFUSU9OIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0NTU19DT01QT1NJVElORykK
LSNkZWZpbmUgRU5BQkxFX0NTU19DT01QT1NJVElORyAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVk
KEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikKLSNkZWZpbmUgRU5BQkxFX0NTU19JTUFHRV9S
RVNPTFVUSU9OIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0NTU19DT05JQ19HUkFE
SUVOVFMpCi0jZGVmaW5lIEVOQUJMRV9DU1NfQ09OSUNfR1JBRElFTlRTIDAKLSNlbmRpZgotCi0j
aWYgIWRlZmluZWQoRU5BQkxFX0NVU1RPTV9DVVJTT1JfU1VQUE9SVCkKLSNkZWZpbmUgRU5BQkxF
X0NVU1RPTV9DVVJTT1JfU1VQUE9SVCAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9D
VVNUT01fU0NIRU1FX0hBTkRMRVIpCi0jZGVmaW5lIEVOQUJMRV9DVVNUT01fU0NIRU1FX0hBTkRM
RVIgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfREFSS19NT0RFX0NTUykKLSNkZWZp
bmUgRU5BQkxFX0RBUktfTU9ERV9DU1MgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVf
REFUQUxJU1RfRUxFTUVOVCkKLSNkZWZpbmUgRU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQgMAotI2Vu
ZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKQotI2RlZmluZSBF
TkFCTEVfREVWSUNFX09SSUVOVEFUSU9OIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxF
X0RPV05MT0FEX0FUVFJJQlVURSkKLSNkZWZpbmUgRU5BQkxFX0RPV05MT0FEX0FUVFJJQlVURSAx
Ci0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9EUkFHX1NVUFBPUlQpCi0jZGVmaW5lIEVO
QUJMRV9EUkFHX1NVUFBPUlQgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfRU5DUllQ
VEVEX01FRElBKQotI2RlZmluZSBFTkFCTEVfRU5DUllQVEVEX01FRElBIDAKLSNlbmRpZgotCi0j
aWYgIWRlZmluZWQoRU5BQkxFX0ZJTFRFUlNfTEVWRUxfMikKLSNkZWZpbmUgRU5BQkxFX0ZJTFRF
UlNfTEVWRUxfMiAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9GVFBESVIpCi0jZGVm
aW5lIEVOQUJMRV9GVFBESVIgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfRlVMTFND
UkVFTl9BUEkpCi0jZGVmaW5lIEVOQUJMRV9GVUxMU0NSRUVOX0FQSSAwCi0jZW5kaWYKLQotI2lm
ICFkZWZpbmVkKEVOQUJMRV9HQU1FUEFEKQotI2RlZmluZSBFTkFCTEVfR0FNRVBBRCAwCi0jZW5k
aWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9HRU9MT0NBVElPTikKLSNkZWZpbmUgRU5BQkxFX0dF
T0xPQ0FUSU9OIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0lOREVYRURfREFUQUJB
U0UpCi0jZGVmaW5lIEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFIDAKLSNlbmRpZgotCi0jaWYgIWRl
ZmluZWQoRU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUykKLSNkZWZpbmUgRU5BQkxF
X0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUyAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVO
QUJMRV9JTlBVVF9UWVBFX0NPTE9SKQotI2RlZmluZSBFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUiAx
Ci0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpCi0jZGVmaW5l
IEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVf
SU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKQotI2RlZmluZSBFTkFCTEVfSU5QVVRfVFlQ
RV9EQVRFVElNRV9JTkNPTVBMRVRFIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0lO
UFVUX1RZUEVfREFURVRJTUVMT0NBTCkKLSNkZWZpbmUgRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJ
TUVMT0NBTCAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRI
KQotI2RlZmluZSBFTkFCTEVfSU5QVVRfVFlQRV9NT05USCAwCi0jZW5kaWYKLQotI2lmICFkZWZp
bmVkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpCi0jZGVmaW5lIEVOQUJMRV9JTlBVVF9UWVBFX1RJ
TUUgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKQotI2Rl
ZmluZSBFTkFCTEVfSU5QVVRfVFlQRV9XRUVLIDAKLSNlbmRpZgotCi0jaWYgRU5BQkxFKElOUFVU
X1RZUEVfREFURSkgfHwgRU5BQkxFKElOUFVUX1RZUEVfREFURVRJTUVfSU5DT01QTEVURSkgfHwg
RU5BQkxFKElOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgfHwgRU5BQkxFKElOUFVUX1RZUEVfTU9O
VEgpIHx8IEVOQUJMRShJTlBVVF9UWVBFX1RJTUUpIHx8IEVOQUJMRShJTlBVVF9UWVBFX1dFRUsp
Ci0jaWYgIWRlZmluZWQoRU5BQkxFX0RBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCi0jZGVmaW5l
IEVOQUJMRV9EQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTIDEKLSNlbmRpZgotI2VuZGlmCi0KLSNp
ZiAhZGVmaW5lZChFTkFCTEVfSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUykKLSNkZWZp
bmUgRU5BQkxFX0lOU1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hFUlMgMAotI2VuZGlmCi0KLSNp
ZiAhZGVmaW5lZChFTkFCTEVfSU5TUEVDVE9SX1RFTEVNRVRSWSkKLSNkZWZpbmUgRU5BQkxFX0lO
U1BFQ1RPUl9URUxFTUVUUlkgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfSU5UTCkK
LSNkZWZpbmUgRU5BQkxFX0lOVEwgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfTEFZ
T1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKLSNkZWZpbmUgRU5BQkxFX0xBWU9VVF9GT1JNQVRUSU5H
X0NPTlRFWFQgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfTEVHQUNZX0NTU19WRU5E
T1JfUFJFRklYRVMpCi0jZGVmaW5lIEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUyAw
Ci0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9MRVRURVJQUkVTUykKLSNkZWZpbmUgRU5B
QkxFX0xFVFRFUlBSRVNTIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX01BVEhNTCkK
LSNkZWZpbmUgRU5BQkxFX01BVEhNTCAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9N
RURJQV9DQVBUVVJFKQotI2RlZmluZSBFTkFCTEVfTUVESUFfQ0FQVFVSRSAwCi0jZW5kaWYKLQot
I2lmICFkZWZpbmVkKEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQpCi0jZGVmaW5lIEVOQUJM
RV9NRURJQV9DT05UUk9MU19TQ1JJUFQgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVf
TUVESUFfU09VUkNFKQotI2RlZmluZSBFTkFCTEVfTUVESUFfU09VUkNFIDAKLSNlbmRpZgotCi0j
aWYgIWRlZmluZWQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpCi0jZGVmaW5lIEVOQUJMRV9NRURJ
QV9TVEFUSVNUSUNTIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX01FRElBX1NUUkVB
TSkKLSNkZWZpbmUgRU5BQkxFX01FRElBX1NUUkVBTSAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVk
KEVOQUJMRV9NRVRFUl9FTEVNRU5UKQotI2RlZmluZSBFTkFCTEVfTUVURVJfRUxFTUVOVCAxCi0j
ZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9NSFRNTCkKLSNkZWZpbmUgRU5BQkxFX01IVE1M
IDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FMRSkKLSNk
ZWZpbmUgRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FMRSAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVk
KEVOQUJMRV9NT1VTRV9GT1JDRV9FVkVOVFMpCi0jZGVmaW5lIEVOQUJMRV9NT1VTRV9GT1JDRV9F
VkVOVFMgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfTkVUU0NBUEVfUExVR0lOX0FQ
SSkKLSNkZWZpbmUgRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9BUEkgMQotI2VuZGlmCi0KLSNpZiAh
ZGVmaW5lZChFTkFCTEVfTkVUU0NBUEVfUExVR0lOX01FVEFEQVRBX0NBQ0hFKQotI2RlZmluZSBF
TkFCTEVfTkVUU0NBUEVfUExVR0lOX01FVEFEQVRBX0NBQ0hFIDAKLSNlbmRpZgotCi0jaWYgIWRl
ZmluZWQoRU5BQkxFX05PVElGSUNBVElPTlMpCi0jZGVmaW5lIEVOQUJMRV9OT1RJRklDQVRJT05T
IDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX09GRlNDUkVFTl9DQU5WQVMpCi0jZGVm
aW5lIEVOQUJMRV9PRkZTQ1JFRU5fQ0FOVkFTIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5B
QkxFX09SSUVOVEFUSU9OX0VWRU5UUykKLSNkZWZpbmUgRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5U
UyAwCi0jZW5kaWYKLQotI2lmIE9TKFdJTkRPV1MpCi0jaWYgIWRlZmluZWQoRU5BQkxFX1BBTl9T
Q1JPTExJTkcpCi0jZGVmaW5lIEVOQUJMRV9QQU5fU0NST0xMSU5HIDEKLSNlbmRpZgotI2VuZGlm
Ci0KLSNpZiAhZGVmaW5lZChFTkFCTEVfUEFZTUVOVF9SRVFVRVNUKQotI2RlZmluZSBFTkFCTEVf
UEFZTUVOVF9SRVFVRVNUIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX1BPSU5URVJf
TE9DSykKLSNkZWZpbmUgRU5BQkxFX1BPSU5URVJfTE9DSyAxCi0jZW5kaWYKLQotI2lmICFkZWZp
bmVkKEVOQUJMRV9RVU9UQSkKLSNkZWZpbmUgRU5BQkxFX1FVT1RBIDAKLSNlbmRpZgotCi0jaWYg
IWRlZmluZWQoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpCi0jZGVmaW5lIEVOQUJMRV9SRU1PVEVf
SU5TUEVDVE9SIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX1JVQkJFUl9CQU5ESU5H
KQotI2RlZmluZSBFTkFCTEVfUlVCQkVSX0JBTkRJTkcgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5l
ZChFTkFCTEVfU0VDVVJJVFlfQVNTRVJUSU9OUykKLS8qIEVuYWJsZSBzZWN1cml0eSBhc3NlcnRp
b25zIG9uIGFsbCBBU0FOIGJ1aWxkcyBhbmQgZGVidWcgYnVpbGRzLiAqLwotI2lmIEFTQU5fRU5B
QkxFRCB8fCAhZGVmaW5lZChOREVCVUcpCi0jZGVmaW5lIEVOQUJMRV9TRUNVUklUWV9BU1NFUlRJ
T05TIDEKLSNlbmRpZgotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfU01PT1RIX1NDUk9M
TElORykKLSNkZWZpbmUgRU5BQkxFX1NNT09USF9TQ1JPTExJTkcgMAotI2VuZGlmCi0KLSNpZiAh
ZGVmaW5lZChFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUykKLSNkZWZpbmUgRU5BQkxFX1NQRUVDSF9T
WU5USEVTSVMgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfU1BFTExDSEVDSykKLSNk
ZWZpbmUgRU5BQkxFX1NQRUxMQ0hFQ0sgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVf
U1RSRUFNU19BUEkpCi0jZGVmaW5lIEVOQUJMRV9TVFJFQU1TX0FQSSAxCi0jZW5kaWYKLQotI2lm
ICFkZWZpbmVkKEVOQUJMRV9TVkdfRk9OVFMpCi0jZGVmaW5lIEVOQUJMRV9TVkdfRk9OVFMgMQot
I2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfVEVYVF9DQVJFVCkKLSNkZWZpbmUgRU5BQkxF
X1RFWFRfQ0FSRVQgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfVEVYVF9TRUxFQ1RJ
T04pCi0jZGVmaW5lIEVOQUJMRV9URVhUX1NFTEVDVElPTiAxCi0jZW5kaWYKLQotI2lmICFkZWZp
bmVkKEVOQUJMRV9BU1lOQ19TQ1JPTExJTkcpCi0jZGVmaW5lIEVOQUJMRV9BU1lOQ19TQ1JPTExJ
TkcgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfVE9VQ0hfRVZFTlRTKQotI2RlZmlu
ZSBFTkFCTEVfVE9VQ0hfRVZFTlRTIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX1ZJ
REVPKQotI2RlZmluZSBFTkFCTEVfVklERU8gMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFC
TEVfVklERU9fVFJBQ0spCi0jZGVmaW5lIEVOQUJMRV9WSURFT19UUkFDSyAwCi0jZW5kaWYKLQot
I2lmICFkZWZpbmVkKEVOQUJMRV9EQVRBQ1VFX1ZBTFVFKQotI2RlZmluZSBFTkFCTEVfREFUQUNV
RV9WQUxVRSAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJHTCkKLSNkZWZpbmUg
RU5BQkxFX1dFQkdMIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0dSQVBISUNTX0NP
TlRFWFRfR0wpCi0jZGVmaW5lIEVOQUJMRV9HUkFQSElDU19DT05URVhUX0dMIEVOQUJMRV9XRUJH
TAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfV0VCX0FSQ0hJVkUpCi0jZGVmaW5lIEVO
QUJMRV9XRUJfQVJDSElWRSAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJfQVVE
SU8pCi0jZGVmaW5lIEVOQUJMRV9XRUJfQVVESU8gMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChF
TkFCTEVfWFNMVCkKLSNkZWZpbmUgRU5BQkxFX1hTTFQgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5l
ZChFTkFCTEVfREFUQV9JTlRFUkFDVElPTikKLSNkZWZpbmUgRU5BQkxFX0RBVEFfSU5URVJBQ1RJ
T04gMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfU0VSVklDRV9XT1JLRVIpCi0jZGVm
aW5lIEVOQUJMRV9TRVJWSUNFX1dPUktFUiAxCi0jZW5kaWYKLQotCi0vKiBKSVQgRmVhdHVyZXMg
Ki8KLQotLyogVGhlIEpJVCBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgb24gYWxsIHg4Ni02NCAmIEFS
TTY0IHBsYXRmb3Jtcy4gKi8KLSNpZiAhZGVmaW5lZChFTkFCTEVfSklUKSAmJiAoQ1BVKFg4Nl82
NCkgfHwgQ1BVKEFSTTY0KSkgJiYgIUNQVShBUFBMRV9BUk1WN0spCi0jZGVmaW5lIEVOQUJMRV9K
SVQgMQotI2VuZGlmCi0KLSNpZiBVU0UoSlNWQUxVRTMyXzY0KQotI2lmIChDUFUoQVJNX1RIVU1C
MikgfHwgQ1BVKE1JUFMpKSAmJiBPUyhMSU5VWCkKLS8qIE9uIEFSTXY3IGFuZCBNSVBTIG9uIExp
bnV4IHRoZSBKSVQgaXMgZW5hYmxlZCB1bmxlc3MgZXhwbGljaXRseSBkaXNhYmxlZC4gKi8KLSNp
ZiAhZGVmaW5lZChFTkFCTEVfSklUKQotI2RlZmluZSBFTkFCTEVfSklUIDEKLSNlbmRpZgotI2Vs
c2UKLS8qIERpc2FibGUgSklUIGFuZCBmb3JjZSBDX0xPT1Agb24gYWxsIG90aGVyIDMyYml0IGFy
Y2hpdGVjdHVyZXMuICovCi0jdW5kZWYgRU5BQkxFX0pJVAotI2RlZmluZSBFTkFCTEVfSklUIDAK
LSN1bmRlZiBFTkFCTEVfQ19MT09QCi0jZGVmaW5lIEVOQUJMRV9DX0xPT1AgMQotI2VuZGlmCi0j
ZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9DX0xPT1ApCi0jaWYgRU5BQkxFKEpJVCkgfHwg
Q1BVKFg4Nl82NCkgfHwgKENQVShBUk02NCkgJiYgIWRlZmluZWQoX19JTFAzMl9fKSkKLSNkZWZp
bmUgRU5BQkxFX0NfTE9PUCAwCi0jZWxzZQotI2RlZmluZSBFTkFCTEVfQ19MT09QIDEKLSNlbmRp
ZgotI2VuZGlmCi0KLS8qIEZJWE1FOiBUaGlzIHNob3VsZCBiZSB0dXJuZWQgaW50byBhbiAjZXJy
b3IgaW52YXJpYW50ICovCi0vKiBUaGUgRlRMICpkb2VzIG5vdCogd29yayBvbiAzMi1iaXQgcGxh
dGZvcm1zLiBEaXNhYmxlIGl0IGV2ZW4gaWYgc29tZW9uZSBhc2tlZCB1cyB0byBlbmFibGUgaXQu
ICovCi0jaWYgVVNFKEpTVkFMVUUzMl82NCkKLSN1bmRlZiBFTkFCTEVfRlRMX0pJVAotI2RlZmlu
ZSBFTkFCTEVfRlRMX0pJVCAwCi0jZW5kaWYKLQotLyogRklYTUU6IFRoaXMgc2hvdWxkIGJlIHR1
cm5lZCBpbnRvIGFuICNlcnJvciBpbnZhcmlhbnQgKi8KLS8qIFRoZSBGVEwgaXMgZGlzYWJsZWQg
b24gdGhlIGlPUyBzaW11bGF0b3IsIG1vc3RseSBmb3Igc2ltcGxpY2l0eS4gKi8KLSNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZX1NJTVVMQVRPUikKLSN1bmRlZiBFTkFCTEVfRlRMX0pJVAotI2RlZmlu
ZSBFTkFCTEVfRlRMX0pJVCAwCi0jZW5kaWYKLQotLyogSWYgcG9zc2libGUsIHRyeSB0byBlbmFi
bGUgYSBkaXNhc3NlbWJsZXIuIFRoaXMgaXMgb3B0aW9uYWwuIFdlIHByb2NlZWQgaW4gdHdvCi0g
ICBzdGVwczogZmlyc3Qgd2UgdHJ5IHRvIGZpbmQgc29tZSBkaXNhc3NlbWJsZXIgdGhhdCB3ZSBj
YW4gdXNlLCBhbmQgdGhlbiB3ZQotICAgZGVjaWRlIGlmIHRoZSBoaWdoLWxldmVsIGRpc2Fzc2Vt
YmxlciBBUEkgY2FuIGJlIGVuYWJsZWQuICovCi0jaWYgIWRlZmluZWQoRU5BQkxFX1VESVM4Nikg
JiYgRU5BQkxFKEpJVCkgJiYgQ1BVKFg4Nl82NCkgJiYgIVVTRShDQVBTVE9ORSkKLSNkZWZpbmUg
RU5BQkxFX1VESVM4NiAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9BUk02NF9ESVNB
U1NFTUJMRVIpICYmIEVOQUJMRShKSVQpICYmIENQVShBUk02NCkgJiYgIVVTRShDQVBTVE9ORSkK
LSNkZWZpbmUgRU5BQkxFX0FSTTY0X0RJU0FTU0VNQkxFUiAxCi0jZW5kaWYKLQotI2lmICFkZWZp
bmVkKEVOQUJMRV9ESVNBU1NFTUJMRVIpICYmIChFTkFCTEUoVURJUzg2KSB8fCBFTkFCTEUoQVJN
NjRfRElTQVNTRU1CTEVSKSB8fCAoRU5BQkxFKEpJVCkgJiYgVVNFKENBUFNUT05FKSkpCi0jZGVm
aW5lIEVOQUJMRV9ESVNBU1NFTUJMRVIgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVf
REZHX0pJVCkgJiYgRU5BQkxFKEpJVCkKLQotLyogRW5hYmxlIHRoZSBERkcgSklUIG9uIFg4NiBh
bmQgWDg2XzY0LiAqLwotI2lmIENQVShYODZfNjQpICYmIChPUyhEQVJXSU4pIHx8IE9TKExJTlVY
KSB8fCBPUyhGUkVFQlNEKSB8fCBPUyhIVVJEKSB8fCBPUyhXSU5ET1dTKSkKLSNkZWZpbmUgRU5B
QkxFX0RGR19KSVQgMQotI2VuZGlmCi0KLS8qIEVuYWJsZSB0aGUgREZHIEpJVCBvbiBBUk12Ny4g
IE9ubHkgdGVzdGVkIG9uIGlPUywgTGludXgsIGFuZCBGcmVlQlNELiAqLwotI2lmIChDUFUoQVJN
X1RIVU1CMikgfHwgQ1BVKEFSTTY0KSkgJiYgKE9TKERBUldJTikgfHwgT1MoTElOVVgpIHx8IE9T
KEZSRUVCU0QpKQotI2RlZmluZSBFTkFCTEVfREZHX0pJVCAxCi0jZW5kaWYKLQotLyogRW5hYmxl
IHRoZSBERkcgSklUIG9uIE1JUFMuICovCi0jaWYgQ1BVKE1JUFMpCi0jZGVmaW5lIEVOQUJMRV9E
RkdfSklUIDEKLSNlbmRpZgotCi0jZW5kaWYgLyogIWRlZmluZWQoRU5BQkxFX0RGR19KSVQpICYm
IEVOQUJMRShKSVQpICovCi0KLS8qIENvbmN1cnJlbnQgSlMgb25seSB3b3JrcyBvbiA2NC1iaXQg
cGxhdGZvcm1zIGJlY2F1c2UgaXQgcmVxdWlyZXMgdGhhdAotICAgdmFsdWVzIGdldCBzdG9yZWQg
dG8gYXRvbWljYWxseS4gVGhpcyBpcyB0cml2aWFsbHkgdHJ1ZSBvbiA2NC1iaXQgcGxhdGZvcm1z
LAotICAgYnV0IG5vdCB0cnVlIGF0IGFsbCBvbiAzMi1iaXQgcGxhdGZvcm1zIHdoZXJlIHZhbHVl
cyBhcmUgY29tcG9zZWQgb2YgdHdvCi0gICBzZXBhcmF0ZSBzdWItdmFsdWVzLiAqLwotI2lmIEVO
QUJMRShKSVQpICYmIFVTRShKU1ZBTFVFNjQpCi0jZGVmaW5lIEVOQUJMRV9DT05DVVJSRU5UX0pT
IDEKLSNlbmRpZgotCi0jaWYgKENQVShYODZfNjQpIHx8IENQVShBUk02NCkpICYmIEhBVkUoRkFT
VF9UTFMpCi0jZGVmaW5lIEVOQUJMRV9GQVNUX1RMU19KSVQgMQotI2VuZGlmCi0KLSNpZiBFTkFC
TEUoSklUKSAmJiAoQ1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTV9USFVNQjIpIHx8
IENQVShBUk02NCkgfHwgQ1BVKE1JUFMpKQotI2RlZmluZSBFTkFCTEVfTUFTTV9QUk9CRSAxCi0j
ZW5kaWYKLQotLyogRklYTUU6IFRoaXMgc2hvdWxkIGJlIHR1cm5lZCBpbnRvIGFuICNlcnJvciBp
bnZhcmlhbnQgKi8KLS8qIElmIHRoZSBiYXNlbGluZSBqaXQgaXMgbm90IGF2YWlsYWJsZSwgdGhl
biBkaXNhYmxlIHVwcGVyIHRpZXJzIGFzIHdlbGwuCi0gICBUaGUgTWFjcm9Bc3NlbWJsZXI6OnBy
b2JlKCkgaXMgYWxzbyByZXF1aXJlZCBmb3Igc3VwcG9ydGluZyB0aGUgdXBwZXIgdGllcnMuICov
Ci0jaWYgIUVOQUJMRShKSVQpIHx8ICFFTkFCTEUoTUFTTV9QUk9CRSkKLSN1bmRlZiBFTkFCTEVf
REZHX0pJVAotI3VuZGVmIEVOQUJMRV9GVExfSklUCi0jZGVmaW5lIEVOQUJMRV9ERkdfSklUIDAK
LSNkZWZpbmUgRU5BQkxFX0ZUTF9KSVQgMAotI2VuZGlmCi0KLS8qIEZJWE1FOiBUaGlzIHNob3Vs
ZCBiZSB0dXJuZWQgaW50byBhbiAjZXJyb3IgaW52YXJpYW50ICovCi0vKiBJZiB0aGUgREZHIGpp
dCBpcyBub3QgYXZhaWxhYmxlLCB0aGVuIGRpc2FibGUgdXBwZXIgdGllcnMgYXMgd2VsbDogKi8K
LSNpZiAhRU5BQkxFKERGR19KSVQpCi0jdW5kZWYgRU5BQkxFX0ZUTF9KSVQKLSNkZWZpbmUgRU5B
QkxFX0ZUTF9KSVQgMAotI2VuZGlmCi0KLS8qIFRoaXMgY29udHJvbHMgd2hldGhlciBCMyBpcyBi
dWlsdC4gQjMgaXMgbmVlZGVkIGZvciBGVEwgSklUIGFuZCBXZWJBc3NlbWJseSAqLwotI2lmIEVO
QUJMRShGVExfSklUKQotI2RlZmluZSBFTkFCTEVfQjNfSklUIDEKLSNlbmRpZgotCi0jaWYgIWRl
ZmluZWQoRU5BQkxFX1dFQkFTU0VNQkxZKSAmJiAoRU5BQkxFKEIzX0pJVCkgJiYgUExBVEZPUk0o
Q09DT0EpICYmIENQVShBRERSRVNTNjQpKQotI2RlZmluZSBFTkFCTEVfV0VCQVNTRU1CTFkgMQot
I2VuZGlmCi0KLS8qIFRoZSBTYW1wbGluZ1Byb2ZpbGVyIGlzIHRoZSBwcm9iYWJpbGlzdGljIGFu
ZCBsb3ctb3ZlcmhlYWQgcHJvZmlsZXIgdXNlZCBieQotICogSlNDIHRvIG1lYXN1cmUgd2hlcmUg
dGltZSBpcyBzcGVudCBpbnNpZGUgYSBKYXZhU2NyaXB0IHByb2dyYW0uCi0gKiBJbiBjb25maWd1
cmF0aW9ucyBvdGhlciB0aGFuIFdpbmRvd3MgYW5kIERhcndpbiwgYmVjYXVzZSBsYXlvdXQgb2Yg
bWNvbnRleHRfdCBkZXBlbmRzIG9uIHN0YW5kYXJkIGxpYnJhcmllcyAobGlrZSBnbGliYyksCi0g
KiBzYW1wbGluZyBwcm9maWxlciBpcyBlbmFibGVkIGlmIFdlYktpdCB1c2VzIHB0aHJlYWRzIGFu
ZCBnbGliYy4gKi8KLSNpZiAhZGVmaW5lZChFTkFCTEVfU0FNUExJTkdfUFJPRklMRVIpICYmICgh
RU5BQkxFKENfTE9PUCkgJiYgKE9TKFdJTkRPV1MpIHx8IEhBVkUoTUFDSElORV9DT05URVhUKSkp
Ci0jZGVmaW5lIEVOQUJMRV9TQU1QTElOR19QUk9GSUxFUiAxCi0jZW5kaWYKLQotI2lmIEVOQUJM
RShXRUJBU1NFTUJMWSkgJiYgSEFWRShNQUNISU5FX0NPTlRFWFQpCi0jZGVmaW5lIEVOQUJMRV9X
RUJBU1NFTUJMWV9GQVNUX01FTU9SWSAxCi0jZW5kaWYKLQotLyogQ291bnRzIHVzZXMgb2Ygd3Jp
dGUgYmFycmllcnMgdXNpbmcgc2FtcGxpbmcgY291bnRlcnMuIEJlIHN1cmUgdG8gYWxzbwotICAg
c2V0IEVOQUJMRV9TQU1QTElOR19DT1VOVEVSUyB0byAxLiAqLwotI2lmICFkZWZpbmVkKEVOQUJM
RV9XUklURV9CQVJSSUVSX1BST0ZJTElORykKLSNkZWZpbmUgRU5BQkxFX1dSSVRFX0JBUlJJRVJf
UFJPRklMSU5HIDAKLSNlbmRpZgotCi0vKiBMb2dzIGFsbCBhbGxvY2F0aW9uLXJlbGF0ZWQgYWN0
aXZpdHkgdGhhdCBnb2VzIHRocm91Z2ggZmFzdE1hbGxvYyBvciB0aGUKLSAgIEpTQyBHQyAoYm90
aCBjZWxscyBhbmQgYnV0dGVyZmxpZXMpLiBBbHNvIGxvZ3MgbWFya2luZy4gTm90ZSB0aGF0IHRo
aXMKLSAgIGlzbid0IGEgY29tcGxldGVseSBhY2N1cmF0ZSB2aWV3IG9mIHRoZSBoZWFwIHNpbmNl
IGl0IGRvZXNuJ3QgaW5jbHVkZSBhbGwKLSAgIGJ1dHRlcmZseSByZXNpemUgb3BlcmF0aW9ucywg
ZG9lc24ndCB0ZWxsIHlvdSB3aGF0IGlzIGdvaW5nIG9uIHdpdGggd2VhawotICAgcmVmZXJlbmNl
cyAob3RoZXIgdGhhbiB0byB0ZWxsIHlvdSB3aGVuIHRoZXkncmUgbWFya2VkKSwgYW5kIGRvZXNu
J3QKLSAgIHRyYWNrIGRpcmVjdCBtbWFwKCkgYWxsb2NhdGlvbnMgb3IgdGhpbmdzIGxpa2UgSklU
IGFsbG9jYXRpb24uICovCi0jaWYgIWRlZmluZWQoRU5BQkxFX0FMTE9DQVRJT05fTE9HR0lORykK
LSNkZWZpbmUgRU5BQkxFX0FMTE9DQVRJT05fTE9HR0lORyAwCi0jZW5kaWYKLQotLyogRW5hYmxl
IHZlcmlmaWNhdGlvbiB0aGF0IHRoYXQgcmVnaXN0ZXIgYWxsb2NhdGlvbnMgYXJlIG5vdCBtYWRl
IHdpdGhpbiBnZW5lcmF0ZWQgY29udHJvbCBmbG93LgotICAgVHVybmVkIG9uIGZvciBkZWJ1ZyBi
dWlsZHMuICovCi0jaWYgIWRlZmluZWQoRU5BQkxFX0RGR19SRUdJU1RFUl9BTExPQ0FUSU9OX1ZB
TElEQVRJT04pICYmIEVOQUJMRShERkdfSklUKSAmJiAhZGVmaW5lZChOREVCVUcpCi0jZGVmaW5l
IEVOQUJMRV9ERkdfUkVHSVNURVJfQUxMT0NBVElPTl9WQUxJREFUSU9OIDEKLSNlbmRpZgotCi0j
aWYgIWRlZmluZWQoRU5BQkxFX1NFUEFSQVRFRF9XWF9IRUFQKSAmJiBQTEFURk9STShJT1NfRkFN
SUxZKSAmJiBDUFUoQVJNNjQpICYmICghRU5BQkxFKEZBU1RfSklUX1BFUk1JU1NJT05TKSB8fCAh
Q1BVKEFSTTY0RSkpCi0jZGVmaW5lIEVOQUJMRV9TRVBBUkFURURfV1hfSEVBUCAxCi0jZW5kaWYK
LQotLyogRGV0ZXJtaW5lIGlmIHdlIG5lZWQgdG8gZW5hYmxlIENvbXB1dGVkIEdvdG8gT3Bjb2Rl
cyBvciBub3Q6ICovCi0jaWYgSEFWRShDT01QVVRFRF9HT1RPKSB8fCAhRU5BQkxFKENfTE9PUCkK
LSNkZWZpbmUgRU5BQkxFX0NPTVBVVEVEX0dPVE9fT1BDT0RFUyAxCi0jZW5kaWYKLQotLyogUmVn
dWxhciBFeHByZXNzaW9uIFRyYWNpbmcgLSBTZXQgdG8gMSB0byB0cmFjZSBSZWdFeHAncyBpbiBq
c2MuICBSZXN1bHRzIGR1bXBlZCBhdCBleGl0ICovCi0jaWYgIWRlZmluZWQoRU5BQkxFX1JFR0VY
UF9UUkFDSU5HKQotI2RlZmluZSBFTkFCTEVfUkVHRVhQX1RSQUNJTkcgMAotI2VuZGlmCi0KLS8q
IFlldCBBbm90aGVyIFJlZ2V4IFJ1bnRpbWUgLSB0dXJuZWQgb24gYnkgZGVmYXVsdCBmb3IgSklU
IGVuYWJsZWQgcG9ydHMuICovCi0jaWYgIWRlZmluZWQoRU5BQkxFX1lBUlJfSklUKSAmJiBFTkFC
TEUoSklUKQotI2RlZmluZSBFTkFCTEVfWUFSUl9KSVQgMQotI2VuZGlmCi0KLS8qIFNldHRpbmcg
dGhpcyBmbGFnIGNvbXBhcmVzIEpJVCByZXN1bHRzIHdpdGggaW50ZXJwcmV0ZXIgcmVzdWx0cy4g
Ki8KLSNpZiAhZGVmaW5lZChFTkFCTEVfWUFSUl9KSVQpICYmIEVOQUJMRShKSVQpCi0jZGVmaW5l
IEVOQUJMRV9ZQVJSX0pJVF9ERUJVRyAwCi0jZW5kaWYKLQotLyogRW5hYmxlIEpJVCdpbmcgUmVn
dWxhciBFeHByZXNzaW9ucyB0aGF0IGhhdmUgbmVzdGVkIHBhcmVudGhlc2lzIC4gKi8KLSNpZiBF
TkFCTEUoWUFSUl9KSVQpICYmIChDUFUoQVJNNjQpIHx8IChDUFUoWDg2XzY0KSAmJiAhT1MoV0lO
RE9XUykpKQotI2RlZmluZSBFTkFCTEVfWUFSUl9KSVRfQUxMX1BBUkVOU19FWFBSRVNTSU9OUyAx
Ci0jZW5kaWYKLQotLyogRW5hYmxlIEpJVCdpbmcgUmVndWxhciBFeHByZXNzaW9ucyB0aGF0IGhh
dmUgbmVzdGVkIGJhY2sgcmVmZXJlbmNlcy4gKi8KLSNpZiBFTkFCTEUoWUFSUl9KSVQpICYmIChD
UFUoQVJNNjQpIHx8IChDUFUoWDg2XzY0KSAmJiAhT1MoV0lORE9XUykpKQotI2RlZmluZSBFTkFC
TEVfWUFSUl9KSVRfQkFDS1JFRkVSRU5DRVMgMQotI2VuZGlmCi0KLS8qIElmIGVpdGhlciB0aGUg
SklUIG9yIHRoZSBSZWdFeHAgSklUIGlzIGVuYWJsZWQsIHRoZW4gdGhlIEFzc2VtYmxlciBtdXN0
IGJlCi0gICBlbmFibGVkIGFzIHdlbGw6ICovCi0jaWYgRU5BQkxFKEpJVCkgfHwgRU5BQkxFKFlB
UlJfSklUKSB8fCAhRU5BQkxFKENfTE9PUCkKLSNpZiBkZWZpbmVkKEVOQUJMRV9BU1NFTUJMRVIp
ICYmICFFTkFCTEVfQVNTRU1CTEVSCi0jZXJyb3IgIkNhbm5vdCBlbmFibGUgdGhlIEpJVCBvciBS
ZWdFeHAgSklUIHdpdGhvdXQgZW5hYmxpbmcgdGhlIEFzc2VtYmxlciIKLSNlbHNlCi0jdW5kZWYg
RU5BQkxFX0FTU0VNQkxFUgotI2RlZmluZSBFTkFCTEVfQVNTRU1CTEVSIDEKLSNlbmRpZgotI2Vu
ZGlmCi0KLS8qIElmIHRoZSBEaXNhc3NlbWJsZXIgaXMgZW5hYmxlZCwgdGhlbiB0aGUgQXNzZW1i
bGVyIG11c3QgYmUgZW5hYmxlZCBhcyB3ZWxsOiAqLwotI2lmIEVOQUJMRShESVNBU1NFTUJMRVIp
Ci0jaWYgZGVmaW5lZChFTkFCTEVfQVNTRU1CTEVSKSAmJiAhRU5BQkxFX0FTU0VNQkxFUgotI2Vy
cm9yICJDYW5ub3QgZW5hYmxlIHRoZSBEaXNhc3NlbWJsZXIgd2l0aG91dCBlbmFibGluZyB0aGUg
QXNzZW1ibGVyIgotI2Vsc2UKLSN1bmRlZiBFTkFCTEVfQVNTRU1CTEVSCi0jZGVmaW5lIEVOQUJM
RV9BU1NFTUJMRVIgMQotI2VuZGlmCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9FWENF
UFRJT05fU0NPUEVfVkVSSUZJQ0FUSU9OKQotI2RlZmluZSBFTkFCTEVfRVhDRVBUSU9OX1NDT1BF
X1ZFUklGSUNBVElPTiBBU1NFUlRfRU5BQkxFRAotI2VuZGlmCi0KLSNpZiBFTkFCTEUoREZHX0pJ
VCkgJiYgSEFWRShNQUNISU5FX0NPTlRFWFQpICYmIChDUFUoWDg2XzY0KSB8fCBDUFUoQVJNNjQp
KQotI2RlZmluZSBFTkFCTEVfU0lHTkFMX0JBU0VEX1ZNX1RSQVBTIDEKLSNlbmRpZgotCi0vKiBD
U1MgU2VsZWN0b3IgSklUIENvbXBpbGVyICovCi0jaWYgIWRlZmluZWQoRU5BQkxFX0NTU19TRUxF
Q1RPUl9KSVQpICYmICgoQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTTY0KSB8fCAoQ1BVKEFSTV9USFVN
QjIpICYmIE9TKERBUldJTikpKSAmJiBFTkFCTEUoSklUKSAmJiAoT1MoREFSV0lOKSB8fCBQTEFU
Rk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkpKQotI2RlZmluZSBFTkFCTEVfQ1NTX1NFTEVDVE9S
X0pJVCAxCi0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKENPQ09BKSAmJiAhUExBVEZPUk0oV0FUQ0hP
UykgJiYgIVBMQVRGT1JNKEFQUExFVFYpICYmICFQTEFURk9STShNQUNDQVRBTFlTVCkKLSNkZWZp
bmUgRU5BQkxFX0RBVEFfREVURUNUSU9OIDEKLSNlbmRpZgotCi0jaWYgQ1BVKEFSTV9USFVNQjIp
IHx8IENQVShBUk02NCkKLSNkZWZpbmUgRU5BQkxFX0JSQU5DSF9DT01QQUNUSU9OIDEKLSNlbmRp
ZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX1RIUkVBRElOR19MSUJESVNQQVRDSCkgJiYgSEFWRShE
SVNQQVRDSF9IKQotI2RlZmluZSBFTkFCTEVfVEhSRUFESU5HX0xJQkRJU1BBVENIIDEKLSNlbGlm
ICFkZWZpbmVkKEVOQUJMRV9USFJFQURJTkdfT1BFTk1QKSAmJiBkZWZpbmVkKF9PUEVOTVApCi0j
ZGVmaW5lIEVOQUJMRV9USFJFQURJTkdfT1BFTk1QIDEKLSNlbGlmICFkZWZpbmVkKFRIUkVBRElO
R19HRU5FUklDKQotI2RlZmluZSBFTkFCTEVfVEhSRUFESU5HX0dFTkVSSUMgMQotI2VuZGlmCi0K
LSNpZiAhZGVmaW5lZChFTkFCTEVfR0NfVkFMSURBVElPTikgJiYgIWRlZmluZWQoTkRFQlVHKQot
I2RlZmluZSBFTkFCTEVfR0NfVkFMSURBVElPTiAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVO
QUJMRV9CSU5ESU5HX0lOVEVHUklUWSkgJiYgIU9TKFdJTkRPV1MpCi0jZGVmaW5lIEVOQUJMRV9C
SU5ESU5HX0lOVEVHUklUWSAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9UUkVFX0RF
QlVHR0lORykgJiYgIWRlZmluZWQoTkRFQlVHKQotI2RlZmluZSBFTkFCTEVfVFJFRV9ERUJVR0dJ
TkcgMQotI2VuZGlmCi0KLSNpZiBQTEFURk9STShDT0NPQSkKLSNkZWZpbmUgRU5BQkxFX1JFU09V
UkNFX1VTQUdFIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX09QRU5UWVBFX1ZFUlRJ
Q0FMKSAmJiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKLSNkZWZpbmUgRU5BQkxFX09Q
RU5UWVBFX1ZFUlRJQ0FMIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX09QRU5UWVBF
X01BVEgpICYmIChPUyhEQVJXSU4pICYmIFVTRShDRykpIHx8IChVU0UoRlJFRVRZUEUpICYmICFQ
TEFURk9STShHVEspKSB8fCAoUExBVEZPUk0oV0lOKSAmJiAoVVNFKENHKSB8fCBVU0UoQ0FJUk8p
KSkKLSNkZWZpbmUgRU5BQkxFX09QRU5UWVBFX01BVEggMQotI2VuZGlmCi0KLS8qCi0gKiBFbmFi
bGUgdGhpcyB0byBwdXQgZWFjaCBJc29IZWFwIGFuZCBvdGhlciBhbGxvY2F0aW9uIGNhdGVnb3Jp
ZXMgaW50byB0aGVpciBvd24gbWFsbG9jIGhlYXBzLCBzbyB0aGF0IHRvb2xzIGxpa2Ugdm1tYXAg
Y2FuIHNob3cgaG93IGJpZyBlYWNoIGhlYXAgaXMuCi0gKiBUdXJuIEJFTkFCTEVfTUFMTE9DX0hF
QVBfQlJFQUtET1dOIG9uIGluIGJtYWxsb2MgdG9nZXRoZXIgd2hlbiB1c2luZyB0aGlzLgotICov
Ci0jaWYgIWRlZmluZWQoRU5BQkxFX01BTExPQ19IRUFQX0JSRUFLRE9XTikKLSNkZWZpbmUgRU5B
QkxFX01BTExPQ19IRUFQX0JSRUFLRE9XTiAwCi0jZW5kaWYKLQotLyogRGlzYWJsZSBTaGFyZWRB
cnJheUJ1ZmZlcnMgdW50aWwgU3BlY3RyZSBzZWN1cml0eSBjb25jZXJucyBhcmUgbWl0aWdhdGVk
LiAqLwotI2RlZmluZSBFTkFCTEVfU0hBUkVEX0FSUkFZX0JVRkZFUiAwCi0KLSNpZiBQTEFURk9S
TShNQUMpCi0jZGVmaW5lIEVOQUJMRV9XRUJfUExBWUJBQ0tfQ09OVFJPTFNfTUFOQUdFUiAxCi0j
ZW5kaWYKLQotI2lmIFBMQVRGT1JNKENPQ09BKQotLyogRklYTUU6IFRoaXMgaXMgYSBVU0Ugc3R5
bGUgbWFjcm8sIGFzIGl0IHRyaWdnZXJzIHRoZSB1c2Ugb2YgQ0ZVUkxDb25uZWN0aW9uIGZyYW1l
d29yayBzdHVicy4gKi8KLS8qIEZJWE1FOiBJcyB0aGlzIHN0aWxsIG5lY2Vzc2FyeT8gQ0ZVUkxD
b25uZWN0aW9uIGlzbid0IHVzZWQgb24gQ29jb2EgcGxhdGZvcm1zIGFueSBtb3JlLiAqLwotI2Rl
ZmluZSBFTkFCTEVfU0VDX0lURU1fU0hJTSAxCi0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKE1BQykK
LSNkZWZpbmUgRU5BQkxFX0ZVTExfS0VZQk9BUkRfQUNDRVNTIDEKLSNlbmRpZgotCi0jaWYgKChQ
TEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oUExBWVNUQVRJT04pIHx8IFBMQVRGT1JNKFdQRSkp
ICYmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpKSB8fCBQTEFURk9STShHVEspCi0jZGVmaW5lIEVO
QUJMRV9LSU5FVElDX1NDUk9MTElORyAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9N
T05PU1BBQ0VfRk9OVF9FWENFUFRJT04pICYmICgoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19Y
X1ZFUlNJT05fTUlOX1JFUVVJUkVEIDwgMTAxNTAwKSB8fCBQTEFURk9STShXQVRDSE9TKSB8fCBQ
TEFURk9STShBUFBMRVRWKSkKLSNkZWZpbmUgRU5BQkxFX01PTk9TUEFDRV9GT05UX0VYQ0VQVElP
TiAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9QTEFURk9STV9EUklWRU5fVEVYVF9D
SEVDS0lORykgJiYgUExBVEZPUk0oTUFDQ0FUQUxZU1QpCi0jZGVmaW5lIEVOQUJMRV9QTEFURk9S
TV9EUklWRU5fVEVYVF9DSEVDS0lORyAxCi0jZW5kaWYKLQotLyogVGhpcyBmZWF0dXJlIHdvcmtz
IGJ5IGVtYmVkZGluZyB0aGUgT3Bjb2RlSUQgaW4gdGhlIDMyIGJpdCBqdXN0IGJlZm9yZSB0aGUg
Z2VuZXJhdGVkIExMaW50IGNvZGUKLSAgIHRoYXQgZXhlY3V0ZXMgZWFjaCBvcGNvZGUuIEl0IGNh
bm5vdCBiZSBzdXBwb3J0ZWQgYnkgdGhlIENMb29wIHNpbmNlIHRoZXJlJ3Mgbm8gd2F5IHRvIGVt
YmVkIHRoZQotICAgT3Bjb2RlSUQgd29yZCBpbiB0aGUgQ0xvb3AncyBzd2l0Y2ggc3RhdGVtZW50
IGNhc2VzLiBJdCBpcyBhbHNvIGN1cnJlbnRseSBub3QgaW1wbGVtZW50ZWQgZm9yIE1TVkMuCi0q
LwotI2lmICFkZWZpbmVkKEVOQUJMRV9MTElOVF9FTUJFRERFRF9PUENPREVfSUQpICYmICFFTkFC
TEUoQ19MT09QKSAmJiAhQ09NUElMRVIoTVNWQykgJiYgKENQVShYODYpIHx8IENQVShYODZfNjQp
IHx8IENQVShBUk02NCkgfHwgKENQVShBUk1fVEhVTUIyKSAmJiBPUyhEQVJXSU4pKSkKLSNkZWZp
bmUgRU5BQkxFX0xMSU5UX0VNQkVEREVEX09QQ09ERV9JRCAxCi0jZW5kaWYKLQotCi0vKiBBc3Nl
cnRzLCBpbnZhcmlhbnRzIGZvciBtYWNybyBkZWZpbml0aW9ucyAqLwotCi0jaWYgRU5BQkxFKFZJ
REVPX1RSQUNLKSAmJiAhRU5BQkxFKFZJREVPKQotI2Vycm9yICJFTkFCTEUoVklERU9fVFJBQ0sp
IHJlcXVpcmVzIEVOQUJMRShWSURFTykiCi0jZW5kaWYKLQotI2lmIEVOQUJMRShNRURJQV9DT05U
Uk9MU19TQ1JJUFQpICYmICFFTkFCTEUoVklERU8pCi0jZXJyb3IgIkVOQUJMRShNRURJQV9DT05U
Uk9MU19TQ1JJUFQpIHJlcXVpcmVzIEVOQUJMRShWSURFTykiCi0jZW5kaWYKLQotI2lmIEVOQUJM
RShJTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENIRVJTKSAmJiAhRU5BQkxFKFJFTU9URV9JTlNQ
RUNUT1IpCi0jZXJyb3IgIkVOQUJMRShJTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENIRVJTKSBy
ZXF1aXJlcyBFTkFCTEUoUkVNT1RFX0lOU1BFQ1RPUikiCi0jZW5kaWYKLQotI2lmIEVOQUJMRShJ
T1NfVE9VQ0hfRVZFTlRTKSAmJiAhRU5BQkxFKFRPVUNIX0VWRU5UUykKLSNlcnJvciAiRU5BQkxF
KElPU19UT1VDSF9FVkVOVFMpIHJlcXVpcmVzIEVOQUJMRShUT1VDSF9FVkVOVFMpIgotI2VuZGlm
Ci0KLSNpZiBFTkFCTEUoV0VCR0wpICYmICFFTkFCTEUoR1JBUEhJQ1NfQ09OVEVYVF9HTCkKLSNl
cnJvciAiRU5BQkxFKFdFQkdMKSByZXF1aXJlcyBFTkFCTEUoR1JBUEhJQ1NfQ09OVEVYVF9HTCki
Ci0jZW5kaWYKLQotI2lmIEVOQUJMRShXRUJHTDIpICYmICFFTkFCTEUoV0VCR0wpCi0jZXJyb3Ig
IkVOQUJMRShXRUJHTDIpIHJlcXVpcmVzIEVOQUJMRShXRUJHTCkiCi0jZW5kaWYKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCShyZXZpc2lvbiAyNTU1NTIpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDIwLTAyLTAyICBTYW0gV2VpbmlnICA8d2Vpbmln
QGFwcGxlLmNvbT4KKworICAgICAgICBTdGFydCBzcGxpdHRpbmcgcGxhdGZvcm0gc3BlY2lmaWMg
b3ZlcnJpZGVzIG9mIGRlZmF1bHQgZW5hYmxlIGJlaGF2aW9yIGludG8gdGhlaXIgb3duIGZpbGVz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDcxMDUK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnNob3Vs
ZFBsdWdJbkF1dG9TdGFydEZyb21PcmlnaW4pOgorICAgICAgICBTd2l0Y2ggdG8gdXNpbmcgdGhl
IEVOQUJMRSgpIGhlbHBlciBtYWNybyB0byBjb3JyZWN0bHkgZ3VhcmQgYWdhaW5zdCB0aGUgY2Fz
ZSB0aGF0CisgICAgICAgIEVOQUJMRV9QUklNQVJZX1NOQVBTSE9UVEVEX1BMVUdJTl9IRVVSSVNU
SUMgaXMgZGVmaW5lZCBhbmQgZXF1YWwgdG8gMC4KKwogMjAyMC0wMi0wMSAgTWljaGFlbCBDYXRh
bnphcm8gIDxtY2F0YW56YXJvQGdub21lLm9yZz4KIAogICAgICAgICBTaWxlbmNlIGNvbXBpbGVy
IHdhcm5pbmdzCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCShy
ZXZpc2lvbiAyNTU1NTIpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTg5Niw3ICs4OTYsNyBAQCBib29sIFdlYlByb2Nlc3M6OnNo
b3VsZFBsdWdJbkF1dG9TdGFydEZyCiAgICAgaWYgKCFwbHVnaW5PcmlnaW4uaXNFbXB0eSgpICYm
IG1fcGx1Z0luQXV0b1N0YXJ0T3JpZ2lucy5jb250YWlucyhwbHVnaW5PcmlnaW4pKQogICAgICAg
ICByZXR1cm4gdHJ1ZTsKIAotI2lmZGVmIEVOQUJMRV9QUklNQVJZX1NOQVBTSE9UVEVEX1BMVUdJ
Tl9IRVVSSVNUSUMKKyNpZiBFTkFCTEUoUFJJTUFSWV9TTkFQU0hPVFRFRF9QTFVHSU5fSEVVUklT
VElDKQogICAgIC8vIFRoZSBwbHVnaW4gd2Fzbid0IGluIHRoZSBnZW5lcmFsIHdoaXRlbGlzdCwg
c28gY2hlY2sgaWYgaXQgc2ltaWxhciB0byB0aGUgcHJpbWFyeSBwbHVnaW4gZm9yIHRoZSBwYWdl
IChpZiB3ZSd2ZSBmb3VuZCBvbmUpLgogICAgIGlmICh3ZWJQYWdlLm1hdGNoZXNQcmltYXJ5UGx1
Z0luKHBhZ2VPcmlnaW4sIHBsdWdpbk9yaWdpbiwgbWltZVR5cGUpKQogICAgICAgICByZXR1cm4g
dHJ1ZTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>389487</attachid>
            <date>2020-02-02 18:33:51 -0800</date>
            <delta_ts>2020-02-03 11:29:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207105-20200202183349.patch</filename>
            <type>text/plain</type>
            <size>197591</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNTU1NTIpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDIwLTAyLTAyICBTYW0gV2VpbmlnICA8d2Vpbmln
QGFwcGxlLmNvbT4KKworICAgICAgICBTdGFydCBzcGxpdHRpbmcgcGxhdGZvcm0gc3BlY2lmaWMg
b3ZlcnJpZGVzIG9mIGRlZmF1bHQgZW5hYmxlIGJlaGF2aW9yIGludG8gdGhlaXIgb3duIGZpbGVz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDcxMDUK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTcGxpdHMg
b3V0IHBsYXRmb3JtIHNwZWNpZmljIG92ZXJyaWRlcyBvZiBkZWZhdWx0IGVuYWJsZSBiZWhhdmlv
ciBpbnRvIHNlcGFyYXRlIGZpbGVzLCAKKyAgICAgICAgc3RhcnRpbmcgd2l0aCBvbmUgZm9yIGFs
bCBvZiB0aGUgQ29jb2EgcmVsYXRlZCBwb3J0cywgb25lIGZvciBBcHBsZSdzIFdpbmRvd3MgcG9y
dCwgYW5kCisgICAgICAgIG9uZSBmb3IgdGhlIFdpbkNhcmlvIHBvcnQuCisgICAgICAgIAorICAg
ICAgICBUaGUgcnVsZSBpcyBub3cgdGhhdCBhbGwgRU5BQkxFXyogbWFjcm9zIHNob3VsZCBoYXZl
IGEgZGVmYXVsdCBkZWZpbmVkIGluIFBsYXRmb3JtRW5hYmxlLmgsCisgICAgICAgIGJ1dCBwbGF0
Zm9ybXMgYXJlIGFsbG93ZWQgdG8gb3ZlcnJpZGUgaXQgdmlhIHRoZWlyIFBsYXRmb3JtRW5hYmxl
Ki5oIGZpbGUuIEZvciBub3csIEkgbWFudWFsbHkKKyAgICAgICAgZW5zdXJlZCB0aGF0IGFsbCB0
aGUgZGVmaW5lcyBpbiBQbGF0Zm9ybUVuYWJsZUNvY29hLmgsIFBsYXRmb3JtRW5hYmxlV2luQXBw
bGUuaCBhbmQgUGxhdGZvcm1FbmFibGVXaW5DYWlyby5oCisgICAgICAgIGFsc28gaGFkIGRlZmF1
bHRzIGluIFBsYXRmb3JtRW5hYmxlLmgsIGJ1dCBnb2luZyBmb3J3YXJkIHRoaXMgbmVlZHMgYmUg
dmFsaWRhdGVkIGVpdGhlciB0aHJvdWdoCisgICAgICAgIHNvbWUgc29ydCBvZiBtYWNyby1iYXNl
ZCB2YWxpZGF0aW9uLCB0aHJvdWdoIHRoZSBzdHlsZSBjaGVja2VyIG9yIHNvbWV0aGluZyBlbHNl
LgorCisgICAgICAgICogV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
d3RmL0NNYWtlTGlzdHMudHh0OgorICAgICAgICAqIHd0Zi9QbGF0Zm9ybUVuYWJsZS5oOgorICAg
ICAgICAqIHd0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XVEYv
d3RmL1BsYXRmb3JtRW5hYmxlLmguCisgICAgICAgICogd3RmL1BsYXRmb3JtRW5hYmxlV2luQXBw
bGUuaDogQ29waWVkIGZyb20gU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGUuaC4KKyAgICAg
ICAgKiB3dGYvUGxhdGZvcm1FbmFibGVXaW5DYWlyby5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV1RG
L3d0Zi9QbGF0Zm9ybUVuYWJsZS5oLgorCiAyMDIwLTAxLTMxICBEb24gT2xtc3RlYWQgIDxkb24u
b2xtc3RlYWRAc29ueS5jb20+CiAKICAgICAgICAgW0NNYWtlXSBBZGQgX1BSSVZBVEVfTElCUkFS
SUVTIHRvIGZyYW1ld29yawpJbmRleDogU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCShyZXZpc2lvbiAyNTU1NTIpCisrKyBTb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC00NTAsNiArNDUwLDkgQEAKIAkJN0M0MjMw
NzMyM0NFMkQ4QjAwNkU1NEQwIC8qIFBsYXRmb3JtT1MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUGxhdGZvcm1PUy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3
QzQyMzA3NDIzQ0VCMTg3MDA2RTU0RDAgLyogUGxhdGZvcm1MZWdhY3kuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1MZWdhY3kuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJN0M5NjkyOTQxRjY2MzA2RTAwMjY3QTlFIC8qIEtleVZhbHVlUGFpci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBLZXlWYWx1ZVBhaXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0M5OENEQzcyM0U3QTlCODAwMTJGMjMyIC8qIFBsYXRmb3Jt
RW5hYmxlQ29jb2EuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1F
bmFibGVDb2NvYS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3Qzk4Q0RDODIzRTdB
RkM4MDAxMkYyMzIgLyogUGxhdGZvcm1FbmFibGVXaW5BcHBsZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybUVuYWJsZVdpbkFwcGxlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTdDOThDREM5MjNFN0FGQzgwMDEyRjIzMiAvKiBQbGF0Zm9ybUVuYWJs
ZVdpbkNhaXJvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtRW5h
YmxlV2luQ2Fpcm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NCQkEwNzMxOUJC
N0ZEQzAwQkJGMDI1IC8qIE9TT2JqZWN0UHRyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IE9TT2JqZWN0UHRyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDRDBE
NUE3MUQ1NTMyMkEwMDBDQzlFMSAvKiBWYXJpYW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFZhcmlhbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NENEMy
NkYxRTJDODJCOTAwOTI5NDcwIC8qIFN0cmluZ0NvbmNhdGVuYXRlTnVtYmVycy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHJpbmdDb25jYXRlbmF0ZU51bWJlcnMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExMzAsNiArMTEzMyw5IEBACiAJCQkJN0NFRjIz
RUIyM0QxMjU3OTAwRjhCOTA0IC8qIFBsYXRmb3JtQ2FsbGluZ0NvbnZlbnRpb25zLmggKi8sCiAJ
CQkJN0M0MjMwNzIyM0NFMkQ4QTAwNkU1NEQwIC8qIFBsYXRmb3JtQ1BVLmggKi8sCiAJCQkJN0M0
MjMwNzEyM0NFMkQ4QTAwNkU1NEQwIC8qIFBsYXRmb3JtRW5hYmxlLmggKi8sCisJCQkJN0M5OENE
QzcyM0U3QTlCODAwMTJGMjMyIC8qIFBsYXRmb3JtRW5hYmxlQ29jb2EuaCAqLywKKwkJCQk3Qzk4
Q0RDODIzRTdBRkM4MDAxMkYyMzIgLyogUGxhdGZvcm1FbmFibGVXaW5BcHBsZS5oICovLAorCQkJ
CTdDOThDREM5MjNFN0FGQzgwMDEyRjIzMiAvKiBQbGF0Zm9ybUVuYWJsZVdpbkNhaXJvLmggKi8s
CiAJCQkJN0MzQTQ1RDAyM0NGQTg4MzAwN0RFM0E2IC8qIFBsYXRmb3JtSGF2ZS5oICovLAogCQkJ
CTdDNDIzMDc0MjNDRUIxODcwMDZFNTREMCAvKiBQbGF0Zm9ybUxlZ2FjeS5oICovLAogCQkJCTdD
NDIzMDczMjNDRTJEOEIwMDZFNTREMCAvKiBQbGF0Zm9ybU9TLmggKi8sCkluZGV4OiBTb3VyY2Uv
V1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9DTWFr
ZUxpc3RzLnR4dAkocmV2aXNpb24gMjU1NTUyKQorKysgU291cmNlL1dURi93dGYvQ01ha2VMaXN0
cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTE3Myw2ICsxNzMsOSBAQCBzZXQoV1RGX1BVQkxJQ19I
RUFERVJTCiAgICAgUGxhdGZvcm1DYWxsaW5nQ29udmVudGlvbnMuaAogICAgIFBsYXRmb3JtQ1BV
LmgKICAgICBQbGF0Zm9ybUVuYWJsZS5oCisgICAgUGxhdGZvcm1FbmFibGVDb2NvYS5oCisgICAg
UGxhdGZvcm1FbmFibGVXaW5BcHBsZS5oCisgICAgUGxhdGZvcm1FbmFibGVXaW5DYWlyby5oCiAg
ICAgUGxhdGZvcm1IYXZlLmgKICAgICBQbGF0Zm9ybUxlZ2FjeS5oCiAgICAgUGxhdGZvcm1PUy5o
CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlLmgJKHJldmlzaW9uIDI1NTU1MikKKysrIFNvdXJj
ZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA3LTIwMDkgVG9yY2ggTW9iaWxlLCBJbmMu
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTEgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMgU2Ftc3VuZyBFbGVj
dHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KQEAgLTY5LDMwOSArNjksMTA3IEBACiAjZW5k
aWYKICNlbmRpZgogCisKIC8qID09PT0gUGxhdGZvcm0gYWRkaXRpb25zOiBhZGRpdGlvbnMgdG8g
UGxhdGZvcm1FbmFibGUuaCBmcm9tIG91dHNpZGUgdGhlIG1haW4gcmVwb3NpdG9yeSA9PT09ICov
CiAKICNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKSAmJiBfX2hhc19pbmNsdWRlKDxXZWJLaXRB
ZGRpdGlvbnMvQWRkaXRpb25hbEZlYXR1cmVEZWZpbmVzLmg+KQogI2luY2x1ZGUgPFdlYktpdEFk
ZGl0aW9ucy9BZGRpdGlvbmFsRmVhdHVyZURlZmluZXMuaD4KICNlbmRpZgogCi0vKiBGSVhNRTog
TW92ZSBvdXQgdGhlIFBMQVRGT1JNIHNwZWNpZmljIHJ1bGVzIGludG8gcGxhdGZvcm0gc3BlY2lm
aWMgZmlsZXMuICovCi0KLS8qIC0tLS0tLS0tLSBBcHBsZSBpT1MgKGJ1dCBub3QgbWFjT1MpIHBv
cnQgLS0tLS0tLS0tICovCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKIAotI2lmICFkZWZpbmVk
KEVOQUJMRV9BSVJQTEFZX1BJQ0tFUikKLSNpZiAhUExBVEZPUk0oTUFDQ0FUQUxZU1QpCi0jZGVm
aW5lIEVOQUJMRV9BSVJQTEFZX1BJQ0tFUiAxCi0jZW5kaWYKLSNlbmRpZgogCi0jaWYgIWRlZmlu
ZWQoRU5BQkxFX0FQUExFX1BBWV9SRU1PVEVfVUkpCi0jaWYgIVBMQVRGT1JNKEFQUExFVFYpICYm
ICFQTEFURk9STShNQUNDQVRBTFlTVCkgJiYgIVBMQVRGT1JNKFdBVENIT1MpCi0jZGVmaW5lIEVO
QUJMRV9BUFBMRV9QQVlfUkVNT1RFX1VJIDEKLSNlbmRpZgotI2VuZGlmCisvKiA9PT09IFBsYXRm
b3JtIHNwZWNpZmljIGRlZmF1bHRzID09PT0gKi8KIAotI2lmICFkZWZpbmVkKEVOQUJMRV9DT05U
RU5UX0VYVEVOU0lPTlMpCi0jZGVmaW5lIEVOQUJMRV9DT05URU5UX0VYVEVOU0lPTlMgMQotI2Vu
ZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfQ09OVEVYVF9NRU5VUykKLSNkZWZpbmUgRU5BQkxF
X0NPTlRFWFRfTUVOVVMgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfQ09OVEVYVF9N
RU5VX0VWRU5UKQotI2lmICFQTEFURk9STShNQUNDQVRBTFlTVCkKLSNkZWZpbmUgRU5BQkxFX0NP
TlRFWFRfTUVOVV9FVkVOVCAwCi0jZW5kaWYKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxF
X0NVU1RPTV9DVVJTT1JfU1VQUE9SVCkKLSNkZWZpbmUgRU5BQkxFX0NVU1RPTV9DVVJTT1JfU1VQ
UE9SVCAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9EUkFHX1NVUFBPUlQpCi0jZGVm
aW5lIEVOQUJMRV9EUkFHX1NVUFBPUlQgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVf
R0VPTE9DQVRJT04pCi0jZGVmaW5lIEVOQUJMRV9HRU9MT0NBVElPTiAxCi0jZW5kaWYKLQotI2lm
ICFkZWZpbmVkKEVOQUJMRV9JTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENIRVJTKQotI2RlZmlu
ZSBFTkFCTEVfSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUyAxCisvKiAtLS0tLS0tLS0g
QXBwbGUgQ29jb2EgcGxhdGZvcm1zIC0tLS0tLS0tLSAqLworI2lmIFBMQVRGT1JNKENPQ09BKQor
I2luY2x1ZGUgPHd0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmg+CiAjZW5kaWYKIAotI2lmICFkZWZp
bmVkKEVOQUJMRV9JTlNQRUNUT1JfVEVMRU1FVFJZKQotI2RlZmluZSBFTkFCTEVfSU5TUEVDVE9S
X1RFTEVNRVRSWSAwCisvKiAtLS0tLS0tLS0gQXBwbGUgV2luZG93cyBwb3J0IC0tLS0tLS0tLSAq
LworI2lmIFBMQVRGT1JNKFdJTikgJiYgIVBMQVRGT1JNKFdJTl9DQUlSTykKKyNpbmNsdWRlIDx3
dGYvUGxhdGZvcm1FbmFibGVXaW5BcHBsZS5oPgogI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChFTkFC
TEVfTEVUVEVSUFJFU1MpCi0jZGVmaW5lIEVOQUJMRV9MRVRURVJQUkVTUyAxCisvKiAtLS0tLS0t
LS0gV2luZG93cyBDQUlSTyBwb3J0IC0tLS0tLS0tLSAqLworI2lmIFBMQVRGT1JNKFdJTl9DQUlS
TykKKyNpbmNsdWRlIDx3dGYvUGxhdGZvcm1FbmFibGVXaW5DYWlyby5oPgogI2VuZGlmCiAKLSNp
ZiAhZGVmaW5lZChFTkFCTEVfQVVUT0NPUlJFQ1QpCi0jZGVmaW5lIEVOQUJMRV9BVVRPQ09SUkVD
VCAxCi0jZW5kaWYKIAotI2lmICFkZWZpbmVkKEVOQUJMRV9BVVRPQ0FQSVRBTElaRSkKLSNkZWZp
bmUgRU5BQkxFX0FVVE9DQVBJVEFMSVpFIDEKLSNlbmRpZgogCi0jaWYgIWRlZmluZWQoRU5BQkxF
X0lPU19HRVNUVVJFX0VWRU5UUykgJiYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKLSNkZWZpbmUg
RU5BQkxFX0lPU19HRVNUVVJFX0VWRU5UUyAxCi0jZW5kaWYKKy8qIC0tLS0tLS0tLSAgRU5BQkxF
IG1hY3JvIGRlZmF1bHRzIC0tLS0tLS0tLSAqLwogCi0jaWYgIWRlZmluZWQoRU5BQkxFX1RFWFRf
QVVUT1NJWklORykKLSNkZWZpbmUgRU5BQkxFX1RFWFRfQVVUT1NJWklORyAxCi0jZW5kaWYKKy8q
IERvIG5vdCB1c2UgUExBVEZPUk0oKSB0ZXN0cyBpbiB0aGlzIHNlY3Rpb24gISAqLwogCi0jaWYg
IWRlZmluZWQoRU5BQkxFX0lPU19UT1VDSF9FVkVOVFMpICYmIFVTRShBUFBMRV9JTlRFUk5BTF9T
REspCi0jZGVmaW5lIEVOQUJMRV9JT1NfVE9VQ0hfRVZFTlRTIDEKKyNpZiAhZGVmaW5lZChFTkFC
TEVfV0VCUFJPQ0VTU19OU1JVTkxPT1ApCisjZGVmaW5lIEVOQUJMRV9XRUJQUk9DRVNTX05TUlVO
TE9PUCAwCiAjZW5kaWYKIAotI2lmICFkZWZpbmVkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKQotI2Rl
ZmluZSBFTkFCTEVfTUVURVJfRUxFTUVOVCAwCisjaWYgIWRlZmluZWQoRU5BQkxFX1dFQlBST0NF
U1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQorI2RlZmluZSBFTkFCTEVfV0VCUFJPQ0VTU19XSU5E
T1dTRVJWRVJfQkxPQ0tJTkcgMAogI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChFTkFCTEVfTkVUU0NB
UEVfUExVR0lOX0FQSSkKLSNkZWZpbmUgRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9BUEkgMAorI2lm
ICFkZWZpbmVkKEVOQUJMRV9NQUNfR0VTVFVSRV9FVkVOVFMpCisjZGVmaW5lIEVOQUJMRV9NQUNf
R0VTVFVSRV9FVkVOVFMgMAogI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChFTkFCTEVfT1JJRU5UQVRJ
T05fRVZFTlRTKQotI2RlZmluZSBFTkFCTEVfT1JJRU5UQVRJT05fRVZFTlRTIDEKKyNpZiAhZGVm
aW5lZChFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkpCisjZGVmaW5lIEVOQUJMRV9DVVJTT1JfVklT
SUJJTElUWSAwCiAjZW5kaWYKIAotI2lmICFkZWZpbmVkKEVOQUJMRV9QT0lOVEVSX0xPQ0spCi0j
ZGVmaW5lIEVOQUJMRV9QT0lOVEVSX0xPQ0sgMAorI2lmICFkZWZpbmVkKEVOQUJMRV9BSVJQTEFZ
X1BJQ0tFUikKKyNkZWZpbmUgRU5BQkxFX0FJUlBMQVlfUElDS0VSIDAKICNlbmRpZgogCi0jaWYg
IWRlZmluZWQoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpCi0jZGVmaW5lIEVOQUJMRV9SRU1PVEVf
SU5TUEVDVE9SIDEKKyNpZiAhZGVmaW5lZChFTkFCTEVfQVBQTEVfUEFZX1JFTU9URV9VSSkKKyNk
ZWZpbmUgRU5BQkxFX0FQUExFX1BBWV9SRU1PVEVfVUkgMAogI2VuZGlmCiAKLSNpZiAhZGVmaW5l
ZChFTkFCTEVfVEVYVF9DQVJFVCkKLSNkZWZpbmUgRU5BQkxFX1RFWFRfQ0FSRVQgMAorI2lmICFk
ZWZpbmVkKEVOQUJMRV9BVVRPQ09SUkVDVCkKKyNkZWZpbmUgRU5BQkxFX0FVVE9DT1JSRUNUIDAK
ICNlbmRpZgogCi0jaWYgIWRlZmluZWQoRU5BQkxFX1RFWFRfU0VMRUNUSU9OKQotI2RlZmluZSBF
TkFCTEVfVEVYVF9TRUxFQ1RJT04gMAorI2lmICFkZWZpbmVkKEVOQUJMRV9BVVRPQ0FQSVRBTEla
RSkKKyNkZWZpbmUgRU5BQkxFX0FVVE9DQVBJVEFMSVpFIDAKICNlbmRpZgogCi0vKiBGSVhNRTog
UmVtb3ZlIHRoZSBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKSBjb25qdW5jdCBvbmNlIHdlIHN1cHBv
cnQgdG91Y2ggZXZlbnRzIHdoZW4gYnVpbGRpbmcgYWdhaW5zdAotdGhlIHB1YmxpYyBpT1MgU0RL
LiBTZWUgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE3OTE2Nz4uICovCi0jaWYgIWRlZmluZWQoRU5B
QkxFX1RPVUNIX0VWRU5UUykgJiYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKLSNkZWZpbmUgRU5B
QkxFX1RPVUNIX0VWRU5UUyAxCisjaWYgIWRlZmluZWQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykK
KyNkZWZpbmUgRU5BQkxFX1RFWFRfQVVUT1NJWklORyAwCiAjZW5kaWYKIAotI2lmICFkZWZpbmVk
KEVOQUJMRV9XRUJfQVJDSElWRSkKLSNkZWZpbmUgRU5BQkxFX1dFQl9BUkNISVZFIDEKKyNpZiAh
ZGVmaW5lZChFTkFCTEVfSU9TX0dFU1RVUkVfRVZFTlRTKQorI2RlZmluZSBFTkFCTEVfSU9TX0dF
U1RVUkVfRVZFTlRTIDAKICNlbmRpZgogCi0jaWYgIWRlZmluZWQoRU5BQkxFX1dFQkdMKQotI2Rl
ZmluZSBFTkFCTEVfV0VCR0wgMQorI2lmICFkZWZpbmVkKEVOQUJMRV9JT1NfVE9VQ0hfRVZFTlRT
KQorI2RlZmluZSBFTkFCTEVfSU9TX1RPVUNIX0VWRU5UUyAwCiAjZW5kaWYKIAogI2lmICFkZWZp
bmVkKEVOQUJMRV9QUklNQVJZX1NOQVBTSE9UVEVEX1BMVUdJTl9IRVVSSVNUSUMpCi0jZGVmaW5l
IEVOQUJMRV9QUklNQVJZX1NOQVBTSE9UVEVEX1BMVUdJTl9IRVVSSVNUSUMgMQorI2RlZmluZSBF
TkFCTEVfUFJJTUFSWV9TTkFQU0hPVFRFRF9QTFVHSU5fSEVVUklTVElDIDAKICNlbmRpZgogCi0j
aWYgIWRlZmluZWQoRU5BQkxFX0RPV05MT0FEX0FUVFJJQlVURSkKLSNkZWZpbmUgRU5BQkxFX0RP
V05MT0FEX0FUVFJJQlVURSAxCisjaWYgIWRlZmluZWQoRU5BQkxFX1dLUERGVklFVykKKyNkZWZp
bmUgRU5BQkxFX1dLUERGVklFVyAwCiAjZW5kaWYKIAotI2lmICFkZWZpbmVkKEVOQUJMRV9XS1BE
RlZJRVcpICYmIFBMQVRGT1JNKElPUykKLSNkZWZpbmUgRU5BQkxFX1dLUERGVklFVyAxCi0jZW5k
aWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9NRURJQV9TT1VSQ0UpCi0jZGVmaW5lIEVOQUJMRV9N
RURJQV9TT1VSQ0UgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfUFJFVklFV19DT05W
RVJURVIpICYmIFBMQVRGT1JNKElPUykKLSNkZWZpbmUgRU5BQkxFX1BSRVZJRVdfQ09OVkVSVEVS
IDEKKyNpZiAhZGVmaW5lZChFTkFCTEVfUFJFVklFV19DT05WRVJURVIpCisjZGVmaW5lIEVOQUJM
RV9QUkVWSUVXX0NPTlZFUlRFUiAwCiAjZW5kaWYKIAogI2lmICFkZWZpbmVkKEVOQUJMRV9NRVRB
X1ZJRVdQT1JUKQotI2RlZmluZSBFTkFCTEVfTUVUQV9WSUVXUE9SVCAxCisjZGVmaW5lIEVOQUJM
RV9NRVRBX1ZJRVdQT1JUIDAKICNlbmRpZgogCi0jZW5kaWYgLyogUExBVEZPUk0oSU9TX0ZBTUlM
WSkgKi8KLQotLyogLS0tLS0tLS0tIEFwcGxlIHdhdGNoT1MgcG9ydCAtLS0tLS0tLS0gKi8KLSNp
ZiBQTEFURk9STShXQVRDSE9TKQotCi0jZW5kaWYgLyogUExBVEZPUk0oV0FUQ0hPUykgKi8KLQot
LyogLS0tLS0tLS0tIEFwcGxlIG1hY09TIHBvcnQgKG5vdCBpT1MpIC0tLS0tLS0tLSAqLwotI2lm
IFBMQVRGT1JNKE1BQykKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9DT05URU5UX0VYVEVOU0lPTlMp
Ci0jZGVmaW5lIEVOQUJMRV9DT05URU5UX0VYVEVOU0lPTlMgMQotI2VuZGlmCi0KLSNpZiAhZGVm
aW5lZChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpCi0jZGVmaW5lIEVOQUJMRV9GVUxMU0NSRUVOX0FQ
SSAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9SRU1PVEVfSU5TUEVDVE9SKQotI2Rl
ZmluZSBFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUiAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVO
QUJMRV9JTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENIRVJTKQotI2RlZmluZSBFTkFCTEVfSU5T
UEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUyAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVO
QUJMRV9JTlNQRUNUT1JfVEVMRU1FVFJZKQotI2RlZmluZSBFTkFCTEVfSU5TUEVDVE9SX1RFTEVN
RVRSWSAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9TTU9PVEhfU0NST0xMSU5HKQot
I2RlZmluZSBFTkFCTEVfU01PT1RIX1NDUk9MTElORyAxCi0jZW5kaWYKLQotI2lmIEVOQUJMRShW
SURFTykKLSNpZiAhZGVmaW5lZChFTkFCTEVfVklERU9fVFJBQ0spCi0jZGVmaW5lIEVOQUJMRV9W
SURFT19UUkFDSyAxCi0jZW5kaWYKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX1dFQl9B
UkNISVZFKQotI2RlZmluZSBFTkFCTEVfV0VCX0FSQ0hJVkUgMQotI2VuZGlmCi0KLSNpZiAhZGVm
aW5lZChFTkFCTEVfV0VCX0FVRElPKQotI2RlZmluZSBFTkFCTEVfV0VCX0FVRElPIDEKLSNlbmRp
ZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKQotI2RlZmluZSBFTkFC
TEVfQ1VSU09SX1ZJU0lCSUxJVFkgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfUFJJ
TUFSWV9TTkFQU0hPVFRFRF9QTFVHSU5fSEVVUklTVElDKQotI2RlZmluZSBFTkFCTEVfUFJJTUFS
WV9TTkFQU0hPVFRFRF9QTFVHSU5fSEVVUklTVElDIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQo
RU5BQkxFX01BQ19HRVNUVVJFX0VWRU5UUykgJiYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKLSNk
ZWZpbmUgRU5BQkxFX01BQ19HRVNUVVJFX0VWRU5UUyAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVk
KEVOQUJMRV9XRUJQUk9DRVNTX05TUlVOTE9PUCkKLSNkZWZpbmUgRU5BQkxFX1dFQlBST0NFU1Nf
TlNSVU5MT09QIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNDAwCi0jZW5k
aWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lO
RykKLSNkZWZpbmUgRU5BQkxFX1dFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HIEVOQUJM
RV9XRUJQUk9DRVNTX05TUlVOTE9PUAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfTUVE
SUFfU09VUkNFKQotI2RlZmluZSBFTkFCTEVfTUVESUFfU09VUkNFIDEKLSNlbmRpZgotCi0jZW5k
aWYgLyogUExBVEZPUk0oTUFDKSAqLwotCi0vKiAtLS0tLS0tLS0gQXBwbGUgQ29jb2EgcGxhdGZv
cm1zIC0tLS0tLS0tLSAqLwotCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0KLSNpZiAhZGVmaW5lZChF
TkFCTEVfTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkKLSNpZiBQTEFURk9STShNQUNDQVRBTFlTVCkK
LSNkZWZpbmUgRU5BQkxFX0xFR0FDWV9FTkNSWVBURURfTUVESUEgMAotI2Vsc2UKLSNkZWZpbmUg
RU5BQkxFX0xFR0FDWV9FTkNSWVBURURfTUVESUEgMQotI2VuZGlmCi0jZW5kaWYKIAogI2lmICFk
ZWZpbmVkKEVOQUJMRV9GSUxFX1JFUExBQ0VNRU5UKQotI2RlZmluZSBFTkFCTEVfRklMRV9SRVBM
QUNFTUVOVCAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9QQVlNRU5UX1JFUVVFU1Qp
Ci0jZGVmaW5lIEVOQUJMRV9QQVlNRU5UX1JFUVVFU1QgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5l
ZChFTkFCTEVfQVNZTkNfU0NST0xMSU5HKQotI2RlZmluZSBFTkFCTEVfQVNZTkNfU0NST0xMSU5H
IDEKKyNkZWZpbmUgRU5BQkxFX0ZJTEVfUkVQTEFDRU1FTlQgMAogI2VuZGlmCiAKICNpZiAhZGVm
aW5lZChFTkFCTEVfVUlfU0lERV9DT01QT1NJVElORykKLSNkZWZpbmUgRU5BQkxFX1VJX1NJREVf
Q09NUE9TSVRJTkcgMQotI2VuZGlmCi0KLSNlbmRpZiAvKiBQTEFURk9STShDT0NPQSkgKi8KLQot
I2lmICFQTEFURk9STShDT0NPQSkKLQotI2lmICFkZWZpbmVkKEpTQ19PQkpDX0FQSV9FTkFCTEVE
KQotI2RlZmluZSBKU0NfT0JKQ19BUElfRU5BQkxFRCAwCisjZGVmaW5lIEVOQUJMRV9VSV9TSURF
X0NPTVBPU0lUSU5HIDAKICNlbmRpZgogCi0jZW5kaWYgLyogIVBMQVRGT1JNKENPQ09BKSAqLwot
Ci0KLS8qIC0tLS0tLS0tLSBBcHBsZSBXaW5kb3dzIHBvcnQgLS0tLS0tLS0tICovCi0jaWYgUExB
VEZPUk0oV0lOKSAmJiAhUExBVEZPUk0oV0lOX0NBSVJPKQotCi0jaWYgIWRlZmluZWQoRU5BQkxF
X0ZVTExTQ1JFRU5fQVBJKQotI2RlZmluZSBFTkFCTEVfRlVMTFNDUkVFTl9BUEkgMQotI2VuZGlm
Ci0KLSNpZiAhZGVmaW5lZChFTkFCTEVfV0VCX0FSQ0hJVkUpCi0jZGVmaW5lIEVOQUJMRV9XRUJf
QVJDSElWRSAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJHTCkKLSNkZWZpbmUg
RU5BQkxFX1dFQkdMIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0dFT0xPQ0FUSU9O
KQotI2RlZmluZSBFTkFCTEVfR0VPTE9DQVRJT04gMQotI2VuZGlmCi0KLSNlbmRpZiAvKiBQTEFU
Rk9STShXSU4pICYmICFQTEFURk9STShXSU5fQ0FJUk8pICovCi0KLS8qIC0tLS0tLS0tLSBXaW5k
b3dzIENBSVJPIHBvcnQgLS0tLS0tLS0tICovCi0vKiBQTEFURk9STShXSU5fQ0FJUk8pIGlzIGEg
c3BlY2lhbGl6YXRpb24gb2YgUExBVEZPUk0oV0lOKS4gKi8KLS8qIFBMQVRGT1JNKFdJTikgaXMg
YWx3YXlzIGVuYWJsZWQgd2hlbiBQTEFURk9STShXSU5fQ0FJUk8pIGlzIGVuYWJsZWQuICovCi0j
aWYgUExBVEZPUk0oV0lOX0NBSVJPKQotCi0jaWYgIWRlZmluZWQoRU5BQkxFX1dFQl9BUkNISVZF
KQotI2RlZmluZSBFTkFCTEVfV0VCX0FSQ0hJVkUgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChF
TkFCTEVfV0VCR0wpCi0jZGVmaW5lIEVOQUJMRV9XRUJHTCAxCi0jZW5kaWYKLQotI2lmICFkZWZp
bmVkKEVOQUJMRV9HRU9MT0NBVElPTikKLSNkZWZpbmUgRU5BQkxFX0dFT0xPQ0FUSU9OIDEKLSNl
bmRpZgotCi0jZW5kaWYgLyogUExBVEZPUk0oV0lOX0NBSVJPKSAqLwotCi0vKiBFTkFCTEUgbWFj
cm8gZGVmYXVsdHMgZm9yIFdlYkNvcmUgKi8KLS8qIERvIG5vdCB1c2UgUExBVEZPUk0oKSB0ZXN0
cyBpbiB0aGlzIHNlY3Rpb24gISAqLwotCiAjaWYgIWRlZmluZWQoRU5BQkxFXzNEX1RSQU5TRk9S
TVMpCiAjZGVmaW5lIEVOQUJMRV8zRF9UUkFOU0ZPUk1TIDAKICNlbmRpZgpAQCAtNzE5LDggKzUx
Nyw1MyBAQCB0aGUgcHVibGljIGlPUyBTREsuIFNlZSA8aHR0cHM6Ly93ZWJraXQuCiAjZGVmaW5l
IEVOQUJMRV9TRVJWSUNFX1dPUktFUiAxCiAjZW5kaWYKIAorI2lmICFkZWZpbmVkKEVOQUJMRV9N
T05PU1BBQ0VfRk9OVF9FWENFUFRJT04pCisjZGVmaW5lIEVOQUJMRV9NT05PU1BBQ0VfRk9OVF9F
WENFUFRJT04gMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfRlVMTF9LRVlCT0FSRF9B
Q0NFU1MpCisjZGVmaW5lIEVOQUJMRV9GVUxMX0tFWUJPQVJEX0FDQ0VTUyAwCisjZW5kaWYKKwor
I2lmICFkZWZpbmVkKEVOQUJMRV9QTEFURk9STV9EUklWRU5fVEVYVF9DSEVDS0lORykKKyNkZWZp
bmUgRU5BQkxFX1BMQVRGT1JNX0RSSVZFTl9URVhUX0NIRUNLSU5HIDAKKyNlbmRpZgogCi0vKiBK
SVQgRmVhdHVyZXMgKi8KKyNpZiAhZGVmaW5lZChFTkFCTEVfV0VCX1BMQVlCQUNLX0NPTlRST0xT
X01BTkFHRVIpCisjZGVmaW5lIEVOQUJMRV9XRUJfUExBWUJBQ0tfQ09OVFJPTFNfTUFOQUdFUiAw
CisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9SRVNPVVJDRV9VU0FHRSkKKyNkZWZpbmUg
RU5BQkxFX1JFU09VUkNFX1VTQUdFIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1NF
Q19JVEVNX1NISU0pCisjZGVmaW5lIEVOQUJMRV9TRUNfSVRFTV9TSElNIDAKKyNlbmRpZgorCisj
aWYgIWRlZmluZWQoRU5BQkxFX0RBVEFfREVURUNUSU9OKQorI2RlZmluZSBFTkFCTEVfREFUQV9E
RVRFQ1RJT04gMAorI2VuZGlmCisKKy8qCisgKiBFbmFibGUgdGhpcyB0byBwdXQgZWFjaCBJc29I
ZWFwIGFuZCBvdGhlciBhbGxvY2F0aW9uIGNhdGVnb3JpZXMgaW50byB0aGVpciBvd24gbWFsbG9j
IGhlYXBzLCBzbyB0aGF0IHRvb2xzIGxpa2Ugdm1tYXAgY2FuIHNob3cgaG93IGJpZyBlYWNoIGhl
YXAgaXMuCisgKiBUdXJuIEJFTkFCTEVfTUFMTE9DX0hFQVBfQlJFQUtET1dOIG9uIGluIGJtYWxs
b2MgdG9nZXRoZXIgd2hlbiB1c2luZyB0aGlzLgorICovCisjaWYgIWRlZmluZWQoRU5BQkxFX01B
TExPQ19IRUFQX0JSRUFLRE9XTikKKyNkZWZpbmUgRU5BQkxFX01BTExPQ19IRUFQX0JSRUFLRE9X
TiAwCisjZW5kaWYKKworCisKKworLyogRklYTUU6IFRoaXMgc2VjdGlvbiBvZiB0aGUgZmlsZSBo
YXMgbm90IGJlZW4gY2xlYW5lZCB1cCB5ZXQgYW5kIG5lZWRzIG1ham9yIHdvcmsuICovCisKKy8q
IEZJWE1FOiBKU0NfT0JKQ19BUElfRU5BQkxFRCBkb2VzIG5vdCBtYXRjaCB0aGUgbm9ybWFsIEVO
QUJMRSBuYW1pbmcgY29udmVudGlvbi4gKi8KKyNpZiAhUExBVEZPUk0oQ09DT0EpCisjaWYgIWRl
ZmluZWQoSlNDX09CSkNfQVBJX0VOQUJMRUQpCisjZGVmaW5lIEpTQ19PQkpDX0FQSV9FTkFCTEVE
IDAKKyNlbmRpZgorI2VuZGlmCiAKIC8qIFRoZSBKSVQgaXMgZW5hYmxlZCBieSBkZWZhdWx0IG9u
IGFsbCB4ODYtNjQgJiBBUk02NCBwbGF0Zm9ybXMuICovCiAjaWYgIWRlZmluZWQoRU5BQkxFX0pJ
VCkgJiYgKENQVShYODZfNjQpIHx8IENQVShBUk02NCkpICYmICFDUFUoQVBQTEVfQVJNVjdLKQpA
QCAtOTQyLDEwICs3ODUsNiBAQCB0aGUgcHVibGljIGlPUyBTREsuIFNlZSA8aHR0cHM6Ly93ZWJr
aXQuCiAjZGVmaW5lIEVOQUJMRV9DU1NfU0VMRUNUT1JfSklUIDEKICNlbmRpZgogCi0jaWYgUExB
VEZPUk0oQ09DT0EpICYmICFQTEFURk9STShXQVRDSE9TKSAmJiAhUExBVEZPUk0oQVBQTEVUVikg
JiYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQotI2RlZmluZSBFTkFCTEVfREFUQV9ERVRFQ1RJT04g
MQotI2VuZGlmCi0KICNpZiBDUFUoQVJNX1RIVU1CMikgfHwgQ1BVKEFSTTY0KQogI2RlZmluZSBF
TkFCTEVfQlJBTkNIX0NPTVBBQ1RJT04gMQogI2VuZGlmCkBAIC05NzAsMTAgKzgwOSw2IEBAIHRo
ZSBwdWJsaWMgaU9TIFNESy4gU2VlIDxodHRwczovL3dlYmtpdC4KICNkZWZpbmUgRU5BQkxFX1RS
RUVfREVCVUdHSU5HIDEKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0jZGVmaW5lIEVO
QUJMRV9SRVNPVVJDRV9VU0FHRSAxCi0jZW5kaWYKLQogI2lmICFkZWZpbmVkKEVOQUJMRV9PUEVO
VFlQRV9WRVJUSUNBTCkgJiYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAjZGVmaW5l
IEVOQUJMRV9PUEVOVFlQRV9WRVJUSUNBTCAxCiAjZW5kaWYKQEAgLTk4Miw0MyArODE3LDE1IEBA
IHRoZSBwdWJsaWMgaU9TIFNESy4gU2VlIDxodHRwczovL3dlYmtpdC4KICNkZWZpbmUgRU5BQkxF
X09QRU5UWVBFX01BVEggMQogI2VuZGlmCiAKLS8qCi0gKiBFbmFibGUgdGhpcyB0byBwdXQgZWFj
aCBJc29IZWFwIGFuZCBvdGhlciBhbGxvY2F0aW9uIGNhdGVnb3JpZXMgaW50byB0aGVpciBvd24g
bWFsbG9jIGhlYXBzLCBzbyB0aGF0IHRvb2xzIGxpa2Ugdm1tYXAgY2FuIHNob3cgaG93IGJpZyBl
YWNoIGhlYXAgaXMuCi0gKiBUdXJuIEJFTkFCTEVfTUFMTE9DX0hFQVBfQlJFQUtET1dOIG9uIGlu
IGJtYWxsb2MgdG9nZXRoZXIgd2hlbiB1c2luZyB0aGlzLgotICovCi0jaWYgIWRlZmluZWQoRU5B
QkxFX01BTExPQ19IRUFQX0JSRUFLRE9XTikKLSNkZWZpbmUgRU5BQkxFX01BTExPQ19IRUFQX0JS
RUFLRE9XTiAwCi0jZW5kaWYKIAogLyogRGlzYWJsZSBTaGFyZWRBcnJheUJ1ZmZlcnMgdW50aWwg
U3BlY3RyZSBzZWN1cml0eSBjb25jZXJucyBhcmUgbWl0aWdhdGVkLiAqLwogI2RlZmluZSBFTkFC
TEVfU0hBUkVEX0FSUkFZX0JVRkZFUiAwCiAKLSNpZiBQTEFURk9STShNQUMpCi0jZGVmaW5lIEVO
QUJMRV9XRUJfUExBWUJBQ0tfQ09OVFJPTFNfTUFOQUdFUiAxCi0jZW5kaWYKLQotI2lmIFBMQVRG
T1JNKENPQ09BKQotLyogRklYTUU6IFRoaXMgaXMgYSBVU0Ugc3R5bGUgbWFjcm8sIGFzIGl0IHRy
aWdnZXJzIHRoZSB1c2Ugb2YgQ0ZVUkxDb25uZWN0aW9uIGZyYW1ld29yayBzdHVicy4gKi8KLS8q
IEZJWE1FOiBJcyB0aGlzIHN0aWxsIG5lY2Vzc2FyeT8gQ0ZVUkxDb25uZWN0aW9uIGlzbid0IHVz
ZWQgb24gQ29jb2EgcGxhdGZvcm1zIGFueSBtb3JlLiAqLwotI2RlZmluZSBFTkFCTEVfU0VDX0lU
RU1fU0hJTSAxCi0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKE1BQykKLSNkZWZpbmUgRU5BQkxFX0ZV
TExfS0VZQk9BUkRfQUNDRVNTIDEKLSNlbmRpZgogCiAjaWYgKChQTEFURk9STShDT0NPQSkgfHwg
UExBVEZPUk0oUExBWVNUQVRJT04pIHx8IFBMQVRGT1JNKFdQRSkpICYmIEVOQUJMRShBU1lOQ19T
Q1JPTExJTkcpKSB8fCBQTEFURk9STShHVEspCiAjZGVmaW5lIEVOQUJMRV9LSU5FVElDX1NDUk9M
TElORyAxCiAjZW5kaWYKIAotI2lmICFkZWZpbmVkKEVOQUJMRV9NT05PU1BBQ0VfRk9OVF9FWENF
UFRJT04pICYmICgoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEIDwgMTAxNTAwKSB8fCBQTEFURk9STShXQVRDSE9TKSB8fCBQTEFURk9STShBUFBMRVRWKSkK
LSNkZWZpbmUgRU5BQkxFX01PTk9TUEFDRV9GT05UX0VYQ0VQVElPTiAxCi0jZW5kaWYKLQotI2lm
ICFkZWZpbmVkKEVOQUJMRV9QTEFURk9STV9EUklWRU5fVEVYVF9DSEVDS0lORykgJiYgUExBVEZP
Uk0oTUFDQ0FUQUxZU1QpCi0jZGVmaW5lIEVOQUJMRV9QTEFURk9STV9EUklWRU5fVEVYVF9DSEVD
S0lORyAxCi0jZW5kaWYKLQogLyogVGhpcyBmZWF0dXJlIHdvcmtzIGJ5IGVtYmVkZGluZyB0aGUg
T3Bjb2RlSUQgaW4gdGhlIDMyIGJpdCBqdXN0IGJlZm9yZSB0aGUgZ2VuZXJhdGVkIExMaW50IGNv
ZGUKICAgIHRoYXQgZXhlY3V0ZXMgZWFjaCBvcGNvZGUuIEl0IGNhbm5vdCBiZSBzdXBwb3J0ZWQg
YnkgdGhlIENMb29wIHNpbmNlIHRoZXJlJ3Mgbm8gd2F5IHRvIGVtYmVkIHRoZQogICAgT3Bjb2Rl
SUQgd29yZCBpbiB0aGUgQ0xvb3AncyBzd2l0Y2ggc3RhdGVtZW50IGNhc2VzLiBJdCBpcyBhbHNv
IGN1cnJlbnRseSBub3QgaW1wbGVtZW50ZWQgZm9yIE1TVkMuCkBAIC0xMDI4LDYgKzgzNSw5IEBA
IHRoZSBwdWJsaWMgaU9TIFNESy4gU2VlIDxodHRwczovL3dlYmtpdC4KICNlbmRpZgogCiAKKwor
CisKIC8qIEFzc2VydHMsIGludmFyaWFudHMgZm9yIG1hY3JvIGRlZmluaXRpb25zICovCiAKICNp
ZiBFTkFCTEUoVklERU9fVFJBQ0spICYmICFFTkFCTEUoVklERU8pCkluZGV4OiBTb3VyY2UvV1RG
L3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYv
UGxhdGZvcm1FbmFibGVDb2NvYS5oCShyZXZpc2lvbiAyNTU1NTIpCShmcm9tIFNvdXJjZS9XVEYv
d3RmL1BsYXRmb3JtRW5hYmxlLmg6MjU1NTUyKQorKysgU291cmNlL1dURi93dGYvUGxhdGZvcm1F
bmFibGVDb2NvYS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTA1NSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAwNi0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAwNy0yMDA5IFRvcmNoIE1vYmlsZSwgSW5jLgorICogQ29weXJpZ2h0
IChDKSAyMDEwLCAyMDExIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaWZuZGVmIFdURl9QTEFURk9STV9HVUFSRF9BR0FJTlNUX0lO
RElSRUNUX0lOQ0xVU0lPTgorI2Vycm9yICJQbGVhc2UgI2luY2x1ZGUgPHd0Zi9QbGF0Zm9ybS5o
PiBpbnN0ZWFkIG9mIHRoaXMgZmlsZSBkaXJlY3RseS4iCisjZW5kaWYKKworCisjZGVmaW5lIEVO
QUJMRShXVEZfRkVBVFVSRSkgKGRlZmluZWQgRU5BQkxFXyMjV1RGX0ZFQVRVUkUgJiYgRU5BQkxF
XyMjV1RGX0ZFQVRVUkUpCisKKy8qIFVzZSB0aGlzIGZpbGUgdG8gbGlzdCBfYWxsXyBFTkFCTEUo
KSBtYWNyb3MuIERlZmluZSB0aGUgbWFjcm9zIHRvIGJlIG9uZSBvZiB0aGUgZm9sbG93aW5nIHZh
bHVlczoKKyAqICAtICIwIiBkaXNhYmxlcyB0aGUgZmVhdHVyZSBieSBkZWZhdWx0LiBUaGUgZmVh
dHVyZSBjYW4gc3RpbGwgYmUgZW5hYmxlZCBmb3IgYSBzcGVjaWZpYyBwb3J0IG9yIGVudmlyb25t
ZW50LgorICogIC0gIjEiIGVuYWJsZXMgdGhlIGZlYXR1cmUgYnkgZGVmYXVsdC4gVGhlIGZlYXR1
cmUgY2FuIHN0aWxsIGJlIGRpc2FibGVkIGZvciBhIHNwZWNpZmljIHBvcnQgb3IgZW52aXJvbm1l
bnQuCisgKgorICogVGhlIGZlYXR1cmUgZGVmYXVsdHMgaW4gdGhpcyBmaWxlIGFyZSBvbmx5IHRh
a2VuIGludG8gYWNjb3VudCBpZiB0aGUgKHBvcnQgc3BlY2lmaWMpIGJ1aWxkIHN5c3RlbQorICog
aGFzIG5vdCBlbmFibGVkIG9yIGRpc2FibGVkIGEgcGFydGljdWxhciBmZWF0dXJlLgorICoKKyAq
IFVzZSB0aGlzIGZpbGUgdG8gZGVmaW5lIEVOQUJMRSgpIG1hY3JvcyBvbmx5LiBEbyBub3QgdXNl
IHRoaXMgZmlsZSB0byBkZWZpbmUgVVNFKCkgb3IgbWFjcm9zICEKKyAqCisgKiBPbmx5IGRlZmlu
ZSBhIG1hY3JvIGlmIGl0IHdhcyBub3QgZGVmaW5lZCBiZWZvcmUgLSBhbHdheXMgY2hlY2sgZm9y
ICFkZWZpbmVkIGZpcnN0LgorICoKKyAqIEtlZXAgdGhlIGZpbGUgc29ydGVkIGJ5IHRoZSBuYW1l
IG9mIHRoZSBkZWZpbmVzLiBBcyBhbiBleGNlcHRpb24geW91IGNhbiBjaGFuZ2UgdGhlIG9yZGVy
CisgKiB0byBhbGxvdyBpbnRlcmRlcGVuZGVuY2llcyBiZXR3ZWVuIHRoZSBkZWZhdWx0IHZhbHVl
cy4KKyAqCisgKiBCZWxvdyBhcmUgYSBmZXcgcG90ZW50aWFsIGNvbW1hbmRzIHRvIHRha2UgYWR2
YW50YWdlIG9mIHRoaXMgZmlsZSBydW5uaW5nIGZyb20gdGhlIFNvdXJjZS9XVEYgZGlyZWN0b3J5
CisgKgorICogR2V0IHRoZSBsaXN0IG9mIGZlYXR1cmUgZGVmaW5lczogZ3JlcCAtbyAiRU5BQkxF
X1woXHdcK1wpIiB3dGYvUGxhdGZvcm1FbmFibGUuaCB8IHNvcnQgfCB1bmlxCisgKiBHZXQgdGhl
IGxpc3Qgb2YgZmVhdHVyZXMgZW5hYmxlZCBieSBkZWZhdWx0IGZvciBhIFBMQVRGT1JNKFhYWCk6
IGdjYyAtRSAtZE0gLUkuIC1EV1RGX1BMQVRGT1JNX1hYWCAid3RmL1BsYXRmb3JtLmgiIHwgZ3Jl
cCAiRU5BQkxFX1x3XCsgMSIgfCBjdXQgLWQnICcgLWYyIHwgc29ydAorICovCisKKworLyogRklY
TUU6IFRoaXMgc2hvdWxkIGJlIHJlbmFtZWQgdG8gRU5BQkxFX0FTU0VSVFMgZm9yIGNvbnNpc3Rl
bmN5IGFuZCBzbyBpdCBjYW4gYmUgdXNlZCBhcyBFTkFCTEUoQVNTRVJUUykuICovCisvKiBBU1NF
UlRfRU5BQkxFRCBzaG91bGQgYmUgdHJ1ZSBpZiB3ZSB3YW50IHRoZSBjdXJyZW50IGNvbXBpbGF0
aW9uIHVuaXQgdG8KKyAgIGRvIGRlYnVnIGFzc2VydGlvbiBjaGVja3MgdW5jb25kaXRpb25hbGx5
IChlLmcuIHRyZWF0IGEgZGVidWcgQVNTRVJUCisgICBsaWtlIGEgUkVMRUFTRV9BU1NFUlQuCisq
LworI2lmbmRlZiBBU1NFUlRfRU5BQkxFRAorI2lmZGVmIE5ERUJVRworI2RlZmluZSBBU1NFUlRf
RU5BQkxFRCAwCisjZWxzZQorI2RlZmluZSBBU1NFUlRfRU5BQkxFRCAxCisjZW5kaWYKKyNlbmRp
ZgorCisvKiA9PT09IFBsYXRmb3JtIGFkZGl0aW9uczogYWRkaXRpb25zIHRvIFBsYXRmb3JtRW5h
YmxlLmggZnJvbSBvdXRzaWRlIHRoZSBtYWluIHJlcG9zaXRvcnkgPT09PSAqLworCisjaWYgVVNF
KEFQUExFX0lOVEVSTkFMX1NESykgJiYgX19oYXNfaW5jbHVkZSg8V2ViS2l0QWRkaXRpb25zL0Fk
ZGl0aW9uYWxGZWF0dXJlRGVmaW5lcy5oPikKKyNpbmNsdWRlIDxXZWJLaXRBZGRpdGlvbnMvQWRk
aXRpb25hbEZlYXR1cmVEZWZpbmVzLmg+CisjZW5kaWYKKworLyogRklYTUU6IE1vdmUgb3V0IHRo
ZSBQTEFURk9STSBzcGVjaWZpYyBydWxlcyBpbnRvIHBsYXRmb3JtIHNwZWNpZmljIGZpbGVzLiAq
LworCisvKiAtLS0tLS0tLS0gQXBwbGUgaU9TIChidXQgbm90IG1hY09TKSBwb3J0IC0tLS0tLS0t
LSAqLworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQUlS
UExBWV9QSUNLRVIpCisjaWYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQorI2RlZmluZSBFTkFCTEVf
QUlSUExBWV9QSUNLRVIgMQorI2VuZGlmCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9B
UFBMRV9QQVlfUkVNT1RFX1VJKQorI2lmICFQTEFURk9STShBUFBMRVRWKSAmJiAhUExBVEZPUk0o
TUFDQ0FUQUxZU1QpICYmICFQTEFURk9STShXQVRDSE9TKQorI2RlZmluZSBFTkFCTEVfQVBQTEVf
UEFZX1JFTU9URV9VSSAxCisjZW5kaWYKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0NP
TlRFTlRfRVhURU5TSU9OUykKKyNkZWZpbmUgRU5BQkxFX0NPTlRFTlRfRVhURU5TSU9OUyAxCisj
ZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9DT05URVhUX01FTlVTKQorI2RlZmluZSBFTkFC
TEVfQ09OVEVYVF9NRU5VUyAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9DT05URVhU
X01FTlVfRVZFTlQpCisjaWYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQorI2RlZmluZSBFTkFCTEVf
Q09OVEVYVF9NRU5VX0VWRU5UIDAKKyNlbmRpZgorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFC
TEVfQ1VTVE9NX0NVUlNPUl9TVVBQT1JUKQorI2RlZmluZSBFTkFCTEVfQ1VTVE9NX0NVUlNPUl9T
VVBQT1JUIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0RSQUdfU1VQUE9SVCkKKyNk
ZWZpbmUgRU5BQkxFX0RSQUdfU1VQUE9SVCAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJM
RV9HRU9MT0NBVElPTikKKyNkZWZpbmUgRU5BQkxFX0dFT0xPQ0FUSU9OIDEKKyNlbmRpZgorCisj
aWYgIWRlZmluZWQoRU5BQkxFX0lOU1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hFUlMpCisjZGVm
aW5lIEVOQUJMRV9JTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENIRVJTIDEKKyNlbmRpZgorCisj
aWYgIWRlZmluZWQoRU5BQkxFX0lOU1BFQ1RPUl9URUxFTUVUUlkpCisjZGVmaW5lIEVOQUJMRV9J
TlNQRUNUT1JfVEVMRU1FVFJZIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0xFVFRF
UlBSRVNTKQorI2RlZmluZSBFTkFCTEVfTEVUVEVSUFJFU1MgMQorI2VuZGlmCisKKyNpZiAhZGVm
aW5lZChFTkFCTEVfQVVUT0NPUlJFQ1QpCisjZGVmaW5lIEVOQUJMRV9BVVRPQ09SUkVDVCAxCisj
ZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9BVVRPQ0FQSVRBTElaRSkKKyNkZWZpbmUgRU5B
QkxFX0FVVE9DQVBJVEFMSVpFIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0lPU19H
RVNUVVJFX0VWRU5UUykgJiYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyNkZWZpbmUgRU5BQkxF
X0lPU19HRVNUVVJFX0VWRU5UUyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9URVhU
X0FVVE9TSVpJTkcpCisjZGVmaW5lIEVOQUJMRV9URVhUX0FVVE9TSVpJTkcgMQorI2VuZGlmCisK
KyNpZiAhZGVmaW5lZChFTkFCTEVfSU9TX1RPVUNIX0VWRU5UUykgJiYgVVNFKEFQUExFX0lOVEVS
TkFMX1NESykKKyNkZWZpbmUgRU5BQkxFX0lPU19UT1VDSF9FVkVOVFMgMQorI2VuZGlmCisKKyNp
ZiAhZGVmaW5lZChFTkFCTEVfTUVURVJfRUxFTUVOVCkKKyNkZWZpbmUgRU5BQkxFX01FVEVSX0VM
RU1FTlQgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTkVUU0NBUEVfUExVR0lOX0FQ
SSkKKyNkZWZpbmUgRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9BUEkgMAorI2VuZGlmCisKKyNpZiAh
ZGVmaW5lZChFTkFCTEVfT1JJRU5UQVRJT05fRVZFTlRTKQorI2RlZmluZSBFTkFCTEVfT1JJRU5U
QVRJT05fRVZFTlRTIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1BPSU5URVJfTE9D
SykKKyNkZWZpbmUgRU5BQkxFX1BPSU5URVJfTE9DSyAwCisjZW5kaWYKKworI2lmICFkZWZpbmVk
KEVOQUJMRV9SRU1PVEVfSU5TUEVDVE9SKQorI2RlZmluZSBFTkFCTEVfUkVNT1RFX0lOU1BFQ1RP
UiAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9URVhUX0NBUkVUKQorI2RlZmluZSBF
TkFCTEVfVEVYVF9DQVJFVCAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9URVhUX1NF
TEVDVElPTikKKyNkZWZpbmUgRU5BQkxFX1RFWFRfU0VMRUNUSU9OIDAKKyNlbmRpZgorCisvKiBG
SVhNRTogUmVtb3ZlIHRoZSBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKSBjb25qdW5jdCBvbmNlIHdl
IHN1cHBvcnQgdG91Y2ggZXZlbnRzIHdoZW4gYnVpbGRpbmcgYWdhaW5zdAordGhlIHB1YmxpYyBp
T1MgU0RLLiBTZWUgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE3OTE2Nz4uICovCisjaWYgIWRlZmlu
ZWQoRU5BQkxFX1RPVUNIX0VWRU5UUykgJiYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyNkZWZp
bmUgRU5BQkxFX1RPVUNIX0VWRU5UUyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9X
RUJfQVJDSElWRSkKKyNkZWZpbmUgRU5BQkxFX1dFQl9BUkNISVZFIDEKKyNlbmRpZgorCisjaWYg
IWRlZmluZWQoRU5BQkxFX1dFQkdMKQorI2RlZmluZSBFTkFCTEVfV0VCR0wgMQorI2VuZGlmCisK
KyNpZiAhZGVmaW5lZChFTkFCTEVfUFJJTUFSWV9TTkFQU0hPVFRFRF9QTFVHSU5fSEVVUklTVElD
KQorI2RlZmluZSBFTkFCTEVfUFJJTUFSWV9TTkFQU0hPVFRFRF9QTFVHSU5fSEVVUklTVElDIDEK
KyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0RPV05MT0FEX0FUVFJJQlVURSkKKyNkZWZp
bmUgRU5BQkxFX0RPV05MT0FEX0FUVFJJQlVURSAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVO
QUJMRV9XS1BERlZJRVcpICYmIFBMQVRGT1JNKElPUykKKyNkZWZpbmUgRU5BQkxFX1dLUERGVklF
VyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9NRURJQV9TT1VSQ0UpCisjZGVmaW5l
IEVOQUJMRV9NRURJQV9TT1VSQ0UgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfUFJF
VklFV19DT05WRVJURVIpICYmIFBMQVRGT1JNKElPUykKKyNkZWZpbmUgRU5BQkxFX1BSRVZJRVdf
Q09OVkVSVEVSIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX01FVEFfVklFV1BPUlQp
CisjZGVmaW5lIEVOQUJMRV9NRVRBX1ZJRVdQT1JUIDEKKyNlbmRpZgorCisjZW5kaWYgLyogUExB
VEZPUk0oSU9TX0ZBTUlMWSkgKi8KKworLyogLS0tLS0tLS0tIEFwcGxlIHdhdGNoT1MgcG9ydCAt
LS0tLS0tLS0gKi8KKyNpZiBQTEFURk9STShXQVRDSE9TKQorCisjZW5kaWYgLyogUExBVEZPUk0o
V0FUQ0hPUykgKi8KKworLyogLS0tLS0tLS0tIEFwcGxlIG1hY09TIHBvcnQgKG5vdCBpT1MpIC0t
LS0tLS0tLSAqLworI2lmIFBMQVRGT1JNKE1BQykKKworI2lmICFkZWZpbmVkKEVOQUJMRV9DT05U
RU5UX0VYVEVOU0lPTlMpCisjZGVmaW5lIEVOQUJMRV9DT05URU5UX0VYVEVOU0lPTlMgMQorI2Vu
ZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpCisjZGVmaW5lIEVOQUJM
RV9GVUxMU0NSRUVOX0FQSSAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9SRU1PVEVf
SU5TUEVDVE9SKQorI2RlZmluZSBFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUiAxCisjZW5kaWYKKwor
I2lmICFkZWZpbmVkKEVOQUJMRV9JTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENIRVJTKQorI2Rl
ZmluZSBFTkFCTEVfSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUyAxCisjZW5kaWYKKwor
I2lmICFkZWZpbmVkKEVOQUJMRV9JTlNQRUNUT1JfVEVMRU1FVFJZKQorI2RlZmluZSBFTkFCTEVf
SU5TUEVDVE9SX1RFTEVNRVRSWSAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9TTU9P
VEhfU0NST0xMSU5HKQorI2RlZmluZSBFTkFCTEVfU01PT1RIX1NDUk9MTElORyAxCisjZW5kaWYK
KworI2lmIEVOQUJMRShWSURFTykKKyNpZiAhZGVmaW5lZChFTkFCTEVfVklERU9fVFJBQ0spCisj
ZGVmaW5lIEVOQUJMRV9WSURFT19UUkFDSyAxCisjZW5kaWYKKyNlbmRpZgorCisjaWYgIWRlZmlu
ZWQoRU5BQkxFX1dFQl9BUkNISVZFKQorI2RlZmluZSBFTkFCTEVfV0VCX0FSQ0hJVkUgMQorI2Vu
ZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfV0VCX0FVRElPKQorI2RlZmluZSBFTkFCTEVfV0VC
X0FVRElPIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZ
KQorI2RlZmluZSBFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkgMQorI2VuZGlmCisKKyNpZiAhZGVm
aW5lZChFTkFCTEVfUFJJTUFSWV9TTkFQU0hPVFRFRF9QTFVHSU5fSEVVUklTVElDKQorI2RlZmlu
ZSBFTkFCTEVfUFJJTUFSWV9TTkFQU0hPVFRFRF9QTFVHSU5fSEVVUklTVElDIDEKKyNlbmRpZgor
CisjaWYgIWRlZmluZWQoRU5BQkxFX01BQ19HRVNUVVJFX0VWRU5UUykgJiYgVVNFKEFQUExFX0lO
VEVSTkFMX1NESykKKyNkZWZpbmUgRU5BQkxFX01BQ19HRVNUVVJFX0VWRU5UUyAxCisjZW5kaWYK
KworI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJQUk9DRVNTX05TUlVOTE9PUCkKKyNkZWZpbmUgRU5B
QkxFX1dFQlBST0NFU1NfTlNSVU5MT09QIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
Pj0gMTAxNDAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJQUk9DRVNTX1dJTkRP
V1NFUlZFUl9CTE9DS0lORykKKyNkZWZpbmUgRU5BQkxFX1dFQlBST0NFU1NfV0lORE9XU0VSVkVS
X0JMT0NLSU5HIEVOQUJMRV9XRUJQUk9DRVNTX05TUlVOTE9PUAorI2VuZGlmCisKKyNpZiAhZGVm
aW5lZChFTkFCTEVfTUVESUFfU09VUkNFKQorI2RlZmluZSBFTkFCTEVfTUVESUFfU09VUkNFIDEK
KyNlbmRpZgorCisjZW5kaWYgLyogUExBVEZPUk0oTUFDKSAqLworCisvKiAtLS0tLS0tLS0gQXBw
bGUgQ29jb2EgcGxhdGZvcm1zIC0tLS0tLS0tLSAqLworCisjaWYgUExBVEZPUk0oQ09DT0EpCisK
KyNpZiAhZGVmaW5lZChFTkFCTEVfTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkKKyNpZiBQTEFURk9S
TShNQUNDQVRBTFlTVCkKKyNkZWZpbmUgRU5BQkxFX0xFR0FDWV9FTkNSWVBURURfTUVESUEgMAor
I2Vsc2UKKyNkZWZpbmUgRU5BQkxFX0xFR0FDWV9FTkNSWVBURURfTUVESUEgMQorI2VuZGlmCisj
ZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9GSUxFX1JFUExBQ0VNRU5UKQorI2RlZmluZSBF
TkFCTEVfRklMRV9SRVBMQUNFTUVOVCAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9Q
QVlNRU5UX1JFUVVFU1QpCisjZGVmaW5lIEVOQUJMRV9QQVlNRU5UX1JFUVVFU1QgMQorI2VuZGlm
CisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQVNZTkNfU0NST0xMSU5HKQorI2RlZmluZSBFTkFCTEVf
QVNZTkNfU0NST0xMSU5HIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1VJX1NJREVf
Q09NUE9TSVRJTkcpCisjZGVmaW5lIEVOQUJMRV9VSV9TSURFX0NPTVBPU0lUSU5HIDEKKyNlbmRp
ZgorCisjZW5kaWYgLyogUExBVEZPUk0oQ09DT0EpICovCisKKyNpZiAhUExBVEZPUk0oQ09DT0Ep
CisKKyNpZiAhZGVmaW5lZChKU0NfT0JKQ19BUElfRU5BQkxFRCkKKyNkZWZpbmUgSlNDX09CSkNf
QVBJX0VOQUJMRUQgMAorI2VuZGlmCisKKyNlbmRpZiAvKiAhUExBVEZPUk0oQ09DT0EpICovCisK
KworLyogLS0tLS0tLS0tIEFwcGxlIFdpbmRvd3MgcG9ydCAtLS0tLS0tLS0gKi8KKyNpZiBQTEFU
Rk9STShXSU4pICYmICFQTEFURk9STShXSU5fQ0FJUk8pCisKKyNpZiAhZGVmaW5lZChFTkFCTEVf
RlVMTFNDUkVFTl9BUEkpCisjZGVmaW5lIEVOQUJMRV9GVUxMU0NSRUVOX0FQSSAxCisjZW5kaWYK
KworI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJfQVJDSElWRSkKKyNkZWZpbmUgRU5BQkxFX1dFQl9B
UkNISVZFIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1dFQkdMKQorI2RlZmluZSBF
TkFCTEVfV0VCR0wgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfR0VPTE9DQVRJT04p
CisjZGVmaW5lIEVOQUJMRV9HRU9MT0NBVElPTiAxCisjZW5kaWYKKworI2VuZGlmIC8qIFBMQVRG
T1JNKFdJTikgJiYgIVBMQVRGT1JNKFdJTl9DQUlSTykgKi8KKworLyogLS0tLS0tLS0tIFdpbmRv
d3MgQ0FJUk8gcG9ydCAtLS0tLS0tLS0gKi8KKy8qIFBMQVRGT1JNKFdJTl9DQUlSTykgaXMgYSBz
cGVjaWFsaXphdGlvbiBvZiBQTEFURk9STShXSU4pLiAqLworLyogUExBVEZPUk0oV0lOKSBpcyBh
bHdheXMgZW5hYmxlZCB3aGVuIFBMQVRGT1JNKFdJTl9DQUlSTykgaXMgZW5hYmxlZC4gKi8KKyNp
ZiBQTEFURk9STShXSU5fQ0FJUk8pCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfV0VCX0FSQ0hJVkUp
CisjZGVmaW5lIEVOQUJMRV9XRUJfQVJDSElWRSAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVO
QUJMRV9XRUJHTCkKKyNkZWZpbmUgRU5BQkxFX1dFQkdMIDEKKyNlbmRpZgorCisjaWYgIWRlZmlu
ZWQoRU5BQkxFX0dFT0xPQ0FUSU9OKQorI2RlZmluZSBFTkFCTEVfR0VPTE9DQVRJT04gMQorI2Vu
ZGlmCisKKyNlbmRpZiAvKiBQTEFURk9STShXSU5fQ0FJUk8pICovCisKKy8qIEVOQUJMRSBtYWNy
byBkZWZhdWx0cyBmb3IgV2ViQ29yZSAqLworLyogRG8gbm90IHVzZSBQTEFURk9STSgpIHRlc3Rz
IGluIHRoaXMgc2VjdGlvbiAhICovCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfM0RfVFJBTlNGT1JN
UykKKyNkZWZpbmUgRU5BQkxFXzNEX1RSQU5TRk9STVMgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5l
ZChFTkFCTEVfQUNDRVNTSUJJTElUWSkKKyNkZWZpbmUgRU5BQkxFX0FDQ0VTU0lCSUxJVFkgMQor
I2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKQorI2Rl
ZmluZSBFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTIDAKKyNlbmRpZgorCisjaWYgIWRlZmlu
ZWQoRU5BQkxFX09WRVJGTE9XX1NDUk9MTElOR19UT1VDSCkKKyNkZWZpbmUgRU5BQkxFX09WRVJG
TE9XX1NDUk9MTElOR19UT1VDSCAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9BUE5H
KQorI2RlZmluZSBFTkFCTEVfQVBORyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9D
SEFOTkVMX01FU1NBR0lORykKKyNkZWZpbmUgRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HIDEKKyNl
bmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0NPTlRFTlRfRVhURU5TSU9OUykKKyNkZWZpbmUg
RU5BQkxFX0NPTlRFTlRfRVhURU5TSU9OUyAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJM
RV9DT05URVhUX01FTlVTKQorI2RlZmluZSBFTkFCTEVfQ09OVEVYVF9NRU5VUyAxCisjZW5kaWYK
KworI2lmICFkZWZpbmVkKEVOQUJMRV9DT05URVhUX01FTlVfRVZFTlQpCisjZGVmaW5lIEVOQUJM
RV9DT05URVhUX01FTlVfRVZFTlQgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQ1NT
M19URVhUKQorI2RlZmluZSBFTkFCTEVfQ1NTM19URVhUIDAKKyNlbmRpZgorCisjaWYgIWRlZmlu
ZWQoRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSykKKyNkZWZpbmUgRU5BQkxFX0NTU19C
T1hfREVDT1JBVElPTl9CUkVBSyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9DU1Nf
REVWSUNFX0FEQVBUQVRJT04pCisjZGVmaW5lIEVOQUJMRV9DU1NfREVWSUNFX0FEQVBUQVRJT04g
MAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKQorI2RlZmlu
ZSBFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxF
X0NTU19JTUFHRV9SRVNPTFVUSU9OKQorI2RlZmluZSBFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJ
T04gMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTX0NPTklDX0dSQURJRU5UUykK
KyNkZWZpbmUgRU5BQkxFX0NTU19DT05JQ19HUkFESUVOVFMgMAorI2VuZGlmCisKKyNpZiAhZGVm
aW5lZChFTkFCTEVfQ1VTVE9NX0NVUlNPUl9TVVBQT1JUKQorI2RlZmluZSBFTkFCTEVfQ1VTVE9N
X0NVUlNPUl9TVVBQT1JUIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0NVU1RPTV9T
Q0hFTUVfSEFORExFUikKKyNkZWZpbmUgRU5BQkxFX0NVU1RPTV9TQ0hFTUVfSEFORExFUiAwCisj
ZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9EQVJLX01PREVfQ1NTKQorI2RlZmluZSBFTkFC
TEVfREFSS19NT0RFX0NTUyAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9EQVRBTElT
VF9FTEVNRU5UKQorI2RlZmluZSBFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCAwCisjZW5kaWYKKwor
I2lmICFkZWZpbmVkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pCisjZGVmaW5lIEVOQUJMRV9E
RVZJQ0VfT1JJRU5UQVRJT04gMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfRE9XTkxP
QURfQVRUUklCVVRFKQorI2RlZmluZSBFTkFCTEVfRE9XTkxPQURfQVRUUklCVVRFIDEKKyNlbmRp
ZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0RSQUdfU1VQUE9SVCkKKyNkZWZpbmUgRU5BQkxFX0RS
QUdfU1VQUE9SVCAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9FTkNSWVBURURfTUVE
SUEpCisjZGVmaW5lIEVOQUJMRV9FTkNSWVBURURfTUVESUEgMAorI2VuZGlmCisKKyNpZiAhZGVm
aW5lZChFTkFCTEVfRklMVEVSU19MRVZFTF8yKQorI2RlZmluZSBFTkFCTEVfRklMVEVSU19MRVZF
TF8yIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0ZUUERJUikKKyNkZWZpbmUgRU5B
QkxFX0ZUUERJUiAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9GVUxMU0NSRUVOX0FQ
SSkKKyNkZWZpbmUgRU5BQkxFX0ZVTExTQ1JFRU5fQVBJIDAKKyNlbmRpZgorCisjaWYgIWRlZmlu
ZWQoRU5BQkxFX0dBTUVQQUQpCisjZGVmaW5lIEVOQUJMRV9HQU1FUEFEIDAKKyNlbmRpZgorCisj
aWYgIWRlZmluZWQoRU5BQkxFX0dFT0xPQ0FUSU9OKQorI2RlZmluZSBFTkFCTEVfR0VPTE9DQVRJ
T04gMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkKKyNk
ZWZpbmUgRU5BQkxFX0lOREVYRURfREFUQUJBU0UgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChF
TkFCTEVfSU5ERVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJTKQorI2RlZmluZSBFTkFCTEVfSU5ERVhF
RF9EQVRBQkFTRV9JTl9XT1JLRVJTIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0lO
UFVUX1RZUEVfQ09MT1IpCisjZGVmaW5lIEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SIDEKKyNlbmRp
ZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSkKKyNkZWZpbmUgRU5BQkxF
X0lOUFVUX1RZUEVfREFURSAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9JTlBVVF9U
WVBFX0RBVEVUSU1FX0lOQ09NUExFVEUpCisjZGVmaW5lIEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVU
SU1FX0lOQ09NUExFVEUgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfSU5QVVRfVFlQ
RV9EQVRFVElNRUxPQ0FMKQorI2RlZmluZSBFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FM
IDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpCisjZGVm
aW5lIEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5B
QkxFX0lOUFVUX1RZUEVfVElNRSkKKyNkZWZpbmUgRU5BQkxFX0lOUFVUX1RZUEVfVElNRSAwCisj
ZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspCisjZGVmaW5lIEVO
QUJMRV9JTlBVVF9UWVBFX1dFRUsgMAorI2VuZGlmCisKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9E
QVRFKSB8fCBFTkFCTEUoSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKSB8fCBFTkFCTEUo
SU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSB8fCBFTkFCTEUoSU5QVVRfVFlQRV9NT05USCkgfHwg
RU5BQkxFKElOUFVUX1RZUEVfVElNRSkgfHwgRU5BQkxFKElOUFVUX1RZUEVfV0VFSykKKyNpZiAh
ZGVmaW5lZChFTkFCTEVfREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKKyNkZWZpbmUgRU5BQkxF
X0RBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMgMQorI2VuZGlmCisjZW5kaWYKKworI2lmICFkZWZp
bmVkKEVOQUJMRV9JTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENIRVJTKQorI2RlZmluZSBFTkFC
TEVfSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUyAwCisjZW5kaWYKKworI2lmICFkZWZp
bmVkKEVOQUJMRV9JTlNQRUNUT1JfVEVMRU1FVFJZKQorI2RlZmluZSBFTkFCTEVfSU5TUEVDVE9S
X1RFTEVNRVRSWSAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9JTlRMKQorI2RlZmlu
ZSBFTkFCTEVfSU5UTCAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9MQVlPVVRfRk9S
TUFUVElOR19DT05URVhUKQorI2RlZmluZSBFTkFCTEVfTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVY
VCAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVG
SVhFUykKKyNkZWZpbmUgRU5BQkxFX0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJWEVTIDAKKyNlbmRp
ZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0xFVFRFUlBSRVNTKQorI2RlZmluZSBFTkFCTEVfTEVU
VEVSUFJFU1MgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTUFUSE1MKQorI2RlZmlu
ZSBFTkFCTEVfTUFUSE1MIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX01FRElBX0NB
UFRVUkUpCisjZGVmaW5lIEVOQUJMRV9NRURJQV9DQVBUVVJFIDAKKyNlbmRpZgorCisjaWYgIWRl
ZmluZWQoRU5BQkxFX01FRElBX0NPTlRST0xTX1NDUklQVCkKKyNkZWZpbmUgRU5BQkxFX01FRElB
X0NPTlRST0xTX1NDUklQVCAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9NRURJQV9T
T1VSQ0UpCisjZGVmaW5lIEVOQUJMRV9NRURJQV9TT1VSQ0UgMAorI2VuZGlmCisKKyNpZiAhZGVm
aW5lZChFTkFCTEVfTUVESUFfU1RBVElTVElDUykKKyNkZWZpbmUgRU5BQkxFX01FRElBX1NUQVRJ
U1RJQ1MgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTUVESUFfU1RSRUFNKQorI2Rl
ZmluZSBFTkFCTEVfTUVESUFfU1RSRUFNIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxF
X01FVEVSX0VMRU1FTlQpCisjZGVmaW5lIEVOQUJMRV9NRVRFUl9FTEVNRU5UIDEKKyNlbmRpZgor
CisjaWYgIWRlZmluZWQoRU5BQkxFX01IVE1MKQorI2RlZmluZSBFTkFCTEVfTUhUTUwgMAorI2Vu
ZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFKQorI2RlZmluZSBF
TkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxF
X01PVVNFX0ZPUkNFX0VWRU5UUykKKyNkZWZpbmUgRU5BQkxFX01PVVNFX0ZPUkNFX0VWRU5UUyAx
CisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJKQorI2Rl
ZmluZSBFTkFCTEVfTkVUU0NBUEVfUExVR0lOX0FQSSAxCisjZW5kaWYKKworI2lmICFkZWZpbmVk
KEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fTUVUQURBVEFfQ0FDSEUpCisjZGVmaW5lIEVOQUJMRV9O
RVRTQ0FQRV9QTFVHSU5fTUVUQURBVEFfQ0FDSEUgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChF
TkFCTEVfTk9USUZJQ0FUSU9OUykKKyNkZWZpbmUgRU5BQkxFX05PVElGSUNBVElPTlMgMAorI2Vu
ZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfT0ZGU0NSRUVOX0NBTlZBUykKKyNkZWZpbmUgRU5B
QkxFX09GRlNDUkVFTl9DQU5WQVMgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfT1JJ
RU5UQVRJT05fRVZFTlRTKQorI2RlZmluZSBFTkFCTEVfT1JJRU5UQVRJT05fRVZFTlRTIDAKKyNl
bmRpZgorCisjaWYgT1MoV0lORE9XUykKKyNpZiAhZGVmaW5lZChFTkFCTEVfUEFOX1NDUk9MTElO
RykKKyNkZWZpbmUgRU5BQkxFX1BBTl9TQ1JPTExJTkcgMQorI2VuZGlmCisjZW5kaWYKKworI2lm
ICFkZWZpbmVkKEVOQUJMRV9QQVlNRU5UX1JFUVVFU1QpCisjZGVmaW5lIEVOQUJMRV9QQVlNRU5U
X1JFUVVFU1QgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfUE9JTlRFUl9MT0NLKQor
I2RlZmluZSBFTkFCTEVfUE9JTlRFUl9MT0NLIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5B
QkxFX1FVT1RBKQorI2RlZmluZSBFTkFCTEVfUVVPVEEgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5l
ZChFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUikKKyNkZWZpbmUgRU5BQkxFX1JFTU9URV9JTlNQRUNU
T1IgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfUlVCQkVSX0JBTkRJTkcpCisjZGVm
aW5lIEVOQUJMRV9SVUJCRVJfQkFORElORyAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJM
RV9TRUNVUklUWV9BU1NFUlRJT05TKQorLyogRW5hYmxlIHNlY3VyaXR5IGFzc2VydGlvbnMgb24g
YWxsIEFTQU4gYnVpbGRzIGFuZCBkZWJ1ZyBidWlsZHMuICovCisjaWYgQVNBTl9FTkFCTEVEIHx8
ICFkZWZpbmVkKE5ERUJVRykKKyNkZWZpbmUgRU5BQkxFX1NFQ1VSSVRZX0FTU0VSVElPTlMgMQor
I2VuZGlmCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9TTU9PVEhfU0NST0xMSU5HKQor
I2RlZmluZSBFTkFCTEVfU01PT1RIX1NDUk9MTElORyAwCisjZW5kaWYKKworI2lmICFkZWZpbmVk
KEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKQorI2RlZmluZSBFTkFCTEVfU1BFRUNIX1NZTlRIRVNJ
UyAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9TUEVMTENIRUNLKQorI2RlZmluZSBF
TkFCTEVfU1BFTExDSEVDSyAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9TVFJFQU1T
X0FQSSkKKyNkZWZpbmUgRU5BQkxFX1NUUkVBTVNfQVBJIDEKKyNlbmRpZgorCisjaWYgIWRlZmlu
ZWQoRU5BQkxFX1NWR19GT05UUykKKyNkZWZpbmUgRU5BQkxFX1NWR19GT05UUyAxCisjZW5kaWYK
KworI2lmICFkZWZpbmVkKEVOQUJMRV9URVhUX0NBUkVUKQorI2RlZmluZSBFTkFCTEVfVEVYVF9D
QVJFVCAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9URVhUX1NFTEVDVElPTikKKyNk
ZWZpbmUgRU5BQkxFX1RFWFRfU0VMRUNUSU9OIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5B
QkxFX0FTWU5DX1NDUk9MTElORykKKyNkZWZpbmUgRU5BQkxFX0FTWU5DX1NDUk9MTElORyAwCisj
ZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9UT1VDSF9FVkVOVFMpCisjZGVmaW5lIEVOQUJM
RV9UT1VDSF9FVkVOVFMgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfVklERU8pCisj
ZGVmaW5lIEVOQUJMRV9WSURFTyAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9WSURF
T19UUkFDSykKKyNkZWZpbmUgRU5BQkxFX1ZJREVPX1RSQUNLIDAKKyNlbmRpZgorCisjaWYgIWRl
ZmluZWQoRU5BQkxFX0RBVEFDVUVfVkFMVUUpCisjZGVmaW5lIEVOQUJMRV9EQVRBQ1VFX1ZBTFVF
IDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1dFQkdMKQorI2RlZmluZSBFTkFCTEVf
V0VCR0wgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfR1JBUEhJQ1NfQ09OVEVYVF9H
TCkKKyNkZWZpbmUgRU5BQkxFX0dSQVBISUNTX0NPTlRFWFRfR0wgRU5BQkxFX1dFQkdMCisjZW5k
aWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJfQVJDSElWRSkKKyNkZWZpbmUgRU5BQkxFX1dF
Ql9BUkNISVZFIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1dFQl9BVURJTykKKyNk
ZWZpbmUgRU5BQkxFX1dFQl9BVURJTyAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9Y
U0xUKQorI2RlZmluZSBFTkFCTEVfWFNMVCAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJM
RV9EQVRBX0lOVEVSQUNUSU9OKQorI2RlZmluZSBFTkFCTEVfREFUQV9JTlRFUkFDVElPTiAwCisj
ZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9TRVJWSUNFX1dPUktFUikKKyNkZWZpbmUgRU5B
QkxFX1NFUlZJQ0VfV09SS0VSIDEKKyNlbmRpZgorCisKKy8qIEpJVCBGZWF0dXJlcyAqLworCisv
KiBUaGUgSklUIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBvbiBhbGwgeDg2LTY0ICYgQVJNNjQgcGxh
dGZvcm1zLiAqLworI2lmICFkZWZpbmVkKEVOQUJMRV9KSVQpICYmIChDUFUoWDg2XzY0KSB8fCBD
UFUoQVJNNjQpKSAmJiAhQ1BVKEFQUExFX0FSTVY3SykKKyNkZWZpbmUgRU5BQkxFX0pJVCAxCisj
ZW5kaWYKKworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisjaWYgKENQVShBUk1fVEhVTUIyKSB8fCBD
UFUoTUlQUykpICYmIE9TKExJTlVYKQorLyogT24gQVJNdjcgYW5kIE1JUFMgb24gTGludXggdGhl
IEpJVCBpcyBlbmFibGVkIHVubGVzcyBleHBsaWNpdGx5IGRpc2FibGVkLiAqLworI2lmICFkZWZp
bmVkKEVOQUJMRV9KSVQpCisjZGVmaW5lIEVOQUJMRV9KSVQgMQorI2VuZGlmCisjZWxzZQorLyog
RGlzYWJsZSBKSVQgYW5kIGZvcmNlIENfTE9PUCBvbiBhbGwgb3RoZXIgMzJiaXQgYXJjaGl0ZWN0
dXJlcy4gKi8KKyN1bmRlZiBFTkFCTEVfSklUCisjZGVmaW5lIEVOQUJMRV9KSVQgMAorI3VuZGVm
IEVOQUJMRV9DX0xPT1AKKyNkZWZpbmUgRU5BQkxFX0NfTE9PUCAxCisjZW5kaWYKKyNlbmRpZgor
CisjaWYgIWRlZmluZWQoRU5BQkxFX0NfTE9PUCkKKyNpZiBFTkFCTEUoSklUKSB8fCBDUFUoWDg2
XzY0KSB8fCAoQ1BVKEFSTTY0KSAmJiAhZGVmaW5lZChfX0lMUDMyX18pKQorI2RlZmluZSBFTkFC
TEVfQ19MT09QIDAKKyNlbHNlCisjZGVmaW5lIEVOQUJMRV9DX0xPT1AgMQorI2VuZGlmCisjZW5k
aWYKKworLyogRklYTUU6IFRoaXMgc2hvdWxkIGJlIHR1cm5lZCBpbnRvIGFuICNlcnJvciBpbnZh
cmlhbnQgKi8KKy8qIFRoZSBGVEwgKmRvZXMgbm90KiB3b3JrIG9uIDMyLWJpdCBwbGF0Zm9ybXMu
IERpc2FibGUgaXQgZXZlbiBpZiBzb21lb25lIGFza2VkIHVzIHRvIGVuYWJsZSBpdC4gKi8KKyNp
ZiBVU0UoSlNWQUxVRTMyXzY0KQorI3VuZGVmIEVOQUJMRV9GVExfSklUCisjZGVmaW5lIEVOQUJM
RV9GVExfSklUIDAKKyNlbmRpZgorCisvKiBGSVhNRTogVGhpcyBzaG91bGQgYmUgdHVybmVkIGlu
dG8gYW4gI2Vycm9yIGludmFyaWFudCAqLworLyogVGhlIEZUTCBpcyBkaXNhYmxlZCBvbiB0aGUg
aU9TIHNpbXVsYXRvciwgbW9zdGx5IGZvciBzaW1wbGljaXR5LiAqLworI2lmIFBMQVRGT1JNKElP
U19GQU1JTFlfU0lNVUxBVE9SKQorI3VuZGVmIEVOQUJMRV9GVExfSklUCisjZGVmaW5lIEVOQUJM
RV9GVExfSklUIDAKKyNlbmRpZgorCisvKiBJZiBwb3NzaWJsZSwgdHJ5IHRvIGVuYWJsZSBhIGRp
c2Fzc2VtYmxlci4gVGhpcyBpcyBvcHRpb25hbC4gV2UgcHJvY2VlZCBpbiB0d28KKyAgIHN0ZXBz
OiBmaXJzdCB3ZSB0cnkgdG8gZmluZCBzb21lIGRpc2Fzc2VtYmxlciB0aGF0IHdlIGNhbiB1c2Us
IGFuZCB0aGVuIHdlCisgICBkZWNpZGUgaWYgdGhlIGhpZ2gtbGV2ZWwgZGlzYXNzZW1ibGVyIEFQ
SSBjYW4gYmUgZW5hYmxlZC4gKi8KKyNpZiAhZGVmaW5lZChFTkFCTEVfVURJUzg2KSAmJiBFTkFC
TEUoSklUKSAmJiBDUFUoWDg2XzY0KSAmJiAhVVNFKENBUFNUT05FKQorI2RlZmluZSBFTkFCTEVf
VURJUzg2IDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0FSTTY0X0RJU0FTU0VNQkxF
UikgJiYgRU5BQkxFKEpJVCkgJiYgQ1BVKEFSTTY0KSAmJiAhVVNFKENBUFNUT05FKQorI2RlZmlu
ZSBFTkFCTEVfQVJNNjRfRElTQVNTRU1CTEVSIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5B
QkxFX0RJU0FTU0VNQkxFUikgJiYgKEVOQUJMRShVRElTODYpIHx8IEVOQUJMRShBUk02NF9ESVNB
U1NFTUJMRVIpIHx8IChFTkFCTEUoSklUKSAmJiBVU0UoQ0FQU1RPTkUpKSkKKyNkZWZpbmUgRU5B
QkxFX0RJU0FTU0VNQkxFUiAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9ERkdfSklU
KSAmJiBFTkFCTEUoSklUKQorCisvKiBFbmFibGUgdGhlIERGRyBKSVQgb24gWDg2IGFuZCBYODZf
NjQuICovCisjaWYgQ1BVKFg4Nl82NCkgJiYgKE9TKERBUldJTikgfHwgT1MoTElOVVgpIHx8IE9T
KEZSRUVCU0QpIHx8IE9TKEhVUkQpIHx8IE9TKFdJTkRPV1MpKQorI2RlZmluZSBFTkFCTEVfREZH
X0pJVCAxCisjZW5kaWYKKworLyogRW5hYmxlIHRoZSBERkcgSklUIG9uIEFSTXY3LiAgT25seSB0
ZXN0ZWQgb24gaU9TLCBMaW51eCwgYW5kIEZyZWVCU0QuICovCisjaWYgKENQVShBUk1fVEhVTUIy
KSB8fCBDUFUoQVJNNjQpKSAmJiAoT1MoREFSV0lOKSB8fCBPUyhMSU5VWCkgfHwgT1MoRlJFRUJT
RCkpCisjZGVmaW5lIEVOQUJMRV9ERkdfSklUIDEKKyNlbmRpZgorCisvKiBFbmFibGUgdGhlIERG
RyBKSVQgb24gTUlQUy4gKi8KKyNpZiBDUFUoTUlQUykKKyNkZWZpbmUgRU5BQkxFX0RGR19KSVQg
MQorI2VuZGlmCisKKyNlbmRpZiAvKiAhZGVmaW5lZChFTkFCTEVfREZHX0pJVCkgJiYgRU5BQkxF
KEpJVCkgKi8KKworLyogQ29uY3VycmVudCBKUyBvbmx5IHdvcmtzIG9uIDY0LWJpdCBwbGF0Zm9y
bXMgYmVjYXVzZSBpdCByZXF1aXJlcyB0aGF0CisgICB2YWx1ZXMgZ2V0IHN0b3JlZCB0byBhdG9t
aWNhbGx5LiBUaGlzIGlzIHRyaXZpYWxseSB0cnVlIG9uIDY0LWJpdCBwbGF0Zm9ybXMsCisgICBi
dXQgbm90IHRydWUgYXQgYWxsIG9uIDMyLWJpdCBwbGF0Zm9ybXMgd2hlcmUgdmFsdWVzIGFyZSBj
b21wb3NlZCBvZiB0d28KKyAgIHNlcGFyYXRlIHN1Yi12YWx1ZXMuICovCisjaWYgRU5BQkxFKEpJ
VCkgJiYgVVNFKEpTVkFMVUU2NCkKKyNkZWZpbmUgRU5BQkxFX0NPTkNVUlJFTlRfSlMgMQorI2Vu
ZGlmCisKKyNpZiAoQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTTY0KSkgJiYgSEFWRShGQVNUX1RMUykK
KyNkZWZpbmUgRU5BQkxFX0ZBU1RfVExTX0pJVCAxCisjZW5kaWYKKworI2lmIEVOQUJMRShKSVQp
ICYmIChDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KSB8fCBDUFUoQVJNX1RIVU1CMikgfHwgQ1BVKEFS
TTY0KSB8fCBDUFUoTUlQUykpCisjZGVmaW5lIEVOQUJMRV9NQVNNX1BST0JFIDEKKyNlbmRpZgor
CisvKiBGSVhNRTogVGhpcyBzaG91bGQgYmUgdHVybmVkIGludG8gYW4gI2Vycm9yIGludmFyaWFu
dCAqLworLyogSWYgdGhlIGJhc2VsaW5lIGppdCBpcyBub3QgYXZhaWxhYmxlLCB0aGVuIGRpc2Fi
bGUgdXBwZXIgdGllcnMgYXMgd2VsbC4KKyAgIFRoZSBNYWNyb0Fzc2VtYmxlcjo6cHJvYmUoKSBp
cyBhbHNvIHJlcXVpcmVkIGZvciBzdXBwb3J0aW5nIHRoZSB1cHBlciB0aWVycy4gKi8KKyNpZiAh
RU5BQkxFKEpJVCkgfHwgIUVOQUJMRShNQVNNX1BST0JFKQorI3VuZGVmIEVOQUJMRV9ERkdfSklU
CisjdW5kZWYgRU5BQkxFX0ZUTF9KSVQKKyNkZWZpbmUgRU5BQkxFX0RGR19KSVQgMAorI2RlZmlu
ZSBFTkFCTEVfRlRMX0pJVCAwCisjZW5kaWYKKworLyogRklYTUU6IFRoaXMgc2hvdWxkIGJlIHR1
cm5lZCBpbnRvIGFuICNlcnJvciBpbnZhcmlhbnQgKi8KKy8qIElmIHRoZSBERkcgaml0IGlzIG5v
dCBhdmFpbGFibGUsIHRoZW4gZGlzYWJsZSB1cHBlciB0aWVycyBhcyB3ZWxsOiAqLworI2lmICFF
TkFCTEUoREZHX0pJVCkKKyN1bmRlZiBFTkFCTEVfRlRMX0pJVAorI2RlZmluZSBFTkFCTEVfRlRM
X0pJVCAwCisjZW5kaWYKKworLyogVGhpcyBjb250cm9scyB3aGV0aGVyIEIzIGlzIGJ1aWx0LiBC
MyBpcyBuZWVkZWQgZm9yIEZUTCBKSVQgYW5kIFdlYkFzc2VtYmx5ICovCisjaWYgRU5BQkxFKEZU
TF9KSVQpCisjZGVmaW5lIEVOQUJMRV9CM19KSVQgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChF
TkFCTEVfV0VCQVNTRU1CTFkpICYmIChFTkFCTEUoQjNfSklUKSAmJiBQTEFURk9STShDT0NPQSkg
JiYgQ1BVKEFERFJFU1M2NCkpCisjZGVmaW5lIEVOQUJMRV9XRUJBU1NFTUJMWSAxCisjZW5kaWYK
KworLyogVGhlIFNhbXBsaW5nUHJvZmlsZXIgaXMgdGhlIHByb2JhYmlsaXN0aWMgYW5kIGxvdy1v
dmVyaGVhZCBwcm9maWxlciB1c2VkIGJ5CisgKiBKU0MgdG8gbWVhc3VyZSB3aGVyZSB0aW1lIGlz
IHNwZW50IGluc2lkZSBhIEphdmFTY3JpcHQgcHJvZ3JhbS4KKyAqIEluIGNvbmZpZ3VyYXRpb25z
IG90aGVyIHRoYW4gV2luZG93cyBhbmQgRGFyd2luLCBiZWNhdXNlIGxheW91dCBvZiBtY29udGV4
dF90IGRlcGVuZHMgb24gc3RhbmRhcmQgbGlicmFyaWVzIChsaWtlIGdsaWJjKSwKKyAqIHNhbXBs
aW5nIHByb2ZpbGVyIGlzIGVuYWJsZWQgaWYgV2ViS2l0IHVzZXMgcHRocmVhZHMgYW5kIGdsaWJj
LiAqLworI2lmICFkZWZpbmVkKEVOQUJMRV9TQU1QTElOR19QUk9GSUxFUikgJiYgKCFFTkFCTEUo
Q19MT09QKSAmJiAoT1MoV0lORE9XUykgfHwgSEFWRShNQUNISU5FX0NPTlRFWFQpKSkKKyNkZWZp
bmUgRU5BQkxFX1NBTVBMSU5HX1BST0ZJTEVSIDEKKyNlbmRpZgorCisjaWYgRU5BQkxFKFdFQkFT
U0VNQkxZKSAmJiBIQVZFKE1BQ0hJTkVfQ09OVEVYVCkKKyNkZWZpbmUgRU5BQkxFX1dFQkFTU0VN
QkxZX0ZBU1RfTUVNT1JZIDEKKyNlbmRpZgorCisvKiBDb3VudHMgdXNlcyBvZiB3cml0ZSBiYXJy
aWVycyB1c2luZyBzYW1wbGluZyBjb3VudGVycy4gQmUgc3VyZSB0byBhbHNvCisgICBzZXQgRU5B
QkxFX1NBTVBMSU5HX0NPVU5URVJTIHRvIDEuICovCisjaWYgIWRlZmluZWQoRU5BQkxFX1dSSVRF
X0JBUlJJRVJfUFJPRklMSU5HKQorI2RlZmluZSBFTkFCTEVfV1JJVEVfQkFSUklFUl9QUk9GSUxJ
TkcgMAorI2VuZGlmCisKKy8qIExvZ3MgYWxsIGFsbG9jYXRpb24tcmVsYXRlZCBhY3Rpdml0eSB0
aGF0IGdvZXMgdGhyb3VnaCBmYXN0TWFsbG9jIG9yIHRoZQorICAgSlNDIEdDIChib3RoIGNlbGxz
IGFuZCBidXR0ZXJmbGllcykuIEFsc28gbG9ncyBtYXJraW5nLiBOb3RlIHRoYXQgdGhpcworICAg
aXNuJ3QgYSBjb21wbGV0ZWx5IGFjY3VyYXRlIHZpZXcgb2YgdGhlIGhlYXAgc2luY2UgaXQgZG9l
c24ndCBpbmNsdWRlIGFsbAorICAgYnV0dGVyZmx5IHJlc2l6ZSBvcGVyYXRpb25zLCBkb2Vzbid0
IHRlbGwgeW91IHdoYXQgaXMgZ29pbmcgb24gd2l0aCB3ZWFrCisgICByZWZlcmVuY2VzIChvdGhl
ciB0aGFuIHRvIHRlbGwgeW91IHdoZW4gdGhleSdyZSBtYXJrZWQpLCBhbmQgZG9lc24ndAorICAg
dHJhY2sgZGlyZWN0IG1tYXAoKSBhbGxvY2F0aW9ucyBvciB0aGluZ3MgbGlrZSBKSVQgYWxsb2Nh
dGlvbi4gKi8KKyNpZiAhZGVmaW5lZChFTkFCTEVfQUxMT0NBVElPTl9MT0dHSU5HKQorI2RlZmlu
ZSBFTkFCTEVfQUxMT0NBVElPTl9MT0dHSU5HIDAKKyNlbmRpZgorCisvKiBFbmFibGUgdmVyaWZp
Y2F0aW9uIHRoYXQgdGhhdCByZWdpc3RlciBhbGxvY2F0aW9ucyBhcmUgbm90IG1hZGUgd2l0aGlu
IGdlbmVyYXRlZCBjb250cm9sIGZsb3cuCisgICBUdXJuZWQgb24gZm9yIGRlYnVnIGJ1aWxkcy4g
Ki8KKyNpZiAhZGVmaW5lZChFTkFCTEVfREZHX1JFR0lTVEVSX0FMTE9DQVRJT05fVkFMSURBVElP
TikgJiYgRU5BQkxFKERGR19KSVQpICYmICFkZWZpbmVkKE5ERUJVRykKKyNkZWZpbmUgRU5BQkxF
X0RGR19SRUdJU1RFUl9BTExPQ0FUSU9OX1ZBTElEQVRJT04gMQorI2VuZGlmCisKKyNpZiAhZGVm
aW5lZChFTkFCTEVfU0VQQVJBVEVEX1dYX0hFQVApICYmIFBMQVRGT1JNKElPU19GQU1JTFkpICYm
IENQVShBUk02NCkgJiYgKCFFTkFCTEUoRkFTVF9KSVRfUEVSTUlTU0lPTlMpIHx8ICFDUFUoQVJN
NjRFKSkKKyNkZWZpbmUgRU5BQkxFX1NFUEFSQVRFRF9XWF9IRUFQIDEKKyNlbmRpZgorCisvKiBE
ZXRlcm1pbmUgaWYgd2UgbmVlZCB0byBlbmFibGUgQ29tcHV0ZWQgR290byBPcGNvZGVzIG9yIG5v
dDogKi8KKyNpZiBIQVZFKENPTVBVVEVEX0dPVE8pIHx8ICFFTkFCTEUoQ19MT09QKQorI2RlZmlu
ZSBFTkFCTEVfQ09NUFVURURfR09UT19PUENPREVTIDEKKyNlbmRpZgorCisvKiBSZWd1bGFyIEV4
cHJlc3Npb24gVHJhY2luZyAtIFNldCB0byAxIHRvIHRyYWNlIFJlZ0V4cCdzIGluIGpzYy4gIFJl
c3VsdHMgZHVtcGVkIGF0IGV4aXQgKi8KKyNpZiAhZGVmaW5lZChFTkFCTEVfUkVHRVhQX1RSQUNJ
TkcpCisjZGVmaW5lIEVOQUJMRV9SRUdFWFBfVFJBQ0lORyAwCisjZW5kaWYKKworLyogWWV0IEFu
b3RoZXIgUmVnZXggUnVudGltZSAtIHR1cm5lZCBvbiBieSBkZWZhdWx0IGZvciBKSVQgZW5hYmxl
ZCBwb3J0cy4gKi8KKyNpZiAhZGVmaW5lZChFTkFCTEVfWUFSUl9KSVQpICYmIEVOQUJMRShKSVQp
CisjZGVmaW5lIEVOQUJMRV9ZQVJSX0pJVCAxCisjZW5kaWYKKworLyogU2V0dGluZyB0aGlzIGZs
YWcgY29tcGFyZXMgSklUIHJlc3VsdHMgd2l0aCBpbnRlcnByZXRlciByZXN1bHRzLiAqLworI2lm
ICFkZWZpbmVkKEVOQUJMRV9ZQVJSX0pJVCkgJiYgRU5BQkxFKEpJVCkKKyNkZWZpbmUgRU5BQkxF
X1lBUlJfSklUX0RFQlVHIDAKKyNlbmRpZgorCisvKiBFbmFibGUgSklUJ2luZyBSZWd1bGFyIEV4
cHJlc3Npb25zIHRoYXQgaGF2ZSBuZXN0ZWQgcGFyZW50aGVzaXMgLiAqLworI2lmIEVOQUJMRShZ
QVJSX0pJVCkgJiYgKENQVShBUk02NCkgfHwgKENQVShYODZfNjQpICYmICFPUyhXSU5ET1dTKSkp
CisjZGVmaW5lIEVOQUJMRV9ZQVJSX0pJVF9BTExfUEFSRU5TX0VYUFJFU1NJT05TIDEKKyNlbmRp
ZgorCisvKiBFbmFibGUgSklUJ2luZyBSZWd1bGFyIEV4cHJlc3Npb25zIHRoYXQgaGF2ZSBuZXN0
ZWQgYmFjayByZWZlcmVuY2VzLiAqLworI2lmIEVOQUJMRShZQVJSX0pJVCkgJiYgKENQVShBUk02
NCkgfHwgKENQVShYODZfNjQpICYmICFPUyhXSU5ET1dTKSkpCisjZGVmaW5lIEVOQUJMRV9ZQVJS
X0pJVF9CQUNLUkVGRVJFTkNFUyAxCisjZW5kaWYKKworLyogSWYgZWl0aGVyIHRoZSBKSVQgb3Ig
dGhlIFJlZ0V4cCBKSVQgaXMgZW5hYmxlZCwgdGhlbiB0aGUgQXNzZW1ibGVyIG11c3QgYmUKKyAg
IGVuYWJsZWQgYXMgd2VsbDogKi8KKyNpZiBFTkFCTEUoSklUKSB8fCBFTkFCTEUoWUFSUl9KSVQp
IHx8ICFFTkFCTEUoQ19MT09QKQorI2lmIGRlZmluZWQoRU5BQkxFX0FTU0VNQkxFUikgJiYgIUVO
QUJMRV9BU1NFTUJMRVIKKyNlcnJvciAiQ2Fubm90IGVuYWJsZSB0aGUgSklUIG9yIFJlZ0V4cCBK
SVQgd2l0aG91dCBlbmFibGluZyB0aGUgQXNzZW1ibGVyIgorI2Vsc2UKKyN1bmRlZiBFTkFCTEVf
QVNTRU1CTEVSCisjZGVmaW5lIEVOQUJMRV9BU1NFTUJMRVIgMQorI2VuZGlmCisjZW5kaWYKKwor
LyogSWYgdGhlIERpc2Fzc2VtYmxlciBpcyBlbmFibGVkLCB0aGVuIHRoZSBBc3NlbWJsZXIgbXVz
dCBiZSBlbmFibGVkIGFzIHdlbGw6ICovCisjaWYgRU5BQkxFKERJU0FTU0VNQkxFUikKKyNpZiBk
ZWZpbmVkKEVOQUJMRV9BU1NFTUJMRVIpICYmICFFTkFCTEVfQVNTRU1CTEVSCisjZXJyb3IgIkNh
bm5vdCBlbmFibGUgdGhlIERpc2Fzc2VtYmxlciB3aXRob3V0IGVuYWJsaW5nIHRoZSBBc3NlbWJs
ZXIiCisjZWxzZQorI3VuZGVmIEVOQUJMRV9BU1NFTUJMRVIKKyNkZWZpbmUgRU5BQkxFX0FTU0VN
QkxFUiAxCisjZW5kaWYKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0VYQ0VQVElPTl9T
Q09QRV9WRVJJRklDQVRJT04pCisjZGVmaW5lIEVOQUJMRV9FWENFUFRJT05fU0NPUEVfVkVSSUZJ
Q0FUSU9OIEFTU0VSVF9FTkFCTEVECisjZW5kaWYKKworI2lmIEVOQUJMRShERkdfSklUKSAmJiBI
QVZFKE1BQ0hJTkVfQ09OVEVYVCkgJiYgKENQVShYODZfNjQpIHx8IENQVShBUk02NCkpCisjZGVm
aW5lIEVOQUJMRV9TSUdOQUxfQkFTRURfVk1fVFJBUFMgMQorI2VuZGlmCisKKy8qIENTUyBTZWxl
Y3RvciBKSVQgQ29tcGlsZXIgKi8KKyNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTX1NFTEVDVE9SX0pJ
VCkgJiYgKChDUFUoWDg2XzY0KSB8fCBDUFUoQVJNNjQpIHx8IChDUFUoQVJNX1RIVU1CMikgJiYg
T1MoREFSV0lOKSkpICYmIEVOQUJMRShKSVQpICYmIChPUyhEQVJXSU4pIHx8IFBMQVRGT1JNKEdU
SykgfHwgUExBVEZPUk0oV1BFKSkpCisjZGVmaW5lIEVOQUJMRV9DU1NfU0VMRUNUT1JfSklUIDEK
KyNlbmRpZgorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmICFQTEFURk9STShXQVRDSE9TKSAmJiAh
UExBVEZPUk0oQVBQTEVUVikgJiYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQorI2RlZmluZSBFTkFC
TEVfREFUQV9ERVRFQ1RJT04gMQorI2VuZGlmCisKKyNpZiBDUFUoQVJNX1RIVU1CMikgfHwgQ1BV
KEFSTTY0KQorI2RlZmluZSBFTkFCTEVfQlJBTkNIX0NPTVBBQ1RJT04gMQorI2VuZGlmCisKKyNp
ZiAhZGVmaW5lZChFTkFCTEVfVEhSRUFESU5HX0xJQkRJU1BBVENIKSAmJiBIQVZFKERJU1BBVENI
X0gpCisjZGVmaW5lIEVOQUJMRV9USFJFQURJTkdfTElCRElTUEFUQ0ggMQorI2VsaWYgIWRlZmlu
ZWQoRU5BQkxFX1RIUkVBRElOR19PUEVOTVApICYmIGRlZmluZWQoX09QRU5NUCkKKyNkZWZpbmUg
RU5BQkxFX1RIUkVBRElOR19PUEVOTVAgMQorI2VsaWYgIWRlZmluZWQoVEhSRUFESU5HX0dFTkVS
SUMpCisjZGVmaW5lIEVOQUJMRV9USFJFQURJTkdfR0VORVJJQyAxCisjZW5kaWYKKworI2lmICFk
ZWZpbmVkKEVOQUJMRV9HQ19WQUxJREFUSU9OKSAmJiAhZGVmaW5lZChOREVCVUcpCisjZGVmaW5l
IEVOQUJMRV9HQ19WQUxJREFUSU9OIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0JJ
TkRJTkdfSU5URUdSSVRZKSAmJiAhT1MoV0lORE9XUykKKyNkZWZpbmUgRU5BQkxFX0JJTkRJTkdf
SU5URUdSSVRZIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1RSRUVfREVCVUdHSU5H
KSAmJiAhZGVmaW5lZChOREVCVUcpCisjZGVmaW5lIEVOQUJMRV9UUkVFX0RFQlVHR0lORyAxCisj
ZW5kaWYKKworI2lmIFBMQVRGT1JNKENPQ09BKQorI2RlZmluZSBFTkFCTEVfUkVTT1VSQ0VfVVNB
R0UgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfT1BFTlRZUEVfVkVSVElDQUwpICYm
IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQorI2RlZmluZSBFTkFCTEVfT1BFTlRZUEVf
VkVSVElDQUwgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfT1BFTlRZUEVfTUFUSCkg
JiYgKE9TKERBUldJTikgJiYgVVNFKENHKSkgfHwgKFVTRShGUkVFVFlQRSkgJiYgIVBMQVRGT1JN
KEdUSykpIHx8IChQTEFURk9STShXSU4pICYmIChVU0UoQ0cpIHx8IFVTRShDQUlSTykpKQorI2Rl
ZmluZSBFTkFCTEVfT1BFTlRZUEVfTUFUSCAxCisjZW5kaWYKKworLyoKKyAqIEVuYWJsZSB0aGlz
IHRvIHB1dCBlYWNoIElzb0hlYXAgYW5kIG90aGVyIGFsbG9jYXRpb24gY2F0ZWdvcmllcyBpbnRv
IHRoZWlyIG93biBtYWxsb2MgaGVhcHMsIHNvIHRoYXQgdG9vbHMgbGlrZSB2bW1hcCBjYW4gc2hv
dyBob3cgYmlnIGVhY2ggaGVhcCBpcy4KKyAqIFR1cm4gQkVOQUJMRV9NQUxMT0NfSEVBUF9CUkVB
S0RPV04gb24gaW4gYm1hbGxvYyB0b2dldGhlciB3aGVuIHVzaW5nIHRoaXMuCisgKi8KKyNpZiAh
ZGVmaW5lZChFTkFCTEVfTUFMTE9DX0hFQVBfQlJFQUtET1dOKQorI2RlZmluZSBFTkFCTEVfTUFM
TE9DX0hFQVBfQlJFQUtET1dOIDAKKyNlbmRpZgorCisvKiBEaXNhYmxlIFNoYXJlZEFycmF5QnVm
ZmVycyB1bnRpbCBTcGVjdHJlIHNlY3VyaXR5IGNvbmNlcm5zIGFyZSBtaXRpZ2F0ZWQuICovCisj
ZGVmaW5lIEVOQUJMRV9TSEFSRURfQVJSQVlfQlVGRkVSIDAKKworI2lmIFBMQVRGT1JNKE1BQykK
KyNkZWZpbmUgRU5BQkxFX1dFQl9QTEFZQkFDS19DT05UUk9MU19NQU5BR0VSIDEKKyNlbmRpZgor
CisjaWYgUExBVEZPUk0oQ09DT0EpCisvKiBGSVhNRTogVGhpcyBpcyBhIFVTRSBzdHlsZSBtYWNy
bywgYXMgaXQgdHJpZ2dlcnMgdGhlIHVzZSBvZiBDRlVSTENvbm5lY3Rpb24gZnJhbWV3b3JrIHN0
dWJzLiAqLworLyogRklYTUU6IElzIHRoaXMgc3RpbGwgbmVjZXNzYXJ5PyBDRlVSTENvbm5lY3Rp
b24gaXNuJ3QgdXNlZCBvbiBDb2NvYSBwbGF0Zm9ybXMgYW55IG1vcmUuICovCisjZGVmaW5lIEVO
QUJMRV9TRUNfSVRFTV9TSElNIDEKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oTUFDKQorI2RlZmlu
ZSBFTkFCTEVfRlVMTF9LRVlCT0FSRF9BQ0NFU1MgMQorI2VuZGlmCisKKyNpZiAoKFBMQVRGT1JN
KENPQ09BKSB8fCBQTEFURk9STShQTEFZU1RBVElPTikgfHwgUExBVEZPUk0oV1BFKSkgJiYgRU5B
QkxFKEFTWU5DX1NDUk9MTElORykpIHx8IFBMQVRGT1JNKEdUSykKKyNkZWZpbmUgRU5BQkxFX0tJ
TkVUSUNfU0NST0xMSU5HIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX01PTk9TUEFD
RV9GT05UX0VYQ0VQVElPTikgJiYgKChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPCAxMDE1MDApIHx8IFBMQVRGT1JNKFdBVENIT1MpIHx8IFBMQVRGT1JN
KEFQUExFVFYpKQorI2RlZmluZSBFTkFCTEVfTU9OT1NQQUNFX0ZPTlRfRVhDRVBUSU9OIDEKKyNl
bmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1BMQVRGT1JNX0RSSVZFTl9URVhUX0NIRUNLSU5H
KSAmJiBQTEFURk9STShNQUNDQVRBTFlTVCkKKyNkZWZpbmUgRU5BQkxFX1BMQVRGT1JNX0RSSVZF
Tl9URVhUX0NIRUNLSU5HIDEKKyNlbmRpZgorCisvKiBUaGlzIGZlYXR1cmUgd29ya3MgYnkgZW1i
ZWRkaW5nIHRoZSBPcGNvZGVJRCBpbiB0aGUgMzIgYml0IGp1c3QgYmVmb3JlIHRoZSBnZW5lcmF0
ZWQgTExpbnQgY29kZQorICAgdGhhdCBleGVjdXRlcyBlYWNoIG9wY29kZS4gSXQgY2Fubm90IGJl
IHN1cHBvcnRlZCBieSB0aGUgQ0xvb3Agc2luY2UgdGhlcmUncyBubyB3YXkgdG8gZW1iZWQgdGhl
CisgICBPcGNvZGVJRCB3b3JkIGluIHRoZSBDTG9vcCdzIHN3aXRjaCBzdGF0ZW1lbnQgY2FzZXMu
IEl0IGlzIGFsc28gY3VycmVudGx5IG5vdCBpbXBsZW1lbnRlZCBmb3IgTVNWQy4KKyovCisjaWYg
IWRlZmluZWQoRU5BQkxFX0xMSU5UX0VNQkVEREVEX09QQ09ERV9JRCkgJiYgIUVOQUJMRShDX0xP
T1ApICYmICFDT01QSUxFUihNU1ZDKSAmJiAoQ1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkgfHwgQ1BV
KEFSTTY0KSB8fCAoQ1BVKEFSTV9USFVNQjIpICYmIE9TKERBUldJTikpKQorI2RlZmluZSBFTkFC
TEVfTExJTlRfRU1CRURERURfT1BDT0RFX0lEIDEKKyNlbmRpZgorCisKKy8qIEFzc2VydHMsIGlu
dmFyaWFudHMgZm9yIG1hY3JvIGRlZmluaXRpb25zICovCisKKyNpZiBFTkFCTEUoVklERU9fVFJB
Q0spICYmICFFTkFCTEUoVklERU8pCisjZXJyb3IgIkVOQUJMRShWSURFT19UUkFDSykgcmVxdWly
ZXMgRU5BQkxFKFZJREVPKSIKKyNlbmRpZgorCisjaWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX1ND
UklQVCkgJiYgIUVOQUJMRShWSURFTykKKyNlcnJvciAiRU5BQkxFKE1FRElBX0NPTlRST0xTX1ND
UklQVCkgcmVxdWlyZXMgRU5BQkxFKFZJREVPKSIKKyNlbmRpZgorCisjaWYgRU5BQkxFKElOU1BF
Q1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hFUlMpICYmICFFTkFCTEUoUkVNT1RFX0lOU1BFQ1RPUikK
KyNlcnJvciAiRU5BQkxFKElOU1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hFUlMpIHJlcXVpcmVz
IEVOQUJMRShSRU1PVEVfSU5TUEVDVE9SKSIKKyNlbmRpZgorCisjaWYgRU5BQkxFKElPU19UT1VD
SF9FVkVOVFMpICYmICFFTkFCTEUoVE9VQ0hfRVZFTlRTKQorI2Vycm9yICJFTkFCTEUoSU9TX1RP
VUNIX0VWRU5UUykgcmVxdWlyZXMgRU5BQkxFKFRPVUNIX0VWRU5UUykiCisjZW5kaWYKKworI2lm
IEVOQUJMRShXRUJHTCkgJiYgIUVOQUJMRShHUkFQSElDU19DT05URVhUX0dMKQorI2Vycm9yICJF
TkFCTEUoV0VCR0wpIHJlcXVpcmVzIEVOQUJMRShHUkFQSElDU19DT05URVhUX0dMKSIKKyNlbmRp
ZgorCisjaWYgRU5BQkxFKFdFQkdMMikgJiYgIUVOQUJMRShXRUJHTCkKKyNlcnJvciAiRU5BQkxF
KFdFQkdMMikgcmVxdWlyZXMgRU5BQkxFKFdFQkdMKSIKKyNlbmRpZgpJbmRleDogU291cmNlL1dU
Ri93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3Rm
L1BsYXRmb3JtRW5hYmxlQ29jb2EuaAkocmV2aXNpb24gMjU1NTUyKQorKysgU291cmNlL1dURi93
dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAwNi0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNi0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwNy0yMDA5IFRvcmNoIE1vYmlsZSwgSW5jLgog
ICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDExIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEzIFNhbXN1bmcgRWxlY3Ry
b25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCkBAIC0zMiw4OSArMzIsNDIgQEAKICNlcnJvciAi
UGxlYXNlICNpbmNsdWRlIDx3dGYvUGxhdGZvcm0uaD4gaW5zdGVhZCBvZiB0aGlzIGZpbGUgZGly
ZWN0bHkuIgogI2VuZGlmCiAKLQotI2RlZmluZSBFTkFCTEUoV1RGX0ZFQVRVUkUpIChkZWZpbmVk
IEVOQUJMRV8jI1dURl9GRUFUVVJFICYmIEVOQUJMRV8jI1dURl9GRUFUVVJFKQotCi0vKiBVc2Ug
dGhpcyBmaWxlIHRvIGxpc3QgX2FsbF8gRU5BQkxFKCkgbWFjcm9zLiBEZWZpbmUgdGhlIG1hY3Jv
cyB0byBiZSBvbmUgb2YgdGhlIGZvbGxvd2luZyB2YWx1ZXM6Ci0gKiAgLSAiMCIgZGlzYWJsZXMg
dGhlIGZlYXR1cmUgYnkgZGVmYXVsdC4gVGhlIGZlYXR1cmUgY2FuIHN0aWxsIGJlIGVuYWJsZWQg
Zm9yIGEgc3BlY2lmaWMgcG9ydCBvciBlbnZpcm9ubWVudC4KLSAqICAtICIxIiBlbmFibGVzIHRo
ZSBmZWF0dXJlIGJ5IGRlZmF1bHQuIFRoZSBmZWF0dXJlIGNhbiBzdGlsbCBiZSBkaXNhYmxlZCBm
b3IgYSBzcGVjaWZpYyBwb3J0IG9yIGVudmlyb25tZW50LgotICoKLSAqIFRoZSBmZWF0dXJlIGRl
ZmF1bHRzIGluIHRoaXMgZmlsZSBhcmUgb25seSB0YWtlbiBpbnRvIGFjY291bnQgaWYgdGhlIChw
b3J0IHNwZWNpZmljKSBidWlsZCBzeXN0ZW0KLSAqIGhhcyBub3QgZW5hYmxlZCBvciBkaXNhYmxl
ZCBhIHBhcnRpY3VsYXIgZmVhdHVyZS4KLSAqCi0gKiBVc2UgdGhpcyBmaWxlIHRvIGRlZmluZSBF
TkFCTEUoKSBtYWNyb3Mgb25seS4gRG8gbm90IHVzZSB0aGlzIGZpbGUgdG8gZGVmaW5lIFVTRSgp
IG9yIG1hY3JvcyAhCi0gKgotICogT25seSBkZWZpbmUgYSBtYWNybyBpZiBpdCB3YXMgbm90IGRl
ZmluZWQgYmVmb3JlIC0gYWx3YXlzIGNoZWNrIGZvciAhZGVmaW5lZCBmaXJzdC4KLSAqCi0gKiBL
ZWVwIHRoZSBmaWxlIHNvcnRlZCBieSB0aGUgbmFtZSBvZiB0aGUgZGVmaW5lcy4gQXMgYW4gZXhj
ZXB0aW9uIHlvdSBjYW4gY2hhbmdlIHRoZSBvcmRlcgotICogdG8gYWxsb3cgaW50ZXJkZXBlbmRl
bmNpZXMgYmV0d2VlbiB0aGUgZGVmYXVsdCB2YWx1ZXMuCi0gKgotICogQmVsb3cgYXJlIGEgZmV3
IHBvdGVudGlhbCBjb21tYW5kcyB0byB0YWtlIGFkdmFudGFnZSBvZiB0aGlzIGZpbGUgcnVubmlu
ZyBmcm9tIHRoZSBTb3VyY2UvV1RGIGRpcmVjdG9yeQotICoKLSAqIEdldCB0aGUgbGlzdCBvZiBm
ZWF0dXJlIGRlZmluZXM6IGdyZXAgLW8gIkVOQUJMRV9cKFx3XCtcKSIgd3RmL1BsYXRmb3JtRW5h
YmxlLmggfCBzb3J0IHwgdW5pcQotICogR2V0IHRoZSBsaXN0IG9mIGZlYXR1cmVzIGVuYWJsZWQg
YnkgZGVmYXVsdCBmb3IgYSBQTEFURk9STShYWFgpOiBnY2MgLUUgLWRNIC1JLiAtRFdURl9QTEFU
Rk9STV9YWFggInd0Zi9QbGF0Zm9ybS5oIiB8IGdyZXAgIkVOQUJMRV9cd1wrIDEiIHwgY3V0IC1k
JyAnIC1mMiB8IHNvcnQKLSAqLwotCi0KLS8qIEZJWE1FOiBUaGlzIHNob3VsZCBiZSByZW5hbWVk
IHRvIEVOQUJMRV9BU1NFUlRTIGZvciBjb25zaXN0ZW5jeSBhbmQgc28gaXQgY2FuIGJlIHVzZWQg
YXMgRU5BQkxFKEFTU0VSVFMpLiAqLwotLyogQVNTRVJUX0VOQUJMRUQgc2hvdWxkIGJlIHRydWUg
aWYgd2Ugd2FudCB0aGUgY3VycmVudCBjb21waWxhdGlvbiB1bml0IHRvCi0gICBkbyBkZWJ1ZyBh
c3NlcnRpb24gY2hlY2tzIHVuY29uZGl0aW9uYWxseSAoZS5nLiB0cmVhdCBhIGRlYnVnIEFTU0VS
VAotICAgbGlrZSBhIFJFTEVBU0VfQVNTRVJULgotKi8KLSNpZm5kZWYgQVNTRVJUX0VOQUJMRUQK
LSNpZmRlZiBOREVCVUcKLSNkZWZpbmUgQVNTRVJUX0VOQUJMRUQgMAotI2Vsc2UKLSNkZWZpbmUg
QVNTRVJUX0VOQUJMRUQgMQotI2VuZGlmCi0jZW5kaWYKLQotLyogPT09PSBQbGF0Zm9ybSBhZGRp
dGlvbnM6IGFkZGl0aW9ucyB0byBQbGF0Zm9ybUVuYWJsZS5oIGZyb20gb3V0c2lkZSB0aGUgbWFp
biByZXBvc2l0b3J5ID09PT0gKi8KLQotI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspICYmIF9f
aGFzX2luY2x1ZGUoPFdlYktpdEFkZGl0aW9ucy9BZGRpdGlvbmFsRmVhdHVyZURlZmluZXMuaD4p
Ci0jaW5jbHVkZSA8V2ViS2l0QWRkaXRpb25zL0FkZGl0aW9uYWxGZWF0dXJlRGVmaW5lcy5oPgor
I2lmICFQTEFURk9STShDT0NPQSkKKyNlcnJvciAiVGhpcyBmaWxlIHNob3VsZCBvbmx5IGJlIGlu
Y2x1ZGVkIHdoZW4gYnVpbGRpbmcgZm9yIG9uZSBvZiBBcHBsZSdzIENvY29hIHBsYXRmb3Jtcy4i
CiAjZW5kaWYKIAotLyogRklYTUU6IE1vdmUgb3V0IHRoZSBQTEFURk9STSBzcGVjaWZpYyBydWxl
cyBpbnRvIHBsYXRmb3JtIHNwZWNpZmljIGZpbGVzLiAqLwogCi0vKiAtLS0tLS0tLS0gQXBwbGUg
aU9TIChidXQgbm90IG1hY09TKSBwb3J0IC0tLS0tLS0tLSAqLwotI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpCisvKiAtLS0tLS0tLS0gQXBwbGUgQ29jb2EgcGxhdGZvcm1zIC0tLS0tLS0tLSAqLwog
Ci0jaWYgIWRlZmluZWQoRU5BQkxFX0FJUlBMQVlfUElDS0VSKQotI2lmICFQTEFURk9STShNQUND
QVRBTFlTVCkKKyNpZiAhZGVmaW5lZChFTkFCTEVfQUlSUExBWV9QSUNLRVIpICYmIChQTEFURk9S
TShJT1NfRkFNSUxZKSAmJiAhUExBVEZPUk0oTUFDQ0FUQUxZU1QpKQogI2RlZmluZSBFTkFCTEVf
QUlSUExBWV9QSUNLRVIgMQogI2VuZGlmCi0jZW5kaWYKIAotI2lmICFkZWZpbmVkKEVOQUJMRV9B
UFBMRV9QQVlfUkVNT1RFX1VJKQotI2lmICFQTEFURk9STShBUFBMRVRWKSAmJiAhUExBVEZPUk0o
TUFDQ0FUQUxZU1QpICYmICFQTEFURk9STShXQVRDSE9TKQorI2lmICFkZWZpbmVkKEVOQUJMRV9B
UFBMRV9QQVlfUkVNT1RFX1VJKSAmJiAoUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgIVBMQVRGT1JN
KEFQUExFVFYpICYmICFQTEFURk9STShNQUNDQVRBTFlTVCkgJiYgIVBMQVRGT1JNKFdBVENIT1Mp
KQogI2RlZmluZSBFTkFCTEVfQVBQTEVfUEFZX1JFTU9URV9VSSAxCiAjZW5kaWYKLSNlbmRpZgog
CiAjaWYgIWRlZmluZWQoRU5BQkxFX0NPTlRFTlRfRVhURU5TSU9OUykKICNkZWZpbmUgRU5BQkxF
X0NPTlRFTlRfRVhURU5TSU9OUyAxCiAjZW5kaWYKIAotI2lmICFkZWZpbmVkKEVOQUJMRV9DT05U
RVhUX01FTlVTKQorI2lmICFkZWZpbmVkKEVOQUJMRV9DT05URVhUX01FTlVTKSAmJiBQTEFURk9S
TShJT1NfRkFNSUxZKQogI2RlZmluZSBFTkFCTEVfQ09OVEVYVF9NRU5VUyAwCiAjZW5kaWYKIAot
I2lmICFkZWZpbmVkKEVOQUJMRV9DT05URVhUX01FTlVfRVZFTlQpCi0jaWYgIVBMQVRGT1JNKE1B
Q0NBVEFMWVNUKQorI2lmICFkZWZpbmVkKEVOQUJMRV9DT05URVhUX01FTlVfRVZFTlQpICYmIChQ
TEFURk9STShJT1NfRkFNSUxZKSAmJiAhUExBVEZPUk0oTUFDQ0FUQUxZU1QpKQogI2RlZmluZSBF
TkFCTEVfQ09OVEVYVF9NRU5VX0VWRU5UIDAKICNlbmRpZgotI2VuZGlmCiAKLSNpZiAhZGVmaW5l
ZChFTkFCTEVfQ1VTVE9NX0NVUlNPUl9TVVBQT1JUKQorI2lmICFkZWZpbmVkKEVOQUJMRV9DVVNU
T01fQ1VSU09SX1NVUFBPUlQpICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAjZGVmaW5lIEVOQUJM
RV9DVVNUT01fQ1VSU09SX1NVUFBPUlQgMAogI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChFTkFCTEVf
RFJBR19TVVBQT1JUKQorI2lmICFkZWZpbmVkKEVOQUJMRV9EUkFHX1NVUFBPUlQpICYmIFBMQVRG
T1JNKElPU19GQU1JTFkpCiAjZGVmaW5lIEVOQUJMRV9EUkFHX1NVUFBPUlQgMAogI2VuZGlmCiAK
LSNpZiAhZGVmaW5lZChFTkFCTEVfR0VPTE9DQVRJT04pCisjaWYgIWRlZmluZWQoRU5BQkxFX0dF
T0xPQ0FUSU9OKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQogI2RlZmluZSBFTkFCTEVfR0VPTE9D
QVRJT04gMQogI2VuZGlmCiAKQEAgLTEyMiw0NyArNzUsNDcgQEAKICNkZWZpbmUgRU5BQkxFX0lO
U1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hFUlMgMQogI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChF
TkFCTEVfSU5TUEVDVE9SX1RFTEVNRVRSWSkKLSNkZWZpbmUgRU5BQkxFX0lOU1BFQ1RPUl9URUxF
TUVUUlkgMAorI2lmICFkZWZpbmVkKEVOQUJMRV9JTlNQRUNUT1JfVEVMRU1FVFJZKSAmJiBQTEFU
Rk9STShNQUMpCisjZGVmaW5lIEVOQUJMRV9JTlNQRUNUT1JfVEVMRU1FVFJZIDEKICNlbmRpZgog
Ci0jaWYgIWRlZmluZWQoRU5BQkxFX0xFVFRFUlBSRVNTKQorI2lmICFkZWZpbmVkKEVOQUJMRV9M
RVRURVJQUkVTUykgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICNkZWZpbmUgRU5BQkxFX0xFVFRF
UlBSRVNTIDEKICNlbmRpZgogCi0jaWYgIWRlZmluZWQoRU5BQkxFX0FVVE9DT1JSRUNUKQorI2lm
ICFkZWZpbmVkKEVOQUJMRV9BVVRPQ09SUkVDVCkgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICNk
ZWZpbmUgRU5BQkxFX0FVVE9DT1JSRUNUIDEKICNlbmRpZgogCi0jaWYgIWRlZmluZWQoRU5BQkxF
X0FVVE9DQVBJVEFMSVpFKQorI2lmICFkZWZpbmVkKEVOQUJMRV9BVVRPQ0FQSVRBTElaRSkgJiYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKICNkZWZpbmUgRU5BQkxFX0FVVE9DQVBJVEFMSVpFIDEKICNl
bmRpZgogCi0jaWYgIWRlZmluZWQoRU5BQkxFX0lPU19HRVNUVVJFX0VWRU5UUykgJiYgVVNFKEFQ
UExFX0lOVEVSTkFMX1NESykKKyNpZiAhZGVmaW5lZChFTkFCTEVfSU9TX0dFU1RVUkVfRVZFTlRT
KSAmJiAoUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykpCiAj
ZGVmaW5lIEVOQUJMRV9JT1NfR0VTVFVSRV9FVkVOVFMgMQogI2VuZGlmCiAKLSNpZiAhZGVmaW5l
ZChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKQotI2RlZmluZSBFTkFCTEVfVEVYVF9BVVRPU0laSU5H
IDEKKyNpZiAhZGVmaW5lZChFTkFCTEVfSU9TX1RPVUNIX0VWRU5UUykgJiYgKFBMQVRGT1JNKElP
U19GQU1JTFkpICYmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspKQorI2RlZmluZSBFTkFCTEVfSU9T
X1RPVUNIX0VWRU5UUyAxCiAjZW5kaWYKIAotI2lmICFkZWZpbmVkKEVOQUJMRV9JT1NfVE9VQ0hf
RVZFTlRTKSAmJiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQotI2RlZmluZSBFTkFCTEVfSU9TX1RP
VUNIX0VWRU5UUyAxCisjaWYgIWRlZmluZWQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykgJiYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKKyNkZWZpbmUgRU5BQkxFX1RFWFRfQVVUT1NJWklORyAxCiAjZW5k
aWYKIAotI2lmICFkZWZpbmVkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKQorI2lmICFkZWZpbmVkKEVO
QUJMRV9NRVRFUl9FTEVNRU5UKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQogI2RlZmluZSBFTkFC
TEVfTUVURVJfRUxFTUVOVCAwCiAjZW5kaWYKIAotI2lmICFkZWZpbmVkKEVOQUJMRV9ORVRTQ0FQ
RV9QTFVHSU5fQVBJKQorI2lmICFkZWZpbmVkKEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJKSAm
JiBQTEFURk9STShJT1NfRkFNSUxZKQogI2RlZmluZSBFTkFCTEVfTkVUU0NBUEVfUExVR0lOX0FQ
SSAwCiAjZW5kaWYKIAotI2lmICFkZWZpbmVkKEVOQUJMRV9PUklFTlRBVElPTl9FVkVOVFMpCisj
aWYgIWRlZmluZWQoRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUykgJiYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKICNkZWZpbmUgRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUyAxCiAjZW5kaWYKIAotI2lm
ICFkZWZpbmVkKEVOQUJMRV9QT0lOVEVSX0xPQ0spCisjaWYgIWRlZmluZWQoRU5BQkxFX1BPSU5U
RVJfTE9DSykgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICNkZWZpbmUgRU5BQkxFX1BPSU5URVJf
TE9DSyAwCiAjZW5kaWYKIApAQCAtMTcwLDE3ICsxMjMsMTUgQEAKICNkZWZpbmUgRU5BQkxFX1JF
TU9URV9JTlNQRUNUT1IgMQogI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChFTkFCTEVfVEVYVF9DQVJF
VCkKKyNpZiAhZGVmaW5lZChFTkFCTEVfVEVYVF9DQVJFVCkgJiYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKICNkZWZpbmUgRU5BQkxFX1RFWFRfQ0FSRVQgMAogI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChF
TkFCTEVfVEVYVF9TRUxFQ1RJT04pCisjaWYgIWRlZmluZWQoRU5BQkxFX1RFWFRfU0VMRUNUSU9O
KSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQogI2RlZmluZSBFTkFCTEVfVEVYVF9TRUxFQ1RJT04g
MAogI2VuZGlmCiAKLS8qIEZJWE1FOiBSZW1vdmUgdGhlIFVTRShBUFBMRV9JTlRFUk5BTF9TREsp
IGNvbmp1bmN0IG9uY2Ugd2Ugc3VwcG9ydCB0b3VjaCBldmVudHMgd2hlbiBidWlsZGluZyBhZ2Fp
bnN0Ci10aGUgcHVibGljIGlPUyBTREsuIFNlZSA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTc5MTY3
Pi4gKi8KLSNpZiAhZGVmaW5lZChFTkFCTEVfVE9VQ0hfRVZFTlRTKSAmJiBVU0UoQVBQTEVfSU5U
RVJOQUxfU0RLKQorI2lmICFkZWZpbmVkKEVOQUJMRV9UT1VDSF9FVkVOVFMpICYmIChQTEFURk9S
TShJT1NfRkFNSUxZKSAmJiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKSkKICNkZWZpbmUgRU5BQkxF
X1RPVUNIX0VWRU5UUyAxCiAjZW5kaWYKIApAQCAtMTg4LDcgKzEzOSw3IEBAIHRoZSBwdWJsaWMg
aU9TIFNESy4gU2VlIDxodHRwczovL3dlYmtpdC4KICNkZWZpbmUgRU5BQkxFX1dFQl9BUkNISVZF
IDEKICNlbmRpZgogCi0jaWYgIWRlZmluZWQoRU5BQkxFX1dFQkdMKQorI2lmICFkZWZpbmVkKEVO
QUJMRV9XRUJHTCkgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICNkZWZpbmUgRU5BQkxFX1dFQkdM
IDEKICNlbmRpZgogCkBAIC0xOTYsMTExICsxNDcsNTcgQEAgdGhlIHB1YmxpYyBpT1MgU0RLLiBT
ZWUgPGh0dHBzOi8vd2Via2l0LgogI2RlZmluZSBFTkFCTEVfUFJJTUFSWV9TTkFQU0hPVFRFRF9Q
TFVHSU5fSEVVUklTVElDIDEKICNlbmRpZgogCi0jaWYgIWRlZmluZWQoRU5BQkxFX0RPV05MT0FE
X0FUVFJJQlVURSkKLSNkZWZpbmUgRU5BQkxFX0RPV05MT0FEX0FUVFJJQlVURSAxCi0jZW5kaWYK
LQogI2lmICFkZWZpbmVkKEVOQUJMRV9XS1BERlZJRVcpICYmIFBMQVRGT1JNKElPUykKICNkZWZp
bmUgRU5BQkxFX1dLUERGVklFVyAxCiAjZW5kaWYKIAotI2lmICFkZWZpbmVkKEVOQUJMRV9NRURJ
QV9TT1VSQ0UpCi0jZGVmaW5lIEVOQUJMRV9NRURJQV9TT1VSQ0UgMAorI2lmICFkZWZpbmVkKEVO
QUJMRV9NRURJQV9TT1VSQ0UpICYmIFBMQVRGT1JNKE1BQykKKyNkZWZpbmUgRU5BQkxFX01FRElB
X1NPVVJDRSAxCiAjZW5kaWYKIAogI2lmICFkZWZpbmVkKEVOQUJMRV9QUkVWSUVXX0NPTlZFUlRF
UikgJiYgUExBVEZPUk0oSU9TKQogI2RlZmluZSBFTkFCTEVfUFJFVklFV19DT05WRVJURVIgMQog
I2VuZGlmCiAKLSNpZiAhZGVmaW5lZChFTkFCTEVfTUVUQV9WSUVXUE9SVCkKKyNpZiAhZGVmaW5l
ZChFTkFCTEVfTUVUQV9WSUVXUE9SVCkgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICNkZWZpbmUg
RU5BQkxFX01FVEFfVklFV1BPUlQgMQogI2VuZGlmCiAKLSNlbmRpZiAvKiBQTEFURk9STShJT1Nf
RkFNSUxZKSAqLwotCi0vKiAtLS0tLS0tLS0gQXBwbGUgd2F0Y2hPUyBwb3J0IC0tLS0tLS0tLSAq
LwotI2lmIFBMQVRGT1JNKFdBVENIT1MpCi0KLSNlbmRpZiAvKiBQTEFURk9STShXQVRDSE9TKSAq
LwotCi0vKiAtLS0tLS0tLS0gQXBwbGUgbWFjT1MgcG9ydCAobm90IGlPUykgLS0tLS0tLS0tICov
Ci0jaWYgUExBVEZPUk0oTUFDKQotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0NPTlRFTlRfRVhURU5T
SU9OUykKLSNkZWZpbmUgRU5BQkxFX0NPTlRFTlRfRVhURU5TSU9OUyAxCi0jZW5kaWYKLQotI2lm
ICFkZWZpbmVkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkKKyNpZiAhZGVmaW5lZChFTkFCTEVfRlVM
TFNDUkVFTl9BUEkpICYmIFBMQVRGT1JNKE1BQykKICNkZWZpbmUgRU5BQkxFX0ZVTExTQ1JFRU5f
QVBJIDEKICNlbmRpZgogCi0jaWYgIWRlZmluZWQoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpCi0j
ZGVmaW5lIEVOQUJMRV9SRU1PVEVfSU5TUEVDVE9SIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQo
RU5BQkxFX0lOU1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hFUlMpCi0jZGVmaW5lIEVOQUJMRV9J
TlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENIRVJTIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQo
RU5BQkxFX0lOU1BFQ1RPUl9URUxFTUVUUlkpCi0jZGVmaW5lIEVOQUJMRV9JTlNQRUNUT1JfVEVM
RU1FVFJZIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX1NNT09USF9TQ1JPTExJTkcp
CisjaWYgIWRlZmluZWQoRU5BQkxFX1NNT09USF9TQ1JPTExJTkcpICYmIFBMQVRGT1JNKE1BQykK
ICNkZWZpbmUgRU5BQkxFX1NNT09USF9TQ1JPTExJTkcgMQogI2VuZGlmCiAKLSNpZiBFTkFCTEUo
VklERU8pCi0jaWYgIWRlZmluZWQoRU5BQkxFX1ZJREVPX1RSQUNLKQorI2lmICFkZWZpbmVkKEVO
QUJMRV9WSURFT19UUkFDSykgJiYgUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU8pCiAjZGVm
aW5lIEVOQUJMRV9WSURFT19UUkFDSyAxCiAjZW5kaWYKLSNlbmRpZgogCi0jaWYgIWRlZmluZWQo
RU5BQkxFX1dFQl9BUkNISVZFKQotI2RlZmluZSBFTkFCTEVfV0VCX0FSQ0hJVkUgMQotI2VuZGlm
Ci0KLSNpZiAhZGVmaW5lZChFTkFCTEVfV0VCX0FVRElPKQorI2lmICFkZWZpbmVkKEVOQUJMRV9X
RUJfQVVESU8pICYmIFBMQVRGT1JNKE1BQykKICNkZWZpbmUgRU5BQkxFX1dFQl9BVURJTyAxCiAj
ZW5kaWYKIAotI2lmICFkZWZpbmVkKEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSkKKyNpZiAhZGVm
aW5lZChFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkpICYmIFBMQVRGT1JNKE1BQykKICNkZWZpbmUg
RU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZIDEKICNlbmRpZgogCi0jaWYgIWRlZmluZWQoRU5BQkxF
X1BSSU1BUllfU05BUFNIT1RURURfUExVR0lOX0hFVVJJU1RJQykKLSNkZWZpbmUgRU5BQkxFX1BS
SU1BUllfU05BUFNIT1RURURfUExVR0lOX0hFVVJJU1RJQyAxCi0jZW5kaWYKLQotI2lmICFkZWZp
bmVkKEVOQUJMRV9NQUNfR0VTVFVSRV9FVkVOVFMpICYmIFVTRShBUFBMRV9JTlRFUk5BTF9TREsp
CisjaWYgIWRlZmluZWQoRU5BQkxFX01BQ19HRVNUVVJFX0VWRU5UUykgJiYgKFBMQVRGT1JNKE1B
QykgJiYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykpCiAjZGVmaW5lIEVOQUJMRV9NQUNfR0VTVFVS
RV9FVkVOVFMgMQogI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChFTkFCTEVfV0VCUFJPQ0VTU19OU1JV
TkxPT1ApCi0jZGVmaW5lIEVOQUJMRV9XRUJQUk9DRVNTX05TUlVOTE9PUCBfX01BQ19PU19YX1ZF
UlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTQwMAorI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJQUk9D
RVNTX05TUlVOTE9PUCkgJiYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA+PSAxMDE0MDApCisjZGVmaW5lIEVOQUJMRV9XRUJQUk9DRVNTX05TUlVOTE9P
UCAxCiAjZW5kaWYKIAotI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJQUk9DRVNTX1dJTkRPV1NFUlZF
Ul9CTE9DS0lORykKLSNkZWZpbmUgRU5BQkxFX1dFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NL
SU5HIEVOQUJMRV9XRUJQUk9DRVNTX05TUlVOTE9PUAorI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJQ
Uk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykgJiYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNf
T1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE0MDApCisjZGVmaW5lIEVOQUJMRV9XRUJQ
Uk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORyAxCiAjZW5kaWYKIAotI2lmICFkZWZpbmVkKEVO
QUJMRV9NRURJQV9TT1VSQ0UpCi0jZGVmaW5lIEVOQUJMRV9NRURJQV9TT1VSQ0UgMQotI2VuZGlm
Ci0KLSNlbmRpZiAvKiBQTEFURk9STShNQUMpICovCi0KLS8qIC0tLS0tLS0tLSBBcHBsZSBDb2Nv
YSBwbGF0Zm9ybXMgLS0tLS0tLS0tICovCi0KLSNpZiBQTEFURk9STShDT0NPQSkKLQotI2lmICFk
ZWZpbmVkKEVOQUJMRV9MRUdBQ1lfRU5DUllQVEVEX01FRElBKQotI2lmIFBMQVRGT1JNKE1BQ0NB
VEFMWVNUKQotI2RlZmluZSBFTkFCTEVfTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSAwCi0jZWxzZQor
I2lmICFkZWZpbmVkKEVOQUJMRV9MRUdBQ1lfRU5DUllQVEVEX01FRElBKSAmJiAhUExBVEZPUk0o
TUFDQ0FUQUxZU1QpCiAjZGVmaW5lIEVOQUJMRV9MRUdBQ1lfRU5DUllQVEVEX01FRElBIDEKICNl
bmRpZgotI2VuZGlmCiAKICNpZiAhZGVmaW5lZChFTkFCTEVfRklMRV9SRVBMQUNFTUVOVCkKICNk
ZWZpbmUgRU5BQkxFX0ZJTEVfUkVQTEFDRU1FTlQgMQpAQCAtMzE4LDY5OSArMjE1LDEwIEBAIHRo
ZSBwdWJsaWMgaU9TIFNESy4gU2VlIDxodHRwczovL3dlYmtpdC4KICNkZWZpbmUgRU5BQkxFX1VJ
X1NJREVfQ09NUE9TSVRJTkcgMQogI2VuZGlmCiAKLSNlbmRpZiAvKiBQTEFURk9STShDT0NPQSkg
Ki8KLQotI2lmICFQTEFURk9STShDT0NPQSkKLQotI2lmICFkZWZpbmVkKEpTQ19PQkpDX0FQSV9F
TkFCTEVEKQotI2RlZmluZSBKU0NfT0JKQ19BUElfRU5BQkxFRCAwCi0jZW5kaWYKLQotI2VuZGlm
IC8qICFQTEFURk9STShDT0NPQSkgKi8KLQotCi0vKiAtLS0tLS0tLS0gQXBwbGUgV2luZG93cyBw
b3J0IC0tLS0tLS0tLSAqLwotI2lmIFBMQVRGT1JNKFdJTikgJiYgIVBMQVRGT1JNKFdJTl9DQUlS
TykKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkKLSNkZWZpbmUgRU5BQkxF
X0ZVTExTQ1JFRU5fQVBJIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX1dFQl9BUkNI
SVZFKQotI2RlZmluZSBFTkFCTEVfV0VCX0FSQ0hJVkUgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5l
ZChFTkFCTEVfV0VCR0wpCi0jZGVmaW5lIEVOQUJMRV9XRUJHTCAwCi0jZW5kaWYKLQotI2lmICFk
ZWZpbmVkKEVOQUJMRV9HRU9MT0NBVElPTikKLSNkZWZpbmUgRU5BQkxFX0dFT0xPQ0FUSU9OIDEK
LSNlbmRpZgotCi0jZW5kaWYgLyogUExBVEZPUk0oV0lOKSAmJiAhUExBVEZPUk0oV0lOX0NBSVJP
KSAqLwotCi0vKiAtLS0tLS0tLS0gV2luZG93cyBDQUlSTyBwb3J0IC0tLS0tLS0tLSAqLwotLyog
UExBVEZPUk0oV0lOX0NBSVJPKSBpcyBhIHNwZWNpYWxpemF0aW9uIG9mIFBMQVRGT1JNKFdJTiku
ICovCi0vKiBQTEFURk9STShXSU4pIGlzIGFsd2F5cyBlbmFibGVkIHdoZW4gUExBVEZPUk0oV0lO
X0NBSVJPKSBpcyBlbmFibGVkLiAqLwotI2lmIFBMQVRGT1JNKFdJTl9DQUlSTykKLQotI2lmICFk
ZWZpbmVkKEVOQUJMRV9XRUJfQVJDSElWRSkKLSNkZWZpbmUgRU5BQkxFX1dFQl9BUkNISVZFIDEK
LSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX1dFQkdMKQotI2RlZmluZSBFTkFCTEVfV0VC
R0wgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfR0VPTE9DQVRJT04pCi0jZGVmaW5l
IEVOQUJMRV9HRU9MT0NBVElPTiAxCi0jZW5kaWYKLQotI2VuZGlmIC8qIFBMQVRGT1JNKFdJTl9D
QUlSTykgKi8KLQotLyogRU5BQkxFIG1hY3JvIGRlZmF1bHRzIGZvciBXZWJDb3JlICovCi0vKiBE
byBub3QgdXNlIFBMQVRGT1JNKCkgdGVzdHMgaW4gdGhpcyBzZWN0aW9uICEgKi8KLQotI2lmICFk
ZWZpbmVkKEVOQUJMRV8zRF9UUkFOU0ZPUk1TKQotI2RlZmluZSBFTkFCTEVfM0RfVFJBTlNGT1JN
UyAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9BQ0NFU1NJQklMSVRZKQotI2RlZmlu
ZSBFTkFCTEVfQUNDRVNTSUJJTElUWSAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9B
Q0NFTEVSQVRFRF8yRF9DQU5WQVMpCi0jZGVmaW5lIEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5W
QVMgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfT1ZFUkZMT1dfU0NST0xMSU5HX1RP
VUNIKQotI2RlZmluZSBFTkFCTEVfT1ZFUkZMT1dfU0NST0xMSU5HX1RPVUNIIDAKLSNlbmRpZgot
Ci0jaWYgIWRlZmluZWQoRU5BQkxFX0FQTkcpCi0jZGVmaW5lIEVOQUJMRV9BUE5HIDEKLSNlbmRp
ZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKQotI2RlZmluZSBFTkFC
TEVfQ0hBTk5FTF9NRVNTQUdJTkcgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfQ09O
VEVOVF9FWFRFTlNJT05TKQotI2RlZmluZSBFTkFCTEVfQ09OVEVOVF9FWFRFTlNJT05TIDAKLSNl
bmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0NPTlRFWFRfTUVOVVMpCi0jZGVmaW5lIEVOQUJM
RV9DT05URVhUX01FTlVTIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0NPTlRFWFRf
TUVOVV9FVkVOVCkKLSNkZWZpbmUgRU5BQkxFX0NPTlRFWFRfTUVOVV9FVkVOVCAxCi0jZW5kaWYK
LQotI2lmICFkZWZpbmVkKEVOQUJMRV9DU1MzX1RFWFQpCi0jZGVmaW5lIEVOQUJMRV9DU1MzX1RF
WFQgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JS
RUFLKQotI2RlZmluZSBFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLIDEKLSNlbmRpZgot
Ci0jaWYgIWRlZmluZWQoRU5BQkxFX0NTU19ERVZJQ0VfQURBUFRBVElPTikKLSNkZWZpbmUgRU5B
QkxFX0NTU19ERVZJQ0VfQURBUFRBVElPTiAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJM
RV9DU1NfQ09NUE9TSVRJTkcpCi0jZGVmaW5lIEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcgMAotI2Vu
ZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pCi0jZGVmaW5l
IEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTiAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVO
QUJMRV9DU1NfQ09OSUNfR1JBRElFTlRTKQotI2RlZmluZSBFTkFCTEVfQ1NTX0NPTklDX0dSQURJ
RU5UUyAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9DVVNUT01fQ1VSU09SX1NVUFBP
UlQpCi0jZGVmaW5lIEVOQUJMRV9DVVNUT01fQ1VSU09SX1NVUFBPUlQgMQotI2VuZGlmCi0KLSNp
ZiAhZGVmaW5lZChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKQotI2RlZmluZSBFTkFCTEVf
Q1VTVE9NX1NDSEVNRV9IQU5ETEVSIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0RB
UktfTU9ERV9DU1MpCi0jZGVmaW5lIEVOQUJMRV9EQVJLX01PREVfQ1NTIDAKLSNlbmRpZgotCi0j
aWYgIWRlZmluZWQoRU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQpCi0jZGVmaW5lIEVOQUJMRV9EQVRB
TElTVF9FTEVNRU5UIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0RFVklDRV9PUklF
TlRBVElPTikKLSNkZWZpbmUgRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTiAwCi0jZW5kaWYKLQot
I2lmICFkZWZpbmVkKEVOQUJMRV9ET1dOTE9BRF9BVFRSSUJVVEUpCi0jZGVmaW5lIEVOQUJMRV9E
T1dOTE9BRF9BVFRSSUJVVEUgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfRFJBR19T
VVBQT1JUKQotI2RlZmluZSBFTkFCTEVfRFJBR19TVVBQT1JUIDEKLSNlbmRpZgotCi0jaWYgIWRl
ZmluZWQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSkKLSNkZWZpbmUgRU5BQkxFX0VOQ1JZUFRFRF9N
RURJQSAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9GSUxURVJTX0xFVkVMXzIpCi0j
ZGVmaW5lIEVOQUJMRV9GSUxURVJTX0xFVkVMXzIgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChF
TkFCTEVfRlRQRElSKQotI2RlZmluZSBFTkFCTEVfRlRQRElSIDEKLSNlbmRpZgotCi0jaWYgIWRl
ZmluZWQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKQotI2RlZmluZSBFTkFCTEVfRlVMTFNDUkVFTl9B
UEkgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfR0FNRVBBRCkKLSNkZWZpbmUgRU5B
QkxFX0dBTUVQQUQgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfR0VPTE9DQVRJT04p
Ci0jZGVmaW5lIEVOQUJMRV9HRU9MT0NBVElPTiAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVO
QUJMRV9JTkRFWEVEX0RBVEFCQVNFKQotI2RlZmluZSBFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSAw
Ci0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktF
UlMpCi0jZGVmaW5lIEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktFUlMgMAotI2VuZGlm
Ci0KLSNpZiAhZGVmaW5lZChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikKLSNkZWZpbmUgRU5BQkxF
X0lOUFVUX1RZUEVfQ09MT1IgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfSU5QVVRf
VFlQRV9EQVRFKQotI2RlZmluZSBFTkFCTEVfSU5QVVRfVFlQRV9EQVRFIDAKLSNlbmRpZgotCi0j
aWYgIWRlZmluZWQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVfSU5DT01QTEVURSkKLSNkZWZp
bmUgRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVfSU5DT01QTEVURSAwCi0jZW5kaWYKLQotI2lm
ICFkZWZpbmVkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpCi0jZGVmaW5lIEVOQUJM
RV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFC
TEVfSU5QVVRfVFlQRV9NT05USCkKLSNkZWZpbmUgRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEggMAot
I2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKQotI2RlZmluZSBF
TkFCTEVfSU5QVVRfVFlQRV9USU1FIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0lO
UFVUX1RZUEVfV0VFSykKLSNkZWZpbmUgRU5BQkxFX0lOUFVUX1RZUEVfV0VFSyAwCi0jZW5kaWYK
LQotI2lmIEVOQUJMRShJTlBVVF9UWVBFX0RBVEUpIHx8IEVOQUJMRShJTlBVVF9UWVBFX0RBVEVU
SU1FX0lOQ09NUExFVEUpIHx8IEVOQUJMRShJTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpIHx8IEVO
QUJMRShJTlBVVF9UWVBFX01PTlRIKSB8fCBFTkFCTEUoSU5QVVRfVFlQRV9USU1FKSB8fCBFTkFC
TEUoSU5QVVRfVFlQRV9XRUVLKQotI2lmICFkZWZpbmVkKEVOQUJMRV9EQVRFX0FORF9USU1FX0lO
UFVUX1RZUEVTKQotI2RlZmluZSBFTkFCTEVfREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUyAxCi0j
ZW5kaWYKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0lOU1BFQ1RPUl9BTFRFUk5BVEVf
RElTUEFUQ0hFUlMpCi0jZGVmaW5lIEVOQUJMRV9JTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENI
RVJTIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0lOU1BFQ1RPUl9URUxFTUVUUlkp
Ci0jZGVmaW5lIEVOQUJMRV9JTlNQRUNUT1JfVEVMRU1FVFJZIDAKLSNlbmRpZgotCi0jaWYgIWRl
ZmluZWQoRU5BQkxFX0lOVEwpCi0jZGVmaW5lIEVOQUJMRV9JTlRMIDAKLSNlbmRpZgotCi0jaWYg
IWRlZmluZWQoRU5BQkxFX0xBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCi0jZGVmaW5lIEVOQUJM
RV9MQVlPVVRfRk9STUFUVElOR19DT05URVhUIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5B
QkxFX0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJWEVTKQotI2RlZmluZSBFTkFCTEVfTEVHQUNZX0NT
U19WRU5ET1JfUFJFRklYRVMgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfTEVUVEVS
UFJFU1MpCi0jZGVmaW5lIEVOQUJMRV9MRVRURVJQUkVTUyAwCi0jZW5kaWYKLQotI2lmICFkZWZp
bmVkKEVOQUJMRV9NQVRITUwpCi0jZGVmaW5lIEVOQUJMRV9NQVRITUwgMQotI2VuZGlmCi0KLSNp
ZiAhZGVmaW5lZChFTkFCTEVfTUVESUFfQ0FQVFVSRSkKLSNkZWZpbmUgRU5BQkxFX01FRElBX0NB
UFRVUkUgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NS
SVBUKQotI2RlZmluZSBFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBUIDAKLSNlbmRpZgotCi0j
aWYgIWRlZmluZWQoRU5BQkxFX01FRElBX1NPVVJDRSkKLSNkZWZpbmUgRU5BQkxFX01FRElBX1NP
VVJDRSAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKQot
I2RlZmluZSBFTkFCTEVfTUVESUFfU1RBVElTVElDUyAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVk
KEVOQUJMRV9NRURJQV9TVFJFQU0pCi0jZGVmaW5lIEVOQUJMRV9NRURJQV9TVFJFQU0gMAotI2Vu
ZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfTUVURVJfRUxFTUVOVCkKLSNkZWZpbmUgRU5BQkxF
X01FVEVSX0VMRU1FTlQgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfTUhUTUwpCi0j
ZGVmaW5lIEVOQUJMRV9NSFRNTCAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9NT1VT
RV9DVVJTT1JfU0NBTEUpCi0jZGVmaW5lIEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUgMAotI2Vu
ZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfTU9VU0VfRk9SQ0VfRVZFTlRTKQotI2RlZmluZSBF
TkFCTEVfTU9VU0VfRk9SQ0VfRVZFTlRTIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxF
X05FVFNDQVBFX1BMVUdJTl9BUEkpCi0jZGVmaW5lIEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJ
IDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9NRVRBREFU
QV9DQUNIRSkKLSNkZWZpbmUgRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9NRVRBREFUQV9DQUNIRSAw
Ci0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9OT1RJRklDQVRJT05TKQotI2RlZmluZSBF
TkFCTEVfTk9USUZJQ0FUSU9OUyAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9PRkZT
Q1JFRU5fQ0FOVkFTKQotI2RlZmluZSBFTkFCTEVfT0ZGU0NSRUVOX0NBTlZBUyAwCi0jZW5kaWYK
LQotI2lmICFkZWZpbmVkKEVOQUJMRV9PUklFTlRBVElPTl9FVkVOVFMpCi0jZGVmaW5lIEVOQUJM
RV9PUklFTlRBVElPTl9FVkVOVFMgMAotI2VuZGlmCi0KLSNpZiBPUyhXSU5ET1dTKQotI2lmICFk
ZWZpbmVkKEVOQUJMRV9QQU5fU0NST0xMSU5HKQotI2RlZmluZSBFTkFCTEVfUEFOX1NDUk9MTElO
RyAxCi0jZW5kaWYKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX1BBWU1FTlRfUkVRVUVT
VCkKLSNkZWZpbmUgRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCAwCi0jZW5kaWYKLQotI2lmICFkZWZp
bmVkKEVOQUJMRV9QT0lOVEVSX0xPQ0spCi0jZGVmaW5lIEVOQUJMRV9QT0lOVEVSX0xPQ0sgMQot
I2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfUVVPVEEpCi0jZGVmaW5lIEVOQUJMRV9RVU9U
QSAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9SRU1PVEVfSU5TUEVDVE9SKQotI2Rl
ZmluZSBFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUiAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVO
QUJMRV9SVUJCRVJfQkFORElORykKLSNkZWZpbmUgRU5BQkxFX1JVQkJFUl9CQU5ESU5HIDAKLSNl
bmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX1NFQ1VSSVRZX0FTU0VSVElPTlMpCi0vKiBFbmFi
bGUgc2VjdXJpdHkgYXNzZXJ0aW9ucyBvbiBhbGwgQVNBTiBidWlsZHMgYW5kIGRlYnVnIGJ1aWxk
cy4gKi8KLSNpZiBBU0FOX0VOQUJMRUQgfHwgIWRlZmluZWQoTkRFQlVHKQotI2RlZmluZSBFTkFC
TEVfU0VDVVJJVFlfQVNTRVJUSU9OUyAxCi0jZW5kaWYKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQo
RU5BQkxFX1NNT09USF9TQ1JPTExJTkcpCi0jZGVmaW5lIEVOQUJMRV9TTU9PVEhfU0NST0xMSU5H
IDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpCi0jZGVm
aW5lIEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5B
QkxFX1NQRUxMQ0hFQ0spCi0jZGVmaW5lIEVOQUJMRV9TUEVMTENIRUNLIDAKLSNlbmRpZgotCi0j
aWYgIWRlZmluZWQoRU5BQkxFX1NUUkVBTVNfQVBJKQotI2RlZmluZSBFTkFCTEVfU1RSRUFNU19B
UEkgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfU1ZHX0ZPTlRTKQotI2RlZmluZSBF
TkFCTEVfU1ZHX0ZPTlRTIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX1RFWFRfQ0FS
RVQpCi0jZGVmaW5lIEVOQUJMRV9URVhUX0NBUkVUIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQo
RU5BQkxFX1RFWFRfU0VMRUNUSU9OKQotI2RlZmluZSBFTkFCTEVfVEVYVF9TRUxFQ1RJT04gMQot
I2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfQVNZTkNfU0NST0xMSU5HKQotI2RlZmluZSBF
TkFCTEVfQVNZTkNfU0NST0xMSU5HIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX1RP
VUNIX0VWRU5UUykKLSNkZWZpbmUgRU5BQkxFX1RPVUNIX0VWRU5UUyAwCi0jZW5kaWYKLQotI2lm
ICFkZWZpbmVkKEVOQUJMRV9WSURFTykKLSNkZWZpbmUgRU5BQkxFX1ZJREVPIDAKLSNlbmRpZgot
Ci0jaWYgIWRlZmluZWQoRU5BQkxFX1ZJREVPX1RSQUNLKQotI2RlZmluZSBFTkFCTEVfVklERU9f
VFJBQ0sgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfREFUQUNVRV9WQUxVRSkKLSNk
ZWZpbmUgRU5BQkxFX0RBVEFDVUVfVkFMVUUgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFC
TEVfV0VCR0wpCi0jZGVmaW5lIEVOQUJMRV9XRUJHTCAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVk
KEVOQUJMRV9HUkFQSElDU19DT05URVhUX0dMKQotI2RlZmluZSBFTkFCTEVfR1JBUEhJQ1NfQ09O
VEVYVF9HTCBFTkFCTEVfV0VCR0wKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX1dFQl9B
UkNISVZFKQotI2RlZmluZSBFTkFCTEVfV0VCX0FSQ0hJVkUgMAotI2VuZGlmCi0KLSNpZiAhZGVm
aW5lZChFTkFCTEVfV0VCX0FVRElPKQotI2RlZmluZSBFTkFCTEVfV0VCX0FVRElPIDAKLSNlbmRp
ZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX1hTTFQpCi0jZGVmaW5lIEVOQUJMRV9YU0xUIDEKLSNl
bmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0RBVEFfSU5URVJBQ1RJT04pCi0jZGVmaW5lIEVO
QUJMRV9EQVRBX0lOVEVSQUNUSU9OIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX1NF
UlZJQ0VfV09SS0VSKQotI2RlZmluZSBFTkFCTEVfU0VSVklDRV9XT1JLRVIgMQotI2VuZGlmCi0K
LQotLyogSklUIEZlYXR1cmVzICovCi0KLS8qIFRoZSBKSVQgaXMgZW5hYmxlZCBieSBkZWZhdWx0
IG9uIGFsbCB4ODYtNjQgJiBBUk02NCBwbGF0Zm9ybXMuICovCi0jaWYgIWRlZmluZWQoRU5BQkxF
X0pJVCkgJiYgKENQVShYODZfNjQpIHx8IENQVShBUk02NCkpICYmICFDUFUoQVBQTEVfQVJNVjdL
KQotI2RlZmluZSBFTkFCTEVfSklUIDEKLSNlbmRpZgotCi0jaWYgVVNFKEpTVkFMVUUzMl82NCkK
LSNpZiAoQ1BVKEFSTV9USFVNQjIpIHx8IENQVShNSVBTKSkgJiYgT1MoTElOVVgpCi0vKiBPbiBB
Uk12NyBhbmQgTUlQUyBvbiBMaW51eCB0aGUgSklUIGlzIGVuYWJsZWQgdW5sZXNzIGV4cGxpY2l0
bHkgZGlzYWJsZWQuICovCi0jaWYgIWRlZmluZWQoRU5BQkxFX0pJVCkKLSNkZWZpbmUgRU5BQkxF
X0pJVCAxCi0jZW5kaWYKLSNlbHNlCi0vKiBEaXNhYmxlIEpJVCBhbmQgZm9yY2UgQ19MT09QIG9u
IGFsbCBvdGhlciAzMmJpdCBhcmNoaXRlY3R1cmVzLiAqLwotI3VuZGVmIEVOQUJMRV9KSVQKLSNk
ZWZpbmUgRU5BQkxFX0pJVCAwCi0jdW5kZWYgRU5BQkxFX0NfTE9PUAotI2RlZmluZSBFTkFCTEVf
Q19MT09QIDEKLSNlbmRpZgotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfQ19MT09QKQot
I2lmIEVOQUJMRShKSVQpIHx8IENQVShYODZfNjQpIHx8IChDUFUoQVJNNjQpICYmICFkZWZpbmVk
KF9fSUxQMzJfXykpCi0jZGVmaW5lIEVOQUJMRV9DX0xPT1AgMAotI2Vsc2UKLSNkZWZpbmUgRU5B
QkxFX0NfTE9PUCAxCi0jZW5kaWYKLSNlbmRpZgotCi0vKiBGSVhNRTogVGhpcyBzaG91bGQgYmUg
dHVybmVkIGludG8gYW4gI2Vycm9yIGludmFyaWFudCAqLwotLyogVGhlIEZUTCAqZG9lcyBub3Qq
IHdvcmsgb24gMzItYml0IHBsYXRmb3Jtcy4gRGlzYWJsZSBpdCBldmVuIGlmIHNvbWVvbmUgYXNr
ZWQgdXMgdG8gZW5hYmxlIGl0LiAqLwotI2lmIFVTRShKU1ZBTFVFMzJfNjQpCi0jdW5kZWYgRU5B
QkxFX0ZUTF9KSVQKLSNkZWZpbmUgRU5BQkxFX0ZUTF9KSVQgMAotI2VuZGlmCi0KLS8qIEZJWE1F
OiBUaGlzIHNob3VsZCBiZSB0dXJuZWQgaW50byBhbiAjZXJyb3IgaW52YXJpYW50ICovCi0vKiBU
aGUgRlRMIGlzIGRpc2FibGVkIG9uIHRoZSBpT1Mgc2ltdWxhdG9yLCBtb3N0bHkgZm9yIHNpbXBs
aWNpdHkuICovCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWV9TSU1VTEFUT1IpCi0jdW5kZWYgRU5B
QkxFX0ZUTF9KSVQKLSNkZWZpbmUgRU5BQkxFX0ZUTF9KSVQgMAotI2VuZGlmCi0KLS8qIElmIHBv
c3NpYmxlLCB0cnkgdG8gZW5hYmxlIGEgZGlzYXNzZW1ibGVyLiBUaGlzIGlzIG9wdGlvbmFsLiBX
ZSBwcm9jZWVkIGluIHR3bwotICAgc3RlcHM6IGZpcnN0IHdlIHRyeSB0byBmaW5kIHNvbWUgZGlz
YXNzZW1ibGVyIHRoYXQgd2UgY2FuIHVzZSwgYW5kIHRoZW4gd2UKLSAgIGRlY2lkZSBpZiB0aGUg
aGlnaC1sZXZlbCBkaXNhc3NlbWJsZXIgQVBJIGNhbiBiZSBlbmFibGVkLiAqLwotI2lmICFkZWZp
bmVkKEVOQUJMRV9VRElTODYpICYmIEVOQUJMRShKSVQpICYmIENQVShYODZfNjQpICYmICFVU0Uo
Q0FQU1RPTkUpCi0jZGVmaW5lIEVOQUJMRV9VRElTODYgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5l
ZChFTkFCTEVfQVJNNjRfRElTQVNTRU1CTEVSKSAmJiBFTkFCTEUoSklUKSAmJiBDUFUoQVJNNjQp
ICYmICFVU0UoQ0FQU1RPTkUpCi0jZGVmaW5lIEVOQUJMRV9BUk02NF9ESVNBU1NFTUJMRVIgMQot
I2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfRElTQVNTRU1CTEVSKSAmJiAoRU5BQkxFKFVE
SVM4NikgfHwgRU5BQkxFKEFSTTY0X0RJU0FTU0VNQkxFUikgfHwgKEVOQUJMRShKSVQpICYmIFVT
RShDQVBTVE9ORSkpKQotI2RlZmluZSBFTkFCTEVfRElTQVNTRU1CTEVSIDEKLSNlbmRpZgotCi0j
aWYgIWRlZmluZWQoRU5BQkxFX0RGR19KSVQpICYmIEVOQUJMRShKSVQpCi0KLS8qIEVuYWJsZSB0
aGUgREZHIEpJVCBvbiBYODYgYW5kIFg4Nl82NC4gKi8KLSNpZiBDUFUoWDg2XzY0KSAmJiAoT1Mo
REFSV0lOKSB8fCBPUyhMSU5VWCkgfHwgT1MoRlJFRUJTRCkgfHwgT1MoSFVSRCkgfHwgT1MoV0lO
RE9XUykpCi0jZGVmaW5lIEVOQUJMRV9ERkdfSklUIDEKLSNlbmRpZgotCi0vKiBFbmFibGUgdGhl
IERGRyBKSVQgb24gQVJNdjcuICBPbmx5IHRlc3RlZCBvbiBpT1MsIExpbnV4LCBhbmQgRnJlZUJT
RC4gKi8KLSNpZiAoQ1BVKEFSTV9USFVNQjIpIHx8IENQVShBUk02NCkpICYmIChPUyhEQVJXSU4p
IHx8IE9TKExJTlVYKSB8fCBPUyhGUkVFQlNEKSkKLSNkZWZpbmUgRU5BQkxFX0RGR19KSVQgMQot
I2VuZGlmCi0KLS8qIEVuYWJsZSB0aGUgREZHIEpJVCBvbiBNSVBTLiAqLwotI2lmIENQVShNSVBT
KQotI2RlZmluZSBFTkFCTEVfREZHX0pJVCAxCi0jZW5kaWYKLQotI2VuZGlmIC8qICFkZWZpbmVk
KEVOQUJMRV9ERkdfSklUKSAmJiBFTkFCTEUoSklUKSAqLwotCi0vKiBDb25jdXJyZW50IEpTIG9u
bHkgd29ya3Mgb24gNjQtYml0IHBsYXRmb3JtcyBiZWNhdXNlIGl0IHJlcXVpcmVzIHRoYXQKLSAg
IHZhbHVlcyBnZXQgc3RvcmVkIHRvIGF0b21pY2FsbHkuIFRoaXMgaXMgdHJpdmlhbGx5IHRydWUg
b24gNjQtYml0IHBsYXRmb3JtcywKLSAgIGJ1dCBub3QgdHJ1ZSBhdCBhbGwgb24gMzItYml0IHBs
YXRmb3JtcyB3aGVyZSB2YWx1ZXMgYXJlIGNvbXBvc2VkIG9mIHR3bwotICAgc2VwYXJhdGUgc3Vi
LXZhbHVlcy4gKi8KLSNpZiBFTkFCTEUoSklUKSAmJiBVU0UoSlNWQUxVRTY0KQotI2RlZmluZSBF
TkFCTEVfQ09OQ1VSUkVOVF9KUyAxCi0jZW5kaWYKLQotI2lmIChDUFUoWDg2XzY0KSB8fCBDUFUo
QVJNNjQpKSAmJiBIQVZFKEZBU1RfVExTKQotI2RlZmluZSBFTkFCTEVfRkFTVF9UTFNfSklUIDEK
LSNlbmRpZgotCi0jaWYgRU5BQkxFKEpJVCkgJiYgKENQVShYODYpIHx8IENQVShYODZfNjQpIHx8
IENQVShBUk1fVEhVTUIyKSB8fCBDUFUoQVJNNjQpIHx8IENQVShNSVBTKSkKLSNkZWZpbmUgRU5B
QkxFX01BU01fUFJPQkUgMQotI2VuZGlmCi0KLS8qIEZJWE1FOiBUaGlzIHNob3VsZCBiZSB0dXJu
ZWQgaW50byBhbiAjZXJyb3IgaW52YXJpYW50ICovCi0vKiBJZiB0aGUgYmFzZWxpbmUgaml0IGlz
IG5vdCBhdmFpbGFibGUsIHRoZW4gZGlzYWJsZSB1cHBlciB0aWVycyBhcyB3ZWxsLgotICAgVGhl
IE1hY3JvQXNzZW1ibGVyOjpwcm9iZSgpIGlzIGFsc28gcmVxdWlyZWQgZm9yIHN1cHBvcnRpbmcg
dGhlIHVwcGVyIHRpZXJzLiAqLwotI2lmICFFTkFCTEUoSklUKSB8fCAhRU5BQkxFKE1BU01fUFJP
QkUpCi0jdW5kZWYgRU5BQkxFX0RGR19KSVQKLSN1bmRlZiBFTkFCTEVfRlRMX0pJVAotI2RlZmlu
ZSBFTkFCTEVfREZHX0pJVCAwCi0jZGVmaW5lIEVOQUJMRV9GVExfSklUIDAKLSNlbmRpZgotCi0v
KiBGSVhNRTogVGhpcyBzaG91bGQgYmUgdHVybmVkIGludG8gYW4gI2Vycm9yIGludmFyaWFudCAq
LwotLyogSWYgdGhlIERGRyBqaXQgaXMgbm90IGF2YWlsYWJsZSwgdGhlbiBkaXNhYmxlIHVwcGVy
IHRpZXJzIGFzIHdlbGw6ICovCi0jaWYgIUVOQUJMRShERkdfSklUKQotI3VuZGVmIEVOQUJMRV9G
VExfSklUCi0jZGVmaW5lIEVOQUJMRV9GVExfSklUIDAKLSNlbmRpZgotCi0vKiBUaGlzIGNvbnRy
b2xzIHdoZXRoZXIgQjMgaXMgYnVpbHQuIEIzIGlzIG5lZWRlZCBmb3IgRlRMIEpJVCBhbmQgV2Vi
QXNzZW1ibHkgKi8KLSNpZiBFTkFCTEUoRlRMX0pJVCkKLSNkZWZpbmUgRU5BQkxFX0IzX0pJVCAx
Ci0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJBU1NFTUJMWSkgJiYgKEVOQUJMRShC
M19KSVQpICYmIFBMQVRGT1JNKENPQ09BKSAmJiBDUFUoQUREUkVTUzY0KSkKLSNkZWZpbmUgRU5B
QkxFX1dFQkFTU0VNQkxZIDEKLSNlbmRpZgotCi0vKiBUaGUgU2FtcGxpbmdQcm9maWxlciBpcyB0
aGUgcHJvYmFiaWxpc3RpYyBhbmQgbG93LW92ZXJoZWFkIHByb2ZpbGVyIHVzZWQgYnkKLSAqIEpT
QyB0byBtZWFzdXJlIHdoZXJlIHRpbWUgaXMgc3BlbnQgaW5zaWRlIGEgSmF2YVNjcmlwdCBwcm9n
cmFtLgotICogSW4gY29uZmlndXJhdGlvbnMgb3RoZXIgdGhhbiBXaW5kb3dzIGFuZCBEYXJ3aW4s
IGJlY2F1c2UgbGF5b3V0IG9mIG1jb250ZXh0X3QgZGVwZW5kcyBvbiBzdGFuZGFyZCBsaWJyYXJp
ZXMgKGxpa2UgZ2xpYmMpLAotICogc2FtcGxpbmcgcHJvZmlsZXIgaXMgZW5hYmxlZCBpZiBXZWJL
aXQgdXNlcyBwdGhyZWFkcyBhbmQgZ2xpYmMuICovCi0jaWYgIWRlZmluZWQoRU5BQkxFX1NBTVBM
SU5HX1BST0ZJTEVSKSAmJiAoIUVOQUJMRShDX0xPT1ApICYmIChPUyhXSU5ET1dTKSB8fCBIQVZF
KE1BQ0hJTkVfQ09OVEVYVCkpKQotI2RlZmluZSBFTkFCTEVfU0FNUExJTkdfUFJPRklMRVIgMQot
I2VuZGlmCi0KLSNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpICYmIEhBVkUoTUFDSElORV9DT05URVhU
KQotI2RlZmluZSBFTkFCTEVfV0VCQVNTRU1CTFlfRkFTVF9NRU1PUlkgMQotI2VuZGlmCi0KLS8q
IENvdW50cyB1c2VzIG9mIHdyaXRlIGJhcnJpZXJzIHVzaW5nIHNhbXBsaW5nIGNvdW50ZXJzLiBC
ZSBzdXJlIHRvIGFsc28KLSAgIHNldCBFTkFCTEVfU0FNUExJTkdfQ09VTlRFUlMgdG8gMS4gKi8K
LSNpZiAhZGVmaW5lZChFTkFCTEVfV1JJVEVfQkFSUklFUl9QUk9GSUxJTkcpCi0jZGVmaW5lIEVO
QUJMRV9XUklURV9CQVJSSUVSX1BST0ZJTElORyAwCi0jZW5kaWYKLQotLyogTG9ncyBhbGwgYWxs
b2NhdGlvbi1yZWxhdGVkIGFjdGl2aXR5IHRoYXQgZ29lcyB0aHJvdWdoIGZhc3RNYWxsb2Mgb3Ig
dGhlCi0gICBKU0MgR0MgKGJvdGggY2VsbHMgYW5kIGJ1dHRlcmZsaWVzKS4gQWxzbyBsb2dzIG1h
cmtpbmcuIE5vdGUgdGhhdCB0aGlzCi0gICBpc24ndCBhIGNvbXBsZXRlbHkgYWNjdXJhdGUgdmll
dyBvZiB0aGUgaGVhcCBzaW5jZSBpdCBkb2Vzbid0IGluY2x1ZGUgYWxsCi0gICBidXR0ZXJmbHkg
cmVzaXplIG9wZXJhdGlvbnMsIGRvZXNuJ3QgdGVsbCB5b3Ugd2hhdCBpcyBnb2luZyBvbiB3aXRo
IHdlYWsKLSAgIHJlZmVyZW5jZXMgKG90aGVyIHRoYW4gdG8gdGVsbCB5b3Ugd2hlbiB0aGV5J3Jl
IG1hcmtlZCksIGFuZCBkb2Vzbid0Ci0gICB0cmFjayBkaXJlY3QgbW1hcCgpIGFsbG9jYXRpb25z
IG9yIHRoaW5ncyBsaWtlIEpJVCBhbGxvY2F0aW9uLiAqLwotI2lmICFkZWZpbmVkKEVOQUJMRV9B
TExPQ0FUSU9OX0xPR0dJTkcpCi0jZGVmaW5lIEVOQUJMRV9BTExPQ0FUSU9OX0xPR0dJTkcgMAot
I2VuZGlmCi0KLS8qIEVuYWJsZSB2ZXJpZmljYXRpb24gdGhhdCB0aGF0IHJlZ2lzdGVyIGFsbG9j
YXRpb25zIGFyZSBub3QgbWFkZSB3aXRoaW4gZ2VuZXJhdGVkIGNvbnRyb2wgZmxvdy4KLSAgIFR1
cm5lZCBvbiBmb3IgZGVidWcgYnVpbGRzLiAqLwotI2lmICFkZWZpbmVkKEVOQUJMRV9ERkdfUkVH
SVNURVJfQUxMT0NBVElPTl9WQUxJREFUSU9OKSAmJiBFTkFCTEUoREZHX0pJVCkgJiYgIWRlZmlu
ZWQoTkRFQlVHKQotI2RlZmluZSBFTkFCTEVfREZHX1JFR0lTVEVSX0FMTE9DQVRJT05fVkFMSURB
VElPTiAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9TRVBBUkFURURfV1hfSEVBUCkg
JiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgQ1BVKEFSTTY0KSAmJiAoIUVOQUJMRShGQVNUX0pJ
VF9QRVJNSVNTSU9OUykgfHwgIUNQVShBUk02NEUpKQotI2RlZmluZSBFTkFCTEVfU0VQQVJBVEVE
X1dYX0hFQVAgMQotI2VuZGlmCi0KLS8qIERldGVybWluZSBpZiB3ZSBuZWVkIHRvIGVuYWJsZSBD
b21wdXRlZCBHb3RvIE9wY29kZXMgb3Igbm90OiAqLwotI2lmIEhBVkUoQ09NUFVURURfR09UTykg
fHwgIUVOQUJMRShDX0xPT1ApCi0jZGVmaW5lIEVOQUJMRV9DT01QVVRFRF9HT1RPX09QQ09ERVMg
MQotI2VuZGlmCi0KLS8qIFJlZ3VsYXIgRXhwcmVzc2lvbiBUcmFjaW5nIC0gU2V0IHRvIDEgdG8g
dHJhY2UgUmVnRXhwJ3MgaW4ganNjLiAgUmVzdWx0cyBkdW1wZWQgYXQgZXhpdCAqLwotI2lmICFk
ZWZpbmVkKEVOQUJMRV9SRUdFWFBfVFJBQ0lORykKLSNkZWZpbmUgRU5BQkxFX1JFR0VYUF9UUkFD
SU5HIDAKLSNlbmRpZgotCi0vKiBZZXQgQW5vdGhlciBSZWdleCBSdW50aW1lIC0gdHVybmVkIG9u
IGJ5IGRlZmF1bHQgZm9yIEpJVCBlbmFibGVkIHBvcnRzLiAqLwotI2lmICFkZWZpbmVkKEVOQUJM
RV9ZQVJSX0pJVCkgJiYgRU5BQkxFKEpJVCkKLSNkZWZpbmUgRU5BQkxFX1lBUlJfSklUIDEKLSNl
bmRpZgotCi0vKiBTZXR0aW5nIHRoaXMgZmxhZyBjb21wYXJlcyBKSVQgcmVzdWx0cyB3aXRoIGlu
dGVycHJldGVyIHJlc3VsdHMuICovCi0jaWYgIWRlZmluZWQoRU5BQkxFX1lBUlJfSklUKSAmJiBF
TkFCTEUoSklUKQotI2RlZmluZSBFTkFCTEVfWUFSUl9KSVRfREVCVUcgMAotI2VuZGlmCi0KLS8q
IEVuYWJsZSBKSVQnaW5nIFJlZ3VsYXIgRXhwcmVzc2lvbnMgdGhhdCBoYXZlIG5lc3RlZCBwYXJl
bnRoZXNpcyAuICovCi0jaWYgRU5BQkxFKFlBUlJfSklUKSAmJiAoQ1BVKEFSTTY0KSB8fCAoQ1BV
KFg4Nl82NCkgJiYgIU9TKFdJTkRPV1MpKSkKLSNkZWZpbmUgRU5BQkxFX1lBUlJfSklUX0FMTF9Q
QVJFTlNfRVhQUkVTU0lPTlMgMQotI2VuZGlmCi0KLS8qIEVuYWJsZSBKSVQnaW5nIFJlZ3VsYXIg
RXhwcmVzc2lvbnMgdGhhdCBoYXZlIG5lc3RlZCBiYWNrIHJlZmVyZW5jZXMuICovCi0jaWYgRU5B
QkxFKFlBUlJfSklUKSAmJiAoQ1BVKEFSTTY0KSB8fCAoQ1BVKFg4Nl82NCkgJiYgIU9TKFdJTkRP
V1MpKSkKLSNkZWZpbmUgRU5BQkxFX1lBUlJfSklUX0JBQ0tSRUZFUkVOQ0VTIDEKLSNlbmRpZgot
Ci0vKiBJZiBlaXRoZXIgdGhlIEpJVCBvciB0aGUgUmVnRXhwIEpJVCBpcyBlbmFibGVkLCB0aGVu
IHRoZSBBc3NlbWJsZXIgbXVzdCBiZQotICAgZW5hYmxlZCBhcyB3ZWxsOiAqLwotI2lmIEVOQUJM
RShKSVQpIHx8IEVOQUJMRShZQVJSX0pJVCkgfHwgIUVOQUJMRShDX0xPT1ApCi0jaWYgZGVmaW5l
ZChFTkFCTEVfQVNTRU1CTEVSKSAmJiAhRU5BQkxFX0FTU0VNQkxFUgotI2Vycm9yICJDYW5ub3Qg
ZW5hYmxlIHRoZSBKSVQgb3IgUmVnRXhwIEpJVCB3aXRob3V0IGVuYWJsaW5nIHRoZSBBc3NlbWJs
ZXIiCi0jZWxzZQotI3VuZGVmIEVOQUJMRV9BU1NFTUJMRVIKLSNkZWZpbmUgRU5BQkxFX0FTU0VN
QkxFUiAxCi0jZW5kaWYKLSNlbmRpZgotCi0vKiBJZiB0aGUgRGlzYXNzZW1ibGVyIGlzIGVuYWJs
ZWQsIHRoZW4gdGhlIEFzc2VtYmxlciBtdXN0IGJlIGVuYWJsZWQgYXMgd2VsbDogKi8KLSNpZiBF
TkFCTEUoRElTQVNTRU1CTEVSKQotI2lmIGRlZmluZWQoRU5BQkxFX0FTU0VNQkxFUikgJiYgIUVO
QUJMRV9BU1NFTUJMRVIKLSNlcnJvciAiQ2Fubm90IGVuYWJsZSB0aGUgRGlzYXNzZW1ibGVyIHdp
dGhvdXQgZW5hYmxpbmcgdGhlIEFzc2VtYmxlciIKLSNlbHNlCi0jdW5kZWYgRU5BQkxFX0FTU0VN
QkxFUgotI2RlZmluZSBFTkFCTEVfQVNTRU1CTEVSIDEKLSNlbmRpZgotI2VuZGlmCi0KLSNpZiAh
ZGVmaW5lZChFTkFCTEVfRVhDRVBUSU9OX1NDT1BFX1ZFUklGSUNBVElPTikKLSNkZWZpbmUgRU5B
QkxFX0VYQ0VQVElPTl9TQ09QRV9WRVJJRklDQVRJT04gQVNTRVJUX0VOQUJMRUQKLSNlbmRpZgot
Ci0jaWYgRU5BQkxFKERGR19KSVQpICYmIEhBVkUoTUFDSElORV9DT05URVhUKSAmJiAoQ1BVKFg4
Nl82NCkgfHwgQ1BVKEFSTTY0KSkKLSNkZWZpbmUgRU5BQkxFX1NJR05BTF9CQVNFRF9WTV9UUkFQ
UyAxCi0jZW5kaWYKLQotLyogQ1NTIFNlbGVjdG9yIEpJVCBDb21waWxlciAqLwotI2lmICFkZWZp
bmVkKEVOQUJMRV9DU1NfU0VMRUNUT1JfSklUKSAmJiAoKENQVShYODZfNjQpIHx8IENQVShBUk02
NCkgfHwgKENQVShBUk1fVEhVTUIyKSAmJiBPUyhEQVJXSU4pKSkgJiYgRU5BQkxFKEpJVCkgJiYg
KE9TKERBUldJTikgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpKSkKLSNkZWZpbmUg
RU5BQkxFX0NTU19TRUxFQ1RPUl9KSVQgMQotI2VuZGlmCi0KLSNpZiBQTEFURk9STShDT0NPQSkg
JiYgIVBMQVRGT1JNKFdBVENIT1MpICYmICFQTEFURk9STShBUFBMRVRWKSAmJiAhUExBVEZPUk0o
TUFDQ0FUQUxZU1QpCi0jZGVmaW5lIEVOQUJMRV9EQVRBX0RFVEVDVElPTiAxCi0jZW5kaWYKLQot
I2lmIENQVShBUk1fVEhVTUIyKSB8fCBDUFUoQVJNNjQpCi0jZGVmaW5lIEVOQUJMRV9CUkFOQ0hf
Q09NUEFDVElPTiAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9USFJFQURJTkdfTElC
RElTUEFUQ0gpICYmIEhBVkUoRElTUEFUQ0hfSCkKLSNkZWZpbmUgRU5BQkxFX1RIUkVBRElOR19M
SUJESVNQQVRDSCAxCi0jZWxpZiAhZGVmaW5lZChFTkFCTEVfVEhSRUFESU5HX09QRU5NUCkgJiYg
ZGVmaW5lZChfT1BFTk1QKQotI2RlZmluZSBFTkFCTEVfVEhSRUFESU5HX09QRU5NUCAxCi0jZWxp
ZiAhZGVmaW5lZChUSFJFQURJTkdfR0VORVJJQykKLSNkZWZpbmUgRU5BQkxFX1RIUkVBRElOR19H
RU5FUklDIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0dDX1ZBTElEQVRJT04pICYm
ICFkZWZpbmVkKE5ERUJVRykKLSNkZWZpbmUgRU5BQkxFX0dDX1ZBTElEQVRJT04gMQotI2VuZGlm
Ci0KLSNpZiAhZGVmaW5lZChFTkFCTEVfQklORElOR19JTlRFR1JJVFkpICYmICFPUyhXSU5ET1dT
KQotI2RlZmluZSBFTkFCTEVfQklORElOR19JTlRFR1JJVFkgMQotI2VuZGlmCi0KLSNpZiAhZGVm
aW5lZChFTkFCTEVfVFJFRV9ERUJVR0dJTkcpICYmICFkZWZpbmVkKE5ERUJVRykKLSNkZWZpbmUg
RU5BQkxFX1RSRUVfREVCVUdHSU5HIDEKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0j
ZGVmaW5lIEVOQUJMRV9SRVNPVVJDRV9VU0FHRSAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVO
QUJMRV9PUEVOVFlQRV9WRVJUSUNBTCkgJiYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUp
Ci0jZGVmaW5lIEVOQUJMRV9PUEVOVFlQRV9WRVJUSUNBTCAxCi0jZW5kaWYKLQotI2lmICFkZWZp
bmVkKEVOQUJMRV9PUEVOVFlQRV9NQVRIKSAmJiAoT1MoREFSV0lOKSAmJiBVU0UoQ0cpKSB8fCAo
VVNFKEZSRUVUWVBFKSAmJiAhUExBVEZPUk0oR1RLKSkgfHwgKFBMQVRGT1JNKFdJTikgJiYgKFVT
RShDRykgfHwgVVNFKENBSVJPKSkpCi0jZGVmaW5lIEVOQUJMRV9PUEVOVFlQRV9NQVRIIDEKLSNl
bmRpZgotCi0vKgotICogRW5hYmxlIHRoaXMgdG8gcHV0IGVhY2ggSXNvSGVhcCBhbmQgb3RoZXIg
YWxsb2NhdGlvbiBjYXRlZ29yaWVzIGludG8gdGhlaXIgb3duIG1hbGxvYyBoZWFwcywgc28gdGhh
dCB0b29scyBsaWtlIHZtbWFwIGNhbiBzaG93IGhvdyBiaWcgZWFjaCBoZWFwIGlzLgotICogVHVy
biBCRU5BQkxFX01BTExPQ19IRUFQX0JSRUFLRE9XTiBvbiBpbiBibWFsbG9jIHRvZ2V0aGVyIHdo
ZW4gdXNpbmcgdGhpcy4KLSAqLwotI2lmICFkZWZpbmVkKEVOQUJMRV9NQUxMT0NfSEVBUF9CUkVB
S0RPV04pCi0jZGVmaW5lIEVOQUJMRV9NQUxMT0NfSEVBUF9CUkVBS0RPV04gMAotI2VuZGlmCi0K
LS8qIERpc2FibGUgU2hhcmVkQXJyYXlCdWZmZXJzIHVudGlsIFNwZWN0cmUgc2VjdXJpdHkgY29u
Y2VybnMgYXJlIG1pdGlnYXRlZC4gKi8KLSNkZWZpbmUgRU5BQkxFX1NIQVJFRF9BUlJBWV9CVUZG
RVIgMAotCi0jaWYgUExBVEZPUk0oTUFDKQotI2RlZmluZSBFTkFCTEVfV0VCX1BMQVlCQUNLX0NP
TlRST0xTX01BTkFHRVIgMQotI2VuZGlmCi0KLSNpZiBQTEFURk9STShDT0NPQSkKLS8qIEZJWE1F
OiBUaGlzIGlzIGEgVVNFIHN0eWxlIG1hY3JvLCBhcyBpdCB0cmlnZ2VycyB0aGUgdXNlIG9mIENG
VVJMQ29ubmVjdGlvbiBmcmFtZXdvcmsgc3R1YnMuICovCi0vKiBGSVhNRTogSXMgdGhpcyBzdGls
bCBuZWNlc3Nhcnk/IENGVVJMQ29ubmVjdGlvbiBpc24ndCB1c2VkIG9uIENvY29hIHBsYXRmb3Jt
cyBhbnkgbW9yZS4gKi8KLSNkZWZpbmUgRU5BQkxFX1NFQ19JVEVNX1NISU0gMQotI2VuZGlmCi0K
LSNpZiBQTEFURk9STShNQUMpCisjaWYgIWRlZmluZWQoRU5BQkxFX0ZVTExfS0VZQk9BUkRfQUND
RVNTKSAmJiBQTEFURk9STShNQUMpCiAjZGVmaW5lIEVOQUJMRV9GVUxMX0tFWUJPQVJEX0FDQ0VT
UyAxCiAjZW5kaWYKIAotI2lmICgoUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKFBMQVlTVEFU
SU9OKSB8fCBQTEFURk9STShXUEUpKSAmJiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKSkgfHwgUExB
VEZPUk0oR1RLKQotI2RlZmluZSBFTkFCTEVfS0lORVRJQ19TQ1JPTExJTkcgMQotI2VuZGlmCi0K
ICNpZiAhZGVmaW5lZChFTkFCTEVfTU9OT1NQQUNFX0ZPTlRfRVhDRVBUSU9OKSAmJiAoKFBMQVRG
T1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8IDEwMTUwMCkgfHwg
UExBVEZPUk0oV0FUQ0hPUykgfHwgUExBVEZPUk0oQVBQTEVUVikpCiAjZGVmaW5lIEVOQUJMRV9N
T05PU1BBQ0VfRk9OVF9FWENFUFRJT04gMQogI2VuZGlmCkBAIC0xMDE5LDM3ICsyMjcsMTggQEAg
dGhlIHB1YmxpYyBpT1MgU0RLLiBTZWUgPGh0dHBzOi8vd2Via2l0LgogI2RlZmluZSBFTkFCTEVf
UExBVEZPUk1fRFJJVkVOX1RFWFRfQ0hFQ0tJTkcgMQogI2VuZGlmCiAKLS8qIFRoaXMgZmVhdHVy
ZSB3b3JrcyBieSBlbWJlZGRpbmcgdGhlIE9wY29kZUlEIGluIHRoZSAzMiBiaXQganVzdCBiZWZv
cmUgdGhlIGdlbmVyYXRlZCBMTGludCBjb2RlCi0gICB0aGF0IGV4ZWN1dGVzIGVhY2ggb3Bjb2Rl
LiBJdCBjYW5ub3QgYmUgc3VwcG9ydGVkIGJ5IHRoZSBDTG9vcCBzaW5jZSB0aGVyZSdzIG5vIHdh
eSB0byBlbWJlZCB0aGUKLSAgIE9wY29kZUlEIHdvcmQgaW4gdGhlIENMb29wJ3Mgc3dpdGNoIHN0
YXRlbWVudCBjYXNlcy4gSXQgaXMgYWxzbyBjdXJyZW50bHkgbm90IGltcGxlbWVudGVkIGZvciBN
U1ZDLgotKi8KLSNpZiAhZGVmaW5lZChFTkFCTEVfTExJTlRfRU1CRURERURfT1BDT0RFX0lEKSAm
JiAhRU5BQkxFKENfTE9PUCkgJiYgIUNPTVBJTEVSKE1TVkMpICYmIChDUFUoWDg2KSB8fCBDUFUo
WDg2XzY0KSB8fCBDUFUoQVJNNjQpIHx8IChDUFUoQVJNX1RIVU1CMikgJiYgT1MoREFSV0lOKSkp
Ci0jZGVmaW5lIEVOQUJMRV9MTElOVF9FTUJFRERFRF9PUENPREVfSUQgMQotI2VuZGlmCi0KLQot
LyogQXNzZXJ0cywgaW52YXJpYW50cyBmb3IgbWFjcm8gZGVmaW5pdGlvbnMgKi8KLQotI2lmIEVO
QUJMRShWSURFT19UUkFDSykgJiYgIUVOQUJMRShWSURFTykKLSNlcnJvciAiRU5BQkxFKFZJREVP
X1RSQUNLKSByZXF1aXJlcyBFTkFCTEUoVklERU8pIgotI2VuZGlmCi0KLSNpZiBFTkFCTEUoTUVE
SUFfQ09OVFJPTFNfU0NSSVBUKSAmJiAhRU5BQkxFKFZJREVPKQotI2Vycm9yICJFTkFCTEUoTUVE
SUFfQ09OVFJPTFNfU0NSSVBUKSByZXF1aXJlcyBFTkFCTEUoVklERU8pIgotI2VuZGlmCi0KLSNp
ZiBFTkFCTEUoSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUykgJiYgIUVOQUJMRShSRU1P
VEVfSU5TUEVDVE9SKQotI2Vycm9yICJFTkFCTEUoSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRD
SEVSUykgcmVxdWlyZXMgRU5BQkxFKFJFTU9URV9JTlNQRUNUT1IpIgorI2lmICFkZWZpbmVkKEVO
QUJMRV9XRUJfUExBWUJBQ0tfQ09OVFJPTFNfTUFOQUdFUikgJiYgUExBVEZPUk0oTUFDKQorI2Rl
ZmluZSBFTkFCTEVfV0VCX1BMQVlCQUNLX0NPTlRST0xTX01BTkFHRVIgMQogI2VuZGlmCiAKLSNp
ZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykgJiYgIUVOQUJMRShUT1VDSF9FVkVOVFMpCi0jZXJy
b3IgIkVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKSByZXF1aXJlcyBFTkFCTEUoVE9VQ0hfRVZFTlRT
KSIKKyNpZiAhZGVmaW5lZChFTkFCTEVfUkVTT1VSQ0VfVVNBR0UpCisjZGVmaW5lIEVOQUJMRV9S
RVNPVVJDRV9VU0FHRSAxCiAjZW5kaWYKIAotI2lmIEVOQUJMRShXRUJHTCkgJiYgIUVOQUJMRShH
UkFQSElDU19DT05URVhUX0dMKQotI2Vycm9yICJFTkFCTEUoV0VCR0wpIHJlcXVpcmVzIEVOQUJM
RShHUkFQSElDU19DT05URVhUX0dMKSIKKyNpZiAhZGVmaW5lZChFTkFCTEVfU0VDX0lURU1fU0hJ
TSkKKyNkZWZpbmUgRU5BQkxFX1NFQ19JVEVNX1NISU0gMQogI2VuZGlmCiAKLSNpZiBFTkFCTEUo
V0VCR0wyKSAmJiAhRU5BQkxFKFdFQkdMKQotI2Vycm9yICJFTkFCTEUoV0VCR0wyKSByZXF1aXJl
cyBFTkFCTEUoV0VCR0wpIgorI2lmICFkZWZpbmVkKEVOQUJMRV9EQVRBX0RFVEVDVElPTikgJiYg
KCFQTEFURk9STShXQVRDSE9TKSAmJiAhUExBVEZPUk0oQVBQTEVUVikgJiYgIVBMQVRGT1JNKE1B
Q0NBVEFMWVNUKSkKKyNkZWZpbmUgRU5BQkxFX0RBVEFfREVURUNUSU9OIDEKICNlbmRpZgpJbmRl
eDogU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVXaW5BcHBsZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlV2luQXBwbGUuaAkocmV2aXNpb24gMjU1NTUy
KQkoZnJvbSBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZS5oOjI1NTU1MikKKysrIFNvdXJj
ZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlV2luQXBwbGUuaAkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDEwNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxOSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOSBUb3JjaCBNb2Jp
bGUsIEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAxMSBSZXNlYXJjaCBJbiBNb3Rpb24g
TGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMyBTYW1z
dW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmbmRlZiBXVEZfUExB
VEZPUk1fR1VBUkRfQUdBSU5TVF9JTkRJUkVDVF9JTkNMVVNJT04KKyNlcnJvciAiUGxlYXNlICNp
bmNsdWRlIDx3dGYvUGxhdGZvcm0uaD4gaW5zdGVhZCBvZiB0aGlzIGZpbGUgZGlyZWN0bHkuIgor
I2VuZGlmCisKKworI2RlZmluZSBFTkFCTEUoV1RGX0ZFQVRVUkUpIChkZWZpbmVkIEVOQUJMRV8j
I1dURl9GRUFUVVJFICYmIEVOQUJMRV8jI1dURl9GRUFUVVJFKQorCisvKiBVc2UgdGhpcyBmaWxl
IHRvIGxpc3QgX2FsbF8gRU5BQkxFKCkgbWFjcm9zLiBEZWZpbmUgdGhlIG1hY3JvcyB0byBiZSBv
bmUgb2YgdGhlIGZvbGxvd2luZyB2YWx1ZXM6CisgKiAgLSAiMCIgZGlzYWJsZXMgdGhlIGZlYXR1
cmUgYnkgZGVmYXVsdC4gVGhlIGZlYXR1cmUgY2FuIHN0aWxsIGJlIGVuYWJsZWQgZm9yIGEgc3Bl
Y2lmaWMgcG9ydCBvciBlbnZpcm9ubWVudC4KKyAqICAtICIxIiBlbmFibGVzIHRoZSBmZWF0dXJl
IGJ5IGRlZmF1bHQuIFRoZSBmZWF0dXJlIGNhbiBzdGlsbCBiZSBkaXNhYmxlZCBmb3IgYSBzcGVj
aWZpYyBwb3J0IG9yIGVudmlyb25tZW50LgorICoKKyAqIFRoZSBmZWF0dXJlIGRlZmF1bHRzIGlu
IHRoaXMgZmlsZSBhcmUgb25seSB0YWtlbiBpbnRvIGFjY291bnQgaWYgdGhlIChwb3J0IHNwZWNp
ZmljKSBidWlsZCBzeXN0ZW0KKyAqIGhhcyBub3QgZW5hYmxlZCBvciBkaXNhYmxlZCBhIHBhcnRp
Y3VsYXIgZmVhdHVyZS4KKyAqCisgKiBVc2UgdGhpcyBmaWxlIHRvIGRlZmluZSBFTkFCTEUoKSBt
YWNyb3Mgb25seS4gRG8gbm90IHVzZSB0aGlzIGZpbGUgdG8gZGVmaW5lIFVTRSgpIG9yIG1hY3Jv
cyAhCisgKgorICogT25seSBkZWZpbmUgYSBtYWNybyBpZiBpdCB3YXMgbm90IGRlZmluZWQgYmVm
b3JlIC0gYWx3YXlzIGNoZWNrIGZvciAhZGVmaW5lZCBmaXJzdC4KKyAqCisgKiBLZWVwIHRoZSBm
aWxlIHNvcnRlZCBieSB0aGUgbmFtZSBvZiB0aGUgZGVmaW5lcy4gQXMgYW4gZXhjZXB0aW9uIHlv
dSBjYW4gY2hhbmdlIHRoZSBvcmRlcgorICogdG8gYWxsb3cgaW50ZXJkZXBlbmRlbmNpZXMgYmV0
d2VlbiB0aGUgZGVmYXVsdCB2YWx1ZXMuCisgKgorICogQmVsb3cgYXJlIGEgZmV3IHBvdGVudGlh
bCBjb21tYW5kcyB0byB0YWtlIGFkdmFudGFnZSBvZiB0aGlzIGZpbGUgcnVubmluZyBmcm9tIHRo
ZSBTb3VyY2UvV1RGIGRpcmVjdG9yeQorICoKKyAqIEdldCB0aGUgbGlzdCBvZiBmZWF0dXJlIGRl
ZmluZXM6IGdyZXAgLW8gIkVOQUJMRV9cKFx3XCtcKSIgd3RmL1BsYXRmb3JtRW5hYmxlLmggfCBz
b3J0IHwgdW5pcQorICogR2V0IHRoZSBsaXN0IG9mIGZlYXR1cmVzIGVuYWJsZWQgYnkgZGVmYXVs
dCBmb3IgYSBQTEFURk9STShYWFgpOiBnY2MgLUUgLWRNIC1JLiAtRFdURl9QTEFURk9STV9YWFgg
Ind0Zi9QbGF0Zm9ybS5oIiB8IGdyZXAgIkVOQUJMRV9cd1wrIDEiIHwgY3V0IC1kJyAnIC1mMiB8
IHNvcnQKKyAqLworCisKKy8qIEZJWE1FOiBUaGlzIHNob3VsZCBiZSByZW5hbWVkIHRvIEVOQUJM
RV9BU1NFUlRTIGZvciBjb25zaXN0ZW5jeSBhbmQgc28gaXQgY2FuIGJlIHVzZWQgYXMgRU5BQkxF
KEFTU0VSVFMpLiAqLworLyogQVNTRVJUX0VOQUJMRUQgc2hvdWxkIGJlIHRydWUgaWYgd2Ugd2Fu
dCB0aGUgY3VycmVudCBjb21waWxhdGlvbiB1bml0IHRvCisgICBkbyBkZWJ1ZyBhc3NlcnRpb24g
Y2hlY2tzIHVuY29uZGl0aW9uYWxseSAoZS5nLiB0cmVhdCBhIGRlYnVnIEFTU0VSVAorICAgbGlr
ZSBhIFJFTEVBU0VfQVNTRVJULgorKi8KKyNpZm5kZWYgQVNTRVJUX0VOQUJMRUQKKyNpZmRlZiBO
REVCVUcKKyNkZWZpbmUgQVNTRVJUX0VOQUJMRUQgMAorI2Vsc2UKKyNkZWZpbmUgQVNTRVJUX0VO
QUJMRUQgMQorI2VuZGlmCisjZW5kaWYKKworLyogPT09PSBQbGF0Zm9ybSBhZGRpdGlvbnM6IGFk
ZGl0aW9ucyB0byBQbGF0Zm9ybUVuYWJsZS5oIGZyb20gb3V0c2lkZSB0aGUgbWFpbiByZXBvc2l0
b3J5ID09PT0gKi8KKworI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspICYmIF9faGFzX2luY2x1
ZGUoPFdlYktpdEFkZGl0aW9ucy9BZGRpdGlvbmFsRmVhdHVyZURlZmluZXMuaD4pCisjaW5jbHVk
ZSA8V2ViS2l0QWRkaXRpb25zL0FkZGl0aW9uYWxGZWF0dXJlRGVmaW5lcy5oPgorI2VuZGlmCisK
Ky8qIEZJWE1FOiBNb3ZlIG91dCB0aGUgUExBVEZPUk0gc3BlY2lmaWMgcnVsZXMgaW50byBwbGF0
Zm9ybSBzcGVjaWZpYyBmaWxlcy4gKi8KKworLyogLS0tLS0tLS0tIEFwcGxlIGlPUyAoYnV0IG5v
dCBtYWNPUykgcG9ydCAtLS0tLS0tLS0gKi8KKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorCisj
aWYgIWRlZmluZWQoRU5BQkxFX0FJUlBMQVlfUElDS0VSKQorI2lmICFQTEFURk9STShNQUNDQVRB
TFlTVCkKKyNkZWZpbmUgRU5BQkxFX0FJUlBMQVlfUElDS0VSIDEKKyNlbmRpZgorI2VuZGlmCisK
KyNpZiAhZGVmaW5lZChFTkFCTEVfQVBQTEVfUEFZX1JFTU9URV9VSSkKKyNpZiAhUExBVEZPUk0o
QVBQTEVUVikgJiYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKSAmJiAhUExBVEZPUk0oV0FUQ0hPUykK
KyNkZWZpbmUgRU5BQkxFX0FQUExFX1BBWV9SRU1PVEVfVUkgMQorI2VuZGlmCisjZW5kaWYKKwor
I2lmICFkZWZpbmVkKEVOQUJMRV9DT05URU5UX0VYVEVOU0lPTlMpCisjZGVmaW5lIEVOQUJMRV9D
T05URU5UX0VYVEVOU0lPTlMgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQ09OVEVY
VF9NRU5VUykKKyNkZWZpbmUgRU5BQkxFX0NPTlRFWFRfTUVOVVMgMAorI2VuZGlmCisKKyNpZiAh
ZGVmaW5lZChFTkFCTEVfQ09OVEVYVF9NRU5VX0VWRU5UKQorI2lmICFQTEFURk9STShNQUNDQVRB
TFlTVCkKKyNkZWZpbmUgRU5BQkxFX0NPTlRFWFRfTUVOVV9FVkVOVCAwCisjZW5kaWYKKyNlbmRp
ZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0NVU1RPTV9DVVJTT1JfU1VQUE9SVCkKKyNkZWZpbmUg
RU5BQkxFX0NVU1RPTV9DVVJTT1JfU1VQUE9SVCAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVO
QUJMRV9EUkFHX1NVUFBPUlQpCisjZGVmaW5lIEVOQUJMRV9EUkFHX1NVUFBPUlQgMAorI2VuZGlm
CisKKyNpZiAhZGVmaW5lZChFTkFCTEVfR0VPTE9DQVRJT04pCisjZGVmaW5lIEVOQUJMRV9HRU9M
T0NBVElPTiAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9JTlNQRUNUT1JfQUxURVJO
QVRFX0RJU1BBVENIRVJTKQorI2RlZmluZSBFTkFCTEVfSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQ
QVRDSEVSUyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9JTlNQRUNUT1JfVEVMRU1F
VFJZKQorI2RlZmluZSBFTkFCTEVfSU5TUEVDVE9SX1RFTEVNRVRSWSAwCisjZW5kaWYKKworI2lm
ICFkZWZpbmVkKEVOQUJMRV9MRVRURVJQUkVTUykKKyNkZWZpbmUgRU5BQkxFX0xFVFRFUlBSRVNT
IDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0FVVE9DT1JSRUNUKQorI2RlZmluZSBF
TkFCTEVfQVVUT0NPUlJFQ1QgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQVVUT0NB
UElUQUxJWkUpCisjZGVmaW5lIEVOQUJMRV9BVVRPQ0FQSVRBTElaRSAxCisjZW5kaWYKKworI2lm
ICFkZWZpbmVkKEVOQUJMRV9JT1NfR0VTVFVSRV9FVkVOVFMpICYmIFVTRShBUFBMRV9JTlRFUk5B
TF9TREspCisjZGVmaW5lIEVOQUJMRV9JT1NfR0VTVFVSRV9FVkVOVFMgMQorI2VuZGlmCisKKyNp
ZiAhZGVmaW5lZChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKQorI2RlZmluZSBFTkFCTEVfVEVYVF9B
VVRPU0laSU5HIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0lPU19UT1VDSF9FVkVO
VFMpICYmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisjZGVmaW5lIEVOQUJMRV9JT1NfVE9VQ0hf
RVZFTlRTIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX01FVEVSX0VMRU1FTlQpCisj
ZGVmaW5lIEVOQUJMRV9NRVRFUl9FTEVNRU5UIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5B
QkxFX05FVFNDQVBFX1BMVUdJTl9BUEkpCisjZGVmaW5lIEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5f
QVBJIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUykK
KyNkZWZpbmUgRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUyAxCisjZW5kaWYKKworI2lmICFkZWZp
bmVkKEVOQUJMRV9QT0lOVEVSX0xPQ0spCisjZGVmaW5lIEVOQUJMRV9QT0lOVEVSX0xPQ0sgMAor
I2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUikKKyNkZWZpbmUg
RU5BQkxFX1JFTU9URV9JTlNQRUNUT1IgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVf
VEVYVF9DQVJFVCkKKyNkZWZpbmUgRU5BQkxFX1RFWFRfQ0FSRVQgMAorI2VuZGlmCisKKyNpZiAh
ZGVmaW5lZChFTkFCTEVfVEVYVF9TRUxFQ1RJT04pCisjZGVmaW5lIEVOQUJMRV9URVhUX1NFTEVD
VElPTiAwCisjZW5kaWYKKworLyogRklYTUU6IFJlbW92ZSB0aGUgVVNFKEFQUExFX0lOVEVSTkFM
X1NESykgY29uanVuY3Qgb25jZSB3ZSBzdXBwb3J0IHRvdWNoIGV2ZW50cyB3aGVuIGJ1aWxkaW5n
IGFnYWluc3QKK3RoZSBwdWJsaWMgaU9TIFNESy4gU2VlIDxodHRwczovL3dlYmtpdC5vcmcvYi8x
NzkxNjc+LiAqLworI2lmICFkZWZpbmVkKEVOQUJMRV9UT1VDSF9FVkVOVFMpICYmIFVTRShBUFBM
RV9JTlRFUk5BTF9TREspCisjZGVmaW5lIEVOQUJMRV9UT1VDSF9FVkVOVFMgMQorI2VuZGlmCisK
KyNpZiAhZGVmaW5lZChFTkFCTEVfV0VCX0FSQ0hJVkUpCisjZGVmaW5lIEVOQUJMRV9XRUJfQVJD
SElWRSAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJHTCkKKyNkZWZpbmUgRU5B
QkxFX1dFQkdMIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1BSSU1BUllfU05BUFNI
T1RURURfUExVR0lOX0hFVVJJU1RJQykKKyNkZWZpbmUgRU5BQkxFX1BSSU1BUllfU05BUFNIT1RU
RURfUExVR0lOX0hFVVJJU1RJQyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9ET1dO
TE9BRF9BVFRSSUJVVEUpCisjZGVmaW5lIEVOQUJMRV9ET1dOTE9BRF9BVFRSSUJVVEUgMQorI2Vu
ZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfV0tQREZWSUVXKSAmJiBQTEFURk9STShJT1MpCisj
ZGVmaW5lIEVOQUJMRV9XS1BERlZJRVcgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVf
TUVESUFfU09VUkNFKQorI2RlZmluZSBFTkFCTEVfTUVESUFfU09VUkNFIDAKKyNlbmRpZgorCisj
aWYgIWRlZmluZWQoRU5BQkxFX1BSRVZJRVdfQ09OVkVSVEVSKSAmJiBQTEFURk9STShJT1MpCisj
ZGVmaW5lIEVOQUJMRV9QUkVWSUVXX0NPTlZFUlRFUiAxCisjZW5kaWYKKworI2lmICFkZWZpbmVk
KEVOQUJMRV9NRVRBX1ZJRVdQT1JUKQorI2RlZmluZSBFTkFCTEVfTUVUQV9WSUVXUE9SVCAxCisj
ZW5kaWYKKworI2VuZGlmIC8qIFBMQVRGT1JNKElPU19GQU1JTFkpICovCisKKy8qIC0tLS0tLS0t
LSBBcHBsZSB3YXRjaE9TIHBvcnQgLS0tLS0tLS0tICovCisjaWYgUExBVEZPUk0oV0FUQ0hPUykK
KworI2VuZGlmIC8qIFBMQVRGT1JNKFdBVENIT1MpICovCisKKy8qIC0tLS0tLS0tLSBBcHBsZSBt
YWNPUyBwb3J0IChub3QgaU9TKSAtLS0tLS0tLS0gKi8KKyNpZiBQTEFURk9STShNQUMpCisKKyNp
ZiAhZGVmaW5lZChFTkFCTEVfQ09OVEVOVF9FWFRFTlNJT05TKQorI2RlZmluZSBFTkFCTEVfQ09O
VEVOVF9FWFRFTlNJT05TIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0ZVTExTQ1JF
RU5fQVBJKQorI2RlZmluZSBFTkFCTEVfRlVMTFNDUkVFTl9BUEkgMQorI2VuZGlmCisKKyNpZiAh
ZGVmaW5lZChFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUikKKyNkZWZpbmUgRU5BQkxFX1JFTU9URV9J
TlNQRUNUT1IgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfSU5TUEVDVE9SX0FMVEVS
TkFURV9ESVNQQVRDSEVSUykKKyNkZWZpbmUgRU5BQkxFX0lOU1BFQ1RPUl9BTFRFUk5BVEVfRElT
UEFUQ0hFUlMgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfSU5TUEVDVE9SX1RFTEVN
RVRSWSkKKyNkZWZpbmUgRU5BQkxFX0lOU1BFQ1RPUl9URUxFTUVUUlkgMQorI2VuZGlmCisKKyNp
ZiAhZGVmaW5lZChFTkFCTEVfU01PT1RIX1NDUk9MTElORykKKyNkZWZpbmUgRU5BQkxFX1NNT09U
SF9TQ1JPTExJTkcgMQorI2VuZGlmCisKKyNpZiBFTkFCTEUoVklERU8pCisjaWYgIWRlZmluZWQo
RU5BQkxFX1ZJREVPX1RSQUNLKQorI2RlZmluZSBFTkFCTEVfVklERU9fVFJBQ0sgMQorI2VuZGlm
CisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJfQVJDSElWRSkKKyNkZWZpbmUgRU5B
QkxFX1dFQl9BUkNISVZFIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1dFQl9BVURJ
TykKKyNkZWZpbmUgRU5BQkxFX1dFQl9BVURJTyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVO
QUJMRV9DVVJTT1JfVklTSUJJTElUWSkKKyNkZWZpbmUgRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZ
IDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1BSSU1BUllfU05BUFNIT1RURURfUExV
R0lOX0hFVVJJU1RJQykKKyNkZWZpbmUgRU5BQkxFX1BSSU1BUllfU05BUFNIT1RURURfUExVR0lO
X0hFVVJJU1RJQyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9NQUNfR0VTVFVSRV9F
VkVOVFMpICYmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisjZGVmaW5lIEVOQUJMRV9NQUNfR0VT
VFVSRV9FVkVOVFMgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfV0VCUFJPQ0VTU19O
U1JVTkxPT1ApCisjZGVmaW5lIEVOQUJMRV9XRUJQUk9DRVNTX05TUlVOTE9PUCBfX01BQ19PU19Y
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTQwMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChF
TkFCTEVfV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCisjZGVmaW5lIEVOQUJMRV9X
RUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORyBFTkFCTEVfV0VCUFJPQ0VTU19OU1JVTkxP
T1AKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX01FRElBX1NPVVJDRSkKKyNkZWZpbmUg
RU5BQkxFX01FRElBX1NPVVJDRSAxCisjZW5kaWYKKworI2VuZGlmIC8qIFBMQVRGT1JNKE1BQykg
Ki8KKworLyogLS0tLS0tLS0tIEFwcGxlIENvY29hIHBsYXRmb3JtcyAtLS0tLS0tLS0gKi8KKwor
I2lmIFBMQVRGT1JNKENPQ09BKQorCisjaWYgIWRlZmluZWQoRU5BQkxFX0xFR0FDWV9FTkNSWVBU
RURfTUVESUEpCisjaWYgUExBVEZPUk0oTUFDQ0FUQUxZU1QpCisjZGVmaW5lIEVOQUJMRV9MRUdB
Q1lfRU5DUllQVEVEX01FRElBIDAKKyNlbHNlCisjZGVmaW5lIEVOQUJMRV9MRUdBQ1lfRU5DUllQ
VEVEX01FRElBIDEKKyNlbmRpZgorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfRklMRV9S
RVBMQUNFTUVOVCkKKyNkZWZpbmUgRU5BQkxFX0ZJTEVfUkVQTEFDRU1FTlQgMQorI2VuZGlmCisK
KyNpZiAhZGVmaW5lZChFTkFCTEVfUEFZTUVOVF9SRVFVRVNUKQorI2RlZmluZSBFTkFCTEVfUEFZ
TUVOVF9SRVFVRVNUIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0FTWU5DX1NDUk9M
TElORykKKyNkZWZpbmUgRU5BQkxFX0FTWU5DX1NDUk9MTElORyAxCisjZW5kaWYKKworI2lmICFk
ZWZpbmVkKEVOQUJMRV9VSV9TSURFX0NPTVBPU0lUSU5HKQorI2RlZmluZSBFTkFCTEVfVUlfU0lE
RV9DT01QT1NJVElORyAxCisjZW5kaWYKKworI2VuZGlmIC8qIFBMQVRGT1JNKENPQ09BKSAqLwor
CisjaWYgIVBMQVRGT1JNKENPQ09BKQorCisjaWYgIWRlZmluZWQoSlNDX09CSkNfQVBJX0VOQUJM
RUQpCisjZGVmaW5lIEpTQ19PQkpDX0FQSV9FTkFCTEVEIDAKKyNlbmRpZgorCisjZW5kaWYgLyog
IVBMQVRGT1JNKENPQ09BKSAqLworCisKKy8qIC0tLS0tLS0tLSBBcHBsZSBXaW5kb3dzIHBvcnQg
LS0tLS0tLS0tICovCisjaWYgUExBVEZPUk0oV0lOKSAmJiAhUExBVEZPUk0oV0lOX0NBSVJPKQor
CisjaWYgIWRlZmluZWQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKQorI2RlZmluZSBFTkFCTEVfRlVM
TFNDUkVFTl9BUEkgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfV0VCX0FSQ0hJVkUp
CisjZGVmaW5lIEVOQUJMRV9XRUJfQVJDSElWRSAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVO
QUJMRV9XRUJHTCkKKyNkZWZpbmUgRU5BQkxFX1dFQkdMIDAKKyNlbmRpZgorCisjaWYgIWRlZmlu
ZWQoRU5BQkxFX0dFT0xPQ0FUSU9OKQorI2RlZmluZSBFTkFCTEVfR0VPTE9DQVRJT04gMQorI2Vu
ZGlmCisKKyNlbmRpZiAvKiBQTEFURk9STShXSU4pICYmICFQTEFURk9STShXSU5fQ0FJUk8pICov
CisKKy8qIC0tLS0tLS0tLSBXaW5kb3dzIENBSVJPIHBvcnQgLS0tLS0tLS0tICovCisvKiBQTEFU
Rk9STShXSU5fQ0FJUk8pIGlzIGEgc3BlY2lhbGl6YXRpb24gb2YgUExBVEZPUk0oV0lOKS4gKi8K
Ky8qIFBMQVRGT1JNKFdJTikgaXMgYWx3YXlzIGVuYWJsZWQgd2hlbiBQTEFURk9STShXSU5fQ0FJ
Uk8pIGlzIGVuYWJsZWQuICovCisjaWYgUExBVEZPUk0oV0lOX0NBSVJPKQorCisjaWYgIWRlZmlu
ZWQoRU5BQkxFX1dFQl9BUkNISVZFKQorI2RlZmluZSBFTkFCTEVfV0VCX0FSQ0hJVkUgMQorI2Vu
ZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfV0VCR0wpCisjZGVmaW5lIEVOQUJMRV9XRUJHTCAx
CisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9HRU9MT0NBVElPTikKKyNkZWZpbmUgRU5B
QkxFX0dFT0xPQ0FUSU9OIDEKKyNlbmRpZgorCisjZW5kaWYgLyogUExBVEZPUk0oV0lOX0NBSVJP
KSAqLworCisvKiBFTkFCTEUgbWFjcm8gZGVmYXVsdHMgZm9yIFdlYkNvcmUgKi8KKy8qIERvIG5v
dCB1c2UgUExBVEZPUk0oKSB0ZXN0cyBpbiB0aGlzIHNlY3Rpb24gISAqLworCisjaWYgIWRlZmlu
ZWQoRU5BQkxFXzNEX1RSQU5TRk9STVMpCisjZGVmaW5lIEVOQUJMRV8zRF9UUkFOU0ZPUk1TIDAK
KyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0FDQ0VTU0lCSUxJVFkpCisjZGVmaW5lIEVO
QUJMRV9BQ0NFU1NJQklMSVRZIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0FDQ0VM
RVJBVEVEXzJEX0NBTlZBUykKKyNkZWZpbmUgRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUyAw
CisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9PVkVSRkxPV19TQ1JPTExJTkdfVE9VQ0gp
CisjZGVmaW5lIEVOQUJMRV9PVkVSRkxPV19TQ1JPTExJTkdfVE9VQ0ggMAorI2VuZGlmCisKKyNp
ZiAhZGVmaW5lZChFTkFCTEVfQVBORykKKyNkZWZpbmUgRU5BQkxFX0FQTkcgMQorI2VuZGlmCisK
KyNpZiAhZGVmaW5lZChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpCisjZGVmaW5lIEVOQUJMRV9D
SEFOTkVMX01FU1NBR0lORyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9DT05URU5U
X0VYVEVOU0lPTlMpCisjZGVmaW5lIEVOQUJMRV9DT05URU5UX0VYVEVOU0lPTlMgMAorI2VuZGlm
CisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQ09OVEVYVF9NRU5VUykKKyNkZWZpbmUgRU5BQkxFX0NP
TlRFWFRfTUVOVVMgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQ09OVEVYVF9NRU5V
X0VWRU5UKQorI2RlZmluZSBFTkFCTEVfQ09OVEVYVF9NRU5VX0VWRU5UIDEKKyNlbmRpZgorCisj
aWYgIWRlZmluZWQoRU5BQkxFX0NTUzNfVEVYVCkKKyNkZWZpbmUgRU5BQkxFX0NTUzNfVEVYVCAw
CisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUsp
CisjZGVmaW5lIEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUsgMQorI2VuZGlmCisKKyNp
ZiAhZGVmaW5lZChFTkFCTEVfQ1NTX0RFVklDRV9BREFQVEFUSU9OKQorI2RlZmluZSBFTkFCTEVf
Q1NTX0RFVklDRV9BREFQVEFUSU9OIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0NT
U19DT01QT1NJVElORykKKyNkZWZpbmUgRU5BQkxFX0NTU19DT01QT1NJVElORyAwCisjZW5kaWYK
KworI2lmICFkZWZpbmVkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikKKyNkZWZpbmUgRU5B
QkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxF
X0NTU19DT05JQ19HUkFESUVOVFMpCisjZGVmaW5lIEVOQUJMRV9DU1NfQ09OSUNfR1JBRElFTlRT
IDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0NVU1RPTV9DVVJTT1JfU1VQUE9SVCkK
KyNkZWZpbmUgRU5BQkxFX0NVU1RPTV9DVVJTT1JfU1VQUE9SVCAxCisjZW5kaWYKKworI2lmICFk
ZWZpbmVkKEVOQUJMRV9DVVNUT01fU0NIRU1FX0hBTkRMRVIpCisjZGVmaW5lIEVOQUJMRV9DVVNU
T01fU0NIRU1FX0hBTkRMRVIgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfREFSS19N
T0RFX0NTUykKKyNkZWZpbmUgRU5BQkxFX0RBUktfTU9ERV9DU1MgMAorI2VuZGlmCisKKyNpZiAh
ZGVmaW5lZChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCkKKyNkZWZpbmUgRU5BQkxFX0RBVEFMSVNU
X0VMRU1FTlQgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfREVWSUNFX09SSUVOVEFU
SU9OKQorI2RlZmluZSBFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OIDAKKyNlbmRpZgorCisjaWYg
IWRlZmluZWQoRU5BQkxFX0RPV05MT0FEX0FUVFJJQlVURSkKKyNkZWZpbmUgRU5BQkxFX0RPV05M
T0FEX0FUVFJJQlVURSAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9EUkFHX1NVUFBP
UlQpCisjZGVmaW5lIEVOQUJMRV9EUkFHX1NVUFBPUlQgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5l
ZChFTkFCTEVfRU5DUllQVEVEX01FRElBKQorI2RlZmluZSBFTkFCTEVfRU5DUllQVEVEX01FRElB
IDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0ZJTFRFUlNfTEVWRUxfMikKKyNkZWZp
bmUgRU5BQkxFX0ZJTFRFUlNfTEVWRUxfMiAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJM
RV9GVFBESVIpCisjZGVmaW5lIEVOQUJMRV9GVFBESVIgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5l
ZChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpCisjZGVmaW5lIEVOQUJMRV9GVUxMU0NSRUVOX0FQSSAw
CisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9HQU1FUEFEKQorI2RlZmluZSBFTkFCTEVf
R0FNRVBBRCAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9HRU9MT0NBVElPTikKKyNk
ZWZpbmUgRU5BQkxFX0dFT0xPQ0FUSU9OIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxF
X0lOREVYRURfREFUQUJBU0UpCisjZGVmaW5lIEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFIDAKKyNl
bmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUykK
KyNkZWZpbmUgRU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUyAwCisjZW5kaWYKKwor
I2lmICFkZWZpbmVkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKQorI2RlZmluZSBFTkFCTEVfSU5Q
VVRfVFlQRV9DT0xPUiAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9JTlBVVF9UWVBF
X0RBVEUpCisjZGVmaW5lIEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUgMAorI2VuZGlmCisKKyNpZiAh
ZGVmaW5lZChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKQorI2RlZmluZSBF
TkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFIDAKKyNlbmRpZgorCisjaWYgIWRl
ZmluZWQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkKKyNkZWZpbmUgRU5BQkxFX0lO
UFVUX1RZUEVfREFURVRJTUVMT0NBTCAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9J
TlBVVF9UWVBFX01PTlRIKQorI2RlZmluZSBFTkFCTEVfSU5QVVRfVFlQRV9NT05USCAwCisjZW5k
aWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpCisjZGVmaW5lIEVOQUJM
RV9JTlBVVF9UWVBFX1RJTUUgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfSU5QVVRf
VFlQRV9XRUVLKQorI2RlZmluZSBFTkFCTEVfSU5QVVRfVFlQRV9XRUVLIDAKKyNlbmRpZgorCisj
aWYgRU5BQkxFKElOUFVUX1RZUEVfREFURSkgfHwgRU5BQkxFKElOUFVUX1RZUEVfREFURVRJTUVf
SU5DT01QTEVURSkgfHwgRU5BQkxFKElOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgfHwgRU5BQkxF
KElOUFVUX1RZUEVfTU9OVEgpIHx8IEVOQUJMRShJTlBVVF9UWVBFX1RJTUUpIHx8IEVOQUJMRShJ
TlBVVF9UWVBFX1dFRUspCisjaWYgIWRlZmluZWQoRU5BQkxFX0RBVEVfQU5EX1RJTUVfSU5QVVRf
VFlQRVMpCisjZGVmaW5lIEVOQUJMRV9EQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTIDEKKyNlbmRp
ZgorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQ
QVRDSEVSUykKKyNkZWZpbmUgRU5BQkxFX0lOU1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hFUlMg
MAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfSU5TUEVDVE9SX1RFTEVNRVRSWSkKKyNk
ZWZpbmUgRU5BQkxFX0lOU1BFQ1RPUl9URUxFTUVUUlkgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5l
ZChFTkFCTEVfSU5UTCkKKyNkZWZpbmUgRU5BQkxFX0lOVEwgMAorI2VuZGlmCisKKyNpZiAhZGVm
aW5lZChFTkFCTEVfTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKKyNkZWZpbmUgRU5BQkxFX0xB
WU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVf
TEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpCisjZGVmaW5lIEVOQUJMRV9MRUdBQ1lfQ1NTX1ZF
TkRPUl9QUkVGSVhFUyAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9MRVRURVJQUkVT
UykKKyNkZWZpbmUgRU5BQkxFX0xFVFRFUlBSRVNTIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQo
RU5BQkxFX01BVEhNTCkKKyNkZWZpbmUgRU5BQkxFX01BVEhNTCAxCisjZW5kaWYKKworI2lmICFk
ZWZpbmVkKEVOQUJMRV9NRURJQV9DQVBUVVJFKQorI2RlZmluZSBFTkFCTEVfTUVESUFfQ0FQVFVS
RSAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQp
CisjZGVmaW5lIEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQgMAorI2VuZGlmCisKKyNpZiAh
ZGVmaW5lZChFTkFCTEVfTUVESUFfU09VUkNFKQorI2RlZmluZSBFTkFCTEVfTUVESUFfU09VUkNF
IDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpCisjZGVm
aW5lIEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5B
QkxFX01FRElBX1NUUkVBTSkKKyNkZWZpbmUgRU5BQkxFX01FRElBX1NUUkVBTSAwCisjZW5kaWYK
KworI2lmICFkZWZpbmVkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKQorI2RlZmluZSBFTkFCTEVfTUVU
RVJfRUxFTUVOVCAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9NSFRNTCkKKyNkZWZp
bmUgRU5BQkxFX01IVE1MIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX01PVVNFX0NV
UlNPUl9TQ0FMRSkKKyNkZWZpbmUgRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FMRSAwCisjZW5kaWYK
KworI2lmICFkZWZpbmVkKEVOQUJMRV9NT1VTRV9GT1JDRV9FVkVOVFMpCisjZGVmaW5lIEVOQUJM
RV9NT1VTRV9GT1JDRV9FVkVOVFMgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTkVU
U0NBUEVfUExVR0lOX0FQSSkKKyNkZWZpbmUgRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9BUEkgMQor
I2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTkVUU0NBUEVfUExVR0lOX01FVEFEQVRBX0NB
Q0hFKQorI2RlZmluZSBFTkFCTEVfTkVUU0NBUEVfUExVR0lOX01FVEFEQVRBX0NBQ0hFIDAKKyNl
bmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX05PVElGSUNBVElPTlMpCisjZGVmaW5lIEVOQUJM
RV9OT1RJRklDQVRJT05TIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX09GRlNDUkVF
Tl9DQU5WQVMpCisjZGVmaW5lIEVOQUJMRV9PRkZTQ1JFRU5fQ0FOVkFTIDAKKyNlbmRpZgorCisj
aWYgIWRlZmluZWQoRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUykKKyNkZWZpbmUgRU5BQkxFX09S
SUVOVEFUSU9OX0VWRU5UUyAwCisjZW5kaWYKKworI2lmIE9TKFdJTkRPV1MpCisjaWYgIWRlZmlu
ZWQoRU5BQkxFX1BBTl9TQ1JPTExJTkcpCisjZGVmaW5lIEVOQUJMRV9QQU5fU0NST0xMSU5HIDEK
KyNlbmRpZgorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfUEFZTUVOVF9SRVFVRVNUKQor
I2RlZmluZSBFTkFCTEVfUEFZTUVOVF9SRVFVRVNUIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQo
RU5BQkxFX1BPSU5URVJfTE9DSykKKyNkZWZpbmUgRU5BQkxFX1BPSU5URVJfTE9DSyAxCisjZW5k
aWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9RVU9UQSkKKyNkZWZpbmUgRU5BQkxFX1FVT1RBIDAK
KyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpCisjZGVmaW5l
IEVOQUJMRV9SRU1PVEVfSU5TUEVDVE9SIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxF
X1JVQkJFUl9CQU5ESU5HKQorI2RlZmluZSBFTkFCTEVfUlVCQkVSX0JBTkRJTkcgMAorI2VuZGlm
CisKKyNpZiAhZGVmaW5lZChFTkFCTEVfU0VDVVJJVFlfQVNTRVJUSU9OUykKKy8qIEVuYWJsZSBz
ZWN1cml0eSBhc3NlcnRpb25zIG9uIGFsbCBBU0FOIGJ1aWxkcyBhbmQgZGVidWcgYnVpbGRzLiAq
LworI2lmIEFTQU5fRU5BQkxFRCB8fCAhZGVmaW5lZChOREVCVUcpCisjZGVmaW5lIEVOQUJMRV9T
RUNVUklUWV9BU1NFUlRJT05TIDEKKyNlbmRpZgorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFC
TEVfU01PT1RIX1NDUk9MTElORykKKyNkZWZpbmUgRU5BQkxFX1NNT09USF9TQ1JPTExJTkcgMAor
I2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUykKKyNkZWZpbmUg
RU5BQkxFX1NQRUVDSF9TWU5USEVTSVMgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVf
U1BFTExDSEVDSykKKyNkZWZpbmUgRU5BQkxFX1NQRUxMQ0hFQ0sgMAorI2VuZGlmCisKKyNpZiAh
ZGVmaW5lZChFTkFCTEVfU1RSRUFNU19BUEkpCisjZGVmaW5lIEVOQUJMRV9TVFJFQU1TX0FQSSAx
CisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9TVkdfRk9OVFMpCisjZGVmaW5lIEVOQUJM
RV9TVkdfRk9OVFMgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfVEVYVF9DQVJFVCkK
KyNkZWZpbmUgRU5BQkxFX1RFWFRfQ0FSRVQgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFC
TEVfVEVYVF9TRUxFQ1RJT04pCisjZGVmaW5lIEVOQUJMRV9URVhUX1NFTEVDVElPTiAxCisjZW5k
aWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9BU1lOQ19TQ1JPTExJTkcpCisjZGVmaW5lIEVOQUJM
RV9BU1lOQ19TQ1JPTExJTkcgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfVE9VQ0hf
RVZFTlRTKQorI2RlZmluZSBFTkFCTEVfVE9VQ0hfRVZFTlRTIDAKKyNlbmRpZgorCisjaWYgIWRl
ZmluZWQoRU5BQkxFX1ZJREVPKQorI2RlZmluZSBFTkFCTEVfVklERU8gMAorI2VuZGlmCisKKyNp
ZiAhZGVmaW5lZChFTkFCTEVfVklERU9fVFJBQ0spCisjZGVmaW5lIEVOQUJMRV9WSURFT19UUkFD
SyAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9EQVRBQ1VFX1ZBTFVFKQorI2RlZmlu
ZSBFTkFCTEVfREFUQUNVRV9WQUxVRSAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9X
RUJHTCkKKyNkZWZpbmUgRU5BQkxFX1dFQkdMIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5B
QkxFX0dSQVBISUNTX0NPTlRFWFRfR0wpCisjZGVmaW5lIEVOQUJMRV9HUkFQSElDU19DT05URVhU
X0dMIEVOQUJMRV9XRUJHTAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfV0VCX0FSQ0hJ
VkUpCisjZGVmaW5lIEVOQUJMRV9XRUJfQVJDSElWRSAwCisjZW5kaWYKKworI2lmICFkZWZpbmVk
KEVOQUJMRV9XRUJfQVVESU8pCisjZGVmaW5lIEVOQUJMRV9XRUJfQVVESU8gMAorI2VuZGlmCisK
KyNpZiAhZGVmaW5lZChFTkFCTEVfWFNMVCkKKyNkZWZpbmUgRU5BQkxFX1hTTFQgMQorI2VuZGlm
CisKKyNpZiAhZGVmaW5lZChFTkFCTEVfREFUQV9JTlRFUkFDVElPTikKKyNkZWZpbmUgRU5BQkxF
X0RBVEFfSU5URVJBQ1RJT04gMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfU0VSVklD
RV9XT1JLRVIpCisjZGVmaW5lIEVOQUJMRV9TRVJWSUNFX1dPUktFUiAxCisjZW5kaWYKKworCisv
KiBKSVQgRmVhdHVyZXMgKi8KKworLyogVGhlIEpJVCBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgb24g
YWxsIHg4Ni02NCAmIEFSTTY0IHBsYXRmb3Jtcy4gKi8KKyNpZiAhZGVmaW5lZChFTkFCTEVfSklU
KSAmJiAoQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTTY0KSkgJiYgIUNQVShBUFBMRV9BUk1WN0spCisj
ZGVmaW5lIEVOQUJMRV9KSVQgMQorI2VuZGlmCisKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorI2lm
IChDUFUoQVJNX1RIVU1CMikgfHwgQ1BVKE1JUFMpKSAmJiBPUyhMSU5VWCkKKy8qIE9uIEFSTXY3
IGFuZCBNSVBTIG9uIExpbnV4IHRoZSBKSVQgaXMgZW5hYmxlZCB1bmxlc3MgZXhwbGljaXRseSBk
aXNhYmxlZC4gKi8KKyNpZiAhZGVmaW5lZChFTkFCTEVfSklUKQorI2RlZmluZSBFTkFCTEVfSklU
IDEKKyNlbmRpZgorI2Vsc2UKKy8qIERpc2FibGUgSklUIGFuZCBmb3JjZSBDX0xPT1Agb24gYWxs
IG90aGVyIDMyYml0IGFyY2hpdGVjdHVyZXMuICovCisjdW5kZWYgRU5BQkxFX0pJVAorI2RlZmlu
ZSBFTkFCTEVfSklUIDAKKyN1bmRlZiBFTkFCTEVfQ19MT09QCisjZGVmaW5lIEVOQUJMRV9DX0xP
T1AgMQorI2VuZGlmCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9DX0xPT1ApCisjaWYg
RU5BQkxFKEpJVCkgfHwgQ1BVKFg4Nl82NCkgfHwgKENQVShBUk02NCkgJiYgIWRlZmluZWQoX19J
TFAzMl9fKSkKKyNkZWZpbmUgRU5BQkxFX0NfTE9PUCAwCisjZWxzZQorI2RlZmluZSBFTkFCTEVf
Q19MT09QIDEKKyNlbmRpZgorI2VuZGlmCisKKy8qIEZJWE1FOiBUaGlzIHNob3VsZCBiZSB0dXJu
ZWQgaW50byBhbiAjZXJyb3IgaW52YXJpYW50ICovCisvKiBUaGUgRlRMICpkb2VzIG5vdCogd29y
ayBvbiAzMi1iaXQgcGxhdGZvcm1zLiBEaXNhYmxlIGl0IGV2ZW4gaWYgc29tZW9uZSBhc2tlZCB1
cyB0byBlbmFibGUgaXQuICovCisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyN1bmRlZiBFTkFCTEVf
RlRMX0pJVAorI2RlZmluZSBFTkFCTEVfRlRMX0pJVCAwCisjZW5kaWYKKworLyogRklYTUU6IFRo
aXMgc2hvdWxkIGJlIHR1cm5lZCBpbnRvIGFuICNlcnJvciBpbnZhcmlhbnQgKi8KKy8qIFRoZSBG
VEwgaXMgZGlzYWJsZWQgb24gdGhlIGlPUyBzaW11bGF0b3IsIG1vc3RseSBmb3Igc2ltcGxpY2l0
eS4gKi8KKyNpZiBQTEFURk9STShJT1NfRkFNSUxZX1NJTVVMQVRPUikKKyN1bmRlZiBFTkFCTEVf
RlRMX0pJVAorI2RlZmluZSBFTkFCTEVfRlRMX0pJVCAwCisjZW5kaWYKKworLyogSWYgcG9zc2li
bGUsIHRyeSB0byBlbmFibGUgYSBkaXNhc3NlbWJsZXIuIFRoaXMgaXMgb3B0aW9uYWwuIFdlIHBy
b2NlZWQgaW4gdHdvCisgICBzdGVwczogZmlyc3Qgd2UgdHJ5IHRvIGZpbmQgc29tZSBkaXNhc3Nl
bWJsZXIgdGhhdCB3ZSBjYW4gdXNlLCBhbmQgdGhlbiB3ZQorICAgZGVjaWRlIGlmIHRoZSBoaWdo
LWxldmVsIGRpc2Fzc2VtYmxlciBBUEkgY2FuIGJlIGVuYWJsZWQuICovCisjaWYgIWRlZmluZWQo
RU5BQkxFX1VESVM4NikgJiYgRU5BQkxFKEpJVCkgJiYgQ1BVKFg4Nl82NCkgJiYgIVVTRShDQVBT
VE9ORSkKKyNkZWZpbmUgRU5BQkxFX1VESVM4NiAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVO
QUJMRV9BUk02NF9ESVNBU1NFTUJMRVIpICYmIEVOQUJMRShKSVQpICYmIENQVShBUk02NCkgJiYg
IVVTRShDQVBTVE9ORSkKKyNkZWZpbmUgRU5BQkxFX0FSTTY0X0RJU0FTU0VNQkxFUiAxCisjZW5k
aWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9ESVNBU1NFTUJMRVIpICYmIChFTkFCTEUoVURJUzg2
KSB8fCBFTkFCTEUoQVJNNjRfRElTQVNTRU1CTEVSKSB8fCAoRU5BQkxFKEpJVCkgJiYgVVNFKENB
UFNUT05FKSkpCisjZGVmaW5lIEVOQUJMRV9ESVNBU1NFTUJMRVIgMQorI2VuZGlmCisKKyNpZiAh
ZGVmaW5lZChFTkFCTEVfREZHX0pJVCkgJiYgRU5BQkxFKEpJVCkKKworLyogRW5hYmxlIHRoZSBE
RkcgSklUIG9uIFg4NiBhbmQgWDg2XzY0LiAqLworI2lmIENQVShYODZfNjQpICYmIChPUyhEQVJX
SU4pIHx8IE9TKExJTlVYKSB8fCBPUyhGUkVFQlNEKSB8fCBPUyhIVVJEKSB8fCBPUyhXSU5ET1dT
KSkKKyNkZWZpbmUgRU5BQkxFX0RGR19KSVQgMQorI2VuZGlmCisKKy8qIEVuYWJsZSB0aGUgREZH
IEpJVCBvbiBBUk12Ny4gIE9ubHkgdGVzdGVkIG9uIGlPUywgTGludXgsIGFuZCBGcmVlQlNELiAq
LworI2lmIChDUFUoQVJNX1RIVU1CMikgfHwgQ1BVKEFSTTY0KSkgJiYgKE9TKERBUldJTikgfHwg
T1MoTElOVVgpIHx8IE9TKEZSRUVCU0QpKQorI2RlZmluZSBFTkFCTEVfREZHX0pJVCAxCisjZW5k
aWYKKworLyogRW5hYmxlIHRoZSBERkcgSklUIG9uIE1JUFMuICovCisjaWYgQ1BVKE1JUFMpCisj
ZGVmaW5lIEVOQUJMRV9ERkdfSklUIDEKKyNlbmRpZgorCisjZW5kaWYgLyogIWRlZmluZWQoRU5B
QkxFX0RGR19KSVQpICYmIEVOQUJMRShKSVQpICovCisKKy8qIENvbmN1cnJlbnQgSlMgb25seSB3
b3JrcyBvbiA2NC1iaXQgcGxhdGZvcm1zIGJlY2F1c2UgaXQgcmVxdWlyZXMgdGhhdAorICAgdmFs
dWVzIGdldCBzdG9yZWQgdG8gYXRvbWljYWxseS4gVGhpcyBpcyB0cml2aWFsbHkgdHJ1ZSBvbiA2
NC1iaXQgcGxhdGZvcm1zLAorICAgYnV0IG5vdCB0cnVlIGF0IGFsbCBvbiAzMi1iaXQgcGxhdGZv
cm1zIHdoZXJlIHZhbHVlcyBhcmUgY29tcG9zZWQgb2YgdHdvCisgICBzZXBhcmF0ZSBzdWItdmFs
dWVzLiAqLworI2lmIEVOQUJMRShKSVQpICYmIFVTRShKU1ZBTFVFNjQpCisjZGVmaW5lIEVOQUJM
RV9DT05DVVJSRU5UX0pTIDEKKyNlbmRpZgorCisjaWYgKENQVShYODZfNjQpIHx8IENQVShBUk02
NCkpICYmIEhBVkUoRkFTVF9UTFMpCisjZGVmaW5lIEVOQUJMRV9GQVNUX1RMU19KSVQgMQorI2Vu
ZGlmCisKKyNpZiBFTkFCTEUoSklUKSAmJiAoQ1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkgfHwgQ1BV
KEFSTV9USFVNQjIpIHx8IENQVShBUk02NCkgfHwgQ1BVKE1JUFMpKQorI2RlZmluZSBFTkFCTEVf
TUFTTV9QUk9CRSAxCisjZW5kaWYKKworLyogRklYTUU6IFRoaXMgc2hvdWxkIGJlIHR1cm5lZCBp
bnRvIGFuICNlcnJvciBpbnZhcmlhbnQgKi8KKy8qIElmIHRoZSBiYXNlbGluZSBqaXQgaXMgbm90
IGF2YWlsYWJsZSwgdGhlbiBkaXNhYmxlIHVwcGVyIHRpZXJzIGFzIHdlbGwuCisgICBUaGUgTWFj
cm9Bc3NlbWJsZXI6OnByb2JlKCkgaXMgYWxzbyByZXF1aXJlZCBmb3Igc3VwcG9ydGluZyB0aGUg
dXBwZXIgdGllcnMuICovCisjaWYgIUVOQUJMRShKSVQpIHx8ICFFTkFCTEUoTUFTTV9QUk9CRSkK
KyN1bmRlZiBFTkFCTEVfREZHX0pJVAorI3VuZGVmIEVOQUJMRV9GVExfSklUCisjZGVmaW5lIEVO
QUJMRV9ERkdfSklUIDAKKyNkZWZpbmUgRU5BQkxFX0ZUTF9KSVQgMAorI2VuZGlmCisKKy8qIEZJ
WE1FOiBUaGlzIHNob3VsZCBiZSB0dXJuZWQgaW50byBhbiAjZXJyb3IgaW52YXJpYW50ICovCisv
KiBJZiB0aGUgREZHIGppdCBpcyBub3QgYXZhaWxhYmxlLCB0aGVuIGRpc2FibGUgdXBwZXIgdGll
cnMgYXMgd2VsbDogKi8KKyNpZiAhRU5BQkxFKERGR19KSVQpCisjdW5kZWYgRU5BQkxFX0ZUTF9K
SVQKKyNkZWZpbmUgRU5BQkxFX0ZUTF9KSVQgMAorI2VuZGlmCisKKy8qIFRoaXMgY29udHJvbHMg
d2hldGhlciBCMyBpcyBidWlsdC4gQjMgaXMgbmVlZGVkIGZvciBGVEwgSklUIGFuZCBXZWJBc3Nl
bWJseSAqLworI2lmIEVOQUJMRShGVExfSklUKQorI2RlZmluZSBFTkFCTEVfQjNfSklUIDEKKyNl
bmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1dFQkFTU0VNQkxZKSAmJiAoRU5BQkxFKEIzX0pJ
VCkgJiYgUExBVEZPUk0oQ09DT0EpICYmIENQVShBRERSRVNTNjQpKQorI2RlZmluZSBFTkFCTEVf
V0VCQVNTRU1CTFkgMQorI2VuZGlmCisKKy8qIFRoZSBTYW1wbGluZ1Byb2ZpbGVyIGlzIHRoZSBw
cm9iYWJpbGlzdGljIGFuZCBsb3ctb3ZlcmhlYWQgcHJvZmlsZXIgdXNlZCBieQorICogSlNDIHRv
IG1lYXN1cmUgd2hlcmUgdGltZSBpcyBzcGVudCBpbnNpZGUgYSBKYXZhU2NyaXB0IHByb2dyYW0u
CisgKiBJbiBjb25maWd1cmF0aW9ucyBvdGhlciB0aGFuIFdpbmRvd3MgYW5kIERhcndpbiwgYmVj
YXVzZSBsYXlvdXQgb2YgbWNvbnRleHRfdCBkZXBlbmRzIG9uIHN0YW5kYXJkIGxpYnJhcmllcyAo
bGlrZSBnbGliYyksCisgKiBzYW1wbGluZyBwcm9maWxlciBpcyBlbmFibGVkIGlmIFdlYktpdCB1
c2VzIHB0aHJlYWRzIGFuZCBnbGliYy4gKi8KKyNpZiAhZGVmaW5lZChFTkFCTEVfU0FNUExJTkdf
UFJPRklMRVIpICYmICghRU5BQkxFKENfTE9PUCkgJiYgKE9TKFdJTkRPV1MpIHx8IEhBVkUoTUFD
SElORV9DT05URVhUKSkpCisjZGVmaW5lIEVOQUJMRV9TQU1QTElOR19QUk9GSUxFUiAxCisjZW5k
aWYKKworI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkgJiYgSEFWRShNQUNISU5FX0NPTlRFWFQpCisj
ZGVmaW5lIEVOQUJMRV9XRUJBU1NFTUJMWV9GQVNUX01FTU9SWSAxCisjZW5kaWYKKworLyogQ291
bnRzIHVzZXMgb2Ygd3JpdGUgYmFycmllcnMgdXNpbmcgc2FtcGxpbmcgY291bnRlcnMuIEJlIHN1
cmUgdG8gYWxzbworICAgc2V0IEVOQUJMRV9TQU1QTElOR19DT1VOVEVSUyB0byAxLiAqLworI2lm
ICFkZWZpbmVkKEVOQUJMRV9XUklURV9CQVJSSUVSX1BST0ZJTElORykKKyNkZWZpbmUgRU5BQkxF
X1dSSVRFX0JBUlJJRVJfUFJPRklMSU5HIDAKKyNlbmRpZgorCisvKiBMb2dzIGFsbCBhbGxvY2F0
aW9uLXJlbGF0ZWQgYWN0aXZpdHkgdGhhdCBnb2VzIHRocm91Z2ggZmFzdE1hbGxvYyBvciB0aGUK
KyAgIEpTQyBHQyAoYm90aCBjZWxscyBhbmQgYnV0dGVyZmxpZXMpLiBBbHNvIGxvZ3MgbWFya2lu
Zy4gTm90ZSB0aGF0IHRoaXMKKyAgIGlzbid0IGEgY29tcGxldGVseSBhY2N1cmF0ZSB2aWV3IG9m
IHRoZSBoZWFwIHNpbmNlIGl0IGRvZXNuJ3QgaW5jbHVkZSBhbGwKKyAgIGJ1dHRlcmZseSByZXNp
emUgb3BlcmF0aW9ucywgZG9lc24ndCB0ZWxsIHlvdSB3aGF0IGlzIGdvaW5nIG9uIHdpdGggd2Vh
aworICAgcmVmZXJlbmNlcyAob3RoZXIgdGhhbiB0byB0ZWxsIHlvdSB3aGVuIHRoZXkncmUgbWFy
a2VkKSwgYW5kIGRvZXNuJ3QKKyAgIHRyYWNrIGRpcmVjdCBtbWFwKCkgYWxsb2NhdGlvbnMgb3Ig
dGhpbmdzIGxpa2UgSklUIGFsbG9jYXRpb24uICovCisjaWYgIWRlZmluZWQoRU5BQkxFX0FMTE9D
QVRJT05fTE9HR0lORykKKyNkZWZpbmUgRU5BQkxFX0FMTE9DQVRJT05fTE9HR0lORyAwCisjZW5k
aWYKKworLyogRW5hYmxlIHZlcmlmaWNhdGlvbiB0aGF0IHRoYXQgcmVnaXN0ZXIgYWxsb2NhdGlv
bnMgYXJlIG5vdCBtYWRlIHdpdGhpbiBnZW5lcmF0ZWQgY29udHJvbCBmbG93LgorICAgVHVybmVk
IG9uIGZvciBkZWJ1ZyBidWlsZHMuICovCisjaWYgIWRlZmluZWQoRU5BQkxFX0RGR19SRUdJU1RF
Ul9BTExPQ0FUSU9OX1ZBTElEQVRJT04pICYmIEVOQUJMRShERkdfSklUKSAmJiAhZGVmaW5lZChO
REVCVUcpCisjZGVmaW5lIEVOQUJMRV9ERkdfUkVHSVNURVJfQUxMT0NBVElPTl9WQUxJREFUSU9O
IDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1NFUEFSQVRFRF9XWF9IRUFQKSAmJiBQ
TEFURk9STShJT1NfRkFNSUxZKSAmJiBDUFUoQVJNNjQpICYmICghRU5BQkxFKEZBU1RfSklUX1BF
Uk1JU1NJT05TKSB8fCAhQ1BVKEFSTTY0RSkpCisjZGVmaW5lIEVOQUJMRV9TRVBBUkFURURfV1hf
SEVBUCAxCisjZW5kaWYKKworLyogRGV0ZXJtaW5lIGlmIHdlIG5lZWQgdG8gZW5hYmxlIENvbXB1
dGVkIEdvdG8gT3Bjb2RlcyBvciBub3Q6ICovCisjaWYgSEFWRShDT01QVVRFRF9HT1RPKSB8fCAh
RU5BQkxFKENfTE9PUCkKKyNkZWZpbmUgRU5BQkxFX0NPTVBVVEVEX0dPVE9fT1BDT0RFUyAxCisj
ZW5kaWYKKworLyogUmVndWxhciBFeHByZXNzaW9uIFRyYWNpbmcgLSBTZXQgdG8gMSB0byB0cmFj
ZSBSZWdFeHAncyBpbiBqc2MuICBSZXN1bHRzIGR1bXBlZCBhdCBleGl0ICovCisjaWYgIWRlZmlu
ZWQoRU5BQkxFX1JFR0VYUF9UUkFDSU5HKQorI2RlZmluZSBFTkFCTEVfUkVHRVhQX1RSQUNJTkcg
MAorI2VuZGlmCisKKy8qIFlldCBBbm90aGVyIFJlZ2V4IFJ1bnRpbWUgLSB0dXJuZWQgb24gYnkg
ZGVmYXVsdCBmb3IgSklUIGVuYWJsZWQgcG9ydHMuICovCisjaWYgIWRlZmluZWQoRU5BQkxFX1lB
UlJfSklUKSAmJiBFTkFCTEUoSklUKQorI2RlZmluZSBFTkFCTEVfWUFSUl9KSVQgMQorI2VuZGlm
CisKKy8qIFNldHRpbmcgdGhpcyBmbGFnIGNvbXBhcmVzIEpJVCByZXN1bHRzIHdpdGggaW50ZXJw
cmV0ZXIgcmVzdWx0cy4gKi8KKyNpZiAhZGVmaW5lZChFTkFCTEVfWUFSUl9KSVQpICYmIEVOQUJM
RShKSVQpCisjZGVmaW5lIEVOQUJMRV9ZQVJSX0pJVF9ERUJVRyAwCisjZW5kaWYKKworLyogRW5h
YmxlIEpJVCdpbmcgUmVndWxhciBFeHByZXNzaW9ucyB0aGF0IGhhdmUgbmVzdGVkIHBhcmVudGhl
c2lzIC4gKi8KKyNpZiBFTkFCTEUoWUFSUl9KSVQpICYmIChDUFUoQVJNNjQpIHx8IChDUFUoWDg2
XzY0KSAmJiAhT1MoV0lORE9XUykpKQorI2RlZmluZSBFTkFCTEVfWUFSUl9KSVRfQUxMX1BBUkVO
U19FWFBSRVNTSU9OUyAxCisjZW5kaWYKKworLyogRW5hYmxlIEpJVCdpbmcgUmVndWxhciBFeHBy
ZXNzaW9ucyB0aGF0IGhhdmUgbmVzdGVkIGJhY2sgcmVmZXJlbmNlcy4gKi8KKyNpZiBFTkFCTEUo
WUFSUl9KSVQpICYmIChDUFUoQVJNNjQpIHx8IChDUFUoWDg2XzY0KSAmJiAhT1MoV0lORE9XUykp
KQorI2RlZmluZSBFTkFCTEVfWUFSUl9KSVRfQkFDS1JFRkVSRU5DRVMgMQorI2VuZGlmCisKKy8q
IElmIGVpdGhlciB0aGUgSklUIG9yIHRoZSBSZWdFeHAgSklUIGlzIGVuYWJsZWQsIHRoZW4gdGhl
IEFzc2VtYmxlciBtdXN0IGJlCisgICBlbmFibGVkIGFzIHdlbGw6ICovCisjaWYgRU5BQkxFKEpJ
VCkgfHwgRU5BQkxFKFlBUlJfSklUKSB8fCAhRU5BQkxFKENfTE9PUCkKKyNpZiBkZWZpbmVkKEVO
QUJMRV9BU1NFTUJMRVIpICYmICFFTkFCTEVfQVNTRU1CTEVSCisjZXJyb3IgIkNhbm5vdCBlbmFi
bGUgdGhlIEpJVCBvciBSZWdFeHAgSklUIHdpdGhvdXQgZW5hYmxpbmcgdGhlIEFzc2VtYmxlciIK
KyNlbHNlCisjdW5kZWYgRU5BQkxFX0FTU0VNQkxFUgorI2RlZmluZSBFTkFCTEVfQVNTRU1CTEVS
IDEKKyNlbmRpZgorI2VuZGlmCisKKy8qIElmIHRoZSBEaXNhc3NlbWJsZXIgaXMgZW5hYmxlZCwg
dGhlbiB0aGUgQXNzZW1ibGVyIG11c3QgYmUgZW5hYmxlZCBhcyB3ZWxsOiAqLworI2lmIEVOQUJM
RShESVNBU1NFTUJMRVIpCisjaWYgZGVmaW5lZChFTkFCTEVfQVNTRU1CTEVSKSAmJiAhRU5BQkxF
X0FTU0VNQkxFUgorI2Vycm9yICJDYW5ub3QgZW5hYmxlIHRoZSBEaXNhc3NlbWJsZXIgd2l0aG91
dCBlbmFibGluZyB0aGUgQXNzZW1ibGVyIgorI2Vsc2UKKyN1bmRlZiBFTkFCTEVfQVNTRU1CTEVS
CisjZGVmaW5lIEVOQUJMRV9BU1NFTUJMRVIgMQorI2VuZGlmCisjZW5kaWYKKworI2lmICFkZWZp
bmVkKEVOQUJMRV9FWENFUFRJT05fU0NPUEVfVkVSSUZJQ0FUSU9OKQorI2RlZmluZSBFTkFCTEVf
RVhDRVBUSU9OX1NDT1BFX1ZFUklGSUNBVElPTiBBU1NFUlRfRU5BQkxFRAorI2VuZGlmCisKKyNp
ZiBFTkFCTEUoREZHX0pJVCkgJiYgSEFWRShNQUNISU5FX0NPTlRFWFQpICYmIChDUFUoWDg2XzY0
KSB8fCBDUFUoQVJNNjQpKQorI2RlZmluZSBFTkFCTEVfU0lHTkFMX0JBU0VEX1ZNX1RSQVBTIDEK
KyNlbmRpZgorCisvKiBDU1MgU2VsZWN0b3IgSklUIENvbXBpbGVyICovCisjaWYgIWRlZmluZWQo
RU5BQkxFX0NTU19TRUxFQ1RPUl9KSVQpICYmICgoQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTTY0KSB8
fCAoQ1BVKEFSTV9USFVNQjIpICYmIE9TKERBUldJTikpKSAmJiBFTkFCTEUoSklUKSAmJiAoT1Mo
REFSV0lOKSB8fCBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkpKQorI2RlZmluZSBFTkFC
TEVfQ1NTX1NFTEVDVE9SX0pJVCAxCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiAh
UExBVEZPUk0oV0FUQ0hPUykgJiYgIVBMQVRGT1JNKEFQUExFVFYpICYmICFQTEFURk9STShNQUND
QVRBTFlTVCkKKyNkZWZpbmUgRU5BQkxFX0RBVEFfREVURUNUSU9OIDEKKyNlbmRpZgorCisjaWYg
Q1BVKEFSTV9USFVNQjIpIHx8IENQVShBUk02NCkKKyNkZWZpbmUgRU5BQkxFX0JSQU5DSF9DT01Q
QUNUSU9OIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1RIUkVBRElOR19MSUJESVNQ
QVRDSCkgJiYgSEFWRShESVNQQVRDSF9IKQorI2RlZmluZSBFTkFCTEVfVEhSRUFESU5HX0xJQkRJ
U1BBVENIIDEKKyNlbGlmICFkZWZpbmVkKEVOQUJMRV9USFJFQURJTkdfT1BFTk1QKSAmJiBkZWZp
bmVkKF9PUEVOTVApCisjZGVmaW5lIEVOQUJMRV9USFJFQURJTkdfT1BFTk1QIDEKKyNlbGlmICFk
ZWZpbmVkKFRIUkVBRElOR19HRU5FUklDKQorI2RlZmluZSBFTkFCTEVfVEhSRUFESU5HX0dFTkVS
SUMgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfR0NfVkFMSURBVElPTikgJiYgIWRl
ZmluZWQoTkRFQlVHKQorI2RlZmluZSBFTkFCTEVfR0NfVkFMSURBVElPTiAxCisjZW5kaWYKKwor
I2lmICFkZWZpbmVkKEVOQUJMRV9CSU5ESU5HX0lOVEVHUklUWSkgJiYgIU9TKFdJTkRPV1MpCisj
ZGVmaW5lIEVOQUJMRV9CSU5ESU5HX0lOVEVHUklUWSAxCisjZW5kaWYKKworI2lmICFkZWZpbmVk
KEVOQUJMRV9UUkVFX0RFQlVHR0lORykgJiYgIWRlZmluZWQoTkRFQlVHKQorI2RlZmluZSBFTkFC
TEVfVFJFRV9ERUJVR0dJTkcgMQorI2VuZGlmCisKKyNpZiBQTEFURk9STShDT0NPQSkKKyNkZWZp
bmUgRU5BQkxFX1JFU09VUkNFX1VTQUdFIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxF
X09QRU5UWVBFX1ZFUlRJQ0FMKSAmJiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKKyNk
ZWZpbmUgRU5BQkxFX09QRU5UWVBFX1ZFUlRJQ0FMIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQo
RU5BQkxFX09QRU5UWVBFX01BVEgpICYmIChPUyhEQVJXSU4pICYmIFVTRShDRykpIHx8IChVU0Uo
RlJFRVRZUEUpICYmICFQTEFURk9STShHVEspKSB8fCAoUExBVEZPUk0oV0lOKSAmJiAoVVNFKENH
KSB8fCBVU0UoQ0FJUk8pKSkKKyNkZWZpbmUgRU5BQkxFX09QRU5UWVBFX01BVEggMQorI2VuZGlm
CisKKy8qCisgKiBFbmFibGUgdGhpcyB0byBwdXQgZWFjaCBJc29IZWFwIGFuZCBvdGhlciBhbGxv
Y2F0aW9uIGNhdGVnb3JpZXMgaW50byB0aGVpciBvd24gbWFsbG9jIGhlYXBzLCBzbyB0aGF0IHRv
b2xzIGxpa2Ugdm1tYXAgY2FuIHNob3cgaG93IGJpZyBlYWNoIGhlYXAgaXMuCisgKiBUdXJuIEJF
TkFCTEVfTUFMTE9DX0hFQVBfQlJFQUtET1dOIG9uIGluIGJtYWxsb2MgdG9nZXRoZXIgd2hlbiB1
c2luZyB0aGlzLgorICovCisjaWYgIWRlZmluZWQoRU5BQkxFX01BTExPQ19IRUFQX0JSRUFLRE9X
TikKKyNkZWZpbmUgRU5BQkxFX01BTExPQ19IRUFQX0JSRUFLRE9XTiAwCisjZW5kaWYKKworLyog
RGlzYWJsZSBTaGFyZWRBcnJheUJ1ZmZlcnMgdW50aWwgU3BlY3RyZSBzZWN1cml0eSBjb25jZXJu
cyBhcmUgbWl0aWdhdGVkLiAqLworI2RlZmluZSBFTkFCTEVfU0hBUkVEX0FSUkFZX0JVRkZFUiAw
CisKKyNpZiBQTEFURk9STShNQUMpCisjZGVmaW5lIEVOQUJMRV9XRUJfUExBWUJBQ0tfQ09OVFJP
TFNfTUFOQUdFUiAxCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKENPQ09BKQorLyogRklYTUU6IFRo
aXMgaXMgYSBVU0Ugc3R5bGUgbWFjcm8sIGFzIGl0IHRyaWdnZXJzIHRoZSB1c2Ugb2YgQ0ZVUkxD
b25uZWN0aW9uIGZyYW1ld29yayBzdHVicy4gKi8KKy8qIEZJWE1FOiBJcyB0aGlzIHN0aWxsIG5l
Y2Vzc2FyeT8gQ0ZVUkxDb25uZWN0aW9uIGlzbid0IHVzZWQgb24gQ29jb2EgcGxhdGZvcm1zIGFu
eSBtb3JlLiAqLworI2RlZmluZSBFTkFCTEVfU0VDX0lURU1fU0hJTSAxCisjZW5kaWYKKworI2lm
IFBMQVRGT1JNKE1BQykKKyNkZWZpbmUgRU5BQkxFX0ZVTExfS0VZQk9BUkRfQUNDRVNTIDEKKyNl
bmRpZgorCisjaWYgKChQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oUExBWVNUQVRJT04pIHx8
IFBMQVRGT1JNKFdQRSkpICYmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpKSB8fCBQTEFURk9STShH
VEspCisjZGVmaW5lIEVOQUJMRV9LSU5FVElDX1NDUk9MTElORyAxCisjZW5kaWYKKworI2lmICFk
ZWZpbmVkKEVOQUJMRV9NT05PU1BBQ0VfRk9OVF9FWENFUFRJT04pICYmICgoUExBVEZPUk0oTUFD
KSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDwgMTAxNTAwKSB8fCBQTEFURk9S
TShXQVRDSE9TKSB8fCBQTEFURk9STShBUFBMRVRWKSkKKyNkZWZpbmUgRU5BQkxFX01PTk9TUEFD
RV9GT05UX0VYQ0VQVElPTiAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9QTEFURk9S
TV9EUklWRU5fVEVYVF9DSEVDS0lORykgJiYgUExBVEZPUk0oTUFDQ0FUQUxZU1QpCisjZGVmaW5l
IEVOQUJMRV9QTEFURk9STV9EUklWRU5fVEVYVF9DSEVDS0lORyAxCisjZW5kaWYKKworLyogVGhp
cyBmZWF0dXJlIHdvcmtzIGJ5IGVtYmVkZGluZyB0aGUgT3Bjb2RlSUQgaW4gdGhlIDMyIGJpdCBq
dXN0IGJlZm9yZSB0aGUgZ2VuZXJhdGVkIExMaW50IGNvZGUKKyAgIHRoYXQgZXhlY3V0ZXMgZWFj
aCBvcGNvZGUuIEl0IGNhbm5vdCBiZSBzdXBwb3J0ZWQgYnkgdGhlIENMb29wIHNpbmNlIHRoZXJl
J3Mgbm8gd2F5IHRvIGVtYmVkIHRoZQorICAgT3Bjb2RlSUQgd29yZCBpbiB0aGUgQ0xvb3AncyBz
d2l0Y2ggc3RhdGVtZW50IGNhc2VzLiBJdCBpcyBhbHNvIGN1cnJlbnRseSBub3QgaW1wbGVtZW50
ZWQgZm9yIE1TVkMuCisqLworI2lmICFkZWZpbmVkKEVOQUJMRV9MTElOVF9FTUJFRERFRF9PUENP
REVfSUQpICYmICFFTkFCTEUoQ19MT09QKSAmJiAhQ09NUElMRVIoTVNWQykgJiYgKENQVShYODYp
IHx8IENQVShYODZfNjQpIHx8IENQVShBUk02NCkgfHwgKENQVShBUk1fVEhVTUIyKSAmJiBPUyhE
QVJXSU4pKSkKKyNkZWZpbmUgRU5BQkxFX0xMSU5UX0VNQkVEREVEX09QQ09ERV9JRCAxCisjZW5k
aWYKKworCisvKiBBc3NlcnRzLCBpbnZhcmlhbnRzIGZvciBtYWNybyBkZWZpbml0aW9ucyAqLwor
CisjaWYgRU5BQkxFKFZJREVPX1RSQUNLKSAmJiAhRU5BQkxFKFZJREVPKQorI2Vycm9yICJFTkFC
TEUoVklERU9fVFJBQ0spIHJlcXVpcmVzIEVOQUJMRShWSURFTykiCisjZW5kaWYKKworI2lmIEVO
QUJMRShNRURJQV9DT05UUk9MU19TQ1JJUFQpICYmICFFTkFCTEUoVklERU8pCisjZXJyb3IgIkVO
QUJMRShNRURJQV9DT05UUk9MU19TQ1JJUFQpIHJlcXVpcmVzIEVOQUJMRShWSURFTykiCisjZW5k
aWYKKworI2lmIEVOQUJMRShJTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENIRVJTKSAmJiAhRU5B
QkxFKFJFTU9URV9JTlNQRUNUT1IpCisjZXJyb3IgIkVOQUJMRShJTlNQRUNUT1JfQUxURVJOQVRF
X0RJU1BBVENIRVJTKSByZXF1aXJlcyBFTkFCTEUoUkVNT1RFX0lOU1BFQ1RPUikiCisjZW5kaWYK
KworI2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKSAmJiAhRU5BQkxFKFRPVUNIX0VWRU5UUykK
KyNlcnJvciAiRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpIHJlcXVpcmVzIEVOQUJMRShUT1VDSF9F
VkVOVFMpIgorI2VuZGlmCisKKyNpZiBFTkFCTEUoV0VCR0wpICYmICFFTkFCTEUoR1JBUEhJQ1Nf
Q09OVEVYVF9HTCkKKyNlcnJvciAiRU5BQkxFKFdFQkdMKSByZXF1aXJlcyBFTkFCTEUoR1JBUEhJ
Q1NfQ09OVEVYVF9HTCkiCisjZW5kaWYKKworI2lmIEVOQUJMRShXRUJHTDIpICYmICFFTkFCTEUo
V0VCR0wpCisjZXJyb3IgIkVOQUJMRShXRUJHTDIpIHJlcXVpcmVzIEVOQUJMRShXRUJHTCkiCisj
ZW5kaWYKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlV2luQXBwbGUuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZVdpbkFwcGxlLmgJKHJldmlz
aW9uIDI1NTU1MikKKysrIFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlV2luQXBwbGUuaAko
d29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYt
MjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDYtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMp
IDIwMDctMjAwOSBUb3JjaCBNb2JpbGUsIEluYy4KICAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAx
MSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENv
cHlyaWdodCAoQykgMjAxMyBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgpAQCAtMzIsMzA1ICszMiwxMiBAQAogI2Vycm9yICJQbGVhc2UgI2luY2x1ZGUgPHd0Zi9QbGF0
Zm9ybS5oPiBpbnN0ZWFkIG9mIHRoaXMgZmlsZSBkaXJlY3RseS4iCiAjZW5kaWYKIAotCi0jZGVm
aW5lIEVOQUJMRShXVEZfRkVBVFVSRSkgKGRlZmluZWQgRU5BQkxFXyMjV1RGX0ZFQVRVUkUgJiYg
RU5BQkxFXyMjV1RGX0ZFQVRVUkUpCi0KLS8qIFVzZSB0aGlzIGZpbGUgdG8gbGlzdCBfYWxsXyBF
TkFCTEUoKSBtYWNyb3MuIERlZmluZSB0aGUgbWFjcm9zIHRvIGJlIG9uZSBvZiB0aGUgZm9sbG93
aW5nIHZhbHVlczoKLSAqICAtICIwIiBkaXNhYmxlcyB0aGUgZmVhdHVyZSBieSBkZWZhdWx0LiBU
aGUgZmVhdHVyZSBjYW4gc3RpbGwgYmUgZW5hYmxlZCBmb3IgYSBzcGVjaWZpYyBwb3J0IG9yIGVu
dmlyb25tZW50LgotICogIC0gIjEiIGVuYWJsZXMgdGhlIGZlYXR1cmUgYnkgZGVmYXVsdC4gVGhl
IGZlYXR1cmUgY2FuIHN0aWxsIGJlIGRpc2FibGVkIGZvciBhIHNwZWNpZmljIHBvcnQgb3IgZW52
aXJvbm1lbnQuCi0gKgotICogVGhlIGZlYXR1cmUgZGVmYXVsdHMgaW4gdGhpcyBmaWxlIGFyZSBv
bmx5IHRha2VuIGludG8gYWNjb3VudCBpZiB0aGUgKHBvcnQgc3BlY2lmaWMpIGJ1aWxkIHN5c3Rl
bQotICogaGFzIG5vdCBlbmFibGVkIG9yIGRpc2FibGVkIGEgcGFydGljdWxhciBmZWF0dXJlLgot
ICoKLSAqIFVzZSB0aGlzIGZpbGUgdG8gZGVmaW5lIEVOQUJMRSgpIG1hY3JvcyBvbmx5LiBEbyBu
b3QgdXNlIHRoaXMgZmlsZSB0byBkZWZpbmUgVVNFKCkgb3IgbWFjcm9zICEKLSAqCi0gKiBPbmx5
IGRlZmluZSBhIG1hY3JvIGlmIGl0IHdhcyBub3QgZGVmaW5lZCBiZWZvcmUgLSBhbHdheXMgY2hl
Y2sgZm9yICFkZWZpbmVkIGZpcnN0LgotICoKLSAqIEtlZXAgdGhlIGZpbGUgc29ydGVkIGJ5IHRo
ZSBuYW1lIG9mIHRoZSBkZWZpbmVzLiBBcyBhbiBleGNlcHRpb24geW91IGNhbiBjaGFuZ2UgdGhl
IG9yZGVyCi0gKiB0byBhbGxvdyBpbnRlcmRlcGVuZGVuY2llcyBiZXR3ZWVuIHRoZSBkZWZhdWx0
IHZhbHVlcy4KLSAqCi0gKiBCZWxvdyBhcmUgYSBmZXcgcG90ZW50aWFsIGNvbW1hbmRzIHRvIHRh
a2UgYWR2YW50YWdlIG9mIHRoaXMgZmlsZSBydW5uaW5nIGZyb20gdGhlIFNvdXJjZS9XVEYgZGly
ZWN0b3J5Ci0gKgotICogR2V0IHRoZSBsaXN0IG9mIGZlYXR1cmUgZGVmaW5lczogZ3JlcCAtbyAi
RU5BQkxFX1woXHdcK1wpIiB3dGYvUGxhdGZvcm1FbmFibGUuaCB8IHNvcnQgfCB1bmlxCi0gKiBH
ZXQgdGhlIGxpc3Qgb2YgZmVhdHVyZXMgZW5hYmxlZCBieSBkZWZhdWx0IGZvciBhIFBMQVRGT1JN
KFhYWCk6IGdjYyAtRSAtZE0gLUkuIC1EV1RGX1BMQVRGT1JNX1hYWCAid3RmL1BsYXRmb3JtLmgi
IHwgZ3JlcCAiRU5BQkxFX1x3XCsgMSIgfCBjdXQgLWQnICcgLWYyIHwgc29ydAotICovCi0KLQot
LyogRklYTUU6IFRoaXMgc2hvdWxkIGJlIHJlbmFtZWQgdG8gRU5BQkxFX0FTU0VSVFMgZm9yIGNv
bnNpc3RlbmN5IGFuZCBzbyBpdCBjYW4gYmUgdXNlZCBhcyBFTkFCTEUoQVNTRVJUUykuICovCi0v
KiBBU1NFUlRfRU5BQkxFRCBzaG91bGQgYmUgdHJ1ZSBpZiB3ZSB3YW50IHRoZSBjdXJyZW50IGNv
bXBpbGF0aW9uIHVuaXQgdG8KLSAgIGRvIGRlYnVnIGFzc2VydGlvbiBjaGVja3MgdW5jb25kaXRp
b25hbGx5IChlLmcuIHRyZWF0IGEgZGVidWcgQVNTRVJUCi0gICBsaWtlIGEgUkVMRUFTRV9BU1NF
UlQuCi0qLwotI2lmbmRlZiBBU1NFUlRfRU5BQkxFRAotI2lmZGVmIE5ERUJVRwotI2RlZmluZSBB
U1NFUlRfRU5BQkxFRCAwCi0jZWxzZQotI2RlZmluZSBBU1NFUlRfRU5BQkxFRCAxCi0jZW5kaWYK
LSNlbmRpZgotCi0vKiA9PT09IFBsYXRmb3JtIGFkZGl0aW9uczogYWRkaXRpb25zIHRvIFBsYXRm
b3JtRW5hYmxlLmggZnJvbSBvdXRzaWRlIHRoZSBtYWluIHJlcG9zaXRvcnkgPT09PSAqLwotCi0j
aWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykgJiYgX19oYXNfaW5jbHVkZSg8V2ViS2l0QWRkaXRp
b25zL0FkZGl0aW9uYWxGZWF0dXJlRGVmaW5lcy5oPikKLSNpbmNsdWRlIDxXZWJLaXRBZGRpdGlv
bnMvQWRkaXRpb25hbEZlYXR1cmVEZWZpbmVzLmg+Ci0jZW5kaWYKLQotLyogRklYTUU6IE1vdmUg
b3V0IHRoZSBQTEFURk9STSBzcGVjaWZpYyBydWxlcyBpbnRvIHBsYXRmb3JtIHNwZWNpZmljIGZp
bGVzLiAqLwotCi0vKiAtLS0tLS0tLS0gQXBwbGUgaU9TIChidXQgbm90IG1hY09TKSBwb3J0IC0t
LS0tLS0tLSAqLwotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0KLSNpZiAhZGVmaW5lZChFTkFC
TEVfQUlSUExBWV9QSUNLRVIpCi0jaWYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQotI2RlZmluZSBF
TkFCTEVfQUlSUExBWV9QSUNLRVIgMQotI2VuZGlmCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVO
QUJMRV9BUFBMRV9QQVlfUkVNT1RFX1VJKQotI2lmICFQTEFURk9STShBUFBMRVRWKSAmJiAhUExB
VEZPUk0oTUFDQ0FUQUxZU1QpICYmICFQTEFURk9STShXQVRDSE9TKQotI2RlZmluZSBFTkFCTEVf
QVBQTEVfUEFZX1JFTU9URV9VSSAxCi0jZW5kaWYKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5B
QkxFX0NPTlRFTlRfRVhURU5TSU9OUykKLSNkZWZpbmUgRU5BQkxFX0NPTlRFTlRfRVhURU5TSU9O
UyAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9DT05URVhUX01FTlVTKQotI2RlZmlu
ZSBFTkFCTEVfQ09OVEVYVF9NRU5VUyAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9D
T05URVhUX01FTlVfRVZFTlQpCi0jaWYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQotI2RlZmluZSBF
TkFCTEVfQ09OVEVYVF9NRU5VX0VWRU5UIDAKLSNlbmRpZgotI2VuZGlmCi0KLSNpZiAhZGVmaW5l
ZChFTkFCTEVfQ1VTVE9NX0NVUlNPUl9TVVBQT1JUKQotI2RlZmluZSBFTkFCTEVfQ1VTVE9NX0NV
UlNPUl9TVVBQT1JUIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0RSQUdfU1VQUE9S
VCkKLSNkZWZpbmUgRU5BQkxFX0RSQUdfU1VQUE9SVCAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVk
KEVOQUJMRV9HRU9MT0NBVElPTikKLSNkZWZpbmUgRU5BQkxFX0dFT0xPQ0FUSU9OIDEKLSNlbmRp
ZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0lOU1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hFUlMp
Ci0jZGVmaW5lIEVOQUJMRV9JTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENIRVJTIDEKLSNlbmRp
ZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0lOU1BFQ1RPUl9URUxFTUVUUlkpCi0jZGVmaW5lIEVO
QUJMRV9JTlNQRUNUT1JfVEVMRU1FVFJZIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxF
X0xFVFRFUlBSRVNTKQotI2RlZmluZSBFTkFCTEVfTEVUVEVSUFJFU1MgMQotI2VuZGlmCi0KLSNp
ZiAhZGVmaW5lZChFTkFCTEVfQVVUT0NPUlJFQ1QpCi0jZGVmaW5lIEVOQUJMRV9BVVRPQ09SUkVD
VCAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9BVVRPQ0FQSVRBTElaRSkKLSNkZWZp
bmUgRU5BQkxFX0FVVE9DQVBJVEFMSVpFIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxF
X0lPU19HRVNUVVJFX0VWRU5UUykgJiYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKLSNkZWZpbmUg
RU5BQkxFX0lPU19HRVNUVVJFX0VWRU5UUyAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJM
RV9URVhUX0FVVE9TSVpJTkcpCi0jZGVmaW5lIEVOQUJMRV9URVhUX0FVVE9TSVpJTkcgMQotI2Vu
ZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfSU9TX1RPVUNIX0VWRU5UUykgJiYgVVNFKEFQUExF
X0lOVEVSTkFMX1NESykKLSNkZWZpbmUgRU5BQkxFX0lPU19UT1VDSF9FVkVOVFMgMQotI2VuZGlm
Ci0KLSNpZiAhZGVmaW5lZChFTkFCTEVfTUVURVJfRUxFTUVOVCkKLSNkZWZpbmUgRU5BQkxFX01F
VEVSX0VMRU1FTlQgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfTkVUU0NBUEVfUExV
R0lOX0FQSSkKLSNkZWZpbmUgRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9BUEkgMAotI2VuZGlmCi0K
LSNpZiAhZGVmaW5lZChFTkFCTEVfT1JJRU5UQVRJT05fRVZFTlRTKQotI2RlZmluZSBFTkFCTEVf
T1JJRU5UQVRJT05fRVZFTlRTIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX1BPSU5U
RVJfTE9DSykKLSNkZWZpbmUgRU5BQkxFX1BPSU5URVJfTE9DSyAwCi0jZW5kaWYKLQotI2lmICFk
ZWZpbmVkKEVOQUJMRV9SRU1PVEVfSU5TUEVDVE9SKQotI2RlZmluZSBFTkFCTEVfUkVNT1RFX0lO
U1BFQ1RPUiAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9URVhUX0NBUkVUKQotI2Rl
ZmluZSBFTkFCTEVfVEVYVF9DQVJFVCAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9U
RVhUX1NFTEVDVElPTikKLSNkZWZpbmUgRU5BQkxFX1RFWFRfU0VMRUNUSU9OIDAKLSNlbmRpZgot
Ci0vKiBGSVhNRTogUmVtb3ZlIHRoZSBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKSBjb25qdW5jdCBv
bmNlIHdlIHN1cHBvcnQgdG91Y2ggZXZlbnRzIHdoZW4gYnVpbGRpbmcgYWdhaW5zdAotdGhlIHB1
YmxpYyBpT1MgU0RLLiBTZWUgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE3OTE2Nz4uICovCi0jaWYg
IWRlZmluZWQoRU5BQkxFX1RPVUNIX0VWRU5UUykgJiYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykK
LSNkZWZpbmUgRU5BQkxFX1RPVUNIX0VWRU5UUyAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVO
QUJMRV9XRUJfQVJDSElWRSkKLSNkZWZpbmUgRU5BQkxFX1dFQl9BUkNISVZFIDEKLSNlbmRpZgot
Ci0jaWYgIWRlZmluZWQoRU5BQkxFX1dFQkdMKQotI2RlZmluZSBFTkFCTEVfV0VCR0wgMQotI2Vu
ZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfUFJJTUFSWV9TTkFQU0hPVFRFRF9QTFVHSU5fSEVV
UklTVElDKQotI2RlZmluZSBFTkFCTEVfUFJJTUFSWV9TTkFQU0hPVFRFRF9QTFVHSU5fSEVVUklT
VElDIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0RPV05MT0FEX0FUVFJJQlVURSkK
LSNkZWZpbmUgRU5BQkxFX0RPV05MT0FEX0FUVFJJQlVURSAxCi0jZW5kaWYKLQotI2lmICFkZWZp
bmVkKEVOQUJMRV9XS1BERlZJRVcpICYmIFBMQVRGT1JNKElPUykKLSNkZWZpbmUgRU5BQkxFX1dL
UERGVklFVyAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9NRURJQV9TT1VSQ0UpCi0j
ZGVmaW5lIEVOQUJMRV9NRURJQV9TT1VSQ0UgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFC
TEVfUFJFVklFV19DT05WRVJURVIpICYmIFBMQVRGT1JNKElPUykKLSNkZWZpbmUgRU5BQkxFX1BS
RVZJRVdfQ09OVkVSVEVSIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX01FVEFfVklF
V1BPUlQpCi0jZGVmaW5lIEVOQUJMRV9NRVRBX1ZJRVdQT1JUIDEKKyNpZiAhKFBMQVRGT1JNKFdJ
TikgJiYgIVBMQVRGT1JNKFdJTl9DQUlSTykpCisjZXJyb3IgIlRoaXMgZmlsZSBzaG91bGQgb25s
eSBiZSBpbmNsdWRlZCB3aGVuIGJ1aWxkaW5nIEFwcGxlJ3MgV2luZG93cyBwb3J0LiIKICNlbmRp
ZgogCi0jZW5kaWYgLyogUExBVEZPUk0oSU9TX0ZBTUlMWSkgKi8KLQotLyogLS0tLS0tLS0tIEFw
cGxlIHdhdGNoT1MgcG9ydCAtLS0tLS0tLS0gKi8KLSNpZiBQTEFURk9STShXQVRDSE9TKQotCi0j
ZW5kaWYgLyogUExBVEZPUk0oV0FUQ0hPUykgKi8KLQotLyogLS0tLS0tLS0tIEFwcGxlIG1hY09T
IHBvcnQgKG5vdCBpT1MpIC0tLS0tLS0tLSAqLwotI2lmIFBMQVRGT1JNKE1BQykKLQotI2lmICFk
ZWZpbmVkKEVOQUJMRV9DT05URU5UX0VYVEVOU0lPTlMpCi0jZGVmaW5lIEVOQUJMRV9DT05URU5U
X0VYVEVOU0lPTlMgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfRlVMTFNDUkVFTl9B
UEkpCi0jZGVmaW5lIEVOQUJMRV9GVUxMU0NSRUVOX0FQSSAxCi0jZW5kaWYKLQotI2lmICFkZWZp
bmVkKEVOQUJMRV9SRU1PVEVfSU5TUEVDVE9SKQotI2RlZmluZSBFTkFCTEVfUkVNT1RFX0lOU1BF
Q1RPUiAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9JTlNQRUNUT1JfQUxURVJOQVRF
X0RJU1BBVENIRVJTKQotI2RlZmluZSBFTkFCTEVfSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRD
SEVSUyAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9JTlNQRUNUT1JfVEVMRU1FVFJZ
KQotI2RlZmluZSBFTkFCTEVfSU5TUEVDVE9SX1RFTEVNRVRSWSAxCi0jZW5kaWYKLQotI2lmICFk
ZWZpbmVkKEVOQUJMRV9TTU9PVEhfU0NST0xMSU5HKQotI2RlZmluZSBFTkFCTEVfU01PT1RIX1ND
Uk9MTElORyAxCi0jZW5kaWYKLQotI2lmIEVOQUJMRShWSURFTykKLSNpZiAhZGVmaW5lZChFTkFC
TEVfVklERU9fVFJBQ0spCi0jZGVmaW5lIEVOQUJMRV9WSURFT19UUkFDSyAxCi0jZW5kaWYKLSNl
bmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX1dFQl9BUkNISVZFKQotI2RlZmluZSBFTkFCTEVf
V0VCX0FSQ0hJVkUgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfV0VCX0FVRElPKQot
I2RlZmluZSBFTkFCTEVfV0VCX0FVRElPIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxF
X0NVUlNPUl9WSVNJQklMSVRZKQotI2RlZmluZSBFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkgMQot
I2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfUFJJTUFSWV9TTkFQU0hPVFRFRF9QTFVHSU5f
SEVVUklTVElDKQotI2RlZmluZSBFTkFCTEVfUFJJTUFSWV9TTkFQU0hPVFRFRF9QTFVHSU5fSEVV
UklTVElDIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX01BQ19HRVNUVVJFX0VWRU5U
UykgJiYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKLSNkZWZpbmUgRU5BQkxFX01BQ19HRVNUVVJF
X0VWRU5UUyAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJQUk9DRVNTX05TUlVO
TE9PUCkKLSNkZWZpbmUgRU5BQkxFX1dFQlBST0NFU1NfTlNSVU5MT09QIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNDAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJM
RV9XRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykKLSNkZWZpbmUgRU5BQkxFX1dFQlBS
T0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HIEVOQUJMRV9XRUJQUk9DRVNTX05TUlVOTE9PUAot
I2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfTUVESUFfU09VUkNFKQotI2RlZmluZSBFTkFC
TEVfTUVESUFfU09VUkNFIDEKLSNlbmRpZgotCi0jZW5kaWYgLyogUExBVEZPUk0oTUFDKSAqLwot
Ci0vKiAtLS0tLS0tLS0gQXBwbGUgQ29jb2EgcGxhdGZvcm1zIC0tLS0tLS0tLSAqLwotCi0jaWYg
UExBVEZPUk0oQ09DT0EpCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfTEVHQUNZX0VOQ1JZUFRFRF9N
RURJQSkKLSNpZiBQTEFURk9STShNQUNDQVRBTFlTVCkKLSNkZWZpbmUgRU5BQkxFX0xFR0FDWV9F
TkNSWVBURURfTUVESUEgMAotI2Vsc2UKLSNkZWZpbmUgRU5BQkxFX0xFR0FDWV9FTkNSWVBURURf
TUVESUEgMQotI2VuZGlmCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9GSUxFX1JFUExB
Q0VNRU5UKQotI2RlZmluZSBFTkFCTEVfRklMRV9SRVBMQUNFTUVOVCAxCi0jZW5kaWYKLQotI2lm
ICFkZWZpbmVkKEVOQUJMRV9QQVlNRU5UX1JFUVVFU1QpCi0jZGVmaW5lIEVOQUJMRV9QQVlNRU5U
X1JFUVVFU1QgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfQVNZTkNfU0NST0xMSU5H
KQotI2RlZmluZSBFTkFCTEVfQVNZTkNfU0NST0xMSU5HIDEKLSNlbmRpZgotCi0jaWYgIWRlZmlu
ZWQoRU5BQkxFX1VJX1NJREVfQ09NUE9TSVRJTkcpCi0jZGVmaW5lIEVOQUJMRV9VSV9TSURFX0NP
TVBPU0lUSU5HIDEKLSNlbmRpZgotCi0jZW5kaWYgLyogUExBVEZPUk0oQ09DT0EpICovCi0KLSNp
ZiAhUExBVEZPUk0oQ09DT0EpCi0KLSNpZiAhZGVmaW5lZChKU0NfT0JKQ19BUElfRU5BQkxFRCkK
LSNkZWZpbmUgSlNDX09CSkNfQVBJX0VOQUJMRUQgMAotI2VuZGlmCi0KLSNlbmRpZiAvKiAhUExB
VEZPUk0oQ09DT0EpICovCi0KIAogLyogLS0tLS0tLS0tIEFwcGxlIFdpbmRvd3MgcG9ydCAtLS0t
LS0tLS0gKi8KLSNpZiBQTEFURk9STShXSU4pICYmICFQTEFURk9STShXSU5fQ0FJUk8pCiAKICNp
ZiAhZGVmaW5lZChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpCiAjZGVmaW5lIEVOQUJMRV9GVUxMU0NS
RUVOX0FQSSAxCkBAIC0zNDcsNzA5ICs1NCwzIEBAIHRoZSBwdWJsaWMgaU9TIFNESy4gU2VlIDxo
dHRwczovL3dlYmtpdC4KICNpZiAhZGVmaW5lZChFTkFCTEVfR0VPTE9DQVRJT04pCiAjZGVmaW5l
IEVOQUJMRV9HRU9MT0NBVElPTiAxCiAjZW5kaWYKLQotI2VuZGlmIC8qIFBMQVRGT1JNKFdJTikg
JiYgIVBMQVRGT1JNKFdJTl9DQUlSTykgKi8KLQotLyogLS0tLS0tLS0tIFdpbmRvd3MgQ0FJUk8g
cG9ydCAtLS0tLS0tLS0gKi8KLS8qIFBMQVRGT1JNKFdJTl9DQUlSTykgaXMgYSBzcGVjaWFsaXph
dGlvbiBvZiBQTEFURk9STShXSU4pLiAqLwotLyogUExBVEZPUk0oV0lOKSBpcyBhbHdheXMgZW5h
YmxlZCB3aGVuIFBMQVRGT1JNKFdJTl9DQUlSTykgaXMgZW5hYmxlZC4gKi8KLSNpZiBQTEFURk9S
TShXSU5fQ0FJUk8pCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfV0VCX0FSQ0hJVkUpCi0jZGVmaW5l
IEVOQUJMRV9XRUJfQVJDSElWRSAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJH
TCkKLSNkZWZpbmUgRU5BQkxFX1dFQkdMIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxF
X0dFT0xPQ0FUSU9OKQotI2RlZmluZSBFTkFCTEVfR0VPTE9DQVRJT04gMQotI2VuZGlmCi0KLSNl
bmRpZiAvKiBQTEFURk9STShXSU5fQ0FJUk8pICovCi0KLS8qIEVOQUJMRSBtYWNybyBkZWZhdWx0
cyBmb3IgV2ViQ29yZSAqLwotLyogRG8gbm90IHVzZSBQTEFURk9STSgpIHRlc3RzIGluIHRoaXMg
c2VjdGlvbiAhICovCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfM0RfVFJBTlNGT1JNUykKLSNkZWZp
bmUgRU5BQkxFXzNEX1RSQU5TRk9STVMgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVf
QUNDRVNTSUJJTElUWSkKLSNkZWZpbmUgRU5BQkxFX0FDQ0VTU0lCSUxJVFkgMQotI2VuZGlmCi0K
LSNpZiAhZGVmaW5lZChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKQotI2RlZmluZSBFTkFC
TEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxF
X09WRVJGTE9XX1NDUk9MTElOR19UT1VDSCkKLSNkZWZpbmUgRU5BQkxFX09WRVJGTE9XX1NDUk9M
TElOR19UT1VDSCAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9BUE5HKQotI2RlZmlu
ZSBFTkFCTEVfQVBORyAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9DSEFOTkVMX01F
U1NBR0lORykKLSNkZWZpbmUgRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HIDEKLSNlbmRpZgotCi0j
aWYgIWRlZmluZWQoRU5BQkxFX0NPTlRFTlRfRVhURU5TSU9OUykKLSNkZWZpbmUgRU5BQkxFX0NP
TlRFTlRfRVhURU5TSU9OUyAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9DT05URVhU
X01FTlVTKQotI2RlZmluZSBFTkFCTEVfQ09OVEVYVF9NRU5VUyAxCi0jZW5kaWYKLQotI2lmICFk
ZWZpbmVkKEVOQUJMRV9DT05URVhUX01FTlVfRVZFTlQpCi0jZGVmaW5lIEVOQUJMRV9DT05URVhU
X01FTlVfRVZFTlQgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTM19URVhUKQot
I2RlZmluZSBFTkFCTEVfQ1NTM19URVhUIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxF
X0NTU19CT1hfREVDT1JBVElPTl9CUkVBSykKLSNkZWZpbmUgRU5BQkxFX0NTU19CT1hfREVDT1JB
VElPTl9CUkVBSyAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9DU1NfREVWSUNFX0FE
QVBUQVRJT04pCi0jZGVmaW5lIEVOQUJMRV9DU1NfREVWSUNFX0FEQVBUQVRJT04gMAotI2VuZGlm
Ci0KLSNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKQotI2RlZmluZSBFTkFCTEVf
Q1NTX0NPTVBPU0lUSU5HIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0NTU19JTUFH
RV9SRVNPTFVUSU9OKQotI2RlZmluZSBFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04gMAotI2Vu
ZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTX0NPTklDX0dSQURJRU5UUykKLSNkZWZpbmUg
RU5BQkxFX0NTU19DT05JQ19HUkFESUVOVFMgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFC
TEVfQ1VTVE9NX0NVUlNPUl9TVVBQT1JUKQotI2RlZmluZSBFTkFCTEVfQ1VTVE9NX0NVUlNPUl9T
VVBQT1JUIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0NVU1RPTV9TQ0hFTUVfSEFO
RExFUikKLSNkZWZpbmUgRU5BQkxFX0NVU1RPTV9TQ0hFTUVfSEFORExFUiAwCi0jZW5kaWYKLQot
I2lmICFkZWZpbmVkKEVOQUJMRV9EQVJLX01PREVfQ1NTKQotI2RlZmluZSBFTkFCTEVfREFSS19N
T0RFX0NTUyAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9EQVRBTElTVF9FTEVNRU5U
KQotI2RlZmluZSBFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCAwCi0jZW5kaWYKLQotI2lmICFkZWZp
bmVkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pCi0jZGVmaW5lIEVOQUJMRV9ERVZJQ0VfT1JJ
RU5UQVRJT04gMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfRE9XTkxPQURfQVRUUklC
VVRFKQotI2RlZmluZSBFTkFCTEVfRE9XTkxPQURfQVRUUklCVVRFIDEKLSNlbmRpZgotCi0jaWYg
IWRlZmluZWQoRU5BQkxFX0RSQUdfU1VQUE9SVCkKLSNkZWZpbmUgRU5BQkxFX0RSQUdfU1VQUE9S
VCAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9FTkNSWVBURURfTUVESUEpCi0jZGVm
aW5lIEVOQUJMRV9FTkNSWVBURURfTUVESUEgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFC
TEVfRklMVEVSU19MRVZFTF8yKQotI2RlZmluZSBFTkFCTEVfRklMVEVSU19MRVZFTF8yIDAKLSNl
bmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0ZUUERJUikKLSNkZWZpbmUgRU5BQkxFX0ZUUERJ
UiAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkKLSNkZWZp
bmUgRU5BQkxFX0ZVTExTQ1JFRU5fQVBJIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxF
X0dBTUVQQUQpCi0jZGVmaW5lIEVOQUJMRV9HQU1FUEFEIDAKLSNlbmRpZgotCi0jaWYgIWRlZmlu
ZWQoRU5BQkxFX0dFT0xPQ0FUSU9OKQotI2RlZmluZSBFTkFCTEVfR0VPTE9DQVRJT04gMAotI2Vu
ZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkKLSNkZWZpbmUgRU5B
QkxFX0lOREVYRURfREFUQUJBU0UgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfSU5E
RVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJTKQotI2RlZmluZSBFTkFCTEVfSU5ERVhFRF9EQVRBQkFT
RV9JTl9XT1JLRVJTIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0lOUFVUX1RZUEVf
Q09MT1IpCi0jZGVmaW5lIEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SIDEKLSNlbmRpZgotCi0jaWYg
IWRlZmluZWQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSkKLSNkZWZpbmUgRU5BQkxFX0lOUFVUX1RZ
UEVfREFURSAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVU
SU1FX0lOQ09NUExFVEUpCi0jZGVmaW5lIEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09N
UExFVEUgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElN
RUxPQ0FMKQotI2RlZmluZSBFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMIDAKLSNlbmRp
ZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpCi0jZGVmaW5lIEVOQUJM
RV9JTlBVVF9UWVBFX01PTlRIIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0lOUFVU
X1RZUEVfVElNRSkKLSNkZWZpbmUgRU5BQkxFX0lOUFVUX1RZUEVfVElNRSAwCi0jZW5kaWYKLQot
I2lmICFkZWZpbmVkKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspCi0jZGVmaW5lIEVOQUJMRV9JTlBV
VF9UWVBFX1dFRUsgMAotI2VuZGlmCi0KLSNpZiBFTkFCTEUoSU5QVVRfVFlQRV9EQVRFKSB8fCBF
TkFCTEUoSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKSB8fCBFTkFCTEUoSU5QVVRfVFlQ
RV9EQVRFVElNRUxPQ0FMKSB8fCBFTkFCTEUoSU5QVVRfVFlQRV9NT05USCkgfHwgRU5BQkxFKElO
UFVUX1RZUEVfVElNRSkgfHwgRU5BQkxFKElOUFVUX1RZUEVfV0VFSykKLSNpZiAhZGVmaW5lZChF
TkFCTEVfREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKLSNkZWZpbmUgRU5BQkxFX0RBVEVfQU5E
X1RJTUVfSU5QVVRfVFlQRVMgMQotI2VuZGlmCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJM
RV9JTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENIRVJTKQotI2RlZmluZSBFTkFCTEVfSU5TUEVD
VE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUyAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJM
RV9JTlNQRUNUT1JfVEVMRU1FVFJZKQotI2RlZmluZSBFTkFCTEVfSU5TUEVDVE9SX1RFTEVNRVRS
WSAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9JTlRMKQotI2RlZmluZSBFTkFCTEVf
SU5UTCAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9MQVlPVVRfRk9STUFUVElOR19D
T05URVhUKQotI2RlZmluZSBFTkFCTEVfTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCAwCi0jZW5k
aWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUykKLSNk
ZWZpbmUgRU5BQkxFX0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJWEVTIDAKLSNlbmRpZgotCi0jaWYg
IWRlZmluZWQoRU5BQkxFX0xFVFRFUlBSRVNTKQotI2RlZmluZSBFTkFCTEVfTEVUVEVSUFJFU1Mg
MAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfTUFUSE1MKQotI2RlZmluZSBFTkFCTEVf
TUFUSE1MIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX01FRElBX0NBUFRVUkUpCi0j
ZGVmaW5lIEVOQUJMRV9NRURJQV9DQVBUVVJFIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5B
QkxFX01FRElBX0NPTlRST0xTX1NDUklQVCkKLSNkZWZpbmUgRU5BQkxFX01FRElBX0NPTlRST0xT
X1NDUklQVCAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9NRURJQV9TT1VSQ0UpCi0j
ZGVmaW5lIEVOQUJMRV9NRURJQV9TT1VSQ0UgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFC
TEVfTUVESUFfU1RBVElTVElDUykKLSNkZWZpbmUgRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MgMAot
I2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfTUVESUFfU1RSRUFNKQotI2RlZmluZSBFTkFC
TEVfTUVESUFfU1RSRUFNIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX01FVEVSX0VM
RU1FTlQpCi0jZGVmaW5lIEVOQUJMRV9NRVRFUl9FTEVNRU5UIDEKLSNlbmRpZgotCi0jaWYgIWRl
ZmluZWQoRU5BQkxFX01IVE1MKQotI2RlZmluZSBFTkFCTEVfTUhUTUwgMAotI2VuZGlmCi0KLSNp
ZiAhZGVmaW5lZChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFKQotI2RlZmluZSBFTkFCTEVfTU9V
U0VfQ1VSU09SX1NDQUxFIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX01PVVNFX0ZP
UkNFX0VWRU5UUykKLSNkZWZpbmUgRU5BQkxFX01PVVNFX0ZPUkNFX0VWRU5UUyAxCi0jZW5kaWYK
LQotI2lmICFkZWZpbmVkKEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJKQotI2RlZmluZSBFTkFC
TEVfTkVUU0NBUEVfUExVR0lOX0FQSSAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9O
RVRTQ0FQRV9QTFVHSU5fTUVUQURBVEFfQ0FDSEUpCi0jZGVmaW5lIEVOQUJMRV9ORVRTQ0FQRV9Q
TFVHSU5fTUVUQURBVEFfQ0FDSEUgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfTk9U
SUZJQ0FUSU9OUykKLSNkZWZpbmUgRU5BQkxFX05PVElGSUNBVElPTlMgMAotI2VuZGlmCi0KLSNp
ZiAhZGVmaW5lZChFTkFCTEVfT0ZGU0NSRUVOX0NBTlZBUykKLSNkZWZpbmUgRU5BQkxFX09GRlND
UkVFTl9DQU5WQVMgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfT1JJRU5UQVRJT05f
RVZFTlRTKQotI2RlZmluZSBFTkFCTEVfT1JJRU5UQVRJT05fRVZFTlRTIDAKLSNlbmRpZgotCi0j
aWYgT1MoV0lORE9XUykKLSNpZiAhZGVmaW5lZChFTkFCTEVfUEFOX1NDUk9MTElORykKLSNkZWZp
bmUgRU5BQkxFX1BBTl9TQ1JPTExJTkcgMQotI2VuZGlmCi0jZW5kaWYKLQotI2lmICFkZWZpbmVk
KEVOQUJMRV9QQVlNRU5UX1JFUVVFU1QpCi0jZGVmaW5lIEVOQUJMRV9QQVlNRU5UX1JFUVVFU1Qg
MAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfUE9JTlRFUl9MT0NLKQotI2RlZmluZSBF
TkFCTEVfUE9JTlRFUl9MT0NLIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX1FVT1RB
KQotI2RlZmluZSBFTkFCTEVfUVVPVEEgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVf
UkVNT1RFX0lOU1BFQ1RPUikKLSNkZWZpbmUgRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IgMAotI2Vu
ZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfUlVCQkVSX0JBTkRJTkcpCi0jZGVmaW5lIEVOQUJM
RV9SVUJCRVJfQkFORElORyAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9TRUNVUklU
WV9BU1NFUlRJT05TKQotLyogRW5hYmxlIHNlY3VyaXR5IGFzc2VydGlvbnMgb24gYWxsIEFTQU4g
YnVpbGRzIGFuZCBkZWJ1ZyBidWlsZHMuICovCi0jaWYgQVNBTl9FTkFCTEVEIHx8ICFkZWZpbmVk
KE5ERUJVRykKLSNkZWZpbmUgRU5BQkxFX1NFQ1VSSVRZX0FTU0VSVElPTlMgMQotI2VuZGlmCi0j
ZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9TTU9PVEhfU0NST0xMSU5HKQotI2RlZmluZSBF
TkFCTEVfU01PT1RIX1NDUk9MTElORyAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9T
UEVFQ0hfU1lOVEhFU0lTKQotI2RlZmluZSBFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUyAwCi0jZW5k
aWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9TUEVMTENIRUNLKQotI2RlZmluZSBFTkFCTEVfU1BF
TExDSEVDSyAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9TVFJFQU1TX0FQSSkKLSNk
ZWZpbmUgRU5BQkxFX1NUUkVBTVNfQVBJIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxF
X1NWR19GT05UUykKLSNkZWZpbmUgRU5BQkxFX1NWR19GT05UUyAxCi0jZW5kaWYKLQotI2lmICFk
ZWZpbmVkKEVOQUJMRV9URVhUX0NBUkVUKQotI2RlZmluZSBFTkFCTEVfVEVYVF9DQVJFVCAxCi0j
ZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9URVhUX1NFTEVDVElPTikKLSNkZWZpbmUgRU5B
QkxFX1RFWFRfU0VMRUNUSU9OIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0FTWU5D
X1NDUk9MTElORykKLSNkZWZpbmUgRU5BQkxFX0FTWU5DX1NDUk9MTElORyAwCi0jZW5kaWYKLQot
I2lmICFkZWZpbmVkKEVOQUJMRV9UT1VDSF9FVkVOVFMpCi0jZGVmaW5lIEVOQUJMRV9UT1VDSF9F
VkVOVFMgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfVklERU8pCi0jZGVmaW5lIEVO
QUJMRV9WSURFTyAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9WSURFT19UUkFDSykK
LSNkZWZpbmUgRU5BQkxFX1ZJREVPX1RSQUNLIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5B
QkxFX0RBVEFDVUVfVkFMVUUpCi0jZGVmaW5lIEVOQUJMRV9EQVRBQ1VFX1ZBTFVFIDAKLSNlbmRp
ZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX1dFQkdMKQotI2RlZmluZSBFTkFCTEVfV0VCR0wgMAot
I2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfR1JBUEhJQ1NfQ09OVEVYVF9HTCkKLSNkZWZp
bmUgRU5BQkxFX0dSQVBISUNTX0NPTlRFWFRfR0wgRU5BQkxFX1dFQkdMCi0jZW5kaWYKLQotI2lm
ICFkZWZpbmVkKEVOQUJMRV9XRUJfQVJDSElWRSkKLSNkZWZpbmUgRU5BQkxFX1dFQl9BUkNISVZF
IDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX1dFQl9BVURJTykKLSNkZWZpbmUgRU5B
QkxFX1dFQl9BVURJTyAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9YU0xUKQotI2Rl
ZmluZSBFTkFCTEVfWFNMVCAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9EQVRBX0lO
VEVSQUNUSU9OKQotI2RlZmluZSBFTkFCTEVfREFUQV9JTlRFUkFDVElPTiAwCi0jZW5kaWYKLQot
I2lmICFkZWZpbmVkKEVOQUJMRV9TRVJWSUNFX1dPUktFUikKLSNkZWZpbmUgRU5BQkxFX1NFUlZJ
Q0VfV09SS0VSIDEKLSNlbmRpZgotCi0KLS8qIEpJVCBGZWF0dXJlcyAqLwotCi0vKiBUaGUgSklU
IGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBvbiBhbGwgeDg2LTY0ICYgQVJNNjQgcGxhdGZvcm1zLiAq
LwotI2lmICFkZWZpbmVkKEVOQUJMRV9KSVQpICYmIChDUFUoWDg2XzY0KSB8fCBDUFUoQVJNNjQp
KSAmJiAhQ1BVKEFQUExFX0FSTVY3SykKLSNkZWZpbmUgRU5BQkxFX0pJVCAxCi0jZW5kaWYKLQot
I2lmIFVTRShKU1ZBTFVFMzJfNjQpCi0jaWYgKENQVShBUk1fVEhVTUIyKSB8fCBDUFUoTUlQUykp
ICYmIE9TKExJTlVYKQotLyogT24gQVJNdjcgYW5kIE1JUFMgb24gTGludXggdGhlIEpJVCBpcyBl
bmFibGVkIHVubGVzcyBleHBsaWNpdGx5IGRpc2FibGVkLiAqLwotI2lmICFkZWZpbmVkKEVOQUJM
RV9KSVQpCi0jZGVmaW5lIEVOQUJMRV9KSVQgMQotI2VuZGlmCi0jZWxzZQotLyogRGlzYWJsZSBK
SVQgYW5kIGZvcmNlIENfTE9PUCBvbiBhbGwgb3RoZXIgMzJiaXQgYXJjaGl0ZWN0dXJlcy4gKi8K
LSN1bmRlZiBFTkFCTEVfSklUCi0jZGVmaW5lIEVOQUJMRV9KSVQgMAotI3VuZGVmIEVOQUJMRV9D
X0xPT1AKLSNkZWZpbmUgRU5BQkxFX0NfTE9PUCAxCi0jZW5kaWYKLSNlbmRpZgotCi0jaWYgIWRl
ZmluZWQoRU5BQkxFX0NfTE9PUCkKLSNpZiBFTkFCTEUoSklUKSB8fCBDUFUoWDg2XzY0KSB8fCAo
Q1BVKEFSTTY0KSAmJiAhZGVmaW5lZChfX0lMUDMyX18pKQotI2RlZmluZSBFTkFCTEVfQ19MT09Q
IDAKLSNlbHNlCi0jZGVmaW5lIEVOQUJMRV9DX0xPT1AgMQotI2VuZGlmCi0jZW5kaWYKLQotLyog
RklYTUU6IFRoaXMgc2hvdWxkIGJlIHR1cm5lZCBpbnRvIGFuICNlcnJvciBpbnZhcmlhbnQgKi8K
LS8qIFRoZSBGVEwgKmRvZXMgbm90KiB3b3JrIG9uIDMyLWJpdCBwbGF0Zm9ybXMuIERpc2FibGUg
aXQgZXZlbiBpZiBzb21lb25lIGFza2VkIHVzIHRvIGVuYWJsZSBpdC4gKi8KLSNpZiBVU0UoSlNW
QUxVRTMyXzY0KQotI3VuZGVmIEVOQUJMRV9GVExfSklUCi0jZGVmaW5lIEVOQUJMRV9GVExfSklU
IDAKLSNlbmRpZgotCi0vKiBGSVhNRTogVGhpcyBzaG91bGQgYmUgdHVybmVkIGludG8gYW4gI2Vy
cm9yIGludmFyaWFudCAqLwotLyogVGhlIEZUTCBpcyBkaXNhYmxlZCBvbiB0aGUgaU9TIHNpbXVs
YXRvciwgbW9zdGx5IGZvciBzaW1wbGljaXR5LiAqLwotI2lmIFBMQVRGT1JNKElPU19GQU1JTFlf
U0lNVUxBVE9SKQotI3VuZGVmIEVOQUJMRV9GVExfSklUCi0jZGVmaW5lIEVOQUJMRV9GVExfSklU
IDAKLSNlbmRpZgotCi0vKiBJZiBwb3NzaWJsZSwgdHJ5IHRvIGVuYWJsZSBhIGRpc2Fzc2VtYmxl
ci4gVGhpcyBpcyBvcHRpb25hbC4gV2UgcHJvY2VlZCBpbiB0d28KLSAgIHN0ZXBzOiBmaXJzdCB3
ZSB0cnkgdG8gZmluZCBzb21lIGRpc2Fzc2VtYmxlciB0aGF0IHdlIGNhbiB1c2UsIGFuZCB0aGVu
IHdlCi0gICBkZWNpZGUgaWYgdGhlIGhpZ2gtbGV2ZWwgZGlzYXNzZW1ibGVyIEFQSSBjYW4gYmUg
ZW5hYmxlZC4gKi8KLSNpZiAhZGVmaW5lZChFTkFCTEVfVURJUzg2KSAmJiBFTkFCTEUoSklUKSAm
JiBDUFUoWDg2XzY0KSAmJiAhVVNFKENBUFNUT05FKQotI2RlZmluZSBFTkFCTEVfVURJUzg2IDEK
LSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0FSTTY0X0RJU0FTU0VNQkxFUikgJiYgRU5B
QkxFKEpJVCkgJiYgQ1BVKEFSTTY0KSAmJiAhVVNFKENBUFNUT05FKQotI2RlZmluZSBFTkFCTEVf
QVJNNjRfRElTQVNTRU1CTEVSIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0RJU0FT
U0VNQkxFUikgJiYgKEVOQUJMRShVRElTODYpIHx8IEVOQUJMRShBUk02NF9ESVNBU1NFTUJMRVIp
IHx8IChFTkFCTEUoSklUKSAmJiBVU0UoQ0FQU1RPTkUpKSkKLSNkZWZpbmUgRU5BQkxFX0RJU0FT
U0VNQkxFUiAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9ERkdfSklUKSAmJiBFTkFC
TEUoSklUKQotCi0vKiBFbmFibGUgdGhlIERGRyBKSVQgb24gWDg2IGFuZCBYODZfNjQuICovCi0j
aWYgQ1BVKFg4Nl82NCkgJiYgKE9TKERBUldJTikgfHwgT1MoTElOVVgpIHx8IE9TKEZSRUVCU0Qp
IHx8IE9TKEhVUkQpIHx8IE9TKFdJTkRPV1MpKQotI2RlZmluZSBFTkFCTEVfREZHX0pJVCAxCi0j
ZW5kaWYKLQotLyogRW5hYmxlIHRoZSBERkcgSklUIG9uIEFSTXY3LiAgT25seSB0ZXN0ZWQgb24g
aU9TLCBMaW51eCwgYW5kIEZyZWVCU0QuICovCi0jaWYgKENQVShBUk1fVEhVTUIyKSB8fCBDUFUo
QVJNNjQpKSAmJiAoT1MoREFSV0lOKSB8fCBPUyhMSU5VWCkgfHwgT1MoRlJFRUJTRCkpCi0jZGVm
aW5lIEVOQUJMRV9ERkdfSklUIDEKLSNlbmRpZgotCi0vKiBFbmFibGUgdGhlIERGRyBKSVQgb24g
TUlQUy4gKi8KLSNpZiBDUFUoTUlQUykKLSNkZWZpbmUgRU5BQkxFX0RGR19KSVQgMQotI2VuZGlm
Ci0KLSNlbmRpZiAvKiAhZGVmaW5lZChFTkFCTEVfREZHX0pJVCkgJiYgRU5BQkxFKEpJVCkgKi8K
LQotLyogQ29uY3VycmVudCBKUyBvbmx5IHdvcmtzIG9uIDY0LWJpdCBwbGF0Zm9ybXMgYmVjYXVz
ZSBpdCByZXF1aXJlcyB0aGF0Ci0gICB2YWx1ZXMgZ2V0IHN0b3JlZCB0byBhdG9taWNhbGx5LiBU
aGlzIGlzIHRyaXZpYWxseSB0cnVlIG9uIDY0LWJpdCBwbGF0Zm9ybXMsCi0gICBidXQgbm90IHRy
dWUgYXQgYWxsIG9uIDMyLWJpdCBwbGF0Zm9ybXMgd2hlcmUgdmFsdWVzIGFyZSBjb21wb3NlZCBv
ZiB0d28KLSAgIHNlcGFyYXRlIHN1Yi12YWx1ZXMuICovCi0jaWYgRU5BQkxFKEpJVCkgJiYgVVNF
KEpTVkFMVUU2NCkKLSNkZWZpbmUgRU5BQkxFX0NPTkNVUlJFTlRfSlMgMQotI2VuZGlmCi0KLSNp
ZiAoQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTTY0KSkgJiYgSEFWRShGQVNUX1RMUykKLSNkZWZpbmUg
RU5BQkxFX0ZBU1RfVExTX0pJVCAxCi0jZW5kaWYKLQotI2lmIEVOQUJMRShKSVQpICYmIChDUFUo
WDg2KSB8fCBDUFUoWDg2XzY0KSB8fCBDUFUoQVJNX1RIVU1CMikgfHwgQ1BVKEFSTTY0KSB8fCBD
UFUoTUlQUykpCi0jZGVmaW5lIEVOQUJMRV9NQVNNX1BST0JFIDEKLSNlbmRpZgotCi0vKiBGSVhN
RTogVGhpcyBzaG91bGQgYmUgdHVybmVkIGludG8gYW4gI2Vycm9yIGludmFyaWFudCAqLwotLyog
SWYgdGhlIGJhc2VsaW5lIGppdCBpcyBub3QgYXZhaWxhYmxlLCB0aGVuIGRpc2FibGUgdXBwZXIg
dGllcnMgYXMgd2VsbC4KLSAgIFRoZSBNYWNyb0Fzc2VtYmxlcjo6cHJvYmUoKSBpcyBhbHNvIHJl
cXVpcmVkIGZvciBzdXBwb3J0aW5nIHRoZSB1cHBlciB0aWVycy4gKi8KLSNpZiAhRU5BQkxFKEpJ
VCkgfHwgIUVOQUJMRShNQVNNX1BST0JFKQotI3VuZGVmIEVOQUJMRV9ERkdfSklUCi0jdW5kZWYg
RU5BQkxFX0ZUTF9KSVQKLSNkZWZpbmUgRU5BQkxFX0RGR19KSVQgMAotI2RlZmluZSBFTkFCTEVf
RlRMX0pJVCAwCi0jZW5kaWYKLQotLyogRklYTUU6IFRoaXMgc2hvdWxkIGJlIHR1cm5lZCBpbnRv
IGFuICNlcnJvciBpbnZhcmlhbnQgKi8KLS8qIElmIHRoZSBERkcgaml0IGlzIG5vdCBhdmFpbGFi
bGUsIHRoZW4gZGlzYWJsZSB1cHBlciB0aWVycyBhcyB3ZWxsOiAqLwotI2lmICFFTkFCTEUoREZH
X0pJVCkKLSN1bmRlZiBFTkFCTEVfRlRMX0pJVAotI2RlZmluZSBFTkFCTEVfRlRMX0pJVCAwCi0j
ZW5kaWYKLQotLyogVGhpcyBjb250cm9scyB3aGV0aGVyIEIzIGlzIGJ1aWx0LiBCMyBpcyBuZWVk
ZWQgZm9yIEZUTCBKSVQgYW5kIFdlYkFzc2VtYmx5ICovCi0jaWYgRU5BQkxFKEZUTF9KSVQpCi0j
ZGVmaW5lIEVOQUJMRV9CM19KSVQgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfV0VC
QVNTRU1CTFkpICYmIChFTkFCTEUoQjNfSklUKSAmJiBQTEFURk9STShDT0NPQSkgJiYgQ1BVKEFE
RFJFU1M2NCkpCi0jZGVmaW5lIEVOQUJMRV9XRUJBU1NFTUJMWSAxCi0jZW5kaWYKLQotLyogVGhl
IFNhbXBsaW5nUHJvZmlsZXIgaXMgdGhlIHByb2JhYmlsaXN0aWMgYW5kIGxvdy1vdmVyaGVhZCBw
cm9maWxlciB1c2VkIGJ5Ci0gKiBKU0MgdG8gbWVhc3VyZSB3aGVyZSB0aW1lIGlzIHNwZW50IGlu
c2lkZSBhIEphdmFTY3JpcHQgcHJvZ3JhbS4KLSAqIEluIGNvbmZpZ3VyYXRpb25zIG90aGVyIHRo
YW4gV2luZG93cyBhbmQgRGFyd2luLCBiZWNhdXNlIGxheW91dCBvZiBtY29udGV4dF90IGRlcGVu
ZHMgb24gc3RhbmRhcmQgbGlicmFyaWVzIChsaWtlIGdsaWJjKSwKLSAqIHNhbXBsaW5nIHByb2Zp
bGVyIGlzIGVuYWJsZWQgaWYgV2ViS2l0IHVzZXMgcHRocmVhZHMgYW5kIGdsaWJjLiAqLwotI2lm
ICFkZWZpbmVkKEVOQUJMRV9TQU1QTElOR19QUk9GSUxFUikgJiYgKCFFTkFCTEUoQ19MT09QKSAm
JiAoT1MoV0lORE9XUykgfHwgSEFWRShNQUNISU5FX0NPTlRFWFQpKSkKLSNkZWZpbmUgRU5BQkxF
X1NBTVBMSU5HX1BST0ZJTEVSIDEKLSNlbmRpZgotCi0jaWYgRU5BQkxFKFdFQkFTU0VNQkxZKSAm
JiBIQVZFKE1BQ0hJTkVfQ09OVEVYVCkKLSNkZWZpbmUgRU5BQkxFX1dFQkFTU0VNQkxZX0ZBU1Rf
TUVNT1JZIDEKLSNlbmRpZgotCi0vKiBDb3VudHMgdXNlcyBvZiB3cml0ZSBiYXJyaWVycyB1c2lu
ZyBzYW1wbGluZyBjb3VudGVycy4gQmUgc3VyZSB0byBhbHNvCi0gICBzZXQgRU5BQkxFX1NBTVBM
SU5HX0NPVU5URVJTIHRvIDEuICovCi0jaWYgIWRlZmluZWQoRU5BQkxFX1dSSVRFX0JBUlJJRVJf
UFJPRklMSU5HKQotI2RlZmluZSBFTkFCTEVfV1JJVEVfQkFSUklFUl9QUk9GSUxJTkcgMAotI2Vu
ZGlmCi0KLS8qIExvZ3MgYWxsIGFsbG9jYXRpb24tcmVsYXRlZCBhY3Rpdml0eSB0aGF0IGdvZXMg
dGhyb3VnaCBmYXN0TWFsbG9jIG9yIHRoZQotICAgSlNDIEdDIChib3RoIGNlbGxzIGFuZCBidXR0
ZXJmbGllcykuIEFsc28gbG9ncyBtYXJraW5nLiBOb3RlIHRoYXQgdGhpcwotICAgaXNuJ3QgYSBj
b21wbGV0ZWx5IGFjY3VyYXRlIHZpZXcgb2YgdGhlIGhlYXAgc2luY2UgaXQgZG9lc24ndCBpbmNs
dWRlIGFsbAotICAgYnV0dGVyZmx5IHJlc2l6ZSBvcGVyYXRpb25zLCBkb2Vzbid0IHRlbGwgeW91
IHdoYXQgaXMgZ29pbmcgb24gd2l0aCB3ZWFrCi0gICByZWZlcmVuY2VzIChvdGhlciB0aGFuIHRv
IHRlbGwgeW91IHdoZW4gdGhleSdyZSBtYXJrZWQpLCBhbmQgZG9lc24ndAotICAgdHJhY2sgZGly
ZWN0IG1tYXAoKSBhbGxvY2F0aW9ucyBvciB0aGluZ3MgbGlrZSBKSVQgYWxsb2NhdGlvbi4gKi8K
LSNpZiAhZGVmaW5lZChFTkFCTEVfQUxMT0NBVElPTl9MT0dHSU5HKQotI2RlZmluZSBFTkFCTEVf
QUxMT0NBVElPTl9MT0dHSU5HIDAKLSNlbmRpZgotCi0vKiBFbmFibGUgdmVyaWZpY2F0aW9uIHRo
YXQgdGhhdCByZWdpc3RlciBhbGxvY2F0aW9ucyBhcmUgbm90IG1hZGUgd2l0aGluIGdlbmVyYXRl
ZCBjb250cm9sIGZsb3cuCi0gICBUdXJuZWQgb24gZm9yIGRlYnVnIGJ1aWxkcy4gKi8KLSNpZiAh
ZGVmaW5lZChFTkFCTEVfREZHX1JFR0lTVEVSX0FMTE9DQVRJT05fVkFMSURBVElPTikgJiYgRU5B
QkxFKERGR19KSVQpICYmICFkZWZpbmVkKE5ERUJVRykKLSNkZWZpbmUgRU5BQkxFX0RGR19SRUdJ
U1RFUl9BTExPQ0FUSU9OX1ZBTElEQVRJT04gMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFC
TEVfU0VQQVJBVEVEX1dYX0hFQVApICYmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIENQVShBUk02
NCkgJiYgKCFFTkFCTEUoRkFTVF9KSVRfUEVSTUlTU0lPTlMpIHx8ICFDUFUoQVJNNjRFKSkKLSNk
ZWZpbmUgRU5BQkxFX1NFUEFSQVRFRF9XWF9IRUFQIDEKLSNlbmRpZgotCi0vKiBEZXRlcm1pbmUg
aWYgd2UgbmVlZCB0byBlbmFibGUgQ29tcHV0ZWQgR290byBPcGNvZGVzIG9yIG5vdDogKi8KLSNp
ZiBIQVZFKENPTVBVVEVEX0dPVE8pIHx8ICFFTkFCTEUoQ19MT09QKQotI2RlZmluZSBFTkFCTEVf
Q09NUFVURURfR09UT19PUENPREVTIDEKLSNlbmRpZgotCi0vKiBSZWd1bGFyIEV4cHJlc3Npb24g
VHJhY2luZyAtIFNldCB0byAxIHRvIHRyYWNlIFJlZ0V4cCdzIGluIGpzYy4gIFJlc3VsdHMgZHVt
cGVkIGF0IGV4aXQgKi8KLSNpZiAhZGVmaW5lZChFTkFCTEVfUkVHRVhQX1RSQUNJTkcpCi0jZGVm
aW5lIEVOQUJMRV9SRUdFWFBfVFJBQ0lORyAwCi0jZW5kaWYKLQotLyogWWV0IEFub3RoZXIgUmVn
ZXggUnVudGltZSAtIHR1cm5lZCBvbiBieSBkZWZhdWx0IGZvciBKSVQgZW5hYmxlZCBwb3J0cy4g
Ki8KLSNpZiAhZGVmaW5lZChFTkFCTEVfWUFSUl9KSVQpICYmIEVOQUJMRShKSVQpCi0jZGVmaW5l
IEVOQUJMRV9ZQVJSX0pJVCAxCi0jZW5kaWYKLQotLyogU2V0dGluZyB0aGlzIGZsYWcgY29tcGFy
ZXMgSklUIHJlc3VsdHMgd2l0aCBpbnRlcnByZXRlciByZXN1bHRzLiAqLwotI2lmICFkZWZpbmVk
KEVOQUJMRV9ZQVJSX0pJVCkgJiYgRU5BQkxFKEpJVCkKLSNkZWZpbmUgRU5BQkxFX1lBUlJfSklU
X0RFQlVHIDAKLSNlbmRpZgotCi0vKiBFbmFibGUgSklUJ2luZyBSZWd1bGFyIEV4cHJlc3Npb25z
IHRoYXQgaGF2ZSBuZXN0ZWQgcGFyZW50aGVzaXMgLiAqLwotI2lmIEVOQUJMRShZQVJSX0pJVCkg
JiYgKENQVShBUk02NCkgfHwgKENQVShYODZfNjQpICYmICFPUyhXSU5ET1dTKSkpCi0jZGVmaW5l
IEVOQUJMRV9ZQVJSX0pJVF9BTExfUEFSRU5TX0VYUFJFU1NJT05TIDEKLSNlbmRpZgotCi0vKiBF
bmFibGUgSklUJ2luZyBSZWd1bGFyIEV4cHJlc3Npb25zIHRoYXQgaGF2ZSBuZXN0ZWQgYmFjayBy
ZWZlcmVuY2VzLiAqLwotI2lmIEVOQUJMRShZQVJSX0pJVCkgJiYgKENQVShBUk02NCkgfHwgKENQ
VShYODZfNjQpICYmICFPUyhXSU5ET1dTKSkpCi0jZGVmaW5lIEVOQUJMRV9ZQVJSX0pJVF9CQUNL
UkVGRVJFTkNFUyAxCi0jZW5kaWYKLQotLyogSWYgZWl0aGVyIHRoZSBKSVQgb3IgdGhlIFJlZ0V4
cCBKSVQgaXMgZW5hYmxlZCwgdGhlbiB0aGUgQXNzZW1ibGVyIG11c3QgYmUKLSAgIGVuYWJsZWQg
YXMgd2VsbDogKi8KLSNpZiBFTkFCTEUoSklUKSB8fCBFTkFCTEUoWUFSUl9KSVQpIHx8ICFFTkFC
TEUoQ19MT09QKQotI2lmIGRlZmluZWQoRU5BQkxFX0FTU0VNQkxFUikgJiYgIUVOQUJMRV9BU1NF
TUJMRVIKLSNlcnJvciAiQ2Fubm90IGVuYWJsZSB0aGUgSklUIG9yIFJlZ0V4cCBKSVQgd2l0aG91
dCBlbmFibGluZyB0aGUgQXNzZW1ibGVyIgotI2Vsc2UKLSN1bmRlZiBFTkFCTEVfQVNTRU1CTEVS
Ci0jZGVmaW5lIEVOQUJMRV9BU1NFTUJMRVIgMQotI2VuZGlmCi0jZW5kaWYKLQotLyogSWYgdGhl
IERpc2Fzc2VtYmxlciBpcyBlbmFibGVkLCB0aGVuIHRoZSBBc3NlbWJsZXIgbXVzdCBiZSBlbmFi
bGVkIGFzIHdlbGw6ICovCi0jaWYgRU5BQkxFKERJU0FTU0VNQkxFUikKLSNpZiBkZWZpbmVkKEVO
QUJMRV9BU1NFTUJMRVIpICYmICFFTkFCTEVfQVNTRU1CTEVSCi0jZXJyb3IgIkNhbm5vdCBlbmFi
bGUgdGhlIERpc2Fzc2VtYmxlciB3aXRob3V0IGVuYWJsaW5nIHRoZSBBc3NlbWJsZXIiCi0jZWxz
ZQotI3VuZGVmIEVOQUJMRV9BU1NFTUJMRVIKLSNkZWZpbmUgRU5BQkxFX0FTU0VNQkxFUiAxCi0j
ZW5kaWYKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0VYQ0VQVElPTl9TQ09QRV9WRVJJ
RklDQVRJT04pCi0jZGVmaW5lIEVOQUJMRV9FWENFUFRJT05fU0NPUEVfVkVSSUZJQ0FUSU9OIEFT
U0VSVF9FTkFCTEVECi0jZW5kaWYKLQotI2lmIEVOQUJMRShERkdfSklUKSAmJiBIQVZFKE1BQ0hJ
TkVfQ09OVEVYVCkgJiYgKENQVShYODZfNjQpIHx8IENQVShBUk02NCkpCi0jZGVmaW5lIEVOQUJM
RV9TSUdOQUxfQkFTRURfVk1fVFJBUFMgMQotI2VuZGlmCi0KLS8qIENTUyBTZWxlY3RvciBKSVQg
Q29tcGlsZXIgKi8KLSNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTX1NFTEVDVE9SX0pJVCkgJiYgKChD
UFUoWDg2XzY0KSB8fCBDUFUoQVJNNjQpIHx8IChDUFUoQVJNX1RIVU1CMikgJiYgT1MoREFSV0lO
KSkpICYmIEVOQUJMRShKSVQpICYmIChPUyhEQVJXSU4pIHx8IFBMQVRGT1JNKEdUSykgfHwgUExB
VEZPUk0oV1BFKSkpCi0jZGVmaW5lIEVOQUJMRV9DU1NfU0VMRUNUT1JfSklUIDEKLSNlbmRpZgot
Ci0jaWYgUExBVEZPUk0oQ09DT0EpICYmICFQTEFURk9STShXQVRDSE9TKSAmJiAhUExBVEZPUk0o
QVBQTEVUVikgJiYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQotI2RlZmluZSBFTkFCTEVfREFUQV9E
RVRFQ1RJT04gMQotI2VuZGlmCi0KLSNpZiBDUFUoQVJNX1RIVU1CMikgfHwgQ1BVKEFSTTY0KQot
I2RlZmluZSBFTkFCTEVfQlJBTkNIX0NPTVBBQ1RJT04gMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5l
ZChFTkFCTEVfVEhSRUFESU5HX0xJQkRJU1BBVENIKSAmJiBIQVZFKERJU1BBVENIX0gpCi0jZGVm
aW5lIEVOQUJMRV9USFJFQURJTkdfTElCRElTUEFUQ0ggMQotI2VsaWYgIWRlZmluZWQoRU5BQkxF
X1RIUkVBRElOR19PUEVOTVApICYmIGRlZmluZWQoX09QRU5NUCkKLSNkZWZpbmUgRU5BQkxFX1RI
UkVBRElOR19PUEVOTVAgMQotI2VsaWYgIWRlZmluZWQoVEhSRUFESU5HX0dFTkVSSUMpCi0jZGVm
aW5lIEVOQUJMRV9USFJFQURJTkdfR0VORVJJQyAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVO
QUJMRV9HQ19WQUxJREFUSU9OKSAmJiAhZGVmaW5lZChOREVCVUcpCi0jZGVmaW5lIEVOQUJMRV9H
Q19WQUxJREFUSU9OIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0JJTkRJTkdfSU5U
RUdSSVRZKSAmJiAhT1MoV0lORE9XUykKLSNkZWZpbmUgRU5BQkxFX0JJTkRJTkdfSU5URUdSSVRZ
IDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX1RSRUVfREVCVUdHSU5HKSAmJiAhZGVm
aW5lZChOREVCVUcpCi0jZGVmaW5lIEVOQUJMRV9UUkVFX0RFQlVHR0lORyAxCi0jZW5kaWYKLQot
I2lmIFBMQVRGT1JNKENPQ09BKQotI2RlZmluZSBFTkFCTEVfUkVTT1VSQ0VfVVNBR0UgMQotI2Vu
ZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfT1BFTlRZUEVfVkVSVElDQUwpICYmIFBMQVRGT1JN
KEdUSykgfHwgUExBVEZPUk0oV1BFKQotI2RlZmluZSBFTkFCTEVfT1BFTlRZUEVfVkVSVElDQUwg
MQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfT1BFTlRZUEVfTUFUSCkgJiYgKE9TKERB
UldJTikgJiYgVVNFKENHKSkgfHwgKFVTRShGUkVFVFlQRSkgJiYgIVBMQVRGT1JNKEdUSykpIHx8
IChQTEFURk9STShXSU4pICYmIChVU0UoQ0cpIHx8IFVTRShDQUlSTykpKQotI2RlZmluZSBFTkFC
TEVfT1BFTlRZUEVfTUFUSCAxCi0jZW5kaWYKLQotLyoKLSAqIEVuYWJsZSB0aGlzIHRvIHB1dCBl
YWNoIElzb0hlYXAgYW5kIG90aGVyIGFsbG9jYXRpb24gY2F0ZWdvcmllcyBpbnRvIHRoZWlyIG93
biBtYWxsb2MgaGVhcHMsIHNvIHRoYXQgdG9vbHMgbGlrZSB2bW1hcCBjYW4gc2hvdyBob3cgYmln
IGVhY2ggaGVhcCBpcy4KLSAqIFR1cm4gQkVOQUJMRV9NQUxMT0NfSEVBUF9CUkVBS0RPV04gb24g
aW4gYm1hbGxvYyB0b2dldGhlciB3aGVuIHVzaW5nIHRoaXMuCi0gKi8KLSNpZiAhZGVmaW5lZChF
TkFCTEVfTUFMTE9DX0hFQVBfQlJFQUtET1dOKQotI2RlZmluZSBFTkFCTEVfTUFMTE9DX0hFQVBf
QlJFQUtET1dOIDAKLSNlbmRpZgotCi0vKiBEaXNhYmxlIFNoYXJlZEFycmF5QnVmZmVycyB1bnRp
bCBTcGVjdHJlIHNlY3VyaXR5IGNvbmNlcm5zIGFyZSBtaXRpZ2F0ZWQuICovCi0jZGVmaW5lIEVO
QUJMRV9TSEFSRURfQVJSQVlfQlVGRkVSIDAKLQotI2lmIFBMQVRGT1JNKE1BQykKLSNkZWZpbmUg
RU5BQkxFX1dFQl9QTEFZQkFDS19DT05UUk9MU19NQU5BR0VSIDEKLSNlbmRpZgotCi0jaWYgUExB
VEZPUk0oQ09DT0EpCi0vKiBGSVhNRTogVGhpcyBpcyBhIFVTRSBzdHlsZSBtYWNybywgYXMgaXQg
dHJpZ2dlcnMgdGhlIHVzZSBvZiBDRlVSTENvbm5lY3Rpb24gZnJhbWV3b3JrIHN0dWJzLiAqLwot
LyogRklYTUU6IElzIHRoaXMgc3RpbGwgbmVjZXNzYXJ5PyBDRlVSTENvbm5lY3Rpb24gaXNuJ3Qg
dXNlZCBvbiBDb2NvYSBwbGF0Zm9ybXMgYW55IG1vcmUuICovCi0jZGVmaW5lIEVOQUJMRV9TRUNf
SVRFTV9TSElNIDEKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oTUFDKQotI2RlZmluZSBFTkFCTEVf
RlVMTF9LRVlCT0FSRF9BQ0NFU1MgMQotI2VuZGlmCi0KLSNpZiAoKFBMQVRGT1JNKENPQ09BKSB8
fCBQTEFURk9STShQTEFZU1RBVElPTikgfHwgUExBVEZPUk0oV1BFKSkgJiYgRU5BQkxFKEFTWU5D
X1NDUk9MTElORykpIHx8IFBMQVRGT1JNKEdUSykKLSNkZWZpbmUgRU5BQkxFX0tJTkVUSUNfU0NS
T0xMSU5HIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX01PTk9TUEFDRV9GT05UX0VY
Q0VQVElPTikgJiYgKChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPCAxMDE1MDApIHx8IFBMQVRGT1JNKFdBVENIT1MpIHx8IFBMQVRGT1JNKEFQUExFVFYp
KQotI2RlZmluZSBFTkFCTEVfTU9OT1NQQUNFX0ZPTlRfRVhDRVBUSU9OIDEKLSNlbmRpZgotCi0j
aWYgIWRlZmluZWQoRU5BQkxFX1BMQVRGT1JNX0RSSVZFTl9URVhUX0NIRUNLSU5HKSAmJiBQTEFU
Rk9STShNQUNDQVRBTFlTVCkKLSNkZWZpbmUgRU5BQkxFX1BMQVRGT1JNX0RSSVZFTl9URVhUX0NI
RUNLSU5HIDEKLSNlbmRpZgotCi0vKiBUaGlzIGZlYXR1cmUgd29ya3MgYnkgZW1iZWRkaW5nIHRo
ZSBPcGNvZGVJRCBpbiB0aGUgMzIgYml0IGp1c3QgYmVmb3JlIHRoZSBnZW5lcmF0ZWQgTExpbnQg
Y29kZQotICAgdGhhdCBleGVjdXRlcyBlYWNoIG9wY29kZS4gSXQgY2Fubm90IGJlIHN1cHBvcnRl
ZCBieSB0aGUgQ0xvb3Agc2luY2UgdGhlcmUncyBubyB3YXkgdG8gZW1iZWQgdGhlCi0gICBPcGNv
ZGVJRCB3b3JkIGluIHRoZSBDTG9vcCdzIHN3aXRjaCBzdGF0ZW1lbnQgY2FzZXMuIEl0IGlzIGFs
c28gY3VycmVudGx5IG5vdCBpbXBsZW1lbnRlZCBmb3IgTVNWQy4KLSovCi0jaWYgIWRlZmluZWQo
RU5BQkxFX0xMSU5UX0VNQkVEREVEX09QQ09ERV9JRCkgJiYgIUVOQUJMRShDX0xPT1ApICYmICFD
T01QSUxFUihNU1ZDKSAmJiAoQ1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTTY0KSB8
fCAoQ1BVKEFSTV9USFVNQjIpICYmIE9TKERBUldJTikpKQotI2RlZmluZSBFTkFCTEVfTExJTlRf
RU1CRURERURfT1BDT0RFX0lEIDEKLSNlbmRpZgotCi0KLS8qIEFzc2VydHMsIGludmFyaWFudHMg
Zm9yIG1hY3JvIGRlZmluaXRpb25zICovCi0KLSNpZiBFTkFCTEUoVklERU9fVFJBQ0spICYmICFF
TkFCTEUoVklERU8pCi0jZXJyb3IgIkVOQUJMRShWSURFT19UUkFDSykgcmVxdWlyZXMgRU5BQkxF
KFZJREVPKSIKLSNlbmRpZgotCi0jaWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX1NDUklQVCkgJiYg
IUVOQUJMRShWSURFTykKLSNlcnJvciAiRU5BQkxFKE1FRElBX0NPTlRST0xTX1NDUklQVCkgcmVx
dWlyZXMgRU5BQkxFKFZJREVPKSIKLSNlbmRpZgotCi0jaWYgRU5BQkxFKElOU1BFQ1RPUl9BTFRF
Uk5BVEVfRElTUEFUQ0hFUlMpICYmICFFTkFCTEUoUkVNT1RFX0lOU1BFQ1RPUikKLSNlcnJvciAi
RU5BQkxFKElOU1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hFUlMpIHJlcXVpcmVzIEVOQUJMRShS
RU1PVEVfSU5TUEVDVE9SKSIKLSNlbmRpZgotCi0jaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMp
ICYmICFFTkFCTEUoVE9VQ0hfRVZFTlRTKQotI2Vycm9yICJFTkFCTEUoSU9TX1RPVUNIX0VWRU5U
UykgcmVxdWlyZXMgRU5BQkxFKFRPVUNIX0VWRU5UUykiCi0jZW5kaWYKLQotI2lmIEVOQUJMRShX
RUJHTCkgJiYgIUVOQUJMRShHUkFQSElDU19DT05URVhUX0dMKQotI2Vycm9yICJFTkFCTEUoV0VC
R0wpIHJlcXVpcmVzIEVOQUJMRShHUkFQSElDU19DT05URVhUX0dMKSIKLSNlbmRpZgotCi0jaWYg
RU5BQkxFKFdFQkdMMikgJiYgIUVOQUJMRShXRUJHTCkKLSNlcnJvciAiRU5BQkxFKFdFQkdMMikg
cmVxdWlyZXMgRU5BQkxFKFdFQkdMKSIKLSNlbmRpZgpJbmRleDogU291cmNlL1dURi93dGYvUGxh
dGZvcm1FbmFibGVXaW5DYWlyby5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1BsYXRm
b3JtRW5hYmxlV2luQ2Fpcm8uaAkocmV2aXNpb24gMjU1NTUyKQkoZnJvbSBTb3VyY2UvV1RGL3d0
Zi9QbGF0Zm9ybUVuYWJsZS5oOjI1NTU1MikKKysrIFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5h
YmxlV2luQ2Fpcm8uaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEwNTUgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDYtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOSBUb3JjaCBNb2JpbGUsIEluYy4KKyAqIENvcHlyaWdo
dCAoQykgMjAxMCwgMjAxMSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZC4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMyBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2lmbmRlZiBXVEZfUExBVEZPUk1fR1VBUkRfQUdBSU5TVF9J
TkRJUkVDVF9JTkNMVVNJT04KKyNlcnJvciAiUGxlYXNlICNpbmNsdWRlIDx3dGYvUGxhdGZvcm0u
aD4gaW5zdGVhZCBvZiB0aGlzIGZpbGUgZGlyZWN0bHkuIgorI2VuZGlmCisKKworI2RlZmluZSBF
TkFCTEUoV1RGX0ZFQVRVUkUpIChkZWZpbmVkIEVOQUJMRV8jI1dURl9GRUFUVVJFICYmIEVOQUJM
RV8jI1dURl9GRUFUVVJFKQorCisvKiBVc2UgdGhpcyBmaWxlIHRvIGxpc3QgX2FsbF8gRU5BQkxF
KCkgbWFjcm9zLiBEZWZpbmUgdGhlIG1hY3JvcyB0byBiZSBvbmUgb2YgdGhlIGZvbGxvd2luZyB2
YWx1ZXM6CisgKiAgLSAiMCIgZGlzYWJsZXMgdGhlIGZlYXR1cmUgYnkgZGVmYXVsdC4gVGhlIGZl
YXR1cmUgY2FuIHN0aWxsIGJlIGVuYWJsZWQgZm9yIGEgc3BlY2lmaWMgcG9ydCBvciBlbnZpcm9u
bWVudC4KKyAqICAtICIxIiBlbmFibGVzIHRoZSBmZWF0dXJlIGJ5IGRlZmF1bHQuIFRoZSBmZWF0
dXJlIGNhbiBzdGlsbCBiZSBkaXNhYmxlZCBmb3IgYSBzcGVjaWZpYyBwb3J0IG9yIGVudmlyb25t
ZW50LgorICoKKyAqIFRoZSBmZWF0dXJlIGRlZmF1bHRzIGluIHRoaXMgZmlsZSBhcmUgb25seSB0
YWtlbiBpbnRvIGFjY291bnQgaWYgdGhlIChwb3J0IHNwZWNpZmljKSBidWlsZCBzeXN0ZW0KKyAq
IGhhcyBub3QgZW5hYmxlZCBvciBkaXNhYmxlZCBhIHBhcnRpY3VsYXIgZmVhdHVyZS4KKyAqCisg
KiBVc2UgdGhpcyBmaWxlIHRvIGRlZmluZSBFTkFCTEUoKSBtYWNyb3Mgb25seS4gRG8gbm90IHVz
ZSB0aGlzIGZpbGUgdG8gZGVmaW5lIFVTRSgpIG9yIG1hY3JvcyAhCisgKgorICogT25seSBkZWZp
bmUgYSBtYWNybyBpZiBpdCB3YXMgbm90IGRlZmluZWQgYmVmb3JlIC0gYWx3YXlzIGNoZWNrIGZv
ciAhZGVmaW5lZCBmaXJzdC4KKyAqCisgKiBLZWVwIHRoZSBmaWxlIHNvcnRlZCBieSB0aGUgbmFt
ZSBvZiB0aGUgZGVmaW5lcy4gQXMgYW4gZXhjZXB0aW9uIHlvdSBjYW4gY2hhbmdlIHRoZSBvcmRl
cgorICogdG8gYWxsb3cgaW50ZXJkZXBlbmRlbmNpZXMgYmV0d2VlbiB0aGUgZGVmYXVsdCB2YWx1
ZXMuCisgKgorICogQmVsb3cgYXJlIGEgZmV3IHBvdGVudGlhbCBjb21tYW5kcyB0byB0YWtlIGFk
dmFudGFnZSBvZiB0aGlzIGZpbGUgcnVubmluZyBmcm9tIHRoZSBTb3VyY2UvV1RGIGRpcmVjdG9y
eQorICoKKyAqIEdldCB0aGUgbGlzdCBvZiBmZWF0dXJlIGRlZmluZXM6IGdyZXAgLW8gIkVOQUJM
RV9cKFx3XCtcKSIgd3RmL1BsYXRmb3JtRW5hYmxlLmggfCBzb3J0IHwgdW5pcQorICogR2V0IHRo
ZSBsaXN0IG9mIGZlYXR1cmVzIGVuYWJsZWQgYnkgZGVmYXVsdCBmb3IgYSBQTEFURk9STShYWFgp
OiBnY2MgLUUgLWRNIC1JLiAtRFdURl9QTEFURk9STV9YWFggInd0Zi9QbGF0Zm9ybS5oIiB8IGdy
ZXAgIkVOQUJMRV9cd1wrIDEiIHwgY3V0IC1kJyAnIC1mMiB8IHNvcnQKKyAqLworCisKKy8qIEZJ
WE1FOiBUaGlzIHNob3VsZCBiZSByZW5hbWVkIHRvIEVOQUJMRV9BU1NFUlRTIGZvciBjb25zaXN0
ZW5jeSBhbmQgc28gaXQgY2FuIGJlIHVzZWQgYXMgRU5BQkxFKEFTU0VSVFMpLiAqLworLyogQVNT
RVJUX0VOQUJMRUQgc2hvdWxkIGJlIHRydWUgaWYgd2Ugd2FudCB0aGUgY3VycmVudCBjb21waWxh
dGlvbiB1bml0IHRvCisgICBkbyBkZWJ1ZyBhc3NlcnRpb24gY2hlY2tzIHVuY29uZGl0aW9uYWxs
eSAoZS5nLiB0cmVhdCBhIGRlYnVnIEFTU0VSVAorICAgbGlrZSBhIFJFTEVBU0VfQVNTRVJULgor
Ki8KKyNpZm5kZWYgQVNTRVJUX0VOQUJMRUQKKyNpZmRlZiBOREVCVUcKKyNkZWZpbmUgQVNTRVJU
X0VOQUJMRUQgMAorI2Vsc2UKKyNkZWZpbmUgQVNTRVJUX0VOQUJMRUQgMQorI2VuZGlmCisjZW5k
aWYKKworLyogPT09PSBQbGF0Zm9ybSBhZGRpdGlvbnM6IGFkZGl0aW9ucyB0byBQbGF0Zm9ybUVu
YWJsZS5oIGZyb20gb3V0c2lkZSB0aGUgbWFpbiByZXBvc2l0b3J5ID09PT0gKi8KKworI2lmIFVT
RShBUFBMRV9JTlRFUk5BTF9TREspICYmIF9faGFzX2luY2x1ZGUoPFdlYktpdEFkZGl0aW9ucy9B
ZGRpdGlvbmFsRmVhdHVyZURlZmluZXMuaD4pCisjaW5jbHVkZSA8V2ViS2l0QWRkaXRpb25zL0Fk
ZGl0aW9uYWxGZWF0dXJlRGVmaW5lcy5oPgorI2VuZGlmCisKKy8qIEZJWE1FOiBNb3ZlIG91dCB0
aGUgUExBVEZPUk0gc3BlY2lmaWMgcnVsZXMgaW50byBwbGF0Zm9ybSBzcGVjaWZpYyBmaWxlcy4g
Ki8KKworLyogLS0tLS0tLS0tIEFwcGxlIGlPUyAoYnV0IG5vdCBtYWNPUykgcG9ydCAtLS0tLS0t
LS0gKi8KKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorCisjaWYgIWRlZmluZWQoRU5BQkxFX0FJ
UlBMQVlfUElDS0VSKQorI2lmICFQTEFURk9STShNQUNDQVRBTFlTVCkKKyNkZWZpbmUgRU5BQkxF
X0FJUlBMQVlfUElDS0VSIDEKKyNlbmRpZgorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVf
QVBQTEVfUEFZX1JFTU9URV9VSSkKKyNpZiAhUExBVEZPUk0oQVBQTEVUVikgJiYgIVBMQVRGT1JN
KE1BQ0NBVEFMWVNUKSAmJiAhUExBVEZPUk0oV0FUQ0hPUykKKyNkZWZpbmUgRU5BQkxFX0FQUExF
X1BBWV9SRU1PVEVfVUkgMQorI2VuZGlmCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9D
T05URU5UX0VYVEVOU0lPTlMpCisjZGVmaW5lIEVOQUJMRV9DT05URU5UX0VYVEVOU0lPTlMgMQor
I2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQ09OVEVYVF9NRU5VUykKKyNkZWZpbmUgRU5B
QkxFX0NPTlRFWFRfTUVOVVMgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQ09OVEVY
VF9NRU5VX0VWRU5UKQorI2lmICFQTEFURk9STShNQUNDQVRBTFlTVCkKKyNkZWZpbmUgRU5BQkxF
X0NPTlRFWFRfTUVOVV9FVkVOVCAwCisjZW5kaWYKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5B
QkxFX0NVU1RPTV9DVVJTT1JfU1VQUE9SVCkKKyNkZWZpbmUgRU5BQkxFX0NVU1RPTV9DVVJTT1Jf
U1VQUE9SVCAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9EUkFHX1NVUFBPUlQpCisj
ZGVmaW5lIEVOQUJMRV9EUkFHX1NVUFBPUlQgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFC
TEVfR0VPTE9DQVRJT04pCisjZGVmaW5lIEVOQUJMRV9HRU9MT0NBVElPTiAxCisjZW5kaWYKKwor
I2lmICFkZWZpbmVkKEVOQUJMRV9JTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENIRVJTKQorI2Rl
ZmluZSBFTkFCTEVfSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUyAxCisjZW5kaWYKKwor
I2lmICFkZWZpbmVkKEVOQUJMRV9JTlNQRUNUT1JfVEVMRU1FVFJZKQorI2RlZmluZSBFTkFCTEVf
SU5TUEVDVE9SX1RFTEVNRVRSWSAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9MRVRU
RVJQUkVTUykKKyNkZWZpbmUgRU5BQkxFX0xFVFRFUlBSRVNTIDEKKyNlbmRpZgorCisjaWYgIWRl
ZmluZWQoRU5BQkxFX0FVVE9DT1JSRUNUKQorI2RlZmluZSBFTkFCTEVfQVVUT0NPUlJFQ1QgMQor
I2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQVVUT0NBUElUQUxJWkUpCisjZGVmaW5lIEVO
QUJMRV9BVVRPQ0FQSVRBTElaRSAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9JT1Nf
R0VTVFVSRV9FVkVOVFMpICYmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisjZGVmaW5lIEVOQUJM
RV9JT1NfR0VTVFVSRV9FVkVOVFMgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfVEVY
VF9BVVRPU0laSU5HKQorI2RlZmluZSBFTkFCTEVfVEVYVF9BVVRPU0laSU5HIDEKKyNlbmRpZgor
CisjaWYgIWRlZmluZWQoRU5BQkxFX0lPU19UT1VDSF9FVkVOVFMpICYmIFVTRShBUFBMRV9JTlRF
Uk5BTF9TREspCisjZGVmaW5lIEVOQUJMRV9JT1NfVE9VQ0hfRVZFTlRTIDEKKyNlbmRpZgorCisj
aWYgIWRlZmluZWQoRU5BQkxFX01FVEVSX0VMRU1FTlQpCisjZGVmaW5lIEVOQUJMRV9NRVRFUl9F
TEVNRU5UIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9B
UEkpCisjZGVmaW5lIEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJIDAKKyNlbmRpZgorCisjaWYg
IWRlZmluZWQoRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUykKKyNkZWZpbmUgRU5BQkxFX09SSUVO
VEFUSU9OX0VWRU5UUyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9QT0lOVEVSX0xP
Q0spCisjZGVmaW5lIEVOQUJMRV9QT0lOVEVSX0xPQ0sgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5l
ZChFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUikKKyNkZWZpbmUgRU5BQkxFX1JFTU9URV9JTlNQRUNU
T1IgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfVEVYVF9DQVJFVCkKKyNkZWZpbmUg
RU5BQkxFX1RFWFRfQ0FSRVQgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfVEVYVF9T
RUxFQ1RJT04pCisjZGVmaW5lIEVOQUJMRV9URVhUX1NFTEVDVElPTiAwCisjZW5kaWYKKworLyog
RklYTUU6IFJlbW92ZSB0aGUgVVNFKEFQUExFX0lOVEVSTkFMX1NESykgY29uanVuY3Qgb25jZSB3
ZSBzdXBwb3J0IHRvdWNoIGV2ZW50cyB3aGVuIGJ1aWxkaW5nIGFnYWluc3QKK3RoZSBwdWJsaWMg
aU9TIFNESy4gU2VlIDxodHRwczovL3dlYmtpdC5vcmcvYi8xNzkxNjc+LiAqLworI2lmICFkZWZp
bmVkKEVOQUJMRV9UT1VDSF9FVkVOVFMpICYmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisjZGVm
aW5lIEVOQUJMRV9UT1VDSF9FVkVOVFMgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVf
V0VCX0FSQ0hJVkUpCisjZGVmaW5lIEVOQUJMRV9XRUJfQVJDSElWRSAxCisjZW5kaWYKKworI2lm
ICFkZWZpbmVkKEVOQUJMRV9XRUJHTCkKKyNkZWZpbmUgRU5BQkxFX1dFQkdMIDEKKyNlbmRpZgor
CisjaWYgIWRlZmluZWQoRU5BQkxFX1BSSU1BUllfU05BUFNIT1RURURfUExVR0lOX0hFVVJJU1RJ
QykKKyNkZWZpbmUgRU5BQkxFX1BSSU1BUllfU05BUFNIT1RURURfUExVR0lOX0hFVVJJU1RJQyAx
CisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9ET1dOTE9BRF9BVFRSSUJVVEUpCisjZGVm
aW5lIEVOQUJMRV9ET1dOTE9BRF9BVFRSSUJVVEUgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChF
TkFCTEVfV0tQREZWSUVXKSAmJiBQTEFURk9STShJT1MpCisjZGVmaW5lIEVOQUJMRV9XS1BERlZJ
RVcgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTUVESUFfU09VUkNFKQorI2RlZmlu
ZSBFTkFCTEVfTUVESUFfU09VUkNFIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1BS
RVZJRVdfQ09OVkVSVEVSKSAmJiBQTEFURk9STShJT1MpCisjZGVmaW5lIEVOQUJMRV9QUkVWSUVX
X0NPTlZFUlRFUiAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9NRVRBX1ZJRVdQT1JU
KQorI2RlZmluZSBFTkFCTEVfTUVUQV9WSUVXUE9SVCAxCisjZW5kaWYKKworI2VuZGlmIC8qIFBM
QVRGT1JNKElPU19GQU1JTFkpICovCisKKy8qIC0tLS0tLS0tLSBBcHBsZSB3YXRjaE9TIHBvcnQg
LS0tLS0tLS0tICovCisjaWYgUExBVEZPUk0oV0FUQ0hPUykKKworI2VuZGlmIC8qIFBMQVRGT1JN
KFdBVENIT1MpICovCisKKy8qIC0tLS0tLS0tLSBBcHBsZSBtYWNPUyBwb3J0IChub3QgaU9TKSAt
LS0tLS0tLS0gKi8KKyNpZiBQTEFURk9STShNQUMpCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQ09O
VEVOVF9FWFRFTlNJT05TKQorI2RlZmluZSBFTkFCTEVfQ09OVEVOVF9FWFRFTlNJT05TIDEKKyNl
bmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKQorI2RlZmluZSBFTkFC
TEVfRlVMTFNDUkVFTl9BUEkgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfUkVNT1RF
X0lOU1BFQ1RPUikKKyNkZWZpbmUgRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IgMQorI2VuZGlmCisK
KyNpZiAhZGVmaW5lZChFTkFCTEVfSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUykKKyNk
ZWZpbmUgRU5BQkxFX0lOU1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hFUlMgMQorI2VuZGlmCisK
KyNpZiAhZGVmaW5lZChFTkFCTEVfSU5TUEVDVE9SX1RFTEVNRVRSWSkKKyNkZWZpbmUgRU5BQkxF
X0lOU1BFQ1RPUl9URUxFTUVUUlkgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfU01P
T1RIX1NDUk9MTElORykKKyNkZWZpbmUgRU5BQkxFX1NNT09USF9TQ1JPTExJTkcgMQorI2VuZGlm
CisKKyNpZiBFTkFCTEUoVklERU8pCisjaWYgIWRlZmluZWQoRU5BQkxFX1ZJREVPX1RSQUNLKQor
I2RlZmluZSBFTkFCTEVfVklERU9fVFJBQ0sgMQorI2VuZGlmCisjZW5kaWYKKworI2lmICFkZWZp
bmVkKEVOQUJMRV9XRUJfQVJDSElWRSkKKyNkZWZpbmUgRU5BQkxFX1dFQl9BUkNISVZFIDEKKyNl
bmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1dFQl9BVURJTykKKyNkZWZpbmUgRU5BQkxFX1dF
Ql9BVURJTyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9DVVJTT1JfVklTSUJJTElU
WSkKKyNkZWZpbmUgRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZIDEKKyNlbmRpZgorCisjaWYgIWRl
ZmluZWQoRU5BQkxFX1BSSU1BUllfU05BUFNIT1RURURfUExVR0lOX0hFVVJJU1RJQykKKyNkZWZp
bmUgRU5BQkxFX1BSSU1BUllfU05BUFNIT1RURURfUExVR0lOX0hFVVJJU1RJQyAxCisjZW5kaWYK
KworI2lmICFkZWZpbmVkKEVOQUJMRV9NQUNfR0VTVFVSRV9FVkVOVFMpICYmIFVTRShBUFBMRV9J
TlRFUk5BTF9TREspCisjZGVmaW5lIEVOQUJMRV9NQUNfR0VTVFVSRV9FVkVOVFMgMQorI2VuZGlm
CisKKyNpZiAhZGVmaW5lZChFTkFCTEVfV0VCUFJPQ0VTU19OU1JVTkxPT1ApCisjZGVmaW5lIEVO
QUJMRV9XRUJQUk9DRVNTX05TUlVOTE9PUCBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID49IDEwMTQwMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfV0VCUFJPQ0VTU19XSU5E
T1dTRVJWRVJfQkxPQ0tJTkcpCisjZGVmaW5lIEVOQUJMRV9XRUJQUk9DRVNTX1dJTkRPV1NFUlZF
Ul9CTE9DS0lORyBFTkFCTEVfV0VCUFJPQ0VTU19OU1JVTkxPT1AKKyNlbmRpZgorCisjaWYgIWRl
ZmluZWQoRU5BQkxFX01FRElBX1NPVVJDRSkKKyNkZWZpbmUgRU5BQkxFX01FRElBX1NPVVJDRSAx
CisjZW5kaWYKKworI2VuZGlmIC8qIFBMQVRGT1JNKE1BQykgKi8KKworLyogLS0tLS0tLS0tIEFw
cGxlIENvY29hIHBsYXRmb3JtcyAtLS0tLS0tLS0gKi8KKworI2lmIFBMQVRGT1JNKENPQ09BKQor
CisjaWYgIWRlZmluZWQoRU5BQkxFX0xFR0FDWV9FTkNSWVBURURfTUVESUEpCisjaWYgUExBVEZP
Uk0oTUFDQ0FUQUxZU1QpCisjZGVmaW5lIEVOQUJMRV9MRUdBQ1lfRU5DUllQVEVEX01FRElBIDAK
KyNlbHNlCisjZGVmaW5lIEVOQUJMRV9MRUdBQ1lfRU5DUllQVEVEX01FRElBIDEKKyNlbmRpZgor
I2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfRklMRV9SRVBMQUNFTUVOVCkKKyNkZWZpbmUg
RU5BQkxFX0ZJTEVfUkVQTEFDRU1FTlQgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVf
UEFZTUVOVF9SRVFVRVNUKQorI2RlZmluZSBFTkFCTEVfUEFZTUVOVF9SRVFVRVNUIDEKKyNlbmRp
ZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0FTWU5DX1NDUk9MTElORykKKyNkZWZpbmUgRU5BQkxF
X0FTWU5DX1NDUk9MTElORyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9VSV9TSURF
X0NPTVBPU0lUSU5HKQorI2RlZmluZSBFTkFCTEVfVUlfU0lERV9DT01QT1NJVElORyAxCisjZW5k
aWYKKworI2VuZGlmIC8qIFBMQVRGT1JNKENPQ09BKSAqLworCisjaWYgIVBMQVRGT1JNKENPQ09B
KQorCisjaWYgIWRlZmluZWQoSlNDX09CSkNfQVBJX0VOQUJMRUQpCisjZGVmaW5lIEpTQ19PQkpD
X0FQSV9FTkFCTEVEIDAKKyNlbmRpZgorCisjZW5kaWYgLyogIVBMQVRGT1JNKENPQ09BKSAqLwor
CisKKy8qIC0tLS0tLS0tLSBBcHBsZSBXaW5kb3dzIHBvcnQgLS0tLS0tLS0tICovCisjaWYgUExB
VEZPUk0oV0lOKSAmJiAhUExBVEZPUk0oV0lOX0NBSVJPKQorCisjaWYgIWRlZmluZWQoRU5BQkxF
X0ZVTExTQ1JFRU5fQVBJKQorI2RlZmluZSBFTkFCTEVfRlVMTFNDUkVFTl9BUEkgMQorI2VuZGlm
CisKKyNpZiAhZGVmaW5lZChFTkFCTEVfV0VCX0FSQ0hJVkUpCisjZGVmaW5lIEVOQUJMRV9XRUJf
QVJDSElWRSAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJHTCkKKyNkZWZpbmUg
RU5BQkxFX1dFQkdMIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0dFT0xPQ0FUSU9O
KQorI2RlZmluZSBFTkFCTEVfR0VPTE9DQVRJT04gMQorI2VuZGlmCisKKyNlbmRpZiAvKiBQTEFU
Rk9STShXSU4pICYmICFQTEFURk9STShXSU5fQ0FJUk8pICovCisKKy8qIC0tLS0tLS0tLSBXaW5k
b3dzIENBSVJPIHBvcnQgLS0tLS0tLS0tICovCisvKiBQTEFURk9STShXSU5fQ0FJUk8pIGlzIGEg
c3BlY2lhbGl6YXRpb24gb2YgUExBVEZPUk0oV0lOKS4gKi8KKy8qIFBMQVRGT1JNKFdJTikgaXMg
YWx3YXlzIGVuYWJsZWQgd2hlbiBQTEFURk9STShXSU5fQ0FJUk8pIGlzIGVuYWJsZWQuICovCisj
aWYgUExBVEZPUk0oV0lOX0NBSVJPKQorCisjaWYgIWRlZmluZWQoRU5BQkxFX1dFQl9BUkNISVZF
KQorI2RlZmluZSBFTkFCTEVfV0VCX0FSQ0hJVkUgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChF
TkFCTEVfV0VCR0wpCisjZGVmaW5lIEVOQUJMRV9XRUJHTCAxCisjZW5kaWYKKworI2lmICFkZWZp
bmVkKEVOQUJMRV9HRU9MT0NBVElPTikKKyNkZWZpbmUgRU5BQkxFX0dFT0xPQ0FUSU9OIDEKKyNl
bmRpZgorCisjZW5kaWYgLyogUExBVEZPUk0oV0lOX0NBSVJPKSAqLworCisvKiBFTkFCTEUgbWFj
cm8gZGVmYXVsdHMgZm9yIFdlYkNvcmUgKi8KKy8qIERvIG5vdCB1c2UgUExBVEZPUk0oKSB0ZXN0
cyBpbiB0aGlzIHNlY3Rpb24gISAqLworCisjaWYgIWRlZmluZWQoRU5BQkxFXzNEX1RSQU5TRk9S
TVMpCisjZGVmaW5lIEVOQUJMRV8zRF9UUkFOU0ZPUk1TIDAKKyNlbmRpZgorCisjaWYgIWRlZmlu
ZWQoRU5BQkxFX0FDQ0VTU0lCSUxJVFkpCisjZGVmaW5lIEVOQUJMRV9BQ0NFU1NJQklMSVRZIDEK
KyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykKKyNk
ZWZpbmUgRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUyAwCisjZW5kaWYKKworI2lmICFkZWZp
bmVkKEVOQUJMRV9PVkVSRkxPV19TQ1JPTExJTkdfVE9VQ0gpCisjZGVmaW5lIEVOQUJMRV9PVkVS
RkxPV19TQ1JPTExJTkdfVE9VQ0ggMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQVBO
RykKKyNkZWZpbmUgRU5BQkxFX0FQTkcgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVf
Q0hBTk5FTF9NRVNTQUdJTkcpCisjZGVmaW5lIEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORyAxCisj
ZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9DT05URU5UX0VYVEVOU0lPTlMpCisjZGVmaW5l
IEVOQUJMRV9DT05URU5UX0VYVEVOU0lPTlMgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFC
TEVfQ09OVEVYVF9NRU5VUykKKyNkZWZpbmUgRU5BQkxFX0NPTlRFWFRfTUVOVVMgMQorI2VuZGlm
CisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQ09OVEVYVF9NRU5VX0VWRU5UKQorI2RlZmluZSBFTkFC
TEVfQ09OVEVYVF9NRU5VX0VWRU5UIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0NT
UzNfVEVYVCkKKyNkZWZpbmUgRU5BQkxFX0NTUzNfVEVYVCAwCisjZW5kaWYKKworI2lmICFkZWZp
bmVkKEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUspCisjZGVmaW5lIEVOQUJMRV9DU1Nf
Qk9YX0RFQ09SQVRJT05fQlJFQUsgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQ1NT
X0RFVklDRV9BREFQVEFUSU9OKQorI2RlZmluZSBFTkFCTEVfQ1NTX0RFVklDRV9BREFQVEFUSU9O
IDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0NTU19DT01QT1NJVElORykKKyNkZWZp
bmUgRU5BQkxFX0NTU19DT01QT1NJVElORyAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJM
RV9DU1NfSU1BR0VfUkVTT0xVVElPTikKKyNkZWZpbmUgRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVU
SU9OIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0NTU19DT05JQ19HUkFESUVOVFMp
CisjZGVmaW5lIEVOQUJMRV9DU1NfQ09OSUNfR1JBRElFTlRTIDAKKyNlbmRpZgorCisjaWYgIWRl
ZmluZWQoRU5BQkxFX0NVU1RPTV9DVVJTT1JfU1VQUE9SVCkKKyNkZWZpbmUgRU5BQkxFX0NVU1RP
TV9DVVJTT1JfU1VQUE9SVCAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9DVVNUT01f
U0NIRU1FX0hBTkRMRVIpCisjZGVmaW5lIEVOQUJMRV9DVVNUT01fU0NIRU1FX0hBTkRMRVIgMAor
I2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfREFSS19NT0RFX0NTUykKKyNkZWZpbmUgRU5B
QkxFX0RBUktfTU9ERV9DU1MgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfREFUQUxJ
U1RfRUxFTUVOVCkKKyNkZWZpbmUgRU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQgMAorI2VuZGlmCisK
KyNpZiAhZGVmaW5lZChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKQorI2RlZmluZSBFTkFCTEVf
REVWSUNFX09SSUVOVEFUSU9OIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0RPV05M
T0FEX0FUVFJJQlVURSkKKyNkZWZpbmUgRU5BQkxFX0RPV05MT0FEX0FUVFJJQlVURSAxCisjZW5k
aWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9EUkFHX1NVUFBPUlQpCisjZGVmaW5lIEVOQUJMRV9E
UkFHX1NVUFBPUlQgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfRU5DUllQVEVEX01F
RElBKQorI2RlZmluZSBFTkFCTEVfRU5DUllQVEVEX01FRElBIDAKKyNlbmRpZgorCisjaWYgIWRl
ZmluZWQoRU5BQkxFX0ZJTFRFUlNfTEVWRUxfMikKKyNkZWZpbmUgRU5BQkxFX0ZJTFRFUlNfTEVW
RUxfMiAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9GVFBESVIpCisjZGVmaW5lIEVO
QUJMRV9GVFBESVIgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfRlVMTFNDUkVFTl9B
UEkpCisjZGVmaW5lIEVOQUJMRV9GVUxMU0NSRUVOX0FQSSAwCisjZW5kaWYKKworI2lmICFkZWZp
bmVkKEVOQUJMRV9HQU1FUEFEKQorI2RlZmluZSBFTkFCTEVfR0FNRVBBRCAwCisjZW5kaWYKKwor
I2lmICFkZWZpbmVkKEVOQUJMRV9HRU9MT0NBVElPTikKKyNkZWZpbmUgRU5BQkxFX0dFT0xPQ0FU
SU9OIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpCisj
ZGVmaW5lIEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQo
RU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUykKKyNkZWZpbmUgRU5BQkxFX0lOREVY
RURfREFUQUJBU0VfSU5fV09SS0VSUyAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9J
TlBVVF9UWVBFX0NPTE9SKQorI2RlZmluZSBFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUiAxCisjZW5k
aWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpCisjZGVmaW5lIEVOQUJM
RV9JTlBVVF9UWVBFX0RBVEUgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfSU5QVVRf
VFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKQorI2RlZmluZSBFTkFCTEVfSU5QVVRfVFlQRV9EQVRF
VElNRV9JTkNPTVBMRVRFIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0lOUFVUX1RZ
UEVfREFURVRJTUVMT0NBTCkKKyNkZWZpbmUgRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NB
TCAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKQorI2Rl
ZmluZSBFTkFCTEVfSU5QVVRfVFlQRV9NT05USCAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVO
QUJMRV9JTlBVVF9UWVBFX1RJTUUpCisjZGVmaW5lIEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUgMAor
I2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKQorI2RlZmluZSBF
TkFCTEVfSU5QVVRfVFlQRV9XRUVLIDAKKyNlbmRpZgorCisjaWYgRU5BQkxFKElOUFVUX1RZUEVf
REFURSkgfHwgRU5BQkxFKElOUFVUX1RZUEVfREFURVRJTUVfSU5DT01QTEVURSkgfHwgRU5BQkxF
KElOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgfHwgRU5BQkxFKElOUFVUX1RZUEVfTU9OVEgpIHx8
IEVOQUJMRShJTlBVVF9UWVBFX1RJTUUpIHx8IEVOQUJMRShJTlBVVF9UWVBFX1dFRUspCisjaWYg
IWRlZmluZWQoRU5BQkxFX0RBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCisjZGVmaW5lIEVOQUJM
RV9EQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTIDEKKyNlbmRpZgorI2VuZGlmCisKKyNpZiAhZGVm
aW5lZChFTkFCTEVfSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUykKKyNkZWZpbmUgRU5B
QkxFX0lOU1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hFUlMgMAorI2VuZGlmCisKKyNpZiAhZGVm
aW5lZChFTkFCTEVfSU5TUEVDVE9SX1RFTEVNRVRSWSkKKyNkZWZpbmUgRU5BQkxFX0lOU1BFQ1RP
Ul9URUxFTUVUUlkgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfSU5UTCkKKyNkZWZp
bmUgRU5BQkxFX0lOVEwgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTEFZT1VUX0ZP
Uk1BVFRJTkdfQ09OVEVYVCkKKyNkZWZpbmUgRU5BQkxFX0xBWU9VVF9GT1JNQVRUSU5HX0NPTlRF
WFQgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJF
RklYRVMpCisjZGVmaW5lIEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUyAwCisjZW5k
aWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9MRVRURVJQUkVTUykKKyNkZWZpbmUgRU5BQkxFX0xF
VFRFUlBSRVNTIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX01BVEhNTCkKKyNkZWZp
bmUgRU5BQkxFX01BVEhNTCAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9NRURJQV9D
QVBUVVJFKQorI2RlZmluZSBFTkFCTEVfTUVESUFfQ0FQVFVSRSAwCisjZW5kaWYKKworI2lmICFk
ZWZpbmVkKEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQpCisjZGVmaW5lIEVOQUJMRV9NRURJ
QV9DT05UUk9MU19TQ1JJUFQgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTUVESUFf
U09VUkNFKQorI2RlZmluZSBFTkFCTEVfTUVESUFfU09VUkNFIDAKKyNlbmRpZgorCisjaWYgIWRl
ZmluZWQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpCisjZGVmaW5lIEVOQUJMRV9NRURJQV9TVEFU
SVNUSUNTIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX01FRElBX1NUUkVBTSkKKyNk
ZWZpbmUgRU5BQkxFX01FRElBX1NUUkVBTSAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJM
RV9NRVRFUl9FTEVNRU5UKQorI2RlZmluZSBFTkFCTEVfTUVURVJfRUxFTUVOVCAxCisjZW5kaWYK
KworI2lmICFkZWZpbmVkKEVOQUJMRV9NSFRNTCkKKyNkZWZpbmUgRU5BQkxFX01IVE1MIDAKKyNl
bmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FMRSkKKyNkZWZpbmUg
RU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FMRSAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJM
RV9NT1VTRV9GT1JDRV9FVkVOVFMpCisjZGVmaW5lIEVOQUJMRV9NT1VTRV9GT1JDRV9FVkVOVFMg
MQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTkVUU0NBUEVfUExVR0lOX0FQSSkKKyNk
ZWZpbmUgRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9BUEkgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5l
ZChFTkFCTEVfTkVUU0NBUEVfUExVR0lOX01FVEFEQVRBX0NBQ0hFKQorI2RlZmluZSBFTkFCTEVf
TkVUU0NBUEVfUExVR0lOX01FVEFEQVRBX0NBQ0hFIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQo
RU5BQkxFX05PVElGSUNBVElPTlMpCisjZGVmaW5lIEVOQUJMRV9OT1RJRklDQVRJT05TIDAKKyNl
bmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX09GRlNDUkVFTl9DQU5WQVMpCisjZGVmaW5lIEVO
QUJMRV9PRkZTQ1JFRU5fQ0FOVkFTIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX09S
SUVOVEFUSU9OX0VWRU5UUykKKyNkZWZpbmUgRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUyAwCisj
ZW5kaWYKKworI2lmIE9TKFdJTkRPV1MpCisjaWYgIWRlZmluZWQoRU5BQkxFX1BBTl9TQ1JPTExJ
TkcpCisjZGVmaW5lIEVOQUJMRV9QQU5fU0NST0xMSU5HIDEKKyNlbmRpZgorI2VuZGlmCisKKyNp
ZiAhZGVmaW5lZChFTkFCTEVfUEFZTUVOVF9SRVFVRVNUKQorI2RlZmluZSBFTkFCTEVfUEFZTUVO
VF9SRVFVRVNUIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1BPSU5URVJfTE9DSykK
KyNkZWZpbmUgRU5BQkxFX1BPSU5URVJfTE9DSyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVO
QUJMRV9RVU9UQSkKKyNkZWZpbmUgRU5BQkxFX1FVT1RBIDAKKyNlbmRpZgorCisjaWYgIWRlZmlu
ZWQoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpCisjZGVmaW5lIEVOQUJMRV9SRU1PVEVfSU5TUEVD
VE9SIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1JVQkJFUl9CQU5ESU5HKQorI2Rl
ZmluZSBFTkFCTEVfUlVCQkVSX0JBTkRJTkcgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFC
TEVfU0VDVVJJVFlfQVNTRVJUSU9OUykKKy8qIEVuYWJsZSBzZWN1cml0eSBhc3NlcnRpb25zIG9u
IGFsbCBBU0FOIGJ1aWxkcyBhbmQgZGVidWcgYnVpbGRzLiAqLworI2lmIEFTQU5fRU5BQkxFRCB8
fCAhZGVmaW5lZChOREVCVUcpCisjZGVmaW5lIEVOQUJMRV9TRUNVUklUWV9BU1NFUlRJT05TIDEK
KyNlbmRpZgorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfU01PT1RIX1NDUk9MTElORykK
KyNkZWZpbmUgRU5BQkxFX1NNT09USF9TQ1JPTExJTkcgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5l
ZChFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUykKKyNkZWZpbmUgRU5BQkxFX1NQRUVDSF9TWU5USEVT
SVMgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfU1BFTExDSEVDSykKKyNkZWZpbmUg
RU5BQkxFX1NQRUxMQ0hFQ0sgMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfU1RSRUFN
U19BUEkpCisjZGVmaW5lIEVOQUJMRV9TVFJFQU1TX0FQSSAxCisjZW5kaWYKKworI2lmICFkZWZp
bmVkKEVOQUJMRV9TVkdfRk9OVFMpCisjZGVmaW5lIEVOQUJMRV9TVkdfRk9OVFMgMQorI2VuZGlm
CisKKyNpZiAhZGVmaW5lZChFTkFCTEVfVEVYVF9DQVJFVCkKKyNkZWZpbmUgRU5BQkxFX1RFWFRf
Q0FSRVQgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfVEVYVF9TRUxFQ1RJT04pCisj
ZGVmaW5lIEVOQUJMRV9URVhUX1NFTEVDVElPTiAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVO
QUJMRV9BU1lOQ19TQ1JPTExJTkcpCisjZGVmaW5lIEVOQUJMRV9BU1lOQ19TQ1JPTExJTkcgMAor
I2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfVE9VQ0hfRVZFTlRTKQorI2RlZmluZSBFTkFC
TEVfVE9VQ0hfRVZFTlRTIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX1ZJREVPKQor
I2RlZmluZSBFTkFCTEVfVklERU8gMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfVklE
RU9fVFJBQ0spCisjZGVmaW5lIEVOQUJMRV9WSURFT19UUkFDSyAwCisjZW5kaWYKKworI2lmICFk
ZWZpbmVkKEVOQUJMRV9EQVRBQ1VFX1ZBTFVFKQorI2RlZmluZSBFTkFCTEVfREFUQUNVRV9WQUxV
RSAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJHTCkKKyNkZWZpbmUgRU5BQkxF
X1dFQkdMIDAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0dSQVBISUNTX0NPTlRFWFRf
R0wpCisjZGVmaW5lIEVOQUJMRV9HUkFQSElDU19DT05URVhUX0dMIEVOQUJMRV9XRUJHTAorI2Vu
ZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfV0VCX0FSQ0hJVkUpCisjZGVmaW5lIEVOQUJMRV9X
RUJfQVJDSElWRSAwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJfQVVESU8pCisj
ZGVmaW5lIEVOQUJMRV9XRUJfQVVESU8gMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVf
WFNMVCkKKyNkZWZpbmUgRU5BQkxFX1hTTFQgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFC
TEVfREFUQV9JTlRFUkFDVElPTikKKyNkZWZpbmUgRU5BQkxFX0RBVEFfSU5URVJBQ1RJT04gMAor
I2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfU0VSVklDRV9XT1JLRVIpCisjZGVmaW5lIEVO
QUJMRV9TRVJWSUNFX1dPUktFUiAxCisjZW5kaWYKKworCisvKiBKSVQgRmVhdHVyZXMgKi8KKwor
LyogVGhlIEpJVCBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgb24gYWxsIHg4Ni02NCAmIEFSTTY0IHBs
YXRmb3Jtcy4gKi8KKyNpZiAhZGVmaW5lZChFTkFCTEVfSklUKSAmJiAoQ1BVKFg4Nl82NCkgfHwg
Q1BVKEFSTTY0KSkgJiYgIUNQVShBUFBMRV9BUk1WN0spCisjZGVmaW5lIEVOQUJMRV9KSVQgMQor
I2VuZGlmCisKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorI2lmIChDUFUoQVJNX1RIVU1CMikgfHwg
Q1BVKE1JUFMpKSAmJiBPUyhMSU5VWCkKKy8qIE9uIEFSTXY3IGFuZCBNSVBTIG9uIExpbnV4IHRo
ZSBKSVQgaXMgZW5hYmxlZCB1bmxlc3MgZXhwbGljaXRseSBkaXNhYmxlZC4gKi8KKyNpZiAhZGVm
aW5lZChFTkFCTEVfSklUKQorI2RlZmluZSBFTkFCTEVfSklUIDEKKyNlbmRpZgorI2Vsc2UKKy8q
IERpc2FibGUgSklUIGFuZCBmb3JjZSBDX0xPT1Agb24gYWxsIG90aGVyIDMyYml0IGFyY2hpdGVj
dHVyZXMuICovCisjdW5kZWYgRU5BQkxFX0pJVAorI2RlZmluZSBFTkFCTEVfSklUIDAKKyN1bmRl
ZiBFTkFCTEVfQ19MT09QCisjZGVmaW5lIEVOQUJMRV9DX0xPT1AgMQorI2VuZGlmCisjZW5kaWYK
KworI2lmICFkZWZpbmVkKEVOQUJMRV9DX0xPT1ApCisjaWYgRU5BQkxFKEpJVCkgfHwgQ1BVKFg4
Nl82NCkgfHwgKENQVShBUk02NCkgJiYgIWRlZmluZWQoX19JTFAzMl9fKSkKKyNkZWZpbmUgRU5B
QkxFX0NfTE9PUCAwCisjZWxzZQorI2RlZmluZSBFTkFCTEVfQ19MT09QIDEKKyNlbmRpZgorI2Vu
ZGlmCisKKy8qIEZJWE1FOiBUaGlzIHNob3VsZCBiZSB0dXJuZWQgaW50byBhbiAjZXJyb3IgaW52
YXJpYW50ICovCisvKiBUaGUgRlRMICpkb2VzIG5vdCogd29yayBvbiAzMi1iaXQgcGxhdGZvcm1z
LiBEaXNhYmxlIGl0IGV2ZW4gaWYgc29tZW9uZSBhc2tlZCB1cyB0byBlbmFibGUgaXQuICovCisj
aWYgVVNFKEpTVkFMVUUzMl82NCkKKyN1bmRlZiBFTkFCTEVfRlRMX0pJVAorI2RlZmluZSBFTkFC
TEVfRlRMX0pJVCAwCisjZW5kaWYKKworLyogRklYTUU6IFRoaXMgc2hvdWxkIGJlIHR1cm5lZCBp
bnRvIGFuICNlcnJvciBpbnZhcmlhbnQgKi8KKy8qIFRoZSBGVEwgaXMgZGlzYWJsZWQgb24gdGhl
IGlPUyBzaW11bGF0b3IsIG1vc3RseSBmb3Igc2ltcGxpY2l0eS4gKi8KKyNpZiBQTEFURk9STShJ
T1NfRkFNSUxZX1NJTVVMQVRPUikKKyN1bmRlZiBFTkFCTEVfRlRMX0pJVAorI2RlZmluZSBFTkFC
TEVfRlRMX0pJVCAwCisjZW5kaWYKKworLyogSWYgcG9zc2libGUsIHRyeSB0byBlbmFibGUgYSBk
aXNhc3NlbWJsZXIuIFRoaXMgaXMgb3B0aW9uYWwuIFdlIHByb2NlZWQgaW4gdHdvCisgICBzdGVw
czogZmlyc3Qgd2UgdHJ5IHRvIGZpbmQgc29tZSBkaXNhc3NlbWJsZXIgdGhhdCB3ZSBjYW4gdXNl
LCBhbmQgdGhlbiB3ZQorICAgZGVjaWRlIGlmIHRoZSBoaWdoLWxldmVsIGRpc2Fzc2VtYmxlciBB
UEkgY2FuIGJlIGVuYWJsZWQuICovCisjaWYgIWRlZmluZWQoRU5BQkxFX1VESVM4NikgJiYgRU5B
QkxFKEpJVCkgJiYgQ1BVKFg4Nl82NCkgJiYgIVVTRShDQVBTVE9ORSkKKyNkZWZpbmUgRU5BQkxF
X1VESVM4NiAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9BUk02NF9ESVNBU1NFTUJM
RVIpICYmIEVOQUJMRShKSVQpICYmIENQVShBUk02NCkgJiYgIVVTRShDQVBTVE9ORSkKKyNkZWZp
bmUgRU5BQkxFX0FSTTY0X0RJU0FTU0VNQkxFUiAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVO
QUJMRV9ESVNBU1NFTUJMRVIpICYmIChFTkFCTEUoVURJUzg2KSB8fCBFTkFCTEUoQVJNNjRfRElT
QVNTRU1CTEVSKSB8fCAoRU5BQkxFKEpJVCkgJiYgVVNFKENBUFNUT05FKSkpCisjZGVmaW5lIEVO
QUJMRV9ESVNBU1NFTUJMRVIgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfREZHX0pJ
VCkgJiYgRU5BQkxFKEpJVCkKKworLyogRW5hYmxlIHRoZSBERkcgSklUIG9uIFg4NiBhbmQgWDg2
XzY0LiAqLworI2lmIENQVShYODZfNjQpICYmIChPUyhEQVJXSU4pIHx8IE9TKExJTlVYKSB8fCBP
UyhGUkVFQlNEKSB8fCBPUyhIVVJEKSB8fCBPUyhXSU5ET1dTKSkKKyNkZWZpbmUgRU5BQkxFX0RG
R19KSVQgMQorI2VuZGlmCisKKy8qIEVuYWJsZSB0aGUgREZHIEpJVCBvbiBBUk12Ny4gIE9ubHkg
dGVzdGVkIG9uIGlPUywgTGludXgsIGFuZCBGcmVlQlNELiAqLworI2lmIChDUFUoQVJNX1RIVU1C
MikgfHwgQ1BVKEFSTTY0KSkgJiYgKE9TKERBUldJTikgfHwgT1MoTElOVVgpIHx8IE9TKEZSRUVC
U0QpKQorI2RlZmluZSBFTkFCTEVfREZHX0pJVCAxCisjZW5kaWYKKworLyogRW5hYmxlIHRoZSBE
RkcgSklUIG9uIE1JUFMuICovCisjaWYgQ1BVKE1JUFMpCisjZGVmaW5lIEVOQUJMRV9ERkdfSklU
IDEKKyNlbmRpZgorCisjZW5kaWYgLyogIWRlZmluZWQoRU5BQkxFX0RGR19KSVQpICYmIEVOQUJM
RShKSVQpICovCisKKy8qIENvbmN1cnJlbnQgSlMgb25seSB3b3JrcyBvbiA2NC1iaXQgcGxhdGZv
cm1zIGJlY2F1c2UgaXQgcmVxdWlyZXMgdGhhdAorICAgdmFsdWVzIGdldCBzdG9yZWQgdG8gYXRv
bWljYWxseS4gVGhpcyBpcyB0cml2aWFsbHkgdHJ1ZSBvbiA2NC1iaXQgcGxhdGZvcm1zLAorICAg
YnV0IG5vdCB0cnVlIGF0IGFsbCBvbiAzMi1iaXQgcGxhdGZvcm1zIHdoZXJlIHZhbHVlcyBhcmUg
Y29tcG9zZWQgb2YgdHdvCisgICBzZXBhcmF0ZSBzdWItdmFsdWVzLiAqLworI2lmIEVOQUJMRShK
SVQpICYmIFVTRShKU1ZBTFVFNjQpCisjZGVmaW5lIEVOQUJMRV9DT05DVVJSRU5UX0pTIDEKKyNl
bmRpZgorCisjaWYgKENQVShYODZfNjQpIHx8IENQVShBUk02NCkpICYmIEhBVkUoRkFTVF9UTFMp
CisjZGVmaW5lIEVOQUJMRV9GQVNUX1RMU19KSVQgMQorI2VuZGlmCisKKyNpZiBFTkFCTEUoSklU
KSAmJiAoQ1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTV9USFVNQjIpIHx8IENQVShB
Uk02NCkgfHwgQ1BVKE1JUFMpKQorI2RlZmluZSBFTkFCTEVfTUFTTV9QUk9CRSAxCisjZW5kaWYK
KworLyogRklYTUU6IFRoaXMgc2hvdWxkIGJlIHR1cm5lZCBpbnRvIGFuICNlcnJvciBpbnZhcmlh
bnQgKi8KKy8qIElmIHRoZSBiYXNlbGluZSBqaXQgaXMgbm90IGF2YWlsYWJsZSwgdGhlbiBkaXNh
YmxlIHVwcGVyIHRpZXJzIGFzIHdlbGwuCisgICBUaGUgTWFjcm9Bc3NlbWJsZXI6OnByb2JlKCkg
aXMgYWxzbyByZXF1aXJlZCBmb3Igc3VwcG9ydGluZyB0aGUgdXBwZXIgdGllcnMuICovCisjaWYg
IUVOQUJMRShKSVQpIHx8ICFFTkFCTEUoTUFTTV9QUk9CRSkKKyN1bmRlZiBFTkFCTEVfREZHX0pJ
VAorI3VuZGVmIEVOQUJMRV9GVExfSklUCisjZGVmaW5lIEVOQUJMRV9ERkdfSklUIDAKKyNkZWZp
bmUgRU5BQkxFX0ZUTF9KSVQgMAorI2VuZGlmCisKKy8qIEZJWE1FOiBUaGlzIHNob3VsZCBiZSB0
dXJuZWQgaW50byBhbiAjZXJyb3IgaW52YXJpYW50ICovCisvKiBJZiB0aGUgREZHIGppdCBpcyBu
b3QgYXZhaWxhYmxlLCB0aGVuIGRpc2FibGUgdXBwZXIgdGllcnMgYXMgd2VsbDogKi8KKyNpZiAh
RU5BQkxFKERGR19KSVQpCisjdW5kZWYgRU5BQkxFX0ZUTF9KSVQKKyNkZWZpbmUgRU5BQkxFX0ZU
TF9KSVQgMAorI2VuZGlmCisKKy8qIFRoaXMgY29udHJvbHMgd2hldGhlciBCMyBpcyBidWlsdC4g
QjMgaXMgbmVlZGVkIGZvciBGVEwgSklUIGFuZCBXZWJBc3NlbWJseSAqLworI2lmIEVOQUJMRShG
VExfSklUKQorI2RlZmluZSBFTkFCTEVfQjNfSklUIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQo
RU5BQkxFX1dFQkFTU0VNQkxZKSAmJiAoRU5BQkxFKEIzX0pJVCkgJiYgUExBVEZPUk0oQ09DT0Ep
ICYmIENQVShBRERSRVNTNjQpKQorI2RlZmluZSBFTkFCTEVfV0VCQVNTRU1CTFkgMQorI2VuZGlm
CisKKy8qIFRoZSBTYW1wbGluZ1Byb2ZpbGVyIGlzIHRoZSBwcm9iYWJpbGlzdGljIGFuZCBsb3ct
b3ZlcmhlYWQgcHJvZmlsZXIgdXNlZCBieQorICogSlNDIHRvIG1lYXN1cmUgd2hlcmUgdGltZSBp
cyBzcGVudCBpbnNpZGUgYSBKYXZhU2NyaXB0IHByb2dyYW0uCisgKiBJbiBjb25maWd1cmF0aW9u
cyBvdGhlciB0aGFuIFdpbmRvd3MgYW5kIERhcndpbiwgYmVjYXVzZSBsYXlvdXQgb2YgbWNvbnRl
eHRfdCBkZXBlbmRzIG9uIHN0YW5kYXJkIGxpYnJhcmllcyAobGlrZSBnbGliYyksCisgKiBzYW1w
bGluZyBwcm9maWxlciBpcyBlbmFibGVkIGlmIFdlYktpdCB1c2VzIHB0aHJlYWRzIGFuZCBnbGli
Yy4gKi8KKyNpZiAhZGVmaW5lZChFTkFCTEVfU0FNUExJTkdfUFJPRklMRVIpICYmICghRU5BQkxF
KENfTE9PUCkgJiYgKE9TKFdJTkRPV1MpIHx8IEhBVkUoTUFDSElORV9DT05URVhUKSkpCisjZGVm
aW5lIEVOQUJMRV9TQU1QTElOR19QUk9GSUxFUiAxCisjZW5kaWYKKworI2lmIEVOQUJMRShXRUJB
U1NFTUJMWSkgJiYgSEFWRShNQUNISU5FX0NPTlRFWFQpCisjZGVmaW5lIEVOQUJMRV9XRUJBU1NF
TUJMWV9GQVNUX01FTU9SWSAxCisjZW5kaWYKKworLyogQ291bnRzIHVzZXMgb2Ygd3JpdGUgYmFy
cmllcnMgdXNpbmcgc2FtcGxpbmcgY291bnRlcnMuIEJlIHN1cmUgdG8gYWxzbworICAgc2V0IEVO
QUJMRV9TQU1QTElOR19DT1VOVEVSUyB0byAxLiAqLworI2lmICFkZWZpbmVkKEVOQUJMRV9XUklU
RV9CQVJSSUVSX1BST0ZJTElORykKKyNkZWZpbmUgRU5BQkxFX1dSSVRFX0JBUlJJRVJfUFJPRklM
SU5HIDAKKyNlbmRpZgorCisvKiBMb2dzIGFsbCBhbGxvY2F0aW9uLXJlbGF0ZWQgYWN0aXZpdHkg
dGhhdCBnb2VzIHRocm91Z2ggZmFzdE1hbGxvYyBvciB0aGUKKyAgIEpTQyBHQyAoYm90aCBjZWxs
cyBhbmQgYnV0dGVyZmxpZXMpLiBBbHNvIGxvZ3MgbWFya2luZy4gTm90ZSB0aGF0IHRoaXMKKyAg
IGlzbid0IGEgY29tcGxldGVseSBhY2N1cmF0ZSB2aWV3IG9mIHRoZSBoZWFwIHNpbmNlIGl0IGRv
ZXNuJ3QgaW5jbHVkZSBhbGwKKyAgIGJ1dHRlcmZseSByZXNpemUgb3BlcmF0aW9ucywgZG9lc24n
dCB0ZWxsIHlvdSB3aGF0IGlzIGdvaW5nIG9uIHdpdGggd2VhaworICAgcmVmZXJlbmNlcyAob3Ro
ZXIgdGhhbiB0byB0ZWxsIHlvdSB3aGVuIHRoZXkncmUgbWFya2VkKSwgYW5kIGRvZXNuJ3QKKyAg
IHRyYWNrIGRpcmVjdCBtbWFwKCkgYWxsb2NhdGlvbnMgb3IgdGhpbmdzIGxpa2UgSklUIGFsbG9j
YXRpb24uICovCisjaWYgIWRlZmluZWQoRU5BQkxFX0FMTE9DQVRJT05fTE9HR0lORykKKyNkZWZp
bmUgRU5BQkxFX0FMTE9DQVRJT05fTE9HR0lORyAwCisjZW5kaWYKKworLyogRW5hYmxlIHZlcmlm
aWNhdGlvbiB0aGF0IHRoYXQgcmVnaXN0ZXIgYWxsb2NhdGlvbnMgYXJlIG5vdCBtYWRlIHdpdGhp
biBnZW5lcmF0ZWQgY29udHJvbCBmbG93LgorICAgVHVybmVkIG9uIGZvciBkZWJ1ZyBidWlsZHMu
ICovCisjaWYgIWRlZmluZWQoRU5BQkxFX0RGR19SRUdJU1RFUl9BTExPQ0FUSU9OX1ZBTElEQVRJ
T04pICYmIEVOQUJMRShERkdfSklUKSAmJiAhZGVmaW5lZChOREVCVUcpCisjZGVmaW5lIEVOQUJM
RV9ERkdfUkVHSVNURVJfQUxMT0NBVElPTl9WQUxJREFUSU9OIDEKKyNlbmRpZgorCisjaWYgIWRl
ZmluZWQoRU5BQkxFX1NFUEFSQVRFRF9XWF9IRUFQKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKSAm
JiBDUFUoQVJNNjQpICYmICghRU5BQkxFKEZBU1RfSklUX1BFUk1JU1NJT05TKSB8fCAhQ1BVKEFS
TTY0RSkpCisjZGVmaW5lIEVOQUJMRV9TRVBBUkFURURfV1hfSEVBUCAxCisjZW5kaWYKKworLyog
RGV0ZXJtaW5lIGlmIHdlIG5lZWQgdG8gZW5hYmxlIENvbXB1dGVkIEdvdG8gT3Bjb2RlcyBvciBu
b3Q6ICovCisjaWYgSEFWRShDT01QVVRFRF9HT1RPKSB8fCAhRU5BQkxFKENfTE9PUCkKKyNkZWZp
bmUgRU5BQkxFX0NPTVBVVEVEX0dPVE9fT1BDT0RFUyAxCisjZW5kaWYKKworLyogUmVndWxhciBF
eHByZXNzaW9uIFRyYWNpbmcgLSBTZXQgdG8gMSB0byB0cmFjZSBSZWdFeHAncyBpbiBqc2MuICBS
ZXN1bHRzIGR1bXBlZCBhdCBleGl0ICovCisjaWYgIWRlZmluZWQoRU5BQkxFX1JFR0VYUF9UUkFD
SU5HKQorI2RlZmluZSBFTkFCTEVfUkVHRVhQX1RSQUNJTkcgMAorI2VuZGlmCisKKy8qIFlldCBB
bm90aGVyIFJlZ2V4IFJ1bnRpbWUgLSB0dXJuZWQgb24gYnkgZGVmYXVsdCBmb3IgSklUIGVuYWJs
ZWQgcG9ydHMuICovCisjaWYgIWRlZmluZWQoRU5BQkxFX1lBUlJfSklUKSAmJiBFTkFCTEUoSklU
KQorI2RlZmluZSBFTkFCTEVfWUFSUl9KSVQgMQorI2VuZGlmCisKKy8qIFNldHRpbmcgdGhpcyBm
bGFnIGNvbXBhcmVzIEpJVCByZXN1bHRzIHdpdGggaW50ZXJwcmV0ZXIgcmVzdWx0cy4gKi8KKyNp
ZiAhZGVmaW5lZChFTkFCTEVfWUFSUl9KSVQpICYmIEVOQUJMRShKSVQpCisjZGVmaW5lIEVOQUJM
RV9ZQVJSX0pJVF9ERUJVRyAwCisjZW5kaWYKKworLyogRW5hYmxlIEpJVCdpbmcgUmVndWxhciBF
eHByZXNzaW9ucyB0aGF0IGhhdmUgbmVzdGVkIHBhcmVudGhlc2lzIC4gKi8KKyNpZiBFTkFCTEUo
WUFSUl9KSVQpICYmIChDUFUoQVJNNjQpIHx8IChDUFUoWDg2XzY0KSAmJiAhT1MoV0lORE9XUykp
KQorI2RlZmluZSBFTkFCTEVfWUFSUl9KSVRfQUxMX1BBUkVOU19FWFBSRVNTSU9OUyAxCisjZW5k
aWYKKworLyogRW5hYmxlIEpJVCdpbmcgUmVndWxhciBFeHByZXNzaW9ucyB0aGF0IGhhdmUgbmVz
dGVkIGJhY2sgcmVmZXJlbmNlcy4gKi8KKyNpZiBFTkFCTEUoWUFSUl9KSVQpICYmIChDUFUoQVJN
NjQpIHx8IChDUFUoWDg2XzY0KSAmJiAhT1MoV0lORE9XUykpKQorI2RlZmluZSBFTkFCTEVfWUFS
Ul9KSVRfQkFDS1JFRkVSRU5DRVMgMQorI2VuZGlmCisKKy8qIElmIGVpdGhlciB0aGUgSklUIG9y
IHRoZSBSZWdFeHAgSklUIGlzIGVuYWJsZWQsIHRoZW4gdGhlIEFzc2VtYmxlciBtdXN0IGJlCisg
ICBlbmFibGVkIGFzIHdlbGw6ICovCisjaWYgRU5BQkxFKEpJVCkgfHwgRU5BQkxFKFlBUlJfSklU
KSB8fCAhRU5BQkxFKENfTE9PUCkKKyNpZiBkZWZpbmVkKEVOQUJMRV9BU1NFTUJMRVIpICYmICFF
TkFCTEVfQVNTRU1CTEVSCisjZXJyb3IgIkNhbm5vdCBlbmFibGUgdGhlIEpJVCBvciBSZWdFeHAg
SklUIHdpdGhvdXQgZW5hYmxpbmcgdGhlIEFzc2VtYmxlciIKKyNlbHNlCisjdW5kZWYgRU5BQkxF
X0FTU0VNQkxFUgorI2RlZmluZSBFTkFCTEVfQVNTRU1CTEVSIDEKKyNlbmRpZgorI2VuZGlmCisK
Ky8qIElmIHRoZSBEaXNhc3NlbWJsZXIgaXMgZW5hYmxlZCwgdGhlbiB0aGUgQXNzZW1ibGVyIG11
c3QgYmUgZW5hYmxlZCBhcyB3ZWxsOiAqLworI2lmIEVOQUJMRShESVNBU1NFTUJMRVIpCisjaWYg
ZGVmaW5lZChFTkFCTEVfQVNTRU1CTEVSKSAmJiAhRU5BQkxFX0FTU0VNQkxFUgorI2Vycm9yICJD
YW5ub3QgZW5hYmxlIHRoZSBEaXNhc3NlbWJsZXIgd2l0aG91dCBlbmFibGluZyB0aGUgQXNzZW1i
bGVyIgorI2Vsc2UKKyN1bmRlZiBFTkFCTEVfQVNTRU1CTEVSCisjZGVmaW5lIEVOQUJMRV9BU1NF
TUJMRVIgMQorI2VuZGlmCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9FWENFUFRJT05f
U0NPUEVfVkVSSUZJQ0FUSU9OKQorI2RlZmluZSBFTkFCTEVfRVhDRVBUSU9OX1NDT1BFX1ZFUklG
SUNBVElPTiBBU1NFUlRfRU5BQkxFRAorI2VuZGlmCisKKyNpZiBFTkFCTEUoREZHX0pJVCkgJiYg
SEFWRShNQUNISU5FX0NPTlRFWFQpICYmIChDUFUoWDg2XzY0KSB8fCBDUFUoQVJNNjQpKQorI2Rl
ZmluZSBFTkFCTEVfU0lHTkFMX0JBU0VEX1ZNX1RSQVBTIDEKKyNlbmRpZgorCisvKiBDU1MgU2Vs
ZWN0b3IgSklUIENvbXBpbGVyICovCisjaWYgIWRlZmluZWQoRU5BQkxFX0NTU19TRUxFQ1RPUl9K
SVQpICYmICgoQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTTY0KSB8fCAoQ1BVKEFSTV9USFVNQjIpICYm
IE9TKERBUldJTikpKSAmJiBFTkFCTEUoSklUKSAmJiAoT1MoREFSV0lOKSB8fCBQTEFURk9STShH
VEspIHx8IFBMQVRGT1JNKFdQRSkpKQorI2RlZmluZSBFTkFCTEVfQ1NTX1NFTEVDVE9SX0pJVCAx
CisjZW5kaWYKKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiAhUExBVEZPUk0oV0FUQ0hPUykgJiYg
IVBMQVRGT1JNKEFQUExFVFYpICYmICFQTEFURk9STShNQUNDQVRBTFlTVCkKKyNkZWZpbmUgRU5B
QkxFX0RBVEFfREVURUNUSU9OIDEKKyNlbmRpZgorCisjaWYgQ1BVKEFSTV9USFVNQjIpIHx8IENQ
VShBUk02NCkKKyNkZWZpbmUgRU5BQkxFX0JSQU5DSF9DT01QQUNUSU9OIDEKKyNlbmRpZgorCisj
aWYgIWRlZmluZWQoRU5BQkxFX1RIUkVBRElOR19MSUJESVNQQVRDSCkgJiYgSEFWRShESVNQQVRD
SF9IKQorI2RlZmluZSBFTkFCTEVfVEhSRUFESU5HX0xJQkRJU1BBVENIIDEKKyNlbGlmICFkZWZp
bmVkKEVOQUJMRV9USFJFQURJTkdfT1BFTk1QKSAmJiBkZWZpbmVkKF9PUEVOTVApCisjZGVmaW5l
IEVOQUJMRV9USFJFQURJTkdfT1BFTk1QIDEKKyNlbGlmICFkZWZpbmVkKFRIUkVBRElOR19HRU5F
UklDKQorI2RlZmluZSBFTkFCTEVfVEhSRUFESU5HX0dFTkVSSUMgMQorI2VuZGlmCisKKyNpZiAh
ZGVmaW5lZChFTkFCTEVfR0NfVkFMSURBVElPTikgJiYgIWRlZmluZWQoTkRFQlVHKQorI2RlZmlu
ZSBFTkFCTEVfR0NfVkFMSURBVElPTiAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9C
SU5ESU5HX0lOVEVHUklUWSkgJiYgIU9TKFdJTkRPV1MpCisjZGVmaW5lIEVOQUJMRV9CSU5ESU5H
X0lOVEVHUklUWSAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9UUkVFX0RFQlVHR0lO
RykgJiYgIWRlZmluZWQoTkRFQlVHKQorI2RlZmluZSBFTkFCTEVfVFJFRV9ERUJVR0dJTkcgMQor
I2VuZGlmCisKKyNpZiBQTEFURk9STShDT0NPQSkKKyNkZWZpbmUgRU5BQkxFX1JFU09VUkNFX1VT
QUdFIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX09QRU5UWVBFX1ZFUlRJQ0FMKSAm
JiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKKyNkZWZpbmUgRU5BQkxFX09QRU5UWVBF
X1ZFUlRJQ0FMIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX09QRU5UWVBFX01BVEgp
ICYmIChPUyhEQVJXSU4pICYmIFVTRShDRykpIHx8IChVU0UoRlJFRVRZUEUpICYmICFQTEFURk9S
TShHVEspKSB8fCAoUExBVEZPUk0oV0lOKSAmJiAoVVNFKENHKSB8fCBVU0UoQ0FJUk8pKSkKKyNk
ZWZpbmUgRU5BQkxFX09QRU5UWVBFX01BVEggMQorI2VuZGlmCisKKy8qCisgKiBFbmFibGUgdGhp
cyB0byBwdXQgZWFjaCBJc29IZWFwIGFuZCBvdGhlciBhbGxvY2F0aW9uIGNhdGVnb3JpZXMgaW50
byB0aGVpciBvd24gbWFsbG9jIGhlYXBzLCBzbyB0aGF0IHRvb2xzIGxpa2Ugdm1tYXAgY2FuIHNo
b3cgaG93IGJpZyBlYWNoIGhlYXAgaXMuCisgKiBUdXJuIEJFTkFCTEVfTUFMTE9DX0hFQVBfQlJF
QUtET1dOIG9uIGluIGJtYWxsb2MgdG9nZXRoZXIgd2hlbiB1c2luZyB0aGlzLgorICovCisjaWYg
IWRlZmluZWQoRU5BQkxFX01BTExPQ19IRUFQX0JSRUFLRE9XTikKKyNkZWZpbmUgRU5BQkxFX01B
TExPQ19IRUFQX0JSRUFLRE9XTiAwCisjZW5kaWYKKworLyogRGlzYWJsZSBTaGFyZWRBcnJheUJ1
ZmZlcnMgdW50aWwgU3BlY3RyZSBzZWN1cml0eSBjb25jZXJucyBhcmUgbWl0aWdhdGVkLiAqLwor
I2RlZmluZSBFTkFCTEVfU0hBUkVEX0FSUkFZX0JVRkZFUiAwCisKKyNpZiBQTEFURk9STShNQUMp
CisjZGVmaW5lIEVOQUJMRV9XRUJfUExBWUJBQ0tfQ09OVFJPTFNfTUFOQUdFUiAxCisjZW5kaWYK
KworI2lmIFBMQVRGT1JNKENPQ09BKQorLyogRklYTUU6IFRoaXMgaXMgYSBVU0Ugc3R5bGUgbWFj
cm8sIGFzIGl0IHRyaWdnZXJzIHRoZSB1c2Ugb2YgQ0ZVUkxDb25uZWN0aW9uIGZyYW1ld29yayBz
dHVicy4gKi8KKy8qIEZJWE1FOiBJcyB0aGlzIHN0aWxsIG5lY2Vzc2FyeT8gQ0ZVUkxDb25uZWN0
aW9uIGlzbid0IHVzZWQgb24gQ29jb2EgcGxhdGZvcm1zIGFueSBtb3JlLiAqLworI2RlZmluZSBF
TkFCTEVfU0VDX0lURU1fU0hJTSAxCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKE1BQykKKyNkZWZp
bmUgRU5BQkxFX0ZVTExfS0VZQk9BUkRfQUNDRVNTIDEKKyNlbmRpZgorCisjaWYgKChQTEFURk9S
TShDT0NPQSkgfHwgUExBVEZPUk0oUExBWVNUQVRJT04pIHx8IFBMQVRGT1JNKFdQRSkpICYmIEVO
QUJMRShBU1lOQ19TQ1JPTExJTkcpKSB8fCBQTEFURk9STShHVEspCisjZGVmaW5lIEVOQUJMRV9L
SU5FVElDX1NDUk9MTElORyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9NT05PU1BB
Q0VfRk9OVF9FWENFUFRJT04pICYmICgoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEIDwgMTAxNTAwKSB8fCBQTEFURk9STShXQVRDSE9TKSB8fCBQTEFURk9S
TShBUFBMRVRWKSkKKyNkZWZpbmUgRU5BQkxFX01PTk9TUEFDRV9GT05UX0VYQ0VQVElPTiAxCisj
ZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9QTEFURk9STV9EUklWRU5fVEVYVF9DSEVDS0lO
RykgJiYgUExBVEZPUk0oTUFDQ0FUQUxZU1QpCisjZGVmaW5lIEVOQUJMRV9QTEFURk9STV9EUklW
RU5fVEVYVF9DSEVDS0lORyAxCisjZW5kaWYKKworLyogVGhpcyBmZWF0dXJlIHdvcmtzIGJ5IGVt
YmVkZGluZyB0aGUgT3Bjb2RlSUQgaW4gdGhlIDMyIGJpdCBqdXN0IGJlZm9yZSB0aGUgZ2VuZXJh
dGVkIExMaW50IGNvZGUKKyAgIHRoYXQgZXhlY3V0ZXMgZWFjaCBvcGNvZGUuIEl0IGNhbm5vdCBi
ZSBzdXBwb3J0ZWQgYnkgdGhlIENMb29wIHNpbmNlIHRoZXJlJ3Mgbm8gd2F5IHRvIGVtYmVkIHRo
ZQorICAgT3Bjb2RlSUQgd29yZCBpbiB0aGUgQ0xvb3AncyBzd2l0Y2ggc3RhdGVtZW50IGNhc2Vz
LiBJdCBpcyBhbHNvIGN1cnJlbnRseSBub3QgaW1wbGVtZW50ZWQgZm9yIE1TVkMuCisqLworI2lm
ICFkZWZpbmVkKEVOQUJMRV9MTElOVF9FTUJFRERFRF9PUENPREVfSUQpICYmICFFTkFCTEUoQ19M
T09QKSAmJiAhQ09NUElMRVIoTVNWQykgJiYgKENQVShYODYpIHx8IENQVShYODZfNjQpIHx8IENQ
VShBUk02NCkgfHwgKENQVShBUk1fVEhVTUIyKSAmJiBPUyhEQVJXSU4pKSkKKyNkZWZpbmUgRU5B
QkxFX0xMSU5UX0VNQkVEREVEX09QQ09ERV9JRCAxCisjZW5kaWYKKworCisvKiBBc3NlcnRzLCBp
bnZhcmlhbnRzIGZvciBtYWNybyBkZWZpbml0aW9ucyAqLworCisjaWYgRU5BQkxFKFZJREVPX1RS
QUNLKSAmJiAhRU5BQkxFKFZJREVPKQorI2Vycm9yICJFTkFCTEUoVklERU9fVFJBQ0spIHJlcXVp
cmVzIEVOQUJMRShWSURFTykiCisjZW5kaWYKKworI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19T
Q1JJUFQpICYmICFFTkFCTEUoVklERU8pCisjZXJyb3IgIkVOQUJMRShNRURJQV9DT05UUk9MU19T
Q1JJUFQpIHJlcXVpcmVzIEVOQUJMRShWSURFTykiCisjZW5kaWYKKworI2lmIEVOQUJMRShJTlNQ
RUNUT1JfQUxURVJOQVRFX0RJU1BBVENIRVJTKSAmJiAhRU5BQkxFKFJFTU9URV9JTlNQRUNUT1Ip
CisjZXJyb3IgIkVOQUJMRShJTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENIRVJTKSByZXF1aXJl
cyBFTkFCTEUoUkVNT1RFX0lOU1BFQ1RPUikiCisjZW5kaWYKKworI2lmIEVOQUJMRShJT1NfVE9V
Q0hfRVZFTlRTKSAmJiAhRU5BQkxFKFRPVUNIX0VWRU5UUykKKyNlcnJvciAiRU5BQkxFKElPU19U
T1VDSF9FVkVOVFMpIHJlcXVpcmVzIEVOQUJMRShUT1VDSF9FVkVOVFMpIgorI2VuZGlmCisKKyNp
ZiBFTkFCTEUoV0VCR0wpICYmICFFTkFCTEUoR1JBUEhJQ1NfQ09OVEVYVF9HTCkKKyNlcnJvciAi
RU5BQkxFKFdFQkdMKSByZXF1aXJlcyBFTkFCTEUoR1JBUEhJQ1NfQ09OVEVYVF9HTCkiCisjZW5k
aWYKKworI2lmIEVOQUJMRShXRUJHTDIpICYmICFFTkFCTEUoV0VCR0wpCisjZXJyb3IgIkVOQUJM
RShXRUJHTDIpIHJlcXVpcmVzIEVOQUJMRShXRUJHTCkiCisjZW5kaWYKSW5kZXg6IFNvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtRW5hYmxlV2luQ2Fpcm8uaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RG
L3d0Zi9QbGF0Zm9ybUVuYWJsZVdpbkNhaXJvLmgJKHJldmlzaW9uIDI1NTU1MikKKysrIFNvdXJj
ZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlV2luQ2Fpcm8uaAkod29ya2luZyBjb3B5KQpAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxOSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOSBUb3JjaCBNb2Jp
bGUsIEluYy4KICAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAxMSBSZXNlYXJjaCBJbiBNb3Rpb24g
TGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMyBTYW1z
dW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgpAQCAtMzIsMzI4ICszMiwxNiBA
QAogI2Vycm9yICJQbGVhc2UgI2luY2x1ZGUgPHd0Zi9QbGF0Zm9ybS5oPiBpbnN0ZWFkIG9mIHRo
aXMgZmlsZSBkaXJlY3RseS4iCiAjZW5kaWYKIAotCi0jZGVmaW5lIEVOQUJMRShXVEZfRkVBVFVS
RSkgKGRlZmluZWQgRU5BQkxFXyMjV1RGX0ZFQVRVUkUgJiYgRU5BQkxFXyMjV1RGX0ZFQVRVUkUp
Ci0KLS8qIFVzZSB0aGlzIGZpbGUgdG8gbGlzdCBfYWxsXyBFTkFCTEUoKSBtYWNyb3MuIERlZmlu
ZSB0aGUgbWFjcm9zIHRvIGJlIG9uZSBvZiB0aGUgZm9sbG93aW5nIHZhbHVlczoKLSAqICAtICIw
IiBkaXNhYmxlcyB0aGUgZmVhdHVyZSBieSBkZWZhdWx0LiBUaGUgZmVhdHVyZSBjYW4gc3RpbGwg
YmUgZW5hYmxlZCBmb3IgYSBzcGVjaWZpYyBwb3J0IG9yIGVudmlyb25tZW50LgotICogIC0gIjEi
IGVuYWJsZXMgdGhlIGZlYXR1cmUgYnkgZGVmYXVsdC4gVGhlIGZlYXR1cmUgY2FuIHN0aWxsIGJl
IGRpc2FibGVkIGZvciBhIHNwZWNpZmljIHBvcnQgb3IgZW52aXJvbm1lbnQuCi0gKgotICogVGhl
IGZlYXR1cmUgZGVmYXVsdHMgaW4gdGhpcyBmaWxlIGFyZSBvbmx5IHRha2VuIGludG8gYWNjb3Vu
dCBpZiB0aGUgKHBvcnQgc3BlY2lmaWMpIGJ1aWxkIHN5c3RlbQotICogaGFzIG5vdCBlbmFibGVk
IG9yIGRpc2FibGVkIGEgcGFydGljdWxhciBmZWF0dXJlLgotICoKLSAqIFVzZSB0aGlzIGZpbGUg
dG8gZGVmaW5lIEVOQUJMRSgpIG1hY3JvcyBvbmx5LiBEbyBub3QgdXNlIHRoaXMgZmlsZSB0byBk
ZWZpbmUgVVNFKCkgb3IgbWFjcm9zICEKLSAqCi0gKiBPbmx5IGRlZmluZSBhIG1hY3JvIGlmIGl0
IHdhcyBub3QgZGVmaW5lZCBiZWZvcmUgLSBhbHdheXMgY2hlY2sgZm9yICFkZWZpbmVkIGZpcnN0
LgotICoKLSAqIEtlZXAgdGhlIGZpbGUgc29ydGVkIGJ5IHRoZSBuYW1lIG9mIHRoZSBkZWZpbmVz
LiBBcyBhbiBleGNlcHRpb24geW91IGNhbiBjaGFuZ2UgdGhlIG9yZGVyCi0gKiB0byBhbGxvdyBp
bnRlcmRlcGVuZGVuY2llcyBiZXR3ZWVuIHRoZSBkZWZhdWx0IHZhbHVlcy4KLSAqCi0gKiBCZWxv
dyBhcmUgYSBmZXcgcG90ZW50aWFsIGNvbW1hbmRzIHRvIHRha2UgYWR2YW50YWdlIG9mIHRoaXMg
ZmlsZSBydW5uaW5nIGZyb20gdGhlIFNvdXJjZS9XVEYgZGlyZWN0b3J5Ci0gKgotICogR2V0IHRo
ZSBsaXN0IG9mIGZlYXR1cmUgZGVmaW5lczogZ3JlcCAtbyAiRU5BQkxFX1woXHdcK1wpIiB3dGYv
UGxhdGZvcm1FbmFibGUuaCB8IHNvcnQgfCB1bmlxCi0gKiBHZXQgdGhlIGxpc3Qgb2YgZmVhdHVy
ZXMgZW5hYmxlZCBieSBkZWZhdWx0IGZvciBhIFBMQVRGT1JNKFhYWCk6IGdjYyAtRSAtZE0gLUku
IC1EV1RGX1BMQVRGT1JNX1hYWCAid3RmL1BsYXRmb3JtLmgiIHwgZ3JlcCAiRU5BQkxFX1x3XCsg
MSIgfCBjdXQgLWQnICcgLWYyIHwgc29ydAotICovCi0KLQotLyogRklYTUU6IFRoaXMgc2hvdWxk
IGJlIHJlbmFtZWQgdG8gRU5BQkxFX0FTU0VSVFMgZm9yIGNvbnNpc3RlbmN5IGFuZCBzbyBpdCBj
YW4gYmUgdXNlZCBhcyBFTkFCTEUoQVNTRVJUUykuICovCi0vKiBBU1NFUlRfRU5BQkxFRCBzaG91
bGQgYmUgdHJ1ZSBpZiB3ZSB3YW50IHRoZSBjdXJyZW50IGNvbXBpbGF0aW9uIHVuaXQgdG8KLSAg
IGRvIGRlYnVnIGFzc2VydGlvbiBjaGVja3MgdW5jb25kaXRpb25hbGx5IChlLmcuIHRyZWF0IGEg
ZGVidWcgQVNTRVJUCi0gICBsaWtlIGEgUkVMRUFTRV9BU1NFUlQuCi0qLwotI2lmbmRlZiBBU1NF
UlRfRU5BQkxFRAotI2lmZGVmIE5ERUJVRwotI2RlZmluZSBBU1NFUlRfRU5BQkxFRCAwCi0jZWxz
ZQotI2RlZmluZSBBU1NFUlRfRU5BQkxFRCAxCi0jZW5kaWYKLSNlbmRpZgotCi0vKiA9PT09IFBs
YXRmb3JtIGFkZGl0aW9uczogYWRkaXRpb25zIHRvIFBsYXRmb3JtRW5hYmxlLmggZnJvbSBvdXRz
aWRlIHRoZSBtYWluIHJlcG9zaXRvcnkgPT09PSAqLwotCi0jaWYgVVNFKEFQUExFX0lOVEVSTkFM
X1NESykgJiYgX19oYXNfaW5jbHVkZSg8V2ViS2l0QWRkaXRpb25zL0FkZGl0aW9uYWxGZWF0dXJl
RGVmaW5lcy5oPikKLSNpbmNsdWRlIDxXZWJLaXRBZGRpdGlvbnMvQWRkaXRpb25hbEZlYXR1cmVE
ZWZpbmVzLmg+Ci0jZW5kaWYKLQotLyogRklYTUU6IE1vdmUgb3V0IHRoZSBQTEFURk9STSBzcGVj
aWZpYyBydWxlcyBpbnRvIHBsYXRmb3JtIHNwZWNpZmljIGZpbGVzLiAqLwotCi0vKiAtLS0tLS0t
LS0gQXBwbGUgaU9TIChidXQgbm90IG1hY09TKSBwb3J0IC0tLS0tLS0tLSAqLwotI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfQUlSUExBWV9QSUNLRVIpCi0j
aWYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQotI2RlZmluZSBFTkFCTEVfQUlSUExBWV9QSUNLRVIg
MQotI2VuZGlmCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9BUFBMRV9QQVlfUkVNT1RF
X1VJKQotI2lmICFQTEFURk9STShBUFBMRVRWKSAmJiAhUExBVEZPUk0oTUFDQ0FUQUxZU1QpICYm
ICFQTEFURk9STShXQVRDSE9TKQotI2RlZmluZSBFTkFCTEVfQVBQTEVfUEFZX1JFTU9URV9VSSAx
Ci0jZW5kaWYKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0NPTlRFTlRfRVhURU5TSU9O
UykKLSNkZWZpbmUgRU5BQkxFX0NPTlRFTlRfRVhURU5TSU9OUyAxCi0jZW5kaWYKLQotI2lmICFk
ZWZpbmVkKEVOQUJMRV9DT05URVhUX01FTlVTKQotI2RlZmluZSBFTkFCTEVfQ09OVEVYVF9NRU5V
UyAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9DT05URVhUX01FTlVfRVZFTlQpCi0j
aWYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQotI2RlZmluZSBFTkFCTEVfQ09OVEVYVF9NRU5VX0VW
RU5UIDAKLSNlbmRpZgotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfQ1VTVE9NX0NVUlNP
Ul9TVVBQT1JUKQotI2RlZmluZSBFTkFCTEVfQ1VTVE9NX0NVUlNPUl9TVVBQT1JUIDAKLSNlbmRp
ZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0RSQUdfU1VQUE9SVCkKLSNkZWZpbmUgRU5BQkxFX0RS
QUdfU1VQUE9SVCAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9HRU9MT0NBVElPTikK
LSNkZWZpbmUgRU5BQkxFX0dFT0xPQ0FUSU9OIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5B
QkxFX0lOU1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hFUlMpCi0jZGVmaW5lIEVOQUJMRV9JTlNQ
RUNUT1JfQUxURVJOQVRFX0RJU1BBVENIRVJTIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5B
QkxFX0lOU1BFQ1RPUl9URUxFTUVUUlkpCi0jZGVmaW5lIEVOQUJMRV9JTlNQRUNUT1JfVEVMRU1F
VFJZIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0xFVFRFUlBSRVNTKQotI2RlZmlu
ZSBFTkFCTEVfTEVUVEVSUFJFU1MgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfQVVU
T0NPUlJFQ1QpCi0jZGVmaW5lIEVOQUJMRV9BVVRPQ09SUkVDVCAxCi0jZW5kaWYKLQotI2lmICFk
ZWZpbmVkKEVOQUJMRV9BVVRPQ0FQSVRBTElaRSkKLSNkZWZpbmUgRU5BQkxFX0FVVE9DQVBJVEFM
SVpFIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0lPU19HRVNUVVJFX0VWRU5UUykg
JiYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKLSNkZWZpbmUgRU5BQkxFX0lPU19HRVNUVVJFX0VW
RU5UUyAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9URVhUX0FVVE9TSVpJTkcpCi0j
ZGVmaW5lIEVOQUJMRV9URVhUX0FVVE9TSVpJTkcgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChF
TkFCTEVfSU9TX1RPVUNIX0VWRU5UUykgJiYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKLSNkZWZp
bmUgRU5BQkxFX0lPU19UT1VDSF9FVkVOVFMgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFC
TEVfTUVURVJfRUxFTUVOVCkKLSNkZWZpbmUgRU5BQkxFX01FVEVSX0VMRU1FTlQgMAotI2VuZGlm
Ci0KLSNpZiAhZGVmaW5lZChFTkFCTEVfTkVUU0NBUEVfUExVR0lOX0FQSSkKLSNkZWZpbmUgRU5B
QkxFX05FVFNDQVBFX1BMVUdJTl9BUEkgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVf
T1JJRU5UQVRJT05fRVZFTlRTKQotI2RlZmluZSBFTkFCTEVfT1JJRU5UQVRJT05fRVZFTlRTIDEK
LSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX1BPSU5URVJfTE9DSykKLSNkZWZpbmUgRU5B
QkxFX1BPSU5URVJfTE9DSyAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9SRU1PVEVf
SU5TUEVDVE9SKQotI2RlZmluZSBFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUiAxCi0jZW5kaWYKLQot
I2lmICFkZWZpbmVkKEVOQUJMRV9URVhUX0NBUkVUKQotI2RlZmluZSBFTkFCTEVfVEVYVF9DQVJF
VCAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9URVhUX1NFTEVDVElPTikKLSNkZWZp
bmUgRU5BQkxFX1RFWFRfU0VMRUNUSU9OIDAKLSNlbmRpZgotCi0vKiBGSVhNRTogUmVtb3ZlIHRo
ZSBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKSBjb25qdW5jdCBvbmNlIHdlIHN1cHBvcnQgdG91Y2gg
ZXZlbnRzIHdoZW4gYnVpbGRpbmcgYWdhaW5zdAotdGhlIHB1YmxpYyBpT1MgU0RLLiBTZWUgPGh0
dHBzOi8vd2Via2l0Lm9yZy9iLzE3OTE2Nz4uICovCi0jaWYgIWRlZmluZWQoRU5BQkxFX1RPVUNI
X0VWRU5UUykgJiYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKLSNkZWZpbmUgRU5BQkxFX1RPVUNI
X0VWRU5UUyAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJfQVJDSElWRSkKLSNk
ZWZpbmUgRU5BQkxFX1dFQl9BUkNISVZFIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxF
X1dFQkdMKQotI2RlZmluZSBFTkFCTEVfV0VCR0wgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChF
TkFCTEVfUFJJTUFSWV9TTkFQU0hPVFRFRF9QTFVHSU5fSEVVUklTVElDKQotI2RlZmluZSBFTkFC
TEVfUFJJTUFSWV9TTkFQU0hPVFRFRF9QTFVHSU5fSEVVUklTVElDIDEKLSNlbmRpZgotCi0jaWYg
IWRlZmluZWQoRU5BQkxFX0RPV05MT0FEX0FUVFJJQlVURSkKLSNkZWZpbmUgRU5BQkxFX0RPV05M
T0FEX0FUVFJJQlVURSAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9XS1BERlZJRVcp
ICYmIFBMQVRGT1JNKElPUykKLSNkZWZpbmUgRU5BQkxFX1dLUERGVklFVyAxCi0jZW5kaWYKLQot
I2lmICFkZWZpbmVkKEVOQUJMRV9NRURJQV9TT1VSQ0UpCi0jZGVmaW5lIEVOQUJMRV9NRURJQV9T
T1VSQ0UgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfUFJFVklFV19DT05WRVJURVIp
ICYmIFBMQVRGT1JNKElPUykKLSNkZWZpbmUgRU5BQkxFX1BSRVZJRVdfQ09OVkVSVEVSIDEKLSNl
bmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX01FVEFfVklFV1BPUlQpCi0jZGVmaW5lIEVOQUJM
RV9NRVRBX1ZJRVdQT1JUIDEKLSNlbmRpZgotCi0jZW5kaWYgLyogUExBVEZPUk0oSU9TX0ZBTUlM
WSkgKi8KLQotLyogLS0tLS0tLS0tIEFwcGxlIHdhdGNoT1MgcG9ydCAtLS0tLS0tLS0gKi8KLSNp
ZiBQTEFURk9STShXQVRDSE9TKQotCi0jZW5kaWYgLyogUExBVEZPUk0oV0FUQ0hPUykgKi8KLQot
LyogLS0tLS0tLS0tIEFwcGxlIG1hY09TIHBvcnQgKG5vdCBpT1MpIC0tLS0tLS0tLSAqLwotI2lm
IFBMQVRGT1JNKE1BQykKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9DT05URU5UX0VYVEVOU0lPTlMp
Ci0jZGVmaW5lIEVOQUJMRV9DT05URU5UX0VYVEVOU0lPTlMgMQotI2VuZGlmCi0KLSNpZiAhZGVm
aW5lZChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpCi0jZGVmaW5lIEVOQUJMRV9GVUxMU0NSRUVOX0FQ
SSAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9SRU1PVEVfSU5TUEVDVE9SKQotI2Rl
ZmluZSBFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUiAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVO
QUJMRV9JTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENIRVJTKQotI2RlZmluZSBFTkFCTEVfSU5T
UEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUyAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVO
QUJMRV9JTlNQRUNUT1JfVEVMRU1FVFJZKQotI2RlZmluZSBFTkFCTEVfSU5TUEVDVE9SX1RFTEVN
RVRSWSAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9TTU9PVEhfU0NST0xMSU5HKQot
I2RlZmluZSBFTkFCTEVfU01PT1RIX1NDUk9MTElORyAxCi0jZW5kaWYKLQotI2lmIEVOQUJMRShW
SURFTykKLSNpZiAhZGVmaW5lZChFTkFCTEVfVklERU9fVFJBQ0spCi0jZGVmaW5lIEVOQUJMRV9W
SURFT19UUkFDSyAxCi0jZW5kaWYKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX1dFQl9B
UkNISVZFKQotI2RlZmluZSBFTkFCTEVfV0VCX0FSQ0hJVkUgMQotI2VuZGlmCi0KLSNpZiAhZGVm
aW5lZChFTkFCTEVfV0VCX0FVRElPKQotI2RlZmluZSBFTkFCTEVfV0VCX0FVRElPIDEKLSNlbmRp
ZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKQotI2RlZmluZSBFTkFC
TEVfQ1VSU09SX1ZJU0lCSUxJVFkgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfUFJJ
TUFSWV9TTkFQU0hPVFRFRF9QTFVHSU5fSEVVUklTVElDKQotI2RlZmluZSBFTkFCTEVfUFJJTUFS
WV9TTkFQU0hPVFRFRF9QTFVHSU5fSEVVUklTVElDIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQo
RU5BQkxFX01BQ19HRVNUVVJFX0VWRU5UUykgJiYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKLSNk
ZWZpbmUgRU5BQkxFX01BQ19HRVNUVVJFX0VWRU5UUyAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVk
KEVOQUJMRV9XRUJQUk9DRVNTX05TUlVOTE9PUCkKLSNkZWZpbmUgRU5BQkxFX1dFQlBST0NFU1Nf
TlNSVU5MT09QIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNDAwCi0jZW5k
aWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lO
RykKLSNkZWZpbmUgRU5BQkxFX1dFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HIEVOQUJM
RV9XRUJQUk9DRVNTX05TUlVOTE9PUAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfTUVE
SUFfU09VUkNFKQotI2RlZmluZSBFTkFCTEVfTUVESUFfU09VUkNFIDEKLSNlbmRpZgotCi0jZW5k
aWYgLyogUExBVEZPUk0oTUFDKSAqLwotCi0vKiAtLS0tLS0tLS0gQXBwbGUgQ29jb2EgcGxhdGZv
cm1zIC0tLS0tLS0tLSAqLwotCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0KLSNpZiAhZGVmaW5lZChF
TkFCTEVfTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkKLSNpZiBQTEFURk9STShNQUNDQVRBTFlTVCkK
LSNkZWZpbmUgRU5BQkxFX0xFR0FDWV9FTkNSWVBURURfTUVESUEgMAotI2Vsc2UKLSNkZWZpbmUg
RU5BQkxFX0xFR0FDWV9FTkNSWVBURURfTUVESUEgMQotI2VuZGlmCisjaWYgIVBMQVRGT1JNKFdJ
Tl9DQUlSTykKKyNlcnJvciAiVGhpcyBmaWxlIHNob3VsZCBvbmx5IGJlIGluY2x1ZGVkIHdoZW4g
YnVpbGRpbmcgdGhlIFdpbmRvd3MgQ0FJUk8gcG9ydC4iCiAjZW5kaWYKIAotI2lmICFkZWZpbmVk
KEVOQUJMRV9GSUxFX1JFUExBQ0VNRU5UKQotI2RlZmluZSBFTkFCTEVfRklMRV9SRVBMQUNFTUVO
VCAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9QQVlNRU5UX1JFUVVFU1QpCi0jZGVm
aW5lIEVOQUJMRV9QQVlNRU5UX1JFUVVFU1QgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFC
TEVfQVNZTkNfU0NST0xMSU5HKQotI2RlZmluZSBFTkFCTEVfQVNZTkNfU0NST0xMSU5HIDEKLSNl
bmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX1VJX1NJREVfQ09NUE9TSVRJTkcpCi0jZGVmaW5l
IEVOQUJMRV9VSV9TSURFX0NPTVBPU0lUSU5HIDEKLSNlbmRpZgotCi0jZW5kaWYgLyogUExBVEZP
Uk0oQ09DT0EpICovCi0KLSNpZiAhUExBVEZPUk0oQ09DT0EpCi0KLSNpZiAhZGVmaW5lZChKU0Nf
T0JKQ19BUElfRU5BQkxFRCkKLSNkZWZpbmUgSlNDX09CSkNfQVBJX0VOQUJMRUQgMAotI2VuZGlm
Ci0KLSNlbmRpZiAvKiAhUExBVEZPUk0oQ09DT0EpICovCi0KLQotLyogLS0tLS0tLS0tIEFwcGxl
IFdpbmRvd3MgcG9ydCAtLS0tLS0tLS0gKi8KLSNpZiBQTEFURk9STShXSU4pICYmICFQTEFURk9S
TShXSU5fQ0FJUk8pCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpCi0jZGVm
aW5lIEVOQUJMRV9GVUxMU0NSRUVOX0FQSSAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJM
RV9XRUJfQVJDSElWRSkKLSNkZWZpbmUgRU5BQkxFX1dFQl9BUkNISVZFIDEKLSNlbmRpZgotCi0j
aWYgIWRlZmluZWQoRU5BQkxFX1dFQkdMKQotI2RlZmluZSBFTkFCTEVfV0VCR0wgMAotI2VuZGlm
Ci0KLSNpZiAhZGVmaW5lZChFTkFCTEVfR0VPTE9DQVRJT04pCi0jZGVmaW5lIEVOQUJMRV9HRU9M
T0NBVElPTiAxCi0jZW5kaWYKLQotI2VuZGlmIC8qIFBMQVRGT1JNKFdJTikgJiYgIVBMQVRGT1JN
KFdJTl9DQUlSTykgKi8KIAogLyogLS0tLS0tLS0tIFdpbmRvd3MgQ0FJUk8gcG9ydCAtLS0tLS0t
LS0gKi8KKwogLyogUExBVEZPUk0oV0lOX0NBSVJPKSBpcyBhIHNwZWNpYWxpemF0aW9uIG9mIFBM
QVRGT1JNKFdJTikuICovCiAvKiBQTEFURk9STShXSU4pIGlzIGFsd2F5cyBlbmFibGVkIHdoZW4g
UExBVEZPUk0oV0lOX0NBSVJPKSBpcyBlbmFibGVkLiAqLwotI2lmIFBMQVRGT1JNKFdJTl9DQUlS
TykKKwogCiAjaWYgIWRlZmluZWQoRU5BQkxFX1dFQl9BUkNISVZFKQogI2RlZmluZSBFTkFCTEVf
V0VCX0FSQ0hJVkUgMQpAQCAtMzY2LDY5MCArNTQsMyBAQCB0aGUgcHVibGljIGlPUyBTREsuIFNl
ZSA8aHR0cHM6Ly93ZWJraXQuCiAjaWYgIWRlZmluZWQoRU5BQkxFX0dFT0xPQ0FUSU9OKQogI2Rl
ZmluZSBFTkFCTEVfR0VPTE9DQVRJT04gMQogI2VuZGlmCi0KLSNlbmRpZiAvKiBQTEFURk9STShX
SU5fQ0FJUk8pICovCi0KLS8qIEVOQUJMRSBtYWNybyBkZWZhdWx0cyBmb3IgV2ViQ29yZSAqLwot
LyogRG8gbm90IHVzZSBQTEFURk9STSgpIHRlc3RzIGluIHRoaXMgc2VjdGlvbiAhICovCi0KLSNp
ZiAhZGVmaW5lZChFTkFCTEVfM0RfVFJBTlNGT1JNUykKLSNkZWZpbmUgRU5BQkxFXzNEX1RSQU5T
Rk9STVMgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfQUNDRVNTSUJJTElUWSkKLSNk
ZWZpbmUgRU5BQkxFX0FDQ0VTU0lCSUxJVFkgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFC
TEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKQotI2RlZmluZSBFTkFCTEVfQUNDRUxFUkFURURfMkRf
Q0FOVkFTIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX09WRVJGTE9XX1NDUk9MTElO
R19UT1VDSCkKLSNkZWZpbmUgRU5BQkxFX09WRVJGTE9XX1NDUk9MTElOR19UT1VDSCAwCi0jZW5k
aWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9BUE5HKQotI2RlZmluZSBFTkFCTEVfQVBORyAxCi0j
ZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykKLSNkZWZpbmUg
RU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxF
X0NPTlRFTlRfRVhURU5TSU9OUykKLSNkZWZpbmUgRU5BQkxFX0NPTlRFTlRfRVhURU5TSU9OUyAw
Ci0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9DT05URVhUX01FTlVTKQotI2RlZmluZSBF
TkFCTEVfQ09OVEVYVF9NRU5VUyAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9DT05U
RVhUX01FTlVfRVZFTlQpCi0jZGVmaW5lIEVOQUJMRV9DT05URVhUX01FTlVfRVZFTlQgMQotI2Vu
ZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTM19URVhUKQotI2RlZmluZSBFTkFCTEVfQ1NT
M19URVhUIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0NTU19CT1hfREVDT1JBVElP
Tl9CUkVBSykKLSNkZWZpbmUgRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSyAxCi0jZW5k
aWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9DU1NfREVWSUNFX0FEQVBUQVRJT04pCi0jZGVmaW5l
IEVOQUJMRV9DU1NfREVWSUNFX0FEQVBUQVRJT04gMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChF
TkFCTEVfQ1NTX0NPTVBPU0lUSU5HKQotI2RlZmluZSBFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HIDAK
LSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKQotI2Rl
ZmluZSBFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04gMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5l
ZChFTkFCTEVfQ1NTX0NPTklDX0dSQURJRU5UUykKLSNkZWZpbmUgRU5BQkxFX0NTU19DT05JQ19H
UkFESUVOVFMgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfQ1VTVE9NX0NVUlNPUl9T
VVBQT1JUKQotI2RlZmluZSBFTkFCTEVfQ1VTVE9NX0NVUlNPUl9TVVBQT1JUIDEKLSNlbmRpZgot
Ci0jaWYgIWRlZmluZWQoRU5BQkxFX0NVU1RPTV9TQ0hFTUVfSEFORExFUikKLSNkZWZpbmUgRU5B
QkxFX0NVU1RPTV9TQ0hFTUVfSEFORExFUiAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJM
RV9EQVJLX01PREVfQ1NTKQotI2RlZmluZSBFTkFCTEVfREFSS19NT0RFX0NTUyAwCi0jZW5kaWYK
LQotI2lmICFkZWZpbmVkKEVOQUJMRV9EQVRBTElTVF9FTEVNRU5UKQotI2RlZmluZSBFTkFCTEVf
REFUQUxJU1RfRUxFTUVOVCAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9ERVZJQ0Vf
T1JJRU5UQVRJT04pCi0jZGVmaW5lIEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04gMAotI2VuZGlm
Ci0KLSNpZiAhZGVmaW5lZChFTkFCTEVfRE9XTkxPQURfQVRUUklCVVRFKQotI2RlZmluZSBFTkFC
TEVfRE9XTkxPQURfQVRUUklCVVRFIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0RS
QUdfU1VQUE9SVCkKLSNkZWZpbmUgRU5BQkxFX0RSQUdfU1VQUE9SVCAxCi0jZW5kaWYKLQotI2lm
ICFkZWZpbmVkKEVOQUJMRV9FTkNSWVBURURfTUVESUEpCi0jZGVmaW5lIEVOQUJMRV9FTkNSWVBU
RURfTUVESUEgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfRklMVEVSU19MRVZFTF8y
KQotI2RlZmluZSBFTkFCTEVfRklMVEVSU19MRVZFTF8yIDAKLSNlbmRpZgotCi0jaWYgIWRlZmlu
ZWQoRU5BQkxFX0ZUUERJUikKLSNkZWZpbmUgRU5BQkxFX0ZUUERJUiAxCi0jZW5kaWYKLQotI2lm
ICFkZWZpbmVkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkKLSNkZWZpbmUgRU5BQkxFX0ZVTExTQ1JF
RU5fQVBJIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0dBTUVQQUQpCi0jZGVmaW5l
IEVOQUJMRV9HQU1FUEFEIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0dFT0xPQ0FU
SU9OKQotI2RlZmluZSBFTkFCTEVfR0VPTE9DQVRJT04gMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5l
ZChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkKLSNkZWZpbmUgRU5BQkxFX0lOREVYRURfREFUQUJB
U0UgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRV9JTl9X
T1JLRVJTKQotI2RlZmluZSBFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJTIDAKLSNl
bmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IpCi0jZGVmaW5lIEVO
QUJMRV9JTlBVVF9UWVBFX0NPTE9SIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0lO
UFVUX1RZUEVfREFURSkKLSNkZWZpbmUgRU5BQkxFX0lOUFVUX1RZUEVfREFURSAwCi0jZW5kaWYK
LQotI2lmICFkZWZpbmVkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUpCi0j
ZGVmaW5lIEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUgMAotI2VuZGlmCi0K
LSNpZiAhZGVmaW5lZChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKQotI2RlZmluZSBF
TkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQo
RU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpCi0jZGVmaW5lIEVOQUJMRV9JTlBVVF9UWVBFX01PTlRI
IDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkKLSNkZWZp
bmUgRU5BQkxFX0lOUFVUX1RZUEVfVElNRSAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJM
RV9JTlBVVF9UWVBFX1dFRUspCi0jZGVmaW5lIEVOQUJMRV9JTlBVVF9UWVBFX1dFRUsgMAotI2Vu
ZGlmCi0KLSNpZiBFTkFCTEUoSU5QVVRfVFlQRV9EQVRFKSB8fCBFTkFCTEUoSU5QVVRfVFlQRV9E
QVRFVElNRV9JTkNPTVBMRVRFKSB8fCBFTkFCTEUoSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSB8
fCBFTkFCTEUoSU5QVVRfVFlQRV9NT05USCkgfHwgRU5BQkxFKElOUFVUX1RZUEVfVElNRSkgfHwg
RU5BQkxFKElOUFVUX1RZUEVfV0VFSykKLSNpZiAhZGVmaW5lZChFTkFCTEVfREFURV9BTkRfVElN
RV9JTlBVVF9UWVBFUykKLSNkZWZpbmUgRU5BQkxFX0RBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMg
MQotI2VuZGlmCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9JTlNQRUNUT1JfQUxURVJO
QVRFX0RJU1BBVENIRVJTKQotI2RlZmluZSBFTkFCTEVfSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQ
QVRDSEVSUyAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9JTlNQRUNUT1JfVEVMRU1F
VFJZKQotI2RlZmluZSBFTkFCTEVfSU5TUEVDVE9SX1RFTEVNRVRSWSAwCi0jZW5kaWYKLQotI2lm
ICFkZWZpbmVkKEVOQUJMRV9JTlRMKQotI2RlZmluZSBFTkFCTEVfSU5UTCAwCi0jZW5kaWYKLQot
I2lmICFkZWZpbmVkKEVOQUJMRV9MQVlPVVRfRk9STUFUVElOR19DT05URVhUKQotI2RlZmluZSBF
TkFCTEVfTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVk
KEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUykKLSNkZWZpbmUgRU5BQkxFX0xFR0FD
WV9DU1NfVkVORE9SX1BSRUZJWEVTIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0xF
VFRFUlBSRVNTKQotI2RlZmluZSBFTkFCTEVfTEVUVEVSUFJFU1MgMAotI2VuZGlmCi0KLSNpZiAh
ZGVmaW5lZChFTkFCTEVfTUFUSE1MKQotI2RlZmluZSBFTkFCTEVfTUFUSE1MIDEKLSNlbmRpZgot
Ci0jaWYgIWRlZmluZWQoRU5BQkxFX01FRElBX0NBUFRVUkUpCi0jZGVmaW5lIEVOQUJMRV9NRURJ
QV9DQVBUVVJFIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX01FRElBX0NPTlRST0xT
X1NDUklQVCkKLSNkZWZpbmUgRU5BQkxFX01FRElBX0NPTlRST0xTX1NDUklQVCAwCi0jZW5kaWYK
LQotI2lmICFkZWZpbmVkKEVOQUJMRV9NRURJQV9TT1VSQ0UpCi0jZGVmaW5lIEVOQUJMRV9NRURJ
QV9TT1VSQ0UgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfTUVESUFfU1RBVElTVElD
UykKLSNkZWZpbmUgRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MgMAotI2VuZGlmCi0KLSNpZiAhZGVm
aW5lZChFTkFCTEVfTUVESUFfU1RSRUFNKQotI2RlZmluZSBFTkFCTEVfTUVESUFfU1RSRUFNIDAK
LSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX01FVEVSX0VMRU1FTlQpCi0jZGVmaW5lIEVO
QUJMRV9NRVRFUl9FTEVNRU5UIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX01IVE1M
KQotI2RlZmluZSBFTkFCTEVfTUhUTUwgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVf
TU9VU0VfQ1VSU09SX1NDQUxFKQotI2RlZmluZSBFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFIDAK
LSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX01PVVNFX0ZPUkNFX0VWRU5UUykKLSNkZWZp
bmUgRU5BQkxFX01PVVNFX0ZPUkNFX0VWRU5UUyAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVO
QUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJKQotI2RlZmluZSBFTkFCTEVfTkVUU0NBUEVfUExVR0lO
X0FQSSAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fTUVU
QURBVEFfQ0FDSEUpCi0jZGVmaW5lIEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fTUVUQURBVEFfQ0FD
SEUgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfTk9USUZJQ0FUSU9OUykKLSNkZWZp
bmUgRU5BQkxFX05PVElGSUNBVElPTlMgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVf
T0ZGU0NSRUVOX0NBTlZBUykKLSNkZWZpbmUgRU5BQkxFX09GRlNDUkVFTl9DQU5WQVMgMAotI2Vu
ZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfT1JJRU5UQVRJT05fRVZFTlRTKQotI2RlZmluZSBF
TkFCTEVfT1JJRU5UQVRJT05fRVZFTlRTIDAKLSNlbmRpZgotCi0jaWYgT1MoV0lORE9XUykKLSNp
ZiAhZGVmaW5lZChFTkFCTEVfUEFOX1NDUk9MTElORykKLSNkZWZpbmUgRU5BQkxFX1BBTl9TQ1JP
TExJTkcgMQotI2VuZGlmCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9QQVlNRU5UX1JF
UVVFU1QpCi0jZGVmaW5lIEVOQUJMRV9QQVlNRU5UX1JFUVVFU1QgMAotI2VuZGlmCi0KLSNpZiAh
ZGVmaW5lZChFTkFCTEVfUE9JTlRFUl9MT0NLKQotI2RlZmluZSBFTkFCTEVfUE9JTlRFUl9MT0NL
IDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX1FVT1RBKQotI2RlZmluZSBFTkFCTEVf
UVVPVEEgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUikK
LSNkZWZpbmUgRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IgMAotI2VuZGlmCi0KLSNpZiAhZGVmaW5l
ZChFTkFCTEVfUlVCQkVSX0JBTkRJTkcpCi0jZGVmaW5lIEVOQUJMRV9SVUJCRVJfQkFORElORyAw
Ci0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9TRUNVUklUWV9BU1NFUlRJT05TKQotLyog
RW5hYmxlIHNlY3VyaXR5IGFzc2VydGlvbnMgb24gYWxsIEFTQU4gYnVpbGRzIGFuZCBkZWJ1ZyBi
dWlsZHMuICovCi0jaWYgQVNBTl9FTkFCTEVEIHx8ICFkZWZpbmVkKE5ERUJVRykKLSNkZWZpbmUg
RU5BQkxFX1NFQ1VSSVRZX0FTU0VSVElPTlMgMQotI2VuZGlmCi0jZW5kaWYKLQotI2lmICFkZWZp
bmVkKEVOQUJMRV9TTU9PVEhfU0NST0xMSU5HKQotI2RlZmluZSBFTkFCTEVfU01PT1RIX1NDUk9M
TElORyAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKQot
I2RlZmluZSBFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUyAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVk
KEVOQUJMRV9TUEVMTENIRUNLKQotI2RlZmluZSBFTkFCTEVfU1BFTExDSEVDSyAwCi0jZW5kaWYK
LQotI2lmICFkZWZpbmVkKEVOQUJMRV9TVFJFQU1TX0FQSSkKLSNkZWZpbmUgRU5BQkxFX1NUUkVB
TVNfQVBJIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX1NWR19GT05UUykKLSNkZWZp
bmUgRU5BQkxFX1NWR19GT05UUyAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9URVhU
X0NBUkVUKQotI2RlZmluZSBFTkFCTEVfVEVYVF9DQVJFVCAxCi0jZW5kaWYKLQotI2lmICFkZWZp
bmVkKEVOQUJMRV9URVhUX1NFTEVDVElPTikKLSNkZWZpbmUgRU5BQkxFX1RFWFRfU0VMRUNUSU9O
IDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0FTWU5DX1NDUk9MTElORykKLSNkZWZp
bmUgRU5BQkxFX0FTWU5DX1NDUk9MTElORyAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJM
RV9UT1VDSF9FVkVOVFMpCi0jZGVmaW5lIEVOQUJMRV9UT1VDSF9FVkVOVFMgMAotI2VuZGlmCi0K
LSNpZiAhZGVmaW5lZChFTkFCTEVfVklERU8pCi0jZGVmaW5lIEVOQUJMRV9WSURFTyAwCi0jZW5k
aWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9WSURFT19UUkFDSykKLSNkZWZpbmUgRU5BQkxFX1ZJ
REVPX1RSQUNLIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0RBVEFDVUVfVkFMVUUp
Ci0jZGVmaW5lIEVOQUJMRV9EQVRBQ1VFX1ZBTFVFIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQo
RU5BQkxFX1dFQkdMKQotI2RlZmluZSBFTkFCTEVfV0VCR0wgMAotI2VuZGlmCi0KLSNpZiAhZGVm
aW5lZChFTkFCTEVfR1JBUEhJQ1NfQ09OVEVYVF9HTCkKLSNkZWZpbmUgRU5BQkxFX0dSQVBISUNT
X0NPTlRFWFRfR0wgRU5BQkxFX1dFQkdMCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9X
RUJfQVJDSElWRSkKLSNkZWZpbmUgRU5BQkxFX1dFQl9BUkNISVZFIDAKLSNlbmRpZgotCi0jaWYg
IWRlZmluZWQoRU5BQkxFX1dFQl9BVURJTykKLSNkZWZpbmUgRU5BQkxFX1dFQl9BVURJTyAwCi0j
ZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9YU0xUKQotI2RlZmluZSBFTkFCTEVfWFNMVCAx
Ci0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9EQVRBX0lOVEVSQUNUSU9OKQotI2RlZmlu
ZSBFTkFCTEVfREFUQV9JTlRFUkFDVElPTiAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJM
RV9TRVJWSUNFX1dPUktFUikKLSNkZWZpbmUgRU5BQkxFX1NFUlZJQ0VfV09SS0VSIDEKLSNlbmRp
ZgotCi0KLS8qIEpJVCBGZWF0dXJlcyAqLwotCi0vKiBUaGUgSklUIGlzIGVuYWJsZWQgYnkgZGVm
YXVsdCBvbiBhbGwgeDg2LTY0ICYgQVJNNjQgcGxhdGZvcm1zLiAqLwotI2lmICFkZWZpbmVkKEVO
QUJMRV9KSVQpICYmIChDUFUoWDg2XzY0KSB8fCBDUFUoQVJNNjQpKSAmJiAhQ1BVKEFQUExFX0FS
TVY3SykKLSNkZWZpbmUgRU5BQkxFX0pJVCAxCi0jZW5kaWYKLQotI2lmIFVTRShKU1ZBTFVFMzJf
NjQpCi0jaWYgKENQVShBUk1fVEhVTUIyKSB8fCBDUFUoTUlQUykpICYmIE9TKExJTlVYKQotLyog
T24gQVJNdjcgYW5kIE1JUFMgb24gTGludXggdGhlIEpJVCBpcyBlbmFibGVkIHVubGVzcyBleHBs
aWNpdGx5IGRpc2FibGVkLiAqLwotI2lmICFkZWZpbmVkKEVOQUJMRV9KSVQpCi0jZGVmaW5lIEVO
QUJMRV9KSVQgMQotI2VuZGlmCi0jZWxzZQotLyogRGlzYWJsZSBKSVQgYW5kIGZvcmNlIENfTE9P
UCBvbiBhbGwgb3RoZXIgMzJiaXQgYXJjaGl0ZWN0dXJlcy4gKi8KLSN1bmRlZiBFTkFCTEVfSklU
Ci0jZGVmaW5lIEVOQUJMRV9KSVQgMAotI3VuZGVmIEVOQUJMRV9DX0xPT1AKLSNkZWZpbmUgRU5B
QkxFX0NfTE9PUCAxCi0jZW5kaWYKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0NfTE9P
UCkKLSNpZiBFTkFCTEUoSklUKSB8fCBDUFUoWDg2XzY0KSB8fCAoQ1BVKEFSTTY0KSAmJiAhZGVm
aW5lZChfX0lMUDMyX18pKQotI2RlZmluZSBFTkFCTEVfQ19MT09QIDAKLSNlbHNlCi0jZGVmaW5l
IEVOQUJMRV9DX0xPT1AgMQotI2VuZGlmCi0jZW5kaWYKLQotLyogRklYTUU6IFRoaXMgc2hvdWxk
IGJlIHR1cm5lZCBpbnRvIGFuICNlcnJvciBpbnZhcmlhbnQgKi8KLS8qIFRoZSBGVEwgKmRvZXMg
bm90KiB3b3JrIG9uIDMyLWJpdCBwbGF0Zm9ybXMuIERpc2FibGUgaXQgZXZlbiBpZiBzb21lb25l
IGFza2VkIHVzIHRvIGVuYWJsZSBpdC4gKi8KLSNpZiBVU0UoSlNWQUxVRTMyXzY0KQotI3VuZGVm
IEVOQUJMRV9GVExfSklUCi0jZGVmaW5lIEVOQUJMRV9GVExfSklUIDAKLSNlbmRpZgotCi0vKiBG
SVhNRTogVGhpcyBzaG91bGQgYmUgdHVybmVkIGludG8gYW4gI2Vycm9yIGludmFyaWFudCAqLwot
LyogVGhlIEZUTCBpcyBkaXNhYmxlZCBvbiB0aGUgaU9TIHNpbXVsYXRvciwgbW9zdGx5IGZvciBz
aW1wbGljaXR5LiAqLwotI2lmIFBMQVRGT1JNKElPU19GQU1JTFlfU0lNVUxBVE9SKQotI3VuZGVm
IEVOQUJMRV9GVExfSklUCi0jZGVmaW5lIEVOQUJMRV9GVExfSklUIDAKLSNlbmRpZgotCi0vKiBJ
ZiBwb3NzaWJsZSwgdHJ5IHRvIGVuYWJsZSBhIGRpc2Fzc2VtYmxlci4gVGhpcyBpcyBvcHRpb25h
bC4gV2UgcHJvY2VlZCBpbiB0d28KLSAgIHN0ZXBzOiBmaXJzdCB3ZSB0cnkgdG8gZmluZCBzb21l
IGRpc2Fzc2VtYmxlciB0aGF0IHdlIGNhbiB1c2UsIGFuZCB0aGVuIHdlCi0gICBkZWNpZGUgaWYg
dGhlIGhpZ2gtbGV2ZWwgZGlzYXNzZW1ibGVyIEFQSSBjYW4gYmUgZW5hYmxlZC4gKi8KLSNpZiAh
ZGVmaW5lZChFTkFCTEVfVURJUzg2KSAmJiBFTkFCTEUoSklUKSAmJiBDUFUoWDg2XzY0KSAmJiAh
VVNFKENBUFNUT05FKQotI2RlZmluZSBFTkFCTEVfVURJUzg2IDEKLSNlbmRpZgotCi0jaWYgIWRl
ZmluZWQoRU5BQkxFX0FSTTY0X0RJU0FTU0VNQkxFUikgJiYgRU5BQkxFKEpJVCkgJiYgQ1BVKEFS
TTY0KSAmJiAhVVNFKENBUFNUT05FKQotI2RlZmluZSBFTkFCTEVfQVJNNjRfRElTQVNTRU1CTEVS
IDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0RJU0FTU0VNQkxFUikgJiYgKEVOQUJM
RShVRElTODYpIHx8IEVOQUJMRShBUk02NF9ESVNBU1NFTUJMRVIpIHx8IChFTkFCTEUoSklUKSAm
JiBVU0UoQ0FQU1RPTkUpKSkKLSNkZWZpbmUgRU5BQkxFX0RJU0FTU0VNQkxFUiAxCi0jZW5kaWYK
LQotI2lmICFkZWZpbmVkKEVOQUJMRV9ERkdfSklUKSAmJiBFTkFCTEUoSklUKQotCi0vKiBFbmFi
bGUgdGhlIERGRyBKSVQgb24gWDg2IGFuZCBYODZfNjQuICovCi0jaWYgQ1BVKFg4Nl82NCkgJiYg
KE9TKERBUldJTikgfHwgT1MoTElOVVgpIHx8IE9TKEZSRUVCU0QpIHx8IE9TKEhVUkQpIHx8IE9T
KFdJTkRPV1MpKQotI2RlZmluZSBFTkFCTEVfREZHX0pJVCAxCi0jZW5kaWYKLQotLyogRW5hYmxl
IHRoZSBERkcgSklUIG9uIEFSTXY3LiAgT25seSB0ZXN0ZWQgb24gaU9TLCBMaW51eCwgYW5kIEZy
ZWVCU0QuICovCi0jaWYgKENQVShBUk1fVEhVTUIyKSB8fCBDUFUoQVJNNjQpKSAmJiAoT1MoREFS
V0lOKSB8fCBPUyhMSU5VWCkgfHwgT1MoRlJFRUJTRCkpCi0jZGVmaW5lIEVOQUJMRV9ERkdfSklU
IDEKLSNlbmRpZgotCi0vKiBFbmFibGUgdGhlIERGRyBKSVQgb24gTUlQUy4gKi8KLSNpZiBDUFUo
TUlQUykKLSNkZWZpbmUgRU5BQkxFX0RGR19KSVQgMQotI2VuZGlmCi0KLSNlbmRpZiAvKiAhZGVm
aW5lZChFTkFCTEVfREZHX0pJVCkgJiYgRU5BQkxFKEpJVCkgKi8KLQotLyogQ29uY3VycmVudCBK
UyBvbmx5IHdvcmtzIG9uIDY0LWJpdCBwbGF0Zm9ybXMgYmVjYXVzZSBpdCByZXF1aXJlcyB0aGF0
Ci0gICB2YWx1ZXMgZ2V0IHN0b3JlZCB0byBhdG9taWNhbGx5LiBUaGlzIGlzIHRyaXZpYWxseSB0
cnVlIG9uIDY0LWJpdCBwbGF0Zm9ybXMsCi0gICBidXQgbm90IHRydWUgYXQgYWxsIG9uIDMyLWJp
dCBwbGF0Zm9ybXMgd2hlcmUgdmFsdWVzIGFyZSBjb21wb3NlZCBvZiB0d28KLSAgIHNlcGFyYXRl
IHN1Yi12YWx1ZXMuICovCi0jaWYgRU5BQkxFKEpJVCkgJiYgVVNFKEpTVkFMVUU2NCkKLSNkZWZp
bmUgRU5BQkxFX0NPTkNVUlJFTlRfSlMgMQotI2VuZGlmCi0KLSNpZiAoQ1BVKFg4Nl82NCkgfHwg
Q1BVKEFSTTY0KSkgJiYgSEFWRShGQVNUX1RMUykKLSNkZWZpbmUgRU5BQkxFX0ZBU1RfVExTX0pJ
VCAxCi0jZW5kaWYKLQotI2lmIEVOQUJMRShKSVQpICYmIChDUFUoWDg2KSB8fCBDUFUoWDg2XzY0
KSB8fCBDUFUoQVJNX1RIVU1CMikgfHwgQ1BVKEFSTTY0KSB8fCBDUFUoTUlQUykpCi0jZGVmaW5l
IEVOQUJMRV9NQVNNX1BST0JFIDEKLSNlbmRpZgotCi0vKiBGSVhNRTogVGhpcyBzaG91bGQgYmUg
dHVybmVkIGludG8gYW4gI2Vycm9yIGludmFyaWFudCAqLwotLyogSWYgdGhlIGJhc2VsaW5lIGpp
dCBpcyBub3QgYXZhaWxhYmxlLCB0aGVuIGRpc2FibGUgdXBwZXIgdGllcnMgYXMgd2VsbC4KLSAg
IFRoZSBNYWNyb0Fzc2VtYmxlcjo6cHJvYmUoKSBpcyBhbHNvIHJlcXVpcmVkIGZvciBzdXBwb3J0
aW5nIHRoZSB1cHBlciB0aWVycy4gKi8KLSNpZiAhRU5BQkxFKEpJVCkgfHwgIUVOQUJMRShNQVNN
X1BST0JFKQotI3VuZGVmIEVOQUJMRV9ERkdfSklUCi0jdW5kZWYgRU5BQkxFX0ZUTF9KSVQKLSNk
ZWZpbmUgRU5BQkxFX0RGR19KSVQgMAotI2RlZmluZSBFTkFCTEVfRlRMX0pJVCAwCi0jZW5kaWYK
LQotLyogRklYTUU6IFRoaXMgc2hvdWxkIGJlIHR1cm5lZCBpbnRvIGFuICNlcnJvciBpbnZhcmlh
bnQgKi8KLS8qIElmIHRoZSBERkcgaml0IGlzIG5vdCBhdmFpbGFibGUsIHRoZW4gZGlzYWJsZSB1
cHBlciB0aWVycyBhcyB3ZWxsOiAqLwotI2lmICFFTkFCTEUoREZHX0pJVCkKLSN1bmRlZiBFTkFC
TEVfRlRMX0pJVAotI2RlZmluZSBFTkFCTEVfRlRMX0pJVCAwCi0jZW5kaWYKLQotLyogVGhpcyBj
b250cm9scyB3aGV0aGVyIEIzIGlzIGJ1aWx0LiBCMyBpcyBuZWVkZWQgZm9yIEZUTCBKSVQgYW5k
IFdlYkFzc2VtYmx5ICovCi0jaWYgRU5BQkxFKEZUTF9KSVQpCi0jZGVmaW5lIEVOQUJMRV9CM19K
SVQgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfV0VCQVNTRU1CTFkpICYmIChFTkFC
TEUoQjNfSklUKSAmJiBQTEFURk9STShDT0NPQSkgJiYgQ1BVKEFERFJFU1M2NCkpCi0jZGVmaW5l
IEVOQUJMRV9XRUJBU1NFTUJMWSAxCi0jZW5kaWYKLQotLyogVGhlIFNhbXBsaW5nUHJvZmlsZXIg
aXMgdGhlIHByb2JhYmlsaXN0aWMgYW5kIGxvdy1vdmVyaGVhZCBwcm9maWxlciB1c2VkIGJ5Ci0g
KiBKU0MgdG8gbWVhc3VyZSB3aGVyZSB0aW1lIGlzIHNwZW50IGluc2lkZSBhIEphdmFTY3JpcHQg
cHJvZ3JhbS4KLSAqIEluIGNvbmZpZ3VyYXRpb25zIG90aGVyIHRoYW4gV2luZG93cyBhbmQgRGFy
d2luLCBiZWNhdXNlIGxheW91dCBvZiBtY29udGV4dF90IGRlcGVuZHMgb24gc3RhbmRhcmQgbGli
cmFyaWVzIChsaWtlIGdsaWJjKSwKLSAqIHNhbXBsaW5nIHByb2ZpbGVyIGlzIGVuYWJsZWQgaWYg
V2ViS2l0IHVzZXMgcHRocmVhZHMgYW5kIGdsaWJjLiAqLwotI2lmICFkZWZpbmVkKEVOQUJMRV9T
QU1QTElOR19QUk9GSUxFUikgJiYgKCFFTkFCTEUoQ19MT09QKSAmJiAoT1MoV0lORE9XUykgfHwg
SEFWRShNQUNISU5FX0NPTlRFWFQpKSkKLSNkZWZpbmUgRU5BQkxFX1NBTVBMSU5HX1BST0ZJTEVS
IDEKLSNlbmRpZgotCi0jaWYgRU5BQkxFKFdFQkFTU0VNQkxZKSAmJiBIQVZFKE1BQ0hJTkVfQ09O
VEVYVCkKLSNkZWZpbmUgRU5BQkxFX1dFQkFTU0VNQkxZX0ZBU1RfTUVNT1JZIDEKLSNlbmRpZgot
Ci0vKiBDb3VudHMgdXNlcyBvZiB3cml0ZSBiYXJyaWVycyB1c2luZyBzYW1wbGluZyBjb3VudGVy
cy4gQmUgc3VyZSB0byBhbHNvCi0gICBzZXQgRU5BQkxFX1NBTVBMSU5HX0NPVU5URVJTIHRvIDEu
ICovCi0jaWYgIWRlZmluZWQoRU5BQkxFX1dSSVRFX0JBUlJJRVJfUFJPRklMSU5HKQotI2RlZmlu
ZSBFTkFCTEVfV1JJVEVfQkFSUklFUl9QUk9GSUxJTkcgMAotI2VuZGlmCi0KLS8qIExvZ3MgYWxs
IGFsbG9jYXRpb24tcmVsYXRlZCBhY3Rpdml0eSB0aGF0IGdvZXMgdGhyb3VnaCBmYXN0TWFsbG9j
IG9yIHRoZQotICAgSlNDIEdDIChib3RoIGNlbGxzIGFuZCBidXR0ZXJmbGllcykuIEFsc28gbG9n
cyBtYXJraW5nLiBOb3RlIHRoYXQgdGhpcwotICAgaXNuJ3QgYSBjb21wbGV0ZWx5IGFjY3VyYXRl
IHZpZXcgb2YgdGhlIGhlYXAgc2luY2UgaXQgZG9lc24ndCBpbmNsdWRlIGFsbAotICAgYnV0dGVy
Zmx5IHJlc2l6ZSBvcGVyYXRpb25zLCBkb2Vzbid0IHRlbGwgeW91IHdoYXQgaXMgZ29pbmcgb24g
d2l0aCB3ZWFrCi0gICByZWZlcmVuY2VzIChvdGhlciB0aGFuIHRvIHRlbGwgeW91IHdoZW4gdGhl
eSdyZSBtYXJrZWQpLCBhbmQgZG9lc24ndAotICAgdHJhY2sgZGlyZWN0IG1tYXAoKSBhbGxvY2F0
aW9ucyBvciB0aGluZ3MgbGlrZSBKSVQgYWxsb2NhdGlvbi4gKi8KLSNpZiAhZGVmaW5lZChFTkFC
TEVfQUxMT0NBVElPTl9MT0dHSU5HKQotI2RlZmluZSBFTkFCTEVfQUxMT0NBVElPTl9MT0dHSU5H
IDAKLSNlbmRpZgotCi0vKiBFbmFibGUgdmVyaWZpY2F0aW9uIHRoYXQgdGhhdCByZWdpc3RlciBh
bGxvY2F0aW9ucyBhcmUgbm90IG1hZGUgd2l0aGluIGdlbmVyYXRlZCBjb250cm9sIGZsb3cuCi0g
ICBUdXJuZWQgb24gZm9yIGRlYnVnIGJ1aWxkcy4gKi8KLSNpZiAhZGVmaW5lZChFTkFCTEVfREZH
X1JFR0lTVEVSX0FMTE9DQVRJT05fVkFMSURBVElPTikgJiYgRU5BQkxFKERGR19KSVQpICYmICFk
ZWZpbmVkKE5ERUJVRykKLSNkZWZpbmUgRU5BQkxFX0RGR19SRUdJU1RFUl9BTExPQ0FUSU9OX1ZB
TElEQVRJT04gMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfU0VQQVJBVEVEX1dYX0hF
QVApICYmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIENQVShBUk02NCkgJiYgKCFFTkFCTEUoRkFT
VF9KSVRfUEVSTUlTU0lPTlMpIHx8ICFDUFUoQVJNNjRFKSkKLSNkZWZpbmUgRU5BQkxFX1NFUEFS
QVRFRF9XWF9IRUFQIDEKLSNlbmRpZgotCi0vKiBEZXRlcm1pbmUgaWYgd2UgbmVlZCB0byBlbmFi
bGUgQ29tcHV0ZWQgR290byBPcGNvZGVzIG9yIG5vdDogKi8KLSNpZiBIQVZFKENPTVBVVEVEX0dP
VE8pIHx8ICFFTkFCTEUoQ19MT09QKQotI2RlZmluZSBFTkFCTEVfQ09NUFVURURfR09UT19PUENP
REVTIDEKLSNlbmRpZgotCi0vKiBSZWd1bGFyIEV4cHJlc3Npb24gVHJhY2luZyAtIFNldCB0byAx
IHRvIHRyYWNlIFJlZ0V4cCdzIGluIGpzYy4gIFJlc3VsdHMgZHVtcGVkIGF0IGV4aXQgKi8KLSNp
ZiAhZGVmaW5lZChFTkFCTEVfUkVHRVhQX1RSQUNJTkcpCi0jZGVmaW5lIEVOQUJMRV9SRUdFWFBf
VFJBQ0lORyAwCi0jZW5kaWYKLQotLyogWWV0IEFub3RoZXIgUmVnZXggUnVudGltZSAtIHR1cm5l
ZCBvbiBieSBkZWZhdWx0IGZvciBKSVQgZW5hYmxlZCBwb3J0cy4gKi8KLSNpZiAhZGVmaW5lZChF
TkFCTEVfWUFSUl9KSVQpICYmIEVOQUJMRShKSVQpCi0jZGVmaW5lIEVOQUJMRV9ZQVJSX0pJVCAx
Ci0jZW5kaWYKLQotLyogU2V0dGluZyB0aGlzIGZsYWcgY29tcGFyZXMgSklUIHJlc3VsdHMgd2l0
aCBpbnRlcnByZXRlciByZXN1bHRzLiAqLwotI2lmICFkZWZpbmVkKEVOQUJMRV9ZQVJSX0pJVCkg
JiYgRU5BQkxFKEpJVCkKLSNkZWZpbmUgRU5BQkxFX1lBUlJfSklUX0RFQlVHIDAKLSNlbmRpZgot
Ci0vKiBFbmFibGUgSklUJ2luZyBSZWd1bGFyIEV4cHJlc3Npb25zIHRoYXQgaGF2ZSBuZXN0ZWQg
cGFyZW50aGVzaXMgLiAqLwotI2lmIEVOQUJMRShZQVJSX0pJVCkgJiYgKENQVShBUk02NCkgfHwg
KENQVShYODZfNjQpICYmICFPUyhXSU5ET1dTKSkpCi0jZGVmaW5lIEVOQUJMRV9ZQVJSX0pJVF9B
TExfUEFSRU5TX0VYUFJFU1NJT05TIDEKLSNlbmRpZgotCi0vKiBFbmFibGUgSklUJ2luZyBSZWd1
bGFyIEV4cHJlc3Npb25zIHRoYXQgaGF2ZSBuZXN0ZWQgYmFjayByZWZlcmVuY2VzLiAqLwotI2lm
IEVOQUJMRShZQVJSX0pJVCkgJiYgKENQVShBUk02NCkgfHwgKENQVShYODZfNjQpICYmICFPUyhX
SU5ET1dTKSkpCi0jZGVmaW5lIEVOQUJMRV9ZQVJSX0pJVF9CQUNLUkVGRVJFTkNFUyAxCi0jZW5k
aWYKLQotLyogSWYgZWl0aGVyIHRoZSBKSVQgb3IgdGhlIFJlZ0V4cCBKSVQgaXMgZW5hYmxlZCwg
dGhlbiB0aGUgQXNzZW1ibGVyIG11c3QgYmUKLSAgIGVuYWJsZWQgYXMgd2VsbDogKi8KLSNpZiBF
TkFCTEUoSklUKSB8fCBFTkFCTEUoWUFSUl9KSVQpIHx8ICFFTkFCTEUoQ19MT09QKQotI2lmIGRl
ZmluZWQoRU5BQkxFX0FTU0VNQkxFUikgJiYgIUVOQUJMRV9BU1NFTUJMRVIKLSNlcnJvciAiQ2Fu
bm90IGVuYWJsZSB0aGUgSklUIG9yIFJlZ0V4cCBKSVQgd2l0aG91dCBlbmFibGluZyB0aGUgQXNz
ZW1ibGVyIgotI2Vsc2UKLSN1bmRlZiBFTkFCTEVfQVNTRU1CTEVSCi0jZGVmaW5lIEVOQUJMRV9B
U1NFTUJMRVIgMQotI2VuZGlmCi0jZW5kaWYKLQotLyogSWYgdGhlIERpc2Fzc2VtYmxlciBpcyBl
bmFibGVkLCB0aGVuIHRoZSBBc3NlbWJsZXIgbXVzdCBiZSBlbmFibGVkIGFzIHdlbGw6ICovCi0j
aWYgRU5BQkxFKERJU0FTU0VNQkxFUikKLSNpZiBkZWZpbmVkKEVOQUJMRV9BU1NFTUJMRVIpICYm
ICFFTkFCTEVfQVNTRU1CTEVSCi0jZXJyb3IgIkNhbm5vdCBlbmFibGUgdGhlIERpc2Fzc2VtYmxl
ciB3aXRob3V0IGVuYWJsaW5nIHRoZSBBc3NlbWJsZXIiCi0jZWxzZQotI3VuZGVmIEVOQUJMRV9B
U1NFTUJMRVIKLSNkZWZpbmUgRU5BQkxFX0FTU0VNQkxFUiAxCi0jZW5kaWYKLSNlbmRpZgotCi0j
aWYgIWRlZmluZWQoRU5BQkxFX0VYQ0VQVElPTl9TQ09QRV9WRVJJRklDQVRJT04pCi0jZGVmaW5l
IEVOQUJMRV9FWENFUFRJT05fU0NPUEVfVkVSSUZJQ0FUSU9OIEFTU0VSVF9FTkFCTEVECi0jZW5k
aWYKLQotI2lmIEVOQUJMRShERkdfSklUKSAmJiBIQVZFKE1BQ0hJTkVfQ09OVEVYVCkgJiYgKENQ
VShYODZfNjQpIHx8IENQVShBUk02NCkpCi0jZGVmaW5lIEVOQUJMRV9TSUdOQUxfQkFTRURfVk1f
VFJBUFMgMQotI2VuZGlmCi0KLS8qIENTUyBTZWxlY3RvciBKSVQgQ29tcGlsZXIgKi8KLSNpZiAh
ZGVmaW5lZChFTkFCTEVfQ1NTX1NFTEVDVE9SX0pJVCkgJiYgKChDUFUoWDg2XzY0KSB8fCBDUFUo
QVJNNjQpIHx8IChDUFUoQVJNX1RIVU1CMikgJiYgT1MoREFSV0lOKSkpICYmIEVOQUJMRShKSVQp
ICYmIChPUyhEQVJXSU4pIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKSkpCi0jZGVm
aW5lIEVOQUJMRV9DU1NfU0VMRUNUT1JfSklUIDEKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oQ09D
T0EpICYmICFQTEFURk9STShXQVRDSE9TKSAmJiAhUExBVEZPUk0oQVBQTEVUVikgJiYgIVBMQVRG
T1JNKE1BQ0NBVEFMWVNUKQotI2RlZmluZSBFTkFCTEVfREFUQV9ERVRFQ1RJT04gMQotI2VuZGlm
Ci0KLSNpZiBDUFUoQVJNX1RIVU1CMikgfHwgQ1BVKEFSTTY0KQotI2RlZmluZSBFTkFCTEVfQlJB
TkNIX0NPTVBBQ1RJT04gMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfVEhSRUFESU5H
X0xJQkRJU1BBVENIKSAmJiBIQVZFKERJU1BBVENIX0gpCi0jZGVmaW5lIEVOQUJMRV9USFJFQURJ
TkdfTElCRElTUEFUQ0ggMQotI2VsaWYgIWRlZmluZWQoRU5BQkxFX1RIUkVBRElOR19PUEVOTVAp
ICYmIGRlZmluZWQoX09QRU5NUCkKLSNkZWZpbmUgRU5BQkxFX1RIUkVBRElOR19PUEVOTVAgMQot
I2VsaWYgIWRlZmluZWQoVEhSRUFESU5HX0dFTkVSSUMpCi0jZGVmaW5lIEVOQUJMRV9USFJFQURJ
TkdfR0VORVJJQyAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9HQ19WQUxJREFUSU9O
KSAmJiAhZGVmaW5lZChOREVCVUcpCi0jZGVmaW5lIEVOQUJMRV9HQ19WQUxJREFUSU9OIDEKLSNl
bmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0JJTkRJTkdfSU5URUdSSVRZKSAmJiAhT1MoV0lO
RE9XUykKLSNkZWZpbmUgRU5BQkxFX0JJTkRJTkdfSU5URUdSSVRZIDEKLSNlbmRpZgotCi0jaWYg
IWRlZmluZWQoRU5BQkxFX1RSRUVfREVCVUdHSU5HKSAmJiAhZGVmaW5lZChOREVCVUcpCi0jZGVm
aW5lIEVOQUJMRV9UUkVFX0RFQlVHR0lORyAxCi0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKENPQ09B
KQotI2RlZmluZSBFTkFCTEVfUkVTT1VSQ0VfVVNBR0UgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5l
ZChFTkFCTEVfT1BFTlRZUEVfVkVSVElDQUwpICYmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0o
V1BFKQotI2RlZmluZSBFTkFCTEVfT1BFTlRZUEVfVkVSVElDQUwgMQotI2VuZGlmCi0KLSNpZiAh
ZGVmaW5lZChFTkFCTEVfT1BFTlRZUEVfTUFUSCkgJiYgKE9TKERBUldJTikgJiYgVVNFKENHKSkg
fHwgKFVTRShGUkVFVFlQRSkgJiYgIVBMQVRGT1JNKEdUSykpIHx8IChQTEFURk9STShXSU4pICYm
IChVU0UoQ0cpIHx8IFVTRShDQUlSTykpKQotI2RlZmluZSBFTkFCTEVfT1BFTlRZUEVfTUFUSCAx
Ci0jZW5kaWYKLQotLyoKLSAqIEVuYWJsZSB0aGlzIHRvIHB1dCBlYWNoIElzb0hlYXAgYW5kIG90
aGVyIGFsbG9jYXRpb24gY2F0ZWdvcmllcyBpbnRvIHRoZWlyIG93biBtYWxsb2MgaGVhcHMsIHNv
IHRoYXQgdG9vbHMgbGlrZSB2bW1hcCBjYW4gc2hvdyBob3cgYmlnIGVhY2ggaGVhcCBpcy4KLSAq
IFR1cm4gQkVOQUJMRV9NQUxMT0NfSEVBUF9CUkVBS0RPV04gb24gaW4gYm1hbGxvYyB0b2dldGhl
ciB3aGVuIHVzaW5nIHRoaXMuCi0gKi8KLSNpZiAhZGVmaW5lZChFTkFCTEVfTUFMTE9DX0hFQVBf
QlJFQUtET1dOKQotI2RlZmluZSBFTkFCTEVfTUFMTE9DX0hFQVBfQlJFQUtET1dOIDAKLSNlbmRp
ZgotCi0vKiBEaXNhYmxlIFNoYXJlZEFycmF5QnVmZmVycyB1bnRpbCBTcGVjdHJlIHNlY3VyaXR5
IGNvbmNlcm5zIGFyZSBtaXRpZ2F0ZWQuICovCi0jZGVmaW5lIEVOQUJMRV9TSEFSRURfQVJSQVlf
QlVGRkVSIDAKLQotI2lmIFBMQVRGT1JNKE1BQykKLSNkZWZpbmUgRU5BQkxFX1dFQl9QTEFZQkFD
S19DT05UUk9MU19NQU5BR0VSIDEKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0vKiBG
SVhNRTogVGhpcyBpcyBhIFVTRSBzdHlsZSBtYWNybywgYXMgaXQgdHJpZ2dlcnMgdGhlIHVzZSBv
ZiBDRlVSTENvbm5lY3Rpb24gZnJhbWV3b3JrIHN0dWJzLiAqLwotLyogRklYTUU6IElzIHRoaXMg
c3RpbGwgbmVjZXNzYXJ5PyBDRlVSTENvbm5lY3Rpb24gaXNuJ3QgdXNlZCBvbiBDb2NvYSBwbGF0
Zm9ybXMgYW55IG1vcmUuICovCi0jZGVmaW5lIEVOQUJMRV9TRUNfSVRFTV9TSElNIDEKLSNlbmRp
ZgotCi0jaWYgUExBVEZPUk0oTUFDKQotI2RlZmluZSBFTkFCTEVfRlVMTF9LRVlCT0FSRF9BQ0NF
U1MgMQotI2VuZGlmCi0KLSNpZiAoKFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShQTEFZU1RB
VElPTikgfHwgUExBVEZPUk0oV1BFKSkgJiYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykpIHx8IFBM
QVRGT1JNKEdUSykKLSNkZWZpbmUgRU5BQkxFX0tJTkVUSUNfU0NST0xMSU5HIDEKLSNlbmRpZgot
Ci0jaWYgIWRlZmluZWQoRU5BQkxFX01PTk9TUEFDRV9GT05UX0VYQ0VQVElPTikgJiYgKChQTEFU
Rk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPCAxMDE1MDApIHx8
IFBMQVRGT1JNKFdBVENIT1MpIHx8IFBMQVRGT1JNKEFQUExFVFYpKQotI2RlZmluZSBFTkFCTEVf
TU9OT1NQQUNFX0ZPTlRfRVhDRVBUSU9OIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxF
X1BMQVRGT1JNX0RSSVZFTl9URVhUX0NIRUNLSU5HKSAmJiBQTEFURk9STShNQUNDQVRBTFlTVCkK
LSNkZWZpbmUgRU5BQkxFX1BMQVRGT1JNX0RSSVZFTl9URVhUX0NIRUNLSU5HIDEKLSNlbmRpZgot
Ci0vKiBUaGlzIGZlYXR1cmUgd29ya3MgYnkgZW1iZWRkaW5nIHRoZSBPcGNvZGVJRCBpbiB0aGUg
MzIgYml0IGp1c3QgYmVmb3JlIHRoZSBnZW5lcmF0ZWQgTExpbnQgY29kZQotICAgdGhhdCBleGVj
dXRlcyBlYWNoIG9wY29kZS4gSXQgY2Fubm90IGJlIHN1cHBvcnRlZCBieSB0aGUgQ0xvb3Agc2lu
Y2UgdGhlcmUncyBubyB3YXkgdG8gZW1iZWQgdGhlCi0gICBPcGNvZGVJRCB3b3JkIGluIHRoZSBD
TG9vcCdzIHN3aXRjaCBzdGF0ZW1lbnQgY2FzZXMuIEl0IGlzIGFsc28gY3VycmVudGx5IG5vdCBp
bXBsZW1lbnRlZCBmb3IgTVNWQy4KLSovCi0jaWYgIWRlZmluZWQoRU5BQkxFX0xMSU5UX0VNQkVE
REVEX09QQ09ERV9JRCkgJiYgIUVOQUJMRShDX0xPT1ApICYmICFDT01QSUxFUihNU1ZDKSAmJiAo
Q1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTTY0KSB8fCAoQ1BVKEFSTV9USFVNQjIp
ICYmIE9TKERBUldJTikpKQotI2RlZmluZSBFTkFCTEVfTExJTlRfRU1CRURERURfT1BDT0RFX0lE
IDEKLSNlbmRpZgotCi0KLS8qIEFzc2VydHMsIGludmFyaWFudHMgZm9yIG1hY3JvIGRlZmluaXRp
b25zICovCi0KLSNpZiBFTkFCTEUoVklERU9fVFJBQ0spICYmICFFTkFCTEUoVklERU8pCi0jZXJy
b3IgIkVOQUJMRShWSURFT19UUkFDSykgcmVxdWlyZXMgRU5BQkxFKFZJREVPKSIKLSNlbmRpZgot
Ci0jaWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX1NDUklQVCkgJiYgIUVOQUJMRShWSURFTykKLSNl
cnJvciAiRU5BQkxFKE1FRElBX0NPTlRST0xTX1NDUklQVCkgcmVxdWlyZXMgRU5BQkxFKFZJREVP
KSIKLSNlbmRpZgotCi0jaWYgRU5BQkxFKElOU1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hFUlMp
ICYmICFFTkFCTEUoUkVNT1RFX0lOU1BFQ1RPUikKLSNlcnJvciAiRU5BQkxFKElOU1BFQ1RPUl9B
TFRFUk5BVEVfRElTUEFUQ0hFUlMpIHJlcXVpcmVzIEVOQUJMRShSRU1PVEVfSU5TUEVDVE9SKSIK
LSNlbmRpZgotCi0jaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpICYmICFFTkFCTEUoVE9VQ0hf
RVZFTlRTKQotI2Vycm9yICJFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykgcmVxdWlyZXMgRU5BQkxF
KFRPVUNIX0VWRU5UUykiCi0jZW5kaWYKLQotI2lmIEVOQUJMRShXRUJHTCkgJiYgIUVOQUJMRShH
UkFQSElDU19DT05URVhUX0dMKQotI2Vycm9yICJFTkFCTEUoV0VCR0wpIHJlcXVpcmVzIEVOQUJM
RShHUkFQSElDU19DT05URVhUX0dMKSIKLSNlbmRpZgotCi0jaWYgRU5BQkxFKFdFQkdMMikgJiYg
IUVOQUJMRShXRUJHTCkKLSNlcnJvciAiRU5BQkxFKFdFQkdMMikgcmVxdWlyZXMgRU5BQkxFKFdF
QkdMKSIKLSNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1NTU1MikKKysrIFNvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAtMDIt
MDIgIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgorCisgICAgICAgIFN0YXJ0IHNwbGl0
dGluZyBwbGF0Zm9ybSBzcGVjaWZpYyBvdmVycmlkZXMgb2YgZGVmYXVsdCBlbmFibGUgYmVoYXZp
b3IgaW50byB0aGVpciBvd24gZmlsZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwNzEwNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzczo6c2hvdWxkUGx1Z0luQXV0b1N0YXJ0RnJvbU9yaWdpbik6CisgICAg
ICAgIFN3aXRjaCB0byB1c2luZyB0aGUgRU5BQkxFKCkgaGVscGVyIG1hY3JvIHRvIGNvcnJlY3Rs
eSBndWFyZCBhZ2FpbnN0IHRoZSBjYXNlIHRoYXQKKyAgICAgICAgRU5BQkxFX1BSSU1BUllfU05B
UFNIT1RURURfUExVR0lOX0hFVVJJU1RJQyBpcyBkZWZpbmVkIGFuZCBlcXVhbCB0byAwLgorCiAy
MDIwLTAyLTAxICBNaWNoYWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AZ25vbWUub3JnPgogCiAg
ICAgICAgIFNpbGVuY2UgY29tcGlsZXIgd2FybmluZ3MKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5jcHAJKHJldmlzaW9uIDI1NTU1MikKKysrIFNvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODk2LDcgKzg5Niw3
IEBAIGJvb2wgV2ViUHJvY2Vzczo6c2hvdWxkUGx1Z0luQXV0b1N0YXJ0RnIKICAgICBpZiAoIXBs
dWdpbk9yaWdpbi5pc0VtcHR5KCkgJiYgbV9wbHVnSW5BdXRvU3RhcnRPcmlnaW5zLmNvbnRhaW5z
KHBsdWdpbk9yaWdpbikpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0jaWZkZWYgRU5BQkxFX1BS
SU1BUllfU05BUFNIT1RURURfUExVR0lOX0hFVVJJU1RJQworI2lmIEVOQUJMRShQUklNQVJZX1NO
QVBTSE9UVEVEX1BMVUdJTl9IRVVSSVNUSUMpCiAgICAgLy8gVGhlIHBsdWdpbiB3YXNuJ3QgaW4g
dGhlIGdlbmVyYWwgd2hpdGVsaXN0LCBzbyBjaGVjayBpZiBpdCBzaW1pbGFyIHRvIHRoZSBwcmlt
YXJ5IHBsdWdpbiBmb3IgdGhlIHBhZ2UgKGlmIHdlJ3ZlIGZvdW5kIG9uZSkuCiAgICAgaWYgKHdl
YlBhZ2UubWF0Y2hlc1ByaW1hcnlQbHVnSW4ocGFnZU9yaWdpbiwgcGx1Z2luT3JpZ2luLCBtaW1l
VHlwZSkpCiAgICAgICAgIHJldHVybiB0cnVlOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>